ARM基础知识教程(三):ARM中异常中断的种类

发布者:小牛队最新更新时间:2016-06-30 来源: eefocus关键字:ARM  基础知识  异常中断 手机看文章 扫描二维码
随时随地手机看文章
 **复位(RESET) **

当处理器复位引脚有效时,系统产生复位异常中断,程序跳转到复位异常中断处理程序处执行。复位异常中断通常用在下面几种情况下:系统加电时;系统复位时;跳转到复位中断向量处执行成为软复位。

**未定义的指令**
当ARM处理器或者是系统中的协处理器认为当前指令未定义时,产生未定义的指令异常中断,可以通过改异常中断机制仿真浮点向量运算。

**软件中断**
这是一个由用户定义的中断指令。可用于用户模式下的程序调用特权操作指令。在实时操作系统中可以通过该机制西线系统功能调用。

**指令与取终止(PrefechAbort) **
如果处理器预取的指令的地址不存在,或者该地址不允许当前指令访问,当被预取的指令执行时,处理器产生指令预取终止异常中断。

**数据访问终止(DATAABORT)
如果数据访问指令的目标地址不存在,,或者该地址不允许当前指令访问,处理器产生数据访问终止异常中断

**外部中断请求(IRQ) **
当处理器的外部中断请求引脚有效,而且CPSR的寄存器的I控制位被清除时,处理器产生外部中断请求异常中断。系统中个外设通过该异常中断请求处理服务。

**快速中断请求(FIQ) **
当处理器的外部快速中断请求引脚有效,而且CPSR的F控制位被清除时,处理器产生外部中断请求异常中断

异常中断向量表及异常中断优先级
中断向量表指定了个异常中断及其处理程序的对应关系。他通常存放在存储地址的低端。在ARM体系中,异常中断向量表的大小为32字节,其中每个异常中断占据4个字节大小,保留了4个字节空间。
每个异常中断对应的中断向量表中的4个字节的空间中存放了一个跳转指令或者一个向PC寄存器中赋值的数据访问指令。通过这两种指令,程序将跳转到相应的异常中断处理程序处执行。当几个异常中断同时发生时,就必须按照一定的次序来处理这些异常中断。

各个异常中断的中断向量地址以及中断的处理优先级
中断向量地址 异常中断类型 异常中断模式 优先级(6最低)
0x00 复位 特权模式 1
0x04 未定义的指令 未定义指令终止模式 6
0x08 软件中断 特权模式 6
0x0C 指令预取终止 终止模式 5
0x10 数据访问终止 终止模式 2
0x14 保留 未使用 未使用
0x18 外部中断请求 IRQ模式 4
0x1C 快速中断请求 FIQ模式 3

 

在应用程序中安装异常中断处理程序
1.使用跳转指令:可以在异常中断对应异常向量表中特定位置放置一条跳转指令,直接跳转到该异常中断的处理程序。这种方法有一个缺点,即只能在32M空间范围内跳转。
2.使用数据读取指令LDR:使用数据读取指令LDR向程序计数器PC中直接赋值。这种方法分为两步:先将异常中断处理程序的绝对地址存放在存放在距离向量表4KB范围内的一个存储单元中;再使用数据读取指令LDR将该单元的内容读取到程序计数器PC中。 **在系统复位时安装异常中断处理程序**
1.地址0x00处为ROM的情况
使用数据读取指令LDR示例如下所示:
Vector_Init_Block
LDR PC, Reset_Addr
LDR PC, Undefined_Addr
LDR PC, SW_Addr
LDR PC, Prefeth_Addr
LDR PC, Abort_Addr
NOP
LDR PC, IRQ_Addr
LDR PC, FIQ_Addr

Reset_Addr DCD Start_Boot
Undefined_Addr DCD Undefined_Handle
SW_Addr DCD SWI_Handle
Prefeth_Addr DCD Prefeth_Handle
Abort_Addr DCD Abort_Handle
DCD 0
IRQ_Addr DCD IRQ_Handle
FIQ_Addr DCD FIQ_Handle
使用跳转指令的示例如下所示:
Vector_Init_Block
BL Reset_Handle
BL DCD Undefined_Handle
BL SWI_Handle
BL Prefeth_Handle
BL Abort_Handle
NOP
BL IRQ_Handle
BL FIQ_Handle
2.地址0x00处为RAM的情况
地址0x00处为RAM时,中断向量表必须使用数据读取指令直接指向PC中赋值的形式。而且,必须使用下面的代码巴中断向量表从ROM中复制到RAM中地址0x00开始处的存储空间中:

MOV r8,#0
ADR r9,Vector_Init_Block
;复制中断向量表(8字)
LDMIA r9!,(r0-r7)
STMIA r8!,(r0-r7)
;复制保存各中断处理函数地址的表(8字words)
LDMIA r9!,(r0-r7)
STMIA r8!,(r0-r7)

 

关键字:ARM  基础知识  异常中断 引用地址:ARM基础知识教程(三):ARM中异常中断的种类

上一篇:ARM基础知识教程(一):ARM简介
下一篇:ARM基础知识教程(四):ARM存储系统概述

推荐阅读最新更新时间:2024-03-16 14:58

Altera发布基于ARM的SoC FPGA系列产品
Altera公司近日发布其基于ARM的SoC FPGA系列产品,在单芯片中集成了28-nm Cyclone® V和Arria® V FPGA架构、双核ARM® Cortex™-A9 MPCore™处理器、纠错码(ECC)保护存储器控制器、外设和宽带互联等。这些SoC FPGA继承了ARM丰富的软件开发工具、调试器、操作系统、中间件和应用程序等辅助系统功能。用户可以利用Altera的SoC FPGA开发流程,迅速建立可定制基于ARM的系统,减小了各种行业中嵌入式系统的电路板面积、功耗和成本,同时提升了性能,这些行业包括,汽车、工业、视频监控、无线基础设施、计算机和存储等。 ARM处理器部门副总裁Jim Nicholas评论说:“基于2
[单片机]
KST-STM32学习之基础知识
STM32上电复位时I/O口为高阻状态,复位结束后,GPIO端口引脚默认为浮空输入。 ###1、三大资源 单片机用户来讲,单片机提供给的三大资源分别是程序存储空间、数据存储空间、特殊功能寄存器。 ###2、STM32F103ZE 介绍 512K 字节的 FLASH(程序存储空间) 64K 字节的静态 SRAM(数据存储空间) 大量的特殊功能寄存器提供给用户来实现其功能。 STM32F103ZE 共 144 个引脚 3.3V供电,注意与51的5V供电区分! ###3、工作的最小系统 同51单片机类似,STM32仍需要单片机工作的最小系统,即:电源、晶振、复位。 电源电路 STM32多电源供电,一个VDD引脚附
[单片机]
KST-STM32学习之<font color='red'>基础知识</font>
微软捧场 ARM服务器芯片底气更足
    微软参与了ARM服务器架构(SBSA)规范的制定,这家软件巨头的加入将大大加快ARM服务器研发的脚步,也许不久后我们就能见到安装了Windows Server和Hyper-v的ARM服务器。微软的参与非常有利于ARM服务器平台的标准化。http://t.cn/8FoEuGK
