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