arm9中断向量重定位_STM32中断向量表的位置、重定向

屌丝女神>好乐宝博客arm9中断向量重定位_STM32中断向量表的位置、重定向STM32
中断向量表的位置
、重定向
我们也知道怎么跳到
main
函数了,那么,中断发⽣后,⼜是怎么跑到中
断⼊⼝地址的呢?从
stm32f10x.s
可以看到,已经定义好了⼀⼤堆的中断响应函
熟人作案数,这就是中断向量表,标号
__Vectors
表⽰中断向量表⼊⼝地址,例如:
AREA
RESET,
DATA,
READONLY
;
定义只读数据段,实际上是在
CODE
区(假设
STM32
FLASH
启动,则此中断向量表起始地址即为
0x8000000
)
EXPORT
__VectorsIMPORT
OS_CPU_SysTickHandler
IMPORT
OS_CPU_PendSVHandler
__Vectors
DCD
;
Top
of
Stack
DCD
Reset_Handler
; Reset Handler
DCD
NMI_Handler
;
NMI
Handler
DCD
HardFault_Handler
;
Hard
牙源性粘液瘤Fault
Handler
DCD
MemManage_Handler
;
MPU
Fault
Handler
DCD
BusFault_Handler
; Bus Fault Handler
DCD
UsageFault_Handler
;
Usage Fault Handler
这个向量表的编写是有讲究的,跟硬件⼀⼀对应不能乱写的,CPU
址就靠它了,
bin
⽂件开头就是他们的地址,参考⼿册
RM0008
10.1.2
节可
以看到排列。
我们再结合
CORTEX-M3
的特性,他上电后根据
boot
引脚来决定
PC
位置,
⽐如
boot工业节能十二五规划
设置为
flash
启动,则启动后
PC
跳到
0x08000000
。此时
CPU
会先取
2
个地址,第⼀个是栈顶地址,第⼆个是复位异常地址,故有了上⾯的写法,这样就跳到
reset_handler
那么这个
reset_handler
的实际地址是多少
.
下⾯的⼀堆例如
Nmi_handler
址⼜是多少呢?发⽣中断是怎么跑到这个地址的呢?下⾯挨个讲解。洞口墨晶石雕

本文发布于:2024-09-21 00:35:26,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/397505.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:地址   中断向量   定义   硬件   对应   不能   位置   编写
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议