內容簡介
μC/OSII是一個源碼開放的嵌入式實時操作係統的內核。本書詳細地介紹瞭嵌入式實時操作係統μC/OSII內核的任務的管理和調度、係統時鍾和節拍服務、時間管理、中斷、任務的通信和同步、內存的簡單管理原理。為幫助讀者理解書中的內容,本書給齣瞭大量的實例。最後,還介紹瞭μC/OSII的移植方法。為瞭學習上的方便,第3版還增加瞭使用集成開發環境BC45和VC6.0編譯μC/OSII的相關內容。第4版主要對第3版前3章做瞭較大的修改,增加瞭普通操作係統和嵌入式操作係統的區彆,隊列、堆棧、計算機中斷等特殊問題,並重新編寫瞭任務的概念等內容。
本書適閤高等院校計算機、電子技術、自動化技術、儀器儀錶等信息類專業教學使用,也適閤對嵌入式操作係統感興趣的工程技術人員閱讀參考。
目錄
第1章 嵌入式實時操作係統的基本概念……………………………………………………… 1
1.1 計算機操作係統………………………………………………………………………… 1
1.1.1 什麼是計算機操作係統…………………………………………………………… 1
1.1.2 操作係統的作用和功能…………………………………………………………… 2
1.2 嵌入式係統和嵌入式操作係統………………………………………………………… 3
1.2.1 嵌入式係統的基本概念…………………………………………………………… 4
1.2.2 嵌入式操作係統…………………………………………………………………… 7
1.2.3 實時操作係統需要滿足的條件…………………………………………………… 9
1.2.4 嵌入式係統的任務及嵌入式實時操作係統……………………………………… 11
1.3 嵌入式實時操作係統μC/OS II簡介……………………………………………… 12
1.4 通用操作係統與嵌入式操作係統的異同……………………………………………… 13
1.5 小 結…………………………………………………………………………………… 15
1.6 練習題…………………………………………………………………………………… 15
第2章 預備知識……………………………………………………………………………… 16
2.1 開發工具………………………………………………………………………………… 16
2.1.1 BorlandC3.1及其精簡版……………………………………………………… 16
2.1.2 多文件程序的編譯和連接………………………………………………………… 21
2.2 工程管理工具make及makefile ……………………………………………………… 24
2.3 復雜工程項目的管理…………………………………………………………………… 32
2.3.1 批處理文件與makefile的綜閤使用…………………………………………… 32
2.3.2 復雜工程管理示例………………………………………………………………… 33
2.4 C指針…………………………………………………………………………………… 37
2.4.1 指針的基本概念…………………………………………………………………… 37
2.4.2 函數指針…………………………………………………………………………… 39
2.4.3 函數指針作為函數參數及迴調函數……………………………………………… 41
2.5 typedef常用方法……………………………………………………………………… 43
2.6 常用數據類型及數據結構……………………………………………………………… 45
2.6.1 控製塊……………………………………………………………………………… 46
2.6.2 同類控製塊的登記造冊…………………………………………………………… 50
2.6.3 隊列與堆棧………………………………………………………………………… 52
2.6.4 位 圖……………………………………………………………………………… 54
2.7 程序流程轉移的中斷實現方法………………………………………………………… 55
2.8 小 結…………………………………………………………………………………… 56
2.9 練習題…………………………………………………………………………………… 56
第3章 μC/OS II中的任務………………………………………………………………… 57
3.1 任務的基本概念………………………………………………………………………… 57
3.1.1 任務及其種類……………………………………………………………………… 57
3.1.2 任務的狀態………………………………………………………………………… 59
3.1.3 用戶任務代碼的一般結構………………………………………………………… 60
3.1.4 係統任務…………………………………………………………………………… 63
3.1.5 任務的優先權及優先級彆………………………………………………………… 64
3.2 任務堆棧………………………………………………………………………………… 65
3.2.1 任務堆棧的創建…………………………………………………………………… 65
3.2.2 任務堆棧的初始化………………………………………………………………… 67
3.3 任務控製塊及其鏈錶…………………………………………………………………… 68
3.3.1 任務控製塊結構…………………………………………………………………… 68
3.3.2 任務控製塊鏈錶…………………………………………………………………… 69
3.3.3 任務控製塊的初始化……………………………………………………………… 71
3.4 任務就緒錶及任務調度………………………………………………………………… 72
3.4.1 任務就緒錶結構…………………………………………………………………… 72
3.4.2 對任務就緒錶的操作……………………………………………………………… 74
3.4.3 任務調度…………………………………………………………………………… 76
3.5 任務的創建……………………………………………………………………………… 81
3.5.1 用函數OSTaskCreate()創建任務……………………………………………… 81
3.5.2 用函數OSTaskCreateExt()創建任務…………………………………………… 83
3.5.3 創建任務的一般方法……………………………………………………………… 83
3.6 任務的掛起和恢復……………………………………………………………………… 90
3.6.1 掛起任務…………………………………………………………………………… 90
3.6.2 恢復任務…………………………………………………………………………… 90
3.7 其他任務管理函數……………………………………………………………………… 96
3.7.1 任務優先級彆的修改……………………………………………………………… 96
3.7.2 任務的刪除………………………………………………………………………… 97
3.7.3 查詢任務的信息………………………………………………………………… 103
3.8 μC/OS II的初始化和任務的啓動………………………………………………… 103
3.8.1 μC/OS II的初始化…………………………………………………………… 103
3.8.2 μC/OS II的啓動……………………………………………………………… 105
3.9 小 結………………………………………………………………………………… 107
3.10 練習題………………………………………………………………………………… 108
第4章 μC/OS II的中斷和時鍾…………………………………………………………… 109
4.1 μC/OS II的中斷…………………………………………………………………… 109
4.1.1 μC/OS II的中斷過程………………………………………………………… 109
4.1.2 中斷級任務切換函數…………………………………………………………… 113
4.1.3 應用程序中的臨界段…………………………………………………………… 113
4.2 μC/OS II的時鍾…………………………………………………………………… 115
4.3 時間管理……………………………………………………………………………… 122
4.3.1 任務的延時……………………………………………………………………… 122
4.3.2 取消任務的延時………………………………………………………………… 123
4.3.3 獲取和設置係統時間…………………………………………………………… 128
4.4 小 結………………………………………………………………………………… 130
4.5 練習題………………………………………………………………………………… 131
第5章 任務的同步與通信…………………………………………………………………… 132
5.1 任務的同步和事件…………………………………………………………………… 132
5.1.1 任務間的同步…………………………………………………………………… 132
5.1.2 事 件…………………………………………………………………………… 133
5.2 事件控製塊及事件處理函數………………………………………………………… 145
5.2.1 事件控製塊的結構……………………………………………………………… 145
5.2.2 操作事件控製塊的函數………………………………………………………… 147
5.2.3 空事件控製塊鏈錶……………………………………………………………… 149
5.3 信號量及其操作……………………………………………………………………… 150
5.3.1 信號量…………………………………………………………………………… 150
5.3.2 信號量的操作…………………………………………………………………… 151
5.4 互斥型信號量和任務優先級反轉…………………………………………………… 160
5.4.1 任務優先級的反轉現象………………………………………………………… 161
5.4.2 互斥型信號量…………………………………………………………………… 166
5.5 消息郵箱及其操作…………………………………………………………………… 169
5.5.1 消息郵箱………………………………………………………………………… 169
5.5.2 消息郵箱的操作………………………………………………………………… 170
5.6 消息隊列及其操作…………………………………………………………………… 175
5.6.1 消息隊列………………………………………………………………………… 175
5.6.2 消息隊列的操作………………………………………………………………… 178
5.7 小 結………………………………………………………………………………… 184
5.8 練習題………………………………………………………………………………… 185
第6章 信號量集……………………………………………………………………………… 186
6.1 信號量集的結構……………………………………………………………………… 186
6.1.1 基本概念………………………………………………………………………… 186
6.1.2 信號量集的結構組成…………………………………………………………… 187
6.1.3 對等待任務鏈錶的操作………………………………………………………… 191
6.1.4 空標誌組鏈錶…………………………………………………………………… 191
6.2 信號量集的操作……………………………………………………………………… 192
6.2.1 創建信號量集…………………………………………………………………… 192
6.2.2 請求信號量集…………………………………………………………………… 194
6.2.3 嚮信號量集發送信號…………………………………………………………… 194
6.2.4 查詢信號量集的狀態…………………………………………………………… 200
6.2.5 刪除信號量集…………………………………………………………………… 203
6.3 小 結………………………………………………………………………………… 203
6.4 練習題………………………………………………………………………………… 203
第7章 動態內存管理………………………………………………………………………… 204
7.1 內存控製塊…………………………………………………………………………… 204
7.1.1 可動態分配內存的劃分………………………………………………………… 204
7.1.2 內存控製塊OS_MEM 的結構………………………………………………… 205
7.1.3 空內存控製塊鏈錶……………………………………………………………… 206
7.2 動態內存的管理……………………………………………………………………… 206
7.2.1 創建動態內存分區……………………………………………………………… 206
7.2.2 請求獲得一個內存塊…………………………………………………………… 208
7.2.3 釋放一個內存塊………………………………………………………………… 211
7.2.4 查詢一個內存分區的狀態……………………………………………………… 215
7.3 小 結………………………………………………………………………………… 220
7.4 練習題………………………………………………………………………………… 220
第8章 在51單片機上移植μC/OS II …………………………………………………… 221
8.1 μC/OS II移植的一般性問題……………………………………………………… 221
8.1.1 可重入函數的概念……………………………………………………………… 221
8.1.2 時鍾節拍的産生………………………………………………………………… 222
8.1.3 任務堆棧的設計………………………………………………………………… 222
8.2 在51係列單片機上移植μC/OS II ……………………………………………… 223
8.2.1 文件OS_CPU.H 的修改……………………………………………………… 223
8.2.2 任務堆棧的設計………………………………………………………………… 224
8.2.3 文件OS_CPU_C.C的修改…………………………………………………… 231
8.2.4 幾點注意事項…………………………………………………………………… 232
8.3 應用舉例……………………………………………………………………………… 232
8.3.1 LED數碼顯示器的驅動程序…………………………………………………… 232
8.3.2 串行接口的應用………………………………………………………………… 234
8.4 小 結………………………………………………………………………………… 242
8.5 練習題………………………………………………………………………………… 242
第9章 基於ARM 的μC/OS II…………………………………………………………… 243
9.1 移植規劃……………………………………………………………………………… 243
9.1.1 編譯器的選擇…………………………………………………………………… 243
9.1.2 ARM7工作模式的選擇………………………………………………………… 243
9.2 移 植………………………………………………………………………………… 244
9.2.1 文件OS_CPU.H 的編寫……………………………………………………… 244
9.2.2 文件OS_CPU_C.C的編寫…………………………………………………… 246
9.2.3 文件OS_CPU_A.S的編寫…………………………………………………… 253
9.2.4 關於中斷及時鍾節拍…………………………………………………………… 256
9.3 在LPC2000上移植μC/OS II …………………………………………………… 257
9.3.1 掛接SWI軟件中斷……………………………………………………………… 258
9.3.2 中斷及時鍾節拍中斷…………………………………………………………… 258
9.3.3 一個基於μC/OS II和ARM 的應用程序實例……………………………… 259
9.4 小 結………………………………………………………………………………… 261
9.5 練習題………………………………………………………………………………… 261
第10章 μC/OS II在80x86上的移植…………………………………………………… 262
10.1 概 述………………………………………………………………………………… 262
10.2 任務切換……………………………………………………………………………… 263
10.2.1 任務切換函數OSCtxSw() …………………………………………………… 263
10.2.2 任務切換宏OS_TASK_SW()………………………………………………… 265
10.2.3 中斷級任務切換函數OSIntCtxSw()………………………………………… 266
10.3 係統時鍾……………………………………………………………………………… 267
10.3.1 PC中DOS的係統時鍾………………………………………………………… 267
10.3.2 PC中μC/OS II的係統時鍾………………………………………………… 267
10.3.3 μC/OS II係統時鍾中斷服務程序…………………………………………… 269
10.3.4 μC/OS II係統時鍾中斷嚮量的安裝………………………………………… 269
10.3.5 由μC/OS II返迴DOS ……………………………………………………… 270
10.4 小 結………………………………………………………………………………… 271
第11章 μC/OS II可裁剪性的實現……………………………………………………… 272
11.1 文件OS_CFG.H 中用於係統裁剪的常量………………………………………… 272
11.2 配置常量的解釋……………………………………………………………………… 274
11.2.1 OS_MAX_EVENTS ………………………………………………………… 274
11.2.2 OS_MAX_MEM_PARTS …………………………………………………… 275
11.2.3 OS_MAX_QS ………………………………………………………………… 275
11.2.4 OS_MAX_MEM_TASKS …………………………………………………… 275
11.2.5 OS_LOWEST_PRIO ………………………………………………………… 275
11.2.6 OS_TASK_IDLE_STK_SIZE ……
嵌入式實時操作係統μC/OS-II原理及應用(第4版) epub pdf mobi txt 電子書 下載 2024
嵌入式實時操作係統μC/OS-II原理及應用(第4版) 下載 epub mobi pdf txt 電子書