當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀] μC/OS-II嵌入式實(shí)時(shí)操作系統(tǒng)自1998年推出以來(lái),因其方便移植、代碼量小、實(shí)時(shí)性強(qiáng)、可靠性高、內(nèi)核可剪裁等優(yōu)點(diǎn),成為我國(guó)計(jì)算機(jī)嵌入式應(yīng)用領(lǐng)域最受喜愛(ài)的實(shí)時(shí)操作系統(tǒng)

 μC/OS-II嵌入式實(shí)時(shí)操作系統(tǒng)自1998年推出以來(lái),因其方便移植、代碼量小、實(shí)時(shí)性強(qiáng)、可靠性高、內(nèi)核可剪裁等優(yōu)點(diǎn),成為我國(guó)計(jì)算機(jī)嵌入式應(yīng)用領(lǐng)域最受喜愛(ài)的實(shí)時(shí)操作系統(tǒng)(Real-Time Opreating System)之一。由于其源碼開(kāi)源,至今,已經(jīng)成功在諸多廠家的MCU上移植并應(yīng)用在各行各業(yè)的電子產(chǎn)品之中,因而備受矚目。此文幫助有意向?qū)W習(xí)μC/OS-II的初學(xué)者全面的、系統(tǒng)的了解實(shí)時(shí)系統(tǒng)的核心思想,也為正在學(xué)習(xí)μC/OS-II的童鞋們理清思路,更上層樓。

什么是μC/OS-II?

μC/OS-II是一種基于優(yōu)先級(jí)可剝奪型的多任務(wù)實(shí)時(shí)內(nèi)核,包含了任務(wù)調(diào)度與管理、時(shí)間管理、任務(wù)間通信與同步等基本功能。

如何實(shí)現(xiàn)多任務(wù)?

在μC/OS-II系統(tǒng)中,大多數(shù)情況下,1個(gè)任務(wù)就是一個(gè)死循環(huán),特殊情況是,有的任務(wù)執(zhí)行1次后直接銷毀自己。既然是死循環(huán)如何實(shí)現(xiàn)多任務(wù)呢?這就涉及到一個(gè)完整的任務(wù)調(diào)度機(jī)制,簡(jiǎn)單來(lái)說(shuō),就是給每個(gè)任務(wù)設(shè)置合適的優(yōu)先級(jí),CPU只有一個(gè),優(yōu)先級(jí)高的任務(wù)可以搶占優(yōu)先級(jí)低的任務(wù),而獨(dú)占CPU。在μC/OS-II中,系統(tǒng)可以管理64個(gè)任務(wù),有8個(gè)任務(wù)預(yù)留給系統(tǒng),用戶最多可以創(chuàng)建56個(gè)任務(wù),而實(shí)質(zhì)上用戶不應(yīng)該創(chuàng)建過(guò)多的任務(wù),因?yàn)檫@樣的話,優(yōu)先級(jí)最低的任務(wù)可能無(wú)法得到執(zhí)行。

何時(shí)執(zhí)行任務(wù)調(diào)度

簡(jiǎn)單來(lái)說(shuō),高優(yōu)先級(jí)的就緒任務(wù)發(fā)生時(shí),會(huì)搶占低優(yōu)先級(jí)任務(wù)的CPU,這時(shí)系統(tǒng)就會(huì)自動(dòng)執(zhí)行任務(wù)調(diào)度。在任務(wù)銷毀時(shí),掛起時(shí),延時(shí)時(shí),中斷退出時(shí)都會(huì)啟動(dòng)任務(wù)調(diào)度。

這里舉個(gè)例子,假如下面這段程序具有2個(gè)用戶任務(wù)LED1_TASK,和KEY_TASK。KEY_TASK的任務(wù)優(yōu)先級(jí)較高,這段程序無(wú)法實(shí)現(xiàn)預(yù)期的功能,會(huì)出現(xiàn)什么問(wèn)題呢?

 

LED閃燈任務(wù)無(wú)法得到執(zhí)行,因?yàn)槌绦蛞恢钡膱?zhí)行按鍵掃描,其優(yōu)先級(jí)較高(這里假定沒(méi)有中斷發(fā)生)一直在獨(dú)占CPU,而沒(méi)有釋放,也就是無(wú)法執(zhí)行任務(wù)調(diào)度,在LED任務(wù)中,調(diào)用OSTimeDly()函數(shù)的同時(shí),LED任務(wù)即被掛起,交出CPU的控制權(quán),同時(shí)執(zhí)行任務(wù)調(diào)度,系統(tǒng)會(huì)選擇一個(gè)處于就緒狀態(tài)的優(yōu)先級(jí)最高的任務(wù)來(lái)執(zhí)行。

舉上面這個(gè)例子是為了說(shuō)明任務(wù)調(diào)度是在一定情況下發(fā)生的,因?yàn)槭菗屨际降?,為了讓低?yōu)先級(jí)的任務(wù)得到執(zhí)行,高優(yōu)先級(jí)任務(wù)必須在適當(dāng)?shù)那闆r下交出CPU,如果在KEY_TASK任務(wù)中,在獲取按鍵信息后面調(diào)用OSTimeDly()函數(shù),即可使LED閃燈任務(wù)得到執(zhí)行。

關(guān)于中斷

中斷在實(shí)時(shí)操作系統(tǒng)中具有舉足輕重的作用,所以中斷程序的設(shè)計(jì)無(wú)疑是編程的要點(diǎn)及難點(diǎn),在多任務(wù)實(shí)時(shí)操作系統(tǒng)中,不同的中斷任務(wù)被安排不同的優(yōu)先級(jí),在允許中斷嵌套的情況下,最高優(yōu)先級(jí)的中斷總能得到及時(shí)響應(yīng)。中斷級(jí)的任務(wù)可以看成是比最高優(yōu)先級(jí)的任務(wù)級(jí)任務(wù)的優(yōu)先級(jí)還要高。在用戶中斷服務(wù)程序內(nèi)部,要盡可能的縮短代碼量,不要做耗時(shí)的操作,正確的做法是調(diào)用任務(wù)級(jí)任務(wù)進(jìn)行相關(guān)的數(shù)據(jù)處理。

