目标:了解ARM处理器的工作状态,工作模式,寄存器结构,理解ARM处理器的异常处理,数据类型和存储格式,以及内存管理单元(MMU)和存储器保护单元(MPU)的含义和功能。
1.ARM处理器的工作状态及切换
在ARM体系结构中,处理器可以工作在3种不同的状态:一是ARM状态,二是Thumb状态以及Thumb-2状态,三是调试状态。
(1)ARM状态
ARM处理器工作于32位指令的状态。
(2)Thumb状态
ARM处理器工作于16位指令的状态。
值得注意的是:
①除Cortex-M外,所有的ARM处理器复位后开始执行代码时总是处于ARM状态。
②Cortex_M因为只有Thumb-2指令集,所以只有Thumb状态和调试状态两种。
(3)调试状态
处理器停机调试时进入调试状态。
(4)ARM与Thumb间的转换
①由ARM状态切换到Thumb状态
通过BX指令,将操作数寄存器最低位置1;
如果Thumb状态进入异常处理(异常处理要在ARM状态下进行),则当异常返回时,将自动切换到Thumb状态。
②Thumb状态与ARM状态间的转换
通过BX指令,将操作数寄存器最低位置0;
当处理器进行异常处理时,则从异常向量地址开始执行,将自动进入ARM状态。
2.ARM处理器的工作模式
ARM体系结构支持七种工作模式,取决于程序状态寄存器(CPSR)低五位的值。
具体参考P60的表格。
3.ARM处理器的寄存器组织
ARM处理器共有37个寄存器,包括31个通用寄存器和6个状态寄存器。
ARM处理器在不同模式下使用的寄存器有所不同。
相同之处:
①无论何种模式,R15均作为PC使用
②CPSR为当前程序状态寄存器
③R7~R0为公用的通用寄存器
不同之处:
高端7个通用寄存器和状态寄存器在不同模式下不同。
(1)ARM状态下的寄存器组织
①通用寄存器
②状态寄存器
PS:具体参考P62
(2)Thumb状态下的寄存器组织
高位寄存器R8~R12在Thumb状态不可见,在Thumb-2下可以使用。
(3)带MMU的ARM处理器中的控制寄存器
3.ARM处理器的异常
(1)ARM异常种类,异常向量表及优先级
复位异常的优先级最高。
(2)ARM异常的中断响应过程
(3)从异常处理程序中返回
具体参考P64。
4.ARM数据类型及存储格式
(1)ARM的两种存储字格式
①大端模式
高字节放在低地址,低字节放在高地址。
②小端模式
高字节放在高地址,低字节放在低地址。
系统复位时一般自动默认为小端模式,与大家熟悉的Intel 80x86一致。
(2)ARM存储器的数据类型
除Cortex-A50外,32位的ARM处理器中支持字节(8位),半字(16位),字(32位)。每一种又可分为有符号与无符号数,因此认为有6种数据类型。
ARM状态下,指令32位。
Thumb状态下,指令16位。
5.ARM处理器中的存储器管理单元(MMU)和存储器保护单元(MPU)
1.ARM处理器中的MMU
MMU能把系统中不同类型的存储器(如Flash,SRAM,SDRAM,ROM,优盘)进行统一管理(虚拟存储器技术)。
MMU功能:虚拟地址到物理地址的映射;存储器访问权限控制。
2.ARM处理器中的MPU
MPU是对存储器进行保护的可选组件。它提供了简单替代MMU的方法来管理存储器。

