2011年計算機軟件水平考試嵌入式系統(tǒng)設(shè)計師輔導(dǎo)筆記(共28頁)_第1頁
2011年計算機軟件水平考試嵌入式系統(tǒng)設(shè)計師輔導(dǎo)筆記(共28頁)_第2頁
2011年計算機軟件水平考試嵌入式系統(tǒng)設(shè)計師輔導(dǎo)筆記(共28頁)_第3頁
2011年計算機軟件水平考試嵌入式系統(tǒng)設(shè)計師輔導(dǎo)筆記(共28頁)_第4頁
2011年計算機軟件水平考試嵌入式系統(tǒng)設(shè)計師輔導(dǎo)筆記(共28頁)_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上2011年計算機軟件水平考試嵌入式系統(tǒng)設(shè)計師輔導(dǎo)筆記(一)1、嵌入式系統(tǒng)的定義(1)定義:以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ),軟硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統(tǒng)。(2)嵌入式系統(tǒng)發(fā)展的4 個階段:無操作系統(tǒng)階段、簡單操作系統(tǒng)階段、實時操作系統(tǒng)階段、面向Internet 階段。(3)知識產(chǎn)權(quán)核(IP 核):具有知識產(chǎn)權(quán)的、功能具體、接口規(guī)范、可在多個集成電路設(shè)計中重復(fù)使用的功能模塊,是實現(xiàn)系統(tǒng)芯片(SOC)的基本構(gòu)件。(4)IP 核模塊有行為、結(jié)構(gòu)和物理3 級不同程度的設(shè)計,對應(yīng)描述功能行為的不同可以分為三類:軟核、固核、硬

2、核。2、嵌入式系統(tǒng)的組成:硬件層、中間層、系統(tǒng)軟件層和應(yīng)用軟件層(1)硬件層:嵌入式微處理器、存儲器、通用設(shè)備接口和I/O 接口。嵌入式核心模塊=微處理器+電源電路+時鐘電路+存儲器Cache:位于主存和嵌入式微處理器內(nèi)核之間,存放的是最近一段時間微處理器使用最多的程序代碼和數(shù)據(jù)。它的主要目標是減小存儲器給微處理器內(nèi)核造成的存儲器訪問瓶頸,使處理速度更快。(2)中間層(也稱為硬件抽象層HAL 或者板級支持包BSP):它將系統(tǒng)上層軟件和底層硬件分離開來,使系統(tǒng)上層軟件開發(fā)人員無需關(guān)系底層硬件的具體情況,根據(jù)BSP 層提供的接口開發(fā)即可。BSP 有兩個特點:硬件相關(guān)性和操作系統(tǒng)相關(guān)性。設(shè)計一個完整

3、的BSP 需要完成兩部分工作:A、嵌入式系統(tǒng)的硬件初始化和BSP 功能。片級初始化:純硬件的初始化過程,把嵌入式微處理器從上電的默認狀態(tài)逐步設(shè)置成系統(tǒng)所要求的工作狀態(tài)。板級初始化:包含軟硬件兩部分在內(nèi)的初始化過程,為隨后的系統(tǒng)初始化和應(yīng)用程序建立硬件和軟件的運行環(huán)境。系統(tǒng)級初始化:以軟件為主的初始化過程,進行操作系統(tǒng)的初始化。B、設(shè)計硬件相關(guān)的設(shè)備驅(qū)動。(3)系統(tǒng)軟件層:由RTOS、文件系統(tǒng)、GUI、網(wǎng)絡(luò)系統(tǒng)及通用組件模塊組成。RTOS 是嵌入式應(yīng)用軟件的基礎(chǔ)和開發(fā)平臺。(4)應(yīng)用軟件:由基于實時系統(tǒng)開發(fā)的應(yīng)用程序組成。3、實時系統(tǒng)(1)定義:能在指定或確定的時間內(nèi)完成系統(tǒng)功能和對外部或內(nèi)部、

4、同步或異步時間做出響應(yīng)的系統(tǒng)。(2)區(qū)別:通用系統(tǒng)一般追求的是系統(tǒng)的平均響應(yīng)時間和用戶的使用方便;而實時系統(tǒng)主要考慮的是在最壞情況下的系統(tǒng)行為。(3)特點:時間約束性、可預(yù)測性、可靠性、與外部環(huán)境的交互性。(4)硬實時(強實時):指應(yīng)用的時間需求應(yīng)能夠得到完全滿足,否則就造成重大安全事故,甚至造成重大的生命財產(chǎn)損失和生態(tài)破壞,如:航天、軍事。(5)軟實時(弱實時):指某些應(yīng)用雖然提出了時間的要求,但實時任務(wù)偶爾違反這種需求對系統(tǒng)運行及環(huán)境不會造成嚴重影響,如:監(jiān)控系統(tǒng)、實時信息采集系統(tǒng)。(6)任務(wù)的約束包括:時間約束、資源約束、執(zhí)行順序約束和性能約束。4、實時系統(tǒng)的調(diào)度(1)調(diào)度:給定一組實時

5、任務(wù)和系統(tǒng)資源,確定每個任務(wù)何時何地執(zhí)行的整個過程。(2)搶占式調(diào)度:通常是優(yōu)先級驅(qū)動的調(diào)度,如uCOS。優(yōu)點是實時性好、反應(yīng)快,調(diào)度算法相對簡單,可以保證高優(yōu)先級任務(wù)的時間約束;缺點是上下文切換多。(3)非搶占式調(diào)度:通常是按時間片分配的調(diào)度,不允許任務(wù)在執(zhí)行期間被中斷,任務(wù)一旦占用處理器就必須執(zhí)行完畢或自愿放棄,如WinCE。優(yōu)點是上下文切換少;缺點是處理器有效資源利用率低,可調(diào)度性不好。(4)靜態(tài)表驅(qū)動策略:系統(tǒng)在運行前根據(jù)各任務(wù)的時間約束及關(guān)聯(lián)關(guān)系,采用某種搜索策略生成一張運行時刻表,指明各任務(wù)的起始運行時刻及運行時間。(5)優(yōu)先級驅(qū)動策略:按照任務(wù)優(yōu)先級的高低確定任務(wù)的執(zhí)行順序。(6

6、)實時任務(wù)分類:周期任務(wù)、偶發(fā)任務(wù)、非周期任務(wù)。(7)實時系統(tǒng)的通用結(jié)構(gòu)模型:數(shù)據(jù)采集任務(wù)實現(xiàn)傳感器數(shù)據(jù)的采集,數(shù)據(jù)處理任務(wù)處理采集的數(shù)據(jù)、并將加工后的數(shù)據(jù)送到執(zhí)行機構(gòu)管理任務(wù)控制機構(gòu)執(zhí)行。5、嵌入式微處理器體系結(jié)構(gòu)(1)馮諾依曼結(jié)構(gòu):程序和數(shù)據(jù)共用一個存儲空間,程序指令存儲地址和數(shù)據(jù)存儲地址指向同一個存儲器的不同物理位置,采用單一的地址及數(shù)據(jù)總線,程序和數(shù)據(jù)的寬度相同。例如:8086、ARM7、MIPS(2)哈佛結(jié)構(gòu):程序和數(shù)據(jù)是兩個相互獨立的存儲器,每個存儲器獨立編址、獨立訪問,是一種將程序存儲和數(shù)據(jù)存儲分開的存儲器結(jié)構(gòu)。例如:AVR、ARM9、ARM10(3)CISC 與RISC 的特點

