第一步:首先找一个空的项目文件,编译是否可以正常运行,然后以这个项目为基础,为其添加FreeRTOS
第二步,在新项目中添加FreeRTOS文件夹,并从FreeRTOS的源码项目中,将需要的文件(Source文件夹下方的所有文件)复制到新项目中。
新建文件夹
将下方这些文件添加到新建的FreeRTOS文件夹中
然后将portable文件夹中不需要的文件删除掉
(用keil环境编译,只需要 keil MemMang RVDS这三个文件夹)
第三步,在Keil中添加项目文件
在项目中添加文件夹和文件
添加FreeRTOS_core和FreeRTOS_port文件夹
为FreeRTOS_core文件夹中添加文件,将FreeRTOS文件夹中的第一层目录下的源文件添加进来
为FreeRTOS_port文件夹中添加文件,在portable文件中的源文件
MemMang中的这5个文件添加一个就可以(这里用heap4)
在RVDS文件夹中的ARM_CM3(我用的是stm32F103c8t6板子)文件夹中的port.c源文件
添加完成如图所示
第四步、在C/C++下添加include Paths,添加头文件所在的位置
添加完成如图所示
第五步,编译一下,发现会有报错
缺少FreeRTOSConfig.h文件
此时,将FreeRTOSConfig.h文件添加到include文件夹中,继续编译
发现仍然有两个报错,说是两个函数重定义了。在port.c和stm32f10x_it.o文件中。
此时,我们打开stm32f10x_it.o文件,将其注释掉
在编译一下,没有问题,然后在SysTick_Handler函数中添加如下代码
第六步、更改SysTick.c文件夹(因为此时用的是操作系统,不能再用裸机时候的那套延时方法)
去寻找这两个文件(一个已经建好的项目中),然后复制过来进行替换。
然后进行编译
第七步;添加main.c文件
然后再编译,下载到板子中进行测试。