嵌入式期末重點(diǎn)考試寶典_第1頁
嵌入式期末重點(diǎn)考試寶典_第2頁
嵌入式期末重點(diǎn)考試寶典_第3頁
嵌入式期末重點(diǎn)考試寶典_第4頁
嵌入式期末重點(diǎn)考試寶典_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上第1章:嵌入式系統(tǒng)定義:以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟、硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗等有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)嵌特點(diǎn):實(shí)時(shí)性 、可移植、內(nèi)核小型化、可裁剪。第2章:ARM920T核也稱為ARM920T處理器、cpu、內(nèi)核,或直接稱為ARM920T其中ARM9TDMI處理器核使用了五級(jí)流水線,五級(jí)流水線由取指、譯碼、執(zhí)行、存儲(chǔ)(數(shù)據(jù)緩沖)和回寫組成;ARM920T微處理器兩種指令集,32位ARM和16位Thumb指令集。ARM處理器兩種(工作)狀態(tài):ARM狀態(tài),32位,這種狀態(tài)下執(zhí)行的是字方式的ARM指令;Thumb狀態(tài):16位,這種

2、狀態(tài)下執(zhí)行半字方式的ARM指令切換方法進(jìn)入Thumb狀態(tài):1.當(dāng)操作數(shù)寄存器Rm的狀態(tài)位bit0為1時(shí),執(zhí)行BX Rm指令進(jìn) 入 Thumb狀態(tài)(指令詳細(xì)介紹見后面)。2.所有的異常都是ARM狀態(tài)下進(jìn)行,如果處理器在Thumb狀態(tài)進(jìn)入異常,則當(dāng)異常處理(IRQ,F(xiàn)IQ,Undef,Abort和SWI)返回時(shí),自動(dòng)切換到Thumb狀態(tài)進(jìn)入ARM狀態(tài):當(dāng)操作數(shù)寄存器Rm的狀態(tài)位bit0為0時(shí),執(zhí)行BX Rm指令進(jìn)入ARM狀態(tài)。如果處理器進(jìn)行異常處理(IRQ,F(xiàn)IQ,Undef,Abort和SWI),在此情況下,把PC放入異常模式鏈接寄存器LR中,從異常向量地址開始執(zhí)行也可以進(jìn)入ARM狀態(tài)程序:AR

3、M處理器共支持所列的7種處理器模式見下表:ARM處理器可以將存儲(chǔ)器中的字以下列格式存儲(chǔ):(自己去理解加運(yùn)用)大端格式(Big-endian)小端格式(Little-endian)“小端”格式:較高的有效字節(jié)存放在較高的存儲(chǔ)器地址,較低的有效字節(jié)存放在較低的存儲(chǔ)器地址?!按蠖恕备袷剑狠^高的有效字節(jié)存放在較低的存儲(chǔ)器地址,較低的有效字節(jié)存放在較高的存儲(chǔ)器地址ARM處理器能方便的配置為其中任何一種存儲(chǔ)器方式,但它們的缺省設(shè)置為小端格式。我們一般采用“小端”格式,即較高的有效字節(jié)存放在較高存儲(chǔ)器地址寄存器:37個(gè)寄存器 = 31個(gè)通用寄存器(32位)+6個(gè)狀態(tài)寄存器(32位);寄存器R13通常用做:堆

4、棧指針SP;當(dāng)退出異常處理程序時(shí),將保存在R13所指的堆棧中的寄存器值彈出,這樣就使異常處理程序不會(huì)破壞被其中斷程序的運(yùn)行現(xiàn)場(chǎng)寄存器R14用作:子程序鏈接寄存器,也稱為L(zhǎng)R,當(dāng)一條分支并且連接指令(BL)被執(zhí)行時(shí),寄存器收到的一個(gè)拷貝;R14還用于:異常處理的返回寄存器R15被用作:程序計(jì)數(shù)器,也稱為PC。Arm狀態(tài)下:r15的bit【1:0】=00,bit【31:2】=PC(程序計(jì)數(shù)值);thumb狀態(tài)下:r15的bit【0】=0,bit【31:1】=PC(程序計(jì)數(shù)值)程序狀態(tài)寄存器的作用:保存最近執(zhí)行過的ALU操作的信息;控制允許或禁止中斷;設(shè)置處理器操作模式異常的而進(jìn)入和返回(理解):

