DSP Link Configuration¶
The steps outlined below are for configuring the TI DSPLink for the MityDSP-L138 processor. Please refer to the Building DSPLink page at TI's website for further information.
The current DSP Link tested for the MityDSP-L138 is version 1.65. A copy of DSPLink modified by Critical Link is included in the MDK at MDK_2011-03-31/sw/3rdparty/dsplink_linux_1_65_00_03/dsplink/. You can also download a fresh copy of DSPLink, without the modifications made by Critical Link, here.
To compile the DSPLink libraries for the MityDSP-L138, the following procedures were taken on a Linux host.
Prerequisites¶
- DSP/BIOS version bios_5_41_03_17 installed
- Code Gen Tools version 6.1.15 for C6000 series processors installed
- XDC Tools version 3.15 installed
- Build the latest version of the Linux Kernel. The latest Linux Kernel is located in the MDK at MDK_2011-03-31/sw/ARM/linux/linux-davinci/ and details on building the kernel can be found at Linux Kernel.
Build details¶
- Only if starting from a fresh copy: Extract the DSPLink tarball into a working directory
user@desktop> tar xvzf dsplink_linux_1_64.tar.gz
- Edit setenv-bash so that "export ARM_BASE_BUILDOS=~/projects/linux-davinci" points to the kernel you have built on your system and then set the necessary environment variables by running:
mitydspl138@vm$ source setenv-bash
- Only if starting from a fresh copy: Configure the build environment. You only need to do this on a fresh downloaded copy. If you are using the MDK installed DSPLINK, this has already been done.
user@desktop> cd config/bin user@desktop> perl dsplinkcfg.pl --platform=OMAPL138 --nodsp=1 --dspcfg_0=OMAPL138GEMSHMEM --dspos_0=DSPBIOS5XX --gppos=ARM --comps=ponslrmc --trace=1 --DspTskMode=1
Note: dspcfg_0 and dspos_0 end in the number zero! The font in the wiki makes this ambiguous!
This will configure the DSPLink layer to use the OMAPL138 configuration with TASK mode (as opposed to SWI mode). - Only if starting from a fresh copy: In order to build the DSPLink layer with the SDK chain provided by Critical Link, you will need to modify the rules file for the gpp side of the build cycle. This file is located in ${DSPLINK}/make/Linux/omapl138_arm.mk. The change should be applied per the patch description below. The change essentially updates the SDK tools to reference the build tools provided by Critical Link. This change assumes you have a copy of the working linux kernel located at ${HOME}/linux-davinci.
=================================================================== --- Linux/omapl138_arm.mk (revision 328) +++ Linux/omapl138_arm.mk (working copy) @@ -59,12 +59,12 @@ # ---------------------------------------------------------------------------- # Base directory for the GPP OS # ---------------------------------------------------------------------------- -BASE_BUILDOS := ${HOME}/da850/DaVinci-PSP-SDK-03.20.00.01/src/kernel/linux-03.20.00.01 +BASE_BUILDOS := ${HOME}/linux-davinci # ---------------------------------------------------------------------------- # Base for toolchain # ---------------------------------------------------------------------------- -BASE_TOOLCHAIN := ${HOME}/git/arm-2008q3 +BASE_TOOLCHAIN := /usr/local/angstrom/arm # ---------------------------------------------------------------------------- # Base for code generation tools - compiler, linker, archiver etc. @@ -77,8 +77,10 @@ BASE_OSINC := $(BASE_BUILDOS)/include OSINC_GENERIC := $(BASE_OSINC) -OSINC_PLATFORM := $(BASE_TOOLCHAIN)/lib/gcc/arm-none-linux-gnueabi/4.3.2/include -OSINC_TARGET := $(BASE_TOOLCHAIN)/arm-none-linux-gnueabi/libc/usr/include +#OSINC_PLATFORM := $(BASE_TOOLCHAIN)/lib/gcc/arm-none-linux-gnueabi/4.3.2/include +#OSINC_TARGET := $(BASE_TOOLCHAIN)/arm-none-linux-gnueabi/libc/usr/include +OSINC_PLATFORM := $(BASE_TOOLCHAIN)/lib/gcc/arm-angstrom-linux-gnueabi/4.3.3/include +OSINC_TARGET := $(BASE_TOOLCHAIN)/arm-angstrom-linux-gnueabi/usr/include ifneq ("$(VARIANT)", "") OSINC_VARIANT := $(BASE_OSINC) @@ -106,10 +108,10 @@ # ---------------------------------------------------------------------------- # Name of the compiler # ---------------------------------------------------------------------------- -COMPILER := $(BASE_CGTOOLS)/arm-none-linux-gnueabi-gcc -LD := $(BASE_CGTOOLS)/arm-none-linux-gnueabi-ld +COMPILER := $(BASE_CGTOOLS)/arm-angstrom-linux-gnueabi-gcc +LD := $(BASE_CGTOOLS)/arm-angstrom-linux-gnueabi-ld -CROSS_COMPILE := arm-none-linux-gnueabi- +CROSS_COMPILE := arm-angstrom-linux-gnueabi- export CROSS_COMPILE # ---------------------------------------------------------------------------- @@ -153,7 +155,7 @@ # ============================================================================ # ARCHIVER2 - This denotes the archiver. # ============================================================================ -ARCHIVER := $(BASE_CGTOOLS)/arm-none-linux-gnueabi-ar +ARCHIVER := $(BASE_CGTOOLS)/arm-angstrom-linux-gnueabi-ar # ---------------------------------------------------------------------------- # Standard flags for the archiver @@ -164,7 +166,7 @@ # ============================================================================ # LINKER - The compiler is used for linking purpose as well. # ============================================================================ -LINKER := $(BASE_CGTOOLS)/arm-none-linux-gnueabi-gcc +LINKER := $(BASE_CGTOOLS)/arm-angstrom-linux-gnueabi-gcc # ---------------------------------------------------------------------------- # Command line switches used by the linker
- Only if starting from a fresh copy: Update the memory map per TI's Updating DSPLink Memory Map instructions.
- Build DSPLink for the ARM
- Change directory to $DSPLINK
- Execute the command:
mitydspl138@vm$ ./build_arm.bash
Go to top