日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]μC/OS-Ⅱ在應(yīng)用系統(tǒng)中任務(wù)劃分方法的研究

μC/OS-Ⅱ是由Jean J.Labrosse于1992年開始提出的一個源碼公開的嵌入式實時多任務(wù)操作系統(tǒng),至今仍在繼續(xù)發(fā)展,其已經(jīng)在工業(yè)控制、儀器儀表、汽車電子、航空航天和消費電子等領(lǐng)域得到了廣泛應(yīng)用。它采用占先式實時調(diào)度方式,結(jié)構(gòu)簡潔精練、可讀性強(qiáng)、性能穩(wěn)定、便于移植,只需少量的工作就能將其移植到8位、16位和32位微處理器上。目前,μC/OS-Ⅱ已成為嵌入式開發(fā)人員入門嵌入式操作系統(tǒng)的合適選擇。

開發(fā)基于μC/OS-Ⅱ的嵌入式應(yīng)用系統(tǒng),首先需針對目標(biāo)硬件平臺對μC/OS-Ⅱ進(jìn)行移植。在詳細(xì)分析總體需求的基礎(chǔ)上,將系統(tǒng)功能合理地劃分為多個不同任務(wù)實現(xiàn)。由此可見,在實現(xiàn)嵌入式應(yīng)用系統(tǒng)的過程中,任務(wù)劃分是十分重要的環(huán)節(jié)。劃分任務(wù)是否合理有效不僅直接決定了μC/OS-Ⅱ的性能和執(zhí)行效率,還間接影響著應(yīng)用系統(tǒng)甚至整個項目的成敗。

對于國內(nèi)眾多嵌入式方向的研究人員和愛好者,基于實時操作系統(tǒng)μC/OS-Ⅱ進(jìn)行教學(xué)或者研發(fā),大多側(cè)重于μC/OS-Ⅱ在各種特定目標(biāo)硬件平臺上的移植和簡單使用。而μC/OS-Ⅱ上的復(fù)雜系統(tǒng)開發(fā)特別是劃分任務(wù)策略雖已引起諸多關(guān)注,但到目前為止卻鮮有詳細(xì)而系統(tǒng)的研究成果。本文在總結(jié)前人工作和實際開發(fā)經(jīng)驗的基礎(chǔ)上,研究了μC/OS-Ⅱ任務(wù)劃分的方法和原則,并結(jié)合實踐給出基于MC9S12NE64硬件平臺的應(yīng)用實例。

1 μC/OS-Ⅱ的任務(wù)管理機(jī)制

在μC/OS-Ⅱ中,每個任務(wù)可以是一個典型的無限循環(huán),都處在μC/OS-Ⅱ規(guī)定的一種任務(wù)狀態(tài)。程序員把一個大地應(yīng)用程序分成相對獨立的多個任務(wù)來完成,大大提高了CPU的利用率,極大地方便了應(yīng)用程序的設(shè)計和維護(hù)。而多任務(wù)系統(tǒng)則通過任務(wù)切換實現(xiàn)各個任務(wù)之間的調(diào)度運行。

從存儲結(jié)構(gòu)來看,任務(wù)由3個部分組成:任務(wù)的程序代碼、任務(wù)堆棧和任務(wù)控制塊(PCB)。其中,任務(wù)堆棧用來保存該任務(wù)運行時的工作環(huán)境;任務(wù)控制塊用來保存該任務(wù)的一些屬性;任務(wù)程序代碼則描述了該任務(wù)的執(zhí)行過程。μC/OS-Ⅱ可以管理多達(dá)64個任務(wù),其中的空任務(wù)(IDLE)和統(tǒng)計任務(wù)(STATISTICS)為系統(tǒng)任務(wù),其余都屬于用戶任務(wù)。μC/OS-Ⅱ規(guī)定其每個任務(wù)必須設(shè)置為不同且惟一的優(yōu)先級(優(yōu)先級的數(shù)值越小,則代表任務(wù)的優(yōu)先級別越高),而μC/OS-Ⅱ內(nèi)核會調(diào)度處于就緒狀態(tài)優(yōu)先級最高的任務(wù)進(jìn)行處理,并分配CPU。就緒狀態(tài)屬于任務(wù)的5種狀態(tài)之一,其余4種狀態(tài)分別為:睡眠狀態(tài)、運行狀態(tài)、等待狀態(tài)、中斷服務(wù)狀態(tài)。μC/OS-Ⅱ的任務(wù)總會處于這5種狀態(tài)之一,并根據(jù)不同的條件在5種狀態(tài)中進(jìn)行切換,如圖1所示。

 

 

