ARM处理器概论(指令集、存储模型、ARM工作模式)

ARM产品系列

早先经典处理器

包括ARM7、ARM9、ARM11家族

Cortex-A系列

针对开放式操作系统的高性能处理器
应用于智能手机、数字电视、智能本等高端运用

Cortex-R系列

针对实时系统、满足实时性的控制需求
应于汽车制动系统、动力系统等

Cortex-M系列

为单片机驱动的系统提供了低成本优化方案
应用于传统的微控制器市场、智能传感器、汽车周边等

在这里插入图片描述

一、ARM处理器概述

1)RISC 处理器 / CISC 处理器

  1. RISC处理器(经典指令集)
    只保留常用的的简单指令,硬件结构简单,复杂操作一般通过简单指令的组合实现,一般指令长度固定,且多为单周期指令
    RISC处理器在功耗、体积、价格等方面有很大优势,所以在嵌入式移动终端领域应用极为广泛

  2. CISC处理器(复杂指令集)
    不仅包含了常用指令,还包含了很多不常用的特殊指令,硬件结构复杂,指令条数较多,一般指令长度和周期都不固定
    CISC处理器在性能上有很大优势,多用于PC及服务器等领域

2)SOC

SOC(System on Chip)
即片上系统,将一个系统中所需要的全部部件集成在一个芯片中在体积、功耗、价格上有很大优势

二、ARM指令集概述

1)指令集

  1. 指令
    能够指示处理器执行某种运算的命令称为指令(如加、减、乘 …)
    指令在内存中以机器码(二进制)的方式存在
    每一条指令都对应一条汇编
    程序是指令的有序集合
  2. 指令集
    处理器能识别的指令的集合称为指令集
    不同架构的处理器指令集不同
    指令集是处理器对开发者提供的接口

2)ARM指令集

大多数ARM处理器都支持两种指令集:

  1. ARM指令集
    所有指令(机器码)都占用32bit存储空间
    代码灵活度高、简化了解码复杂度
    执行ARM指令集时PC值每次自增4
  2. Thumb指令集
    所有指令(机器码)都占用16bit存储空间
    代码密度高、节省存储空间
    执行Thumb指令集时PC值每次自增2

3)编译原理

程序执行过程: 预处理 编译 汇编 链接

在这里插入图片描述

  1. 机器码(二进制)是处理器能直接识别的语言,不同的机器码代表不同的运算指令,处理器能够识别哪些机器码是由处理器的硬件设计所决定的,不同的处理器机器码不同,所以机器码不可移植

  2. 汇编语言是机器码的符号化,即汇编就是用一个符号来代替一条机器码,所以不同的处理器汇编也不一样,即汇编语言也不可移植

  3. C语言在编译时我们可以使用不同的编译器将C源码编译成不同架构处理器的汇编,所以C语言可以移植

三、ARM存储模型

1)ARM数据类型

  1. ARM采用32位架构,基本数据类型有以下三种
Byte			8bits
Halfword		16bits
Word			32bits
  1. 数据存储
    Word型数据在内存的起始地址必须是4的整数倍
    Halfword型数据在内存的起始地址必须是2的整数倍

:即数据本身是多少位在内存存储时就应该多少位对齐

2)字节序

  1. 大端对齐
    低地址存放高位,高地址存放低位
    a = 0x12345678;

  2. 小端对齐
    低地址存放低位,高地址存放高位
    a = 0x12345678;

:ARM一般使用小端对齐

3)ARM指令存储

  1. 处理器处于ARM状态时
    所有指令在内存的起始地址必须是4的整数倍
    PC值由其[31:2]决定,[1:0]位未定义
    可以自定义PC值的起始地址:假如PC = 3, 程序执行时会自动把最后两位变成00(0011 -> 0000)

  2. 处理器处于Thumb状态时
    所有指令在内存的起始地址必须是2的整数倍
    PC值由其[31:1]决定,[0]位未定义
    程序执行时会自动把最后一位变成0(二进制)

:即指令本身是多少位在内存存储时就应该多少位对齐

四、ARM工作模式

1)ARM工作模式

ARM有8个基本的工作模式

User		非特权模式,一般在执行上层的应用程序时ARM处于该模式 
FIQ 		当一个高优先级中断产生后ARM将进入这种模式 
IRQ			当一个低优先级中断产生后ARM将进入这种模式 	 
SVC			当复位或执行软中断指令后ARM将进入这种模式 	 
Abort	 	当产生存取异常时ARM将进入这种模式 
Undef		当执行未定义的指令时ARM将进入这种模式 
System	    使用和User模式相同寄存器集的特权模式 
Monitor	    为了安全而扩展出的用于执行安全监控代码的模式

2)工作模式的理解

 不同模式拥有不同权限

 不同模式执行不同代码

 不同模式完成不同的功能

3)ARM工作模式分类

  1. 按照权限
    User为非特权模式(权限较低),其余模式均为特权模式(权限较高)

  2. 按照状态
    FIQ、IRQ、SVC、Abort、Undef属于异常模式,即当处理器遇到异常后会进入对应的模式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值