嵌入式工程師考試題目(1)_第1頁
嵌入式工程師考試題目(1)_第2頁
嵌入式工程師考試題目(1)_第3頁
嵌入式工程師考試題目(1)_第4頁
嵌入式工程師考試題目(1)_第5頁
已閱讀5頁,還剩42頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、嵌入式工程師考試題目 作者 daoshi_000 日期 2021-2-2 1:39:00嵌入式系統(tǒng)設(shè)計師考試筆記之嵌入式系統(tǒng)根底知識歐浩源 HYPERLINK mailto: 20210818一、引言自?嵌入式系統(tǒng)設(shè)計師考試復(fù)習筆記之存儲管理篇?在嵌入式在線的博客出現(xiàn)后,意外的得到很多朋友的關(guān)注和評論,收到不少朋友的郵件,問一些有關(guān)考試的問題,希望得到我的復(fù)習筆記的其他局部。我非常感謝他們,他們的熱切關(guān)注,使我有了繼續(xù)往下寫的無限動力,使我萌生了將我以前的復(fù)習筆記、考試經(jīng)歷結(jié)合大綱教程并重新按?教程?的章節(jié)順序整理一份適合考生復(fù)習的筆記手冊,筆記后面再分析歷年的真題,按章節(jié)考點找出相關(guān)的考題進

2、展分析,希望能和有興趣的人們一起討論討論。嵌入式系統(tǒng)設(shè)計師的一天考試分為上午和下午局部,兩局部的考試方式、試題難度、考點分布和復(fù)習方法都是不同的。這次我們討論的是嵌入式系統(tǒng)根底知識,我本人覺得,這局部出下午大題的可能性不大,主要是分布在上午的75道選擇題之中。從歷年的真題和考試大綱來看,上午的選擇題主要考察一些根本概念,重要原理的理解,一些關(guān)鍵技術(shù)和一些重要的原理引申出來的簡單計算。根據(jù)這些考試特點,復(fù)習的時候可以采用適當?shù)牟呗裕斎幻總€人的方法都是不一樣的,適合自己的方法才是最好的方法。方法大家可以自己慢慢去體會,我的也不多說了,通過筆記和真題分析就可以表達處理。對于很多關(guān)鍵的知識點和根本概

3、念,除了記住之外還要徹底理解,否那么出題的時候會進展一些變換,或者引申一些計算,那么就算你知道考那個考點,可能你也做不好。在復(fù)習的過程中,你要記住:你不是要考一個很高的分數(shù),而是要考一個通過的分數(shù),在復(fù)習過程中可以放棄一些內(nèi)容,只要保證在大局部根本概念,關(guān)鍵技術(shù),重要原理和歷年考點上都把握住,能夠拿到需要的分數(shù)就可以了。二、復(fù)習筆記1、嵌入式系統(tǒng)的定義1定義:以應(yīng)用為中心,以計算機技術(shù)為根底,軟硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、本錢、體積、功耗嚴格要求的專用計算機系統(tǒng)。2嵌入式系統(tǒng)開展的4個階段:無操作系統(tǒng)階段、簡單操作系統(tǒng)階段、實時操作系統(tǒng)階段、面向Internet階段。3知識產(chǎn)權(quán)核I

4、P核:具有知識產(chǎn)權(quán)的、功能具體、接口標準、可在多個集成電路設(shè)計中重復(fù)使用的功能模塊,是實現(xiàn)系統(tǒng)芯片SOC的根本構(gòu)件。4IP核模塊有行為、構(gòu)造和物理3級不同程度的設(shè)計,對應(yīng)描述功能行為的不同可以分為三類:軟核、固核、硬核。2、嵌入式系統(tǒng)的組成:硬件層、中間層、系統(tǒng)軟件層和應(yīng)用軟件層1硬件層:嵌入式微處理器、存儲器、通用設(shè)備接口和I/O接口。嵌入式核心模塊微處理器電源電路時鐘電路存儲器Cache:位于主存和嵌入式微處理器內(nèi)核之間,存放的是最近一段時間微處理器使用最多的程序代碼和數(shù)據(jù)。它的主要目標是減小存儲器給微處理器內(nèi)核造成的存儲器訪問瓶頸,使處理速度更快。2中間層也稱為硬件抽象層HAL或者板級支

