文章目录
一、前言二、CubeMX2.1、RCC 与 Clock Configuration2.2、SYS2.3、GPIO2.4、Project Manager三、Keil3.1、Target3.2、Output3.3、C/C++(AC6)3.4、Debug3.5、模板代码(main.c)3.6、开始移植RTX53.6、隔离Device上的文件四、代码4.1、main.h4.2、main.c五、DEBUG5.1、RTX RTOS六、细节补充6.1、移植Event Recorder调试工具一、前言
STM32F407主频高,Cortex-M4的系统架构较为简单(相比Cortex-M7),使用STM32F407做项目的同学肯定比较多。本博文介绍如何在STM32F407上完成RTX5的移植。STM32F103与STM32F407的移植步骤是一样的,STM32H743就稍微有一点不一样(中途会弹出STM32CubeMX)。
我使用的Keil版本:
一定要使用最新的CMSIS软件包。下载地址:/dd2/pack/
STM32工程:
链接:/s/1R-zVwt8iqEJFSWCiUGgOsA
提取码:eslp
二、CubeMX
2.1、RCC 与 Clock Configuration
2.2、SYS
2.3、GPIO
2.4、Project Manager
生成代码。
三、Keil
3.1、Target
ARM Compiler选择V5与V6.14都可以,因为V5都快要淘汰了,所以选择V6.14。Use MicroLIB一定要勾选。IRAM1与IRAM2默认勾选即可。3.2、Output
3.3、C/C++(AC6)
3.4、Debug
按照自己的情况,配置Debuger。
接着,编译一下工程。
3.5、模板代码(main.c)
移植RT5之前,先准备能正常闪烁LED的工程。
编译,烧写代码。观察LED灯是否在闪烁。
3.6、开始移植RTX5
点击OK后,返回Keil的工程文件夹。可以看到,多了一个CMSIS的图标,里面全是RTX5的源码。
3.6、隔离Device上的文件
完成隔离步骤后,点击编译代码。发现有三个错误信息,表示以下函数被重复定义:
PendSV_HandlerSysTick_HandlerSVC_Hanler
在文件stm32f4xx_it.c里备注掉刚才说重复定义的三个函数。值得注意的是,这三个函数在每一次使用STM32CubeMX生成工程代码后,都要重新一次备注。
编译代码。
四、代码
4.1、main.h
4.2、main.c
编译,烧写代码。
五、DEBUG
5.1、RTX RTOS
先进入DEBUG模式,接着打开View → Watch Windows → RTX RTOS,打开RTX RTOS调试窗口。
在RTX RTOS窗口可以看到,刚才创建的Start线程与LED线程的信息。
等待约10S后,Start线程退出了。
RTX5在STM32F407VET6上移植成功!
六、细节补充
6.1、移植Event Recorder调试工具
编译,烧写代码后,就可以使用Keil的分析窗口(Analysis Windows)中的System Analyzer,Event Recorder,Event Statistics去调试程序了。
如果觉得《STM32F407+CubeMX+Keil上移植RTX5实时系统》对你有帮助,请点赞、收藏,并留下你的观点哦!