STM32 中断实现到底是如何执行的

2019-03-23 19:09发布

NVIC_SetVectorTable  这个是STM32的库函数 实现的是 中断向量的重映射,这个东西是怎么访问的,
起始地址是0x08000000  这个是默认的中断向量起始地址, 那么我设置便宜0x1000 呢?
那么 中断 是不是先跳到默认的中断向量然后再跳到 新的中断向量,还是一步到位直接跳到 新的中断向量。网上看了下 就是本论坛的资料 发现 有点模糊,希望各位友人有空给鄙人讲解讲解,鄙人不甚感激! 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
zhaojun_xf
1楼-- · 2019-03-24 03:01
 精彩回答 2  元偷偷看……
Study_Stellaris
2楼-- · 2019-03-24 07:24
/**
  * @brief  Sets the vector table location and Offset.
  * @param  NVIC_VectTab: specifies if the vector table is in RAM or FLASH memory.
  *   This parameter can be one of the following values:
  *     @arg NVIC_VectTab_RAM
  *     @arg NVIC_VectTab_FLASH
  * @param  Offset: Vector Table base offset field. This value must be a multiple
  *         of 0x200.
  * @retval None

这个 API  在 stdperipherallib 中的 misc.c 中.
主要是设置 NVIC  的中断向量函数的位置和偏移量.
比如有些人想在 SRAM 中调试程序,就会用这个.
通常用不上.
我现在基本不在 SRAM 中调试程序了,麻烦,没什么太大的意义.
终极菜鸟
3楼-- · 2019-03-24 10:48
楼上两位 都没明白我的意思,可能是我没说明白,我想问,我如果 手动设置了 中断映射,中断的响应具体过程是如何的,这个我不是很明白,我的意思就是 是跳到 原来的 复位中断向量 查询相应的中断,还是直接跳到新的中断向量地址上!
终极菜鸟
4楼-- · 2019-03-24 14:20
 精彩回答 2  元偷偷看……
终极菜鸟
5楼-- · 2019-03-24 15:59
能否 讲解 设置过后 中断相应的具体过程吗?
zhaojun_xf
6楼-- · 2019-03-24 18:06
简单的说,中断产生后还是会指向未映射之前的固定地址,只是通过重映射找到真正的处理地址。所以,通过这个重映射进行一次跳转。

一周热门 更多>