
資料下載鏈接:http://pan.baidu.com/s/1nuBPNfF
目錄
前言
第1章 實時操作系統及μC/OS-III簡介 P.1
1.1單片機應用程序框架 P.1
1.1.1前後台系統 P.1
1.1.2嵌入式實時操作系統 P.4
1.2如何使用和學習μC/OS -III源碼 P.5
1.3 μC/OS-III文件結構簡介 P.7
1.4 μC/OS-III數據結構簡介 P.8
1.5任務 P.10
1.6內核對像簡介 P.11
1.6.1信號量 P.11
1.6.2事件標誌組 P.12
1.6.3消息隊列 P.12
1.6.4互斥信號量 P.12
1.6.5內存分區 P.13
1.6.6軟件定時器 P.13
1.7 μC/OS-III常見的程序段 P.13
1.7.1中斷嵌套層數統計/ P.13
1.7.2開中斷和關中斷/ P.14
1.7.3使能中斷延遲的鎖住和開啟調度器/ P.14
1.7.4沒有使能中斷延遲的鎖住和開啟調度器/ P.15
1.7 .5中斷嵌套檢測/ P.15
1.7.6調度器嵌套檢測/ P.16
1.7.7時間戳/ P.16
1.7.8錯誤類型/ P.17
1.7.9參數檢測/ P.17
1.7.10內核對像類型檢測/ P.17
1.7. 11安全檢測/ P.18
1.7.12安全關鍵IEC61508 / P.18
1.8總結/ P.19
第2章時鐘節拍 P.20
2.1系統節拍中斷服務程序 P.20
2.2節拍任務處理時間相關事務 P.23
2.2.1節拍列表更新 P.24
2.2 .2節拍列表 P.27
2.2.3哈希算法檢測到期任務 P.29
2.3總結 P.30
第3章時間管理 P.31
3.1實例演示/ 31
3.2任務開始延時/ 34
3.3任務插入節拍列表/ 40
3.4任務取消延時/ 49
3.5任務脫離節拍列表/ 51
3.6獲取和設置時鐘節拍/ 55
3.7 μC/OS-III全局變量的定義和聲明/ 56
3.8總結/ 57
第4章軟件定時器/ 58
4.1實例演示/ 58
4.2插入定時器列表/ 65
4.3刪除定時器/ 68
4.4脫離定時器列表/ 70
4.5停止定時器/ 71
4.6定時器內部運行機制/ 74
4.6.1定時器初始化/ 74
4.6.2定時器任務/ 76
4.6.3回調函數/ 78
4.7定時器剩餘定時時間獲取/ 79
4.8定時器狀態獲取/ 81
4.9總結/ 82
第5章多值信號量/ 83
5.1實例演示/ 83
5.2信號量的創建/ 85
5.3信號量等待隊列/ 86
5.4內核對象添加到調試雙向鍊錶/ 89
5.5內核對像從調試雙向鍊錶中刪除/ 90
5.6部分內核對像數據結構的特點/ 93
5.7發布信號量/ 95
5.7.1開始發布信號量/ 95
5.7.2結構體指針強制類型轉換/ 101
5.7.3無確切類型指針/ 101
5.7.4單一任務提交處理/ 102
5.7.5標記某一內核對像被提交/ 104
5.7.6將任務從多個等待列表中移除/ 106
5.7.7將任務從一個等待列表中刪除/ 107
5.7.8信號量提交過程涉及的時間戳/ 108
5.8等待信號量/ 108
5.9等待信號量過程的解析/ 109
5.9 .1函數解析/ 110
5.9.2阻塞準備等待內核對象的任務/ 114
5.9.3阻塞任務/ 115
5.9.4初始化OS_PEND_DATA類型變量/ 116
5.9.5根據任務優先級將OS_PEND_DATA變量插入雙向鍊錶/ 116
5.10強制解除等待狀態/ 118
5.10.1強制解除內核對像上的一個任務/ 121
5.10.2標記某一內核對像上的任務被強制解除等待狀態/ 122
5.11刪除信號量/ 123
5.12設置信號量計數值/ 128
5.13總結/ 130
第6章互斥信號量mutex / 131
6.1 mutex變量的數據結構/ 131
6.2創建mutex / 132
6.3提交mutex / 133
6.4等待/獲取mutex / 136
6.5獲取mutex過程解析/ 137
6.5.1開始獲取mutex / 137
6.5.2優先級繼承過程/ 141
6.5.3改變任務優先級並調整任務在各種列表中的位置/ 141
6.6刪除mutex / 142
6.7強制解除等待mutex / 146
6.8總結/ 148
第7章消息隊列/ 149
7.1實例演示/ 149
7.2消息的數據結構/ 150
7.3消息池/ 151
7.4消息隊列解析/ 153
7.5創建消息隊列/ 155
7.6提交消息/ 157
7.7提交消息過程解析/ 157
7.8等待消息過程解析/ 164
7.9總結/ 164
第8章事件標誌/ 165
8.1實例演示/ 165
8.2事件標誌組數據結構解析/ 167
8.3創建事件標誌組/ 167
8.4等待事件標誌組/ 169
8.5提交事件標誌組/ 177
8.6總結/ 180
第9章等待多個內核對象/ 181
9.1實例演示/ 181
9.2等待多個內核對象過程解析/ 182
9.2.1檢查多個內核對像是否被提交過/ 186
9.2.2任務等待多個內核對象/ 188
9.3總結/ 189
第10章任務消息隊列和任務信號量/ 190
10.1實例演示/ 190
10.2任務消息隊列/ 191
10.2.1任務消息隊列相關數據結構解析/ 191
10.2.2等待任務消息隊列/ 192
10.2.3任務消息隊列的提交/ 196
10.2.4強制解除等待任務消息隊列/ 200
10.2.5小結/ 201 10.3任務信號量/ 202
10.3.1任務信號量相關數據結構/ 202
10.3.2等待任務信號量/ 202
10.3.3提交任務信號量/ 205
10.3.4強制解除等待任務信號量/ 209
10.3.5小結/ 210 第11章內存管理/ 211
11.1內存碎片是怎麼形成的/ 211
11.2實例說明/ 211
11.3內存分區控制塊數據結構/ 212
11.4創建內存分區/ 212
11.5獲取內存塊/ 216
11.6將內存塊放回內存分區/ 217
11.7總結/ 218
第12章就緒優先級位映像表/ 219
12.1就緒優先級位映像表數據結構/ 219
12.2初始化就緒優先級位映像表/ 220
12.3查找就緒優先級位映像表中**的優先級/ 220
12.4置就緒優先級位映像表中某個優先級處於就緒狀態/ 225
12.5將就緒優先級位映像表相應位清0 / 226
12.6總結/ 226
第13章就緒列表/ 227
13.1就緒列表數據結構解析/ 227
13.2初始化就緒列表/ 229
13.3使任務就緒/ 229
13.4將任務從就緒列表對應的雙向鍊錶的前面轉移到後面/ 231
13.5總結/ 232
第14章任務切換/ 233
14.1堆棧的基本概念/ 233
14.2 Cortex-M3堆棧/ 234
14.3任務切換/ 235
14.4 PendSV服務程序解析/ 238
14.5首次任務調度/ 242 14.6任務堆棧初始化函數OSTaskStkInit解析/ 243
14.7驗證初始化堆棧彈棧結果/ 246
14.8中斷級任務切換的宏OSIntCtxSw()解析/ 248
14.9任務切換過程中出現中斷的處理/ 249
14.10總結/ 249
第15章任務管理/ 250
15.1任務創建/ 250 15.2掛起任務/ 256
15.3恢復掛起任務/ 259
15.4時間片輪轉調度/ 262
15.4.1時間片輪轉調度初始化/ 262
15.4.2時間片輪轉調度核心算法/ 264
15.4.3放棄時間片/ 266
15.4.4設置任務時間片個數/ 267
15.5任務寄存器/ 269
15.5.1設置寄存器的內容/ 269
15.5.2訪問任務寄存器/ 271
15.6總結/ 272
第16章中斷管理/ 273
16.1中斷延遲提交/ 273
16.1.1延遲提交信息記錄塊/ 274 1
6.1.2初始化延遲提交/ 274
16.1.3中斷延遲提交內核對象/ 276
16.1.4延遲提交任務OS_IntQTask / 279
16.2中斷嵌套管理/ 282
16.3開中斷和關中斷解析/ 284
16.4進入和退出臨界段代碼解析/ 287
16.4.1 OS_CRITICAL_ENTER解析/ 288
16.4.2 OS_CRITICAL_ENTER_CPU_CRITICAL_EXIT解析/ 288
16.4.3 OS_CRITICAL_EXIT_NO_SCHED解析/ 288
16.4 .4 OS_CRITICAL_EXIT解析/ 288
16.5測量關中斷時間/ 289 16.5.1測量關中斷的初始化/ 289
16.5.2測量**關中斷時間/ 290
16.5.3獲取**關中斷的時間/ 292
16.6總結/ 293
第17章各類統計信息/ 295
17.1實例演示/ 295
17.2 CPU使用率計算/ 296
17.3 CPU使用率測量的初始化/ 296
17.4堆棧檢測過程簡介/ 298
17.5堆棧檢測/ 299
17.6實例解讀堆棧溢出/ 301
17.7統計任務OS_StatTask / 305
17.8總結/ 307
第18章μC/OS-III在不同CPU上的移植/ 308
18.1移植接口主要文件編寫/ 308
18.1.1 os_cpu_c.c文件/ 308
18.1.2 os_cpu_a.asm文件/ 309
18.1.3 os_cpu.h文件/ 310
18.2編寫CPU相關文件/ 310
18.2.1 cpu_c.c文件和cpu_a.asm文件/ 310
18.2.2 cpu.h文件/ 310
18.2.3 cpu_def.h文件/ 315
18.2 .4 cpu_core.c文件和cpu_core.h文件/ 316
18.2.5 cpu_cfg.h文件/ 316
18.3編寫配置文件/ 317
18.3.1 os_app_app.h文件/ 317
18.3.2 os_cfg.h文件/ 317
18.4總結/ 317