概述
本文主要描述了STM32F103移植FreeRTOS的简要步骤。移植描述过程中,忽略了Keil软件的部分使用技巧。默认读者熟练使用Keil软件。本文的描述是基于OpenMCU_RTOS这个工程,该工程已经下载放好了移植STM32F103 FreeRTOS的所有文件
OpenMCU_RTOS工程的愿景主要有:
1.、能移植支持主流mcu的freeRTOS
2、深入分析FreeRTOS代码和第三方库代码,让嵌入式学习变得非常容易;
3、集成一些嵌入式产品中常用的第三方库文件,并且该工程会开发做一些产品原型,所有的技术方案,就像它的名字一样,全部开源。
移植步骤
1、keil创建STM32F103的工程
注意:一定要选中RTE中CMSIS中的CORE部分
2、工程创建完毕后,在keil中建立分组管理,如下所示:
3、创建完成后的效果:
4、下载FreeRTOS源码
本文在描述过程中,所有的源码都是基于OpenMCU_RTOS工程。文章的最后部分,有该工程的链接。
5、在刚才新创建的keil STM32F103工程目录下创建Appication文件夹
6、将如下文件拷贝到Application文件夹下面.
注:
该文件已经拷贝并放入了OpenMCU_RTOS工程;读者可以通过文章最后的连接,获得工程源码。
7、Application分组添加c文件
8、CMSIS添加system_stm32f1xx.c C文件,文件存放的路径为:
OpenMCU_RTOS\arch\STM32\STM32F1XX\CMSIS\Device\ST\STM32F1xx\Source\Templates
9、添加STM32F103xx BSP驱动文件,文件路径为:
OpenMCU_RTOS\arch\STM32\STM32F1XX\STM32F1xx_HAL_Driver\Src
10、添加启动文件startup_stm32f103x6.s,文件路径为:
OpenMCU_RTOS\arch\STM32\STM32F1XX\CMSIS\Device\ST\STM32F1xx\Source\Templates\arm
11、添加freeRTOS内核C文件,文件路径为:
OpenMCU_FreeRTOS\kernel
12、添加内核移植中的与STM32F103架构相关的代码
需要关注的文件路径:
port.c文件:\OpenMCU_RTOS\kernel\portable\RVDS\ARM_CM3
heap_4.c: OpenMCU_FreeRTOS\kernel\portable\MemMang
FreeRTOSConfig.h: OpenMCU_RTOS\project\STM32F1\Keil\Application
13、所有分组添加完后如下图所示:
14、添加编译时的头文件路径
1、Application
2、OpenMCU_RTOS\arch\STM32\STM32F1XX\CMSIS\Include
3、OpenMCU_RTOS\arch\STM32\STM32F1XX\CMSIS\Device\ST\STM32F1xx\Include
4、OpenMCU_RTOS\arch\STM32\STM32F1XX\STM32F1xx_HAL_Driver\Inc
5、OpenMCU_FreeRTOS\kernel\include
6、OpenMCU_RTOS\kernel\portable\RVDS\ARM_CM3
添加完成后,如下所示:
15、编译器选项设置
a、编译器版本选择
加入STM32E230定义和修改编译警告级别
16、删除stm32f1xx_it.c文件中的如下函数定义
17、编译输出
工程连接
OpenMCU_RTOS: 开源MCU软件库管理