[手机便携]
电器的基础知识
任何一种继电器控制系统均由三部分组成: 输入部分 逻辑部分 输出部分 (1) 输入部分:由各类按钮开关、行程开关、接近开关、转换开关等主令电器构成。 主令电器——自动控制系统中用于发送控制指令的电器。 (2) 逻辑部分:由各种继电器及其触点组成的实现一定逻辑功能的控制线路。 继电器——一种根据某种输入信号,接通或断开控制电路,实现自动控制和保护电力拖动装置的自动电器。 (3) 输出部分:由各种电磁阀线圈,接通电动机的各种接触器和信号指示灯等执行电器构成。 接触器——是一种用来频繁地接通或断开交、直流主电路及大容量控制电路的自动切换电器。是一种依靠电磁力的作用使触头闭合或分离来接通和断开电动机(或其他用电设备)电路的
[模拟电子]
基于DSP、DDS和ARM的雷达中频信号模拟器设计与实现
雷达信号模拟器是模拟技术与雷达技术相结合的产物。它通过模拟的方法产生雷达回波信号,以便在实际雷达系统前端不具备的条件下对雷达系统后级进行调试。随着数字技术的进步,高速、超大规模集成电路的使用,雷达信号模拟系统正朝着灵活、通用的方向发展。笔者设计了一种基于PC+ARM+DSP+DDS体系结构的能家长雷达中频信号模拟器,介绍了该系统的硬件设计,并以模拟相参数脉冲雷达动目标信号为例,介绍了本系统的应用。 1 系统结构设计 现代雷达信号模拟的设计偏重于运用数字化方式实现,随着实时数字信号处理技术的发展,PC+DSP+D/A的体系结构成了雷达模拟器实现的主要方式。直接数字频率合成技术(DDS)以其在频率捷变速度、相位连续性、相对带宽、高
[单片机]
基于DSP、DDS和<font color='red'>ARM</font>的雷达中频信号模拟器设计与实现
stm32基础知识汇总有哪些是你不知道的呢
  STM32是一种功能比较强大的32位单片机,广泛应用于各种嵌入式设备中,由于它的普及性及丰富的资源,受到广大嵌入式开发者的喜欢,但要想学好用好STM32也并非易事,毕竟,相比8位、16位产品,STM32要复杂得多。   STM32的时钟   其中,高速时钟(HSE和HSI)提供给芯片主体的主时钟.低速时钟(LSE和LSI)只是提供给芯片中的RTC(实时时钟)及独立看门狗使用,图中可以看出高速时钟也可以提供给RTC。内部时钟是在芯片内部RC振荡器产生的,起振较快,所以时钟在芯片刚上电的时候,默认使用内部高速时钟。而外部时钟信号是由外部的晶振输入的,在精度和稳定性上都有很大优势,所以上电之后我们再通过软件配置,转而采用外部
[单片机]
ARM汇编语言学习笔记(一)介绍
目的 在看了某位大佬的文章之后也想写一点自己在学习汇编的时候的学习笔记。 新手入门,主要基于韦东山老师的新一期代码来实现操作,掌握汇编的基础操作。 以一个菜鸟的角度来看待汇编代码问题,希望可以了解代码的具体运作过程。 把问题拿出来,分析总结。希望方便后来的自己和后来学习的伙伴,不要做 double work。 一、汇编语言是什么 这是百度百科的介绍:汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过
[单片机]
ARM7的嵌入式Web服务器设计技术
1 概述 随着嵌入式技术和网络技术的发展,嵌入式设备通过网络接入局域网或者Internet逐步成为一种发展趋势。嵌入式Web服务器技术以其良好的通用性和交互性为嵌入式设备提供网络接口,对嵌入式设备实现远程管理和控制,是实现嵌入式设备网络化的重要技术。 本设计提出的基于ARM7的嵌入式Web服务器设计有三大技术亮点: ①采用浏览器/服务器(B/S)通信架构。与客户机/服务器通信架构相比,B/S架构无需在客户端上开发专门的应用软件,只需从浏览器上输入IP地址,直接对设备进行远程监控。 ②传统的Web服务器需要一个数据库系统的支持用来保存内容,因而对用于存储的硬件设备要求更高,增加了成本。本设计只需构建一个简单的文件系统
[单片机]
<font color='red'>ARM</font>7的嵌入式Web服务器设计技术
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved