版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
嵌入式系統(tǒng)復(fù)習(xí)提綱第一章什么是嵌入式系統(tǒng)?IEEE〔國(guó)際電氣和電子工程師協(xié)會(huì)〕的定義是什么?一般定義是什么?根據(jù)IEEE〔國(guó)際電氣和電子工程師協(xié)會(huì)〕的定義:嵌入式系統(tǒng)是“用于控制、監(jiān)視或者輔助操作機(jī)器和設(shè)備的裝置一般定義:“以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為根底、軟件硬件可裁剪、功能、可靠性、本錢、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。〞廣義上講,但凡帶有微處理器的專用軟硬件系統(tǒng)都可稱為嵌入式系統(tǒng)。從狹義上講,我們更加強(qiáng)調(diào)那些使用嵌入式微處理器構(gòu)成獨(dú)立系統(tǒng),具有自己操作系統(tǒng),具有特定功能,用于特定場(chǎng)合的嵌入式系統(tǒng)。這里所謂的嵌入式系統(tǒng)是指狹義上的嵌入式系統(tǒng)。嵌入式系統(tǒng)有哪些重要的特征?〔1〕系統(tǒng)內(nèi)核小由于嵌入式系統(tǒng)一般是應(yīng)用于小型電子裝置的,系統(tǒng)資源相對(duì)有限,所以內(nèi)核較之傳統(tǒng)的操作系統(tǒng)要小得多。比方ENEA公司的OSE分布式系統(tǒng),內(nèi)核只有5K,而Windows的內(nèi)核那么要大得多。〔2〕專用性強(qiáng)嵌入式系統(tǒng)的個(gè)性化很強(qiáng),其中的軟件系統(tǒng)和硬件的結(jié)合非常緊密,一般要針對(duì)硬件進(jìn)行系統(tǒng)的移植。即使在同一品牌、同一系列的產(chǎn)品中也需要根據(jù)系統(tǒng)硬件的變化和增減不斷進(jìn)行修改。同時(shí)針對(duì)不同的任務(wù),往往需要對(duì)系統(tǒng)進(jìn)行較大更改,程序的編譯下載要和系統(tǒng)相結(jié)合,這種修改和通用軟件的“升級(jí)〞是完全不同的概念?!玻场诚到y(tǒng)精簡(jiǎn)嵌入式系統(tǒng)一般沒(méi)有系統(tǒng)軟件和應(yīng)用軟件的明顯區(qū)分,不要求其功能設(shè)計(jì)及實(shí)現(xiàn)上過(guò)于復(fù)雜,這樣一方面利于控制系統(tǒng)本錢,同時(shí)也利于實(shí)現(xiàn)系統(tǒng)平安。〔4〕高實(shí)時(shí)性O(shè)S這是嵌入式軟件的根本要求,而且軟件要求固態(tài)存儲(chǔ),以提高速度。軟件代碼要求高質(zhì)量和高可靠性、實(shí)時(shí)性。實(shí)時(shí)系統(tǒng)的定義是什么?答:實(shí)時(shí)系統(tǒng)的正確性依賴于運(yùn)行結(jié)果的邏輯正確性和運(yùn)行結(jié)果產(chǎn)生的時(shí)間正確性,即實(shí)時(shí)系統(tǒng)必須在規(guī)定的時(shí)間范圍內(nèi)正確地響應(yīng)外部物理過(guò)程的變化。4,在典型的嵌入式系統(tǒng)組成中,可以分為哪四層?每一層具體是通常包含哪些單元?中間層BSP有哪些根本功能?答:硬件層,中間層,軟件層,功能層中間層BSP功能之一:硬件初始化片級(jí)初始化:主要完成CPU的初始化,把CPU從上電時(shí)的缺省狀態(tài)逐步設(shè)置成為系統(tǒng)所要求的工作狀態(tài)。板級(jí)初始化:完成CPU以外的其他硬件設(shè)備的初始化。除此之外,還要設(shè)置某些軟件的數(shù)據(jù)結(jié)構(gòu)和參數(shù),為隨后的系統(tǒng)級(jí)初始化和應(yīng)用程序的運(yùn)行建立硬件和軟件環(huán)境。系統(tǒng)級(jí)初始化:這是一個(gè)以軟件初始化為主的過(guò)程,主要進(jìn)行操作系統(tǒng)初始化。BSP將控制轉(zhuǎn)交給操作系統(tǒng),由操作系統(tǒng)進(jìn)行余下的初始化操作。包括加載和初始化與硬件無(wú)關(guān)的設(shè)備驅(qū)動(dòng)程序,建立系統(tǒng)內(nèi)存區(qū),加載并初始化其他系統(tǒng)軟件模塊,比方網(wǎng)絡(luò)系統(tǒng)、文件系統(tǒng)等;最后,操作系統(tǒng)創(chuàng)立應(yīng)用程序環(huán)境并將控制轉(zhuǎn)交給應(yīng)用程序的入口中間層BSP功能之二:盡管BSP中包含硬件相關(guān)的設(shè)備驅(qū)動(dòng)程序,但是這些設(shè)備驅(qū)動(dòng)程序通常不直接由BSP使用,而是在系統(tǒng)初始化過(guò)程中由BSP把它們與操作系統(tǒng)中通用的設(shè)備驅(qū)動(dòng)程序關(guān)聯(lián)起來(lái),并在隨后的應(yīng)用中由通用的設(shè)備驅(qū)動(dòng)程序調(diào)用,實(shí)現(xiàn)對(duì)硬件設(shè)備的操作。5.嵌入式處理器可以分為幾大類?每一類代表的器件有哪些?第二章1,嵌入式硬件系統(tǒng)的根本結(jié)構(gòu)包含那些局部?〔嵌入式微處理器、存儲(chǔ)器、和輸入輸出〕嵌入式處理器的三大局部是什么?〔控制單元、算術(shù)邏輯單元和存放器〕2,什么是馮.諾依曼體系結(jié)構(gòu)?什么是哈佛體系結(jié)構(gòu)?各有哪些代表性的處理器?3復(fù)雜指令集計(jì)算機(jī)〔cisc〕和精簡(jiǎn)指令集計(jì)算機(jī)〔risc〕各有什么特點(diǎn)?類別CISCRISC指令系統(tǒng)指令數(shù)量很多較少,通常少于100執(zhí)行時(shí)間有些指令執(zhí)行時(shí)間很長(zhǎng),如整塊的存儲(chǔ)器內(nèi)容拷貝;或?qū)⒍鄠€(gè)存放器的內(nèi)容拷貝到存貯器沒(méi)有較長(zhǎng)執(zhí)行時(shí)間的指令編碼長(zhǎng)度編碼長(zhǎng)度可變,1-15字節(jié)編碼長(zhǎng)度固定,通常為4個(gè)字節(jié)尋址方式尋址方式多樣簡(jiǎn)單尋址操作可以對(duì)存儲(chǔ)器和存放器進(jìn)行算術(shù)和邏輯操作只能對(duì)存放器對(duì)行算術(shù)和邏輯操作,Load/Store體系結(jié)構(gòu)編譯難以用優(yōu)化編譯器生成高效的目標(biāo)代碼程序采用優(yōu)化編譯技術(shù),生成高效的目標(biāo)代碼程序4.在計(jì)算機(jī)體系結(jié)構(gòu)中,什么是馮氏結(jié)構(gòu)體系、哈氏結(jié)構(gòu)體系?馮·諾伊曼體系結(jié)構(gòu)也叫普林斯頓結(jié)構(gòu),它的最大特征是什么?哈佛結(jié)構(gòu),它的最大特征是什么?5.什么是CISC、RISC體系?其各自優(yōu)、缺點(diǎn)以及特點(diǎn)是什么?在指令數(shù)目上,CISC與RISC比擬,哪種結(jié)構(gòu)的指令數(shù)目多些?屬于CISC的代表性微處理器有哪些?屬于RISC的代表性處理器有哪些?ARM7TDMI屬于哪種體系?6.對(duì)于多字節(jié)類型的數(shù)據(jù),在存儲(chǔ)器上有兩種存儲(chǔ)方式,分別是小端字節(jié)順序方式和大端字節(jié)順序方式,比方字符串?dāng)?shù)據(jù)“UNIX〞的ASCII碼數(shù)據(jù){0x55,0x4E,0x49,0x58}在16位字長(zhǎng)的微處理器上,以小端字節(jié)順序方式存儲(chǔ)下來(lái),取出時(shí)該微處理器變成大端字節(jié)順序方式,那么取出的字符串是什么,數(shù)據(jù)怎么表示?4,在無(wú)操作系統(tǒng)的嵌入式軟件有哪幾種實(shí)現(xiàn)方式?循環(huán)輪詢系統(tǒng),事件驅(qū)動(dòng)系統(tǒng)〔前后臺(tái)〕5.按軟件結(jié)構(gòu)分類,操作系統(tǒng)體系結(jié)構(gòu)可以分為哪幾種不同的結(jié)構(gòu)?〔單體結(jié)構(gòu)如嵌入式Linux,分層結(jié)構(gòu)如MS-DOS和微內(nèi)核結(jié)構(gòu)如OS-9〕每一種結(jié)構(gòu)的代表性實(shí)例是什么?微內(nèi)核結(jié)構(gòu)下的軟件體系結(jié)構(gòu)如何?說(shuō)明它的特點(diǎn)?!膊僮飨到y(tǒng)內(nèi)核只包含最少的功能,如存儲(chǔ)管理和進(jìn)程管理;其他的操作系統(tǒng)組件以中間件的形式存在于內(nèi)核之外;設(shè)備驅(qū)動(dòng)程序完全從內(nèi)核中剝離,獨(dú)立成為一層;易于擴(kuò)展、調(diào)試方便〕6.什么是輪詢系統(tǒng)?什么是前后臺(tái)系統(tǒng)〔事件驅(qū)動(dòng)系統(tǒng)〕?循環(huán)輪詢系統(tǒng):〔PollingLoop〕最簡(jiǎn)單的軟件結(jié)構(gòu),程序依次檢查系統(tǒng)的每個(gè)輸入條件,一旦條件成立就進(jìn)行相應(yīng)的處理事件驅(qū)動(dòng)系統(tǒng):〔Event-Drivensystem〕事件驅(qū)動(dòng)系統(tǒng)是能對(duì)外部事件直接響應(yīng)的系統(tǒng)。它包括前后臺(tái)、實(shí)時(shí)多任務(wù)、多處理器等,是嵌入式實(shí)時(shí)系統(tǒng)的主要形式7.多任務(wù)系統(tǒng)中,什么是占先式內(nèi)核?什么是非占先內(nèi)核?7.什么是設(shè)備驅(qū)動(dòng)程序?設(shè)備驅(qū)動(dòng)程序的主要功能有那些?直接與硬件打交道、對(duì)硬件進(jìn)行控制和管理的軟件。嵌入式硬件設(shè)備本身無(wú)法工作,需要軟件來(lái)驅(qū)動(dòng),如初始化、控制、數(shù)據(jù)讀寫等8.嵌入式軟件的目標(biāo)有哪些?要優(yōu)化哪些資源的使用?答:函數(shù)必須正確;源代碼簡(jiǎn)潔、可讀性好、可維護(hù);實(shí)時(shí)性要求較高的代碼能夠運(yùn)行得足夠快;目標(biāo)代碼小且高效??傊?,要優(yōu)化對(duì)以下三種資源的使用:執(zhí)行時(shí)間;存儲(chǔ)空間;開(kāi)發(fā)/維護(hù)時(shí)間。9.函數(shù)的調(diào)用過(guò)程是怎樣的?系統(tǒng)運(yùn)行時(shí),內(nèi)存分布狀況如何?不同的變量的存儲(chǔ)和作用域怎樣區(qū)別? 當(dāng)一個(gè)函數(shù)被調(diào)用時(shí):在內(nèi)存的??臻g當(dāng)中為其分配一個(gè)棧幀,用來(lái)存放該函數(shù)的形參和局部變量;把實(shí)參變量的值復(fù)制到相應(yīng)的形參變量;控制轉(zhuǎn)移到該函數(shù)的起始位置;該函數(shù)開(kāi)始執(zhí)行;控制流和返回值返回到函數(shù)調(diào)用點(diǎn)。10。什么是可重入函數(shù)?可以被一個(gè)以上的任務(wù)調(diào)用,而不必?fù)?dān)憂數(shù)據(jù)的破壞??芍厝胄秃瘮?shù)任何時(shí)候都可以被中斷,一段時(shí)間以后又可以運(yùn)行,而相應(yīng)數(shù)據(jù)不會(huì)喪失。可重入型函數(shù)只使用局部變量,即變量保存在CPU存放器或棧中12.什么是資源?〔程序運(yùn)行時(shí)可使用的軟、硬件環(huán)境統(tǒng)稱為資源〕什么是共享資源?〔可以被一個(gè)以上任務(wù)使用的資源叫做共享資源〕什么是互斥?〔為了防止數(shù)據(jù)被破壞,每個(gè)任務(wù)在與共享資源打交道時(shí),必須獨(dú)占該資源,這叫做互斥〕13.什么是進(jìn)程?進(jìn)程應(yīng)該包括哪些東西?一個(gè)進(jìn)程應(yīng)該包括:程序的代碼;程序的數(shù)據(jù);PC中的值,用來(lái)指示下一條將運(yùn)行的指令;一組通用的存放器的當(dāng)前值,堆、棧;一組系統(tǒng)資源〔如翻開(kāi)的文件〕總之,進(jìn)程包含了正在運(yùn)行的一個(gè)程序的所有狀態(tài)信息。14.什么是任務(wù)?〔在許多嵌入式操作系統(tǒng)當(dāng)中,一般把能夠獨(dú)立運(yùn)行的實(shí)體稱為“任務(wù)〕任務(wù)切換是怎樣的?〔當(dāng)多任務(wù)內(nèi)核決定運(yùn)行另外的任務(wù)時(shí),它保存正在運(yùn)行任務(wù)的當(dāng)前狀態(tài),即CPU存放器中的全部?jī)?nèi)容。這些內(nèi)容保存在任務(wù)自已的棧區(qū)之中。入棧工作完成以后,就把下一個(gè)將要運(yùn)行的任務(wù)的當(dāng)前狀態(tài)從任務(wù)的棧中重新裝入CPU的寄予存器,并開(kāi)始下一個(gè)任務(wù)的運(yùn)行。這個(gè)過(guò)程就稱為任務(wù)切換〕任務(wù)有哪三種根本狀態(tài)?就緒,執(zhí)行,阻塞15.描述任務(wù)的數(shù)據(jù)結(jié)構(gòu)是什么?〔描述任務(wù)的數(shù)據(jù)結(jié)構(gòu):任務(wù)控制塊〕包含哪些內(nèi)容?〔任務(wù)ID、任務(wù)的狀態(tài)、任務(wù)的優(yōu)先級(jí);CPU上下文信息:通用存放器的值、PC存放器的值、程序狀態(tài)字、棧指針的值;如果在該OS中,任務(wù)描述的是進(jìn)程,那么還應(yīng)包括其他的一些內(nèi)容,如段表地址、頁(yè)表地址等存儲(chǔ)管理方面的信息;根目錄、文件描述字等文件管理方面的信息?!?7.任務(wù)在那些時(shí)間可以調(diào)度?當(dāng)一個(gè)新的任務(wù)被創(chuàng)立時(shí),是執(zhí)行新任務(wù)還是繼續(xù)執(zhí)行父任務(wù)?當(dāng)一個(gè)任務(wù)運(yùn)行完畢時(shí);當(dāng)一個(gè)任務(wù)由于I/O、信號(hào)量或其他的某個(gè)原因被阻塞時(shí);當(dāng)一個(gè)I/O中斷發(fā)生時(shí),說(shuō)明某個(gè)I/O操作已經(jīng)完成,而等待該I/O操作的任務(wù)轉(zhuǎn)入就緒狀態(tài);在分時(shí)系統(tǒng)中,當(dāng)一個(gè)時(shí)鐘中斷發(fā)生時(shí)。18.嵌入式系統(tǒng)任務(wù)調(diào)度算法的評(píng)價(jià)指標(biāo)有哪些?響應(yīng)時(shí)間〔responsetime〕:調(diào)度器為一個(gè)就緒任務(wù)進(jìn)行上下文切換的時(shí)間,以及任務(wù)在就緒隊(duì)列中等待的時(shí)間;周轉(zhuǎn)時(shí)間〔turnaroundtime〕:一個(gè)任務(wù)從提交到完成所經(jīng)歷的時(shí)間;調(diào)度開(kāi)銷〔overhead〕:調(diào)度算法在執(zhí)行時(shí)所需要的時(shí)間和空間開(kāi)銷;公平〔fairness〕:大致相當(dāng)?shù)膬蓚€(gè)進(jìn)程所得到的CPU時(shí)間也應(yīng)是大致相同的,防止饑餓(starvation);均衡:盡可能使整個(gè)系統(tǒng)的各局部〔CPU、I/O〕都忙起來(lái),提高系統(tǒng)資源的使用效率;吞吐量〔Throughput〕:?jiǎn)挝粫r(shí)間內(nèi)完成的任務(wù)數(shù)。19.什么是優(yōu)先級(jí)調(diào)度算法?〔優(yōu)先級(jí)算法〔PriorityScheduling〕:給每個(gè)任務(wù)設(shè)置一個(gè)優(yōu)先級(jí),然后在所有就緒任務(wù)中選擇優(yōu)先級(jí)最高的那個(gè)任務(wù)去運(yùn)行〕任務(wù)優(yōu)先級(jí)有哪兩種確定方式?〔靜態(tài)和動(dòng)態(tài)兩種〕20.大多數(shù)RTOS調(diào)度器都采用基于優(yōu)先級(jí)的可搶占調(diào)度算法,但在具體實(shí)現(xiàn)上要考慮哪些問(wèn)題:〔如何設(shè)定各個(gè)任務(wù)的優(yōu)先級(jí)??jī)?yōu)先級(jí)是靜態(tài)設(shè)置的還是動(dòng)態(tài)可變的?算法的性能如何,能否滿足實(shí)時(shí)要求?〕21.任務(wù)間通信可以有哪幾種方式?共享內(nèi)存〔sharedmemory〕;消息傳遞〔messagepassing〕;管道〔pipe〕;信號(hào)〔signal〕。22.什么是代碼的臨界區(qū)?什么叫臨界資源?對(duì)共享內(nèi)存或共享文件的訪問(wèn),可能會(huì)導(dǎo)致競(jìng)爭(zhēng)條件的出現(xiàn)。我們把完成這類事情的那段代碼稱為“臨界區(qū)〞〔CriticalRegion〕,把需要互斥訪問(wèn)的共享資源稱為“臨界資源〞。23有哪幾種種方法,使得任何兩個(gè)任務(wù)都不會(huì)同時(shí)出現(xiàn)在臨界區(qū)中,就可以防止競(jìng)爭(zhēng)條件的出現(xiàn)?1當(dāng)一個(gè)任務(wù)進(jìn)入臨界區(qū)后,關(guān)閉所有的中斷;當(dāng)它退出臨界區(qū)時(shí),再翻開(kāi)中斷。2可以采用各種基于繁忙等待(busywaiting)的策略,根本思路是:當(dāng)一個(gè)任務(wù)想要進(jìn)入它的臨界區(qū)時(shí),首先檢查一下是否允許它進(jìn)入,假設(shè)允許,就直接進(jìn)入了;假設(shè)不允許,就在那里循環(huán)地等待,一直等到允許它進(jìn)入。24.什么是信號(hào)量?什么是原子操作?什么是P原語(yǔ)?什么是V原語(yǔ)?1965年由著名的荷蘭計(jì)算機(jī)科學(xué)家Dijkstra提出,其根本思路是用一種新的變量類型〔semaphore〕來(lái)記錄當(dāng)前可用資源的數(shù)量。有兩種實(shí)現(xiàn)方式:1〕semaphore的取值必須大于或等于0。0表示當(dāng)前已沒(méi)有空閑資源,而正數(shù)表示當(dāng)前空閑資源的數(shù)量;2〕semaphore的取值可正可負(fù),負(fù)數(shù)的絕對(duì)值表示正在等待進(jìn)入臨界區(qū)的任務(wù)個(gè)數(shù)。信號(hào)量是由操作系統(tǒng)來(lái)維護(hù)的,任務(wù)只能通過(guò)初始化和兩個(gè)標(biāo)準(zhǔn)原語(yǔ)〔P、V原語(yǔ)〕來(lái)訪問(wèn)。初始化可指定一個(gè)非負(fù)整數(shù),即空閑資源總數(shù)。P、V原語(yǔ)作為操作系統(tǒng)內(nèi)核代碼的一局部,是一種不可分割的原子操作〔atomicaction〕,在其運(yùn)行時(shí),不會(huì)被時(shí)鐘中斷所打斷P原語(yǔ):P是荷蘭語(yǔ)Proberen〔測(cè)試〕的首字母。申請(qǐng)一個(gè)空閑資源〔把信號(hào)量減1〕,假設(shè)成功,那么退出;假設(shè)失敗,那么該任務(wù)被阻塞;V原語(yǔ):V是荷蘭語(yǔ)Verhogen〔增加〕的首字母。釋放一個(gè)被占用的資源〔把信號(hào)量加1〕,如果發(fā)現(xiàn)有被阻塞的任務(wù),那么選擇一個(gè)喚醒之。25.如何用信號(hào)量實(shí)現(xiàn)互斥?如何用信號(hào)量實(shí)現(xiàn)同步?26.IO設(shè)備按數(shù)據(jù)組織分類包括哪兩種類型?塊設(shè)備:以數(shù)據(jù)塊來(lái)作為信息的存儲(chǔ)和傳輸單位,每個(gè)數(shù)據(jù)塊都有一個(gè)地址,如磁盤;字符設(shè)備:以字符來(lái)作為信息的存儲(chǔ)和傳輸單位,如打印機(jī)。27.CPU如何與設(shè)備控制器當(dāng)中的存放器以及數(shù)據(jù)緩沖區(qū)有哪三種編址方式?采用哪三種方法實(shí)現(xiàn)IO的輸入輸出?I/O獨(dú)立編址;內(nèi)存映像編址;混合編址。程序循環(huán)檢測(cè)方式(ProgrammedI/O);中斷驅(qū)動(dòng)方式(Interrupt-drivenI/O);直接內(nèi)存訪問(wèn)方式(DMA,DirectMemoryAccess);第三章ARM處理器體系結(jié)構(gòu)與指令集1.32位嵌入式微處理器的主要評(píng)價(jià)指標(biāo)有哪些?功耗。一般的嵌入式微處理器都有三種運(yùn)行模式:運(yùn)行模式〔operational〕;待機(jī)模式〔standbyorpowerdown〕;停機(jī)模式〔andclock-off〕。功耗的評(píng)測(cè)指標(biāo)是MIPS/W;代碼存儲(chǔ)密度。傳統(tǒng)的CISC指令集計(jì)算機(jī)具有較好的代碼存儲(chǔ)密度。而RISC指令集計(jì)算機(jī)由于要求指令編碼長(zhǎng)度固定,雖然可以簡(jiǎn)化和加速指令譯碼過(guò)程,但為了實(shí)現(xiàn)與CISC指令集計(jì)算機(jī)相同的作業(yè),往往需要更多的指令來(lái)完成,從而增加了代碼長(zhǎng)度集成度。 嵌入式微處理器一般都為專用市場(chǎng)設(shè)計(jì)的,需要較高的集成度。但把所有的外圍設(shè)備都集成到一個(gè)芯片上也不是一種好的解決方案。這是因?yàn)楦呒啥仁剐酒兊脧?fù)雜,芯片引腳變密,增加了系統(tǒng)設(shè)計(jì)和測(cè)試的復(fù)雜性。因此,集成外圍設(shè)備時(shí)必須要考慮簡(jiǎn)化系統(tǒng)設(shè)計(jì),并縮短整個(gè)系統(tǒng)的開(kāi)發(fā)周期。多媒體加速。 為實(shí)現(xiàn)多媒體加速功能,嵌入式微處理器的設(shè)計(jì)者在傳統(tǒng)的微處理器指令集的根底上增加JPEG和MPEG解壓縮的離散余弦變換指令。還有一些半導(dǎo)體廠商針對(duì)智能和移動(dòng)通訊市場(chǎng)的需求,將RISC微處理器和DSP集成在一個(gè)芯片上,如TI的OMAP。2.ARM7TDMI的關(guān)鍵部件有幾個(gè)?分別是什么?3.ARM處理器可以執(zhí)行兩套指令系統(tǒng),分別為ARM態(tài)和Thumb態(tài),ARM指令和Thumb指令,指令長(zhǎng)度上有什么區(qū)別?〔32bits長(zhǎng)(ARM狀態(tài))16bits長(zhǎng)(Thumb狀態(tài))〕系統(tǒng)啟動(dòng)時(shí),處理器處于哪種狀態(tài)?〔ARM態(tài)〕7.程序計(jì)數(shù)器PC總是指向當(dāng)前指令的下兩條指令的地址,ARM處理器中,PC一般用那個(gè)存放器?〔R15〕當(dāng)ARM處理器處于ARM態(tài)時(shí),PC為當(dāng)前指令的地址加8字節(jié),Thumb狀態(tài)時(shí),PC為當(dāng)前指令的地址加幾個(gè)字節(jié)?8.ARM處理器中,R13、R14、R15的功能各是什么,使用它們,細(xì)節(jié)上各自有什么特別要注意的地方?9.ARM處理器有哪幾種運(yùn)行模式?各是什么?特權(quán)模式和用戶模式各包括哪些運(yùn)行模式?處理器模式說(shuō)明備注用戶(usr)正常程序執(zhí)行模式不能直接切換到其它模式系統(tǒng)(sys)運(yùn)行操作系統(tǒng)的特權(quán)任務(wù)與用戶模式類似,但具有可以直接切換到其它模式等特權(quán)快中斷(fiq)支持高速數(shù)據(jù)傳輸及通道處理FIQ異常響應(yīng)時(shí)進(jìn)入此模式中斷(irq)用于通用中斷處理IRQ異常響應(yīng)時(shí)進(jìn)入此模式管理(svc)操作系統(tǒng)保護(hù)模式系統(tǒng)復(fù)位和軟件中斷響應(yīng)時(shí)進(jìn)入此模式中止(abt)用于支持虛擬內(nèi)存和/或存儲(chǔ)器保護(hù)在ARM7TDMI沒(méi)有大用處未定義(und)支持硬件協(xié)處理器的軟件仿真未定義指令異常響應(yīng)時(shí)進(jìn)入此模式10.ARM允許多種尋址方式,例如MOVR0,R1,這里源操作數(shù)和目的操作數(shù)使用的都是存放器尋址,那么指令LDRR0,[R1,#4],這里源操作數(shù)使用的尋址方式是叫什么?那么指令LDRR0,[R1],這里源操作數(shù)使用的尋址方式是什么?,該指令助記符的含義是什么?與LDR相對(duì)應(yīng)的指令助記符是什么?11.ARM7使用了幾級(jí)流水線,分別是什么?ARM9使用了幾級(jí)流水線?分別是什么?ARM7:3級(jí)-取指,譯碼,執(zhí)行。ARM9:5級(jí)-取指,指令譯碼,執(zhí)行,緩沖/數(shù)據(jù),回寫。12.ARM微處理器的存放器在邏輯上有多少個(gè)?分別是什么?13.ARM處理器支持哪幾種異常?按響應(yīng)異常的優(yōu)先級(jí)分類,優(yōu)先級(jí)最高的是什么?最低的是什么?進(jìn)入、退出異常時(shí),ARM處理器分別要執(zhí)行什么操作?FIQ,IRQ(InterruptReQuest),未定義指令,預(yù)取中止,數(shù)據(jù)中止,復(fù)位,軟件中斷Softwareinterrupt。優(yōu)先級(jí)最高:復(fù)位,最低:未定義指令。進(jìn)入:拷貝CPSR到SPSR_<mode>,設(shè)置適當(dāng)?shù)腃PSR位,保存返回地址到LR_<mode>,設(shè)置PC為相應(yīng)的異常向量退出:1.〔R14〕中的值減去偏移量后存入PC,偏移將LR量根據(jù)異常的類型而有所不同;2.將SPSR的值復(fù)制回CPSR;3.清零在入口置位的中斷禁止標(biāo)志。14.在ARM處理器中,把CPSR或SPSR的內(nèi)容讀出到通用存放器中,有什么特別的要求?想修改CPSR存放器的值為0XFF,應(yīng)該用什么指令?怎么做?15.閱讀分析代碼,實(shí)現(xiàn)兩個(gè)存放器值的內(nèi)容相加。;文件名:TEST1.S;功能:實(shí)現(xiàn)兩個(gè)存放器相加;說(shuō)明:使用ARMulate軟件仿真調(diào)試 AREA Example1,CODE,READONLY ;聲明代碼段Example1 ENTRY ;標(biāo)識(shí)程序入口 CODE32 ;聲明32位ARM指令START MOV R0,#0 ;設(shè)置參數(shù) MOV R1,#10LOOP BL ADD_SUB ;調(diào)用子程序ADD_SUB B LOOP ;跳轉(zhuǎn)到LOOPADD_SUB ADDS R0,R0,R1 ;R0=R0+R1 MOV PC,LR ;子程序返回 END ;文件結(jié)束16.分析一段指令執(zhí)行前后的變化PREr0=0x00000000,r1=0x00009000,Mem32[0x00009000]=0x01010101Mem32[0x00009004]=0x02023202回寫型前變址尋址:LDRr0,[r1,#0x4]!POSTr0=0x02023202,r1=0x00009004前變址尋址:LDRr0,[r1,#0x4]POSTr0=0x02023202,r1=0x00009000后變址尋址:LDRr0,[r1],#0x4POSTr0=0x01010101,r1=0x0000900417.完成一個(gè)存儲(chǔ)器數(shù)據(jù)塊拷貝目的目的源高地址低地址拷貝存儲(chǔ)地址r9r11r10注:r9——存放源數(shù)據(jù)的起始地址r10——存放目標(biāo)起始地址r11——存放源結(jié)束地址loopLDMIAr9!,{r0-r7};裝載32字節(jié)并更新r9指針STMIAr10!,{r0-r7};存儲(chǔ)32字節(jié)并更新r10指針CMPr9,r11;是否到達(dá)結(jié)束地址BNEloop;不相等跳轉(zhuǎn)第四局部1.μC/OS主要特點(diǎn)有哪些?公開(kāi)源代碼可移植性〔Portable〕絕大局部C/OS-II的源碼是用移植性很強(qiáng)的ANSIC寫的。和微處理器硬件相關(guān)的那局部是用匯編語(yǔ)言寫的。匯編語(yǔ)言寫的局部已經(jīng)壓到最低限度,使得C/OS-II便于移植到其他微處理器上。C/OS-II可以在絕大多數(shù)8位、16位、32位以至64位微處理器、微控制器、數(shù)字信號(hào)處理器〔DSP〕上運(yùn)行。可固化〔ROMable〕C/OS-II是為嵌入式應(yīng)用而設(shè)計(jì)的,這就意味著,只要讀者有固化手段〔C編譯、連接、下載和固化〕,C/OS-II可以嵌入到讀者的產(chǎn)品中成為產(chǎn)品的一局部。可裁剪〔Scalable〕可以只使用C/OS-II中應(yīng)用程序需要的那些系統(tǒng)效勞。也就是說(shuō)某產(chǎn)品可以只使用很少幾個(gè)C/OS-II調(diào)用,而另一個(gè)產(chǎn)品那么使用了幾乎所有C/OS-II的功能,這樣可以減少產(chǎn)品中的C/OS-II所需的存儲(chǔ)器空間〔RAM和ROM〕。這種可剪裁性是靠條件編譯實(shí)現(xiàn)的。占先式〔Preemptive〕多任務(wù)C/OS-II可以管理64個(gè)任務(wù),然而,目前這一版本保存8個(gè)給系統(tǒng)。應(yīng)用程序最多可以有256個(gè)任務(wù)可確定性全部C/OS-II的函數(shù)調(diào)用與效勞的執(zhí)行時(shí)間具有可確定性。任務(wù)棧每個(gè)任務(wù)有自己?jiǎn)为?dú)的棧,C/OS-II允許每個(gè)任務(wù)有不同的??臻g,以便壓低應(yīng)用程序?qū)AM的需求。系統(tǒng)效勞C/OS-II提供很多系統(tǒng)效勞,例如郵箱、消息隊(duì)列、信號(hào)量、塊大小固定的內(nèi)存的申請(qǐng)與釋放、時(shí)間相關(guān)函數(shù)等。中斷管理中斷可以使正在執(zhí)行的任務(wù)暫時(shí)掛起,如果優(yōu)先級(jí)更高的任務(wù)被該中斷喚醒,那么高優(yōu)先級(jí)的任務(wù)在中斷嵌套全部退出后立即執(zhí)行,中斷嵌套層數(shù)可達(dá)255層。穩(wěn)定性與可靠性2.μC/OS允許管理有多少個(gè)任務(wù),用戶可以有多少個(gè)任務(wù)?系統(tǒng)保存的幾個(gè)任務(wù)是什么?μC/OS-Ⅱ可以管理多達(dá)64個(gè)任務(wù);系統(tǒng)保存了優(yōu)先級(jí)為0、1、2、3、OS_LOWEST_PRIO-3、OS_LOWEST_PRI0-2,OS_LOWEST_PRI0-1以及OS_LOWEST_PRI0這8個(gè)任務(wù)以被將來(lái)使用,用戶可以有56個(gè)應(yīng)用任務(wù)3.任務(wù)的組成包括那些局部?任務(wù)控制塊----uC/OS-II進(jìn)行任務(wù)管理用的一個(gè)數(shù)據(jù)結(jié)構(gòu)。任務(wù)代碼----描述任務(wù)算法的程序編碼。任務(wù)堆棧----任務(wù)的工作現(xiàn)場(chǎng)環(huán)境。4.μC/OS中任務(wù)有五種狀態(tài),相互間轉(zhuǎn)換需要特定的條件,試用狀態(tài)轉(zhuǎn)換圖描述。5.任務(wù)堆棧在系統(tǒng)中有哪些應(yīng)用?任務(wù)堆棧是任務(wù)的三大組成局部之一。保存CPU存放器現(xiàn)場(chǎng)〔R0~R12、LR、SPSR等〕。本Task的私有數(shù)據(jù)。6.TCB中各成員的作用是什么?7.什么是任務(wù)就緒表?任務(wù)優(yōu)先級(jí)和任務(wù)就緒表的映射關(guān)系是怎樣的?任務(wù)就緒表:每個(gè)任務(wù)的就緒態(tài)標(biāo)志放入在就緒表中,就緒表中有兩個(gè)變量OSRdyGrp和OSRdyTbl[]。在OSRdyGrp中,任務(wù)按優(yōu)先級(jí)分組,8個(gè)任務(wù)為一組。OSRdyGrp中的每一位表示8組任務(wù)中每一組中是否有進(jìn)入就緒態(tài)的任務(wù)。任務(wù)進(jìn)入就緒態(tài)時(shí),就緒表OSRdyTbl[]中的相應(yīng)元素的相應(yīng)位也置位。映射關(guān)系:uC/OS-II最多管理64個(gè)任務(wù),Prio值域:0~63,對(duì)應(yīng)的二進(jìn)制數(shù)000,000~111,111〔6bit〕,OSRdyGrp〔任務(wù)組就緒變量〕8bit,任務(wù)就緒數(shù)組元素OSRdyTbl也是8bit。prio.D[5:3]---對(duì)應(yīng)OSRdyTbl的下標(biāo)〔任務(wù)組號(hào)y〕,也對(duì)應(yīng)OSRdyGrp的比特位號(hào)。prio.D[2:0]---對(duì)應(yīng)OSRdyTbl元素的位號(hào)〔任務(wù)組號(hào)x〕8.舉例說(shuō)明優(yōu)先級(jí)在任務(wù)就緒表中的表示。答:舉例:prio=29的任務(wù)在任務(wù)就續(xù)表中的表示。prio=29,其8進(jìn)制表示為:35O9.如何實(shí)現(xiàn)任務(wù)優(yōu)先級(jí)到就緒表的操作?怎樣從任務(wù)就緒表中獲得當(dāng)前優(yōu)先的最高的優(yōu)先級(jí)號(hào)?操作:如果prio是任務(wù)的優(yōu)先級(jí),即任務(wù)的標(biāo)識(shí)號(hào),那么將任務(wù)放入就緒表,即使任務(wù)進(jìn)入就緒態(tài)的方法是:OSRdyGrp|=OSMapTbl[prio>>3];OSRdyTbl[prio>>3]|=OSMapTbl[prio&0x07];假設(shè)優(yōu)先級(jí)為12——1100bOSRdyGrp|=OSMapTbl[12>>3](0x02);OSRdyTbl[1]|=0x10;獲得優(yōu)先級(jí)號(hào):將優(yōu)先級(jí)數(shù)分解為高三位和低三位分別確定;高優(yōu)先級(jí)有著小的優(yōu)先級(jí)號(hào);10.μC/OS中有哪幾個(gè)任務(wù)調(diào)度器?任務(wù)調(diào)度器有哪兩項(xiàng)工作?任務(wù)調(diào)度器的兩項(xiàng)主要工作:①?gòu)娜蝿?wù)就緒表中查找優(yōu)先級(jí)最高的就緒任務(wù),②實(shí)現(xiàn)任務(wù)切換。uC/OS-II中有兩個(gè)“任務(wù)調(diào)度器〞:任務(wù)級(jí)的調(diào)度器(OS_Sched()),中斷級(jí)的調(diào)度器(OSIntCtxSw())11.任務(wù)切換宏OS_TASK_SW()依次完成的7項(xiàng)工作是什么?被中止Task的斷點(diǎn)指針〔PC〕入棧保護(hù)被中止Task通用存放器入棧保護(hù)被中止Task系統(tǒng)管理SP→該TCB->OSTCBStkPtr獲得待運(yùn)行任務(wù)TCB獲得待運(yùn)行任務(wù)TCB->OSTCBStkPtr恢復(fù)待運(yùn)行任務(wù)CPU現(xiàn)場(chǎng)〔不包含PC〕切換CPU.PC,使CPU接續(xù)運(yùn)行待運(yùn)行Task斷點(diǎn)。12.某系統(tǒng)中有Task_A、Task_B兩個(gè)任務(wù)都要使用公共資源〔例如UART〕,他們可以分別使用,但不能同時(shí)使用。如何用信號(hào)量的方法解決此問(wèn)題?答:……OS_EVENT*UART_Flag;//聲明事件指針變量INT8Uerr; //聲明全局狀態(tài)變量……voidmain(void){OSInit();UART_Flag=OSSemCreate(1);//創(chuàng)立信號(hào)量OSTaskCreate(Task_A,……);//創(chuàng)立任務(wù)AOSTaskCreate(Task_B,……);//創(chuàng)立任務(wù)BOSStart();}voidTask_A(void*pdata){……;for(;;) //任務(wù)體A{OSSemPend(UART_Flag,0,&err);//請(qǐng)求信號(hào)量UART_FlagFunction(UART); //使用信號(hào)量UART_FlagOSSemPost(UART_Flag); //發(fā)送信號(hào)量UART_FlagOSTimeDly(nnnn); //Task_A延時(shí)nnnn個(gè)時(shí)鐘節(jié)拍}}voidTask_B(void*pdata){……;for(;;) //任務(wù)體B{OSSemPend(UART_Flag,0,&err);//請(qǐng)求信號(hào)量UART_FlagFunction(UART); //使用信號(hào)量UART_FlagOSSemPost(UART_Flag); //發(fā)送信號(hào)量UART_FlagOSTimeDly(mmm); //Task_B延時(shí)mmm個(gè)時(shí)鐘節(jié)拍}}13.某系統(tǒng)中有Task_A、Task_B兩個(gè)任務(wù),假設(shè)想執(zhí)行Task_B,必須首先經(jīng)過(guò)Task_A。如何用信號(hào)量的方法,將Task_B作為Task_A的后續(xù)功能,解決此問(wèn)題?答:……OS_EVENT*Task_Flag;//聲明信號(hào)量……voidmain(void){OSInit();Task_Flag=OSSemCreate(0);//創(chuàng)立信號(hào)量OSTaskCreate(Task_A,……);//創(chuàng)立任務(wù)AOSTaskCreate(Task_B,……);//創(chuàng)立任務(wù)BOSStart();}voidTask_A(void*pdata){……;for(;;) //任務(wù)體A{OSSemPost(Task_Flag);//發(fā)送信號(hào)量Task_Flag…… ; //Task_A業(yè)務(wù)功能代碼OSTimeDly(nnnn); //Task_A延時(shí)nnnn個(gè)時(shí)鐘節(jié)拍}}voidTask_B(void*pdata){……;for(;;) //任務(wù)體B{OSSemPend(Task_Flag,0,&err);//請(qǐng)求信號(hào)量Task_Flag……; //Task_B業(yè)務(wù)功能代碼/*OSTimeDly(mmm); //Task_B延時(shí)mmm個(gè)時(shí)鐘節(jié)拍*/}}14.什么是任務(wù)的優(yōu)先級(jí)反轉(zhuǎn)現(xiàn)象?發(fā)生的原因是什么?如何解決?答:是指在剝奪式OS中,當(dāng)任務(wù)以獨(dú)占方式使用共享資源時(shí),低優(yōu)先級(jí)的任務(wù)可能先于高優(yōu)先級(jí)任務(wù)得到系統(tǒng)調(diào)度而運(yùn)行的現(xiàn)象。原因:低優(yōu)先級(jí)的任務(wù)獨(dú)占共享資源,迫使高優(yōu)先級(jí)任務(wù)因等待資源而讓出CPU。解決方法:暫時(shí)提升獲得共享資源任務(wù)的優(yōu)先級(jí)別,盡快釋放共享資源,之后再恢復(fù)其原有的優(yōu)先級(jí)別。15.某系統(tǒng)中有Task_A、Task_B兩個(gè)任務(wù)都要使用公共資源〔例如UART〕,他們可以分別使用,但不能同時(shí)使用;Task_A、Task_B兩任務(wù)的優(yōu)先級(jí)之間還存在許多中間優(yōu)先級(jí)的任務(wù);例如:Prio(Task_A)=3,Prio(Task_B)=20,優(yōu)先級(jí)在[3,20]之間還存在5個(gè)任務(wù)Task_1,Task_2,……,Task_5,有可能引起優(yōu)先級(jí)反轉(zhuǎn)。如何使用互斥信號(hào)量的方法解決此問(wèn)題?答:……OS_EVENT*UART_Flag;//聲明信號(hào)量INT8Uerr; //聲明全局狀態(tài)變量……voidmain(void){OSInit();UART_Flag=OSMutexCreate(2,&err);//創(chuàng)立互斥信號(hào)量OSTaskCreate(Task_A,……,3);//創(chuàng)立任務(wù)AOSTaskCreate(Task_B,……,20);//創(chuàng)立任務(wù)BOSTaskCreate(Task_1,……,6);……OSTaskCreate(Task_5,……,18);OSStart();}voidTask_A(void*pdata){……;for(;;) //任務(wù)體A{OSMutexPend(UART_Flag,0,&err);//請(qǐng)求信號(hào)量UART_FlagFunction(UART); //使用信號(hào)量UART_FlagOSMutexPost(UART_Flag);//發(fā)送信號(hào)量UART_FlagOSTimeDly(nnnn); //Task_A延時(shí)nnnn個(gè)時(shí)鐘節(jié)拍}}voidTask_B(void*pdata){……;for(;;) //任務(wù)體B{OSMutexPend(UART_Flag,0,&err);//請(qǐng)求信號(hào)量UART_FlagFunction(UART); //使用信號(hào)量UART_FlagOSMutexPost(UART_Flag);//發(fā)送信號(hào)量UART_FlagOSTimeDly(mmm); //Task_B延時(shí)mmm個(gè)時(shí)鐘節(jié)拍}}16.某應(yīng)用系統(tǒng)含有“數(shù)據(jù)采集〞任務(wù)Task_A和“數(shù)據(jù)處理〞任務(wù)Task_B;Task_A周期性的定時(shí)采集數(shù)據(jù),如何用消息郵箱的方式將數(shù)據(jù)傳送到Task_B處理?答:INT16Uzql_data; //存放AD轉(zhuǎn)換后的數(shù)據(jù)OS_EVENT*Dt_box; //消息郵箱指針voidmain(void){OSInit();Dt_box=OSMboxCreate(void*0);//創(chuàng)立(空)消息郵箱OSTaskCreate(Task_A,…); //創(chuàng)立Task_AOSTaskCreate(Task_B,…); //創(chuàng)立Task_BOSStart();}voidTask_A(void*pdata) //采集數(shù)據(jù)任務(wù){(diào)for(;;){……; //啟動(dòng)A/D轉(zhuǎn)換zql_data=GetAD(); //得到一次轉(zhuǎn)換數(shù)據(jù)OSMboxPost(Dt_box,&zql_data); //將zql_data數(shù)據(jù)發(fā)送到消息郵箱OSTimeDlyHMSM(0,0,1,0) //定時(shí)1秒}}voidTask_B(void*pdata) //處理數(shù)據(jù)任務(wù){(diào)INT16U*data_B;for(;;){……; //其他業(yè)務(wù)data_B=OSMboxPend(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024至2030年盒裝抽式面巾紙機(jī)項(xiàng)目投資價(jià)值分析報(bào)告
- 2024至2030年水力按摩器項(xiàng)目投資價(jià)值分析報(bào)告
- 收回車庫(kù)合同范例
- 個(gè)人房屋 涂料合同范例
- 學(xué)校股東合作合同范例
- 生態(tài)養(yǎng)殖加盟合同范例
- 2024年高端鑄造用膨潤(rùn)土項(xiàng)目可行性研究報(bào)告
- 檁條采購(gòu)合同范例
- 2024年納米海洋氣候漆項(xiàng)目可行性研究報(bào)告
- 2024年球籃項(xiàng)目可行性研究報(bào)告
- 2024年度商標(biāo)授權(quán)及區(qū)域獨(dú)家代理合同范本3篇
- 軟科職教:2024年度中國(guó)高職院校升本分析報(bào)告
- 期末復(fù)習(xí)試題(試題)-2024-2025學(xué)年五年級(jí)上冊(cè)數(shù)學(xué) 北師大版
- 多無(wú)人機(jī)路徑規(guī)劃
- 河南省鄭州市2023-2024學(xué)年四年級(jí)上學(xué)期語(yǔ)文期末試卷(含答案)
- 2024年便利店?duì)I業(yè)員工作總結(jié)范文(2篇)
- 工會(huì)新聞寫作培訓(xùn)課題
- 統(tǒng)計(jì)年報(bào)和定報(bào)培訓(xùn)
- 小說(shuō)改編權(quán)改編作品轉(zhuǎn)讓合同
- 隧道坍塌應(yīng)急演練
- 浙江省杭州市2023-2024學(xué)年高二上學(xué)期期末學(xué)業(yè)水平測(cè)試政治試題 含解析
評(píng)論
0/150
提交評(píng)論