刚接触TMS320VC5502遇到的第一个函数就是CSL_init(),为了弄明白它,我查阅了TMS320VC5502的Datasheet,下面是学习笔记:
DSP的CSL(Chip Support
Library)提供了配置和控制片上外设的C语言API函数。这使DSP的开发效率得到很大的提升。但是,在使用CSL提供的API函数之前需要注意两件事:
第一件事是:必须分配一个名叫.csldata的段。
编译时,编译器会将CSL的API函数所用到的用于配置和控制的数据保存在名叫.csldata的数据段里,并且要求该段必须在数据空间的前64K地址空间内。(注:DSP的数据空间和程序空间有自己独立的寻址空间)
所以在CMD文件里会发现有下面这句话:
.csldata >
DATA
第二件事是:必须将地址0x7b保留在内存里,不要使用。
由于内存配置会不一样,所以分配的.csldata段的首地址也会不一样,为了便于CSL访问.csldata段,CSL会默认在地址为0x7b这个地方获取.csldata段的首地址,即自动将0x7b视为指向.csldata段的指针。那么就需要初始化该指针,函数void
CSL_init(void);的作用就是将.csldata的地址保存到0x7b这里。所以在所用调用的CSL函数的最前面需要调用CSL_init,并且任何视图改变地址为0x7b里面的值的操作都将导致CSL函数出现错误,这是很明显的。
|