ARM嵌入式系統(tǒng)PPT課件_第1頁
ARM嵌入式系統(tǒng)PPT課件_第2頁
ARM嵌入式系統(tǒng)PPT課件_第3頁
ARM嵌入式系統(tǒng)PPT課件_第4頁
ARM嵌入式系統(tǒng)PPT課件_第5頁
已閱讀5頁,還剩63頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、ARM嵌入式系統(tǒng)原理及應用 主講:盛晨輝主講:盛晨輝第1頁/共68頁教學計劃教學計劃第二講第二講 基于基于LPC2000系列系列ARM的工程設計的工程設計第三講第三講 ARM程序設計程序設計第一講第一講 嵌入式系統(tǒng)概述及嵌入式系統(tǒng)概述及ARM7體系結構體系結構第五講第五講 ARM外圍硬件系統(tǒng)與接口技術外圍硬件系統(tǒng)與接口技術第四講第四講 LPC2000系列系列ARM內部硬件結構內部硬件結構第六講第六講 LPC2000系列系列ARM硬件結構及實驗硬件結構及實驗(1)第七講第七講 LPC2000系列系列ARM硬件結構及實驗硬件結構及實驗(2)第八講第八講 LPC2000系列系列ARM硬件結構及實驗硬

2、件結構及實驗(3)第2頁/共68頁第一講第一講 嵌入式系統(tǒng)概述及嵌入式系統(tǒng)概述及ARM7體系結構體系結構ARM7體系結構體系結構LPC2000系列系列ARM概述概述ARM嵌入式系統(tǒng)概述嵌入式系統(tǒng)概述參考資料及文獻:參考資料及文獻:ARM嵌入式系統(tǒng)基礎教程(第嵌入式系統(tǒng)基礎教程(第2版)版)第一第一章、第二章、第四章章、第二章、第四章第3頁/共68頁嵌入式系統(tǒng)概述 概述 即使不可見,嵌入式系統(tǒng)也是無處不在。嵌入式即使不可見,嵌入式系統(tǒng)也是無處不在。嵌入式系統(tǒng)不僅存在于生活的方方面面,而且在很多領域和系統(tǒng)不僅存在于生活的方方面面,而且在很多領域和行業(yè)得到廣泛應用,包括工業(yè)自動化、國防、運輸以行業(yè)得

3、到廣泛應用,包括工業(yè)自動化、國防、運輸以及航空航天等。及航空航天等。 嵌入式系統(tǒng)具有無數的種類,每種種類都有自嵌入式系統(tǒng)具有無數的種類,每種種類都有自己獨特的個性。己獨特的個性。第4頁/共68頁計算機分為兩大類 通用計算機:PC機、服務器、工作站 專用計算機:硬件軟件可剪裁,通常是以嵌入式操作系統(tǒng) + 用戶應用程序,明顯的可嵌入性,對體積、成本、價格、功耗非常敏感,功能具有很強的針對性,通常要求可靠性和實時性第5頁/共68頁嵌入式系統(tǒng)的定義 從技術角度定義:以應用為中心,以計算機技術為基礎,硬件軟件可剪裁,適應應用系統(tǒng)對功能、可靠性、成本、體積、功耗等嚴格要求的專用計算機系統(tǒng)。 從系統(tǒng)角度定義

4、:嵌入式系統(tǒng)是設計完成復雜功能的硬件和軟件,并使其緊密耦合在一起的計算機系統(tǒng)。術語“嵌入式”反映了它通常是更大系統(tǒng)中的完整系統(tǒng)。嵌入的系統(tǒng)中可以有多個嵌入式系統(tǒng)。第6頁/共68頁嵌入式微處理器的分類 嵌入式微處理器MPU 嵌入式微控制器MCU 嵌入式數字信號處理器DSP第7頁/共68頁ARM技術的發(fā)展 ARM (Advanced RISC Machines) 是一家坐落在英國劍橋的電子公司,1990年11月由蘋果電腦、Acorn和VLSI Technology共同組建。 ARM公司既不設計芯片,也不生產芯片,他們以高效的IP (Intellectual Property) 內核為產品。第8頁/

