第一篇:嵌入式考試總結(jié)
嵌入式系統(tǒng)定義:以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。
嵌入式系統(tǒng)應(yīng)用:工業(yè)控制火控系統(tǒng)、飛行控制系統(tǒng)、測試儀器、醫(yī)療設(shè)備、游戲機(jī) 應(yīng)用發(fā)展階段:無操作系統(tǒng)的嵌入算法階段、簡單監(jiān)控式的實(shí)時(shí)操作系統(tǒng)階段、通用的嵌入式網(wǎng)絡(luò)實(shí)時(shí)操作系統(tǒng)階段
嵌入式系統(tǒng)已經(jīng)有了近30年的發(fā)展歷史,它是硬件和軟件交替發(fā)展的雙螺旋式發(fā)展
嵌入式系統(tǒng)特點(diǎn):1 面向特定應(yīng)用、2 可裁減、3.處理器體系結(jié)構(gòu)和類型多樣化。4.大多都有實(shí)時(shí)操作系統(tǒng)。5 一般有實(shí)時(shí)性要求。6資源比較少。7 軟件固化在存儲(chǔ)器芯片中。8 通常要求功耗小。9 集成度高。10嵌入式系統(tǒng)本身不具備自舉開發(fā)能力 嵌入式系統(tǒng)的組成:硬件平臺(tái)、板級(jí)支持包(BSP)、操作系統(tǒng)、應(yīng)用程序 嵌入式系統(tǒng)硬件平臺(tái):嵌入式處理器、存儲(chǔ)器件、外設(shè)接口
嵌入式CPU的特點(diǎn):1 對(duì)實(shí)時(shí)多任務(wù)操作系統(tǒng)具有很強(qiáng)的支持能力。2具有功能很強(qiáng)的存儲(chǔ)區(qū)保護(hù)功能。3 處理器結(jié)構(gòu)可擴(kuò)展。4 低功耗。嵌入式CPU的分類:嵌入式微控制器(EMCU)、嵌入式微處理器(EMPU)、嵌入式DSP處理器(EDSP)、嵌入式片上系統(tǒng)(ESoC)
MCU(MicroController Unit)MCU芯片內(nèi)集成了ROM/EEPOM、RAM、總線、總線邏輯、I/O等必要功能和外設(shè)。已有20多年的歷史。如51,98/96。
與MPU比,單片化、體積小,功耗、成本低,可靠性高,能節(jié)省系統(tǒng)開支、降低出錯(cuò)概率和減少高頻干擾適合控制系統(tǒng)。
發(fā)展:內(nèi)核化(內(nèi)核 +IP、內(nèi)核 +FPGA、內(nèi)核+外圍模塊)、專用化(接口單片機(jī)、網(wǎng)絡(luò)單片機(jī)、射頻單片機(jī)、數(shù)采單片機(jī)、電力線載波…)
DSP(Digital Signal Processor)專用于信號(hào)處理,采用哈佛體系結(jié)構(gòu),指令系統(tǒng)特殊,具有較高的編譯效率和指令執(zhí)行速度。如數(shù)字濾波、快速傅立葉變換和離散余弦變換等DSP算法。
MPU(MicroProcessor Unit)由CPU演變而來,32位以上。與通用CPU比,MPU只保留與應(yīng)用相關(guān)的功能和硬件,除去冗余的功能部分,實(shí)現(xiàn)最少的功耗和資源,滿足嵌入式需求。與工業(yè)控制計(jì)算機(jī)比,MPU體積小,重量輕,成本低,可靠性高。常見的嵌入式處理器核:ARM、MIPS、PowerPC、68K、x86 SoC(System on Chip)是嵌入式系統(tǒng)多種形式的統(tǒng)一歸宿SOC最大的特點(diǎn),成功實(shí)現(xiàn)軟硬件無縫結(jié)合,直接在處理器芯片內(nèi)嵌入操作系統(tǒng)的代碼模塊。SOC具有極高的綜合性。由于絕大部分系統(tǒng)構(gòu)件都是在系統(tǒng)內(nèi)部,整個(gè)系統(tǒng)特別簡潔,不僅減少了功耗和體積,并且提高了可靠性,和設(shè)計(jì)效率。降低內(nèi)部工作電壓,減少芯片功耗;減少芯片引腳數(shù)目,簡化制造過程;簡化外圍驅(qū)動(dòng)單元,優(yōu)化處理速度; 優(yōu)化內(nèi)部電路結(jié)構(gòu),降低系統(tǒng)噪聲
馮.諾伊曼結(jié)構(gòu),也稱普林斯頓結(jié)構(gòu)、程序指令存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器合并在一起的存儲(chǔ)器結(jié)構(gòu)。程序指令存儲(chǔ)地址和數(shù)據(jù)存儲(chǔ)地址指向同一個(gè)存儲(chǔ)器的不同物理位置,因此程序指令和數(shù)據(jù)的寬度相同,如英特爾公司的8086中央處理器的程序指令和數(shù)據(jù)都是16位寬。
哈佛結(jié)構(gòu):程序指令存儲(chǔ)和數(shù)據(jù)存儲(chǔ)分開的存儲(chǔ)器結(jié)構(gòu)。程序指令存儲(chǔ)和數(shù)據(jù)存儲(chǔ)分開,可以使指令和數(shù)據(jù)有不同的數(shù)據(jù)寬度,如Microchip公司的PIC16芯片的程序指令是14位寬度,而數(shù)據(jù)是8位寬度。中央處理器首先到程序指令存儲(chǔ)器中讀取程序指令內(nèi)容,解碼后得到數(shù)據(jù)地址,再到相應(yīng)的數(shù)據(jù)存儲(chǔ)器中讀取數(shù)據(jù),并進(jìn)行下一步的操作(通常是執(zhí)行)。CISC:復(fù)雜指令集 特點(diǎn)是指令數(shù)量龐大臃腫,具有大量的指令和尋址方式每個(gè)指令不管執(zhí)行頻度高低都處于同一個(gè)優(yōu)先級(jí),程序員的編程工作相對(duì)容易。但它的致命弊端是執(zhí)行效率低下,處理器的晶體管被大量低效的指令所占據(jù),資源利用率頗為低下。
RISC:精簡指令集 8/2原則:80%的程序只使用20%的指令大多數(shù)程序只使用少量的指令就能夠運(yùn)行。在通道中只包含最有用的指令 確保數(shù)據(jù)通道快速執(zhí)行每一條指令使CPU硬件結(jié)構(gòu)設(shè)計(jì)變得更為簡單嵌入式處理器采用RISC 指令流水:執(zhí)行指令的過程:(1)取指令(Fetch)(2)譯碼(Decode)(3)取操作數(shù)(Fetch Operant)(4)執(zhí)行指令(Execute)(5)寫回(Write Back)采用指令流水線技術(shù),提高處理器的執(zhí)行效率
嵌入式處理器的技術(shù)指標(biāo) :1.功能:集成的存儲(chǔ)器、外設(shè)、接口等的種類和數(shù)量;2.字長:字長指數(shù)據(jù)總線位數(shù);3.處理速度:4.尋址能力:尋址能力取決于地址總線的寬度;5.功耗:工作功耗、待機(jī)功耗等,功耗與頻率,功耗與電壓;6.溫度:民用、工業(yè)用、軍用、航天等級(jí)別。民用范圍為0℃~70℃
嵌入式處理器的選擇:
1、技術(shù)指標(biāo)原則:首要考慮功能,其次考慮對(duì)其他芯片的支持情況,再次考慮處理器的字長、尋址空間、主頻、功耗等;
2、熟悉原則: 降低開發(fā)風(fēng)險(xiǎn)和難度;
3、成本原則:處理器成本和額外成本;
4、支持工具原則:選擇合適的軟件開發(fā)工具;
5、整體原則:全盤考慮處理器和其他部件或軟件的兼容和約束
嵌入式處理器的發(fā)展方向:
1、多核結(jié)構(gòu):在一個(gè)處理器中集成兩個(gè)或多個(gè)完整的CPU核;提升處理器的并行性能??s短核間的互連和通信延遲。多核結(jié)構(gòu)簡單,易于優(yōu)化設(shè)計(jì)。
2、更低的功耗:功耗更小,工作方式:等待、暫停、休眠、空閑、節(jié)電等;
3、更先進(jìn)的工藝和更小的封裝;
4、更寬的工作電壓范圍:3.3~5.5 V 2.2~6 V。最低工作電壓1.8 V。ARM(Advanced RISC Machines)公司是全球領(lǐng)先的16/32位RISC微處理器知識(shí)產(chǎn)權(quán)設(shè)計(jì)供應(yīng)商
ARM優(yōu)點(diǎn):全新設(shè)計(jì)的RISC結(jié)構(gòu)的32位處理器;因?yàn)槭侨碌脑O(shè)計(jì),開始就是32位,沒有歷史遺留問題(比如x86)。所以,更便于對(duì)處理器結(jié)構(gòu)進(jìn)行優(yōu)化;價(jià)格低廉;ARM公司不生產(chǎn)芯片,專心研究處理器內(nèi)核的解決方案;低功耗
ARM架構(gòu):32位ALU31個(gè);32位通用寄存器及6位狀態(tài)寄存器;32X8位乘法器;32X32位桶型移位寄存器;指令譯碼及控制邏輯;指令流水線;數(shù)據(jù)地址寄存器 ARM的流水線結(jié)構(gòu):一條指令的執(zhí)行可分成若干階段:(1)取指,從存儲(chǔ)器中取出指令(FETCH)(2)譯碼,指令譯碼(DEC)(3)取操作數(shù),如從寄存器讀?。≧EG)(4)執(zhí)行計(jì)算(ALU)(5)存儲(chǔ)器訪問,操作數(shù)與存儲(chǔ)器有關(guān)(Mem)(6)結(jié)果寫回寄存器(RES)
程序執(zhí)行時(shí)間:T(proc)=N(inst)*CPI/f(clk)T(proc):程序執(zhí)行時(shí)間N(inst):一個(gè)程序的指令CPI:執(zhí)行一條指令的平均周期f(clk):處理器的時(shí)鐘周期,減少程序執(zhí)行時(shí)間的關(guān)鍵是減少CPI 流水線除了加深流水線的深度和加快時(shí)鐘頻率來提高流水線的效率和吞吐率外,還要解決:結(jié)構(gòu)相關(guān):在流水線中重疊執(zhí)行的指令,產(chǎn)生資源沖突。ARM中采用I-Cache,D-Cache,ALU采用單獨(dú)加法器計(jì)算地址;數(shù)據(jù)相關(guān):一條指令需要前面指令的執(zhí)行結(jié)果。定向技術(shù)(將ALU結(jié)果直接送到ALU輸入)、流水線互鎖(通過硬件檢測,暫停至定向技術(shù)可以解決)、編譯器優(yōu)化;控制相關(guān):分支指令時(shí)。指令預(yù)測、計(jì)算分支轉(zhuǎn)移成功的PC值
ARM存儲(chǔ)結(jié)構(gòu):ARM架構(gòu)處理器的存儲(chǔ)器尋址空間有4GB;有的帶有I-CACHE和D-CACHE;片內(nèi)不帶RAM和ROM。系統(tǒng)需要的RAM、ROM(包括FLASH)都通過總線外接;由于存儲(chǔ)器尋址空間達(dá)4GB,有的片內(nèi)帶有MMU;允許外接 PCMCIA 存儲(chǔ)器的分類:與CPU的聯(lián)系:主存:直接和CPU交換信息;輔存:不能直接和CPU交換信息。按存儲(chǔ)元件使用的材料:半導(dǎo)體存儲(chǔ)器(常作主存);磁存儲(chǔ)器(磁帶,磁盤);光存儲(chǔ)器(光盤)。(對(duì)半導(dǎo)體存儲(chǔ)器)按讀寫工作方式可分:RAM(隨機(jī)存儲(chǔ)器),ROM(只讀存儲(chǔ)器)存儲(chǔ)器技術(shù)指標(biāo):1.存儲(chǔ)容量,2.存取速度3.易失性4.只讀性5.功耗6.可靠性7.價(jià)格 存儲(chǔ)空間的組織:實(shí)際存儲(chǔ)器由多種類型和容量的存儲(chǔ)芯片組成。合理安排每個(gè)存儲(chǔ)芯片的地址范圍。存儲(chǔ)空間的組織問題實(shí)質(zhì)是地址譯碼電路的設(shè)計(jì)問題。地址譯碼的過程包括兩個(gè)步驟:先選中某個(gè)存儲(chǔ)芯片(稱為片選),其次選中片內(nèi)的某個(gè)單元(稱為片內(nèi)尋址)。片選過程:由譯碼電路對(duì)高位地址進(jìn)行譯碼后產(chǎn)生的片選信號(hào);片內(nèi)尋址:由地址譯碼電路對(duì)低位地址進(jìn)行譯碼實(shí)現(xiàn)存儲(chǔ)單元尋址。常用的片選方法:線選法、全譯碼法、部分譯碼法和混合譯碼法等。
RAM是一種可讀可寫的內(nèi)存,在上電的情況下才能保持在存儲(chǔ)器中。(1)存放當(dāng)前正在執(zhí)行的程序和數(shù)據(jù)。(2)存放I/O緩沖數(shù)據(jù)(3)作為中斷服務(wù)程序中保護(hù)現(xiàn)場信息的堆棧 ROM分類:(1)掩膜型ROM:內(nèi)容在芯片生產(chǎn)出來之前指定。(2)PROM:一次性編程的只讀存儲(chǔ)器,OTP(Once Time Program)。(3)EPROM:可以修改ROM中的數(shù)據(jù),即重復(fù)燒錄。紫外線照射。4)E2PROM:斷電情況下保存數(shù)據(jù),又能在應(yīng)用系統(tǒng)中在線修改
Flash存儲(chǔ)器概述:Flash存儲(chǔ)器就是俗稱的閃存,它是一種非易失性存儲(chǔ)芯片,F(xiàn)lash存儲(chǔ)器具有高密度、低價(jià)格、非易失性、快速(讀取速度較快)及可用電擦除可編程等特點(diǎn)。Flash存儲(chǔ)器被廣泛應(yīng)用于各類移動(dòng)存儲(chǔ)器卡、U盤、數(shù)碼相機(jī)記憶卡、記憶棒等。
Flash存儲(chǔ)器分類:Flash存儲(chǔ)器主要有NOR Flash存儲(chǔ)器和NAND Flash存儲(chǔ)器兩類。NOR Flash:基于Intel公司所開發(fā)的架構(gòu),可以隨機(jī)讀取任意單元的內(nèi)容,讀取速度較快。寫入和擦除的速度較低,以塊(Block)為單位進(jìn)行數(shù)據(jù)的讀/寫。最大優(yōu)點(diǎn)是可以直接從Flash中運(yùn)行程序,缺點(diǎn)是工藝復(fù)雜,價(jià)格也比較貴。
NAND Flash:基于東芝公司(Toshiba)所開發(fā)的結(jié)構(gòu)通過I/O指令的方式進(jìn)行讀取,因此需要通過驅(qū)動(dòng)程序來讀取。存儲(chǔ)容量較大、成本較低,常用來制作記憶卡。存儲(chǔ)空間是按照塊和頁(Page)的概念來組織的。
接口的功能:外設(shè)識(shí)別和尋址,速度匹配和緩沖,時(shí)序匹配,信息格式匹配和信息類型轉(zhuǎn)換等。接口的結(jié)構(gòu):接口一般由數(shù)據(jù)存儲(chǔ)(緩沖)電路,控制命令邏輯電路,狀態(tài)設(shè)置和存儲(chǔ)電路構(gòu)成 接口數(shù)據(jù)傳輸?shù)姆绞剑?.程序查詢方式。2.中斷方式。3.DMA。
接口設(shè)計(jì)的過程:接口設(shè)計(jì)首先在硬件上分析接口兩側(cè)情況.然后考慮CPU總線與I/O設(shè)備之間信號(hào)的轉(zhuǎn)換.合理選用I/O接口芯片.進(jìn)行硬件連接.最后進(jìn)行接口驅(qū)動(dòng)程序分析與設(shè)計(jì)。總線:是各種信號(hào)線的集合,是嵌入式系統(tǒng)中各部件之間傳輸數(shù)據(jù)、地址和控制信息的公共通路.總線的主要參數(shù):總線帶寬、總線位寬、總線工作頻率等幾個(gè).常用的總線:USB總線.I2C總線.DMA總線.SPI總線.I2S總線.CAN總線.RS232C/485總線.IEEE1394總線等
電路:電路是由若干相互連接、相互作用的基本電子器件組成的具有特定功能的電子系統(tǒng) 電路原理圖:描述元器件或芯片引腳的邏輯連接的圖紙,由元器件、連接、標(biāo)號(hào)等組成。印制電路板(Print Circuit Board,PCB)描述元器件或芯片引腳的物理連接的圖紙
采用嵌入式操作系統(tǒng)的必要性:1提高系統(tǒng)的可靠性2提高開發(fā)效率,縮短開發(fā)周期3能充分發(fā)揮32位CPU的多任務(wù)潛力
嵌入式操作系統(tǒng)的特點(diǎn):具備一般操作系統(tǒng)的基本功能,如任務(wù)調(diào)度、同步機(jī)制、中斷處理和內(nèi)存管理等外,還有以下特點(diǎn):(1)可拆裝性(2)支持實(shí)時(shí)性(3)統(tǒng)一的接口(4)操作方便簡單(5)提供強(qiáng)大的網(wǎng)絡(luò)功能(6)強(qiáng)穩(wěn)定性、弱交互性(7)固化代碼(8)更好的硬件適應(yīng)性
實(shí)時(shí)系統(tǒng)主要衡量指標(biāo):響應(yīng)時(shí)間(Response Time)控制應(yīng)用中最重要;生存時(shí)間(Survival Time)在此時(shí)間內(nèi)數(shù)據(jù)有效;吞吐量(Throughout)一定時(shí)間內(nèi)系統(tǒng)可以處理事件的總數(shù) 實(shí)時(shí)操作系統(tǒng)的分類:一.速度分,強(qiáng)實(shí)時(shí)系統(tǒng)、一般實(shí)時(shí)系統(tǒng)、弱實(shí)時(shí)系統(tǒng).二.確定性分,硬實(shí)時(shí)系統(tǒng)、軟實(shí)時(shí)系統(tǒng).三.軟件結(jié)構(gòu)分,1、單線程程序(1)循環(huán)輪詢:特點(diǎn):對(duì)簡單系統(tǒng)易于實(shí)現(xiàn)、沒有中斷,不會(huì)出現(xiàn)隨機(jī)性問題、應(yīng)用領(lǐng)域有限、對(duì)大量I/O服務(wù)的應(yīng)用實(shí)現(xiàn)困難、大的程序不便調(diào)試,適合慢速系統(tǒng)(2)有限狀態(tài)機(jī):特點(diǎn):小系統(tǒng)易于實(shí)現(xiàn)、可以執(zhí)行快速、只通過輸出功能改變機(jī)器的響應(yīng)、應(yīng)用領(lǐng)域有限、不能保證確定性、大系統(tǒng)難于調(diào)試。(3)事件驅(qū)動(dòng)系統(tǒng),事件驅(qū)動(dòng)系統(tǒng)是能對(duì)外部時(shí)間直接響應(yīng)的系統(tǒng)。包括前后臺(tái)、實(shí)時(shí)多任務(wù)、多處理器。是RTOS的主要形式。四.開放性分
1、商用系統(tǒng):特點(diǎn):充分滿足了模塊化設(shè)計(jì)的要求,可把程序按照模塊化的要求自然分解成若干獨(dú)立的任務(wù)。啟動(dòng)監(jiān)控任務(wù)程序,提高了系統(tǒng)的可靠性。良好的開發(fā)工具,提高了開發(fā)效率。特殊設(shè)計(jì),避免系統(tǒng)崩潰。產(chǎn)品不斷升級(jí)。
2、專用系統(tǒng),一些專業(yè)廠家為本公司產(chǎn)品特制的OS,不提供應(yīng)用開發(fā)者使用。如CISCO的網(wǎng)絡(luò)產(chǎn)品的EPOC等。特點(diǎn):操作系統(tǒng)功能較弱。針對(duì)性強(qiáng)、安全性高
3、開放系統(tǒng),如:各類嵌入式LINUX(RT LINU、μCLINUX)、μC/OS等。特點(diǎn):源碼公開、功能簡單、技術(shù)支持差、系統(tǒng)穩(wěn)定性差、對(duì)開發(fā)者要求高。
典型的RTOS包括:
1、RTOS基本內(nèi)核:RTOS基礎(chǔ)和核心。包括任務(wù)管理、中斷管理、基本的通信管理和內(nèi)存管理。其中對(duì)外設(shè)的管理只提供中斷管理,不提供具體的操作。
2、擴(kuò)展內(nèi)核:方便用戶使用的擴(kuò)展,建立在基本內(nèi)核上。如GUI、TCP/IP、瀏覽器、電源管理、文件管理
3、設(shè)備驅(qū)動(dòng)接口:在內(nèi)核和IO間,定義軟硬件的界線,方便RTOS移植和升級(jí)。有的統(tǒng)一于RTOS基本內(nèi)核。
4、API RTOS與通用操作系統(tǒng)的(GPOS)比較:基本設(shè)計(jì)原則 :GPOS盡量縮短系統(tǒng)的平均響應(yīng)時(shí)間并提高系統(tǒng)的吞吐率,在單位時(shí)間內(nèi)為盡可能多的用戶請(qǐng)求提供服務(wù)。RTOS:采用各種算法和策略,始終保證系統(tǒng)行為的可預(yù)測性(predictability),即在系統(tǒng)運(yùn)行的任何時(shí)刻,在任何情況下,實(shí)時(shí)操作系統(tǒng)的資源調(diào)配策略都能為爭奪資源(包括CPU、內(nèi)存、網(wǎng)絡(luò)帶寬等)的多個(gè)實(shí)時(shí)任務(wù)合理地分配資源,使每個(gè)實(shí)時(shí)任務(wù)的實(shí)時(shí)性要求都能得到滿足。與通用操作系統(tǒng)不同,實(shí)時(shí)操作系統(tǒng)注重的不是系統(tǒng)的平均表現(xiàn),而是要求每個(gè)實(shí)時(shí)任務(wù)在最壞情況下都要滿足其實(shí)時(shí)性要求.任務(wù)調(diào)度策略:GPOS:基于優(yōu)先級(jí)的搶先式調(diào)度策略,對(duì)于優(yōu)先級(jí)相同的進(jìn)程則采用時(shí)間片輪轉(zhuǎn)調(diào)度方式,用戶進(jìn)程可以通過系統(tǒng)調(diào)用動(dòng)態(tài)地調(diào)整自己的優(yōu)先級(jí),操作系統(tǒng)也可根據(jù)情況調(diào)整某些進(jìn)程的優(yōu)先級(jí)。RTOS :采用固定優(yōu)先級(jí)搶先式調(diào)度方式,進(jìn)程的優(yōu)先級(jí)是固定不變的,并且該優(yōu)先級(jí)是在運(yùn)行前通過某種優(yōu)先級(jí)分配策略來指定的。內(nèi)存管理:GPOS:虛存管理機(jī)制 RTOS:在原有虛存管理機(jī)制的基礎(chǔ)上增加頁面鎖。得到 了虛存管理機(jī)制為軟件開發(fā)帶來的好處,又提高了系統(tǒng)的可預(yù)測性。缺點(diǎn)是由于TLB等機(jī)制的設(shè)計(jì)也是按照注重平均表現(xiàn)的原則進(jìn)行的,因此系統(tǒng)的可預(yù)測性并不能完全得到保障,采用靜態(tài)內(nèi)存劃分的方式,為每個(gè)實(shí)時(shí)任務(wù)劃分固定的內(nèi)存區(qū)域。這種方式的優(yōu)點(diǎn)是系統(tǒng)具有較好的可預(yù)測性,缺點(diǎn)是靈活性不夠好。中斷處理 GPOS:中斷處理程序的優(yōu)先級(jí)被設(shè)定為高于任何用戶進(jìn)程。RTOS:一種是除時(shí)鐘中斷外,屏蔽所有其它中斷,中斷處理程序變?yōu)橹芷谛缘妮喸儾僮鳎@些操作由核心態(tài)的設(shè)備驅(qū)動(dòng)程序或由用戶態(tài)的設(shè)備支持庫來完成。優(yōu)點(diǎn):充分保證了系統(tǒng)的可預(yù)測性。缺點(diǎn):對(duì)環(huán)境變化的響應(yīng)可能不如上述中斷處理方式快,另外輪詢操作在一定程度上降低了CPU的有效利用率。另一種是對(duì)于采用輪詢方式無法滿足需求的外部事件,采用中斷方式,其它時(shí)間仍然采用輪詢方式。此時(shí)中斷處理程序與所以其它任務(wù)一樣擁有優(yōu)先級(jí),調(diào)度器根據(jù)優(yōu)先級(jí)對(duì)處于就緒態(tài)的任務(wù)和中斷處理程序統(tǒng)一進(jìn)行處理器調(diào)度。這種方式使外部事件的響應(yīng)速度加快,并避免了上述中斷方式帶來第二個(gè)問題,但第一個(gè)問題仍然存在。共享資源的互斥訪問 GPOS:采用信號(hào)量機(jī)制來解決共享資源的互斥訪問 RTOS:對(duì)傳統(tǒng)的信號(hào)量機(jī)制進(jìn)行了一些擴(kuò)展,引入了如優(yōu)先級(jí)繼承協(xié)議、優(yōu)先級(jí)頂置協(xié)議以及Stack Resource Policy等機(jī)制,較好地解決了優(yōu)先級(jí)倒置的問題。系統(tǒng)調(diào)用以及系統(tǒng)內(nèi)部操作的時(shí)間開銷 進(jìn)程通過系統(tǒng)調(diào)用得到操作系統(tǒng)提供的服務(wù),操作系統(tǒng)通過內(nèi)部操作(如上下文切換等)來完成一些內(nèi)部管理工作。為保證系統(tǒng)的可預(yù)測性,實(shí)時(shí)操作系統(tǒng)中的所有系統(tǒng)調(diào)用以及系統(tǒng)內(nèi)部操作的時(shí)間開銷都應(yīng)是有界的,并且該界限是一個(gè)具體的量化數(shù)值。而在通用操作系統(tǒng)中對(duì)這些時(shí)間開銷則未做如此限制
系統(tǒng)的可重入性 在通用操作系統(tǒng)中,核心態(tài)系統(tǒng)調(diào)用往往是不可重入的,當(dāng)一低優(yōu)先級(jí)任務(wù)調(diào)用核心態(tài)系統(tǒng)調(diào)用時(shí),在該時(shí)間段內(nèi)到達(dá)的高優(yōu)先級(jí)任務(wù)必須等到低優(yōu)先級(jí)的系統(tǒng)調(diào)用完成才能獲得CPU,這就降低了系統(tǒng)的可預(yù)測性。因此,實(shí)時(shí)操作系統(tǒng)中的核心態(tài)系統(tǒng)調(diào)用往往設(shè)計(jì)為可重入的。
輔助工具 實(shí)時(shí)操作系統(tǒng)額外提供了一些輔助工具,如實(shí)時(shí)任務(wù)在最壞情況下的執(zhí)行時(shí)間估算工具、系統(tǒng)的實(shí)時(shí)性驗(yàn)證工具等,可幫助工程師進(jìn)行系統(tǒng)的實(shí)時(shí)性驗(yàn)證工作。
操作系統(tǒng)的移植:嵌入式操作系統(tǒng)還有一個(gè)特點(diǎn)是,針對(duì)不同的平臺(tái),系統(tǒng)不是直接可用的,一般需要經(jīng)過針對(duì)專門平臺(tái)的移植操作系統(tǒng)才能正常工作。嵌入式操作系統(tǒng)移植的目的是指使操作系統(tǒng)能在某個(gè)微處理器或微控制器上運(yùn)行
操作系統(tǒng)的移植大體可以分為三個(gè)層次:結(jié)構(gòu)層次的移植。如果待移植處理器的結(jié)構(gòu)不同于任何已經(jīng)支持的處理器結(jié)構(gòu)。平臺(tái)層次的移植。如果待移植處理器是某種操作系統(tǒng)已支持體系的處理器。板級(jí)移植。如果所用處理器已被操作系統(tǒng)支持,就只需要板級(jí)移植了。包括驅(qū)動(dòng)程序的編寫和環(huán)境變量設(shè)置等內(nèi)容等
Windows CE系統(tǒng)架構(gòu):Windows CE屬于比較典型的微內(nèi)核操作系統(tǒng)。在內(nèi)核中僅僅實(shí)現(xiàn)進(jìn)程、線程、調(diào)度及內(nèi)存管理等最基本的模塊,而把圖形系統(tǒng)、文件系統(tǒng)及設(shè)備驅(qū)動(dòng)程序等等都作為單獨(dú)的用戶進(jìn)程來實(shí)現(xiàn)
WinCE系統(tǒng)包括四層結(jié)構(gòu):應(yīng)用程序、WinCE內(nèi)核映像、板級(jí)支持包(BSP)、硬件平臺(tái)。BSP(Board Support Packet——板級(jí)支持包)是介于底層硬件和上層軟件之間的底層軟件開發(fā)包,它主要的功能是給上層提供統(tǒng)一接口,同時(shí)屏蔽各種硬件底層的差異,以及提供操作系統(tǒng)的驅(qū)動(dòng)及硬件驅(qū)動(dòng)。簡單的說,就是BSP包含了所有與硬件有關(guān)的代碼,為操作系統(tǒng)提供了硬件平臺(tái)無關(guān)性
BSP組成:是一個(gè)包括啟動(dòng)程序Bootloader、OEM適配層程序(OAL)、標(biāo)準(zhǔn)開發(fā)板(SDB)和相關(guān)硬件設(shè)備的驅(qū)動(dòng)程序和配置文件的軟件包。
WinCE BSP組成:OEM改編層,Bootloader,設(shè)備驅(qū)動(dòng),配置文件
Windows CE開發(fā)環(huán)境搭建:1安裝ActiveSync4.5用于連接WindowsCE設(shè)備和安裝桌面Windows的PC機(jī)的工具2安裝Visual Studio 2005開發(fā)套件3安裝Visual Studio 2005 SP1 4安裝目標(biāo)設(shè)備SDK:Windows Mobile 6 professional SDK,Windows Mobile 6 professional image(CHS)
嵌入式系統(tǒng)的開發(fā)模式:嵌入式的開發(fā)與通用計(jì)算機(jī)系統(tǒng)的開發(fā)的最大不同是嵌入式系統(tǒng)采用交叉開發(fā)的架構(gòu)。首先,利用主機(jī)系統(tǒng)上豐富的資源及良好的開發(fā)環(huán)境開發(fā)和仿真調(diào)試目標(biāo)系統(tǒng)上的軟件。然后通過接口將交叉編譯的目標(biāo)代碼傳輸?shù)侥繕?biāo)系統(tǒng)上,并用交叉調(diào)試器在監(jiān)控程序或?qū)崟r(shí)內(nèi)核/操作系統(tǒng)的支持下進(jìn)行實(shí)時(shí)分析和調(diào)度。最后,目標(biāo)系統(tǒng)在特定的環(huán)境下運(yùn)行
嵌入式系統(tǒng)交叉開發(fā)環(huán)境:指用于嵌入式軟件開發(fā)的所有工具軟件的集合,一般包括文本編輯器,交叉編譯器,交叉調(diào)試器,仿真器,下載器等,由宿主機(jī)和目標(biāo)機(jī)組成,宿主機(jī)與目標(biāo)機(jī)之間在物理連接的基礎(chǔ)上建立起邏輯連接。
嵌入式開發(fā)環(huán)境的建立:1根據(jù)目標(biāo)系統(tǒng)的處理器體系結(jié)構(gòu)選擇合適的工具和仿真器2根據(jù)目標(biāo)系統(tǒng)上的接口資源,選擇合適的開發(fā)主機(jī)和目標(biāo)系統(tǒng)的聯(lián)系方式3選擇合適的開發(fā)主機(jī)操作系統(tǒng)(WINDOWS,LINUX)4在目標(biāo)機(jī)和主機(jī)系統(tǒng)安裝相應(yīng)開發(fā)工具,建立開發(fā)環(huán)境5嵌入式軟件開發(fā)工具根據(jù)不同的階段分類:需求分析工具,軟件設(shè)計(jì)工具,編碼調(diào)試工具,測試工具,配置管理工具、維護(hù)工具等。
嵌入式軟件開發(fā)工具根據(jù)嵌入式軟件開發(fā)分類:與嵌入式QS相關(guān)的開發(fā)工具,用于開發(fā):基于嵌入式OS的應(yīng)用,部分驅(qū)動(dòng)程序等;與嵌入式QS無關(guān)的開發(fā)工具,用于開發(fā):基本的驅(qū)動(dòng)程序,輔助硬件調(diào)試程序,系統(tǒng)軟件等
交叉調(diào)試器:調(diào)試程序和被調(diào)試程序運(yùn)行在不同機(jī)器上的調(diào)試器。調(diào)試器通過某種方式能控制目標(biāo)機(jī)上被調(diào)試程序的運(yùn)行方式。通過調(diào)試器能查看和修改目標(biāo)機(jī)上的內(nèi)存、寄存器以及被調(diào)試程序中的變量等。典型的交叉調(diào)試器方法:Crash and Burn,ROM Moniter。ROM Emulator,In Circuit E mulator,On Chip Debugging ROM Moniter:ROM Monitor是被固化且運(yùn)行在目標(biāo)機(jī)上的一段程序,負(fù)責(zé)監(jiān)控目標(biāo)機(jī)上被調(diào)試程序的運(yùn)行,與宿主機(jī)端的調(diào)試器一起完成對(duì)應(yīng)用程序的調(diào)試。調(diào)試器與ROM Monitor之間的通信遵循遠(yuǎn)程調(diào)試協(xié)議。
ROM Monitor能配合調(diào)試器完成:程序映像下載;對(duì)目標(biāo)機(jī)系統(tǒng)內(nèi)存的讀寫;對(duì)寄存器的讀寫;設(shè)置和清除不同類型的斷點(diǎn);單步執(zhí)行指令;復(fù)位系統(tǒng)等調(diào)試功能
調(diào)試過程(1)啟動(dòng)目標(biāo)機(jī),監(jiān)控器掌握對(duì)目標(biāo)機(jī)的控制,等待和調(diào)試器建立連接;(2)啟動(dòng)調(diào)試器,并和監(jiān)控器建立起通信連接;(3)使用調(diào)試器將應(yīng)用程序下載到目標(biāo)機(jī)上的RAM空間中;(4)使用調(diào)試器進(jìn)行調(diào)試,發(fā)出各種調(diào)試命令,監(jiān)控器解釋并執(zhí)行這些命令,通過目標(biāo)機(jī)上的各種異常來獲取對(duì)目標(biāo)機(jī)的控制,將命令執(zhí)行結(jié)果回傳給調(diào)試器;(5)如果程序有問題,在調(diào)試器的幫助下定位錯(cuò)誤;修改之后再重新編譯鏈接并下載程序,開始新的調(diào)試,如此反復(fù)直至程序正確運(yùn)行為止。
ROM Emulator:ROM Emulator是一種用于替代目標(biāo)機(jī)上的ROM芯片的設(shè)備,即ROM仿真器。利用這種設(shè)備,目標(biāo)機(jī)可以沒有ROM芯片,但目標(biāo)機(jī)的CPU可以讀取ROM Emulator設(shè)備上ROM芯片的內(nèi)容:ROM Emulator設(shè)備上的ROM芯片的地址可以實(shí)時(shí)地映射到目標(biāo)機(jī)的ROM地址空間,從而仿真(Emulation)目標(biāo)機(jī)的ROM。
ICE(In-Circuit Emulator)是一種用于替代目標(biāo)機(jī)上CPU的設(shè)備,即在線仿真器。它比一般的CPU有更多的引出線,能夠?qū)?nèi)部的信號(hào)輸出到被控制的目標(biāo)機(jī)。ICE上的Memory也可以被映射到用戶的程序空間,這樣即使目標(biāo)機(jī)不存在的情形下也可以進(jìn)行代碼的調(diào)試。連接ICE和目標(biāo)機(jī)時(shí),一般是將目標(biāo)機(jī)的CPU取下,而將ICE的CPU引出線接到目標(biāo)機(jī)的CPU插槽。用ICE進(jìn)行調(diào)試時(shí),在Host端運(yùn)行的調(diào)試器通過ICE來控制目標(biāo)機(jī)上運(yùn)行的程序。適用于:調(diào)試實(shí)時(shí)的應(yīng)用系統(tǒng);調(diào)試設(shè)備驅(qū)動(dòng)程序;對(duì)硬件進(jìn)行功能和性能的測試;實(shí)時(shí)性能分析
OCD(On Chip Debugging)是CPU芯片提供的一種調(diào)試功能(片上調(diào)試),可以認(rèn)為是一種廉價(jià)的ICE功能:OCD的價(jià)格只有ICE的20%,但提供了ICE 80%的功能。調(diào)試方法:1)將CPU的模式分為一般模式和調(diào)試模式2)一般模式下,CPU從內(nèi)存讀取指令執(zhí)行3)調(diào)試模式下,CPU首先從調(diào)試端口讀取指令,通過調(diào)試端口可以控制CPU進(jìn)入和退出調(diào)試模式;Host端的調(diào)試器可以直接向目標(biāo)機(jī)發(fā)送要執(zhí)行的指令,讀寫目標(biāo)機(jī)的內(nèi)存和各種寄存器,控制目標(biāo)程序的運(yùn)行以及完成各種復(fù)雜的調(diào)試功能。
軟件仿真器調(diào)試的特點(diǎn):優(yōu)點(diǎn):最大好處就是可以不用真正的目標(biāo)機(jī),可以在目標(biāo)機(jī)環(huán)境并不存在的條件下開發(fā)目標(biāo)機(jī)上的應(yīng)用系統(tǒng),并且在調(diào)試時(shí)可以利用Host資源提供更詳細(xì)的錯(cuò)誤診斷信息。缺點(diǎn):和實(shí)際的運(yùn)行環(huán)境差別很大;設(shè)備模擬的局限性較大;實(shí)時(shí)特性較差;對(duì)Host的資源要求較高。適用范圍:對(duì)時(shí)間特性沒有嚴(yán)格要求、沒有特殊外設(shè)、只需要驗(yàn)證邏輯正確的應(yīng)用程序
嵌入式軟件測試工具:能夠用來輔助測試的工具,主要用來支持測試人員的工作。一般有內(nèi)存分析工具,性能分析工具,覆蓋分析工具,缺陷跟蹤工具等。
軟硬件分開設(shè)計(jì)存在問題:缺少統(tǒng)一的軟硬件表示方法;劃分依靠先驗(yàn)定義;不能夠驗(yàn)證整個(gè)系統(tǒng);通過HW/SW邊界時(shí)很難發(fā)現(xiàn)不兼容問題;缺少成熟的設(shè)計(jì)流程;上市時(shí)間問題;描述更改變得困難
軟硬件協(xié)同設(shè)計(jì)定義:軟硬件共同設(shè)計(jì)目的是為硬件和軟件的協(xié)同描述,驗(yàn)證和綜合提供一種集成環(huán)境
軟硬件協(xié)同設(shè)計(jì)的基本需求:統(tǒng)一的軟硬件描述方式;交互式軟硬件劃分技術(shù) ;完整的軟硬件模型基礎(chǔ);正確的驗(yàn)證方法 軟件硬件協(xié)同設(shè)計(jì)的設(shè)計(jì)流程:用HDL語言和C語言進(jìn)行系統(tǒng)描述并進(jìn)行模擬仿真和系統(tǒng)功能驗(yàn)證;對(duì)軟硬件實(shí)現(xiàn)進(jìn)行功能劃分,分別用語言進(jìn)行設(shè)計(jì)并將其綜合起來進(jìn)行功能驗(yàn)證和性能預(yù)測等仿真確認(rèn)(協(xié)調(diào)模擬仿真);如無問題則進(jìn)行軟件和硬件詳細(xì)設(shè)計(jì);最后系統(tǒng)測試 軟件硬件協(xié)同設(shè)計(jì)的特點(diǎn):縮短開發(fā)周期;取得更好的設(shè)計(jì)效果;滿足苛刻的設(shè)計(jì)限制 ; 這種平臺(tái)的推出將不僅包含芯片本身,還必須包含完整的開發(fā)系統(tǒng)和典型應(yīng)用實(shí)例,而供應(yīng)商提供的服務(wù)和技術(shù)支持也當(dāng)然要成為產(chǎn)品不可分割的一部分 缺點(diǎn):典型的手動(dòng)劃分(manual Partition);固定應(yīng)用領(lǐng)域(carefully very specialized);逐漸增長的評(píng)估需求支持很弱(no abstract models);主要強(qiáng)調(diào)性能;模型的連貫性在設(shè)計(jì)重用中不被支持;商業(yè)系統(tǒng)更強(qiáng)調(diào)協(xié)同驗(yàn)證(co-verification)方面(more achievable goal)
嵌入式系統(tǒng)典型的接口(RS232RS484USB、同步串口及其他串口、I2C、I2S、AC97、LAN等的應(yīng)用特點(diǎn)): RS232:采用RS232的三根線進(jìn)行通信。接口為D型的9針陽性的插頭。低速紅外異步通信接口,支持使用紅外的雙向無線通信,提供發(fā)送編碼器和接收解碼器,支持IrDAV1.11的物理鏈路。不支持IR LED驅(qū)動(dòng)器和接收放大器。支持半雙工,最高波特率115.2Kb/s。藍(lán)牙 I2C總線接口:由PHILIPS創(chuàng)建的雙線方式串行總線.雙向數(shù)據(jù)線用于輸入輸出,雙向時(shí)鐘線用于控制和采樣,每個(gè)設(shè)備有一個(gè)地址,采用主從方式通信。實(shí)現(xiàn)主機(jī)與外設(shè)間通信.允許多主機(jī),此時(shí)采用裁決控制器。I2C單元是處理器內(nèi)部總線上的設(shè)備。USB:Host控制器基于PCI,提高了系統(tǒng)性能,即插即用,無需手動(dòng)設(shè)置地址、中斷……熱插撥,系統(tǒng)不需重啟便可工作.易于擴(kuò)展,理論上可連接多達(dá)127個(gè)設(shè)備,但一般都只限于連接兩三個(gè)設(shè)備,真正組網(wǎng)后的系統(tǒng)穩(wěn)定因素需要探討.USB2.0以低成本實(shí)現(xiàn)高達(dá)480Mb/s的傳輸率(USB1.0的全速設(shè)備可達(dá)12Mb/s)接口標(biāo)準(zhǔn)統(tǒng)一、端口供電 AC97控制器:支持AC97 V2.實(shí)現(xiàn)話音數(shù)字化
內(nèi)部集成電路聲音控制器(I2S)用于數(shù)字立體聲的規(guī)程 多媒體卡控制器(MMC)
Boot Loader技術(shù):嵌入式系統(tǒng)中的 OS 啟動(dòng)加載程序.引導(dǎo)加載程序(包括固化在固件(firmware)中的boot代碼,和Boot Loader兩大部分,是系統(tǒng)加電后運(yùn)行的第一段軟件代碼).相對(duì)于操作系統(tǒng)內(nèi)核來說,它是一個(gè)硬件抽象層,系統(tǒng)的加載啟動(dòng)任務(wù)就完全由 Boot Loader 來完成,在操作系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行一段小程序
功能:初始化硬件設(shè)備,建立內(nèi)存空間的映射圖,調(diào)整系統(tǒng)軟硬件環(huán)境,以便操作系統(tǒng)內(nèi)核啟動(dòng)
不通用:依賴于硬件,依賴于具體的板級(jí)配置 不同的 CPU有不同的Boot Loader 多階段的 Boot Loader:提供更為復(fù)雜的功能,以及更好的可移植性,從固態(tài)存儲(chǔ)設(shè)備上啟動(dòng)的 Boot Loader 大多都是 2 階段的啟動(dòng)過程,啟動(dòng)過程可以分為 stage 1和stage2兩部分 兩種不同的操作模式:一.啟動(dòng)加載模式:自主(Autonomous)模式,從目標(biāo)機(jī)上的某個(gè)固態(tài)存儲(chǔ)設(shè)備上將操作系統(tǒng)加載到 RAM 中運(yùn)行,Boot Loader 的正常工作模式
二.下載模式:通過串口連接或網(wǎng)絡(luò)連接等通信手段從主機(jī)(Host)下載文件,如:下載內(nèi)核映像和根文件系統(tǒng)映像等。從主機(jī)下載的文件通常首先被 Boot Loader 保存到目標(biāo)機(jī)的 RAM 中,然后再被 BootLoader 寫到目標(biāo)機(jī)上的FLASH 類固態(tài)存儲(chǔ)設(shè)備中。通常在第一次安裝內(nèi)核與根文件系統(tǒng)時(shí)被使用系統(tǒng)更新也會(huì)使用 Boot Loader 的這種工作模式,通常都會(huì)向它的終端用戶提供一個(gè)簡單的命令行接口
第二篇:嵌入式考試筆試
基于雙核處理器的視頻觀瞄設(shè)備,同時(shí)實(shí)現(xiàn)標(biāo)清分辨率的紅外和可見光兩路模擬復(fù)合信號(hào)采集和處理,且由兩個(gè)內(nèi)核中的CoreA完成紅外通道視頻信號(hào)處理,CoreB完成可見光通道視頻處理,系統(tǒng)需要按照嵌入式系統(tǒng)模式實(shí)現(xiàn)“通道關(guān)聯(lián)”實(shí)時(shí)紅外信號(hào)檢測與目標(biāo)型號(hào)判別。
要求:
1.畫出實(shí)現(xiàn)此功能的硬件流程圖和軟件流程圖
2.程序會(huì)用到數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)傳輸流程
3.在多任務(wù)情況下,進(jìn)程和線程的區(qū)別與聯(lián)系。以及如何保持同步
4.影響實(shí)時(shí)性的主要參數(shù),以及如何改善。
解:
12數(shù)據(jù)結(jié)構(gòu)會(huì)用到乒乓雙緩沖
3進(jìn)程是具有一定獨(dú)立功能的程序關(guān)于某個(gè)數(shù)據(jù)集合上的一次運(yùn)行活動(dòng),進(jìn)程是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位。
線程是進(jìn)程的一個(gè)實(shí)體,是CPU調(diào)度和分派的基本單位,它是比進(jìn)程更小的能獨(dú)立運(yùn)行的基本單位.線程自己基本上不擁有系統(tǒng)資源,只擁有一點(diǎn)在運(yùn)行中必不可少的資源(如程序計(jì)數(shù)器,一組寄存器和棧),但是它可與同屬一個(gè)進(jìn)程的其他的線程共享進(jìn)程所擁有的全部資源.聯(lián)系:線程是一個(gè)更加接近于執(zhí)行體的概念,它可以與同進(jìn)程中的其他線程共享數(shù)據(jù),但擁有自己的??臻g,擁有獨(dú)立的執(zhí)行序列。
區(qū)別:進(jìn)程和線程的主要差別在于它們是不同的操作系統(tǒng)資源管理方式。進(jìn)程有獨(dú)立的地址空間,一個(gè)進(jìn)程崩潰后,在保護(hù)模式下不會(huì)對(duì)其它進(jìn)程產(chǎn)生影響,而線程只是一個(gè)進(jìn)程中的不同執(zhí)行路徑。線程有自己的堆棧和局部變量,但線程之間沒有單獨(dú)的地址空間,一個(gè)線程死掉就等于整個(gè)進(jìn)程死掉,所以多進(jìn)程的程序要比多線程的程序健壯,但在進(jìn)程切換時(shí),耗費(fèi)資源較大,效率要差一些。
多任務(wù)下的同步:在多任務(wù)操作系統(tǒng)下,要保持線程和進(jìn)程的同步利用:1臨界區(qū)2互斥鎖3信號(hào)量4事件機(jī)制
4.所謂的實(shí)時(shí)性,也就是從系統(tǒng)發(fā)生到系統(tǒng)響應(yīng)的時(shí)間?;蛘撸鼜V泛一點(diǎn),也就是從用戶輸入一個(gè)信息到系統(tǒng)處理完以后,返回給用戶的這個(gè)反應(yīng)時(shí)間。影響實(shí)時(shí)性一般有一下幾個(gè)方面:
1>中斷響應(yīng)時(shí)間
2>RTOS進(jìn)程調(diào)度響應(yīng)時(shí)間
3>任務(wù)切換時(shí)間
4>應(yīng)用程序響應(yīng)時(shí)間
改善:
中斷的響應(yīng)時(shí)間是有處理器決定的,可以有系統(tǒng)設(shè)置來改善?;蛘邔ふ腋玫奶幚砥?。
對(duì)于進(jìn)程調(diào)度本身,有很多經(jīng)典的算法,可參考操作系統(tǒng)的理論部分,有些算法的實(shí)時(shí)性稍高,但整體性就稍差,有些則相反,可以選擇高效的進(jìn)程調(diào)度策略,來提高進(jìn)程響應(yīng)速度。另外,盡量減少系統(tǒng)的進(jìn)程數(shù),進(jìn)程越少,處理器的負(fù)擔(dān)越小,響應(yīng)就越快。進(jìn)程中屏蔽中斷的地方就越少,則整體響應(yīng)時(shí)間就越快。
采用搶占式內(nèi)核處理形式
提高應(yīng)用程序的執(zhí)行效率
第三篇:嵌入式總結(jié)
一、嵌入式系統(tǒng)原理與應(yīng)用課程總結(jié)
這個(gè)學(xué)期我學(xué)習(xí)了《嵌入式原理與應(yīng)用》這門課程,雖然這個(gè)學(xué)期馬上就要結(jié)束了,對(duì)嵌入式的學(xué)習(xí)也要告一段落了,但是我覺得收獲還是很大的。學(xué)期開始,我開始學(xué)習(xí)《嵌入式系統(tǒng)及應(yīng)用》,由于初次接觸嵌入式系統(tǒng),感覺蠻難的,所以收獲不是很大,很多的概念都比較模糊,真是茫然無從下手。雖然一個(gè)學(xué)期的學(xué)習(xí)時(shí)間不是很長,但是我覺得對(duì)嵌入式系統(tǒng)也已經(jīng)有了一個(gè)大致的概念。對(duì)它的歷史發(fā)展與今后展望都有了一定的了解。嵌入式技術(shù)的掌握是需要一個(gè)過程的,對(duì)嵌入式技術(shù)的全面掌握是有相當(dāng)難度的。如果要真正掌握的話還是需要一步步積累才能熟練掌握的,所以我們還要自己多加學(xué)習(xí),不斷地回顧以前學(xué)到的知識(shí),也要吸收新的概念與技術(shù),使自己的學(xué)習(xí)目標(biāo)更加明確,學(xué)習(xí)方法更加完善,也體會(huì)到軟件開發(fā)的樂趣,更加清楚的認(rèn)識(shí)到自己在軟件開發(fā)學(xué)習(xí)上的一些不足之處,并且不斷改進(jìn)以提高自己。
通過這門課程的學(xué)習(xí),我了解到了嵌入式系統(tǒng)是一種為特定設(shè)備服務(wù),軟硬件可裁剪的計(jì)算機(jī)系統(tǒng),其英文名稱是Embedded System。嵌入式系統(tǒng)的范圍很廣,特點(diǎn)是形式變化多樣、體積小,可以靈活地適應(yīng)各種設(shè)備的需求。嵌入式系統(tǒng)的一些例子:手機(jī)、汽車、ATM、數(shù)字電視、醫(yī)療儀器等等。嵌入式系統(tǒng)本身是一個(gè)相對(duì)模糊的定義,一個(gè)手持的MP3和一個(gè)PC104的微型工業(yè)控制計(jì)算機(jī)都可以認(rèn)為是嵌入式系統(tǒng)??傮w來說,嵌入式系統(tǒng)是“用于控制,監(jiān)視或者輔助操作機(jī)器和設(shè)備的裝備”。一個(gè)典型的桌面Linux系統(tǒng)包括3個(gè)主要的軟件層---linux內(nèi)核、C庫和應(yīng)用程序代碼。內(nèi)核是唯一可以完全控制硬件的層,內(nèi)核驅(qū)動(dòng)程序代表應(yīng)用程序與硬件之間進(jìn)行會(huì)話。內(nèi)核之上是C庫,負(fù)責(zé)把POSIX API轉(zhuǎn)換為內(nèi)核可以識(shí)別的形式,然后調(diào)用內(nèi)核,從應(yīng)用程序向內(nèi)核傳遞參數(shù)。應(yīng)用程序依靠驅(qū)動(dòng)內(nèi)核來完成特定的任務(wù)。嵌入式系統(tǒng)的發(fā)展是從電子計(jì)算機(jī)誕生以來,計(jì)算機(jī)的發(fā)展有兩個(gè)方向:一個(gè)方向是體積大型化、處理能力超強(qiáng)的大型計(jì)算機(jī);另一個(gè)是向體積小型化,功能多樣化的方向發(fā)展。嵌入式微控制器,即傳統(tǒng)意義上的單片機(jī),是目前嵌入式系統(tǒng)的前身。一般都是8位或者16位。嵌入式微處理器,單片機(jī)的發(fā)展時(shí)間較早,處理能力很低,只能應(yīng)用在一些相對(duì)簡單的控制領(lǐng)域。嵌入式微處理器是近幾年隨著大規(guī)模集成電路發(fā)展同步發(fā)展起來的。與單片機(jī)相比,嵌入式微處理器的處理能力更強(qiáng),主流的嵌入式微處理器都是32位的。嵌入式微處理器在一個(gè)芯片上集成了復(fù)雜的功能,有的還把常見的外部設(shè)備控制器也集成到芯片內(nèi)部。未來嵌入式系統(tǒng)的發(fā)展方向,隨著微電子技術(shù)的發(fā)展和電子制造工藝的進(jìn)步,嵌入式系統(tǒng)硬件的體積會(huì)不斷縮小,系統(tǒng)穩(wěn)定性也在不斷增強(qiáng),可以把更多功能集成到一個(gè)芯片上;同時(shí)功耗方面也不斷降低。隨著網(wǎng)絡(luò)的普及和IPv6技術(shù)的應(yīng)用,IPv6技術(shù)主要解決了IPv4的IP地址數(shù)目緊缺的現(xiàn)狀,越來越多的嵌入式設(shè)備也會(huì)加入到網(wǎng)絡(luò)中。典型的嵌入式系統(tǒng)的組成,嵌入式系統(tǒng)包括硬件和軟件。硬件包括了嵌入式微處理器和嵌入式微控制器以及一些外圍元器件和外部設(shè)備;軟件包括了嵌入式操作系統(tǒng)和應(yīng)用軟件。嵌入式系統(tǒng)硬件種類繁多,有許多硬件和軟件的解決方案,不同嵌入式系統(tǒng)軟硬件很難兼容,軟件必須修改而硬件必須重新設(shè)計(jì)才能使用。不僅如此,我們還要對(duì)軟件硬件都有所了解才可以逐漸有所領(lǐng)悟。軟件和硬件都是學(xué)習(xí)嵌入式系統(tǒng)必不可少的方面。其實(shí)我現(xiàn)在仍舊覺得在嵌入式系統(tǒng)這個(gè)博大精深的領(lǐng)域,我還有太多太多不懂的地方,需要學(xué)習(xí)的還有很讀。嵌入式軟件開發(fā)應(yīng)用廣泛而且前景很好,目前正處于人才緊缺的關(guān)口,嵌入式技術(shù)在未來能夠得到更加廣泛的應(yīng)用。學(xué)好嵌入式,C語言很重要,所以感覺自己有必要在學(xué)習(xí)、積累一下這方面的知識(shí)。很多東西的學(xué)習(xí)不死一帆風(fēng)順也是比較耗時(shí)的,嵌入式也不例外,要想學(xué)好還必須下大力氣,還必須堅(jiān)持。這次的課程讓我明確了一點(diǎn):嵌入式開發(fā)對(duì)于提升我們的系統(tǒng)知識(shí)有很大的幫助,尤其是操作系統(tǒng)的知識(shí)。嵌入式系統(tǒng)開發(fā)對(duì)于我們的知識(shí)面要求非常的廣,且要有一定的深度。,平時(shí)上完理論課很少有時(shí)間上機(jī)進(jìn)行時(shí)間或者隔幾天才上機(jī)練習(xí),等到上機(jī)時(shí)一些東西可能遺忘了,比較耗費(fèi)時(shí)間。在課上,有老師在前面演示我們感覺看得懂或感覺沒問題,可輪到我們獨(dú)立完成的時(shí)候,因?yàn)閷?shí)際操作的少,跟著問題就來了。有些即使老師講了很多遍的問題,我們不會(huì),老師還是會(huì)走進(jìn)我們給我們耐心的指導(dǎo),還給我們講一些學(xué)習(xí)的方法,一些軟件開發(fā)需要注意的細(xì)節(jié),讓我們知道自己在哪方面不足,需要加強(qiáng),也讓我們了解到哪些需要認(rèn)真的學(xué)習(xí),那些是重點(diǎn),不是沒有方向的亂學(xué)一通,結(jié)果什么也學(xué)不好。經(jīng)過這次的課程,我真真確確地感受到了嵌入式在我們生活中工作中的運(yùn)用,這些軟件、程序能讓我們提高工作的效率,更直觀更便捷的切入主題。當(dāng)然,在學(xué)習(xí)的過程中并不是一帆風(fēng)順的,在這之中,因?yàn)橐僮鞯臇|西很多,有時(shí)錯(cuò)一步,后面的結(jié)果就無法顯示,而自己的水平根本檢查不出來是哪里出了錯(cuò)。這時(shí)候,老師都會(huì)耐心的過來幫助我們一起去解決。在平時(shí)我們就需要好好的查閱書籍或者上網(wǎng)搜集相關(guān)資料去解決問題。
在了解了基礎(chǔ)知識(shí)的情況下,我們還同步地進(jìn)行了上機(jī)操作,當(dāng)然,其中遇到很多的難題,很多東西都是第一次接觸,又沒有很多的指導(dǎo)操作,主要還是要憑借自己去摸索練習(xí)。其中的困難可想而知。然而堅(jiān)持就是勝利,只要堅(jiān)持做下去。通過這學(xué)期的實(shí)驗(yàn)課程,我感覺收獲還是蠻多的??赡芪覍?duì)于嵌入式的知識(shí)學(xué)習(xí)的還是不太多,但是這之外的東西收獲頗豐。它讓我學(xué)會(huì)了如何通過自己的努力去認(rèn)知一個(gè)新事物,更重要的是端正自己的學(xué)習(xí)態(tài)度,只有真正下功夫去學(xué)習(xí),才能有收獲,正所謂“一份耕耘,一份收獲”。沒有付出,何談回報(bào)呢?再者,通過這學(xué)期的實(shí)驗(yàn)課程,我也學(xué)會(huì)了如何去分析問題,如何找出自己設(shè)計(jì)中的不足,繼而去排除解決問題,這就是一個(gè)自我學(xué)習(xí)的過程。當(dāng)我們通過實(shí)驗(yàn)去學(xué)習(xí)理論知識(shí)時(shí),自己動(dòng)手得出的結(jié)論,不僅能加深我們對(duì)嵌入式的理解,更能加深我們對(duì)此的記憶。
其實(shí),我覺得最大的收獲不僅僅是我學(xué)習(xí)到了多少知識(shí),還有學(xué)習(xí)給我的感悟。首先是心態(tài)。一定要有一個(gè)積極的心態(tài),獨(dú)立解決問題的意識(shí),培養(yǎng)扎實(shí)基礎(chǔ)的認(rèn)識(shí)。不要什么東西都感覺跟簡單,很多東西可能是看似簡單,就不去做了或者不屑一做,以至于性網(wǎng)上搜搜就可以了,這樣很不好。有自己的東西有自己的付出才會(huì)有程序運(yùn)行成功時(shí)的喜悅和小自豪,這樣也有助于培養(yǎng)自己的興趣。要時(shí)刻牢記態(tài)度決定一切。其次是興趣,感覺學(xué)習(xí)工作中興趣很關(guān)鍵,只是一個(gè)引發(fā)人積極性的問題,有了興趣就自覺了,效率自然就高了。再次要敢于嘗試和挑戰(zhàn)。不要安于現(xiàn)成的程序,而且不要害怕失敗,在程序調(diào)試的過程中這點(diǎn)尤為重要,“發(fā)現(xiàn)出問題然后解決問題”是一個(gè)積累經(jīng)驗(yàn)的過程,而且很高效。最后要不懈追求。對(duì)于源代碼進(jìn)行不斷的完善,要盡可能的實(shí)現(xiàn)課題所要求的功能。對(duì)于初學(xué)者或者開發(fā)較少的人來說,大量大寫程序還是有必要的,但同時(shí)要注意思考,理解其實(shí)現(xiàn)的內(nèi)在意義。還可以自己添加一些有意義的功能來實(shí)現(xiàn)。當(dāng)看到自己編寫的程序正常運(yùn)行時(shí),興趣也會(huì)隨之而來,樂此不疲,形成一個(gè)良性循環(huán)。我相信在以后的學(xué)習(xí)工作中,我也會(huì)端正自己的學(xué)習(xí)態(tài)度,一絲不茍的去對(duì)待每一件事。只有做好足夠的準(zhǔn)備,才能事半功倍!
第四篇:嵌入式Linux考試習(xí)題總結(jié)
第1章
1.嵌入式系統(tǒng)是指操作系統(tǒng)和功能軟件集成于計(jì)算機(jī)硬件系統(tǒng)之中。嵌入式系統(tǒng)一般有3個(gè)主要的組成部分:硬件、實(shí)時(shí)操作系統(tǒng)以及應(yīng)用軟件。
2.嵌入式系統(tǒng)的三要素是嵌入、專用、計(jì)算機(jī);即以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。
3.目前國際較為知名的有:VxWorks、NeutrinoRTOS、Nucleus Plus、OS/
9、VRTX、LynuxOS,RTLinux、BlueCat RT等。
4.嵌入式系統(tǒng)一般由硬件層、中間層、軟件層和功能層組成。其作用分別如下:
(1)硬件層 :由嵌入式微處理器、外圍電路和外設(shè)組成。操作系統(tǒng)和應(yīng)用程序都可以固化在ROM或者Flash中。為方便使用,有的模塊在此基礎(chǔ)上增加了LCD、鍵盤、USB接口,以及其他一些功能的擴(kuò)展電路。
(2)中間層 :硬件層與軟件層之間為中間層,其作用將系統(tǒng)軟件與底層硬件部分隔離,使得系統(tǒng)的底層設(shè)備驅(qū)動(dòng)程序與硬件無關(guān);
(3)軟件層 :主要是操作系統(tǒng),有的還包括文件系統(tǒng)、圖形用戶接口和網(wǎng)絡(luò)系統(tǒng)等。操作系統(tǒng)是一個(gè)標(biāo)準(zhǔn)的內(nèi)核,將中斷、I/O、定時(shí)器等資源都封裝起來,以方便用戶使用。(4)功能層 :由基于操作系統(tǒng)開發(fā)的應(yīng)用程序組成,用來完成對(duì)被控對(duì)象的控制功能。5.非占先式調(diào)度法也稱作合作型多任務(wù)(cooperative multitasking),各個(gè)任務(wù)彼此合作共享一個(gè)CPU。中斷服務(wù)可以使一個(gè)高優(yōu)先級(jí)的任務(wù)由掛起狀態(tài)變?yōu)榫途w狀態(tài)。但中斷服務(wù)以后控制權(quán)還是回到原來被中斷了的那個(gè)任務(wù),直到該任務(wù)主動(dòng)放棄CPU的使用權(quán)時(shí),那個(gè)高優(yōu)先級(jí)的任務(wù)才能獲得CPU的使用權(quán)。當(dāng)系統(tǒng)響應(yīng)時(shí)間很重要時(shí),要使用占先式(preemptive)內(nèi)核。最高優(yōu)先級(jí)的任務(wù)一旦就緒,總能得到CPU的控制權(quán)。當(dāng)一個(gè)運(yùn)行著的任務(wù)使一個(gè)比它優(yōu)先級(jí)高的任務(wù)進(jìn)入了就緒態(tài),當(dāng)前任務(wù)的CPU使用權(quán)就被剝奪了。6.在實(shí)時(shí)系統(tǒng)中,如果系統(tǒng)在指定的時(shí)間內(nèi)未能實(shí)現(xiàn)某個(gè)確定的任務(wù),會(huì)導(dǎo)致系統(tǒng)的全面失敗,這樣的系統(tǒng)被稱硬實(shí)時(shí)系統(tǒng)。在弱實(shí)時(shí)系統(tǒng)中,超時(shí)卻不會(huì)發(fā)生致命的錯(cuò)誤。其實(shí)時(shí)性的要求比硬實(shí)時(shí)系統(tǒng)要差一些。
7.嵌入式系統(tǒng)的設(shè)計(jì)步驟及各部分的主要工作如下。(1)需求分析階段,羅列出用戶的需求;
(2)體系結(jié)構(gòu)設(shè)計(jì)階段,描述系統(tǒng)的功能如何實(shí)現(xiàn);
(3)詳細(xì)設(shè)計(jì)階段,進(jìn)行硬件系統(tǒng)與軟件系統(tǒng)的分類劃分,以決定哪些功能用硬件實(shí)現(xiàn),哪些用軟件實(shí)現(xiàn);
(4)系統(tǒng)集成,把系統(tǒng)的軟件、硬件和執(zhí)行裝置集成在一起,進(jìn)行調(diào)試,發(fā)現(xiàn)并改進(jìn)在設(shè)計(jì)過程中的錯(cuò)誤;
(5)系統(tǒng)測試,對(duì)設(shè)計(jì)好的系統(tǒng)進(jìn)行測試,看其是否滿足給定的要求。8.Linux作為嵌入式操作系統(tǒng)的優(yōu)勢主要有以下幾點(diǎn):
(1)可應(yīng)用于多種硬件平臺(tái)。
(2)Linux的高度模塊化使添加部件非常容易。
(3)Linux是一個(gè)和Unix相似、以內(nèi)核為基礎(chǔ)的、具有完全的內(nèi)存訪問控制,支持大量硬件的一種通用操作系統(tǒng)。
(4)Linux可以隨意地配置,不需要任何的許可證或商家的合作關(guān)系。
(5)Linux帶有Unix用戶熟悉的完善的開發(fā)工具。其強(qiáng)大的語言編譯器GCC,C++等也可以很容易得到,不但成熟完善,而且使用方便。9. Linux執(zhí)行進(jìn)程調(diào)度一般是在以下情況發(fā)生的:(1)正在執(zhí)行的進(jìn)程運(yùn)行完畢;
(2)正在執(zhí)行的進(jìn)程調(diào)用阻塞原語將自己阻塞起來進(jìn)入等待狀態(tài);(3)正在執(zhí)行的進(jìn)程調(diào)用了P原語操作,從而因資源不足而被阻塞;(4)執(zhí)行中的進(jìn)程提出I/O請(qǐng)求后被阻塞;(5)系統(tǒng)分配的時(shí)間片已經(jīng)用完;
(6)就緒隊(duì)列中的某個(gè)進(jìn)程的優(yōu)先級(jí)變得高于當(dāng)前運(yùn)行進(jìn)程的優(yōu)先級(jí)。
第4章
1、Linux 內(nèi)核的編譯菜單有好幾個(gè)版本,運(yùn)行:
(1)make config:進(jìn)入命令行,可以一行一行的配置,但使用不十分方便。
(2)make menuconfig:大多數(shù)開發(fā)人員使用的Linux 內(nèi)核編譯菜單,使用方便。
(3)make xconfig:在2.4.X 以及以前版本中xconfig 菜單是基于TCL/TK 的圖形庫的。
2、在完成內(nèi)核的裁減之后,內(nèi)核的編譯就只要執(zhí)行以下幾條命令: make clean
編譯內(nèi)核之前先把環(huán)境給清理干凈。make dep
編譯相關(guān)依賴文件 make zImage
創(chuàng)建內(nèi)核鏡像文件 make modules 創(chuàng)建內(nèi)核模塊。
make install
把相關(guān)文件拷貝到默認(rèn)的目錄。
3、此命令是裝載壓縮映像文件zImage到flash存儲(chǔ)器中,地址是kernel分區(qū),并采用xmodem傳輸協(xié)議。
4、此命令是設(shè)置網(wǎng)卡1的地址192.168.1.1,掩碼為255.255.255.0,不寫netmask參數(shù)則默認(rèn)為255.255.255.0。
5、此命令將nfs服務(wù)的共享目錄sharedir加載到/mnt/nfs。
6、此命令是裝載根文件系統(tǒng)root.cramfs到flash存儲(chǔ)器中,地址是根文件系統(tǒng)分區(qū),并采用xmodem傳輸協(xié)議。
7、這個(gè)命令的操作同時(shí)進(jìn)行了分區(qū)和格式化,0~128K存放vivi,128K~192K存放VIVI控制臺(tái)指令,192K~1216K存放kernel,1216K~4288K存放root,其余部分存放應(yīng)用程序。
第6章
1.使用虛擬地址尋址整個(gè)系統(tǒng)的主存和輔存的方式在現(xiàn)代操作系統(tǒng)中被稱為虛擬內(nèi)存。虛擬內(nèi)存的管理方法使系統(tǒng)既可以運(yùn)行體積比物理內(nèi)存還要大的應(yīng)用程序,也可以實(shí)現(xiàn)“按需調(diào)頁”策略,既滿足了程序的運(yùn)行速度,又節(jié)約了物理內(nèi)存空間。2.進(jìn)程內(nèi)存區(qū)域涉及到5種數(shù)據(jù)段,即:
①代碼段:代碼段是用來存放可執(zhí)行文件的操作指令。
②數(shù)據(jù)段:數(shù)據(jù)段用來存放可執(zhí)行文件中已初始化全局變量。③BSS段:BSS段包含了程序中未初始化的全局變量。④堆(heap):用于存放進(jìn)程運(yùn)行中被動(dòng)態(tài)分配的內(nèi)存段,它的大小并不固定,可動(dòng)態(tài)擴(kuò)張或縮減。
⑤棧:棧是用戶存放程序臨時(shí)創(chuàng)建的局部變量。3.在Linux系統(tǒng)中,內(nèi)核在最高級(jí)執(zhí)行,也稱為“系統(tǒng)態(tài)”,在這一級(jí)任何操作都可以執(zhí)行。而應(yīng)用程序則執(zhí)行在最低級(jí),即所謂的“用戶態(tài)”。在這一級(jí)處理器禁止對(duì)硬件的直接訪問和對(duì)內(nèi)存的未授權(quán)訪問。模塊是在所謂的“內(nèi)核空間”中運(yùn)行的,而應(yīng)用程序則是在“用戶空間”中運(yùn)行的。它們分別引用不同的內(nèi)存映射,也就是程序代碼使用不同的“地址空間”。4.共享內(nèi)存區(qū)域是被多個(gè)進(jìn)程共享的一部分物理內(nèi)存。如果多個(gè)進(jìn)程都把該內(nèi)存區(qū)域映射到自己的虛擬地址空間,則這些進(jìn)程就都可以直接訪問該共享內(nèi)存區(qū)域,從而可以通過該區(qū)域進(jìn)行通信。共享內(nèi)存是進(jìn)程間共享數(shù)據(jù)的一種最快的方法,一個(gè)進(jìn)程向共享內(nèi)存區(qū)域?qū)懭肓藬?shù)據(jù),共享這個(gè)內(nèi)存區(qū)域的所有進(jìn)程就可以立刻看到其中的內(nèi)容。5.內(nèi)存管理利用虛擬文件系統(tǒng)支持交換,交換進(jìn)程(swapd)定期由調(diào)度程序調(diào)度,這也是內(nèi)存管理依賴于進(jìn)程調(diào)度的唯一原因。當(dāng)一個(gè)進(jìn)程存取的內(nèi)存映射被換出時(shí),內(nèi)存管理向文件系統(tǒng)發(fā)出請(qǐng)求,同時(shí),掛起當(dāng)前正在運(yùn)行的進(jìn)程。
第9章
1.參考答案:
Mutex互斥量,用于操作某個(gè)臨界資源時(shí)對(duì)該資源上鎖,以實(shí)現(xiàn)互斥地對(duì)獨(dú)占資源的使用。Semophore信號(hào)燈,信號(hào)燈內(nèi)有一計(jì)數(shù)器,可以用于對(duì)多個(gè)同類資源的分配。當(dāng)資源用完時(shí),申請(qǐng)資源的線程會(huì)在信號(hào)量上睡眠,有線程釋放資源時(shí),再將該線程喚醒繼續(xù)運(yùn)行。
Condition條件變量,條件變量用于等待信號(hào)。當(dāng)一個(gè)線程需要等待某個(gè)信號(hào)時(shí),就可到條件變量上等待,當(dāng)信號(hào)具備時(shí),系統(tǒng)會(huì)喚醒該線程繼續(xù)運(yùn)行。2.參考答案:
本地:共享內(nèi)存+信號(hào)量,適合于大量數(shù)據(jù)傳輸。Linux支持系統(tǒng)V和POSIX的共享內(nèi)存和信號(hào)量。(5分)
遠(yuǎn)程:Socket+應(yīng)用協(xié)議。適合于跨網(wǎng)絡(luò)的(大量)數(shù)據(jù)傳輸。Linux支持BSD的socket。應(yīng)用層協(xié)議需要自行設(shè)計(jì)。(5分)
3.答案要點(diǎn):程序是編譯后形成的可執(zhí)行代碼,是靜止的。進(jìn)程是程序的一次執(zhí)行,是活動(dòng)的。線程是進(jìn)程的可執(zhí)行單元,同一進(jìn)程的不同線程共享進(jìn)程的資源和地址空間。4.兩種實(shí)現(xiàn)方法,一種是繼承Thread,另外一種是實(shí)現(xiàn)接口Runnable。
同步的實(shí)現(xiàn)方法有兩種,分別是synchronized, wait與notify。用synchronized可以對(duì)一段代碼、一個(gè)對(duì)象及一個(gè)方法進(jìn)行加鎖。用wait與notify可以使對(duì)象處于等待及喚醒方式導(dǎo)致同步,因?yàn)槊總€(gè)對(duì)象都直接或間接的繼承了Object類。
5、什么是BootLoader?主要有幾種工作模式及主要功能是什么? 答:
Bootloader就是操作系統(tǒng)內(nèi)核運(yùn)行的一段小程序,完成進(jìn)行初始化系統(tǒng)硬件設(shè)置的任務(wù),(2分)
分為啟動(dòng)加載模式和下載模式。(1啟動(dòng)加載模式
啟動(dòng)加載(Boot laoding)模式是指 Bootloader 從目標(biāo)機(jī)上的某個(gè)固態(tài)存儲(chǔ)設(shè)備上將操作系統(tǒng)加載到 RAM 中運(yùn)行,整個(gè)過程并沒有用戶的介入。(2分)(2)下載模式
在下載模式下,目標(biāo)機(jī)上的 Bootloader 將先通過串口連接或網(wǎng)絡(luò)連接等通信手段從宿主機(jī)下載文件。(2分)
6、簡述Bootloader有何作用? 答案要點(diǎn):(1)首先,bootloader是在特定硬件平臺(tái)運(yùn)行的程序,嚴(yán)重依賴于硬件平臺(tái),需要移植;(2)是系統(tǒng)上電之后,第一個(gè)運(yùn)行的程序,系統(tǒng)在上電或復(fù)位時(shí)通常都從地址 0x0 處開始執(zhí)行,而在這個(gè)地址處安排的通常就是系統(tǒng)的 Boot Loader 程序;(3)bootloader程序的設(shè)計(jì)目標(biāo)是啟動(dòng)嵌入式操作系統(tǒng),嵌入式操作系統(tǒng)的啟動(dòng)需要一定的條件,這些條件由bootloader來滿足;(4)Bootloader一般具有對(duì)存儲(chǔ)器和網(wǎng)絡(luò)接口操作的功能;如擦除、讀寫Flash,通過USB、串口下載文件等
第五篇:嵌入式工程師考試題目
筆試題(60分鐘)
姓名:
成績:
嵌入式系統(tǒng)
1.
2.
3.
4.
5.
簡述什么是嵌入式系統(tǒng)。簡述ARM的版本及特點(diǎn)。簡述INTEL XSCALE架構(gòu)的主要組成。簡述INTEL PXA255的邏輯結(jié)構(gòu)。簡述你了解的嵌入式操作系統(tǒng)有哪些,各有何特點(diǎn)。
WinCE
1. 簡述WinCE系統(tǒng)的完整開發(fā)流程。
2. 簡述Platform Builder的功能。
3. 簡述WinCE內(nèi)核的構(gòu)成及各模塊的主要功能。
4. 簡述Eboot和NK下載到目標(biāo)板的基本流程及工具。
5. 簡述你在WinCE平臺(tái)上所開發(fā)的一個(gè)軟件項(xiàng)目的(a)功能,(b)軟件邏輯結(jié)構(gòu),(c)所使用的開發(fā)工具的情況。
Symbian
1. 簡述在進(jìn)行Symbian OS C++應(yīng)用開發(fā)過程中,你使用哪些技巧以提高你的代碼質(zhì)量。
2. 解釋Symbian操作系統(tǒng)手機(jī)上構(gòu)成Java平臺(tái)的MIDP和CLDC特性。3. 簡述Symbian OS上對(duì)象如何創(chuàng)建和銷毀。
4. 解釋Symbian OS上活動(dòng)對(duì)象的概念。
5. 簡述你在Symbian OS上所開發(fā)的一個(gè)軟件項(xiàng)目的(a)功能,(b)軟件邏輯結(jié)構(gòu),(c)所使用的開發(fā)工具的情況。
Linux
1. 簡述BOOTP協(xié)議的功能及工作流程。
2. 簡述Linux Bootloader的功能及工作流程。
3. 簡述Linux的完整啟動(dòng)流程及所需的軟件模塊。
4. 簡述嵌入式Linux上經(jīng)常使用的文件系統(tǒng)類型及各自的特點(diǎn)。
5. 簡述你在嵌入式Linux平臺(tái)上所開發(fā)的一個(gè)軟件項(xiàng)目的(a)功能,(b)軟件邏輯結(jié)構(gòu),(c)所使用的開發(fā)工具的情況。