搭建环境:STM32 在 QEMU 虚拟机上运行 Cortex-M 版 FreeRTOS (基于 Eclipse IDE)

搭建环境:STM32 在 QEMU 虚拟机上运行 Cortex-M 版 FreeRTOS (基于 Eclipse IDE)
Mitchell别问我为什么用 Eclipse 这么古老的 IDE。我找不到别的方式能满足在 STM32 在 QEMU 虚拟机上运行 Cortex-M 版 FreeRTOS 这苛刻的要求了。
简介
在 Windows 10/11 系统的PC上搭建环境。
步骤 1 ~ 9:搭建 Eclipse 环境,并在 QEMU 上分别运行 FreeRTOS Demo 和 LED 闪烁 Demo
步骤 10:将 FreeRTOS 移植到 Eclipse 中的项目中
搭建环境
1. 安装 QEMU
下载 QEMU 安装包推荐版本:v8.1.0-12034-g129566d84e
在终端运行下面的命令来检查安装是否成功:
1 | qemu-system-x86_64 --version |
添加 QEMU 安装文件夹到环境变量,默认路径为C:\Program Files\qemu
2. 安装 Eclipse
下载 Eclipse 安装包推荐版本:Eclipse 2020-12
(不推荐使用最新版本)
选择如下图的正确版本:
3. 安装 Eclipse CDT (C/C++ Development Tooling)
下载 Eclipse CDT推荐版本:CDT 10.1.0 for Eclipse 2020-12
4. 安装 MinGW
下载 MinGW参考这篇知乎专栏安装 MinGW
添加 MinGW 到环境变量,需要添加的路径为:
C:\MinGW\bin
C:\MinGW\msys\1.0\bin
C:\MinGW\mingw32\bin
在终端运行下面的命令来检查安装是否成功:
1 | gcc -v |
5. 安装 GNU Arm Embedded Toolchain
下载 GNU Arm Embedded Toolchain推荐版本:10.3.1-2.2
(不推荐使用最新版本)
添加 bin 文件夹到环境变量,需要添加的路径为:...\arm-none-eabi-gcc-10.3.1-2.2-win32-x64\xpack-arm-none-eabi-gcc-10.3.1-2.2\bin
6. 安装 Cygwin
下载 Cygwin推荐使用最新版本
参考这篇CSDN 安装 Cygwin
添加 bin 文件夹到环境变量,需要添加的路径为:C:\cygwin64\bin
在终端运行下面的命令来检查安装是否成功:
1 | cygcheck -c cygwin |
7. 下载 FreeRTOS
下载 FreeRTOS加载 FreeRTOS demo 到 Eclipse
接下来便可以运行 FreeRTOS demo 了:
8. 下载 QEMU for ARM
下载 QEMU for ARM推荐版本:2.8.0-12
(不推荐使用最新版本)
添加 bin 文件夹到环境变量,需要添加的路径为:...\xpack-qemu-arm-2.8.0-12-win32-x64\xpack-qemu-arm-2.8.0-12\bin
9. 创建一个 STM32-F407 项目
接下来便可以运行项目:
10. 将 FreeRTOS 移植到 Eclipse 中的项目中
10-1
打开在第7步中下载的 FreeRTOS 文件,可以删除除了FreeRTOS
文件夹外的其它文件。
继续打开FreeRTOS
文件夹,可以删除除了Demo
和Source
文件夹外的其它文件。
继续打开Demo
文件夹,打开CORTEX_STM32F103_GCC_Rowley
文件夹,复制出来一份FreeRTOSConfig.h
文件,然后删除整个Demo文件夹。
10-2
打开Source\portable
文件夹,可以删除除了GCC
和MemMang
文件夹外的其它文件。
继续打开GCC
文件夹,由于我们模拟的STM32F103,所以删除除了ARM_CM3
文件夹外的其它文件。
打开MemMang
文件夹,选择一种内存管理方式,例如我选择的heap_4.c
。保存整个FreeRTOS文件夹。
10-3
启动 Eclipse,点击 File > New > Project,选择 C project 然后点 Next:
选择 STM32F1xx C/C++ Project:
使用默认配置,一直点击 Next。使用 GNU ARM 的 bin 目录:
10-4
将 FreeRTOS 文件夹粘贴到项目文件中:
将 FreeRTOSConfig.h 文件粘贴到项目文件中:
10-5
右键项目根目录,选择 Properties,然后按照下图操作:
添加下图中的3个目录:
对项目中的每个文件夹右键,选择 Properties,关闭Exclude resource from build
,以解决文件缺失错误:
10-6
在main.c
中添加如下代码:
1 |
10-7
打开 Run configurations:
添加如下信息:
1 | Board name : STM32-P103 |
在 global 中添加 QEMU 的 bin 目录,然后点击 Apply 和 Apply and close: