NVIC的向量表偏移寄存器设置问题(已解决)

2019-07-20 23:51发布

void MY_NVIC_SetVectorTable(u32 NVIC_VectTab, u32 Offset) 
{
   //检查参数合法性
 assert_param(IS_NVIC_VECTTAB(NVIC_VectTab));
 assert_param(IS_NVIC_OFFSET(Offset));   
 SCB->VTOR = NVIC_VectTab|(Offset & (u32)0x1FFFFF80);//设置NVIC的向量表偏移寄存器
 //用于标识向量表是在CODE区还是在RAM区
}

问个问题,为什么(Offset & (u32)0x1FFFFF80)  为什么使用0x1FFFFF80,0x1FFFFF80是怎样得来的呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
38条回答
正点原子
1楼-- · 2019-07-22 19:42
 精彩回答 2  元偷偷看……
gz_ddc
2楼-- · 2019-07-22 23:32
如果是103RBT6 cpu,那我写成 0X1FFFFE00 会出错吗?
另外,如果是0x100,那么意味着STM32的中断数+16个系统异常中断数<=64是吗?  STM32各系列中是有一款的中断数少于等于48( 64-16 )的吗?
谢谢。


回复【14楼】正点原子:
---------------------------------
正点原子
3楼-- · 2019-07-23 03:42
回复【15楼】gz_ddc:
---------------------------------
会不会出错,自己测试一下就知道了.
至于为什么是100,貌似在CM3权威指南说了,你看看吧.
1051477875
4楼-- · 2019-07-23 09:35
回复【11楼】正点原子:

---------------------------------
为什么“低7位没有用到,所以&0X80”啊。谢谢
正点原子
5楼-- · 2019-07-23 14:20
清零.
qdwxj112
6楼-- · 2019-07-23 16:29
 精彩回答 2  元偷偷看……

一周热门 更多>