TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320F28377S: cla模块调试及内存部分遇到的问题,CLA内存寻址和实际分配地址不同

Part Number:TMS320F28377S

刚刚接触CLA模块,跟着例程和相关资料试着跑了一下,但是在调试过程中遇到了一些问题,麻烦帮忙解决一下。

CLA模块的数据内存分配了RAMLS0和LS1,程序内存分配给了RAMLS2和LS3,如下所示

RAMLS2_LS3       : origin = 0x009000, length = 0x000FFF

Cla1Prog : LOAD = FLASHAB,
RUN = RAMLS2_LS3,
LOAD_START(_Cla1funcsLoadStart),
LOAD_SIZE(_Cla1funcsLoadSize),
RUN_START(_Cla1funcsRunStart),
PAGE = 0

CLADataLS0 : > RAMLS0, PAGE=1 //cla数据存储空间
CLADataLS1 : > RAMLS1, PAGE=1

Cla1ToCpuMsgRAM : > CLA1_MSGRAMLOW, PAGE = 1 //cla与cpu数据传递空间
CpuToCla1MsgRAM : > CLA1_MSGRAMHIGH, PAGE = 1

#ifdef CLA_C
// CLA C compiler sections
//
// Must be allocated to memory the CLA has write access to
//CLA存储临时数据
CLAscratch :
{ *.obj(CLAscratch)
. += CLA_SCRATCHPAD_SIZE;
*.obj(CLAscratch_end) } > RAMLS1, PAGE = 1

.scratchpad : > RAMLS1, PAGE = 1
.bss_cla : > RAMLS1, PAGE = 1
.const_cla : > RAMLS1, PAGE = 1
#endif //CLA_C

但在调试过程中,cla target connected-cpu运行/cpu-cla target connected均显示No source available for "0xa000",个人判断为cla程序寻址地址错误,0xa000为LS4的内存地址。

在cla_init.c中给CLA的程序空间赋值给定权限的部分配置如下,后续纠错过程中发现No source available for "0xa000"的错误会随着这个配置变化,假设我仅配置LS2它会报错No source available for "0x9800",不清楚是否有所关联。

MemCfgRegs.LSxMSEL.bit.MSEL_LS2 = 1;//将存储器所有权分配给CLA
MemCfgRegs.LSxCLAPGM.bit.CLAPGM_LS2 = 1;

MemCfgRegs.LSxMSEL.bit.MSEL_LS3 = 1;
MemCfgRegs.LSxCLAPGM.bit.CLAPGM_LS3 = 1;

jt w:

已经找到问题原因,这块的内存分配,_FLASH缺少定义所以没生效,但是例程里是哪里进行定义的并没有找到

#ifdef _FLASH // // Copy over code from FLASH to RAM // memcpy((uint32_t *)&Cla1funcsRunStart, (uint32_t *)&Cla1funcsLoadStart, (uint32_t)&Cla1funcsLoadSize);#endif //_FLASH

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F28377S: cla模块调试及内存部分遇到的问题,CLA内存寻址和实际分配地址不同
分享到: 更多 (0)