我用的是TS201处理器,我的程序处理的信号数据长度为float bpsk[1024]={ 1.2372,-0.24894,-1.2109,0.068772……..},程序处理中会把信号加窗变成X[16][256],然后对X[16][256]的每一列作FFT,再经一系列变换后,变成XM[16][1024],再对XM[16][1024]的每一行作FFT,程序的大致处理流程就如我所描述的。现在把数据换成float [4096]={…},就会报下面的错误,
[Error li1040] "C:\Program Files\Analog Devices\VisualDSP 5.0\TS\ldf\ADSP-TS201.ldf":236 Out of memory in output section 'data1' in processor 'p0'
Total of 0x2d8b9 word(s) were not mapped.
For more details, see 'linker_log.xml' in the output directory.
Linker finished with 1 error
cc3089: fatal error: Link failed
Tool failed with exit/exception code: 1.
Build was unsuccessful.
个人解决思路,我尝试修改链接描述*.ldf,在系统自带的ADSP-TS201.ldf上作修改,从错误上看是输出的数据在data1数据段没有得到完全的映射,打开ADSP-TS201.ldf文件,默认的data1
{
INPUT_SECTIONS( $OBJS_LIBS_INTERNAL(data1))
//INPUT_SECTIONS( $OBJS_LIBS_NOT_EXTERNAL(data1))
//INPUT_SECTIONS( $OBJECTS(data1) $LIBRARIES(data1) )
} >M2DataA,
而M2DataA 的长度默认为 { TYPE(RAM) START(0x00040000) END(0x0004FFFF) WIDTH(32)}现在修改为{ TYPE(RAM) START(0x00040000) END(0x0005FFF1) WIDTH(32) },修改大了对2048个长度的信号长度编译可以通过,对4096个数据长度并不行,麻烦工程师帮忙看看,谢谢。