NOTICE: The Processors Wiki will End-of-Life in December of 2020. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.

StarterWare Getting Started 01.00.XX.XX

From Texas Instruments Wiki
Jump to: navigation, search

TIBanner.png

Document License[edit]

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[edit]

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 AM1808. 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[edit]

AM1808_StarterWare_1.00.##.###
|
|-- binary
|   |-- armv5
|       |-- [cgt/cgt_ccs/gcc]
|           |-- grlib
|           |-- nandlib
|           |-- utils
|           |-- am1808
|               |-- drivers
|               |-- system_config
|               |-- usblib
|               |-- evmAM1808
|                   |-- bootloader
|                   |-- platform
|                   |-- demo
|                   |-- ...
|
|-- bootloader
|   |--include
|   |--src
|
|-- build
|   |-- armv5
|       |-- [cgt/cgt_ccs/gcc]
|           |-- grlib
|           |-- nandlib
|           |-- utils
|           |-- am1808
|               |-- drivers
|               |-- system_config
|               |-- usblib
|               |-- evmAM1808
|                   |-- bootloader
|                   |-- platform
|                   |-- demo
|                   |-- ...
|
|-- docs
|   |-- AM1808_StarterWare_1_00_01_01.chm
|   |-- README.txt
|
|-- drivers
|   
|-- examples
|   |-- evmAM1808
|
|-- grlib
|   
|-- host_apps
|
|-- include
|   |-- hw
|   |-- armv5
|       |--am1808
|
|-- nandlib
|
|-- platform
|   |-- evmAM1808
|       
|-- system_config
|   |-- armv5
|       |--am1808
|
|-- 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 GCC is under build/armv5/gcc/am1808/drivers directory. Once built, the library is placed in the shared binary tree binary (i.e. binary/armv5/gcc/am1808/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/evmAM1808).
  • 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/armv5/cgt_ccs contains Code Composer Studio (CCS) project files, while build/armv5/gcc contains makefiles for use with GCC.
  • 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/armv5/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[edit]

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[edit]

TI TMS470 ARM CGT With CCSv5[edit]

  • 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)

(TMS470 tool chain usage has certain limitations as explained in the Known Issues section of the release notes.)

GCC With Cygwin[edit]

TI TMS470 ARM CGT With Cygwin[edit]

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

(TMS470 tool chain usage has certain limitations as explained in the Known Issues section of the release notes.)

Linux Host PC[edit]

TI TMS470 ARM CGT With CCSv5[edit]

  • 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)

(TMS470 tool chain usage has certain limitations as explained in the Known Issues section of the release notes.)

GCC With Command Line[edit]

  • GCC toolchain for arm-none-eabi
  • Serial console terminal application (ex. Teraterm, minicom, HyperTerminal)

TI TMS470 ARM CGT With Cygwin[edit]

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

Building StarterWare Libraries or Applications[edit]

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[edit]

GCC With Cygwin[edit]

  1. Install GCC toolchain and Cygwin (see above)
  2. In Cygwin, export your GCC toolchain path to the LIB_PATH variable:
    $> export LIB_PATH="C:\Program Files\CodeSourcery\Sourcery G++ Lite"
  3. In Cygwin, navigate to the library/application folder inside the build/armv5/gcc tree
  4. $> make all

TI TMS470 ARM CGT With Cygwin[edit]

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

TI TMS470 ARM CGT With CCSv5[edit]

  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/armv5/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[edit]

GCC With Command Line[edit]

  1. Install GCC toolchain (see above)
  2. At command line, export your GCC toolchain path to the LIB_PATH variable:
    $> export LIB_PATH="~/CodeSourcery/SourceryGppLite"
  3. At command line, navigate to the library/application folder inside the build/armv5/gcc tree
  4. $> make all

TI TMS470 ARM CGT With Command Line[edit]

  1. Install TI CGT(see above)
  2. Modify the build/armv5/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/armv5/cgt tree
  4. $> make all

TI TMS470 ARM CGT With CCSv5[edit]

  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/armv5/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[edit]

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[edit]

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

E2e.jpg {{
  1. switchcategory:MultiCore=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article StarterWare Getting Started 01.00.XX.XX here.

Keystone=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article StarterWare Getting Started 01.00.XX.XX here.

C2000=For technical support on the C2000 please post your questions on The C2000 Forum. Please post only comments about the article StarterWare Getting Started 01.00.XX.XX here. DaVinci=For technical support on DaVincoplease post your questions on The DaVinci Forum. Please post only comments about the article StarterWare Getting Started 01.00.XX.XX here. MSP430=For technical support on MSP430 please post your questions on The MSP430 Forum. Please post only comments about the article StarterWare Getting Started 01.00.XX.XX here. OMAP35x=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article StarterWare Getting Started 01.00.XX.XX here. OMAPL1=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article StarterWare Getting Started 01.00.XX.XX here. MAVRK=For technical support on MAVRK please post your questions on The MAVRK Toolbox Forum. Please post only comments about the article StarterWare Getting Started 01.00.XX.XX here. For technical support please post your questions at http://e2e.ti.com. Please post only comments about the article StarterWare Getting Started 01.00.XX.XX here.

}}

Hyperlink blue.png Links

Amplifiers & Linear
Audio
Broadband RF/IF & Digital Radio
Clocks & Timers
Data Converters

DLP & MEMS
High-Reliability
Interface
Logic
Power Management

Processors

Switches & Multiplexers
Temperature Sensors & Control ICs
Wireless Connectivity