μCOS-Ⅲ簡介
文章目錄
- μCOS-Ⅲ簡介
- 前言
- 一、什么是 μC/OS-III?
- 二、μC/OS-III的特點
- 三、μC/OS-III的版本和參考資料
- 1、μC/OS-III版本
- 2、μC/OS-III源碼獲取
- 3、μC/OS-III參考資料
- 四、μC/OS-III源碼簡介
- 總結
前言
μcos-III是一個可以基于ROM運行的、可裁剪的、搶占式、實時多任務內核,具有高度可移植性,在一段學習后留個筆記簡單記錄下相關知識歡迎大佬指正!!!!
一、什么是 μC/OS-III?
μC/OS-III 基于 C 語言編寫的第三代小型實時操作系統,也就是 RTOS(Real Time Operating System),與之類似的 RTOS 還有 FreeRTOS、RT-Thread 等。
作為操作系統最直觀的特點就是一個 CPU 核心“同時運行”多個任務,這個特性就被稱為“多任務”(實際上一個 CPU 核心在某一時刻只能運行一個任務),系統中任務調度器的責任就是決定在某一時刻 CPU 究竟要運行哪一個任務,任務調度器使得 CPU 在各個任務之間來回切換并處理任務,由于切換處理任務的速度非常快,因此給人造成了一種同一時刻有多個任務同時運行的錯覺。
操作系統的分類方式可以由任務調度器的工作方式決定, 比如有的操作系統給每個任務分配同樣的運行時間,時間到了就切換到下一個任務, Unix 操作系統就是這樣的。 RTOS 的任務調度器被設計為可預測的, 而這正是嵌入式實時操作系統所需要的。在實時環境中, 要求操作系統必須實時地對某一個事件做出響應,因此任務調度器的行為必須是可預測的。 像 μC/OS-III這種傳統的 RTOS 類操作系統是由用戶給每個任務分配一個任務優先級, 任務調度器就可以根據此優先級來決定下一刻應該運行哪個任務。
二、μC/OS-III的特點
μC/OS-III 是一個可裁剪、可固化到 ROM 的搶占式實時內核,并且可管理任務的數量不受
限制。 μC/OS-III 是第三代的 μC/OS 內核,具有以下幾個重要的特性:
■支持多種不同架構的不同型號的處理器: ARM架構系列,例如STM32和GD32的 F1、 F4、 F7 和 H7 等型號的 MCU 都可支持,只需簡單的移植,這些 MCU 上運行 μC/OS-III ,非常方便
■搶占式多任務管理: μC/OS-III 是一個支持多任務搶占的內核,因此總是優先執行任務優先
級高的任務。
■時間片調度: μC/OS-III 允許系統中有多個相同任務優先級的任務,如果系統中處于就緒狀
態的任務中,優先級最高的任務有多個,那么 μC/OS-III 將以時間片的方式調度任務,即根據用
戶指定的時間(時間片)輪流調度這些任務。
■極短的中斷禁用時間: μC/OS-III 通過鎖定任務調度器代替禁用中斷來保護一些關鍵區域
(臨界區),這確保了 μC/OS-III 能夠快速地響應中斷。
■任務數量不限: μC/OS-III 理論上支持不受限制的任務數量,但實際上,系統中任務的最大
數量受處理器內存空間的限制。
■任務優先級數量不限: μC/OS-III 支持的任務優先級數量不受限制,但對于大多數應用場景
而言,使用 32~256 個任務優先級就綽綽有余了。
■內核對象數量不限: μC/OS-III 提供了多種內核對象,如任務、信號量、事件標志、消息隊
列、軟件定時器和內存區等,并且在不考慮處理器內存限制的情況下,用戶可以無限制的創建
這些內核對象。
■時間戳: μC/OS-III 提供了時間戳功能,用戶可以非常方便地測量系統在運行過程中,處理
器處理某些事件所消耗的時間,以方便用戶對系統進行針對性的優化。
■自定義鉤子函數: μC/OS-III 提供了一些在內核執行操作之前、之后或過程中的鉤子函數,
這樣可以方便用戶擴展 μC/OS-III 的功能。
■防死鎖: μC/OS-III 允許任務在等待某些內核對象前,設置一個等待的最大超時時間,這樣
可以有效地防止死鎖的發生。
■軟件定時器: 在 μC/OS-III 中,用戶可以創建任意數量的“單次”和“周期”軟件定時器,
并且每個軟件定時器都可以有獨立的超時回調函數。
■任務內嵌信號量: μC/OS-III 提供了任務的內嵌信號量功能,這使得任務可以直接獲取來自
其他任務或中斷的信號,而不需要任何的中間內核對象,大大地提高了系統的運行效率。
■任務內嵌消息隊列: μC/OS-III 提供了任務的內嵌消息隊列,這使得任務可以直接接收來自
其他任務或中斷的消息,而不需要任何的中間內核對象,大大地提高了系統的運行效率。
三、μC/OS-III的版本和參考資料
1、μC/OS-III版本
μC/OS 至今為止一共發展了三個版本,分別為 μC/OS、 μC/OS-II 和 μC/OS-III,這三個版本
的特征比較如下表所示:
2、μC/OS-III源碼獲取
在移植 μC/OS-III 的時候還需要用到 μC/OS-III 官方提供的兩個額外的庫,分別為 μC/CPU 和 μC/LIB,在下文會分別介。μC/OS-III 官方:https://weston-embedded.com/,提供了大量的 μC/OS-III 相關的資料和不同版本的源代碼,現在的目標就是要獲取 μC/OS-III、 μC/CPU 和 μC/LIB 這三個組件的源代碼,打開后如下圖所示:
鼠標指針放到頂部MICRIUM,可看到“CODEBASE”,點擊“CODEBASE”就能跳到μC/OS-III 官方 GitHub 倉庫,如下圖所示:
在Repositories”在全部倉庫中進行檢索,輸入LIB、CPU或OS3即可檢索對應的倉庫源碼,然后切換到該倉庫已經發布的版本的 Tag,能夠點擊圖綠的圖標“Code”,然后點擊“DownloadZIP”就能后下載到指定版本 的源代碼壓縮包了,接著再對其進行解壓,就能夠得到 μC/OS-III 的源代碼。
3、μC/OS-III參考資料
參考資料在頂部導航欄“MICRIUM” 中的“Kernels”,就能看到 μC/OS 的詳情頁了,打開后如下圖所示:
在 μC/OS 的詳情頁中可以看到,頂部導航欄中有一個“DOCUMENTATION” 的標簽按鈕,這就是 μC/OS 官方資料的入口。接著點擊“DOCUMENTATION”,就能夠打開 μC/OS 官方的文檔中心,如下圖所示:
在 μC/OS 官方的文檔中心中可以看到 μC/OS 官方為自家的多種組件都提供了詳細的文檔資料,例如 μC/CAN、 μC/CANopen、 μC/Clk 等等。 在文檔中心中索引找到并打開 μC/OS-III 的在線文檔資料, 打開 μC/OS-III 的在線文檔資料后,就能夠在頁面的側看到 μC/OS-III 在線文檔的導航欄,如下圖所示:
從上圖左側欄看,μC/OS-III官方提供了大量關于μC/OS-III的在線資料,其中包括了μC/OSIII 的用戶手冊、 μC/OS-III 的參考手冊以及 μC/OS-III 的 API 參考手冊等等。在 μC/OS-III 的 API參考手冊中詳細地介紹了 μC/OS-III 中各個 API 的使用說明,包括 API 函數的參數說明、返回值說明以及 API 用法舉例。可以在頁面的右側看到, μC/OS-III 官方不僅提供了完整的在線文檔,還提供了 PDF 格式的特定于硬件的 μC/OS-III 書籍。
四、μC/OS-III源碼簡介
μC/OS-III、 μC/CPU 和 μC/LIB 這三個組件的源代碼已經下載完成,那么這三個文件分別是做什么用的呢?所示:
總結
μC/OS-III官方提供了大量關于μC/OS-III的在線資料,適合作為嵌入式操作系統入門學習。