5、持包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)所要求的工作狀態(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)及通

6、用組件模塊組成。RTOS是嵌入式應(yīng)用軟件的根底和開發(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)能夠得到完全滿足,否那么就造成重大平安事故,甚至造成重大的生命財產(chǎn)損失和生態(tài)破壞,如:航天、軍事。5軟實時弱實時:指某些應(yīng)用雖然提出了時間的要求,但實時任務(wù)偶爾違反這種需求對系統(tǒng)運行及環(huán)境不會造

7、成嚴重影響,如:監(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)系,采用某

8、種搜索策略生成一張運行時刻表,指明各任務(wù)的起始運行時刻及運行時間。5優(yōu)先級驅(qū)動策略:按照任務(wù)優(yōu)先級的上下確定任務(wù)的執(zhí)行順序。6實時任務(wù)分類:周期任務(wù)、偶發(fā)任務(wù)、非周期任務(wù)。7實時系統(tǒng)的通用構(gòu)造模型:數(shù)據(jù)采集任務(wù)實現(xiàn)傳感器數(shù)據(jù)的采集,數(shù)據(jù)處理任務(wù)處理采集的數(shù)據(jù)、并將加工后的數(shù)據(jù)送到執(zhí)行機構(gòu)管理任務(wù)控制機構(gòu)執(zhí)行。5、嵌入式微處理器體系構(gòu)造1馮諾依曼構(gòu)造:程序和數(shù)據(jù)共用一個存儲空間,程序指令存儲地址和數(shù)據(jù)存儲地址指向同一個存儲器的不同物理位置,采用單一的地址及數(shù)據(jù)總線,程序和數(shù)據(jù)的寬度一樣。例如:8086、ARM7、MIPS2哈佛構(gòu)造:程序和數(shù)據(jù)是兩個相互獨立的存儲器,每個存儲器獨立編址、獨立訪問,

9、是一種將程序存儲和數(shù)據(jù)存儲分開的存儲器構(gòu)造。例如:AVR、ARM9、ARM103CISC與RISC的特點比擬參照教程22頁。計算機執(zhí)行程序所需要的時間P可以用下面公式計算:P=ICPITI:高級語言程序編譯后在機器上運行的指令數(shù)。CPI:為執(zhí)行每條指令所需要的平均周期數(shù)。T:每個機器周期的時間。4流水線的思想:在CPU中把一條指令的串行執(zhí)行過程變?yōu)榧僭O(shè)干指令的子過程在CPU中重疊執(zhí)行。5流水線的指標:吞吐率:單位時間里流水線處理機流出的結(jié)果數(shù)。如果流水線的子過程所用時間不一樣長,那么吞吐率應(yīng)為最長子過程的倒數(shù)。建立時間:流水線開場工作到達最大吞吐率的時間。假設(shè)m個子過程所用時間一樣,均為t,那

10、么建立時間Tmt。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、邏輯電路根底1根據(jù)電路是否具有存儲功能,將邏輯電路劃分為:組合邏輯電路和時序邏輯電路。2組合邏輯電路:電路在任一時刻的輸出,僅取決于該時刻的輸入信號,而與輸入信號作用前電路的狀態(tài)無關(guān)。常用的邏輯電路有譯碼器和多路選擇器等。3時序邏輯電路:電

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

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

