第二章 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外设总线

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

  1. 【划重点】嵌入式系统原理与应用B ---期末复习(第3章 ARM7TDMI指令系统)

    第三章 ARM7TDMI指令系统 几个概念 机器指令 : 可供处理器译码电路直接译码执行的二进制编码指令 汇编指令 : 助记符化的机器指令 汇编器 :将汇编指令'翻译'成机器指令的翻译器 汇编 :将汇 ...

  2. 嵌入式系统原理及应用课后习题答案

    嵌入式系统原理及应用-基于ARM Cortex-M3内核的STM32F103系列微控制器 第1篇 系统篇 第1章嵌入式系统概述 第2章嵌入式系统开发 第2篇 内核篇 第3章ARMCortex-M3处理 ...

  3. 《嵌入式系统原理与接口技术》——嵌入式系统接口应用基础

    本文为我负责编写的电子工业出版社出版的<嵌入式系统原理与接口技术>一书第七章部分,这里整理的仍然是修改稿,供需要的同学参考,本书为普通高等教育"十二五"规划教材,电子信 ...

  4. 嵌入式系统原理与接口技术

    <嵌入式系统原理与接口技术>--嵌入式系统接口应用基础 本文为我负责编写的电子工业出版社出版的<嵌入式系统原理与接口技术>一书第七章部分,这里整理的仍然是修改稿,供需要的同学参 ...

  5. 嵌入式系统原理及应用《基于ARM Cortex-M3 内核的STM32F103系列微控制器》思维导图

    嵌入式系统原理及应用 <基于ARM Cortex-M3 内核的STM32F103系列微控制器>课程思维导图 目录 第一章 嵌入式系统概论 第二章 嵌入式系统开发 第三章 ARM Corte ...

  6. 《RFID原理及应用》期末复习总结

    <RFID原理及应用>期末复习总结 适用教材:<RFID原理与应用(第2版)>,许毅.陈建军编著,清华大学出版社 提示:与教材内容不完全匹配,有所取舍. 写在前面: 这份复习总 ...

  7. 《RFID原理及应用》期末复习总结(6)

    <RFID原理及应用>期末复习总结(6)-(第六章 如何构建RFID应用系统) <RFID原理及应用>期末复习总结(6) 1.选择标准 2.选择频率 3.频率范围 4.运行环境 ...

  8. 《RFID原理及应用》期末复习总结(1)

    <RFID原理及应用>期末复习总结-(第一章 RFID简介) 第一章 RFID简介 1.三大技术 2.RFID概念 3.RFID特点 4.RFID系统的组成 5.磁卡与IC卡 6.芯片 7 ...

  9. 【复习资料】单片机与嵌入式系统原理及应用

    嵌入式系统的概念 第一种定义:嵌入式系统是以应用为中心.计算机技术为基础,软硬件可裁剪,适应应用系统对功能.可靠性.成本.体积.功耗严格要求的专用计算机系统. 第二种定义:把基于处理器(通用处理器和嵌 ...

最新文章

  1. 百度推出飓风算法,严厉打击恶劣采集
  2. 第 3 章 MySQL 存储引擎简介
  3. ML之NB:利用NB朴素贝叶斯算法(CountVectorizer/TfidfVectorizer+去除停用词)进行分类预测、评估
  4. 《GitHub入门与实践》
  5. Bounce 弹飞绵羊
  6. cocos2dx 3.2之Lua打飞机项目
  7. 前端学习(1260):promise中的常见api对象方法
  8. xml控制html样式,XML与CSS综合设置实例
  9. centos6 进入命令行_CentOS6.8设置开机直接进入命令行模式
  10. VS Code 1.38 发布,官方图标存储库发布
  11. 温故而知新 forEach 无法中断(break)的问题
  12. 在Linux下用sopcast/qsopcast收看网络电视
  13. 第七章 Scala基础——类继承
  14. 1116: 删除元素 C语言
  15. 大锅菜机器人_学校食堂用上炒菜机器人 几分钟出一锅菜(图)
  16. Transformer家族5 -- 推理加速(Faster-Transformer、TurboTransformers)
  17. DHT11温湿度传感器编程思路以及代码的实现
  18. 数据结构— —双向链表
  19. 基于simulink对汽车传动系统的振动特性分析
  20. 第七篇:稳定性之提升团队潜意识【提前预防、裕度设计】

热门文章

  1. win10+R4.1.2语言+Rstido(2022.02.0)详细安装和配置方法
  2. power query 生成工资条
  3. 五个故事,告诉你为什么要做目标管理
  4. Json和Gson?
  5. 对讲机服务器信号不好怎么办呢,对讲机信号覆盖差怎么办?
  6. 防御云服务器被攻击的三个方法
  7. (java web后端方向)如何让你的简历为你争取到更多的面试机会,内容来自java web轻量级开发面试教程...
  8. 综艺: 天天向上 2012
  9. 短视频运营小技巧,如何做好内容策划?可以从三个方面出发
  10. tableau 进行会员留存分析