DSP

TI双核处理OMAP-L1x DSP/BIOS Link及其例子的编译步骤

2019-07-13 12:32发布

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 章节