




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
更多電子資料請登錄賽微電子網(wǎng).com嵌入式工程師考試題目作者嵌入式玩耍者一、引言自《嵌入式系統(tǒng)設(shè)計師考試復(fù)習筆記之存儲管理篇》在嵌入式在線的博客出現(xiàn)后,意外的得到很多朋友的關(guān)注和評論,收到不少朋友的郵件,問一些有關(guān)考試的問題,希望得到我的復(fù)習筆記的其他部分。我非常感謝他們,他們的熱切關(guān)注,使我有了繼續(xù)往下寫的無限動力,使我萌生了將我以前的復(fù)習筆記、考試經(jīng)驗結(jié)合大綱教程并重新按《教程》的章節(jié)順序整理一份適合考生復(fù)習的筆記手冊,筆記后面再分析歷年的真題,按章節(jié)考點找出相關(guān)的考題進行分析,希望能和有愛好的人們一起討論討論。嵌入式系統(tǒng)設(shè)計師的一天考試分為上午和下午部分,兩部分的考試方式、試題難度、考點分布和復(fù)習方法都是不同的。這次我們討論的是嵌入式系統(tǒng)基礎(chǔ)知識,我本人覺得,這部分出下午大題的也許性不大,重要是分布在上午的75道選擇題之中。從歷年的真題和考試大綱來看,上午的選擇題重要考察一些基本概念,重要原理的理解,一些關(guān)鍵技術(shù)和一些重要的原理引申出來的簡樸計算。根據(jù)這些考試特點,復(fù)習的時候可以采用適當?shù)牟呗?,當然每個人的方法都是不同樣的,適合自己的辦法才是最佳的辦法。方法大家可以自己慢慢去體會,我的也不多說了,通過筆記和真題分析就可以體現(xiàn)解決。對于很多關(guān)鍵的知識點和基本概念,除了記住之外還要徹底理解,否則出題的時候會進行一些變換,或者引申一些計算,那么就算你知道考那個考點,也許你也做不好。在復(fù)習的過程中,你要記住:你不是要考一個很高的分數(shù),而是要考一個通過的分數(shù),在復(fù)習過程中可以放棄一些內(nèi)容,只要保證在大部分基本概念,關(guān)鍵技術(shù),重要原理和歷年考點上都把握住,可以拿到需要的分數(shù)就可以了。二、復(fù)習筆記1、嵌入式系統(tǒng)的定義(1)定義:以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ),軟硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴格規(guī)定的專用計算機系統(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、嵌入式系統(tǒng)的組成:硬件層、中間層、系統(tǒng)軟件層和應(yīng)用軟件層(1)硬件層:嵌入式微解決器、存儲器、通用設(shè)備接口和I/O接口。嵌入式核心模塊=微解決器+電源電路+時鐘電路+存儲器Cache:位于主存和嵌入式微解決器內(nèi)核之間,存放的是最近一段時間微解決器使用最多的程序代碼和數(shù)據(jù)。它的重要目的是減小存儲器給微解決器內(nèi)核導(dǎo)致的存儲器訪問瓶頸,使解決速度更快。(2)中間層(也稱為硬件抽象層HAL或者板級支持包BSP):它將系統(tǒng)上層軟件和底層硬件分離開來,使系統(tǒng)上層軟件開發(fā)人員無需關(guān)系底層硬件的具體情況,根據(jù)BSP層提供的接口開發(fā)即可。BSP有兩個特點:硬件相關(guān)性和操作系統(tǒng)相關(guān)性。設(shè)計一個完整的BSP需要完畢兩部分工作:A、嵌入式系統(tǒng)的硬件初始化和BSP功能。片級初始化:純硬件的初始化過程,把嵌入式微解決器從上電的默認狀態(tài)逐步設(shè)立成系統(tǒng)所規(guī)定的工作狀態(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)部、同步或異步時間做出響應(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)可以得到完全滿足,否則就導(dǎo)致重大安全事故,甚至導(dǎo)致重大的生命財產(chǎn)損失和生態(tài)破壞,如:航天、軍事。(5)軟實時(弱實時):指某些應(yīng)用雖然提出了時間的規(guī)定,但實時任務(wù)偶爾違反這種需求對系統(tǒng)運營及環(huán)境不會導(dǎo)致嚴重影響,如:監(jiān)控系統(tǒng)、實時信息采集系統(tǒng)。(6)任務(wù)的約束涉及:時間約束、資源約束、執(zhí)行順序約束和性能約束。4、實時系統(tǒng)的調(diào)度(1)調(diào)度:給定一組實時任務(wù)和系統(tǒng)資源,擬定每個任務(wù)何時何地執(zhí)行的整個過程。(2)搶占式調(diào)度:通常是優(yōu)先級驅(qū)動的調(diào)度,如uCOS。優(yōu)點是實時性好、反映快,調(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)實時任務(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的特點比較(參照教程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位)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),并且還與該時刻電路的狀態(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個輸出端中最多有一個有效。當m=2n是,為全譯碼;當m<2n時,為部分譯碼。(7)由于集成電路的高電平輸出電流小,而低電平輸出電流相對比較大,采用集成門電路直接驅(qū)動LED時,較多采用低電平驅(qū)動方式。液晶七段字符顯示器LCD運用液晶有外加電場和無外加電場時不同的光學特性來顯示字符。(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)和控制總線(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)門為輸出緩沖器。(4)當總線上所接的負載超過總線的負載能力時,必須在總線和負載之間加接緩沖器或驅(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)解決TTL與CMOS電路接口困難的辦法是在TTL電路輸出端與電源之間接一上拉電阻R,上拉電阻R的取值由TTL的高電平輸出漏電流IOH來決定,不同系列的TTL應(yīng)選用不同的R值。9、可編程邏輯器件基礎(chǔ)(具體參見教程51到61頁)這方面的內(nèi)容,從總體上有個概念性的結(jié)識應(yīng)當就可以了。10、嵌入式系統(tǒng)中信息表達與運算基礎(chǔ)(1)進位計數(shù)制與轉(zhuǎn)換:這樣比較簡樸,也應(yīng)當掌握怎么樣進行換算,有出題的也許。(2)計算機中數(shù)的表達:源碼、反碼與補碼。正數(shù)的反碼與源碼相同,負數(shù)的反碼為該數(shù)的源碼除符號位外按位取反。正數(shù)的補碼與源碼相同,負數(shù)的補碼為該數(shù)的反碼加一。例如-98的源碼:11100010B反碼:10011101B補碼:10011110B(3)定點表達法:數(shù)的小數(shù)點的位置人為約定固定不變。浮點表達法:數(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、差錯控制編碼(1)根據(jù)碼組的功能,可以分為檢錯碼和糾錯碼兩類。檢錯碼是指能自動發(fā)現(xiàn)差錯的碼,例如奇偶檢查碼;糾錯碼是指不僅能發(fā)現(xiàn)差錯并且能自動糾正差錯的碼,例如循環(huán)冗余校驗碼。(2)奇偶檢查碼、海明碼、循環(huán)冗余校驗碼(CRC)。(教程70到77頁)12、嵌入式系統(tǒng)的度量項目(1)性能指標:分為部件性能指標和綜合性能指標,重要涉及:吞吐率、實時性和各種運用率。(2)可靠性與安全性可靠性是嵌入式系統(tǒng)最重要、最突出的基本規(guī)定,是一個嵌入式系統(tǒng)能正常工作的保證,一般用平均故障間隔時間MTBF來度量。(3)可維護性:一般用平均修復(fù)時間MTTR表達。(4)可用性(5)功耗(6)環(huán)境適應(yīng)性(7)通用性(8)安全性(9)保密性(10)可擴展性性價比中的價格,除了直接購買嵌入式系統(tǒng)的價格外,還應(yīng)包含安裝費用、若干年的運營維修費用和軟件租用費。13、嵌入式系統(tǒng)的評價方法:測量法和模型法(1)測量法是最直接最基本的方法,需要解決兩個問題:A、根據(jù)研究的目的,擬定要測量的系統(tǒng)參數(shù)。B、選擇測量的工具和方式。(2)測量的方式有兩種:采樣方式和事件跟蹤方式。(3)模型法分為分析模型法和模擬模型法。分析模型法是用一些數(shù)學方程去刻畫系統(tǒng)的模型,而模擬模型法是用模擬程序的運營去動態(tài)表達嵌入式系統(tǒng)的狀態(tài),而進行系統(tǒng)記錄分析,得出性能指標。(4)分析模型法中使用最多的是排隊模型,它涉及三個部分:輸入流、排隊規(guī)則和服務(wù)機構(gòu)。(5)使用模型對系統(tǒng)進行評價需要解決3個問題:設(shè)計模型、解模型、校準和證實模型。三、真題解析1、2023年4、5題若每一條指令都可以分解為取指、分析和執(zhí)行三步。已知取指時間t取指=4△t,分析時間t分析=3△t,執(zhí)行時間t執(zhí)行=5△t。假如按串行方式執(zhí)行完100條指令需要(4)△t。假如按照流水線方式執(zhí)行,執(zhí)行完100條指令需要(5)△t。(4)A.1190B.1195C.1200D.1205(5)A.504B.507C.508D.510<答案>:C、B考察流水線技術(shù)知識點。按照串行的方式,執(zhí)行完一條指令才干執(zhí)行下一條指令,那么執(zhí)行完100條指令的時間為:(4+3+5)×100=1200按照流水線的方式,可以同時執(zhí)行多條指令。在第一條指令進行分析的時候,第二條指令已經(jīng)開始取指;當?shù)谝粭l指令進行執(zhí)行的時候,第二條指令進行分析,第三條指令取指;當?shù)诙l指令進行執(zhí)行完的時候,第三條指令已經(jīng)分析完畢。依此類推,當?shù)谝粭l指令完畢之后,每一個執(zhí)行的周期就可以完畢一條指令。需要注意的是,假如流水線的子過程所用時間不同樣長,則吞吐率應(yīng)以最長子過程來計算。因此,我們可以計算得100條指令的執(zhí)行時間為:(4+3+5)+(100-1)×5=507。2、2023年24題某總線有104根信號線,其中數(shù)據(jù)總線(DB)32根,若總線工作頻率為33MHz,則其理論最大傳輸率為(24)。(注:本題答案中的B表達Byte)(24)A.33MB/sB.64MB/sC.132MB/sD.164MB/s<答案>:C考察總線這個知識點。根據(jù)上面的筆記,總線帶寬=總線位寬×總線頻率/8=32×33/8=132MB/s。3、2023年26題某存儲器數(shù)據(jù)總線寬度為32bit,存取周期為250ns,則該存儲器帶寬為(26)。(注:本題答案中的B表達Byte)(26)A.8×106B/sB.16×106B/sC.16×108B/sD.32×106B/s<答案>:B考察總線這個知識點。存儲器帶寬即總線帶寬,總線頻率為:1/250ns=4×106存儲器帶寬為:32×4×106/8=16×106B/s4、2023年27題解決機重要由解決器、存儲器和總線組成,總線涉及(27)。(27)A.數(shù)據(jù)總線、串行總線、邏輯總線、物理總線B.并行總線、地址總線、邏輯總線、物理總線C.并行總線、串行總線、全雙工總線D.數(shù)據(jù)總線、地址總線、控制總線<答案>:D考察總線這個知識點,基本概念的考察。5、2023年35題三極管是可控的開關(guān)器件,其飽和與截止狀態(tài)分別相應(yīng)開關(guān)的接通和斷開狀態(tài)。UBE為基極輸入電壓,VTH為基極域值電壓,假如UBETH,開關(guān)應(yīng)處在(35)狀態(tài)。(35)A.接通B.三態(tài)C.斷開D.高阻<答案>:C考察電路中最基本的基礎(chǔ)知識點,我覺得做不對的主線不能算嵌入式系統(tǒng)開發(fā)入門。6、2023年36題如下圖所示,若低位地址(A0-A11)接在內(nèi)存芯片地址引腳上,高位地址(A12-A19)進行片選譯碼(其中,A14和A16沒有參與譯碼),且片選信號低電平有效,則對下圖所示的譯碼器,不屬于此譯碼空間的地址為(36)。(36)A.AB000H~ABFFFHB.BB000H~BBFFFHC.EF000H~EFFFFHD.FE000H~FEFFFH<答案>:D考察數(shù)字電路中譯碼知識和存儲系統(tǒng)中統(tǒng)一編址的問題,相對來說,這個題目有點難度,但是對于學習過和親身做過單片機的兄弟來說,最基本但是了。7、2023年46題(46)完全把系統(tǒng)軟件和硬件部分隔離開來,從而大大提高了系統(tǒng)的可移植性。(46)A.硬件抽象層B.驅(qū)動映射層C.硬件交互層D.中間層<答案>:A考察嵌入式系統(tǒng)組成中的概念。8、2023年3題設(shè)指令由取指、分析、執(zhí)行3個子部件完畢,每個子部件的工作周期為△t,采用常規(guī)標量單流水線解決機。若連續(xù)執(zhí)行10條指令,則共需要時間(3)△t。(3)A.8B.10C.12D.14<答案>:C考察流水線技術(shù)知識點。3+(10-1)×1=129、2023年4、5題某計算機的時鐘頻率為400MHz,測試計算機的程序使用4種類型的指令。每種指令的數(shù)量及所需要的指令時鐘數(shù)(CPI)如下表所示,則該計算機的指令平均時鐘數(shù)為(4);該計算機的運算速度為(5)MIPS。指令類型指令數(shù)目(條)每條指令需要的時鐘數(shù)11600001230000232400044160008(4)A.1.85B.1.93C(5)A.106.7B.169.5C.207.3D.216.2<答案>:B、C考察指令運營方面的簡樸計算。平均時鐘數(shù)=(160000+2×30000+4×24000+8×16000)/(160000+30000+24000+16000)=1.93MIPS是指每秒種執(zhí)行多少百萬條指令,即106。計算機的運營數(shù)度為:400/1.93=207.25=207.3MIPS9、2023年12題計算機要對聲音信號進行解決時,必須將它轉(zhuǎn)換為數(shù)字聲音信號。最基本的聲音信號數(shù)字化方法時取樣-量化法。若量化后的每個聲音樣本用2個字節(jié)表達,則量化分辨率是(12)(12)A.1/2B.1/1024C.1/65536D.1/131072<答案>:C考察聲音編碼種量化計算的知識點。2個字節(jié)是16位,其量化分辨率位1/1016=1/65536。10、2023年13題某幅圖像具有640×460個象素點,若每個象素具有8位的顏色深度,則可表達(13)種不同的顏色,通過5:1壓縮后,其圖像數(shù)據(jù)需要占用(14)(Byte)的存儲空間。(13)A.8B.256C.512D.1024(14)A.61440B.307200C.384000D.3072023<答案>:B、A考察圖像數(shù)據(jù)存儲計算的知識點。8位顏色深度可以表達28=256種顏色深度。通過5:1壓縮后的數(shù)據(jù)大小為:640×480×8/8/5=61440。11、2023年23題若某邏輯門輸入A、B和輸出F的波形如下圖所示,則F(A,B)的表達式為(23)(23)A.F=ABB.F=A+BC.F=A異或BD.F=A(B的非)_____A_______||____||______________B_______||_________________F___________||_______<答案>:C考察數(shù)字電路的最基本知識點,我覺得這個都搞不清楚很難通過這個考試。12、2023年24題一個4位的二進制計數(shù)器,由0000狀態(tài)開始,通過25個時鐘脈沖后,該計數(shù)器的狀態(tài)為24(24)A.1100B.1000C.1001D.1010<答案>:C考察數(shù)字電路的最基本知識點,相對上面一題有點難,需要對計數(shù)器的工作原理有比較清楚的理解。這個也是搞嵌入式系統(tǒng)的基礎(chǔ)中的基礎(chǔ),參考教程38頁或相關(guān)的數(shù)電書籍。4位的計數(shù)器,其計數(shù)范圍是24=16,0000開始通過16個時鐘脈沖之后又回到了開始的狀態(tài)0000。25-16=9,所以說通過25個時鐘之后,其計數(shù)器的數(shù)值應(yīng)當是9=1001。13、2023年25題穩(wěn)壓二極管構(gòu)成的穩(wěn)壓電路的接法是(25)(25)A.穩(wěn)壓管與負載電阻串聯(lián)。B.穩(wěn)壓管與限流電阻并聯(lián)。C.限流電阻與穩(wěn)壓管串聯(lián)后,在與負載電阻串聯(lián)。D.限流電阻與穩(wěn)壓管串聯(lián)后,在與負載電阻并聯(lián)。<答案>:D考察模擬電路的最基本知識點,實在太簡樸,不知道從那里開始分析了。14、2023年26題以下敘述中,不符合RISC指令系統(tǒng)特點的是(26)(26)A.指令長度固定,指令種類少。B.尋址方式種類豐富,指令功能盡量增強。C.設(shè)立大量通用寄存器,訪問存儲器指令簡樸。D.選取使用頻率較高的一些簡樸指令。<答案>:B考察RISC與CICS的區(qū)別,考生應(yīng)當清楚他們的區(qū)別,參與教程22頁。15、2023年27題通常所說的32位微解決器是指(27)(27)A.地址總線的寬度為32位B.解決器數(shù)據(jù)長度只能為32位C.CPU字長為32位D.通用寄存器數(shù)目為32位<答案>:C考察字長的概念和總線寬度的理解,參與教程25頁。16、2023年28題在32位總線系統(tǒng)中,若時鐘頻率為500MHz,傳送一個32位字需要5個時鐘周期,則該總線系統(tǒng)的數(shù)據(jù)傳送速率為(28)MB/s。(28)A.200B.400C.600D.800<答案>:B考察總線和數(shù)據(jù)傳輸方面的知識點。5個時鐘周期可以傳送4個Byte。每秒中可以傳送:4×(500/5)=400MB/s。17、2023年30題評價一個計算機系統(tǒng)時,通常重要使用(30)來衡量系統(tǒng)的可靠性。(30)A.評價響應(yīng)時間B.平均無端障時間(MTBF)C.平均修復(fù)時間D.數(shù)據(jù)解決速率<答案>:B考察嵌入式系統(tǒng)性能評價中重要知識點??催^了就會做,每什么分析的,參見教程77頁。四、小結(jié)就我個人的意見,從內(nèi)容來看,嵌入式系統(tǒng)基礎(chǔ)知識的范圍很廣,知識點很多,并且沒有很強的邏輯性,顯得比較凌亂,很難將他們有序的組織在一起。但是也不要膽怯,內(nèi)容雖然多而亂,但是考試的題目都比較簡樸,有些題目幾乎是所見即所得。只要你做過嵌入式或者單片機方面的工作,你都能做出來。一些計算的題目也是一些基本概念的延伸。通過度析歷年的真題,一方面可以把握考試的出題方式和考試難度,同時可以把握這部分內(nèi)容的出題方向和復(fù)習的方法。從兩年的考試題目數(shù)量分布來看,202310道,20237道,數(shù)量有所較少,但是我覺得這不是一個趨勢,2023應(yīng)當不會少于7道題目的。這部分在嵌入式系統(tǒng)設(shè)計里面是相稱重要的,有一個良好的基礎(chǔ)才干做好下面的事情。假如復(fù)習得好,將這7、8分題目拿到手,那么你離45分左右的及格線又邁進了一大步了。預(yù)解決器(Preprocessor)1.用預(yù)解決指令#define聲明一個常數(shù),用以表白1年中有多少秒(忽略閏年問題)#defineSECONDS_PER_YEAR(60*60*24*365)UL我在這想看到幾件事情:1)#define語法的基本知識(例如:不能以分號結(jié)束,括號的使用,等等)2)懂得預(yù)解決器將為你計算常數(shù)表達式的值,因此直接寫出你如何計算一年中有多少秒而不是計算出實際的值,是更清楚而沒有代價的。3)意識到這個表達式將使一個16位機的整型數(shù)溢出-因此要用到長整型符號L,告訴編譯器這個常數(shù)是的長整型數(shù)。4)假如你在你的表達式中用到UL(表達無符號長整型),那么你有了一個好的起點。記住,第一印象很重要。2.寫一個"標準"宏MIN,這個宏輸入兩個參數(shù)并返回較小的一個。#defineMIN(A,B)((A)<=(B)?(A):(B))這個測試是為下面的目的而設(shè)的:1)標記#define在宏中應(yīng)用的基本知識。這是很重要的。由于在嵌入(inline)操作符變?yōu)闃藴蔆的一部分之前,宏是方便產(chǎn)生嵌入代碼的唯一方法,對于嵌入式系統(tǒng)來說,為了能達成規(guī)定的性能,嵌入代碼經(jīng)常是必須的方法。2)三重條件操作符的知識。這個操作符存在C語言中的因素是它使得編譯器能產(chǎn)生比if-then-else更優(yōu)的代碼,了解這個用法是很重要的。3)懂得在宏中小心地把參數(shù)用括號括起來4)我也用這個問題開始討論宏的副作用,例如:當你寫下面的代碼時會發(fā)生什么事?least=MIN(*p++,b);3.預(yù)解決器標記#error的目的是什么?假如你不知道答案,請看參考文獻1。這問題對區(qū)分一個正常的伙計和一個書呆子是很有用的。只有書呆子才會讀C語言課本的附錄去找出象這種問題的答案。當然假如你不是在找一個書呆子,那么應(yīng)試者最佳希望自己不要知道答案。死循環(huán)(Infiniteloops)4.嵌入式系統(tǒng)中經(jīng)常要用到無限循環(huán),你怎么樣用C編寫死循環(huán)呢?這個問題用幾個解決方案。我首選的方案是:while(1){}一些程序員更喜歡如下方案:for(;;){}這個實現(xiàn)方式讓我為難,由于這個語法沒有確切表達成底怎么回事。假如一個應(yīng)試者給出這個作為方案,我將用這個作為一個機會去探究他們這樣做的基本原理。假如他們的基本答案是:"我被教著這樣做,但從沒有想到過為什么。"這會給我留下一個壞印象。第三個方案是用gotoLoop:...gotoLoop;應(yīng)試者如給出上面的方案,這說明或者他是一個匯編語言程序員(這也許是好事)或者他是一個想進入新領(lǐng)域的BASIC/FORTRAN程序員。數(shù)據(jù)聲明(Datadeclarations)5.用變量a給出下面的定義a)一個整型數(shù)(Aninteger)b)一個指向整型數(shù)的指針(Apointertoaninteger)c)一個指向指針的的指針,它指向的指針是指向一個整型數(shù)(Apointertoapointertoanintege)rd)一個有10個整型數(shù)的數(shù)組(Anarrayof10integers)e)一個有10個指針的數(shù)組,該指針是指向一個整型數(shù)的。(Anarrayof10pointerstointegers)f)一個指向有10個整型數(shù)數(shù)組的指針(Apointertoanarrayof10integers)g)一個指向函數(shù)的指針,該函數(shù)有一個整型參數(shù)并返回一個整型數(shù)(Apointertoathattakesanintegerasanargumentandreturnsaninteger)h)一個有10個指針的數(shù)組,該指針指向一個函數(shù),該函數(shù)有一個整型參數(shù)并返回一個整型數(shù)(Anarrayoftenpointerstosthattakeanintegerargumentandreturnaninteger)答案是:a)inta;//Anintegerb)int*a;//Apointertoanintegerc)int**a;//Apointertoapointertoanintegerd)inta[10];//Anarrayof10integerse)int*a[10];//Anarrayof10pointerstointegersf)int(*a)[10];//Apointertoanarrayof10integersg)int(*a)(int);//Apointertoaathat(yī)takesanintegerargumentandreturnsanintegerh)int(*a[10])(int);//Anarrayof10pointerstosthattakeanintegerargumentandreturnaninteger人們經(jīng)常聲稱這里有幾個問題是那種要翻一下書才干回答的問題,我批準這種說法。當我寫這篇文章時,為了擬定語法的對的性,我的確查了一下書。但是當我被面試的時候,我盼望被問到這個問題(或者相近的問題)。由于在被面試的這段時間里,我擬定我知道這個問題的答案。應(yīng)試者假如不知道所有的答案(或至少大部分答案),那么也就沒有為這次面試做準備,假如該面試者沒有為這次面試做準備,那么他又能為什么出準備呢?Stat(yī)ic6.關(guān)鍵字static的作用是什么?這個簡樸的問題很少有人能回答完全。在C語言中,關(guān)鍵字stat(yī)ic有三個明顯的作用:1)在函數(shù)體,一個被聲明為靜態(tài)的變量在這一函數(shù)被調(diào)用過程中維持其值不變。2)在模塊內(nèi)(但在函數(shù)體外),一個被聲明為靜態(tài)的變量可以被模塊內(nèi)所用函數(shù)訪問,但不能被模塊外其它函數(shù)訪問。它是一個本地的全局變量。3)在模塊內(nèi),一個被聲明為靜態(tài)的函數(shù)只可被這一模塊內(nèi)的其它函數(shù)調(diào)用。那就是,這個函數(shù)被限制在聲明它的模塊的本地范圍內(nèi)使用。大多數(shù)應(yīng)試者能對的回答第一部分,一部分能對的回答第二部分,同是很少的人能懂得第三部分。這是一個應(yīng)試者的嚴重的缺陷,由于他顯然不懂得本地化數(shù)據(jù)和代碼范圍的好處和重要性。Const7.關(guān)鍵字const有什么含意?我只要一聽到被面試者說:"const意味著常數(shù)",我就知道我正在和一個業(yè)余者打交道。去年DanSaks已經(jīng)在他的文章里完全概括了const的所有用法,因此ESP(譯者:EmbeddedSystemsProgramming)的每一位讀者應(yīng)當非常熟悉const能做什么和不能做什么.假如你從沒有讀到那篇文章,只要能說出const意味著"只讀"就可以了。盡管這個答案不是完全的答案,但我接受它作為一個對的的答案。(假如你想知道更具體的答案,仔細讀一下Saks的文章吧。)假如應(yīng)試者能對的回答這個問題,我將問他一個附加的問題:下面的聲明都是什么意思?constinta;intconsta;constint*a;int*consta;intconst*aconst;/******/前兩個的作用是同樣,a是一個常整型數(shù)。第三個意味著a是一個指向常整型數(shù)的指針(也就是,整型數(shù)是不可修改的,但指針可以)。第四個意思a是一個指向整型數(shù)的常指針(也就是說,指針指向的整型數(shù)是可以修改的,但指針是不可修改的)。最后一個意味著a是一個指向常整型數(shù)的常指針(也就是說,指針指向的整型數(shù)是不可修改的,同時指針也是不可修改的)。假如應(yīng)試者能對的回答這些問題,那么他就給我留下了一個好印象。順帶提一句,也許你也許會問,即使不用關(guān)鍵字const,也還是能很容易寫出功能對的的程序,那么我為什么還要如此看重關(guān)鍵字const呢?我也如下的幾下理由:1)關(guān)鍵字const的作用是為給讀你代碼的人傳達非常有用的信息,事實上,聲明一個參數(shù)為常量是為了告訴了用戶這個參數(shù)的應(yīng)用目的。假如你曾花很多時間清理其它人留下的垃圾,你就會不久學會感謝這點多余的信息。(當然,懂得用const的程序員很少會留下的垃圾讓別人來清理的。)2)通過給優(yōu)化器一些附加的信息,使用關(guān)鍵字const也許能產(chǎn)生更緊湊的代碼。3)合理地使用關(guān)鍵字const可以使編譯器很自然地保護那些不希望被改變的參數(shù),防止其被無意的代碼修改。簡而言之,這樣可以減少bug的出現(xiàn)。Volat(yī)ile8.關(guān)鍵字volatile有什么含意?并給出三個不同的例子。一個定義為volat(yī)ile的變量是說這變量也許會被意想不到地改變,這樣,編譯器就不會去假設(shè)這個變量的值了。精確地說就是,優(yōu)化器在用到這個變量時必須每次都小心地重新讀取這個變量的值,而不是使用保存在寄存器里的備份。下面是volat(yī)ile變量的幾個例子:1)并行設(shè)備的硬件寄存器(如:狀態(tài)寄存器)2)一個中斷服務(wù)子程序中會訪問到的非自動變量(Non-automaticvariables)3)多線程應(yīng)用中被幾個任務(wù)共享的變量回答不出這個問題的人是不會被雇傭的。我認為這是區(qū)分C程序員和嵌入式系統(tǒng)程序員的最基本的問題。搞嵌入式的家伙們經(jīng)常同硬件、中斷、RTO(shè)S等等打交道,所有這些都規(guī)定用到volatile變量。不懂得volatile的內(nèi)容將會帶來劫難。假設(shè)被面試者對的地回答了這是問題(嗯,懷疑是否會是這樣),我將稍微深究一下,看一下這家伙是不是直正懂得volatile完全的重要性。1)一個參數(shù)既可以是const還可以是volatile嗎?解釋為什么。2)一個指針可以是volatile嗎?解釋為什么。3)下面的函數(shù)有什么錯誤:intsquare(volatileint*ptr){return*ptr**ptr;}下面是答案:1)是的。一個例子是只讀的狀態(tài)寄存器。它是volatile由于它也許被意想不到地改變。它是const由于程序不應(yīng)當試圖去修改它。2)是的。盡管這并不很常見。一個例子是當一個中服務(wù)子程序修該一個指向一個buffer的指針時。3)這段代碼有點變態(tài)。這段代碼的目的是用來返指針*ptr指向值的平方,但是,由于*ptr指向一個volatile型參數(shù),編譯器將產(chǎn)生類似下面的代碼:intsquare(volatileint*ptr){inta,b;a=*ptr;b=*ptr;returna*b;}由于*ptr的值也許被意想不到地該變,因此a和b也許是不同的。結(jié)果,這段代碼也許返不是你所盼望的平方值!對的的代碼如下:longsquare(volatileint*ptr){inta;a=*ptr;returna*a;}位操作(Bitmanipulation)9.嵌入式系統(tǒng)總是要用戶對變量或寄存器進行位操作。給定一個整型變量a,寫兩段代碼,第一個設(shè)立a的bit3,第二個清除a的bit3。在以上兩個操作中,要保持其它位不變。對這個問題有三種基本的反映1)不知道如何下手。該被面者從沒做過任何嵌入式系統(tǒng)的工作。2)用bitfields。Bitfields是被扔到C語言死角的東西,它保證你的代碼在不同編譯器之間是不可移植的,同時也保證了的你的代碼是不可重用的。我最近不幸看到Infineon為其較復(fù)雜的通信芯片寫的驅(qū)動程序,它用到了bitfields因此完全對我無用,由于我的編譯器用其它的方式來實現(xiàn)bitfields的。從道德講:永遠不要讓一個非嵌入式的家伙粘實際硬件的邊。3)用#defines和bitmasks操作。這是一個有極高可移植性的方法,是應(yīng)當被用到的方法。最佳的解決方案如下:#defineBIT3(0x1<<3)staticinta;voidset_bit3(void){a|=BIT3;}voidclear_bit3(void){a&=~BIT3;}一些人喜歡為設(shè)立和清除值而定義一個掩碼同時定義一些說明常數(shù),這也是可以接受的。我希望看到幾個要點:說明常數(shù)、|=和&=~操作。訪問固定的內(nèi)存位置(Accessingfixedmemorylocations)10.嵌入式系統(tǒng)經(jīng)常具有規(guī)定程序員去訪問某特定的內(nèi)存位置的特點。在某工程中,規(guī)定設(shè)立一絕對地址為0x67a9的整型變量的值為0xaa66。編譯器是一個純粹的ANSI編譯器。寫代碼去完畢這一任務(wù)。這一問題測試你是否知道為了訪問一絕對地址把一個整型數(shù)強制轉(zhuǎn)換(typecast)為一指針是合法的。這一問題的實現(xiàn)方式隨著個人風格不同而不同。典型的類似代碼如下:int*ptr;ptr=(int*)0x67a9;*ptr=0xaa55;Amoreobscureapproachis:一個較晦澀的方法是:*(int*const)(0x67a9)=0xaa55;即使你的品味更接近第二種方案,但我建議你在面試時使用第一種方案。中斷(Interrupts)11.中斷是嵌入式系統(tǒng)中重要的組成部分,這導(dǎo)致了很多編譯開發(fā)商提供一種擴展—讓標準C支持中斷。具代表事實是,產(chǎn)生了一個新的關(guān)鍵字__interrupt。下面的代碼就使用了__interrupt關(guān)鍵字去定義了一個中斷服務(wù)子程序(ISR),請評論一下這段代碼的。__interruptdoublecompute_area(doubleradius){doublearea=PI*radius*radius;printf("\nArea=%f",area);returnarea;}這個函數(shù)有太多的錯誤了,以至讓人不知從何說起了:1)ISR不能返回一個值。假如你不懂這個,那么你不會被雇用的。2)ISR不能傳遞參數(shù)。假如你沒有看到這一點,你被雇用的機會等同第一項。3)在許多的解決器/編譯器中,浮點一般都是不可重入的。有些解決器/編譯器需要讓額處的寄存器入棧,有些解決器/編譯器就是不允許在ISR中做浮點運算。此外,ISR應(yīng)當是短而有效率的,在ISR中做浮點運算是不明智的。4)與第三點一脈相承,printf()經(jīng)常有重入和性能上的問題。假如你丟掉了第三和第四點,我不會太為難你的。不用說,假如你能得到后兩點,那么你的被雇用前景越來越光明了。代碼例子(Codeexamples)12.下面的代碼輸出是什么,為什么?voidfoo(void){unsignedinta=6;intb=-20;(a+b>6)?puts(">6"):puts("<=6");}這個問題測試你是否懂得C語言中的整數(shù)自動轉(zhuǎn)換原則,我發(fā)現(xiàn)有些開發(fā)者懂得很少這些東西。不管如何,這無符號整型問題的答案是輸出是">6"。因素是當表達式中存在有符號類型和無符號類型時所有的操作
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年社區(qū)國慶節(jié)活動方案演講稿
- 2025新人教版七年級歷史上冊教案(有反思)第10課 秦末農(nóng)民大起義
- 一例胎膜早破個案護理
- 泌尿外科健康教育
- 公司信息安全細節(jié)
- 西交利物浦大學《美術(shù)鑒賞與教學》2023-2024學年第二學期期末試卷
- 上??苿?chuàng)職業(yè)技術(shù)學院《紡織品圖案設(shè)計》2023-2024學年第二學期期末試卷
- 安徽師范大學《英語閱讀基礎(chǔ)1》2023-2024學年第二學期期末試卷
- 云南商務(wù)職業(yè)學院《綠色建筑》2023-2024學年第二學期期末試卷
- 四川工業(yè)科技學院《數(shù)據(jù)挖掘基礎(chǔ)》2023-2024學年第一學期期末試卷
- 海岸動力學全冊配套完整課件
- 工作面防飛矸封閉式管理規(guī)定
- 纖維素酶活性的測定
- 干部人事檔案管理崗位培訓的講義課件
- 驗電接地環(huán)安裝規(guī)范
- 計算機監(jiān)控系統(tǒng)安裝單元工程質(zhì)量驗收評定表
- 外墻干掛大理石施工方案(標準版)
- JJG(交通)064-2016 瀝青混合料拌和機檢定規(guī)程-(高清現(xiàn)行)
- DB65∕T 2683-2007 建材產(chǎn)品中廢渣摻加量的測定方法
- ICU輪轉(zhuǎn)護士考核試卷試題及答案
- 鉆孔灌注樁鋼筋籠加工兩種方法
評論
0/150
提交評論