嵌入式實時作業系統μC/OS原理與實踐

嵌入式實時作業系統μC/OS原理與實踐

《嵌入式實時作業系統μC/OS原理與實踐》是2012年電子工業出版社出版的圖書,作者是盧有亮。該書講述了實時作業系統基礎、任務管理、中斷和時間管理、事件管理、訊息管理、記憶體管理、移植等。

基本介紹

  • 書名:嵌入式實時作業系統μC/OS原理與實踐
  • 作者盧有亮
  • ISBN:9787121154416, 7121154412 
  • 頁數:280
  • 出版社:電子工業出版社
  • 出版時間:2012年2月1日
  • 裝幀:平裝
  • 開本:16
內容簡介,編輯推薦,目錄,

內容簡介

《嵌入式實時作業系統μC/OS原理與實踐》內容翔實,圖文並茂,採用逐步深入、反覆印證的方法,從數據結構的設計入手,再到代碼分析、示例驗證的剖析方法,逐層深入講解,給出在虛擬平台下的移植示例和針對各章內容示例,並給出了基於NIOS II的FPGA系統上移植的例子。
《嵌入式實時作業系統μC/OS原理與實踐》適用於計算機、電子、通信、自動化及相關專業大學本科、研究生,也適用於廣大嵌入式開發工程技術人員、電子技術研究人員、作業系統研究人員。

編輯推薦

《嵌入式實時作業系統μC/OS原理與實踐》μC/OS是高實時性、多任務的作業系統,也是原始碼對非商業用途開放的作業系統,筆者結合自己的實際工作經驗,通過本書詳細闡釋μC/OS的系統原理及實戰技巧。《嵌入式實時作業系統μC/OS原理與實踐》對最新版本的μC/OSII-2.91進行深入剖析,從實時作業系統的原理開始,對重要的數據結構和代碼結合相關實例進行詳細解析,以便於讀者掌握。通過《嵌入式實時作業系統μC/OS原理與實踐》的學習,能夠幫助讀者全面、深入地掌握嵌入式實時作業系統的基本原理,全方位接觸μC/OS,對所學知識融會貫通,能夠靈活套用到實際的項目當中。

目錄

