出版時間:2011-3 出版社:電子工業(yè)出版社 作者:曹桂平 等編著 頁數(shù):409 字?jǐn)?shù):672000
Tag標(biāo)簽:無
內(nèi)容概要
本書結(jié)合作者實際的開發(fā)經(jīng)驗,對VxWorks操作系統(tǒng)內(nèi)部的機制及其各類設(shè)備驅(qū)動的開發(fā)進行了深入的講解和分析。全書分3篇共11章,第1篇對VxWorks操作系統(tǒng)的主要組件如任務(wù)、任務(wù)調(diào)度、任務(wù)間通信、內(nèi)存管理、中斷處理進行了較為細致的分析;其后對很多VxWorks開發(fā)者不甚了解的VxWorks內(nèi)核映像類型以及啟動方式和流程進行了詳細的說明和解析。第2篇是驅(qū)動開發(fā)的準(zhǔn)備階段,著重介紹了VxWorks系統(tǒng)下設(shè)備驅(qū)動的內(nèi)核層次結(jié)構(gòu)。第3篇作為本書的重點,每章對應(yīng)一類驅(qū)動,結(jié)合開發(fā)實例,詳細而完整地分析了VxWorks下普通字符設(shè)備驅(qū)動、串口驅(qū)動、普通塊設(shè)備驅(qū)動、Flash設(shè)備驅(qū)動、網(wǎng)絡(luò)設(shè)備驅(qū)動以及USB設(shè)備驅(qū)動的設(shè)計和實現(xiàn)。
讀者對象:本書面向廣大工程技術(shù)工作者,既可作為高等院校教師和相關(guān)專業(yè)學(xué)生的教材,又可作為各類培訓(xùn)班的培訓(xùn)教程。
書籍目錄
第1篇 VxWorks操作系統(tǒng)快速入門篇
第1章 VxWorks嵌入式操作系統(tǒng)的特點與應(yīng)用
1.1 嵌入式系統(tǒng)概述
1.1.1 嵌入式系統(tǒng)定義
1.1.2 嵌入式系統(tǒng)組成和特點
1.1.3 嵌入式系統(tǒng)發(fā)展趨勢
1.1.4 實時操作系統(tǒng)
1.2 VxWorks操作系統(tǒng)基本特點
1.2.1 操作系統(tǒng)內(nèi)核結(jié)構(gòu)——微內(nèi)核和宏內(nèi)核
1.2.2 VxWorks內(nèi)核——高性能的微內(nèi)核設(shè)計
1.2.3 VxWorks開發(fā)支持——可裁減的運行軟件
1.2.4 VxWorks網(wǎng)絡(luò)支持——綜合的網(wǎng)絡(luò)工具
1.2.5 VxWorks移植性支持
1.2.6 VxWorks操作系統(tǒng)選件
? 1.3 VxWorks操作系統(tǒng)應(yīng)用范圍
1.4 本章小結(jié)
第2章 VxWorks操作系統(tǒng)的基本組件
2.1 VxWorks任務(wù)
2.1.1 內(nèi)核實現(xiàn)基本原理
2.1.2 任務(wù)操作函數(shù)
2.1.3 深入了解任務(wù)棧
2.1.4 任務(wù)名長度問題
2.1.5 正確結(jié)束任務(wù)
2.1.6 任務(wù)的鉤子函數(shù)——黑客機制
2.1.7 任務(wù)小結(jié)
2.2 VxWorks任務(wù)調(diào)度算法——基于優(yōu)先級的搶占式調(diào)度
2.3 VxWorks任務(wù)間通信策略
2.3.1 信號量
2.3.2 消息隊列
2.3.3 管道
2.3.4 網(wǎng)絡(luò)套接字Socket
2.3.5 任務(wù)間通信的特殊機制:信號
2.4 VxWorks內(nèi)存管理——虛擬地址空間支持
2.5 VxWorks中斷處理——多層次的中斷轉(zhuǎn)移
2.5.1 VxWorks下中斷轉(zhuǎn)移過程詳解(基于ARM平臺)
2.5.2 中斷上下文中為何不可調(diào)用可引起睡眠的函數(shù)
2.6 本章小結(jié)
第3章 VxWorks操作系統(tǒng)啟動過程詳解
3.1 VxWorks操作系統(tǒng)啟動
3.1.1 VxWorks基本啟動方式
3.1.2 VxWorks操作系統(tǒng)內(nèi)存布局
3.1.3 下載型啟動方式概述
3.1.4 ROM型啟動方式概述
3.2 深入理解bootrom——下載啟動方式下的“瑞士軍刀”
3.2.1 bootrom的構(gòu)成
3.2.2 bootrom腳本的創(chuàng)建
3.2.3 腳本運行過程分析
3.2.4 bootrom的重定位
3.2.5 RAM中運行的bootrom代碼
3.2.6 在bootrom中添加用戶代碼
3.2.7 其他注意事項及說明
3.3 深入VxWorks啟動過程
3.3.1 ROM型映像早期啟動流程詳解
3.3.2 下載型映像早期啟動流程詳解
3.3.3 公共啟動流程詳解
3.4 VxWorks BSP文件組成
3.4.1 源文件
3.4.2 頭文件
3.4.3 Makefile文件
3.4.4 擴展文件
3.4.5 說明文件
3.5 本章小結(jié)
第2篇 VxWorks設(shè)備驅(qū)動起步篇
第3篇 VxWorks之六大核心設(shè)備驅(qū)動
參考文獻
章節(jié)摘錄
信號量的底層實現(xiàn)可以簡單地看做是一個內(nèi)核維護的全局變量,對于用于互斥機制的信號量,這個內(nèi)核全局變量初始化為1,當(dāng)一個任務(wù)需要訪問該信號量保護的資源時,其首先檢查這個內(nèi)核全局變量的值是否為1,如非1,則表示已存在其他任務(wù)在使用資源,就等待;如為1,表示資源當(dāng)前可被訪問,則這個任務(wù)首先將這個內(nèi)核全局變量的值設(shè)置為0,阻止其他任務(wù)的訪問,而自身就可以安全地使用該資源。此處的一個漏洞是,在當(dāng)前任務(wù)修改內(nèi)核全局變量的同時,另一個任務(wù)可能同時在檢查這個全局變量的值,很可能造成另一個任務(wù)檢查到全局變量值為1后,當(dāng)前任務(wù)才完成全局變量0值的設(shè)置,此時就有兩個任務(wù)在使用資源,造成內(nèi)核狀態(tài)的不一致,極端情況下,將造成整個系統(tǒng)的崩潰。內(nèi)核對這種情況進行了特殊處理,一般是將變量的改變操作作為一個原子操作(如x86下提供的Lock指令)完成。這也是內(nèi)核提供的任務(wù)間通信機制和用戶層任務(wù)間通信機制的根本區(qū)別:內(nèi)核提供的機制已經(jīng)從根本上保證了足夠的安全性?! 』诟鞣N資源不同的使用方式,VxWorks信號量機制具體提供了三種信號量:通用信號量、互斥信號量、資源計數(shù)信號量。通用信號量既可用于同步,也可用于資源計數(shù),此時資源數(shù)通常為1(當(dāng)資源數(shù)為1時,也可以稱之為互斥)?;コ庑盘柫酷槍υ谑褂眠^程中的一些具體問題(如優(yōu)先級反轉(zhuǎn))做了優(yōu)化,更好地服務(wù)于任務(wù)間互斥需求;資源計數(shù)信號量用于資源數(shù)較多,同時可供多個任務(wù)使用的場合。 2.3.2 消息隊列 消息隊列內(nèi)核實現(xiàn)上實際是一個結(jié)構(gòu)數(shù)組,數(shù)組大小和數(shù)組中元素的容量在創(chuàng)建消息隊列時被確定。在創(chuàng)建消息隊列時指定的另外一個參數(shù)是消息隊列滿時任務(wù)等待基于的策略:FIFO或者優(yōu)先級排序。消息隊列是VxWorks內(nèi)核提供的任務(wù)間傳遞較多信息的一種機制,不過這種機制存在很大的局限性,即每個消息的最大長度是固定的。當(dāng)然,在這個最大長度范圍內(nèi)從用戶層而言是可變的,但是對于內(nèi)核維護而言,所有的消息都具有相同的長度,因為無論實際消息的長度如何,內(nèi)核都將按最大長度分配內(nèi)存空間。當(dāng)然,如果對每個消息都采用動態(tài)內(nèi)存分配方式,可以消除最大長度限制,但是這并不是VxWorks提供的消息機制。VxWorks內(nèi)核提供的消息機制在創(chuàng)建消息隊列時就必須指定單個消息的最大長度以及消息的數(shù)量,在消息隊列成功創(chuàng)建后,這些參數(shù)都是固定不變的。我們可以如此想象內(nèi)核對于消息隊列的實現(xiàn),在消息隊列創(chuàng)建之時,內(nèi)核分配一個大小為單個消息最大長度與消息數(shù)量乘積的內(nèi)存區(qū)域,可以將此看做是一個數(shù)組,數(shù)據(jù)元素個數(shù)為消息數(shù)量,每個元素的大小為單個消息最大長度。 當(dāng)用戶發(fā)送一個消息時,內(nèi)核將消息內(nèi)容存入數(shù)組中下一個空閑元素中,用戶讀取消息時,將讀取數(shù)組中下一個非空元素,底層基本實現(xiàn)為一個環(huán)形緩沖區(qū)。VxWorks最多只區(qū)分兩個優(yōu)先級的消息,對于高優(yōu)先級的消息將從數(shù)組開始處存儲,對于普通優(yōu)先級的消息將從數(shù)組尾部開始存儲,而讀取時從數(shù)組頭部開始讀取,從而保證高優(yōu)先級的消息優(yōu)先被傳遞?! ‘?dāng)然,以上只是一種簡單的類比,有助于讀者理解VxWorks內(nèi)核對于消息隊列的實現(xiàn)?! ?/pre>編輯推薦
華清遠見嵌入式培訓(xùn)中心成立于2004年,作為中國嵌入式培訓(xùn)的領(lǐng)導(dǎo)者,ARM、微軟、谷歌、紅帽等權(quán)威知名企業(yè)授權(quán)培訓(xùn)中心,七年培訓(xùn)的學(xué)員數(shù)量已突破一萬八千名。憑借多年的專注和努力,該培訓(xùn)中心先后兩次蟬聯(lián)2008-2010“中國本土嵌入式系統(tǒng)十佳企業(yè)”,并榮獲“微軟嵌入式合作伙伴卓越獎”,工信部頒發(fā)的“中國嵌入式人才服務(wù)特別獎”,中國計算機行業(yè)協(xié)會“中國IT產(chǎn)業(yè)最具影響力教育機構(gòu)金獎”、“中國計算機行業(yè)發(fā)展成就·最具社會責(zé)任獎”等榮譽。圖書封面
圖書標(biāo)簽Tags
無評論、評分、閱讀與下載
VxWorks設(shè)備驅(qū)動開發(fā)詳解 PDF格式下載