工具/软件:TI C/C++编译器
大家好,
我的一位客户将CCS与TMS320F2.8035万一起用于他的太阳能电网连接逆变器应用,他正在寻找将多个非连续SRAM部分组合用于数据RAM,即.ebss,因为他的RAM使用率正在增加。 我已经浏览了spru513n部分的8.5 .5.6 和spraa46a.pdf,以便通过CCS自动拆分部分和分配。 因此,我已在7.2 中导入了默认的Example_2.8035万_Flash,并完成了以下更改:
在example_2803xFlash.c中,我声明了两个阵列,总计1200字节(两个阵列,因此一个阵列可以适合于一个部分,因为我的一个部分RAML2/RAMM1在TMS320F2.8035万中为1024字节)。
unsigned char Tempdata[400];
unsigned char Tempdata1[800];
现在,我将2.8035万.cmd更改如下:
.ebss :{*(.ebss)}>>(RAML2| RAMM1) page =1.
但此示例尚未编译,并给出如下错误:
________________________________________________________________
>>编译失败
Makefile:151:目标'Example_2.8035万_Flash.Out的配方失败
"../F2.8035万.cmd",第136行:错误:程序将不适合可用内存。
对于尺寸为0x52c的区域".ebss",使用对齐/阻塞的照射行程放置失败
第1页。 可用内存范围:
RAML2大小:0x400未使用:0x3f8最大孔:0x3f8
RAMM1大小:0x400未使用:0x400最大孔:0x400
.ebss:{*(.ebss)}>>(RAML2| RAMM1) page =1.
错误:链接期间遇到错误;未生成"Example_2.8035万_Flash.out
gmake:***[example_2.8035万_Flash.Out ]错误1
gmake:由于错误,目标'all'没有重制。
****构建已完成****
________________________________________________________________
我已与团队讨论过此问题,收到以下反馈:
给定文件或.obj中的所有全局变量都试图仅适合单个RAM块(即使同一文件中可能有多个变量)。
我可以理解,一个数组应该完全填写在一个部分中,但一个obj文件/one c文件只适合在一个部分中,这对许多客户来说可能是不能接受的。许多客户在单个文件中工作/在一个文件中可能创建一些特定的工作 问题。
请告知我应该执行什么设置来使CCS自动拆分.ebss部分,以便安装在不同 的非连续SRAM部分中。
此致,
Vikas Chola