文档详情

ARM微控制器工作模式.pdf

发布:2017-09-29约8.37千字共34页下载文档
文本预览下载声明
实验七 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
显示全部
相似文档