1 / 39

ARM 处理器开发

ARM 处理器开发. 杨传森. 电源模块. FLASH. 时钟. 微处理器. RAM. 复位. ROM. USB. LCD. 键盘. 其他. 嵌入式系统基本组成-硬件. 硬件示意图. 应用程序. 软件结构. 操作系统. 输入. 输出. 处理器. 存储器. 硬件结构. 嵌入式系统基本组成-软件. 软件示意图. 引言--嵌入式系统组成 I. 嵌入式处理器:系统的核心部件 外围设备: 存储器 接口 嵌入式操作系统: uC/OS-II 等等 应用软件. ARM7 处理器基础知识. ARM/THUMB

chenoa
Download Presentation

ARM 处理器开发

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ARM处理器开发 杨传森

  2. 电源模块 FLASH 时钟 微处理器 RAM 复位 ROM USB LCD 键盘 其他 嵌入式系统基本组成-硬件 • 硬件示意图

  3. 应用程序 软件结构 操作系统 输入 输出 处理器 存储器 硬件结构 嵌入式系统基本组成-软件 • 软件示意图

  4. 引言--嵌入式系统组成 I • 嵌入式处理器:系统的核心部件 • 外围设备: • 存储器 • 接口 • 嵌入式操作系统:uC/OS-II等等 • 应用软件

  5. ARM7处理器基础知识 • ARM/THUMB • THUMB (inside 32bit,code 's 16bit)--增加代码密度减少成本 • 7种模式: 用户态/FIQ/IRQ/管理态/中止态/系统态/未定义寄存器。

  6. ARM体系结构 • 32位ALU,31个32位通用寄存器及6个状态寄存器, • 32X8位乘法器,32X32位移位寄存器 • 指令译码及控制逻辑,指令流水线和数据/地址寄存器

  7. 调试与测试 ARM7TDMI AHB桥 仿真跟踪模块 向量中断 AMBA总线 局部总线 AHB To VPB VPB AHB译码 SDRAM及内部控制器 外部中断 外部存储控制器 捕获/比较 定时器 IIC接口 A/D转换器 SPI接口 通用I/O UART0 1 PWM 看门狗定时器 实时时钟 系统控制 • ARM7TDMI功能框图

  8. 数据 指令译码器 符号扩展 写 读 PC p15 结果 to Rd 寄存器文件r0~r15 Rn Rm 桶型移位器 MAC ALU 地址寄存器 加法器 地址 ARM内核的数据流模型 • ARM内核的数据流模型

  9. ARM流水线结构 • 取指 • 译码 • 取操作数 • 执行运算 • 存储器访问 • 结果写回寄存器 各个阶段操作相互独立,采用流水线的重叠技术极大地提高了系统性能

  10. 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

  11. 中断与异常 • 复位 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个时钟周期。

  12. 存储器和I/O • ARM采用了存储器映射I/O的方式,把I/O地址作为特殊的存储器地址。 • ARM体系同时支持大尾端/小尾端 • 小位端:11223344 --〉44,33,22,11。 • 32根地址线 • 32根数据线 • 内部cache • I/O采用内存映射的方式实现

  13. LPC2200系列-ARM I/O结构 • 一般而言,ARM架构中的处理器核和处理器内核都没有I/O部件和模块,但是可以通过AMBA总线扩展。 • 存储器映射I/O:ARM采用了存储器映射I/O的方式,把I/O地址作为特殊的存储器地址。 • 中断IRQ和快速中断FIQ:一般的ARM没有DMA功能,系统安排了快速中断FIQ和中断IRQ来提高I/O处理能力。

  14. ARM AMBA接口 • ARM内核通过内部总线选用Cache部件,通过协处理器接口扩充各种协议处理器, • 通过AMBA来扩展不同体系构架的宏单元及I/O部件

  15. ARM7TDMI处理器三级流水线 • 增加处理器指令流的速度,(09MIPS/MHz) • 取指 • 译码 • 执行 • ARM7TDMI使用 Von Neumann结构:指令与数据共用一条32位总线。

  16. 处理器状态I • ARM7TDMI内核使用ARMv4T,该结构包含32位ARM指令集,16位Thumb指令集。

  17. 处理器状态II-处理器模式

  18. 条件代码标志:

  19. 模式位

  20. 异常或入口 返回指令 前状态 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 复位 无 无 无 异常与中断 • 异常或入口

  21. 异常与中断 • 进入异常 在适当的LR中保存,下一条指令的地址。 CPSR复制适当的SPSR 根据异常将CPSR模式强制设为某一值 强制PC从相关的异常向量处取指

  22. 异常与中断 • 退出异常 将LR中的值减去偏移量后移入PC 将SPSR的值复制回CPSR 清零中断禁止标志(在入口中置位的)

  23. 异常与中断 • FIQ(快速中断) nFIQ信号由片外拉低,产生快速中断请求,支持数据转移和通道处理;在一个特权模式下,可通过置位CPSR中的F标志位,来禁止FIQ异常;当F标志清零时,ARM7TDMI在每条指令结束时检测FIQ同步器输出端的电平。

  24. 异常与中断 • IRQ 用于外部硬件(外设)中断处理器的正常执行流。在一个特权模式下,可通过置位CPSR中的I标志位,来禁止IRQ异常。

  25. 异常与中断 • 中止 表示当前对存储器的访问不能被完成。ABORT信号由内部存储管理器部件控制。

  26. 异常与中断 • 软件中断 SWI指令用于调用一个操作系统例程的机制。即软件中断进入管理模式,用于请求特定的管理函数。

  27. 异常与中断 • 未定义指令 处理器不能对一条指令译码时使用

  28. 异常与中断 • 复位 处理器上电后执行的第一条指令的位置。该指令使处理器转跳到初始化代码处。

  29. 应用介绍 • BOOT[1:0]的引导控制

  30. 地址 MEMMAP 功能 名称 描述 描述 访问 0xe01fc040 MEMMAP 存储器控制器,选择从Flash Boot Block,用户Flash或RAM中读取ARM中断向量 R/W 1:0 MAP【1:0】 00:Boot装载模式,中断向量从Boot Block重新映射 01:用户Flash模式,中断向量位于Flash,不映射 10:用户RAM模式,中断向量从SRAM重新映射(片内SRAM地址:0x40000000~0x40001ffff) 7:2 保留 保留 应用介绍I • 存储器映射及引导块

  31. 应用介绍II • 外部中断输入 • LPC2114/2124/2210/2212/2214含有4个外部中断输入。 • 有外部中断标志(涉及到物理连接的pin脚),外部中断唤醒,外部中断方式(电平/边沿),外部中断极性(高/低电平、上升/下降边沿) • 相关中断分配与处理:向量中断控制器(VIC) • 最多32个中断请求输入 • 16个向量IRQ中断 • 16个优先级,可动态分配,可产生软中断

  32. 读取Vectaddr 寄存器,跳转相应中断服务程序 异常向量表 3 VIC设置 中断服务 地址 2 1 运行 用户程序运行 6 完成中断服务,返回原中断点 5 运行 应用介绍III • 具体中断处理过程

  33. 19个 中断输入 (可以 使用 32个 中断 输入) VIC将32个 中断输入分配 为FIQ、 向量IRQ、 非向量IRQ VIC通道号 内核 应用介绍IV • 中断源

  34. 4G 0xFFFFFFFF AHB外设 3.75G 0xF0000000 VPB外设 3.5G 0xE0000000 保留给外部存储器 2G 0x80000000 BOOTBLOCK(从片内Flash重新映射) 保留给内部存储器 0x40001FFF 16KB SRAM(片内) 1G 0x40000000 片内非易失性存储器(128KB/256KB) 0G 0x00000000 应用介绍V • 外部存储器控制器的应用---EMC

  35. 应用介绍VI • 应用条件: • 需要熟悉RAM,FLASH器件的读、写时序 • 应用外部总线,正确配置PINSEl2寄存器

  36. PIN 类型 描述 PIN 类型 描述 D【31:0】 I/O 外部存储数据线 BLS【3:0】 O 字节定位选择(低) A【23:0】 O 外部存储地址线 WE O 写使能(低) OE O 使能信号(低) CS【3:0】 O 芯片选择(低) 应用介绍VII • 引脚配置表

  37. 应用介绍VIII-介绍存储器配置寄存器 • 4个存储器组配置一下选项: • 一个存储器组内部的读、写访问之间以及访问一个存储器组和访问另一个存储器组之间需要的空闲时钟周期(IDCY)个数(1~16cclk),以避免器件之间的总线竞争。 • WST1:读访问长度(等待周期+操作周期,3~34 cclk),但对Burst ROM 的连续读访问出外。 • WST2:写访问长度(等待周期+操作周期,3~32 cclk) • 存储器组是否写保护 • 存储器组的总线宽度:8、16、32

  38. 应用介绍IX • 寄存器分配: • 对于遵循ATPCS(ARM 过程调用标准)调用规则的函数,必须保护被调用的寄存器R4~R11的值,ATPCS同时也规定了堆栈应该使8字节边界对齐,因此在调用子程序时必须保护这个边界。

  39. 寄存器编号 可选寄存器名 ATPCS用法 R0 A1 参数寄存器,在调用函数时,用来存放 前4个函数参数和返回值。 在函数内,如果把这些寄存器作为临时过渡寄存器使用,则会破坏它们的值。 R1 A2 R2 A3 R3 A4 R4 V1 通用变量寄存器。调用函数必须保存被调用函数存放在这些寄存器中的变量值。 R5 V2 R6 V3 R7 V4 R8 V5 R9 V6 sb 通用变量寄存器。 R10 V7 sl 通用变量寄存器。用于存放堆栈边界地址。 R11 V8 fp 通用变量寄存器。旧版armcc编译器使用的结构指针 R12 Ip 通用临时过渡寄存器,函数调用时会破坏其值。 R13 Sp 堆栈指针 R14 Lr 连接寄存器。在函数调用时,保存返回地址。 R15 pc 程序计数器 应用介绍X-C编译器寄存器用法 • C编译器寄存器用法

More Related