ARM微控制器工作模式.pdf
文本预览下载声明
实验七 ARM微控制器工作模式实验
ARM大作业
制作者:XXX
引 言
基于ARM 的芯片多数为复杂的片上系统,这种复杂系统里
的多数硬件模块都是可配置的,需要由软件来设置其需要的工
作状态。因此在用户的应用程序之前,需要由专门的一段代码
来完成对系统的初始化(称之为启动程序/启动代码
(Startup.s) )。由于这类代码直接面对处理器内核和硬件控制
器进行编程,一般都是用汇编语言。
一般通用的内容包括: 本实验重
中断向量表 点介绍的
初始化存储器系统
初始化堆栈
初始化有特殊要求的端口/设备
初始化用户程序执行环境
改变处理器模式
呼叫主应用程序
ARM微控制器的工作模式共有七种
User (用户模式)
FIQ(FIQ中断模式)
IRQ(IRO中断模式)
SVC (管理模式)
Abort( 中断模式)
Undef(未定义模式)
SYS (系统模式)
注:实验七中只涉及到了用户模式和管理模式、IRQ中断。
处理器模式 说明 备注
用户(usr) 正常程序运行的工 不能直接从用户模式切换到其他模
作模式 式
系统(sys) 用于支持操作系统 与用户模式类似,但具有直接切换到
的特权任务等 其他模式等特权
管理 供操作系统使用的 只有在系统复位和软件中断响应时,
(svc) 一种保护模式 才进入此模式
特
权 中止 用于虚拟内存和 在ARM7 内核中没有多大用处
模 异 (abt) (或)存储器保护
式 常 未定 支持软件仿真的硬 只有在未定义指令异常响应时,才进
模 义 件协处理器 入此模式
式 (und)
中断 只有在IRQ异常响应时,才进入此模式
(irq) 中断请求处理
快速
中断 快速中断请求处理 只有在FIQ异常响应时,才进入此模式
(fiq)
初始化堆栈
因为ARM有7种执行状态,每一种状态的堆栈指针寄存器
(SP )都是独立的。因此,对程序中需要用到的每一种模式都
要给SP定义一个堆栈地址。方法是改变状态寄存器内的状态位,
使处理器切换到不同的状态,然后给SP赋值。注意:不要切换
到User模式进行User模式的堆栈设置,因为进入User模式后就
不能再操作CPSR回到别的模式了,可能会对接下去的程序执行
造成影响。
CPSR寄存器显示方式如右图所示。显
示分为两部分,一部分是各个标志位,
另一部分是工作模式。
标志位NZCVQ为条件码标志N、Z 、C、
V和Q,显示为大写字母,表示该位为
1;显示为小写字母,表示该位为0 。
Q标志在ARM体系结构v5及以上版本
的E变量中才有效。
标志位IFT为IRQ中断禁止位I、FIQ中
断禁止位F和ARM微控制器状态位T,显
示为大写字母,表示该位为1;显示
为小写字母,表示该位为0 。T标志在
ARM体系结构v
显示全部