【原创】TI C2833x介绍---复位与中断(7)
0赞在2833x中断向量表映射被设计为可以映射到RAM中的四个区域,包括M0 SARAM、M1 SARAM、Boot Rom和PIE,但是实际上暂时只有PIE被用到了(和别的保留资源一样,方便后续器件升级时进行尽可能少的改动,这也算是硬件里面的模块化吧)。映射的模式被以下几个位控制,进行译码:
VMAP: VMAP是CPU状态寄存器ST的bit3位,在器件复位后该位被置位。其修改方法是:写1,或者使用SETC/CLRC VMAPV指令(DSC里面许多位都是写1清楚,写0无效,这类操作方法以后可以做一个小小的研究)。
M0M1MAP:M0M1MAP是CPU状态寄存器ST的bit11位,同样是在器件复位后被置位,写1,或者使用SETC/CLRC M0M1MAP指令来修改。器件手册上说这个位一般情况下都要保持为1,等于0的模式是TI用的测试模式,我们用户就不必关心了。。。
ENPIE:ENPIE是PIE控制寄存器PIECTRL的第0位,其上电复位时的默认值为0(即PIE未被使能)。它的操作方法比较简单,直接对PIECTRL的相应位赋值就行了(地址是0x00000CE0)。
所以概括中断向量表的内存映射如下:
中断向量 |
向量的内存地址段 |
地址范围 |
VMAP |
M0M1MAP |
ENPIE |
M1向量 |
M1 SARAM模块 |
0x000000- 0x00003F |
0 |
0 |
X |
M0向量 |
M0 SARAM模块 |
0x000000- 0x00003F |
0 |
1 |
X |
BROM向量 |
Boot ROM模块 |
0x3FFFC0- 0x3FFFFF |
1 |
X |
0 |
PIE向量 |
PIE模块 |
0x000D00- 0x000DFF |
1 |
X |
1 |
在2833x DSC中,M0和M1是TI测试专用的,那我们不需要那么复杂测试的时候,或者说感觉SRAM空间比较紧张的时候,就可以把M0和M1 SARAM做为完全正常的RAM空间进行使用了。当然了,2833x的RAM空间大的很,用了多年还未遇到过RAM空间不足导致编译时某些段太大放不下的情况。