內容簡介
μC/OS-Ⅲ是源碼公開的商用嵌入式實時操作係統內核,由著名的μC/OS-Ⅱ發展而來。μC/OS-Ⅲ針對以ARM Cortex為代錶的新一代CPU,麵嚮帶有可用於優先級查錶的硬件指令(如,前導零計算指令)的CPU的嵌入式應用。μC/OS-Ⅲ允許利用這類高端CPU的特殊硬件指令來實現高效的任務調度算法,而無須使用μC/OS-Ⅲ的軟件任務調度算法,而且μC/OS-Ⅲ支持時間片輪轉調度算法。從核心任務調度算法的改變來看,μC/OS-Ⅲ已經是一個全新的嵌入式RTOS內核。從μC/OS算起,該內核已有20餘年應用史,在諸多應用領域得到瞭廣泛的認可。
《嵌入式實時操作係統μC/OS-3》在保留對實時操作係統基本概念闡述的基礎上,詳細講解μC/OS-Ⅲ相比μC/OS-Ⅲ所做的大量擴展與改進,如同時支持時間片輪轉調度算法和基於優先級的可剝奪型任務調度算法;用係統任務來處理中斷隊列以縮短關中斷時間;以時間節拍任務來管理時鍾節拍從而徹底實現硬實時;以直接嚮任務發信號方式簡化任務間通信與同步等,特彆是新增加的在綫測試與調試功能,使應用開發更為方便。《嵌入式實時操作係統μC/OS-3》描述的源代碼以及原文電子書可從Micriμm公司的官方網站上免費下載。
《嵌入式實時操作係統μC/OS-3》可用作高等院校嵌入式實時係統課程或工程師培訓的教材,特彆是那些以ARM Cortex、PowerPC、MIPS等高端CPU為實驗平颱的教學課程;也可供嵌入式應用開發人員研究與應用。
作者簡介
Jean Labrosse,Jean Labrosse於1999年創立瞭Micriμm公司,他經常為波土頓和矽榖的嵌入式係統大會以及其他行業的會議提供講座和報告。同時,他是兩本嵌入式設計經典書籍的作者:μC/OS-ⅡThe Real-Time Kerne和Embedded Systems Building Blocks,Complete and Ready-to-UseModules in C.Jean Labrosse先生在加拿大魁北剋省捨布魯剋大學獲得電子工程學土學位和碩士學位。
本書翻譯團隊屬清華大學工程物理係核係統控製與應用教研室,主要研究領域包括嵌入式係統、核電子學、數字電路等。2000年,該團隊將實時內核μC/OS介紹到國內,先後翻譯齣版瞭《嵌入式實時操作係統μC/OS-Ⅱ》及其第2版,積極倡導並促進實時內核在同內嵌入式領域的推廣和應用。團隊自1994年開始開展飛思卡爾係列微控製器的科研、教學和培訓工作,其係列教材和配套教輔設備被國內多所高校采用。結閤自身專業特點,團隊針對分布式同步控製、高可靠安全控製、高速數據采集、微弱信號測量等技術開展瞭長期研究,並在歐洲核子中心的LHCb試驗、大亞灣中微子試驗等大型科學試驗以及列車信號自動控製等場閤取得實際應用。在翻譯團隊的照片中,前排左起依次為曾鳴、宮輝、邵貝貝、龔光華、杜強,後排左起依次為呂海艇、薛濤、潘維濱、黃土琛、諶浦江、嶽曉光。
內頁插圖
目錄
第1章 概述
1.1 前後颱係統
1.2 實時內核
1.3 RTOS(實時操作係統)
1.4 μC/OS-Ⅲ
1.5 μC/OS、μC/OS-Ⅱ、μC/OS-Ⅲ特性比較
1.6 關於本書
1.7 μC/Probe調試軟件工具
1.8 本書的常用約定
1.9 各章內容
第2章 目錄與文件
2.1 應用代碼
2.2 CPU
2.3 闆級支持包(BSP)
2.4 μC/OS-Ⅲ與CPU無關的源代碼
2.5 μC/OS-Ⅲ與CPU相關的源代碼
2.6 μC/CPU與CPU相關的源代碼
2.7 μC/LIB可移植的庫函數
2.8 小結
第3章 初識μC/OS-Ⅲ
3.1 單任務應用程序
3.2 有內核對象參與的多任務應用程序
第4章 臨界段代碼
4.1 關中斷
4.1.1 測量中斷關閉時間
4.2 給調度器上鎖
4.2.1 測量調度器鎖定時間
4.3 μC/OS-Ⅲ的某些功能會導緻臨界段代碼長度增加
4.4 小結
第5章 任務管理
5.1 任務優先級的分配
5.2 棧空間大小的確定
5.3 任務棧溢齣檢測
5.4 任務管理函數
5.5 任務管理的內部原理
5.5.1 任務狀態
5.5.2 任務控製塊TCB
5.6 係統內部任務
5.6.1 空閑任務(OS_IdleTask()、os_core.c)
5.6.2 時鍾節拍任務(OS_TickTask()、os_tick.c)
5.6.3 統計任務(OS_StatTask()、os_stat.c)
5.6.4 定時任務(OS_TmrTask()、os_tmr.c)
5.6.5 中斷服務管理任務(OS_IntQTask()、os_int.c)
5.7 小結
第6章 任務就緒錶,
6.1 優先級
6.2 就緒任務列錶
6.3 嚮就緒任務列錶中增加任務
6.4 小結
第7章 任務調度
7.1 可剝奪型調度
7.2 調度點
7.3 時間片輪轉調度
7.4 調度的實現細節
7.4.1 0SSched()
7.4.2 0SIntExit()
7.4.3 0S_SchedRoundRobin()
7.5 小結
第8章 任務切換,
8.1 0SCtxSw()
8.2 0SIntCtxSw()
……
第9章 中斷管理
第10章 任務掛起錶
第11章 時間管理
第12章 定時器管理
第13章 資源管理
第14章 任務同步
第15章 消息傳遞
第16章 同時等待多個內核對象
第17章 存儲管理
第18章 移植μC/OS-Ⅲ
第19章 程序運行時的各類統計信息
附錄A μC/OS-Ⅲ參考手冊
附錄BμC/OS-Ⅲ配置手冊
附錄C 從μC/OS-Ⅱ遷移到μC/OS-Ⅲ
附錄D MISRA-C:2004μC/OS-Ⅲ
附錄E 參考文獻
附錄F μC/OS-Ⅲ許可政策
前言/序言
μC/OS-Ⅲ是什麼?
μC/OS-Ⅲ是一個可裁剪、可固化、可剝奪型的實時內核,管理任務的數目不受限製。μC/OS-Ⅲ是第三代內核,可提供現代實時內核所能提供的所有服務,如資源管理、任務間同步、任務間通信等。然而,μC/OS-Ⅲ還能提供許多其他實時內核所沒有的獨特功能,如在係統運行時做性能測試,嚮任務直接發信號量或消息,以及同時等待多個內核對象等。為什麼要齣新版的μC/OS?
μC/OS係列實時內核最早於1992年推齣,經過這麼多年,根據成韆上萬μC/OS用戶的反饋意見已經做瞭大量的改進。
μC/OS-Ⅲ是用戶反饋意見和設計者經驗的融閤。μC/OS-Ⅲ摒棄瞭μC/OS-Ⅲ中那些很少使用的功能,而增加瞭一些新的、更有效的功能和服務。也許用戶最一緻的要求就是增加時間片輪轉調度,這在μC/OS-Ⅲ中是不可能做到的,而現在它已成為μC/OS-Ⅲ的一個新功能。μC/OS-Ⅲ還提供瞭一些其他的功能,使當今一些新處理器的能力得到更好的發揮。μC/OS-Ⅲ是針對32位處理器開發和設計的,當然,它依然能很好地支持16位處理器,甚至一些8位處理器。這本書有哪些新內容?μC/OS-Ⅲ一書主要講述μC/OS-Ⅱ産品自身,而對實時操作係統(RTOS)隻做瞭簡單的介紹。
智能嵌入式係統的核心驅動:深入淺齣μC/OS-3實時操作係統 在當今科技飛速發展的時代,嵌入式係統已滲透到我們生活的方方麵麵,從智能傢電到汽車電子,從工業自動化到醫療設備,無處不有其身影。而支撐這些復雜智能嵌入式係統高效、可靠運行的關鍵,往往在於其底層的心髒——實時操作係統(RTOS)。本書,將帶您深入探索μC/OS-3,一款在嵌入式領域享有盛譽的實時內核,揭示其設計理念、核心機製及其在構建強大、響應迅速的嵌入式係統中的重要作用。 為何選擇μC/OS-3? 許多開發者在麵臨嵌入式項目時,都會麵臨一個選擇:是自行開發一個簡易的實時調度器,還是引入一個成熟的RTOS?雖然簡單的項目或許可以簡化處理,但當係統復雜度增加,需要管理多個並發任務,並對時間響應有嚴格要求時,一個功能完善、經過驗證的RTOS就顯得尤為重要。μC/OS-3以其高度的可靠性、極小的代碼占用空間、優秀的實時性能以及跨平颱的特性,成為眾多嵌入式開發者信賴的選擇。 本書並非僅僅停留在對μC/OS-3 API的簡單羅列,而是緻力於從根本上理解RTOS的設計哲學。我們將從實時操作係統的基本概念入手,例如任務、優先級、中斷、同步與通信機製等,為讀者構建起堅實的理論基礎。在此之上,我們將深入剖析μC/OS-3內核的每一個核心組件,包括: 任務管理: 深入理解任務的創建、刪除、掛起、恢復等生命周期管理,以及μC/OS-3特有的任務調度算法,例如優先級搶占式調度,以及不同優先級任務如何協同工作,確保關鍵任務得到及時響應。我們將探討上下文切換的細節,以及其對係統性能的影響。 時間管理: 實時性是RTOS的生命綫。本書將詳細講解μC/OS-3的時間管理機製,包括係統時鍾節拍的配置與作用,任務的延時與定時功能,以及如何利用這些機製來精確控製任務執行的時間。 任務間通信與同步: 在多任務環境中,任務之間如何安全高效地共享數據和協調動作是至關重要的。μC/OS-3提供瞭豐富的通信與同步原語,包括: 信號量 (Semaphores): 無論是二元信號量用於互斥訪問,還是計數信號量用於資源計數,我們將深入理解其工作原理,並通過實例展示如何在臨界區保護、資源分配等方麵有效利用它們。 互斥鎖 (Mutexes): 針對優先級反轉問題,μC/OS-3提供的互斥鎖機製,例如優先級繼承(Priority Inheritance)和優先級天花闆(Priority Ceiling),將得到詳細的解析,幫助讀者理解如何避免和解決這些棘手的並發問題。 消息隊列 (Message Queues): 學習如何使用消息隊列實現任務間一對多的數據傳遞,以及其在事件驅動和數據緩衝等場景下的應用。我們將探討消息隊列的發送與接收機製,以及消息緩衝區的管理。 事件標誌組 (Event Flags): 掌握如何使用事件標誌組來同步多個任務,使其能夠根據特定的事件集閤進行等待和響應,極大地提高瞭係統的靈活性和響應速度。 郵箱 (Mailboxes): 瞭解郵箱與消息隊列的區彆,以及何時適閤使用郵箱進行一對一的消息傳遞。 中斷管理: 嵌入式係統的響應能力很大程度上依賴於其中斷處理能力。本書將詳述μC/OS-3的中斷服務程序(ISR)的設計原則,以及如何將其與RTOS內核高效地集成,確保中斷響應的及時性和內核調度的平滑過渡。我們將討論中斷嵌套、中斷延遲等關鍵概念。 內存管理: 資源受限的嵌入式係統對內存的管理要求極高。μC/OS-3提供瞭靈活的內存管理方案,包括內存塊管理(Memory Block Management)和內存池管理(Memory Pool Management),本書將深入分析這些機製,指導讀者如何高效地分配和釋放內存,避免內存碎片,提高係統穩定性。 錯誤處理與診斷: 任何復雜的係統都可能齣現錯誤。μC/OS-3內置瞭強大的錯誤檢測和報告機製,本書將引導讀者理解這些機製,學會如何通過錯誤代碼來診斷係統問題,並提供相應的調試技巧。 實踐齣真知:代碼示例與應用場景 理論知識的掌握離不開實際的實踐。本書將貫穿豐富的代碼示例,這些示例都將基於μC/OS-3的實際運行環境,例如使用常見的嵌入式開發闆。我們將通過具體的項目案例,例如: 簡單的LED閃爍控製: 理解任務創建和基本時間管理。 基於按鈕的事件響應: 學習中斷處理與任務同步。 傳感器數據采集與處理: 演示任務間通信和數據緩衝。 多設備協同工作: 展示如何使用信號量和互斥鎖來管理共享資源。 這些示例將幫助讀者將書本上的知識轉化為實際的開發能力,理解如何在真實的嵌入式應用場景中靈活運用μC/OS-3的各項功能。 麵嚮的讀者群體 本書適閤以下人群閱讀: 嵌入式係統開發者: 無論是初學者還是有經驗的工程師,本書都能幫助您深入理解μC/OS-3,並將其應用於實際項目中。 計算機科學與工程專業的學生: 本書為學習操作係統原理、實時係統設計提供瞭一個絕佳的實踐平颱。 對嵌入式實時係統感興趣的技術愛好者: 本書將以通俗易懂的方式,揭開實時操作係統的神秘麵紗。 本書的獨特價值 與市麵上許多RTOS書籍不同,本書更側重於“理解”而非“調用”。我們不隻是告訴您如何使用API,更重要的是解釋“為什麼”要這樣做,以及“這樣做”背後的原理。通過深入剖析μC/OS-3的設計思想,讀者將能夠舉一反三,不僅能熟練運用μC/OS-3,更能將其設計理念遷移到其他RTOS或自主 RTOS 的開發中。 結語 智能嵌入式係統的時代已經到來,而μC/OS-3正是驅動這些係統高效運轉的關鍵引擎之一。本書將是您掌握μC/OS-3、踏入高性能嵌入式係統開發世界的得力助手。通過本書的學習,您將能夠構建齣更加穩定、可靠、響應迅速的嵌入式係統,為您的項目注入強大的生命力。讓我們一起,用μC/OS-3解鎖嵌入式開發的無限可能!