1.什麼是uC/OS III,以及uC/OS III的結構

1.什麼是uC/OS III

uC/OS-III(Micro C OS Three 微型的C 語言編寫的操作系統第3版)是一個可升級的,可固化的,基於優先級的實時內核。它對任務的個數無限制。uC/OS-III 是一個第3 代的系統內核,支持現代的實時內核所期待的大部分功能。例如資源管理,同步,任務間的通信等等。然而,uC/OS-III 提供的特色功能在其它的實時內核中是找不到的,比如說完備的運行時間測量性能,直接地發送信號或者消息到任務,任務可以同時等待多個內核對象等。

在重要的地方,實時系統憑藉其系統性的計算和及時的處理能力工作着。一共有2 種類型的實時系統:軟實時系統和硬實時系統。軟實時系統和硬實時系統的區別在於一旦沒有在規定的時間內完成任務所導致後果的嚴重性。超過時限後所得到的結果即使正確也可能是毫無作用的。硬實時系統是不允許運算超時的情況發生。

2.uC/OS III的概念

2-1前後臺系統

簡單的小型系統設計一般是基於前後臺的或者無限循環的系統。包含一個無限循環的模塊實現需要的操作(後臺)。中斷處理程序實現異步事件(前臺)。前臺也叫做中斷級,後臺也叫作任務級。

2-2 實時內核

實時內核是一個能管理MPU、MCU、DSP 時間和資源的軟件。實時內核的應用包括迅速地響應,可靠地完成工作的各個部分。任務(也叫做線程)是一段簡單的程序,運行時完全地佔用CPU。在單CPU 中,任何時候只有1 個任務被執行。內核的責任是管理任務,也做多任務處理。多任務處理的作用是協調和切換多個任務依次享用CPU。uC/OS-III 是一個搶佔式內核,這意味着uC/OS-III 總是執行最重要的就緒任務。

2-3 實時系統(RTOS)

一個實時系統通常包括一個實時內核以及其他高級的服務,例如:
文件管理,堆棧協議,圖形用戶接口等等。大多數服務都是跟I/O 有關的。Micrium 提供了RTOS 一套完整的組件,包括uC/FS、uC/TCP-IP、uC/GUI、uC/USB 等。這些組件大部分都可以單獨執除了uC/TCP-IP。實時內核在應用中不是必須的。事實上,用戶可以單獨選擇您的應用所需用的組件。

3.uC/OS III的特點

(1):源代碼:uC/OS-III 完全根據ANSI-C 標準寫的。

(2):應用程序接口(API):uC/OS-III 是很直觀的。

(3):搶佔式多任務處理:uC/OS-III 是一個搶佔式多任務處理內核,因此,uC/OS-III 正在運行的經常是最重要的就緒任務。

(4):快速響應中斷: uC/OS-III 有一些內部的數據結構和變量。uC/OS-III 保護臨界段可以通過鎖定調度器代替關中斷。因此關中斷的時間會非常少。這樣就使uC/OS-III 可以     響應一些非常快的中斷源了。

(5):確定性的:uC/OS-III 的中斷響應時間是可確定的,uC/OS-III 提供的大部分服務的執行時間也是可確定的。

(6):可擴展的:根據應用的需求,代碼大小可以被調整。

(7):易移植的:uC/OS-III 可以被移植到大部分的CPU 架構中。大部分的支持uC/OS-II 的器件通過改動就能支持uC/OS-III。而uC/OS-II已經移植到45 種CPU 架構中了。

(8):可固化的:uC/OS-III 專爲嵌入式系統設計,它可以跟應用程序代碼一起被固化。

(9)可實時配置的:uC/OS-III 允許用戶在運行時配置內核。特別的,所有的內核對象如任務、堆棧、信號量、事件標誌組、消息隊列、消息、互斥信號量、內存分區、軟件定時器等都是在運行時分配的,以免在編譯時的過度分配。

任務數無限制:uC/OS-III 對任務數量無限制。

優先級數無限制:uC/OS-III 對優先級的數量無限制。然而,配置uC/OS-III 的優先級在32 到256 之間已經滿足大多數的應用了。內核對象數無限制:uC/OS-III 支持任何數量的任務、信號量、互斥信號量、事件標誌組、消息隊列、軟件定時器、內存分區。用戶在運行時分配所有的內核對象。服務:uC/OS-III 提供了高檔實時內核所需要的所有功能,例如任務管理、時間管理、信號量、事件標誌組、互斥信號量、消息隊列、軟件定時器、內存分區等。
互斥信號量(Mutexes):互斥信號量用於資源管理。它是一個內置優先級的特殊類型信號量,用於消除優先級反轉。互斥信號量可以被嵌套,因此,任務可申請同一個互斥信號量多達250 次。當然,互斥信號量的佔有者需要釋放同等次數。
嵌套的任務停止:uC/OS-III 允許任務停止自身或者停止另外的任務。停止一個任務意味着這個任務將不再執行直到被其他的任務恢復。停止可以被嵌套到250 級。換句話說,一個任務可以停止另外的任務多達250 次。當然,這個任務必須被恢復同等次數纔有資格再次獲得CPU。
軟件定時器:可以定義任意數量的一次性的、週期性的、或者兩者兼有的定時器。定時器是倒計時的,執行用戶定義的行爲一直到計數減爲0。每一個定時器可以有自己的行爲,如果一個定時器是週期性的,計數減爲0 時會自動重裝計數值並執行用戶定義的行爲。
掛起多個對象:uC/OS-III 允許任務等待多個事件的發生。特別的,任務可以同時等待多個信號量和消息隊列被提交。等待中的任務在事
件發生的時候被喚醒。
任務信號量:uC/OS-III 允許ISR 或者任務直接地發送信號量給其它任務。這樣就避免了必須產生一箇中間級內核對象如一個信號量或者事件標誌組只爲了標記一個任務。提高了內核性能。
任務消息:uC/OS-III 允許ISR 或者任務直接發送消息到另一個任務。這樣就避免產生一個消息隊列,提高了內核性能。任務寄存器:每一個任務可以擁有用戶可定義的任務寄存器,不同於CPU 寄存器。
錯誤檢測:uC/OS-III 能檢測指針是否爲NULL、在ISR 中調用的任務級服務是否允許、參數在允許範圍內、配置選項的有效性、函數的執行結果等。內置的性能測量:uC/OS-III 有內置性能測量功能。

可優化: uC/OS-III 被設計於能夠根據CPU 的架構被優化。uC/OS-III 所用的大部分數據類型能夠被改變,以更好地適應CPU 固有的字大小

3.uC/OS結構


①配置文件,通過定義這些文件裏宏的值可以輕易地裁剪uC/OS-III 的功能。
②用戶應用文件,定義和聲明應用任務。
③內核服務文件,其代碼與CPU 無關,可以不做任何修改移植到任何CPU。本書主要講解
這部分內容。
④底層函數庫,比如字符串的常規操作,常用的數學計算,等等。
⑤CPU 移植文件,用戶如果想要移植uC/OS-III 到不同平臺上,需要修改這部分代碼。
⑥CPU 配置文件,主要是CPU 的一些工作模式和服務函數。
⑦其他CPU 相關文件。

數據結構:

uC/OSIII 的內核對象都是以結構體的形式存在的,

等等上述類似的結構體形式存在的


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章