TI论坛
直播中

吴娜

7年用户 192经验值
私信 关注
[问答]

用TMS320F28035在做应用CLA Prog RAM的空间不足怎么办?

现在我用TMS320F28035在做应用,但是CLA Prog RAM的空间不足,实际只有4K,我现在CLA的程序达到5K左右,超出了一部分,
后来删除了一些代码,空间够了,此时看map文件时,如下:
output                                  attributes/
section   page    origin      length       input sections
--------  ----  ----------  ----------   ----------------
.pinit     0    003e8000    00000000     UNINITIALIZED
Cla1Prog   0    003e8000    00000c88     RUN ADDR = 00009000
                  003e8000    000007b2     CLA_slopedyn.obj (Cla1Prog)
                  003e87b2    000004d6     CLA_slopedyn.obj (Cla1Prog:retain)
其中CLA代码是CLA_slopedyn.cla,编译后的目标文件是CLA_slopedyn.obj,
我的问题是:为什么有两个目标文件,如上图
Cla1Prog和Cla1Prog:retain有什么区别,都会占用CLA Prog RAM吗?
另外如果CLA Prog RAM空间不够,除了缩减代码之外,还有其他什么建议吗?
谢谢!

回帖(24)

吴立节

2020-5-27 12:19:07
Move to the right forum
举报

李秋年

2020-5-27 12:24:58
Cla1Prog和Cla1Prog:retain区别不大,都会占用CLA的RAM空间。你的CLA task中应该使用了函数调用,Cla1Prog中存储的是被调用函数的代码。除了缩减代码,没有更好的方法。
举报

吴娜

2020-5-27 12:36:58
引用: szoldman 发表于 2020-5-27 12:24
Cla1Prog和Cla1Prog:retain区别不大,都会占用CLA的RAM空间。你的CLA task中应该使用了函数调用,Cla1Prog中存储的是被调用函数的代码。除了缩减代码,没有更好的方法。

关于Cla1Prog和Cla1Prog:retain的问题: 我所有CLA代码全部放在一个.cla的文件里面,没有使用其他文件的函数。
另外最追加一个问题,CCS6.0支持在CLA源程序里面进行单步调试吗?
我现在在cla的一个task里面加了一个__mdebugstop(),之后可以在汇编语言里面进到这条指令,但是我选择"shouw source"时,总是显示没有源程序的错误
如下图:
举报

吴娜

2020-5-27 12:53:45
引用: moxlanlan 发表于 2020-5-27 12:36
关于Cla1Prog和Cla1Prog:retain的问题: 我所有CLA代码全部放在一个.cla的文件里面,没有使用其他文件的函数。
另外最追加一个问题,CCS6.0支持在CLA源程序里面进行单步调试吗?
我现在在cla的一个task里面加了一个__mdebugstop(),之后可以在汇编语言里面进到这条指令,但是我选择"shouw source"时,总是显示没有源程序的 ...

举报

更多回帖

发帖
×
20
完善资料,
赚取积分