中断向量表存储在哪里 产生中断后如何跳转到中服务函数的入口地址处

一、中断向量表里有什么?它放在那里?到底有什么用?

1、中断向量表实际上就是存放在Code区(也就是STM32内部的Flash区)从0x00000000地址开始的一个数组,数组的成员为4个字节,而且这些数组在启动文件的时候已经初始化好。

2、STM32根据内核和外设中断优先级,同一标号,标号越小,优先级越大。然后把内核和外设的中断服务函数的地址放在这个数组里面,数组的下标跟中断的优先级对应,我们也把这个中断的编号叫做中断向量。

3、在启动文件执行的时候,内核和每个外设的中断服务函数的地址都是已经确定好的,地址就存放在中断向量表中,而且在启动文件里面已经写好了中断服务函数,只是这些中断服务函数为空,而且带[weak]弱定义,那么我们就需要在C文件里面重新实现这个中断服务函数,用户写这个中断服务函数的时候,函数名必须跟启动文件里面写的中断函数名对应,因为函数名对应的就是中断服务函数的地址,如果中断服务函数名和启动文件的名字不一样,就默认启动文件里面预先写好的空的中断服务函数,而且是一个死循环,程序就会一直卡死在中断服务函数里面。

二、那内核是如何响应中断的呢?

当中断来临的时候,首先取向量,每个中断的中断向量不一样,然后根据向量查询中断向量表,根据里面的地址找到中断服务函数,从而实现整个中断的响应过程。

https://blog.csdn.net/ZDQ1431/article/details/106374285?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164252116216780269821456%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=164252116216780269821456&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allbaidu_landing_v2~default-1-106374285.first_rank_v2_pc_rank_v29&utm_term=%E4%B8%AD%E6%96%AD%E5%90%91%E9%87%8F%E8%A1%A8%E5%AD%98%E5%82%A8%E5%9C%A8%E5%93%AA%E9%87%8C&spm=1018.2226.3001.4187

中断向量表

https://blog.csdn.net/followingturing/article/details/6256729?ops_request_misc=&request_id=&biz_id=102&utm_term=%E4%B8%AD%E6%96%AD%E5%90%91%E9%87%8F%E8%A1%A8%E5%AD%98%E5%82%A8%E5%9C%A8%E5%93%AA%E9%87%8C&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-0-6256729.first_rank_v2_pc_rank_v29&spm=1018.2226.3001.4187

ARM中断向量表与响应流程

https://blog.csdn.net/honour2sword/article/details/40213417?ops_request_misc=&request_id=&biz_id=102&utm_term=%E4%B8%AD%E6%96%AD%E5%90%91%E9%87%8F%E8%A1%A8%E5%AD%98%E5%82%A8%E5%9C%A8%E5%93%AA%E9%87%8C&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-1-40213417.first_rank_v2_pc_rank_v29&spm=1018.2226.3001.4187

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值