历史上的今天
今天是:2025年03月15日(星期六)
2020年03月15日 | ARM的异常及向量表
2020-03-15 来源:eefocus
ARM具有7种异常,分别为:
1、复位
2、未定义指令
3、软中断
4、预取指令终止
5、数据终止
6、中断请求(IRQ)
7、快速中断请求(FIQ)
用一句通俗的话去表达ARM的运行情况,那就是ARM总会在运行在以上7种异常情况的某一种之下。初初了解ARM时总会难于去了解这个"异常"是什么样的一个意思,到了现在对ARM有了一点肤浅的理解后,其实可以将这个"异常"理解为"环境",或其他表达ARM运行情况的一个形容词就行了。
向量表。现在平时所谓的“表”就是由多项内容构成的一个文字模式,ARM向量表其实也是这样,向量表就是由以上ARM的7种异常的入口地址所构成的。如下表简单示意,
异常类型 偏移地址(低) 偏移地址(高)
复 位 0x00000000 0xffff0000
未定义指令 0x00000004 0xffff0004
软中断 0x00000008 0xffff0008
预取指令终 0x0000000c 0xffff000c
数据终止 0x00000010 0xffff0010
保留 0x00000014 0xffff0014
中断请求(IRQ) 0x00000018 0xffff0018
快速中断请求(FIQ) 0x0000001c 0xffff001c
在ARM的汇编启动文件中,会发现向量表的汇编语言体现形式如下,
LDR PC, ResetAddr
LDR PC, UndefinedAddr
LDR PC, SWI_Addr
LDR PC, PrefetchAddr
LDR PC, DataAbortAddr
NOP
LDR PC, IRQ_Addr
LDR PC, FIQ_Addr
上一篇:ARM的异常响应过程
下一篇:关于ARM的PC指针异常返回处理
史海拾趣
|
1,请教几个问题,是不是理论上来说,任何linux版本都可以移植到2440上,只是易难不同? 2.如果2440移植的不是三星提供的版本,那是不是移植非常困难,但是据我所知三星只提供mizi版呀?而mizi是面对2410的呀?贵公司在2440的板子上移植Linux 2.6.1 ...… 查看全部问答> |
|
想构建一个系统,实现高速数据采集,采集频率至少在400MHz,ADC采集后的数据通过FPGA缓存至DDR2 SDRAM。现在不清楚DDR2应该如何选,选DDR2 400 可以吗?cyclone III不支持DDR2 800。… 查看全部问答> |
|
液晶浮点值显示的一种解决方法 在以ucOS-II为系统搭建的工程中,需要在液晶LCD上显示浮点型值,但液晶的驱动函数中仅编写了一个显示字符串的函数GUI_DispStringAt(); 所以需要一个函数把浮点型值转化成字符串,然后以字符串的形式输出到LC ...… 查看全部问答> |
|
谁有基于LM3S3601 的 Stellaris 编程器的资料? 如题,谁有基于 TI M3 LM3S3601 的 Stellaris 编程器的资料? 听说这个下载程序更快,谁有详细的资料,共享下。… 查看全部问答> |




