999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

μC/OS-Ⅱ在應用系統中任務劃分方法的研究

2008-04-12 00:00:00王宜懷
現代電子技術 2008年20期

摘 要:嵌入式實時多任務操作系統μC/OS-Ⅱ具有源碼公開、可移植、可裁剪等特點,適用于要求實時和多任務的嵌入式體系。基于μC/OS-Ⅱ開發功能復雜的多任務應用系統,應將系統功能進行詳細的需求分析,劃分為多個不同的任務實現。根據實時操作系統μC/OS-Ⅱ的任務概念,從其任務管理機制入手,歸納了在應用系統中任務劃分的方法和原則,并結合開發實踐給出應用實例,對劃分μC/OS-Ⅱ的任務具有指導意義。

關鍵詞:實時操作系統;μC/OS-Ⅱ;任務劃分;任務管理機制

中圖分類號:TP316.2文獻標識碼:A

文章編號: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年開始提出的一個源碼公開的嵌入式實時多任務操作系統,至今仍在繼續發展,其已經在工業控制、儀器儀表、汽車電子、航空航天和消費電子等領域得到了廣泛應用。它采用占先式實時調度方式,結構簡潔精練、可讀性強、性能穩定、便于移植,只需少量的工作就能將其移植到8位、16位和32位微處理器上[1]。目前,μC/OS-Ⅱ已成為嵌入式開發人員入門嵌入式操作系統的合適選擇。

開發基于μC/OS-Ⅱ的嵌入式應用系統,首先需針對目標硬件平臺對μC/OS-Ⅱ進行移植。在詳細分析總體需求的基礎上,將系統功能合理地劃分為多個不同任務實現。由此可見,在實現嵌入式應用系統的過程中,任務劃分是十分重要的環節。劃分任務是否合理有效不僅直接決定了μC/OS-Ⅱ的性能和執行效率,還間接影響著應用系統甚至整個項目的成敗。

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

1 μC/OS-Ⅱ的任務管理機制

在μC/OS-Ⅱ中,每個任務可以是一個典型的無限循環,都處在μC/OS-Ⅱ規定的一種任務狀態。程序員把一個大地應用程序分成相對獨立的多個任務來完成,大大提高了CPU的利用率,極大地方便了應用程序的設計和維護。而多任務系統則通過任務切換實現各個任務之間的調度運行。

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

2 任務劃分的方法

2.1 以硬件模塊為對象劃分任務

在使用μC/OS-Ⅱ劃分任務時,應將各硬件模塊相關的驅動程序劃分為不同的任務,根據硬件模塊在系統功能中的關鍵性順序設定相應的優先級。以MCU為中心,將各硬件驅動程序劃分為獨立的任務,不僅有效防止了爭用硬件模塊出現的問題,還能夠提高整個μC/OS-Ⅱ的執行效率,滿足應用系統的實時性要求,為系統維護和擴展功能打下良好的基礎。

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

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

硬件模塊與硬件驅動任務一一對應,使整個軟件系統框架清晰、結構合理,增強了系統的可維護性和可擴展性。以增加串行通信功能為例,開發人員只要編寫相應串口驅動程序,在μC/OS-Ⅱ中增加串行通信任務即可,無需修改任何其他模塊的任務代碼。

2.2 劃分強實時性任務

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

假設把某一強實時應用與一弱實時性要求的應用一起打包成為1個任務。在嵌入式應用系統運行過程中,一旦該弱實時應用因為某種原因(例如:等待內存數據、等待外部輸入信號、等待中斷發生等)導致整個任務進入等待狀態,則在等待的事件發生之前,強實時應用也無法通過任務調度得以執行[5]。在強實時系統中,出現了以上所述的情況,結果是不堪設想的。

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

2.3 分割耗時較多的任務

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

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

3 應用實例

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

生產設備狀態信息采集及處理任務優先級最高,因為該任務屬于強實時性任務,無法及時執行會使采集系統處于癱瘓狀態。而同樣屬于實時任務的系統測試維護功能由于實時要求并不高,所以優先級次之。

A/D模塊驅動程序、網絡模塊通信程序、串口通信程序和FLASH模塊操作程序與各自硬件單元關系密切,故將它們劃分為獨立的硬件相關任務。

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

4 結 語

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

參考文獻

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

[2]任哲.嵌入式實時操作系統μC/OS-Ⅱ原理及應用[M].北京:北京航空航天大學出版社,2005.

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

[4]Qing Li.嵌入式系統的實時概念[M].北京:北京航空航天大學出版社,2004.

[5]周航慈,吳光文.基于嵌入式實時操作系統的程序設計技術[M].北京:北京航空航天大學出版社,2006.

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

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

主站蜘蛛池模板: 国产自产视频一区二区三区| 亚洲天堂.com| 91视频精品| 国产清纯在线一区二区WWW| 久久夜色精品国产嚕嚕亚洲av| 久久伊伊香蕉综合精品| 国产91导航| 91久久偷偷做嫩草影院精品| 欧美a在线| 一本一道波多野结衣一区二区 | 亚洲高清国产拍精品26u| 亚洲AV无码乱码在线观看代蜜桃| 亚洲色图欧美| 免费人成黄页在线观看国产| 成年网址网站在线观看| 无码视频国产精品一区二区| 日韩精品一区二区深田咏美| 亚洲欧美在线看片AI| 免费三A级毛片视频| 国产杨幂丝袜av在线播放| 国产美女丝袜高潮| 午夜性刺激在线观看免费| 国产黄在线免费观看| 在线免费观看a视频| 无码精品一区二区久久久| 亚洲香蕉在线| 91精品网站| 国产麻豆永久视频| 秋霞国产在线| 国产福利免费在线观看| 美女一区二区在线观看| 久久久久久久蜜桃| 色爽网免费视频| 久久人搡人人玩人妻精品| 在线视频亚洲欧美| 久久久久久尹人网香蕉| 乱色熟女综合一区二区| 国产丝袜第一页| 91国内视频在线观看| 成人免费午间影院在线观看| 亚洲人成人无码www| 夜夜操天天摸| 欧美www在线观看| 国产激情无码一区二区APP| 欧美综合成人| 国产精品短篇二区| 视频一本大道香蕉久在线播放| 国产va在线观看免费| 无码高潮喷水专区久久| 日韩视频免费| 青草精品视频| 欧洲日本亚洲中文字幕| 国产精品美女自慰喷水| 成年免费在线观看| 国产福利小视频在线播放观看| 夜夜操狠狠操| 国产成人1024精品下载| yy6080理论大片一级久久| 亚洲永久视频| 亚洲成人在线免费| 中文国产成人精品久久| 国产亚洲第一页| 日本手机在线视频| 欧美在线导航| 在线播放真实国产乱子伦| 国产成人久久综合777777麻豆| 久久天天躁夜夜躁狠狠| 无码专区在线观看| 久久精品人人做人人爽97| 亚洲精品免费网站| 成人在线不卡视频| 日韩欧美在线观看| 日韩午夜福利在线观看| 国产精品成人一区二区| 狠狠色丁婷婷综合久久| 97se亚洲综合| 国产在线观看成人91| 丝袜久久剧情精品国产| 熟妇丰满人妻av无码区| 伊人婷婷色香五月综合缴缴情| 亚洲网综合| 国产亚洲日韩av在线|