SPMU373A March   2021  – August 2022 TM4C1230C3PM , TM4C1230D5PM , TM4C1230E6PM , TM4C1230H6PM , TM4C1231C3PM , TM4C1231D5PM , TM4C1231D5PZ , TM4C1231E6PM , TM4C1231E6PZ , TM4C1231H6PGE , TM4C1231H6PM , TM4C1231H6PZ , TM4C1232C3PM , TM4C1232D5PM , TM4C1232E6PM , TM4C1232H6PM , TM4C1233C3PM , TM4C1233D5PM , TM4C1233D5PZ , TM4C1233E6PM , TM4C1233E6PZ , TM4C1233H6PGE , TM4C1233H6PM , TM4C1233H6PZ , TM4C1236D5PM , TM4C1236E6PM , TM4C1236H6PM , TM4C1237D5PM , TM4C1237D5PZ , TM4C1237E6PM , TM4C1237E6PZ , TM4C1237H6PGE , TM4C1237H6PM , TM4C1237H6PZ , TM4C123AE6PM , TM4C123AH6PM , TM4C123BE6PM , TM4C123BE6PZ , TM4C123BH6PGE , TM4C123BH6PM , TM4C123BH6PZ , TM4C123FE6PM , TM4C123FH6PM , TM4C123GE6PM , TM4C123GE6PZ , TM4C123GH6PGE , TM4C123GH6PM , TM4C123GH6PZ , TM4C123GH6ZXR , TM4C1290NCPDT , TM4C1290NCZAD , TM4C1292NCPDT , TM4C1292NCZAD , TM4C1294KCPDT , TM4C1294NCPDT , TM4C1294NCZAD , TM4C1297NCZAD , TM4C1299KCZAD , TM4C1299NCZAD , TM4C129CNCPDT , TM4C129CNCZAD , TM4C129DNCPDT , TM4C129DNCZAD , TM4C129EKCPDT , TM4C129ENCPDT , TM4C129ENCZAD , TM4C129LNCZAD , TM4C129XKCZAD , TM4C129XNCZAD

 

  1.   Read This First
    1.     About This Manual
    2.     Glossary
    3.     Related Documentation From Texas Instruments
    4.     Support Resources
    5.     Trademarks
  2. 1Introduction to TivaWare SDK
    1. 1.1 TivaWare SDK Folder Breakdown
  3. 2TivaWare Example Projects
    1. 2.1 TivaWare Development Board Examples
    2. 2.2 TivaWare Peripheral Examples
    3. 2.3 How to Import an Example Project into CCS
  4. 3Linking Files and Libraries into a TivaWare Project in Code Composer Studio
    1. 3.1 Linking Files in CCS
    2. 3.2 Linking Libraries in CCS
  5. 4How to Debug a TivaWare Library
    1. 4.1 How to Direct Code Composer Studio to a Source File
    2. 4.2 How to Rebuild TivaWare Libraries
  6. 5How to Add TivaWare to an Existing CCS Project
    1. 5.1 Path Variables
    2. 5.2 Include Paths
    3. 5.3 Predefined Variables
    4. 5.4 Library Linking
  7. 6TivaWare Boot Loader
    1. 6.1 Modifying a TivaWare Project for Boot Loading in Code Composer Studio
    2. 6.2 How to Boot Load with LM Flash Programmer
  8. 7Software Best Practices
    1. 7.1 Stack / Heap Settings and Stack Overflow
    2. 7.2 Interrupt Service Routines
      1. 7.2.1 Best Practices
      2. 7.2.2 TivaWare Vector Tables and IntDefaultHandler
    3. 7.3 TivaWare Hardware Header Files
    4. 7.4 ROM and MAP TivaWare Prefixes
  9. 8TM4C Resources
  10. 9Revision History

TivaWare SDK Folder Breakdown

This section covers a high-level walkthrough of what is provided within the TivaWare SDK. It additionally links various folders with the provided TivaWare documentation that further describes what is offered from the SDK.

