AM389x C6A816x DM816x Software Design Guide

Software Hierarchy Providing specific for AM389x C6A816x DM816x
TI provides the following software development packages specific for AM389x, C6A816x and DM816x

'''RTOS Support for AM389x C6A816x DM816x
 * DSP/BIOS Platform Support Package for C6A816x DM816x is an advanced, real-time operating system for use in a wide range of DSPs, ARMs, and microcontrollers. It is designed for use in embedded applications that need real-time scheduling, synchronization, and instrumentation. It provides preemptive multitasking, hardware abstraction, and memory management.

GPOS Support for AM389x C6A816x DM816x
 * Linux Software Development Kit for DM816x EVM
 * DVR Reference Design Kit for DM816x
 * Linux Software Development Kit for C6A816x EVM
 * Linux Software Development Kit for AM389x EVM
 * AM389x ANDROIDDEVKIT-GINGERBREAD

More topics related to the Linux EZSDK can be found at Category:EZSDK and more general Linux topics (which may apply as well) can be found at Category:Linux and Category:DaVinci_Linux

Non-OS Examples for AM389x C6A816x DM816x
 * None available

For a list of all TI Provided API's specific to the DM816x please visit the
 * DM8168 Tools and Software
 * C6A8168 Tools and Software
 * AM3894 Tools and Software

Cryptographic API Support for the Linux kernel
The cryptographic API for the Linux kernel provides hardware support for cryptographic accelerator cards. This package provides the drivers and the associated kernel configuration changes required to support the crypto accelerator hardware on the AM389x, C6A816x, and DM816x processors.
 * Installing AM389x C6A816x DM816x Crypto Support

The following hardware development kits are recommended by TI for the AM389x C6A816x DM816x

Software Development Platforms for AM389x C6A816x DM816x
DM816x/C6A816x/AM389x Evaluation Module


 * Debug and Trace Tools

Understanding how the AM389x C6A816x DM816x Boot Sequence Works
An brief overview of the ROM Boot Loader sequence for the AM389x C6A816x DM816x can be found in the device Datasheet: Refer to the ROM Code Memory and Peripheral Booting chapter of the device TRM for additional details:
 * DM816x Datasheet
 * C6A816x Datasheet
 * AM389x Datasheet
 * DM816x Technical Reference Manual
 * C6A816x Technical Reference Manual
 * AM389x Technical Reference Manual

Generating the Boot Image
The device PSP User Guide provides a good overview of the steps needed to rebuild the software.

Programming the Image into non-volatile memory
Once a bootable image has been created, there are utilities provided by TI to flash your image into non-volatile memory that run on top of your Host PC.

Serial Flashing Utility
The flash-writers are a part of the PSP package. Instructions on how to use the flash-writers in CCSv4/v5 can be found in PSP Flashing Tools Guide

Benefits:
 * Fast Flashing Time
 * No Connection is required to CCS or to JTAG via an Emulator

Limitations:
 * The Serial Flash Utility only supports flashing EVMs without code modifications for user specific boards.
 * The build environment needs to be downloaded to there user PC.

Flashing via JTAG using CCS
Various CCS Projects have been developed to flash non-volatile memory via the JTAG connection using Code Composer Studio. These projects can be found in the Software Development Kit for NAND, NOR, or SPI Flash.

Benefits:
 * Source Code is easy to modify
 * No additional build environment tools to install

Drawbacks:
 * Slow flashing times
 * Requires a JTAG connection

Serial Port Boot Utility
When debugging, it is often useful to boot over the serial port rather than reflashing the image each time a modification is made. The UART Boot Host enables this using the flash-writers utility included as part of the PSP package.