出版時間:2012-2 出版社:電子工業(yè)出版社 作者:盧有亮 頁數(shù):288
Tag標(biāo)簽:無
內(nèi)容概要
本書內(nèi)容包括:實時操作系統(tǒng)基礎(chǔ)、任務(wù)管理、中斷和時間管理、事件管理、消息管理、內(nèi)存管理、移植等。本書內(nèi)容翔實,圖文并茂,采用逐步深入、反復(fù)印證的方法,從數(shù)據(jù)結(jié)構(gòu)的設(shè)計入手,再到代碼分析、示例驗證的剖析方法,逐層深入講解,給出在虛擬平臺下的移植示例和針對各章內(nèi)容示例,并給出了基于NIOS
II的FPGA系統(tǒng)上移植的例子。
本書適用于計算機、電子、通信、自動化及相關(guān)專業(yè)大學(xué)本科、研究生,也適用于廣大嵌入式開發(fā)工程技術(shù)人員、電子技術(shù)研究人員、操作系統(tǒng)研究人員。
書籍目錄
Contents
第1章 實時操作系統(tǒng)基礎(chǔ)
1.1 操作系統(tǒng)概述
1.1.1 什么是操作系統(tǒng)
1.1.2 操作系統(tǒng)基本功能
1.2 實時操作系統(tǒng)概述
1.2.1 什么是實時操作系統(tǒng)
1.2.2 實時操作系統(tǒng)的基本特征
1.3 任務(wù)
1.3.1 任務(wù)簡介
1.3.2 多任務(wù)
1.3.3 任務(wù)狀態(tài)
1.3.4 任務(wù)切換
1.3.5 可重入函數(shù)和不可重入函數(shù)
1.4 基于優(yōu)先級的不可剝奪內(nèi)核
1.4.1 內(nèi)核
1.4.2 基于優(yōu)先級的調(diào)度算法
1.4.3 不可剝奪型內(nèi)核和可剝奪型內(nèi)核
1.5 同步與通信
1.5.1 同步
1.5.2 互斥
1.5.3 臨界區(qū)
1.5.4 任務(wù)事件
1.5.5 信號量
1.5.6 互斥信號量
1.5.7 事件標(biāo)志組
1.5.8 消息郵箱和消息隊列
1.6 中斷和時鐘
1.7 內(nèi)存管理
習(xí)題
第2章 任務(wù)管理
2.1 任務(wù)管理數(shù)據(jù)結(jié)構(gòu)
2.1.1 任務(wù)控制塊
2.1.2 空閑鏈表和就緒鏈表
2.1.3 任務(wù)優(yōu)先級指針表
2.1.4 任務(wù)堆棧
2.1.5 任務(wù)就緒表和就緒組
2.2 任務(wù)控制塊初始化
2.2.1 代碼解析
2.2.2 流程分析
2.3 操作系統(tǒng)初始化
2.3.1 代碼解析
2.3.2 流程分析
2.4 任務(wù)的創(chuàng)建
2.4.1 OSTaskCreate代碼解析
2.4.2 OSTaskCreate流程分析
2.4.3 OSTaskCreateExt代碼解析
2.4.4 OSTaskCreateExt流程分析
2.5 任務(wù)的刪除
2.5.1 任務(wù)刪除代碼解析
2.5.2 任務(wù)刪除流程分析
2.5.3 請求刪除任務(wù)代碼解析
2.5.4 請求刪除任務(wù)流程
2.6 任務(wù)掛起和恢復(fù)
2.6.1 OSTaskSuspend代碼解析
2.6.2 OSTaskSuspend流程分析
2.6.3 OSTaskResume代碼解析
2.6.4 OSTaskResume流程分析
2.7 任務(wù)的調(diào)度和多任務(wù)的啟動
2.7.1 任務(wù)調(diào)度器
2.7.2 任務(wù)切換函數(shù)
2.7.3 中斷中的任務(wù)調(diào)度
2.7.4 多任務(wù)的啟動
2.8 特殊任務(wù)
2.8.1 空閑任務(wù)OS_TaskIdle
2.8.2 統(tǒng)計任務(wù)OS_TaskStat
2.9 任務(wù)管理總結(jié)
習(xí)題
第3章 中斷和時間管理
3.1 中斷管理
3.1.1 中斷管理核心思路
3.1.2 中斷處理的流程
3.1.3 時鐘中斷服務(wù)
3.2 時間管理
3.2.1 時間管理主要數(shù)據(jù)結(jié)構(gòu)
3.2.2 時間的獲取和設(shè)置
3.2.3 任務(wù)延時函數(shù)OSTimeDly
3.2.4 任務(wù)按分秒延遲函數(shù)OSTimeDlyHMSM
3.2.5 延時恢復(fù)函數(shù)OSTimeDlyResume
習(xí)題
第4章 事件管理
4.1 事件管理的重要數(shù)據(jù)結(jié)構(gòu)
4.1.1 事件控制塊(ECB)
4.1.2 事件等待組和事件等待表
4.1.3 事件控制塊空閑鏈表
4.2 事件管理程序
4.2.1 事件控制塊(ECB)初始化
4.2.2 事件等待表初始化
4.2.3 設(shè)置事件等待
4.2.4 取消事件等待
4.2.5 將等待事件的任務(wù)就緒
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 信號量值設(shè)置
4.3.8 查詢信號量狀態(tài)
4.3.9 信號量應(yīng)用舉例
4.4 互斥信號量管理
4.4.1 互斥信號量的建立
4.4.2 請求互斥信號量
4.4.3 互斥信號量的刪除
4.4.4 發(fā)互斥信號量
4.4.5 無等待請求互斥信號量
4.4.6 查詢互斥信號量狀態(tài)
4.4.7 改變?nèi)蝿?wù)的優(yōu)先級并重新就緒
4.4.8 互斥信號量應(yīng)用舉例
4.5 事件標(biāo)志組管理
4.5.1 事件標(biāo)志組數(shù)據(jù)結(jié)構(gòu)
4.5.2 事件標(biāo)志組初始化
4.5.3 創(chuàng)建事件標(biāo)志組
4.5.4 事件標(biāo)志組阻塞函數(shù)
4.5.5 請求事件標(biāo)志
4.5.6 刪除事件標(biāo)志組
4.5.7 提交事件標(biāo)志組
4.5.8 標(biāo)志節(jié)點任務(wù)就緒
4.5.9 無等待的請求事件標(biāo)志
4.5.10 事件標(biāo)志管理應(yīng)用舉例
習(xí)題
第5章 消息管理
5.1 消息郵箱
5.1.1 建立消息郵箱
5.1.2 等待消息
5.1.3 發(fā)消息
5.1.4 刪除消息郵箱
5.1.5 放棄等待郵箱
5.1.6 無等待請求消息
5.1.7 查詢消息郵箱狀態(tài)
5.1.8 消息郵箱的例子
5.2 消息隊列
5.2.1 消息隊列數(shù)據(jù)結(jié)構(gòu)
5.2.2 初始化消息隊列
5.2.3 建立消息隊列
5.2.4 發(fā)消息到消息隊列
5.2.5 等待消息隊列中的消息
5.2.6 刪除消息隊列
5.2.7 取得消息隊列的狀態(tài)
5.2.8 消息隊列應(yīng)用舉例
習(xí)題
第6章 內(nèi)存管理
6.1 內(nèi)存管理數(shù)據(jù)結(jié)構(gòu)
6.1.1 內(nèi)存控制塊
6.1.2 內(nèi)存控制塊實體
6.1.3 空閑內(nèi)存控制塊鏈表
6.1.4 內(nèi)存分區(qū)
6.2 內(nèi)存控制塊初始化
6.3 創(chuàng)建內(nèi)存分區(qū)
6.4 內(nèi)存分區(qū)獲取
6.5 內(nèi)存分區(qū)釋放
6.6 查詢內(nèi)存分區(qū)的狀態(tài)
6.7 內(nèi)存管理實例
習(xí)題
第7章 移 植
7.1 移植說明
7.1.1 μC/OS-II的代碼結(jié)構(gòu)
7.1.2 操作系統(tǒng)中與CPU相關(guān)的代碼解析
7.1.3 μC/OS-II移植步驟
7.2 在VISUAL C++6.0上實現(xiàn)基于WINDOWS的虛擬ΜC/OS-II移植
7.2.1 目錄結(jié)構(gòu)和工程的建立
7.2.2 包含文件includes.h
7.2.3 os_cpu.h中修改的代碼
7.2.4 os_cpu.c中修改的代碼
7.2.5 主程序代碼實現(xiàn)
7.2.6 移植測試
7.3 在基于NIOS軟核的FPGA嵌入式系統(tǒng)下的ΜC/OS-II移植
7.3.1 系統(tǒng)結(jié)構(gòu)
7.3.2 NIOS-II寄存器
7.3.3 os_cpu.h的移植代碼
7.3.4 os_cpu.c的移植代碼
7.3.5 os_cpu.s的移植代碼
7.3.6 工程的創(chuàng)建和移植測試
習(xí)題
章節(jié)摘錄
版權(quán)頁:插圖:互斥信號量是一種特殊的信號量,這不僅在于該信號量只有用于互斥資源的訪問,還在于使用互斥信號量管理需要解決的優(yōu)先級反轉(zhuǎn)問題。假如系統(tǒng)中有3個任務(wù),分別是高優(yōu)先級、中優(yōu)先級和低優(yōu)先級,當(dāng)?shù)蛢?yōu)先級的任務(wù)在運行的時候訪問互斥資源,而中優(yōu)先級的任務(wù)運行時將使低優(yōu)先級的任務(wù)得不到運行而死抱著資源不放。這時,高優(yōu)先級的任務(wù)開始運行的時候,必須等待中優(yōu)先級的任務(wù)運行完成,然后等低優(yōu)先級的任務(wù)訪問資源完成才行。如果在低優(yōu)先級的任務(wù)訪問資源過程中又有中優(yōu)先級任務(wù)運行,那么高優(yōu)先級的任務(wù)只有繼續(xù)等待。這種情況就是優(yōu)先級反轉(zhuǎn)。在μC/OS-II對互斥信號量的管理中,針對這個問題采用了優(yōu)先級繼承機制。優(yōu)先級繼承機制是一種對占用資源的任務(wù)的優(yōu)先級進(jìn)行升級的機制,用以優(yōu)化系統(tǒng)的調(diào)度。例如,當(dāng)前的任務(wù)的優(yōu)先級是比較低的。高優(yōu)先級的任務(wù)請求互斥信號量的時候因為信號量已被占有,所以只有阻塞。這時有中優(yōu)先級的任務(wù)就緒。如果不采用優(yōu)先級繼承,那么高優(yōu)先級的任務(wù)是競爭不過中優(yōu)先級的任務(wù)的。采用優(yōu)先級繼承機制,將占有資源的低優(yōu)先級的任務(wù)臨時設(shè)置為一個很高的優(yōu)先級,允許其在占有資源的時候臨時獲得特權(quán),先于中優(yōu)先級任務(wù)完成,在訪問互斥資源結(jié)束又回到原來的優(yōu)先級,這樣高優(yōu)先級的任務(wù)就會先于中優(yōu)先級的任務(wù)運行,解決了這個問題。本書在第4章的“4.4互斥信號量管理”一節(jié)還將詳細(xì)論述該問題并給出例程。
編輯推薦
《嵌入式實時操作系統(tǒng)μC/OS原理與實踐》μC/OS是高實時性、多任務(wù)的操作系統(tǒng),也是源代碼對非商業(yè)用途開放的操作系統(tǒng),筆者結(jié)合自己的實際工作經(jīng)驗,通過本書詳細(xì)闡釋μC/OS的系統(tǒng)原理及實戰(zhàn)技巧?!肚度胧綄崟r操作系統(tǒng)μC/OS原理與實踐》對最新版本的μC/OSII-2.91進(jìn)行深入剖析,從實時操作系統(tǒng)的原理開始,對重要的數(shù)據(jù)結(jié)構(gòu)和代碼結(jié)合相關(guān)實例進(jìn)行詳細(xì)解析,以便于讀者掌握。通過《嵌入式實時操作系統(tǒng)μC/OS原理與實踐》的學(xué)習(xí),能夠幫助讀者全面、深入地掌握嵌入式實時操作系統(tǒng)的基本原理,全方位接觸μC/OS,對所學(xué)知識融會貫通,能夠靈活應(yīng)用到實際的項目當(dāng)中。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載
嵌入式實時操作系統(tǒng)μC/OS原理與實踐 PDF格式下載