ARM的异常及向量表

发布者:phi31最新更新时间:2020-03-15 来源: eefocus关键字:ARM  异常  向量表 手机看文章 扫描二维码
随时随地手机看文章

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的异常及向量表

上一篇:ARM的异常响应过程
下一篇:关于ARM的PC指针异常返回处理

推荐阅读最新更新时间:2024-11-07 20:05

S3C2440裸机------异常与中断__定时器中断程序示例
1.定时器的工作原理 注意当TCNTn=TCMPn时不会产生中断。 2.代码 2.1 timer.c 首先是根据上面的两个寄存器设置时钟; /* 设置TIMER0的时钟 */ /* Timer clk = PCLK / {prescaler value+1} / {divider value} = 50000000/(99+1)/16 = 31250 */ TCFG0 = 99; /* Prescaler 0 = 99, 用于timer0,1 */ TCFG1 &= ~0xf; TCFG1 |= 3; /* MUX0 : 1/16 */ 然后根据上图的寄存器设置初始值。 /*
[单片机]
S3C2440裸机------<font color='red'>异常</font>与中断__定时器中断程序示例
ARM下的对齐处理
from DUI0067D_ADS1_2_CompLib 3.13 type qulifiers 有部分摘自ARM编译器文档对齐部分 对齐的使用: 1.__align(num) 这个用于修改最高级别对象的字节边界。在汇编中使用LDRD或者STRD时 就要用到此命令__align(8)进行修饰限制。来保证数据对象是相应对齐。 这个修饰对象的命令最大是8个字节限制,可以让2字节的对象进行4字节 对齐,但是不能让4字节的对象2字节对齐。 __align是存储类修改,他只修饰最高级类型对象不能用于结构或者函数对象。 2.__packed __packed是进行一字节对齐 1.不能对packed的对象进行对
[单片机]
ARM为核心的嵌入式体感遥控器的设计方案
  引言   服务机器人作为多种高新技术发展成果的集成,为实现服务的目的,需要通过人性化、简便、自然的方式进行人机交互,传统的按键式遥控器显然不能满足这种设计要求。目前,体感设备发展迅速,各类基于体感控制的装置层出不穷。体感控制就是通过肢体动作变化来实现。   控制,基于体感装置的人机交互已经成为当前研究的热门课题。   常见的无线遥控技术不外乎红外遥控技术和无线电遥控技术。其中红外遥控技术优点就是带宽大,但是需要较强的指向性,传输距离短,穿透能力差,功耗高;与之相比,无线电遥控技术无方向性,抗干扰能力和穿透能力强,传输距离远,功耗低。因此,无线电遥控技术更加适合于智能家居、消费类电子和机器人控制等领域。   本文以STM3
[单片机]
以<font color='red'>ARM</font>为核心的嵌入式体感遥控器的设计方案
ARM 系列 -- FS2410 开发板上的串口通信编程
一、目的 串口通信我们并不陌生,我们经常用串口来进行数据传输,可并不清楚它是如何工作的。那这一节我们就来揭开 ARM S3c2410 UART(Universal Asynchronous Receiver and Transmitter) 串口通信的神秘面纱。 二、代码 我们先来分析文件 crt0.s @ 文件 crt0.s @ 作用:设置堆栈指针 .text .global _start _start: ldr sp, =1024*4 bl main halt_loop: b halt_loop 你可能会有疑问,这个汇编文件有什么用?呵呵,这是因为我们的串口通信代码要用 C编写(用汇编可
[单片机]
ARM7系统中实现CF卡存储文件系统设计
随着微控制器性能的不断提高,嵌入式应用越来越广泛。但是目前市场上的大型商用嵌入式实时系统,价格昂贵,而且都针对特定的硬件平台。对于中小型系统开发,购买商用实时系统并不划算。 目前我们正着手将嵌入式系统软件应用于汽车卫星导航仪系统的一步开发。传统的嵌入式应用并不包括文件系统,而我们要实现的文件系统需要在车辆导航系统中实现地图数据文件的读写。因此它既要支持与MS-DOS兼容的文件系统也要支持其它类型的文件系统。 另一方面,从数码相机到MP3播放机,从掌上电脑到数码摄像机,CF(CompactFlash)卡由于具有体积小、兼容性强、价格相对低廉等诸多优点,在数码设备上的应用越来越广泛。但若想在CF卡与PC之间传递数据,通常不得不借助于专门
[单片机]
<font color='red'>ARM</font>7系统中实现CF卡存储文件系统设计
老查的ARM学习笔记:chapter-2(linux总线设备驱动详解)
1 总线设备驱动模型概述 随着技术的不断进步,系统的拓扑结构也越来越复杂,对智能电源管理,热插拔的支持要求也越来越高,2.3内核已经难以满足这些要求,为了适应这种形势需要,linux2.6内核提供了全新的内核设备模型。 总线的作用就是感知设备是否连接上usb,网卡等等,总线设备驱动模型更好的支持热插拔的设备,也更好的提供移植性。 在设备模型中,我们将看到,设备驱动主要是由总线,驱动程序,设备三个部分构成,通过这三个标准部件,把各种纷繁杂乱的设备归结过来,达到简化设备驱动编写的目的,下面我们就将按三个部分总线,驱动和设备来学习一下。 2 总线 1 总线的描述 在Linux 内核中, 总线由bus_type 结构表示,在这个结构中
[单片机]
老查的<font color='red'>ARM</font>学习笔记:chapter-2(linux总线设备驱动详解)
ARM体系结构详解之ARM寄存器
ARM有37个寄存器,其中31个通用寄存器,6个状态寄存器。   这里尤其要注意区别的是ARM自身寄存器和它的一些外设的寄存器的区别。   ARM自身是统一架构的,也就意味着37个寄存器无论在哪个公司的芯片里面都会出现。但是各家公司会对ARM进行外设的扩展,所以就出现了好多外设寄存器,一定要与这37个寄存器区别开来!!!   1、备份寄存器(R8-R14)   对于R8-R12来说,除在快速中断模式下,每个模式对应相同物理寄存器,所以在FIQ模式下可不必保护和恢复中断现场。   对于R13-R14来说,每个寄存器对应6个不同的物理寄存器,其中一个是用户模式和系统模式共用的。   寄存器R13常用做栈指针SP,除
[单片机]
使用jlink+gdbserver+insight调试ARM程序--配置insight
1. 下载insight-6.8a.tar.bz2 编译: ./configure --target=arm-linux --prefix=/opt/insight_arm --disable-werror (1) 其中--target=arm-linux会影响安装生成的可执行文件的名字,例如安装之后可执行文件的名字为: caodan@caodan-Ubuntu:/opt/insight_arm/bin$ ls arm-linux-gdb arm-linux-insight arm-linux-run tclsh8.4 wish8.4 (2) --prefix=/opt/insight_arm 的作用, 指定安装路径 (3) --
[单片机]
使用jlink+gdbserver+insight调试<font color='red'>ARM</font>程序--配置insight
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved