ARM體系結構與編程第一章_第1頁
ARM體系結構與編程第一章_第2頁
ARM體系結構與編程第一章_第3頁
ARM體系結構與編程第一章_第4頁
ARM體系結構與編程第一章_第5頁
已閱讀5頁,還剩29頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

ARM體系結構與編程第一章:ARM概述及其基本編程模型Contents目錄ARM體系結構與編程第一章內容概覽01ARM技術應用領域與特點02ARM體系結構版本與命名03ARM處理器系列詳解04ARM處理器工作模式05ARM寄存器組織結構06ARM異常中斷機制07ARM存儲系統基礎Chapter01ARM技術應用領域與特點認識全球應用最廣泛的嵌入式處理器架構CHAPTER01·FUNDAMENTALS嵌入式系統基本概念嵌入式系統是以應用為中心的專用計算機系統,具有軟硬件可裁剪、高可靠性、低功耗等特點,與通用計算機系統在設計理念和應用場景上存在本質區別。典型嵌入式開發板實物01系統定義:以應用為中心、以計算機技術為基礎,軟硬件可裁剪,適應對功能、可靠性、成本、體積和功耗嚴格要求的專用計算機系統。02程序組織:系統程序與應用程序渾然一體,編譯連接成可執行二進制映像文件,固化在系統中復位后自動執行。03開發模式:開發系統與實際運行系統不同,需要交叉編譯環境和專用調試系統,與通用計算機的本地開發模式有本質區別。04應用領域:從消費電子到工業控制,從通信設備到汽車電子,嵌入式系統已滲透到現代生活的各個角落。ArchitectureOverviewARM處理器核心特點ARM處理器憑借高性能、低成本、低功耗的設計理念和獨特的IP授權商業模式,成為全球應用最廣泛的嵌入式處理器架構,市場份額超過75%。01RISC架構優勢:采用精簡指令集設計,指令數量少且長度固定,執行效率高,流水線設計使多條指令可并行執行,大幅提升吞吐率02低功耗設計:Load/Store架構限制數據處理指令只操作寄存器,減少內存訪問次數;大量通用寄存器進一步提升性能并降低功耗03IP授權模式:ARM公司專注架構設計,將技術授權給TI、Intel、Samsung等半導體廠商生產,形成龐大的產業生態系統04市場領先地位:2001年基于ARM內核的處理器年產量突破5億個,市場份額超75%,廣泛應用于無線產品、PDA、GPS、消費電子等領域ARM處理器芯片封裝實物APPLICATIONDOMAINSARM技術主要應用領域ARM技術已滲透到移動通信、消費電子、工業控制、汽車電子、物聯網等幾乎所有嵌入式計算領域,成為現代數字化生活的基礎技術支撐。01移動與通信智能手機:幾乎所有智能手機處理器都采用ARM架構,如蘋果A系列、高通驍龍、華為麒麟無線設備:基站、路由器、藍牙模塊等通信設備廣泛使用ARM處理器實現信號處理02消費電子與物聯網消費設備:平板電腦、智能電視、游戲掌機、無人機等產品大量采用ARM架構芯片物聯網終端:智能家居、可穿戴設備、傳感器節點等低功耗場景是ARMCortex-M系列的主戰場03工業與汽車工業控制:PLC、工業機器人、儀器儀表、醫療設備等采用ARM實現高可靠性控制汽車電子:車載娛樂、ADAS駕駛輔助、車身控制、動力系統等領域ARM應用日益深入CHAPTER02ARM體系結構版本與命名理解ARM架構的技術演進與產品命名體系ARCHITECTUREEVOLUTIONARM體系結構版本演進ARM體系結構從ARMv4演進至ARMv9,經歷了從32位到64位、從單一架構到多Profile的發展,每個版本都在性能、功能和應用場景上實現了重要突破。ARM體系結構版本特性對比版本位數關鍵特性代表處理器ARMv432位基礎RISC架構、Thumb指令集ARM7TDMI、ARM9TDMIARMv532位DSP指令、Java加速、增強ThumbARM9E、ARM10ARMv632位SIMD擴展、TrustZone安全ARM11系列ARMv732位NEONSIMD、Thumb-2、虛擬化Cortex-A/R/M系列ARMv864位AArch64執行狀態、加密指令Cortex-A53/A57/A72ARMv964位SVE向量擴展、MTE內存標簽Cortex-X/A710/A510ARM架構從32位ARMv4演進到64位ARMv9,功能不斷增強,應用場景持續擴展Architecture·ProfileARMv7架構三大ProfileARMv7架構首次將處理器分為Application、Realtime、Microcontroller三個Profile,分別針對高性能應用、實時控制和微控制器場景,實現了產品線的精準定位。ApplicationProfileCortex-ASeriesCortex-A系列處理器,支持MMU內存管理單元,可運行Linux、Android等完整操作系統面向智能手機、平板電腦、機頂盒等高性能應用場景,強調多任務處理和計算性能高性能應用RealtimeProfileCortex-RSeriesCortex-R系列處理器,強調確定性和低延遲響應,滿足硬實時系統的嚴格要求常用于硬盤控制器、汽車制動系統、基帶處理器等對時序敏感的嵌入式控制場景實時控制MicrocontrollerProfileCortex-MSeriesCortex-M系列處理器,強調極低功耗和低成本,適合電池供電和資源受限的應用廣泛用于物聯網傳感器、電機驅動、家電控制、可穿戴設備等微控制器應用場景微控制器INSTRUCTIONSETARCHITECTUREARM與Thumb指令集ARM架構同時支持32位ARM指令集和16位Thumb指令集,Thumb-2進一步實現混合編碼,在代碼密度和功能完整性之間取得平衡,為嵌入式開發提供靈活選擇。ARM指令集標準32位指令,功能完整,支持所有ARM架構特性,代碼執行效率高但占用存儲空間較大32位標準Thumb指令集16位壓縮指令,代碼密度比ARM高約35%,適合存儲資源受限的嵌入式系統,但功能有所精簡35%密度提升Thumb-2技術支持16位和32位指令混合編碼,在保持Thumb代碼密度優勢的同時恢復大部分ARM指令功能混合編碼狀態切換機制程序可通過BX指令在ARM狀態和Thumb狀態之間動態切換,兼顧性能優化和空間節省BX指令切換NamingConventionARM產品命名規則解析ARM產品命名遵循特定的規則體系,通過型號中的字母和數字組合可以快速識別處理器系列、指令集支持、調試功能等關鍵特性,有助于產品選型。經典ARM處理器命名含義(以ARM7TDMI為例)代號含義功能說明ARM7處理器系列基于ARMv4T架構的經典處理器核心TThumb支持支持16位Thumb壓縮指令集D片上調試支持JTAG片上調試功能M硬件乘法器內置快速硬件乘法器單元IICE仿真嵌入ICE在線仿真邏輯ARM經典命名中每個字母代表特定功能特性Chapter03ARM處理器系列詳解從經典ARM7到現代Cortex系列的完整產品線CHAPTER01·PROCESSORFAMILIESARM7系列處理器ARM7系列是ARM歷史上最成功的經典處理器系列,以低功耗、低成本、高可靠性著稱,采用3級流水線設計,至今仍在眾多嵌入式應用中廣泛使用。01架構特點:基于ARMv4T架構,采用3級流水線(取指、譯碼、執行)和馮·諾依曼統一總線設計,主頻通常50-100MHz02指令支持:同時支持32位ARM指令集和16位Thumb指令集,可根據需求靈活切換以平衡性能和代碼密度03核心優勢:極低的功耗和硅片面積,內置硬件乘法器、JTAG調試接口,適合成本和功耗敏感的嵌入式應用04典型芯片:PhilipsLPC2000系列、AtmelAT91SAM7系列、SamsungS3C44B0等,廣泛用于工業控制和消費電子ARM7處理器芯片LPC2000系列實拍Chapter01·ArchitectureARM9系列處理器ARM9系列相比ARM7實現了架構升級,采用5級流水線和哈佛總線設計,增加MMU支持運行操作系統,成為早期智能手機和嵌入式Linux設備的主流選擇。SamsungS3C2440ARM9開發板實拍01架構升級:采用5級流水線(取指、譯碼、執行、訪存、寫回)和哈佛架構,數據與指令總線分離,主頻可達200MHz以上200MHz+02MMU支持:內置內存管理單元,支持虛擬地址映射和內存保護,可運行Linux、WinCE等完整嵌入式操作系統Linux·WinCE03DSP擴展:ARM9E版本增加DSP指令集,支持16位乘加運算和飽和運算,適合音頻處理、調制解調等信號處理應用ARM9E·16-bitMAC04典型應用:TIOMAP系列、SamsungS3C2440、AtmelAT91SAM9等,廣泛用于早期智能手機、PDA和工業控制設備OMAP·S3C2440·AT91PRODUCTLINEUPCortex系列處理器產品線Cortex系列是ARM當前主力產品線,分為A(應用)、R(實時)、M(微控制器)三大系列,覆蓋從旗艦手機到物聯網傳感器的完整應用場景。Cortex-A應用處理器01面向高性能應用場景,支持MMU和完整操作系統,包括A55等低功耗核心和A76、A78、X1等高性能核心02采用big.LITTLE大小核架構實現性能與功耗平衡,廣泛用于智能手機、平板、筆記本電腦等設備big.LITTLECortex-R實時處理器01面向硬實時控制場景,強調確定性響應和低延遲,常用于汽車電子、存儲控制器、基帶處理器等領域02R8是最新產品,支持多核和虛擬化,滿足5G基帶和自動駕駛等新興實時應用的需求5G基帶·自動駕駛Cortex-M微控制器01面向微控制器場景,從M0超低功耗到M7高性能覆蓋完整范圍,STM32、NXPLPC等主流MCU均采用此架構02M55是首款支持AI加速的Cortex-M核心,Ethos-U55NPU配合實現邊緣AI推理能力Ethos-U55NPUCHAPTER01·ARCHITECTURECOMPARISONCortex-M系列型號對比Cortex-M系列從M0到M7覆蓋不同性能和功能需求,開發者可根據應用場景的處理能力、功耗預算和功能需求選擇最合適的型號。Cortex-M系列核心型號特性對比型號架構關鍵特性典型應用Cortex-M0ARMv6-M最小面積、最低功耗、Thumb子集傳感器、可穿戴設備Cortex-M3ARMv7-MThumb-2、硬件除法、中斷控制器通用MCU、工業控制Cortex-M4ARMv7E-MDSP指令、可選FPU、內存保護電機控制、音頻處理Cortex-M7ARMv7-M雙發射超標量、6級流水線、緩存高端MCU、圖像處理Cortex-M33ARMv8-MTrustZone安全、Co-processor接口安全物聯網設備Cortex-M系列各型號針對不同應用場景優化,從超低功耗到高性能全覆蓋Chapter04ARM處理器工作模式掌握ARM七種處理器模式及其切換機制Chapter01·ProcessorModesARM七種處理器工作模式ARM處理器支持七種工作模式,包括一種用戶模式和六種特權模式,不同模式具有不同的權限級別和可訪問寄存器,實現了系統安全與異常處理的平衡。嵌入式系統應用程序運行場景用戶模式User默認運行模式,權限最低,不能直接訪問系統資源;只能通過觸發異常(如軟中斷SWI)進入特權模式。應用程序代碼在此模式下執行,確保系統安全隔離。特權模式Privileged含系統模式(OS特權任務)、管理模式(內核主運行)和中止模式(處理內存訪問錯誤)。特權模式可訪問全部系統資源,用于操作系統核心功能執行。異常模式Exception含IRQ(普通中斷)、FIQ(快速中斷,7個獨立寄存器)和未定義模式(軟件仿真擴展指令)。異常模式響應硬件中斷和軟件異常,保障實時響應能力。MODESWITCHING處理器模式切換機制ARM處理器模式切換由異常中斷、程序狀態寄存器控制和異常返回三種方式觸發,每種方式都有明確的規則和適用場景,確保系統運行的安全性和可控性。01異常觸發切換:復位進入SVC模式、未定義指令進入UND模式、SWI進入SVC模式、預取/數據中止進入ABT模式、IRQ/FIQ進入對應中斷模式02CPSR控制切換:在特權模式下通過MSR指令修改CPSR寄存器低5位的模式字段,可主動切換到任意模式03異常返回恢復:通過MOVS、SUBS等帶S后綴的數據處理指令或LDM指令,自動從SPSR恢復CPSR返回原模式04模式切換注意事項:用戶模式不能主動切換模式,只能通過觸發異常進入特權模式;模式切換時會自動切換到對應模式的寄存器組嵌入式系統調試場景·示波器與開發板Chapter05ARM寄存器組織結構深入理解37個寄存器的分類、用途和訪問規則ARMArchitectureARM通用寄存器概述ARM共有37個32位寄存器,用戶模式下可訪問R0-R15共16個,其中R0-R12為通用寄存器,R13(SP)、R14(LR)、R15(PC)有特殊用途。寄存器總數:ARM共有37個32位寄存器,包括31個通用寄存器和6個狀態寄存器(CPSR及5個SPSR)37×32-bitR0–R12通用寄存器:可用于數據存儲、地址計算和參數傳遞,大部分指令都可訪問13GeneralR13堆棧指針SP:指向當前堆棧頂部,用于保存局部變量和函數調用現場SPR14鏈接寄存器LR:保存子程序返回地址,執行BL指令時自動保存PC值LRR15程序計數器PC:指向當前執行指令地址,ARM狀態下PC值為當前地址加8PC=Addr+8處理器芯片內部結構·顯微實拍CHAPTER01·REGISTERARCHITECTURE寄存器分組機制詳解ARM采用寄存器分組機制,不同模式訪問不同的物理寄存器,異常發生時自動切換到新寄存器組,減少現場保存開銷,提高異常處理效率。各處理器模式下的寄存器分組處理器模式分組寄存器共享寄存器用戶/系統模式無R0–R15,CPSRIRQ模式R13_irq,R14_irq,SPSR_irqR0–R12,R15,CPSRFIQ模式R8_fiq–R14_fiq,SPSR_fiqR0–R7,R15,CPSRSVC模式R13_svc,R14_svc,SPSR_svcR0–R12,R15,CPSRABT模式R13_abt,R14_abt,SPSR_abtR0–R12,R15,CPSRUND模式R13_und,R14_und,SPSR_undR0–R12,R15,CPSR各模式通過分組寄存器實現快速上下文切換CHAPTER01·ARMARCHITECTURE程序狀態寄存器CPSR與SPSRCPSR保存處理器當前狀態,包括條件標志、中斷控制、模式標識等信息;SPSR在異常發生時保存CPSR,異常返回時恢復,實現狀態的保存與還原。CPSR條件標志位NNegative·運算結果為負時置1用于有符號數比較和條件分支ZZero·運算結果為零時置1用于相等判斷和循環終止條件CCarry·加法進位或減法借位時置1也用于移位操作和多精度運算VoVerflow·有符號運算溢出時置1表示結果超出32位有符號數范圍CPSR控制位I/F中斷控制I位置1禁止IRQ中斷,用于臨界區保護;F位置1禁止FIQ快速中斷T指令集狀態置1表示當前執行Thumb指令,ARM狀態下該位為0M4-M0處理器模式5位模式字段標識當前模式,如10000為用戶模式,10011為SVC模式SPSR保存程序狀態寄存器異常發生時自動保存當前CPSR值,異常返回時恢復,確保處理器狀態完整還原CHAPTER06ARM異常中斷機制掌握七種異常類型的觸發條件和處理流程EXCEPTIONHANDLINGARM七種異常類型ARM定義了七種異常類型,按優先級從高到低分別是復位、數據中止、FIQ、IRQ、預取中止、未定義指令和軟中斷,每種異常對應特定的觸發條件和處理模式。ARM異常類型與優先級優先級異常類型進入模式向量地址1(最高)復位(Reset)SVC0x000000002數據中止(DataAbort)ABT0x000000103FIQ快速中斷FIQ0x0000001C4IRQ普通中斷IRQ0x000000185預取中止(PrefetchAbort)ABT0x0000000C6未定義指令(Undefined)UND0x000000047(最低)軟中斷(SWI)SVC0x00000008七種異常按固定優先級排序,各有獨立的向量地址和處理模式EXCEPTIONHANDLING異常響應處理流程異常發生時,ARM處理器自動完成LR保存返回地址、SPSR保存狀態、模式切換和PC跳轉四個步驟,硬件自動處理現場保存,簡化了異常處理程序的編寫。STEP01保存返回地址將下一條指令地址(PC+4或PC+8)自動保存到對應模式的LR寄存器LRSTEP02保存處理器狀態將當前CPSR復制到對應模式的SPSR,保存異常發生時的完整狀態信息SPSRSTEP03切換處理器模式修改CPSR模式位M4-M0,自動切換到異常對應的特權模式,訪問新模式寄存器組CPSRSTEP04設置中斷屏蔽根據異常類型自動設置CPSR的I位或F位,防止同類異常嵌套發生I/FBitSTEP05跳轉異常向量將PC設置為異常向量地址(如0x00000018對應IRQ),開始執行異常處理程序0x00000018ExceptionReturn從異常處理程序返回異常返回需要同時恢復PC和CPSR,使用帶S后綴的數據處理指令可以在更新PC的同時自動將SPSR復制回CPSR,實現一步完成狀態恢復。IRQIRQ返回SUBSPC,LR,#4—IRQ發生時LR保存PC+4,減去4得到被中斷指令地址SUBSPC,LR,#4FIQFIQ返回與IRQ類似,使用SUBSPC,LR,#4指令返回被中斷點繼續執行SUBSPC,LR,#4SVC/UNDSVC/UND返回MOVSPC,LR—SWI時LR保存下一條地址,無需偏移修正MOVSPC,LRDATAABORT數據中止返回SUBSPC,LR,#8—數據中止時LR保存PC+8,需減8重新執行SUBSPC,LR,#8KEYRULES后綴強制必須使用帶S后綴指令,才能同時恢復SPSR到CPSRSUBS·MOVS·LDMSEXCEPTIONHANDLING異常向量表配置異常向量表位于固定地址(默認為0x00000000),每個異常占4字節存放跳轉指令,處理器發生異常時自動跳轉到對應向量地址,可通過CP15重映射到高地址。嵌入式系統啟動場景0x00DefaultAddr4BPerEntry8Entries向量表結構默認位于地址0x00000000,共8個入口(包含一個保留項),每個入口4字節,通常存放跳轉指令可通過設置CP15的V位將向量表重映射到0xFFFF0000高地址,便于操作系統統一管理異常處理典型向量表代碼復位向量:Reset_Handler,系統上電后首先執行,負責初始化硬件和C運行時環境IRQ向量:IRQ_Handler,處理所有普通中斷,通常需要進一步查詢中斷源并分發處理CHAPTER07ARM存儲系統基礎理解地址空間、存儲格式和訪問規則Chapter01·MemoryARM地址空間組織ARM采用32位統一地址空間,可訪問4GB內存,程序和數據共享同一地址空間,支持MMU的系統中通過頁表實現虛擬地址到物理地址的映射。存儲芯片實物·DDRSDRAM01地址空間大小:32位地址總線支持4GB地址空間(0x00000000–0xFFFFFFFF),程序和數據共享統一地址空間02典型內存布局:低地址區存放異常向量和啟動代碼,中間區域映射RAM/ROM,高地址區可映射外設寄存器03MMU地址映射:支持MMU的處理器使用頁表將虛擬地址轉換為物理地址,實現內存保護和多任務隔離04端地址異常:地址0x00000000處發生訪問時可能觸發異常,可用于捕獲空指針訪問錯誤ARMArchitecture·Chapter01存儲器字節序格式ARM支持小端和大端兩種字節序,默認為小端格式(低字節在低地址),可通過配置切換,但保持統一字節序對系統兼容性至關重要。BYTEORDERCOMPARISON小端與大端格式對比0x12345678地址小端格式大端格式

溫馨提示

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

評論

0/150

提交評論