Difference between revisions of "ECE497 Notes on DSP via c6run"
| Line 51: | Line 51: | ||
host$ ./bios_setuplinux_5_41_09_34.bin --mode silent --prefix ~/toolchains | host$ ./bios_setuplinux_5_41_09_34.bin --mode silent --prefix ~/toolchains | ||
| − | * Install the pre-built C6Run package | + | * Install the pre-built C6Run package. To do this you must first untar the c6run_m_yoder.tgz file |
| + | host$ tar -xvfz c6run_m_yoder.tgz | ||
| + | host$ cd c6run_m_yoder | ||
host$ tar -C ~/toolchains -xzf c6run_0_95_02_02_beagleboard.tar.gz | host$ tar -C ~/toolchains -xzf c6run_0_95_02_02_beagleboard.tar.gz | ||
| Line 57: | Line 59: | ||
host$ cd ~/toolchains/c6run_0_95_02_02_beagleboard | host$ cd ~/toolchains/c6run_0_95_02_02_beagleboard | ||
host$ vi environment.sh | host$ vi environment.sh | ||
| + | /* the following command in vi would make the substitution on all cases */ | ||
| + | :1,$s/\${HOME}/\/home\/beagle | ||
| + | * We now want to set up our environment variables. But first we will check to see what they are currently. | ||
| + | host$ printenv ! Prints all the environment variables, note too many to see | ||
| + | host$ printenv | more ! Prints out a page at a time, space to advance | ||
| + | host$ printenv | grep ARM ! Only prints lines that have “ARM” in them | ||
| + | host$ printenv | grep C6 ! Only prints lines that have “C6” in them | ||
| − | * Source the environment variables | + | * The previous, unless you ran the environment.sh command previously, should show no environment variables with ARM or C6 in them |
| + | * Source the environment variables and rerun the checks | ||
host$ source environment.sh | host$ source environment.sh | ||
| + | host$ printenv | grep ARM ! Only prints lines that have “ARM” in them | ||
| + | host$ printenv | grep C6 ! Only prints lines that have “C6” in them | ||
| + | |||
A this point the environment and components are all setup to build the examples and test cases | A this point the environment and components are all setup to build the examples and test cases | ||
Revision as of 21:02, 27 April 2011
Here are some notes on how to get c6run going on the BeagleBoard. This has been modified to add detail (4/27/2011) for the ECE4356 class.
Contents |
Downloads
from here
This, Media:C6run_m_yoder.tgz, contains the following:
- /lib/modules from target FS
- uImage itself
- C6Run package prebuilt for the above
- C6Run target software
- Kernel modules for TI components
- loadmodules.sh and unloadmodules.sh
- pre-compiled test and and example applications
from elsewhere
- DSP toolchain - point them to same one using
- Angstrom distribution ARM compiler
- DSP/BIOS 5.41 - point them to same one using
Instructions for Host Setup and Build
The download instructions have been modified. It is now assumed that you have already downloaded the following 4 files and placed them into your ~/Download directory (note ~ is /home/beagle below). Since some of the download times are very slow for these, they have been made available on the EE4356 web site.
- C6run_m_yoder.tgz
- ti_cgt_c6000_7.0.4_setup_linux_x86.bin
- angstrom-2010.4-test-20100422-i686-linux-armv7a-linux-gnueabi-toolchain-qte-4.6.2.tar.bz2
- bios_setuplinux_5_41_09_34.bin
- (Already Done) Download the TI C6000 v7.0.4 code generation tools for Linux from here
- Install the codegen tools to
~/toolchains/TI_CGT_C6000_7.04(you implicitly accept a EULA when doing this)
host$ mkdir ~/toolchains
host$ cd ~/Downloads
host$ chmod +x ti_cgt_c6000_7.0.4_setup_linux_x86.bin
host$ ls -l ! Look for an x by ti_... to verify it is executable
host$ ./ti_cgt_c6000_7.0.4_setup_linux_x86.bin --installto ~/toolchains --mode silent
- (Already Done) Download the angstrom ARM toolchain from here.
- Install the ARM toolchain
host$ tar -C ~/toolchains -xjf angstrom-2010.4-test-20100422-i686-linux-armv7a-linux-gnueabi-toolchain-qte-4.6.2.tar.bz2
The ARM toolchain will be in ~/toolchains/usr/local/angstrom/arm/
- Download the 5.41.09.34 DSP/Bios package from here.
- Install the DSP/Bios package (you implicitly accept a EULA when doing this)
host$ chmod +x bios_setuplinux_5_41_09_34.bin
host$ ./bios_setuplinux_5_41_09_34.bin --mode silent --prefix ~/toolchains
- Install the pre-built C6Run package. To do this you must first untar the c6run_m_yoder.tgz file
host$ tar -xvfz c6run_m_yoder.tgz
host$ cd c6run_m_yoder
host$ tar -C ~/toolchains -xzf c6run_0_95_02_02_beagleboard.tar.gz
- Edit the c6run environment settings to correctly point to the location of the components on your host PC (replace ${HOME} with the absolute path)
host$ cd ~/toolchains/c6run_0_95_02_02_beagleboard
host$ vi environment.sh
/* the following command in vi would make the substitution on all cases */
:1,$s/\${HOME}/\/home\/beagle
- We now want to set up our environment variables. But first we will check to see what they are currently.
host$ printenv ! Prints all the environment variables, note too many to see
host$ printenv | more ! Prints out a page at a time, space to advance
host$ printenv | grep ARM ! Only prints lines that have “ARM” in them
host$ printenv | grep C6 ! Only prints lines that have “C6” in them
- The previous, unless you ran the environment.sh command previously, should show no environment variables with ARM or C6 in them
- Source the environment variables and rerun the checks
host$ source environment.sh
host$ printenv | grep ARM ! Only prints lines that have “ARM” in them
host$ printenv | grep C6 ! Only prints lines that have “C6” in them
A this point the environment and components are all setup to build the examples and test cases
included in the the C6Run package. All the makefiles for the examples and test cases rely on
FOUR environment variables: ARM_TOOLCHAIN_PREFIX, ARM_TOOLCHAIN_PATH, CFLAGS, and
C6RUN_TOOLCHAIN_PATH. The compilation scripts (c6runlib and c6runapp scripts) rely on these
and the other variables from the environment.sh file.
It is suggested that the test and example makefiles be used as a template for any builds done for your own code.
Target Preparation
- Setup the beagleboard to boot using the included kernel image (uImage binary file). This should just require replacing the uImage file on your SD card with the provided one (rename the file to be just '
uImage'). - Copy the the contents of the provided
/lib/modulesto the target's/lib/modulespath. I found I didn't need to do this. - Copy the contents of c6run_target.tar.gz to the target file system. I place it in
/opt. It contains the kernel modules form the TI components and the loadmodules.sh script which should be used to install them. The pre-built examples and test cases are also included in this archive - Before running any c6run based application, make sure you run the loadmodules.sh script to load the needed kernel modules.