7、比較(參照教程22 頁)。計算機執(zhí)行程序所需要的時間P 可以用下面公式計算:P=I×CPI×TI:高級語言程序編譯后在機器上運行的指令數(shù)。CPI:為執(zhí)行每條指令所需要的平均周期數(shù)。T:每個機器周期的時間。(4)流水線的思想:在CPU 中把一條指令的串行執(zhí)行過程變?yōu)槿舾芍噶畹淖舆^程在CPU 中重疊執(zhí)行。(5)流水線的指標:吞吐率:單位時間里流水線處理機流出的結(jié)果數(shù)。如果流水線的子過程所用時間不一樣長,則吞吐率應(yīng)為最長子過程的倒數(shù)。建立時間:流水線開始工作到達最大吞吐率的時間。若m 個子過程所用時間一樣,均為t,則建立時間T=mt。(6)信息存儲的字節(jié)順序A、存儲器單位:字節(jié)(

8、8 位)B、字長決定了微處理器的尋址能力,即虛擬地址空間的大小。C、32 位微處理器的虛擬地址空間位232,即4GB。D、小端字節(jié)順序:低字節(jié)在內(nèi)存低地址處,高字節(jié)在內(nèi)存高地址處。E、大端字節(jié)順序:高字節(jié)在內(nèi)存低地址處,低字節(jié)在內(nèi)存高地址處。F、網(wǎng)絡(luò)設(shè)備的存儲順序問題取決于OSI 模型底層中的數(shù)據(jù)鏈路層。6、邏輯電路基礎(chǔ)(1)根據(jù)電路是否具有存儲功能,將邏輯電路劃分為:組合邏輯電路和時序邏輯電路。(2)組合邏輯電路:電路在任一時刻的輸出,僅取決于該時刻的輸入信號,而與輸入信號作用前電路的狀態(tài)無關(guān)。常用的邏輯電路有譯碼器和多路選擇器等。(3)時序邏輯電路:電路任一時刻的輸出不僅與該時刻的輸入有關(guān)

9、,而且還與該時刻電路的狀態(tài)有關(guān)。因此,時序電路中必須包含記憶元件。觸發(fā)器是構(gòu)成時序邏輯電路的基礎(chǔ)。常用的時序邏輯電路有寄存器和計數(shù)器等。(4)真值表、布爾代數(shù)、摩根定律、門電路的概念。(教程28、29 頁)(5)NOR(或非)和NAND(與非)的門電路稱為全能門電路,可以實現(xiàn)任何一種邏輯函數(shù)。(6)譯碼器:多輸入多輸出的組合邏輯網(wǎng)絡(luò)。每輸入一個n 位的二進制代碼,在m 個輸出端中最多有一個有效。當(dāng)m=2n 是,為全譯碼;當(dāng)m<2n 時,為部分譯碼。(7)由于集成電路的高電平輸出電流小,而低電平輸出電流相對比較大,采用集成門電路直接驅(qū)動LED時,較多采用低電平驅(qū)動方式。液晶七段字符顯示器L

10、CD 利用液晶有外加電場和無外加電場時不同的光學(xué)特性來顯示字符。(8)時鐘信號是時序邏輯的基礎(chǔ),它用于決定邏輯單元中的狀態(tài)合適更新。同步是時鐘控制系統(tǒng)中的主要制約條件。(9)在選用觸發(fā)器的時候,觸發(fā)方式是必須考慮的因素。觸發(fā)方式有兩種:電平觸發(fā)方式:具有結(jié)構(gòu)簡單的有點,常用來組成暫存器。邊沿觸發(fā)方式:具有很強的抗數(shù)據(jù)端干擾能力,常用來組成寄存器、計數(shù)器等。7、總線電路及信號驅(qū)動(1)總線是各種信號線的集合,是嵌入式系統(tǒng)中各部件之間傳送數(shù)據(jù)、地址和控制信息的公共通路。在同一時刻,每條通路線路上能夠傳輸一位二進制信號。按照總線所傳送的信息類型,可以分為:數(shù)據(jù)總線(DB)、地址總線(AB)和控制總線

11、(CB)。(2)總線的主要參數(shù):總線帶寬:一定時間內(nèi)總線上可以傳送的數(shù)據(jù)量,一般用MByte/s 表示。總線寬度:總線能同時傳送的數(shù)據(jù)位數(shù)(bit),即人們常說的32 位、64 位等總線寬度的概念,也叫總線位寬??偩€的位寬越寬,總線每秒數(shù)據(jù)傳輸率越大,也就是總線帶寬越寬??偩€頻率:工作時鐘頻率以MHz 為單位,工作頻率越高,則總線工作速度越快,也即總線帶寬越寬??偩€帶寬= 總線位寬×總線頻率/8, 單位是MBps。常用總線:ISA 總線、PCI 總線、IIC 總線、SPI 總線、PC104 總線和CAN 總線等。(3)只有具有三態(tài)輸出的設(shè)備才能夠連接到數(shù)據(jù)總線上,常用的三態(tài)門為輸出緩

12、沖器。(4)當(dāng)總線上所接的負載超過總線的負載能力時,必須在總線和負載之間加接緩沖器或驅(qū)動器,最常用的是三態(tài)緩沖器,其作用是驅(qū)動和隔離。(5)采用總線復(fù)用技術(shù)可以實現(xiàn)數(shù)據(jù)總線和地址總線的共用。但會帶來兩個問題:A、需要增加外部電路對總線信號進行復(fù)用解耦,例如:地址鎖存器。B、總線速度相對非復(fù)用總線系統(tǒng)低。(6)兩類總線通信協(xié)議:同步方式、異步方式。(7)對總線仲裁問題的解決是以優(yōu)先級(優(yōu)先權(quán))的概念為基礎(chǔ)。8、電平轉(zhuǎn)換電路(1)數(shù)字集成電路可以分為兩大類:雙極型集成電路(TTL)、金屬氧化物半導(dǎo)體(MOS)。(2)CMOS 電路由于其靜態(tài)功耗極低,工作速度較高,抗干擾能力較強,被廣泛使用。(3)

13、解決TTL 與CMOS 電路接口困難的辦法是在TTL 電路輸出端與電源之間接一上拉電阻R,上拉電阻R 的取值由TTL 的高電平輸出漏電流IOH 來決定,不同系列的TTL 應(yīng)選用不同的R 值。9、可編程邏輯器件基礎(chǔ)(具體參見教程51 到61 頁)10、嵌入式系統(tǒng)中信息表示與運算基礎(chǔ)(1)進位計數(shù)制與轉(zhuǎn)換:這樣比較簡單,也應(yīng)該掌握怎么樣進行換算,有出題的可能。(2)計算機中數(shù)的表示:源碼、反碼與補碼。正數(shù)的反碼與源碼相同,負數(shù)的反碼為該數(shù)的源碼除符號位外按位取反。正數(shù)的補碼與源碼相同,負數(shù)的補碼為該數(shù)的反碼加一。例如-98 的源碼:B反碼:B補碼:B(3)定點表示法:數(shù)的小數(shù)點的位置人為約定固定不

14、變。浮點表示法:數(shù)的小數(shù)點位置是浮動的,它由尾數(shù)部分和階數(shù)部分組成。任意一個二進制N 總可以寫成:N=2P×S。S 為尾數(shù),P 為階數(shù)。(4)漢字表示法(教程67、68 頁),搞清楚GB2318-80 中國標碼和機內(nèi)碼的變換。(5)語音編碼中波形量化參數(shù)(可能會出簡單的計算題目哦)采樣頻率:一秒內(nèi)采樣的次數(shù),反映了采樣點之間的間隔大小。人耳的聽覺上限是20kHz,因此40kHz 以上的采樣頻率足以使人滿意。CD 唱片采用的采樣頻率是44.1kHz。測量精度:樣本的量化等級,目前標準采樣量級有8 位和16 位兩種。聲道數(shù):單聲道和立體聲雙道。立體聲需要兩倍的存儲空間。11、差錯控制編碼

