資料介紹
嵌入式操作系統(tǒng)μC/OS-Ⅱ是一個可裁剪、源碼開放、結(jié)構(gòu)小巧、搶先式的實(shí)時多任務(wù)內(nèi)核,主要面向中小型嵌入式系統(tǒng),具有執(zhí)行效率高,占用空間小,可移植性強(qiáng),實(shí)時性能優(yōu)良和可擴(kuò)展性強(qiáng)等特點(diǎn)。數(shù)控系統(tǒng)是一個典型的強(qiáng)實(shí)時性系統(tǒng),具有可確定性??纱_定性主要是確保條件出現(xiàn)到由此引起的動作開始(或者結(jié)束)的時間在一個準(zhǔn)確的時段內(nèi)。在數(shù)控系統(tǒng)中,條件是由操作員的指令(如:緊急停止、移動x軸等)或是機(jī)床的狀態(tài)(如刀具破損等)引起的。本文分析了數(shù)控系統(tǒng)任務(wù)的特點(diǎn),結(jié)合μC/OS-Ⅱ的內(nèi)核體系,對μC/OS-Ⅱ的任務(wù)分類、任務(wù)調(diào)度和中斷服務(wù)策略做了改進(jìn),使其更加適合于數(shù)控系統(tǒng)的應(yīng)用。
1 μC/OS-Ⅱ?qū)θ蝿?wù)的分類
μC/OS-Ⅱ中每個任務(wù)有5種狀態(tài):休眠(DORMANT)、就緒(READY)、運(yùn)行(RUNNING)、等待(WAITING)、中斷(ISR)。休眠狀態(tài)的任務(wù)駐留在存儲器中,還未被內(nèi)核使用;就緒狀態(tài)的任務(wù)準(zhǔn)備執(zhí)行,優(yōu)先級低于當(dāng)前執(zhí)行的任務(wù),沒有得到CPU控制權(quán);任務(wù)得到CPU控制權(quán)后就處于運(yùn)行狀態(tài);等待事件發(fā)生的任務(wù)處于等待狀態(tài),事件可以是I/O操作完成、共享資源可以利用、時鐘周期到等;任務(wù)執(zhí)行過程被中斷服務(wù)例程中斷,任務(wù)就處于中斷狀態(tài)。
2 μC/OS-Ⅱ面向數(shù)控系統(tǒng)的改進(jìn)
2.1 數(shù)控系統(tǒng)任務(wù)的特點(diǎn)
在數(shù)控系統(tǒng)中,任務(wù)可分為兩種:周期運(yùn)行的任務(wù)和信號觸發(fā)運(yùn)行的任務(wù),這里所說的信號即包括硬件信號,也包括軟件信號。周期運(yùn)行的任務(wù)有定時信號采樣、定時I/O口掃描、定時通信等。信號觸發(fā)運(yùn)行的任務(wù)有中斷信號(硬件信號)觸發(fā)的中斷服務(wù)任務(wù),命令消息信號(軟件信號)觸發(fā)的命令解釋任務(wù)等。另外,數(shù)控系統(tǒng)中,有些任務(wù)還具有運(yùn)行時間短,運(yùn)行頻率高,要求實(shí)時性高的特點(diǎn),如信號采樣、數(shù)控機(jī)床中的插補(bǔ)控制等。
2.2 改進(jìn)后的任務(wù)劃分
在改進(jìn)后的嵌入式操作系統(tǒng)中任務(wù)分為兩類:普通任務(wù)和搶占式任務(wù)。普通任務(wù)指通過操作系統(tǒng)調(diào)度器調(diào)度運(yùn)行的任務(wù),調(diào)度方法如圖1所示;搶占式任務(wù)指那些不通過調(diào)度器調(diào)度運(yùn)行,而是在中斷處理中直接運(yùn)行的任務(wù)。下面詳細(xì)說明這兩種任務(wù)。

