历史上的今天
今天是:2025年01月31日(星期五)
2019年01月31日 | arm异常处理流程
2019-01-31 来源:eefocus
1. 什么是异常?
cpu正常运行的时候,出现一些突发事件,我们的cpu就必须暂停当前程序的运行,去处理这些异常
2. cpu中有哪些异常?
1.reset 上电 重启
2.undef 流水线中某个非法指令到达执行状态的时候执行
3. swi 软中断指令
4.prefetch 当一个指令被从内存中预取时,由于某种原因而失败,如果它能到达执行状态这个异常才会产生
5.data 如果一个预取指令试图访问一个非法的内存单元,这是异常产生
6.IRQ 通常的中断
7 fiq 快速中断
3. 异常会让cpu进入什么模式?
1.reset -----》svc
2.undef ------》undef模式
3. swi -------》svc
4. prefetch----》abort
5. data ----》abort
6. IRQ ----》irq
7. fiq ----》fiq
4. arm cpu异常处理流程
1) 拷贝 CPSR 到 SPSR_
2) 设置适当的 CPSR 位:
a)改变处理器状态进入 ARM 态
b)改变处理器模式进入相应的异常模式
c)设置中断禁止位禁止相应中断 (如果需要)
3) 保存返回地址到 LR_
4) 设置 PC 为相应的异常向量表,异常的程序的入口,异常的入口地址,是固定的。
返回时, 异常处理需要:【软件操作】
一从 SPSR_
二 从LR_

注1:这些操作只能在 ARM 态执行.
注2:linux内核的异常向量表
D:\linux-3.14-fs4412\arch\arm\kernel\entry-armv.S
注3: 进入异常入口之后,:要保存现场【r0-r12】,压栈还原现场,【r0-r12】需要退栈。
史海拾趣
|
The Data Conversion Handbook下载 绝对够经典的教材。我从ADI官网下的,免费提供给大家~ 其实ADI官网也是免费 The Data Conversion Handbook, edited by Walt Kester (Newnes, 2005), is written for design engineers who routinely use data converters and related circuitr ...… 查看全部问答> |
|
小弟最近在做一个pda与pc 的通信问题,最终要解决的问题是将pda中一xml文件上传给远程pc服务器。 我现在做的测试就是用socket实现pda与pc间的简单通信,代码如下: pda端: & ...… 查看全部问答> |
|
wince每次刷机后都要有以下debug infomation输出提示: INFO: Initializing system interrupts... INFO: Initializing system clock(s)... INFO: Initializing driver globals area... SDMMC config set rGPGCON: fd96a9ba OEMInit Done. ...… 查看全部问答> |
|
我用的MSP430F1222是自己焊接的,程序有时候能下载,有时候又不行。 比如:Error during erase of information memory.Retry erase operation? 再就是:cannot reset target… 查看全部问答> |
|
利用51单片机片内的定时器,设计一台数字电子钟增设按键,能设置1组闹铃时间,到时刻后用蜂鸣器闹铃需要通过软件仿真,并有电路图、方框图,asm程序代码含注释… 查看全部问答> |
|
接地电阻是指电流经过接地体进入大地并向周围扩散时所遇到的电阻。大地具有一定的电阻率,如果有电流流过时,则大地各处就具有不同的电位。电流经接地体注入大地后,它以电流场的形式向四处扩散,离接地点愈远,半球形的散流面积愈大,地中的电流密 ...… 查看全部问答> |




