2015 0604
工程编辑过程中出现内存不足的问题:
error #10099-D:
>> Compilation failure
program will not fit into available memory. placement with
alignment/blocking fails for section ".text" size 0x218a page 0. Available
memory ranges:
RAML1 size: 0x2000 unused: 0x2000 max hole: 0x2000
cmd文件中 ".text"是程序语句存储。程序语句存储在 RAML1 中,此时程序语句大小是0x218a 而 RAML1 的大小为 0x2000 ,因此出现内存不足的问题。
而此时cmd文件相关部分程序:
MEMORY
{
..................
RAML0 : origin = 0x008000, length = 0x000B00
RAML1 : origin = 0x008B00, length = 0x002000
RAML2 : origin = 0x00AB00, length = 0x000800
.....................
}
SECTIONS
{
..............
.text : > RAML1, PAGE = 0
..............
IQmath : > RAML1, PAGE = 0
..............
}
在修改 RAML1 内存空间之前,需要检查section中使用 RAML1 的部分,在对其进行修改之后也要修改section中的这些部分。
修改后程序:
MEMORY
{
..................
RAML0 : origin = 0x008000, length = 0x000B00
RAML1_2 : origin = 0x008B00, length = 0x002800
.....................
}
SECTIONS
{
..............
.text : > RAML1_2, PAGE = 0
..............
IQmath : > RAML1_2, PAGE = 0
..............
}
注意,在合并内存之前需要检查哪些空间空闲,可以用于合并。