2 任務(wù)劃分的方法

2.1 以硬件模塊為對象劃分任務(wù)

在使用μC/OS-Ⅱ劃分任務(wù)時,應(yīng)將各硬件模塊相關(guān)的驅(qū)動程序劃分為不同的任務(wù),根據(jù)硬件模塊在系統(tǒng)功能中的關(guān)鍵性順序設(shè)定相應(yīng)的優(yōu)先級。以MCU為中心,將各硬件驅(qū)動程序劃分為獨立的任務(wù),不僅有效防止了爭用硬件模塊出現(xiàn)的問題,還能夠提高整個μC/OS-Ⅱ的執(zhí)行效率,滿足應(yīng)用系統(tǒng)的實時性要求,為系統(tǒng)維護(hù)和擴(kuò)展功能打下良好的基礎(chǔ)。

將不同硬件模塊的操作劃分為不同的任務(wù),使得應(yīng)用系統(tǒng)必須通過μC/OS-Ⅱ內(nèi)核調(diào)度相應(yīng)的任務(wù),才能實現(xiàn)對于某個硬件模塊的訪問。這樣,每個模塊都有且只有惟一的任務(wù)與之對應(yīng),其他任務(wù)則無權(quán)時訪問它。這種操作模式有效地避免了由于多個任務(wù)同時爭用同一硬件模塊造成的沖突甚至死鎖現(xiàn)象。

按照硬件模塊劃分任務(wù),可以有效提高μC/OS-Ⅱ的工作效率,增強(qiáng)應(yīng)用系統(tǒng)對于實時要求的處理能力。例如:如果當(dāng)前系統(tǒng)正在對并口設(shè)備進(jìn)行處理,由于并口屬于慢速設(shè)備,其執(zhí)行速度遠(yuǎn)遠(yuǎn)落后于MCU總線頻率,因此在其工作過程中MCU大部分時間處于空閑狀態(tài),即無事可做直到并口處理完畢為止。將并口驅(qū)動獨立為單個任務(wù)之后,μC/OS-Ⅱ內(nèi)核就可以通過任務(wù)調(diào)度使并口處理任務(wù)和其他任務(wù)并發(fā)執(zhí)行,減少MCU處于空閑狀態(tài)的時間,從而提高了整個應(yīng)用系統(tǒng)運行效率。

硬件模塊與硬件驅(qū)動任務(wù)一一對應(yīng),使整個軟件系統(tǒng)框架清晰、結(jié)構(gòu)合理,增強(qiáng)了系統(tǒng)的可維護(hù)性和可擴(kuò)展性。以增加串行通信功能為例,開發(fā)人員只要編寫相應(yīng)串口驅(qū)動程序,在μC/OS-Ⅱ中增加串行通信任務(wù)即可,無需修改任何其他模塊的任務(wù)代碼。

2.2 劃分強(qiáng)實時性任務(wù)

