历史上的今天
今天是:2025年02月22日(星期六)
2020年02月22日 | ARM体系结构_DAY2
2020-02-22 来源:eefocus
程序状态寄存器(CPSR)
Mode位[4:0]:处理器模式为
USER模式不能直接切换到特权模式,在特权模式下可以直接修改mode位[4:0]为10000,切换到USER模式。
T bit位[5]:处理器状态位
T = 0,J= 0处于ARM指令集状态
T = 1,J= 0处于Thumb指令集状态
T = 1,J = 1处于ThumbEE指令集状态
中断禁止位[7:6]
I = 1 进制IRQ
F = 1 进制FIQ
条件位[31:27]
N位 Negative result from ALU ALU运算结果为一个负数时, 此为自动置 1 否则为 0
Z位 Zero result from ALU ALU运算结果为 0 时,此位自动置 1,否则为 0
C位 分为加法运算和减法运算两种情况:
进行加法运算,如果产生进位 C位自动置一
进行减法运算时,如果产生借位, C位自动置 0
V位 符号位溢出,(最高为产生变化,针对于有符号数来说) V位自动置 1
计算机系统中,所有的数据都以 二进制补码 方式存储。

异常处理
ARM 有 7 类中断源:
偏移量 异常类别
0x1C FIQ 快速响应中断
0x18 IRQ 外部中断
0x10 Data Abort 数据终止 当访问数据时,CPU不允许访问请求 会进入此种中断
0x0C Perfetch Abort
0x08 software interrupt
0x04 Undefined Instruction 指令未定义异常 CPU取出一条指令,如果不能执行,此时会 将数据交由协处理器执行。若没有协处理器或者协处理器也不能处理,就会触发此中断
0x00 Reset 复位中断
7种异常对应的5种模式
异常源: FIQ IRQ Reset/软中断 DataAbort/PerfetchAbort Undef
CPU模式: FIQ IRQ Supervisor(SVC) Abort Undef
异常处理过程:
当异常产生异常时,ARM core(自动执行但不包括压栈操作):
拷贝 CPSR(current program status register)内容到 SPSR_
(saved program status register) 指的是具体哪一个状态的SPSR 设置适当的 CPSR 位:
改变处理器状态进入ARM状态(处理异常时,必须在ARM状态下进行)
改变处理器模式进入相应的异常(特权)模式
设置中断禁止位,防止中断处理过程中产生中断(如果需要)
Cortex A系列处理器,不允许同一类的中断嵌套 (处理FIQ时,不响应IRQ;处理IRQ时,可嵌套FIQ)
保存返回地址到 lr_
设置 pc 为相应的异常向量
ARM7、ARM9的异常向量表固定为0x00开始的一端内存中,cortex A系列默认为 0x00 但可以手动设置
返回时,异常处理需要(中断处理程序中手动执行):
从 SPSR_
恢复 CPSR 从 lr_
恢复 PC Note:这些操作只能在 ARM 状态执行
异常源类型,对应处理器模式。
异常优先级
Reset ——> Data Abort ——> FIQ > IRQ ——> Prefetch Abort ——> SWI→Undefined
FIQ 比 IRQ 快? 三方面原因:
FIQ优先级高
FIQ在中断向量表的最高偏移地址,在编程时可以直接在FIQ后面添加中断处理程序,省去了跳转指令。
FIQ有多个私有寄存器(r8_r14),在中断处理程序中使用这几个寄存器时可以省去压栈,弹栈操作
指令流水线
三级流水线:
PC(program count)指向正在取指的指令。
PC - 4 为正在译码的指令。
PC - 8 为正在执行的指令。

上一篇:ARM指令集——数据处理指令
下一篇:ARM指令分类学习
史海拾趣
|
以下是顶嵌嵌入式培训学员延小伟所写的C语言技术文章: 说白了,指针就是地址,地址里面放着不同的值,用操作指针的方法来操作这些值。 在32位机中,指针本身占4位,定义时,可以 int *p=&a,其中int *是一部 ...… 查看全部问答> |
|
我想用网络发送一张图片,把图片转为字节数组时遇到了问题 MemoryStream ms = new MemoryStream(); image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); byte[] bt = ms.GetBuffer(); 这种方法在wince中不可以用,弹出NotSupportedExcep ...… 查看全部问答> |
|
收到开发板两周多了,白天公司事忙的不行,晚上还得抱孩子,本来要好好试试PCIe,结果耽搁了不少时日,也连累了玲珑小姐,实在对不住! 总体来说有以下两方面 优点: 1,开发板设计还是比价人性化,供电可以PCIe也可 ...… 查看全部问答> |
|
可编程增益放大器 (PGA) 是特殊的放大器结构(请参见图 1),具有经过修整的内部电阻器网络,拥有比采用离散式电阻器组件的放大器更高的性能。正如图 1 中 PGA 传输函数所显示那样,PGA 输出的绝对误差与内部偏移电压(VOS)、增益精度和 VREF 绝对精 ...… 查看全部问答> |
|
图中框到的那个部分的内容,我在设计自己的原理图时候,我希望不用每次都去添加个人信息。因为自己画的原理图都是没有方框里的东西的,我想问下可不可以预先设定一个模板直接调用就可以了,不用每次都去添加个人信息… 查看全部问答> |
|
本帖最后由 陌路绝途 于 2015-11-8 11:04 编辑 输入项: 输出项: 算法由于该程序所用的数据结构简单,所以该程序所使用的查找算法只是简单的按照关键字查找。流程逻辑当用户在下位机触摸屏上按下对应 ...… 查看全部问答> |




