編譯器是monriver,代碼加進去100多個報錯,現(xiàn)在搞好了,主要有幾個注意點。

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

工程里加上這些以后,主程序里添加相關(guān)頭文件,編兩個任務(wù)測試一下。

image.png

這時候編譯還會報錯,需要修改config文件,里面的configCHECK_FOR_STACK_OVERFLOW只能設(shè)置成0,(1,2都會開啟一個函數(shù),但是那個一直找不到參考不知道什么原因,頭文件都引入了),順便改一下時鐘,我設(shè)置的是144M,所以這邊填144000000,最后加上三行定義就好了

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


image.pngimage.png

image.png

最后編譯就不報錯了

串口那邊確實能看到兩個任務(wù)執(zhí)行

9d3e1e8671261003cbd843d1023d46ce.png