官术网_书友最值得收藏!

第1篇 VxWorks操作系統快速入門篇

本篇共包括3章內容,著重介紹VxWorks操作系統方面的相關知識。第1章從總體上介紹了嵌入式實時操作系統VxWorks的基本特點和應用范圍。第2章則較為深入地對VxWorks操作系統的組成進行了探討,包括VxWorks任務的基本結構以及任務的實現方式,基于優先級的搶占式內核調度算法,以及任務間通信常用的幾種機制的內在本質;其后對VxWorks下的內存管理進行了介紹,主要是對虛擬地址支持下內核的一些關鍵結構和相關文件進行了說明;本章最后討論了VxWorks下的中斷處理方式,即多層次的中斷轉移機制,并對“中斷上下文中為何不可調用可引起睡眠的函數”這個傳統問題進行了探討。第3章詳細介紹了VxWorks操作系統的啟動過程,對VxWorks常用的兩種啟動方式及各方式下操作系統的內核構成進行了較為細致的講解;接著詳細分析了下載啟動方式下必不可少的BootRom的構成、編譯生成過程及其與VxWorks操作系統內核之間的關系,這些內容將消除很多VxWorks開發人員的疑點;最后介紹了VxWorks BSP的文件構成。

第1章 VxWorks嵌入式操作系統的特點與應用

本章首先從嵌入式系統的定義、組成和特點,以及發展趨勢三個方面簡單地對嵌入式系統進行了介紹,并對實時操作系統的特點進行了說明。接著從內核結構的角度介紹了微內核和宏內核結構的區別。最后對微內核嵌入式操作系統VxWorks的基本特點進行了說明。

1.1 嵌入式系統概述

1.1.1 嵌入式系統定義

嵌入式系統的定義有很多種,比較通用的定義為:以應用為中心,以計算機技術為基礎,軟硬件可裁減,迎合特定的應用環境,對功能、可靠性、成本、體積、功耗方面要求嚴格的專用計算機系統。

按照電氣和電子工程師學會(IEEE)的定義,嵌入式系統是用來控制、監控或者輔助操作機器、裝置、工廠等大規模系統的設備(devices used to control,monitor,or assist the operation of equipment,machinery or plants)。這個定義主要是從嵌入式系統的用途方面來進行定義的。

1.1.2 嵌入式系統組成和特點

根據以上嵌入式系統的定義,我們可以看出,嵌入式系統是由硬件和軟件相結合組成的具有特定功能、用于特定場合的獨立系統。其硬件主要由嵌入式微處理器、外圍硬件設備組成;其軟件主要包括底層系統軟件和用戶應用軟件。嵌入式系統具有如下特點。

(1)專用、軟硬件可裁減可配置

從嵌入式系統的定義可以看出,嵌入式系統是面向應用的,與通用系統最大的區別在于嵌入式系統的功能專一。根據這個特性,嵌入式系統的軟、硬件可以根據需要進行精心設計、量體裁衣、去除冗余,以實現低成本、高性能。也正因如此,嵌入式系統采用的微處理器和外圍設備種類繁多,系統不具通用性。

(2)低功耗、高可靠性、高穩定性

嵌入式系統大多用在特定場合,要么是環境條件惡劣,要么要求其長時間連續運轉。因此,嵌入式系統應具有高可靠性、高穩定性、低功耗等性能。

(3)軟件代碼短小精悍

由于成本和應用場合的特殊性,嵌入式系統的硬件資源(如內存等)通常都比較少,因此,對嵌入式系統的設計也提出了較高的要求。嵌入式系統的軟件設計尤其要求高質量,要在有限的資源上實現高可靠性、高性能的系統。雖然隨著硬件技術的發展和成本的降低,在高端嵌入式產品上也開始采用嵌入式操作系統,但其和PC資源比起來還是少得可憐。所以,嵌入式系統的軟件代碼依然要在保證性能的情況下,占用盡量少的資源,保證產品的高性價比,使其具有更強的競爭力。

(4)代碼可固化

為了提高執行速度和系統可靠性,嵌入式系統中的軟件一般都固化在存儲器芯片或單片機本身中,而不是存儲于磁盤中。

(5)實時性

很多采用嵌入式系統的應用具有實時性要求,所以,大多數嵌入式系統采用實時性系統。需要注意的是,嵌入式系統不等于實時系統。

(6)弱交互性

嵌入式系統不僅功能強大,而且要求使用靈活、方便,一般不需要類似鍵盤、鼠標等之類的工具。人機交互以簡單方便為主。

(7)需要專門的開發工具和開發環境

嵌入式系統軟件開發通常需要專門的開發工具和開發環境。

(8)要求開發、設計人員有較高的技能

嵌入式系統是將先進的計算機技術、半導體技術和電子技術與各個行業的具體應用相結合后的產物。這一點就決定了它必然是一個技術密集、資金密集、高度分散、不斷創新的知識集成系統,從事嵌入式系統開發的人才也必須是復合型人才。

1.1.3 嵌入式系統發展趨勢

未來嵌入式系統的發展趨勢主要有8個方面。

(1)小型化、智能化、網絡化、可視化

隨著技術水平的提高和人們生活的需要,嵌入式設備(尤其是消費類產品)正朝著小型化、便攜式和智能化的方向發展。如果你攜帶筆記本電腦外出辦事,你肯定希望它輕薄小巧,甚至希望有一種更便攜的設備來替代它,目前的上網本、MID(移動互聯網設備)、便攜式投影儀等都是因類似的需求而出現的。對嵌入式而言,可以說是已經進入了嵌入式互聯網時代(有線網、無線網、廣域網、局域網的組合),嵌入式設備和互聯網的緊密結合,更為我們的日常生活帶來了極大的方便和無限的想象空間。嵌入式設備功能越來越強大,未來我們的冰箱、洗衣機等家用電器都將實現網上控制;異地通信、協同工作、無人操控場所、安全監控場所等的可視化也已經成為了現實,隨著網絡運載能力的提升,可視化將得到進一步完善。人工智能、模式識別技術也將在嵌入式系統中得到應用,使得嵌入式系統更具人性化、智能化。

(2)多核技術的應用

人們需要處理的信息越來越多,這就要求嵌入式設備運算能力更強。因此,需要設計出更強大的嵌入式處理器,多核技術處理器在嵌入式中的應用將更普遍。

(3)低功耗(節能)、綠色環保

在嵌入式系統的硬件和軟件設計中都在追求更低的功耗,以求嵌入式系統能獲得更長的、可靠的工作時間,如手機的通話和待機時間、MP3聽音樂的時間等。同時,綠色環保型嵌入式產品將更受人們青睞,在嵌入式系統設計中也會更多地考慮如輻射和靜電等問題。

(4)云計算、可重構、虛擬化等技術被進一步應用到嵌入式系統中

簡單地講,云計算是將計算分布在大量的分布式計算機上,這樣我們只需要一個終端,就可以通過網絡服務來實現我們需要的計算任務,甚至是超級計算任務。云計算(Cloud Computing)是分布式處理(Distributed Computing)、并行處理(Parallel Computing)和網格計算(Grid Computing)的發展,或者說是這些計算機科學概念的商業實現。在未來幾年里,云計算將得到進一步發展與應用。

可重構性是指在一個系統中,其硬件模塊或(和)軟件模塊均能根據變化的數據流或控制流對系統結構和算法進行重新配置(或重新設置)??芍貥嬒到y最突出的優點就是能夠根據不同的應用需求,改變自身的體系結構,以便與具體的應用需求相匹配。

虛擬化是指計算機軟件在一個虛擬的平臺上而不是真實的硬件上運行。虛擬化技術可以簡化軟件的重新配置過程,易于實現軟件的標準化。其中CPU的虛擬化可以單CPU模擬多CPU并行運行,允許一個平臺同時運行多個操作系統,并且都可以在相互獨立的空間內運行而互不影響,從而提高工作效率和安全性,虛擬化技術是降低多內核處理器系統開發成本的關鍵。虛擬化技術是未來幾年最值得期待和關注的關鍵技術之一。

隨著各種技術的成熟與在嵌入式系統中的應用,將不斷為嵌入式系統增添新的魅力和發展空間。

(5)嵌入式軟件開發平臺化、標準化、系統可升級,代碼可復用將更受重視

嵌入式操作系統將進一步走向開放、開源、標準化和組件化。嵌入式軟件開發平臺化也將是今后的一個趨勢,越來越多的嵌入式軟硬件行業標準將出現,最終的目標是使嵌入式軟件開發簡單化,這也是一個必然規律。同時隨著系統復雜度的提高,系統可升級和代碼復用技術在嵌入式系統中得到更多的應用。另外,因為嵌入式系統采用的微處理器種類多,不夠標準,所以在嵌入式軟件開發中將更多地使用跨平臺的軟件開發語言與工具。目前,Java語言正在被越來越多地使用到嵌入式軟件開發中。

(6)嵌入式系統軟件將逐漸PC化

需求和網絡技術的發展是嵌入式系統發展的一個原動力,隨著移動互聯網的發展,將進一步促進嵌入式系統軟件PC化。如前所述,結合跨平臺開發語言的廣泛應用,未來的嵌入式軟件開發的概念將被逐漸淡化,也就是嵌入式軟件開發和非嵌入式軟件開發的區別將逐漸減小。

(7)融合趨勢

嵌入式系統軟硬件融合、產品功能融合、嵌入式設備和互聯網的融合趨勢加劇。嵌入式系統設計中軟硬件結合將更加緊密,軟件將是其核心。消費類產品將在運算能力和便攜方面進一步融合。傳感器網絡將迅速發展,其將極大地促進嵌入式技術和互聯網技術的融合。

(8)安全性

隨著嵌入式技術和互聯網技術的結合發展,嵌入式系統的信息安全問題日益凸顯,保證信息安全也成了嵌入式系統開發的重點和難點。

1.1.4 實時操作系統

1.實時操作系統定義

實時操作系統(RTOS)是指當外界事件或數據產生時,能夠接收并以足夠快的速度予以處理,其處理的結果又能在規定的時間內來控制生產過程或對處理系統作出快速響應,并控制所有實時任務協調一致運行的操作系統。因而,提供及時響應和高可靠性是其主要特點。實時操作系統有硬實時和軟實時之分,硬實時要求在規定的時間內必須完成操作,這是在操作系統設計時保證的;軟實時則只要按照任務的優先級,盡可能快地完成操作即可。我們通常使用的操作系統在經過一定改變之后就可以變成實時操作系統。

實時操作系統是保證在一定時間限制內完成特定功能的操作系統。例如,可以為確保生產線上的機器人能獲取某個物體而設計一個操作系統。在“硬”實時操作系統中,如果不能在允許的時間內完成使物體可達的計算,操作系統將因錯誤結束。在“軟”實時操作系統中,生產線仍然能繼續工作,但產品的輸出會因產品不能在允許時間內到達而減慢,這使機器人有短暫的不生產現象。一些實時操作系統是為特定的應用設計的,另一些是通用的。一些通用目的的操作系統稱為實時操作系統。但某種程度上,大部分通用目的的操作系統有實時系統的特征。這就是說,即使一個操作系統不是嚴格的實時系統,它們也能解決一部分實時應用的問題。

2.實時操作系統的特征

實時操作系統具有以下特點:

● 多任務。

● 有線程優先級。

● 多種中斷級別。

小的嵌入式操作系統經常需要實時操作系統,內核要滿足實時操作系統的要求。

3.實時操作系統的相關概念

(1)基本概念

代碼臨界段:指處理時不可分割的代碼。一旦這部分代碼開始執行,則不允許中斷打擾。

資源:任何為任務所占用的實體。

共享資源:可以被一個以上任務使用的資源。

任務:也稱為一個線程,是一個簡單的程序。每個任務被賦予一定的優先級,有它自己的一套CPU寄存器和自己的??臻g。典型的是,每個任務都是一個無限的循環,每個任務都處在以下五個狀態:休眠態、就緒態、運行態、掛起態、被中斷態。

任務切換:將正在運行任務的當前狀態(CPU寄存器中的全部內容)保存在任務自己的棧區,然后把下一個將要運行的任務的當前狀態從該任務的棧中重新裝入CPU的寄存器,并開始下一個任務的運行。

內核:負責管理各個任務,為每個任務分配CPU時間,并負責任務之間的通信。它分為不可剝奪型內核和可剝奪型內核。

調度:是內核的主要職責之一,決定輪到哪個任務運行。一般基于優先級調度法。

(2)關于優先級的問題

任務優先級:分為優先級不可改變的靜態優先級和優先級可改變的動態優先級。

優先級反轉:優先級反轉問題是實時系統中出現最多的問題。共享資源的分配可導致優先級低的任務先運行,優先級高的任務后運行。解決的辦法是使用“優先級繼承”算法來臨時改變任務優先級,以遏制優先級反轉。

(3)互斥

雖然共享數據區簡化了任務之間的信息交換,但是必須保證每個任務在處理共享數據時的排他性。使之滿足互斥條件的一般方法有:關中斷、使用測試并置位指令(TAS)、禁止做任務切換、利用信號量。

因為采用實時操作系統的意義就在于能夠及時處理各種突發事件,即處理各種中斷,因而衡量嵌入式實時操作系統的最主要、最具有代表性的性能指標參數無疑應該是中斷響應時間。中斷響應時間通常被定義為:

中斷響應時間=中斷延遲時間+保存CPU狀態的時間+該內核的ISR進入函數的執行時間

中斷延遲時間=max(關中斷的最長時間,最長指令時間)+ 開始執行ISR的第一條指令的時間

主站蜘蛛池模板: 南涧| 丽江市| 柳江县| 昆山市| 秀山| 额尔古纳市| 曲阳县| 南溪县| 枣庄市| 武川县| 蒙自县| 太白县| 怀仁县| 平昌县| 宝丰县| 南充市| 柘荣县| 黑龙江省| 旌德县| 罗定市| 隆安县| 平度市| 启东市| 如皋市| 左贡县| 龙陵县| 剑河县| 石屏县| 县级市| 孝感市| 遂宁市| 萨嘎县| 凤凰县| 阳高县| 东港市| 中江县| 女性| 安陆市| 邯郸县| 昌宁县| 密云县|