This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

dsplib例程问题?



最近在学习6678的FFT示例程序FFT_Example_66_LE_COFF,发现该工程原来是用ccsV4生成的,处理器平台选的是common C6000,我用CCSV5打开后,编译运行都没有问题,把common C6000改为C66x后,编译就提示错误,找不到fft_16x16()这个函数,可是头文件都包含了啊?

我把该函数对应的.h文件和.c文件都拷贝到工程下,可以运行了,但这样库文件dsplib库dsplib.a66去掉,工程照样可以运行,这样能用,但没有利用到TI的优化过的库函数啊!!

谁遇到过这种情况,解答一下!!!

  • 你的工程原来是COFF的,所以添加的也是COFF格式的lib。平台选成C66的话编译器自动成成ELF格式的obj文件,要和ELF格式的lib链接,所以出现找不到函数的报错。你有两个option解决问题:
    1. 你可以换用ELF格式的lib
    从dsp lib的名字可以分辨COFF/ELF格式
    dsplib.a66是小端coff
    dsplib.a66e是大端coff
    dsplib.ae66是小端elf
    dsplib.ae66e是大端elf
    2. 也可以强制要求编译器把c66工程编程COFF的格式
    选中工程点右键->properties->general0>output format

  • 问题解决了,是你说的那样,谢谢了,还想问个问题,coff跟elf有什么区别,作用上?问什么要有两种可执行文件

  • coff和elf是可执行文件的两种格式,elf功能更全面更通用些。它们只是可执行程序的格式,无论用哪种格式,可执行程序本身的功能是一样的。
    具体什么区别,我也讲不全面。你可以参考一下TI的技术文档SPRAB90
    网上也有个帖子: http://blog.csdn.net/zzsfqiuyigui/article/details/8002539