a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > mC/OS-II實時內核

mC/OS-II實時內核

——
作者:Jean J. Labrosse,江文瑞 時間:2007-05-07 來源:電子產品世界 收藏

摘要: 本文介紹了實時內核及其應用。

關鍵詞: 

引言

每年都在變得更加復雜。在過去的幾年中,產品已經從采用8位處理器轉向16位,甚至32位處理器。單任務的應用過于簡單,不再適應當前的競爭趨勢。(RTOS)通常用于處理復雜性的需求。RTOS創建一個框架,用于建立和提供比單任務應用更好的響應系統。一個非常流行的RTOS是MicroC/OS-II(也就是熟知的)。

mC/OS-II實時內核

mC/OS-II提供多任務的能力。多任務處理是調度的過程和幾個任務之間切換CPU;單CPU在幾個有序的任務之間進行切換。多任務處理提供構造應用成為一組小的,專注的共享處理器的任務的能力。多任務處理的最重要的方面之一是允許應用程序開發者管理實時應用固有的復雜性。mC/OS-II可以使應用程序更容易設計和維護。任務是一個簡單的程序,可以認為它完全占有CPU。實時應用程序的設計過程包括把問題分割成為多個任務,每個任務負責完成問題的一部分。mC/OS-II允許創建多達254個應用任務。對于許多來說,254個任務可以用于復雜的產品設計。

內核是多任務處理系統負責任務管理和任務之間通訊的部分。當內核決定運行一個不同任務時,它僅僅存儲當前任務的上下文(CPU寄存器)到當前的任務的堆棧;每一個任務在內存中被分配它自身擁有的堆棧區域。一旦這個操作完成,新的任務的上下文從它的堆棧區域存儲到此,然后新的任務的代碼執行被恢復。這個過程稱為上下文切換或任務切換。每一個任務的堆棧的當前頂端,隨同其他信息,被存儲在一個稱為任務控制塊(TCB)的數據結構中。當任務被RTOS創建和管理時,每一個任務都被分配一個TCB。

在實時系統中,一個重要的問題是響應中斷的時間要求,以及實際開始執行處理中斷的用戶代碼的時間要求。這被稱為中斷響應。像市場上的所有RTOS一樣,當處理關鍵代碼段時,mC/OS-II會禁止中斷。然而,mC/OS-II作了優化,中斷禁止盡可能的短,并提供更好的中斷響應。例如,對ARM處理器,mC/OS-II禁止中斷不大于250個時鐘周期(假設內存存取零等待狀態)。

調度器是內核的一部分,它負責決定哪一個任務將要運行和何時運行。mC/OS-II的調度器是基于優先級的;每一個任務依據其重要性被分配一個優先級。分配給每一個任務的優先級依賴產品試圖達到的目的。在基于優先級的內核中,CPU的控制將總是給予就緒態的最高優先級的任務。然而,何時最高優先級任務獲得CPU,依賴調度器使用的類型。注意,調度器執行時間是不變的和確定性的。換句話說,不論在產品中采用多少個任務,mC/OS-II的調度器將總是花費相同大小的時間執行。
mC/OS-II是可搶占內核,而且當一個事件使就緒態的最高優先級的任務運行,當前任務立即掛起,高優先級任務控制CPU。如果一個中斷使就緒態的最高優先級的任務運行,被中斷的任務掛起,新的最高優先級的任務恢復運行。大多數實時系統使用搶占調度器,因為它們響應更快。mC/OS-II為應用提供許多有價值的服務。最基本的服務之一是允許任務掛起執行直到某一時間結束。換句話說,一個任務完成某項工作,然后任務進入指定的時間量的睡眠“sleep”,這個時間是可變的,從一個時鐘節拍(clock tike)到幾個小時。時鐘節拍通常由硬件定時器和有規則的中斷CPU產生,并且它是由mC/OS-II管理的基本時間單元。時鐘節拍中斷CPU的速率由應用程序開發者決定,通常每秒發生在10到1000次之間。

多任務處理需要仔細考慮共享資源(內存特定區域,變量,I/O,等等)。換句話說,必須確保有權使用的共享資源是獨占的。mC/OS-II提供多種服務使你更易使用,但責任也是由你承擔。mC/OS-II提供的最普通的資源保護機制是信號量。當存取共享資源時,應用程序開發者需要獲取為保護資源創建的信號量,存取資源,然后釋放信號量。如果一個任務需要存取資源,而信號量已經給予另一個任務,則這個任務會被放置在任務的等待列表,等待信號量的擁有者釋放信號量。任務等待信號量釋放,并不消耗CPU時間。當信號量被釋放,mC/OS-II要決定是否新的信號量擁有者比釋放者有更高的優先級,如果是,切換到高優先級任務。mC/OS-II可以根據需要允許創建許多信號量(在運行時)。

