已回答假定已回答

为什么调用CCES的FFT相关库函数链接总是错误?

cuckoo 在 2016-3-11 詢問的問題
最後回覆由hpkamen於2016-6-5提供

最近用ADSP21489(编译环境是CCES)开发产品,当调用软件自带的FFT相关函数时,编译没有问题链接时报错如下:

make all
'Building file: ../src/init_sport.c'
'Invoking: CrossCore SHARC C/C++ Compiler'
cc21k.exe -c -file-attr ProjectName="hrtf_dsp" -proc ADSP-21489 -flags-compiler --no_wrap_diagnostics -si-revision any -g -DCORE0 -D_DEBUG -I"D:\workspace\code\hrtf_dsp\system" -structs-do-not-overlap -no-const-strings -no-multiline -warn-protos -double-size-32 -swc -gnu-style-dependencies -MD -Mo "src/audio_proc.d" -o "src/init_sport.doj" "../src/init_sport.c"
'Finished building: ../src/init_sport.c'
' '
'Building target: hrtf_dsp.dxe'
'Invoking: CrossCore SHARC Linker'
cc21k.exe -proc ADSP-21489 -si-revision any -TD:/workspace/code/hrtf_dsp/system/startup_ldf/app.ldf -no-mem -LD:/workspace/code/hrtf_dsp/Debug/system/startup_ldf -flags-link -MDCORE0,-MDDEBUG -add-debug-libpaths -o hrtf_dsp.dxe ./system/startup_ldf/app_IVT.doj ./system/startup_ldf/app_heaptab.doj ./system/startup_ldf/app_startup.doj  ./system/sru/sru_config.doj  ./system/adi_initialize.doj  ./src/audio_proc.doj ./src/hrtf_dsp.doj ./src/init_pll_sdram.doj ./src/init_sport.doj ./src/init_sru.doj   ../system/startup_ldf/app.ldf   -flags-link -od,.\.

 

[Error li1021]  The following symbols referenced in processor 'p0' could not be resolved:
        'accel_cfft_small [_accel_cfft_small]' referenced from '.\src\audio_proc.doj'
        'accel_ifft_small [_accel_ifft_small]' referenced from '.\src\audio_proc.doj'

 

Linker finished with 1 error
cc3089: fatal error: Link failed (code:1)
make: *** [hrtf_dsp.dxe] Error 1

 

出现这个问题的原因是这些库函数不能调用还是CCES的配置有问题?另外在我的程序中也使用了关于SPORT的函数,比如adi_sport_EnableDMAMode、adi_sport_RegisterCallback等,这些库函数
在ADI给的例子中是有使用的。但是和上面一样编译没有问题,链接通不过。这些库函数是仅仅用来仿真吗,可以把它们移植到DSP上面吗?

結果