STM32F103C8T6移植FreeRTOS记录
【摘要】之前学习FreeRTOS是基于正点原子战舰开发板F103ZET6,这次尝试将其移植到C8T6最小系统,方便后续做一些个人兴趣的开发,同时之前的学习只是简单的照猫画虎,此次希望能加深理解。
一、获取FreeRTOS源码
1.1 获取方式
通过FreeRTOS官网(freertos.org)下载源码
1.2 目录简介
源代码包含如下目录,其中FreeRTOS为内核源码
FreeRTOS文件夹内容包含如下部分,其中Source为内核源码,Demo为针对各种内核的处理器提供的样例:
Source文件夹内容如下,其中portable文件夹中提供了针对各种编译器和内核的移植文件,是用于连接操作系统与单片机硬件的桥梁
本文使用MDK Keil开发,Keil文件夹是必须的,而其中指向RVDS文件夹,RVDS中包含了不同内核芯片的移植文件。另外需要选取MemMang内存管理文件夹,最终必须的移植文件夹有三:
二、移植步骤
2.1 添加源码、头文件
1. 添加源码
在MDK工程中,将RVDS文件夹中对应内核的port.c以及内存管理文件heap4.c添加到Middlewares的port中,并将portable文件夹中所有源码相关的源文件添加到Middlewares/FreeRTOS中
2. 添加头文件![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/3c60bd85bd81429294a6ee5d02970bac.png)
2.2 添加配置文件FreeRTOSConfig.h
获取途径:
- 自主编写
- 源码Demo文件夹下类似的例程,以本文为例,找到Demo\CORTEX_STM32F103_Keil\FreeRTOSConfig.h进行参考,拷贝到工程中的User目录下
2.3 修改<正点原子>SYSTEM文件夹
参照FreeRTOS指南进行相应的修改
2.4 修改中断相关
2.5 验证程序
三、参考资料
FreeRTOS官网:freertos.org
正点原子FreeRTOS课程