5、共68頁ARM技術的發(fā)展 目前,幾十家大的半導體公司都是使用ARM公司的授權,在ARM內核及其技術的基礎上添加自己的設計并推出各種芯片產品,即ARM微處理器或ARM微控制器。 ARM芯片已遍及工業(yè)控制、消費電子、通信系統(tǒng)、網絡系統(tǒng)、無線電系統(tǒng)以及生活的各個方面。已經改變了人們生活、工作和娛樂方式。 世界上大多數嵌入式系統(tǒng)32位微控制器芯片都是基于ARM內核的。 ARM已經成為嵌入式微處理器的代名詞,ARM公司成為全球性RISC標準的締造者。第9頁/共68頁第一講第一講 主要內容主要內容ARM7體系結構體系結構LPC2000系列系列ARM概述概述ARM嵌入式系統(tǒng)概述嵌入式系統(tǒng)概述第10頁/共68

6、頁ARM體系結構 ARM處理器為RISC芯片,其簡單的結構使得ARM內核非常小,功耗也很低。RISC體系結構應具有如下特點:采用固定長度的指令格式,便于譯碼;采用固定長度的指令格式,便于譯碼;使用單周期指令,便于流水線操作;使用單周期指令,便于流水線操作;使用大量寄存器,數據處理指令只對寄存器操作,不直接操使用大量寄存器,數據處理指令只對寄存器操作,不直接操作存儲器;作存儲器;簡單的尋址模式;簡單的尋址模式;在一條數據處理指令中,同時完成邏輯處理和位移處理在一條數據處理指令中,同時完成邏輯處理和位移處理兩個功能,實現兩個功能,實現ALU和移位寄存器的最大利用;和移位寄存器的最大利用;所有的指令

7、都可以根據前面的執(zhí)行結構決定是否被執(zhí)行,提高指所有的指令都可以根據前面的執(zhí)行結構決定是否被執(zhí)行,提高指令的執(zhí)行效率;令的執(zhí)行效率;在循環(huán)處理中使用地址的自動增減,提高運行效率。在循環(huán)處理中使用地址的自動增減,提高運行效率。第11頁/共68頁各ARM體系結構版本 為清楚表達各ARM體系結構使用的指令集,ARM公司定義了5種主要的ARM指令集體系版本,即V1V5 。 各版本號有著巨大的改進和完善,并仍在改進中。第12頁/共68頁ARM處理器核簡介 ARM公司開發(fā)的很多系列的處理器內核,基于各種內核的處理器都有各自的特點和應用領域。目前使用比較廣泛的系列是: ARM7 ARM9 ARM9E ARM1

8、0 SecurCore Intel的Xscale第13頁/共68頁ARM處理器核簡介ARM7 ARM7系列微處理器包括四種類型內核:ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ-S。ARM7TDMI(-S)是目前使用最廣泛的32位嵌入式RISC處理器。 T:支持16位壓縮指令集Thumb D:支持片上Debug M:內嵌硬件乘法器Multiplier I:嵌入式ICE,支持片上斷點調試 S:可綜合版本第14頁/共68頁ARM7TDMI(-S) ARM7TDMI(-S) 基于ARM 體系結構V4 版本,是目前低端的ARM 內核,具有優(yōu)異的性能,功耗很低,使用的門的數量少,

9、因而應用廣泛。 ARM7TDMI(-S) 支持32 位尋址范圍,彌補了ARM6 不能在低于5V 電壓下工作的不足。第15頁/共68頁ARM7TDMI(-S)內核框圖第16頁/共68頁ARM7TDMI(-S) ARM7TDMI(-S) 使用流水線來提高指令流的速度。ARM7TDMI(-S)的流水線分為三級:取址 譯碼 執(zhí)行。ARMThumbPCPC取指PC-4PC-2譯碼PC-8PC-4執(zhí)行周期1周期2周期3周期4周期5周期6取指 譯碼 執(zhí)行取指 譯碼 執(zhí)行取指 譯碼 執(zhí)行取指 譯碼 執(zhí)行第17頁/共68頁ARM處理器狀態(tài) 為了更好地控制代碼量,設計了2套指令系統(tǒng),分別為ARM指令集和Thumb

10、指令集,ARM指令集為32位,Thumb指令集為16位。 ARM指令集具完整功能,Thumb功能上可看做ARM指令集的子集,具有很高的代碼密度 ARM狀態(tài)(默認):執(zhí)行字方式的ARM指令。 Thumb狀態(tài):執(zhí)行半字方式的Thumb指令。第18頁/共68頁ARM處理器狀態(tài) ARM指令集和Thumb指令集不能同時有效 ARM狀態(tài)下要使用Thumb指令必須進行狀態(tài)切換,反之亦然。當前程序狀態(tài)寄存器CPSR中的控制位T反映處理器的當前狀態(tài) T=0表示ARM狀態(tài); T=1表示Thumb狀態(tài)。l 處理器狀態(tài)的切換并不影響處理器的模式和寄存器的內容第19頁/共68頁ARM處理器狀態(tài) BX指令控制程序跳轉的同

