內容簡介
《
μC/OS-2標準教程》主要介紹當前最新版本的μC/OS-II(2.80版本)實時作業系統,包括核心分析及其在ARM9核心處理器(S3C2410)上的移植方法。核心方面主要包括μC/OS-II操作任務管理、任務級任務調度和中斷級任務調度、系統啟動與初始化、時鐘任務管理、任務間通信機制、任務間單事件和多事件同步機制、記憶體管理方式。《μC/OS-2標準教程》還通過具體實例介紹μC/OS-II系統在以ARM9為核心的嵌入式處理器S3C2410上的移植方法,最後對輕量級TCP/IP協定棧——μC/TCP-IP協定棧進行了概要介紹。《μC/OS-2標準教程》可以作為高等院校學習嵌入式作業系統原理的專業教材,也適合有意從事嵌入式系統開發的工程技術人員閱讀。《μC/OS-2標準教程》假定讀者有較好的C語言基礎和數據結構基礎知識,如果讀者對ARM處理器有一定的了解,將更容易掌握《μC/OS-2標準教程》內容。
編輯推薦
《μC/OS-2標準教程》特點:逐句分析u(3/OS-II(2.80版本)原始碼,詳細分析系統原理。以Microsoftvc++環境為平台,配備完整模擬套用案例。以S3C2410(ARM9)為處理器平台,分析硬體平台相關代碼,逐步介紹移植過程。《μC/OS-2標準教程》主要介紹uC/OS-II(2.80版本)核心基本原理(包括任務及任務調度、系統啟動與實始化、任務間通信與同步、記憶體管理),分析原始碼及套用案例,並介紹在ARM9核心處理器(S3C:2410)上的移植和uC/TCP-IP協定棧設計方法。
目錄
第1章μC/OS-II與嵌入式實時作業系統1
1.1實時作業系統概述2
1.1.1嵌入式系統軟體結構2
1.1.2實時作業系統核心概述3
1.1.3常見實時作業系統簡介4
1.2μC/OS-II核心原始碼文檔結構6
1.2.1構建μC/OS-II模擬編程環境6
1.2.2測試程式原始碼說明8
1.3μC/OS-II基本概念9
1.3.1嵌入式應用程式開發模式9
1.3.2可重入函式與不可重入函式10
1.3.3μC/OS-II臨界狀態管理11
1.4小結12
1.5習題13
第2章μC/OS-II任務管理15
2.1案例引入:基於mC/OS-II的多任務管理16
2.1.1μC/OS-II多任務示例運行結果16
2.1.2μC/OS-II多任務代碼分析16
2.2μC/OS-II任務基本屬性17
2.2.1C語言可執行代碼結構17
2.2.2μC/OS-II任務結構18
2.2.3μC/OS-II任務棧19
2.2.4μC/OS-II任務控制塊21
2.2.5μC/OS-II任務優先權26
2.2.6μC/OS-II任務狀態26
2.2.7系統任務28
2.3μC/OS-II任務管理函式源碼分析32
2.3.1創建任務32
2.3.2初始化任務棧35
2.3.3初始化任務控制塊37
2.3.4擴展創建任務40
2.3.5刪除任務42
2.3.6請求刪除任務45
2.3.7掛起任務47
2.3.8恢復任務49
2.3.9設定任務名稱50
2.3.10獲取任務名稱52
2.3.11讀取任務TCB信息53
2.4套用實例:多任務管理套用分析55
2.4.1基本功能55
2.4.2程式實現及源碼分析55
2.5小結58
2.6習題58
第3章μC/OS-II任務調度與系統初始化59
3.1μC/OS-II任務級任務調度機制60
3.1.1μC/OS-II調度算法60
3.1.2μC/OS-II任務就緒表60
3.1.3獲取最高優先權就緒任務62
3.2μC/OS-II任務級任務調度63
3.2.1任務級任務調度算法分析63
3.2.2任務級任務切換OS_TASK_SW()64
3.2.3調度器上鎖與解鎖66
3.2.4修改任務優先權67
3.3μC/OS-II中斷級任務調度69
3.3.1μC/OS-II中斷管理69
3.3.2IRQ中斷處理過程及中斷級調度70
3.3.3OSIntEnter()進入中斷管理函式72
3.3.4OSIntExit()退出中斷管理函式72
3.3.5中斷級任務調度切換函式OSIntCtxSw()73
3.3.6FIQ中斷處理過程及中斷級調度74
3.4任務級任務調度實例76
3.4.1程式功能76
3.4.2程式實現及源碼分析76
3.5小結78
3.6習題79
第4章μC/OS-II系統啟動與時鐘任務管理81
4.1μC/OS-II系統啟動過程分析82
4.1.1μC/OS-II應用程式開發模式82
4.1.2OSInit()函式初始化分析82
4.1.3OSStart()函式啟動系統分析87
4.1.4運行最高優先權任務87
4.2時鐘任務與時鐘管理88
4.2.1創建系統時鐘任務88
4.2.2時鐘中斷服務程式OSTimeTick()89
4.2.3系統時間管理函式源碼分析91
4.3小結95
4.4習題95
第5章μC/OS-II任務間通信機制97
5.1μC/OS-II事件管理機制98
5.1.1事件控制塊98
5.1.2事件控制塊管理99
5.2單一訊息傳遞事件:訊息信箱101
5.2.1訊息信箱基本原理101
5.2.2創建訊息信箱101
5.2.3阻塞式讀取訊息103
5.2.4非阻塞式讀取訊息106
5.2.5傳送訊息到訊息信箱107
5.2.6按指定方式傳送數據到訊息信箱110
5.2.7刪除訊息信箱111
5.2.8獲取訊息信箱基本信息114
5.2.9訊息信箱套用實例115
5.3多訊息傳遞事件:訊息佇列117
5.3.1訊息佇列基本原理117
5.3.2創建訊息佇列119
5.3.3傳送訊息到佇列尾121
5.3.4傳送訊息到隊首122
5.3.5按指定方式傳送訊息124
5.3.6阻塞式讀取訊息125
5.3.7非阻塞式讀取訊息128
5.3.8刪除訊息佇列129
5.3.9獲取訊息佇列信息132
5.3.10清理訊息佇列空間133
5.3.11訊息佇列套用實例134
5.4小結137
5.5習題138
第6章μC/OS-II任務間單事件同步機制139
6.1任務同步機制:信號量140
6.1.1信號量基本原理140
6.1.2創建信號量140
6.1.3阻塞式獲取信號量141
6.1.4非阻塞式獲取信號量143
6.1.5釋放信號量144
6.1.6刪除信號量145
6.1.7查詢信號量信息147
6.1.8設定信號量的值148
6.1.9信號量實現生產-消費問題套用實例149
6.2互斥事件管理機制:互斥鎖153
6.2.1互斥鎖與優先權反轉153
6.2.2創建互斥鎖156
6.2.3阻塞式獲取互斥鎖158
6.2.4非阻塞式獲取互斥鎖161
6.2.5釋放互斥鎖162
6.2.6刪除互斥鎖164
6.2.7獲取互斥鎖基本信息167
6.3小結168
6.4習題169
第7章μC/OS-II多事件同步機制171
7.1事件組標誌同步機制基本原理172
7.1.1事件組標誌基本原理172
7.1.2初始化事件標誌組控制塊174
7.2事件組標誌基本操作175
7.2.1創建事件組標誌175
7.2.2阻塞式等待事件組標誌176
7.2.3非阻塞式等待事件組標誌182
7.2.4修改事件組標誌狀態184
7.2.5刪除事件標誌組187
7.2.6獲取任務就緒標誌190
7.2.7查詢事件組標誌信息190
7.2.8獲取事件組標誌名稱191
7.2.9設定事件組標誌名稱192
7.3使用事件組標誌實現讀寫鎖功能案例193
7.3.1案例功能及原理說明193
7.3.2程式原始碼分析195
7.4小結197
7.5習題197
第8章μC/OS-II記憶體分區管理199
8.1記憶體分區管理基本原理200
8.1.1μC/OS-II記憶體分區管理機制200
8.1.2記憶體分區控制塊數據空間初始化201
8.2μC/OS-II記憶體分區管理操作202
8.2.1創建記憶體分區202
8.2.2申請一個記憶體分區塊204
8.2.3釋放記憶體分區塊205
8.2.4查詢記憶體分區基本信息206
8.2.5讀取/設定記憶體分區名稱207
8.3μC/OS-II記憶體管理套用實例210
8.3.1應用程式基本功能210
8.3.2應用程式原始碼分析211
8.4小結212
8.5習題212
第9章μC/OS-II在S3C2410處理器上的移植案例分析213
9.1ARM執行檔結構分析214
9.1.1執行檔結構分析214
9.1.2ADS下執行檔的編譯連線過程分析215
9.1.3移植第一步:設定代碼存儲載入位置217
9.2移植第二步:編寫系統啟動代碼218
9.2.1開始執行,禁止中斷219
9.2.2初始化棧空間219
9.2.3複製異常代碼與異常向量地址220
9.3移植第三步:中斷處理與時鐘中斷任務221
9.3.1S3C2410中斷向量221
9.3.2S3C2410中斷處理硬體結構223
9.3.3移植時對中斷的處理225
9.3.4示例:μC/OS-II系統時鐘中斷任務管理228
9.4移植第四步:修改與調度相關的彙編代碼229
9.4.1臨界狀態問題229
9.4.2數據類型問題230
9.4.3任務調度問題與鉤子函式問題231
9.5移植後續工作:添加硬體驅動程式232
9.5.1重新寫C函式以實現信息從串口輸出232
9.5.2實現串口驅動程式234
9.5.3重寫堆疊空間初始化函式237
9.6小結238
9.7習題238
第10章μC/TCP-IP協定棧設計分析239
10.1TCP/IP協定棧概述240
10.1.1標準TCP/IP協定棧模型240
10.1.2BSD面向連線的TCP通信編程過程241
10.1.3BSD面向無連線的UDP通信實現242
10.1.4輕量級TCP/IP協定棧和標準TCP/IP協定棧比較242
10.1.5μC/TCP-IP協定棧介紹及特點243
10.2μC/TCP-IP協定棧設計243
10.2.1μC/TCP-IP協定棧基本框架243
10.2.2進程基本形式245
10.2.3接收數據過程245
10.2.4傳送數據過程246
10.3μC/TCP-IP協定棧實現247
10.3.1IP協定棧設計及實現247
10.3.2TCP協定設計及實現249
10.3.3UDP協定設計及實現252
10.3.4ICMP協定設計及實現253
10.3.5ARP設計及實現255
10.3.6緩衝區設計及管理257
10.4小結260
10.5習題260
附錄編譯程式工具簡介261
A.1VisualC++6.0集成開發環境261
A.2ADS集成開發環境264
A.3SourceInsight原始碼查看工具269
……