本帖最后由 wilson0218 于 2011-6-11 16:38 编辑
编译时提示错误L1102ut of allocation space in segment ROM_C000 at address 0xC335
我的工程中有一个C文件编译后大约5k左右大小,我发现将这个文件中的一个函数删掉一部分的时候,编译能通过,但不知问题在哪。
我定义的ROM_C000一共16k左右,而且错误地址是在0xC335。
不明白
_PRESTART,
……
COPY INTO ROM_C000;
是什么意思,而问题似乎出在这里,不明白这和我程序在程序中调用的函数有什么关系,当我把函数改短或者不调用这个函数的时候却能通过编译。
这个问题已经困扰了我好几个星期了,希望版主能帮帮忙。
以下是我的prm文件
SEGMENTS /* Here all RAM/ROM areas of the device are listed. Used in PLACEMENT below. */
RAM = READ_WRITE 0x2000 TO 0x3FFF;
RAM_378000 = READ_WRITE 0x378000 TO 0x37BFFF;
RAM_368000 = READ_WRITE 0x368000 TO 0x36BFFF;
ROM_C000 = READ_ONLY 0xC000 TO 0xFEFF;
PAGE_38 = READ_ONLY 0x388000 TO 0x38BFFF;
PAGE_39 = READ_ONLY 0x398000 TO 0x39BFFF;
END
PLACEMENT /* here all predefined and user segments are placed into the SEGMENTS defined above. */
_PRESTART, /* Used in HIWARE format: jump to _Startup at the code start */
STARTUP, /* startup data structures */
ROM_VAR, /* constant variables */
STRINGS, /* string literals */
NON_BANKED, /* runtime routines which must not be banked */
COPY INTO ROM_C000;
DEFAULT_ROM INTO PAGE_38;
MY_CODE INTO PAGE_39;
DEFAULT_RAM /* all variables, the default RAM location */
INTO RAM,RAM_378000, RAM_368000;
END
DataTest5.rar (708.54 KB)
|