向量表偏移量的限制
来源:互联网 发布:阿里云免费邮箱注册 编辑:程序博客网 时间:2024/05/21 10:19
原帖
在<<权威指南>>第一百零四页,有这么一段话:
NVIC 中有一个寄存器,称为“向量表偏移量寄存器”(在地址0xE000_ED08 处),通过修改它的值就能定位向量表。但必须注意的是:向量表的起始地址是有要求的:必须先求出系统中共有多少个向量,再把这个数字向上增大到是2 的整次幂,而起始地址必须对齐到后者的边界上。例如,如果一共有32 个中断,则共有32+16(系统异常)=48 个向量,向上增大到2 的整次幂后值为64,因此地址
地址必须能被64*4=256 整除,从而合法的起始地址可以是:0x0, 0x100, 0x200 等。
向量表偏移量寄存器,也就是SCB->VTOR.它的第29位,用来标识向量表是在CODE区还是RAM区,从而0X1,就是最高3位不去动,这好理解. 但是低位,根据上面这段话的理解,STM32自己有60个中断,加上CM3的16个,总共有76个中断,扩大到2的整次幂,那就是128,然后再乘以4,得到512,也就是0X200.根据这样计算,合法的偏移地址应该是0X0,0X200,0X400,0X600… 因此,在此处应该&0X1FFF FE00.才对.
以上是我的理解.实际上确是&0X1FFF FF80;这点,我也有疑问.
0 0
- 向量表偏移量的限制
- 向量表偏移量寄存器(VTOR)在MultiTimer.c上的使用
- 工程添加boot后需要设置----中断向量表的偏移量设置
- STM32中断向量表偏移量0x200详解
- 地址的偏移量
- 偏移量的问题
- EFM32G(Cortex-M3 内核)NVIC 向量表偏移配置
- 异常向量表和中断向量表的区别
- 中断向量表的结构
- 异常向量表的设定
- 异常向量表的创建
- 结构体的偏移量
- 结构体的偏移量
- 关于偏移量的理解
- 结构体的偏移量
- UITableView偏移量的坑
- 偏移量
- 偏移量
- Vim最常用的命令
- CSS之文本修饰篇
- EF 通用数据层父类方法小结
- iOS开发-文件管理(一)
- String、StringBuffer与StringBuilder之间区别
- 向量表偏移量的限制
- 五种Toast详解
- 《Linux操作系统分析》笔记2
- Refreshing Materialized Views
- iOS和JS交互
- Android自定义ViewGroup之子控件的自动换行和添加删除
- java区分访问端来源
- hrbust 哈理工oj 1418 夏夜星空【带权并查集】
- JEPF 软件快速开发平台