# STM32F429_Discovery_FreeRTOS_9 **Repository Path**: codedigger_123/STM32F429_Discovery_FreeRTOS_9 ## Basic Information - **Project Name**: STM32F429_Discovery_FreeRTOS_9 - **Description**: No description available - **Primary Language**: C - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-11-16 - **Last Updated**: 2024-06-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # STM32F429_Discovery_FreeRTOS_9例程编译 ## 0. 开发环境搭建: - install ubuntu-16.04.2-desktop-amd64 - run commands: ``` # sudo apt-get update # sudo apt-get upgrade # sudo apt-get install build-essential git # sudo apt-get install gcc-arm-none-eabi gdb-arm-none-eabi # mkdir work # cd work # git clone https://github.com/cbhust/STM32F429_Discovery_FreeRTOS_9.git ``` ## 1. QEMU安装 建议使用qemu-system-gnuarmeclipse,该qemu分支对stm32f4有更好的支持,主要面向Eclipse开发环境。 - 到网页 https://github.com/gnu-mcu-eclipse/qemu/releases/tag/gae-2.8.0-20161227 下载二进制文件 gnuarmeclipse-qemu-debian64-2.8.0-201612271623-dev.tgz到~/work目录 - 在工作目录解压缩文件,并把路径添加到$PATH变量中 ``` #cd ~/work #tar xvf gnuarmeclipse-qemu-debian64-2.8.0-201612271623-dev.tgz #chmod -R -w ./qemu export PATH=~/work/qemu/2.8.0-201612271623-dev/bin/:$PATH ``` - 测试qemu能否正常运行 ``` #qemu-system-gnuarmeclipse --version ``` 如正常则会显示版本信息为2.8.0。 ## 2. 编译例程 - 在/Projects/Demo1目录下运行make,生成hello_rtos.elf文件 > 说明:qemu-system-gnuarmeclipse当前版本不支持STM32F4的浮点,相应的,FreeRTOS使用的portable目录没有使用ARM_CM4F而是使用ARM_CM3。 ## 3. QEMU仿真 在/Projects/Demo1目录下提供了一个qemu.sh脚本文件,内容如下: ``` #!/bin/bash qemu-system-gnuarmeclipse --verbose --verbose --board STM32F429I-Discovery --mcu STM32F429ZI -d unimp,guest_errors --image hello_rtos.elf --semihosting-config enable ``` 在Demo1目录下运行脚本文件: ``` #./qemu.sh ``` 则qemu开始执行hello_rtos.elf文件,在弹出的GUI中看到程序执行的效果。 ## 4. GDB调试 在/Projects/Demo1目录下运行qemu_gdb脚本文件,该文件中添加了--gdb tcp::1234 -S qemu启动后等待来自gdb的调试指令,打开另外一个终端窗口,运行 ``` #arm-none-eabi-gdb ``` 在gdb界面内运行: ``` (gdb)target remote localhost:1234 (gdb)continue ``` 可以看到qemu开始执行程序,GUI界面上可以看到程序执行效果。 ## 5. Trace /Projects/Demo1例程启动了FreeRTOS的trace功能。 - 用STM32 ST-LINK Utility把hello_rtos.hex烧写入STM32F429I Discovery开发板,程序运行时,用STM32 ST-LINK Utility读取0x20000000到0x20030000范围内的地址数据,并保存到一个二进制文件trace_data.bin中。 - 到https://percepio.com/tz/freertostrace/ 下载并安装Tracealyzer for FreeRTOS软件。 - 在Tracealyzer for FreeRTOS软件中打开trace_data.bin,可以看到详细的FreeRTOS的任务和事件信息。