塘廈鎮(zhèn)仿做網站接app推廣的單子在哪接
文章目錄
- 一、為什么要學習μC/OS-III
- 二、嵌入式操作系統的發(fā)展歷史
- 三、實時操作系統的特點
- 四、基本概念
- 1. 前后臺系統
- 2. 操作系統
- 3. 實時操作系統(RTOS)
- 4. 內核
- 5. 任務
- 6. 任務優(yōu)先級
- 7. 任務切換
- 8. 調度
- 9. 非搶占式(合作式)內核
- 10. 搶占式(可剝奪式)內核
- 11. 中斷
- 12. 時鐘節(jié)拍
- 五、使用嵌入式操作系統的優(yōu)缺點
- 六、嵌入式操作系統分類
- 七、μC/OS簡介
- 八、Jean J. Labrosse的故事
- 九、μC/OS 的幾個典型應用
- 十、μC/OS-III的特點
- 十一、μC/OS-III的結構及其與硬件的關系
- <center> μC/OS-III不是自由軟件和免費軟件,用于商業(yè)目的時須取得許可證
一、為什么要學習μC/OS-III
一. 凡從事嵌入式系統開發(fā)工作的人,必須對嵌入式操作系統有足夠的了解。
二. 對于初學者,從μC/OS-III開始是個明智的選擇。
-
μC/OS-III麻雀雖小,卻五臟基本全(它是個微內核)。
-
可以把操作系統抽象概念具體化。
-
可以學習實時系統的一些編程技巧。
-
具有很強的實用性。
-
學習數據結構應用的好例子。
二、嵌入式操作系統的發(fā)展歷史
1981年Ready System發(fā)展了世界上第1個商業(yè)嵌入式實時內核(VTRX32)包含了許多傳統操作系統的特征,包括任務管理、任務間通訊、同步與相互排斥、中斷支持、內存管理等功能。
隨后,出現了如Integrated System Incorporation (ISI)的PSOS
、IMG的VxWorks
、QNX公司的QNX
等,Palm OS
,WinCE
,嵌入式Linux
,Lynx
, μCOS
、Nucleus
,以及國內的Hopen
、Delta OS
等嵌入式操作系統。
今天RTOS
已經在全球形成了一個產業(yè)。
三、實時操作系統的特點
IEEE
的實時UNIX
分委會認為實時操作系統應具備以下的幾點:
- 異步的事件響應
- 切換時間和中斷延遲時間確定
- 優(yōu)先級中斷和調度
- 搶占式調度
- 同步
總的來說實時操作系統是事件驅動的,能對來自外界的作用和信號在限定的時間范圍內作出響應。它強調的是實時性、可靠性和靈活性,與實時應用軟件相結合成為有機的整體起著核心作用,由它來管理和協調各項工作,為應用軟件提供良好的運行軟件環(huán)境及開發(fā)環(huán)境。
從實時系統的應用特點來看,實時操作系統可以分為兩種:一般實時操作系統和嵌入式實時操作系統。
-
一般實時操作系統應用于實時處理系統的上位機和實時查詢系統等實時性較弱的實時系統,并且提供了開發(fā)、調試、運用一致的環(huán)境。
-
嵌入式實時操作系統應用于實時性要求高的實時控制系統,而且應用程序的開發(fā)過程是通過交叉開發(fā)來完成的,即開發(fā)環(huán)境與運行環(huán)境是不一致的。嵌入式實時操作系統具有規(guī)模小(一般在幾K~幾十KB 內)、可固化使用實時性強(在毫秒或微秒數量級上)等特點 。
四、基本概念
1. 前后臺系統
對基于芯片的開發(fā)來說,應用程序一般是一個無限的循環(huán),可稱為前后臺系統或超循環(huán)系統。
前后臺系統結構簡單,很多基于微處理器的產品都采用了前后臺系統設計,例如微波爐、電話機、玩具等。而在一些基于微處理器的應用中,從省電的角度出發(fā),平時微處理器處在停機狀態(tài),所有事都靠中斷服務來完成。
2. 操作系統
操作系統是計算機中最基本的程序。操作系統負責計算機系統中全部軟硬資源的分配與回收、控制與協調等并發(fā)的活動;操作系統提供應用程序接口,使用戶獲得良好的工作環(huán)境;操作系統為用戶擴展新的系統功能提供軟件平臺。
3. 實時操作系統(RTOS)
實時操作系統是一段在嵌入式系統啟動后首先執(zhí)行的背景程序,用戶的應用程序是運行于RTOS之上的各個任務,RTOS根據各個任務的要求,進行資源(包括CPU、存儲器、外設等)管理、消息管理、任務調度、異常處理等工作。
在RTOS支持的系統中, 每個任務均有一個優(yōu)先級,RTOS根據各個任務的優(yōu)先級,動態(tài)地切換各個任務,保證對實時性的要求。
實時操作系統包含實時內核,以及其它高級的服務如:文件管理、協議棧、圖形用戶接口(GUI)等。
4. 內核
多任務系統中,內核負責管理各個任務,或者說為每個任務分配CPU時間,并且負責任務之間的通信。內核提供的最基本服務是任務切換。使用實時內核可以大大簡化應用系統的設計,因為實時內核允許將應用分成若干個任務,由實時內核來管理它們。
內核需要消耗一定的系統資源,比如2%~5%的CPU運行時間、RAM和ROM等。
內核還提供一些必不可少的系統服務,如信號量、消息隊列、延時等。
5. 任務
一個任務,也稱作一個線程,是一段簡單的程序,該程序可以認為CPU完全屬于該程序自己。每個任務被賦予一定的優(yōu)先級,有它自己的一套CPU寄存器和自己的??臻g。
實時應用程序的設計過程,包括如何把問題分割成多個任務,每個任務都是整個應用的某一部分。
6. 任務優(yōu)先級
任務的優(yōu)先級是表示任務被調度的優(yōu)先程度。每個任務都具有優(yōu)先級。任務越重要,賦予的優(yōu)先級應越高,越容易被調度進入運行態(tài)。
7. 任務切換
當多任務內核決定運行另外的任務時,它保存正在運行任務的當前狀態(tài),即CPU寄存器中的全部內容。這些內容保存在任務的當前狀態(tài)保存區(qū),即任務自已的棧之中。入棧工作完成以后,就把下一個將要運行的任務的當前狀態(tài)從其棧中重新裝入CPU的寄存器,并開始下一個任務的運行。這個過程就稱為任務切換。
這個過程增加了應用程序的額外負荷。CPU的內部寄存器越多,額外負荷就越重。做任務切換所需要的時間取決于CPU有多少寄存器要入棧。
8. 調度
調度是內核的主要職責之一。調度就是決定該輪到哪個任務運行了。多數實時內核是基于優(yōu)先級調度法的。每個任務根據其重要程序的不同被賦予一定的優(yōu)先級。基于優(yōu)先級的調度法指CPU總是讓處在就緒態(tài)的優(yōu)先級最高的任務先運行。
然而究竟何時讓高優(yōu)先級任務掌握CPU的使用權,有兩種不同的情況,這要看用的是什么類型的內核,是非搶占式的還是搶占式的內核。
9. 非搶占式(合作式)內核
非搶占式內核要求每個任務自我放棄CPU 的所有權。非搶占式調度法也稱作合作型多任務,各個任務彼此合作共享一個CPU。
異步事件還是由中斷服務來處理。中斷服務可以使一個高優(yōu)先級的任務由掛起(Pending,或譯為“等待” )狀態(tài)變?yōu)榫途w狀態(tài)。但中斷服務以后CPU控制權還是回到原來被中斷了的那個任務,直到該任務主動放棄CPU的使用權時,那個高優(yōu)先級的任務才能獲得CPU的使用權。
10. 搶占式(可剝奪式)內核
當系統響應時間很重要時,要使用搶占式內核。因此絕大多數商業(yè)上銷售的實時內核都是搶占式內核。最高優(yōu)先級的任務一旦就緒,總能得到CPU的控制權。當一個運行著的任務使一個比它優(yōu)先級高的任務進入了就緒狀態(tài),當前任務的CPU使用權就被剝奪了,或者說被掛起了,那個高優(yōu)先級的任務立刻得到了CPU的控制權。
如果是中斷服務程序使一個高優(yōu)先級的任務進入就緒態(tài),中斷完成時,中斷了的任務將被掛起,優(yōu)先級高的那個任務開始運行。
11. 中斷
中斷是一種硬件機制,用于通知CPU有個異步事件發(fā)生了。中斷一旦被識別,CPU保存部分(或全部)上下文即部分或全部寄存器的值,跳轉到專門的子程序,稱為中斷服務程序(ISR)。中斷服務程序做事件處理,處理完成后,程序回到:
- 在前后臺系統中,程序回到后臺程序;
- 對非搶占式內核而言,程序回到被中斷了的任務;
- 對搶占式內核而言,讓進入就緒態(tài)的優(yōu)先級最高的任務開始運行。
12. 時鐘節(jié)拍
時鐘節(jié)拍是特定的周期性中斷。這個中斷可以看作是系統心臟的脈動。中斷之間的時間間隔取決于不同應用,一般在10ms到200ms之間。時鐘的節(jié)拍式中斷使得內核可以將任務延時若干個整數時鐘節(jié)拍,以及當任務在等待事件發(fā)生時,提供等待超時的依據。
時鐘節(jié)拍率越快,系統的額外開銷就越大。
五、使用嵌入式操作系統的優(yōu)缺點
-
優(yōu)點
- 使程序的設計和擴展變得容易,大大提高了開發(fā)效率。
- 充分發(fā)揮32位CPU多任務的潛力,實現多任務設計,能夠充分利用硬件資源和實現資源共享。
- 實時性和健壯性能夠得到更好的保證。
-
缺點
- 嵌入式操作系統占用ROM/RAM等額外開銷,5~10%的CPU額外負荷。
六、嵌入式操作系統分類
- 按收費模式劃分
- 商用型:
Vxworks, Nucleus, PlamOS, Symbian, WinCE, QNX, pSOS, VRTX, Lynx OS, Hopen, Delta OS - 免費型:
Linux, μCLinux, μC/OS-III(非商用時), eCos, uITRON
- 商用型:
- 按實時性劃分
- 硬實時:
Vxworks、μC/OS-III
軟實時
WinCE, RTLinux - 無實時:
Embedded Linux
- 硬實時:
七、μC/OS簡介
-
μC/OS—Micro Controller OS
-
美國人Jean Labrosse 1992年完成,已應用于眾多產品中。
-
應用面覆蓋了諸多領域,如照相機、醫(yī)療器械、音響設備、發(fā)動機控制、高速公路電話系統、自動提款機等。
-
1998年μC/OS-II、2009年μC/OS-III
-
滿足航空電子、工業(yè)控制、醫(yī)療等市場的針對可靠性/安全性的認證標準。
-
是一個源碼公開、可移植、可裁減、可固化、占用資源少、搶占式的實時多任務操作系統內核。其絕大部分源碼采用ANSI C編寫,可移植性好。高校教學可免費使用。
八、Jean J. Labrosse的故事
- 80年代末,我設計了一個基于Intel 80C188的產品,需要一個實時內核。
- 使用一個知名的內核太貴了,廉價的內核B(當時大約1000美元以下)讓我總給該廠商打電話求援。該廠商聲稱內核B是用C語言寫的,可我還得用匯編語言初始化程序的每個對象,實在是煩透了,產品的開發(fā)也耽誤了。
- 后來我得知我是該廠商的第一個客戶
九、μC/OS 的幾個典型應用
- NSA2010便攜式電話,在日本大約有15000臺投入市場。使用μC/OS實時操作系統。
- CYCLONE移動電話,Hitachi H8S/2318k微程序控制器,256K閃存和8K Ram, μC/OS 實時操作系統。
選擇μC/OS的原因:
INFEA R&D的職員從1996年以來開始應用Micriμm實時操作系統。通過比較,還沒有發(fā)現比μC/OS更好的實時操作系統。
十、μC/OS-III的特點
-
源代碼開放
-
便捷的應用程序編程接口(API)
-
搶占式多任務管理
-
同優(yōu)先級任務的時間片輪轉調度
-
極短的關中斷時間
-
確定性
-
可裁剪
-
可移植
-
可固化
-
可動態(tài)配置
-
任務數目不受限制
-
內核對象數目不受限制
-
豐富的系統服務
-
互斥型信號量
-
軟件定時器
-
同時等待多個內核對象
-
直接向任務發(fā)信號、消息
-
任務寄存器
-
出錯檢驗
-
內置性能測試
-
易于優(yōu)化
-
防止死鎖
-
內置的內核察覺式調試
十一、μC/OS-III的結構及其與硬件的關系
按照每個模塊的標記順序,對內核每個模塊的功能進行說明:
(1)應用程序代碼。為了方便起見,將其簡稱為APP.C和APP.H,然而,一個應用可包含任意數量的文件,這些文件并不一定叫APP.*。通常在應用程序代碼中可找到主函數main()。
(2)半導體制造商通常以源代碼的形式提供庫函數,用于訪問他們生產的CPU或者MCU的外設。這些庫非常的有用。
(3)板級支持包(Board Support Package,BSP)是操作系統與目標板外設的交互代碼。比如,這些代碼可用于打開或者關閉LED燈、繼電器,讀開關狀態(tài)、讀溫度傳感器等。
(4)這是μC/OS-III中與CPU無關的代碼,這部分代碼是用高度可移植的ANSI C編寫的。
(5)這部分μC/OS-III代碼需要根據特定的CPU架構進行修改,該過程稱為移植(porting)。
(6)Micrium公司將CPU相關功能代碼封裝起來。這些文件定義了禁止和使能中斷的函數,與CPU和使用的編譯器有關的CPU_???數據類型,和一些其它的函數。
(7)μC/LIB是一系列提供通用函數的源文件,比如內存復制、字符串和ASCII碼的相關函數。其中一部分函數用來代替編譯器所提供的stdlib庫里的函數。這些函數代碼的提供確保了應用程序之間,特別是編譯器之間的可移植性。μC/OS-III并不使用這些文件,但μC/CPU會用到。
(8)這部分是μC/OS-III的配置文件。OS_CFG.H配置μC/OS-III的功能;OS_CFG_APP.H配置μC/OS-III特定變量或數據結構的大小,比如:空閑任務的棧大小,時鐘節(jié)拍的頻率、消息緩沖池的大小等; CPU_CFG.H用來配置應用程序編程人員可用的μC/CPU功能;LIB _CFG.H用來配置μC/LIB選項。