ARM中的异常与中断总共有7种

按响应优先级从高到低

按中断向量表顺序

复位

复位

数据中止

未定义指令中断

FIQ

SWI

IRQ

预取指令中止

预取指令中止

数据中止异常

未定义指令、SWI

IRQ

FIQ

ARM要求中断向量表必须放置在从0地址开始,连续8×4字节的空间内(ARM720T和ARM9、ARM10也支持从0xFFFF0000开始的高地址向量表),各异常和中断向量在向量表中的位置如下

地址

中断

0x00

Reset

0x04

Undef

0x08

SWI

0x0C

Prefetch Abort

0x10

Data Abort

0x14

(Reserved)

0x18

IRQ

0x2C

FIQ

当中断产生时ARM处理器强制把PC指针置为中断向量表中相对应的向量地址。因为每个中断向量在向量表中只有一个字节的存储空间,只能存放一条指令,所以通常存放跳转指令,使程序跳转到存储器的其他地方,再执行中断处理。

中断向量表的实现程序通常如下

AREA Boot,CODE,READONLY

ENTRY

B Reset_Handler ; Reset_Handler is a label

B Undef_Handler

B SWI_Handler

B PreAbort_Handler

B DataAbort_Handler

B ;for reserved interrupt, stop here

B IRQ_Handler

B FIQ_Handler

其中的关键字ENTRY是指定编译器保留这段代码,因为编译器可能会认为这段代码是冗余代码,将其优化。链接的时候要确保这段代码被连接到0地址处,并且 作为整个程序的入口点(ENTRY并非总是用来设置程序的入口点的,所以通常需要在链接选项里面显式的设置程序入口点)。

arm9 中断向量 重定位_ARM的启动和中断向量表相关推荐

  1. arm9 中断向量 重定位_STM32中断向量表的位置,重定向

    这篇文章已经说了 STM32 的启动过程: http://blog.csdn.net/lanmanck/article/details/8252560 我们也知道怎么跳到main函数了,那么,中断发生 ...

  2. arm9 中断向量 重定位_关于STM32中断向量表的位置 、重定向问题

    关于 STM32 中断向量表的位置 .重定向问题 首先我们需要跳到 main 函数,这个就不多说了.那么,中断发生后,又 是怎么跑到中断入口地址的呢?从 stm32f10x.s 可以看到,已经定义好了 ...

  3. S5PV210裸机之重定位

    1.重定位相关概念 位置无关码(PIC,position independent code):汇编源文件被编译成二进制可执行文件时编码方式与位置(内存地址)无关.  位置有关码:汇编源文件被编译成二进 ...

  4. 第四天:关看门狗、设置栈、控制icache、重定位、链接脚本

    1.汇编写启动代码:关看门狗 什么是看门狗? 看门狗(watch dog timer看门狗定时器),比如:家门口有一只狗,这个狗定时会饿(譬如两小时一饿),狗饿了就会胡乱咬人,人进进出出要想保证安全必 ...

  5. 《5.SDRAM和重定位relocate》

    转自 https://edu.csdn.net/lecturer/505 朱老师物联网大讲堂 <5.SDRAM和重定位relocate> 第一部分.章节目录 1.5.1.汇编写启动代码之关 ...

  6. 嵌入式linux-----ARM裸机(5)-----SDRAM和重定位relocate

    1.看门狗watch dog timer 现实中因为一些外部因素,电子设备经常会跑飞或者死机(譬如极端炎热.极端寒冷.工业复杂场合).在这种情况下我们希望设备自动复位而不需要人工干预(无人值守).看门 ...

  7. 韦东山第一期学习笔记——重定位

    重定位 说明 必须知道的几个概念 什么是代码重定位? 什么是位置无关码 什么是运行地址 为什么要代码重定位? nand flash启动的情况 nor flash启动的情况 两种方式的重定位 代码重定位 ...

  8. linux 重定位arm,Arm linxu启动过程分析(一)

    本文着重分析 FS2410 平台 linux-2.6.14 内核启动的详细过程,主要包括: zImage 解压缩阶段. vmlinux 启动汇编阶段. startkernel 到创建第一个进程阶段三个 ...

  9. Linux从头学06:16张结构图,彻底理解【代码重定位】的底层原理

    作 者:道哥,10+年的嵌入式开发老兵. 转 载:欢迎转载文章,转载需注明出处. 文章目录 程序的结构 1. 程序头(Header)的描述信息 2. 关于汇编地址 bootloader 把程序从硬盘读 ...

最新文章

  1. Science Robotics:新型多足机器人可自行组装,零件损坏时也能继续运动
  2. VC问题 IntelliSense:“没有可用的附加信息”,[请參见“C++项目 IntelliSense 疑难解答”,获得进一步的帮助]...
  3. 视频图像处理平台对比_对比传统智能结算,戈子视觉结算有了质的改变
  4. vue 计算属性和data_Vue:计算属性
  5. 信息学奥赛一本通(1027:输出浮点数)
  6. CSS3 背景裁剪区域 background-clip属性
  7. c51两个定时器中断冲突_STM32定时器与中断整理
  8. SCOM 2012 R2监控Microsoft Azure服务(2)配置Azure监控
  9. 最近和一个35岁的朋友聊天,他最近在找工作
  10. 关于java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to 实体类
  11. C++按位异或运算符
  12. ScreenCapture
  13. 我奋斗了18年不是为了和你一起喝咖啡。
  14. 群赛 round#5 解题报告(superoxide,choice,rpwt)
  15. 从CentOS官网下载系统镜像详细教程
  16. 再也不用发愁文献翻译了(完全免费)
  17. android新版本怎么下载安装,android 新版本下载 安装
  18. android官方自带下拉刷新功能
  19. 带空格直角三角形图案
  20. SQL数据库笛卡尔积、投影、选择、连接运算

热门文章

  1. 默纳克系统服务器有什么用,默纳克服务器设置密码
  2. ANSA二次开发 - 查询与设置ANSA对象成员变量值
  3. 华为linux基础入门,Linux入门篇 —— Shell详解
  4. 子舱位看机票查询接口的质量
  5. 高铁站检票口交通流时-空模式分析:以北京南,上海虹桥,广州南站为例
  6. 关于Hessian矩阵的图像增强
  7. ▲芯驰科技CEO仇雨菁
  8. 尤尼克斯nr68_YONEX尤尼克斯NR-60(NR60)羽毛球拍(永恒的经典,CH行货)
  9. ui设计需要做android和苹果版本,UI知识,安卓和苹果的界面设计之尺寸规范
  10. 03-shell 拼接字符串