




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、嵌入式系統(tǒng)復(fù)習(xí)重點(diǎn)1、 題型填空題 2×10單選題 2×5名詞解釋 2×5簡(jiǎn)答題 5×6設(shè)計(jì)題 15×22、 考點(diǎn)第1章 嵌入式系統(tǒng)概述1、 嵌入式系統(tǒng)從技術(shù)角度的定義及其特點(diǎn)(見(jiàn)PPT第一章)定義:以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗嚴(yán)格要求的專(zhuān)用計(jì)算機(jī)系統(tǒng)。特點(diǎn):嵌入性、內(nèi)含計(jì)算機(jī)、專(zhuān)用性。2、 嵌入式系統(tǒng)的未來(lái)P3產(chǎn)品市場(chǎng)窗口現(xiàn)在預(yù)計(jì)翻番的周期狂熱到69個(gè)月;全球重新定義市場(chǎng)的機(jī)會(huì)和膨脹的應(yīng)用空間;互聯(lián)現(xiàn)在是一個(gè)需求而不是輔助性的,包括用有線和剛剛顯露頭角的無(wú)線技術(shù);基于電子的產(chǎn)品
2、更復(fù)雜化;互聯(lián)嵌入式系統(tǒng)產(chǎn)生新的依賴(lài)網(wǎng)絡(luò)基礎(chǔ)設(shè)施的應(yīng)用;微處理器的處理能力按莫爾定律(Moores L aw)預(yù)計(jì)的速度在增加。該定律認(rèn)為集成電路和晶體管個(gè)數(shù)每18個(gè)月翻一番。3、 什么是嵌入式處理器及嵌入式系統(tǒng)的分類(lèi)P5嵌入式處理器:為完成特殊應(yīng)用而設(shè)計(jì)的特殊目的的處理器。嵌入式系統(tǒng)可以分為以下幾大類(lèi):嵌入式微處理器EMPU;嵌入式微控制器MCU;嵌入式DSP處理器;嵌入式片上系統(tǒng)SOC。4、 嵌入式操作系統(tǒng)相關(guān)的基本概念P7-10(可能考名詞解釋?zhuān)┣昂笈_(tái)系統(tǒng):對(duì)基于芯片的開(kāi)發(fā)來(lái)說(shuō),應(yīng)用程序一般是一個(gè)無(wú)限的循環(huán),可稱(chēng)為前后臺(tái)系統(tǒng)或超循環(huán)系統(tǒng)。循環(huán)中調(diào)用相應(yīng)的函數(shù)完成相應(yīng)的操作,這部分可以看成
3、后臺(tái)行為,后臺(tái)也可以叫做任務(wù)級(jí),這種系統(tǒng)在處理的及時(shí)性上比實(shí)際可以做到的要差。中斷服務(wù)程序處理異步事件,這部分可以看成前臺(tái)行為,前臺(tái)也叫中斷級(jí),時(shí)間相關(guān)性很強(qiáng)的關(guān)鍵操作一定是靠中斷服務(wù)程序來(lái)保證的。 操作系統(tǒng):操作系統(tǒng)是計(jì)算機(jī)中最基本的程序。操作系統(tǒng)負(fù)責(zé)計(jì)算機(jī)系統(tǒng)中全部軟硬資源的分配與回收、控制與協(xié)調(diào)等并發(fā)的活動(dòng);操作系統(tǒng)提供用戶(hù)接口,使用戶(hù)獲得良好的工作環(huán)境;操作系統(tǒng)為用戶(hù)擴(kuò)展新的系統(tǒng)功能提供軟件平臺(tái)。 實(shí)時(shí)操作系統(tǒng):實(shí)時(shí)操作系統(tǒng)是一段在嵌入式系統(tǒng)啟動(dòng)后首先執(zhí)行的背景程序,用戶(hù)的應(yīng)用程序是運(yùn)行于RTOS之上的各個(gè)任務(wù),RTOS根據(jù)各個(gè)任務(wù)的要求,進(jìn)行資源(包括存儲(chǔ)器、外設(shè)等)管理、消息管理、
4、任務(wù)調(diào)度、異常處理等工作。在RTOS支持的系統(tǒng)中, 每個(gè)任務(wù)均有一個(gè)優(yōu)先級(jí),RTOS根據(jù)各個(gè)任務(wù)的優(yōu)先級(jí),動(dòng)態(tài)地切換各個(gè)任務(wù),保證對(duì)實(shí)時(shí)性的要求。 代碼的臨界區(qū):也稱(chēng)為臨界區(qū),指處理不可分割的代碼,運(yùn)行這些代碼不允許被打斷。一旦這部分代碼開(kāi)始執(zhí)行,則不允許任何中斷打斷(這不是絕對(duì)的,如果中斷不調(diào)用任何包含臨界區(qū)的代碼,也不訪問(wèn)臨界區(qū)的使用的共享資源,這個(gè)中斷可以執(zhí)行)。為確保臨界區(qū)代碼的執(zhí)行,在進(jìn)入臨界區(qū)之前要關(guān)中斷,而臨界區(qū)代碼執(zhí)行完成以后要立即開(kāi)中斷。資源:程序運(yùn)行時(shí)可使用的軟、硬件環(huán)境統(tǒng)稱(chēng)為資源。資源可以是輸入、輸出設(shè)備,例如打印機(jī)、鍵盤(pán)、顯示器,也可以是一個(gè)變量、一個(gè)結(jié)構(gòu)或一個(gè)數(shù)組等。
5、共享資源:可以被一個(gè)以上任務(wù)使用的資源叫做共享資源。為了防止數(shù)據(jù)被破壞,每個(gè)任務(wù)在與共享資源打交道時(shí),必須獨(dú)占該資源,這叫做互斥。任務(wù):一個(gè)任務(wù)也叫做一個(gè)線程,是一個(gè)簡(jiǎn)單的程序,該程序可以認(rèn)為CPU完全屬于該程序本身。實(shí)時(shí)應(yīng)用程序的設(shè)計(jì)過(guò)程,包括如何把問(wèn)題分割成多個(gè)任務(wù),每個(gè)任務(wù)都是整個(gè)應(yīng)用的某一部分,被賦予一定的優(yōu)先級(jí),有它自己的一套CPU和寄存器和自己的??臻g。任務(wù)切換:當(dāng)多任務(wù)內(nèi)核決定運(yùn)行另外的任務(wù)時(shí),保存正在運(yùn)行任務(wù)的當(dāng)前狀態(tài),即CPU寄存器中的全部?jī)?nèi)容。這些內(nèi)容保存在當(dāng)前狀態(tài)保存區(qū),也就是任務(wù)自己的棧區(qū)之中。入棧工作完成以后,就把下一個(gè)將要運(yùn)行的任務(wù)的當(dāng)前狀態(tài)從任務(wù)的棧中重新裝入CP
6、U寄存器,并開(kāi)始下一個(gè)任務(wù)的運(yùn)行,這個(gè)過(guò)程就叫任務(wù)的切換。(這個(gè)過(guò)程增加了應(yīng)用程序的額外負(fù)擔(dān),CPU的寄存器越多,額外負(fù)擔(dān)就越重。做任務(wù)切換所需要的時(shí)間取決于CPU有多少寄存器要入棧,實(shí)時(shí)內(nèi)核的性能不應(yīng)該以每秒鐘能做多少次任務(wù)切換來(lái)評(píng)價(jià)。)內(nèi)核:多任務(wù)系統(tǒng)中,內(nèi)核負(fù)責(zé)管理各個(gè)任務(wù),或者說(shuō)為每個(gè)任務(wù)分配CPU時(shí)間,并且負(fù)責(zé)任務(wù)之間的通信。內(nèi)核提供的基本服務(wù)是任務(wù)切換。使用實(shí)時(shí)內(nèi)核可以大大簡(jiǎn)化應(yīng)用系統(tǒng)的設(shè)計(jì),是因?yàn)閷?shí)時(shí)內(nèi)核允許將應(yīng)用分成若干個(gè)任務(wù),由實(shí)時(shí)內(nèi)核來(lái)管理它們。內(nèi)核提供必不可少的系統(tǒng)服務(wù),如信號(hào)量、消息隊(duì)列、延時(shí)等。調(diào)度:調(diào)度是內(nèi)核的主要職責(zé)之一。調(diào)度就是決定該輪到哪個(gè)任務(wù)運(yùn)行了。多數(shù)實(shí)時(shí)
7、內(nèi)核是基于優(yōu)先級(jí)調(diào)度法的。每個(gè)任務(wù)根據(jù)其重要程序的不同被賦予一定的優(yōu)先級(jí)。基于優(yōu)先級(jí)的調(diào)度法指CPU總是讓處在就緒態(tài)的優(yōu)先級(jí)最高的任務(wù)先運(yùn)行。然而究竟何時(shí)讓高優(yōu)先級(jí)任務(wù)掌握CPU的使用權(quán),有兩種不同的情況,這要看用的是什么類(lèi)型的內(nèi)核,是非占先式的還是占先式的內(nèi)核。 非先占式內(nèi)核:非占先式內(nèi)核要求每個(gè)任務(wù)自我放棄CPU 的所有權(quán)。非占先式調(diào)度法也稱(chēng)作合作型多任務(wù),各個(gè)任務(wù)彼此合作共享一個(gè)CPU。異步事件還是由中斷服務(wù)來(lái)處理。中斷服務(wù)可以使一個(gè)高優(yōu)先級(jí)的任務(wù)由掛起狀態(tài)變?yōu)榫途w狀態(tài)。但中斷服務(wù)以后控制權(quán)還是回到原來(lái)被中斷了的那個(gè)任務(wù),直到該任務(wù)主動(dòng)放棄CPU的使用權(quán)時(shí),那個(gè)高優(yōu)先級(jí)的任務(wù)才能獲得CP
8、U的使用權(quán)。先占式內(nèi)核:當(dāng)系統(tǒng)響應(yīng)時(shí)間很重要時(shí),要使用占先式內(nèi)核。因此絕大多數(shù)商業(yè)上銷(xiāo)售的實(shí)時(shí)內(nèi)核都是占先式內(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)就被剝奪了,或者說(shuō)被掛起了,那個(gè)高優(yōu)先級(jí)的任務(wù)立刻得到了CPU的控制權(quán)。如果是中斷服務(wù)子程序使一個(gè)高優(yōu)先級(jí)的任務(wù)進(jìn)入就緒態(tài),中斷完成時(shí),中斷了的任務(wù)被掛起,優(yōu)先級(jí)高的那個(gè)任務(wù)開(kāi)始運(yùn)行。任務(wù)優(yōu)先級(jí):任務(wù)的優(yōu)先級(jí)是表示任務(wù)被調(diào)度的優(yōu)先程度。每個(gè)任務(wù)都具有優(yōu)先級(jí)。任務(wù)越重要,賦予的優(yōu)先級(jí)應(yīng)越高,越容易被調(diào)度而進(jìn)入運(yùn)行態(tài)。 中斷:中斷是一種硬件機(jī)制,用于通知CP
9、U有個(gè)異步事件發(fā)生了。中斷一旦被識(shí)別,CPU保存部分(或全部)上下文即部分或全部寄存器的值,跳轉(zhuǎn)到專(zhuān)門(mén)的子程序,稱(chēng)為中斷服務(wù)子程序(ISR)。中斷服務(wù)子程序做事件處理,處理完成后,程序回到:1. 在前后臺(tái)系統(tǒng)中,程序回到后臺(tái)程序;2. 對(duì)非占先式內(nèi)核而言,程序回到被中斷了的任務(wù);3. 對(duì)占先式內(nèi)核而言,讓進(jìn)入就緒態(tài)的優(yōu)先級(jí)最高的任務(wù)開(kāi)始運(yùn)行。時(shí)鐘節(jié)拍:時(shí)鐘節(jié)拍是特定的周期性中斷。這個(gè)中斷可以看作是系統(tǒng)心臟的脈動(dòng)。中斷之間的時(shí)間間隔取決于不同應(yīng)用,一般在10ms到200ms之間。時(shí)鐘的節(jié)拍式中斷使得內(nèi)核可以將任務(wù)延時(shí)若干個(gè)整數(shù)時(shí)鐘節(jié)拍,以及當(dāng)任務(wù)等待事件發(fā)生時(shí),提供等待超時(shí)的依據(jù)。時(shí)鐘節(jié)拍率越快
10、,系統(tǒng)的額外開(kāi)銷(xiāo)就越大。5、 嵌入式實(shí)時(shí)操作系統(tǒng)的優(yōu)缺點(diǎn)及常見(jiàn)的嵌入式實(shí)時(shí)操作系統(tǒng)P11-14優(yōu)點(diǎn):在嵌入式實(shí)時(shí)操作系統(tǒng)環(huán)境下開(kāi)發(fā)實(shí)時(shí)應(yīng)用程序使程序的設(shè)計(jì)和擴(kuò)展變得容易,不需要大的改動(dòng)就可以增加新的功能。通過(guò)將應(yīng)用程序分割成若干獨(dú)立的任務(wù)模塊,使應(yīng)用程序的設(shè)計(jì)過(guò)程大為簡(jiǎn)化;而且對(duì)實(shí)時(shí)性要求苛刻的事件都得到了快速、可靠的處理。通過(guò)有效的系統(tǒng)服務(wù),嵌入式實(shí)時(shí)操作系統(tǒng)使得系統(tǒng)資源得到更好的利用。缺點(diǎn):使用嵌入式實(shí)時(shí)操作系統(tǒng)還需要額外的ROM/RAM開(kāi)銷(xiāo),25%的CPU額外負(fù)荷,以及內(nèi)核的費(fèi)用。 常見(jiàn)的嵌入式實(shí)時(shí)操作系統(tǒng):uClinux、Windows CE、VxWorks、C/OS-II第2章 AR
11、M7體系結(jié)構(gòu)1、 ARM的體系結(jié)構(gòu)及常用的ARM處理器系列P16ARM內(nèi)核采用RISC體系結(jié)構(gòu)。RISC是精簡(jiǎn)指令集計(jì)算機(jī)的縮寫(xiě),其目標(biāo)是設(shè)計(jì)出在高時(shí)鐘頻率下單周期執(zhí)行,簡(jiǎn)單而有效的指令集。ARM內(nèi)核采用RISC體系結(jié)構(gòu),因此具有RISC的結(jié)構(gòu)特點(diǎn)如具有大量的通用存儲(chǔ)器;獨(dú)特的裝載/保存(load-store)結(jié)構(gòu);簡(jiǎn)單的尋址模式;統(tǒng)一和固定長(zhǎng)度的指令格式。常用的ARM處理器系列:ARM7系列、ARM9系列、ARM10系列、ARM11系列、Intel的XScale系列和MPCore系列;還有針對(duì)低端8位MCU市場(chǎng)推出的Cortex-M3系列,其具有32位CPU性能、8位CPU的價(jià)格。2、 AR
12、M7TDMI的完整意思是什么?ARM7TDMI是基于ARM體系結(jié)構(gòu)V4版本的低端ARM核。 其彌補(bǔ)了ARM6很難在低于5V電壓下穩(wěn)定工作的不足,還增加了后綴所對(duì)應(yīng)的功能:3、 存儲(chǔ)器的字與半字及對(duì)齊關(guān)系P20從偶數(shù)地址開(kāi)始的連續(xù)2個(gè)字節(jié)構(gòu)成一個(gè)半字;以能被4整除的地址開(kāi)始的連續(xù)4個(gè)字節(jié)構(gòu)成一個(gè)字;ARM指令的長(zhǎng)度剛好是一個(gè)字,Thumb指令的長(zhǎng)度剛好是一個(gè)半字。 如果一個(gè)數(shù)據(jù)是從偶地址開(kāi)始的連續(xù)存儲(chǔ),那么它就是半字對(duì)齊,否則就是非半字對(duì)齊;如果一個(gè)數(shù)據(jù)是以能被4整除的地址開(kāi)始的連續(xù)存儲(chǔ),那么它就是字對(duì)齊,否則就是非字對(duì)齊。4、 3級(jí)流水線P20(可能考大題)可參考第二章PPT23頁(yè)的思考題例子
13、。5、 ARM處理器的兩種狀態(tài)P24ARM7TDMI處理器內(nèi)核包含2套指令系統(tǒng),分別為ARM指令集和Thumb指令,并且各自對(duì)應(yīng)1種處理器的狀態(tài):ARM狀態(tài):32位,處理器執(zhí)行字方式的ARM指令,處理器默認(rèn)為此狀態(tài);Thumb狀態(tài):16位,處理器執(zhí)行半字方式的Thumb指令。注意:兩個(gè)狀態(tài)之間的切換并不影響處理器模式或寄存器內(nèi)容。具體例子見(jiàn)書(shū)上P25程序清單2.2。6、 ARM處理器的7種處理模式P26(必考)ARM體系結(jié)構(gòu)支持7種處理器模式,分別為:用戶(hù)模式、快中斷模式、中斷模式、管理模式、中止模式、未定義模式和系統(tǒng)模式。這樣的好處是可以更好的支持操作系統(tǒng)并提高工作效率,ARM7TDMI完全
14、支持這七種模式。處理器模式說(shuō)明備注用戶(hù)(usr)正常程序運(yùn)行的工作模式不能直接從用戶(hù)模式切換到其他模式特權(quán)模式系統(tǒng)(sys)用于支持操作系統(tǒng)的特權(quán)任務(wù)等與用戶(hù)模式類(lèi)似,但具有直接切換到其他模式等特權(quán)異常模式管理(svc)供操作系統(tǒng)使用的一種保護(hù)模式只有在系統(tǒng)復(fù)位和軟件中斷響應(yīng)時(shí),才進(jìn)入此模式中止(abt)用于虛擬內(nèi)存和(或)存儲(chǔ)器保護(hù)在ARM7內(nèi)核中沒(méi)有多大用處未定義(und)支持軟件仿真的硬件協(xié)處理器只有在未定義指令異常響應(yīng)時(shí),才進(jìn)入此模式中斷(irq)中斷請(qǐng)求處理只有在IRQ異常響應(yīng)時(shí),才進(jìn)入此模式快速中斷(fiq)快速中斷請(qǐng)求處理只有在FIQ異常響應(yīng)時(shí),才進(jìn)入此模式7、 ARM狀態(tài)下的內(nèi)
15、部寄存器P28-36(重點(diǎn))(熟記各數(shù)字)在ARM處理器內(nèi)部共有37個(gè)用戶(hù)可訪問(wèn)的寄存器,分別為31個(gè)通用32位寄存器和6個(gè)狀態(tài)寄存器。ARM處理器共有7種不同的處理器模式,每種模式都有一組相應(yīng)的寄存器組,最多可以18個(gè)活動(dòng)的寄存器。如下表所示:寄存器R0R7為未分組的通用寄存器,它們?cè)谌魏翁幚砥髂J蕉紝?duì)應(yīng)于相同的32位物理寄存器。寄存器R8R12有兩個(gè)分組的物理寄存器。一個(gè)用于除FIQ模式之外的所有寄存器模式,另一個(gè)用于FIQ模式。在發(fā)生FIQ中斷后,處理器不必為保護(hù)寄存器而浪費(fèi)時(shí)間,從而加速了FIQ的處理速度。寄存器R13、R14分別有6個(gè)分組的物理寄存器。1個(gè)用于用戶(hù)和系統(tǒng)模式,其余5個(gè)
16、分別用于5種異常模式。寄存器R13通常作為堆棧指針(SP),用于保存待使用的寄存器的內(nèi)容。寄存器R14稱(chēng)為鏈接寄存器(LR),在結(jié)構(gòu)上有兩個(gè)特殊功能:當(dāng)使用BL指令調(diào)用子程序時(shí),返回地址將自動(dòng)存入R14中;當(dāng)發(fā)生異常時(shí),將R14對(duì)應(yīng)的異常模式版本設(shè)置為異常返回地址(有些異常有一個(gè)小的固定偏移量)。寄存器R15稱(chēng)為程序計(jì)數(shù)器(PC),它指向正在“取指”的指令。寄存器CPSR為當(dāng)前程序狀態(tài)寄存器,在異常模式中,另外一個(gè)寄存器“程序狀態(tài)保存寄存器(SPSR)”可以被訪問(wèn)。每種異常都有自己的SPSR,在進(jìn)入異常時(shí)它保存CPSR的當(dāng)前值,異常退出時(shí)可通過(guò)它恢復(fù)CPSR。Thumb狀態(tài)寄存器集是ARM狀態(tài)
17、集的子集,程序員可以直接訪問(wèn)的寄存器為:8個(gè)通用寄存器R0R7,在匯編語(yǔ)言中寄存器R0R7為通用寄存器,對(duì)于任何處理器模式,它們中的每一個(gè)都對(duì)應(yīng)于相同的32為物理寄存器。程序計(jì)數(shù)器(PC);堆棧指針(SP),堆棧指針SP對(duì)應(yīng)ARM狀態(tài)的寄存器R13。每個(gè)異常模式都有其自身的SP分組版本,SP通常指向各異常模式所專(zhuān)用的堆棧。注意:在發(fā)生異常時(shí),處理器自動(dòng)進(jìn)入ARM狀態(tài)。鏈接寄存器(LR),鏈接寄存器LR對(duì)應(yīng)ARM狀態(tài)寄存器R14。注意:在發(fā)生異常時(shí),處理器自動(dòng)進(jìn)入ARM狀態(tài)。當(dāng)前程序狀態(tài)寄存器( CPSR)。在兩種狀態(tài)中,寄存器R0-R7是低端寄存器,R8-R12是高端寄存器,在Thumb狀態(tài)中
18、,高端寄存器的訪問(wèn)是受到限制的,只有MOV、CMP和ADD指令可以對(duì)其訪問(wèn),可以用于數(shù)據(jù)的快速暫存。8、 當(dāng)前程序狀態(tài)寄存器的用法P36-39ARM內(nèi)核包含1個(gè)CPSR和5個(gè)僅供異常處理程序使用的SPSR。CPSR反映當(dāng)前處理器的狀態(tài),其包含:4個(gè)條件代碼標(biāo)志(負(fù)標(biāo)志N、零標(biāo)志Z、進(jìn)位標(biāo)志C和溢出標(biāo)志V );2個(gè)中斷禁止位(IRQ禁止與FIQ禁止);5個(gè)對(duì)當(dāng)前處理器模式進(jìn)行編碼的位(M4:0);1個(gè)用于指示當(dāng)前執(zhí)行指令的位(ARM指令還是Thumb指令)。其格式如下:各標(biāo)志位的含義如下:負(fù)標(biāo)志N:運(yùn)算結(jié)果的第31位值,記錄標(biāo)志設(shè)置操作的結(jié)果;零標(biāo)志Z:如果標(biāo)志設(shè)置的操作為0,則置位;進(jìn)位標(biāo)志C
19、:記錄無(wú)符號(hào)加法溢出,減法無(wú)借位,循環(huán)移位;溢出標(biāo)志V:記錄標(biāo)志設(shè)置操作的有符號(hào)溢出。中斷禁止控制位I和F:當(dāng)控制位I置位時(shí),IRQ中斷被禁止;當(dāng)控制位F置位時(shí),F(xiàn)IQ中斷被禁止。處理器狀態(tài)位T:當(dāng)控制位T置位時(shí),處理器正在Thumb狀態(tài)下運(yùn)行;當(dāng)控制位T清零時(shí),處理器正在ARM狀態(tài)下運(yùn)行。警告:絕對(duì)不要強(qiáng)制改變CPSR寄存器中的控制位T。如果這樣做,處理器將進(jìn)入一個(gè)無(wú)法預(yù)測(cè)的狀態(tài)。處理器模式位M0M4:注意:不是所有模式位的組合都定義了有效的處理器模式,如果將非法值寫(xiě)入M4:0中,處理器將進(jìn)入一個(gè)無(wú)法恢復(fù)的模式。保留位:CPSR中的保留位被保留將來(lái)使用。當(dāng)改變CPSR標(biāo)志和控制位時(shí),請(qǐng)確認(rèn)沒(méi)
20、有改變這些保留位。另外,請(qǐng)確保您的程序不依賴(lài)于包含特定值的保留位,因?yàn)閷?lái)的處理器可能會(huì)將這些位設(shè)置為1或者0。9、 ARM體系的異常、中斷及其向量表P39(異常中斷的進(jìn)入與退出是重中之重)當(dāng)多個(gè)異常同時(shí)發(fā)生時(shí),一個(gè)固定的優(yōu)先級(jí)決定系統(tǒng)處理它們的順序: 當(dāng)一個(gè)異常導(dǎo)致模式切換時(shí),內(nèi)核自動(dòng)的做如下處理: (即異常的進(jìn)入) 將異常處理程序的返回地址(加固定的偏移量)保存到相應(yīng)異常模式下的LR;將CPSR的當(dāng)前值保存到相應(yīng)異常模式下的SPSR;設(shè)置CPSR為相應(yīng)的異常模式;設(shè)置PC為相應(yīng)異常處理程序的中斷入口向量地址,跳轉(zhuǎn)到相應(yīng)的異常中斷處理程序執(zhí)行;當(dāng)異常處理程序結(jié)束時(shí),異常處理程序必須:(即異常
21、的退出) 返回到發(fā)生異常中斷的指令的下一條指令處執(zhí)行,即就是說(shuō)將LR中的值減去偏移量后移入PC;將SPSR的值復(fù)制回CPSR;清零在入口處置位的中斷禁止標(biāo)志。10、 ARM體系的存儲(chǔ)系統(tǒng)P48(了解“大端”與“小端”)存儲(chǔ)器系統(tǒng)有兩種映射機(jī)制:小端存儲(chǔ)器系統(tǒng):在小端格式中,數(shù)據(jù)的高字節(jié)存放在高地址中。大端存儲(chǔ)器系統(tǒng):在大端格式中,數(shù)據(jù)的高字節(jié)存放在低地址中。第3章 ARM7TDMI(-S)指令系統(tǒng)1、 ARM處理器的8種尋址方式P52(可能考名詞解釋?zhuān)┘拇嫫鲗ぶ罚翰僮鲾?shù)的值在寄存器中,指令中的地址碼字段指出的是寄存器編號(hào),指令執(zhí)行時(shí)直接取出寄存器值來(lái)操作。寄存器尋址指令舉例如下: MOV R1
22、,R2 ;將R2的值存入R1 SUB R0,R1,R2 ;將R1的值減去R2的值,結(jié)果保存到R0 立即尋址:立即尋址指令中的操作碼字段后面的地址碼部分即是操作數(shù)本身,也就是說(shuō),數(shù)據(jù)就包含在指令當(dāng)中,取出指令也就取出了可以立即使用的操作數(shù)(這樣的數(shù)稱(chēng)為立即數(shù))。立即尋址指令舉例如下: SUBSR0,R0,#1 ;R0減1,結(jié)果放入R0,并且影響標(biāo)志位MOVR0,#0xFF000 ;將立即數(shù)0xFF000裝入R0寄存器 寄存器移位尋址:寄存器移位尋址是ARM指令集特有的尋址方式。當(dāng)?shù)?個(gè)操作數(shù)是寄存器移位方式時(shí),第2個(gè)寄存器操作數(shù)在與第1個(gè)操作數(shù)結(jié)合之前,選擇進(jìn)行移位操作。寄存器移位尋址指令舉例如
23、下:MOVR0,R2,LSL #3;R2的值左移3位,結(jié)果放入R0;即是R0=R2×8 ANDSR1,R1,R2,LSL R3 ;R2的值左移R3位,然后和R1相;“與”操作,結(jié)果放入R1寄存器間接尋址:寄存器間接尋址指令中的地址碼給出的是一個(gè)通用寄存器的編號(hào),所需的操作數(shù)保存在寄存器指定地址的存儲(chǔ)單元中,即寄存器為操作數(shù)的地址指針。寄存器間接尋址指令舉例如下: LDRR1,R2;將R2指向的存儲(chǔ)單元的數(shù)據(jù)讀出;保存在R1中 SWPR1,R1,R2;將寄存器R1的值和R2指定的存儲(chǔ);單元的內(nèi)容交換 基址尋址:基址尋址就是將基址寄存器的內(nèi)容與指令中給出的偏移量相加,形成操作數(shù)的有效地址
24、?;穼ぶ酚糜谠L問(wèn)基址附近的存儲(chǔ)單元,常用于查表、數(shù)組操作、功能部件寄存器訪問(wèn)等。基址尋址指令舉例如下: LDRR2,R3,#0x0C;讀取R3+0x0C地址上的存儲(chǔ)單元;的內(nèi)容,放入R2 STRR1,R0,#-4!;先R0=R0-4,然后把R1的值寄存;到保存到R0指定的存儲(chǔ)單元 多寄存器尋址:多寄存器尋址一次可傳送幾個(gè)寄存器值,允許一條指令傳送16個(gè)寄存器的任何子集或所有寄存器。多寄存器尋址指令舉例如下: LDMIAR1!,R2-R7,R12 ;將R1指向的單元中的數(shù)據(jù)讀出到;R2R7、R12中(R1自動(dòng)加1) STMIAR0!,R2-R7,R12 ;將寄存器R2R7、R12的值保;存到R
25、0指向的存儲(chǔ); 單元中;(R0自動(dòng)加1)堆棧尋址:堆棧指針指向最后壓入的堆棧的有效數(shù)據(jù)項(xiàng),稱(chēng)為滿(mǎn)堆棧;堆棧指針指向下一個(gè)待壓入數(shù)據(jù)的空位置,稱(chēng)為空堆棧。 所以可以組合出四種類(lèi)型的堆棧方式:滿(mǎn)遞增:堆棧向上增長(zhǎng),堆棧指針指向內(nèi)含有效數(shù)據(jù)項(xiàng)的最高地址。指令如LDMFA、STMFA等; 空遞增:堆棧向上增長(zhǎng),堆棧指針指向堆棧上的第一個(gè)空位置。指令如LDMEA、STMEA等; 滿(mǎn)遞減:堆棧向下增長(zhǎng),堆棧指針指向內(nèi)含有效數(shù)據(jù)項(xiàng)的最低地址。指令如LDMFD、STMFD等;空遞減:堆棧向下增長(zhǎng),堆棧指針向堆棧下的第一個(gè)空位置。指令如LDMED、STMED等。 相對(duì)尋址:相對(duì)尋址是基址尋址的一種變通。由程序計(jì)
26、數(shù)器PC提供基準(zhǔn)地址,指令中的地址碼字段作為偏移量,兩者相加后得到的地址即為操作數(shù)的有效地址。相對(duì)尋址指令舉例如下:BLSUBR1;調(diào)用到SUBR1子程序BEQLOOP;條件跳轉(zhuǎn)到LOOP標(biāo)號(hào)處.LOOPMOVR6,#1.SUBR1. 2、 ARM指令集中各典型指令的用途P58小例子:(可能考選擇或填空)加載指令:LDR/STR加載/存儲(chǔ)指令LDM/STM多寄存器加載/存儲(chǔ)指令SWP寄存器和存儲(chǔ)器交換指令數(shù)據(jù)處理指令:見(jiàn)書(shū)上P70-71乘法指令:3、 ARM分支指令和雜項(xiàng)指令P72-77分支指令:B 指令為簡(jiǎn)單的跳轉(zhuǎn)指令,不附帶其它功能。跳轉(zhuǎn)范圍限制在當(dāng)前指令的±32M字節(jié)地址內(nèi)(A
27、RM指令為字對(duì)齊,最低2位地址固定為0)。BL 指令除了具有跳轉(zhuǎn)功能,還能在跳轉(zhuǎn)之前將下一條指令的地址拷貝到R14(即LR) 鏈接寄存器中,它適用于子程序調(diào)用。跳轉(zhuǎn)范圍限制在當(dāng)前指令的±32M字節(jié)地址內(nèi)。BX 指令除了具有跳轉(zhuǎn)功能,還能在跳轉(zhuǎn)的同時(shí)切換處理器狀態(tài)。其跳轉(zhuǎn)范圍不受限制。雜項(xiàng)指令:在ARM指令集中雜項(xiàng)指令共有3條,它們非常重要,特別是與操作系統(tǒng)的使用息息相關(guān):1.軟件中斷產(chǎn)生指令:SWI,主要用于用戶(hù)程序調(diào)用操作系統(tǒng)的系統(tǒng)服務(wù)。2. 程序狀態(tài)寄存器讀指令:MRS,對(duì)狀態(tài)寄存器CPSR和SPSR進(jìn)行讀操作。3. 程序狀態(tài)寄存器寫(xiě)指令:MSR,對(duì)狀態(tài)寄存器CPSR和SPSR進(jìn)
28、行寫(xiě)操作。4、 ARM偽指令P78ARM偽指令有四條:1.小范圍地址讀取指令:ADR,將基于PC相對(duì)偏移的地址值或基于寄存器相對(duì)偏移的地址值讀取到寄存器中。2.中等范圍地址讀取指令:ADRL,將基于PC相對(duì)偏移的地址值或基于寄存器相對(duì)偏移的地址值讀取到寄存器中,比ADR偽指令可以讀取更大范圍的地址。 3.大等范圍地址讀取指令:LDR,用于加載32位的立即數(shù)或一個(gè)地址值到指定寄存器。4.空操作指令:NOP,在匯編時(shí)將會(huì)被代替成ARM中的空操作,比如可能是“MOV R0,R0”指令等。NOP可用于延時(shí)操作。5、 ARM指令集和Thumb指令集的異同同:Thumb指令的格式與使用方式與ARM指令集類(lèi)
29、似,它也具有以下種類(lèi)的指令:存儲(chǔ)器訪問(wèn)指令數(shù)據(jù)處理指令分支指令雜項(xiàng)指令偽指令異:Thumb指令集較ARM指令集有如下限制:只有B指令可以條件執(zhí)行,其它指令都不能條件執(zhí)行;分支指令的跳轉(zhuǎn)范圍有更多限制;數(shù)據(jù)處理指令的操作結(jié)果必須放入其中一個(gè);單寄存器訪問(wèn)指令,只能操作R0R7;LDM和STM指令可以對(duì)R0R7的任何子集進(jìn)行操作;第4章 LPC2000系列ARM硬件結(jié)構(gòu)1、 了解硬件結(jié)構(gòu)P902、 存儲(chǔ)器重映射的概念及其作用P106給物理存儲(chǔ)器分配邏輯地址的過(guò)程稱(chēng)為存儲(chǔ)器映射。將已經(jīng)過(guò)映射的存儲(chǔ)器再次映射的過(guò)程稱(chēng)為存儲(chǔ)器重映射,它使同一物理存儲(chǔ)單元出現(xiàn)多個(gè)不同的邏輯地址(增加了代碼的可移植性和可通
30、用性)。這些存儲(chǔ)單元主要包括引導(dǎo)塊“Boot Block”和用于保存異常向量表的少量存儲(chǔ)單元。引導(dǎo)塊(Boot Block)是芯片設(shè)計(jì)廠家在LPC2000系列ARM內(nèi)部固化的一段代碼,用戶(hù)無(wú)法修改或刪除。這段代碼在芯片復(fù)位后被首先運(yùn)行,其功能主要是: 判斷運(yùn)行哪個(gè)存儲(chǔ)器上的程序;檢查用戶(hù)代碼是否有效;判斷芯片是否被加密;芯片的在應(yīng)用編程(IAP)以及在系統(tǒng)編程功能(ISP)3、 時(shí)鐘部件鎖相環(huán)PLL(可能考大題)P126PLL頻率計(jì)算:可以得出以下幾個(gè)等式: Fosc = Fcco/(2×p×M) à Fcco = Fosc×(2×p×
31、;M) Fcclk = Fcco/(2×p) à Fcco = Fcclk×(2×p)最后得出PLL的輸出頻率(當(dāng)PLL激活并連接時(shí))為: Fcclk = M×Fosc 或 Fcclk = Fcco / (2×P)CCO輸出頻率為:Fcco = Fcclk×2×P 或 Fcco = Fosc×M×2×PPLL設(shè)置舉例:系統(tǒng)要求Fosc10MHz,F(xiàn)cclk60MHz。根據(jù)這些要求:確定Fcclk60MHz;選擇Fosc10MHz;計(jì)算M= Fcclk/Fosc60MHz/10MHz6。
32、M-15,所以寫(xiě)入PLLCFG4:000101;計(jì)算P=Fcco/( Fcclk*2),其中Fcco為156320 MHz。當(dāng)Fcco156MHz時(shí),P=156MHz/(2*60MHz)1.3當(dāng)Fcco320MHz時(shí), P=2.67P取整數(shù)2,所以寫(xiě)入PLLCFG6:5=01。4、 外部存儲(chǔ)器控制器EMC及引腳連接模塊P152-1785、 GPIO P1796、 向量中斷控制器P1887、 定時(shí)器0和定時(shí)器1的作用P2228、 IC接口的操作模式P2719、 UART0和UART1的用法和區(qū)別P276UART0只提供TXD和RXD信號(hào)引腳,而UART1增加了一個(gè)調(diào)制解調(diào)器(Modem)接口,其余二者都是完全相同的:16字節(jié)接收FIFO和16字節(jié)發(fā)送FIFO;寄存器位置符合16C550工業(yè)標(biāo)準(zhǔn);接收FIFO觸發(fā)點(diǎn)可設(shè)置為1、4、8或14字節(jié);內(nèi)置波特率發(fā)生器;UART1含有標(biāo)準(zhǔn)調(diào)制解調(diào)器接口信號(hào) 。10、 A/D轉(zhuǎn)換器、脈寬調(diào)制器PWM和實(shí)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 垃圾轉(zhuǎn)運(yùn)站建設(shè)方案論證報(bào)告
- 2025年花鍵轂行業(yè)深度研究分析報(bào)告
- 機(jī)電設(shè)備購(gòu)銷(xiāo)合同書(shū)
- 2025-2030年中國(guó)位置檢測(cè)開(kāi)關(guān)項(xiàng)目投資可行性研究分析報(bào)告
- 脂肪酸甲酯乙氧基化物項(xiàng)目風(fēng)險(xiǎn)識(shí)別與評(píng)估綜合報(bào)告
- 2024年全球及中國(guó)直角定規(guī)行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 可穿戴設(shè)備開(kāi)發(fā)合作合同
- 2024-2030全球日化用生物表面活性劑行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030年中國(guó)機(jī)前后橋行業(yè)深度研究分析報(bào)告
- 小學(xué)英語(yǔ)復(fù)習(xí)與個(gè)性化學(xué)習(xí)方案
- 2025年合肥幼兒師范高等專(zhuān)科學(xué)校單招職業(yè)適應(yīng)性測(cè)試題庫(kù)新版
- 勞務(wù)派遣勞務(wù)外包項(xiàng)目方案投標(biāo)文件(技術(shù)方案)
- 2025年安全員C證(專(zhuān)職安全員)考試題庫(kù)
- 地理-天一大聯(lián)考2025屆高三四省聯(lián)考(陜晉青寧)試題和解析
- 2025年廣州市公安局招考聘用交通輔警200人高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 貴州省貴陽(yáng)市2024-2025學(xué)年九年級(jí)上學(xué)期期末語(yǔ)文試題(含答案)
- 2025年江蘇海事職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 2024年尖葉菠菜種子項(xiàng)目可行性研究報(bào)告
- 2024年吉安職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)附答案
- 2024年蘇州市職業(yè)大學(xué)單招職業(yè)適應(yīng)性測(cè)試題庫(kù)完整版
- 2024年廣州港集團(tuán)有限公司招聘筆試沖刺題(帶答案解析)
評(píng)論
0/150
提交評(píng)論