一、准备工作
- 使用TrueSTUDIO建立一个裸机工程
- 准备一个FreeRTOS源码包(我用的是FreeRTOSV8.2.3)
二、开始移植
首先在裸机工程Project_3目录中建立一个Middlewares文件夹存放FreeRTOS源码,如下图一所示。
![](https://i-blog.csdnimg.cn/blog_migrate/ca06c88e36ef7ac01013937d81977770.png)
接下来对源码进行取舍,需要删减的文件存放在portable文件夹中,如下图二所示,只保留GCC和MemMang文件夹。
![](https://i-blog.csdnimg.cn/blog_migrate/d35e4755dcac138910c598d7c0a40b01.png)
首先删减GCC文件夹中的文件,因为我使用的是STM32F429内核是M4,就只保留了ARM_CM4F文件夹,里面的文件不用动,如下图三所示。
![](https://i-blog.csdnimg.cn/blog_migrate/72f6d90fc6a455611af462ceafc6e752.png)
接着删减MemMang文件夹的文件,这里只保留heap_4.c文件。
![](https://i-blog.csdnimg.cn/blog_migrate/9171be119a15e6173fe50eaaf694d8c2.png)
刷新工程(选中工程-->点击右键-->点击Refresh),会发现多了一个Middlewares夹,即为我们添加的FreeRTOS的源码,如下图五所示。
![](https://i-blog.csdnimg.cn/blog_migrate/6bd0bf8edd6c81494609b39fb1bb69b7.png)
再在Project_3工程中建立两个文件夹Bsp用来存放bsp.c和bsp.h文件、Driver用来存放外设驱动程序,如下图六和图七所示。
![](https://i-blog.csdnimg.cn/blog_migrate/ce2cd67eb1e1b0ab41447361820acf7f.png)
![](https://i-blog.csdnimg.cn/blog_migrate/946a107d4755ac8131642c96ecc4a769.png)
分别向bsp.c和bsp.h文件中添加代码。
#include "bsp.h"
void bsp_Init(void)
{
/* 分配优先级分组,以后不再分配. */
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);
/* 更新系统时钟 */
SystemCoreClockUpdate();
/* 下面添加外设驱动程序初始化函数 */
}
#ifndef _BSP_H
#define _BSP_H
#in