解决dsplinkdata.lib缺失问题
前面写过一篇how to build an arm/dsp hello world program on the davinci evm,
那前面其实并不算运行成功,因为尽管编译通过,在运行的时候还是会有failed,具体错误当时没有截图留证现在也没法弄了。
当时是开发板直接提供的虚拟机,里面的sdk什么工具都装好了,但是里面差一些文件,不晓得是他们删掉了还是怎么回事。前两天在Red Hat Enterprise 5里面自己建立了开发环境,当然都是照着Get Start那个文档来的。参照前面的文章Red Hat Enterprise 5下面的samba nfs 软件安装等等。
今天突然想到这个里面有个scale例程,因为在TI的codec engine alogorith creator usr guide里面提到这个,就重新弄下这个例子了。
照着http://processors.wiki.ti.com/index.php?title=How_to_build_an_ARM/DSP_Hello_World_program_on_the_DaVinci_EVM
这个文章里面编译的时候有可能会提示如下错误,就是找不到dsplinkdata.lib的文件,
试了不少方法,最后才找到终极解决方式,写出来以供参考。
先写失败的方法:
失败一:
因为有人建议这个文件好像没有什么用就直接新建一个.txt文件,重命名为dsplinkdata.lib 结果提示文件长度过短,因为新建文档是空的,
既然是文件长度过短,那就加长好了,随便复制点东西进去,这下总行了吧。然后就提示****找不到,这里的****可能就是你复制进去东西里面的一个词。估计他是用文件指针在里面取出来的,这种方法行不通
失败二:
将本来就有的dsplink.lib复制一份改名成dsplinkdata.lib 结果编译错误提示更多。。。无语
找资料http://e2e.ti.com/support/dsp/omap_applications_processors/f/42/t/29343.aspx
在这篇文章中有人提到同样的问题,找到了原因说是dsplink重新编译就可以生成dsplinkdata.lib这个文件,但是按照sprue66d.pdf TMS320DM6446 DVEVM v1.30 Getting Started Guide A.5讲到的Rebuilding DSP/BIOS link 重新生成了dsplinkk.ko等一些文件,没有dsplinkdata.lib这个文件,
但是有一点提示就是在文件中重新编译dsp/bios用的是命令 sh-f buildmodule.sh
在同一个文件夹下还有另外几个文件,研究研究,也许有用。
用Text Edit 或者其它文本编辑工具打开每个文件查看,这些文档都写的很标准,在里面讲到每个文件的路径,作用
buildmodule.sh Script to build the kernel module
dsplinkcfg Calls perl script to create build configuration for
dsplinkenv Sets the necessary environment for DSP/BIOS(TM) Link development
dsplinkenv.bash Sets the necessary environment for DSP/BIOS(TM) Link development
dspmake Builds the dsp side libraries, samples and testsuite for OMAP.
dspprobemake Sets the necessary environment for DSP/BIOS(TM) Link development.
这里有用的就是dspmake这个文件,看到它对应的作用build the dsp side libraries samples and testsuite.可以生成dsp侧的库,例程等。我们要的就是这个
执行dspmake 提示以下错误
Compiling failure.c...
/bin/sh: C:ti-toolsC6000cgtoolsbincl6x: command not found
make[3]: *** [failure.c.rel] Error 127
make[2]: *** [objrel] Error 2
make[1]: *** [gen.objrel] Error 2
make: *** [base.objrel] Error 2
这个可能是因为我在配置的时候选择的是windows平台,没关系,我已经照着how to build an hello world 那个文章里面设置好了,大不了到xp下面去找到对应文件编译。
注意上面提到的文件都是在$(DSPLINK)/etc/host/scripts/Linux/ 这个路径下,到xp下面就要换到对应的文件夹,例如$(DSPLINK)/etc/host/scripts/msdo/下面的dspmake.bat
以下是我的DSP/BIOS LINK配置文件,不一定完全一致,能用就好。用这个文件可以生成库文件,和例子,正是我需要的。
See: E:dsplink_140-05p1packagesdsplinkconfigCURRENTCFG.MK
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
The selected configuration is:
GPP OS = Linux
DSP OS = DspBios
GPPDISTRIBUTION = davinci_mvlpro4.0
GPPOSVERSION = 2.6
DSPDISTRIBUTION = c64xxp_5.xx_windows
GPPPLATFORM = Davinci
DSPPLATFORM = Davinci
USE_PROC = 1
USE_POOL = 1
USE_NOTIFY = 1
USE_MPCS = 1
USE_RINGIO = 1
USE_MPLIST = 1
USE_CHNL = 1
USE_MSGQ = 1
TRACE = 1
PROFILE = 0
PROBE = 0
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Edit GPP and DSP distribution files for user specific path
settings for OS base directory, tool chain path etc
Edit GPP distribution file:
E:dsplink_140-05p1packagesdsplinkmakeLinuxdavinci_mvlpro4.0.mk
Edit DSP distribution file:
E:dsplink_140-05p1packagesdsplinkmakeDspBiosc64xxp_5.xx_windows.mk
然后在对应的samples文件夹下gmake -s Release就好了
E:dsplink_140-05p1packagesdsplinketchostscriptsmsdos>cd %DSPLINK%dspsrc
samples
E:dsplink_140-05p1packagesdsplinkdspsrcsamples>gmake -s Release
具体例程输出还有待验证,先记下这些。。。