ARM基础
1. 嵌入式系统基础知识
1.1 嵌入式系统的定义
嵌入式系统是指以应用为中心,以计算机技术为基础,软件、硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
1.2 嵌入式系统的组成
嵌入式系统总体上是由硬件和软件组成的,硬件是其基础,软件是其核心与灵魂
嵌入式系统硬件设备包括:
- 嵌入式处理器:ARM,PowerPC,MC68000,MIPS等
- 存储设备:RAM,SRAM,SDRAM,ROM,EPROM,EEPROM,Flash,
- 通讯设备:RS232,SPI,IIC,以太网等
- 显示设备:显示屏等
嵌入式系统软件包括:
- 应用层(Application)
- 内核层(Kernel,带操作系统才有该层)
- 驱动层(Driver)
- 硬件层(Hardware)
1.3 嵌入式系统开发概述
嵌入式系统开发主要分为系统总体开发、嵌入式硬件开发和嵌入式软件开发三大部分,其总体流程图如下所示
2. ARM基础知识
2.1 认识ARM
ARM公司成立于1990年11月,前身为Acorn计算机公司。ARM公司主要涉及ARM系列RISC处理器内核,授权ARM内核给生产和销售半导体的合作伙伴。ARM公司不生产芯片。
ARM体系架构有:ARMv1、ARMv2、ARMv3、ARMv4、ARMv5、ARMv6、ARMv7、ARMv8架构,不同的体系架构采用不同指令集。哈佛结构是数据和指令分开存储并运行的;冯诺依曼结构是混合存储的。
ARM产品线如下图示:
ARM的存储器系统是由多级构成的,可以分为:内核级、芯片级、板卡级和外设级,下图为存储器的层次结构
2.2 ARM的工作模式及寄存器
ARM主要有7个基本工作模式
- User : 非特权模式,大部分任务执行在这种模式
- FIQ : 当一个高优先级(fast) 中断产生时将会进入这种模式
- IRQ : 当一个低优先级(normal) 中断产生时将会进入这种模式
- Supervisor :当复位或软中断指令执行时将会进入这种模式
- Abort : 当存取异常时将会进入这种模式
- Undef : 当执行未定义指令时会进入这种模式
- System : 使用和User模式相同寄存器集的特权模式
ARM有37个寄存器
- 1个用作PC ( Program Counter,程序计数器)
- 1个用作CPSR (Current Program Status Register,当前程序状态寄存器)
- 5个用作SPSR (Saved Program Status Registers,备份程序状态寄存器)
- 30个通用寄存
上图为ARM寄存器框图,37个寄存器具体包含:
寄存器类别 | 寄存器名 | 说明 |
---|---|---|
未分组寄存器 | R0~R7 | 所有工作模式下都是同一个物理寄存器 |
分组寄存器 | R8~R12 | 每个寄存器对应两个不同的物理寄存器,一组专用于FIQ模式,另一组用于其他模式 |
R13 | SP寄存器常用做堆栈指针,每一种异常模式都有自已的R13 | |
R14 | LR连接寄存器,每种模式都有自已的R14用来存放当前子程序的返回地址 | |
PC寄存器 | R15 | 用于存放下一条执行指令的地址 |
程序状态寄存器 | CPSR | 当前程序状态寄存器 |
SPSR | 备份程序状态寄存器 |
CPSR寄存器(和保存它的SPSR寄存器)中的位分配图
位 | 含义 |
---|---|
标志位 | N=1表示运算结果为负;N=0表示结果为正或0 |
Z=1表示运算结果为0;Z=0表示结果不为0 | |
C进位标志(4种情况) | |
V溢出标志 (2种情况) | |
中断禁止位 | I=1表示禁止IRQ |
F=1表示禁止FIQ | |
状态控制位 | T=0表示处理器处于ARM状态(32位ARM指令);T=1表示Thumb状态(16位Thumb指令) |
模式控制位 | 10000 User;10001 FIQ;10010 IRQ;10011 Supervisor;10111 Abort;11011 Undefined;11111 System |