编译器是monriver,代码加进去100多个报错,现在搞好了,主要有几个注意点。

image.png

下的是这个202406.01 LTS的版本,然后解压以后文件夹名称是FreeRTOS-LTS

找到 FreeRTOS-LTS/FreeRTOS/FreeRTOS-Kernel 这个文件夹,这里面就是移植需要的大部分代码

这些是要用到的文件,include里的CmakeLists.txt不需要,portable中只需要MemMang/heap_4.c和GCC/ARM_CM3中的两个文件

image.png

这时候还缺一个重要文件FreeRTOSConfig.h,这个需要去这里面找https://github.com/FreeRTOS/FreeRTOS/tree/main/FreeRTOS/Demo

image.png

使用这里面的 FreeRTOSConfig.h 文件

image.png

工程里加上这些以后,主程序里添加相关头文件,编两个任务测试一下。

image.png

这时候编译还会报错,需要修改config文件,里面的configCHECK_FOR_STACK_OVERFLOW只能设置成0,(1,2都会开启一个函数,但是那个一直找不到参考不知道什么原因,头文件都引入了),顺便改一下时钟,我设置的是144M,所以这边填144000000,最后加上三行定义就好了

#define vPortSVCHandler SVC_Handler
#define xPortPendSVHandler PendSV_Handler
#define xPortSysTickHandler SysTick_Handler


image.pngimage.png

image.png

最后编译就不报错了

串口那边确实能看到两个任务执行

9d3e1e8671261003cbd843d1023d46ce.png