Getting started with C6EZAccel

From Texas Instruments Wiki
Jump to: navigation, search


C6Accel is still available for download, but is no longer being actively developed or maintained. Please consider other alternatives such as, Codec Engine IUNIVERSAL support, OpenCL or RCM.

^ Up to main C6Accel Main Page

This arcticle is part of a collection of articles describing the C6Accel included in DaVinci/OMAPL/OMAP3 devices.  To navigate to the main page for the C6Accel click on the link above.

Where To Get It ?

  • C6EZAccel 1.x package is part of the DSDK 4.x and has been integrated into the codec server included in it. DVSDK 4.x can be downloaded here
  • C6EZAccel 2.x package is part of the EZSDK 5.x.The software kit can be can be downloaded here
  • Source releases and other resources are available here.
  • C6EZAccel is licensed under the TI TSPA License.

Minimum system requirements

OMAPL and OMAP3 and Davinci users

DM8148/DM8168/C6A8168 Users

  • Codec engine 3.x
  • TI CGT 7.2
  • Xdctools 3.2x
  • Linuxutils
  • Syslink 2.x
  • Xdais 7.2x
  • SYSBios 6.3x
  • Framework components 3.2x
  • Ipc 1.2x
  • Linux-psp4.00.00.07

Note: Please check release notes to find platform specific dependencies and version of dependencies used in testing C6EZAccel

Version of DSP Libraries linked to C6EZAccel

How to Install C6EZAccel

  • Windows
  1. Download the setup file C6Accel-x.x-Setup.exe from the C6EZAccel Product folder
  2. Install the package by running the setup. The setup installs the package along the default path C:\Program files\C6EZAccel however it is recommended to download the package in the SDK_INSTALL_DIR. If the user chooses to install the package along any other path, he is expected to set approriate paths in the xdcpaths.dat file of the SDK before rebuilding the SDK so that the build tools can find the C6EZAccel codec.
  • Linux
  1. Download the setup file C6Accel-x.x-Linux-x86-Install from the C6Accel Product folder into a temperory folder (eg /tmp).
  2. To install the C6Accel package using the Linux installer,log in using a user account . The user account must have execute permission for the all the installation files. Switch user to “root” on the host Linux workstation and change directories to the temporary location where you have downloaded the bin files. Once you have changed the execute permissions you can go back to a normal user.
  host $ su root 
  host $ cd /tmp 
  host $ chmod +x *.bin 
  host $ exit 

3. Execute the C6Accel installer that you previously downloaded from the SDK target content download page.

 For example: 
  host $ cd /tmp 
  host $ ./C6Accel-x.x-Linux-x86-Install

Directory structure The C6Accel installation provides the directory structure below:

+−−soc: Example and test application code for C6EZAccel
|    |
|    +−−packages: Contains C6EZAccel codec package and unit server on OMAPL and OMAP3 platform
|    +--app: Sample test application to test and benchmark kernels in C6EZAccel
|    +--c6accelw: Contains C6EZAccel wrapper API library which is aimed at simplifying user experience
+−−dsp: Xdais alg that creates the codec 
|    |
|    +alg: Contains xdais algorithm of C6EZAccel
|    +libs: Contains DSP software libraries that are currently linked to C6EZAccel
+−−docs:  documentation for C6EZAccel
+−−README.txt Top−level README file

Building the C6EZAccel Package and running the test application

The C6EZAccel package comes with a small test application benchmarks all the DSP kernel APIs for fixed point and floating point calculations.

Assumption: The Build step assumes that the linux kernel, cmem and dsplink module have been pre-built. If the are not built users are expected to build those dependencies before building the C6EZAccel package.

1. Set paths to dependencies in the Rules.make file in the package. Ensure the C6Accel_INSTALL_DIR is set to the path where the C6accel package is installed


2. Build the package by using the command make command in the root directory of the package.

  make all 

3. Set the EXEC_DIR in Rules.make and install the test app in the work area on the filesystem of the target by executing

  make install

Note: Make install copies the testfiles,, codec server (.x64P or .x674), dsplinkk.ko and cmemk.ko along with the testapp c6accel_app to the filesystem

