




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上第1章:嵌入式系統(tǒng)定義:以應(yīng)用為中心、以計算機技術(shù)為基礎(chǔ),軟、硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗等有嚴格要求的專用計算機系統(tǒng)嵌特點:實時性 、可移植、內(nèi)核小型化、可裁剪。第2章:ARM920T核也稱為ARM920T處理器、cpu、內(nèi)核,或直接稱為ARM920T其中ARM9TDMI處理器核使用了五級流水線,五級流水線由取指、譯碼、執(zhí)行、存儲(數(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指令切換方法進入Thumb狀態(tài):1.當操作數(shù)寄存器Rm的狀態(tài)位bit0為1時,執(zhí)行BX Rm指令進 入 Thumb狀態(tài)(指令詳細介紹見后面)。2.所有的異常都是ARM狀態(tài)下進行,如果處理器在Thumb狀態(tài)進入異常,則當異常處理(IRQ,F(xiàn)IQ,Undef,Abort和SWI)返回時,自動切換到Thumb狀態(tài)進入ARM狀態(tài):當操作數(shù)寄存器Rm的狀態(tài)位bit0為0時,執(zhí)行BX Rm指令進入ARM狀態(tài)。如果處理器進行異常處理(IRQ,F(xiàn)IQ,Undef,Abort和SWI),在此情況下,把PC放入異常模式鏈接寄存器LR中,從異常向量地址開始執(zhí)行也可以進入ARM狀態(tài)程序:AR
3、M處理器共支持所列的7種處理器模式見下表:ARM處理器可以將存儲器中的字以下列格式存儲:(自己去理解加運用)大端格式(Big-endian)小端格式(Little-endian)“小端”格式:較高的有效字節(jié)存放在較高的存儲器地址,較低的有效字節(jié)存放在較低的存儲器地址。“大端”格式:較高的有效字節(jié)存放在較低的存儲器地址,較低的有效字節(jié)存放在較高的存儲器地址ARM處理器能方便的配置為其中任何一種存儲器方式,但它們的缺省設(shè)置為小端格式。我們一般采用“小端”格式,即較高的有效字節(jié)存放在較高存儲器地址寄存器:37個寄存器 = 31個通用寄存器(32位)+6個狀態(tài)寄存器(32位);寄存器R13通常用做:堆
4、棧指針SP;當退出異常處理程序時,將保存在R13所指的堆棧中的寄存器值彈出,這樣就使異常處理程序不會破壞被其中斷程序的運行現(xiàn)場寄存器R14用作:子程序鏈接寄存器,也稱為LR,當一條分支并且連接指令(BL)被執(zhí)行時,寄存器收到的一個拷貝;R14還用于:異常處理的返回寄存器R15被用作:程序計數(shù)器,也稱為PC。Arm狀態(tài)下:r15的bit【1:0】=00,bit【31:2】=PC(程序計數(shù)值);thumb狀態(tài)下:r15的bit【0】=0,bit【31:1】=PC(程序計數(shù)值)程序狀態(tài)寄存器的作用:保存最近執(zhí)行過的ALU操作的信息;控制允許或禁止中斷;設(shè)置處理器操作模式異常的而進入和返回(理解):
5、R14_<exception_mode>=return link SPSR_<exception_mode>=CPSR CPSR4:0=exception mode number CPSR5=0 /*當運行于ARM狀態(tài)時*/ CPSR6=1 /*禁止新的IRQ中斷*/if <exception-mode>=Reset or FIQ then CPSR7=1 /*當Reset 或FIQ異常中斷時,禁止新 的FIQ中斷* PC=exception vector address 異常向量的地址要記住第三、四章:4.3-4.11程序原題(弄懂)例題4.3AREA a
6、ddsubrout, CODE, READONLY ; 命名代碼段 ENTRY ; 標記執(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 ; 標記文件結(jié)束例題4.5AREA LDRlabel, CODE, READONLY ENTRY ; 標記第一條執(zhí)行的指令start BL func1 ; 分支到第1個子程序 BL func2 ; 分支到第2個子程序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 ; 如果這條偽指令不被注釋,會發(fā)生錯誤,原因是文字池2出了范圍 MOV pc, lr ; Return ; LTORGDarea SPACE 8500 ;從當前地址開始清零 ; END 文字池2為空 4.6AREA adrlabel, CODE, READONLY ENTRY ; 標記第一條執(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 ; 從當前位置開始,對存儲器8000字節(jié)區(qū)域清零 END4.7(重點)AREA Jump, CODE, READONLY ; 命名代碼模塊 CODE32 ; num EQU 2 ; 跳轉(zhuǎn)表中的項數(shù) ENTRY ; 標記第一條執(zhí)行的指令start MOV r0, #01 ; 設(shè)置3個參數(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ù)標號 CMP r0, #num ; 比較,看做無符號整數(shù) BHS DoAdd ;如果r0高于或等于2,那么轉(zhuǎn)操作2 ADR r3, JumpTable ; 裝入跳轉(zhuǎn)表地址 LDR pc, r3,r0,LSL#2 ; 跳轉(zhuǎn)到適當?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 ; 標記文件結(jié)束例題4.5AREA LDRlabel, CODE, READONLY ENTRY ; 標記第一條執(zhí)行的指令start BL func1 ; 分支到第1個子程序 BL func2 ; 分支到第2個子程序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 ; 如果這條偽指令不被注釋,會發(fā)生錯誤,原因是文字池2出了范圍 MOV pc, lr ; Return ; LTORGDarea SPACE 8500 ;從當前地址開始清零 ; END 文字池2為空 4.8AREA LDRlabel, CODE, READONLY ENTRY ; 標記第一
14、條執(zhí)行的指令run1 BL sub1 ; 分支到第1個子程序 BL sub2 ; 分支到第2個子程序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個字?)sub2 LDR r3, =Darea +6000 ; 產(chǎn)生 LDR r3, PC, #offset to Litpool 1指令 ; (與前面的文字池共享) LDR r4, =Darea +6008 ; 文字池2出了范圍,如果不做注釋,將產(chǎn)生錯誤 MOV pc, lr ; 返回 LTORG ; (分配2個字?)Darea SPACE 8500 ; 從當前位置開始,對存儲器8500字節(jié)區(qū)域清零 END ; 文字池2超出了上述LDR指令的范圍例4-9 :字符串拷貝(P141) AREA StrCopy, CODE, READONLY ENTRY ; 標
16、記第一條執(zhí)行的指令、程序的入口start LDR r1, =srcstr ; 第1個串指針 LDR r0, =dststr ; 第2個串指針 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 ; 存儲字節(jié)并且更新地址 CMP r2, #0 ; 檢測為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 ;被拷貝的字數(shù) ENTRY ; 標記調(diào)用的第一條指令start LDR r0, =src ; r0 = 源快指針 LDR r1, =dst ; r1 = 目地塊指針 MOV r2, #num ; r2 =拷貝字數(shù)wordcopy LDR r3, r0, #4 ; 從源塊裝入
18、1個字 STR r3, r1, #4 ;保存子到目的塊 SUBS r2, r2, #1 ; 計數(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 ; 拷貝的字數(shù) ENTRY ; 標記調(diào)用的第一條指令start LDR r0, =src ; r0 = 源快指針 LDR r1, =dst ; r1 =目地塊指針 MOV r2, #num ; r2 =拷貝字數(shù) MOV sp, #0x400 ; 設(shè)置堆棧指針blockcopy MOVS r3,r2, LSR #3 ; 求8個字的倍數(shù) BEQ copywords ; 少于8個字傳送 STMFD sp!, r4-r11 ; 保存部分工作寄存器octcopy LDMIA r0!, r4-r11 ; 從源裝入8個字 STMIA r1!,
20、r4-r11 ; 存到目的塊 SUBS r3, r3, #1 ; 計數(shù)器減1(拷貝8個字) 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 ; 計數(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存儲器可以分8個banks。每個banks容量為128MB,各個banks用nGCS0nGCS7信號作為選體信號:全部可尋址空間為1GB二、簡述OM【1:0】輸入信號不同組合時的含義:表示在Reset期間,連接到S3C2410A的操作模式輸入引腳OM1:0邏輯電平的4種方式:00:使用Nand Flash ; 01:bank0數(shù)據(jù)總線16位;10:bank0數(shù)據(jù)總線32位;11:測試模式三、SDRAM
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 在線教育平臺用戶增長與留存策略內(nèi)容營銷報告
- 農(nóng)田水利設(shè)施改造與農(nóng)業(yè)保險融合發(fā)展研究報告
- 保安證的考試試題及答案
- 航空航天行業(yè)2025年高精度加工技術(shù)市場潛力與機遇報告001
- 安全專工招聘試題及答案
- 安全技能比賽試題及答案
- 安全工作規(guī)定試題及答案
- 基于核心素養(yǎng)培訓(xùn)課件
- 2025年商業(yè)地產(chǎn)項目數(shù)字化運營與客戶滿意度提升的個性化服務(wù)模式創(chuàng)新實施案例分析報告
- 御膳培訓(xùn)標準課件圖片
- 高中教科研課題:《新課程背景下高中語文情境教學(xué)改革研究》課題工作匯報
- 金融公司干股協(xié)議書
- 2025益陽事業(yè)單位筆試真題
- 2025年寧波市奉化區(qū)紅果文體產(chǎn)業(yè)運營管理有限公司招聘筆試參考題庫含答案解析
- 委托加工稻米協(xié)議書
- 國際壓力性損傷潰瘍預(yù)防和治療臨床指南(2025年版)解讀
- 行政管理過程中道德與法律的關(guān)系試題及答案
- 2025年初中地理學(xué)業(yè)水平考試(八年級)模擬卷【內(nèi)蒙古專用】(含解析)
- 2025年江蘇南京河西新城區(qū)國有資產(chǎn)經(jīng)營控股集團招聘筆試參考題庫含答案解析
- 《足外傷的護理》課件
- 大一信息技術(shù)考試試題及答案
評論
0/150
提交評論