CubeMx工程增加FreeRtos支持

对于stm32一些ram和flash相对大一些的mcu,增加一个实时操作系统,会使程序控制更加灵活。本文阐述一下通过CubeMx自动添加FreeRtos的方法,和使用visualgdb加载CubeMx生成项目的方法。

一、软件环境

1、CubeMx 5.2.0

2、VisualStudio2017

3、VisuualGDB 5.4R3

二、步骤

1、用CubeMx创建一个项目,因为手头的板子是野火挑战者Stm32F429开发板,所以cpu型号选择Stm32f429igtx。

CubeMx工程增加FreeRtos支持_第1张图片

2、配置RCC,选择外部晶振

CubeMx工程增加FreeRtos支持_第2张图片

 3、配置Clock

CubeMx工程增加FreeRtos支持_第3张图片

4、 设置系统时钟源,不要用Systick,最好使用一个定时器。这里我们选择Timer2作为系统时钟源。

CubeMx工程增加FreeRtos支持_第4张图片

5、在中间件中添加FreeRtos

CubeMx工程增加FreeRtos支持_第5张图片 CubeMx工程增加FreeRtos支持_第6张图片

在FreeRtosTasks and Queues界面已经自动建立了一个默认Task了。我们点击Add按钮,添加三个自定义Task。

CubeMx工程增加FreeRtos支持_第7张图片

CubeMx工程增加FreeRtos支持_第8张图片

CubeMx工程增加FreeRtos支持_第9张图片

CubeMx工程增加FreeRtos支持_第10张图片 到此FreeRtos已经添加完了,为了观察效果,我们设置一下Led灯的GPIO

CubeMx工程增加FreeRtos支持_第11张图片

 6、在Project Manager内配置输出工程代码格式

CubeMx工程增加FreeRtos支持_第12张图片

 其实,选择STM32CubeMxIDE、SW4STM32、TrueStudio、makefile都可以,因为这四种IDE都使用的是arm-gcc编译器。

点击 

生成项目代码。

CubeMx工程增加FreeRtos支持_第13张图片/

7、用VisualStudio新建一个空白解决方案

CubeMx工程增加FreeRtos支持_第14张图片

8、在空白解决方案里添加一个嵌入式工程,点击确定

CubeMx工程增加FreeRtos支持_第15张图片

9、在工程向导中如下选择,然后点击下一步

CubeMx工程增加FreeRtos支持_第16张图片 10、输入mcu型号 stm32f429ig,浮点数支持选择硬件支持,点击下一步

CubeMx工程增加FreeRtos支持_第17张图片

11、选择CubeMx生成项目代码的目录,切记VisualStudio项目目录,不能和CubeMx生成的工程目录重名。点击下一步。

CubeMx工程增加FreeRtos支持_第18张图片 12、配置Debug选项,根据实际情况选择,因为我用的是CMSIS-DAP仿真器,所以做如下选择;点击完成。

CubeMx工程增加FreeRtos支持_第19张图片

 VisualGDB就会把CubeMx生成的项目代码自动复制到,工程目录下,并且在工程中自动添加所有源文件(.c;.cpp;.asm)文件。但是,头文件的包含路径,则需要我们自己添加。

CubeMx工程增加FreeRtos支持_第20张图片

13、右键点击项目图标,弹出菜单,选择 VisualGDB Project Properties,弹出界面

CubeMx工程增加FreeRtos支持_第21张图片

CubeMx工程增加FreeRtos支持_第22张图片

14、在 弹出界面中,我们选择 Embedded framework标签,将两个VirsualGDB自动添加的模块去掉,然后点击 apply按钮

CubeMx工程增加FreeRtos支持_第23张图片

 

 15、在 弹出界面中,选择 makefile setings标签,并修改Preprocessor macros 和 Include directories 两项。点击 OK按钮。

CubeMx工程增加FreeRtos支持_第24张图片

 因为我的 MCU 是 STM32F429IGTx,所以在Preprocessor macros 添加 STM32F4xx 宏,注意大小写。把工程目录内所有头文件的文件夹路径,都添加到 Include directories 下。

 

到此,CubeMx 生成的带有FreeRtos系统的程序框架,就已经完全导入到 VirsualGDB中了,我们按下F7编译一下,

CubeMx工程增加FreeRtos支持_第25张图片 观察编译输出,完全正确。

16、测试FreeRtos

在 main.c 定义几个宏

CubeMx工程增加FreeRtos支持_第26张图片

分别修改 StartTask02,StartTask03,StartTask04 代码如下

CubeMx工程增加FreeRtos支持_第27张图片

CubeMx工程增加FreeRtos支持_第28张图片

CubeMx工程增加FreeRtos支持_第29张图片

重新编译一下程序,点击F5运行,VisualGDB 就会自动把程序下载到开发板,并且运行

CubeMx工程增加FreeRtos支持_第30张图片

 

你可能感兴趣的:(CubeMx工程增加FreeRtos支持)