StarterWare Getting Started 01.20.XX.XX

From Texas Instruments Wiki
Jump to: navigation, search

TIBanner.png

Document License

This work is licensed under the Creative Commons Attribution-Share Alike 3.0 United States License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/us/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.

StarterWare Overview

StarterWare is a free software development package that provides no-OS platform support for TI embedded processors. StarterWare includes Device Abstraction Layer (DAL) libraries and example applications that demonstrate the capabilities of the peripherals on C6748. This package includes the following components:

StarterWareFramework.JPG

  • Device Abstraction Layer Library - Device abstraction layer (i.e. drivers) for supported peripherals.
  • Example Applications - Sample applications which demonstrate the use of peripheral drivers and other libraries.
  • System Configuration Library - Fundamental APIs that enable interrupt and cache usage.
  • Platform Library - Platform-specific initialization code. This code sets board-level features like pinmux, IO expanders, GPIOs and other similar features that are commonly required by applications.
  • Graphics Library - Lightweight 2D graphics library that renders primitives (lines, circle, etc.), fonts, and user interface widgets.
  • USB Stack Library - Implements host and device support for common USB classes.
  • lwIP - Lightweight, open source network stack for use with EMAC.
  • FatFs - Lightweight, open source file system for use with external memory devices.

Directory Structure

C6748_StarterWare_1.20.##.###
|
|-- binary
|   |-- c674x
|       |-- [cgt/cgt_ccs]
|           |-- grlib
|           |-- nandlib
|           |-- utils
|           |-- c6748
|               |-- drivers
|               |-- system_config
|               |-- usblib
|               |-- evmC6748
|                   |-- bootloader
|                   |-- platform
|                   |-- demo
|                   |-- ...
|
|-- bootloader
|   |--include
|   |--src
|
|-- build
|   |-- c674x
|       |-- [cgt/cgt_ccs]
|           |-- grlib
|           |-- nandlib
|           |-- utils
|           |-- c6748
|               |-- drivers
|               |-- system_config
|               |-- usblib
|               |-- evmC6748
|                   |-- bootloader
|                   |-- platform
|                   |-- demo
|                   |-- ...
|
|-- docs
|   |-- C6748_StarterWare_1_20_01_01.chm
|   |-- README.txt
|
|-- drivers
|   
|-- examples
|   |-- evmC6748
|
|-- grlib
|   
|-- host_apps
|
|-- include
|   |-- hw
|   |-- c674x
|       |--c6748
|
|-- nandlib
|
|-- platform
|   |-- evmC6748
|       
|-- system_config
|   |-- c674x
|
|-- third_party
|
|-- tools
|
|-- usblib
|
|-- utils
|
|-- SoftwareManifest.pdf
  • drivers - Contains the source files for the driver library APIs. The build materials are located in the shared build tree. For example, the makefile for building the driver library with CGT is under build/c674x/cgt/c6748/drivers directory. Once built, the library is placed in the shared binary tree binary (i.e. binary/c674x/cgt/c6748/drivers/[Release|Debug]). Applications that use the driver library look for it in the binary tree.
  • examples - Contains example applications that showcase some (not all) functionality of the peripheral drivers and other libraries. Examples are platform/EVM-specific and are thus contained in board-specific folders (i.e. examples/evmC6748).
  • grlib - Contains source code and header files for the graphics library.
  • nandlib - Contains source files for the NAND library.
  • host_apps - This folder contains files which are used by the host PC to interact with certain example applications.
  • build - Contains all the build materials (makefiles, CCS projects, etc.) required to build the StarterWare libraries and example applications. The build files are grouped based on the tools/compiler. For example, build/c674x/cgt_ccs contains Code Composer Studio (CCS) project files, while build/c674x/cgt contains makefiles for use with CGT.
  • binary - All the libraries and executables are located in this directory. When a library or application is rebuilt, the new binary is automatically copied to this tree. Like the build tree, this folder tree is organized by target and toolchain (i.e. binary/c674x/cgt_ccs). Includes debug and release profile for all binaries.
  • include - Contains header files for most of the StarterWare libraries, particularly the driver, platform, and system configuration libraries. The include files are classified as:
    1. User interface driver headers (ex. uart.h), which contain macro definitions and prototypes for the functions which a user might need to use for programming.
    2. SoC- or EVM-specific header files (ex. interrupt event definitions)
    3. Peripheral register-level definitions (i.e. field offsets and tokens).
  • platform - Contains source code for the various platform libraries. Every supported EVM is represented as a "platform" inside the package. Each platform library contains board-specific functions to apply pinmux settings, IO expander settings, etc. These APIs allow applications to abstract complicated register accesses away from their own source code.
  • system_config - Contains the system configuration library source code. This includes custom entrypoints as well as interrupt and cache APIs. Much of this code is written in assembly language and is thus toolchain-specific.
  • bootloader - Contains the source code for the StarterWare secondary bootloader. Like other applications, the makefiles and executables are located in the build and binary trees, respectively.
  • third_party - Contains third party software modules that are used by the StarterWare applications. These modules are typically included directly in application builds as source instead of being compiled into static libraries.
  • tools - Contains PC tools used for various tasks with StarterWare. These items include GEL files used in CCS and utilities such as AISgen, SFH, and out2rprc that are used to flash and boot directly to StarterWare applications.
  • utils - Contains source code for the StarterWare utility library.
  • usblib - Contains source code and header files for the USB stack library.

