μC/OS 和μC/OS-II 是專門為計算機的嵌入式應用設計的, 絕大部分代碼是用C語言編寫的。CPU 硬件相關部分是用匯編語言編寫的、總量約200行的匯編語言部分被壓縮到最低限度,為的是便于移植到任何一種其它的CPU 上。
μC/OS-Ⅱ是一種多任務實時源代碼的公開操作系統(tǒng),內核精簡,移植性較強,非常適合用于一些小型控制和實驗系統(tǒng)的開發(fā)。
軟件定時器是常用于內核設計和應用程序設計的一項基礎軟件措施。本文對μC/OS-II V2.86中新增的用于管理軟件定時器的定時器輪進行了重新規(guī)劃,并對處理算法進行了重新設計,有效提高了軟件定時器的到期命中率,驗證表明,新改進的算法在同等負載下可降低CPU的負載率約9%左右。
如果用戶任務運行在“用戶級+PSP”狀態(tài)下,而調用操作系統(tǒng)函數(shù)時運行在“特權級+MSP”狀態(tài)下,再配合MPU的使用,可以使系統(tǒng)的安全性與穩(wěn)定性得到很大的提高。
介紹了實時操作系統(tǒng)μC/OS-II的特點和內核結構,并首次實現(xiàn)了μC/OS-II在摩托羅拉處理器MPC555上的移植,介紹了移植后OS的應用方法。
針對目前RFID讀寫器無法隨身攜帶,實現(xiàn)遠程的IC卡讀寫操作的問題,采用GPRS無線網(wǎng)絡作為數(shù)據(jù)傳輸?shù)妮d體,實現(xiàn)了無線RFID讀寫器的開發(fā)。采用μC/OS-Ⅱ嵌入式實時操作系統(tǒng)作為讀寫器終端的軟件平臺,在ARM7系列微處理器LPC2148上實現(xiàn)了對IC卡的發(fā)行、加值、消費、操作記錄查詢與匯總、數(shù)據(jù)采集以及無線傳輸。采用動態(tài)密鑰加密算法很好地保證了IC卡的數(shù)據(jù)安全。
為了使嵌入式操作系統(tǒng)μC/OS-Ⅱ更加適合數(shù)控系統(tǒng)的應用,對μC/OS-Ⅱ的任務分類和任務調度做了改進。將任務分為普通任務和搶占式任務。搶占式任務不通過調度器調度運行,而在中斷處理中直接運行。搶占式任務對應數(shù)控系統(tǒng)中執(zhí)行頻率高,執(zhí)行時間短的任務。實驗證明,改進后的μC/OS-Ⅱ更適合數(shù)控系統(tǒng)任務的添加。
本文設計了實時系統(tǒng)加速RTA(Real-Time Acceleration)模塊,對任務調度和系統(tǒng)時間管理進行硬件化,降低了任務中斷時間,并對最終的測量數(shù)據(jù)進行對比,得出結論。
μc/Os-Ⅱ的就緒表設置、清除、查找算法,是高效的、跨平臺的程序。它使用了兩個查找數(shù)組OSMapTbl[8]和OSUnMapTbl[256],以提高查找就緒表的速度,盡快獲取就緒任務的最高優(yōu)先級。
多窗口顯示屏控制采用μC/OS-II實時操作系統(tǒng)的多任務管理運行模式,各窗口視頻數(shù)據(jù)由線程管理,Nios II 32位處理器作為顯示屏控制器硬件系統(tǒng)的核心,軟件系統(tǒng)控制多窗口任意顯示。在1片F(xiàn)PGA上實現(xiàn)顯示屏控制器的硬件系統(tǒng),利用SOPC Builder軟件定制系統(tǒng)所需的IP核,外擴存儲設備實現(xiàn)視頻數(shù)據(jù)的海量存儲,解決了FPGA內部資源相對不足的問題。通過重構視頻數(shù)據(jù),合理組織數(shù)據(jù)的存儲方式,解決視頻數(shù)據(jù)的灰度控制問題,減少數(shù)據(jù)處理過程,降低了控制系統(tǒng)的復雜度。
本文的創(chuàng)新之處在于針對μC/OSII在內存管理可靠性不高、內存塊分配不夠靈活的特點,借鑒Buddy算法思想,對其進行改進,形成了一種基于Buddy算法思想、高可靠性的內存管理策略。實驗表明,新方案一次創(chuàng)建內存區(qū),即可滿足內存塊大小需求不均勻的場合,既提高內存分配的靈活性,避免了大量內碎片的產(chǎn)生,又增強了內存分配的可靠性。因此,新方案在可靠性要求高的嵌入式系統(tǒng)中可以得到更好的應用。
筆者將以μC/OS-II實時內核為例,通過對μC/OS-II的改進,向讀者描述一種縮短實時操作系統(tǒng)中斷關閉時間的方法。之所以選擇μC/OS-II,一是因為讀者容易獲得相關代碼,國內很多讀者也對μC/OS-II有一定程度的了解;二是因為其自身結構簡單,適合運用于低檔嵌入式處理器,關中斷時間的問題更加突出。低檔嵌入式處理器的處理速度慢,在關中斷時間里處理相同的軟件代碼,花費的時間更長,相對地延長了關中斷時間,這時盡量從軟件著手解決關中斷時間的問題。
μC/OS-II實時操作系統(tǒng)是開放源代碼且得到實際驗證的軟件平臺,而S3C44BOx具有強大的32位RISC性能,基于此軟件及硬件平臺對GPRS模塊進行設計,能大量減輕研發(fā)任務,提高研發(fā)速度,為在短時間內實現(xiàn)GPRS終端系統(tǒng)設計創(chuàng)造良好條件。
uCOS II移植跟OS_CUP_C.C、OS_CPU_A.S、OS_CPU.H 3個文件有關,中斷處理的移植占據(jù)了很大一部分內容。作為移植的一個重點,本文以標準中斷(IRQ)為例討論了移植中的中斷處理。
μC/OS是Jean J.Labrosse開發(fā)的實時多任務內核,最初是為Motorola 8位處理器68HC11寫的。在后來的相關著作中,作者將代碼移植到了PC上,以便于更多的讀者學習。μC/OSII繼承了μC/OS的算法,有執(zhí)行效率高、占用空間小、實時性強和可擴展性好等特點,被移植到幾乎所有類型的CPU上,成為在嵌入式領域非常有影響力的RTOS。然而,由于該實時內核是為8位CPU設計的,對于那些具有優(yōu)先級算法硬件指令的CPU,僅做移植是很不夠的。
多任務的時間片調度在嵌入式領域有實用價值。一方面是很多嵌入式軟件系統(tǒng)升級有這種需求,舊的軟件模塊基于Endless?。蹋铮铮饘崿F(xiàn),升級到μC/OS-II后,若要最大限度地復用舊的軟件模塊,時間片調度算法是實現(xiàn)舊的設計模式到新架構之間最簡單的橋梁。另一方面,對于控制領域,存在大量的耗時任務無法自動釋放控制權,時間片調度降低了任務
多窗口顯示屏控制采用μC/OSII實時操作系統(tǒng)的多任務管理運行模式,各窗口視頻數(shù)據(jù)由線程管理,Nios II 32位處理器作為顯示屏控制器硬件系統(tǒng)的核心,軟件系統(tǒng)控制多窗口任意顯示。在1片F(xiàn)PGA上實現(xiàn)顯示屏控制器的硬件系統(tǒng),利用SOPC Builder軟件定制系統(tǒng)所需的IP核,外擴存儲設備實現(xiàn)視頻數(shù)據(jù)的海量存儲,解決了FPGA內部資源相
憑借uC/OSⅡ靈活的任務間通信的能力,采用消息郵箱Mbox從數(shù)據(jù)生成任務中將打印數(shù)據(jù)傳送給打印任務。在不同任務中,將暫時不需要工作的任務掛起,而將需要工作的任務恢復運行,圓滿地實現(xiàn)了三維打印的快速、精確控制。
隨著物聯(lián)網(wǎng)技術的不斷發(fā)展,嵌入式科技得到更為廣泛的應用,其中FPGA和嵌入式操作系統(tǒng)的組合前景良好,它們的應用極大的改變了嵌入式開發(fā)的效率。為使得Nios II軟核和RTEMS嵌入式系統(tǒng)相結合,首先介紹了Nios II的軟件開發(fā)環(huán)境,然后詳細闡述如何在Nios II平臺下搭建RTEMS嵌入式開發(fā)環(huán)境。
本文介紹了抽油電機變頻器變結構控制系統(tǒng)功能原理,如何利用uC/OS-II的多任務功能實現(xiàn)控制系統(tǒng)的算法結構變換,操作系統(tǒng)的移植、多任務的建立和SDK下的軟件設計,最后總結了