In the base directory, there are thirteen folders provided along with a few files. The twelve highlighted folders in Figure 2-1 are where all the relevant collateral exists. The only files of note in the base directory are the three .txt licensing files. The remaining files in the base directory as well as the .metadata folder are build artifacts and TI Resource Explorer information and can be disregarded.

The boot_loader folder contains the source code required to execute the TivaWare Flash boot loader. Full details of the boot loader functionality are covered in the TivaWare™ Boot Loader User’s Guide (SW-TM4C-BOOTLDR-UG), including the differences between ROM and Flash boot loaders.

The docs folder contains all technical documentation pertaining to TivaWare examples, libraries, and utilities. It also includes the official TivaWare Release Notes that highlight changes made to TivaWare across each version of the SDK (TivaWare™ for C Series Release Notes (SW-TM4C-RLN)).

The driverlib folder contains the TivaWare Driver Library (DriverLib) source code that allows users to leverage TI validated functions. DriverLib functions provide all programmers with a simple means to configure the device and control peripherals without needing to operate at a register level. Full details of the DriverLib source code are covered in the TivaWare™ Peripheral Driver Library User’s Guide (SW-TM4C-DRL-UG).

The examples folder contains all the example projects provided with TivaWare. This is covered in more detail in Chapter 3.

The inc folder contains the device header files for each TM4C device as well as the hardware header files. The device header files provide defines for all registers, offsets, and bit fields for a specific device. The generic hardware header files are the .h files that start with the 'hw_' prefix and they contain the definitions for all register offsets and bit fields. TivaWare libraries leverage the generic hardware header files in order to ensure that all library functions are device agnostic, but for specific applications these can be replaced by a specific device header file.

Attention: If a code file uses #include for both a device header file and a generic hardware header file, there will be compiler errors for overlapped #define’s. Only one or the other can be used in a code file.

The grlib folder contains the TivaWare Graphics Library source code that provides a set of graphics primitives and a widget set for creating graphical user interfaces on various LCD displays. Graphics primitives are used to draw defined shapes and patterns. Widgets are used to draw various user interface elements. Additionally, all graphics applications will need a display driver, but that is handled at an application level and is provided within the TivaWare examples folder. Full details of the Graphics Library source code are covered in the TivaWare™ Graphics Library User’s Guide (SW-TM4C-GRL-UG).

GUID-20210104-CA0I-7JGX-5Q2T-N9HL4TVLKP5Q-low.jpg Figure 1-1 Complete TivaWare SDK Install Directory

 

The sensorlib folder contains the TivaWare Sensor Library source code that is provided for a variety of TivaWare supported sensors mainly from the original BOOSTXL-SENSHUB BoosterPack. Full details of the offerings are covered in the TivaWare™ Sensor Library User’s Guide (SW-TM4C-SENSORLIB-UG).

The third_party folder contains various open source resources from third party sources that are leveraged to support TivaWare examples. These include files for Exosite’s cloud IoT demonstration (IoT Demo Using EK-TM4C1294XL LaunchPad Application Report), a generic FAT file system, FatFs, for SD cards, FreeRTOS support, and various Ethernet protocol related applications including lwIP 1.4.1.

The tools folder contains the TivaWare Host Tools that are run on the development system, not on the TM4C devices. These tools are provided to assist in the development of firmware for TM4C applications. Full details of the offerings are covered in the Tools User’s Guide (SW-TM4C-TOOLS-UG).

The usblib folder contains the TivaWare USB Library source code which provides users with basic USB functionality for Device, Host, and On-The-Go modes. The USB Library provides descriptors for device enumeration, endpoint management, and class specific modules. Full details of the USB Library source code are covered in the TivaWare™ USB Library User’s Guide (SW-TM4C-USBL-UG).

The utils folder contains various TI-developed utilities to aid in the creation of application. These utilities are device agnostic and can be used to help build more advanced user applications. Full details of the offerings are covered in the Utilities Library User’s Guide (SW-TM4C-UTILS-UG).

The windows_drivers folder contains signed Windows USB device drivers which are required for all TivaWare USB device examples.