15、(1)根據(jù)碼組的功能,可以分為檢錯碼和糾錯碼兩類。檢錯碼是指能自動發(fā)現(xiàn)差錯的碼,例如奇偶檢驗碼;糾錯碼是指不僅能發(fā)現(xiàn)差錯而且能自動糾正差錯的碼,例如循環(huán)冗余校驗碼。(2)奇偶檢驗碼、海明碼、循環(huán)冗余校驗碼(CRC)。(教程70 到77 頁)12、嵌入式系統(tǒng)的度量項目(1)性能指標:分為部件性能指標和綜合性能指標,主要包括:吞吐率、實時性和各種利用率。(2)可靠性與安全性可靠性是嵌入式系統(tǒng)最重要、最突出的基本要求,是一個嵌入式系統(tǒng)能正常工作的保證,一般用平均故障間隔時間MTBF 來度量。(3)可維護性:一般用平均修復(fù)時間MTTR 表示。(4)可用性(5)功耗(6)環(huán)境適應(yīng)性(7)通用性(8)安全

16、性(9)保密性(10)可擴展性性價比中的價格,除了直接購買嵌入式系統(tǒng)的價格外,還應(yīng)包含安裝費用、若干年的運行維修費用和軟件租用費。13、嵌入式系統(tǒng)的評價方法:測量法和模型法(1)測量法是最直接最基本的方法,需要解決兩個問題:A、根據(jù)研究的目的,確定要測量的系統(tǒng)參數(shù)。B、選擇測量的工具和方式。(2)測量的方式有兩種:采樣方式和事件跟蹤方式。(3)模型法分為分析模型法和模擬模型法。分析模型法是用一些數(shù)學(xué)方程去刻畫系統(tǒng)的模型,而模擬模型法是用模擬程序的運行去動態(tài)表達嵌入式系統(tǒng)的狀態(tài),而進行系統(tǒng)統(tǒng)計分析,得出性能指標。(4)分析模型法中使用最多的是排隊模型,它包括三個部分:輸入流、排隊規(guī)則和服務(wù)機構(gòu)。

17、(5)使用模型對系統(tǒng)進行評價需要解決3 個問題:設(shè)計模型、解模型、校準和證實模型。(二)1.嵌入式微處理器的基本結(jié)構(gòu)(1)嵌入式硬件系統(tǒng)一般由嵌入式微處理器、存儲器和輸入/輸出部分組成。(2)嵌入式微處理器是嵌入式硬件系統(tǒng)的核心,通常由控制單元、算術(shù)邏輯單元和寄存器3大部分組成:A、控制單元:主要負責(zé)取指、譯碼和取數(shù)等基本操作并發(fā)送主要的控制指令。B、算術(shù)邏輯單元:主要處理數(shù)值型數(shù)據(jù)和進行邏輯運算工作。C、寄存器:用于暫存臨時性的數(shù)據(jù)。2.嵌入式微處理器的分類(根據(jù)用途)(1)嵌入式微控制器(MCU):又稱為單片機,片上外設(shè)資源一般比較豐富,適合于控制。最大的特點是單片化,體積小,功耗和成本低

18、,可靠性高。目前約占70%的市場份額。(2)嵌入式微處理器(EMPU):又稱為單板機,由通用計算機中的CPU 發(fā)展而來,它的特征是具有32位以上的處理器,具有較高的性能。通常嵌入式微處理器把CPU、ROM、RAM 及I/O 等模塊做到同一個芯片上。(3)嵌入式DSP 處理器(DSP):專門用于信號處理方面的處理器,其在系統(tǒng)結(jié)構(gòu)和指令算法方面進行了特殊設(shè)計,使其處理速度比最快的CPU 還快1050倍,在數(shù)字濾波、FFT、頻譜分析等方面獲得了大量的應(yīng)用。(4)嵌入式片上系統(tǒng)(SOC):追求產(chǎn)品系統(tǒng)最大包容的集成器件,其最大的特點是成功實現(xiàn)了軟硬件的無縫結(jié)合,直接在微處理器片內(nèi)嵌入操作系統(tǒng)的代碼模塊

19、。3.典型8位微處理器的結(jié)構(gòu)和特點該部分參考教程8694頁,以8051為重點,徹底搞清楚8位單片機的工作原理,外設(shè)控制、存儲分布、尋址方式以及典型應(yīng)用。2007年11月下午的第一道題目就考查了8051的定時器使用、外部時鐘連接、實際應(yīng)用的流程設(shè)計以及典型的尋址方式。這些考點幾乎可以在教程上找到,例如外部時鐘連接那個問題的答案就是教程89頁上面的原圖。4.典型16位微處理器的結(jié)構(gòu)和特點該部分參考教程9497頁。典型的微處理器可以參考MSP430,找一本這方面的書看看關(guān)于MSP430的結(jié)構(gòu)原理以及典型應(yīng)用。5.典型32位微處理器的結(jié)構(gòu)和特點該部分參考教程97112頁。32位處理器采用32位的地址和

20、數(shù)據(jù)總線,其地址空間達到了232=4GB。目前主流的32位嵌入式處理器系統(tǒng)主要有ARM 系列、MIPS 系列、PoewrPC 系列等。ARM 微處理器體系結(jié)構(gòu)目前被公認為是嵌入式應(yīng)用領(lǐng)域領(lǐng)先的32位嵌入式RISC 處理器結(jié)構(gòu)。按照目前的發(fā)展形式,ARM 幾乎成了嵌入式應(yīng)用的代名詞。按照我個人的意見,作為嵌入式系統(tǒng)設(shè)計師考試,逐漸增加考查ARM 體系結(jié)構(gòu)與編程方面的題目是大勢所趨。2006年沒有一道關(guān)于ARM 的題目,2007年出了少量題目,可能在2008年會繼續(xù)增加。在下午題方面,2006年考查了X86方面的應(yīng)用、2007年考查了8051方面的應(yīng)用,這個可能是一個過度過程,以目前ARM 在嵌入

21、式領(lǐng)域的廣泛應(yīng)用和普及程度,下午題目考查ARM 應(yīng)用方面或者32位其他的微處理器方面的應(yīng)用題目可能在不就將來的考試中就會出現(xiàn)。6、單片機系統(tǒng)的基本概念(1)單片機組成:中央處理器、存儲器、I/O 設(shè)備。(2)存儲器:物理實質(zhì)是一組或多組具備數(shù)據(jù)輸入/輸出和數(shù)據(jù)存儲功能的集成電路,用于充當(dāng)設(shè)備緩存或保存固定的程序及數(shù)據(jù)。A、ROM(只讀存儲器):一般用于存放固定的程序或數(shù)據(jù)表格等,數(shù)據(jù)在掉電后仍然會保留下來。B、RAM(隨機存儲器):用于暫存程序和數(shù)據(jù)、中間計算結(jié)果,或用作堆棧用等,數(shù)據(jù)在掉電后就會丟失。(3)I/O端口:單片機與外界聯(lián)系的通道,它可以對各類外部信號(開關(guān)量、模擬量、頻率信號)進