Host Platform Requirements

StarterWare applications can be built and run from a Windows Linux host PC. The host machine is required to:

  1. Build the StarterWare applications
  2. Launch CCS v5 and load/run the target applications on the EVM
  3. Run any required host utilities to interact with the target application (ex. USB or Ethernet examples)

Windows Host PC

TI TMS320C6000 DSP CGT With CCSv5

  • Code Composer Studio IDE (v5.0.3 or later)
    • Rebuild CCS projects in build folder
    • Load and run application binaries on EVM
  • Serial console terminal application (ex. Teraterm, minicom, HyperTerminal)

TI TMS320C6000 DSP CGT With Cygwin

  • TI TMS320C6000 DSP CGT
    • CGT Download Page
    • If you have installed CCS, you may not need to install TI CGT separately (look for the tools/compiler/c6000 folder inside your CCS installation)
  • Cygwin (see above)
  • Serial console terminal application (ex. Teraterm, minicom, HyperTerminal)

Linux Host PC

TI TMS320C6000 DSP CGT With CCSv5

  • Code Composer Studio IDE (v5.0.3 or later)
    • Rebuild CCS projects in build folder
    • Load and run application binaries on EVM
  • Serial console terminal application (ex. Teraterm, minicom, HyperTerminal)

TI TMS320C6000 DSP CGT With Command Line

  • TI TMS320C6000 DSP CGT
    • CGT Download Page
    • If you have installed CCS, you may not need to install TI CGT separately (look for the tools/compiler/c6000 folder inside your CCS installation)
  • Serial console terminal application (ex. Teraterm, minicom, HyperTerminal)

Building StarterWare Libraries or Applications

The StarterWare package contains pre-compiled library and application binaries that can be run as-is on the EVM. The binaries are delivered in both debug and release profiles. StarterWare package also contains the build materials (i.e. makefiles and CCS projects) to enable modifying and rebuilding any library or application. The following procedures detail how to build these items with any of the supported toolchains or IDEs.

Windows Host PC

TI TMS320C6000 DSP CGT With Cygwin

  1. Install TI CGT and Cygwin (see above)
  2. Modify the build/c674x/cgt/makedefs file as necessary to point to your TI CGT installation
  3. In Cygwin, navigate to the library/application folder inside the build/c674x/cgt tree
  4. $> make all

TI TMS320C6000 DSP CGT With CCSv5

  1. Install CCSv5 (see above)
  2. In CCS, select Project->Import Existing CCS/CCE Eclipse Project
  3. In CCS, browse to the library/application folder inside the build/c674x/cgt_ccs tree
  4. In CCS, click through the import project wizard (do not check the box that says "Copy projects into workspace")
  5. In CCS, right click the project and select Build Project

Linux Host PC

TI TMS320C6000 DSP CGT With Command Line

  1. Install TI CGT(see above)
  2. Modify the build/c674x/cgt/makedefs file as necessary to point to your TI CGT installation
  3. At command line, navigate to the library/application folder inside the build/c674x/cgt tree
  4. $> make all

TI TMS320C6000 DSP CGT With CCSv5

  1. Install CCSv5 (see above)
  2. In CCS, select Project->Import Existing CCS/CCE Eclipse Project
  3. In CCS, browse to the library/application folder inside the build/c674x/cgt_ccs tree
  4. In CCS, click through the import project wizard (do not check the box that says "Copy projects into workspace")
  5. In CCS, right click the project and select Build Project

CCS Help

For more information about using Code Composer Studio IDE, please refer to the CCSv5 Getting Started Guide and the CCSv5 FAQ.

Flashing Binary Images and Booting

Refer to the StarterWare booting and flashing page for detailed instructions.