武漢科技大學嵌入式復習要點_第1頁
武漢科技大學嵌入式復習要點_第2頁
武漢科技大學嵌入式復習要點_第3頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、嵌入式系統(tǒng)的概念從技術(shù)的角度定義: 以應用為中心、以計算機技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應應用系統(tǒng) 對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統(tǒng)。從系統(tǒng)的角度定義:嵌入式系統(tǒng)是設(shè)計完成復雜功能的硬件和軟件,并使其緊密耦合在一起的計算機系統(tǒng)。術(shù)語嵌入式反映了這些系統(tǒng)通常是更大系統(tǒng)中的一個完整的部分,稱為嵌入的系統(tǒng)。嵌入的系統(tǒng)中可以共存多個嵌入式系統(tǒng)。嵌入式系統(tǒng)的一般由以下幾部分組成嵌入式微處理器外圍硬件設(shè)備嵌入式操作系統(tǒng)應用程序嵌入式系統(tǒng)的設(shè)計可以分成三個階段:分析、設(shè)計和實現(xiàn)U盤;MP3播放器;手機 藍牙耳機(2分);GPS導航儀(2特點:嵌入性,專用性,內(nèi)含計算機嵌入式處理器可以

2、分為以下幾大類:嵌入式微處理器(EMPU);嵌入式微控制器(MCU);嵌入式DSP處理器(DSP);嵌入式片上系統(tǒng)(SOC)。實時操作系統(tǒng)的特點異步的事件響應切換時間和中斷延遲時間確定優(yōu)先級中斷和調(diào)度搶占式調(diào)度內(nèi)存鎖定 連續(xù)文件 同步實時操作系統(tǒng) 是事件驅(qū)動的,能對來自外界的作用和信號在限定的時間范圍內(nèi)作出響應。它強調(diào)的是實時性、可靠性和靈活性。5、實時操作系統(tǒng)的優(yōu)缺點:(1)優(yōu)點:在嵌入式實時操作系統(tǒng)環(huán)境下開發(fā)實時應用程序使程序的設(shè)計和擴展變得容易,不需要大的改動就可以增加新的功能。通過將應用程序分割成若干獨立的任務模塊,使應用程序的設(shè)計過程大為簡化;而且對實時性要求苛刻的事件都得到了快速、

3、可靠的處理。通過有效的系統(tǒng)服務,嵌入式實時操作系統(tǒng)使得系統(tǒng)資源得到更好的利用。(2) 缺點:但是,使用嵌入式實時操作系統(tǒng)還需要額外的ROM/RAM 開銷,25%的 CPU額外負荷,以及內(nèi)核的費用。常見的嵌入式操作系統(tǒng)1. uCIi nux2. Wi ndows CE3. VxWorks4卩 C/OS-IIRISC是精簡指令集計算機的縮寫,其目標是設(shè)計出在高時鐘頻率下單周期執(zhí)行,簡單而有 效的指令集。ARM內(nèi)核采用RISC體系結(jié)構(gòu),因此具有 RISC的結(jié)構(gòu)特點:(1)具有大量的通用存儲器;(2)獨特的裝載/保存(load-store)結(jié)構(gòu);(3 )簡單的尋址模式;(4 )統(tǒng)一和固定長度的指令格式

4、。ARM7TDMI-S 的含義基于ARM體系結(jié)構(gòu)V4版本的低端ARM核,由ARM6發(fā)展而來,并能夠穩(wěn)定的在低于 5V 的電源電壓下工作T:支持高密度16位的Thumb指令集;D:支持片上調(diào)試;M:支持64位乘法;I:支持EmbededICE觀察硬件;S:ARM7TDMI的可綜合(synthesizable)版本(軟核),對應用工程師來說其編程模型與ARM7TDMI 一致;常用的ARM處理器系列1. Cortex-M32. Cortex-R43. Cortex-R4F4. Cortex-A85. ARM7 馮諾依曼結(jié)構(gòu)6. ARM9 哈佛結(jié)構(gòu)7. ARM108. ARM119. XScale A

5、RM公司Arm5TE版內(nèi)核和指令集字和半字:從偶數(shù)地址開始的連續(xù) 2個字節(jié)構(gòu)成一個半字;以能被4整除的地址開始的連續(xù) 4個字節(jié)構(gòu)成一個 字;ARM指令的長度剛好是一個字,Thumb指令的長度剛好是一個半字。如果一個數(shù)據(jù)是從偶地址開始的連續(xù)存儲,那么它就是半字對齊,否則就是非半字對齊;如果一個數(shù)據(jù)是以能被 4整除的地址開始的連續(xù)存儲,那么它就是字對齊,否則就是非字對齊。流水線RM處理器使用流水線來增加處理器指令流的速度,這樣可使幾個操作同時進行,并使處理和存儲器系統(tǒng)連續(xù)操作,能提供0.9MIPS/MHZ的指令執(zhí)行速度pc取指:從寄存器裝載一條指令Pc-4譯碼:識別將要被執(zhí)行的指令Pc-8執(zhí)行:處

6、理指令并將結(jié)果寫回寄存器在第1個周期,PC指向指令1,此時指令1進入三級流水線的取指階段。在第2個周期,PC指向指令2,此時指令1進入三級流水線的譯碼階段,同時取出指令2。在第3個周期,PC指向指令3,此時指令1進入三級流水線的執(zhí)行階段,指令2進入譯碼階段,取出指令3。在第4個周期,指令1執(zhí)行完成,指令2和指令3流水線推進一級,同時開始指令4的取指 處理。PC指向0x4008地址,執(zhí)行 ADD指令,所以指令執(zhí)行的結(jié)果為 :PC=PC+4 = 0x4008 + 4 = 0x400C。程序計數(shù)器R15(PC)總是指向“正在取指”的指令,而不是指向“正在執(zhí)行”的指令或“正 在譯碼”的指令。一般來說,

7、人們習慣性約定將“正在執(zhí)行”的指令作為參考點,則:ARM狀態(tài):PC值=當前程序執(zhí)行位置+8Thumb狀態(tài):PC值=當前程序執(zhí)行位置+4注:ARM狀態(tài)時,每條指令為 4字節(jié)長指令集ARM指令集高效快速,具有較低密度,Thumb指令集小巧靈活,保持 ARM的大多數(shù)性能上的有事,是ARM指令集的子集ARM狀態(tài):32位,處理器執(zhí)行字方式的ARM指令,處理器默認為此狀態(tài);Thumb狀態(tài):16位,處理器執(zhí)行半字方式的Thumb指令。Cpsr的控制位T=0,處理器處于 ARM狀態(tài),執(zhí)行 ARM指令,T=1,處理器處于Thumb狀 態(tài),執(zhí)行Thumb指令。使用BX指令將ARM內(nèi)核的操作狀態(tài)在 ARM狀態(tài)和Th

8、umb狀態(tài) 進行切換。Thumb狀態(tài)切換到ARM狀態(tài)代碼CODE16LDR R0, =LableBX R0CODE32Lable MOV R1, #10CODE32LDR R0, =Lable+1BX R0CODE16Lable MOV R1, #12注意:兩個狀態(tài)之間的切換并不影響處理器模式或寄存器內(nèi)容。模式七個模式,用戶,系統(tǒng),管理,中止,快中斷,中斷,未定義,管理模式:只有在系統(tǒng)復位和軟件中斷響應時,才進入此模式何時進入異常模式,具體規(guī)定如下:處理器復位之后進入管理模式,操作系統(tǒng)內(nèi)核通常處于管理模式;當處理器訪問存儲器失敗時,進入數(shù)據(jù)訪問中止模式;當處理器遇到?jīng)]有定義或不支持的指令時,進

9、入未定義模式;中斷模式與快速中斷模式分別對ARM處理器2種不同級別的中斷作出響應。處理器模式說明備注用戶(usr)正常程序運行的工作模式不能直接從用戶模式切換到其它模式特 權(quán) 模 式系統(tǒng)(sys)用于支持操作系統(tǒng)的特權(quán)任務等與用戶模式類似,但具有可以直接切換到其它 模式等特權(quán)異 常 模 式快中斷(fiq)快速中斷請求處理只有在FIQ異常響應時,才進入此模式中斷(irq)中斷請求處理只有在IRQ異常響應時,才進入此模式管理(SVC)供操作系統(tǒng)使用的一種保護模式只有在系統(tǒng)復位和軟件中斷響應時,才進入此 模式中止(abt)用于虛擬內(nèi)存和/或存儲器保護在ARM7內(nèi)核中沒有多大用處未定義(und)支持軟

10、件仿真的硬件協(xié)處理器只有在未定義指令異常響應時,才進入此模式在ARM處理器內(nèi)部共有 37個用戶可訪問的寄存器,分別為 31個通用32位寄存器和6個 狀態(tài)寄存器。Cpsr,SPSR_SVC,SPSR_abt,SPSR_ un d,SPSR_irq,SPSR_fiqARM處理器共有7種不同的處理器模式,每種模式都有一組相應的寄存器組,最多可以18個活動的寄存器。R0和R7為未分組的通用寄存器,可以在任何處理器模式都對應與相同的32為物理寄存器R8-R12有兩個分組的物理寄存器,一個用于除FIQ模式之外的所有寄存器,另一個用于FIQ模式R13堆棧指針SP,用于保存待使用的寄存器的內(nèi)容R14鏈接指針L

11、R,在結(jié)構(gòu)上有兩個功能:當使用BL指令調(diào)用子程序時,返回地址將自動存入R14中,子程序結(jié)束是,R14復制到PC中即可實現(xiàn)子程序返回當發(fā)生異常是,保張異常處理程序不會破壞LR,LR保存異常程序,將異常模處理程序的返回地址保存到 LR對應的異常模式寄存器中R15程序計數(shù)器,指向正在取值的指令CPSR和SPSR之間的關(guān)系SPSR,然后當一個特定的異常發(fā)生中斷時,將CSPR的當前值保存到相應異常模式下的條件代碼標志保留控制位45設(shè)置CPSR為相應的異常模式SPSR中的值來回復CPSR從異常中斷程序退出并且返回時候,可以通道保存在ARM內(nèi)核包含1個CPSR和5個僅供異常處理程序使用的SPSR°

12、CPSR反映當前處理器的狀態(tài),其包含:4個條件代碼標志(負標志N、零標志Z、進位標志C和溢出標志 V );2個中斷禁止位(IRQ禁止與FIQ禁止);5個對當前處理器模式進行編碼的位(M4:0);1個用于指示當前執(zhí)行指令的位(ARM指令還是Thumb指令)。程序狀態(tài)寄存器(CPSR)的格式31負標志N :運算結(jié)果的第 31位值,記錄標志設(shè)置操作的結(jié)果;30零標志Z:如果標志設(shè)置的操作為0,則置位;29進位標志C:記錄無符號加法溢出,減法無借位,循環(huán)移位;28溢出標志V :記錄標志設(shè)置操作的有符號溢出。條件代碼標志:31-N:負或小于30-Z:零29-C:進位、借位或擴展28-V:溢出控制位:7-

13、控制位I置位時:IRQ中斷被禁止6-控制位F置位時:FIQ禁止5-T:狀態(tài)位T置位時,在 Thumb狀態(tài)下運行,為 0時在ARM狀態(tài)下運行40-M4 .MO :模式位只要正常的程序流被暫時中止,處理器就進入異常模式。進入異常:1將異常處理程序的返回地址保存到相應異常模式下的LR,異常處理程序完成后的返回可通過將LR的值減去偏移量后寫入 PC;( LR)2將CPSR的當前值保存到相應異常模式下的SPSR,異常處理程序完成后的返回可通過保存在SPSR中的值來恢復 CPSR;( CPSR->SPSR)3設(shè)置CPSR為相應的異常模式;(設(shè)置為異常模式)4設(shè)置PC為相應異常處理程序的終端入口向量地

14、址,跳轉(zhuǎn)到相應的異常中斷處理程序執(zhí)行。(異常入口)退出異常:1返回到發(fā)生異常中斷的指令的下一條指令處執(zhí)行,將LR中的值減去偏移量后移入 PC,偏移量根據(jù)異常的類型而有所不同;(LR-s -> PC)2將 SPSR 的值復制回 CPSR;( SPSR->CPSR)3在入口處置位的中斷禁止控制位清零。(入口處置位的中斷禁止控制位清零)地址異常進入時的模式進入時1的狀態(tài)進入時F的狀態(tài)0x00000000復位管理禁止禁止0x00000004未定義指令未定義IF0x00000008軟件中斷異常管理禁止F0x0000000C中止(預?。┲兄笽F0x00000010中止(數(shù)據(jù))中止IF0x000

15、00014保留保留0x00000018IRQ中斷禁止F0x0000001CFIQ快速中斷禁止禁止注:表中的I和F表示不對該位有影響,保留原來的值。優(yōu)先級由高到低優(yōu)先級異常1復位2數(shù)據(jù)中止'3 'FIQ4IRQ5預取指中止6未定義指令中止6軟件中斷異常I_ J I I 4 *'、八 r 4 J復位異常當nRESET信號被拉低時,ARM處理器放棄正在執(zhí)行的指令,等到nRESET信號再次變高時,處理器執(zhí)行一下操作:強制M4:0變?yōu)閎10011,系統(tǒng)進入管理模式;將CPSR中的標志位I和F置位,IRQ與FIQ中斷被禁止;將CPSR中的標志位T清零,處理器處于 ARM狀態(tài);強制P

16、C從地址0x00開始對下一條指令進行取指;返回到ARM狀態(tài)并恢復執(zhí)行。ARM存儲結(jié)構(gòu)ARM結(jié)構(gòu)使用單個平面的 232個8位字節(jié)地址空間。地址空間可以看作是包含230個32位字,或231個16位半字。如果地址向上或向下溢出地址空間,通常會發(fā)生翻轉(zhuǎn)。地址空間的規(guī)則要求字地址A :位于地址A的字包含的字節(jié)位于地址A,A+1,A+2和A+3 ;位于地址A的半字包含的字節(jié)位于地址A和A+1 ;位于地址A+2的半字包含的字節(jié)位于地址A+2和A+3 ;位于地址A的字包含的半字位于地址A和A+2 ;存儲器系統(tǒng)有兩種映射機制:小端存儲器系統(tǒng):在小端格式中,數(shù)據(jù)的高字節(jié)存放在高地址中。大端存儲器系統(tǒng):在大端格式中

17、,數(shù)據(jù)的高字節(jié)存放在低地址中。ARM處理器尋址方式是根據(jù)指令中給出的地址碼字段來實現(xiàn)尋找真實操作數(shù)地址的方式。具有8種基本尋址方式。1寄存器尋址;2立即尋址;3寄存器移位尋址;4寄存器間接尋址;5.基址尋址;6.多寄存器尋址;7.堆棧尋址;8.相對尋址。操作數(shù)的值在寄存器中,指令中的地址碼字段指出的是寄存器編號,指令執(zhí)行時直接取出寄存器值來操作。寄存器尋址指令舉例如下:MOV R1,R2;將R2的值存入 R1SUB R0,R1,R2;將R1的值減去R2的值,結(jié)果保存到 R0立即尋址 指令中的操作碼字段后面的地址碼部分即是操作數(shù)本身,也就是說,數(shù)據(jù)就包含在指令當中,取出指令也就取出了可以立即使用

18、的操作數(shù)(這樣的數(shù)稱為立即數(shù))。立即尋址指令舉例如下:SUBS R0,R0,#1;R0減1,結(jié)果放入 R0,并且影響標志位MOV R0,#0xFF000;將立即數(shù)OxFFOOO裝入R0寄存器寄存器移位尋址是ARM指令集特有的尋址方式。當?shù)?個操作數(shù)是寄存器移位方式時,第2個寄存器操作數(shù)在與第1個操作數(shù)結(jié)合之前,選擇進行移位操作。寄存器移位尋址指令舉例如下:MOV R0,R2,LSL #3;R2的值左移 3位,結(jié)果放入 R0,;即是R0=R2 X 8ANDS R1,R1,R2,LSL R3 ;R2的值左移R3位,然后和R1相與”操作,結(jié)果放入 R1寄存器間接尋址 指令中的地址碼給出的是一個通用寄

19、存器的編號,所需的操作數(shù)保存在寄存器指定地址的存儲單元中,即寄存器為操作數(shù)的地址指針。寄存器間接尋址指令舉例如下:LDR R1,R2;將R2指向的存儲單元的數(shù)據(jù)讀出;保存在R1中SWP R1,R1,R2;將寄存器 R1的值和R2指定的存儲單元的內(nèi)容交換基址尋址就是將基址寄存器的內(nèi)容與指令中給出的偏移量相加,形成操作數(shù)的有效地址。 基址尋址用于訪問基址附近的存儲單元,常用于查表、數(shù)組操作、功能部件寄存器訪問等。 基址尋址指令舉例如下:LDR R2,R3,#0x0C;讀取R3+0x0C地址上的存儲單元的內(nèi)容,放入R2STR R1,R0,#-4!;先R0=R0-4,然后把R1的值寄存到保存到 R0指

20、定的存儲單元多寄存器尋址 一次可傳送幾個寄存器值,允許一條指令傳送16個寄存器的任何子集或所有寄存器。多寄存器尋址指令舉例如下:LDMIA R1!,R2-R7,R12;將R1指向的單元中的數(shù)據(jù)讀出到 R2R7、R12中(R1自動加1) STMIA R0!,R2-R7,R12 ;將寄存器 R2R7、R12的值保存到 R0指向的存儲;單元中(R0 自動加1)堆棧是一個按特定順序進行存取的存儲區(qū),操作順序為“后進先出”。堆棧尋址是隱含的,它使用一個專門的寄存器(堆棧指針)指向一塊存儲區(qū)域(堆棧),指針所指向的存儲單元即是 堆棧的棧頂。存儲器堆??煞譃閮煞N:向上生長:向高地址方向生長,稱為遞增堆棧向下

21、生長:向低地址方向生長,稱為遞減堆棧堆棧指針指向最后壓入的堆棧的有效數(shù)據(jù)項,稱為滿堆棧;堆棧指針指向下一個待壓入數(shù)據(jù)的空位置,稱為空堆棧。所以可以組合出四種類型的堆棧方式:滿遞增:等;空遞增: 等;滿遞減: 等;堆棧向上增長,堆棧向上增長,堆棧向下增長,堆棧指針指向內(nèi)含有效數(shù)據(jù)項的最高地址。堆棧指針指向堆棧上的第一個空位置。指令如堆棧指針指向內(nèi)含有效數(shù)據(jù)項的最低地址。空遞減:堆棧向下增長,堆棧指針向堆棧下的第一個空位置。指令如指令如 LDMFA、STMFALDMEA、STMEA指令女口 LDMFD、STMFDLDMED、STMED 等。3、ARM指令格式:vopcode> vcond&g

22、t; S vRd> ,<Rn>,voperand2>其中,opcode:指令助記符;cond:執(zhí)行條件;S:是否影響CPSR寄存器的值;Rd :目標寄存器;Rn:第1個操作數(shù)的寄存器;operand2 :第2個操作數(shù);靈活的使用第2個操作數(shù)"operand2”能夠提高代碼效率。它有如下的形式:#immed_8r常數(shù)表達式;Rm寄存器方式;Rm,shift寄存器移位方式;4、ARM指令種類:(1)存儲器訪問指令(2)數(shù)據(jù)處理指令(3)乘法指令(4) ARM分支指令(5)協(xié)處理 器指令(6)雜項指令(7 )偽指令。5、雜項指令:在ARM指令集中雜項指令共有 3條,

23、它們非常重要,特別是與操作系統(tǒng)的使用息息相關(guān):1. 軟件中斷產(chǎn)生指令:SWI2. 程序狀態(tài)寄存器讀指令:MRS3. 程序狀態(tài)寄存器寫指令:MSR6、軟中斷:SWI指令用于產(chǎn)生軟中斷,主要用于用戶程序調(diào)用操作系統(tǒng)的系統(tǒng)服務。執(zhí)行該指令后,處理器將完成以下動作:(1)切換到管理模式(2)將CPSR備份到管理模式下的 SPSR寄 存器(3.)程序跳轉(zhuǎn)到軟件中斷入口。7、軟中斷作用:(1) 使用操作系統(tǒng)后,為了防止出錯的任務影響其它任務的執(zhí)行,通常將任務放在用戶模 式執(zhí)行,以限制其權(quán)限;(2) 對于一些重要的操作,如中斷的開關(guān),必須由操作系統(tǒng)完成。使用軟件中斷指令即可 完成系統(tǒng)功能調(diào)用;8、軟中斷參數(shù)的傳遞:SWI指令傳遞參數(shù)有以下兩種方法,(1)指令中的24位立即數(shù)指定了用戶請求的服務類型,參數(shù)通過通用寄存器傳遞。MOV R0,#34;設(shè)置子功能號為 34SWI 12;調(diào)用12號軟中斷(2) 指令中的24位立即數(shù)被忽略,用戶請求的服務類型由寄存器R0的值決定,參數(shù)通過其它的通用寄存器傳遞。MOVR0,#12;調(diào)用12號軟中斷MOVR1,#34;設(shè)置子功能號為34SWI09、軟中斷的處理:在SWI異常中斷處理程序中,取出SWI指令中立即數(shù)的步驟為:(1) 首先確定引

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論