11、時進行狀態(tài)切換。 使用BX指令進行狀態(tài)切換后,流水線中的取指和譯碼指令會被清除,避免出現處理器錯誤。 BX指令這種清空流水線的功能使得處理器狀態(tài)間的切換是安全的。使用MSR(寫狀態(tài)寄存器)直接修改CPSR的T位的做法是不安全的。第20頁/共68頁ARM處理器模式 ARM處理器共支持7種處理器模式,并以當前程序狀態(tài)寄存器CPSR中的控制位M4:0反映處理器正在操作的模式。處理器模式說明用戶(usr)正常工作模式,不能直接切換到其他模式特權模式系統(tǒng)(sys)與用戶模式相似,但能直接切換到其他模式異常模式管理(svc)只有在系統(tǒng)復位和軟件中斷響應時才進入此模式中止(abt)在ARM7內核中無效未定義

12、(und)只有在未定義指令異常響應時才進入此模式中斷(irq)只有在IRQ異常響應時才進入此模式快速中斷(fiq)只有在FIQ異常響應時才進入此模式第21頁/共68頁ARM處理器模式 只有特權模式下才能對當前程序狀態(tài)寄存器CPSR的所有控制位直接進行讀/寫訪問,而在非特權模式下只允許對CPSR的控制位進行間接訪問。 進入異常模式時,處理器總是切換到ARM狀態(tài),而非Thumb狀態(tài)。 處理器復位后進入管理模式,操作系統(tǒng)內核通常處于管理模式。 用戶模式是正常運行的工作模式,系統(tǒng)模式具有與用戶模式完全相同的寄存器,但系統(tǒng)模式是特權模式,可以訪問所有的系統(tǒng)資源,主要提供給操作系統(tǒng)的任務使用。第22頁/共

13、68頁ARM處理器內部寄存器 ARM7DMI內部有37個用戶可訪問的32位寄存器,其中6個32位寬的狀態(tài)寄存器目前只使用了其中的12位。 31個通用寄存器 6個狀態(tài)寄存器 在不同的工作模式下,程序員可以訪問的寄存器不完全相同。第23頁/共68頁ARM處理器內部寄存器第24頁/共68頁當前程序狀態(tài)寄存器CPSR ARM內核通過CPSR來監(jiān)視和控制內部操作,每種異常模式都有一個對應的程序狀態(tài)保存寄存器SPSR,用于保存任務在異常發(fā)生之前的CPSR的內容。CPSR包括:4個條件代碼標識(負標識N、零標識Z、進位標識C和溢出標識V)2個中斷禁止位(IRQ禁止與FIQ禁止)5個當前處理器模式編碼位(M4

14、:0)1個用于指示當前執(zhí)行指令狀態(tài)的位(ARM或Thumb)第25頁/共68頁當前程序狀態(tài)寄存器CPSRN Z C V IF T M4 M3 M2 M1 M0控制位控制位保留位保留位標識位標識位N、Z、C、V是條件代碼標識位,可以通過算術和邏輯操作來設置這些位,ARM處理器對這些位進行測試以決定是否執(zhí)行一條指令,實現條件執(zhí)行。 N 負標識,運算結果的最高位,記錄標識設置操作的結果 Z 零標識,如果標識設置操作的結果為0,置位 C 進位標識,記錄無符號加法溢出,減法借位 V 溢出標識,記錄標識設置操作的有符號溢出第26頁/共68頁當前程序狀態(tài)寄存器CPSR CPSR的低八位為控制位,分別是: 中

15、斷禁止I和F 處理器狀態(tài)位T 處理器模式位M4M0 發(fā)生異常時,控制位改變。當處理器在一個特權模式下操作時,可用軟件操作這些位。第27頁/共68頁異常向量表地址異常進入時的模式IF0 x00000000復位管理禁止 禁止0 x00000004未定義指令 未定義IF0 x00000008軟件中斷管理禁止 F0 x0000000C中止(預取)中止IF0 x00000010中止(數據)中止IF0 x00000014保留保留0 x00000018IRQ中斷禁止 F0 x0000001CFIQ快速中斷禁止 禁止第28頁/共68頁異常優(yōu)先級優(yōu)先級異常最高最低1復位2數據中止3FIQ4IRQ5預取指中止6未

