概述
本文主要描述了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软件库管理



















