|
-- 會員 / 註冊 --
|
|
|
|
μC/OS-III源碼分析筆記 ( 簡體 字) |
作者:李悅城 野火 | 類別:1. -> 電腦組織與體系結構 -> 嵌入式系統 |
譯者: |
出版社:機械工業出版社 | 3dWoo書號: 43145 詢問書籍請說出此書號!【缺書】 NT售價: 395 元 |
出版日:12/28/2015 |
頁數:317 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787111519676 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介:本書基于Cortex-M3內核,從源碼分析和實際應用兩個角度全面解析嵌入式實時操作系統μC/OS-III。為了讓讀者更好地理解,本書主要按照循環漸進的順序對μC/OS-III中的函數逐一進行分析,采用通俗易懂的例子對書中內容進行解析。
|
目錄:第1章 實時操作系統及μC/OS-III簡介 / 1 1.1 單片機應用程序框架 / 1 1.1.1 前后臺系統 / 1 1.1.2 嵌入式實時操作系統 / 4 1.2 如何使用和學習μC/OS-III源碼 / 5 1.3 μC/OS-III文件結構簡介 / 7 1.4 μC/OS-III數據結構簡介 / 8 1.5 任務 / 10 1.6 內核對象簡介 / 11 1.6.1 信號量 / 11 1.6.2 事件標志組 / 12 1.6.3 消息隊列 / 12 1.6.4 互斥信號量 / 12 1.6.5 內存分區 / 13 1.6.6 軟件定時器 / 13 1.7 μC/OS-III常見的程序段 / 13 1.7.1 中斷嵌套層數統計 / 13 1.7.2 開中斷和關中斷 / 14 1.7.3 使能中斷延遲的鎖住和開啟調度器 / 14 1.7.4 沒有使能中斷延遲的鎖住和開啟調度器 / 15 1.7.5 中斷嵌套檢測 / 15 1.7.6 調度器嵌套檢測 / 16 1.7.7 時間戳 / 16 1.7.8 錯誤類型 / 17 1.7.9 參數檢測 / 17 1.7.10 內核對象類型檢測 / 17 1.7.11 安全檢測 / 18 1.7.12 安全關鍵IEC61508 / 18 1.8 總結 / 19 第2章 時鐘節拍 / 20 2.1 系統節拍中斷服務程序 / 20 2.2 節拍任務處理時間相關事務 / 23 2.2.1 節拍列表更新 / 24 2.2.2 節拍列表 / 27 2.2.3 哈希算法檢測到期任務 / 29 2.3 總結 / 30 第3章 時間管理 / 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 16.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 |
序: |
|