嵌入式中 ARM的几种工作模式 以及异常模式的优先级

一、Arm工作模式:

Arm微处理器支持7种工作模式,分别为:

1. 用户模式(Usr)            用于正常执行程序

2. 快速中断模式(FIQ)    用于高速数据传输

3. 外部中断模式(IRQ)   用于通常的中断处理

4. 管理模式(SVC)          操作系统使用的保护模式(高权限),复位和软件中断进入

5. 数据访问终止模式(abt)   当数据或指令预取终止时进入该模式,可用于虚拟内存及存储保护

6. 系统模式(sys)            运行均有特权的操作系统任务

7. 未定义指令终止模式(und)   用于支持硬件协处理器的软件仿真(浮点、微量运算)

其中除了用户模式以外,其余所有6种模式称之为非用户模式(特权模式,权限比用户模式高),

其中特权模式中除去系统模式外的5种模式称之为异常模式(在用户模式和系统模式看来这些都属于异常),常用于处理中断或异常,以及需要访问受保护的系统资源等情况。

异常模式优先级如下:

1(最高)         SVC   复位
2                                数据中止
3                                FIQ(快速中断请求)
4                                IRQ(外部中断请求)
5                                abt 预取指令中止
6(最低)        und  未定义指令,SWI 

 

从编程的角度看,arm微处理器的工作状态有两种,并可在两种状态之间切换:

(1) arm状态,此时处理器执行32位的字对齐的arm指令

(2) thumb状态,此时处理器执行16位的,半字对齐的thumb指令

(为了兼容老芯片)在程序运行的过程中,可以在两种状态之间进行相应的转换。

处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。

二、存储器格式(字对齐):

Arm体系结构将存储器看做是从零地址开始的字节的线性组合。

从 0~3 字节放置第一个存储的字(32位)数据,

从 4~7 字节放置第二个存储的字数据,一次排列。作为32位的微处理器,arm体系结构所支持的最大寻址空间为4GB。

 存储器格式:

Arm体系结构可以用两种方法存储字数据,称之为大端格式小端格式(如上上章所讲)

大端格式:字数据的高字节存储在低地址中,而字数据的低地址存放在高地址中。 比较直观

小端格式:与大段格式相反。 易计算机存储

如:int ox12345678

大端:12 34 56 78

小羰:78 56 34 12

三、指令长度:

Arm微处理器的指令长度是32位的,也可以为16位(thumb状态下)。Arm微处理器中支持字节(8位),半字(16位),字(32位)三种数据类型,其中,字需要4字节对齐,半字需要2字节对齐。

注:所谓的指令长度是一条完整的指令的长度,而不是单纯的mov这3个字母长度 

 四、Arm的工作模式切换

有两种方法:

被动切换:在arm运行的时候产生一些异常或者中断来进行模式切换

主动切换:通过软件改变,即软件设置寄存器来经行arm的模式切换,因为arm的工作模式都是可以通过相应寄存器的赋值来切换的。

注:当处理器运行在用户模式下,某些被保护的系统资源是不能被访问的。 

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
嵌入式技术stm32f103是一种常用的微控制器,可以灵活地应用于各种嵌入式系统。考试题目包括以下几方面内容。 第一部分:硬件知识 1.请列举STM32F103的基本硬件配置。 答: STM32F103的基本硬件配置包括:Flash、SRAM、DMA、PLL时钟系统、定时器、外设等等。 2.请简述GPIO的作用。 答:GPIO (General Purpose Input Output) 是一种通用输入输出接口,通常被用来连接外部设备,包括 LED 灯、按钮开关、温度传感器、光电传感器等。 3.请解释USART和SPI的区别。 答:USART(Universal Synchronous Asynchronous Receiver Transmitter)和SPI(Serial Peripheral Interface)都是串口通讯协议,但USART可以实现同步和异步通信,而SPI则只能实现同步通信。 第二部分:软件知识 1.请简述ARM Cortex-M3微控制器的特点。 答:ARM Cortex-M3微控制器具有高效的CPU核心、内部存储器和总线结构等优点,支持复杂的实时控制应用,也具有低功耗、高性能和便捷的软件开发特点。 2.请简述断的作用与原理。 答:断是指CPU在执行程序时,遇到优先级更高的事件需要立即处理的机制。当一个断事件发生时,CPU会停止当前的运行任务,转而处理断事件的程序,当处理完成后,回到原来的任务继续执行。 3.请简述使用Keil C51编译器时,代码的编写过程。 答:使用Keil C51编译器编写代码,需要进行如下几个步骤:创建工程、添加源文件、编写代码、编译程序、下载调试。在编写代码时,应注意C语言语法和嵌入式系统的特殊要求,如对外设的操作等。在编译和下载调试时,需要对CPU型号、编译器设置等进行相应的配置。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值