Contents
第1章 實時作業系統基礎 1
1.1 作業系統概述 1
1.1.1 什麼是作業系統 2
1.1.2 作業系統基本功能 3
1.2 實時作業系統概述 4
1.2.1 什麼是實時作業系統 4
1.2.2 實時作業系統的基本特徵 4
1.3 任務 5
1.3.1 任務簡介 5
1.3.2 多任務 5
1.3.3 任務狀態 7
1.3.4 任務切換 8
1.3.5 可重入函式和不可重入函式 9
1.4 基於優先權的不可剝奪核心 11
1.4.1 核心 11
1.4.2 基於優先權的調度算法 11
1.4.3 不可剝奪型核心和可剝奪型核心 12
1.5 同步與通信 13
1.5.1 同步 13
1.5.2 互斥 14
1.5.3 臨界區 14
1.5.4 任務事件 15
1.5.5 信號量 15
1.5.6 互斥信號量 16
1.5.7 事件標誌組 17
1.5.8 訊息信箱和訊息佇列 17
1.6 中斷和時鐘 18
1.7 記憶體管理 20
習題 20
第2章 任務管理 21
2.1 任務管理數據結構 22
2.1.1 任務控制塊 22
2.1.2 空閒鍊表和就緒鍊表 27
2.1.3 任務優先權指針表 30
2.1.4 任務堆疊 30
2.1.5 任務就緒表和就緒組 32
2.2 任務控制塊初始化 38
2.2.1 代碼解析 38
2.2.2 流程分析 40
2.3 作業系統初始化 41
2.3.1 代碼解析 42
2.3.2 流程分析 47
2.4 任務的創建 48
2.4.1 OSTaskCreate代碼解析 48
2.4.2 OSTaskCreate流程分析 51
2.4.3 OSTaskCreateExt代碼解析 52
2.4.4 OSTaskCreateExt流程分析 55
2.5 任務的刪除 56
2.5.1 任務刪除代碼解析 57
2.5.2 任務刪除流程分析 60
2.5.3 請求刪除任務代碼解析 62
2.5.4 請求刪除任務流程 63
2.6 任務掛起和恢復 64
2.6.1 OSTaskSuspend代碼解析 65
2.6.2 OSTaskSuspend流程分析 67
2.6.3 OSTaskResume代碼解析 68
2.6.4 OSTaskResume流程分析 69
2.7 任務的調度和多任務的啟動 70
2.7.1 任務調度器 71
2.7.2 任務切換函式 73
2.7.3 中斷中的任務調度 78
2.7.4 多任務的啟動 80
2.8 特殊任務 81
2.8.1 空閒任務OS_TaskIdle 81
2.8.2 統計任務OS_TaskStat 82
2.9 任務管理總結 84
習題 85
第3章 中斷和時間管理 86
3.1 中斷管理 86
3.1.1 中斷管理核心思路 86
3.1.2 中斷處理的流程 88
3.1.3 時鐘中斷服務 88
3.2 時間管理 90
3.2.1 時間管理主要數據結構 90
3.2.2 時間的獲取和設定 90
3.2.3 任務延時函式OSTimeDly 91
3.2.4 任務按分秒延遲函式OSTimeDlyHMSM 92
3.2.5 延時恢複函數OSTimeDlyResume 94
習題 97
第4章 事件管理 98
4.1 事件管理的重要數據結構 98
4.1.1 事件控制塊(ECB) 98
4.1.2 事件等待組和事件等待表 100
4.1.3 事件控制塊空閒鍊表 101
4.2 事件管理程式 102
4.2.1 事件控制塊(ECB)初始化 102
4.2.2 事件等待表初始化 103
4.2.3 設定事件等待 103
4.2.4 取消事件等待 105
4.2.5 將等待事件的任務就緒 106
4.3 信號量管理 107
4.3.1 信號量的建立OSSemCreate 108
4.3.2 信號量的刪除OSSemDel 111
4.3.3 請求信號量OSSemPend 114
4.3.4 提交信號量 118
4.3.5 無等待請求信號量 119
4.3.6 放棄等待信號量 120
4.3.7 信號量值設定 122
4.3.8 查詢信號量狀態 123
4.3.9 信號量套用舉例 124
4.4 互斥信號量管理 129
4.4.1 互斥信號量的建立 131
4.4.2 請求互斥信號量 133
4.4.3 互斥信號量的刪除 139
4.4.4 發互斥信號量 142
4.4.5 無等待請求互斥信號量 145
4.4.6 查詢互斥信號量狀態 147
4.4.7 改變任務的優先權並重新就緒 148
4.4.8 互斥信號量套用舉例 149
4.5 事件標誌組管理 154
4.5.1 事件標誌組數據結構 155
4.5.2 事件標誌組初始化 157
4.5.3 創建事件標誌組 159
4.5.4 事件標誌組阻塞函式 160
4.5.5 請求事件標誌 162
4.5.6 刪除事件標誌組 169
4.5.7 提交事件標誌組 172
4.5.8 標誌節點任務就緒 175
4.5.9 無等待的請求事件標誌 176
4.5.10 事件標誌管理套用舉例 179
習題 184
第5章 訊息管理 186
5.1 訊息信箱 186
5.1.1 建立訊息信箱 187
5.1.2 等待訊息 190
5.1.3 發訊息 194
5.1.4 刪除訊息信箱 196
5.1.5 放棄等待信箱 199
5.1.6 無等待請求訊息 201
5.1.7 查詢訊息信箱狀態 202
5.1.8 訊息信箱的例子 203
5.2 訊息佇列 206
5.2.1 訊息佇列數據結構 207
5.2.2 初始化訊息佇列 210
5.2.3 建立訊息佇列 211
5.2.4 發訊息到訊息佇列 213
5.2.5 等待訊息佇列中的訊息 214
5.2.6 刪除訊息佇列 217
5.2.7 取得訊息佇列的狀態 220
5.2.8 訊息佇列套用舉例 221
習題 225
第6章 記憶體管理 226
6.1 記憶體管理數據結構 227
6.1.1 記憶體控制塊 227
6.1.2 記憶體控制塊實體 227
6.1.3 空閒記憶體控制塊鍊表 227
6.1.4 記憶體分區 228
6.2 記憶體控制塊初始化 228
6.3 創建記憶體分區 230
6.4 記憶體分區獲取 233
6.5 記憶體分區釋放 234
6.6 查詢記憶體分區的狀態 235
6.7 記憶體管理實例 236
習題 239
第7章 移 植 240
7.1 移植說明 240
7.1.1 μC/OS-II的代碼結構 240
7.1.2 作業系統中與CPU相關的代碼解析 244
7.1.3 μC/OS-II移植步驟 247
7.2 在VISUAL C++6.0上實現基於WINDOWS的虛擬ΜC/OS-II移植 248
7.2.1 目錄結構和工程的建立 248
7.2.2 包含檔案includes.h 249
7.2.3 os_cpu.h中修改的代碼 250
7.2.4 os_cpu.c中修改的代碼 251
7.2.5 主程式代碼實現 256
7.2.6 移植測試 257
7.3 在基於NIOS軟核的FPGA嵌入式系統下的ΜC/OS-II移植 257
7.3.1 系統結構 257
7.3.2 NIOS-II暫存器 260
7.3.3 os_cpu.h的移植代碼 262
7.3.4 os_cpu.c的移植代碼 263
7.3.5 os_cpu.s的移植代碼 266
7.3.6 工程的創建和移植測試 269
習題 274

相關詞條

熱門詞條

聯絡我們