嵌入式处理器-2.3相关推荐

  1. 连载-第1章绪论 1.2嵌入式处理器

    1.1 嵌入式处理器 1.1.1 哈佛结构和冯.诺依曼结构 相信学过计算机技术这门课程的读者都知道,通用CPU采用的是冯.诺依曼结构,而很多嵌入式处理器多采用哈佛结构,那么这两种结构究竟有什么区别,各 ...

  2. 嵌入式系统的组成、嵌入式处理器分类总结、ARM处理器系列总结、ARM Cortex-M3体系结构总结!

    一.嵌入式系统的组成 嵌入式系统的组成主要由:嵌入式硬件系统.嵌入式软件系统. (1)嵌入式硬件系统主要包括:嵌入式处理器.存储器.模拟电路.电源.接口控制器.接插件等 1)嵌入式处理器:是嵌入式系统 ...

  3. 嵌入式处理器的体系架构与内核详解

    嵌入式处理器的体系架构与内核详解 当我们谈及嵌入式处理器的体系架构时,一般都是想到Intel的X86架构和ARM公司的ARM架构.X86架构和ARM架构最大的不同点就是使用的指令集不同,前者使用的CI ...

  4. 嵌入式处理器分类现状

    近年来,随着微处理器制造技术的发展,越来越多的嵌入式系统用嵌入式处理器建造,而不是用通用处理器.这些嵌入式处理器是为完成特殊的应用而设计的处理器.本文将为您介绍嵌入式处理器和它的分类. 嵌入式处理器是 ...

  5. FPGA嵌入式处理器的选择策略

    传统数字系统设计中,中小容量FPGA主要用于数字系统的接口.控制.胶合逻辑和复杂数字信号处理或数据处理算法的协处理,而主控制器一般采用单片机或嵌入式处理器完成.FPGA和主控制器分离的设计使得电路规模 ...

  6. [转]Cortex-a8 arm11 arm9 xscale powerpc 嵌入式处理器实测性能

    周明的嵌入式技术博客 Cortex-a8 arm11 arm9 xscale powerpc 嵌入式处理器实测性能 Verfasst von zhoum am Do, 03/05/2009 - 15: ...

  7. 常见处理器MCU、MPU、DSP、FPGA等嵌入式处理器概念

    前文中多次出现了MCU.MPU.DSP.FPGA等嵌入式处理器概念,很多初学者可能比较迷惑,下面将对这些概念进行简单介绍. MCU 微控制器 (Micro-Controller Unit , MCU) ...

  8. 嵌入式处理器分类与现状

    嵌入式系统的核心部件是各种类型的嵌入式处理器,目前据不完全统计,全世界嵌入式处理器的品种总量已经超过1000多种,流行体系结构有30几个系列,其 中8051体系的占有多半.生产8051单片机的半导体厂 ...

  9. 32位ARM嵌入式处理器的调试技术

    32位ARM嵌入式处理器的调试技术 https://blog.csdn.net/bekars/article/details/611072 摘要:针对32位ARM处理器开发过程中调试技术的研究,分析了 ...

  10. 使用Matlab+Simulink开发Cortex-M系列嵌入式处理器应用程序

    使用Matlab+Simulink开发Cortex-M系列嵌入式处理器应用程序 文档编号 TN_AAAA_A0 关键字 Matlab, Simulink, Cortex-M, 基于模型设计, Mode ...

最新文章

  1. Nexus刷官方下载的映像_occam
  2. go build和go install的区别
  3. 利用VC++实现局域网实时传输
  4. 人生的12个经典领悟
  5. idea mybatis generator插件_SpringBoot+MyBatis+Druid整合demo
  6. 算法与数据结构 设计模式
  7. JS-垃圾回收机制-执行栈执行上下文-闭包
  8. 【转载】Linux 命令行快捷键 - 移动光标
  9. lnk2019 mysql_C++使用MySQL-Connector/C++连接MySQL出现LNK2019错误的解决方法
  10. Qt setFocus
  11. XILINX FPGA数字信号处理——8、FIR滤波器和IIR滤波器原理及实现
  12. select weui 动态加载数据_jQuery WeUI 组件下拉刷新和滚动加载的实现
  13. 【算法工程师】成为一名优秀的机器学习算法工程师所需知识及资料汇总-附思维导图
  14. CPU输入/输出的控制方式有哪些?
  15. 团队的英文翻译缩写_(整理)公司部门英文缩写简称大全
  16. 禅道发信配置(网易企业邮箱)
  17. 深度丨边缘计算,星火燎原
  18. Ant design-05 表单多选的组件
  19. GitHub 热点速览 Vol.14:周获 2k+ Vim³ 掀起三维编程风
  20. Windows 显示/隐藏文件扩展名

热门文章

  1. 消费税税率表[zhuan]
  2. 下图显示了用计算机模拟随机,2017-2018徐州数学第二学期期末试卷.docx
  3. 下图显示了用计算机模拟随机,徐州市2017-2018学年度八年级下期末考试数学试卷(含答案)...
  4. Java项目之“拼图小游戏”
  5. python爬取图虫网图片
  6. 微信小程序开发之——bindtap点击无响应
  7. Scratch图形化编程之简单小游戏(贪吃蛇)
  8. 训练仿真系统软件开发公司有哪些呢
  9. 命令模式 Java代码演示【使用命令模式实现播放器功能】
  10. 限制IP访问页面--限制IP