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 , TM4C123BH6ZRB , TM4C123FE6PM , TM4C123FH6PM , TM4C123GE6PM , TM4C123GE6PZ , TM4C123GH6PGE , TM4C123GH6PM , TM4C123GH6PZ , TM4C123GH6ZRB , TM4C123GH6ZXR , TM4C1290NCPDT , TM4C1290NCZAD , TM4C1292NCPDT , TM4C1292NCZAD , TM4C1294KCPDT , TM4C1294NCPDT , TM4C1294NCZAD , TM4C1297NCZAD , TM4C1299KCZAD , TM4C1299NCZAD , TM4C129CNCPDT , TM4C129CNCZAD , TM4C129DNCPDT , TM4C129DNCZAD , TM4C129EKCPDT , TM4C129ENCPDT , TM4C129ENCZAD , TM4C129LNCZAD , TM4C129XKCZAD , TM4C129XNCZAD
The declarations for TM4C hardware access macros, register offsets, and hardware bit fields are provided within the set of hardware header files. These files are located within the inc folder of the TivaWare SDK and have filenames that start with the ‘hw_’ prefix. These declarations are then used by TivaWare API’s to control the MCU at a register programming level. While TivaWare provides a broad set of API’s for every peripheral, there are cases where a few register level programming calls may be needed such as to optimize the speed of a process or in the event an API does not offer the correct settings.
A majority of the hardware header files are specific to peripherals and contain information for the registers (both offsets and bit fields) of that specific peripheral. These files are occasionally needed in an application when receiving information such as peripheral status flags that need to be parsed. If additional code is added and an unresolved symbol seems to be a definition from a specific peripheral, check if that peripheral’s hardware header file is included in the project or search the inc folder in TivaWare to see which file(s) contain that definition.
In addition to the peripheral specific files, there are four additional hardware header files that provide more general-purpose declarations:
The hw_memmap.h file must be used in every TivaWare project as it provides the memory base addresses for all peripherals that are accessed. This is the only mandatory hardware file required.
The hw_ints.h file includes the definitions needed to enable peripheral ISR’s in the NVIC vector table. This file is needed for any TivaWare project that uses an ISR and it is a good practice to always have it included.
The hw_nvic.h file has the definitions for everything concerning the NVIC. It is included in every TivaWare project within the startup_ccs file, but if the application code needs to use any NVIC-specific definitions such as with a boot loader application then it must be included within the application file as well.
The hw_types.h file provides the macros for directly modifying a register. This is required only when making direct register modifications as part of the application code.