2.2.1 普通任務(wù)
根據(jù)數(shù)控系統(tǒng)任務(wù)多為周期任務(wù)和信號觸發(fā)任務(wù)這一特點(diǎn),將普通任務(wù)分為兩種:定時運(yùn)行的周期任務(wù)(簡稱周期任務(wù))和信號觸發(fā)運(yùn)行的隨機(jī)任務(wù)(簡稱隨機(jī)任務(wù))。相應(yīng)的,任務(wù)狀態(tài)被劃分為6種:運(yùn)行態(tài)、就緒態(tài)、等待態(tài)、停止態(tài)、掛起態(tài)和中斷態(tài)。圖1為改進(jìn)后的任務(wù)狀態(tài)切換圖。
在這六種狀態(tài)中,運(yùn)行態(tài)、就緒態(tài)和中斷態(tài)對應(yīng)μC/OS-Ⅱ的READY,RUNNING和ISR;掛起態(tài)是任務(wù)在執(zhí)行完成前,因等待某事件或資源而被迫停止運(yùn)行,等待事件或資源到來的狀態(tài);等待態(tài)是周期任務(wù)完成一次運(yùn)行,等待運(yùn)行周期到再次運(yùn)行時的狀態(tài);停止態(tài)是隨機(jī)任務(wù)等待其觸發(fā)信號的狀態(tài)。這里去掉了休眠態(tài),即沒有任務(wù)的刪除,所有的任務(wù)一旦建立,在系統(tǒng)運(yùn)行期間一直存在。這樣的處理是因?yàn)樵跀?shù)控系統(tǒng)應(yīng)用中,所有建立的任務(wù)一定是有用的,即在系統(tǒng)運(yùn)行期間一定會被執(zhí)行,無用的代碼和任務(wù)不會被添加。在μC/OS-Ⅱ中,設(shè)定每個任務(wù)都是一個無限的循環(huán),即任務(wù)函數(shù)永不返回,這樣做是不合適的。該操作系統(tǒng)允許任務(wù)函數(shù)返回,返回后調(diào)用函數(shù)OSTaskEndDeal(),該函數(shù)根據(jù)任務(wù)的類別,把周期任務(wù)放入等待隊(duì)列,把隨機(jī)任務(wù)放入停止隊(duì)列。
2.2.2 搶占式任務(wù)
搶占式任務(wù)為執(zhí)行時間短且執(zhí)行頻率高于OS系統(tǒng)時鐘頻率(如信號采樣),或?qū)崟r要求高(如數(shù)控機(jī)床中的插補(bǔ)控制)的任務(wù)。調(diào)度任務(wù)時間(主要是任務(wù)切換所花費(fèi)的時間)往往比這類任務(wù)運(yùn)行一次的時間還多,這顯然是不合理的,搶占式任務(wù)正是為解決這種不合理而設(shè)計(jì)的。搶占式任務(wù)不通過OS調(diào)度器調(diào)度運(yùn)行,也不采用TCB(任務(wù)控制塊)標(biāo)識它們,而是在它們的中斷觸發(fā)信號到達(dá)時,在中斷中_直接處理,這樣做節(jié)省了調(diào)度、任務(wù)切換的時間。但是,由于搶占式任務(wù)沒有TCB,也就沒有相應(yīng)的任務(wù)堆棧,所以搶占式任務(wù)在使用資源上要特別注意:一定要使用獨(dú)立的資源。這樣既可以使搶占式任務(wù)正常運(yùn)行,又可以避免搶占式任務(wù)對被中斷程序的環(huán)境造成破壞。具體辦法如下:
(1)專用寄存器組。若處理程序中使用了寄存器,則為其分配專用的寄存器組,這樣也省去了保存/恢復(fù)寄存器的時間消耗。
?。?)全局變量。因?yàn)楹瘮?shù)內(nèi)部的局部變量是分配在堆棧中的,直接處理方式不形成任務(wù),沒有自己的堆棧,如果使用局部變量,其局部變量會分配在被中斷任務(wù)的堆棧內(nèi),所以在該方式下任務(wù)應(yīng)使用全局變量。用戶在設(shè)計(jì)搶占式任務(wù)時要有一定限制,否則會影響系統(tǒng)的響應(yīng)時間。具體限制如下:第一,數(shù)量不能太多,最好小于等于3個;第二,必須是執(zhí)行時間短,執(zhí)行頻率高的任務(wù)才能被設(shè)為搶占式任務(wù)。
3 需要修改的內(nèi)核數(shù)據(jù)和函數(shù)
1 μC/OS-Ⅱ?qū)θ蝿?wù)的分類
μC/OS-Ⅱ中每個任務(wù)有5種狀態(tài):休眠(DORMANT)、就緒(READY)、運(yùn)行(RUNNING)、等待(WAITING)、中斷(ISR)。休眠狀態(tài)的任務(wù)駐留在存儲器中,還未被內(nèi)核使用;就緒狀態(tài)的任務(wù)準(zhǔn)備執(zhí)行,優(yōu)先級低于當(dāng)前執(zhí)行的任務(wù),沒有得到CPU控制權(quán);任務(wù)得到CPU控制權(quán)后就處于運(yùn)行狀態(tài);等待事件發(fā)生的任務(wù)處于等待狀態(tài),事件可以是I/O操作完成、共享資源可以利用、時鐘周期到等;任務(wù)執(zhí)行過程被中斷服務(wù)例程中斷,任務(wù)就處于中斷狀態(tài)。
2 μC/OS-Ⅱ面向數(shù)控系統(tǒng)的改進(jìn)
2.1 數(shù)控系統(tǒng)任務(wù)的特點(diǎn)
在數(shù)控系統(tǒng)中,任務(wù)可分為兩種:周期運(yùn)行的任務(wù)和信號觸發(fā)運(yùn)行的任務(wù),這里所說的信號即包括硬件信號,也包括軟件信號。周期運(yùn)行的任務(wù)有定時信號采樣、定時I/O口掃描、定時通信等。信號觸發(fā)運(yùn)行的任務(wù)有中斷信號(硬件信號)觸發(fā)的中斷服務(wù)任務(wù),命令消息信號(軟件信號)觸發(fā)的命令解釋任務(wù)等。另外,數(shù)控系統(tǒng)中,有些任務(wù)還具有運(yùn)行時間短,運(yùn)行頻率高,要求實(shí)時性高的特點(diǎn),如信號采樣、數(shù)控機(jī)床中的插補(bǔ)控制等。
2.2 改進(jìn)后的任務(wù)劃分
在改進(jìn)后的嵌入式操作系統(tǒng)中任務(wù)分為兩類:普通任務(wù)和搶占式任務(wù)。普通任務(wù)指通過操作系統(tǒng)調(diào)度器調(diào)度運(yùn)行的任務(wù),調(diào)度方法如圖1所示;搶占式任務(wù)指那些不通過調(diào)度器調(diào)度運(yùn)行,而是在中斷處理中直接運(yùn)行的任務(wù)。下面詳細(xì)說明這兩種任務(wù)。