同樣,問(wèn)題來(lái)了,在中斷服務(wù)程序中觸發(fā)某個(gè)任務(wù)級(jí)任務(wù)就緒,是否立即進(jìn)行任務(wù)調(diào)度,答案是否定的,因?yàn)槿蝿?wù)級(jí)任務(wù)的優(yōu)先級(jí)不夠,需等待中斷服務(wù)程序退出,那系統(tǒng)如何知道中斷服務(wù)程序是否結(jié)束了呢,這就需要的中斷程序內(nèi)部調(diào)用系統(tǒng)服務(wù)函數(shù)OSIntExit();以此來(lái)觸發(fā)任務(wù)調(diào)度。

硬實(shí)時(shí)與軟實(shí)時(shí)

這里說(shuō)一下硬實(shí)時(shí)與軟實(shí)時(shí)的區(qū)別,能夠在指定的期限完成實(shí)時(shí)任務(wù)(即便在最壞的處理負(fù)載下也能如此)的操作系統(tǒng)稱為硬實(shí)時(shí)系統(tǒng)。但并不是任何情況下都需要硬實(shí)時(shí)支持。如果操作系統(tǒng)在平均情況下能支持任務(wù)的執(zhí)行期限,則稱它為軟實(shí)時(shí)系統(tǒng)。

RTOS的優(yōu)勢(shì)是硬實(shí)時(shí)控制,硬實(shí)時(shí)不是指“快”,而是指可精確預(yù)測(cè)可控制,能保證在規(guī)定時(shí)間內(nèi)完成任務(wù)。因?yàn)閳?zhí)行時(shí)間可預(yù)測(cè),所以當(dāng)你想快時(shí),只要選一個(gè)速度合適的CPU即可,這個(gè)需要的速度在μC/OS-II系統(tǒng)中是可以精確算出來(lái)的。軟實(shí)時(shí)系統(tǒng)的時(shí)限是一個(gè)柔性靈活的,它可以容忍偶然的超時(shí)錯(cuò)誤。失敗造成的后果并不嚴(yán)重。

舉個(gè)例子,汽車發(fā)生危險(xiǎn)時(shí),汽車氣囊彈出必須在一定時(shí)間內(nèi)完成,晚一秒都會(huì)造成致命傷害(硬實(shí)時(shí))。而在圖像傳輸過(guò)程中,偶爾丟失1幀圖像數(shù)據(jù)是可以容忍的(軟實(shí)時(shí))。

任務(wù)同步與數(shù)據(jù)通信

毫無(wú)疑問(wèn),任務(wù)之間都不是相互割裂的,需要進(jìn)行數(shù)據(jù)或者信息的交互,為此,μC/OS-II系統(tǒng)提供了用于任務(wù)間通信的手段。任務(wù)之間可以通過(guò)信號(hào)量,事件標(biāo)志組,消息郵箱,消息隊(duì)列進(jìn)行同步。而數(shù)據(jù)通信最簡(jiǎn)單的方式是采用全局變量來(lái)共享資源,這里面涉及到保障數(shù)據(jù)可靠性的問(wèn)題,比如,當(dāng)一個(gè)任務(wù)正在讀數(shù)據(jù)的時(shí)候,還沒(méi)有讀完,這時(shí)一個(gè)中斷觸發(fā)高級(jí)別的任務(wù)運(yùn)行,高級(jí)別的任務(wù)要更新數(shù)據(jù),這就會(huì)導(dǎo)致低級(jí)別任務(wù)讀出來(lái)的數(shù)據(jù)是錯(cuò)誤的。未解決此問(wèn)題,可以采用關(guān)中斷、關(guān)調(diào)度、使用互斥信號(hào)量、使用計(jì)數(shù)信號(hào)量來(lái)解決,關(guān)中斷與關(guān)調(diào)度比較生硬,也違反了系統(tǒng)的實(shí)時(shí)性設(shè)計(jì)原則,因此推薦使用互斥信號(hào)量來(lái)解決,所謂互斥信號(hào)量,相當(dāng)于一個(gè)鑰匙,鑰匙只有一個(gè),當(dāng)一個(gè)任務(wù)要訪問(wèn)該資源時(shí),必須先取得該鑰匙。

時(shí)鐘節(jié)拍

μC/OS-II需要用戶提供一個(gè)周期性的中斷來(lái)實(shí)現(xiàn)延時(shí)和超時(shí)等操作,這個(gè)周期性的時(shí)鐘叫“時(shí)鐘節(jié)拍”,其頻率范圍通常在10~1000Hz之間。時(shí)鐘節(jié)拍的頻率大小取決于對(duì)定時(shí)精度的要求,頻率越高,系統(tǒng)的負(fù)擔(dān)越重。

問(wèn)題:時(shí)鐘節(jié)拍是否是μC/OS-II中必不可少的?沒(méi)有時(shí)鐘節(jié)拍系統(tǒng)是否能夠工作?

答案是:沒(méi)有時(shí)鐘節(jié)拍,系統(tǒng)照樣可以工作,只是無(wú)法進(jìn)行延時(shí)或者超時(shí)判斷,無(wú)法調(diào)用延時(shí)函數(shù)來(lái)進(jìn)行任務(wù)調(diào)度,但是仍然有其它方法可以進(jìn)行任務(wù)切換。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