paradoxfx

【原创】TI C2833x介绍---复位与中断(7)

0
阅读(3098)

在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空间不足导致编译时某些段太大放不下的情况。

Baidu
map