13、:一定時間內(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當總線上所接的負載超過總線的負載能力時,必須在總線和負載之間加接緩沖器或

14、驅(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)的概念為根底。8、電平轉(zhuǎn)換電路1數(shù)字集成電路可以分為兩大類:雙極型集成電路TTL、金屬氧化物半導體MOS。2CMOS電路由于其靜態(tài)功耗極低,工作速度較高,抗干擾能力較強,被廣泛使用。3解決TTL與CMOS電路接口困難的方法是在TTL電路輸出端與電源之間接一上拉電阻R,上拉電阻R的取值由TTL的高電平輸出漏

15、電流IOH來決定,不同系列的TTL應(yīng)選用不同的R值。9、可編程邏輯器件根底具體參見教程51到61頁這方面的內(nèi)容,從總體上有個概念性的認識應(yīng)該就可以了。10、嵌入式系統(tǒng)中信息表示與運算根底1進位計數(shù)制與轉(zhuǎn)換:這樣比擬簡單,也應(yīng)該掌握怎么樣進展換算,有出題的可能。2計算機中數(shù)的表示:源碼、反碼與補碼。正數(shù)的反碼與源碼一樣,負數(shù)的反碼為該數(shù)的源碼除符號位外按位取反。正數(shù)的補碼與源碼一樣,負數(shù)的補碼為該數(shù)的反碼加一。例如98的源碼:11100010B反碼:10011101B補碼:10011110B3定點表示法:數(shù)的小數(shù)點的位置人為約定固定不變。浮點表示法:數(shù)的小數(shù)點位置是浮動的,它由尾數(shù)局部和階數(shù)局部

16、組成。任意一個二進制N總可以寫成:N=2PS。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)過失的碼,例如奇偶檢驗碼;糾錯碼是指不僅能

17、發(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平安性9保密性10可擴展性性價比中的價格,除了直接購置嵌入式系統(tǒng)的價格外,還應(yīng)包含安裝費用、假設(shè)干年的運行維修費用和軟件租用費。13、嵌入式系統(tǒng)的評價方法:測量法和模型

18、法1測量法是最直接最根本的方法,需要解決兩個問題:A、根據(jù)研究的目的,確定要測量的系統(tǒng)參數(shù)。B、選擇測量的工具和方式。2測量的方式有兩種:采樣方式和事件跟蹤方式。3模型法分為分析模型法和模擬模型法。分析模型法是用一些數(shù)學方程去刻畫系統(tǒng)的模型,而模擬模型法是用模擬程序的運行去動態(tài)表達嵌入式系統(tǒng)的狀態(tài),而進展系統(tǒng)統(tǒng)計分析,得出性能指標。4分析模型法中使用最多的是排隊模型,它包括三個局部:輸入流、排隊規(guī)那么和效勞機構(gòu)。5使用模型對系統(tǒng)進展評價需要解決3個問題:設(shè)計模型、解模型、校準和證實模型。三、真題解析1、2007年4、5題假設(shè)每一條指令都可以分解為取指、分析和執(zhí)行三步。取指時間t取指4t,分析時

19、間t分析3t,執(zhí)行時間t執(zhí)行5t。如果按串行方式執(zhí)行完100條指令需要 4 t。如果按照流水線方式執(zhí)行,執(zhí)行完100條指令需要 5 t。4A. 1190 B. 1195 C. 1200 D. 12055A. 504 B. 507 C. 508 D. 510 :C、B考察流水線技術(shù)知識點。按照串行的方式,執(zhí)行完一條指令才能執(zhí)行下一條指令,那么執(zhí)行完100條指令的時間為:4351001200按照流水線的方式,可以同時執(zhí)行多條指令。在第一條指令進展分析的時候,第二條指令已經(jīng)開場取指;當?shù)谝粭l指令進展執(zhí)行的時候,第二條指令進展分析,第三條指令取指;當?shù)诙l指令進展執(zhí)行完的時候,第三條指令已經(jīng)分析完成。

20、依此類推,當?shù)谝粭l指令完成之后,每一個執(zhí)行的周期就可以完成一條指令。需要注意的是,如果流水線的子過程所用時間不一樣長,那么吞吐率應(yīng)以最長子過程來計算。因此,我們可以計算得100條指令的執(zhí)行時間為:43510015507。2、2007年24題某總線有104根信號線,其中數(shù)據(jù)總線DB32根,假設(shè)總線工作頻率為33MHz,那么其理論最大傳輸率為 24 。注:此題答案中的B表示Byte24A. 33 MB/s B. 64MB/s C. 132 MB/s D. 164 MB/s:C考察總線這個知識點。根據(jù)上面的筆記,總線帶寬 總線位寬總線頻率/8=3233/8132MB/s。3、2007年26題某存儲器

