DSPLink
DSPLink是双核处理器内部GPP-DSP两侧通信的基础软件。它提供了一个通用的API,这个API从应用层上抽象的物理层GPP和DSP交互的特性。它消除了对客户需要从头开始开发这种关连,并允许他们更多的专注于应用程序的开发。更多信息参考 DSPLink 概述。
下面是重新编译DSPLink的步骤. 请注意,这些步骤在DSPLink附带的文件中有更详细的说明 (查看dsplink 根目录下一个叫做‘doc’的文件夹中找更多的文档),下面的步骤是对于OMAP-L137的简化步骤。
说明:到现在,虽然DSPLink 1.65.00.01可以支持omapl137,但是我们使用的版本,对OMAPL137 DSPLINK 版本是 dsplink-1_61_03-prebuilt,而OMAPL138 DSPLINK 版本是 1.65.00.01。下面的部分 "DSPLINK_DIR" 指的是 DSPLINK的根目录,对以OMAPL137用户 DSPLINK_DIR = dsplink-1_61_03-prebuilt,而omapl138用户DSPLINK_DIR = dsplink_linux_1_65_00_01
Building
除了上述的先决条件, DSPLink 1.6x 的使用还需要GNU make 3.81版本。为了您的方便,在/home/
/OMAPL137_arm_1_##_##_##/xdctools_3_1#_##_##目录中有一个预先建立的GNU可以使用。下面的指令使用的就是这个版本。如果喜欢,更新的gmake发布版本可以从下面的网页中下载http://ftp.gnu.org/pub/gnu/make/make-3.81.tar....
NOTE: 如果您使用一个旧版本的GNU make,你将发现有下面类似的错误
/home/user/OMAPL13#_arm_1_##_##_##/DSPLINK_DIR/packages/dsplink/make/start.mk:19:
*** This makefile requires one of GNU make version 3.81 3.81beta1 3.90 3.92. Stop.
Step 1: 设置必要的环境变量;可以通过多种方法来设置环境变量,我们推荐下面的方法:
首先到下面的目录中:
host $ cd /home//OMAPL13#_arm_1_##_##_##/DSPLINK_DIR/packages/dsplink/etc/host/scripts/Linux/
然后修改 和设置DSPLINK 变量为下面的路径:
注: 对那些没有运行 BASH shell的,在这一步使用 修改
对于 OMAPL137 软件
/home//OMAPL137_arm_1_00_00_xx/DSPLINK_DIR/packages/dsplink
对于 OMAPL138 软件
/home//OMAP_L138_arm_1_00_00_xx/DSPLINK_DIR/packages/dsplink
编辑和保存后,使我们的环境变量生效:
host $ source dsplinkenv.bash
Step 2: 配置DSPLink 编译成什么平台使用的文件,这个工作是通过DSPLink来包含perl 描述语言来完成的。要将DSPLink编译成ARM工具和平台使用的文件,切换到DSPLink根目录下,执行下面的命令: (注:perl函数位于 $(DSPLINK)/config/bin/dsplinkcfg.pl中)
对于 OMAPL137 软件
host $ cd /home//OMAPL137_arm_1_00_00_xx/DSPLINK_DIR/packages/dsplink
host $ perl config/bin/dsplinkcfg.pl --platform=OMAPL1XX --nodsp=1 --dspcfg_0=OMAPL1XXGEMSHMEM --dspos_0=DSPBIOS5XX --gppos=MVL5G --comps=ponslrmc --DspTskMode=1
对于 OMAPL138 软件
host $ cd /home//OMAP_L138_arm_1_00_00_xx/DSPLINK_DIR/packages/dsplink
host $ perl config/bin/dsplinkcfg.pl --platform=OMAPL138 --nodsp=1 --dspcfg_0=OMAPL138GEMSHMEM --dspos_0=DSPBIOS5XX --gppos=ARM --comps=ponslrmc --DspTskMode=1
编译配置命令必须执行来配置thevarious参数,如平台,GPP操作系统,编译配置等。
perl dsplinkcfg.pl --platform=OMAPL138 --nodsp=1 --dspcfg_0=OMAPL138GEMSHMEM --dspos_0=DSPBIOS6XX --gppos=ARM --comps=ponslrmc
perl dsplinkcfg.pl --platform=OMAPL138 --nodsp=1 --dspcfg_0=OMAPL138GEMSHMEM --dspos_0=DSPBIOS6XX --gppos=MVL5U --comps=ponslrmc
Note1: 有关上述选项的详细信息可以在DSP/Link User's Guide 的第9.3章节找到,这个用户手册位于/home//OMAPL137_arm_1_##_##_##/dsplink-1_6#_##-prebuilt/packages/dsplink/doc/UserGuide.pdf
Note2: 对于OMAP-L,DSP/Link 库必须 编译成DSP任务模式(最后的参数)。
在运行这个perl脚本之后,用户将在底部得到类似下面的信息,提示用户需要更新哪些额外的makefiles :
对于 OMAPL137 软件
=========================================================
Please edit the following files for toolchains, kernel sources, etc changes.
GPP side distribution file: $DSPLINK/make/Linux/omapl1xx_mvlpro5.0.mk
DSP side distribution file: $DSPLINK/make/DspBios/c64xxp_5.xx_linux.mk
对于 OMAPL138 软件
=========================================================
Please edit the following files for toolchains, kernel sources, etc changes.
GPP side distribution file: $DSPLINK/make/Linux/omapl138_arm.mk
GPP side distribution file: $DSPLINK/gpp/src/Rules.mk
DSP side distribution file: $DSPLINK/make/DspBios/c64xxp_5.xx_linux.mk
Step 3: 设置编译所需要的工具的路径,修改 GPP 侧 Linux makefile (下面是默认的路径) 和正确的 BASE_BUILDOS 路径及BASE_TOOLCHAIN 变量。
对于 OMAPL137 软件
/home//OMAPL137_arm_1_00_00_xx/DSPLINK_DIR/packages/dsplink/make/Linux/omapl1xx_mvlpro5.0.mk
BASE_BUILDOS := /home//workdir/lsp/ti-davinci/linux-2.6.18_pro500
BASE_TOOLCHAIN := /opt/mv_pro_5.0/montavista/pro/devkit/arm/v5t_le
对于 OMAPL138 软件
/home//OMAPL138_arm_1_00_00_xx/DSPLINK_DIR/packages/dsplink/make/Linux/omapl138_arm.mk
BASE_BUILDOS := /home//OMAP_L138_arm_1_00_00_xx/DaVinci-PSP-SDK-03.20.00.xx/src/kernel/linux-03.20.00.xx
BASE_TOOLCHAIN := /home/user/CodeSourcery/Sourcery_G++_Lite
修改 (默认路径如下) ,更正 BASE_INSTALL, BASE_SABIOS, XDCTOOLS_DIR 和BASE_CGTOOLS 变量的设置
/home//OMAPL13#_arm_1_##_##_##/DSPLINK_DIR/packages/dsplink/make/DspBios/c64xxp_5.xx_linux.mk
对于 OMAPL137 软件
BASE_INSTALL := /home//OMAPL137_arm_1_00_00_10
BASE_SABIOS := $(BASE_INSTALL)/bios_5_33_05
XDCTOOLS_DIR := $(BASE_INSTALL)/xdctools_3_10_05_61
BASE_CGTOOLS := $(BASE_INSTALL)/cg6x_6_1_9
对于 OMAPL138 软件
BASE_INSTALL := /home//OMAPL138_arm_1_00_00_08
BASE_SABIOS := $(BASE_INSTALL)/bios_5_41_02_14
XDCTOOLS_DIR := $(BASE_INSTALL)/xdctools_3_16_01_27/
BASE_CGTOOLS := $(BASE_INSTALL)/cg6x_6_1_9
仅对OMAP-L138 ,你仍然需要修改 Linux Rules.mk (默认路径如下) ,设置正确的路径给 KERNEL_DIR 和TOOL_PATH
/home//OMAP_L138_arm_1_00_00_xx/DSPLINK_DIR/packages/dsplink/gpp/src/Rules.mk
KERNEL_DIR := /home/OMAP_L138_arm_1_00_00_xx/DaVinci-PSP-SDK-03.20.00.xx/src/kernel/linux-03.20.00.xx
TOOL_PATH := /home//CodeSourcery/Sourcery_G++_Lite/bin
Note: 如果您打算使用Codec Engine (你可能会做),在转到下一个步骤之前,请确认是否按照这一页的步骤允许了XDC-based integration 。如果没有允许,你将得到如下的错误
Step 4: 编译 GPP-side DSPLink 模块和例子应用程序:
切换到gpp目录下,编译 DSPLink
host $ cd /home//OMAPL13#_arm_1_##_##_##/DSPLINK_DIR/packages/dsplink/gpp/src
host $ /home//OMAPL13#_arm_1_##_##_##/xdctools_3_1#_##_##/gmake
Note: 如果你得到一个错误的话,您可能需要运行此命令。
host $export DSPLINK = /home/user/OMAPL13#_arm_1_##_##_##/DSPLINK_DIR/packages/dsplink
切换到例子的子目录下,编译这个例子应用程序:
host $ cd samples
host $ /home//OMAPL13#_arm_1_##_##_##/xdctools_3_1#_##_##/gmake -s
Step 5: 编译 DSP-side DSPLink 模块和例子应用程序:
切换到dsp源程序的文件夹,编译DSPLink 模块
host $ cd /home//OMAPL13#_arm_1_##_##_##/DSPLINK_DIR/packages/dsplink/dsp/src
host $ /home//OMAPL13#_arm_1_##_##_##/xdctools_3_1#_##_##/gmake
切换到例子应用程序子目录,编译这个例子程序:
host $ cd samples
host $ /home//OMAPL13#_arm_1_##_##_##/xdctools_3_1#_##_##/gmake -s
GPP- 和 DSP-side 应用程序位于下面的路径中:
/home//OMAPL13#_arm_1_##_##_##/DSPLINK_DIR/packages/dsplink/gpp/export/BIN/Linux/OMAPL1XX/RELEASE
/home//OMAPL13#_arm_1_##_##_##/DSPLINK_DIR/packages/dsplink/dsp/export/BIN/DspBios/OMAPL1XX/OMAPL1XXGEM_0/RELEASE
有关如何安装和运行这例子的详细信息参考《InstallGuide_Linux_OMAPL1xx.pdf for OMAPL137》和《InstallGuide_Linux_OMAPL138.pdf for OMAPL138》的1.5.4 章节