C6EZRun

From Texas Instruments Wiki
Jump to: navigation, search

END OF LIFE

C6Run 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.


Make ARM+DSP easy with C6EZRun

Quick Links

C6EZRun Software Development Tool
video platform video management video solutions video player
C6EZRun Software Development Tool


What is C6EZRun?

C6run graphic.png C6EZRun is a free, open-source development tool from Texas Instruments that allows the user to seamlessly use the DSP on heterogeneous ARM+DSP devices. The C6EZRun tool set is available as a free download from the Texas Instruments website.

It is intended to ease development of DSP code on two-core heterogeneous SoC processors from Texas Instruments, specifically targeting ARM+DSP devices. This project is used in systems running ARM Linux and containing a C6000 DSP core (see the list of supported devices).

What does C6EZRun actually do?

The C6EZRun project allows you to seamlessly use the DSP from the ARM core on TI's ARM+DSP devices, without having to deal with any advanced, and potentially complicated, frameworks and software stacks. C6EZRun is a set of tools which will take in C files and generate either an ARM executable, or an ARM library which will leverage the DSP to execute the C code.

There are two uses of the C6EZRun project, exposed through two different front-end scripts. They are called C6RunLib and C6RunApp. The use of these two scripts are graphically shown below.

align="center"
C6RunLib C6RunApp
C6RunLib.gif C6RunApp.gif


What does C6EZRun Consist Of?

The project consists of two main components:

  1. A build system to create back-end libraries composed of various TI software technologies and the code of the C6EZRun framework itself
  2. Front-end scripts that wrap the TI C6000 code generation tools in a GCC-like interface. These scripts make use of the back-end libraries and build system to create ARM-side components that transparently make use of the DSP.

Why should I use C6EZRun?

You should considering using C6EZRun if you are an ARM Linux developer and you want to easily get started running arbitrary DSP code. A typical use case will be to benchmark an algorithm on the DSP.

The aim of this project is to ease initial development and loading of DSP code for ARM developers who are familiar with building applications for the Linux OS using an ARM GCC cross-compiler. This project should be of particular interest to ARM developers who are familiar with the command-line ARM GCC cross-compiler and who want a similar mechanism to build and run code on the DSP.


What devices are supported by C6EZRun?

The C6EZRun project targets two-core heterogeneous SoC processors from Texas Instruments, specifically ARM+DSP devices which run Linux on the ARM. The complete list of supported devices is given:

C6EZRun Supported Devices
TI Device Number ARM Core Type DSP Core Type C6EZRun Version
OMAP-L137 ARM926EJ-S TMS320C674x fixed- and floating-point DSP v0.95 or later
OMAP-L138 ARM926EJ-S TMS320C674x fixed- and floating-point DSP v0.95 or later
OMAP3530/25 ARM Cortex-A8 TMS320C64x+ fixed-point DSP v0.95 or later
DM3730/25 ARM Cortex-A8 TMS320C64x+ fixed-point DSP v0.95 or later
DM3730/25 ARM Cortex-A8 TMS320C64x+ fixed-point DSP v0.95 or later
TMS320C6A8168/67 ARM Cortex-A8 TMS320C674x fixed- and floating-point DSP v0.97. or later


Some devices which may be supported, but have not undergone testing, are given below:

C6EZRun Provisionally Supported Devices (not fully tested)
TI Device Number ARM Core Type DSP Core Type C6EZRun Version Comments
DM6446 ARM926EJ-S TMS320C64x+ fixed-point DSP v0.95 or later Platform exists, but no testing done.
DM6467T ARM926EJ-S TMS320C64x+ fixed-point DSP v0.95 or later See here for details.


How do I get Started with C6EZRun?

This is a deeper topic, so it has it's own page here. But it basically covers the following:

  • Getting the tool
  • Installing the tool
  • Configuring the tool
  • Doing an initial test ("Hello World" example)

Where do I find documentation for C6EZRun?

Right here on the TI wiki! Specifically, look at the following pages:

How is C6EZRun developed?

C6EZrun is developed as an open source software project. That means that the code that makes up the tool is made available to the end user (in fact, it is distributed as part of the downloadable package). The user is free to modify, tweak, change, read, update, improve, etc. the source for their own needs and purposes. It is the hope that improvements to the package be contributed back to the project and it's maintainers.

The C6EZRun project is hosted on Texas Instruments' external GForge server, gforge.ti.com. It is licensed under the standard three-clause BSD License. The official development project page is here.

