DSP

DSP28377扩充CLA程序空间的问题

2019-07-13 10:26发布

     TI公司的TMS320F28377使用的跟28035和2806X系列类似的构架,具有CLA模块,可以与CPU并行处理数据,可以极大的缩短计算时间。并且在CCS5.2版本以上开放了C语言编程功能,相对于之前的CLA要求汇编语言编程,提高了编程效率,同时也牺牲了程序执行的效率,使得程序量变大。     我之前使用的CLA程序量较少,用的是28377例程里的cmd分配,编译时提示放置CLA的程序存储空间不足,我就将之前的0x0800的程序空间扩充到了0x1000,编译通过,但是程序执行出错,一直卡在CLA里面,最后定位的问题是虽然我在CMD文件中扩充了CLA的程序存储空间,但是CLA依然只能够执行0x0800大小的代码,也就是分配的空间并没有用。    问题的解决:查看datasheet发现,CLA部分的程序和数据在RAM中的存储都必须在LSxRAM地址空间内。我采用的方式是将LS3RAM的空间从默认0x0800扩大到0x1800,并且注释掉LS4RAM和LS5RAM,避免地址冲突。最关键的是,在进行CLA初始化时,即使注释掉了LS4RAM和LS5RAM,但是这两个部分的空间仍旧需要被初始化,才能够被CLA使用,问题解决。 代码如下: cla初始化代码

  MemCfgRegs.LSxMSEL.bit.MSEL_LS3 = 1;
           MemCfgRegs.LSxCLAPGM.bit.CLAPGM_LS3 = 1;
           MemCfgRegs.LSxMSEL.bit.MSEL_LS4 = 1;
           MemCfgRegs.LSxCLAPGM.bit.CLAPGM_LS4 = 1;
           MemCfgRegs.LSxMSEL.bit.MSEL_LS5 = 1;
           MemCfgRegs.LSxCLAPGM.bit.CLAPGM_LS5 = 1;