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

提交评论