|
|
最近在學(xué)嵌入式操作系統(tǒng),我在正點(diǎn)原子精英版的上面做任務(wù)管理和處理,采用的是FREERTOS操作系統(tǒng),而關(guān)于FREERTOS操作系統(tǒng)有很多介紹。第一步 FREERTOS簡介
FreeRTOS是一個迷你的實(shí)時操作系統(tǒng)內(nèi)核。作為一個輕量級的操作系統(tǒng),功能包括:任務(wù)管理、時間管理、信號量、消息隊列、內(nèi)存管理、記錄功能、軟件定時器、協(xié)程等,可基本滿足較小系統(tǒng)的需要。由于RTOS需占用一定的系統(tǒng)資源(尤其是RAM資源),只有μC/OS-II、embOS、salvo、FreeRTOS等少數(shù)實(shí)時操作系統(tǒng)能在小RAM單片機(jī)上運(yùn)行。相對μC/OS-II、embOS等商業(yè)操作系統(tǒng),F(xiàn)reeRTOS操作系統(tǒng)是完全免費(fèi)的操作系統(tǒng),具有源碼公開、可移植、可裁減、調(diào)度策略靈活的特點(diǎn),可以方便地移植到各種單片機(jī)上運(yùn)。
第二步 準(zhǔn)備工作
FREERTOS系統(tǒng) ,一個工程,越簡單越好,這里我就用的庫函數(shù)版本的LED工程,在LED文件里創(chuàng)建FREERTOS文件夾來放FREERTOS源代碼,然后就是 portable文件夾里面只剩下這三個文件,keli、MemMang、RVDS,
51hei截圖20201127174831.png (161.06 KB, 下載次數(shù): 77)
下載附件
2020-11-27 17:50 上傳
FREERTTOS文件夾.png (78.27 KB, 下載次數(shù): 85)
下載附件
2020-11-27 17:50 上傳
portable.png (57.77 KB, 下載次數(shù): 108)
下載附件
2020-11-27 17:55 上傳
這些弄好之后,打開工程添加文件夾FREERTOS_CODE和FREERTOS_PORTABLE倆個文件夾,這是我添加的以后的(這里我們的用的ARM3的內(nèi)核所以選用ARM3),還有對應(yīng)的.h的頭文件也要添加進(jìn)去,
端口.png (366.94 KB, 下載次數(shù): 104)
下載附件
2020-11-27 17:59 上傳
頭文件.png (98.52 KB, 下載次數(shù): 90)
下載附件
2020-11-27 18:06 上傳
然后編譯會出現(xiàn)錯誤,這是因為缺少了一個頭文件FreeRTOSConfig.h,我們從別的demo復(fù)制一個過來,然后放在include文件夾里面,再進(jìn)行編譯
錯誤.png (69.24 KB, 下載次數(shù): 138)
下載附件
2020-11-27 18:06 上傳
然后又會出現(xiàn)倆個錯誤
2個錯誤.png (63.91 KB, 下載次數(shù): 86)
下載附件
2020-11-27 18:09 上傳
我們?nèi)ハ鄳?yīng)的文件里面去修改,
錯誤1.png (317.63 KB, 下載次數(shù): 90)
下載附件
2020-11-27 18:13 上傳
錯誤2.png (313.01 KB, 下載次數(shù): 91)
下載附件
2020-11-27 18:13 上傳
然后編譯就沒有錯誤了,因為我們用的是正點(diǎn)原子的代碼,所以我們要開啟FREETRTOS的系統(tǒng)的時鐘,雖然沒有錯誤,但是FREERTOS還是不能用
完成.png (327.8 KB, 下載次數(shù): 89)
下載附件
2020-11-27 18:13 上傳
找到sys.c文件,然后找到sys.h文件,把這個宏定義改成1
請用.png (598.95 KB, 下載次數(shù): 93)
下載附件
2020-11-27 18:16 上傳
然后我們接著修改,把這倆個的 includes.h都改成FREERTOS.h
修改1.png (380.17 KB, 下載次數(shù): 106)
下載附件
2020-11-27 18:21 上傳
修改2.png (351.41 KB, 下載次數(shù): 103)
下載附件
2020-11-27 18:21 上傳
然后編譯,會報錯誤,因為重復(fù)的定義了,
錯誤11.png (258.81 KB, 下載次數(shù): 90)
下載附件
2020-11-27 18:22 上傳
我們點(diǎn)擊對應(yīng)的錯誤,就能到錯誤的地方,要是 找不到就找對應(yīng)的.c文件
錯誤1.png (317.63 KB, 下載次數(shù): 84)
下載附件
2020-11-27 18:46 上傳
錯誤2.png (313.01 KB, 下載次數(shù): 86)
下載附件
2020-11-27 18:46 上傳
然后編譯又會出現(xiàn)錯誤,我們接著修改delay.c文件
delay.png (323 KB, 下載次數(shù): 92)
下載附件
2020-11-27 18:50 上傳
修改10.png (321.89 KB, 下載次數(shù): 81)
下載附件
2020-11-27 18:50 上傳
修改11.png (251.13 KB, 下載次數(shù): 94)
下載附件
2020-11-27 18:50 上傳
修改12.png (520.6 KB, 下載次數(shù): 85)
下載附件
2020-11-27 18:50 上傳
修改13.png (269.99 KB, 下載次數(shù): 81)
下載附件
2020-11-27 18:50 上傳
我們最后這步添加一個延時函數(shù)。
修改14.png (283.81 KB, 下載次數(shù): 84)
下載附件
2020-11-27 18:50 上傳
現(xiàn)在我們的FREERTOS就可以用了
主函數(shù).png (147.25 KB, 下載次數(shù): 79)
下載附件
2020-11-27 18:53 上傳
主函數(shù)1.png (154.12 KB, 下載次數(shù): 84)
下載附件
2020-11-27 18:53 上傳
這個代碼是我們測試用的,以后會講到,所以可以先從別處復(fù)制先來,測試一下自己是否移植成功。
以下的是代碼和我自己一直好的文件,哪個地方寫的不好,請大家見諒!!
全部資料51hei下載地址:
相關(guān)文件.7z
(10.53 MB, 下載次數(shù): 92)
2020-11-27 23:17 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評分
-
查看全部評分
|