各位同仁:
我在 CCSv3.3中编译工程 " h263loopbackdm642.pjt" 的时候遇到如下错误:
您好: 我在 CCSv3.3中编译工程 " h263loopbackdm642.pjt" 的时候遇到如下错误:
error: relocation value truncated at 0xdb0 in section .text, file
vportcap.obj (.libseedvpm642vport.l64)
我想知道 *.l64和*.l62扩展名的文件怎么创建,和普通的*lib库文件有什么不一样?能够用lib文件替代吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
error message提示我的.text空间有问题(error: relocation value truncated at 0xa44 in section .text, file)
看到这个错误主要是我们在代码中定义的数组太大了,导致这个原因。解决办法:
在cmd中在SDRAM分配了一块空间,用来专门存放这几个数组:
-c-stack 0x400-heap 0x400MEMORY{ ISRAM : origin = 0x0, len = 0x20000 DSRAM : origin = 0x20000, len = 0x10000 SDRAM : origin = 0x80000000 len = 0x1000000 DPRAM1 : origin = 0xB0001000 len = 0x0001000 /*将大数组分配到my_data1存储区(SDRAM)*/ DPRAM2 : origin = 0xB0002000 len = 0x0001000 /*将大数组分配到my_data2存储区(SDRAM)*/ DPRAM3 : origin = 0xB0003000 len = 0x0001000 /*将大数组分配到my_data3存储区(SDRAM)*/} SECTIONS{ .vec > ISRAM .text > ISRAM .data > DSRAM .bss > DSRAM .cinit > DSRAM .const > DSRAM .far > DSRAM .stack > DSRAM .cio > DSRAM .sysmem > DSRAM .my_data1 > DPRAM1 .my_data2 > DPRAM2 .my_data3 > DPRAM3}
//----------------------------------------------------------//混合基数FFT变量声明//----------------------------------------------------------#pragma DATA_SECTION(ResultFFT2, ".my_data1") //将数组分配到my_data1存储区(SDRAM)#pragma DATA_SECTION(Source2, ".my_data2") //将数组分配到my_data2存储区(SDRAM)#pragma DATA_SECTION(Result2, ".my_data3") //将数组分配到my_data3存储区(SDRAM) float ResultFFT2[Nh]; //定义FFT输出的幅值struct Compx Source2[Nh]; //定义FFT的采样点存放数组struct Compx Result2[Nh]; //定义FFT的运算结果存放数组
一周热门 更多>