21、數(shù)據(jù)總線寬度為32bit,存取周期為250ns,那么該存儲器帶寬為 26 。注:此題答案中的B表示Byte26A. 8106B/s B. 16106B/s C. 16108B/s D. 32106B/s:B考察總線這個知識點。存儲器帶寬即總線帶寬,總線頻率為:1/250ns=4106存儲器帶寬為:324106/816106B/s4、2007年27題處理機主要由處理器、存儲器和總線組成,總線包括 27 。27A. 數(shù)據(jù)總線、串行總線、邏輯總線、物理總線B. 并行總線、地址總線、邏輯總線、物理總線C. 并行總線、串行總線、全雙工總線D. 數(shù)據(jù)總線、地址總線、控制總線:D考察總線這個知識點,根本概念

22、的考察。5、2007年35題三極管是可控的開關(guān)器件,其飽和與截止狀態(tài)分別對應(yīng)開關(guān)的接通和斷開狀態(tài)。UBE為基極輸入電壓,VTH為基極域值電壓,如果UBETH,開關(guān)應(yīng)處于 35 狀態(tài)。35A. 接通 B. 三態(tài) C. 斷開 D. 高阻:C考察電路中最根本的根底知識點,我覺得做不對的根本不能算嵌入式系統(tǒng)開發(fā)入門。6、2007年36題如下列圖所示,假設(shè)低位地址A0-A11接在內(nèi)存芯片地址引腳上,高位地址A12-A19進展片選譯碼其中,A14和A16沒有參加譯碼,且片選信號低電平有效,那么對下列圖所示的譯碼器,不屬于此譯碼空間的地址為 36 。36A. AB000HABFFFH B. BB000HBB

23、FFFHC. EF000HEFFFFH D. FE000HFEFFFH:D考察數(shù)字電路中譯碼知識和存儲系統(tǒng)中統(tǒng)一編址的問題,相對來說,這個題目有點難度,但是對于學習過和親身做過單片機的兄弟來說,最根本不過了。7、2007年46題46 完全把系統(tǒng)軟件和硬件局部隔離開來,從而大大提高了系統(tǒng)的可移植性。46A. 硬件抽象層 B. 驅(qū)動映射層 C. 硬件交互層 D. 中間層:A考察嵌入式系統(tǒng)組成中的概念。8、2006年3題設(shè)指令由取指、分析、執(zhí)行3個子部件完成,每個子部件的工作周期為t,采用常規(guī)標量單流水線處理機。假設(shè)連續(xù)執(zhí)行10條指令,那么共需要時間3t。:C考察流水線技術(shù)知識點。31011129、

24、2006年4、5題某計算機的時鐘頻率為400MHz,測試計算機的程序使用4種類型的指令。每種指令的數(shù)量及所需要的指令時鐘數(shù)CPI如下表所示,那么該計算機的指令平均時鐘數(shù)為4;該計算機的運算速度為5MIPS。指令類型 指令數(shù)目條 每條指令需要的時鐘數(shù)1 160000 12 30000 23 24000 44 16000 8:B、C考察指令運行方面的簡單計算。MIPS是指每秒種執(zhí)行多少百萬條指令,即106。9、2006年12題計算機要對聲音信號進展處理時,必須將它轉(zhuǎn)換為數(shù)字聲音信號。最根本的聲音信號數(shù)字化方法時取樣量化法。假設(shè)量化后的每個聲音樣本用2個字節(jié)表示,那么量化分辨率是12:C考察聲音編碼

25、種量化計算的知識點。2個字節(jié)是16位,其量化分辨率位1/10161/65536。10、2006年13題某幅圖像具有640460個象素點,假設(shè)每個象素具有8位的顏色深度,那么可表示13種不同的顏色,經(jīng)過5:1壓縮后,其圖像數(shù)據(jù)需要占用14Byte的存儲空間。:B、A考察圖像數(shù)據(jù)存儲計算的知識點。8位顏色深度可以表示28256種顏色深度。經(jīng)過5:1壓縮后的數(shù)據(jù)大小為:6404808/8/561440。11、2006年23題假設(shè)某邏輯門輸入A、B和輸出F的波形如下列圖所示,那么F(A,B)的表達式為2323 A.F=A B B.F=A+B C.F=A異或B D.F=AB的非_ _A_| |_| |_

