【划重点】嵌入式系统原理与应用B —期末复习(第2章 ARM7体系结构)

第二章 ARM7体系结构

● RISC:精简指令集计算机 — 指令长度固定
● CISC:复杂指令集计算机
● ARM7分为三级流水,具有以下特点:
○ RISC处理器结构
○ 能够提供0.9MIPS/MHZ的三级流水线结构
○ 支持32位的ARM指令集和16位的Thumb指令集
○ ARM7所有的指令都可以条件执行,使得程序设计更适合流水线的工作特点
○ 专用的存储器访存指令
● ARM7TDMI的流水线分为三级 分别为:
○ 取指:从存储器取指令到处理器
○ 译码:对已取入到处理器的指令进行译码分析
○ 执行:完成该指令的对应操作
● ARM7TDMI处理器内核包含两套指令系统
○ ARM状态:32位指令码,处理器执行字方式的ARM指令,处理器默认为此状态
○ Thumb状态:16位指令码,处理器执行半字方式的Thumb指令
● ARM体系结构支持7种处理器模式
○ 除了用户模式外,其余模式均为特权模式
○ 用户模式(usr)
■ 正常程序工作模式
■ 不能软件切换到其它模式
○ 系统模式(sys)
■ 用于支持操作系统的特权任务等
■ 与用户模式类似,但具有可以软件切换到其它模式的特权
○ 以下五种模式称为异常模式,除了可以通过程序切换进入,也可以异常进入
○ 快中断模式(fiq)
■ 支持高速数据传输及通道处理
■ FIQ异常响应时进入此模式
○ 中断模式(irq)
■ 用于通用中断处理
■ IRQ异常相应时进入此模式
○ 管理模式(svc)
■ 操作系统保护代码
■ 复位或执行SWI软中断指令事件
○ 中止模式(abt)
■ 用于支持虚拟内存和存储器保护
■ 在ARM7TDMI中没有大用处
○ 未定义模式(und)
■ 支持硬件协处理器的软件仿真
■ 未定义指令异常相应时进入此模式
● ARM的寄存器
○ CPU寄存器
■ 处理器内部主要用于暂存运算数据、运算中间结果的存储单元,这样用途的寄存器称为通用数据寄存器
■ 汇编语言中的寄存器R0-R12 — 保存数据或地址的通用寄存器
● R0 - R7 未分组寄存器
● R8 - R14 分组寄存器 他们所对应的物理寄存器取决于当前的处理器魔师
○ R8 - R12 — 两个分组的物理寄存器 一组用于非FIQ 一组用于FIQ
○ R13、R14 — 6个分组的寄存器 一个用于用户和系统模式 其余五个分别用于五种异常模式
■ R13 — 堆栈指针(SP)
■ R14 — 链接寄存器(LR)
● ARM处理器特别功能寄存器
○ SP — 堆栈指针寄存器(R13)
■ SP用于指向进出栈的操作点
○ PC — 程序计数器 (R15)
■ PC指向正在取指的指令
■ ARM指令长度固定为32bit
■ Thumb指令长度固定为16bit
○ LR — 返回连接寄存器(R14)
■ 调用返回点、断点需要保护,以便返回
○ PSR — 程序状态寄存器
■ 用户不能对 CPSR or SPSR 进行写操作
■ PSR中的值被称作“程序状态字” — PSW
■ ARM7中有1个CPSR和5个SPSR
■ CPSR — 当前程序状态寄存器
● CPSR寄存器的格式
○ bit[31:28] 条件代码标志
■ N : 负 或 小于
■ Z : 零
■ C : 进位 或 借位扩展
■ V : 溢出标志
○ bit[7:0] 控制位
■ I : IRQ禁止
■ F :FIQ禁止
■ I位或F位被置位时,相应中断被禁止
■ T : 状态位 — 选择 ARM(1) or Thumb(0)
■ M[4:0] :模式位 — 七种模式的选择
○ bit[27:8] 保留
■ 读 — 无意义
■ 写 — 千万别
■ SPSR — 存储程序状态寄存器
● 堆栈(Stack)
○ 堆栈是一种具有“后进先出”(LIFO)特殊访问属性的存储结构
○ 堆栈的分类
■ 递增堆栈 : SP向大地址方向变化
■ 递减堆栈 : SP向小地址方向变化
■ 满堆栈 : SP指向空间有有效堆栈数据
■ 空堆栈 : SP指向空间无有效堆栈数据
○ 堆栈类型
■ 空递增堆栈 — EA
■ 空递减堆栈 — ED
■ 满递增堆栈 — FA
■ 满递减堆栈 — FD
● ARM7的异常
○ ARM中定义了7种异常(事件),分别对应ARM7处理器的5种异常模式
■ 复位
■ 未定义指令
■ SWI(软中断)
■ 预取指中止
■ 预取数中止
■ irq(中断)
■ fiq(快中断)
■ Tips:usr、sys模式是通过指令修改M[4:0]进入
● ARM7对异常的相应
○ 异常响应 :当异常发生时,处理器会对异常事件作出相应的相应(处理)
■ Step1 处理器转入ARM状态对应的异常模式
■ Step2 在该异常模式的SPSR、LR寄存器分别备份CPSR、PC当前的数据
■ Step3 重置CPSR和PC
○ 异常优先级 : 当多个异常同时发生时,硬件电路设定的优先级决定系统处理异常的顺序
■ 1 复位
■ 2 数据中止
■ 3 FIQ
■ 4 IRQ
■ 5 预取指中止
■ 6 未定义指令中止
■ 6 SWI 软件中断异常
● 计算机中需要编址的资源
○ 内存单元 用于存放CPU执行的程序和数据
■ 特点:连续,成块
■ 构成内存资源空间
○ IO端口 用于数据的采集和控制、显示、传输等输出
■ 特点:单元数量少,地址分散
■ 构成外设端口空间
■ 编址方式
● 统一编址 存储器单元与IO端口编址在统一的一个地址(空间)平面
○ 统一编址无需专用的管脚和指令
● 独立编址 存储器单元与IO端口编址分别在“存储器地址空间”和“IO端口地址(空间)”
○ 独立编址需要专用的管脚和指令支持
● ARM7处理器寻址空间
○ 单个平面 — 8bit
○ 包含 230个字 — 32bit
○ 包含 231个半字 — 16bit
● 存储器格式
○ 小端存储器系统(小端模式)
■ 数据的高字节存放在高地址中
○ 大端存储器系统(大端模式)
■ 数据的高字节存放在低地址中
● 片内存储器(Flash,SARM)
○ 片内FLASH程序存储器
■ LPC2000 系列中除了 LPC2210、2220、2290外,其他ARM存储器都带有容量不等的Flash
■ 可以将程序直接放在Flash上运行
■ 片内Flash编程方法
● 使用JTAG仿真器,通过芯片的JTAG接口下载程序
● 使用在系统编程技术(即ISP),通过UART0接口下载程序
● 使用在应用编程技术(即IAP),在用户程序运行时对Flash进行擦除和/或编程操作,实现数据的存储和固件的现场升级。
○ 片内静态RAM — SRAM
● 存储器映射
○ AHB — 先进的高性能总线
○ VPB — VLSI外设总线

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>