實時即立即、及時的意思,根據(jù)應(yīng)用中的實時要求,可以將其分為強(qiáng)實時和弱實時2大類。強(qiáng)實時對于響應(yīng)時間要求很高,如果實時性得不到滿足,系統(tǒng)會出現(xiàn)錯誤甚至難以挽回的故障。弱實時雖然同樣要求調(diào)度時間短,響應(yīng)速度快,但其確定性較差,超過限定時間也能勉強(qiáng)工作。在基于μC/OS-Ⅱ的嵌入式應(yīng)用系統(tǒng)中,強(qiáng)實時任務(wù)能夠在限定的時間范圍內(nèi)調(diào)度執(zhí)行,是整個系統(tǒng)穩(wěn)定可靠,實時有效的重要保障。因此,在劃分μC/OS-Ⅱ任務(wù)時,應(yīng)將每個強(qiáng)實時應(yīng)用劃分為獨立的任務(wù),與其他應(yīng)用分開,并設(shè)定高優(yōu)先級,以保證強(qiáng)實時事件的限時發(fā)生,避免出現(xiàn)災(zāi)難性后果。

假設(shè)把某一強(qiáng)實時應(yīng)用與一弱實時性要求的應(yīng)用一起打包成為1個任務(wù)。在嵌入式應(yīng)用系統(tǒng)運行過程中,一旦該弱實時應(yīng)用因為某種原因(例如:等待內(nèi)存數(shù)據(jù)、等待外部輸入信號、等待中斷發(fā)生等)導(dǎo)致整個任務(wù)進(jìn)入等待狀態(tài),則在等待的事件發(fā)生之前,強(qiáng)實時應(yīng)用也無法通過任務(wù)調(diào)度得以執(zhí)行。在強(qiáng)實時系統(tǒng)中,出現(xiàn)了以上所述的情況,結(jié)果是不堪設(shè)想的。

如果強(qiáng)實時性應(yīng)用允許通過中斷方式“通知”μC/OS-Ⅱ內(nèi)核,則可將該強(qiáng)實時任務(wù)代碼放入相應(yīng)的中斷服務(wù)程序中去處理。在中斷服務(wù)程序在發(fā)生引起中斷處理的事件后,由硬件機(jī)制自動加載運行(把中斷服務(wù)程序的入口地址放入PC寄存器),無需軟件調(diào)度干涉,因此可更好保證應(yīng)用功能的強(qiáng)實時性。在中斷服務(wù)程序中執(zhí)行強(qiáng)實時性任務(wù)代碼,同樣必須遵循中斷服務(wù)程序要盡可能簡短的原則。具體的方法是通過分析每個強(qiáng)實時任務(wù)功能和代碼,將其最重要的核心部分放人中斷處理程序中,其余部分形成一個單獨的任務(wù),兩者可通過任務(wù)同步機(jī)制(信號量、消息郵箱或者消息隊列)進(jìn)行聯(lián)系,以達(dá)到簡化中斷處理過程的目的。

2.3 分割耗時較多的任務(wù)[!--empirenews.page--]

在一些較復(fù)雜的嵌入式應(yīng)用系統(tǒng)中,個別任務(wù)代碼會包含繁瑣的計算算法,運行時占用大量的CPU處理時間和資源,嚴(yán)重影響μC/OS-Ⅱ系統(tǒng)的實時性。對于這樣的任務(wù),可將其按照不同的內(nèi)部功能劃分為多個模塊,每個模塊即為一個相對獨立的小任務(wù),相互之間通過任務(wù)通信機(jī)制協(xié)調(diào)工作。由于需要占用CPU較多的處理時間,這些任務(wù)幾乎沒有實時性要求,所以通常將其優(yōu)先級設(shè)低,以確保強(qiáng)實時任務(wù)的正常運行。