26、B_| |_F_| |_:C考察數(shù)字電路的最根本知識點,我覺得這個都搞不清楚很難通過這個考試。12、2006年24題一個4位的二進制計數(shù)器,由0000狀態(tài)開場,經(jīng)過25個時鐘脈沖后,該計數(shù)器的狀態(tài)為24:C考察數(shù)字電路的最根本知識點,相對上面一題有點難,需要對計數(shù)器的工作原理有比擬清楚的理解。這個也是搞嵌入式系統(tǒng)的根底中的根底,參考教程38頁或相關(guān)的數(shù)電書籍。4位的計數(shù)器,其計數(shù)范圍是2416,0000開場經(jīng)過16個時鐘脈沖之后又回到了開場的狀態(tài)0000。25169,所以說經(jīng)過25個時鐘之后,其計數(shù)器的數(shù)值應(yīng)該是91001。13、2006年25題穩(wěn)壓二極管構(gòu)成的穩(wěn)壓電路的接法是2525 A.穩(wěn)

27、壓管與負載電阻串聯(lián)。B.穩(wěn)壓管與限流電阻并聯(lián)。C.限流電阻與穩(wěn)壓管串聯(lián)后,在與負載電阻串聯(lián)。D.限流電阻與穩(wěn)壓管串聯(lián)后,在與負載電阻并聯(lián)。:D考察模擬電路的最根本知識點,實在太簡單,不知道從那里開場分析了。14、2006年26題以下表達中,不符合RISC指令系統(tǒng)特點的是2626 A.指令長度固定,指令種類少。B.尋址方式種類豐富,指令功能盡量增強。C.設(shè)置大量通用存放器,訪問存儲器指令簡單。D.選取使用頻率較高的一些簡單指令。:B考察RISC與CICS的區(qū)別,考生應(yīng)該清楚他們的區(qū)別,參加教程22頁。15、2006年27題通常所說的32位微處理器是指27:C考察字長的概念和總線寬度的理解,參加教

28、程25頁。16、2006年28題在32位總線系統(tǒng)中,假設(shè)時鐘頻率為500MHz,傳送一個32位字需要5個時鐘周期,那么該總線系統(tǒng)的數(shù)據(jù)傳送速率為28MB/s。:B考察總線和數(shù)據(jù)傳輸方面的知識點。5個時鐘周期可以傳送4個Byte。每秒中可以傳送:4500/5400MB/s。17、2006年30題評價一個計算機系統(tǒng)時,通常主要使用30來衡量系統(tǒng)的可靠性。B.平均無故障時間MTBF:B考察嵌入式系統(tǒng)性能評價中重要知識點。看過了就會做,每什么分析的,參見教程77頁。四、小結(jié)就我個人的意見,從內(nèi)容來看,嵌入式系統(tǒng)根底知識的范圍很廣,知識點很多,而且沒有很強的邏輯性,顯得比擬凌亂,很難將他們有序的組織在一

29、起。但是也不要害怕,內(nèi)容雖然多而亂,但是考試的題目都比擬簡單,有些題目幾乎是所見即所得。只要你做過嵌入式或者單片機方面的工作,你都能做出來。一些計算的題目也是一些根本概念的延伸。通過分析歷年的真題,一方面可以把握考試的出題方式和考試難度,同時可以把握這局部內(nèi)容的出題方向和復(fù)習的方法。從兩年的考試題目數(shù)量分布來看,06年10道,07年7道,數(shù)量有所較少,但是我覺得這不是一個趨勢,08年應(yīng)該不會少于7道題目的。這局部在嵌入式系統(tǒng)設(shè)計里面是相當重要的,有一個良好的根底才能做好下面的事情。如果復(fù)習得好,將這7、8分題目拿到手,那么你離45分左右的及格線又邁進了一大步了。預(yù)處理器Preprocessor

