版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、嵌入式ARM微處理器概述和編程 模型 第二章 基于ARM9處理器的硬件開發(fā)平臺 n2.1 ARM微處理器概述 n2.2 ARM微處理器的編程模型 n2.3 ARM微處理器的指令系統(tǒng) n2.4 ARM程序設計基礎 n2.5 S3C2410體系結構與外設 n2.6 ADS調試軟件 嵌入式ARM微處理器概述和編程 模型 2.1 ARM微處理器概述 n2.1.1 ARM簡介 n2.1.2 ARM微處理器的應用領域 n2.1.3 ARM微處理器的特點 n2.1.4 ARM微處理器系列 n2.1.5 ARM微處理器的結構 n2.1.6 ARM微處理器的應用選型 嵌入式ARM微處理器概述和編程 模型 ARM
2、(Advanced RISC Machines),既可以認為 是一個公司的名字,也可以認為是對一類微處理器的 通稱,還可以認為是一種技術的名字。 1991年ARM公司成立于英國劍橋,主要出售芯片 設計技術的授權。基于ARM技術的微處理器應用約占 據了32位RISC微處理器75以上的市場份額,ARM技 術正在逐步滲入到我們生活的各個方面。 2.1.1 ARMAdvanced RISC Machines 嵌入式ARM微處理器概述和編程 模型 世界各大半導體生產商從ARM公司購買其設計的 ARM微處理器核,根據各自不同的應用領域,加入適 當的外圍電路,從而形成自己的ARM微處理器芯片進 入市場。 2
3、.1.1 ARMAdvanced RISC Machines 嵌入式ARM微處理器概述和編程 模型 2.1.2 ARM 微處理器的應用領域 n工業(yè)控制 n無線通訊 n網絡應用 n消費類電子產品 n成像和安全產品 嵌入式ARM微處理器概述和編程 模型 2.1.3 ARM 微處理器的特點 n體積小、低功耗、低成本、高性能 n支持Thumb/ARM雙指令集 n大量使用寄存器,指令執(zhí)行速度快 n尋址方式靈活簡單,執(zhí)行效率高 n指令長度固定 嵌入式ARM微處理器概述和編程 模型 2.1.4 ARM微處理器系列 nARM7系列 nARM9系列 nARM9E系列 nARM10E系列 nARM11系列 nSe
4、curcore系列 nIntel的StrongARM/Xscale 嵌入式ARM微處理器概述和編程 模型 ARM7 微處理器系列 具有嵌入式ICE邏輯,調試開發(fā)方便 極低的功耗,適合便攜式產品 能夠提供的三級流水線結構 代碼密度高并兼容16位的Thumb指令集 對操作系統(tǒng)的支持廣泛,包括Windows CE、Linux、 Palm OS等 指令系統(tǒng)與ARM9、ARM9E和ARM10E兼容 主頻最高可達130MIPS 嵌入式ARM微處理器概述和編程 模型 ARM7 微處理器系列 主要應用領域 工業(yè)控制、Internet設備、網絡和調制解調器設備、移 動電話等多種多媒體和嵌入式應用 微處理器核類型
5、 ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ 嵌入式ARM微處理器概述和編程 模型 ARM7 微處理器系列 ARM7TMDI是目前使用最廣泛的32位嵌入式RISC處 理器,屬低端ARM處理器核。TDMI的基本含義為: T 支持16為壓縮指令集Thumb; D 支持片上Debug; M 內嵌硬件乘法器(Multiplier); I 嵌入式ICE,支持片上斷點和調試點 嵌入式ARM微處理器概述和編程 模型 ARM9 微處理器系列 5級整數流水線,指令執(zhí)行效率更高。 提供的哈佛結構。 支持32位ARM指令集和16位Thumb指令集。 支持32位的高速AMBA總線接口。 全性
6、能的MMU,支持Windows CE、Linux、Palm OS等多種主流嵌入式操作系統(tǒng)。 MPU支持實時操作系統(tǒng)。 支持數據Cache和指令Cache,具有更高的指令和數 據處理能力。 嵌入式ARM微處理器概述和編程 模型 ARM9 微處理器系列 主要應用領域 無線設備、儀器儀表、安全系統(tǒng)、機頂盒、高 端打印機、數碼相機和數碼攝像機等 微處理器核類型 ARM920T、ARM922T和ARM940T 嵌入式ARM微處理器概述和編程 模型 2.1.5 ARM 微處理器的結構 CISC(Complex Instruction Set Computer) 復雜指令集計算機 隨著計算機技術的發(fā)展而不斷
7、引入新的復雜的 指令集,計算機的體系結構會越來越復雜。 大約有20的指令會被反復使用,占整個程序 代碼的80,而余下的80的指令卻不經常使用, 在程序設計中只占20 。 嵌入式ARM微處理器概述和編程 模型 2.1.5 ARM 微處理器的結構 RISC(Reduced Instruction Set Computer) 精簡指令集計算機 采用固定長度的指令格式 使用單周期指令 大量使用寄存器 可用加載/存儲指令批量傳輸數據 在循環(huán)處理中使用地址的自動增減 嵌入式ARM微處理器概述和編程 模型 2.1.6 ARM 微處理器的應用選型 n ARM微處理器內核 n 系統(tǒng)的工作頻率 n 芯片內存儲器的
8、容量 n 片內外圍電路的選擇 嵌入式ARM微處理器概述和編程 模型 2.2 ARM微處理器的編程模型 n2.2.1 ARM微處理器的工作狀態(tài) n2.2.2 ARM微處理器的存儲器格式 n2.2.3 指令長度及數據類型 n2.2.4 處理器模式 n2.2.5 寄存器組織 n2.2.6 異常 嵌入式ARM微處理器概述和編程 模型 2.2 ARM微處理器的編程模型 字(Word) 在ARM體系結構中,字的長度為32位。 半字(Half-Word) 在ARM體系結構中,半字的長度為16位。 字節(jié)(Byte) 在ARM體系結構中,字節(jié)的長度為8位。 嵌入式ARM微處理器概述和編程 模型 2.2.1 AR
9、M微處理器的工作狀態(tài) ARM狀態(tài) 處理器執(zhí)行32位的字對齊的ARM指令 Thumb狀態(tài) 處理器執(zhí)行16位的、半字對齊的Thumb指令 嵌入式ARM微處理器概述和編程 模型 進入Thumb狀態(tài) q 執(zhí)行BX指令,使操作數寄存器的狀態(tài)位為1 q 當處理器處于Thumb狀態(tài)時發(fā)生異常,則異常處理返回 時,自動切換到Thumb狀態(tài)。 嵌入式ARM微處理器概述和編程 模型 進入ARM狀態(tài) q 執(zhí)行BX指令,使操作數寄存器的狀態(tài)位為0 q 在處理器進行異常處理時,把PC放入異常模式鏈接寄 存器中,并從異常向量地址開始執(zhí)行程序 嵌入式ARM微處理器概述和編程 模型 2.2.2 ARM微處理器的存儲器格式 q
10、 ARM體系結構所支持的最大尋址空間為4GB(232字節(jié)) q ARM體系結構將存儲器看作是從零地址開始的字節(jié)的線 性組合。從零字節(jié)到三字節(jié)放置第一個存儲的字數據, 從第四個字節(jié)到第七個字節(jié)放置第二個存儲的字數據, 依次排列。 q ARM體系結構可以用兩種方法存儲字數據,稱之為大端 格式和小端格式 嵌入式ARM微處理器概述和編程 模型 大端格式 字數據的高字節(jié)存儲在低地址,低字節(jié)存放在高地址 嵌入式ARM微處理器概述和編程 模型 小端格式 字數據的高字節(jié)存儲在高地址,低字節(jié)存放在低地址 嵌入式ARM微處理器概述和編程 模型 q ARM微處理器的指令長度可以是32位(在ARM狀態(tài)下), 也可以為
11、16位(在Thumb狀態(tài)下)。 q ARM微處理器中支持字節(jié)(8位)、半字(16位)、字 (32位)三種數據類型,其中,字需要4字節(jié)對齊(地 址的低兩位為0)、半字需要2字節(jié)對齊(地址的最低 位為0) 2.2.3 指令長度及數據類型 嵌入式ARM微處理器概述和編程 模型 q 用戶模式(usr):ARM處理器正常的程序執(zhí)行狀態(tài) q 快速中斷模式(fiq):用于高速數據傳輸或通道處理 q 外部中斷模式(irq):用于通用的中斷處理 q 管理模式(svc):操作系統(tǒng)使用的保護模式 q 終止模式(abt):當數據或指令預取終止時進入 q 系統(tǒng)模式(sys):運行具有特權的操作系統(tǒng)任務 q 未定義模式(
12、und):當未定義指令執(zhí)行時進入 2.2.4 處理器模式 嵌入式ARM微處理器概述和編程 模型 2.2.5 寄存器組織 ARM微處理器共有37個32位寄存器,其 中31個為通用寄存器,6個為狀態(tài)寄存器。 微處理器的狀態(tài)及模式決定具體哪些寄存 器可以編程訪問。 嵌入式ARM微處理器概述和編程模 型 嵌入式ARM微處理器概述和編程 模型 未分組寄存器R0R7 在所有的運行模式下,未分組寄存器都指向同一 個物理寄存器,在中斷或異常處理進行模式轉換時, 可能會造成寄存器中數據的破壞。 嵌入式ARM微處理器概述和編程 模型 分組寄存器R8R12 q R8R12:每個寄存器對應兩個不同的物理寄存器 當使用
13、fiq模式時,訪問寄存器R8_fiqR12_fiq; 當使用除fiq模式以外的其他模式時,訪問寄存器 R8_usrR12_usr。 嵌入式ARM微處理器概述和編程 模型 分組寄存器R13R14 q R13、R14:每個寄存器對應6個不同的物理寄存器 1個是用戶模式與系統(tǒng)模式共用 其它5個對應于其他5種模式 q 采用以下的記號來區(qū)分不同的物理寄存器: R13_ R14_ q mode為以下幾種之一:usr、fiq、irq、svc、abt、und。 嵌入式ARM微處理器概述和編程 模型 堆棧指針 R13 q R13在ARM指令中常用作堆棧指針,但這只是一種習慣用 法,用戶也可使用其他的寄存器作為堆
14、棧指針。 q 在Thumb指令集中,某些指令強制性的要求使用R13作為 堆棧指針。 q 由于處理器的每種運行模式均有自己獨立的物理寄存器 R13,在初始化部分,都要初始化每種模式下的R13,這樣, 當程序的運行進入異常模式時,可以將需要保護的寄存器 放入R13所指向的堆棧,而當程序從異常模式返回時,則 從對應的堆棧中恢復。 嵌入式ARM微處理器概述和編程 模型 子程序鏈接寄存器 R14 q 當執(zhí)行BL子程序調用指令時,R14得到R15(PC)的 備份。其他情況下,R14用作通用寄存器。 q 當異?;蛑袛喟l(fā)生時,相應的分組寄存器R14用于保 存PC的返回值。 嵌入式ARM微處理器概述和編程 模型
15、 BL SUB1 /* 將R14存入堆棧 */ SUB1: STMFD SP!, , LR /* 完成子程序返回 */ LDMFD SP!, PC 子程序鏈接寄存器 R14 嵌入式ARM微處理器概述和編程 模型 程序計數器 R15(PC) q ARM狀態(tài)下,位1:0為0,位31:2用于保存PC; q Thumb狀態(tài)下,位0為0,位31:1用于保存PC; 嵌入式ARM微處理器概述和編程 模型 程序狀態(tài)寄存器(CPSR/SPSR) R16用作CPSR(當前程序狀態(tài)寄存器),包含條件標志 位、中斷禁止位、當前處理器模式標志位。 每一種運行模式下有1個專用的SPSR(備份程序狀 態(tài)寄存器),異常發(fā)生時
16、,SPSR用于保存CPSR的值, 從異常退出時由SPSR來恢復CPSR。 嵌入式ARM微處理器概述和編程模 型 嵌入式ARM微處理器概述和編程 模型 Thumb狀態(tài)下的寄存器組織 q 直接訪問8個通用寄存器(R7R0)、程序計數器(PC) 堆棧指針(SP)、連接寄存器(LR)和CPSR。 q 每種特權模式下都有1組SP、LR和SPSR。 嵌入式ARM微處理器概述和編程模 型 嵌入式ARM微處理器概述和編程 模型 ARM與THUMB狀態(tài)寄存器關系 R0R7獨立 CPSR和SPSR獨立 SP、LR和PC相同 嵌入式ARM微處理器概述和編程 模型 程序狀態(tài)寄存器 ARM體系結構包含1個當前程序狀態(tài)寄
17、存器(CPSR) 和5個備份程序狀態(tài)寄存器(SPSR)。 保存ALU當前操作的信息 控制中斷的允許和禁止 設置處理器的運行模式 嵌入式ARM微處理器概述和編程模 型 程序狀態(tài)寄存器 嵌入式ARM微處理器概述和編程 模型 程序狀態(tài)寄存器的條件碼標志 N、Z、C、V均為條件碼標志位,可被算術或邏 輯運算改變,并可用于測試來決定某條指令是否執(zhí)行。 q 在ARM狀態(tài)下,所有指令都是有條件執(zhí)行的。 q 在Thumb狀態(tài)下,分支指令是有條件執(zhí)行的。 嵌入式ARM微處理器概述和編程模 型 影響標志位的指令 標志位含 義 N 當用兩個補碼表示的帶符號數進行運算時,N=1 表示運算的結 果為負數;N=0 表示運
18、算的結果為正數或零; ZZ=1 表示運算的結果為零;Z=0表示運算的結果為非零; C 加法運算(包括比較指令CMN):當運算結果產生了進位時 (無符號數溢出),C=1,否則C=0。 減法運算(包括比較指令CMP):當運算時產生了借位(無 符號數溢出),C=0,否則C=1。 對于包含移位操作的指令,C為移出值的最后1位。 V 對于加/減法運算指令,當操作數和運算結果為二進制的補碼 表示的帶符號數時,V=1表示符號位溢出。 對于其他的非加/減運算指令,V的值通常不改變。 Q 在ARM v5及以上版本的E系列處理器中,用Q標志位指 示增強的DSP運算指令是否發(fā)生了溢出。 嵌入式ARM微處理器概述和編
19、程 模型 程序狀態(tài)寄存器的控制位 狀態(tài)寄存器的低8位(I、F、T和M4:0)稱為控 制位,發(fā)生異常時這些位可以被改變。如果處理器運 行特權模式,這些位也可以由程序修改。 q 中斷禁止位I、F: I=1 禁止IRQ中斷; F=1 禁止FIQ中斷。 嵌入式ARM微處理器概述和編程 模型 程序狀態(tài)寄存器的控制位 q T標志位:該位反映處理器的運行狀態(tài) ARM體系結構v5及以上的版本的T系列處理器,當 該位為1時,程序運行于Thumb狀態(tài),否則運行于 ARM狀態(tài)。 ARM體系結構v5及以上的版本的非T系列處理器, 當該位為1時,執(zhí)行下一條指令以引起未定義的指 令異常;當該位為0時,表示運行于ARM狀態(tài)
20、。 q 運行模式位M4:0:模式位,決定處理器的運行模式 嵌入式ARM微處理器概述和編程模 型 處理器運行模式及可以訪問的寄存器 M4:0處理器模式ARM狀態(tài)可訪問的寄存器 10000用戶模式PC,CPSR,R0-R14 10001FIQ模式PC,CPSR, SPSR_fiq,R14_fiq-R8_fiq, R7R0 10010IRQ模式PC,CPSR, SPSR_irq,R14_irq, R13_irq, R12R0 10011管理模式PC,CPSR, SPSR_svc,R14_svc, R13_svc, R12R0, 10111終止模式PC,CPSR, SPSR_abt,R14_abt,R
21、13_abt, R12R0, 11011未定義模式PC,CPSR, SPSR_und,R14_und, R13_und, R12R0, 11111系統(tǒng)模式PC,CPSR(ARM v4及以上版本), R14R0 嵌入式ARM微處理器概述和編程 模型 當正常的程序執(zhí)行流程發(fā)生暫時的停止時,稱之 為異常。在處理異常之前,當前處理器的狀態(tài)必須保 留,以便當異常處理完成后,原來的程序可以恢復。 當多個異常同時發(fā)生時,按照固定的優(yōu)先級進行 處理。 2.2.6 異常(Exceptions) 嵌入式ARM微處理器概述和編程模 型 ARM體系結構支持的異常類型 異常類型具體含義 復位復位電平有效時,產生復位異常
22、,程序跳轉到 復位處理程序處執(zhí)行。 未定義指令遇到不能處理的指令時,產生未定義指令異常。 軟件中斷執(zhí)行SWI指令產生,用于用戶模式下的程序調 用特權操作指令。 指令預取終 止 處理器預取指令的地址不存在,或該地址不允 許當前指令訪問,產生指令預取中止異常。 數據終止處理器數據訪問指令的地址不存在,或該地址 不允許當前指令訪問時,產生數據中止異常。 IRQ外部中斷請求有效,且CPSR中的I位為0時,產 生IRQ異常。 FIQ快速中斷請求引腳有效,且CPSR中的F位為0時, 產生FIQ異常。 嵌入式ARM微處理器概述和編程 模型 進入異常處理 將下一條指令的地址保存到相應鏈接寄存器LR 將CPSR
23、復制到相應的SPSR 根據異常類型,強制設置CPSR的運行模式位 強制PC從相關的異常向量地址取下一條指令執(zhí)行 嵌入式ARM微處理器概述和編程 模型 R14_ = Return Link SPSR_ = CPSR CPSR4:0 = Exception Mode Number CPSR5 = 0 If = Reset or FIQ then CPSR6 = 1 CPSR7 = 1 PC = Exception Vector Address 異常響應偽代碼 處理器處于Thumb狀態(tài),則當異常向量地址加載 入PC時,處理器自動切換到ARM狀態(tài)。 在ARM狀態(tài)下執(zhí)行 禁止快速中斷 禁止正常中斷 轉入
24、異常入口地址 嵌入式ARM微處理器概述和編程 模型 從異常處理返回 將連接寄存器LR的值減去相應的偏移量后送到PC 將SPSR復制回CPSR 若在進入異常處理時設置了中斷禁止位,要在此清除 嵌入式ARM微處理器概述和編程 模型 FIQ(Fast Interrupt Request) FIQ異常是為了支持數據傳輸或者通道處理而設計的。 q 若將CPSR的F位置為1,則會禁止FIQ中斷,若將CPSR的 F位清零,處理器會在指令執(zhí)行時檢查FIQ的輸入。注意 只有在特權模式下才能改變F位的狀態(tài)。 q 可由外部通過對處理器上的nFIQ引腳輸入低電平產生FIQ。 不管是在ARM狀態(tài)還是在Thumb狀態(tài)下進
25、入FIQ模式, FIQ處理程序均可以執(zhí)行以下指令從FIQ模式返回: SUBS PC, R14_fiq , #4 嵌入式ARM微處理器概述和編程 模型 IRQ(Interrupt Request) IRQ異常屬于正常的中斷請求,可通過對處理器 的nIRQ引腳輸入低電平產生,IRQ的優(yōu)先級低于FIQ, 當程序執(zhí)行進入FIQ異常時,IRQ可能被屏蔽。 q 若將CPSR的I位置為1,則會禁止IRQ中斷,若將CPSR 的I位清零,處理器會在指令執(zhí)行完之前檢查IRQ的輸入。 注意只有在特權模式下才能改變I位的狀態(tài)。 q 不管是在ARM狀態(tài)還是在Thumb狀態(tài)下進入IRQ模式, IRQ處理程序均可以執(zhí)行以下指令從IRQ模式返回: SUBS PC , R14_irq , #4 嵌入式ARM微處理器概述和編程 模型 ABORT(終止) 產生終止異常意味著對存儲器的訪問失敗。ARM微 處理器在存儲器訪問周期內檢查是否發(fā)生終止異常。 q 終止異常包括兩種類型: 指令預取終止 數據終止
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024美發(fā)店與消防部門安全檢查合同
- 2025年度校園食堂廚師勞務派遣合同4篇
- 2025年度圖書代售及推廣服務合同4篇
- 2024碎石原料交易市場建設合同
- 2024裝修工程額外項目合同書一
- 2025年度智慧城市建設綜合解決方案承包合作協(xié)議4篇
- 2025年度SEO風險管理與合規(guī)性審核合同3篇
- 2025年度山林土地流轉與綜合開發(fā)承包合同4篇
- 2024正規(guī)商鋪買賣合同合同標的物權屬核實協(xié)議3篇
- 2024年教學專用高清晰度數碼集成背投行業(yè)發(fā)展趨勢報告
- 《呼吸衰竭的治療》
- 有余數的除法算式300題
- 2024年度醫(yī)患溝通課件
- 2024年中考政治總復習初中道德與法治知識點總結(重點標記版)
- 2024年手術室的應急預案
- 五年級上冊小數除法豎式計算練習300題及答案
- 【外資便利店在我國的經營策略分析案例:以日本羅森便利店為例11000字(論文)】
- 6061鋁合金退火工藝
- 教師職業(yè)素養(yǎng)與職業(yè)發(fā)展規(guī)劃
- 語言規(guī)劃講義
- Talent5五大職業(yè)性格測試技巧138答案
評論
0/150
提交評論