嵌入式操作系統(tǒng)原理與面向任務(wù)程序設(shè)計(jì)

出版時(shí)間:2010-12  出版社:西安電子科大  作者:張勇  頁數(shù):306  
Tag標(biāo)簽:無  

內(nèi)容概要

《嵌入式操作系統(tǒng)原理與面向任務(wù)程序設(shè)計(jì):基于μC/OS-2 v2.86和ARM920T》由張勇編著,基于μC/OS-Ⅱ v2.86和ARM920T芯片講述嵌入式操作系統(tǒng)的工作原理以及面向任務(wù)應(yīng)用程序設(shè)計(jì)方法,闡述基于μC/OS-Ⅱ系統(tǒng)的用戶應(yīng)用程序的工作流程。全書共分八章,主要內(nèi)容包括嵌入式實(shí)時(shí)操作系統(tǒng)概述、嵌入式實(shí)時(shí)操作系統(tǒng)原理、μC/OS-Ⅱ內(nèi)核、μC/OS-Ⅱ組件、μC/OS-Ⅱ應(yīng)用實(shí)例、μC/OS-Ⅱ最小系統(tǒng)、面向任務(wù)程序設(shè)計(jì)(TOP)以及TOP設(shè)計(jì)實(shí)例等?!肚度胧讲僮飨到y(tǒng)原理與面向任務(wù)程序設(shè)計(jì):基于μC/OS-2 v2.86和ARM920T》的特色在于理論講解透徹、實(shí)例豐富且針對(duì)性強(qiáng)。    《嵌入式操作系統(tǒng)原理與面向任務(wù)程序設(shè)計(jì)--基于μC\OS-Ⅱv2.86和ARM920T》是作者近幾年來從事嵌入式系統(tǒng)教學(xué)與研究的成果結(jié)晶,重點(diǎn)講述μC/OS-Ⅱv2.86原理與應(yīng)用,同時(shí)給出了裁剪的μC/OS-Ⅱ最小系統(tǒng),對(duì)學(xué)習(xí)嵌入式操作系統(tǒng)設(shè)計(jì)具有較強(qiáng)的指導(dǎo)作用。本書是作者已出版的(μC/OS-Ⅱ原理與ARM應(yīng)用程序設(shè)計(jì)》(西安電子科技大學(xué)出版社2010年出版)一書的姊妹篇,偏重于嵌入式操作系統(tǒng)工作原理與設(shè)計(jì)方法。    《嵌入式操作系統(tǒng)原理與面向任務(wù)程序設(shè)計(jì):基于μC/OS-2 v2.86和ARM920T》可作為電子通信、軟件工程、自動(dòng)控制、智能儀器等相關(guān)專業(yè)高年級(jí)本科生或研究生學(xué)習(xí)嵌入式操作系統(tǒng)的教材,也可作為從事嵌入式應(yīng)用和嵌入式操作系統(tǒng)開發(fā)的電子工程師、軟件工程師以及嵌入式愛好者的參考書。

書籍目錄

第一章 嵌入式實(shí)時(shí)操作系統(tǒng)概述1.1 操作系統(tǒng)的概念1.2 嵌入式操作系統(tǒng)1.3 嵌入式實(shí)時(shí)操作系統(tǒng)舉例1.3.1 WindowsCE1.3.2 VxWorks1.3.3 嵌入式Linux1.3.4 Android系統(tǒng)1.4 μC/OS-Ⅱ和μC/OS-Ⅲ的特點(diǎn)1.4.1 μC/OS-Ⅱ的特點(diǎn)1.4.2 μC/OS-Ⅲ的特點(diǎn)1.5 小結(jié)習(xí)題一第二章 嵌入式實(shí)時(shí)操作系統(tǒng)原理2.1 進(jìn)程與線程2.1.1 進(jìn)程2.1.2 線程2.1.3 任務(wù)2.2 任務(wù)調(diào)度與優(yōu)先級(jí)2.2.1 任務(wù)狀態(tài)2.2.2 任務(wù)優(yōu)先級(jí)2.2.3 任務(wù)切換2.2.4 任務(wù)調(diào)度算法2.2.5 中斷與實(shí)時(shí)性2.3 資源2.3.1 共享資源2.3.2 變量2.3.3 可重入函數(shù)2.3.4 死鎖2.4 內(nèi)存管理2.4.1 堆2.4.2 棧2.4.3 內(nèi)存碎片2.5 內(nèi)核與時(shí)鐘節(jié)拍2.5.1 不可搶先型內(nèi)核2.5.2 可搶先型內(nèi)核2.5.3 時(shí)鐘節(jié)拍2.5.4 空閑任務(wù)2.6 信號(hào)量與互斥信號(hào)量2.6.1 信號(hào)量2.6.2 互斥信號(hào)量2.7 消息郵箱2.8 小結(jié)習(xí)題二第三章 μC/OS-Ⅱ內(nèi)核3.1 μC/OS-Ⅱ初始化3.2 空閑任務(wù)控制塊鏈表3.3 空閑事件控制塊鏈表3.4 空閑內(nèi)存控制塊鏈表3.5 任務(wù)就緒組和任務(wù)就緒表3.6 空閑任務(wù)3.7 統(tǒng)計(jì)任務(wù)3.8 定時(shí)器任務(wù)3.9 空閑事件標(biāo)志組鏈表3.10 空閑消息隊(duì)列鏈表3.11 時(shí)鐘節(jié)拍3.12 任務(wù)狀態(tài)3.13 任務(wù)調(diào)度與內(nèi)核函數(shù)3.13.1 內(nèi)核管理函數(shù)3.13.2 延時(shí)管理函數(shù)3.13.3 移植管理函數(shù)3.14 多任務(wù)啟動(dòng)3.15 小結(jié)習(xí)題三第四章μC/OS-Ⅱ組件4.1 任務(wù)管理4.1.1 創(chuàng)建任務(wù)4.1.2 刪除任務(wù)4.1.3 堆棧檢查4.2 信號(hào)量管理4.2.1 信號(hào)量使用方法4.2.2 信號(hào)量創(chuàng)建函數(shù)4.2.3 信號(hào)量請(qǐng)求函數(shù)4.2.4 信號(hào)量釋放函數(shù)4.2.5 信號(hào)量賦值函數(shù)4.3 互斥信號(hào)量管理4.3.1 互斥信號(hào)量使用方法4.3.2 互斥信號(hào)量創(chuàng)建函數(shù)4.3.3 互斥信號(hào)量請(qǐng)求函數(shù)4.3.4 互斥信號(hào)量釋放函數(shù)4.4 事件標(biāo)志組管理4.4.1 事件標(biāo)志組使用方法4.4.2 事件標(biāo)志組創(chuàng)建函數(shù)4.4.3 事件標(biāo)志組請(qǐng)求函數(shù)4.4.4 事件標(biāo)志組釋放函數(shù)4.5 消息郵箱管理4.5.1 消息郵箱使用方法4.5.2 消息郵箱創(chuàng)建函數(shù)4.5.3 消息郵箱請(qǐng)求函數(shù)4.5.4 消息郵箱釋放函數(shù)4.6 消息隊(duì)列管理4.6.1 消息隊(duì)列使用方法4.6.2 消息隊(duì)列創(chuàng)建函數(shù)4.6.3 消息隊(duì)列請(qǐng)求函數(shù)4.6.4 消息隊(duì)列釋放函數(shù)4.7 多事件請(qǐng)求管理4.7.1 多事件請(qǐng)求函數(shù)使用方法4.7.2 多事件請(qǐng)求函數(shù)工作原理4.8 中斷管理宏函數(shù)4.9 定時(shí)器管理4.9.1 定時(shí)器任務(wù)4.9.2 定時(shí)器使用方法4.9.3 定時(shí)器創(chuàng)建函數(shù)4.9.4 定時(shí)器啟動(dòng)函數(shù)4.9.5 定時(shí)器停止函數(shù)4.9.6 定時(shí)器刷新函數(shù)4.1 0動(dòng)態(tài)內(nèi)存管理4.1 0.1 動(dòng)態(tài)內(nèi)存使用方法4.1 0.2 動(dòng)態(tài)內(nèi)存創(chuàng)建函數(shù)4.1 0.3 動(dòng)態(tài)內(nèi)存請(qǐng)求函數(shù)4.1 0.4 動(dòng)態(tài)內(nèi)存釋放函數(shù)4.1 1小結(jié)習(xí)題四第五章 μC/OS-Ⅱ應(yīng)用實(shí)例5.1 BodandC++5.02與實(shí)例一5.1.1 在BorlandC++上實(shí)現(xiàn)實(shí)例一5.1.2 實(shí)例一程序解釋5.1.3 μC/OS-View與實(shí)例一5.2 實(shí)例二5.3 實(shí)例三5.4 實(shí)例四5.5 小結(jié)習(xí)題五第六章 μC/OS-Ⅱ最小系統(tǒng)6.1 內(nèi)核裁剪6.1.1 配置文件O_Cfg.h6.1.2 最小系統(tǒng)頭文件ucos_ii.h6.1.3 最小系統(tǒng)文件與執(zhí)行流程6.2 最小系統(tǒng)實(shí)例6.3 小結(jié)習(xí)題六第七章 面向任務(wù)程序設(shè)計(jì)(TOP)7.1 程序設(shè)計(jì)方法7.2 任務(wù)與函數(shù)7.3 任務(wù)構(gòu)造方法7.3.1 指示層任務(wù)設(shè)計(jì)7.3.2 輸入/輸出層任務(wù)設(shè)計(jì)7.3.3 計(jì)算層和輸入/輸出層任務(wù)聯(lián)合設(shè)計(jì)7.4 任務(wù)優(yōu)先級(jí)與堆棧7.5 任務(wù)調(diào)度與切換7.6 任務(wù)間同步與通信7.7 任務(wù)掛起與恢復(fù)7.8 小結(jié)習(xí)題七第八章 TOP設(shè)計(jì)實(shí)例8.1 硬件平臺(tái)8.2 工程框架與實(shí)例一8.2.1 工程框架8.2.2 LED燈閃爍與實(shí)例一8.3 實(shí)例二8.3.1 串口驅(qū)動(dòng)8.3.2 串口通信實(shí)例8.4 實(shí)例三8.4.1 數(shù)碼管驅(qū)動(dòng)8.4.2 數(shù)碼管秒表實(shí)例8.4.3 數(shù)碼管顯示實(shí)例8.5 實(shí)例四8.5.1 模/數(shù)變換驅(qū)動(dòng)8.5.2 模/數(shù)變換實(shí)例8.5.3 中值濾波實(shí)例8.6 小結(jié)習(xí)題八附錄 μC/OS-Ⅲ和Cortex-M3簡(jiǎn)要說明附錄1 μC/OS-Ⅲ文件組織結(jié)構(gòu)附錄2 Cortex-M3處理器和EMSTM32V100實(shí)驗(yàn)平臺(tái)附錄3 μC/OS-Ⅲ實(shí)例說明后記

章節(jié)摘錄

版權(quán)頁:插圖:(1)任務(wù)被創(chuàng)建后會(huì)進(jìn)入到就緒態(tài),此時(shí)有一個(gè)入棧的操作,即把該任務(wù)的執(zhí)行入口地址入棧,因?yàn)榇藭r(shí)沒有運(yùn)行環(huán)境,故運(yùn)行環(huán)境的入棧值是隨機(jī)數(shù)。(2)就緒態(tài)的最高優(yōu)先級(jí)任務(wù)獲得CP[J使用權(quán)后,由就緒態(tài)進(jìn)入到執(zhí)行態(tài),此時(shí)原執(zhí)行態(tài)的任務(wù)有一個(gè)入棧的操作,將其運(yùn)行環(huán)境保存在其獨(dú)立的堆棧中;而進(jìn)入執(zhí)行態(tài)的任務(wù)有一個(gè)出棧操作,恢復(fù)其運(yùn)行環(huán)境,如果是第一次執(zhí)行,只有程序計(jì)數(shù)器指針(PC)是有意義的,其他的運(yùn)行環(huán)境值(即CP[J寄存器值)沒有意義,將在運(yùn)行中被覆蓋掉。(3)任一時(shí)刻,僅可能有一個(gè)任務(wù)處于執(zhí)行態(tài),執(zhí)行態(tài)的任務(wù)可以被中斷信號(hào)中斷,從而將CPU使用權(quán)轉(zhuǎn)讓給中斷服務(wù)程序,此時(shí)有一個(gè)入棧操作,保存當(dāng)前任務(wù)的執(zhí)行環(huán)境,從而該任務(wù)進(jìn)入中斷態(tài)。所謂中斷信號(hào),是指定時(shí)器中斷、外部中斷等外設(shè)中斷輸入,當(dāng)某個(gè)中斷發(fā)生后,程序計(jì)數(shù)器指針(PC)將指向中斷向量表,從而跳轉(zhuǎn)到中斷服務(wù)程序。中斷服務(wù)程序(ISR)僅是一段代碼或一個(gè)函數(shù),可以實(shí)現(xiàn)實(shí)時(shí)性要求高的異步操作,中斷服務(wù)程序不是任務(wù)。(4)處于中斷態(tài)的任務(wù)相當(dāng)于一種特殊的就緒態(tài),當(dāng)中斷服務(wù)程序執(zhí)行完成后,系統(tǒng)會(huì)調(diào)度,從處于中斷態(tài)的任務(wù)和所有就緒態(tài)的任務(wù)中選擇優(yōu)先級(jí)最高的任務(wù)執(zhí)行。如果中斷態(tài)任務(wù)優(yōu)先級(jí)最高,當(dāng)然就會(huì)從中斷態(tài)恢復(fù)到執(zhí)行態(tài)了;如果有比中斷態(tài)任務(wù)優(yōu)先級(jí)高的就緒態(tài)任務(wù),則中斷態(tài)任務(wù)將進(jìn)入就緒態(tài)。(5)當(dāng)執(zhí)行態(tài)的任務(wù)運(yùn)行完畢后,CPU使用權(quán)會(huì)移交出去,此時(shí)有一個(gè)入棧操作,該任務(wù)將進(jìn)入到等待態(tài),即等待一定時(shí)間的延時(shí)或等待某個(gè)事件的發(fā)生。(6)等待態(tài)任務(wù)將不斷地請(qǐng)求某個(gè)事件或查詢延時(shí)情況,直到滿足其執(zhí)行條件后,才從等待態(tài)進(jìn)入到就緒態(tài)。任何一個(gè)任務(wù)都不是每時(shí)每刻地執(zhí)行著,都是按照一定的時(shí)鐘節(jié)律在執(zhí)行,理論上,總可以把一個(gè)整體的不間斷執(zhí)行的工作,分成這種節(jié)律性的任務(wù)來完成。例如在單CPU系統(tǒng)下,連續(xù)不斷地執(zhí)行一萬行代碼,某個(gè)時(shí)刻只可能有一條代碼在執(zhí)行,其他代碼在排隊(duì)等待中,因此,將代碼細(xì)分為小段后,各小段代碼看上去是有節(jié)律地交替執(zhí)行著,即可以被設(shè)計(jì)成任務(wù)。(7)就緒態(tài)、等待態(tài)和執(zhí)行態(tài)是任務(wù)的三個(gè)正常調(diào)度狀態(tài),當(dāng)任務(wù)仍然駐留在內(nèi)存中,但是已不再受系統(tǒng)調(diào)度時(shí),就進(jìn)入了休眠態(tài)。任務(wù)的休眠態(tài)和等待態(tài)是不同的,任務(wù)一旦進(jìn)入休眠態(tài),不會(huì)有堆棧操作,堆棧內(nèi)原有的運(yùn)行環(huán)境也沒有意義了。休眠態(tài)的任務(wù)可以再次啟動(dòng)進(jìn)入到就緒態(tài),這一過程和創(chuàng)建一個(gè)新的任務(wù)類似。由上所述,正常任務(wù)的切換都會(huì)伴隨著兩個(gè)堆棧操作,即放棄CPU占有權(quán)的任務(wù)入棧操作和獲得CPU使用權(quán)的任務(wù)出棧操作。因此,一個(gè)任務(wù)切換到另一個(gè)任務(wù),并不是一蹴而就的,而是中間需要有一些時(shí)間,這些必需的時(shí)間開銷實(shí)際上是任務(wù)執(zhí)行的額外開銷,即和任務(wù)執(zhí)行代碼無關(guān)的。由于這個(gè)原因,那些具有快速堆棧操作的CPU芯片在任務(wù)切換時(shí)效率更高,而且這部分開銷和嵌入式實(shí)時(shí)操作系統(tǒng)無關(guān),完全取決于硬件。因此,一般地,無論有多少個(gè)任務(wù),任務(wù)切換時(shí)間都是固定的。

編輯推薦

《嵌入式操作系統(tǒng)原理與面向任務(wù)程序設(shè)計(jì):基于μC/OS-Ⅱ v2.86和ARM920T》:嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)系列叢書

圖書封面

圖書標(biāo)簽Tags

評(píng)論、評(píng)分、閱讀與下載


    嵌入式操作系統(tǒng)原理與面向任務(wù)程序設(shè)計(jì) PDF格式下載


用戶評(píng)論 (總計(jì)2條)

 
 

  •   具體分析ucos-II,還可以。
  •   看目錄就知道,這本書今偏重于操作系統(tǒng)的介紹,而實(shí)例卻少得可憐。如果想學(xué)這個(gè)操作系統(tǒng),還不如看作者自己出的書,寫得更詳細(xì)!
 

250萬本中文圖書簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7