30、1 . 用預(yù)處理指令#define 聲明一個常數(shù),用以說明1年中有多少秒忽略閏年問題 #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在這想看到幾件事情:1) #define 語法的根本知識例如:不能以分號完畢,括號的使用,等等2) 懂得預(yù)處理器將為你計算常數(shù)表達式的值,因此直接寫出你如何計算一年中有多少秒而不是計算出實際的值,是更清晰而沒有代價的。3) 意識到這個表達式將使一個16位機的整型數(shù)溢出-因此要用到長整型符號L,告訴編譯器這個常數(shù)是的長整型數(shù)。4) 如果你在你的表達式中用到UL表示無符號長整型,那么你有了一個好的起點。記住,第一印象很

31、重要。2 . 寫一個標準宏MIN ,這個宏輸入兩個參數(shù)并返回較小的一個。 #define MIN(A,B) A = (B) ? (A) : (B)這個測試是為下面的目的而設(shè)的:1) 標識#define在宏中應(yīng)用的根本知識。這是很重要的。因為在 嵌入(inline)操作符 變?yōu)闃藴蔆的一局部之前,宏是方便產(chǎn)生嵌入代碼的唯一方法,對于嵌入式系統(tǒng)來說,為了能到達要求的性能,嵌入代碼經(jīng)常是必須的方法。2) 三重條件操作符的知識。這個操作符存在C語言中的原因是它使得編譯器能產(chǎn)生比if-then-else更優(yōu)的代碼,了解這個用法是很重要的。3) 懂得在宏中小心地把參數(shù)用括號括起來4) 我也用這個問題開場討

32、論宏的副作用,例如:當你寫下面的代碼時會發(fā)生什么事? least = MIN(*p+, b);3. 預(yù)處理器標識#error的目的是什么? 如果你不知道答案,請看參考文獻1。這問題對區(qū)分一個正常的伙計和一個書呆子是很有用的。只有書呆子才會讀C語言課本的附錄去找出象這種問題的答案。當然如果你不是在找一個書呆子,那么應(yīng)試者最好希望自己不要知道答案。死循環(huán)Infinite loops4. 嵌入式系統(tǒng)中經(jīng)常要用到無限循環(huán),你怎么樣用C編寫死循環(huán)呢?這個問題用幾個解決方案。我首選的方案是:while(1)一些程序員更喜歡如下方案:for(;) 這個實現(xiàn)方式讓我為難,因為這個語法沒有確切表到達底怎么回事。

33、如果一個應(yīng)試者給出這個作為方案,我將用這個作為一個時機去探究他們這樣做的根本原理。如果他們的根本答案是:我被教著這樣做,但從沒有想到過為什么。這會給我留下一個壞印象。第三個方案是用 gotoLoop:.goto Loop;應(yīng)試者如給出上面的方案,這說明或者他是一個匯編語言程序員這也許是好事或者他是一個想進入新領(lǐng)域的BASIC/FORTRAN程序員。數(shù)據(jù)聲明Data declarations5. 用變量a給出下面的定義a) 一個整型數(shù)An integerb)一個指向整型數(shù)的指針 A pointer to an integerc)一個指向指針的的指針,它指向的指針是指向一個整型數(shù) A pointe

34、r to a pointer to an integerd)一個有10個整型數(shù)的數(shù)組 An array of 10 integerse) 一個有10個指針的數(shù)組,該指針是指向一個整型數(shù)的。An array of 10 pointers to integersf) 一個指向有10個整型數(shù)數(shù)組的指針 A pointer to an array of 10 integersg) 一個指向函數(shù)的指針,該函數(shù)有一個整型參數(shù)并返回一個整型數(shù)A pointer to a that takes an integer as an argument and returns an integerh) 一個有10個指

35、針的數(shù)組,該指針指向一個函數(shù),該函數(shù)有一個整型參數(shù)并返回一個整型數(shù) An array of ten pointers to s that take an integer argument and return an integer 答案是:a) int a; / An integerb) int *a; / A pointer to an integerc) int *a; / A pointer to a pointer to an integerd) int a10; / An array of 10 integerse) int *a10; / An array of 10 pointe

