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