arm9 中断向量 重定位_ARM的启动和中断向量表
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的启动和中断向量表相关推荐
- arm9 中断向量 重定位_STM32中断向量表的位置,重定向
这篇文章已经说了 STM32 的启动过程: http://blog.csdn.net/lanmanck/article/details/8252560 我们也知道怎么跳到main函数了,那么,中断发生 ...
- arm9 中断向量 重定位_关于STM32中断向量表的位置 、重定向问题
关于 STM32 中断向量表的位置 .重定向问题 首先我们需要跳到 main 函数,这个就不多说了.那么,中断发生后,又 是怎么跑到中断入口地址的呢?从 stm32f10x.s 可以看到,已经定义好了 ...
- S5PV210裸机之重定位
1.重定位相关概念 位置无关码(PIC,position independent code):汇编源文件被编译成二进制可执行文件时编码方式与位置(内存地址)无关. 位置有关码:汇编源文件被编译成二进 ...
- 第四天:关看门狗、设置栈、控制icache、重定位、链接脚本
1.汇编写启动代码:关看门狗 什么是看门狗? 看门狗(watch dog timer看门狗定时器),比如:家门口有一只狗,这个狗定时会饿(譬如两小时一饿),狗饿了就会胡乱咬人,人进进出出要想保证安全必 ...
- 《5.SDRAM和重定位relocate》
转自 https://edu.csdn.net/lecturer/505 朱老师物联网大讲堂 <5.SDRAM和重定位relocate> 第一部分.章节目录 1.5.1.汇编写启动代码之关 ...
- 嵌入式linux-----ARM裸机(5)-----SDRAM和重定位relocate
1.看门狗watch dog timer 现实中因为一些外部因素,电子设备经常会跑飞或者死机(譬如极端炎热.极端寒冷.工业复杂场合).在这种情况下我们希望设备自动复位而不需要人工干预(无人值守).看门 ...
- 韦东山第一期学习笔记——重定位
重定位 说明 必须知道的几个概念 什么是代码重定位? 什么是位置无关码 什么是运行地址 为什么要代码重定位? nand flash启动的情况 nor flash启动的情况 两种方式的重定位 代码重定位 ...
- linux 重定位arm,Arm linxu启动过程分析(一)
本文着重分析 FS2410 平台 linux-2.6.14 内核启动的详细过程,主要包括: zImage 解压缩阶段. vmlinux 启动汇编阶段. startkernel 到创建第一个进程阶段三个 ...
- Linux从头学06:16张结构图,彻底理解【代码重定位】的底层原理
作 者:道哥,10+年的嵌入式开发老兵. 转 载:欢迎转载文章,转载需注明出处. 文章目录 程序的结构 1. 程序头(Header)的描述信息 2. 关于汇编地址 bootloader 把程序从硬盘读 ...
最新文章
- Science Robotics:新型多足机器人可自行组装,零件损坏时也能继续运动
- VC问题 IntelliSense:“没有可用的附加信息”,[请參见“C++项目 IntelliSense 疑难解答”,获得进一步的帮助]...
- 视频图像处理平台对比_对比传统智能结算,戈子视觉结算有了质的改变
- vue 计算属性和data_Vue:计算属性
- 信息学奥赛一本通(1027:输出浮点数)
- CSS3 背景裁剪区域 background-clip属性
- c51两个定时器中断冲突_STM32定时器与中断整理
- SCOM 2012 R2监控Microsoft Azure服务(2)配置Azure监控
- 最近和一个35岁的朋友聊天,他最近在找工作
- 关于java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to 实体类
- C++按位异或运算符
- ScreenCapture
- 我奋斗了18年不是为了和你一起喝咖啡。
- 群赛 round#5 解题报告(superoxide,choice,rpwt)
- 从CentOS官网下载系统镜像详细教程
- 再也不用发愁文献翻译了(完全免费)
- android新版本怎么下载安装,android 新版本下载 安装
- android官方自带下拉刷新功能
- 带空格直角三角形图案
- SQL数据库笛卡尔积、投影、选择、连接运算