36、rs to integersf) int (*a)10; / A pointer to an array of 10 integersg) int (*a)(int); / A pointer to a a that takes an integer argument and returns an integerh) int (*a10)(int); / An array of 10 pointers to s that take an integer argument and return an integer 人們經(jīng)常聲稱這里有幾個問題是那種要翻一下書才能答復(fù)的問題,我同意這種說法。當我寫

37、這篇文章時,為了確定語法的正確性,我確實查了一下書。但是當我被面試的時候,我期望被問到這個問題或者相近的問題。因為在被面試的這段時間里,我確定我知道這個問題的答案。應(yīng)試者如果不知道所有的答案或至少大局部答案,那么也就沒有為這次面試做準備,如果該面試者沒有為這次面試做準備,那么他又能為什么出準備呢?Static6. 關(guān)鍵字static的作用是什么? 這個簡單的問題很少有人能答復(fù)完全。在C語言中,關(guān)鍵字static有三個明顯的作用:1) 在函數(shù)體,一個被聲明為靜態(tài)的變量在這一函數(shù)被調(diào)用過程中維持其值不變。2) 在模塊內(nèi)但在函數(shù)體外,一個被聲明為靜態(tài)的變量可以被模塊內(nèi)所用函數(shù)訪問,但不能被模塊外其它

38、函數(shù)訪問。它是一個本地的全局變量。3) 在模塊內(nèi),一個被聲明為靜態(tài)的函數(shù)只可被這一模塊內(nèi)的其它函數(shù)調(diào)用。那就是,這個函數(shù)被限制在聲明它的模塊的本地范圍內(nèi)使用。 大多數(shù)應(yīng)試者能正確答復(fù)第一局部,一局部能正確答復(fù)第二局部,同是很少的人能懂得第三局部。這是一個應(yīng)試者的嚴重的缺點,因為他顯然不懂得本地化數(shù)據(jù)和代碼范圍的好處和重要性。Const7關(guān)鍵字const有什么含意? 我只要一聽到被面試者說:const意味著常數(shù),我就知道我正在和一個業(yè)余者打交道。去年Dan Saks已經(jīng)在他的文章里完全概括了const的所有用法,因此ESP(譯者:Embedded Systems Programming)的每一位