22、行檢測、判斷、處理,并可控制各類外部設(shè)備。現(xiàn)在的單片機I/O 口已經(jīng)集成了更多的特性和功能,對I/O端口的功能進行了拓展和復(fù)用,例如外部中斷、ADC 檢測以及PWM 輸出等等。(4)輸出電平:高電平電壓(輸出“1”時)和低電平電壓(輸出“0”時)A、TTL 電平:正邏輯,5V 為邏輯正,0V 為邏輯負,例如單片機的輸出。B、RS232電平:負邏輯,-12V 為邏輯正,+12V 為邏輯負,例如PC 的輸出。注:因此在單片機和PC 進行通訊的時候需要一個MAX232芯片進行電平轉(zhuǎn)換。(5)堆棧:它是一種線性的數(shù)據(jù)結(jié)構(gòu),是一個只有一個進出口的一維空間。A、堆棧特性:后進先出(LIFO)B、堆棧指針:

23、用于指示棧頂?shù)奈恢?地址),當(dāng)發(fā)生壓?;蛘叱鰲2僮鲿r,導(dǎo)致棧頂位置變化時,堆棧指針會隨之變化。C、堆棧操作:壓棧操作(PUSH)和出棧操作(POP)。D、堆棧類型:“向上生長”型堆棧,每次壓棧時堆棧指針加1;“向下生長”型堆棧,每次壓棧堆棧時指針減1。E、堆棧應(yīng)用:調(diào)用子程序、響應(yīng)中斷時,堆棧用于保護現(xiàn)場;還可以用作臨時數(shù)據(jù)緩沖區(qū)來使用。F、使用注意:堆棧溢出問題,壓棧和出棧的匹配問題。(6)定時/計數(shù)器:實質(zhì)都是計數(shù)器。用作定時器時是對單片機內(nèi)部的時鐘脈沖進行計數(shù),而在用作計數(shù)器時是對單片機外部的輸入脈沖進行計數(shù),其作用如下:A、計時、定時或延時控制;B、脈沖技術(shù);C、測量脈沖寬度或頻率(捕

24、獲功能)(7)中斷:優(yōu)先級更高的事件發(fā)生,打斷優(yōu)先級低的時間進程。引起中斷的事件稱為中斷源。一個單片機可能支持多個中斷源,這些中斷源可以分為可屏蔽中斷和非可屏蔽中斷,而這些中斷源并不都是系統(tǒng)工作所需的,我們可以根據(jù)系統(tǒng)需求屏蔽那些不需要的中斷源。A、中斷嵌套:當(dāng)一個低級中斷尚未執(zhí)行完畢,又發(fā)生了一個高級優(yōu)先級的中斷,系統(tǒng)轉(zhuǎn)而執(zhí)行高級中斷服務(wù)程序,待處理完高級中斷后再回過頭來執(zhí)行低級中斷服務(wù)程序。B、中斷響應(yīng)時間是指從發(fā)出中斷請求到進入中斷處理所用的時間;中斷處理時間是指中斷處理開始到中斷處理結(jié)束的時間。C、中斷響應(yīng)過程:a、保護現(xiàn)場:將當(dāng)前地址、累加器ACC、狀態(tài)寄存器保存到堆棧中。b、切換P

25、C 指針:根據(jù)不同的中斷源所產(chǎn)生的中斷,切換到相應(yīng)的入口地址。c、執(zhí)行中斷服務(wù)處理程序。d、恢復(fù)現(xiàn)場:將保存在堆棧中的主程序地址、累加器ACC、狀態(tài)寄存器恢復(fù)。e、中斷返回:從中斷處返回到主程序,繼續(xù)執(zhí)行。D、中斷入口地址:單片機為每個中斷源分配了不同的中斷入口地址,也稱為中斷向量。(8)復(fù)位:通過外部電路給單片機的復(fù)位引進一個復(fù)位信號,讓系統(tǒng)重新開始運行。A、復(fù)位發(fā)生時的動作:a、PC 指針從起始位置開始執(zhí)行(大多數(shù)單片機都時從0x0000處開始執(zhí)行)。b、I/O 端口設(shè)置成缺省狀態(tài)(高阻態(tài)、或者輸出低電平)。c、部分專用控制寄存器SFR 恢復(fù)到缺省狀態(tài)。d、普通RAM 不變(如果時上電復(fù)位

26、,則是隨即數(shù))。B、兩種不同的復(fù)位啟動方式:a、冷啟動:也叫上電復(fù)位,指在斷電狀態(tài)下給系統(tǒng)加電,讓系統(tǒng)開始正常運行。b、熱啟動:在不斷電的狀態(tài)下,給單片機復(fù)位引進一個復(fù)位信號,讓系統(tǒng)重新開始。C、兩種類型的復(fù)位電路:高電平復(fù)位和低電平復(fù)位。D 注意事項:a、注意復(fù)位信號的電平狀態(tài)及持續(xù)時間必須滿足系統(tǒng)要求。b、注意避免復(fù)位信號抖動。(9)時鐘電路:單片機是一種時序電路,必須提供脈沖電路才能正常工作。時鐘電路相當(dāng)于單片機的心臟,它的每一次跳動(振動節(jié)拍)都控制著單片機的工作節(jié)奏。振蕩得慢時,系統(tǒng)工作速度就慢,振蕩得快時,系統(tǒng)工作速度就快(功耗也增大)。A、振蕩周期:振蕩源的振蕩節(jié)拍。B、機器周期

27、:單片機完成一個基本操作需要的振蕩周期(節(jié)拍)。C、指令周期:執(zhí)行一條指令需要幾個機器周期。不同的指令需要的機器周期數(shù)不同。7、ARM體系結(jié)構(gòu)的基本概念(1)ARM:Advanced RISC Machine。(2)ARM體系結(jié)構(gòu)中支持兩種指令集:ARM 指令集和Thumb 指令集。(3)ARM內(nèi)核有T、D、M、I四個功能模塊:A、T 模塊:表示16位Thumb,可以在兼顧性能的同時減少代碼尺寸。B、D 模塊:表示Debug,內(nèi)核中放置了用于調(diào)試的結(jié)構(gòu),通常為一個邊界掃描鏈JTAG。C、M 模塊:表示8位乘法器。D、I 模塊:表示EmbeddedICE Logic,用于實時斷點觀測及變量觀測的

28、邏輯電路部分。(4)ARM處理器有7種運行模式:A、用戶模式(User):正常程序執(zhí)行模式,用于應(yīng)用程序。D、快速中斷模式(FIQ):快速中斷處理,用于高速數(shù)據(jù)傳輸和通道處理。C、外部中斷模式(IRQ):用于通用的中斷處理。D、管理模式(SVE):供操作系統(tǒng)使用的一種保護模式。E、數(shù)據(jù)訪問中止模式(Abort):用于虛擬存儲及存儲保護。F、未定義指令中止模式(Undefined):當(dāng)未定義指令執(zhí)行時進入該模式。G、系統(tǒng)模式(System):用于運行特權(quán)級的操作系統(tǒng)任務(wù)。除了用戶模式之外的其他6種處理器模式稱為特權(quán)模式,在這些模式下,程序可以訪問所有的系統(tǒng)資源,也可以任意地進行處理器模式切換,其

29、中,除了系統(tǒng)模式外,其他的5種特權(quán)模式又稱為異常模式。處理器模式可以通過軟件控制進行切換,也可以通過外部中斷或異常處理過程進行切換。大多數(shù)的用戶程序運行在用戶模式下,這時,應(yīng)用程序不能訪問一些受操作系統(tǒng)保護的系統(tǒng)資源,應(yīng)用程序也不能直接進行處理器模式切換。當(dāng)需要進行處理器模式切換時,應(yīng)用程序可以產(chǎn)生異常處理,在異常處理中進行處理器模式的切換。這種體系結(jié)構(gòu)可以使操作系統(tǒng)控制整個系統(tǒng)的資源。當(dāng)應(yīng)用程序發(fā)生異常中斷時,處理器進入相應(yīng)的異常模式。在每一種異常模式種都有一組寄存器,供相應(yīng)的異常處理程序使用,這樣就可以保證進入異常模式時,用戶模式下的寄存器不被破壞。系統(tǒng)模式并不是通過異常過程進入的,它和用

