Other Parts Discussed in Thread:C2000WARE
"../2837xD_RAM_CLA_lnk_cpu1.cmd", line 121: error #10099-D: program will not fit into available memory, or the section contains a call site that requires a trampoline that can't be generated for this section. run placement with alignment/blocking fails for section "Cla1ToCpuMsgRAM" size 0xc4page 1. Available memory ranges:
CLA1_MSGRAMLOW size: 0x80 unused: 0x80 max hole: 0x80error #10010: errors encountered during linking; "f28377d_dsp01_cpu01.out" not built
在28377里加了CLA后,编译报上面的错误
CMD如下
CLA1_MSGRAMLOW : origin = 0x001480, length = 0x000080
CLA1_MSGRAMHIGH : origin = 0x001500, length = 0x000080
如果我把0x000080改大,又会报
"D:/ti/c2000/C2000Ware_3_03_00_00/device_support/f2837xd/headers/cmd/F2837xD_Headers_nonBIOS_cpu1.cmd", line 17: error #10264: CLA1 memory range overlaps existing memory range CLA1_MSGRAMLOW
这个CMD如下
CLA1 : origin = 0x00001400, length = 0x00000080
好像被限制了
遇到这样的问题,我究竟应该怎么改
谢谢
Susan Yang:
建议您参考对应例程内的cmd文件设置
如 C2000Ware_3_04_00_00\device_support\f2837xd\examples\cpu1\cla_adc_fir32
以及芯片数据手册内的Table 9-1. C28x Memory Map
www.ti.com/…/tms320f28377d.pdf
,
WilliamFang:
我的程序,应该是变量多了,然后超了,因为之前变量少时,可以编译通过。我想问一下,如果超了,是不是不能改CMD只能改代码了?
,
Susan Yang:
WilliamFang 说:如果超了,是不是不能改CMD只能改代码了?
请您参考一下该链接
您可以合并地址空间的,如我之前的回复
,
WilliamFang:
我修改了地址范围后,虽然没有报错了,但是调试的时候发现,通过CLA计算的结果不能传到CPU,CPU读不到计算结果
,
Susan Yang:
若是可以的话,请私信一下工程,谢谢
,
Susan Yang:
“通过CLA计算的结果不能传到CPU,CPU读不到计算结果”
能否详细说明一下?是哪个变量?
,
WilliamFang:
#pragma DATA_SECTION(X1_I0, "Cla1ToCpuMsgRAM")
struct I2 X1_I0[Sum_of_Line];#pragma DATA_SECTION(X1_I1, "Cla1ToCpuMsgRAM")
struct I2 X1_I1[3];#pragma DATA_SECTION(I1_zsc,"CpuToCla1MsgRAM")
float I1_zsc[3];#pragma DATA_SECTION(D_U02_CLA, "Cla1ToCpuMsgRAM")
float D_U02_CLA;#pragma DATA_SECTION(gC_DFT_CLA, "Cla1ToCpuMsgRAM")
struct I2 gC_DFT_CLA[Sum_of_Line];#pragma DATA_SECTION(U0_DFT, "Cla1ToCpuMsgRAM")
struct I2 U0_DFT;这几个都出现过
现在是U0_DFT读不出来
,
Susan Yang:
我这边编译好多报错,您使用了driverlib?
,
WilliamFang:
没有啊
,
WilliamFang:
我是编译没有错才发的啊
,
Susan Yang:
是的,但是您使用的是绝对路径,所以在其他电脑上会有报错
copy_PARENT 该定义的路径是什么?
,
WilliamFang:
,
Susan Yang:
就是这里面的 copy_PARENT 的路径是什么?CCS的安装文件夹?
因为在 Linked resources内有
copy_PARENT\ti\c2000\C2000Ware_3_03_00_00\device_support\f2837xd\common\source
,
WilliamFang:
D:\ti\c2000\C2000Ware_3_03_00_00\device_support\f2837xd
,
Susan Yang:
还是不行,各种报错。我回头用您的程序放到例程里测试一下吧
,
WilliamFang:
你们要是能用teamview就好了
,
Susan Yang:
U0_DFT读不出来 的表现是什么? 您是在CCS内的 watch窗口查看的?有什么报错或警告信息吗?能否给出相关截图?
,
WilliamFang:
首先是程序运行不正常,对应的分支进不去
然后debug看到是0
没有报错,也没有警告
我附一张正常情况的图
,
Susan Yang:
好的,谢谢您的反馈。我会在测试后给您反馈
,
Susan Yang:
我看您上图测试的是在 CLA disconnect的情况下得到的
但您描述的该值是在cla文件内的
我今天编译成功了,使用launchpad测试,会一直卡在while(Cla1Regs.MIRUN.bit.INT1 == 1);
且U0_DFT的值是0
,
WilliamFang:
我找到一个绕过的办法,就是把Cla1ToCpuMsgRAM和CpuToCla1MsgRAM换个片区,不使用原来的CLA1_MSGRAMLOW和CLA1_MSGRAMHIGH,实测可行。而之前的修改CLA1_MSGRAMLOW和CLA1_MSGRAMHIGH的地址区间是行不通的
,
Susan Yang:
谢谢您的反馈。我今天只是跑了一下您的程序,还没有测试cmd文件。
总之,解决了就好,谢谢您的反馈