- VxWorks設(shè)備驅(qū)動(dòng)開發(fā)詳解
- 曹桂平等編著
- 130字
- 2019-01-09 15:53:23
第1篇 VxWorks操作系統(tǒng)快速入門篇
本篇共包括3章內(nèi)容,著重介紹VxWorks操作系統(tǒng)方面的相關(guān)知識(shí)。第1章從總體上介紹了嵌入式實(shí)時(shí)操作系統(tǒng)VxWorks的基本特點(diǎn)和應(yīng)用范圍。第2章則較為深入地對(duì)VxWorks操作系統(tǒng)的組成進(jìn)行了探討,包括VxWorks任務(wù)的基本結(jié)構(gòu)以及任務(wù)的實(shí)現(xiàn)方式,基于優(yōu)先級(jí)的搶占式內(nèi)核調(diào)度算法,以及任務(wù)間通信常用的幾種機(jī)制的內(nèi)在本質(zhì);其后對(duì)VxWorks下的內(nèi)存管理進(jìn)行了介紹,主要是對(duì)虛擬地址支持下內(nèi)核的一些關(guān)鍵結(jié)構(gòu)和相關(guān)文件進(jìn)行了說(shuō)明;本章最后討論了VxWorks下的中斷處理方式,即多層次的中斷轉(zhuǎn)移機(jī)制,并對(duì)“中斷上下文中為何不可調(diào)用可引起睡眠的函數(shù)”這個(gè)傳統(tǒng)問(wèn)題進(jìn)行了探討。第3章詳細(xì)介紹了VxWorks操作系統(tǒng)的啟動(dòng)過(guò)程,對(duì)VxWorks常用的兩種啟動(dòng)方式及各方式下操作系統(tǒng)的內(nèi)核構(gòu)成進(jìn)行了較為細(xì)致的講解;接著詳細(xì)分析了下載啟動(dòng)方式下必不可少的BootRom的構(gòu)成、編譯生成過(guò)程及其與VxWorks操作系統(tǒng)內(nèi)核之間的關(guān)系,這些內(nèi)容將消除很多VxWorks開發(fā)人員的疑點(diǎn);最后介紹了VxWorks BSP的文件構(gòu)成。
第1章 VxWorks嵌入式操作系統(tǒng)的特點(diǎn)與應(yīng)用
本章首先從嵌入式系統(tǒng)的定義、組成和特點(diǎn),以及發(fā)展趨勢(shì)三個(gè)方面簡(jiǎn)單地對(duì)嵌入式系統(tǒng)進(jìn)行了介紹,并對(duì)實(shí)時(shí)操作系統(tǒng)的特點(diǎn)進(jìn)行了說(shuō)明。接著從內(nèi)核結(jié)構(gòu)的角度介紹了微內(nèi)核和宏內(nèi)核結(jié)構(gòu)的區(qū)別。最后對(duì)微內(nèi)核嵌入式操作系統(tǒng)VxWorks的基本特點(diǎn)進(jìn)行了說(shuō)明。
1.1 嵌入式系統(tǒng)概述
1.1.1 嵌入式系統(tǒng)定義
嵌入式系統(tǒng)的定義有很多種,比較通用的定義為:以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁減,迎合特定的應(yīng)用環(huán)境,對(duì)功能、可靠性、成本、體積、功耗方面要求嚴(yán)格的專用計(jì)算機(jī)系統(tǒng)。
按照電氣和電子工程師學(xué)會(huì)(IEEE)的定義,嵌入式系統(tǒng)是用來(lái)控制、監(jiān)控或者輔助操作機(jī)器、裝置、工廠等大規(guī)模系統(tǒng)的設(shè)備(devices used to control,monitor,or assist the operation of equipment,machinery or plants)。這個(gè)定義主要是從嵌入式系統(tǒng)的用途方面來(lái)進(jìn)行定義的。
1.1.2 嵌入式系統(tǒng)組成和特點(diǎn)
根據(jù)以上嵌入式系統(tǒng)的定義,我們可以看出,嵌入式系統(tǒng)是由硬件和軟件相結(jié)合組成的具有特定功能、用于特定場(chǎng)合的獨(dú)立系統(tǒng)。其硬件主要由嵌入式微處理器、外圍硬件設(shè)備組成;其軟件主要包括底層系統(tǒng)軟件和用戶應(yīng)用軟件。嵌入式系統(tǒng)具有如下特點(diǎn)。
(1)專用、軟硬件可裁減可配置
從嵌入式系統(tǒng)的定義可以看出,嵌入式系統(tǒng)是面向應(yīng)用的,與通用系統(tǒng)最大的區(qū)別在于嵌入式系統(tǒng)的功能專一。根據(jù)這個(gè)特性,嵌入式系統(tǒng)的軟、硬件可以根據(jù)需要進(jìn)行精心設(shè)計(jì)、量體裁衣、去除冗余,以實(shí)現(xiàn)低成本、高性能。也正因如此,嵌入式系統(tǒng)采用的微處理器和外圍設(shè)備種類繁多,系統(tǒng)不具通用性。
(2)低功耗、高可靠性、高穩(wěn)定性
嵌入式系統(tǒng)大多用在特定場(chǎng)合,要么是環(huán)境條件惡劣,要么要求其長(zhǎng)時(shí)間連續(xù)運(yùn)轉(zhuǎn)。因此,嵌入式系統(tǒng)應(yīng)具有高可靠性、高穩(wěn)定性、低功耗等性能。
(3)軟件代碼短小精悍
由于成本和應(yīng)用場(chǎng)合的特殊性,嵌入式系統(tǒng)的硬件資源(如內(nèi)存等)通常都比較少,因此,對(duì)嵌入式系統(tǒng)的設(shè)計(jì)也提出了較高的要求。嵌入式系統(tǒng)的軟件設(shè)計(jì)尤其要求高質(zhì)量,要在有限的資源上實(shí)現(xiàn)高可靠性、高性能的系統(tǒng)。雖然隨著硬件技術(shù)的發(fā)展和成本的降低,在高端嵌入式產(chǎn)品上也開始采用嵌入式操作系統(tǒng),但其和PC資源比起來(lái)還是少得可憐。所以,嵌入式系統(tǒng)的軟件代碼依然要在保證性能的情況下,占用盡量少的資源,保證產(chǎn)品的高性價(jià)比,使其具有更強(qiáng)的競(jìng)爭(zhēng)力。
(4)代碼可固化
為了提高執(zhí)行速度和系統(tǒng)可靠性,嵌入式系統(tǒng)中的軟件一般都固化在存儲(chǔ)器芯片或單片機(jī)本身中,而不是存儲(chǔ)于磁盤中。
(5)實(shí)時(shí)性
很多采用嵌入式系統(tǒng)的應(yīng)用具有實(shí)時(shí)性要求,所以,大多數(shù)嵌入式系統(tǒng)采用實(shí)時(shí)性系統(tǒng)。需要注意的是,嵌入式系統(tǒng)不等于實(shí)時(shí)系統(tǒng)。
(6)弱交互性
嵌入式系統(tǒng)不僅功能強(qiáng)大,而且要求使用靈活、方便,一般不需要類似鍵盤、鼠標(biāo)等之類的工具。人機(jī)交互以簡(jiǎn)單方便為主。
(7)需要專門的開發(fā)工具和開發(fā)環(huán)境
嵌入式系統(tǒng)軟件開發(fā)通常需要專門的開發(fā)工具和開發(fā)環(huán)境。
(8)要求開發(fā)、設(shè)計(jì)人員有較高的技能
嵌入式系統(tǒng)是將先進(jìn)的計(jì)算機(jī)技術(shù)、半導(dǎo)體技術(shù)和電子技術(shù)與各個(gè)行業(yè)的具體應(yīng)用相結(jié)合后的產(chǎn)物。這一點(diǎn)就決定了它必然是一個(gè)技術(shù)密集、資金密集、高度分散、不斷創(chuàng)新的知識(shí)集成系統(tǒng),從事嵌入式系統(tǒng)開發(fā)的人才也必須是復(fù)合型人才。
1.1.3 嵌入式系統(tǒng)發(fā)展趨勢(shì)
未來(lái)嵌入式系統(tǒng)的發(fā)展趨勢(shì)主要有8個(gè)方面。
(1)小型化、智能化、網(wǎng)絡(luò)化、可視化
隨著技術(shù)水平的提高和人們生活的需要,嵌入式設(shè)備(尤其是消費(fèi)類產(chǎn)品)正朝著小型化、便攜式和智能化的方向發(fā)展。如果你攜帶筆記本電腦外出辦事,你肯定希望它輕薄小巧,甚至希望有一種更便攜的設(shè)備來(lái)替代它,目前的上網(wǎng)本、MID(移動(dòng)互聯(lián)網(wǎng)設(shè)備)、便攜式投影儀等都是因類似的需求而出現(xiàn)的。對(duì)嵌入式而言,可以說(shuō)是已經(jīng)進(jìn)入了嵌入式互聯(lián)網(wǎng)時(shí)代(有線網(wǎng)、無(wú)線網(wǎng)、廣域網(wǎng)、局域網(wǎng)的組合),嵌入式設(shè)備和互聯(lián)網(wǎng)的緊密結(jié)合,更為我們的日常生活帶來(lái)了極大的方便和無(wú)限的想象空間。嵌入式設(shè)備功能越來(lái)越強(qiáng)大,未來(lái)我們的冰箱、洗衣機(jī)等家用電器都將實(shí)現(xiàn)網(wǎng)上控制;異地通信、協(xié)同工作、無(wú)人操控場(chǎng)所、安全監(jiān)控場(chǎng)所等的可視化也已經(jīng)成為了現(xiàn)實(shí),隨著網(wǎng)絡(luò)運(yùn)載能力的提升,可視化將得到進(jìn)一步完善。人工智能、模式識(shí)別技術(shù)也將在嵌入式系統(tǒng)中得到應(yīng)用,使得嵌入式系統(tǒng)更具人性化、智能化。
(2)多核技術(shù)的應(yīng)用
人們需要處理的信息越來(lái)越多,這就要求嵌入式設(shè)備運(yùn)算能力更強(qiáng)。因此,需要設(shè)計(jì)出更強(qiáng)大的嵌入式處理器,多核技術(shù)處理器在嵌入式中的應(yīng)用將更普遍。
(3)低功耗(節(jié)能)、綠色環(huán)保
在嵌入式系統(tǒng)的硬件和軟件設(shè)計(jì)中都在追求更低的功耗,以求嵌入式系統(tǒng)能獲得更長(zhǎng)的、可靠的工作時(shí)間,如手機(jī)的通話和待機(jī)時(shí)間、MP3聽(tīng)音樂(lè)的時(shí)間等。同時(shí),綠色環(huán)保型嵌入式產(chǎn)品將更受人們青睞,在嵌入式系統(tǒng)設(shè)計(jì)中也會(huì)更多地考慮如輻射和靜電等問(wèn)題。
(4)云計(jì)算、可重構(gòu)、虛擬化等技術(shù)被進(jìn)一步應(yīng)用到嵌入式系統(tǒng)中
簡(jiǎn)單地講,云計(jì)算是將計(jì)算分布在大量的分布式計(jì)算機(jī)上,這樣我們只需要一個(gè)終端,就可以通過(guò)網(wǎng)絡(luò)服務(wù)來(lái)實(shí)現(xiàn)我們需要的計(jì)算任務(wù),甚至是超級(jí)計(jì)算任務(wù)。云計(jì)算(Cloud Computing)是分布式處理(Distributed Computing)、并行處理(Parallel Computing)和網(wǎng)格計(jì)算(Grid Computing)的發(fā)展,或者說(shuō)是這些計(jì)算機(jī)科學(xué)概念的商業(yè)實(shí)現(xiàn)。在未來(lái)幾年里,云計(jì)算將得到進(jìn)一步發(fā)展與應(yīng)用。
可重構(gòu)性是指在一個(gè)系統(tǒng)中,其硬件模塊或(和)軟件模塊均能根據(jù)變化的數(shù)據(jù)流或控制流對(duì)系統(tǒng)結(jié)構(gòu)和算法進(jìn)行重新配置(或重新設(shè)置)。可重構(gòu)系統(tǒng)最突出的優(yōu)點(diǎn)就是能夠根據(jù)不同的應(yīng)用需求,改變自身的體系結(jié)構(gòu),以便與具體的應(yīng)用需求相匹配。
虛擬化是指計(jì)算機(jī)軟件在一個(gè)虛擬的平臺(tái)上而不是真實(shí)的硬件上運(yùn)行。虛擬化技術(shù)可以簡(jiǎn)化軟件的重新配置過(guò)程,易于實(shí)現(xiàn)軟件的標(biāo)準(zhǔn)化。其中CPU的虛擬化可以單CPU模擬多CPU并行運(yùn)行,允許一個(gè)平臺(tái)同時(shí)運(yùn)行多個(gè)操作系統(tǒng),并且都可以在相互獨(dú)立的空間內(nèi)運(yùn)行而互不影響,從而提高工作效率和安全性,虛擬化技術(shù)是降低多內(nèi)核處理器系統(tǒng)開發(fā)成本的關(guān)鍵。虛擬化技術(shù)是未來(lái)幾年最值得期待和關(guān)注的關(guān)鍵技術(shù)之一。
隨著各種技術(shù)的成熟與在嵌入式系統(tǒng)中的應(yīng)用,將不斷為嵌入式系統(tǒng)增添新的魅力和發(fā)展空間。
(5)嵌入式軟件開發(fā)平臺(tái)化、標(biāo)準(zhǔn)化、系統(tǒng)可升級(jí),代碼可復(fù)用將更受重視
嵌入式操作系統(tǒng)將進(jìn)一步走向開放、開源、標(biāo)準(zhǔn)化和組件化。嵌入式軟件開發(fā)平臺(tái)化也將是今后的一個(gè)趨勢(shì),越來(lái)越多的嵌入式軟硬件行業(yè)標(biāo)準(zhǔn)將出現(xiàn),最終的目標(biāo)是使嵌入式軟件開發(fā)簡(jiǎn)單化,這也是一個(gè)必然規(guī)律。同時(shí)隨著系統(tǒng)復(fù)雜度的提高,系統(tǒng)可升級(jí)和代碼復(fù)用技術(shù)在嵌入式系統(tǒng)中得到更多的應(yīng)用。另外,因?yàn)榍度胧较到y(tǒng)采用的微處理器種類多,不夠標(biāo)準(zhǔn),所以在嵌入式軟件開發(fā)中將更多地使用跨平臺(tái)的軟件開發(fā)語(yǔ)言與工具。目前,Java語(yǔ)言正在被越來(lái)越多地使用到嵌入式軟件開發(fā)中。
(6)嵌入式系統(tǒng)軟件將逐漸PC化
需求和網(wǎng)絡(luò)技術(shù)的發(fā)展是嵌入式系統(tǒng)發(fā)展的一個(gè)原動(dòng)力,隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展,將進(jìn)一步促進(jìn)嵌入式系統(tǒng)軟件PC化。如前所述,結(jié)合跨平臺(tái)開發(fā)語(yǔ)言的廣泛應(yīng)用,未來(lái)的嵌入式軟件開發(fā)的概念將被逐漸淡化,也就是嵌入式軟件開發(fā)和非嵌入式軟件開發(fā)的區(qū)別將逐漸減小。
(7)融合趨勢(shì)
嵌入式系統(tǒng)軟硬件融合、產(chǎn)品功能融合、嵌入式設(shè)備和互聯(lián)網(wǎng)的融合趨勢(shì)加劇。嵌入式系統(tǒng)設(shè)計(jì)中軟硬件結(jié)合將更加緊密,軟件將是其核心。消費(fèi)類產(chǎn)品將在運(yùn)算能力和便攜方面進(jìn)一步融合。傳感器網(wǎng)絡(luò)將迅速發(fā)展,其將極大地促進(jìn)嵌入式技術(shù)和互聯(lián)網(wǎng)技術(shù)的融合。
(8)安全性
隨著嵌入式技術(shù)和互聯(lián)網(wǎng)技術(shù)的結(jié)合發(fā)展,嵌入式系統(tǒng)的信息安全問(wèn)題日益凸顯,保證信息安全也成了嵌入式系統(tǒng)開發(fā)的重點(diǎn)和難點(diǎn)。
1.1.4 實(shí)時(shí)操作系統(tǒng)
1.實(shí)時(shí)操作系統(tǒng)定義
實(shí)時(shí)操作系統(tǒng)(RTOS)是指當(dāng)外界事件或數(shù)據(jù)產(chǎn)生時(shí),能夠接收并以足夠快的速度予以處理,其處理的結(jié)果又能在規(guī)定的時(shí)間內(nèi)來(lái)控制生產(chǎn)過(guò)程或?qū)μ幚硐到y(tǒng)作出快速響應(yīng),并控制所有實(shí)時(shí)任務(wù)協(xié)調(diào)一致運(yùn)行的操作系統(tǒng)。因而,提供及時(shí)響應(yīng)和高可靠性是其主要特點(diǎn)。實(shí)時(shí)操作系統(tǒng)有硬實(shí)時(shí)和軟實(shí)時(shí)之分,硬實(shí)時(shí)要求在規(guī)定的時(shí)間內(nèi)必須完成操作,這是在操作系統(tǒng)設(shè)計(jì)時(shí)保證的;軟實(shí)時(shí)則只要按照任務(wù)的優(yōu)先級(jí),盡可能快地完成操作即可。我們通常使用的操作系統(tǒng)在經(jīng)過(guò)一定改變之后就可以變成實(shí)時(shí)操作系統(tǒng)。
實(shí)時(shí)操作系統(tǒng)是保證在一定時(shí)間限制內(nèi)完成特定功能的操作系統(tǒng)。例如,可以為確保生產(chǎn)線上的機(jī)器人能獲取某個(gè)物體而設(shè)計(jì)一個(gè)操作系統(tǒng)。在“硬”實(shí)時(shí)操作系統(tǒng)中,如果不能在允許的時(shí)間內(nèi)完成使物體可達(dá)的計(jì)算,操作系統(tǒng)將因錯(cuò)誤結(jié)束。在“軟”實(shí)時(shí)操作系統(tǒng)中,生產(chǎn)線仍然能繼續(xù)工作,但產(chǎn)品的輸出會(huì)因產(chǎn)品不能在允許時(shí)間內(nèi)到達(dá)而減慢,這使機(jī)器人有短暫的不生產(chǎn)現(xiàn)象。一些實(shí)時(shí)操作系統(tǒng)是為特定的應(yīng)用設(shè)計(jì)的,另一些是通用的。一些通用目的的操作系統(tǒng)稱為實(shí)時(shí)操作系統(tǒng)。但某種程度上,大部分通用目的的操作系統(tǒng)有實(shí)時(shí)系統(tǒng)的特征。這就是說(shuō),即使一個(gè)操作系統(tǒng)不是嚴(yán)格的實(shí)時(shí)系統(tǒng),它們也能解決一部分實(shí)時(shí)應(yīng)用的問(wèn)題。
2.實(shí)時(shí)操作系統(tǒng)的特征
實(shí)時(shí)操作系統(tǒng)具有以下特點(diǎn):
● 多任務(wù)。
● 有線程優(yōu)先級(jí)。
● 多種中斷級(jí)別。
小的嵌入式操作系統(tǒng)經(jīng)常需要實(shí)時(shí)操作系統(tǒng),內(nèi)核要滿足實(shí)時(shí)操作系統(tǒng)的要求。
3.實(shí)時(shí)操作系統(tǒng)的相關(guān)概念
(1)基本概念
代碼臨界段:指處理時(shí)不可分割的代碼。一旦這部分代碼開始執(zhí)行,則不允許中斷打擾。
資源:任何為任務(wù)所占用的實(shí)體。
共享資源:可以被一個(gè)以上任務(wù)使用的資源。
任務(wù):也稱為一個(gè)線程,是一個(gè)簡(jiǎn)單的程序。每個(gè)任務(wù)被賦予一定的優(yōu)先級(jí),有它自己的一套CPU寄存器和自己的棧空間。典型的是,每個(gè)任務(wù)都是一個(gè)無(wú)限的循環(huán),每個(gè)任務(wù)都處在以下五個(gè)狀態(tài):休眠態(tài)、就緒態(tài)、運(yùn)行態(tài)、掛起態(tài)、被中斷態(tài)。
任務(wù)切換:將正在運(yùn)行任務(wù)的當(dāng)前狀態(tài)(CPU寄存器中的全部?jī)?nèi)容)保存在任務(wù)自己的棧區(qū),然后把下一個(gè)將要運(yùn)行的任務(wù)的當(dāng)前狀態(tài)從該任務(wù)的棧中重新裝入CPU的寄存器,并開始下一個(gè)任務(wù)的運(yùn)行。
內(nèi)核:負(fù)責(zé)管理各個(gè)任務(wù),為每個(gè)任務(wù)分配CPU時(shí)間,并負(fù)責(zé)任務(wù)之間的通信。它分為不可剝奪型內(nèi)核和可剝奪型內(nèi)核。
調(diào)度:是內(nèi)核的主要職責(zé)之一,決定輪到哪個(gè)任務(wù)運(yùn)行。一般基于優(yōu)先級(jí)調(diào)度法。
(2)關(guān)于優(yōu)先級(jí)的問(wèn)題
任務(wù)優(yōu)先級(jí):分為優(yōu)先級(jí)不可改變的靜態(tài)優(yōu)先級(jí)和優(yōu)先級(jí)可改變的動(dòng)態(tài)優(yōu)先級(jí)。
優(yōu)先級(jí)反轉(zhuǎn):優(yōu)先級(jí)反轉(zhuǎn)問(wèn)題是實(shí)時(shí)系統(tǒng)中出現(xiàn)最多的問(wèn)題。共享資源的分配可導(dǎo)致優(yōu)先級(jí)低的任務(wù)先運(yùn)行,優(yōu)先級(jí)高的任務(wù)后運(yùn)行。解決的辦法是使用“優(yōu)先級(jí)繼承”算法來(lái)臨時(shí)改變?nèi)蝿?wù)優(yōu)先級(jí),以遏制優(yōu)先級(jí)反轉(zhuǎn)。
(3)互斥
雖然共享數(shù)據(jù)區(qū)簡(jiǎn)化了任務(wù)之間的信息交換,但是必須保證每個(gè)任務(wù)在處理共享數(shù)據(jù)時(shí)的排他性。使之滿足互斥條件的一般方法有:關(guān)中斷、使用測(cè)試并置位指令(TAS)、禁止做任務(wù)切換、利用信號(hào)量。
因?yàn)椴捎脤?shí)時(shí)操作系統(tǒng)的意義就在于能夠及時(shí)處理各種突發(fā)事件,即處理各種中斷,因而衡量嵌入式實(shí)時(shí)操作系統(tǒng)的最主要、最具有代表性的性能指標(biāo)參數(shù)無(wú)疑應(yīng)該是中斷響應(yīng)時(shí)間。中斷響應(yīng)時(shí)間通常被定義為:
中斷響應(yīng)時(shí)間=中斷延遲時(shí)間+保存CPU狀態(tài)的時(shí)間+該內(nèi)核的ISR進(jìn)入函數(shù)的執(zhí)行時(shí)間
中斷延遲時(shí)間=max(關(guān)中斷的最長(zhǎng)時(shí)間,最長(zhǎng)指令時(shí)間)+ 開始執(zhí)行ISR的第一條指令的時(shí)間
- 51單片機(jī)逆向?qū)W習(xí)實(shí)戰(zhàn)教程(電子設(shè)計(jì)與嵌入式開發(fā)實(shí)踐叢書)
- DSP技術(shù)與應(yīng)用實(shí)例
- 現(xiàn)代嵌入式系統(tǒng)開發(fā)專案實(shí)務(wù)
- 單片機(jī)原理與應(yīng)用:基于Keil+Proteus
- PIC單片機(jī)常用模塊與綜合系統(tǒng)設(shè)計(jì)實(shí)例精講
- 基于STM32的嵌入式系統(tǒng)設(shè)計(jì)與實(shí)踐
- 單片機(jī)原理與應(yīng)用技術(shù)
- 單片機(jī)技術(shù)及應(yīng)用(第2版)
- 單片機(jī)技術(shù)及應(yīng)用(C語(yǔ)言版)
- AVR單片機(jī)很簡(jiǎn)單:C語(yǔ)言快速入門及開發(fā)實(shí)例
- 基于Quartus II的FPGA/CPLD設(shè)計(jì)實(shí)例精解
- DIY玩轉(zhuǎn)51單片機(jī)
- GD32 MCU原理及固件庫(kù)開發(fā)指南
- 增強(qiáng)型單片機(jī)XC866原理及應(yīng)用
- 51單片機(jī)應(yīng)用基礎(chǔ)(C51版)