任務或ISR(中斷服務程序)與其它任務通訊也是重要的。像mC/OS-II這樣的RTOS提供消息郵箱和消息隊列這樣的服務實現這一通訊。郵箱是一個對象,它可以擁有一個消息(實際上是一個指針),并且任務列表等待郵箱中的消息,這個消息由其它的任務或ISR存放。指針的使用在于避免在運行時拷貝數據。指針發送實際上可以指向幾乎任何事:數據結構,變量,數組或甚至函數。等待消息到達的任務放置在等待列表中,直到消息被發送(由其它任務或ISR)。當任務等待消息時,它們不消耗CPU時間。換句話說,那些任務在等待時,RTOS執行其它的任務。當一個消息被發送時,實際上等待消息的最高優先級的任務接收消息。如果等待消息的任務成為最重要的任務要執行,則mC/OS-II執行那個任務,允許它立即處理接收的消息。

mC/OS-II總共提供80個函數,它們可以在應用程序中調用。

mC/OS-II的尺寸(代碼內存數量)在6K字節到大約24K字節的代碼量之間變化。同樣地,mC/OS-II需要500字節到大約4K字節之間的RAM。這意味著mC/OS-II是可伸縮的(在編譯時),適合用于一些最小的嵌入式控制器。事實上,mC/OS-II已經移植到超過45種不同CPU構架(8位,16位,32位CPU和DSP)。多年來,許多的這些移植已經被用戶貢獻出來,并且可以從Micrium的網站免費下載使用。

mC/OS-II的應用

除了許多使用mC/OS-II的技術原因之外,也有許多源于商業的觀點。使用mC/OS-II的最大優勢是它是可證明的可用于安全關鍵性應用的RTOS。事實上已經有第三方為μC/OS-II開發的認證套件可以提供全部必須的文檔,以便交付mC/OS-II作為預先證明的用于安全關鍵性系統的軟件組件,包括美國航空無線電技術委員會(RTCA)航空電子設備D0-178B (A級)標準和EUROCAE ED-12B標準,美國食品和醫藥管理局(FDA)醫療510(K)(III類)標準,以及IEC 61068 (SIL3/SIL4)用于運輸和原子能系統標準。即使你的產品不具備安全關鍵性,你應該了解到這個證明,它證明了mC/OS-II是一個非常健壯和高可靠的RTOS。mC/OS-II也99%適應汽車工業軟件可靠性協會(MISRA)C編碼標準。這些標準由MISRA創建,目的是在關鍵性汽車電子系統中改善C語言程序的可靠性和可預測性。MISRA協會成員包括戴勒克電子,福特汽車公司,美洲虎汽車有限公司,Lotus Engineering,Lucas Electronics,Rolls-Royce, Rover Group Ltd.,以及其它專注改善汽車電子安全性和可靠性的公司和大學。這個標準的全部詳細資料可以直接從MISRA的網站獲得,http://www.misra.org.uk。詳細的mC/OS-II遵循所有MISRA127條C編碼規則的描述表格可以從Micrium網站獲得(www.micrium.com)

mC/OS-II是流行的軟件,其原因是你可以從它獲得經驗而不用付授權費,直到你決定將它應用到實際的商業產品。同樣它在世界上許許多多的學院和大學中被使用。也有成千的mC/OS-II授權使用在許多不同類型的產品中。因為mC/OS-II低廉的費用和整潔的源代碼,它是非常吸引人的RTOS。

mC/TCP-IP

最近Micrium已經開發了mC/TCP-IP,一個潔凈的嵌入式TCP/IP協議棧。mC/TCP-IP開發成為與mC/OS-II同樣質量級別的軟件,事實上對教學使用是免費的。但是像mC/OS-II一樣,如果用于商業應用,需要得到授權。你可以從Micrium的網站(www.micrium.com)下載mC/TCP-IP,對于商業應用,Micrium允許免費評估mC/TCP-IP軟件45天。mC/TCP-IP是IPV4版本協議棧,提供BSD V4插槽接口(socket interface)。Micrium開發大量補充模塊到mC/TCP-IP:DHCPc(動態主機配置協議,客戶端),FTP(文件傳輸協議,客戶端和服務器兩者),HTTPs(超級文本傳輸協議,服務器)就是通常說的Web服務器,郵件客戶端,POP3(郵局協議3)和SMTP(簡單郵件傳輸協議),以及更多的其它模塊。這些模塊根據每一個最終產品授權。

Micrium還提供完整的軟件組件(就是通常說的中間件)。你可以得到嵌入式FAT兼容的文件系統(mC/FS),嵌入式圖形用戶系統(mC/GUI),嵌入式通用串行總線協議棧(mC/USB)以及其它更多的組件。

結語

Micrium的價值觀是為嵌入式大眾提供最好質量的軟件。雖然Micrium的軟件以源碼形式提供,但它并不能被認為是開源代碼。提供源代碼是為方便和容易配置。請通過授權我們的軟件幫助我們提供給嵌入式大眾最好的軟件。我們感激您的誠實和合作。

參考文獻:
1.   www.misra.org.uk
2.   www.micrium.com

tcp/ip相關文章:tcp/ip是什么




評論


相關推薦

技術專區

關閉