μC/OS-II作業系統是一種搶佔式多任務、單內存空間、微小內核的嵌入式作業系統,具有高效緊湊的特點。它執行效率高,佔用空間小,可移植性強,實時性能良好且可擴展性強。採用μC/OS-II實時作業系統,可以有效地對任務進行調度;對各任務賦予不同的優先級可以保證任務及時響應;採用實時作業系統,降低了程序的複雜度,方便程序的開發和維護。μC/OS-11非常適合應用在一些小型的嵌入式產品應用場合,在家用電器、機器人、工業控制、航空航天、軍事科技等領域有著廣泛的應用。
本文引用地址:http://www.eepw.com.cn/article/150701.htm單片機、ARM、FPGA與μC/OS-II作業系統相結合,實現一些具體功能,是目前嵌入式應用中比較常見的。在這些應用中,基礎性的工作就是作業系統的移植。本文選取使用較多的51單片機、LPC2210、NiosII三種處理器進行介紹。
1 μC/OS-II作業系統移植條件
μC/OS-II作業系統的大部分原始碼都是用C語言書寫的,但仍需使用彙編語言來完成一些和處理器相關的操作,例如讀寫處理器、寄存器時只能使用彙編語言來實現。因此,將μC/OS-II作業系統移植到目標處理器上,需要從硬體和軟體兩方面來考慮。
硬體方面,目標處理器需滿足以下條件:
①處理器的C編譯器能產生可重入代碼;
②用C語言可以開/關中斷;
③處理器支持中斷,並且能夠產生定時中斷(通常在10~1 000 Hz之間);
④處理器能夠支持容納一定量數據的硬體堆棧;
⑤處理器有將堆棧指針和其他寄存器讀出和存儲到堆棧或內存中的指令。
軟體方面,主要關注的是一些與處理器相關的代碼移植,其分布在OS_CPU.H、OS_CPU_C.C和OS_CPU_A.ASM這3個不同的文件中。
2 目標處理器硬體支持
51單片機、LPC2210、NiosII三種處理器在硬體方面均能滿足μC/OS-II作業系統的移植要求。
51單片機:選擇Keil公司的集成開發環境作為開發工具,因為該集成開發環境的C51編譯器能產生可重入型代碼,且用C語言就可以開/關中斷。同時具有一定數量的堆棧和操作相關寄存器的指令。
LPC2210:採用ARM7微控制器可以滿足上述②、④、⑤,而ADS1.2的C編譯器可以滿足①、③的要求。
NiosII處理器:Nios處理器可以配置成最多支持64個中斷,包括外部硬體中斷、內部中斷以及TRAP(調試中斷)。Nios II處理器可以配置使用32位內部定時器,通過用軟體控制寫入幾個控制寄存器的內容來獲得定時工作,與一般的定時器工作原理相同,可以產生定時中斷。Nios處理器可以外接存儲器。以使用的DE2開發板為例,外接512 KB SRAM資源,可提供足夠的數據硬體堆棧。NioslI 8.0 IDE採用GNU編譯器,支持C/C++的編譯、連結產生重入代碼,允許在C語言中嵌入彙編語言。