4. Power on the device, open Teraterm/Minicom to view the boot and the command propmt for the target. Change directory to working area on the filesystem.

  cd $(EXEC_DIR)

5. Load the cmem and dsplink modules by running the shell script

  For example: On OMAP3530 or DM3730

Note: The loadmodules script will vary as per the bootargs configured on the device. The default loadmodules corresponds to the bootargs described in the DVSDK 4.x software developers guide.

Note: Ensure that CMEM module was initialized with 20 pools of 0x4096 and heap memory and DSPLINK was created 6. Run the app by executing the following command on the command prompt on the target.


On a OMAP3 device you will observe the test results for fixed point kernels in C6EZAccel while on the OMAPL device you will observe test results for fixed as well as floating point kernels. The application also benchmarks all the kernel API calls in C6EZAccel and writes the benchmarks to a file benchmark.txt in the $(EXEC_DIR) path of the filesystem.

Note : DVSDK users can run a prebuilt version of this sample application by following the directions mentioned below:

To run the application, enter the following directory on the target:

target # cd /usr/share/ti/c6accel-apps/

Then load the necessary kernel modules need by the application

target # ./loadmodules_{{{short_processor_lowcase}}}

Execute the following command to run the example application

target # ./c6accel_app

The application also benchmarks all the DSP kernel API calls in C6EZAccel and writes the benchmarks to a file benchmark.txt

target # vi benchmark.txt

For C6Accel and later

C6Accel intergrates OpenCV functionality on the DSP along with other libraries. This release adds a test application and a new build target 'opencv_app' to build this in the package. There is a pre-requisite to build this opencv_app. This requires users to build OpenCV 2.x for the ARM as described here and place the OpenCV shared libraries on the target filesystem under the path $TARGETFS/usr/lib

After the prequisite step is complete execute make to build and install the OpenCV test application

make opencv_app
make opencv_app_install

Running C6EZAccel Sample Application in WinCE SDK 1.10

  1. The c6accel_app.exe application has some special memory requirements that require it to run on a modified memory configuration different from what is configured in the DVSDK 1.10 package out of the box. To achieve this, the following steps must be followed.
  2. Make a backup copy of %DVSDK_INSTALL_DIR%\src\misc\cmem.reg.
  3. Overwrite %DVSDK_INSTALL_DIR%\src\misc\cmem.reg with %DVSDK_INSTALL_DIR%\src\misc\cmem_c6accel.reg using the following command
  4. copy %DVSDK_INSTALL_DIR%\src\misc\cmem_c6accel.reg %DVSDK_INSTALL_DIR%\src\misc\cmem.reg
  5. Rebuild DVSDK (NOTE: it is not necessary to rebuild CMEM or any other source component) and the BSP and bring up the target with the new BSP image.
  6. Copy the directory %DVSDK_INSTALL_DIR%\src\c6accel_1_01_00_02\soc\app\test_files to a SD card.
  7. Insert the SD card with the test_files directory.
  8. Run c6accel_app.exe. If the application runs successfully, benchamarks for the various C6Accel algorithms are captured in the file \\Storage Card\\benchmarking.txt on the SD card.
  9. Restore the original cmem.reg for future DVSDK builds not requiring C6accel_app execution.

NOTE: You might see CMEM errors when the app starts. These can be safely ignored. This is because c6accel_app tries to allocate heap buffers from Block 1 of CMEM configured memory first and then from Block 0 if that fails. In cmem_c6accel.reg, CMEM is configured not to use Block 1, so any heap memory allocation from this block will fail but c6accel_app will subsequently  try to allocate heap buffers from Block 0, which will succeed. If the default cmem.reg supplied in DVSDK is used to configure CMEM, c6accel_app cannot run because of insufficient heap memory configured in Block 0. In this case, c6accel_app will claim to have run successfully but in fact, no C6Accel algorithms would have been run.

C6EZAccel ARM user Documentation

Information about using C6EZAccel in an ARM application can be found here

C6EZAccel Advanced Users Guide

Information about using C6EZAccel in an ARM application can be found here

Return to C6EZAccel Main page

^ Up to main C6Accel Main Page

This arcticle is part of a collection of articles describing the C6Accel included in DaVinci/OMAPL/OMAP3 devices.  To navigate to the main page for the C6Accel click on the link above.