Open source development flow

Texas Instruments, Inc. sponsors the development of the C6EZRun tool via the time its employees spend on the project. However, any and all who wish to participate in developing and improving the project are welcome to join. Any individual or company wishing to contribute should first become familiar with the contents of the project, including the documentation and information available on this wiki. You should try out the product by downloading it, configuring it, and building and running the included examples. You should ask questions or participate in discussions on the forums or mailing lists. You can also become a member of the hosted project on gforge.ti.com.

Checkout and browse the source code

For developers, subversion access (using a subversion (SVN) client) to the development trunk is available at https://gforge.ti.com/svn/dspeasy/trunk.
  [host]$ svn checkout --username anonymous https://gforge.ti.com/svn/dspeasy/trunk
Note that the current trunk may not represent a stable version of the project. For SVN access to stable releases, you should checkout/export from a tags path.
  [host]$ svn checkout --username anonymous https://gforge.ti.com/svn/dspeasy/tags/<MM>_<mm>_<pn>_<bn>
<MM>_<mm>_<pn>_<bn> is the release's particular version number (MM=major, mm=minor, pn=patch number, bn=build number).

The subversion repository is also browseable at the GForge site.

Developers mailing list

The dspeasy_devel mailing list exists for project developers to discuss source code issues, feature implementations, and submit and review patches.

Archives of the developer mailing list are available here.

Submit and track bugs/features

If you believe you have found a bug, you can report this in the C6EZRun bug tracker. Fill in as much detail as you can, leave blank anything you aren't sure of.

If you have a feature request for the C6EZRun project, you can report this in the C6EZRun feature request tracker. Fill in as much detail as you can, leave blank anything you aren't sure of.

For both bugs and feature requests, it is recommended that you search or browse the open tracker items to make sure you are not posting a duplicate of an existing tracker item.

Submit code patches, contribute to project

Code patches should be submitted to the C6EZRun patches tracker or directly to the developer mailing list. Be sure to make it clear what revision of the trunk or what tagged release version the patch should apply against.


What is the roadmap for C6EZRun?

Version Time Status Comments
v0.97 1Q2011 Released Add support for SysLink IPC and C6A816x devices.
v0.98 2Q2011 Released Add support for TI814x devices, add support for multiple in-flight calls, add support for asynchronous calling (better multi-threaded support overall).
v0.99 3Q2011 Planning Change DSP->ARM CIO calls to use similar RPC calling mechanisms,Add more examples, improve testing coverage, automate test execution, improve OpenEmbedded integration (SDK recipe). Consider moving front-end tools to Perl from current Bash.
v1.00 4Q2011 Conception Better POSIX API support, improve DSP profiling, improve DSP debugging (can we tie into CCS and/or GDB?)


How can I get support for C6EZRun?

Where do I go first?

If you have read the product documentation above and you still have a question or problem, pleaser refer to the Frequently Asked Questions page. This is the first line of support.

That didn't help, what next?

If the documentation and the FAQ haven't helped (and if that's the case, we do apologize), then you have a few options:

  • TI's Engineer-2-Engineer (E2E) community support forums: It is recommended that you place your question in the device-specific forum (see links below), tagged with 'C6Run'. The tag is important as it lets the TI support team filter your questions to the right people. Without the tag, responses to your posts may be delayed.
  • Send an email to the official general C6EZRun mailing list: This list is available to seek support or engage in discussion on the C6EZRun project. It may also be used for general product announcements. This list is not intended for developers or discussion of source code - the developer mailing list should be used for that.

IMPORTANT NOTE: It is preferred that users use the E2E forums for support as this content is archived and searchable (thus benefiting you and any other future users) and posts made to mailing list are not.


How can I give feedback for C6EZRun?

This is a lot like asking for support so the options are basically the same:

  • TI's Engineer-2-Engineer (E2E) community support forums: It is recommended that you put your feedback in the device-specific forum (see links above under support), tagged with 'C6Run'. The tag is important as it lets the TI support team filter your questions to the right people. Without the tag, responses to your posts may be delayed.
  • Send an email to the official general C6EZRun mailing list: This list is available to leave feedback or engage in discussion on the C6EZRun project. It may also be used for general product announcements. This list is not intended for developers or discussion of source code - the developer mailing list should be used for that.

You can also submit the feedback directly to the project tracker, as described above.


Is there any additional information about C6EZRun?

Videos

Training & other materials

Demos, examples, and projects using the tool


Are there any related pages or other work going on?