转载自: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,我改成第二个就可以运行了。