30、戶模式具有完全一樣的寄存器,但是系統(tǒng)模式屬于特權(quán)模式,可以訪問所有的系統(tǒng)資源,也可以直接進行處理器模式切換,它主要供操作系統(tǒng)任務(wù)使用。(5)ARM處理器共有37個寄存器:31個通用寄存器和6個狀態(tài)寄存器A、通用寄存器包括R0R15,可以分為3類:a、未備份寄存器R0R7:在所有的處理器模式下,未備份寄存器都是指向同一個物理寄存器。b、備份寄存器R8R14:對于R8R12來說,每個寄存器對于2個不同的物理寄存器,它們每次所訪問的物理寄存器都與當(dāng)前的處理器運行模式有關(guān)。對于R13、R14來說,每個寄存器對于6個不同的物理寄存器,其中一個是用戶模式和系統(tǒng)模式共用。R13在ARM 指令種常用作堆棧指針

31、。由于處理器的每種運行模式都有自己獨立的物理寄存器R13,所有在用戶應(yīng)用程序的初始化部分,一般要初始化每種模式下的R13,使其指向該運行模式的??臻g。R14又稱為連接寄存器(LR),在ARM 體系種具有下面兩種特殊作用:在通過BL 或BLX 指令調(diào)用子程序時,存放當(dāng)前子程序的返回地址;在異常中斷發(fā)生時,存放異常模式將要返回的地址。c、程序計數(shù)器R15(PC)。由于ARM 采用了流水線機制,在三級流水線中,當(dāng)正確讀取了PC 的值時,該值為當(dāng)前指令地址值加8個字節(jié)。也就是說,PC 指向當(dāng)前指令的下兩條指令的地址。在ARM 指令狀態(tài)下,PC 的0和1位是0,在Thumb 指令狀態(tài)下,PC 的0位是0

32、。B、程序狀態(tài)寄存器a、ARM 體系結(jié)構(gòu)包含1個當(dāng)前程序狀態(tài)寄存器(CPSR)和5個備份的程序狀態(tài)寄存器(SPSR),使用MSR 和MRS 指令來設(shè)置和讀取這些寄存器。b、當(dāng)前程序狀態(tài)寄存器CPSR:保存當(dāng)前處理器狀態(tài)的信息,可以在任何處理器模式下被訪問。c、備份程序狀態(tài)寄存器SPSR:每一種異常處理器模式下都有一個專用的物理狀態(tài)寄存器。當(dāng)特定的異常中斷發(fā)生時,這個寄存器用于存放當(dāng)前程序狀態(tài)寄存器的內(nèi)容,在異常中斷程序退出時,可以用SPSR 中保存的值來恢復(fù)CPSR。d、由于用戶模式和系統(tǒng)模式不屬于異常模式,它們沒有SPSR,當(dāng)在這兩種模式下訪問SPSR 時,結(jié)果是未知的。(6)ARM指令的尋

33、址方式所謂尋址方式就是處理器根據(jù)指令中給出的地址信息來尋找物理地址的方式。A、立即尋址:操作數(shù)本身就在指令中給出,只要取出指令也就取到了操作數(shù)。ADD R0, R0, #1 ;R0􀀢R0+1B、寄存器尋址:利用寄存器中的數(shù)值作為操作數(shù)。ADD R0, R1, R2 ;R0􀀢R1+R2C、寄存器間接尋址:以寄存器中的值作為操作數(shù)地址,而操作數(shù)本身存放在存儲器中。ADD R0, R1, R2 ;R0􀀢R1+R2LDR R0, R1 ;R0􀀢R1STR R0, R1 ;R1􀀢R0D、基址變址尋址:將寄存器(該寄

34、存器一般稱作基址寄存器)的內(nèi)容與指令中給出的地址偏移量相加,從而得到一個操作數(shù)的有效地址。LDR R0, R1, #4 ;R0􀀢R1+4LDR R0, R1, #4! ;R0􀀢R1+4 R1􀀢R1+4LDR R0, R1, #4 ;R0􀀢R1 R1􀀢R1+4LDR R0, R1, R2! ;R0􀀢R1+R2E、多寄存器尋址:一條指令可以完成多個寄存器值的傳送。LDMIA R0, R1, R2, R3 ;R1􀀢R0 R2􀀢R0+4 R3􀀢

35、;R0+8F、相對尋址:以程序計數(shù)器PC 的當(dāng)前值作為基地址,指令中的地址標號作為偏移量,兩者相加之后得到操作數(shù)的有效地址。BL NEXT ;跳轉(zhuǎn)到子程序NEXT 處執(zhí)行NEXTMOV PC, LR ;從子程序返回G、堆棧尋址:支持4種類型的堆棧工作方式:a、滿遞增堆棧:堆棧指針指向最后壓入的數(shù)據(jù),且由低地址向高地址生長。b、滿遞減堆棧:堆棧指針指向最后壓入的數(shù)據(jù),且由高地址向低地址生長。c、空遞增堆棧:堆棧指針指向下一個將要放入數(shù)據(jù)的空位置,且由低地址向高地址生長。d、空遞減堆棧:堆棧指針指向下一個將要放入數(shù)據(jù)的空位置,且由高地址向低地址生長。(7)ARM的存儲方法A、大端模式:數(shù)據(jù)的高字節(jié)

36、存儲在低地址中,低字節(jié)存儲在高地址中。B、小端模式:數(shù)據(jù)的低字節(jié)存儲在低地址中,高字節(jié)存儲在高地址中。(8)ARM中斷與異常A、ARM 內(nèi)核支持7種中斷,不同的中斷處于不同的處理模式,具有不同的優(yōu)先級,而且每個中斷都有固定的中斷地址入口。當(dāng)一個中斷發(fā)生是,相應(yīng)的R14(LR)存儲中斷返回地址,SPSR 存儲當(dāng)前程序狀態(tài)寄存器CPSR 的值。B、由于ARM 內(nèi)核支持流水線工作,LR 寄存器存儲的地址可能是發(fā)生中斷后面指令的地址,所以不同的中斷處理完成后,必須將LR 寄存器值經(jīng)過處理后再寫入P15(PC)寄存器。C、ARM 異常的具體含義:a、復(fù)位:當(dāng)處理器的復(fù)位電平有效時,產(chǎn)生復(fù)位異常,程序跳轉(zhuǎn)

37、到異常復(fù)位異常處理程序處執(zhí)行。b、未定義的指令:當(dāng)ARM 處理器或協(xié)處理器遇到不能處理的指令時,產(chǎn)生未定義指令異常??梢允褂迷摦惓C制進行軟件仿真。c、軟件中斷:該異常由執(zhí)行SWI 指令產(chǎn)生,可用于用戶模式下的程序調(diào)用特權(quán)操作指令。可使用該異常機制實現(xiàn)操作系統(tǒng)調(diào)用功能。d、指令預(yù)取中止:如果處理器預(yù)取指令的地址不存在或該地址不允許當(dāng)前指令訪問,存儲器向處理器發(fā)出中止信號,但當(dāng)預(yù)取的指令被執(zhí)行時,才會產(chǎn)生指令預(yù)取中止異常。e、數(shù)據(jù)訪問中止:如果處理器數(shù)據(jù)訪問指令的目標地址不存在,或者該地址不允許當(dāng)前指令訪問,處理器產(chǎn)生數(shù)據(jù)訪問中止異常。f、外部中斷請求:當(dāng)ARM 外部中斷請求管腳有效,而且CPS

