转载自:http://jjf19850615.blog.163.com/blog/static/35688147201210312544551/
error message提示我的.text空间有问题(error: relocation value truncated at 0xa44 in section .text, file)
看到这个错误主要是我们在代码中定义的数组太大了,导致这个原因。解决办法:
1.在cmd中在SDRAM分配了一块空间,用来专门存放这几个数组,如下面红色字体:
/* Memory Map 0 - the default */
-heap 0x120000/*0x9100;0xEF7B000;0xFFFFFF*/
-stack 0x2000/*0x83000xC00;0x1330;0x97B00;0x15E00This Stack Is So Long We Will Make It short !*/
MEMORY
{
PMEM:
o = 00000000h l = 00010000h
BMEM:
o = 00010000h l = 00030000h
DATA:
o = 80000000h l = 0001E000h
SDRAM:
o = 8001E000h l = 03FE2000h
}
SECTIONS
{
.text > SDRAM
.csldata >
PMEM
.stack > BMEM
.far > SDRAM
.switch > SDRAM
.tables > SDRAM
.data > SDRAM
.bss > SDRAM
.sysmem > SDRAM
.cinit > SDRAM
.const > SDRAM
.cio > SDRAM
my_data > DATA
}
然后以下面的格式将我们定义的数组放到这个my_data数据段中
#pragma DATA_SECTION(U, "my_data")
double U[PERM_LEN]={0};
2.如果上面这步还是不行,则需要调整修改Build option-advance选项,把memory mode,我改成第二个就可以运行了。
本文介绍了当遇到.errormessage提示.text空间错误时的两种解决方案:一是通过在SDRAM中分配特定空间来存放大型数组;二是调整编译选项中的memory mode设置。
1657

被折叠的 条评论
为什么被折叠?