16、定義指令6軟件中斷SWI第29頁/共68頁進入異常 保存返回地址到LR 保存CPSR的當前值到相應異常模式下的SPSR 設置CPSR為相應的異常模式,禁止相應中斷控制位,防止不受控制的中斷嵌套 設置PC為相應異常處理程序的中斷入口向量地址第30頁/共68頁退出異常 用LR中的值減去偏移量再恢復PC 用SPSR恢復CPSR 在入口處置位的中斷禁止控制位清零第31頁/共68頁復位異常 nRESET信號被拉低時,ARM處理器放棄正在執(zhí)行的指令; nRESET信號恢復高電平時,ARM處理器執(zhí)行以下操作: 強制進入管理模式 禁止IRQ和FIQ 進入ARM狀態(tài) 強制PC從0 x0000 0000開始執(zhí)行

17、復位后,除PC和CPSR之外的所有寄存器的值都是隨機的。第32頁/共68頁中斷請求異常IRQ IRQ中斷異常發(fā)生時,內核自動做如下處理: 將返回地址保存到R14_irq中 將CPSR保存到SPSR_irq中 禁止新的IRQ中斷,進入ARM狀態(tài),進入IRQ異常模式 強制PC執(zhí)行0 x0000 0018地址的指令 如果需要嵌套IRQ中斷,那么必須在中斷服務程序中重新使能IRQ中斷。第33頁/共68頁FIQ快速中斷異常 CPSR的F位被清零時,可以發(fā)生FIQ異常。FIQ是優(yōu)先級最高的中斷,進入該中斷后會同時禁止任何外部中斷源再次發(fā)生中斷,除非在軟件中重新使能FIQ和IRQ。 FIQ有8個專用寄存器,

18、使得進入FIQ時不用壓棧,以提高響應速度。 FIQ入口地址在向量表頂部,可以不需要跳轉,直接放置中斷服務程序。第34頁/共68頁未定義指令異常 當ARM處理器遇到一條自己和系統(tǒng)內任何協(xié)處理器都無法執(zhí)行的指令時,發(fā)生未定義指令異常。 軟件可以使用這一機制通過仿真未定義的協(xié)處理器指令來擴展ARM指令集。第35頁/共68頁中止異常 中止表示當前對存儲器的訪問不能被完成。 中止有兩種類型:預取指中止和數據中止。第36頁/共68頁SWI軟件中斷異常 由于系統(tǒng)正常工作是在用戶模式下進行的,如果需要切換到特權模式就必須使用軟件中斷切換到管理模式。 該異常由執(zhí)行指令SWI產生,用于用戶模式下的程序調用特權操作

19、指令。第37頁/共68頁ARM體系的存儲系統(tǒng) ARM處理器采用馮諾依曼結構,指令和數據共用一條32位數據總線。ARM存儲器可以看做一個從0開始的線性遞增字節(jié)集合: 字節(jié)03保存第1個存儲的字 字節(jié)47保存第2個存儲的字 字節(jié)811保存第3個存儲的字 ARM處理器可以將存儲器中的字以下列格式存儲:大端(Big-endian)小端(Little-endian)。第38頁/共68頁存儲器格式 位于地址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第39頁

20、/共68頁LPC2000系列ARM指定為小端Little31-2423-1615-87-0字地址高地址低地址11109887654432100Big31-24 23-16 15-8 7-0字地址高地址低地址89101184567401230第40頁/共68頁第一講第一講 主要內容主要內容ARM7體系結構體系結構LPC2000系列系列ARM概述概述ARM嵌入式系統(tǒng)概述嵌入式系統(tǒng)概述第41頁/共68頁LPC2000系列ARM概述 LPC2000系列ARM是基于一個支持實時仿真和跟蹤的32位ARM7TDMI-S的微控制器,芯片內集成豐富的外設,功耗卻很低。 具有64/144引腳封裝。 片內SRAM及

21、FLASH使單片運行成為可能。 外擴大容量存儲器。 片內PLL可實現60MHz操作頻率。 片內Boot裝載程序實現在系統(tǒng)編程(ISP)和在應用編程(IAP)。第42頁/共68頁LPC2000系列ARM概述 4/8路10位A/D轉換器,轉換時間低至 2個32位定時器、PWM單元、實時時鐘和看門狗。 多個串行接口:UART、I2C和SPI。 向量中斷控制器。 2個低功耗模式:空閑和掉電。 可個別使能/禁止外部功能來優(yōu)化功耗。 雙電壓:內核、I/O操作。第43頁/共68頁LPC2000系列ARM概述第44頁/共68頁第45頁/共68頁不同芯片內部存儲器容量第46頁/共68頁對片內Flash編程的3種

