510 likes | 723 Views
ARM 处理器开发. 杨传森. 内容介绍. ARM 的基本内容: ARM 公司的简介 ARM 的设计思想与 RISC 的设计思想之比较 ARM 的结构特定 ARM 总线技术 ARM 的命名规则 ARM 的基础知识: ARM 的体系结构 ARM 的流水线结构 ARM 的寄存器 ARM 的存储器与 I/O ARM 的处理器状态 ARM 的处理器模式 ARM 的条件代码标志、模式位 ARM 存储器格式. 内容介绍. ARM 的指令集: ARM 与 THUMB 两种指令集的应用 ARM 的应用与开发心得介绍
E N D
ARM处理器开发 杨传森
内容介绍 ARM的基本内容: • ARM公司的简介 • ARM的设计思想与RISC的设计思想之比较 • ARM的结构特定 • ARM总线技术 • ARM的命名规则 • ARM的基础知识: • ARM的体系结构 • ARM的流水线结构 • ARM的寄存器 • ARM的存储器与I/O • ARM的处理器状态 • ARM的处理器模式 • ARM的条件代码标志、模式位 • ARM存储器格式
内容介绍 • ARM的指令集: • ARM与THUMB两种指令集的应用 • ARM的应用与开发心得介绍 • ARM存储映射及引导块 • ARM的中断分配 • ARM的堆栈分配 • ARM的中断处理策略与过程处理 • ARM的外部存储控制器的应用 • ARM的引脚分配
电源模块 FLASH 时钟 微处理器 RAM 复位 ROM USB LCD 键盘 其他 嵌入式系统基本组成-硬件 • 硬件示意图
应用程序 软件结构 操作系统 输入 输出 处理器 存储器 硬件结构 嵌入式系统基本组成-软件 • 软件示意图
引言--嵌入式系统组成 I • 嵌入式处理器:系统的核心部件 • 外围设备: • 存储器 • 接口 • 嵌入式操作系统:uC/OS-II等等 • 应用软件
ARM公司简介 • ARM 公司作为32位处理器内核的提供者,拥有100多家半导体合作伙伴,ARM core是目前消费类电子市场中市场占有量第一的CPU体系。 • ARM是一个CPU内核。ARM公司自己并不生产或销售芯片,它采用技术授权模式,通过出售芯片技术授权,收取授权费与技术转让费 • 随着ARM/MIPS/ARC等成熟内核的推出,很多过去没有32位cpu研发能力的半导体公司进入这一行列。
ARM的设计思想 • 降低功耗:设计成较小的核 • 高的代码密度:由于嵌入式系统的成本问题与物理尺寸的限制与制约,嵌入式系统的存储器有限 • 集成调试技术:减小嵌入式处理器的内核芯的面积,相应低增加外设电路的空间,提高监视能力――处理器在执行代码的具体情况,降低系统的整体开发成本
ARM结构特点 • 面向嵌入式系统的指令集: • 桶形移位器:硬件结构部件,扩展了许多指令的功能,借此改善内核的功能,提高代码的密度 • 条件执行:这个特性可以减少分支指令的数目,改善内核的功能,提高代码的密度 • Thumb指令集:增强ARM的内核的功能,提高代码密度 • 增强指令:一些DSP指令被加入到标准ARM指令中,支持16*16位乘法操作和饱和运算。
ARM-嵌入式解决方案的RISC标准 • ARM是知识产权(IP)供应商,专注与系统设计。IP :Intellectual Property Core • 由于ARM核以其高性能、小体积,低功耗紧凑代码密度多供应源,并全球有100多个合作伙伴从而保证了大量的开发工具核丰富的第三方资源 • 借助于第三方开发者广泛的支持,应用设计可以使用丰富的标准开发工具和ARM优化的应用软件
ARM总线技术 • ARM主要是芯片设计公司,它并不体现具体的总线电气特性,但它详细地定义了总线协议。
ARM总线技术 • 1、AMBA(初期):高级控制总线结构(Advanced Microcontroller Bus Architecture ),包括ARM系统总线(ASB,ARM System BUS)和ARM外设总线(APB,ARM Peripheral BUS) • 2、AHB:高性能总线(Advanced High Performance BUS )。基于AMBA,一个外设可以简单地连接到片上总线,而不需要为不同的处理器结构重新设计接口。 • 3、一条AHB总线连接高性能的片内外设;一条APB总线连接较慢的片内外设。
命名规则 ARM{x}{y}{z}{T}{D}{M}{I}{E}{J}{F} {-S} • X―――系列 • Y―――存储管理/保护单元 • Z―――cache • T―――Thumb16位译码器
命名规则 • D―――JTAG调试器,由IEEE1149.1标准测试访问端口(standard test access port)和边界扫描结构来描述,是ARM用来发送和处理内核与测试仪器之间调试信息的一系列协议。 • M―――快速乘法器 • I―――嵌入式跟踪宏单元(embedded ICE Macrocell),是建立在处理器内部、用来设置断点和观察点的调试硬件
命名规则 • E―――增将指令(基TDMI) • J―――Jazelle,一种可加速Java字节码的执行的技术 • F―――向量浮点单元 • S―――可综合版本,处理器内核是以源代码形式提供的
ARM系列处理器 • ARM系列内核的优势 • 低价格 • 低功耗 • 高处理能力。 • 另外具有Thumb,DSP,jazeller功能扩展
ARM系列处理器 • 主流ARM内核: • ARM7 :arm7tdmi,arm720t(MMU) • ARM9 • ARM10 • StrongARM/Xscale • ARM11
ATMEL公司arm系列 • AT91系列: AT91X40系列: 基于arm7tdmi核,内嵌FLASH,SRAM和各种外围功能模块,为嵌入式应用提供了一个灵活的、性价比高的解决方案。 • 优点:工业级。但缺乏lcd驱动等较吸引力的外围电路。
ATMEL公司arm系列 AT75/76系列: 内置arm7/DSP双内核, 有Arm+2DSP/ARM+DSP+MAC,两种配置, 加上PHY就可实现voip终端
ARM系列处理器 • Cirrus logic公司 机顶盒/mp3/IA等专用SOC,有数模混合和视频/音频处理优势。 • EP7211 • EP7212 • EP7209 • EP9312
ARM系列处理器 • NetScillon公司 ARM+NET系列芯片,关注设备上网(嵌入式internet)解决方案。
ARM系列处理器 • Samsung: Arm系列SOC芯片,集成度高,关注mp3/pda应用。 • Motolora : 最近推出龙珠MX1,使用了arm内核。
ARM系列开发 • C/C++开发平台 ADS :ARM公司提供 SDT:ARM公司提供 HITOOL:祥宝公司提供 EMBEST:英蓓特公司提供 GNU:免费平台
ARM系列仿真调试器 • ARM系列支持JTAG规范 目前支持ARM的调试器: Angel---rom monitor JEENI Multi-Ice TraceIcd ….
ARM7处理器基础知识 • ARM/THUMB • THUMB (inside 32bit,code 's 16bit)--增加代码密度减少成本 • 7种模式: 用户态/FIQ/IRQ/管理态/中止态/系统态/未定义寄存器。
ARM体系结构 • 32位ALU,31个32位通用寄存器及6个状态寄存器, • 32X8位乘法器,32X32位移位寄存器 • 指令译码及控制逻辑,指令流水线和数据/地址寄存器
调试与测试 ARM7TDMI AHB桥 仿真跟踪模块 向量中断 AMBA总线 局部总线 AHB To VPB VPB AHB译码 SDRAM及内部控制器 外部中断 外部存储控制器 捕获/比较 定时器 IIC接口 A/D转换器 SPI接口 通用I/O UART0 1 PWM 看门狗定时器 实时时钟 系统控制 • ARM7TDMI功能框图
数据 指令译码器 符号扩展 写 读 PC p15 结果 to Rd 寄存器文件r0~r15 Rn Rm 桶型移位器 MAC ALU 地址寄存器 加法器 地址 ARM内核的数据流模型 • ARM内核的数据流模型
ARM流水线结构 • 取指 • 译码 • 取操作数 • 执行运算 • 存储器访问 • 结果写回寄存器 各个阶段操作相互独立,采用流水线的重叠技术极大地提高了系统性能
取 指令 译码 译码 Reg 读 移位 /ALU 乘法 地址 计算 乘法器 部分积 相加 Reg写 数据写 取指令 Thumb解压缩 ARM译码 Reg读 移位/ALU Reg写 取指令 译码 Reg读 移位/ALU 数据存储器访问 Reg写 ARM7、ARM9、ARM9E、ARM10在流水线方面的区别 • 取指 译码 执行 • 取指 译码 执行 存储器 写 • 取指发射译码执行存储器写
ARM7寄存器 R0--R7 : 通用寄存器 • R8_FIQ ---R12_FIQ:允许快速中断处理 • /R8_USER ---- R12_USER 其它态。 • R13,R14/USER:SYSTEM • R13,R14/FIQ R13,R14/管理态 • R13,R14/IRQ R13,R14/中止态 R13,R14/UNDEF • R13用于各工作态的堆栈寄存器 • R14用来保护程序调用的现场PC指针 • R15:pc,其内容是处理器要取的下一条指令的址
中断与异常 • 复位 0x00000000开始或0xffff0000开始 • 管理模式 IRQ 中断irq引脚产生,比Fiq优先级低。进入Fiq时,会屏蔽irq.0x000000018或0xffff0018 • FIQ 快速中断引脚产生,放在矢量表的最后,另外有自己的临时寄存器,提升中断响应 0x0000001c或0xffff001c • 异常进入均为ARM态,另外异常的返回各不相同。FIQ: movs pc,r14_fiq,#4 IRQ: movs pc,r14_fiq,#4 • Fiq/irq 的最大延迟时间:29个时钟周期。 • 最小延迟时间:5个时钟周期。
存储器和I/O • ARM采用了存储器映射I/O的方式,把I/O地址作为特殊的存储器地址。 • ARM体系同时支持大尾端/小尾端 • 小位端:11223344 --〉44,33,22,11。 • 32根地址线 • 32根数据线 • 内部cache • I/O采用内存映射的方式实现
LPC2200系列-ARM I/O结构 • 一般而言,ARM架构中的处理器核和处理器内核都没有I/O部件和模块,但是可以通过AMBA总线扩展。 • 存储器映射I/O:ARM采用了存储器映射I/O的方式,把I/O地址作为特殊的存储器地址。 • 中断IRQ和快速中断FIQ:一般的ARM没有DMA功能,系统安排了快速中断FIQ和中断IRQ来提高I/O处理能力。
ARM AMBA接口 • ARM内核通过内部总线选用Cache部件,通过协处理器接口扩充各种协议处理器, • 通过AMBA来扩展不同体系构架的宏单元及I/O部件
ARM7TDMI处理器三级流水线 • 增加处理器指令流的速度,(09MIPS/MHz) • 取指 • 译码 • 执行 • ARM7TDMI使用 Von Neumann结构:指令与数据共用一条32位总线。
处理器状态I • ARM7TDMI内核使用ARMv4T,该结构包含32位ARM指令集,16位Thumb指令集。
条件代码标志: • ARM内核使用CPSR来监视和控制内部的操作 • CPSR分为4个8位区域:标志域、状态域、扩展域、控制域
异常或入口 返回指令 前状态 ARM Thumb 备注 BL Mov pc,r14 Pc+4 Pc+2 SWI Mov pc,r14_svc Pc+4 Pc+2 未定义指令 Mov pc,r14_und Pc+4 Pc+2 预取中止 SUBS pc,r14_abt,#4 Pc+4 Pc+4 快中断 SUBS pc,r14_fiq,#4 Pc+4 Pc+4 中断 SUBS pc,r14_riq,#4 Pc+4 Pc+4 数据中止 SUBS pc,r14_abt,#8 Pc+8 Pc+8 复位 无 无 无 异常与中断 • 异常或入口
异常与中断 • 进入异常 在适当的LR中保存,下一条指令的地址。 CPSR复制适当的SPSR 根据异常将CPSR模式强制设为某一值 强制PC从相关的异常向量处取指
异常与中断 • 退出异常 将LR中的值减去偏移量后移入PC 将SPSR的值复制回CPSR 清零中断禁止标志(在入口中置位的)
异常与中断 • FIQ(快速中断) nFIQ信号由片外拉低,产生快速中断请求,支持数据转移和通道处理;在一个特权模式下,可通过置位CPSR中的F标志位,来禁止FIQ异常;当F标志清零时,ARM7TDMI在每条指令结束时检测FIQ同步器输出端的电平。
异常与中断 • IRQ 用于外部硬件(外设)中断处理器的正常执行流。在一个特权模式下,可通过置位CPSR中的I标志位,来禁止IRQ异常。
异常与中断 • 中止 表示当前对存储器的访问不能被完成。ABORT信号由内部存储管理器部件控制。
异常与中断 • 软件中断 SWI指令用于调用一个操作系统例程的机制。即软件中断进入管理模式,用于请求特定的管理函数。
异常与中断 • 未定义指令 处理器不能对一条指令译码时使用
异常与中断 • 复位 处理器上电后执行的第一条指令的位置。该指令使处理器转跳到初始化代码处。
存储器格式I • Little-endian 31 16 15 0