From Texas Instruments Embedded Processors Wiki
What is C6EZRun?
|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.
What does C6EZRun Consist Of?
The project consists of two main components:
- A build system to create back-end libraries composed of various TI software technologies and the code of the C6EZRun framework itself
- 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:
|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:
|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 codeFor 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/trunkNote 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?
|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?
Training & other materials
- ESC Boston 2010 Presentation
- Bringing DSP closer to ARM and Leveraging DSP MHz for signal processing
Demos, examples, and projects using the tool
- C6EZRun Product Folder and Download
- C6Flo Graphical Development Tool
- C6Accel Tool for accessing DSP from the ARM
- C6000 DSP Ease-of-Use Tools Overview