例如:當(dāng)前的μC/OS-Ⅱ系統(tǒng)中有一任務(wù)在調(diào)度執(zhí)行時會占用較長時間,導(dǎo)致其運行過程頻繁被強(qiáng)實時任務(wù)打斷,這樣CPU就需要“犧牲”大量時間和空間用于保存被打斷的任務(wù)現(xiàn)場,而整個系統(tǒng)的實時性就會大大降低,執(zhí)行效率也大打折扣。該任務(wù)的描述如下:首先根據(jù)算法1處理數(shù)據(jù)X,其次利用算法2處理數(shù)據(jù)Y,最后將數(shù)據(jù)X和數(shù)據(jù)Y通過算法3得到數(shù)據(jù)Z。在這種情況下,應(yīng)將不同的算法處理部分劃分為獨立的子任務(wù),并根據(jù)執(zhí)行順序逐次遞減任務(wù)優(yōu)先級。由于縮短了單個任務(wù)的執(zhí)行時間,任務(wù)的響應(yīng)時間也隨之變短,整個系統(tǒng)的實時性得到了提高。

3 應(yīng)用實例

作者在參與開發(fā)的一個項目網(wǎng)絡(luò)數(shù)據(jù)采集系統(tǒng)中使用了μC/OS-Ⅱ進(jìn)行多任務(wù)的管理。該項目基于Freescale公司1994年推出的微處理器MC9S12NE64,主要功能要求網(wǎng)絡(luò)數(shù)據(jù)采集系統(tǒng)通過光敏傳感器采集工廠生產(chǎn)設(shè)備的多個狀態(tài)指示燈,以獲取當(dāng)前設(shè)備的工作狀態(tài)信息,隨后通過UDP包將信息發(fā)送至局域網(wǎng)中PC服務(wù)器處理。此外,技術(shù)人員還能夠通過串行通信方式對采集系統(tǒng)進(jìn)行測試和維護(hù)。該采集系統(tǒng)劃分的主要任務(wù)及其優(yōu)先級設(shè)定如表1所示。

 

 

生產(chǎn)設(shè)備狀態(tài)信息采集及處理任務(wù)優(yōu)先級最高,因為該任務(wù)屬于強(qiáng)實時性任務(wù),無法及時執(zhí)行會使采集系統(tǒng)處于癱瘓狀態(tài)。而同樣屬于實時任務(wù)的系統(tǒng)測試維護(hù)功能由于實時要求并不高,所以優(yōu)先級次之。

A/D模塊驅(qū)動程序、網(wǎng)絡(luò)模塊通信程序、串口通信程序和FIASH模塊操作程序與各自硬件單元關(guān)系密切,故將它們劃分為獨立的硬件相關(guān)任務(wù)。

采集系統(tǒng)中耗時最多、處理最復(fù)雜的部分是局域網(wǎng)內(nèi)的數(shù)據(jù)通信。由于受到芯片存儲空間的限制,作者并沒有移植現(xiàn)有源碼公開的TCP/IP協(xié)議棧,取而代之的是自主研發(fā)了簡易TCP/IP協(xié)議,并將該協(xié)議棧中每一層分割成為1個獨立的任務(wù)存在。

4 結(jié)語

μC/OS-Ⅱ是一個公開源碼、搶占式、多任務(wù)的嵌入式實時操作系統(tǒng),自1992年面世以來,已應(yīng)用于上百種產(chǎn)品。與一些商用嵌入式操作系統(tǒng)相比,它源代碼結(jié)構(gòu)清晰,易于移植和裁剪,具有很大的發(fā)展空間。本文在分析μC/OS-Ⅱ任務(wù)管理機(jī)制的基礎(chǔ)上,對μC/OS-Ⅱ的任務(wù)劃分進(jìn)行了初步探究,闡述了一些任務(wù)劃分的方法:“劃分與硬件模塊相關(guān)的任務(wù)”、“劃分強(qiáng)實時性任務(wù)”、“分割耗時較多的任務(wù)”。最后,結(jié)合開發(fā)實踐給出了基于μC/OS-Ⅱ應(yīng)用系統(tǒng)的任務(wù)劃分實例。

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

杭州2025年9月2日 /美通社/ -- 9 月 13–14 日,GOSIM HANGZHOU 2025 大會將在杭州隆重啟幕。本次大會由 GOSIM 全球開源創(chuàng)新匯主辦、CSDN 承辦,以國際化、社區(qū)化、強(qiáng)互動為特色,...

