STM32 使用st的官方开发环境 cubeide (eclipse gcc)移植 cmsis rtos2 RTX5 实时操作系统
这套环境的主要优势是免费。cubeide免费使用。RTX5 免商业版税(已从原keil中剥离出来,现在完全开源免费)。
一,环境
- 芯片:stm32f401rct6
- 内核:cortex m4f
- 指令集:armv7m
- 编译:gcc
- ide:CubeIDE(eclipse)
- CMSIS版本:5.9.0
- RTOS2/RTX5 V2.1.3
- HAL库开发
- cubeMX配置生成
二,简明步骤
1,cubemx配置,注意点sys时钟选除sysclock外其他时钟源,因为sysclock给rtos用了 ,而HAL库
2,拷贝CMSIS中 RTOS2 到工程目录
3,添加RTE_Components.h文件,此文件可以自己写,或从keil MDK生成的工程中直接复制过来,注意 device header 匹配对应芯片头文件
4, 进入CUBEIDE 工程中,右键工程 Refresh后可以看到新添加进的文件。再同样右键并点击Properties
5,在C/C++ General中Paths and Sysmbols中添加引用与宏定义
6,在C/C++ General中Source Location中添加RTOS2路径下全部程序源文件
7,在C/C++ General中Source Location中排除RTOS2路径下不需要的程序源文件
注意RTX/Source/GCC下保留对应自己芯片内核的.S文件,即排除不是自己内核的.S文件 (stm32f401对应保留的内核指令集文件是irq_armv7m.S)
另外,也可以直接从磁盘删掉这些需要排除的文件,就可以省掉这步了。
8,以上操作完成后检查下RTOS2目录,排除的文件或目录会划斜杠
9,在stm32f4xx_it.c注释或删除图中三个函数SVC_Handler、PendSV_Handler、SysTick_Handler,否则编译时会报重定义错误,因为这三个函数被RTOS接管了
10,最后在main.h中添加cmsis_os2.h并BUILD工程,完成移植
三,参考
1,GD32F30X适配CMSIS RTOS2(RTX5内核)
2,【GD32F427开发板试用】在IAR环境中移植RTX5 [推荐]
3,STM32F407+CubeMX+Keil上移植RTX5实时系统