rtosc語言編譯器
發布時間: 2024-05-27 13:33:48
1. FreeRTOS 移栽要點怎麼解決
FreeRTOS 的移植主要需要改寫如下三個文件。
1.portmacro.h
2.port.c
3.port.asm
如果採用的C編譯器允許在C代碼中插入匯編,並且支持用C語言寫中斷處理函數。則port.asm 文件的內容是可以物哪合並到port.c 中的。
下面以將 FreeRTOS 移植到FreeScale 68HCS12內核的單片機為例,開發環境採用:CodeWarriorDevelopment Studio V5.9.0
之所以採用FreeScale 68HCS12 作為示例 CPU,是因為我以前寫過一篇將uC/OS-II移植到FreeScale 68HCS12 核單片機的筆記。採用同樣晌皮的CPU,同樣的開發環境,可以方便我們比較兩種不同實時操作系統的移植代碼的異同。另外,FreeScale 68HCS12 相對ARM、MIPS 等構架要簡單的多。移植代碼量相對來說也要小一些,因此也更容易入門。
portmacro.h
portmacro.h 主要包括兩部分內容,第一部分定義了一系列內核代碼中用到的數據類型。FreeRTOS 與 uC/OS-II 一樣,並不直接使用char、int 等這些原生類型,而是將其重新定義為一系列以port開頭的新類型。在uC/OS-II的移植代碼中,通常採用 typedef 來定義新的類型,而FreeRTOS的作者似乎更喜歡用宏定義。下面是相應的代碼片段。
之所以要搞這兩個宏,是為了利用某些C編譯器的擴展功能對任務函數進行更好的優化。CodeWarrior 並不提供相關的功能,所以在這里任務就是普通的函數。
熱點內容