This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我在程序中定义了8个长度为200的数组,build的时候会提示空间不足呢?
错误代码如下:
warning #10210-D: creating ".stack" section with default size of 0x400; use the
-stack option to change the default size
"C:/ti/controlSUITE/device_support/F2837xD/v110/F2837xD_common/cmd/2837x_RAM_lnk_cpu1.cmd", line 61: error #10099-D:
program will not fit into available memory. run placement with
alignment/blocking fails for section ".ebss" size 0x159c page 1. Available
memory ranges:
RAMLS5 size: 0x800 unused: 0x7f7 max hole: 0x7f7
RAMGS7 size: 0x1000 unused: 0x1000 max hole: 0x1000
RAMGS8 size: 0x1000 unused: 0x1000 max hole: 0x1000
error #10010: errors encountered during linking; "adc_epwm_cpu01.out" not
built
求大神指点!
hank zhao,谢谢!
我的分配情况是这样的
.ebss : >> RAMLS5 | RAMGS7 | RAMGS8, PAGE = 1
.econst : >> RAMLS5 | RAMGS7 | RAMGS8, PAGE = 1
.esysmem : >> RAMLS5 | RAMGS7 | RAMGS8, PAGE = 1
但是在map文件中显示这三段都是 notused 疑惑/
不知这是什么原因啊
BIN YAO 你好
我的映射情况是这样的,但是在map文件中显示 这三块都是 notused,求解答啊,谢谢!
.ebss : >> RAMLS5 | RAMGS7 | RAMGS8, PAGE = 1
.econst : >> RAMLS5 | RAMGS7 | RAMGS8, PAGE = 1
.esysmem : >> RAMLS5 | RAMGS7 | RAMGS8, PAGE = 1
hank zhao 谢谢!
原来是这样,涨姿势了,不过我现在又发现一个问题,我给ccs里面.text分配了空间之后,ccs却没有使用,必须加上一个RAMGS类型的空间build才不会报错
我的CMD文件里面这一行是这样的
.text : >>RAMM0 | RAMD0 | RAMLS0 | RAMLS1 | RAMLS2 | RAMLS3 | RAMLS4 | RAMLS5 | RAMGS15 , PAGE = 0
但是,map文件里面使用情况却是这样的:
MEMORY CONFIGURATION
name origin length used unused attr fill
---------------------- -------- --------- -------- -------- ---- --------
PAGE 0:
BEGIN 00000000 00000002 00000002 00000000 RWIX
RAMM0 00000122 000002de 000002d7 00000007 RWIX
RAMLS0 00008000 00000800 0000072b 000000d5 RWIX
RAMLS1 00008800 00000800 00000000 00000800 RWIX
RAMLS2 00009000 00000800 00000000 00000800 RWIX
RAMLS3 00009800 00000800 00000000 00000800 RWIX
RAMLS4 0000a000 00000800 00000000 00000800 RWIX
RAMLS5 0000a800 00000800 00000000 00000800 RWIX
RAMD0 0000b000 00000800 000007ff 00000001 RWIX
RAMGS15 0001b000 00001000 00000a46 000005ba RWIX
可以看到RAMLS1~RAMLS5全都没有使用啊,而且要是我不加上RAMGS15的话,就提示空间不够了,我已经把RAMGS15放在page0里面去了
求解答啊!
BIN YAO1 谢谢你!
原来是这样,涨姿势了,不过我现在又发现一个问题,我给ccs里面.text分配了空间之后,ccs却没有使用,必须加上一个RAMGS类型的空间build才不会报错
我的CMD文件里面这一行是这样的
.text : >>RAMM0 | RAMD0 | RAMLS0 | RAMLS1 | RAMLS2 | RAMLS3 | RAMLS4 | RAMLS5 | RAMGS15 , PAGE = 0
但是,map文件里面使用情况却是这样的:
MEMORY CONFIGURATION
name origin length used unused attr fill
---------------------- -------- --------- -------- -------- ---- --------
PAGE 0:
BEGIN 00000000 00000002 00000002 00000000 RWIX
RAMM0 00000122 000002de 000002d7 00000007 RWIX
RAMLS0 00008000 00000800 0000072b 000000d5 RWIX
RAMLS1 00008800 00000800 00000000 00000800 RWIX
RAMLS2 00009000 00000800 00000000 00000800 RWIX
RAMLS3 00009800 00000800 00000000 00000800 RWIX
RAMLS4 0000a000 00000800 00000000 00000800 RWIX
RAMLS5 0000a800 00000800 00000000 00000800 RWIX
RAMD0 0000b000 00000800 000007ff 00000001 RWIX
RAMGS15 0001b000 00001000 00000a46 000005ba RWIX
可以看到RAMLS1~RAMLS5全都没有使用啊,而且要是我不加上RAMGS15的话,就提示空间不够了,我已经把RAMGS15放在page0里面去了
求解答啊!
guodong
.text : >>RAMM0 | RAMD0 | RAMLS0 | RAMLS1 | RAMLS2 | RAMLS3 | RAMLS4 | RAMLS5 | RAMGS15 , PAGE = 0
这种语法只会把.text放进某一个能放得下的RAM存储块块,比如.text代码有100个数据,只有RAMGS15才超过100,那么数据就会放在这个模块。其他小于100的模块不会用。
如果.text超过上述中所有的块的话,那就会报错。所以上述的语法是并联方式,而非串连。
如果.text太大的话,你应该在上述的存储块中将这些块连在一起,如RAMLS1S2 : 起始地址, 长度。
Eric