亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        μC/OS-Ⅱ在應(yīng)用系統(tǒng)中任務(wù)劃分方法的研究

        2008-04-12 00:00:00王宜懷
        現(xiàn)代電子技術(shù) 2008年20期

        摘 要:嵌入式實(shí)時(shí)多任務(wù)操作系統(tǒng)μC/OS-Ⅱ具有源碼公開、可移植、可裁剪等特點(diǎn),適用于要求實(shí)時(shí)和多任務(wù)的嵌入式體系?;讦藽/OS-Ⅱ開發(fā)功能復(fù)雜的多任務(wù)應(yīng)用系統(tǒng),應(yīng)將系統(tǒng)功能進(jìn)行詳細(xì)的需求分析,劃分為多個(gè)不同的任務(wù)實(shí)現(xiàn)。根據(jù)實(shí)時(shí)操作系統(tǒng)μC/OS-Ⅱ的任務(wù)概念,從其任務(wù)管理機(jī)制入手,歸納了在應(yīng)用系統(tǒng)中任務(wù)劃分的方法和原則,并結(jié)合開發(fā)實(shí)踐給出應(yīng)用實(shí)例,對劃分μC/OS-Ⅱ的任務(wù)具有指導(dǎo)意義。

        關(guān)鍵詞:實(shí)時(shí)操作系統(tǒng);μC/OS-Ⅱ;任務(wù)劃分;任務(wù)管理機(jī)制

        中圖分類號(hào):TP316.2文獻(xiàn)標(biāo)識(shí)碼:A

        文章編號(hào):1004373X(2008)2004803

        Research of μC/OS-Ⅱ′s Task-Dividing Method in Application System

        CHEN Yi,WANG Yihuai

        (Department of Computer Science and Technology,Soochow University,Suzhou,215006,China)

        Abstract:The embedded real-time multitask OS μC/OS-Ⅱ has characteristics of open-source,portable and scalable,itis suitable for real-time and multitask embedded system.The system funtion and different tasks when developing the complicated multitasking application system based on the embedded real-time operation system μC/OS-Ⅱ are analysed.According to the task concept of μC/OS-Ⅱ,this paper takes the task arrangement mechanism of μC/OS-Ⅱ for example,generalizes the principles of dividing the tasks in the application system and gives out the application instance by development item.This is valuable to guiding the task dividing of μC/OS-Ⅱ.

        Keywords:real-time operation system;μC/OS-Ⅱ;task dividing;task management mechanism

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        2.3 分割耗時(shí)較多的任務(wù)

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

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

        3 應(yīng)用實(shí)例

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

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

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

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

        4 結(jié) 語

        μC/OS-Ⅱ是一個(gè)公開源碼、搶占式、多任務(wù)的嵌入式實(shí)時(shí)操作系統(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)實(shí)時(shí)性任務(wù)”、“分割耗時(shí)較多的任務(wù)”。最后,結(jié)合開發(fā)實(shí)踐給出了基于μC/OS-Ⅱ應(yīng)用系統(tǒng)的任務(wù)劃分實(shí)例。

        參考文獻(xiàn)

        [1]Labrosse J.MicroC/OS-II:The Real-time Kernel[M].CMP Books,2002.

        [2]任哲.嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-Ⅱ原理及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2005.

        [3]歐偉明.嵌入式應(yīng)用軟件任務(wù)劃分的原則[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2007(6):65-67.

        [4]Qing Li.嵌入式系統(tǒng)的實(shí)時(shí)概念[M].北京:北京航空航天大學(xué)出版社,2004.

        [5]周航慈,吳光文.基于嵌入式實(shí)時(shí)操作系統(tǒng)的程序設(shè)計(jì)技術(shù)[M].北京:北京航空航天大學(xué)出版社,2006.

        [6]林麗群,劉大茂.μC/OS-Ⅱ在ARM7上移植方法的探討與實(shí)現(xiàn)\\.現(xiàn)代電子技術(shù),2006,29(18):47-49.

        作者簡介 陳 祎 男,1982年出生,江蘇無錫人,碩士研究生。主要從事嵌入式系統(tǒng)開發(fā)與應(yīng)用的研究。

        久久久久国产精品免费免费搜索| 国产av一区二区三区在线播放| 免费观看mv大片高清| 夜夜未满十八勿进的爽爽影院| 亚洲日韩一区二区一无码| av永远在线免费观看| 日本精品一区二区三区在线观看| 久久综合亚洲色一区二区三区| 成人免费毛片内射美女-百度 | 最新日本一道免费一区二区 | 亚洲天堂一区二区三区视频| 亚洲一区二区三区中国| 最近中文字幕完整版免费| 亚洲人成网站在线播放观看| 国产精品一区二区三区蜜臀| av网站在线观看大全| 精东天美麻豆果冻传媒mv| 国产小毛片| 日本一级二级三级在线| 一区二区三区四区国产99| 国产精品丝袜久久久久久不卡| 国产精品毛片久久久久久l| 久久精品亚洲成在人线av| 第一次处破女18分钟高清| 国产又黄又大又粗的视频| 亚洲中文无码精品久久不卡| 久久国产精品免费专区| 免费国产a国产片高清网站 | 亚洲欧美日韩国产综合久| 亚洲精品女人天堂av麻| 久久午夜福利无码1000合集| 最新国产av无码专区亚洲| 偷拍熟女亚洲另类| 一区二区三区午夜视频在线| 国产人妻丰满熟妇嗷嗷叫| 亚洲成人观看| 人妻中文字幕一区二区三区| 色偷偷偷在线视频播放| 久久久久久久性潮| 福利一区二区三区视频在线| 极品美女一区二区三区免费|