38、R 中的I 位為0時,產(chǎn)生IRQ 異常。系統(tǒng)的外設(shè)可以通過該異常請求中斷服務(wù)。g、快速中斷請求:當(dāng)ARM 快速中斷請求管腳有效,而且CPSR 的F 位為0時,產(chǎn)生FIQ 異常。D、ARM 處理器對異常中斷的響應(yīng)過程a、將下一條指令的地址存入相應(yīng)的連接寄存器LR 中。b、將CPSR 復(fù)制到相應(yīng)的SPSR 中。c、根據(jù)異常的類型,強制設(shè)置CPSR 的運行模式位。d、強制PC 從相關(guān)的異常向量地址取下一條指令執(zhí)行,從而跳轉(zhuǎn)到相應(yīng)的異常處理程序處。E、ARM 處理器從異常中斷處理程序中返回a、恢復(fù)中斷的程序的處理器狀態(tài),將SPSR 復(fù)制到CPSR 中。b、若在進入異常處理時設(shè)置了中斷禁止位,要在此清除

39、。c、將連接寄存器LR 的值減去相應(yīng)的偏移量后送到PC。F、復(fù)位異常中斷處理程序不需要返回。在復(fù)位異常中斷程序開始整個用戶程序的執(zhí)行。(三)1、嵌入式軟件基礎(chǔ)(1)嵌入式軟件的特點:A、規(guī)模較小。B、開發(fā)難度大。C、實時性和可靠性要求高。D、要求固化存儲。(2)嵌入式軟件分類:A、系統(tǒng)軟件:控制和管理嵌入式系統(tǒng)資源,如嵌入式操作系統(tǒng)、驅(qū)動程序、中間件等。B、應(yīng)用軟件:定義嵌入式設(shè)備的主要功能和用途,負載與用戶進行交互。C、支撐軟件:輔助軟件開發(fā)的工具軟件。(3)無操作系統(tǒng)的嵌入式軟件的兩種實現(xiàn)方式:A、循環(huán)輪轉(zhuǎn)優(yōu)點:簡單、直觀、開銷小、可預(yù)測。缺點:過于簡單,所有代碼順序執(zhí)行,無法處理異步事件

40、,缺乏并行處理能力。B、前后臺系統(tǒng)(在循環(huán)輪轉(zhuǎn)的基礎(chǔ)上增加了中斷處理功能)前臺(事件處理級):中斷服務(wù)程序,負載處理異步事件。后臺(任務(wù)級):一個無限循環(huán),負載資源分配、任務(wù)管理和系統(tǒng)調(diào)度。(4)有操作系統(tǒng)的三大優(yōu)點:A、提高系統(tǒng)的可靠性。B、提高了系統(tǒng)的開發(fā)效率,降低了開發(fā)成本,縮短了開發(fā)周期。C、有利于系統(tǒng)的擴展與移植。(5)設(shè)備驅(qū)動層(也叫板級支持包BSP:包含了嵌入式系統(tǒng)中所有與硬件相關(guān)的代碼)大多數(shù)的嵌入式硬件設(shè)備都需要某種類型軟件的初始化和管理。這部分工作由設(shè)備驅(qū)動層來完成的,它負責(zé)直接與硬件大交道,對硬件進行管理和控制,為上層軟件提供所需的驅(qū)動支持,類似PC 系統(tǒng)中的BIOS 和

41、驅(qū)動程序。(6)板級支持包BSP 的基本思想把嵌入式操作系統(tǒng)與具體的硬件平臺隔離開來。在BSP 當(dāng)中,把所有與硬件相關(guān)的代碼都封裝起來,并向上提供一個虛擬的硬件平臺,而操作系統(tǒng)就運行在這個虛擬的硬件平臺上。它使用一組定義好的編程接口來與BSP 進行交互,并通過BSP 來訪問真正的硬件。(7)一般來說。BSP 主要包括兩個方面的內(nèi)容:A、引導(dǎo)加載程序BootLoader。B、設(shè)備驅(qū)動程序。(8)關(guān)于引導(dǎo)加載程序BoorLoader引導(dǎo)加載程序是嵌入式系統(tǒng)加電后運行的第一段軟件代碼,是在操作系統(tǒng)內(nèi)核運行之前運行的一段小程序,它的實現(xiàn)高度依賴于具體的硬件平臺,主要的基本功能如下:A、片級初始化:純硬

42、件初始化過程,把微處理器從上電的默認狀態(tài)設(shè)置成系統(tǒng)要求的工作狀態(tài)。B、板級初始化:同時有軟件和硬件在內(nèi)的初始化過程,設(shè)置各種硬件的寄存器和設(shè)置某些軟件的數(shù)據(jù)結(jié)構(gòu)和參數(shù)。C、加載內(nèi)核:將操作系統(tǒng)和應(yīng)用程序的映象從Flash 存儲器復(fù)制到系統(tǒng)內(nèi)存當(dāng)中,然后跳轉(zhuǎn)到系統(tǒng)內(nèi)核的第一條指令處繼續(xù)執(zhí)行。補充:PC 系統(tǒng)的引導(dǎo)加載過程。PC 系統(tǒng)的引導(dǎo)加載程序由兩部分代碼組成BIOS 和MBR 中的引導(dǎo)程序。BIOS 在完成硬件檢測和資源配置后,將硬盤主引導(dǎo)記錄MBR 中的引導(dǎo)程序讀到系統(tǒng)的內(nèi)存當(dāng)中,然后將控制權(quán)交給它,由它負責(zé)把操作系統(tǒng)的內(nèi)核映象從硬盤讀入到內(nèi)存,然后跳轉(zhuǎn)到內(nèi)核入口去運行,即啟動操作系統(tǒng)。(

43、9)設(shè)備驅(qū)動程序在一個嵌入式系統(tǒng)中,操作系統(tǒng)可能有也可能無,但是設(shè)備驅(qū)動程序是必不可少的。設(shè)備驅(qū)動程序,就是一組庫函數(shù),用來對硬件進行初始化和管理,并向上層軟件提供良好的訪問接口。大多數(shù)設(shè)備驅(qū)動程序都具備下面的基本功能:啟動、關(guān)閉、停用、啟用、讀操作、寫操作。這些功能一般用函數(shù)的形式來實現(xiàn),這些函數(shù)之間的組織結(jié)構(gòu)主要有兩種:分層結(jié)構(gòu)和混合結(jié)構(gòu)。(10)關(guān)于分層結(jié)構(gòu)A、硬件接口:直接操作和控制硬件。B、調(diào)用接口:不直接跟硬件大交道,為上層軟件提供服務(wù)和函數(shù)接口。C、優(yōu)點:把所有與硬件相關(guān)的細節(jié)都封裝在硬件接口中,在硬件需要升級,需要更新設(shè)備驅(qū)動程序的時候,只需要改動硬件接口中的函數(shù)即可,而上層調(diào)

44、用接口中的函數(shù)不用做任何修改。D、混合結(jié)構(gòu):在設(shè)備驅(qū)動程序當(dāng)中,沒有明確的層次關(guān)系,上層接口和硬件接口混在一起,相互調(diào)用。(11)嵌入式中間件它是在操作系統(tǒng)內(nèi)核、設(shè)備驅(qū)動程序和應(yīng)用軟件之外的所有系統(tǒng)軟件,其基本思路是:把原本屬于應(yīng)用軟件層的一些通用的功能模塊抽取出來,形成獨立的一層軟件,從而為運行在它上面的那些應(yīng)用軟件提供一個靈活、安全。移植性好、相互通信、協(xié)同工作的平臺。2、嵌入式操作系統(tǒng)概述(1)內(nèi)核內(nèi)核是指操作系統(tǒng)中的一個組件,它包含了OS 的主要功能,即OS 的各種特性及其相互之間的依賴關(guān)系,這些功能主要包括:A、任務(wù)管理:對系統(tǒng)中運行的軟件進行描述和管理,并完成處理器資源分配和調(diào)度。

