program will not fit into available memory. run placement withremark: automatic RTS selection: linking in "rts2800_fpu32.lib" in place of
alignment/blocking fails for section ".ebss" size 0xc7b0 page 1. Availablememory ranges:
index library "libc.a"
RAMM1 size: 0x400 unused: 0x200 max hole: 0x200
RAML4 size: 0x1000 unused: 0x1000 max hole: 0x1000 .ebss : > RAMM1|RAML4, PAGE = 1
调试过程中,定义了一个全局的数组之后就成这样了,请问该怎么解决??
10#:
用于存放你定义的“全局的数组”的.ebss的空间不够,需要调整.cmd文件中的相关配置。
program will not fit into available memory. run placement withremark: automatic RTS selection: linking in "rts2800_fpu32.lib" in place of
alignment/blocking fails for section ".ebss" size 0xc7b0 page 1. Availablememory ranges:
index library "libc.a"
RAMM1 size: 0x400 unused: 0x200 max hole: 0x200
RAML4 size: 0x1000 unused: 0x1000 max hole: 0x1000 .ebss : > RAMM1|RAML4, PAGE = 1
调试过程中,定义了一个全局的数组之后就成这样了,请问该怎么解决??
Rui Gao:
回复 10#:
您好~
确实是这样,那请问我要怎么修改呢,编译环境是ccsV6?
program will not fit into available memory. run placement withremark: automatic RTS selection: linking in "rts2800_fpu32.lib" in place of
alignment/blocking fails for section ".ebss" size 0xc7b0 page 1. Availablememory ranges:
index library "libc.a"
RAMM1 size: 0x400 unused: 0x200 max hole: 0x200
RAML4 size: 0x1000 unused: 0x1000 max hole: 0x1000 .ebss : > RAMM1|RAML4, PAGE = 1
调试过程中,定义了一个全局的数组之后就成这样了,请问该怎么解决??
10#:
回复 Rui Gao:
请将.ebss定义在连续的RAM区间,以使它能够hold住足够大的变量和数组,包括lib里的变量,上面的图片说明库文件需要0x7c0的大小,可你定义的.ebss对应的RAM的大小不是连续满足。
program will not fit into available memory. run placement withremark: automatic RTS selection: linking in "rts2800_fpu32.lib" in place of
alignment/blocking fails for section ".ebss" size 0xc7b0 page 1. Availablememory ranges:
index library "libc.a"
RAMM1 size: 0x400 unused: 0x200 max hole: 0x200
RAML4 size: 0x1000 unused: 0x1000 max hole: 0x1000 .ebss : > RAMM1|RAML4, PAGE = 1
调试过程中,定义了一个全局的数组之后就成这样了,请问该怎么解决??
Rui Gao:
回复 10#:
我能明白您的意思,不过我不知道该如何操作,能否说明一下,如何定义为连续的RAM区间?
谢谢您!
program will not fit into available memory. run placement withremark: automatic RTS selection: linking in "rts2800_fpu32.lib" in place of
alignment/blocking fails for section ".ebss" size 0xc7b0 page 1. Availablememory ranges:
index library "libc.a"
RAMM1 size: 0x400 unused: 0x200 max hole: 0x200
RAML4 size: 0x1000 unused: 0x1000 max hole: 0x1000 .ebss : > RAMM1|RAML4, PAGE = 1
调试过程中,定义了一个全局的数组之后就成这样了,请问该怎么解决??
10#:
回复 Rui Gao:
RAMM1 size: 0x400 unused: 0x200 max hole: 0x200
RAML4 size: 0x1000 unused: 0x1000 max hole: 0x1000
0x400 + 0x200 = 0x600 与0x1000是不连续的。
在.cmd文件中定义RAMLx的时候,让其地址连续即可。
program will not fit into available memory. run placement withremark: automatic RTS selection: linking in "rts2800_fpu32.lib" in place of
alignment/blocking fails for section ".ebss" size 0xc7b0 page 1. Availablememory ranges:
index library "libc.a"
RAMM1 size: 0x400 unused: 0x200 max hole: 0x200
RAML4 size: 0x1000 unused: 0x1000 max hole: 0x1000 .ebss : > RAMM1|RAML4, PAGE = 1
调试过程中,定义了一个全局的数组之后就成这样了,请问该怎么解决??
Rui Gao:
回复 10#:
RAMM1 : origin = 0x000400, length = 0x000400
RAML4 : origin = 0x00C000, length = 0x001000
这个地址应该是编好的吧,不能随意修改吧?
program will not fit into available memory. run placement withremark: automatic RTS selection: linking in "rts2800_fpu32.lib" in place of
alignment/blocking fails for section ".ebss" size 0xc7b0 page 1. Availablememory ranges:
index library "libc.a"
RAMM1 size: 0x400 unused: 0x200 max hole: 0x200
RAML4 size: 0x1000 unused: 0x1000 max hole: 0x1000 .ebss : > RAMM1|RAML4, PAGE = 1
调试过程中,定义了一个全局的数组之后就成这样了,请问该怎么解决??
10#:
回复 Rui Gao:
当然可以随意修改,你可以把0x00C000开始的那一段随意分割或组合,比如:
RAMABC : origin = 0x00C000, length = 0x00100
RAMDEF : origin = 0x00C1000, length = 0x00500
RAMGHI : origin = 0x00C600, length = 0x00A00
但是0x400在物理上与0xC000不是连续的,就不能放在一起。
具体的物理内存请查看数据手册的memory map.