CCS4.2下编译DSPLink的例子,走了不少弯路,先小总结一下:
==============================================================================================
A、用的是OMPA3530处理器,GPP端和DSP端的DSPLink最好在同一个环境下编译;
B、这里假设编译好的DSPLink的文件夹为“dsplink_build”,放在安装CCS的安装目录下,
即C:\Program Files\Texas Instruments\dsplink_build。
C、以"message"例程为例。
==============================================================================================
1、在编译好的DSPLink文件夹里面,可以找到文件“CURRENTCFG.MK”(路径为:C:\Program Files\Texas Instruments\dsplink_build\config\BUILD,如果没有“BUILD“这个文件夹,那么请按照网站:http:// processors.wiki.ti.com/index.php/Building_DSPLink#DSP-side重新编译),文件里包含了GPP端和DSP端的配置信息,例如:”DSP INC PATH“,”DSP SPECIFIC DEFINES“,”DSP COMMON DEFINES“说明了编译CCS工程的时候,应该包括哪些路径以及预定义的符号。
2、新建工程,将例子下的文件复制到工程文件夹下面,右键点击CCS工程,选择”Build properties->C6000 Compiler->Include Options”,将”DSP INC PATH“里提到的路径包含进去;选择”Build properties->C6000 Compiler->Predefine Symbols”将”DSP SPECIFIC DEFINES“,”DSP COMMON DEFINES“里的symbols添加进去。
如下:
”DSP INC PATH“:
C:\Program Files\Texas Instruments\dsplink_build\dsp\inc
C:\Program Files\Texas Instruments\dsplink_build\dsp\inc\C64XX
C:\Program Files\Texas Instruments\dsplink_build\dsp\inc\DspBios
C:\Program Files\Texas Instruments\dsplink_build\dsp\inc\DspBios\5.XX
C:\Program Files\Texas Instruments\dsplink_build\dsp\inc\DspBios\5.XX\OMAP3530
C:\Program Files\Texas Instruments\dsplink_build\dsp\src\base
C:\Program Files\Texas Instruments\dsplink_build\dsp\src\base\hal
C:\Program Files\Texas Instruments\dsplink_build\dsp\src\base\hal\DspBios
C:\Program Files\Texas Instruments\dsplink_build\dsp\src\base\hal\DspBios\OMAP3530
C:\Program Files\Texas Instruments\dsplink_build\dsp\src\base\drv
C:\Program Files\Texas Instruments\dsplink_build\dsp\src\base\drv\DspBios
C:\Program Files\Texas Instruments\dsplink_build\dsp\src\base\ips
C:\Program Files\Texas Instruments\dsplink_build\dsp\src\base\ips\DspBios
C:\Program Files\Texas Instruments\dsplink_build\dsp\src\base\gen
C:\Program Files\Texas Instruments\dsplink_build\dsp\src\base\gen\DspBios
C:\Program Files\Texas Instruments\dsplink_build\dsp\src\data
C:\Program Files\Texas Instruments\dsplink_build\dsp\src\data\DspBios
C:\Program Files\Texas Instruments\dsplink_build\dsp\src\mpcs
C:\Program Files\Texas Instruments\dsplink_build\dsp\src\mpcs\DspBios
C:\Program Files\Texas Instruments\dsplink_build\dsp\src\mplist
C:\Program Files\Texas Instruments\dsplink_build\dsp\src\mplist\DspBios
C:\Program Files\Texas Instruments\dsplink_build\dsp\src\msg
C:\Program Files\Texas Instruments\dsplink_build\dsp\src\msg\DspBios
C:\Program Files\Texas Instruments\dsplink_build\dsp\src\notify
C:\Program Files\Texas Instruments\dsplink_build\dsp\src\notify\DspBios
C:\Program Files\Texas Instruments\dsplink_build\dsp\src\pools
C:\Program Files\Texas Instruments\dsplink_build\dsp\src\pools\DspBios
C:\Program Files\Texas Instruments\dsplink_build\dsp\src\ringio
C:\Program Files\Texas Instruments\dsplink_build\dsp\src\ringio\DspBios
复制代码
C:\Program Files\Texas Instruments\dsplink_build\dsp\src\samples\message(虽然把头文件已经复制到了工程文件夹下面,但是编译的时候还是会报错:找不到.h文件,但是把头文件的路径包含进去就好了,原因不是很清楚)。
注意:过程中发以下的路径在我编译的DSPLink里面没有,具体原因不清楚,开始工程编译不能通过的时候,怀疑是因为缺乏一些文件,但是后来发觉好像没有这些路径也没什么问题:
${DSPLINK}/dsp/inc/DspBios/OMAP3530
${DSPLINK}/dsp/src/base/hal/DspBios/5.XX
${DSPLINK}/dsp/src/base/hal/DspBios/5.XX/OMAP3530
${DSPLINK}/dsp/src/base/drv/DspBios/5.XX
${DSPLINK}/dsp/src/base/ips/DspBios/5.XX
${DSPLINK}/dsp/src/base/gen/DspBios/5.XX
${DSPLINK}/dsp/src/data/DspBios/5.XX
${DSPLINK}/dsp/src/mpcs/DspBios/5.XX
${DSPLINK}/dsp/src/mplist/DspBios/5.XX
${DSPLINK}/dsp/src/ringio/DspBios/5.XX
${DSPLINK}/dsp/src/msg/DspBios/5.XX
${DSPLINK}/dsp/src/pools/DspBios/5.XX
${DSPLINK}/dsp/src/notify/DspBios/5.XX
复制代码
预定义符号:
“DSP SPECIFIC DEFINES”:
PROCID=0
OMAP3530
OMAP3530_INTERFACE=SHMEM_INTERFACE
PHYINTERFACE=SHMEM_INTERFACE
DSP_SWI_MODE
“DSP COMMON DEFINES”:
MAX_DSPS=1
MAX_PROCESSORS=2
ID_GPP=1
OMAP3530
PROC_COMPONENT
POOL_COMPONENT
NOTIFY_COMPONENT
MPCS_COMPONENT
RINGIO_COMPONENT
MPLIST_COMPONENT
MSGQ_COMPONENT
MSGQ_ZCPY_LINK
CHNL_COMPONENT
CHNL_ZCPY_LINK
ZCPY_LINK
复制代码
3、在这个时候编译,很可能就出现“tskMessage is undefined” error,在TI的论坛上面,找到了一模一样的问题(http:// e2e.ti.com/support/embedded/f/354/t/72006.aspx),然后按照上面的去做,不知道你的解决了没有,但是我试过,问题还没有解决。于是看程序,觉得是不是程序要我们自己在SWI_MODE或TSK_MODE下选一个模式来执行的呢?于是我在main.c文件里增加一行“#define SWI_MODE 1",结果那个错误没有了,但是新的错误又来了,如下:
于是在网上搜索看是什么原因,结果没找到,后来别人指点了下说是因为没有找到苦,即.lib。于是右键点击CCS工程,选择”Build properties->C6000 Linker->Flie Search Path”,往里面添加了.lib的路径:C:\Program Files\Texas Instruments\dsplink_build\dsp\BUILD\OMAP3530_0\EXPORT\DEBUG,但问题还是没有解决,明明已经告诉了它路径了,怎么还是找不到呢,是不是有了路径,但是不知道找那个文件呢?于是将每个.lib添加打了了”Build properties->C6000 Linker->Flie Search Path->Include library file里,如下:
dsplink.lib
dsplinkdata.lib
dsplinkmpcs.lib
dsplinkmplist.lib
dsplinkmsg.lib
dsplinknotify.lib
dsplinkpool.lib
dsplinkringio.lib
gen.lib
hal.lib
ips.lib