45、B、存儲管理:提高內(nèi)存的利用率,方便用戶使用,提供足夠的存儲空間。C、設(shè)備管理:方便設(shè)備的使用,提高CPU 和I/O 設(shè)備的利用率。D、文件管理:解決文件資源存儲、共享、保密和保護等問題。注:不同嵌入式操作系統(tǒng)的內(nèi)核設(shè)計各不相同,取決于系統(tǒng)設(shè)計和實際需求。(2)嵌入式操作系統(tǒng)分類:A、按系統(tǒng)類型:商業(yè)系統(tǒng)、專用系統(tǒng)、開源系統(tǒng)。B、按響應(yīng)時間:硬實時系統(tǒng)、軟實時系統(tǒng)。C、按軟件結(jié)構(gòu):單體結(jié)構(gòu)(uCOS)、分層結(jié)構(gòu)(MS-DOS)、微內(nèi)核結(jié)構(gòu)(Vxworks)。3、任務(wù)管理(1)嵌入式操作系統(tǒng)的任務(wù)管理可以分為:A、單道程序技術(shù):操作系統(tǒng)中,任何時候只能有一個程序在運行。B、多道程序技術(shù):操作系統(tǒng)

46、中,允許多個程序同時存在并運行。(2)進程進程,簡單的說,是一個正在運行的程序。進程與程序既有聯(lián)系又有區(qū)別,主要表現(xiàn)為下面結(jié)構(gòu)方面:A、程序由數(shù)據(jù)和代碼兩部分內(nèi)容組成,它是一個靜態(tài)的概念。而進程是正在執(zhí)行的程序,它也由兩部分組成:程序和該程序的運行上下文。它是一個動態(tài)的概念。B、程序和進程之間并不是一一對應(yīng)的。一個進程在運行的時候可以啟動一個或多個程序。反之,同一個程序也可能由多進程同時執(zhí)行。C、程序可以作為一種軟件資源長期保存,以文件的形式存放在光盤或硬盤上,而進程則是一次執(zhí)行的過程,它是暫時的,是動態(tài)的產(chǎn)生和終止。一個進程至少應(yīng)包括三個方面:相應(yīng)的程序、CPU上下文、一組系統(tǒng)資源。進程有三

47、個特性:A、動態(tài)性:進程是正在運行的程序,而程序的運行狀態(tài)是不斷變化的。B、獨立性:進程是系統(tǒng)資源的使用單位,每個進行有自己的運行上下文和內(nèi)部狀態(tài)。C、并發(fā)性:宏觀來看,系統(tǒng)中同時有多個進程存在,它們相互獨立地運行。注:對于并發(fā)的理解。在單CPU 的情況下,所謂的并發(fā)性指的是宏觀上的并發(fā)運行,而微觀上還是順序進行,各個進程輪流去使用CPU 資源。在單核CPU 中,真正的、物理上的PC 寄存器只有一個,進程在輪流執(zhí)行的時候,物理PC 的取值也在不斷變化。而邏輯PC 其實就是一個內(nèi)存變量。每個進程都有一個邏輯PC,當(dāng)一個進程要運行的時候,就把它的邏輯PC 裝載到物理PC 中去;反之,當(dāng)一個進程暫不

48、運行的時候,就把物理PC中的值保存在它的邏輯PC 當(dāng)中。(3)線程線程就是進程當(dāng)中的一條執(zhí)行流程。進程其實包含兩個部分:資源平臺和執(zhí)行流程(線程)。在一個進程當(dāng)中,或者說在一個資源平臺上,可以同時存在多個線程;可以用線程作為CPU 的基本調(diào)度單位,使得各個線程之間可以并發(fā)執(zhí)行;對于同一個進程當(dāng)中的各個線程來說,他們可以共享該進程的大部分資源。每個線程都有自己獨立的CPU運行上下文和棧,這是不能共享的。(4)任務(wù)在嵌入式系統(tǒng)中,任務(wù)其實就是線程,它是能夠獨立運行的一個實體。原因有二:A、任務(wù)具有獨立的優(yōu)先級和??臻g,CPU 上下文一般存放在??臻g中。B、任務(wù)之間可以很方便地、直接地使用共享的內(nèi)存

49、單元,而不需要經(jīng)過系統(tǒng)內(nèi)核。在多道程序的嵌入式系統(tǒng)中,同時存在著多個任務(wù),這些任務(wù)之間的結(jié)構(gòu)一般為層狀結(jié)構(gòu),存在著父子關(guān)系。當(dāng)嵌入式內(nèi)核剛剛啟動的時候,只有一個任務(wù)存在,然后由該任務(wù)派生出所有其他任務(wù)。(5)任務(wù)的創(chuàng)建與中止(教程P270)任務(wù)的創(chuàng)建主要發(fā)生在以下三種情形:A、系統(tǒng)初始化。B、任務(wù)運行的過程中。C、用戶提出請求。從技術(shù)的角度來說,實際上新任務(wù)只有一種創(chuàng)建的方法,也就是在一個已經(jīng)存在的任務(wù)中,通過調(diào)用相應(yīng)的系統(tǒng)函數(shù)來創(chuàng)建一個新的任務(wù)。任務(wù)的創(chuàng)建只要有兩種可能的實現(xiàn)模型:fork/exec 和spawn。兩種模型的差別主要在于內(nèi)存的分配方式。A、fork/exec 模型下,首先調(diào)用

50、fork 函數(shù)為新任務(wù)創(chuàng)建一份與父任務(wù)完全相同的內(nèi)存空間,然后再調(diào)用exec 函數(shù)裝入新任務(wù)的代碼,并用它來覆蓋原有的屬于父任務(wù)的內(nèi)容。嵌入式Linux操作系統(tǒng)是基于fork/exec模型的。B、spawn 模式下,在創(chuàng)建新任務(wù)的時候,直接為它分配一個全新的地址空間,然后將新任務(wù)的代碼裝入并運行。uCOS操作系統(tǒng)是基于spawn 模型的。任務(wù)的中止可能有多種原因,主要有下面三種情況:A、正常退出。B、錯誤推出。C、被其他任務(wù)踢出。在有些嵌入式系統(tǒng)中,尤其是一些控制系統(tǒng)中,它的某些任務(wù)被設(shè)計為“死循環(huán)”的模式,一直循環(huán)下去,不會中止。(6)任務(wù)的狀態(tài)任務(wù)有三中基本狀態(tài):A、運行狀態(tài):任務(wù)占有CP

51、U,并在CPU 上運行。B、就緒狀態(tài):任務(wù)已經(jīng)具備運行的條件,在等待CPU 空閑。C、阻塞狀態(tài):任務(wù)因為正在等待某種事件的發(fā)生而暫時不能運行。對于就緒狀態(tài)和阻塞狀態(tài),它們的相同之處在于,任務(wù)都是處于暫停狀態(tài),沒有運行。不同之處在于,暫停的原因是不一樣的,導(dǎo)致就緒狀態(tài)的原因是外因,是操作系統(tǒng)的CPU正忙,而導(dǎo)致阻塞狀態(tài)的原因是內(nèi)因,是任務(wù)自身的問題。任務(wù)狀態(tài)的四種轉(zhuǎn)換關(guān)系:A、運行􀃆阻塞:任務(wù)由于等待某個時間被阻塞起來。B、運行􀃆就緒:調(diào)度器由于某種原因(例如優(yōu)先級)選擇了另一個任務(wù)去運行。C、就緒􀃆運行:CPU 空閑了,處于就緒狀態(tài)的任務(wù)被