關(guān)鍵字: SIM 開源 OS GO

北京2025年8月20日 /美通社/ -- 全球領(lǐng)先的市場研究公司之一益普索Ipsos,宣布與斯坦福大學(xué)政治與社會變革實驗室(PASCL)達(dá)成開創(chuàng)性合作,共同探索人工智能(AI)與合成數(shù)據(jù)在市場與消費者研究中的創(chuàng)新應(yīng)用。...

關(guān)鍵字: 斯坦福 人工智能 PS OS

在全球范圍內(nèi)提供實時性能、低成本服務(wù),并在沙特提供本地支持 加利福尼亞州帕洛阿爾托和沙特阿拉伯利雅得2025年8月6日 /美通社/ -- 快速推理領(lǐng)域的先驅(qū)企業(yè)Groq與PIF(沙特阿拉伯公共投資基金)旗下、沙特領(lǐng)先A...

關(guān)鍵字: AI 模型 PEN OS

Linux內(nèi)核是一個操作系統(tǒng)(OS)內(nèi)核,本質(zhì)上定義為類Unix。它用于不同的操作系統(tǒng),主要是以不同的Linux發(fā)行版的形式。Linux內(nèi)核是第一個真正完整且突出的免費和開源軟件示例。Linux 內(nèi)核是第一個真正完整且突...

關(guān)鍵字: Linux內(nèi)核 OS

以 AI 為核心的智能汽車平臺將加速向軟件定義出行的轉(zhuǎn)型進(jìn)程 德國埃朗根 2025年6月25日 /美通社/ -- Elektrobit 今日宣布與全球領(lǐng)先的電子制造商之一——鴻??萍技瘓F(tuán)(富士康)...

關(guān)鍵字: 汽車 軟件定義 OS EV

北京 2025年5月28日 /美通社/ -- 近日,知名國際設(shè)計大獎"紅點設(shè)計獎"2025年度獲獎名單揭曉,富士膠片集團(tuán)共23款產(chǎn)品獲獎,其中包括富士膠片商業(yè)創(chuàng)新有限公司新推出的旗艦智能型A3彩色數(shù)...

關(guān)鍵字: 富士 OS 智能型 功能機(jī)

杭州 2025年5月15日 /美通社/ --?在開源浪潮的推動下,AI 領(lǐng)域正在全球范圍內(nèi)迎來爆發(fā)式增長,這也為更多開發(fā)者、研究者、創(chuàng)業(yè)者打開了通向下一代智能系統(tǒng)構(gòu)建的通道。在這一背景下,GOSIM AI Paris...

關(guān)鍵字: SIM 模型 OS GO

此次收購標(biāo)志著?WPP 在人工智能驅(qū)動的數(shù)據(jù)服務(wù)的重要戰(zhàn)略邁進(jìn),為?WPP 的客戶帶來更具廣度和規(guī)模的數(shù)據(jù)智能,超越了傳統(tǒng)的基于身份信息的解決方案 WPP 的客戶能夠?qū)⒌谝环綌?shù)據(jù)的價值最大化,同時以強(qiáng)化隱私保護(hù)...

關(guān)鍵字: 人工智能 智能驅(qū)動 OS BSP

在印度建立一個新的全球能力中心,以推動增長并提供由Infosys Topaz提供的面向未來的能力和服務(wù) 印度班加羅爾2025年2月20日 /美通社/ -- 下一代數(shù)字服務(wù)和咨詢領(lǐng)域的全球領(lǐng)導(dǎo)者Infosys(NSE,...

關(guān)鍵字: 數(shù)字化 OS SE BSP

深圳2025年2月20日 /美通社/ -- 全球緊固和裝配解決方案提供商Bossard柏中在深圳成立全資子公司——柏中緊固件(廣東)有限公司(以下簡稱"柏中廣東公司")。這是繼柏中緊固件(上海)有限公...

關(guān)鍵字: SAR 固件 OS 智能工廠
關(guān)閉