OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3590|回复: 1

关于NVIC偏移地址的

[复制链接]

32

主题

883

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4036
金钱
4036
注册时间
2015-11-14
在线时间
545 小时
发表于 2016-6-20 20:13:24 | 显示全部楼层 |阅读模式
1金钱
关于NVIC向量偏移地址对齐的疑惑

图3

图3

图2

图2

图1

图1



图1位周立功的CM3技术参考手册第90页的截图
图2为Cortex-M3权威指南第113页的截图
图3为原子的MINI开发板寄存器源代码sys.c文件的截图


按照图1所说的,中断的个数+16个异常得到的个数要与下一个2的乘幂成整数倍数的关系,也就是64,(假设是21个中断+16=37,2的乘幂整数倍就是64)


按照图2所说的,这里也假设有21个中断,那么2的乘幂整数倍也是64,为什么这里需要在乘4呢?


图3的代码Offset & 0x1FFFFF80 这样是把低7位强制为0,这样的话,向量的偏移地址也只是128的整数倍(这个与图2所说的相符合),而不是256的整数倍。前两个截图是哪个有问题还是另有原因呢?
请教一下各位?









最佳答案

查看完整内容[请看2#楼]

1,*4是因为一个地址占4个字节。地址必须是4倍关系。 2,这里是可以修改一下,改成0X200的倍数。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-6-20 20:13:25 | 显示全部楼层
1,*4是因为一个地址占4个字节。地址必须是4倍关系。 2,这里是可以修改一下,改成0X200的倍数。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-10 13:38

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表