52、調(diào)度器選中去運行。D、阻塞􀃆就緒:任務(wù)的等待事件完成,具備了繼續(xù)運行的條件。(7)任務(wù)控制塊TCB任務(wù)控制塊TCB,就是在操作系統(tǒng)中,用來描述和管理一個任務(wù)的數(shù)據(jù)結(jié)構(gòu)。系統(tǒng)為每一個任務(wù)都維護了一個相應(yīng)的TCB,用來保存該任務(wù)的各種相關(guān)信息。它的主要內(nèi)容包括下面幾項:A、任務(wù)的管理信息:任務(wù)的標識ID、狀態(tài)、優(yōu)先級、調(diào)度信息、各種隊列指針等。B、CPU上下文信息:CPU各種寄存器當(dāng)前的值以及邏輯寄存器。C、資源管理的信息:段表地址、頁表地址、根目錄、文件描述字等。當(dāng)需要創(chuàng)建一個任務(wù)的時候,就為它生成一個TCB,并初始化這個TCB 的內(nèi)容;當(dāng)需要中止一個任務(wù)的時候,只要回收它的T

53、CB 就可以了。(7)任務(wù)的切換基本思想:把當(dāng)前任務(wù)的運行上下文保存起來,并恢復(fù)新任務(wù)的上下文。任務(wù)切換通常有下面的基本步驟:A、將處理器的運行上下文保存在當(dāng)前任務(wù)的TCB 中。B、更新當(dāng)前任務(wù)的狀態(tài),從運行狀態(tài)變?yōu)榫途w狀態(tài)或阻塞狀態(tài)。C、按照一定的策略,從所有處于就緒狀態(tài)的任務(wù)中選擇一個去運行。D、修改新任務(wù)的狀態(tài),從就緒狀態(tài)變成運行狀態(tài)。E、根據(jù)新任務(wù)的TCB 的內(nèi)容,恢復(fù)它的運行上下文環(huán)境。在一個多任務(wù)的操作系統(tǒng)中,采用任務(wù)隊列的方式來組織它的所有任務(wù)。由操作系統(tǒng)來維護一組隊列,用來表示系統(tǒng)當(dāng)中所有任務(wù)的當(dāng)前狀態(tài),不同的狀態(tài)用不同的隊列來標志。(8)任務(wù)的調(diào)度調(diào)度器可以看作CPU 的資源

54、管理者。任務(wù)調(diào)度的首要問題是:何時進行調(diào)度,即調(diào)度發(fā)生的時機。一般有下面幾種情形:A、一個新任務(wù)被創(chuàng)建時,需要決定運行新任務(wù)還是繼續(xù)執(zhí)行父任務(wù)。B、一個任務(wù)運行結(jié)束時,需要從就緒隊列中選擇某個任務(wù)去運行。C、一個任務(wù)運行阻塞時,需要選擇另一個任務(wù)去運行。D、一個I/O 操作完成,任務(wù)阻塞結(jié)束,立即執(zhí)行新就緒任務(wù)還是繼續(xù)執(zhí)行被中斷任務(wù)。E、一個時鐘節(jié)拍結(jié)束時,需要對就緒任務(wù)重新調(diào)度。任務(wù)調(diào)度的第二個問題是:如何調(diào)度,即調(diào)度方式。主要有兩種方式:A、不可搶占調(diào)度方式:例如時間片輪轉(zhuǎn)。B、可搶占調(diào)度方式:例如優(yōu)先級調(diào)度。實時操作系統(tǒng)大都采用可搶占調(diào)度方式。任務(wù)調(diào)度的第三個問題是:調(diào)度算法。A、先來先

55、服務(wù)算法:按照任務(wù)到達的先后次序進行調(diào)度,是不可搶占的調(diào)度方式。B、短作業(yè)優(yōu)先算法:各個任務(wù)開始執(zhí)行之前,事先預(yù)計好它的執(zhí)行時間,從中選擇用時較短的任務(wù)優(yōu)先執(zhí)行。C、時間片輪轉(zhuǎn)算法:所有的就緒任務(wù)按照先來先服務(wù)的原則排成一個隊列。在每次調(diào)度的時候,把處理器分派給隊列當(dāng)中的第一個任務(wù),讓它去執(zhí)行一小段時間。在這個時間段里任務(wù)被阻塞或由于其他原因暫停,或者任務(wù)的時間片用完了,它會被送到就緒隊列的末尾,然后調(diào)度器再執(zhí)行當(dāng)前隊列的第一個任務(wù)。這種算法的優(yōu)點是各個就緒任務(wù)都平均地分配使用CPU 的時間,每個就緒任務(wù)都能一直保持著活動性。時間片輪轉(zhuǎn)法有一個默認前提,即位于就緒隊列中的各個任務(wù)是同等重要的。

56、D、優(yōu)先級算法:給每個任務(wù)都設(shè)置一個優(yōu)先級。然后在任務(wù)調(diào)度的時候,在所有處于就緒狀態(tài)的任務(wù)中選擇優(yōu)先級最高的那個任務(wù)去運行。采用優(yōu)先級調(diào)度算法的一個問題是可能會發(fā)生優(yōu)先級反轉(zhuǎn)(教程P285),出現(xiàn)任務(wù)“饑餓”現(xiàn)象。(9)實時系統(tǒng)調(diào)度對于RTOS 調(diào)度器來說,任務(wù)之間的公平性并不是最重要的,它追求的是實時性。A、單調(diào)速率調(diào)度算法(RMS):任務(wù)的優(yōu)先級與它的周期表現(xiàn)為單調(diào)函數(shù)的關(guān)系,任務(wù)的周期越短,優(yōu)先級越高,任務(wù)的周期越長,優(yōu)先級越低。RMS 假定任務(wù)是相同獨立的、周期性的、任務(wù)在能夠在任何位置被搶占,而實際中的系統(tǒng),任務(wù)之間需要進行通信和同步,這是一種理想的調(diào)度方法,實際中并不一定存在。B、

57、最早期限優(yōu)先法(EDF):根據(jù)任務(wù)的截止時間來確定其優(yōu)先級,對于時間限期最近的任務(wù),分配最高的優(yōu)先級。當(dāng)有一個新的任務(wù)處于就緒狀態(tài)時,各個任務(wù)的優(yōu)先級就有可能要進行調(diào)整,選擇截止時間最近的任務(wù)去運行。(10)任務(wù)互斥A、任務(wù)之間的關(guān)系:相互獨立、任務(wù)互斥、任務(wù)同步、任務(wù)通信。B、任務(wù)間的互斥:當(dāng)前已經(jīng)有一個任務(wù)正在訪問臨界區(qū)共享數(shù)據(jù),那么其他任務(wù)暫時不能訪問。C、提出互斥訪問的四個條件:a、在任何時候最多只能有一個任務(wù)位于它的臨界區(qū)中。b、不能事先假定CPU 的個數(shù)和系統(tǒng)的運行速度。c、沒有任務(wù)位于它的臨界區(qū)中,它不妨礙其他任務(wù)去訪問臨界區(qū)資源。d、任何一個任務(wù)進入臨界區(qū)的請求必須在有限的時間內(nèi)得到滿足,不能無限期。D、任務(wù)互斥的解決方案:a、關(guān)閉中斷法b、繁忙等待法c、信號量處理(11)信號量

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論