前言1
概述7
第1章 初識μC/OSII 1
1.00 安裝 μC/OSII 1
1.01 范例11
1.02 范例210
1.03 范例320
1.04 范例430
第2章 實時系統(tǒng)概念34
2.00 前/后臺系統(tǒng)34
2.01 代碼的臨界段35
2.02 資源36
2.03 共享資源36
2.04 多任務36
2.05 任務36
2.06 任務切換38
2.07 內核38
2.08 調度39
2.09 不可剝奪型內核39
2.10 可剝奪型內核40
2.11 可重入函數(shù)42
2.12 時間片輪番調度法44
2.13 任務優(yōu)先級44
2.14 靜態(tài)優(yōu)先級44
2.15 動態(tài)優(yōu)先級44
2.16 優(yōu)先級反轉44
2.17 任務優(yōu)先級分配47
2.18 互斥條件49
2.18.01 關中斷和開中斷49
2.18.02 測試并置位操作50
2.18.03 禁止,然后允許任務切換50
2.18.04 信號量51
2.19 死鎖55
2.20 同步56
2.21 事件標志58
2.22 任務間通信59
2.23 消息郵箱59
2.24 消息隊列60
2.25 中斷61
2.26 中斷延遲62
2.27 中斷響應62
2.28 中斷恢復時間63
2.29 中斷延遲. 響應及恢復64
2.30 中斷處理時間66
2.31 非屏蔽中斷66
2.32 時鐘節(jié)拍67
2.33 對存儲器的需求69
2.34 使用實時內核的優(yōu). 缺點70
2.35 實時系統(tǒng)小結71
第3章 內核結構72
3.00 臨界段, OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()73
3.01 任務76
3.02 任務狀態(tài)78
3.03 任務控制塊(OS_TCB)80
3.04 就緒表88
3.05 任務調度91
3.06 任務級的任務切換, OS_TASK_SW()92
3.07 給調度器上鎖和開鎖96
3.08 空閑任務97
3.09 統(tǒng)計任務98
3.10 μC/OSII中的中斷103
3.11 時鐘節(jié)拍107
3.12 μC/OSII初始化111
3.13 μC/OSII的啟動113
3.14 獲取當前μC/OSII的版本號115
第4章 任務管理116
4.00 建立任務, OSTaskCreate()117
4.01 建立任務, OSTaskCreateExt()119
4.02 任務堆棧122
4.03 堆棧檢驗, OSTaskStkChk()125
4.04 刪除任務, OSTaskDel()128
4.05 請求刪除任務, OSTaskDelReq()132
4.06 改變任務的優(yōu)先級, OSTaskChangePrio()135
4.07 掛起任務, OSTaskSuspend()138
4.08 恢復任務, OSTaskResume()140
4.09 獲得任務的信息, OSTaskQuery()142
第5章 時間管理144
5.00 任務延時函數(shù), OSTimeDly()144
5.01 按時. 分. 秒延時函數(shù), OSTimeDlyHMSM()146
5.02 恢復延時的任務, OSTimeDlyResume()149
5.03 系統(tǒng)時間, OSTimeGet()和OSTimeSet()150
第6章 事件控制塊152
6.00 將任務置于等待事件的任務列表156
6.01 從等待事件的任務列表中使任務脫離等待狀態(tài)156
6.02 在等待事件的任務列表中查找優(yōu)先級最高的任務157
6.03 空余事件控制塊鏈表159
6.04 初始化一個事件控制塊, OS_EventWaitListInit()159
6.05 使一個任務進入就緒態(tài), OS_EventTaskRdy()161
6.06 使一個任務進入等待某事件發(fā)生狀態(tài), OS_EventTaskWait()163
6.07 由于等待超時而將任務置為就緒態(tài), OS_EventTO()163
第7章 信號量管理165
7.00 建立一個信號量, OSSemCreate()166
7.01 刪除一個信號量, OSSemDel()168
7.02 等待一個信號量, OSSemPend()171
7.03 發(fā)出一個信號量, OSSemPost()173
7.04 無等待地請求一個信號量, OSSemAccept()175
7.05 查詢一個信號量的當前狀態(tài), OSSemQuery()176
第8章 互斥型信號量管理179
8.00 建立一個互斥型信號量, OSMutexCreate()182
8.01 刪除一個互斥型信號量, OSMutexDel()185
8.02 等待一個互斥型信號量(掛起), OSMutexPend()187
8.03 釋放一個互斥型信號量, OSMutexPost()191
8.04 無等待地獲取互斥型信號量(任務不掛起), OSMutexAccept()193
8.05 獲取互斥型信號量的當前狀態(tài), OSMutexQuery() 195
第9章 事件標志組管理198
9.00 深入事件標志組199
9.01 建立一個事件標志組, OSFlagCreate()202
9.02 刪除一個事件標志組, OSFlagDel()204
9.03 等待事件標志組的事件標志位, OSFlagPend()206
9.04 置位或清0事件標志組中的事件標志, OSFlagPost()214
9.05 無等待地獲得事件標志組中的事件標志, OSFlagAccept()223
9.06 查詢事件標志組的狀態(tài), OSFlagQuery()226
第10章 消息郵箱管理228
10.00 建立一個郵箱, OSMboxCreate()229
10.01 刪除一個郵箱, OSMboxDel()231
10.02 等待郵箱中的消息, OSMboxPend()234
10.03 向郵箱發(fā)送一則消息, OSMboxPost()236
10.04 向郵箱發(fā)送一則消息, OSMboxPostOpt()238
10.05 無等待地從郵箱中得到一則消息, OSMboxAccept()240
10.06 查詢一個郵箱的狀態(tài), OSMboxQuery()241
10.07 用郵箱作為二值信號量243
10.08 用郵箱實現(xiàn)延時, 而不使用OSTimeDly()243
第11章 消息隊列管理245
11.00 建立一個消息隊列, OSQCreate()249
11.01 刪除一個消息隊列, OSQDel()251
11.02 等待消息隊列中的消息, OSQPend()253
11.03 向消息隊列發(fā)送一則消息(FIFO), OSQPost()256
11.04 向消息隊列發(fā)送一則消息(LIFO), OSQPostFront()258
11.05 向消息隊列發(fā)送一則消息(FIFO或LIFO), OSQPostOpt()259
11.06 無等待地從消息隊列中獲得消息, OSQAccept()262
11.07 清空消息隊列, OSQFlush()263
11.08 獲取消息隊列的狀態(tài), OSQQuery()264
11.09 使用消息隊列讀取模擬量的值267
11.10 消息隊列用做計數(shù)型信號量268
第12章 內存管理270
12.00 內存控制塊271
12.01 建立一個內存分區(qū), OSMemCreate()272
12.02 分配一個內存塊, OSMemGet()275
12.03 釋放一個內存塊, OSMemPut()277
12.04 查詢一個內存分區(qū)的狀態(tài), OSMemQuery()278
12.05 使用內存分區(qū)279
12.06 等待內存分區(qū)中的一個內存塊281
第13章 移植μC/OSII283
13.00 開發(fā)工具286
13.01 目錄和文件286
13.02 INCLUDES.H287
13.03 OS_CPU.H287
13.03.01 與編譯器相關的數(shù)據(jù)類型289
13.03.02 OS_ENTER_CRITICAL()和 OS_EXIT_CRITICAL()289
13.03.03 OS_STK_GROWTH293
13.03.04 OS_TASK_SW()293
13.04 OS_CPU_C.C294
13.04.01 OSTaskStkInit()294
13.04.02 OSTaskCreateHook()298
13.04.03 OSTaskDelHook()298
13.04.04 OSTaskSwHook()299
13.04.05 OSTaskStatHook()299
13.04.06 OSTimeTickHook()299
13.04.07 OSTCBInitHook()299
13.04.08 OSTaskIdleHook()300
13.04.09 OSInitHookBegin()301
13.04.10 OSInitHookEnd()301
13.05 OS_CPU_A.ASM301
13.05.01 OSStartHighRdy()301
13.05.02 OSCtxSw()302
13.05.03 OSTickISR()304
13.05.04 OSIntCtxSw()306
13.06 測試移植代碼307
13.06.01 確保C編譯器. 匯編編譯器及鏈接器正常工作307
13.06.02 驗證OSTaskStkInit()和 OSStartHighRdy()函數(shù)311
13.06.03 驗證OSCtxSw()函數(shù)313
13.06.04 驗證OSIntCtxSw( )和 OSTickISR()函數(shù)316
第14章 μC/OSII在80x86上的移植333
14.00 開發(fā)工具335
14.01 目錄和文件336
14.02 INCLUDES.H文件336
14.03 OS_CPU.H文件337
14.03.01 OS_CPU.H, 數(shù)據(jù)類型338
14.03.02 OS_CPU.H, OS_ENTER_CRITICAL()及OS_EXIT_CRITICAL()338
14.03.03 OS_CPU.H, 堆棧方向340
14.03.04 OS_CPU.H和OS_TASK_SW()340
14.03.05 OS_CPU.H, 時鐘節(jié)拍頻率340
14.03.06 OS_CPU.H,浮點仿真341
14.04 OS_CPU_C.C文件341
14.04.01 任務堆棧初始化函數(shù)OSTaskStkInit()342
14.04.02 浮點仿真任務棧初始化函數(shù)OSTaskStkInit_FPE_x86()344
14.04.03 任務建立接口函數(shù)OSTaskCreateHook()350
14.04.04 任務刪除接口函數(shù)OSTaskDelHook()351
14.04.05 任務切換接口函數(shù)OSTaskSwHook()351
14.04.06 空閑任務接口函數(shù)OSTaskIdleHook()351
14.04.07 統(tǒng)計任務接口函數(shù)OSTaskStatHook()351
14.04.08 時鐘節(jié)拍接口函數(shù) OSTimeTickHook()352
14.04.09 系統(tǒng)初始化開始接口函數(shù)OSInitHookBegin()352
14.04.10 系統(tǒng)初始化結束接口函數(shù)OSInitHookEnd()352
14.04.11 控制塊初始化接口函數(shù) OSTCBInitHook()353
14.05 OS_CPU_A.ASM文件353
14.05.01 OSStartHighRdy() 353
14.05.02 OSCtxSw()355
14.05.03 OSIntCtxSw()357
14.05.04 OSTickISR()360
14.06 內存占用366
第15章 μC/OSII在帶有硬件浮點運算單元的80x86上的移植372
15.00 開發(fā)工具372
15.01 目錄和文件374
15.02 INCLUDES.H文件375
15.03 OS_CPU.H文件375
15.03.01 OS_CPU.H, 數(shù)據(jù)類型376
15.03.02 OS_CPU.H, OS_ENTER_CRITICAL()及OS_EXIT_CRITICAL()376
15.03.03 OS_CPU.H, 堆棧方向376
15.03.04 OS_CPU.H, OS_TASK_SW()377
15.03.05 OS_CPU.H, 時鐘節(jié)拍頻率377
15.03.06 OS_CPU.H, 浮點函數(shù)377
15.04 OS_CPU_C.C文件378
15.04.01 任務堆棧初始化函數(shù)OSTaskStkInit()378
15.04.02 浮點處理單元初始化函數(shù)OSFPInit()380
15.04.03 任務建立接口函數(shù)OSTaskCreateHook()381
15.04.04 任務刪除接口函數(shù)OSTaskDelHook()382
15.04.05 任務切換接口函數(shù)OSTaskSwHook()384
15.04.06 空閑任務接口函數(shù)OSTaskIdleHook()385
15.04.07 統(tǒng)計任務接口函數(shù)OSTaskStatHook()385
15.04.08 時鐘節(jié)拍接口函數(shù) OSTimeTickHook()385
15.04.09 系統(tǒng)初始化開始接口函數(shù)OSInitHookBegin()386
15.04.10 系統(tǒng)初始化結束接口函數(shù) OSInitHookEnd() 386
15.04.11 控制塊初始化接口函數(shù)OSTCBInitHook() 386
15.05 OS_CPU_A.ASM文件386
15.05.01 OSStartHighRdy()387
15.05.02 OSCtxSw()387
15.05.03 OSIntCtxSw()390
15.05.04 OSTickISR()393
15.05.05 OSFPSave()394
15.05.06 OSFPRestore()395
15.06 內存占用396
第16章 μC/OSII參考手冊398
第17章 μC/OSII配置手冊509
17.00 雜項509
17.01 事件標志512
17.02 消息郵箱512
17.03 內存管理513
17.04 互斥型信號量513
17.05 消息隊列514
17.06 信號量515
17.07 任務管理515
17.08 時鐘管理516
17.09 函數(shù)概述517
第18章 PC中的功能函數(shù)520
18.00 字符顯示520
18.01 保存和恢復DOS的環(huán)境設置523
18.02 程序運行時間的測量525
18.03 其他函數(shù)525
18.04 接口函數(shù)526
18.05 參考文獻544
附錄A C語言編程規(guī)約545
A.01 文件頭545
A.02 文件包含546
A.03 標志符命名法547
A.04 縮寫. 略語及助記符548
A.05 注解550
A.06 定義語句550
A.07 數(shù)據(jù)類型551
A.08 局部變量552
A.09 函數(shù)原型552
A.10 函數(shù)聲明553
A.11 縮進格式554
A.12 語句和表達式556
A.13 結構和聯(lián)合557
A.14 參考文獻558
附錄B μC/OSII的使用許可證559
B.01 用于學院和大學教學559
B.02 用于商業(yè)目的559
附錄C μC/OSII速查手冊560
附錄D 工具程序TO574
附錄E 參考文獻576
附錄F 本書所附光盤578
F.01 文件和目錄579