2.2.1 普通任務(wù)
根據(jù)數(shù)控系統(tǒng)任務(wù)多為周期任務(wù)和信號觸發(fā)任務(wù)這一特點(diǎn),將普通任務(wù)分為兩種:定時運(yùn)行的周期任務(wù)(簡稱周期任務(wù))和信號觸發(fā)運(yùn)行的隨機(jī)任務(wù)(簡稱隨機(jī)任務(wù))。相應(yīng)的,任務(wù)狀態(tài)被劃分為6種:運(yùn)行態(tài)、就緒態(tài)、等待態(tài)、停止態(tài)、掛起態(tài)和中斷態(tài)。圖1為改進(jìn)后的任務(wù)狀態(tài)切換圖。
在這六種狀態(tài)中,運(yùn)行態(tài)、就緒態(tài)和中斷態(tài)對應(yīng)μC/OS-Ⅱ的READY,RUNNING和ISR;掛起態(tài)是任務(wù)在執(zhí)行完成前,因等待某事件或資源而被迫停止運(yùn)行,等待事件或資源到來的狀態(tài);等待態(tài)是周期任務(wù)完成一次運(yùn)行,等待運(yùn)行周期到再次運(yùn)行時的狀態(tài);停止態(tài)是隨機(jī)任務(wù)等待其觸發(fā)信號的狀態(tài)。這里去掉了休眠態(tài),即沒有任務(wù)的刪除,所有的任務(wù)一旦建立,在系統(tǒng)運(yùn)行期間一直存在。這樣的處理是因?yàn)樵跀?shù)控系統(tǒng)應(yīng)用中,所有建立的任務(wù)一定是有用的,即在系統(tǒng)運(yùn)行期間一定會被執(zhí)行,無用的代碼和任務(wù)不會被添加。在μC/OS-Ⅱ中,設(shè)定每個任務(wù)都是一個無限的循環(huán),即任務(wù)函數(shù)永不返回,這樣做是不合適的。該操作系統(tǒng)允許任務(wù)函數(shù)返回,返回后調(diào)用函數(shù)OSTaskEndDeal(),該函數(shù)根據(jù)任務(wù)的類別,把周期任務(wù)放入等待隊(duì)列,把隨機(jī)任務(wù)放入停止隊(duì)列。
2.2.2 搶占式任務(wù)
搶占式任務(wù)為執(zhí)行時間短且執(zhí)行頻率高于OS系統(tǒng)時鐘頻率(如信號采樣),或?qū)崟r要求高(如數(shù)控機(jī)床中的插補(bǔ)控制)的任務(wù)。調(diào)度任務(wù)時間(主要是任務(wù)切換所花費(fèi)的時間)往往比這類任務(wù)運(yùn)行一次的時間還多,這顯然是不合理的,搶占式任務(wù)正是為解決這種不合理而設(shè)計(jì)的。搶占式任務(wù)不通過OS調(diào)度器調(diào)度運(yùn)行,也不采用TCB(任務(wù)控制塊)標(biāo)識它們,而是在它們的中斷觸發(fā)信號到達(dá)時,在中斷中_直接處理,這樣做節(jié)省了調(diào)度、任務(wù)切換的時間。但是,由于搶占式任務(wù)沒有TCB,也就沒有相應(yīng)的任務(wù)堆棧,所以搶占式任務(wù)在使用資源上要特別注意:一定要使用獨(dú)立的資源。這樣既可以使搶占式任務(wù)正常運(yùn)行,又可以避免搶占式任務(wù)對被中斷程序的環(huán)境造成破壞。具體辦法如下:
(1)專用寄存器組。若處理程序中使用了寄存器,則為其分配專用的寄存器組,這樣也省去了保存/恢復(fù)寄存器的時間消耗。
?。?)全局變量。因?yàn)楹瘮?shù)內(nèi)部的局部變量是分配在堆棧中的,直接處理方式不形成任務(wù),沒有自己的堆棧,如果使用局部變量,其局部變量會分配在被中斷任務(wù)的堆棧內(nèi),所以在該方式下任務(wù)應(yīng)使用全局變量。用戶在設(shè)計(jì)搶占式任務(wù)時要有一定限制,否則會影響系統(tǒng)的響應(yīng)時間。具體限制如下:第一,數(shù)量不能太多,最好小于等于3個;第二,必須是執(zhí)行時間短,執(zhí)行頻率高的任務(wù)才能被設(shè)為搶占式任務(wù)。
3 需要修改的內(nèi)核數(shù)據(jù)和函數(shù)
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 嵌入式實(shí)時操作系統(tǒng)μC/OS-Ⅱ在LPC1788上的移植及應(yīng)用
- 嵌入式實(shí)時操作系統(tǒng)的應(yīng)用詳細(xì)教程說明 2次下載
- 嵌入式數(shù)控系統(tǒng)實(shí)時平臺的設(shè)計(jì) 0次下載
- 基于CORTEX-A8的嵌入式數(shù)控系統(tǒng)設(shè)計(jì) 6次下載
- 嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開發(fā)—ARM與uC/OS-Ⅱ 0次下載
- 嵌入式實(shí)時操作系統(tǒng)uCOS-II原理 261次下載
- 基于ARM與FPGA的嵌入式數(shù)控系統(tǒng)設(shè)計(jì) 74次下載
- 嵌入式數(shù)控系統(tǒng)的構(gòu)件研究
- ARM與C/OS-Ⅱ嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開發(fā)
- 嵌入式數(shù)控系統(tǒng)的構(gòu)件研究
- 基于uC OS和雙MCU的數(shù)控系統(tǒng)研制
- 基于μC/OS-II的嵌入式數(shù)控系統(tǒng)分析與設(shè)計(jì)
- 嵌入式實(shí)時操作系統(tǒng)μC OS-II與eCos的比較
- 嵌入式實(shí)時操作系統(tǒng)μC/OS-II與eCos的比較
- 嵌入式實(shí)時操作系統(tǒng)μC/OS-Ⅱ在ARM處理器上的實(shí)現(xiàn)
- 瑞薩CTSU程序在向嵌入式OS操作系統(tǒng)移植時的注意事項(xiàng) 1k次閱讀
- 基于實(shí)時嵌入式操作系統(tǒng)mC/OS-II實(shí)現(xiàn)GPRS終端系統(tǒng)的設(shè)計(jì) 3.2k次閱讀
- 米爾科技嵌入式實(shí)時操作系統(tǒng)介紹 3k次閱讀
- 基于μC/OS嵌入式操作系統(tǒng)的嵌入式數(shù)據(jù)管理設(shè)計(jì) 2.3k次閱讀
- 基于ARM的嵌入式操作系統(tǒng)該如何設(shè)計(jì) 1.9k次閱讀
- 該如何正確選擇嵌入式操作系統(tǒng) 3.1k次閱讀
- 從嵌入式系統(tǒng)到嵌入式操作系統(tǒng) 1k次閱讀
- 淺析STM32的五大嵌入式操作系統(tǒng)的特點(diǎn)及不足 6.8k次閱讀
- 五種基于STM平臺的且滿足實(shí)時控制要求操作的嵌入式操作系統(tǒng)的介紹 5.8k次閱讀
- 什么是嵌入式操作系統(tǒng) 常見的嵌入式系統(tǒng)有哪些 4.1w次閱讀
- 嵌入式操作系統(tǒng)是什么_嵌入式操作系統(tǒng)有哪些 2.1w次閱讀
- 如何設(shè)計(jì)一個小型嵌入式操作系統(tǒng) 1w次閱讀
- uC/OS和uClinux操作系統(tǒng)的區(qū)別 4.9k次閱讀
- 概述及匯總ARM的嵌入式操作系統(tǒng) 3.2k次閱讀
- 基于ARM和FPGA的嵌入式數(shù)控系統(tǒng)設(shè)計(jì) 7.6k次閱讀
下載排行
本周
- 1冷柜-電氣控制系統(tǒng)講解
- 13.68 MB | 4次下載 | 10 積分
- 2安川A1000變頻器中文版說明書
- 20.16 MB | 3次下載 | 3 積分
- 3直流電路的組成和基本定律
- 1.67 MB | 2次下載 | 免費(fèi)
- 4丹佛斯2800系列變頻器說明書
- 8.00 MB | 1次下載 | 5 積分
- 5PC8011同步開關(guān)型降壓3.5A單節(jié)鋰電池充電管理電路技術(shù)手冊
- 0.74 MB | 1次下載 | 免費(fèi)
- 6ES7243E+ES8311音頻錄制與播放電路資料
- 0.06 MB | 1次下載 | 5 積分
- 7SDM02 激光測距模塊產(chǎn)品手冊
- 0.43 MB | 1次下載 | 免費(fèi)
- 8SDFM 激光測距模塊模組手冊
- 0.54 MB | 1次下載 | 免費(fèi)
本月
- 1CH341編程器軟件NeoProgrammer_2.2.0.10
- 20.47 MB | 170次下載 | 1 積分
- 22025智能家居傳感器市場分析及創(chuàng)新應(yīng)用
- 3.11 MB | 43次下載 | 免費(fèi)
- 3RV1126B系列開發(fā)板產(chǎn)品資料
- 4.19 MB | 18次下載 | 免費(fèi)
- 4CH341編程軟件下載
- 2.50 MB | 16次下載 | 5 積分
- 5全志系列-米爾基于T153核心板開發(fā)板 四核異構(gòu)、3路千兆網(wǎng),賦能多元化工業(yè)場景
- 3.05 MB | 12次下載 | 免費(fèi)
- 6【開源】60余套STM32單片機(jī)、嵌入式Linux、物聯(lián)網(wǎng)、人工智能項(xiàng)目案例及入門學(xué)習(xí)資源包
- 10.55 MB | 8次下載 | 免費(fèi)
- 7冷柜-電氣控制系統(tǒng)講解
- 13.68 MB | 4次下載 | 10 積分
- 8特斯拉MODEL S車載充電機(jī)主電路回路原理圖
- 0.81 MB | 4次下載 | 3 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233094次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191448次下載 | 10 積分
- 5十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183356次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81604次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73824次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評論