嵌入式實時操作系統μC/OS原理與實踐(第2版) ( 簡體 字) |
作者:盧有亮 | 類別:1. -> 電腦組織與體系結構 -> 嵌入式系統 |
譯者: |
出版社:電子工業出版社 | 3dWoo書號: 37962 詢問書籍請說出此書號!【有庫存】 NT售價: 245 元 |
出版日:4/1/2014 |
頁數:288 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787121225178 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:智能系統的盛行使21世紀前10年成為手指尖在觸摸屏上滑動拖曳的時代。不少高級科技人員解決了一個又一個困難,使裸奔的軟件在中斷和循環的糾纏中走了很遠很久。在ARM處理器走出江湖之后,處理器的處理速度和閃存Flash、靜態存儲器SRAM的容量都飛速提升,高性能處理器的出現也使高端的復雜處理程序采用嵌入式來實現,如物聯網、智能手機。存儲容量的擴充使嵌入式操作系統有了用武之地。在STM32使用的ARM Cortex處理器中,具有主堆棧MSP和進程堆棧PSP,具有PendSV和Systick中斷,這些很明顯是配合了μC/OS操作系統。 本書的第1版內容充實,有流程圖等輔助手段,筆者在博客提供了PPT、實驗教程和代碼,受到了讀者的好評,并被一些有所作為的老師引為教材,不少工程師也因此嘗到了熟讀代碼的甜頭。因此,第2版的創作有了足夠的動力。這本書是筆者獨自完成的,第2版的改版經過和很多讀者的交流及論壇的咨詢交流。第1版的缺陷也顯而易見,缺少了硬件平臺,只是在VC下仿真學習。因此,筆者設計的亮點STM32開發板彌補了這一個缺陷,也是第2版修改和增加的移植、工程實例及μC/OS-III的基礎平臺。當然,實驗平臺是選項,如果喜歡在VC下學習仍然是可以的,而在其他嵌入式系統及開發板下對筆者提供的代碼的配置信息進行修改,也可以勝任。 第2版中將提供在STM32(ARM Cortex內核系列芯片)下的移植和例程,增加應用性的工程示例。2013年μC/OS-III逐步進入市場,第2版也包含了這方面的內容。為方便讀者閱讀代碼,本書目前配套的亮點嵌入式開發板的資源也在附錄中列出,不選擇開發板的同樣可以下載代碼。另外以技術論壇作為交流平臺或翻轉課堂,論壇地址在序言最后給出。 內容劃分 第1章是操作系統和嵌入式實時操作系統的基本原理。第2章是操作系統最核心的任務管理,需要對數據結構和源代碼仔細體會。第3章是中斷和事件管理。第4章、第5章是事件和消息部分,包含了各種事件和消息機制。第6章是內存管理。第7章是移植的流程分析和在虛擬平臺及STM32下的移植。第8章是全新的工程實踐部分,給出一個在STM32下的完整的工程示例。第9章是與時俱進的μC/OS-III,并將工程實踐的代碼在μC/OS-III上實現了一遍。 本書特色 采用逐步深入,反復印證的方法。 采用從數據結構的設計入手,再到代碼分析、示例驗證的剖析方法。給出在虛擬平臺下的移植示例和針對各章內容的示例。 給出在實際嵌入式系統下的工程示例。 表格、圖形化的風格。 適用面廣,適合于廣大IT類學生及工作者。 對于沒有學習過操作系統原理的讀者無障礙。 與時俱進地擴展到μC/OS-III。 學習本課程的先導知識是C語言、軟件技術基礎或數據結構,可以同步學習微機原理或嵌入式系統設計。另外,本人的另一本著作《基于STM32的嵌入式系統原理與設計》可以與本書交相輝映。 作為本科生等教材的建議是:第1、2、3章詳細講解,第4、5、6章的內容每章選擇2∼3節講解。第7、8章的內容可作為實踐部分。另外如果要上實驗,則可以選擇在Windows下的虛擬實驗,在論壇和博客提供有實驗的PPT和代碼。另外,也可以選擇使用亮點STM32開發板作為實驗教學平臺。本書在每章后提供了習題,筆者也編寫了PPT,適合32∼48學時對高年級本科生或低年級研究生講授。同時歡迎廣大技術人員引為學習資料,歡迎進論壇和訪問筆者的博客進行交流。 沒有資源只有一本書不能成為平臺,亮點嵌入式就是這么一個平臺,本書就是核心。本書配套的資源地址如下: 亮點嵌入式技術交流論壇http://www.eeboard.com/bp。 筆者新浪博客http://blog.sina.com.cn/u/2630123921。 配套μC/OS開發板(教學實驗):http://brightpoint.taobao.com(唯一地址,非免費)。 目前可以提供的資源主要有: 教學課件。 15個學時的實驗教程代碼和PPT。 亮點STM32開發板及配套μC/OS實例代碼。 感謝讀者對本書的認可,歡迎讀者到論壇和博客獲取資料、交流及提出寶貴意見。 筆者 2014年于成都 |
內容簡介:本書內容包括:實時操作系統基礎、任務管理、中斷和時間管理、事件管理、消息管理、內存管理、移植、μC/OS-II工程實例、μC/OS-III分析及工程實例等。本書內容翔實,圖文并茂,采用逐步深入、反復印證的方法,從數據結構的設計入手,再到代碼分析、示例驗證的剖析方法,逐層深入講解,給出在虛擬平臺下的移植示例和針對各章內容示例,并給出了基于ARM Cortex M3內核的STM32系統上移植和工程實例。 |
目錄:第1章 實時操作系統基礎 1.1 操作系統概述 1.1.1 什么是操作系統 1.1.2 操作系統基本功能 1.2 實時操作系統概述 1.2.1 什么是實時操作系統 1.2.2 實時操作系統的基本特征 1.3 任務 1.3.1 任務簡介 1.3.2 多任務 1.3.3 任務狀態 1.3.4 任務切換 1.3.5 可重入函數和不可重入函數 1.4 基于優先級的可剝奪內核 1.4.1 內核 1.4.2 基于優先級的調度算法 1.4.3 不可剝奪型內核和可剝奪型內核 1.5 同步與通信 1.5.1 同步 1.5.2 互斥 1.5.3 臨界區 1.5.4 事件 1.5.5 信號量 1.5.6 互斥信號量 1.5.7 事件標志組 1.5.8 消息郵箱和消息隊列 1.6 時鐘和中斷 1.7 內存管理 1.8 嵌入式實時操作系統μC/OS學習開發指引 習題 第2章 任務管理 2.1 任務管理數據結構 2.1.1 任務控制塊 2.1.2 空閑鏈表和就緒鏈表 2.1.3 任務優先級指針表 2.1.4 任務堆棧 2.1.5 任務就緒表和就緒組 2.2 任務控制塊初始化 2.2.1 代碼解析 2.2.2 流程分析 2.3 操作系統初始化 2.3.1 代碼解析 2.3.2 流程分析 2.4 任務的創建 2.4.1 OSTaskCreate代碼解析 2.4.2 OSTaskCreate流程分析 2.4.3 OSTaskCreateExt代碼解析 2.4.4 OSTaskCreateExt流程分析 2.5 任務的刪除 2.5.1 任務刪除代碼解析 2.5.2 任務刪除流程分析 2.5.3 請求刪除任務代碼解析 2.5.4 請求刪除任務流程 2.6 任務掛起和恢復 2.6.1 OSTaskSuspend代碼解析 2.6.2 OSTaskSuspend流程分析 2.6.3 OSTaskResume代碼解析 2.6.4 OSTaskResume流程分析 2.7 任務的調度和多任務的啟動 2.7.1 任務調度器 2.7.2 任務切換函數 2.7.3 中斷中的任務調度 2.7.4 多任務的啟動 2.8 特殊任務 2.8.1 空閑任務OS_TaskIdle 2.8.2 統計任務OS_TaskStat 2.9 任務管理總結 習題 第3章 中斷和時間管理 3.1 中斷管理 3.1.1 中斷管理核心思路 3.1.2 中斷處理的流程 3.1.3 時鐘中斷服務 3.2 時間管理 3.2.1 時間管理主要數據結構 3.2.2 時間的獲取和設置 3.2.3 任務延時函數OSTimeDly 3.2.4 任務按分秒延遲函數OSTimeDlyHMSM 3.2.5 延時恢復函數OSTimeDlyResume 習題 第4章 事件管理 4.1 事件管理的重要數據結構 4.1.1 事件控制塊(ECB) 4.1.2 事件等待組和事件等待表 4.1.3 事件控制塊空閑鏈表 4.2 事件管理程序 4.2.1 事件控制塊(ECB)初始化 4.2.2 事件等待表初始化 4.2.3 設置事件等待 4.2.4 取消事件等待 4.2.5 將等待事件的任務就緒 4.3 信號量管理 4.3.1 信號量的建立OSSemCreate 4.3.2 信號量的刪除OSSemDel 4.3.3 請求信號量OSSemPend 4.3.4 提交信號量 4.3.5 無等待請求信號量 4.3.6 放棄等待信號量 4.3.7 信號量值設置 4.3.8 查詢信號量狀態 4.3.9 信號量應用舉例 4.4 互斥信號量管理 4.4.1 互斥信號量的建立 4.4.2 請求互斥信號量 4.4.3 互斥信號量的刪除 4.4.4 發互斥信號量 4.4.5 無等待請求互斥信號量 4.4.6 查詢互斥信號量狀態 4.4.7 改變任務的優先級并重新就緒 4.4.8 互斥信號量應用舉例 4.5 事件標志組管理 4.5.1 事件標志組數據結構 4.5.2 事件標志組初始化 4.5.3 創建事件標志組 4.5.4 事件標志組阻塞函數 4.5.5 請求事件標志 4.5.6 刪除事件標志組 4.5.7 提交事件標志組 4.5.8 標志節點任務就緒 4.5.9 無等待的請求事件標志 4.5.10 事件標志管理應用舉例 習題 第5章 消息管理 5.1 消息郵箱 5.1.1 建立消息郵箱 5.1.2 等待消息 5.1.3 發消息 5.1.4 刪除消息郵箱 5.1.5 放棄等待郵箱 5.1.6 無等待請求消息 5.1.7 查詢消息郵箱狀態 5.1.8 消息郵箱的例子 5.2 消息隊列 5.2.1 消息隊列數據結構 5.2.2 初始化消息隊列 5.2.3 建立消息隊列 5.2.4 發消息到消息隊列 5.2.5 等待消息隊列中的消息 5.2.6 刪除消息隊列 5.2.7 取得消息隊列的狀態 5.2.8 消息隊列應用舉例 習題 第6章 內存管理 6.1 內存管理數據結構 6.1.1 內存控制塊 6.1.2 內存控制塊實體 6.1.3 空閑內存控制塊鏈表 6.1.4 內存分區 6.2 內存控制塊初始化 6.3 創建內存分區 6.4 內存分區獲取 6.5 內存分區釋放 6.6 查詢內存分區的狀態 6.7 內存管理實例 習題 第7章 移植 7.1 移植說明 7.1.1 μC/OS-II的代碼結構 7.1.2 操作系統中與CPU相關的代碼解析 7.1.3 μC/OS-II移植步驟 7.2 在Visual C++ 6.0上實現基于Windows的虛擬μC/OS-II移植 7.2.1 目錄結構和工程的建立 7.2.2 包含文件includes.h 7.2.3 os_cpu.h中修改的代碼 7.2.4 os_cpu.c中修改的代碼 7.2.5 主程序代碼實現 7.2.6 移植測試 7.3 μC/OS-II在ARM Cortex M3下的移植 7.3.1 與移植相關的ARM Cortex M3研究 7.3.2 os_cpu.h代碼解析 7.3.3 os_cpu_c.c移植代碼解析 7.3.4 os_cpu_a.asm移植代碼解析 7.3.5 移植后的目錄結構 習題 第8章 工程實踐 8.1 工程需求說明 8.2 分析 8.3 工程設計 8.3.1 整體設計 8.3.2 主機硬件接口設計 8.3.3 多任務設計 8.3.4 串口數據格式 8.4 程序設計 8.4.1 主程序 8.4.2 串口中斷服務程序 8.4.3 緩沖區處理任務代碼 8.4.4 顯示任務代碼 8.4.5 AD 采集任務代碼 8.4.6 觸摸屏任務代碼 8.4.7 μC/GUI消息處理任務代碼 8.4.8 啟動任務代碼 8.4.9 工程代碼結構 8.5 運行測試 習題 設計題 第9章 μC/OS-III分析、移植與應用實踐 9.1 本章說明 9.2 μC/OS-III代碼結構 9.3 μC/OS-III在STM32上的移植 9.3.1 os_cpu.h代碼 9.3.2 os_cpu_c.c移植代碼 9.3.3 os_cpu_a.asm移植代碼 9.4 μC/OS-III函數 9.4.1 任務管理函數 9.4.2 時間管理函數 9.4.3 信號量管理函數 9.4.4 互斥信號量管理函數 9.4.5 消息隊列管理函數 9.4.6 中斷管理函數 9.4.7 內核函數 9.5 μC/OS-III工程示例 9.5.1 工程分組 9.5.2 主程序 9.5.3 串口中斷服務程序 9.5.4 緩沖區處理任務代碼 9.5.5 顯示任務代碼 9.5.6 啟動任務代碼 9.5.7 其他代碼 9.5.8 運行測試 習題 設計題 附錄A 亮點STM32開發板資源 A.1 硬件資源概述 A.2 硬件資源按引腳分配 A.3 接口描述 A.4 軟件資源 A.5 網絡資源 參考文獻 |
序: |