22、方法 使用JTAG仿真器,通過芯片的JTAG接口下載程序。 使用在系統(tǒng)編程技術(ISP),通過UART0接口下載程序。 使用在應用編程技術(IAP),可以實現用戶程序運行時對FLASH進行擦除或編程。第47頁/共68頁對片內外存儲器的操作 對于SRAM,不管是片內片外,都可直接進行讀寫操作。 對于片內FLASH,可以直接讀取數據,可使用ISP或IAP進行擦除和編程。 對于片外FLASH,可以直接讀取數據,但是寫操作時必須進行時序控制。第48頁/共68頁存儲器映射 LPC2000絕大部分存儲器單元的地址是在芯片設計生產時就確定的,用戶無法修改。 ARM芯片對AHB外設、VPB外設、片內及片外存儲

23、器進行統(tǒng)一編址。第49頁/共68頁AHB和VPB AHB和VPB外設區(qū)域都為2MB,每個外設空間都為16KB,各自分配最多128個外設。 AHB外設掛接在芯片內部AHB總線上,具有較高的速度。 VPB外設掛接在芯片內部VPB總線上,速度相對較低。第50頁/共68頁預取指中止和數據中止異常 如果試圖訪問一個保留地址或未分配區(qū)域的地址,LPC2000系列ARM將產生預取指中止或數據中止異常。第51頁/共68頁存儲器映射模式模式激活說明Boot Block模式由任何復位硬件激活Boot Block異常向量映射到存儲器底部用戶片內FLASH模式由Boot代碼軟件激活不需要重映射用戶片內RAM模式由用戶

24、程序激活由用戶程序激活,異常向量表從靜態(tài)RAM底部重映射用戶外部存儲器模式復位時BOOT【1:0】不為11時激活中斷向量從外部存儲器的底部重映射第52頁/共68頁MEMMAP寄存器描述位位名稱描述復位值1:0 MAP1:000:BOOT裝載程序模式01:用戶FLASH模式10:用戶RAM模式11:用戶外部存儲器模式07:2保留NA第53頁/共68頁存儲器重映射 定義:為存儲器分配地址的過程稱為映射,為了增加系統(tǒng)的靈活性,系統(tǒng)中部分存儲單元可以同時出現在不同的地址上,即存儲器的重映射。重映射通過存儲器管理部件實現。 注意:存儲器重映射并不是對重映射單元的內容進行了復制,只是將多個地址指向了同一存

25、儲單元。 舉例:LPC2000系列處理器中Boot Block和異常向量表進行了重映射。第54頁/共68頁Boot Block Boot Block是芯片設計廠商在LPC2000系列ARM內部固化的一段代碼,用戶無法對其修改或刪除。 Boot Block在芯片復位后被首先運行。 LPC2200系列芯片的Boot Block為8KB,有的芯片中 Boot Block占用了用戶FLASH空間。 Boot Block存在于FLASH的頂部。 沒有片內FLASH的芯片也存在Boot Block。第55頁/共68頁Boot Block的重映射 Boot Block有些程序是可以被用戶調用的,為了增加用戶

26、代碼的可移植性,所以最好能把Boot Block代碼固定在某個地址上。由于各芯片片內FLASH大小不同,所以將Boot Block重映射到接近2GB的地方,這樣無論片內FLASH地址如何變化, Boot Block地址是不變的。第56頁/共68頁異常向量表地址異常0 x0000 0000復位0 x0000 0004未定義指令0 x0000 0008軟件中斷0 x0000 000C預取指中止0 x0000 0010數據中止0 x0000 0014保留0 x0000 0018IRQ0 x0000 001CFIQ第57頁/共68頁異常向量表及其重映射 ARM內核發(fā)生異常后,會使程序跳轉到位于0 x000000000 x0000001C的異常向量表處,再經過向量表跳轉到異常服務程序。 Boot Block 、FLASH、SRAM、外部存儲器中的中斷向量重映射到0 x000000000 x0000001C地址上。第58頁/共68頁Boot Block的功能 不同芯片的Boot Block不盡相同,以LPC2200系列ARM為例: 判斷運行哪個存儲器上的程序。 用戶代碼是否有效,無效時進入ISP狀態(tài)。 判斷芯片是否加密。 IAP ISP第59頁/共68頁MAM存儲器加速模塊 當系統(tǒng)時鐘工作在60MHz時,一條指令的執(zhí)行時間只需十幾

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論