历史上的今天
今天是:2025年01月21日(星期二)
2021年01月21日 | 快速学Arm(9)--处理器的状态,模式以及概括了解内部寄存器
2021-01-21 来源:eefocus
快速学习总是要颠三倒四的来学习内容.最终将所知道的东西联系起来就形成了一种能力.
我了先了解一下处理器状态,模式以及一些芯片内部的寄存器.
芯片内部的寄存器一般要使用汇编语言进行控制,写C语言的程序时,大部分情况下不用去关心这些寄存器是如何工作的,除非你要进行底层的程序设计,这些内容可以在以后随着Arm学习的深而入进行再看也不迟,目前大概的扫几眼也就可以了.
Arm2400一般有两种两种指令形式,即ARM指令和Thumb指令两种状态条.ARM是32位的指令而Thumb形式则是16位指令模式.如果大家学过8068汇编和80386汇编,大家是看成PC上的8086和和80386自己的指令关心.
Arm处理器除了有两种状态以往,还可以运行在不同的模式下,数了一下有7种,分别是:
1.用户模式(usr):程序正常工作的模式,不能直接切换到其他的模式.
2.快中断模式(fiq):支持数据高速传输及通道处理,FIR异常响应时进入此模块.
3.中断模式(irq):用于通用中断处理,IRQ异常响应时进入此模式.
4.管理模式(svc):操作系统保护代码,系统复位和软件中断时进入此模式.
5.中止模式(abt):用于支持虚拟内存和/或存储保护.在ARM7TDMI(-S)没有大用处.
6.未定义模式(und):支持硬件协处理器的软件仿真.未定义指令异常响应时进入此模式.
8.系统模式(sys):用于支持操作系统的特权任务,与用户模式类似,具有可以直接切换到其他模式等特权.
除用户模式外,其他都是特权模式,特权模式可以转换为用户模式,相反方向则无法转换.模式可以通过程序代码来切换,也可以由异常来进行切换
至于系统模式,与用户模式一样,不能由异常进入,且使用与用户模式完全相同的寄存器.然而它是特权模式,不受用户模式的限制.有这个模式,操作系统要访问用户模式的寄存器就比较方便.同时,操作系统的一些特权任务可以使用这个模式,以访问一些受控的资源而不必担心异常出现时的任务状态变得不可靠.
ARM模式下内部寄存器:
.31个通用寄存器:R0~R15,R13_svc,R14_svc,R13_abt,R14_abt,R13_unt,R14_unt,R13_abt_irq,R14_irq,R8_frq~R14_frq.
.6个状态寄存器:CPSR,SPSR_svc,SPSR_abt,SPSR_unt,SPSR_irq,SPSR_fiq.
THUMB模式下内部寄存器:
.8个通用寄存器:R0~R7
.PC
.堆栈指针:SP
.连接寄存器:LR
.CPSR(有条件的访问)
史海拾趣
|
我的S3C6410+WinCE6.0系统可以跑起来跑到桌面(运气好还可以点击用几下子,然后也死掉),然后就报各种异常出来,系统也挂了,为什么? 我的S3C6410+WinCE6.0系统可以跑起来跑到桌面(运气好还可以点击用几下子,然后也死掉),然后就报各种异常出来,系统也挂了,为什么?… 查看全部问答> |
|
推荐一本用PowerPC开发通信设备的书,我还是第一次见同类型的书 嵌入式设计及通信设备开发详解——基于MPC82XX处理器 卓越的链接 http://www.amazon.cn/mn/detailApp?qid=1238487283&ref=SR&sr=13-1&uid=168-0888845-7367438&prodid=bkbk941360 当当的链接 http://product.dangdang.com/product.aspx?product ...… 查看全部问答> |
|
如何快速的在外部EEPROM中的多组无序数据中找到我要查找的那一组啊? 我在外部的EEPROM中以两个字节为单位存放了多组数据,现在想快速的查找的我需要的那组数据有什么好办法吗? 因为数据是无序存放的,因此我想只能通过顺序查找的方式实现 我有一个最笨的办法: 从存放数据的位置开始查找,先比较第一字节,如果不 ...… 查看全部问答> |
|
支持最新的蓝牙4.0标准,低功耗模式工作电流只有0.4uA,而且模块还与ZigBee 2.4GHz频段,还有433Mhz频段模块保持引脚兼容。这样只有做一次电路板,就可以出3款产品了哦… 查看全部问答> |
|
【 信号处理】基于Virtex-5 FPGA实现多数音视频采集 摘要:具有视频监视功能的高端安全系统刺激了对嵌入式系统的需求,这些嵌入式系统能迅速捕获多条音视频信道,处理和压缩信息,并且通过高速互联网连接或主机PC接口将信息传送到中央监视系统。本文利用Virtex-5FPGA的多种高级功能,实现音视频监视应 ...… 查看全部问答> |