39、讀者應(yīng)該非常熟悉const能做什么和不能做什么.如果你從沒有讀到那篇文章,只要能說出const意味著只讀就可以了。盡管這個答案不是完全的答案,但我承受它作為一個正確的答案。如果你想知道更詳細的答案,仔細讀一下Saks的文章吧。 如果應(yīng)試者能正確答復(fù)這個問題,我將問他一個附加的問題: 下面的聲明都是什么意思?const int a;int const a;const int *a;int * const a;int const * a const;/*/ 前兩個的作用是一樣,a是一個常整型數(shù)。第三個意味著a是一個指向常整型數(shù)的指針也就是,整型數(shù)是不可修改的,但指針可以。第四個意思a是一個指向整型

40、數(shù)的常指針也就是說,指針指向的整型數(shù)是可以修改的,但指針是不可修改的。最后一個意味著a是一個指向常整型數(shù)的常指針也就是說,指針指向的整型數(shù)是不可修改的,同時指針也是不可修改的。如果應(yīng)試者能正確答復(fù)這些問題,那么他就給我留下了一個好印象。順帶提一句,也許你可能會問,即使不用關(guān)鍵字 const,也還是能很容易寫出功能正確的程序,那么我為什么還要如此看重關(guān)鍵字const呢?我也如下的幾下理由:1) 關(guān)鍵字const的作用是為給讀你代碼的人傳達非常有用的信息,實際上,聲明一個參數(shù)為常量是為了告訴了用戶這個參數(shù)的應(yīng)用目的。如果你曾花很多時間清理其它人留下的垃圾,你就會很快學會感謝這點多余的信息。當然,懂

41、得用const的程序員很少會留下的垃圾讓別人來清理的。2) 通過給優(yōu)化器一些附加的信息,使用關(guān)鍵字const也許能產(chǎn)生更緊湊的代碼。3) 合理地使用關(guān)鍵字const可以使編譯器很自然地保護那些不希望被改變的參數(shù),防止其被無意的代碼修改。簡而言之,這樣可以減少bug的出現(xiàn)。Volatile8. 關(guān)鍵字volatile有什么含意?并給出三個不同的例子。 一個定義為volatile的變量是說這變量可能會被意想不到地改變,這樣,編譯器就不會去假設(shè)這個變量的值了。準確地說就是,優(yōu)化器在用到這個變量時必須每次都小心地重新讀取這個變量的值,而不是使用保存在存放器里的備份。下面是volatile變量的幾個例子

42、:1) 并行設(shè)備的硬件存放器如:狀態(tài)存放器2) 一個中斷效勞子程序中會訪問到的非自動變量(Non-automatic variables)3) 多線程應(yīng)用中被幾個任務(wù)共享的變量 答復(fù)不出這個問題的人是不會被雇傭的。我認為這是區(qū)分C程序員和嵌入式系統(tǒng)程序員的最根本的問題。搞嵌入式的家伙們經(jīng)常同硬件、中斷、RTOS等等打交道,所有這些都要求用到volatile變量。不懂得volatile的內(nèi)容將會帶來災(zāi)難。 假設(shè)被面試者正確地答復(fù)了這是問題嗯,疑心是否會是這樣,我將稍微深究一下,看一下這家伙是不是直正懂得volatile完全的重要性。1) 一個參數(shù)既可以是const還可以是volatile嗎?解釋

43、為什么。2) 一個指針可以是volatile 嗎?解釋為什么。3) 下面的函數(shù)有什么錯誤:int square(volatile int *ptr) return *ptr * *ptr;下面是答案:1) 是的。一個例子是只讀的狀態(tài)存放器。它是volatile因為它可能被意想不到地改變。它是const因為程序不應(yīng)該試圖去修改它。2) 是的。盡管這并不很常見。一個例子是當一個中效勞子程序修該一個指向一個buffer的指針時。3) 這段代碼有點變態(tài)。這段代碼的目的是用來返指針*ptr指向值的平方,但是,由于*ptr指向一個volatile型參數(shù),編譯器將產(chǎn)生類似下面的代碼:int square(v

44、olatile int *ptr) int a,b; a = *ptr; b = *ptr; return a * b;由于*ptr的值可能被意想不到地該變,因此a和b可能是不同的。結(jié)果,這段代碼可能返不是你所期望的平方值!正確的代碼如下:long square(volatile int *ptr) int a; a = *ptr; return a * a;位操作Bit manipulation9. 嵌入式系統(tǒng)總是要用戶對變量或存放器進展位操作。給定一個整型變量a,寫兩段代碼,第一個設(shè)置a的bit 3,第二個去除a 的bit 3。在以上兩個操作中,要保持其它位不變。 對這個問題有三種根本的反

45、響1) 不知道如何下手。該被面者從沒做過任何嵌入式系統(tǒng)的工作。2) 用bit fields。Bit fields是被扔到C語言死角的東西,它保證你的代碼在不同編譯器之間是不可移植的,同時也保證了的你的代碼是不可重用的。我最近不幸看到 Infineon為其較復(fù)雜的通信芯片寫的驅(qū)動程序,它用到了bit fields因此完全對我無用,因為我的編譯器用其它的方式來實現(xiàn)bit fields的。從道德講:永遠不要讓一個非嵌入式的家伙粘實際硬件的邊。3) 用 #defines 和 bit masks 操作。這是一個有極高可移植性的方法,是應(yīng)該被用到的方法。最正確的解決方案如下:#define BIT3 (0 x1 6) ? puts( 6) : puts(6。原因是當表達式中存在有符號類型和無符號類型時所有的操作數(shù)都自動轉(zhuǎn)換為無符號類型。因此-20變成了一個非常大的正整數(shù),所以該表達式計算出的結(jié)果大于6。這一點對于應(yīng)當頻繁用到無符號數(shù)據(jù)類型的嵌入式系統(tǒng)來說是豐常重要的。如果你答錯了這個問題,你也就到了得不到這份工作的邊緣。13. 評價下面的代碼片斷:unsigned int zero = 0;unsigned int compzero =

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論