5、R14_<exception_mode>=return link SPSR_<exception_mode>=CPSR CPSR4:0=exception mode number CPSR5=0 /*當(dāng)運(yùn)行于ARM狀態(tài)時(shí)*/ CPSR6=1 /*禁止新的IRQ中斷*/if <exception-mode>=Reset or FIQ then CPSR7=1 /*當(dāng)Reset 或FIQ異常中斷時(shí),禁止新 的FIQ中斷* PC=exception vector address 異常向量的地址要記住第三、四章:4.3-4.11程序原題(弄懂)例題4.3AREA a

6、ddsubrout, CODE, READONLY ; 命名代碼段 ENTRY ; 標(biāo)記執(zhí)行的第一條指令 start MOV r0, #101 ;建立參數(shù) MOV r1, #121 mov r2,#43 mov r3,#55 bl addfun ;調(diào)用子程序stop MOV r0, #0x18 ; angel_SWIreason_ReportException LDR r1, =0x20026 ; ADP_Stopped_ApplicationExit SWI 0x ; 通過軟件中斷指令返回addfun add r0,r0,r1 子程序代碼段 add r0,r0,r2 add r0,r0,r3

7、 mov pc,lr 從子程序返回 END ; 標(biāo)記文件結(jié)束例題4.5AREA LDRlabel, CODE, READONLY ENTRY ; 標(biāo)記第一條執(zhí)行的指令start BL func1 ; 分支到第1個(gè)子程序 BL func2 ; 分支到第2個(gè)子程序stop MOV r0, #0x18 ; 設(shè)置常數(shù) LDR r1, =0x20026 ; 設(shè)置常數(shù) SWI 0x ; 軟件中斷func1 LDR r0, =53 ; 產(chǎn)生指令mov R0,#53 LDR r1, =0x ;產(chǎn)生指令LDR R1,【pc,#offset to literal Pool 1】 LDR r2, =0xffffff

8、00 ; 產(chǎn)生指令MVN R2,#0xff MOV pc,lr ; Return LTORG ;文字池1含有文字0x func2 LDR r3, =0x; 產(chǎn)生指令LDR R3,【pc,#offset to literal Pool 1】 LDR r4, =0x ; 如果這條偽指令不被注釋,會(huì)發(fā)生錯(cuò)誤,原因是文字池2出了范圍 MOV pc, lr ; Return ; LTORGDarea SPACE 8500 ;從當(dāng)前地址開始清零 ; END 文字池2為空 4.6AREA adrlabel, CODE, READONLY ENTRY ; 標(biāo)記第一條執(zhí)行的指令Start BL func ; 分

9、支到子程序 align 16stop MOV r0, #0x18 ; 設(shè)置常數(shù) LDR r1, =0x20026 ; ADP_Stopped_ApplicationExit SWI 0x ; 軟件中斷 LTORG ; 建立文字池func ADR r0, Start ; 產(chǎn)生 SUB r0, PC, #offset to Start 4.7 ADR r1, DataArea ; 產(chǎn)生ADD r1, PC, #offset to DataArea ; ADR r2, DataArea+4300 ; 失效,偏移量超出范圍,不能在ADD指令中由operand2表示 ADRL r2, DataArea+

10、4300 ;產(chǎn)生ADD r2, PC, #offset1ADD r2, r2, #offset2 MOV pc, lr ;返回DataArea % 8000 ; 從當(dāng)前位置開始,對(duì)存儲(chǔ)器8000字節(jié)區(qū)域清零 END4.7(重點(diǎn))AREA Jump, CODE, READONLY ; 命名代碼模塊 CODE32 ; num EQU 2 ; 跳轉(zhuǎn)表中的項(xiàng)數(shù) ENTRY ; 標(biāo)記第一條執(zhí)行的指令start MOV r0, #01 ; 設(shè)置3個(gè)參數(shù) MOV r1, #32 MOV r2, #24 BL arithfunc ; 調(diào)用函數(shù)stop MOV r0, #0x18 ; angel_SWIreas

11、on_ReportException LDR r1, =0x20026 ; ADP_Stopped_ApplicationExit SWI 0x ; ARM semihosting SWIarithfunc ; 函數(shù)標(biāo)號(hào) CMP r0, #num ; 比較,看做無符號(hào)整數(shù) BHS DoAdd ;如果r0高于或等于2,那么轉(zhuǎn)操作2 ADR r3, JumpTable ; 裝入跳轉(zhuǎn)表地址 LDR pc, r3,r0,LSL#2 ; 跳轉(zhuǎn)到適當(dāng)?shù)某绦騄umpTable DCD DoAdd DCD DoSubDoAdd ADD r0, r1, r2 ; 高于1,操作0 MOV pc, lr ; 返回D

12、oSub SUB r0, r1, r2 ; 操作1 MOV pc,lr ; 返回 END ; 標(biāo)記文件結(jié)束例題4.5AREA LDRlabel, CODE, READONLY ENTRY ; 標(biāo)記第一條執(zhí)行的指令start BL func1 ; 分支到第1個(gè)子程序 BL func2 ; 分支到第2個(gè)子程序stop MOV r0, #0x18 ; 設(shè)置常數(shù) LDR r1, =0x20026 ; 設(shè)置常數(shù) SWI 0x ; 軟件中斷func1 LDR r0, =53 ; 產(chǎn)生指令mov R0,#53 LDR r1, =0x ;產(chǎn)生指令LDR R1,【pc,#offset to literal Po

13、ol 1】 LDR r2, =0xffffff00 ; 產(chǎn)生指令MVN R2,#0xff MOV pc,lr ; Return LTORG ;文字池1含有文字0x func2 LDR r3, =0x; 產(chǎn)生指令LDR R3,【pc,#offset to literal Pool 1】 LDR r4, =0x ; 如果這條偽指令不被注釋,會(huì)發(fā)生錯(cuò)誤,原因是文字池2出了范圍 MOV pc, lr ; Return ; LTORGDarea SPACE 8500 ;從當(dāng)前地址開始清零 ; END 文字池2為空 4.8AREA LDRlabel, CODE, READONLY ENTRY ; 標(biāo)記第一

14、條執(zhí)行的指令run1 BL sub1 ; 分支到第1個(gè)子程序 BL sub2 ; 分支到第2個(gè)子程序stop MOV r0, #0x18 ; 設(shè)置常數(shù) LDR r1, =0x20026 ; 設(shè)置常數(shù) SWI 0x ; 軟件中斷sub1 LDR r0, =run1 ; 產(chǎn)生 LDR R0,PC, #offset to Litpool 1指令 LDR r1, =Darea +12 ; 產(chǎn)生 LDR R1,PC, #offset to Litpool 1指令 LDR r2, =Darea + 6000 ; 產(chǎn)生 LDR R2, PC, #offset to Litpool 1指令 MOV pc,lr

15、 ; 返回 LTORG ; (分配4個(gè)字?)sub2 LDR r3, =Darea +6000 ; 產(chǎn)生 LDR r3, PC, #offset to Litpool 1指令 ; (與前面的文字池共享) LDR r4, =Darea +6008 ; 文字池2出了范圍,如果不做注釋,將產(chǎn)生錯(cuò)誤 MOV pc, lr ; 返回 LTORG ; (分配2個(gè)字?)Darea SPACE 8500 ; 從當(dāng)前位置開始,對(duì)存儲(chǔ)器8500字節(jié)區(qū)域清零 END ; 文字池2超出了上述LDR指令的范圍例4-9 :字符串拷貝(P141) AREA StrCopy, CODE, READONLY ENTRY ; 標(biāo)

16、記第一條執(zhí)行的指令、程序的入口start LDR r1, =srcstr ; 第1個(gè)串指針 LDR r0, =dststr ; 第2個(gè)串指針 BL strcopy ; 調(diào)用子程序拷貝stop MOV r0, #0x18 ; 設(shè)置常數(shù) LDR r1, =0x20026 ; 設(shè)置常數(shù) SWI 0x ; 軟件中斷 strcopy LDRB r2, r1,#1 ;裝入字節(jié)并且更新地址 STRB r2, r0,#1 ; 存儲(chǔ)字節(jié)并且更新地址 CMP r2, #0 ; 檢測(cè)為0則終止 BNE strcopy ; 如不為零則繼續(xù) MOV pc,lr ; 返回 AREA Strings, DATA, READ

17、WRITEsrcstr DCB "First string - source",0dststr DCB "Second string - destination",0 END例4-10:數(shù)據(jù)塊的復(fù)制AREA Word, CODE, READONLY ; 代碼塊名字num EQU 20 ;被拷貝的字?jǐn)?shù) ENTRY ; 標(biāo)記調(diào)用的第一條指令start LDR r0, =src ; r0 = 源快指針 LDR r1, =dst ; r1 = 目地塊指針 MOV r2, #num ; r2 =拷貝字?jǐn)?shù)wordcopy LDR r3, r0, #4 ; 從源塊裝入

18、1個(gè)字 STR r3, r1, #4 ;保存子到目的塊 SUBS r2, r2, #1 ; 計(jì)數(shù)器減1 BNE wordcopy ; r2部位0,繼續(xù)拷貝stop MOV r0, #0x18設(shè)置常數(shù) LDR r1, =0x20026設(shè)置常數(shù) SWI 0x軟件中斷 AREA BlockData, DATA, READWRITEsrc DCD 1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4dst DCD 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 END例4-11:數(shù)據(jù)塊的復(fù)制用LDM和STM指令作塊拷貝AREA Block, C

19、ODE, READONLY ; 代碼塊名字num EQU 20 ; 拷貝的字?jǐn)?shù) ENTRY ; 標(biāo)記調(diào)用的第一條指令start LDR r0, =src ; r0 = 源快指針 LDR r1, =dst ; r1 =目地塊指針 MOV r2, #num ; r2 =拷貝字?jǐn)?shù) MOV sp, #0x400 ; 設(shè)置堆棧指針blockcopy MOVS r3,r2, LSR #3 ; 求8個(gè)字的倍數(shù) BEQ copywords ; 少于8個(gè)字傳送 STMFD sp!, r4-r11 ; 保存部分工作寄存器octcopy LDMIA r0!, r4-r11 ; 從源裝入8個(gè)字 STMIA r1!,

20、r4-r11 ; 存到目的塊 SUBS r3, r3, #1 ; 計(jì)數(shù)器減1(拷貝8個(gè)字) BNE octcopy ; r3不為0,繼續(xù)拷貝 LDMFD sp!, r4-r11 ; 恢復(fù)原來的值copywords ANDS r2, r2, #7 ; 零碎的字(少于8)拷貝 BEQ stop ; 沒有字需要拷貝wordcopy LDR r3, r0, #4 ; 從源裝入字 STR r3, r1, #4 ; 存到目的塊 SUBS r2, r2, #1 ; 計(jì)數(shù)器減1 BNE wordcopy ; r2不為0,繼續(xù)拷貝stop MOV r0, #0x18 ; 設(shè)置常數(shù) LDR r1, =0x2002

21、6 ; 設(shè)置常數(shù) SWI 0x ; 軟件中斷 AREA BlockData, DATA, READWRITEsrc DCD 1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4dst DCD 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 END 第五章一S3C2410A存儲(chǔ)器可以分8個(gè)banks。每個(gè)banks容量為128MB,各個(gè)banks用nGCS0nGCS7信號(hào)作為選體信號(hào):全部可尋址空間為1GB二、簡(jiǎn)述OM【1:0】輸入信號(hào)不同組合時(shí)的含義:表示在Reset期間,連接到S3C2410A的操作模式輸入引腳OM1:0邏輯電平的4種方式:00:使用Nand Flash ; 01:bank0數(shù)據(jù)總線16位;10:bank0數(shù)據(jù)總線32位;11:測(cè)試模式三、SDRAM

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論