ソースを参照

first commit of tm4c123bsp, validate on MDK5

LYH-ux 5 年 前
コミット
aebdcaccbb
100 ファイル変更95683 行追加0 行削除
  1. 478 0
      bsp/tm4c123bsp/.config
  2. 21 0
      bsp/tm4c123bsp/Kconfig
  3. 123 0
      bsp/tm4c123bsp/README.md
  4. 15 0
      bsp/tm4c123bsp/SConscript
  5. 64 0
      bsp/tm4c123bsp/SConstruct
  6. 11 0
      bsp/tm4c123bsp/applications/SConscript
  7. 29 0
      bsp/tm4c123bsp/applications/main.c
  8. 349 0
      bsp/tm4c123bsp/board/Kconfig
  9. 32 0
      bsp/tm4c123bsp/board/SConscript
  10. 108 0
      bsp/tm4c123bsp/board/board.c
  11. 47 0
      bsp/tm4c123bsp/board/board.h
  12. 78 0
      bsp/tm4c123bsp/board/linker_scripts/link.icf
  13. 58 0
      bsp/tm4c123bsp/board/linker_scripts/link.ld
  14. 47 0
      bsp/tm4c123bsp/board/linker_scripts/link.sct
  15. 77 0
      bsp/tm4c123bsp/board/tm4c123_config.c
  16. 23 0
      bsp/tm4c123bsp/board/tm4c123_config.h
  17. BIN
      bsp/tm4c123bsp/figures/board.jpg
  18. 101 0
      bsp/tm4c123bsp/libraries/Drivers/SConscript
  19. 45 0
      bsp/tm4c123bsp/libraries/Drivers/config/adc_config.h
  20. 114 0
      bsp/tm4c123bsp/libraries/Drivers/config/pwm_config.h
  21. 56 0
      bsp/tm4c123bsp/libraries/Drivers/config/spi_config.h
  22. 67 0
      bsp/tm4c123bsp/libraries/Drivers/config/uart_config.h
  23. 164 0
      bsp/tm4c123bsp/libraries/Drivers/drv_adc.c
  24. 20 0
      bsp/tm4c123bsp/libraries/Drivers/drv_adc.h
  25. 31 0
      bsp/tm4c123bsp/libraries/Drivers/drv_flash/drv_flash.h
  26. 197 0
      bsp/tm4c123bsp/libraries/Drivers/drv_flash/drv_flash_f1.c
  27. 199 0
      bsp/tm4c123bsp/libraries/Drivers/drv_gpio.c
  28. 29 0
      bsp/tm4c123bsp/libraries/Drivers/drv_gpio.h
  29. 27 0
      bsp/tm4c123bsp/libraries/Drivers/drv_log.h
  30. 336 0
      bsp/tm4c123bsp/libraries/Drivers/drv_pwm.c
  31. 28 0
      bsp/tm4c123bsp/libraries/Drivers/drv_pwm.h
  32. 305 0
      bsp/tm4c123bsp/libraries/Drivers/drv_spi.c
  33. 45 0
      bsp/tm4c123bsp/libraries/Drivers/drv_spi.h
  34. 335 0
      bsp/tm4c123bsp/libraries/Drivers/drv_uart.c
  35. 38 0
      bsp/tm4c123bsp/libraries/Drivers/drv_uart.h
  36. 73 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/SConscript
  37. 327 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/adc.h
  38. 218 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/aes.h
  39. 449 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/can.h
  40. 141 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/comp.h
  41. 75 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/cpu.h
  42. 101 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/crc.h
  43. 70 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/debug.h
  44. 140 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/des.h
  45. 284 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/eeprom.h
  46. 1041 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/emac.h
  47. 762 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/epi.h
  48. 122 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/flash.h
  49. 113 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/fpu.h
  50. 204 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/gpio.h
  51. 257 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/hibernate.h
  52. 362 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/i2c.h
  53. 227 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/asmdefs.h
  54. 1306 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_adc.h
  55. 545 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_aes.h
  56. 462 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_can.h
  57. 115 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_ccm.h
  58. 211 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_comp.h
  59. 310 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_des.h
  60. 251 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_eeprom.h
  61. 1874 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_emac.h
  62. 933 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_epi.h
  63. 49 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_fan.h
  64. 625 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_flash.h
  65. 213 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_gpio.h
  66. 483 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_hibernate.h
  67. 470 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_i2c.h
  68. 491 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_ints.h
  69. 575 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_lcd.h
  70. 151 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_memmap.h
  71. 1414 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_nvic.h
  72. 223 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_onewire.h
  73. 1885 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_pwm.h
  74. 178 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_qei.h
  75. 548 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_shamd5.h
  76. 237 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_ssi.h
  77. 3749 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_sysctl.h
  78. 132 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_sysexc.h
  79. 700 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_timer.h
  80. 147 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_types.h
  81. 367 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_uart.h
  82. 414 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_udma.h
  83. 3032 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_usb.h
  84. 122 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_watchdog.h
  85. 12867 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/tm4c123gh6pm.h
  86. 13577 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/tm4c123gh6pz.h
  87. 94 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/interrupt.h
  88. 487 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/lcd.h
  89. 162 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/mpu.h
  90. 307 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/onewire.h
  91. 20953 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/pin_map.h
  92. 326 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/pwm.h
  93. 154 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/qei.h
  94. 8346 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/rom.h
  95. 6409 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/rom_map.h
  96. 108 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/rtos_bindings.h
  97. 127 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/shamd5.h
  98. 157 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/ssi.h
  99. 78 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/sw_crc.h
  100. 656 0
      bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/sysctl.h

+ 478 - 0
bsp/tm4c123bsp/.config

@@ -0,0 +1,478 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# RT-Thread Configuration
+#
+
+#
+# RT-Thread Kernel
+#
+CONFIG_RT_NAME_MAX=8
+# CONFIG_RT_USING_ARCH_DATA_TYPE is not set
+# CONFIG_RT_USING_SMP is not set
+CONFIG_RT_ALIGN_SIZE=4
+# CONFIG_RT_THREAD_PRIORITY_8 is not set
+CONFIG_RT_THREAD_PRIORITY_32=y
+# CONFIG_RT_THREAD_PRIORITY_256 is not set
+CONFIG_RT_THREAD_PRIORITY_MAX=32
+CONFIG_RT_TICK_PER_SECOND=1000
+CONFIG_RT_USING_OVERFLOW_CHECK=y
+CONFIG_RT_USING_HOOK=y
+CONFIG_RT_USING_IDLE_HOOK=y
+CONFIG_RT_IDLE_HOOK_LIST_SIZE=4
+CONFIG_IDLE_THREAD_STACK_SIZE=256
+CONFIG_RT_USING_TIMER_SOFT=y
+CONFIG_RT_TIMER_THREAD_PRIO=4
+CONFIG_RT_TIMER_THREAD_STACK_SIZE=512
+CONFIG_RT_DEBUG=y
+# CONFIG_RT_DEBUG_COLOR is not set
+# CONFIG_RT_DEBUG_INIT_CONFIG is not set
+# CONFIG_RT_DEBUG_THREAD_CONFIG is not set
+# CONFIG_RT_DEBUG_SCHEDULER_CONFIG is not set
+# CONFIG_RT_DEBUG_IPC_CONFIG is not set
+# CONFIG_RT_DEBUG_TIMER_CONFIG is not set
+# CONFIG_RT_DEBUG_IRQ_CONFIG is not set
+# CONFIG_RT_DEBUG_MEM_CONFIG is not set
+# CONFIG_RT_DEBUG_SLAB_CONFIG is not set
+# CONFIG_RT_DEBUG_MEMHEAP_CONFIG is not set
+# CONFIG_RT_DEBUG_MODULE_CONFIG is not set
+
+#
+# Inter-Thread communication
+#
+CONFIG_RT_USING_SEMAPHORE=y
+CONFIG_RT_USING_MUTEX=y
+CONFIG_RT_USING_EVENT=y
+CONFIG_RT_USING_MAILBOX=y
+CONFIG_RT_USING_MESSAGEQUEUE=y
+# CONFIG_RT_USING_SIGNALS is not set
+
+#
+# Memory Management
+#
+CONFIG_RT_USING_MEMPOOL=y
+# CONFIG_RT_USING_MEMHEAP is not set
+# CONFIG_RT_USING_NOHEAP is not set
+CONFIG_RT_USING_SMALL_MEM=y
+# CONFIG_RT_USING_SLAB is not set
+# CONFIG_RT_USING_MEMTRACE is not set
+CONFIG_RT_USING_HEAP=y
+
+#
+# Kernel Device Object
+#
+CONFIG_RT_USING_DEVICE=y
+# CONFIG_RT_USING_DEVICE_OPS is not set
+# CONFIG_RT_USING_INTERRUPT_INFO is not set
+CONFIG_RT_USING_CONSOLE=y
+CONFIG_RT_CONSOLEBUF_SIZE=128
+CONFIG_RT_CONSOLE_DEVICE_NAME="uart0"
+CONFIG_RT_VER_NUM=0x40003
+# CONFIG_RT_USING_CPU_FFS is not set
+# CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set
+
+#
+# RT-Thread Components
+#
+CONFIG_RT_USING_COMPONENTS_INIT=y
+CONFIG_RT_USING_USER_MAIN=y
+CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048
+CONFIG_RT_MAIN_THREAD_PRIORITY=10
+
+#
+# C++ features
+#
+# CONFIG_RT_USING_CPLUSPLUS is not set
+
+#
+# Command shell
+#
+CONFIG_RT_USING_FINSH=y
+CONFIG_FINSH_THREAD_NAME="tshell"
+CONFIG_FINSH_USING_HISTORY=y
+CONFIG_FINSH_HISTORY_LINES=5
+CONFIG_FINSH_USING_SYMTAB=y
+CONFIG_FINSH_USING_DESCRIPTION=y
+# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
+CONFIG_FINSH_THREAD_PRIORITY=20
+CONFIG_FINSH_THREAD_STACK_SIZE=4096
+CONFIG_FINSH_CMD_SIZE=80
+# CONFIG_FINSH_USING_AUTH is not set
+CONFIG_FINSH_USING_MSH=y
+CONFIG_FINSH_USING_MSH_DEFAULT=y
+# CONFIG_FINSH_USING_MSH_ONLY is not set
+CONFIG_FINSH_ARG_MAX=10
+
+#
+# Device virtual file system
+#
+# CONFIG_RT_USING_DFS is not set
+
+#
+# Device Drivers
+#
+CONFIG_RT_USING_DEVICE_IPC=y
+CONFIG_RT_PIPE_BUFSZ=512
+CONFIG_RT_USING_SYSTEM_WORKQUEUE=y
+CONFIG_RT_SYSTEM_WORKQUEUE_STACKSIZE=2048
+CONFIG_RT_SYSTEM_WORKQUEUE_PRIORITY=23
+CONFIG_RT_USING_SERIAL=y
+CONFIG_RT_SERIAL_USING_DMA=y
+CONFIG_RT_SERIAL_RB_BUFSZ=64
+# CONFIG_RT_USING_CAN is not set
+# CONFIG_RT_USING_HWTIMER is not set
+# CONFIG_RT_USING_CPUTIME is not set
+# CONFIG_RT_USING_I2C is not set
+CONFIG_RT_USING_PIN=y
+CONFIG_RT_USING_ADC=y
+CONFIG_RT_USING_PWM=y
+# CONFIG_RT_USING_MTD_NOR is not set
+# CONFIG_RT_USING_MTD_NAND is not set
+# CONFIG_RT_USING_PM is not set
+# CONFIG_RT_USING_RTC is not set
+# CONFIG_RT_USING_SDIO is not set
+CONFIG_RT_USING_SPI=y
+# CONFIG_RT_USING_QSPI is not set
+# CONFIG_RT_USING_SPI_MSD is not set
+# CONFIG_RT_USING_SFUD is not set
+# CONFIG_RT_USING_ENC28J60 is not set
+# CONFIG_RT_USING_SPI_WIFI is not set
+# CONFIG_RT_USING_WDT is not set
+# CONFIG_RT_USING_AUDIO is not set
+# CONFIG_RT_USING_SENSOR is not set
+# CONFIG_RT_USING_TOUCH is not set
+# CONFIG_RT_USING_HWCRYPTO is not set
+# CONFIG_RT_USING_PULSE_ENCODER is not set
+# CONFIG_RT_USING_INPUT_CAPTURE is not set
+# CONFIG_RT_USING_WIFI is not set
+
+#
+# Using USB
+#
+# CONFIG_RT_USING_USB_HOST is not set
+# CONFIG_RT_USING_USB_DEVICE is not set
+
+#
+# POSIX layer and C standard library
+#
+CONFIG_RT_USING_LIBC=y
+# CONFIG_RT_USING_PTHREADS is not set
+# CONFIG_RT_USING_MODULE is not set
+
+#
+# Network
+#
+
+#
+# Socket abstraction layer
+#
+# CONFIG_RT_USING_SAL is not set
+
+#
+# Network interface device
+#
+# CONFIG_RT_USING_NETDEV is not set
+
+#
+# light weight TCP/IP stack
+#
+# CONFIG_RT_USING_LWIP is not set
+
+#
+# AT commands
+#
+# CONFIG_RT_USING_AT is not set
+
+#
+# VBUS(Virtual Software BUS)
+#
+# CONFIG_RT_USING_VBUS is not set
+
+#
+# Utilities
+#
+# CONFIG_RT_USING_RYM is not set
+# CONFIG_RT_USING_ULOG is not set
+# CONFIG_RT_USING_UTEST is not set
+
+#
+# RT-Thread online packages
+#
+
+#
+# IoT - internet of things
+#
+# CONFIG_PKG_USING_PAHOMQTT is not set
+# CONFIG_PKG_USING_UMQTT is not set
+# CONFIG_PKG_USING_WEBCLIENT is not set
+# CONFIG_PKG_USING_WEBNET is not set
+# CONFIG_PKG_USING_MONGOOSE is not set
+# CONFIG_PKG_USING_MYMQTT is not set
+# CONFIG_PKG_USING_KAWAII_MQTT is not set
+# CONFIG_PKG_USING_BC28_MQTT is not set
+# CONFIG_PKG_USING_WEBTERMINAL is not set
+# CONFIG_PKG_USING_CJSON is not set
+# CONFIG_PKG_USING_JSMN is not set
+# CONFIG_PKG_USING_LIBMODBUS is not set
+# CONFIG_PKG_USING_FREEMODBUS is not set
+# CONFIG_PKG_USING_LJSON is not set
+# CONFIG_PKG_USING_EZXML is not set
+# CONFIG_PKG_USING_NANOPB is not set
+
+#
+# Wi-Fi
+#
+
+#
+# Marvell WiFi
+#
+# CONFIG_PKG_USING_WLANMARVELL is not set
+
+#
+# Wiced WiFi
+#
+# CONFIG_PKG_USING_WLAN_WICED is not set
+# CONFIG_PKG_USING_RW007 is not set
+# CONFIG_PKG_USING_COAP is not set
+# CONFIG_PKG_USING_NOPOLL is not set
+# CONFIG_PKG_USING_NETUTILS is not set
+# CONFIG_PKG_USING_CMUX is not set
+# CONFIG_PKG_USING_PPP_DEVICE is not set
+# CONFIG_PKG_USING_AT_DEVICE is not set
+# CONFIG_PKG_USING_ATSRV_SOCKET is not set
+# CONFIG_PKG_USING_WIZNET is not set
+
+#
+# IoT Cloud
+#
+# CONFIG_PKG_USING_ONENET is not set
+# CONFIG_PKG_USING_GAGENT_CLOUD is not set
+# CONFIG_PKG_USING_ALI_IOTKIT is not set
+# CONFIG_PKG_USING_AZURE is not set
+# CONFIG_PKG_USING_TENCENT_IOT_EXPLORER is not set
+# CONFIG_PKG_USING_JIOT-C-SDK is not set
+# CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set
+# CONFIG_PKG_USING_JOYLINK is not set
+# CONFIG_PKG_USING_NIMBLE is not set
+# CONFIG_PKG_USING_OTA_DOWNLOADER is not set
+# CONFIG_PKG_USING_IPMSG is not set
+# CONFIG_PKG_USING_LSSDP is not set
+# CONFIG_PKG_USING_AIRKISS_OPEN is not set
+# CONFIG_PKG_USING_LIBRWS is not set
+# CONFIG_PKG_USING_TCPSERVER is not set
+# CONFIG_PKG_USING_PROTOBUF_C is not set
+# CONFIG_PKG_USING_ONNX_PARSER is not set
+# CONFIG_PKG_USING_ONNX_BACKEND is not set
+# CONFIG_PKG_USING_DLT645 is not set
+# CONFIG_PKG_USING_QXWZ is not set
+# CONFIG_PKG_USING_SMTP_CLIENT is not set
+# CONFIG_PKG_USING_ABUP_FOTA is not set
+# CONFIG_PKG_USING_LIBCURL2RTT is not set
+# CONFIG_PKG_USING_CAPNP is not set
+# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set
+# CONFIG_PKG_USING_AGILE_TELNET is not set
+
+#
+# security packages
+#
+# CONFIG_PKG_USING_MBEDTLS is not set
+# CONFIG_PKG_USING_libsodium is not set
+# CONFIG_PKG_USING_TINYCRYPT is not set
+# CONFIG_PKG_USING_TFM is not set
+
+#
+# language packages
+#
+# CONFIG_PKG_USING_LUA is not set
+# CONFIG_PKG_USING_JERRYSCRIPT is not set
+# CONFIG_PKG_USING_MICROPYTHON is not set
+
+#
+# multimedia packages
+#
+# CONFIG_PKG_USING_OPENMV is not set
+# CONFIG_PKG_USING_MUPDF is not set
+# CONFIG_PKG_USING_STEMWIN is not set
+# CONFIG_PKG_USING_WAVPLAYER is not set
+# CONFIG_PKG_USING_TJPGD is not set
+
+#
+# tools packages
+#
+# CONFIG_PKG_USING_CMBACKTRACE is not set
+# CONFIG_PKG_USING_EASYFLASH is not set
+# CONFIG_PKG_USING_EASYLOGGER is not set
+# CONFIG_PKG_USING_SYSTEMVIEW is not set
+# CONFIG_PKG_USING_RDB is not set
+# CONFIG_PKG_USING_QRCODE is not set
+# CONFIG_PKG_USING_ULOG_EASYFLASH is not set
+# CONFIG_PKG_USING_ADBD is not set
+# CONFIG_PKG_USING_COREMARK is not set
+# CONFIG_PKG_USING_DHRYSTONE is not set
+# CONFIG_PKG_USING_NR_MICRO_SHELL is not set
+# CONFIG_PKG_USING_CHINESE_FONT_LIBRARY is not set
+# CONFIG_PKG_USING_LUNAR_CALENDAR is not set
+# CONFIG_PKG_USING_BS8116A is not set
+# CONFIG_PKG_USING_URLENCODE is not set
+
+#
+# system packages
+#
+# CONFIG_PKG_USING_GUIENGINE is not set
+# CONFIG_PKG_USING_CAIRO is not set
+# CONFIG_PKG_USING_PIXMAN is not set
+# CONFIG_PKG_USING_LWEXT4 is not set
+# CONFIG_PKG_USING_PARTITION is not set
+# CONFIG_PKG_USING_FAL is not set
+# CONFIG_PKG_USING_FLASHDB is not set
+# CONFIG_PKG_USING_SQLITE is not set
+# CONFIG_PKG_USING_RTI is not set
+# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
+# CONFIG_PKG_USING_CMSIS is not set
+# CONFIG_PKG_USING_DFS_YAFFS is not set
+# CONFIG_PKG_USING_LITTLEFS is not set
+# CONFIG_PKG_USING_THREAD_POOL is not set
+# CONFIG_PKG_USING_ROBOTS is not set
+# CONFIG_PKG_USING_EV is not set
+# CONFIG_PKG_USING_SYSWATCH is not set
+# CONFIG_PKG_USING_SYS_LOAD_MONITOR is not set
+# CONFIG_PKG_USING_PLCCORE is not set
+
+#
+# peripheral libraries and drivers
+#
+# CONFIG_PKG_USING_SENSORS_DRIVERS is not set
+# CONFIG_PKG_USING_REALTEK_AMEBA is not set
+# CONFIG_PKG_USING_SHT2X is not set
+# CONFIG_PKG_USING_SHT3X is not set
+# CONFIG_PKG_USING_STM32_SDIO is not set
+# CONFIG_PKG_USING_ICM20608 is not set
+# CONFIG_PKG_USING_U8G2 is not set
+# CONFIG_PKG_USING_BUTTON is not set
+# CONFIG_PKG_USING_PCF8574 is not set
+# CONFIG_PKG_USING_SX12XX is not set
+# CONFIG_PKG_USING_SIGNAL_LED is not set
+# CONFIG_PKG_USING_LEDBLINK is not set
+# CONFIG_PKG_USING_LITTLED is not set
+# CONFIG_PKG_USING_LKDGUI is not set
+# CONFIG_PKG_USING_NRF5X_SDK is not set
+# CONFIG_PKG_USING_NRFX is not set
+# CONFIG_PKG_USING_WM_LIBRARIES is not set
+# CONFIG_PKG_USING_KENDRYTE_SDK is not set
+# CONFIG_PKG_USING_INFRARED is not set
+# CONFIG_PKG_USING_ROSSERIAL is not set
+# CONFIG_PKG_USING_AGILE_BUTTON is not set
+# CONFIG_PKG_USING_AGILE_LED is not set
+# CONFIG_PKG_USING_AT24CXX is not set
+# CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set
+# CONFIG_PKG_USING_AD7746 is not set
+# CONFIG_PKG_USING_PCA9685 is not set
+# CONFIG_PKG_USING_I2C_TOOLS is not set
+# CONFIG_PKG_USING_NRF24L01 is not set
+# CONFIG_PKG_USING_TOUCH_DRIVERS is not set
+# CONFIG_PKG_USING_MAX17048 is not set
+# CONFIG_PKG_USING_RPLIDAR is not set
+# CONFIG_PKG_USING_AS608 is not set
+# CONFIG_PKG_USING_RC522 is not set
+# CONFIG_PKG_USING_EMBARC_BSP is not set
+# CONFIG_PKG_USING_EXTERN_RTC_DRIVERS is not set
+# CONFIG_PKG_USING_MULTI_RTIMER is not set
+# CONFIG_PKG_USING_MAX7219 is not set
+# CONFIG_PKG_USING_BEEP is not set
+# CONFIG_PKG_USING_EASYBLINK is not set
+# CONFIG_PKG_USING_PMS_SERIES is not set
+# CONFIG_PKG_USING_CAN_YMODEM is not set
+# CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set
+# CONFIG_BSP_USING_SPI1 is not set
+# CONFIG_BSP_USING_SPI2 is not set
+# CONFIG_BSP_USING_SPI3 is not set
+
+#
+# miscellaneous packages
+#
+# CONFIG_PKG_USING_LIBCSV is not set
+# CONFIG_PKG_USING_OPTPARSE is not set
+# CONFIG_PKG_USING_FASTLZ is not set
+# CONFIG_PKG_USING_MINILZO is not set
+# CONFIG_PKG_USING_QUICKLZ is not set
+# CONFIG_PKG_USING_MULTIBUTTON is not set
+# CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set
+# CONFIG_PKG_USING_CANFESTIVAL is not set
+# CONFIG_PKG_USING_ZLIB is not set
+# CONFIG_PKG_USING_DSTR is not set
+# CONFIG_PKG_USING_TINYFRAME is not set
+# CONFIG_PKG_USING_KENDRYTE_DEMO is not set
+# CONFIG_PKG_USING_DIGITALCTRL is not set
+# CONFIG_PKG_USING_UPACKER is not set
+# CONFIG_PKG_USING_UPARAM is not set
+
+#
+# samples: kernel and components samples
+#
+# CONFIG_PKG_USING_KERNEL_SAMPLES is not set
+# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set
+# CONFIG_PKG_USING_NETWORK_SAMPLES is not set
+# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
+# CONFIG_PKG_USING_HELLO is not set
+# CONFIG_PKG_USING_VI is not set
+# CONFIG_PKG_USING_NNOM is not set
+# CONFIG_PKG_USING_LIBANN is not set
+# CONFIG_PKG_USING_ELAPACK is not set
+# CONFIG_PKG_USING_ARMv7M_DWT is not set
+# CONFIG_PKG_USING_VT100 is not set
+# CONFIG_PKG_USING_ULAPACK is not set
+# CONFIG_PKG_USING_UKAL is not set
+
+#
+# Hardware Drivers Config
+#
+CONFIG_tm4c123=y
+
+#
+# Onboard Peripheral Drivers
+#
+CONFIG_BSP_USING_USB_TO_USART=y
+# CONFIG_BSP_USING_RS485_OR_RS232 is not set
+# CONFIG_BSP_USING_SPI_FLASH is not set
+# CONFIG_BSP_USING_RGB is not set
+# CONFIG_BSP_USING_POT is not set
+# CONFIG_BSP_USING_EEPROM is not set
+# CONFIG_BSP_USING_ETH is not set
+# CONFIG_BSP_USING_SDCARD is not set
+
+#
+# On-chip Peripheral Drivers
+#
+CONFIG_BSP_USING_GPIO=y
+CONFIG_BSP_USING_UART=y
+CONFIG_BSP_USING_UART0=y
+CONFIG_BSP_USING_UART1=y
+# CONFIG_BSP_UART1_RX_USING_DMA is not set
+# CONFIG_BSP_USING_UART2 is not set
+# CONFIG_BSP_USING_UART3 is not set
+# CONFIG_BSP_USING_ON_CHIP_FLASH is not set
+CONFIG_BSP_USING_SPI=y
+CONFIG_BSP_USING_SPI0=y
+# CONFIG_BSP_USING_I2C1 is not set
+# CONFIG_BSP_USING_TIM is not set
+CONFIG_BSP_USING_PWM=y
+# CONFIG_BSP_USING_PWM0 is not set
+# CONFIG_BSP_USING_PWM1 is not set
+# CONFIG_BSP_USING_PWM2 is not set
+# CONFIG_BSP_USING_PWM3 is not set
+# CONFIG_BSP_USING_PWM4 is not set
+# CONFIG_BSP_USING_PWM5 is not set
+# CONFIG_BSP_USING_PWM6 is not set
+CONFIG_BSP_USING_PWM7=y
+CONFIG_BSP_USING_ADC=y
+CONFIG_BSP_USING_ADC0=y
+# CONFIG_BSP_USING_ADC1 is not set
+# CONFIG_BSP_USING_ONCHIP_RTC is not set
+# CONFIG_BSP_USING_WDT is not set
+# CONFIG_BSP_USING_SDIO is not set
+# CONFIG_BSP_USING_CAN is not set
+# CONFIG_BSP_USING_USBD is not set
+# CONFIG_BSP_USING_CRC is not set
+
+#
+# Board extended module Drivers
+#

+ 21 - 0
bsp/tm4c123bsp/Kconfig

@@ -0,0 +1,21 @@
+mainmenu "RT-Thread Configuration"
+
+config BSP_DIR
+    string
+    option env="BSP_ROOT"
+    default "."
+
+config RTT_DIR
+    string
+    option env="RTT_ROOT"
+    default "../.."
+
+config PKGS_DIR
+    string
+    option env="PKGS_ROOT"
+    default "packages"
+
+source "$RTT_DIR/Kconfig"
+source "$PKGS_DIR/Kconfig"
+source "board/Kconfig"
+

+ 123 - 0
bsp/tm4c123bsp/README.md

@@ -0,0 +1,123 @@
+# BSP README 模板
+
+## 简介
+
+本文档为ek-tm4c123gxl开发板的 BSP (板级支持包) 说明。
+
+主要内容如下:
+
+- 开发板资源介绍
+- BSP 快速上手
+- 进阶使用方法
+
+通过阅读快速上手章节开发者可以快速地上手该 BSP,将 RT-Thread 运行在开发板上。在进阶使用指南章节,将会介绍更多高级功能,帮助开发者利用 RT-Thread 驱动更多板载资源。
+
+## 开发板介绍
+
+【此处简单介绍一下开发板】
+
+开发板外观如下图所示:
+
+![](E:\00MyWorkSpace\tm4c123_rtos\tm4c123bsp\figures\board.jpg)
+
+该开发板常用 **板载资源** 如下:
+
+- MCU:TM4C123Gh6PM,主频 80MHz,256KB FLASH ,32KB RAM
+- 外部 RAM:型号,xMB
+- 外部 FLASH:型号,xMB
+- 常用外设
+  - LED:1个三色,(红色,PF1),(蓝色,PF2),(绿色,PF3)
+  - 按键:2个,SW1(PF4),SW2(兼具唤醒功能,PF0)
+- 常用接口:ICDI(具串口功能)、USB接口
+- 调试接口,ICDI
+
+开发板更多详细信息请参考【TI】 [TM4C123G开发板介绍](https://www.ti.com/tool/EK-TM4C123GXL?DCMP=stellaris-launchpad&HQS=tm4c123g-launchpad)。
+
+## 外设支持
+
+本 BSP 目前对外设的支持情况如下:
+
+| **板载外设**      | **支持情况** | **备注**                              |
+| :----------------- | :----------: | :------------------------------------- |
+| USB 转串口        |     支持     |                                       |
+| SPI Flash         |     暂不支持     |                                       |
+| 以太网            |     暂不支持     |                                       |
+| SD卡              |   暂不支持   |                                       |
+| CAN               |   暂不支持   |                                       |
+| **片上外设**      | **支持情况** | **备注**                              |
+| GPIO              |     支持     | PF0, PF1... PF4---> PIN: 0, 1...4 |
+| UART              |     支持     | UART0/1/2/3                        |
+| SPI               |     支持     | SPI0/1/2                            |
+| I2C               |     支持     | 软件 I2C                              |
+| SDIO              |   暂不支持   | 即将支持                              |
+| RTC               |   暂不支持   | 即将支持                              |
+| PWM               |   支持   | PWM0/1/2/3/4/5/6/7             |
+| USB Device        |   暂不支持   | 即将支持                              |
+| USB Host          |   暂不支持   | 即将支持                              |
+| IWG               |   暂不支持   | 即将支持                              |
+| **扩展模块**      | **支持情况** | **备注**                              |
+|     xxx 模块      |   支持   |                                      |
+
+## 使用说明
+
+使用说明分为如下两个章节:
+
+- 快速上手
+
+    本章节是为刚接触 RT-Thread 的新手准备的使用说明,遵循简单的步骤即可将 RT-Thread 操作系统运行在该开发板上,看到实验效果 。
+
+- 进阶使用
+
+    本章节是为需要在 RT-Thread 操作系统上使用更多开发板资源的开发者准备的。通过使用 ENV 工具对 BSP 进行配置,可以开启更多板载资源,实现更多高级功能。
+
+
+### 快速上手
+
+本 BSP 为开发者提供 MDK4、MDK5 和 IAR 工程,并且支持 GCC 开发环境。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。
+
+#### 硬件连接
+
+使用数据线连接开发板到 PC,打开电源开关。
+
+#### 编译下载
+
+双击 project.uvprojx 文件,打开 MDK5 工程,编译并下载程序到开发板。
+
+> 工程默认配置使用 ICDI 仿真器下载程序,在通过USB连接开发板的基础上,点击下载按钮即可下载程序到开发板
+
+#### 运行结果
+
+下载程序成功之后,系统会自动运行,【这里写开发板运行起来之后的现象,如:LED 闪烁等】。
+
+连接开发板对应串口到 PC , 在终端工具里打开相应的串口(115200-8-1-N),复位设备后,可以看到 RT-Thread 的输出信息:
+
+```bash
+ \ | /
+- RT -     Thread Operating System
+ / | \     3.1.1 build Nov 19 2018
+ 2006 - 2018 Copyright by rt-thread team
+msh >
+```
+### 进阶使用
+
+此 BSP 默认只开启了 GPIO 和 串口0 的功能,如果需使用 SD 卡、Flash 等更多高级功能,需要利用 ENV 工具对BSP 进行配置,步骤如下:
+
+1. 在 bsp 下打开 env 工具。
+
+2. 输入`menuconfig`命令配置工程,配置好之后保存退出。
+
+3. 输入`pkgs --update`命令更新软件包。
+
+4. 输入`scons --target=mdk4/mdk5/iar` 命令重新生成工程。
+
+本章节更多详细的介绍请结合 [STM32 系列 BSP 外设驱动使用教程](../docs/STM32系列BSP外设驱动使用教程.md)学习使用。
+
+## 注意事项
+
+- 本BSP配置片上外设在board/tm4c123gh6pz_config.c/h中进行配置。配置时钟在board.c文件中进行
+
+## 联系人信息
+
+维护人:
+
+-  [AHTYDHD](https://github.com/LYH-ux), 邮箱:<1780328728@qq.com>

+ 15 - 0
bsp/tm4c123bsp/SConscript

@@ -0,0 +1,15 @@
+# for module compiling
+import os
+Import('RTT_ROOT')
+from building import *
+
+cwd = GetCurrentDir()
+objs = []
+list = os.listdir(cwd)
+
+for d in list:
+    path = os.path.join(cwd, d)
+    if os.path.isfile(os.path.join(path, 'SConscript')):
+        objs = objs + SConscript(os.path.join(d, 'SConscript'))
+
+Return('objs')

+ 64 - 0
bsp/tm4c123bsp/SConstruct

@@ -0,0 +1,64 @@
+import os
+import sys
+import rtconfig
+
+if os.getenv('RTT_ROOT'):
+    RTT_ROOT = os.getenv('RTT_ROOT')
+else:
+    RTT_ROOT = os.path.normpath(os.getcwd() + '/../..')
+
+# set RTT_ROOT
+#if not os.getenv("RTT_ROOT"): 
+    #RTT_ROOT="rt-thread"
+
+sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')]
+try:
+    from building import *
+except:
+    print('Cannot found RT-Thread root directory, please check RTT_ROOT')
+    print(RTT_ROOT)
+    exit(-1)
+
+TARGET = 'rt-thread.' + rtconfig.TARGET_EXT
+
+DefaultEnvironment(tools=[])
+env = Environment(tools = ['mingw'],
+    AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
+    CC = rtconfig.CC, CCFLAGS = rtconfig.CFLAGS,
+    AR = rtconfig.AR, ARFLAGS = '-rc',
+    CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
+    LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
+env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
+
+if rtconfig.PLATFORM == 'iar':
+    env.Replace(CCCOM = ['$CC $CCFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES'])
+    env.Replace(ARFLAGS = [''])
+    env.Replace(LINKCOM = env["LINKCOM"] + ' --map rt-thread.map')
+
+Export('RTT_ROOT')
+Export('rtconfig')
+
+SDK_ROOT = os.path.abspath('./')
+
+if os.path.exists(SDK_ROOT + '/libraries'):
+    libraries_path_prefix = SDK_ROOT + '/libraries'
+else:
+    libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries'
+
+SDK_LIB = libraries_path_prefix
+Export('SDK_LIB')
+
+# prepare building environment
+objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)
+
+tm4c123_library = 'TivaWare_C_series'
+rtconfig.BSP_LIBRARY_TYPE = tm4c123_library
+
+# include libraries
+objs.extend(SConscript(os.path.join(libraries_path_prefix, tm4c123_library, 'SConscript')))
+
+# include drivers
+objs.extend(SConscript(os.path.join(libraries_path_prefix, 'Drivers', 'SConscript')))
+
+# make a building
+DoBuilding(TARGET, objs)

+ 11 - 0
bsp/tm4c123bsp/applications/SConscript

@@ -0,0 +1,11 @@
+Import('RTT_ROOT')
+Import('rtconfig')
+from building import *
+
+cwd = GetCurrentDir()
+src = Glob('*.c')
+CPPPATH = [cwd, str(Dir('#'))]
+
+group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH)
+
+Return('group')

+ 29 - 0
bsp/tm4c123bsp/applications/main.c

@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date           Author       Notes
+ * 2018-11-06     SummerGift   first version
+ */
+
+#include <rtthread.h>
+#include <rtdevice.h>
+
+int main(void)
+{
+    int count = 1;
+    /* set LED0 pin mode to output */
+    rt_pin_mode(2, PIN_MODE_OUTPUT);
+
+    while (count++)
+    {
+        rt_pin_write(2, PIN_HIGH);
+        rt_thread_mdelay(500);
+        rt_pin_write(2, PIN_LOW);
+        rt_thread_mdelay(500);
+    }
+    
+    return RT_EOK;
+}

+ 349 - 0
bsp/tm4c123bsp/board/Kconfig

@@ -0,0 +1,349 @@
+menu "Hardware Drivers Config"
+
+config  tm4c123
+    bool
+    select RT_USING_COMPONENTS_INIT
+    select RT_USING_USER_MAIN
+    default y
+
+
+menu "Onboard Peripheral Drivers"
+
+    config BSP_USING_USB_TO_USART
+        bool "Enable USB TO USART (uart1)"
+        select BSP_USING_UART
+        select BSP_USING_UART1
+        default y
+
+    config BSP_USING_RS485_OR_RS232
+        bool "Enable RS485/RS232 (uart2 be shared)"
+        select BSP_USING_UART2
+        default n
+
+    config BSP_USING_SPI_FLASH
+        bool "Enable SPI FLASH (W25Q64 spi1)"
+        select BSP_USING_SPI
+        select BSP_USING_SPI1
+        select RT_USING_SFUD
+        select RT_SFUD_USING_SFDP
+        default n
+
+    config BSP_USING_RGB
+        bool "Enable RGB LED (timer3 channel2 - 4)"
+        select RT_USING_PWM
+        select BSP_USING_PWM
+        select BSP_USING_PWM3
+        select BSP_USING_PWM3_CH2
+        select BSP_USING_PWM3_CH3
+        select BSP_USING_PWM3_CH4
+        default n
+
+    config BSP_USING_POT
+        bool "Enable potentiometer"
+        select BSP_USING_ADC
+        select BSP_USING_ADC1
+        default n  
+
+    config BSP_USING_EEPROM
+        bool "Enable I2C EEPROM (i2c1)"
+        select BSP_USING_I2C1
+        default n
+
+    config BSP_USING_ETH
+        bool "Enable Ethernet Driver (spi2)"
+        default n
+        select PKG_USING_WIZNET
+        select WIZNET_DEVICE_EXTERN_CONFIG
+        select BSP_USING_SPI2
+        if BSP_USING_ETH
+            if WIZNET_DEVICE_EXTERN_CONFIG
+                config WIZ_SPI_DEVICE
+                    string
+                    default "spi20"
+
+                config WIZ_RST_PIN
+                    int
+                    default 111
+
+                config WIZ_IRQ_PIN
+                    int
+                    default 104
+            endif
+
+            config EXTERNAL_PHY_ADDRESS
+                hex
+                default 0x00
+
+        endif
+
+    config BSP_USING_SDCARD
+        bool "Enable SDCARD (sdio)"
+        select BSP_USING_SDIO
+        select RT_USING_DFS
+        select RT_USING_DFS_ELMFAT
+        default n
+
+endmenu
+
+menu "On-chip Peripheral Drivers"
+
+    config BSP_USING_GPIO
+        bool "Enable GPIO"
+        select RT_USING_PIN
+        default y
+
+    menuconfig BSP_USING_UART
+        bool "Enable UART"
+        default y
+        select RT_USING_SERIAL
+        if BSP_USING_UART
+            config BSP_USING_UART0
+                bool "Enable UART0"
+                default y
+
+            config BSP_USING_UART1
+                bool "Enable UART1"
+                default n
+
+            config BSP_UART1_RX_USING_DMA
+                bool "Enable UART1 RX DMA"
+                depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA
+                default n
+
+            config BSP_USING_UART2
+                bool "Enable UART2"
+                default n
+
+            config BSP_UART2_RX_USING_DMA
+                bool "Enable UART2 RX DMA"
+                depends on BSP_USING_UART2 && RT_SERIAL_USING_DMA
+                default n
+                
+            config BSP_USING_UART3
+                bool "Enable UART3"
+                default n
+
+            config BSP_UART3_RX_USING_DMA
+                bool "Enable UART3 RX DMA"
+                depends on BSP_USING_UART3 && RT_SERIAL_USING_DMA
+                default n  
+        endif
+   
+    config BSP_USING_ON_CHIP_FLASH
+        bool "Enable on-chip FLASH"
+        default n
+
+    menuconfig BSP_USING_SPI
+        bool "Enable SPI BUS"
+        default n
+        select RT_USING_SPI
+        if BSP_USING_SPI
+            config BSP_USING_SPI0
+                bool "Enable SPI0 BUS"
+                default n
+
+            config BSP_USING_SPI1
+                bool "Enable SPI1 BUS"
+                default n
+
+            config BSP_SPI1_TX_USING_DMA
+                bool "Enable SPI1 TX DMA"
+                depends on BSP_USING_SPI1
+                default n
+                
+            config BSP_SPI1_RX_USING_DMA
+                bool "Enable SPI1 RX DMA"
+                depends on BSP_USING_SPI1
+                select BSP_SPI1_TX_USING_DMA
+                default n
+
+            config BSP_USING_SPI2
+                bool "Enable SPI2 BUS"
+                default n  
+                
+            config BSP_SPI2_TX_USING_DMA
+                bool "Enable SPI2 TX DMA"
+                depends on BSP_USING_SPI2
+                default n
+                
+            config BSP_SPI2_RX_USING_DMA
+                bool "Enable SPI2 RX DMA"
+                depends on BSP_USING_SPI2
+                select BSP_SPI2_TX_USING_DMA
+                default n
+                
+            config BSP_USING_SPI3
+                bool "Enable SPI3 BUS"
+                default n        
+
+            config BSP_SPI3_TX_USING_DMA
+                bool "Enable SPI3 TX DMA"
+                depends on BSP_USING_SPI3
+                default n
+                
+            config BSP_SPI3_RX_USING_DMA
+                bool "Enable SPI3 RX DMA"
+                depends on BSP_USING_SPI3
+                select BSP_SPI3_TX_USING_DMA
+                default n  
+        endif
+
+    menuconfig BSP_USING_I2C1
+        bool "Enable I2C1 BUS (software simulation)"
+        default n
+        select RT_USING_I2C
+        select RT_USING_I2C_BITOPS
+        select RT_USING_PIN
+        if BSP_USING_I2C1
+            config BSP_I2C1_SCL_PIN
+                int "i2c1 scl pin number"
+                range 0 175
+                default 22
+            config BSP_I2C1_SDA_PIN
+                int "I2C1 sda pin number"
+                range 0 175
+                default 23
+        endif
+
+    menuconfig BSP_USING_TIM
+        bool "Enable timer"
+        default n
+        select RT_USING_HWTIMER
+        if BSP_USING_TIM
+            config BSP_USING_TIM2
+                bool "Enable TIM2"
+                default n
+
+            config BSP_USING_TIM3
+                bool "Enable TIM3"
+                default n
+
+            config BSP_USING_TIM4
+                bool "Enable TIM4"
+                default n
+
+            config BSP_USING_TIM5
+                bool "Enable TIM5"
+                default n
+        endif
+
+    menuconfig BSP_USING_PWM
+        bool "Enable pwm"
+        default n
+        select RT_USING_PWM
+        if BSP_USING_PWM
+        menuconfig BSP_USING_PWM0
+            bool "Enable pwm0"
+            default n
+            if BSP_USING_PWM0
+                config BSP_USING_PWM0_CH1
+                    bool "Enable PWM0 channel1"
+                    default y
+
+                config BSP_USING_PWM0_CH2
+                    bool "Enable PWM0 channel2"
+                    default n
+            endif
+        config BSP_USING_PWM1
+            bool "Enable pwm1"
+            default n
+        config BSP_USING_PWM2
+            bool "Enable pwm2"
+            default n
+        config BSP_USING_PWM3
+            bool "Enable pwm3"
+            default n
+        config BSP_USING_PWM4
+            bool "Enable pwm4"
+            default n
+        config BSP_USING_PWM5
+            bool "Enable pwm5"
+            default n
+        config BSP_USING_PWM6
+            bool "Enable pwm6"
+            default n
+        config BSP_USING_PWM7
+            bool "Enable pwm7"
+            default n
+        endif
+
+    menuconfig BSP_USING_ADC
+        bool "Enable ADC"
+        default n
+        select RT_USING_ADC
+        if BSP_USING_ADC
+            config BSP_USING_ADC0
+                bool "Enable ADC0"
+                default n
+            config BSP_USING_ADC1
+                bool "Enable ADC1"
+                default n
+        endif
+
+    menuconfig BSP_USING_ONCHIP_RTC
+        bool "Enable RTC"
+        select RT_USING_RTC
+        select RT_USING_LIBC
+        default n
+        if BSP_USING_ONCHIP_RTC
+            choice
+                prompt "Select clock source"
+                default BSP_RTC_USING_LSE
+
+                config BSP_RTC_USING_LSE
+                    bool "RTC USING LSE"
+
+                config BSP_RTC_USING_LSI
+                    bool "RTC USING LSI"
+            endchoice
+        endif
+
+    config BSP_USING_WDT
+        bool "Enable Watchdog Timer"
+        select RT_USING_WDT
+        default n
+
+    config BSP_USING_SDIO
+        bool "Enable SDIO"
+        select RT_USING_SDIO
+        select RT_USING_DFS
+        default n
+
+    menuconfig BSP_USING_CAN
+        bool "Enable CAN"
+        default n
+        select RT_USING_CAN
+        if BSP_USING_CAN
+            config BSP_USING_CAN1
+                bool "using CAN1"
+                default n
+        endif
+
+    config BSP_USING_USBD
+        bool "Enable USB device"
+        select RT_USING_USB_DEVICE
+        default n
+        if BSP_USING_USBD
+            config BSP_USB_CONNECT_PIN
+                int "USB connect pin"
+                default 67
+
+            config BSP_USB_PULL_UP_STATUS
+                int "USB PULL UP STATUS"
+                default 0
+        endif
+    config BSP_USING_CRC
+        bool "Enable CRC (CRC-32 0x04C11DB7 Polynomial)"
+        select RT_USING_HWCRYPTO
+        select RT_HWCRYPTO_USING_CRC
+        # "Crypto device frame dose not support above 8-bits granularity"
+        # "Reserve progress, running well, about 32-bits granularity, such as stm32f1, stm32f4"
+        default n  
+        
+endmenu
+
+menu "Board extended module Drivers"
+
+endmenu
+
+endmenu

+ 32 - 0
bsp/tm4c123bsp/board/SConscript

@@ -0,0 +1,32 @@
+import os
+import rtconfig
+from building import *
+
+Import('SDK_LIB')
+
+cwd = GetCurrentDir()
+
+# add general drivers
+src = Split('''
+board.c
+tm4c123_config.c
+''')
+
+path =  [cwd]
+#path += [cwd + '/CubeMX_Config/Inc']
+
+startup_path_prefix = SDK_LIB
+
+if rtconfig.CROSS_TOOL == 'gcc':
+    src += [startup_path_prefix + '/TivaWare_C_series/tm4c123_driverlib/startup/gcc/startup_gcc.c']
+elif rtconfig.CROSS_TOOL == 'keil':
+    src += [startup_path_prefix + '/TivaWare_C_series/tm4c123_driverlib/startup/arm/startup_rvmdk.S']
+elif rtconfig.CROSS_TOOL == 'iar':
+    src += [startup_path_prefix + '/TivaWare_C_series/tm4c123_driverlib/startup/iar/startup_rvmdk.S']
+
+
+CPPDEFINES = ['PART_TM4C123GH6PM']
+CPPDEFINES += ['TARGET_IS_TM4C123_RB1']
+CPPDEFINES += ['rvmdk']
+group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES)
+Return('group')

+ 108 - 0
bsp/tm4c123bsp/board/board.c

@@ -0,0 +1,108 @@
+/*
+ * Copyright (c) 2006-2019, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date           Author       Notes
+ * 2017-07-24     Tanek        the first version
+ * 2018-11-12     Ernest Chen  modify copyright
+ */
+ 
+#include <stdint.h>
+#include <stdbool.h>
+#include "hw_ints.h"
+#include "hw_sysctl.h"
+#include "hw_memmap.h"
+#include "hw_types.h"
+#include "fpu.h"
+#include "debug.h"
+#include "pin_map.h"
+#include "rom.h"
+#include "sysctl.h"
+#include "systick.h"
+#include "hw_ints.h"
+#include "board.h"
+
+// Holds the system core clock, which is the system clock 
+// frequency supplied to the SysTick timer and the processor 
+// core clock.
+uint32_t SystemCoreClock;
+
+
+
+void SystemCoreClockUpdate(void)
+{
+	
+	   FPULazyStackingEnable();
+
+    //
+    // Set the clocking to run directly from the crystal.
+    //
+    SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_XTAL_16MHZ |
+                       SYSCTL_OSC_MAIN);
+	
+	  SystemCoreClock = SysCtlClockGet();
+
+}
+
+void SysTickConfig()
+{
+	  SysTickDisable();
+    SysTickPeriodSet(SystemCoreClock/RT_TICK_PER_SECOND);
+    SysTickIntEnable();
+    SysTickEnable();	
+}
+
+/**
+ * This function will initial your board.
+ */
+void rt_hw_board_init()
+{
+    /* System Clock Update */
+    SystemCoreClockUpdate();
+    /* System Tick Configuration */
+    SysTickConfig();
+
+#ifdef RT_USING_SERIAL
+		rt_hw_usart_init();
+#endif
+#ifdef RT_USING_PIN
+	  rt_hw_pin_init();
+#endif
+
+#ifdef RT_USING_PWM
+	  rt_hw_pwm_init();
+#endif
+    /* Call components board initial (use INIT_BOARD_EXPORT()) */
+#ifdef RT_USING_COMPONENTS_INIT
+    rt_components_board_init();
+#endif
+	
+	  rt_console_set_device(RT_CONSOLE_DEVICE_NAME);
+
+#if defined(RT_USING_USER_MAIN) && defined(RT_USING_HEAP)
+    rt_system_heap_init((void *)HEAP_BEGIN, (void *)HEAP_END);
+	  
+#endif
+
+
+}
+
+
+void SysTick_Handler(void)
+{
+    /* enter interrupt */
+    rt_interrupt_enter();
+
+    rt_tick_increase();
+
+    /* leave interrupt */
+    rt_interrupt_leave();
+}
+
+
+
+
+
+

+ 47 - 0
bsp/tm4c123bsp/board/board.h

@@ -0,0 +1,47 @@
+#ifndef   _BOARD_H_
+#define   _BOARD_H_
+
+#include <rthw.h>
+#include <rtthread.h>
+
+
+#if defined(RT_USING_USER_MAIN) && defined(RT_USING_HEAP)
+
+#define TM4C123_SRAM1_START              (0x20000000)      
+#define TM4C123_SRAM1_END                (TM4C123_SRAM1_START + 32 * 1024)   // end address = 0x20000000(base adddress) + 32K(RAM size)
+
+#if defined(__CC_ARM) || defined(__CLANG_ARM)
+extern int Image$$RW_IRAM$$ZI$$Limit;                   // RW_IRAM
+#define HEAP_BEGIN      ((void *)&Image$$RW_IRAM$$ZI$$Limit)
+#endif
+
+#define HEAP_END                       TM4C123_SRAM1_END
+
+#endif
+
+
+
+
+#ifdef RT_USING_PIN
+#include "drv_gpio.h"
+#endif /* RT_USING_PIN */
+
+
+#ifdef RT_USING_SERIAL
+#include "drv_uart.h"
+#endif /* RT_USING_SERIAL */
+
+#ifdef RT_USING_PWM
+#include "drv_pwm.h"
+#endif /* RT_USING_PWM*/
+
+#ifdef RT_USING_SPI
+#include "drv_spi.h"
+#endif /* RT_USING_SPI*/
+
+
+
+
+
+#endif /*_BOARD_H_*/
+

+ 78 - 0
bsp/tm4c123bsp/board/linker_scripts/link.icf

@@ -0,0 +1,78 @@
+//*****************************************************************************
+//
+// hello.icf - Linker configuration file for hello.
+//
+// Copyright (c) 2012-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+// Texas Instruments (TI) is supplying this software for use solely and
+// exclusively on TI's microcontroller products. The software is owned by
+// TI and/or its suppliers, and is protected under applicable copyright
+// laws. You may not combine this software with "viral" open-source
+// software in order to form a larger program.
+// 
+// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS.
+// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT
+// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY
+// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
+// DAMAGES, FOR ANY REASON WHATSOEVER.
+// 
+// This is part of revision 2.1.4.178 of the EK-TM4C123GXL Firmware Package.
+//
+//*****************************************************************************
+
+//
+// Define a memory region that covers the entire 4 GB addressible space of the
+// processor.
+//
+define memory mem with size = 4G;
+
+//
+// Define a region for the on-chip flash.
+//
+define region FLASH = mem:[from 0x00000000 to 0x0003ffff];
+
+//
+// Define a region for the on-chip SRAM.
+//
+define region SRAM = mem:[from 0x20000000 to 0x20007fff];
+
+//
+// Define a block for the heap.  The size should be set to something other
+// than zero if things in the C library that require the heap are used.
+//
+define block HEAP with alignment = 8, size = 0x00000000 { };
+
+//
+// Indicate that the read/write values should be initialized by copying from
+// flash.
+//
+initialize by copy { readwrite };
+
+//
+// Indicate that the noinit values should be left alone.  This includes the
+// stack, which if initialized will destroy the return address from the
+// initialization code, causing the processor to branch to zero and fault.
+//
+do not initialize { section .noinit };
+
+//
+// Place the interrupt vectors at the start of flash.
+//
+place at start of FLASH { readonly section .intvec };
+
+//
+// Place the remainder of the read-only items into flash.
+//
+place in FLASH { readonly };
+
+//
+// Place the RAM vector table at the start of SRAM.
+//
+place at start of SRAM { section VTABLE };
+
+//
+// Place all read/write items into SRAM.
+//
+place in SRAM { readwrite, block HEAP };

+ 58 - 0
bsp/tm4c123bsp/board/linker_scripts/link.ld

@@ -0,0 +1,58 @@
+/******************************************************************************
+ *
+ * hello.ld - Linker configuration file for hello.
+ *
+ * Copyright (c) 2012-2017 Texas Instruments Incorporated.  All rights reserved.
+ * Software License Agreement
+ * 
+ * Texas Instruments (TI) is supplying this software for use solely and
+ * exclusively on TI's microcontroller products. The software is owned by
+ * TI and/or its suppliers, and is protected under applicable copyright
+ * laws. You may not combine this software with "viral" open-source
+ * software in order to form a larger program.
+ * 
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS.
+ * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT
+ * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY
+ * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
+ * DAMAGES, FOR ANY REASON WHATSOEVER.
+ * 
+ * This is part of revision 2.1.4.178 of the EK-TM4C123GXL Firmware Package.
+ *
+ *****************************************************************************/
+
+MEMORY
+{
+    FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x00040000
+    SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00008000
+}
+
+SECTIONS
+{
+    .text :
+    {
+        _text = .;
+        KEEP(*(.isr_vector))
+        *(.text*)
+        *(.rodata*)
+        _etext = .;
+    } > FLASH
+
+    .data : AT(ADDR(.text) + SIZEOF(.text))
+    {
+        _data = .;
+        _ldata = LOADADDR (.data);
+        *(vtable)
+        *(.data*)
+        _edata = .;
+    } > SRAM
+
+    .bss :
+    {
+        _bss = .;
+        *(.bss*)
+        *(COMMON)
+        _ebss = .;
+    } > SRAM
+}

+ 47 - 0
bsp/tm4c123bsp/board/linker_scripts/link.sct

@@ -0,0 +1,47 @@
+;******************************************************************************
+;
+; hello.sct - Linker configuration file for hello.
+;
+; Copyright (c) 2012-2017 Texas Instruments Incorporated.  All rights reserved.
+; Software License Agreement
+; 
+; Texas Instruments (TI) is supplying this software for use solely and
+; exclusively on TI's microcontroller products. The software is owned by
+; TI and/or its suppliers, and is protected under applicable copyright
+; laws. You may not combine this software with "viral" open-source
+; software in order to form a larger program.
+; 
+; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS.
+; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT
+; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY
+; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
+; DAMAGES, FOR ANY REASON WHATSOEVER.
+; 
+; This is part of revision 2.1.4.178 of the EK-TM4C123GXL Firmware Package.
+;
+;******************************************************************************
+
+LR_IROM 0x00000000 0x00040000
+{
+    ;
+    ; Specify the Execution Address of the code and the size.
+    ;
+    ER_IROM 0x00000000 0x00040000
+    {
+        *.o (RESET, +First)
+        * (InRoot$$Sections, +RO)
+    }
+
+    ;
+    ; Specify the Execution Address of the data area.
+    ;
+    RW_IRAM 0x20000000 0x00008000
+    {
+        ;
+        ; Uncomment the following line in order to use IntRegister().
+        ;
+        ;* (vtable, +First)
+        * (+RW, +ZI)
+    }
+}

+ 77 - 0
bsp/tm4c123bsp/board/tm4c123_config.c

@@ -0,0 +1,77 @@
+#include "stdbool.h"
+#include "stdint.h"
+#include "hw_memmap.h"
+#include "pin_map.h"
+#include "sysctl.h"
+#include "pwm.h"
+#include "gpio.h"
+#include "uart.h"
+#include "adc.h"
+#include "ssi.h"
+
+#include "tm4c123_config.h"
+
+
+
+
+void uart_hw_config(void)
+{
+	  SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);
+    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
+	  GPIOPinConfigure(GPIO_PA0_U0RX);
+    GPIOPinConfigure(GPIO_PA1_U0TX);
+    GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);
+	
+	  SysCtlPeripheralEnable(SYSCTL_PERIPH_UART1);
+    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);
+	  GPIOPinConfigure(GPIO_PC4_U1RX);
+    GPIOPinConfigure(GPIO_PC5_U1TX);
+    GPIOPinTypeUART(GPIO_PORTC_BASE, GPIO_PIN_4 | GPIO_PIN_5);
+	  
+}
+
+
+
+void pwm_hw_config(void)
+{
+	SysCtlPWMClockSet(SYSCTL_PWMDIV_2);
+   //GPIO port D needs to be enabled so these pins can be used.
+	SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM1);
+    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
+
+     // Configure the GPIO pin muxing to select PWM functions for these pins.
+    GPIOPinConfigure(GPIO_PF2_M1PWM6);
+    GPIOPinConfigure(GPIO_PF3_M1PWM7);
+
+     // Configure the GPIO pad for PWM function on pins PF2 and PF3
+    GPIOPinTypePWM(GPIO_PORTF_BASE, GPIO_PIN_2|GPIO_PIN_3);	
+	 
+}
+
+
+void adc_hw_config(void)
+{
+    // The ADC0 peripheral must be enabled for use.
+    //
+    SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC0);
+
+    // GPIO port D needs to be enabled
+    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);
+
+    // Select the analog ADC function for these pins.
+    GPIOPinTypeADC(GPIO_PORTD_BASE, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3); 
+}
+
+
+void  spi_hw_config(void)
+{
+    SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI0);
+    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
+    GPIOPinConfigure(GPIO_PA2_SSI0CLK);
+    //GPIOPinConfigure(GPIO_PA3_SSI0FSS);
+    GPIOPinConfigure(GPIO_PA4_SSI0RX);
+    GPIOPinConfigure(GPIO_PA5_SSI0TX);
+    GPIOPinTypeSSI(GPIO_PORTA_BASE, GPIO_PIN_5 | GPIO_PIN_4 | GPIO_PIN_2);
+
+}
+

+ 23 - 0
bsp/tm4c123bsp/board/tm4c123_config.h

@@ -0,0 +1,23 @@
+#ifndef _TM4C123GH6PZ_CONFIG_H_
+#define _TM4C123GH6PZ_CONFIG_H_
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+	
+	
+	
+
+void uart_hw_config(void);	
+void pwm_hw_config(void);	
+void adc_hw_config(void);
+void spi_hw_config(void);	
+	
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /*_TM4C123GH6PZ_CONFIG_H_*/
+

BIN
bsp/tm4c123bsp/figures/board.jpg


+ 101 - 0
bsp/tm4c123bsp/libraries/Drivers/SConscript

@@ -0,0 +1,101 @@
+Import('RTT_ROOT')
+Import('rtconfig')
+from building import *
+
+cwd = GetCurrentDir()
+
+# add the general drivers.
+src = Split("""
+""")
+
+if GetDepend(['RT_USING_PIN']):
+    src += ['drv_gpio.c']
+    
+if GetDepend(['RT_USING_SERIAL']):
+    src += ['drv_uart.c']
+
+if GetDepend(['RT_USING_HWTIMER']):
+    src += ['drv_hwtimer.c']
+
+if GetDepend(['RT_USING_PWM']):
+    src += ['drv_pwm.c']
+
+if GetDepend(['RT_USING_SPI']):
+    src += ['drv_spi.c']
+
+if GetDepend(['RT_USING_QSPI']):
+    src += ['drv_qspi.c']
+
+if GetDepend(['RT_USING_I2C', 'RT_USING_I2C_BITOPS']):
+    if GetDepend('BSP_USING_I2C1') or GetDepend('BSP_USING_I2C2') or GetDepend('BSP_USING_I2C3') or GetDepend('BSP_USING_I2C4'):
+        src += ['drv_soft_i2c.c']
+
+if GetDepend(['BSP_USING_ETH', 'RT_USING_LWIP']):
+    src += ['drv_eth.c']
+
+if GetDepend(['RT_USING_ADC']):
+    src += Glob('drv_adc.c')
+
+if GetDepend(['RT_USING_CAN']):
+    src += ['drv_can.c']
+
+if GetDepend(['RT_USING_PM', 'SOC_SERIES_STM32L4']):
+    src += ['drv_pm.c']
+    src += ['drv_lptim.c']
+
+if GetDepend('BSP_USING_SDRAM'):
+    src += ['drv_sdram.c']
+
+if GetDepend('BSP_USING_LCD'):
+    src += ['drv_lcd.c']
+
+if GetDepend('BSP_USING_LCD_MIPI'):
+    src += ['drv_lcd_mipi.c']
+
+if GetDepend('BSP_USING_ONCHIP_RTC'):
+    src += ['drv_rtc.c']
+
+if GetDepend(['BSP_USING_ON_CHIP_FLASH', 'SOC_SERIES_STM32F0']):
+    src += ['drv_flash/drv_flash_f0.c']
+
+if GetDepend(['BSP_USING_ON_CHIP_FLASH', 'SOC_SERIES_STM32F1']):
+    src += ['drv_flash/drv_flash_f1.c']
+
+if GetDepend(['BSP_USING_ON_CHIP_FLASH', 'SOC_SERIES_STM32F2']):
+    src += ['drv_flash/drv_flash_f2.c']
+
+if GetDepend(['BSP_USING_ON_CHIP_FLASH', 'SOC_SERIES_STM32F4']):
+    src += ['drv_flash/drv_flash_f4.c']
+
+if GetDepend(['BSP_USING_ON_CHIP_FLASH', 'SOC_SERIES_STM32F7']):
+    src += ['drv_flash/drv_flash_f7.c']
+
+if GetDepend(['BSP_USING_ON_CHIP_FLASH', 'SOC_SERIES_STM32L4']):
+    src += ['drv_flash/drv_flash_l4.c']
+	
+if GetDepend('RT_USING_HWCRYPTO'):
+    src += ['drv_crypto.c']
+	
+if GetDepend(['BSP_USING_WDT']):
+    src += ['drv_wdt.c']
+
+if GetDepend(['BSP_USING_SDIO']):
+    src += ['drv_sdio.c']
+
+if GetDepend(['BSP_USING_USBD']):
+    src += ['drv_usbd.c']
+
+if GetDepend(['BSP_USING_PULSE_ENCODER']):
+    src += ['drv_pulse_encoder.c']
+
+#src += ['drv_common.c']
+
+path =  [cwd]
+path += [cwd + '/config']
+
+if GetDepend('BSP_USING_ON_CHIP_FLASH'):
+    path += [cwd + '/drv_flash']
+
+group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path)
+
+Return('group')

+ 45 - 0
bsp/tm4c123bsp/libraries/Drivers/config/adc_config.h

@@ -0,0 +1,45 @@
+#ifndef _ADC_CONFIG_H_
+#define _ADC_CONFIG_H_
+
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#ifdef BSP_USING_ADC0
+#ifndef ADC0_CONFIG
+#define ADC0_CONFIG                             \
+    {                                           \
+        .name                    ="adc0",       \
+        .adcbase                 = ADC0_BASE,    \
+        .channel                 = 0 ,           \
+		.sequence                = 2 ,           \
+		.trigermode              = ADC_TRIGGER_PROCESSOR,   \
+        .sequencepriority        = 0             \
+    }
+#endif /* ADC0_CONFIG */
+#endif /* BSP_USING_ADC0 */
+
+#ifdef BSP_USING_ADC1
+#ifndef ADC1_CONFIG
+#define ADC1_CONFIG                             \
+    {                                           \
+        .name                    = "adc1",       \
+        .adcbase                 = ADC1_BASE,    \
+        .channel                 = 0     ,        \
+		.sequence                = 3     ,        \
+		.syncMode                = ADC_TRIGGER_PROCESSOR,   \
+        .sequencepriority        = 0              \
+    }
+#endif /* ADC1_CONFIG */
+#endif /* BSP_USING_ADC1 */		
+				
+	
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /*_ADC_CONFIG_H_*/

+ 114 - 0
bsp/tm4c123bsp/libraries/Drivers/config/pwm_config.h

@@ -0,0 +1,114 @@
+#ifndef _PWM_CONFIG_H_
+#define _PWM_CONFIG_H_
+
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+	
+#ifdef BSP_USING_PWM0
+#ifndef PWM0_CONFIG
+#define PWM0_CONFIG                             \
+    {                                           \
+        .name                    = "pwm0",       \
+        .channel                 = 0     ,        \
+		.counterMode             = PWM_GEN_MODE_UP_DOWN , \
+		.syncMode                = PWM_GEN_MODE_NO_SYNC   \
+    }
+#endif /* PWM0_CONFIG */
+#endif /* BSP_USING_PWM0 */
+
+#ifdef BSP_USING_PWM1
+#ifndef PWM1_CONFIG
+#define PWM1_CONFIG                             \
+    {                                           \
+        .name                    = "pwm1",       \
+        .channel                 = 0     ,        \
+		.counterMode             = PWM_GEN_MODE_UP_DOWN , \
+		.syncMode                = PWM_GEN_MODE_NO_SYNC   \
+    }
+#endif /* PWM1_CONFIG */
+#endif /* BSP_USING_PWM1 */		
+	
+#ifdef BSP_USING_PWM2
+#ifndef PWM2_CONFIG
+#define PWM2_CONFIG                             \
+    {                                           \
+        .name                    = "pwm2",       \
+        .channel                 = 0     ,        \
+		.counterMode             = PWM_GEN_MODE_UP_DOWN , \
+		.syncMode                = PWM_GEN_MODE_NO_SYNC   \
+    }
+#endif /* PWM2_CONFIG */
+#endif /* BSP_USING_PWM2 */
+
+#ifdef BSP_USING_PWM3
+#ifndef PWM3_CONFIG
+#define PWM3_CONFIG                             \
+    {                                           \
+        .name                    = "pwm3",       \
+        .channel                 = 0     ,        \
+		.counterMode             = PWM_GEN_MODE_UP_DOWN , \
+		.syncMode                = PWM_GEN_MODE_NO_SYNC   \
+    }
+#endif /* PWM3_CONFIG */
+#endif /* BSP_USING_PWM3 */
+
+#ifdef BSP_USING_PWM4
+#ifndef PWM4_CONFIG
+#define PWM4_CONFIG                             \
+    {                                           \
+        .name                    = "pwm4",       \
+        .channel                 = 0     ,        \
+		.counterMode             = PWM_GEN_MODE_UP_DOWN , \
+		.syncMode                = PWM_GEN_MODE_NO_SYNC   \
+    }
+#endif /* PWM4_CONFIG */
+#endif /* BSP_USING_PWM4 */
+
+#ifdef BSP_USING_PWM5
+#ifndef PWM5_CONFIG
+#define PWM5_CONFIG                             \
+    {                                           \
+        .name                    = "pwm5",       \
+        .channel                 = 0     ,        \
+		.counterMode             = PWM_GEN_MODE_UP_DOWN , \
+		.syncMode                = PWM_GEN_MODE_NO_SYNC   \
+    }
+#endif /* PWM5_CONFIG */
+#endif /* BSP_USING_PWM5 */	
+		
+#ifdef BSP_USING_PWM6
+#ifndef PWM6_CONFIG
+#define PWM6_CONFIG                             \
+    {                                           \
+        .name                    = "pwm6",       \
+        .channel                 = 0    ,         \
+		.counterMode             = PWM_GEN_MODE_UP_DOWN , \
+		.syncMode                = PWM_GEN_MODE_NO_SYNC   \
+    }
+#endif /* PWM6_CONFIG */
+#endif /* BSP_USING_PWM6 */	
+		
+#ifdef BSP_USING_PWM7
+#ifndef PWM7_CONFIG
+#define PWM7_CONFIG                             \
+    {                                           \
+        .name                    = "pwm7",       \
+        .channel                 = 0     ,        \
+		.counterMode             = PWM_GEN_MODE_UP_DOWN , \
+		.syncMode                = PWM_GEN_MODE_NO_SYNC   \
+    }
+#endif /* PWM7_CONFIG */
+#endif /* BSP_USING_PWM7 */	
+	
+			
+	
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /*_PWM_CONFIG_H_*/
+

+ 56 - 0
bsp/tm4c123bsp/libraries/Drivers/config/spi_config.h

@@ -0,0 +1,56 @@
+#ifndef __SPI_CONFIG_H__
+#define __SPI_CONFIG_H__
+
+#include <rtthread.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef BSP_USING_SPI0
+#ifndef SPI0_BUS_CONFIG
+#define SPI0_BUS_CONFIG                             \
+    {                                               \
+        .base = SSI0_BASE,                           \
+        .bus_name = "spi0",                         \
+    }
+#endif /* SPI0_BUS_CONFIG */
+#endif /* BSP_USING_SPI0 */
+
+
+#ifdef BSP_USING_SPI1
+#ifndef SPI1_BUS_CONFIG
+#define SPI1_BUS_CONFIG                             \
+    {                                               \
+        .base = SSI1_BASE,                           \
+        .bus_name = "spi1",                         \
+    }
+#endif /* SPI1_BUS_CONFIG */
+#endif /* BSP_USING_SPI1 */
+    
+#ifdef BSP_USING_SPI2
+#ifndef SPI2_BUS_CONFIG
+#define SPI2_BUS_CONFIG                             \
+    {                                               \
+        .base = SSI2_BASE,                           \
+        .bus_name = "spi2",                         \
+    }
+#endif /* SPI2_BUS_CONFIG */
+#endif /* BSP_USING_SPI2 */
+    
+
+#ifdef BSP_USING_SPI3
+#ifndef SPI3_BUS_CONFIG
+#define SPI3_BUS_CONFIG                             \
+    {                                               \
+        .base = SSI3_BASE,                           \
+        .bus_name = "spi3",                         \
+    }
+#endif /* SPI3_BUS_CONFIG */
+#endif /* BSP_USING_SPI3 */
+    
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*__SPI_CONFIG_H__ */

+ 67 - 0
bsp/tm4c123bsp/libraries/Drivers/config/uart_config.h

@@ -0,0 +1,67 @@
+
+#ifndef __UART_CONFIG_H__
+#define __UART_CONFIG_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#if defined(BSP_USING_UART0)
+#ifndef UART0_CONFIG
+#define UART0_CONFIG                                                \
+    {                                                               \
+        .name = "uart0",                                            \
+			  .uartbase = UART0_BASE,                                     \
+			  .baudrate = 115200,                                         \
+			  .mode     = UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |     \
+                             UART_CONFIG_PAR_NONE                   \
+    }
+#endif /* UART1_CONFIG */
+#endif /* BSP_USING_UART1*/	
+	
+#if defined(BSP_USING_UART1)
+#ifndef UART1_CONFIG
+#define UART1_CONFIG                                                \
+    {                                                               \
+        .name = "uart1",                                            \
+			  .uartbase = UART1_BASE,                                     \
+			  .baudrate = 115200,                                         \
+			  .mode     = UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |     \
+                             UART_CONFIG_PAR_NONE                   \
+    }
+#endif /* UART1_CONFIG */
+#endif /* BSP_USING_UART1*/
+
+#if defined(BSP_USING_UART2)
+#ifndef UART2_CONFIG
+#define UART2_CONFIG                                                \
+    {                                                               \
+        .name = "uart2",                                            \
+				.uartbase = UART2_BASE,                                     \
+			  .baudrate = 115200,                                         \
+			  .mode     = UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |     \
+                             UART_CONFIG_PAR_NONE                   \
+    }
+#endif /* UART2_CONFIG */
+#endif /* BSP_USING_UART2*/
+		
+#if defined(BSP_USING_UART3)
+#ifndef UART3_CONFIG
+#define UART3_CONFIG                                                \
+    {                                                               \
+        .name = "uart3",                                            \
+			  .uartbase = UART3_BASE,                                     \
+			  .baudrate = 115200,                                         \
+			  .mode     = UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |     \
+                             UART_CONFIG_PAR_NONE                   \
+    }
+#endif /* UART3_CONFIG */
+#endif /* BSP_USING_UART3*/		
+	
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+

+ 164 - 0
bsp/tm4c123bsp/libraries/Drivers/drv_adc.c

@@ -0,0 +1,164 @@
+#include "drv_adc.h"
+
+#include <stdint.h>
+#include <stdbool.h>
+#include <string.h>
+#include "hw_memmap.h"
+#include "adc.h"
+#include "sysctl.h"
+
+
+
+#ifdef  RT_USING_ADC
+
+#include "adc_config.h"
+#include "tm4c123_config.h"
+
+
+#define LOG_TAG             "drv.adc"
+#include <drv_log.h>
+
+static struct tm4c123_adc_config adc_config[] =
+{
+#ifdef BSP_USING_ADC0
+    ADC0_CONFIG,
+#endif
+
+#ifdef BSP_USING_ADC1
+    ADC1_CONFIG,
+#endif
+
+};
+
+struct tm4c123_adc
+{
+    struct tm4c123_adc_config *config;
+    struct rt_adc_device adc_device;
+};
+
+static struct tm4c123_adc   adc_obj[sizeof(adc_config) / sizeof(adc_config[0])]={0};
+
+static rt_err_t tm4c123_adc_enabled(struct rt_adc_device *device, rt_uint32_t channel, rt_bool_t enabled)
+{
+    RT_ASSERT(device != RT_NULL);
+    //stm32_adc_handler = device->parent.user_data;
+
+    if (enabled)
+    {
+        ADCSequenceEnable(ADC0_BASE, 2);
+        ADCIntClear(ADC0_BASE, 2);
+    }
+    else
+    {
+        ADCSequenceDisable(ADC0_BASE, 2);
+    }
+
+    return RT_EOK;
+}
+
+
+static rt_err_t tm4c123_get_adc_value(struct rt_adc_device *device, rt_uint32_t channel, rt_uint32_t *value)
+{
+    
+    RT_ASSERT(device != RT_NULL);
+    RT_ASSERT(value != RT_NULL);
+    
+    uint32_t    pui32ADC0Value[4]={0};
+
+    // Trigger the ADC conversion.
+    //
+    ADCProcessorTrigger(ADC0_BASE, 2);
+
+    //
+    // Wait for conversion to be completed.
+    //
+    while(!ADCIntStatus(ADC0_BASE, 2, false))
+    {
+    }
+
+    //
+    // Clear the ADC interrupt flag.
+    //
+    ADCIntClear(ADC0_BASE, 2);
+
+    //
+    // Read ADC Value.
+    //
+    ADCSequenceDataGet(ADC0_BASE, 2, pui32ADC0Value);
+
+
+    /* get ADC value */
+    *value = (rt_uint32_t)pui32ADC0Value[channel];
+
+    return RT_EOK;
+}
+
+static const struct rt_adc_ops tm4c123_adc_ops =
+{
+    .enabled = tm4c123_adc_enabled,
+    .convert = tm4c123_get_adc_value,
+};
+
+
+static rt_err_t tm4c123_hw_adc_init(struct tm4c123_adc *device)
+{
+    
+    uint32_t  adcbase = device->config->adcbase;
+    uint32_t  sequencenum = device->config->sequence;
+
+    ADCSequenceConfigure(adcbase, sequencenum, 
+                        device->config->trigermode, 0); 
+
+    ADCSequenceStepConfigure(ADC0_BASE, 2, 0, ADC_CTL_CH7 );
+    ADCSequenceStepConfigure(ADC0_BASE, 2, 1, ADC_CTL_CH6 | ADC_CTL_IE );
+    ADCSequenceStepConfigure(ADC0_BASE, 2, 2, ADC_CTL_CH5 );
+    //Tell the ADC logic
+    // that this is the last conversion on sequence 3 (ADC_CTL_END).  
+    ADCSequenceStepConfigure(ADC0_BASE, 2, 3, ADC_CTL_CH4 | ADC_CTL_IE |
+                              ADC_CTL_END);
+	  return RT_EOK;
+}
+
+
+static int tm4c123_adc_init(void)
+{
+	  int i = 0;
+	  rt_size_t obj_num = sizeof(adc_obj) / sizeof(struct tm4c123_adc);
+	  rt_err_t result = RT_EOK;
+
+    adc_hw_config(); 
+
+    for (i = 0; i < obj_num; i++)
+    {
+        /* ADC init */
+        adc_obj[i].config = &adc_config[i];
+        
+
+       if(tm4c123_hw_adc_init(&adc_obj[i])!= RT_EOK)
+        {
+            LOG_E("%s init failed", adc_obj[i].config->name);
+            result = -RT_ERROR;
+            return result;
+        }
+        else
+        {
+            LOG_D("%s init success", adc_obj[i].config->name);
+            
+            /* register adc device */
+            if (rt_hw_adc_register(&adc_obj[i].adc_device, adc_obj[i].config->name, &tm4c123_adc_ops,RT_NULL) == RT_EOK)
+            {
+                LOG_D("%s register success", adc_obj[i].config->name);
+            }
+            else
+            {
+                LOG_E("%s register failed", adc_obj[i].config->name);
+                result = -RT_ERROR;
+            }
+        }
+    }
+
+    return result;
+}
+INIT_APP_EXPORT(tm4c123_adc_init);
+
+#endif  /*RT_UING_ADC*/

+ 20 - 0
bsp/tm4c123bsp/libraries/Drivers/drv_adc.h

@@ -0,0 +1,20 @@
+#ifndef _DRV_ADC_H_
+#define _DRV_ADC_H_
+
+#include<stdint.h>
+#include<rtthread.h>
+#include<rtdevice.h>
+#include<rthw.h>
+
+struct tm4c123_adc_config
+{
+        const char  *name;       
+        uint32_t    adcbase;   
+        uint32_t    channel;           
+		uint32_t    sequence;                      
+		uint32_t    trigermode;               
+        uint32_t    sequencepriority;                   
+};
+
+
+#endif /*_DRV_ADC_H_*/

+ 31 - 0
bsp/tm4c123bsp/libraries/Drivers/drv_flash/drv_flash.h

@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date           Author       Notes
+ * 2018-12-5      SummerGift   first version
+ */
+
+#ifndef __DRV_FLASH_H__
+#define __DRV_FLASH_H__
+
+#include <rtthread.h>
+#include "rtdevice.h"
+#include <rthw.h>
+#include <drv_common.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int stm32_flash_read(rt_uint32_t addr, rt_uint8_t *buf, size_t size);
+int stm32_flash_write(rt_uint32_t addr, const rt_uint8_t *buf, size_t size);
+int stm32_flash_erase(rt_uint32_t addr, size_t size);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  /* __DRV_FLASH_H__ */

+ 197 - 0
bsp/tm4c123bsp/libraries/Drivers/drv_flash/drv_flash_f1.c

@@ -0,0 +1,197 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date           Author       Notes
+ * 2018-12-5      SummerGift   first version
+ */
+
+#include "board.h"
+
+#ifdef BSP_USING_ON_CHIP_FLASH
+#include "drv_config.h"
+#include "drv_flash.h"
+
+#if defined(PKG_USING_FAL)
+#include "fal.h"
+#endif
+
+//#define DRV_DEBUG
+#define LOG_TAG                "drv.flash"
+#include <drv_log.h>
+
+/**
+  * @brief  Gets the page of a given address
+  * @param  Addr: Address of the FLASH Memory
+  * @retval The page of a given address
+  */
+static uint32_t GetPage(uint32_t addr)
+{
+    uint32_t page = 0;
+    page = RT_ALIGN_DOWN(addr, FLASH_PAGE_SIZE);
+    return page;
+}
+
+/**
+ * Read data from flash.
+ * @note This operation's units is word.
+ *
+ * @param addr flash address
+ * @param buf buffer to store read data
+ * @param size read bytes size
+ *
+ * @return result
+ */
+int stm32_flash_read(rt_uint32_t addr, rt_uint8_t *buf, size_t size)
+{
+    size_t i;
+
+    if ((addr + size) > STM32_FLASH_END_ADDRESS)
+    {
+        LOG_E("read outrange flash size! addr is (0x%p)", (void *)(addr + size));
+        return -RT_EINVAL;
+    }
+
+    for (i = 0; i < size; i++, buf++, addr++)
+    {
+        *buf = *(rt_uint8_t *) addr;
+    }
+
+    return size;
+}
+
+/**
+ * Write data to flash.
+ * @note This operation's units is word.
+ * @note This operation must after erase. @see flash_erase.
+ *
+ * @param addr flash address
+ * @param buf the write data buffer
+ * @param size write bytes size
+ *
+ * @return result
+ */
+int stm32_flash_write(rt_uint32_t addr, const rt_uint8_t *buf, size_t size)
+{
+    rt_err_t result        = RT_EOK;
+    rt_uint32_t end_addr   = addr + size;
+
+    if (addr % 4 != 0)
+    {
+        LOG_E("write addr must be 4-byte alignment");
+        return -RT_EINVAL;
+    }
+
+    if ((end_addr) > STM32_FLASH_END_ADDRESS)
+    {
+        LOG_E("write outrange flash size! addr is (0x%p)", (void *)(addr + size));
+        return -RT_EINVAL;
+    }
+
+    HAL_FLASH_Unlock();
+
+    while (addr < end_addr)
+    {
+        if (HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, addr, *((rt_uint32_t *)buf)) == HAL_OK)
+        {
+            if (*(rt_uint32_t *)addr != *(rt_uint32_t *)buf)
+            {
+                result = -RT_ERROR;
+                break;
+            }
+            addr += 4;
+            buf  += 4;
+        }
+        else
+        {
+            result = -RT_ERROR;
+            break;
+        }
+    }
+
+    HAL_FLASH_Lock();
+
+    if (result != RT_EOK)
+    {
+        return result;
+    }
+
+    return size;
+}
+
+/**
+ * Erase data on flash.
+ * @note This operation is irreversible.
+ * @note This operation's units is different which on many chips.
+ *
+ * @param addr flash address
+ * @param size erase bytes size
+ *
+ * @return result
+ */
+int stm32_flash_erase(rt_uint32_t addr, size_t size)
+{
+    rt_err_t result = RT_EOK;
+    uint32_t PAGEError = 0;
+
+    /*Variable used for Erase procedure*/
+    FLASH_EraseInitTypeDef EraseInitStruct;
+
+    if ((addr + size) > STM32_FLASH_END_ADDRESS)
+    {
+        LOG_E("ERROR: erase outrange flash size! addr is (0x%p)\n", (void *)(addr + size));
+        return -RT_EINVAL;
+    }
+
+    HAL_FLASH_Unlock();
+
+    /* Fill EraseInit structure*/
+    EraseInitStruct.TypeErase   = FLASH_TYPEERASE_PAGES;
+    EraseInitStruct.PageAddress = GetPage(addr);
+    EraseInitStruct.NbPages     = (size + FLASH_PAGE_SIZE - 1) / FLASH_PAGE_SIZE;
+
+    if (HAL_FLASHEx_Erase(&EraseInitStruct, &PAGEError) != HAL_OK)
+    {
+        result = -RT_ERROR;
+        goto __exit;
+    }
+
+__exit:
+    HAL_FLASH_Lock();
+
+    if (result != RT_EOK)
+    {
+        return result;
+    }
+
+    LOG_D("erase done: addr (0x%p), size %d", (void *)addr, size);
+    return size;
+}
+
+#if defined(PKG_USING_FAL)
+
+static int fal_flash_read(long offset, rt_uint8_t *buf, size_t size);
+static int fal_flash_write(long offset, const rt_uint8_t *buf, size_t size);
+static int fal_flash_erase(long offset, size_t size);
+
+const struct fal_flash_dev stm32_onchip_flash = { "onchip_flash", STM32_FLASH_START_ADRESS, STM32_FLASH_SIZE, FLASH_PAGE_SIZE, {NULL, fal_flash_read, fal_flash_write, fal_flash_erase} };
+
+static int fal_flash_read(long offset, rt_uint8_t *buf, size_t size)
+{
+    return stm32_flash_read(stm32_onchip_flash.addr + offset, buf, size);
+}
+
+static int fal_flash_write(long offset, const rt_uint8_t *buf, size_t size)
+{
+    return stm32_flash_write(stm32_onchip_flash.addr + offset, buf, size);
+}
+
+static int fal_flash_erase(long offset, size_t size)
+{
+    return stm32_flash_erase(stm32_onchip_flash.addr + offset, size);
+}
+
+#endif
+#endif /* BSP_USING_ON_CHIP_FLASH */

+ 199 - 0
bsp/tm4c123bsp/libraries/Drivers/drv_gpio.c

@@ -0,0 +1,199 @@
+#include <rthw.h>
+#include <rtthread.h>
+#include <rtdevice.h>
+
+#include <stdint.h>
+#include <stdbool.h>
+#include "hw_memmap.h"
+#include "sysctl.h"
+#include "gpio.h"
+#include "pin_map.h"
+#include "interrupt.h"
+#include "rom_map.h"
+#include "drv_gpio.h"
+
+
+#ifdef RT_USING_PIN
+
+static const struct pin_index pins[] = 
+{
+    _TM4C_PIN(0 ,F, 0 ),
+    _TM4C_PIN(1 ,F, 1 ),
+    _TM4C_PIN(2 ,F, 2 ),
+    _TM4C_PIN(3 ,F, 3 ),
+    _TM4C_PIN(4 ,F, 4 )
+};
+
+
+static struct rt_pin_irq_hdr pin_irq_hdr_tab[] =
+{
+    {-1, 0, RT_NULL, RT_NULL},
+    {-1, 0, RT_NULL, RT_NULL},
+    {-1, 0, RT_NULL, RT_NULL},
+    {-1, 0, RT_NULL, RT_NULL},
+    {-1, 0, RT_NULL, RT_NULL},
+    {-1, 0, RT_NULL, RT_NULL},
+    {-1, 0, RT_NULL, RT_NULL},
+    {-1, 0, RT_NULL, RT_NULL},
+    {-1, 0, RT_NULL, RT_NULL},
+    {-1, 0, RT_NULL, RT_NULL},
+    {-1, 0, RT_NULL, RT_NULL},
+    {-1, 0, RT_NULL, RT_NULL},
+    {-1, 0, RT_NULL, RT_NULL},
+    {-1, 0, RT_NULL, RT_NULL},
+    {-1, 0, RT_NULL, RT_NULL},
+    {-1, 0, RT_NULL, RT_NULL}
+};
+
+
+static uint32_t pin_irq_enable_mask=0;
+
+#define ITEM_NUM(items) sizeof(items) / sizeof(items[0])
+	
+	
+static const struct pin_index *get_pin(uint8_t pin)
+{
+    const struct pin_index *index;
+
+    if (pin < ITEM_NUM(pins))
+    {
+        index = &pins[pin];
+        if (index->index == -1)
+            index = RT_NULL;
+    }
+    else
+    {
+        index = RT_NULL;
+    }
+    return index;
+};
+
+
+static void tm4c123_pin_mode(rt_device_t dev, rt_base_t pin, rt_base_t mode)
+{
+    const struct pin_index *index;
+    index = get_pin(pin);
+    if (index == RT_NULL)
+    {
+        return;
+    }
+				
+		if(mode == PIN_MODE_INPUT)
+		{
+        GPIOPinTypeGPIOInput(index ->gpioBaseAddress, index->pin);
+		}
+		else if(mode == PIN_MODE_OUTPUT)
+		{
+			  GPIOPinTypeGPIOOutput(index->gpioBaseAddress, index->pin);
+		}
+		else if(mode == PIN_MODE_INPUT_PULLUP)
+		{
+				
+    //
+    // Make the pin(s) be inputs.
+    //
+				GPIODirModeSet(index->gpioBaseAddress, index->pin, GPIO_DIR_MODE_IN);
+    //
+    // Set the pad(s) for standard pullup operation.
+    //
+				GPIOPadConfigSet(index->gpioBaseAddress, index->pin, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU);
+		}
+		else if(mode == PIN_MODE_INPUT_PULLDOWN)
+		{		
+    //
+    // Make the pin(s) be inputs.
+    //
+				GPIODirModeSet(index->gpioBaseAddress, index->pin, GPIO_DIR_MODE_IN);
+    //
+    // Set the pad(s) for standard pulldown operation.
+    //
+				GPIOPadConfigSet(index->gpioBaseAddress, index->pin, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPD);
+		}
+		else if(mode == PIN_MODE_OUTPUT_OD)
+		{
+		//
+		// Set the pad(s) for standard push-pull operation.
+				GPIOPadConfigSet(index->gpioBaseAddress, index->pin, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_OD);
+		//
+		// Make the pin(s) be outputs.
+				GPIODirModeSet(index->gpioBaseAddress, index->pin, GPIO_DIR_MODE_OUT);
+		}
+		
+}
+
+static void tm4c123_pin_write(rt_device_t dev, rt_base_t pin, rt_base_t ui8Val)
+{
+    const struct pin_index *index;
+	  index = get_pin(pin);
+	  if( index == RT_NULL)
+		{
+			    return;
+		}
+		if(ui8Val)
+		{
+					GPIOPinWrite(index ->gpioBaseAddress, index->pin, index->pin );
+		}
+		else
+		{
+					GPIOPinWrite(index ->gpioBaseAddress, index->pin, 0 );
+		}		
+}
+
+
+static int tm4c123_pin_read(rt_device_t dev, rt_base_t pin)
+{
+    const struct pin_index *index;
+		int value = 0;
+	  
+		index = get_pin(pin);
+	  if( index == RT_NULL)
+		{
+			    return value;
+		}
+	  value = GPIOPinRead(index ->gpioBaseAddress , index ->pin );
+	
+    return value;
+}
+
+static rt_err_t tm4c123_pin_attach_irq(rt_device_t device, rt_int32_t pin, rt_uint32_t mode, void (*hdr)(void *args), void *args )
+{
+    //const struct pin_index *index;
+	
+    return RT_EOK;
+}
+
+static rt_err_t tm4c123_pin_dettach_irq(rt_device_t device, rt_int32_t pin)
+{
+    //const struct pin_index *index;
+	
+    return RT_EOK;
+}
+
+
+static rt_err_t tm4c123_pin_irq_enable(rt_device_t device, rt_base_t pin,
+                                     rt_uint32_t enabled)
+{
+    //const struct pin_index *index;
+    //const struct pin_irq_map *irqmap;
+    return RT_EOK;
+}
+
+
+const static struct rt_pin_ops _tm4c123_pin_ops =
+{
+    tm4c123_pin_mode,
+    tm4c123_pin_write,
+    tm4c123_pin_read,
+    tm4c123_pin_attach_irq,
+    tm4c123_pin_dettach_irq,
+    tm4c123_pin_irq_enable,
+};
+
+int rt_hw_pin_init(void)
+{
+    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
+    return rt_device_pin_register("pin", &_tm4c123_pin_ops, RT_NULL);
+}
+INIT_BOARD_EXPORT(rt_hw_pin_init);
+
+#endif   /*RT_USING_PIN*/

+ 29 - 0
bsp/tm4c123bsp/libraries/Drivers/drv_gpio.h

@@ -0,0 +1,29 @@
+#ifndef _DRV_GPIO_H_
+#define _DRV_GPIO_H_
+
+#include <stdint.h>
+#include <rtthread.h>
+
+#define _TM4C_PIN(index, gpioport, gpio_index)                          \
+        {                                                               \
+				     index, GPIO_PORT##gpioport##_BASE, GPIO_PIN_##gpio_index   \
+				}
+				
+#define _TM4C_PIN_RESERVE                                              \
+        {                                                               \
+				    -1, 0, 0                                                    \
+				}
+				
+
+/* TM4C123 GPIO driver*/
+struct pin_index
+{
+    int index;
+    uint32_t gpioBaseAddress;
+    uint32_t pin;
+};
+
+extern int rt_hw_pin_init(void);
+
+#endif  /*_DRV_GPIO_H_*/
+

+ 27 - 0
bsp/tm4c123bsp/libraries/Drivers/drv_log.h

@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date           Author       Notes
+ * 2018-11-15     SummerGift   first version
+ */
+
+/*
+ * NOTE: DO NOT include this file on the header file.
+ */
+
+#ifndef LOG_TAG
+#define DBG_TAG               "drv"
+#else
+#define DBG_TAG               LOG_TAG
+#endif /* LOG_TAG */
+
+#ifdef DRV_DEBUG
+#define DBG_LVL               DBG_LOG
+#else
+#define DBG_LVL               DBG_INFO
+#endif /* DRV_DEBUG */
+
+#include <rtdbg.h>

+ 336 - 0
bsp/tm4c123bsp/libraries/Drivers/drv_pwm.c

@@ -0,0 +1,336 @@
+#include "drv_pwm.h"
+#include <stdint.h>
+#include <stdbool.h>
+#include <string.h>
+#include "hw_memmap.h"
+#include "pwm.h"
+#include "sysctl.h"
+
+
+
+#ifdef  RT_USING_PWM
+#include "pwm_config.h"
+#include "tm4c123_config.h"
+
+
+#define LOG_TAG             "drv.pwm"
+#include <drv_log.h>
+
+
+enum
+{
+#ifdef BSP_USING_PWM0
+    PWM0_INDEX,
+#endif
+#ifdef BSP_USING_PWM1
+    PWM1_INDEX,
+#endif
+#ifdef BSP_USING_PWM2
+    PWM2_INDEX,
+#endif
+#ifdef BSP_USING_PWM3
+    PWM3_INDEX,
+#endif
+#ifdef BSP_USING_PWM4
+    PWM4_INDEX,
+#endif
+#ifdef BSP_USING_PWM5
+    PWM5_INDEX,
+#endif
+#ifdef BSP_USING_PWM6
+    PWM6_INDEX,
+#endif
+#ifdef BSP_USING_PWM7
+    PWM7_INDEX,
+#endif
+
+};
+
+static struct tm4c123_pwm_config pwm_config[] =
+{
+#ifdef BSP_USING_PWM0
+    PWM0_CONFIG,
+#endif
+	
+#ifdef BSP_USING_PWM1
+    PWM1_CONFIG,
+#endif
+
+#ifdef BSP_USING_PWM2
+    PWM2_CONFIG,
+#endif
+
+#ifdef BSP_USING_PWM3
+    PWM3_CONFIG,
+#endif
+
+#ifdef BSP_USING_PWM4
+    PWM4_CONFIG,
+#endif
+
+#ifdef BSP_USING_PWM5
+    PWM5_CONFIG,
+#endif
+
+#ifdef BSP_USING_PWM6
+    PWM6_CONFIG,
+#endif
+
+#ifdef BSP_USING_PWM7
+    PWM7_CONFIG,
+#endif
+};
+
+static struct tm4c123_pwm pwm_obj[sizeof(pwm_config) / sizeof(pwm_config[0])] = {0};
+
+
+static rt_err_t tm4c123_pwm_control(struct rt_device_pwm *device, int cmd, void *arg);
+static struct rt_pwm_ops drv_ops =
+{
+    tm4c123_pwm_control
+};
+
+static rt_err_t drv_pwm_enable(char* name, struct rt_pwm_configuration *configuration, rt_bool_t enable)
+{
+    /* Converts the channel number to the channel number of Hal library */
+	   
+	  int  num = name[3]-0x30;
+    
+    if (!enable)
+    {
+        if( num<=3 )
+				{  
+					  PWMOutputState(PWM0_BASE, PWM_OUT_0_BIT<<(num*2+(configuration->channel-1)), false);
+				}         
+        else
+				{
+					  PWMOutputState(PWM1_BASE, PWM_OUT_0_BIT<<((num%4)*2+(configuration->channel-1)), false);
+				}					     									
+    }
+    else
+    {
+			  if( num<=3 )
+				{  
+					  PWMOutputState(PWM0_BASE, PWM_OUT_0_BIT<<(num*2+(configuration->channel-1)), true);
+				}         
+        else
+				{
+					  PWMOutputState(PWM1_BASE, PWM_OUT_0_BIT<<((num%4)*2+(configuration->channel-1)), true);
+				}			
+    }
+
+    return RT_EOK;
+}
+
+static rt_err_t drv_pwm_get(char* name, struct rt_pwm_configuration *configuration)
+{
+
+    switch(name[3])
+		{
+			 case  '0':
+			   configuration->period = PWMGenPeriodGet(PWM0_BASE, PWM_GEN_0);
+			   configuration->pulse= PWMPulseWidthGet(PWM0_BASE, PWM_OUT_0+(uint32_t)(configuration->channel-1));
+				 break;
+			case  '1':
+				 configuration->period = PWMGenPeriodGet(PWM0_BASE, PWM_GEN_1);
+			   configuration->pulse= PWMPulseWidthGet(PWM0_BASE, PWM_OUT_2+(uint32_t)(configuration->channel-1));
+				 break;
+			case  '2':
+         configuration->period = PWMGenPeriodGet(PWM0_BASE, PWM_GEN_2);
+			   configuration->pulse= PWMPulseWidthGet(PWM0_BASE, PWM_OUT_4+(uint32_t)(configuration->channel-1));
+				 break;
+			case  '3':
+				 configuration->period = PWMGenPeriodGet(PWM0_BASE, PWM_GEN_3);
+			   configuration->pulse= PWMPulseWidthGet(PWM0_BASE, PWM_OUT_6+(uint32_t)(configuration->channel-1));
+				 break;
+			case  '4':
+			   configuration->period = PWMGenPeriodGet(PWM1_BASE, PWM_GEN_0);
+			   configuration->pulse= PWMPulseWidthGet(PWM1_BASE, PWM_OUT_0+(uint32_t)(configuration->channel-1));
+				 break;
+			case  '5':
+				 configuration->period = PWMGenPeriodGet(PWM1_BASE, PWM_GEN_1);
+			   configuration->pulse= PWMPulseWidthGet(PWM1_BASE, PWM_OUT_2+(uint32_t)(configuration->channel-1));
+				 break;
+			case  '6':
+         configuration->period = PWMGenPeriodGet(PWM1_BASE, PWM_GEN_2);
+			   configuration->pulse= PWMPulseWidthGet(PWM1_BASE, PWM_OUT_4+(uint32_t)(configuration->channel-1));
+				 break;	
+			case  '7':
+				 configuration->period = PWMGenPeriodGet(PWM1_BASE, PWM_GEN_3);
+			   configuration->pulse= PWMPulseWidthGet(PWM1_BASE, PWM_OUT_6+(uint32_t)(configuration->channel-1));
+				 break;			
+			default:			 
+				 break;
+		}
+	  return RT_EOK;	 
+}
+
+static rt_err_t drv_pwm_set(char *name, struct rt_pwm_configuration *configuration)
+{
+	  
+	  uint32_t  sysPwmClock = SysCtlPWMClockGet();
+	  switch(name[3])
+		{
+			 case  '0':
+			    PWMGenPeriodSet(PWM0_BASE, PWM_GEN_0, configuration->period/1000*(sysPwmClock/1000000));    // t(s)/(1/f) = ticks   ns/1000/1000000
+			    PWMPulseWidthSet(PWM0_BASE, PWM_OUT_0+(uint32_t)(configuration->channel-1),configuration->pulse/1000*(sysPwmClock/1000000));
+			    PWMGenEnable(PWM0_BASE, PWM_GEN_0);
+				break;
+			case  '1':
+			    PWMGenPeriodSet(PWM0_BASE, PWM_GEN_1, configuration->period/1000*(sysPwmClock/1000000));
+			    PWMPulseWidthSet(PWM0_BASE, PWM_OUT_0+(uint32_t)(configuration->channel-1),configuration->pulse/1000*(sysPwmClock/1000000));
+				PWMGenEnable(PWM0_BASE, PWM_GEN_1);
+			    break;
+			case  '2':
+			    PWMGenPeriodSet(PWM0_BASE, PWM_GEN_2, configuration->period/1000*(sysPwmClock/1000000));
+			    PWMPulseWidthSet(PWM0_BASE, PWM_OUT_0+(uint32_t)(configuration->channel-1),configuration->pulse/1000*(sysPwmClock/1000000));
+			    PWMGenEnable(PWM0_BASE, PWM_GEN_2);
+				break;
+			case  '3':
+			    PWMGenPeriodSet(PWM0_BASE, PWM_GEN_3, configuration->period/1000*(sysPwmClock/1000000));
+			    PWMPulseWidthSet(PWM0_BASE, PWM_OUT_0+(uint32_t)(configuration->channel-1),configuration->pulse/1000*(sysPwmClock/1000000));
+			    PWMGenEnable(PWM0_BASE, PWM_GEN_3);
+				break;
+			case  '4':
+			    PWMGenPeriodSet(PWM1_BASE, PWM_GEN_0, configuration->period/1000*(sysPwmClock/1000000));
+			    PWMPulseWidthSet(PWM1_BASE, PWM_OUT_0+(uint32_t)(configuration->channel-1),configuration->pulse/1000*(sysPwmClock/1000000));
+			    PWMGenEnable(PWM1_BASE, PWM_GEN_0);
+				break;
+			case  '5':
+			    PWMGenPeriodSet(PWM1_BASE, PWM_GEN_1, configuration->period/1000*(sysPwmClock/1000000));
+			    PWMPulseWidthSet(PWM1_BASE, PWM_OUT_2+(uint32_t)(configuration->channel-1),configuration->pulse/1000*(sysPwmClock/1000000));
+			    PWMGenEnable(PWM1_BASE, PWM_GEN_1);
+				break;
+			case  '6':
+			    PWMGenPeriodSet(PWM1_BASE, PWM_GEN_2, configuration->period/1000*(sysPwmClock/1000000));
+			    PWMPulseWidthSet(PWM1_BASE, PWM_OUT_4+(uint32_t)(configuration->channel-1),configuration->pulse/1000*(sysPwmClock/1000000));
+			    PWMGenEnable(PWM1_BASE, PWM_GEN_2);
+				break;	
+			case  '7':
+			    PWMGenPeriodSet(PWM1_BASE, PWM_GEN_3, configuration->period/1000*(sysPwmClock/1000000));
+			    PWMPulseWidthSet(PWM1_BASE, PWM_OUT_6+(uint32_t)(configuration->channel-1),configuration->pulse/1000*(sysPwmClock/1000000));
+			    PWMGenEnable(PWM1_BASE, PWM_GEN_3);
+				break;			
+			default:			 
+				break;
+		}
+
+	  return RT_EOK;	  
+}
+
+static rt_err_t tm4c123_pwm_control(struct rt_device_pwm *device, int cmd, void *arg)
+	
+{
+    struct rt_pwm_configuration *configuration = (struct rt_pwm_configuration *)arg;
+	
+  
+    switch (cmd)
+    {
+    case PWM_CMD_ENABLE:
+         return drv_pwm_enable(device->parent.parent.name, configuration, RT_TRUE);
+    case PWM_CMD_DISABLE:
+         return drv_pwm_enable(device->parent.parent.name, configuration, RT_FALSE);
+    case PWM_CMD_SET:
+         return drv_pwm_set(device->parent.parent.name, configuration);
+    case PWM_CMD_GET:
+         return drv_pwm_get(device->parent.parent.name, configuration);
+    default:
+        return RT_EINVAL;
+    }
+}
+
+
+static rt_err_t tm4c123_hw_pwm_init(struct tm4c123_pwm *device)
+{
+		rt_err_t result = RT_EOK;
+	  RT_ASSERT(device != RT_NULL);
+	 
+	
+	  pwm_hw_config();
+	  
+	  switch( device->config->name[3])
+		{
+			case  '0':
+				 PWMGenConfigure(PWM0_BASE, PWM_GEN_0, device->config->counterMode |
+                     device->config->syncMode);
+				 break;
+			case  '1':
+				 PWMGenConfigure(PWM0_BASE, PWM_GEN_1, device->config->counterMode |
+                     device->config->syncMode);
+				 break;
+			case  '2':
+				 PWMGenConfigure(PWM0_BASE, PWM_GEN_2, device->config->counterMode |
+                     device->config->syncMode);
+				 break;
+			case  '3':
+				 PWMGenConfigure(PWM0_BASE, PWM_GEN_3, device->config->counterMode |
+                     device->config->syncMode);
+				 break;
+			case  '4':
+				 PWMGenConfigure(PWM1_BASE, PWM_GEN_0, device->config->counterMode |
+                     device->config->syncMode);
+				 break;
+			case  '5':
+				 PWMGenConfigure(PWM1_BASE, PWM_GEN_1, device->config->counterMode |
+                     device->config->syncMode);
+				 break;
+			case  '6':
+				 PWMGenConfigure(PWM1_BASE, PWM_GEN_2, device->config->counterMode |
+                     device->config->syncMode);
+				 break;	
+			case  '7':
+				 PWMGenConfigure(PWM1_BASE, PWM_GEN_3, device->config->counterMode |
+                     device->config->syncMode);
+				 break;			
+			default:
+				 LOG_E("%s PWMGenConfigure failed", device->config->name);
+         result = -RT_ERROR;
+         return result;				 
+				
+		}
+	  	  	 
+    return result;
+}
+
+
+
+int rt_hw_pwm_init(void)
+{
+	int i = 0;
+	rt_size_t obj_num = sizeof(pwm_obj) / sizeof(struct tm4c123_pwm);
+	rt_err_t result = RT_EOK;
+	  
+	
+	for(i=0 ; i< obj_num;i++)
+	{
+		 
+		    pwm_obj[i].config = &pwm_config[i];
+		    pwm_obj[i].pwm_device.ops = &drv_ops;		  
+		  /*pwm_init*/
+		    if(tm4c123_hw_pwm_init(&pwm_obj[i])!= RT_EOK)
+			{
+			    LOG_E("%s init failed", pwm_obj[i].config->name);
+                result = -RT_ERROR;
+                return result;
+			}
+			else
+			{
+				    LOG_D("%s init success", pwm_obj[i].config->name);
+				
+				    /* register pwm device */
+					if (rt_device_pwm_register(&pwm_obj[i].pwm_device, pwm_obj[i].config->name, &drv_ops,RT_NULL) == RT_EOK)
+					{
+						LOG_D("%s register success", pwm_obj[i].config->name);
+					}
+					else
+					{
+						LOG_E("%s register failed", pwm_obj[i].config->name);
+						result = -RT_ERROR;
+					}
+			}
+	 }
+	return result;
+}
+
+#endif
+

+ 28 - 0
bsp/tm4c123bsp/libraries/Drivers/drv_pwm.h

@@ -0,0 +1,28 @@
+#ifndef _DRV_PWM_H_
+#define _DRV_PWM_H_
+
+
+#include<rtdevice.h>
+#include<rthw.h>
+
+
+struct tm4c123_pwm
+{
+	struct tm4c123_pwm_config *config;
+	struct rt_device_pwm  pwm_device;
+};
+
+/* tm4c123 config class */
+struct tm4c123_pwm_config
+{
+	rt_uint8_t channel;
+	char *name;
+	uint32_t   counterMode;
+	uint32_t   syncMode;
+};
+
+
+int rt_hw_pwm_init(void);
+
+
+#endif /*_DRV_PWM_H_*/

+ 305 - 0
bsp/tm4c123bsp/libraries/Drivers/drv_spi.c

@@ -0,0 +1,305 @@
+#include "drv_spi.h"
+
+#include <stdint.h>
+#include <stdbool.h>
+#include <string.h>
+#include "hw_memmap.h"
+#include "ssi.h"
+#include "gpio.h"
+#include "sysctl.h"
+
+
+#ifdef RT_USING_SPI
+
+#if defined(BSP_USING_SPI0) || defined(BSP_USING_SPI1) || defined(BSP_USING_SPI2) || defined(BSP_USING_SPI3) 
+/* this driver can be disabled at menuconfig → RT-Thread Components → Device Drivers */
+#include "tm4c123_config.h"
+#include "spi_config.h"
+#include <string.h>
+
+//#define DRV_DEBUG
+#define LOG_TAG              "drv.spi"
+#include <drv_log.h>
+
+
+enum
+{
+#ifdef BSP_USING_SPI0
+    SPI0_INDEX,
+#endif
+#ifdef BSP_USING_SPI1
+    SPI1_INDEX,
+#endif
+#ifdef BSP_USING_SPI2
+    SPI2_INDEX,
+#endif
+#ifdef BSP_USING_SPI3
+    SPI3_INDEX,
+#endif
+};
+
+static struct tm4c123_spi_config spi_config[] =
+{
+#ifdef BSP_USING_SPI0
+    SPI0_BUS_CONFIG,
+#endif
+
+#ifdef BSP_USING_SPI1
+    SPI1_BUS_CONFIG,
+#endif
+
+#ifdef BSP_USING_SPI2
+    SPI2_BUS_CONFIG,
+#endif
+
+#ifdef BSP_USING_SPI3
+    SPI3_BUS_CONFIG,
+#endif
+
+};
+
+static struct tm4c123_spi spi_bus_obj[sizeof(spi_config) / sizeof(spi_config[0])] = {0};
+
+static rt_err_t tm4c123_spi_configure(struct tm4c123_spi *spi_drv, struct rt_spi_configuration *cfg)
+{
+    RT_ASSERT(spi_drv != RT_NULL);
+    RT_ASSERT(cfg != RT_NULL);
+    
+    uint32_t ui32Protocol,ui32Mode;
+    uint32_t ui32BitRate = (uint32_t)cfg->max_hz; 
+    uint32_t ui32DataWidth = (uint32_t)cfg->data_width;
+	  uint32_t pui32DataRx[1];
+    rt_uint8_t   ui8Protocol = 0;
+
+    if (cfg->mode & RT_SPI_SLAVE)
+    {
+        ui32Mode = SSI_MODE_SLAVE;
+    }
+    else
+    {
+        ui32Mode = SSI_MODE_MASTER;
+    }
+
+    if (cfg->mode & RT_SPI_CPHA)
+    {
+        ui8Protocol += 1;
+    }
+    else
+    {
+        ui8Protocol += 0;
+    }
+
+    if (cfg->mode & RT_SPI_CPOL)
+    {
+        ui8Protocol += 2;
+    }
+    else
+    {
+        ui8Protocol += 0;
+    } 
+
+    switch( ui8Protocol)
+    {
+        case 0:
+            ui32Protocol =  SSI_FRF_MOTO_MODE_0;
+            break; 
+        case 1:
+            ui32Protocol =  SSI_FRF_MOTO_MODE_1;
+            break;
+        case 2:
+            ui32Protocol =  SSI_FRF_MOTO_MODE_2;
+            break;
+        case 3:
+            ui32Protocol =  SSI_FRF_MOTO_MODE_3;
+            break;
+        default:
+            ui32Protocol =  SSI_FRF_MOTO_MODE_0;
+            break;           
+    }
+
+    SSIConfigSetExpClk(spi_drv->config->base, SysCtlClockGet(), ui32Protocol,
+                       ui32Mode, ui32BitRate, ui32DataWidth);
+
+    LOG_D("ssiclk freq: %d, SPI limiting freq: %d",SysCtlClockGet(),cfg->max_hz);
+    
+    /* DMA configuration */
+    SSIEnable(spi_drv->config->base);
+
+    while(SSIDataGetNonBlocking(SSI0_BASE, &pui32DataRx[0]))
+    {
+    }
+
+    LOG_D("%s init done", spi_drv->config->bus_name);
+
+    return RT_EOK;
+}
+
+static rt_uint32_t spixfer(struct rt_spi_device *device, struct rt_spi_message *message)
+{
+
+    rt_size_t message_length;
+    rt_uint8_t *recv_buf;
+    const rt_uint8_t *send_buf;
+    uint32_t  ReadData=0;
+    int    i = 0;
+    
+    RT_ASSERT(device != RT_NULL);
+    RT_ASSERT(device->bus != RT_NULL);
+    RT_ASSERT(device->bus->parent.user_data != RT_NULL);
+    RT_ASSERT(message != RT_NULL);
+
+    struct tm4c123_spi *spi_drv =  rt_container_of(device->bus, struct tm4c123_spi, spi_bus);
+    struct tm4c123_hw_spi_cs *cs = device->parent.user_data;
+
+    if (message->cs_take)
+    {
+        GPIOPinWrite(cs->portbase, cs->GPIO_Pin, 0);
+    }
+
+    LOG_D("%s transfer prepare and start", spi_drv->config->bus_name);
+    LOG_D("%s sendbuf: %X, recvbuf: %X, length: %d",
+          spi_drv->config->bus_name,
+          (uint32_t)message->send_buf,
+          (uint32_t)message->recv_buf, message->length);
+
+    message_length = message->length;
+    recv_buf = message->recv_buf;
+    send_buf = message->send_buf; 
+
+    if (message->send_buf && message->recv_buf)
+    {
+        for(i=0; i< message_length; i++)
+        {
+            SSIDataPut(spi_drv->config->base, (uint32_t)send_buf[i]);
+            while(SSIBusy(spi_drv->config->base))
+            {
+            }
+            SSIDataGet(spi_drv->config->base, &ReadData);
+            recv_buf[i] = (unsigned char)ReadData;
+        }
+    
+    }
+    else if (message->send_buf)
+    {
+        for(i=0; i< message_length; i++)
+        {
+            SSIDataPut(spi_drv->config->base, (uint32_t)send_buf[i]);
+            while(SSIBusy(spi_drv->config->base))
+            {
+            }
+            SSIDataGet(spi_drv->config->base, &ReadData);
+        }
+    }
+    else
+    {
+        for(i=0; i< message_length; i++)
+        {
+            SSIDataPut(spi_drv->config->base, (uint32_t)0xff);
+            while(SSIBusy(spi_drv->config->base))
+            {
+            }
+            SSIDataGet(spi_drv->config->base, &ReadData);
+            recv_buf[i] = (unsigned char)ReadData;
+        }  
+    }
+
+    LOG_D("%s transfer done", spi_drv->config->bus_name);
+  
+    if (message->cs_release)
+    {
+        GPIOPinWrite(cs->portbase, cs->GPIO_Pin, cs->GPIO_Pin);
+    }
+
+    return message->length;
+}
+
+
+static rt_err_t spi_configure(struct rt_spi_device *device,
+                              struct rt_spi_configuration *configuration)
+{
+    RT_ASSERT(device != RT_NULL);
+    RT_ASSERT(configuration != RT_NULL);
+
+    struct tm4c123_spi *spi_drv =  rt_container_of(device->bus, struct tm4c123_spi, spi_bus);
+    spi_drv->cfg = configuration;
+
+    return tm4c123_spi_configure(spi_drv, configuration);
+}
+
+static const struct rt_spi_ops tm4c123_spi_ops =
+{
+    .configure = spi_configure,
+    .xfer = spixfer,
+};
+
+
+static int rt_hw_spi_bus_init(void)
+{
+    rt_err_t result;
+    for (int i = 0; i < sizeof(spi_config) / sizeof(spi_config[0]); i++)
+    {
+        spi_bus_obj[i].config = &spi_config[i];
+        spi_bus_obj[i].spi_bus.parent.user_data = &spi_config[i];
+
+
+        result = rt_spi_bus_register(&spi_bus_obj[i].spi_bus, spi_config[i].bus_name, &tm4c123_spi_ops);
+        RT_ASSERT(result == RT_EOK);
+
+        LOG_D("%s bus init done", spi_config[i].bus_name);
+    }
+
+    return result;
+}
+
+/**
+  * Attach the spi device to SPI bus, this function must be used after initialization.
+  */
+rt_err_t rt_hw_spi_device_attach(const char *bus_name, const char *device_name, uint32_t portindex ,uint32_t cs_gpiobase, uint32_t cs_gpio_pin)
+{
+    RT_ASSERT(bus_name != RT_NULL);
+    RT_ASSERT(device_name != RT_NULL);
+
+    rt_err_t result;
+    struct rt_spi_device *spi_device;
+    struct tm4c123_hw_spi_cs *cs_pin;
+
+    /* initialize the cs pin && select the slave*/
+    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA+portindex);
+    GPIOPinTypeGPIOOutput(cs_gpiobase, cs_gpio_pin);
+    GPIOPinWrite(cs_gpiobase, cs_gpio_pin, cs_gpio_pin);
+
+
+    /* attach the device to spi bus*/
+    spi_device = (struct rt_spi_device *)rt_malloc(sizeof(struct rt_spi_device));
+    RT_ASSERT(spi_device != RT_NULL);
+    cs_pin = (struct tm4c123_hw_spi_cs *)rt_malloc(sizeof(struct tm4c123_hw_spi_cs));
+    RT_ASSERT(cs_pin != RT_NULL);
+    cs_pin->portbase = cs_gpiobase;
+    cs_pin->GPIO_Pin = cs_gpio_pin;
+    result = rt_spi_bus_attach_device(spi_device, device_name, bus_name, (void *)cs_pin);
+
+    if (result != RT_EOK)
+    {
+        LOG_E("%s attach to %s faild, %d\n", device_name, bus_name, result);
+    }
+
+    RT_ASSERT(result == RT_EOK);
+
+    LOG_D("%s attach to %s done", device_name, bus_name);
+
+    return result;
+}
+
+
+int rt_hw_spi_init(void)
+{
+    spi_hw_config();
+
+    return rt_hw_spi_bus_init();
+}
+INIT_BOARD_EXPORT(rt_hw_spi_init);
+
+
+#endif /* defined(BSP_USING_SPI0) || defined(BSP_USING_SPI1) || defined(BSP_USING_SPI2) || defined(BSP_USING_SPI3)  */
+#endif  /*RT_USING_SPI*/
+

+ 45 - 0
bsp/tm4c123bsp/libraries/Drivers/drv_spi.h

@@ -0,0 +1,45 @@
+#ifndef __DRV_SPI_H_
+#define __DRV_SPI_H_
+
+#include <rtdevice.h>
+#include <rthw.h>
+#include "drivers/spi.h"
+
+rt_err_t rt_hw_spi_device_attach(const char *bus_name, const char *device_name, uint32_t portindex, uint32_t  cs_gpiobase, uint32_t cs_gpio_pin);
+
+struct tm4c123_hw_spi_cs
+{
+    uint32_t portbase;
+    uint32_t GPIO_Pin;
+};
+
+struct tm4c123_spi_config
+{
+    uint32_t   base;
+    char *     bus_name;
+};
+
+/* tm4c123 spi dirver class */
+struct tm4c123_spi
+{
+    struct tm4c123_spi_config *config;
+    struct rt_spi_configuration *cfg;
+
+    struct rt_spi_bus spi_bus;
+};
+
+struct tm4c123_spi_device
+{
+    rt_uint32_t pin;
+    char *bus_name;
+    char *device_name;
+};
+
+#define SPI_USING_RX_DMA_FLAG   (1<<0)
+#define SPI_USING_TX_DMA_FLAG   (1<<1)
+
+#endif /*__DRV_SPI_H_ */
+
+
+
+

+ 335 - 0
bsp/tm4c123bsp/libraries/Drivers/drv_uart.c

@@ -0,0 +1,335 @@
+
+#include <stdint.h>
+#include <stdbool.h>
+#include "hw_memmap.h"
+#include "hw_ints.h"
+#include "sysctl.h"
+#include "gpio.h"
+#include "pin_map.h"
+#include "interrupt.h"
+#include "rom_map.h"
+#include "uart.h"
+
+#include "drv_uart.h"
+#include "uart_config.h"
+#include "tm4c123_config.h"
+
+#ifdef RT_USING_SERIAL
+
+#define   LOG_TAG  "drv.uart"
+#include <drv_log.h>
+
+#if !defined(BSP_USING_UART0)&&!defined(BSP_USING_UART1)&&!defined(BSP_USING_UART2)&&!defined(BSP_USING_UART3)
+    #error "Please define at least one BSP_USING_UARTx"
+#endif
+
+enum {
+	
+#ifdef BSP_USING_UART0
+	UART0_INDEX,
+#endif
+	
+#ifdef BSP_USING_UART1
+	UART1_INDEX,
+#endif
+
+#ifdef BSP_USING_UART2
+	UART2_INDEX,
+#endif
+	
+#ifdef BSP_USING_UART3
+	UART3_INDEX,
+#endif	
+};
+
+uint32_t  uart_intbase[]=
+{
+#ifdef BSP_USING_UART0
+	  INT_UART0,
+#endif
+	
+#ifdef BSP_USING_UART1
+	  INT_UART1,
+#endif
+
+#ifdef BSP_USING_UART2
+	  INT_UART2,
+#endif
+	
+#ifdef BSP_USING_UART3
+	  INT_UART3
+#endif		 
+};
+
+static struct tm4c123_uart_config uart_config[] =
+{
+#ifdef BSP_USING_UART0
+    UART0_CONFIG,
+#endif
+	
+#ifdef BSP_USING_UART1
+    UART1_CONFIG,
+#endif
+
+#ifdef BSP_USING_UART2
+    UART2_CONFIG,
+#endif
+	
+#ifdef BSP_USING_UART3
+    UART3_CONFIG,
+#endif	
+};
+
+static struct tm4c123_uart uart_obj[sizeof(uart_config) / sizeof(uart_config[0])] = {0};
+
+
+//struct serial_configure
+//{
+//    rt_uint32_t baud_rate;            /* ??? */
+//    rt_uint32_t data_bits    :4;      /* ??? */
+//    rt_uint32_t stop_bits    :2;      /* ??? */
+//    rt_uint32_t parity       :2;      /* ????? */
+//    rt_uint32_t bit_order    :1;      /* ?????????? */
+//    rt_uint32_t invert       :1;      /* ?? */
+//    rt_uint32_t bufsz        :16;     /* ????????? */
+//    rt_uint32_t reserved     :4;      /* ??? */
+//};
+
+//rtservice.h
+//#define  rt_container_of(ptr, type, member)   ((type *)((char *)(ptr) - (unsigned long)(&((type *)0)->member)))
+
+static rt_err_t tm4c123_configure(struct rt_serial_device *serial, struct serial_configure *cfg)
+{
+    struct tm4c123_uart *uart;
+    RT_ASSERT(serial != RT_NULL);
+    RT_ASSERT(cfg != RT_NULL);
+
+    uart = rt_container_of(serial, struct tm4c123_uart, serial);
+	  
+	
+	  UARTFIFOLevelSet(uart->config->uartbase, UART_FIFO_TX1_8, UART_FIFO_RX1_8);
+		
+    UARTConfigSetExpClk(uart->config->uartbase, SysCtlClockGet(), uart->config->baudrate,
+                            uart->config->mode);	
+		
+    return RT_EOK;
+}
+
+
+static rt_err_t  tm4c123_control(struct rt_serial_device *serial, int cmd, void *arg)
+{
+    struct tm4c123_uart  *uart;
+#ifdef RT_SERIAL_USING_DMA
+    rt_ubase_t ctrl_arg = (rt_ubase_t)arg;
+#endif
+
+    RT_ASSERT(serial != RT_NULL);
+    uart = rt_container_of(serial, struct tm4c123_uart, serial);
+	
+    switch (cmd)
+    {
+        /* disable interrupt */
+    case RT_DEVICE_CTRL_CLR_INT:
+        /* disable rx irq */
+        IntDisable(uart->uartintbase);
+        /* disable interrupt */
+        //UARTIntDisable(UART0_BASE, UART_INT_RX | UART_INT_RT);
+		    UARTIntDisable(uart->config->uartbase, UART_INT_RX);
+        break;
+    /* enable interrupt */
+    case RT_DEVICE_CTRL_SET_INT:
+        /* enable rx irq */
+        IntEnable(uart->uartintbase);
+        //UARTIntEnable(UART0_BASE, UART_INT_RX | UART_INT_RT);
+	    	UARTIntEnable(uart->config->uartbase, UART_INT_RX);
+        break;
+
+#ifdef RT_SERIAL_USING_DMA
+    case RT_DEVICE_CTRL_CONFIG:
+        break;
+#endif
+    }
+    return RT_EOK;
+}
+
+static int tm4c123_putc(struct rt_serial_device *serial, char c)
+{
+    struct tm4c123_uart *uart;
+    RT_ASSERT(serial != RT_NULL);
+
+    uart = rt_container_of(serial, struct tm4c123_uart, serial);
+	
+	  UARTCharPut(uart->config->uartbase, c);	
+    return 1;
+}
+
+static int tm4c123_getc(struct rt_serial_device *serial)
+{
+    int ch;
+    struct tm4c123_uart *uart;
+    RT_ASSERT(serial != RT_NULL);
+    uart = rt_container_of(serial, struct tm4c123_uart, serial);
+    ch = -1;
+    ch = UARTCharGetNonBlocking(uart->config->uartbase);
+    return ch;
+}
+
+static rt_size_t tm4c123_dma_transmit(struct rt_serial_device *serial, rt_uint8_t *buf, rt_size_t size, int direction)
+{
+    struct tm4c123_uart *uart;
+    RT_ASSERT(serial != RT_NULL);
+    uart = rt_container_of(serial, struct tm4c123_uart, serial);
+    
+    if (size == 0)
+    {
+        return 0;
+    }
+    
+//    if (RT_SERIAL_DMA_TX == direction)
+//    {
+//        if (HAL_UART_Transmit_DMA(&uart->handle, buf, size) == HAL_OK)
+//        {
+//            return size;
+//        }
+//        else
+//        {
+//            return 0;
+//        }
+//    }
+		
+    return 0;
+}
+
+static const struct rt_uart_ops tm4c123_uart_ops =
+{
+    .configure = tm4c123_configure,
+    .control = tm4c123_control,
+    .putc = tm4c123_putc,
+    .getc = tm4c123_getc,
+    .dma_transmit = tm4c123_dma_transmit
+};
+
+/**
+ * Uart common interrupt process. This need add to uart ISR.
+ *
+ * @param serial serial device
+ */
+
+static void uart_isr(struct rt_serial_device *serial)
+{
+    struct tm4c123_uart *uart;
+	  uint32_t ui32Ints;
+	
+#ifdef RT_SERIAL_USING_DMA
+    rt_size_t recv_total_index, recv_len;
+    rt_base_t level;
+#endif
+
+    RT_ASSERT(serial != RT_NULL);
+    uart = rt_container_of(serial, struct tm4c123_uart, serial);
+
+		ui32Ints = UARTIntStatus(uart->config->uartbase, true);
+	  UARTIntClear(uart->config->uartbase, ui32Ints);
+
+    /* UART in mode Receiver -------------------------------------------------*/
+	  if(ui32Ints & (UART_INT_RX | UART_INT_RT))
+    {
+
+        rt_hw_serial_isr(serial, RT_SERIAL_EVENT_RX_IND);
+    }
+
+}
+
+#if defined(BSP_USING_UART0)
+void UART0IntHandler(void)
+{
+    /* enter interrupt */
+    rt_interrupt_enter();
+
+    uart_isr(&(uart_obj[UART0_INDEX].serial));
+    /* leave interrupt */
+    rt_interrupt_leave();
+}
+#endif
+
+
+#if defined(BSP_USING_UART1)
+void UART1IntHandler(void)
+{
+    /* enter interrupt */
+    rt_interrupt_enter();
+
+    uart_isr(&(uart_obj[UART1_INDEX].serial));
+    /* leave interrupt */
+    rt_interrupt_leave();
+}
+
+
+//#if defined(RT_SERIAL_USING_DMA) && defined(BSP_UART1_RX_USING_DMA)
+//void UART1_DMA_RX_IRQHandler(void)
+//{
+//    /* enter interrupt */
+//    rt_interrupt_enter();
+
+//    HAL_DMA_IRQHandler(&uart_obj[UART1_INDEX].dma_rx.handle);
+
+//    /* leave interrupt */
+//    rt_interrupt_leave();
+//}
+//#endif /* defined(RT_SERIAL_USING_DMA) && defined(BSP_UART1_RX_USING_DMA) */
+
+//#if defined(RT_SERIAL_USING_DMA) && defined(BSP_UART1_TX_USING_DMA)
+//void UART1_DMA_TX_IRQHandler(void)
+//{
+//    /* enter interrupt */
+//    rt_interrupt_enter();
+
+//    HAL_DMA_IRQHandler(&uart_obj[UART1_INDEX].dma_tx.handle);
+
+//    /* leave interrupt */
+//    rt_interrupt_leave();
+//}
+//#endif /* defined(RT_SERIAL_USING_DMA) && defined(BSP_UART1_TX_USING_DMA) */
+#endif /* BSP_USING_UART1 */
+
+
+static void tm4c123_uart_get_dma_config(void)
+{
+#ifdef BSP_USING_UART1
+
+#endif
+
+}
+
+int rt_hw_usart_init(void)
+{
+    rt_size_t obj_num = sizeof(uart_obj) / sizeof(struct tm4c123_uart);
+    struct serial_configure config = RT_SERIAL_CONFIG_DEFAULT;
+    rt_err_t result = 0;
+
+    //tm4c123_uart_get_dma_config();
+    uart_hw_config();
+	
+	
+    for (int i = 0; i < obj_num; i++)
+    {
+        uart_obj[i].config = &uart_config[i];
+			  uart_obj[i].uartintbase = uart_intbase[i];
+        uart_obj[i].serial.ops    = &tm4c123_uart_ops;
+        uart_obj[i].serial.config = config;
+        /* register UART device */
+        result = rt_hw_serial_register(&uart_obj[i].serial, uart_obj[i].config->name,
+                                       RT_DEVICE_FLAG_RDWR
+                                       | RT_DEVICE_FLAG_INT_RX
+                                       | RT_DEVICE_FLAG_INT_TX
+                                       | uart_obj[i].uart_dma_flag
+                                       , NULL);
+        RT_ASSERT(result == RT_EOK);
+    }
+    return result;
+}
+
+
+
+#endif /* RT_USING_SERIAL */
+

+ 38 - 0
bsp/tm4c123bsp/libraries/Drivers/drv_uart.h

@@ -0,0 +1,38 @@
+#ifndef _DRV_UART_H_
+#define _DRV_UART_H_
+
+#include <stdint.h>
+#include <rthw.h>
+#include <rtthread.h>
+#include "rtdevice.h"
+
+/* tm4c123 config class */
+struct tm4c123_uart_config
+{
+    const char *name;
+	  uint32_t    uartbase;
+	  uint32_t    baudrate;
+	  uint32_t    mode;
+    //struct dma_config *dma_rx;
+    //struct dma_config *dma_tx;
+};
+
+
+/* tm4c123 uart dirver class */
+struct tm4c123_uart
+{    
+    struct tm4c123_uart_config *config;
+    uint32_t   uartintbase;	
+    
+#ifdef RT_SERIAL_USING_DMA
+#endif
+	
+    rt_uint16_t uart_dma_flag;
+    struct rt_serial_device serial;
+};
+
+extern int rt_hw_usart_init(void);
+
+#endif /*_DRV_UART_H_*/
+
+

+ 73 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/SConscript

@@ -0,0 +1,73 @@
+import rtconfig
+Import('RTT_ROOT')
+from building import *
+
+# get current directory
+cwd = GetCurrentDir()
+
+# The set of source files associated with this SConscript file.
+src = Split("""
+tm4c123_driverlib/src/sysctl.c
+tm4c123_driverlib/src/systick.c
+tm4c123_driverlib/src/interrupt.c
+tm4c123_driverlib/src/fpu.c
+tm4c123_driverlib/src/cpu.c
+tm4c123_driverlib/src/gpio.c
+""")
+
+#if GetDepend(['RT_USING_PIN']):
+   
+if GetDepend(['RT_USING_SERIAL']):
+    src += ['tm4c123_driverlib/src/uart.c']
+
+#if GetDepend(['RT_USING_I2C']):
+
+    
+if GetDepend(['RT_USING_SPI']):
+    src += ['tm4c123_driverlib/src/ssi.c']
+
+#if GetDepend(['RT_USING_USB_HOST']) or GetDepend(['RT_USING_USB_DEVICE']):
+
+
+#if GetDepend(['RT_USING_CAN']):
+
+
+#if GetDepend(['RT_USING_HWTIMER']) 
+
+if GetDepend(['RT_USING_PWM']) or GetDepend(['RT_USING_PULSE_ENCODER']):
+    src += ['tm4c123_driverlib/src/pwm.c']    
+
+#if GetDepend(['BSP_USING_ETH']):
+
+
+if GetDepend(['RT_USING_ADC']):
+    src += ['tm4c123_driverlib/src/adc.c']
+
+#if GetDepend(['RT_USING_RTC']):
+
+
+#if GetDepend(['RT_USING_WDT']):
+
+
+#if GetDepend(['RT_USING_SDIO']):
+
+
+#if GetDepend(['RT_USING_AUDIO']):
+
+
+#if GetDepend(['RT_USING_MTD_NOR']):
+
+
+#if GetDepend(['RT_USING_MTD_NAND']):
+
+
+#if GetDepend(['BSP_USING_ON_CHIP_FLASH']):
+
+
+path = [cwd + '/tm4c123_driverlib', 
+    cwd + '/tm4c123_driverlib/driverlib',
+    cwd + '/tm4c123_driverlib/driverlib/inc']
+
+group = DefineGroup('TM4C123_HAL', src, depend = [''], CPPPATH = path)
+
+Return('group')

+ 327 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/adc.h

@@ -0,0 +1,327 @@
+//*****************************************************************************
+//
+// adc.h - ADC headers for using the ADC driver functions.
+//
+// Copyright (c) 2005-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Peripheral Driver Library.
+//
+//*****************************************************************************
+
+#ifndef __DRIVERLIB_ADC_H__
+#define __DRIVERLIB_ADC_H__
+
+//*****************************************************************************
+//
+// If building with a C++ compiler, make all of the definitions in this header
+// have a C binding.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+//*****************************************************************************
+//
+// Values that can be passed to ADCSequenceConfigure as the ui32Trigger
+// parameter.
+//
+//*****************************************************************************
+#define ADC_TRIGGER_PROCESSOR   0x00000000  // Processor event
+#define ADC_TRIGGER_COMP0       0x00000001  // Analog comparator 0 event
+#define ADC_TRIGGER_COMP1       0x00000002  // Analog comparator 1 event
+#define ADC_TRIGGER_COMP2       0x00000003  // Analog comparator 2 event
+#define ADC_TRIGGER_EXTERNAL    0x00000004  // External event
+#define ADC_TRIGGER_TIMER       0x00000005  // Timer event
+#define ADC_TRIGGER_PWM0        0x00000006  // PWM0 event
+#define ADC_TRIGGER_PWM1        0x00000007  // PWM1 event
+#define ADC_TRIGGER_PWM2        0x00000008  // PWM2 event
+#define ADC_TRIGGER_PWM3        0x00000009  // PWM3 event
+#define ADC_TRIGGER_NEVER       0x0000000E  // Never Trigger
+#define ADC_TRIGGER_ALWAYS      0x0000000F  // Always event
+#define ADC_TRIGGER_PWM_MOD0    0x00000000  // PWM triggers from PWM0
+#define ADC_TRIGGER_PWM_MOD1    0x00000010  // PWM triggers from PWM1
+
+//*****************************************************************************
+//
+// Values that can be passed to ADCSequenceStepConfigure as the ui32Config
+// parameter.
+//
+//*****************************************************************************
+#define ADC_CTL_TS              0x00000080  // Temperature sensor select
+#define ADC_CTL_IE              0x00000040  // Interrupt enable
+#define ADC_CTL_END             0x00000020  // Sequence end select
+#define ADC_CTL_D               0x00000010  // Differential select
+#define ADC_CTL_CH0             0x00000000  // Input channel 0
+#define ADC_CTL_CH1             0x00000001  // Input channel 1
+#define ADC_CTL_CH2             0x00000002  // Input channel 2
+#define ADC_CTL_CH3             0x00000003  // Input channel 3
+#define ADC_CTL_CH4             0x00000004  // Input channel 4
+#define ADC_CTL_CH5             0x00000005  // Input channel 5
+#define ADC_CTL_CH6             0x00000006  // Input channel 6
+#define ADC_CTL_CH7             0x00000007  // Input channel 7
+#define ADC_CTL_CH8             0x00000008  // Input channel 8
+#define ADC_CTL_CH9             0x00000009  // Input channel 9
+#define ADC_CTL_CH10            0x0000000A  // Input channel 10
+#define ADC_CTL_CH11            0x0000000B  // Input channel 11
+#define ADC_CTL_CH12            0x0000000C  // Input channel 12
+#define ADC_CTL_CH13            0x0000000D  // Input channel 13
+#define ADC_CTL_CH14            0x0000000E  // Input channel 14
+#define ADC_CTL_CH15            0x0000000F  // Input channel 15
+#define ADC_CTL_CH16            0x00000100  // Input channel 16
+#define ADC_CTL_CH17            0x00000101  // Input channel 17
+#define ADC_CTL_CH18            0x00000102  // Input channel 18
+#define ADC_CTL_CH19            0x00000103  // Input channel 19
+#define ADC_CTL_CH20            0x00000104  // Input channel 20
+#define ADC_CTL_CH21            0x00000105  // Input channel 21
+#define ADC_CTL_CH22            0x00000106  // Input channel 22
+#define ADC_CTL_CH23            0x00000107  // Input channel 23
+#define ADC_CTL_CMP0            0x00080000  // Select Comparator 0
+#define ADC_CTL_CMP1            0x00090000  // Select Comparator 1
+#define ADC_CTL_CMP2            0x000A0000  // Select Comparator 2
+#define ADC_CTL_CMP3            0x000B0000  // Select Comparator 3
+#define ADC_CTL_CMP4            0x000C0000  // Select Comparator 4
+#define ADC_CTL_CMP5            0x000D0000  // Select Comparator 5
+#define ADC_CTL_CMP6            0x000E0000  // Select Comparator 6
+#define ADC_CTL_CMP7            0x000F0000  // Select Comparator 7
+#define ADC_CTL_SHOLD_4         0x00000000  // Sample and hold 4 ADC clocks
+#define ADC_CTL_SHOLD_8         0x00200000  // Sample and hold 8 ADC clocks
+#define ADC_CTL_SHOLD_16        0x00400000  // Sample and hold 16 ADC clocks
+#define ADC_CTL_SHOLD_32        0x00600000  // Sample and hold 32 ADC clocks
+#define ADC_CTL_SHOLD_64        0x00800000  // Sample and hold 64 ADC clocks
+#define ADC_CTL_SHOLD_128       0x00A00000  // Sample and hold 128 ADC clocks
+#define ADC_CTL_SHOLD_256       0x00C00000  // Sample and hold 256 ADC clocks
+
+//*****************************************************************************
+//
+// Values that can be passed to ADCComparatorConfigure as part of the
+// ui32Config parameter.
+//
+//*****************************************************************************
+#define ADC_COMP_TRIG_NONE      0x00000000  // Trigger Disabled
+#define ADC_COMP_TRIG_LOW_ALWAYS \
+                                0x00001000  // Trigger Low Always
+#define ADC_COMP_TRIG_LOW_ONCE  0x00001100  // Trigger Low Once
+#define ADC_COMP_TRIG_LOW_HALWAYS \
+                                0x00001200  // Trigger Low Always (Hysteresis)
+#define ADC_COMP_TRIG_LOW_HONCE 0x00001300  // Trigger Low Once (Hysteresis)
+#define ADC_COMP_TRIG_MID_ALWAYS \
+                                0x00001400  // Trigger Mid Always
+#define ADC_COMP_TRIG_MID_ONCE  0x00001500  // Trigger Mid Once
+#define ADC_COMP_TRIG_HIGH_ALWAYS \
+                                0x00001C00  // Trigger High Always
+#define ADC_COMP_TRIG_HIGH_ONCE 0x00001D00  // Trigger High Once
+#define ADC_COMP_TRIG_HIGH_HALWAYS \
+                                0x00001E00  // Trigger High Always (Hysteresis)
+#define ADC_COMP_TRIG_HIGH_HONCE \
+                                0x00001F00  // Trigger High Once (Hysteresis)
+
+#define ADC_COMP_INT_NONE       0x00000000  // Interrupt Disabled
+#define ADC_COMP_INT_LOW_ALWAYS \
+                                0x00000010  // Interrupt Low Always
+#define ADC_COMP_INT_LOW_ONCE   0x00000011  // Interrupt Low Once
+#define ADC_COMP_INT_LOW_HALWAYS \
+                                0x00000012  // Interrupt Low Always
+                                            // (Hysteresis)
+#define ADC_COMP_INT_LOW_HONCE  0x00000013  // Interrupt Low Once (Hysteresis)
+#define ADC_COMP_INT_MID_ALWAYS \
+                                0x00000014  // Interrupt Mid Always
+#define ADC_COMP_INT_MID_ONCE   0x00000015  // Interrupt Mid Once
+#define ADC_COMP_INT_HIGH_ALWAYS \
+                                0x0000001C  // Interrupt High Always
+#define ADC_COMP_INT_HIGH_ONCE  0x0000001D  // Interrupt High Once
+#define ADC_COMP_INT_HIGH_HALWAYS \
+                                0x0000001E  // Interrupt High Always
+                                            // (Hysteresis)
+#define ADC_COMP_INT_HIGH_HONCE \
+                                0x0000001F  // Interrupt High Once (Hysteresis)
+
+//*****************************************************************************
+//
+// Values that can be used to modify the sequence number passed to
+// ADCProcessorTrigger in order to get cross-module synchronous processor
+// triggers.
+//
+//*****************************************************************************
+#define ADC_TRIGGER_WAIT        0x08000000  // Wait for the synchronous trigger
+#define ADC_TRIGGER_SIGNAL      0x80000000  // Signal the synchronous trigger
+
+//*****************************************************************************
+//
+// Values that can be passed to ADCPhaseDelaySet as the ui32Phase parameter and
+// returned from ADCPhaseDelayGet.
+//
+//*****************************************************************************
+#define ADC_PHASE_0             0x00000000  // 0 degrees
+#define ADC_PHASE_22_5          0x00000001  // 22.5 degrees
+#define ADC_PHASE_45            0x00000002  // 45 degrees
+#define ADC_PHASE_67_5          0x00000003  // 67.5 degrees
+#define ADC_PHASE_90            0x00000004  // 90 degrees
+#define ADC_PHASE_112_5         0x00000005  // 112.5 degrees
+#define ADC_PHASE_135           0x00000006  // 135 degrees
+#define ADC_PHASE_157_5         0x00000007  // 157.5 degrees
+#define ADC_PHASE_180           0x00000008  // 180 degrees
+#define ADC_PHASE_202_5         0x00000009  // 202.5 degrees
+#define ADC_PHASE_225           0x0000000A  // 225 degrees
+#define ADC_PHASE_247_5         0x0000000B  // 247.5 degrees
+#define ADC_PHASE_270           0x0000000C  // 270 degrees
+#define ADC_PHASE_292_5         0x0000000D  // 292.5 degrees
+#define ADC_PHASE_315           0x0000000E  // 315 degrees
+#define ADC_PHASE_337_5         0x0000000F  // 337.5 degrees
+
+//*****************************************************************************
+//
+// Values that can be passed to ADCReferenceSet as the ui32Ref parameter.
+//
+//*****************************************************************************
+#define ADC_REF_INT             0x00000000  // Internal reference
+#define ADC_REF_EXT_3V          0x00000001  // External 3V reference
+
+//*****************************************************************************
+//
+// Values that can be passed to ADCIntDisableEx(), ADCIntEnableEx(),
+// ADCIntClearEx() and ADCIntStatusEx().
+//
+//*****************************************************************************
+#define ADC_INT_SS0             0x00000001
+#define ADC_INT_SS1             0x00000002
+#define ADC_INT_SS2             0x00000004
+#define ADC_INT_SS3             0x00000008
+#define ADC_INT_DMA_SS0         0x00000100
+#define ADC_INT_DMA_SS1         0x00000200
+#define ADC_INT_DMA_SS2         0x00000400
+#define ADC_INT_DMA_SS3         0x00000800
+#define ADC_INT_DCON_SS0        0x00010000
+#define ADC_INT_DCON_SS1        0x00020000
+#define ADC_INT_DCON_SS2        0x00040000
+#define ADC_INT_DCON_SS3        0x00080000
+
+//*****************************************************************************
+//
+// Values that can be passed to ADCClockConfigSet() and ADCClockConfigGet().
+//
+//*****************************************************************************
+#define ADC_CLOCK_RATE_FULL     0x00000070
+#define ADC_CLOCK_RATE_HALF     0x00000050
+#define ADC_CLOCK_RATE_FOURTH   0x00000030
+#define ADC_CLOCK_RATE_EIGHTH   0x00000010
+#define ADC_CLOCK_SRC_PLL       0x00000000
+#define ADC_CLOCK_SRC_PIOSC     0x00000001
+#define ADC_CLOCK_SRC_ALTCLK    0x00000001
+#define ADC_CLOCK_SRC_MOSC      0x00000002
+
+//*****************************************************************************
+//
+// Prototypes for the APIs.
+//
+//*****************************************************************************
+extern void ADCIntRegister(uint32_t ui32Base, uint32_t ui32SequenceNum,
+                           void (*pfnHandler)(void));
+extern void ADCIntUnregister(uint32_t ui32Base, uint32_t ui32SequenceNum);
+extern void ADCIntDisable(uint32_t ui32Base, uint32_t ui32SequenceNum);
+extern void ADCIntEnable(uint32_t ui32Base, uint32_t ui32SequenceNum);
+extern uint32_t ADCIntStatus(uint32_t ui32Base, uint32_t ui32SequenceNum,
+                             bool bMasked);
+extern void ADCIntClear(uint32_t ui32Base, uint32_t ui32SequenceNum);
+extern void ADCSequenceEnable(uint32_t ui32Base, uint32_t ui32SequenceNum);
+extern void ADCSequenceDisable(uint32_t ui32Base, uint32_t ui32SequenceNum);
+extern void ADCSequenceConfigure(uint32_t ui32Base, uint32_t ui32SequenceNum,
+                                 uint32_t ui32Trigger, uint32_t ui32Priority);
+extern void ADCSequenceStepConfigure(uint32_t ui32Base,
+                                     uint32_t ui32SequenceNum,
+                                     uint32_t ui32Step, uint32_t ui32Config);
+extern int32_t ADCSequenceOverflow(uint32_t ui32Base,
+                                   uint32_t ui32SequenceNum);
+extern void ADCSequenceOverflowClear(uint32_t ui32Base,
+                                     uint32_t ui32SequenceNum);
+extern int32_t ADCSequenceUnderflow(uint32_t ui32Base,
+                                    uint32_t ui32SequenceNum);
+extern void ADCSequenceUnderflowClear(uint32_t ui32Base,
+                                      uint32_t ui32SequenceNum);
+extern int32_t ADCSequenceDataGet(uint32_t ui32Base, uint32_t ui32SequenceNum,
+                                  uint32_t *pui32Buffer);
+extern void ADCProcessorTrigger(uint32_t ui32Base, uint32_t ui32SequenceNum);
+extern void ADCSoftwareOversampleConfigure(uint32_t ui32Base,
+                                           uint32_t ui32SequenceNum,
+                                           uint32_t ui32Factor);
+extern void ADCSoftwareOversampleStepConfigure(uint32_t ui32Base,
+                                               uint32_t ui32SequenceNum,
+                                               uint32_t ui32Step,
+                                               uint32_t ui32Config);
+extern void ADCSoftwareOversampleDataGet(uint32_t ui32Base,
+                                         uint32_t ui32SequenceNum,
+                                         uint32_t *pui32Buffer,
+                                         uint32_t ui32Count);
+extern void ADCHardwareOversampleConfigure(uint32_t ui32Base,
+                                           uint32_t ui32Factor);
+extern void ADCClockConfigSet(uint32_t ui32Base, uint32_t ui32Config,
+                              uint32_t ui32ClockDiv);
+extern uint32_t ADCClockConfigGet(uint32_t ui32Base, uint32_t *pui32ClockDiv);
+
+extern void ADCComparatorConfigure(uint32_t ui32Base, uint32_t ui32Comp,
+                                   uint32_t ui32Config);
+extern void ADCComparatorRegionSet(uint32_t ui32Base, uint32_t ui32Comp,
+                                   uint32_t ui32LowRef, uint32_t ui32HighRef);
+extern void ADCComparatorReset(uint32_t ui32Base, uint32_t ui32Comp,
+                               bool bTrigger, bool bInterrupt);
+extern void ADCComparatorIntDisable(uint32_t ui32Base,
+                                    uint32_t ui32SequenceNum);
+extern void ADCComparatorIntEnable(uint32_t ui32Base,
+                                   uint32_t ui32SequenceNum);
+extern uint32_t ADCComparatorIntStatus(uint32_t ui32Base);
+extern void ADCComparatorIntClear(uint32_t ui32Base, uint32_t ui32Status);
+extern void ADCIntDisableEx(uint32_t ui32Base, uint32_t ui32IntFlags);
+extern void ADCIntEnableEx(uint32_t ui32Base, uint32_t ui32IntFlags);
+extern uint32_t ADCIntStatusEx(uint32_t ui32Base, bool bMasked);
+extern void ADCIntClearEx(uint32_t ui32Base, uint32_t ui32IntFlags);
+extern void ADCSequenceDMAEnable(uint32_t ui32Base, uint32_t ui32SequenceNum);
+extern void ADCSequenceDMADisable(uint32_t ui32Base, uint32_t ui32SequenceNum);
+extern bool ADCBusy(uint32_t ui32Base);
+extern void ADCReferenceSet(uint32_t ui32Base, uint32_t ui32Ref);
+extern uint32_t ADCReferenceGet(uint32_t ui32Base);
+extern void ADCPhaseDelaySet(uint32_t ui32Base, uint32_t ui32Phase);
+extern uint32_t ADCPhaseDelayGet(uint32_t ui32Base);
+extern void ADCSampleRateSet(uint32_t ui32Base, uint32_t ui32ADCClock,
+                             uint32_t ui32Rate);
+extern uint32_t ADCSampleRateGet(uint32_t ui32Base);
+
+//*****************************************************************************
+//
+// Mark the end of the C bindings section for C++ compilers.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __DRIVERLIB_ADC_H__

+ 218 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/aes.h

@@ -0,0 +1,218 @@
+//*****************************************************************************
+//
+// aes.h - Defines and Macros for the AES module.
+//
+// Copyright (c) 2012-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Peripheral Driver Library.
+//
+//*****************************************************************************
+
+#ifndef __DRIVERLIB_AES_H__
+#define __DRIVERLIB_AES_H__
+
+//*****************************************************************************
+//
+// If building with a C++ compiler, make all of the definitions in this header
+// have a C binding.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+//*****************************************************************************
+//
+// The following defines are used to specify the operation direction in the
+// ui32Config argument in the AESConfig function.  Only one is permitted.
+//
+//*****************************************************************************
+#define AES_CFG_DIR_ENCRYPT     0x00000004
+#define AES_CFG_DIR_DECRYPT     0x00000000
+
+//*****************************************************************************
+//
+// The following defines are used to specify the key size in the ui32Config
+// argument in the AESConfig function.  Only one is permitted.
+//
+//*****************************************************************************
+#define AES_CFG_KEY_SIZE_128BIT 0x00000008
+#define AES_CFG_KEY_SIZE_192BIT 0x00000010
+#define AES_CFG_KEY_SIZE_256BIT 0x00000018
+
+//*****************************************************************************
+//
+// The following defines are used to specify the mode of operation in the
+// ui32Config argument in the AESConfig function.  Only one is permitted.
+//
+//*****************************************************************************
+#define AES_CFG_MODE_M          0x2007fe60
+#define AES_CFG_MODE_ECB        0x00000000
+#define AES_CFG_MODE_CBC        0x00000020
+#define AES_CFG_MODE_CTR        0x00000040
+#define AES_CFG_MODE_ICM        0x00000200
+#define AES_CFG_MODE_CFB        0x00000400
+#define AES_CFG_MODE_XTS_TWEAKJL \
+                                0x00000800
+#define AES_CFG_MODE_XTS_K2IJL \
+                                0x00001000
+#define AES_CFG_MODE_XTS_K2ILJ0 \
+                                0x00001800
+#define AES_CFG_MODE_F8         0x00002000
+#define AES_CFG_MODE_F9         0x20004000
+#define AES_CFG_MODE_CBCMAC     0x20008000
+#define AES_CFG_MODE_GCM_HLY0ZERO \
+                                0x20010000
+#define AES_CFG_MODE_GCM_HLY0CALC \
+                                0x20020040
+#define AES_CFG_MODE_GCM_HY0CALC \
+                                0x20030040
+#define AES_CFG_MODE_CCM        0x20040040
+
+//*****************************************************************************
+//
+// The following defines are used to specify the counter width in the
+// ui32Config argument in the AESConfig function.  It is only required to
+// be defined when using CTR, CCM, or GCM modes.  Only one length is permitted.
+//
+//*****************************************************************************
+#define AES_CFG_CTR_WIDTH_32    0x00000000
+#define AES_CFG_CTR_WIDTH_64    0x00000080
+#define AES_CFG_CTR_WIDTH_96    0x00000100
+#define AES_CFG_CTR_WIDTH_128   0x00000180
+
+//*****************************************************************************
+//
+// The following defines are used to define the width of the length field for
+// CCM operation through the ui32Config argument in the AESConfig function.
+// This value is also known as L.  Only one is permitted.
+//
+//*****************************************************************************
+#define AES_CFG_CCM_L_1         0x00000000
+#define AES_CFG_CCM_L_2         0x00080000
+#define AES_CFG_CCM_L_3         0x00100000
+#define AES_CFG_CCM_L_4         0x00180000
+#define AES_CFG_CCM_L_5         0x00200000
+#define AES_CFG_CCM_L_6         0x00280000
+#define AES_CFG_CCM_L_7         0x00300000
+#define AES_CFG_CCM_L_8         0x00380000
+
+//*****************************************************************************
+//
+// The following defines are used to define the length of the authentication
+// field for CCM operations through the ui32Config argument in the AESConfig
+// function.  This value is also known as M.  Only one is permitted.
+//
+//*****************************************************************************
+#define AES_CFG_CCM_M_4         0x00400000
+#define AES_CFG_CCM_M_6         0x00800000
+#define AES_CFG_CCM_M_8         0x00c00000
+#define AES_CFG_CCM_M_10        0x01000000
+#define AES_CFG_CCM_M_12        0x01400000
+#define AES_CFG_CCM_M_14        0x01800000
+#define AES_CFG_CCM_M_16        0x01c00000
+
+//*****************************************************************************
+//
+// Interrupt flags for use with the AESIntEnable, AESIntDisable, and
+// AESIntStatus functions.
+//
+//*****************************************************************************
+#define AES_INT_CONTEXT_IN      0x00000001
+#define AES_INT_CONTEXT_OUT     0x00000008
+#define AES_INT_DATA_IN         0x00000002
+#define AES_INT_DATA_OUT        0x00000004
+#define AES_INT_DMA_CONTEXT_IN  0x00010000
+#define AES_INT_DMA_CONTEXT_OUT 0x00080000
+#define AES_INT_DMA_DATA_IN     0x00020000
+#define AES_INT_DMA_DATA_OUT    0x00040000
+
+//*****************************************************************************
+//
+// Defines used when enabling and disabling DMA requests in the
+// AESEnableDMA and AESDisableDMA functions.
+//
+//*****************************************************************************
+#define AES_DMA_DATA_IN         0x00000020
+#define AES_DMA_DATA_OUT        0x00000040
+#define AES_DMA_CONTEXT_IN      0x00000080
+#define AES_DMA_CONTEXT_OUT     0x00000100
+
+//*****************************************************************************
+//
+// Function prototypes.
+//
+//*****************************************************************************
+extern void AESAuthLengthSet(uint32_t ui32Base, uint32_t ui32Length);
+extern void AESConfigSet(uint32_t ui32Base, uint32_t ui32Config);
+extern void AESDataRead(uint32_t ui32Base, uint32_t *pui32Dest);
+extern bool AESDataReadNonBlocking(uint32_t ui32Base, uint32_t *pui32Dest);
+extern bool AESDataProcess(uint32_t ui32Base, uint32_t *pui32Src,
+                           uint32_t *pui32Dest, uint32_t ui32Length);
+extern bool AESDataAuth(uint32_t ui32Base, uint32_t *pui32Src,
+                        uint32_t ui32Length, uint32_t *pui32Tag);
+extern bool AESDataProcessAuth(uint32_t ui32Base, uint32_t *pui32Src,
+                               uint32_t *pui32Dest, uint32_t ui32Length,
+                               uint32_t *pui32AuthSrc,
+                               uint32_t ui32AuthLength, uint32_t *pui32Tag);
+extern void AESDataWrite(uint32_t ui32Base, uint32_t *pui32Src);
+extern bool AESDataWriteNonBlocking(uint32_t ui32Base, uint32_t *pui32Src);
+extern void AESDMADisable(uint32_t ui32Base, uint32_t ui32Flags);
+extern void AESDMAEnable(uint32_t ui32Base, uint32_t ui32Flags);
+extern void AESIntClear(uint32_t ui32Base, uint32_t ui32IntFlags);
+extern void AESIntDisable(uint32_t ui32Base, uint32_t ui32IntFlags);
+extern void AESIntEnable(uint32_t ui32Base, uint32_t ui32IntFlags);
+extern void AESIntRegister(uint32_t ui32Base, void (*pfnHandler)(void));
+extern uint32_t AESIntStatus(uint32_t ui32Base, bool bMasked);
+extern void AESIntUnregister(uint32_t ui32Base);
+extern void AESIVSet(uint32_t ui32Base, uint32_t *pui32IVdata);
+extern void AESIVRead(uint32_t ui32Base, uint32_t *pui32IVdata);
+extern void AESKey1Set(uint32_t ui32Base, uint32_t *pui32Key,
+                       uint32_t ui32Keysize);
+extern void AESKey2Set(uint32_t ui32Base, uint32_t *pui32Key,
+                       uint32_t ui32Keysize);
+extern void AESKey3Set(uint32_t ui32Base, uint32_t *pui32Key);
+extern void AESLengthSet(uint32_t ui32Base, uint64_t ui64Length);
+extern void AESReset(uint32_t ui32Base);
+extern void AESTagRead(uint32_t ui32Base, uint32_t *pui32TagData);
+
+//*****************************************************************************
+//
+// Mark the end of the C bindings section for C++ compilers.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __DRIVERLIB_AES_H__

+ 449 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/can.h

@@ -0,0 +1,449 @@
+//*****************************************************************************
+//
+// can.h - Defines and Macros for the CAN controller.
+//
+// Copyright (c) 2006-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Peripheral Driver Library.
+//
+//*****************************************************************************
+
+#ifndef __DRIVERLIB_CAN_H__
+#define __DRIVERLIB_CAN_H__
+
+//*****************************************************************************
+//
+//! \addtogroup can_api
+//! @{
+//
+//*****************************************************************************
+
+//*****************************************************************************
+//
+// If building with a C++ compiler, make all of the definitions in this header
+// have a C binding.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+//*****************************************************************************
+//
+// Miscellaneous defines for Message ID Types
+//
+//*****************************************************************************
+
+//*****************************************************************************
+//
+// These are the flags used by the tCANMsgObject.ui32Flags value when calling
+// the CANMessageSet() and CANMessageGet() functions.
+//
+//*****************************************************************************
+
+//
+//! This indicates that transmit interrupts are enabled.
+//
+#define MSG_OBJ_TX_INT_ENABLE   0x00000001
+
+//
+//! This indicates that receive interrupts are enabled.
+//
+#define MSG_OBJ_RX_INT_ENABLE   0x00000002
+
+//
+//! This indicates that a message object is using an extended identifier.
+//
+#define MSG_OBJ_EXTENDED_ID     0x00000004
+
+//
+//! This indicates that a message object is using filtering based on the
+//! object's message identifier.
+//
+#define MSG_OBJ_USE_ID_FILTER   0x00000008
+
+//
+//! This indicates that new data was available in the message object.
+//
+#define MSG_OBJ_NEW_DATA        0x00000080
+
+//
+//! This indicates that data was lost since this message object was last
+//! read.
+//
+#define MSG_OBJ_DATA_LOST       0x00000100
+
+//
+//! This indicates that a message object uses or is using filtering
+//! based on the direction of the transfer.  If the direction filtering is
+//! used, then ID filtering must also be enabled.
+//
+#define MSG_OBJ_USE_DIR_FILTER  (0x00000010 | MSG_OBJ_USE_ID_FILTER)
+
+//
+//! This indicates that a message object uses or is using message
+//! identifier filtering based on the extended identifier.  If the extended
+//! identifier filtering is used, then ID filtering must also be enabled.
+//
+#define MSG_OBJ_USE_EXT_FILTER  (0x00000020 | MSG_OBJ_USE_ID_FILTER)
+
+//
+//! This indicates that a message object is a remote frame.
+//
+#define MSG_OBJ_REMOTE_FRAME    0x00000040
+
+//
+//! This indicates that this message object is part of a FIFO structure and
+//! not the final message object in a FIFO.
+//
+#define MSG_OBJ_FIFO            0x00000200
+
+//
+//! This indicates that a message object has no flags set.
+//
+#define MSG_OBJ_NO_FLAGS        0x00000000
+
+//*****************************************************************************
+//
+//! This define is used with the flag values to allow checking only status
+//! flags and not configuration flags.
+//
+//*****************************************************************************
+#define MSG_OBJ_STATUS_MASK     (MSG_OBJ_NEW_DATA | MSG_OBJ_DATA_LOST)
+
+//*****************************************************************************
+//
+//! The structure used for encapsulating all the items associated with a CAN
+//! message object in the CAN controller.
+//
+//*****************************************************************************
+typedef struct
+{
+    //
+    //! The CAN message identifier used for 11 or 29 bit identifiers.
+    //
+    uint32_t ui32MsgID;
+
+    //
+    //! The message identifier mask used when identifier filtering is enabled.
+    //
+    uint32_t ui32MsgIDMask;
+
+    //
+    //! This value holds various status flags and settings specified by
+    //! tCANObjFlags.
+    //
+    uint32_t ui32Flags;
+
+    //
+    //! This value is the number of bytes of data in the message object.
+    //
+    uint32_t ui32MsgLen;
+
+    //
+    //! This is a pointer to the message object's data.
+    //
+    uint8_t *pui8MsgData;
+}
+tCANMsgObject;
+
+//*****************************************************************************
+//
+//! This structure is used for encapsulating the values associated with setting
+//! up the bit timing for a CAN controller.  The structure is used when calling
+//! the CANGetBitTiming and CANSetBitTiming functions.
+//
+//*****************************************************************************
+typedef struct
+{
+    //
+    //! This value holds the sum of the Synchronization, Propagation, and Phase
+    //! Buffer 1 segments, measured in time quanta.  The valid values for this
+    //! setting range from 2 to 16.
+    //
+    uint32_t ui32SyncPropPhase1Seg;
+
+    //
+    //! This value holds the Phase Buffer 2 segment in time quanta.  The valid
+    //! values for this setting range from 1 to 8.
+    //
+    uint32_t ui32Phase2Seg;
+
+    //
+    //! This value holds the Resynchronization Jump Width in time quanta.  The
+    //! valid values for this setting range from 1 to 4.
+    //
+    uint32_t ui32SJW;
+
+    //
+    //! This value holds the CAN_CLK divider used to determine time quanta.
+    //! The valid values for this setting range from 1 to 1023.
+    //
+    uint32_t ui32QuantumPrescaler;
+}
+tCANBitClkParms;
+
+//*****************************************************************************
+//
+//! This data type is used to identify the interrupt status register.  This is
+//! used when calling the CANIntStatus() function.
+//
+//*****************************************************************************
+typedef enum
+{
+    //
+    //! Read the CAN interrupt status information.
+    //
+    CAN_INT_STS_CAUSE,
+
+    //
+    //! Read a message object's interrupt status.
+    //
+    CAN_INT_STS_OBJECT
+}
+tCANIntStsReg;
+
+//*****************************************************************************
+//
+//! This data type is used to identify which of several status registers to
+//! read when calling the CANStatusGet() function.
+//
+//*****************************************************************************
+typedef enum
+{
+    //
+    //! Read the full CAN controller status.
+    //
+    CAN_STS_CONTROL,
+
+    //
+    //! Read the full 32-bit mask of message objects with a transmit request
+    //! set.
+    //
+    CAN_STS_TXREQUEST,
+
+    //
+    //! Read the full 32-bit mask of message objects with new data available.
+    //
+    CAN_STS_NEWDAT,
+
+    //
+    //! Read the full 32-bit mask of message objects that are enabled.
+    //
+    CAN_STS_MSGVAL
+}
+tCANStsReg;
+
+//*****************************************************************************
+//
+// These definitions are used to specify interrupt sources to CANIntEnable()
+// and CANIntDisable().
+//
+//*****************************************************************************
+//
+//! This flag is used to allow a CAN controller to generate error
+//! interrupts.
+//
+#define CAN_INT_ERROR           0x00000008
+
+//
+//! This flag is used to allow a CAN controller to generate status
+//! interrupts.
+//
+#define CAN_INT_STATUS          0x00000004
+
+//
+//! This flag is used to allow a CAN controller to generate any CAN
+//! interrupts.  If this is not set, then no interrupts are generated
+//! by the CAN controller.
+//
+#define CAN_INT_MASTER          0x00000002
+
+//*****************************************************************************
+//
+//! This definition is used to determine the type of message object that is
+//! set up via a call to the CANMessageSet() API.
+//
+//*****************************************************************************
+typedef enum
+{
+    //
+    //! Transmit message object.
+    //
+    MSG_OBJ_TYPE_TX,
+
+    //
+    //! Transmit remote request message object
+    //
+    MSG_OBJ_TYPE_TX_REMOTE,
+
+    //
+    //! Receive message object.
+    //
+    MSG_OBJ_TYPE_RX,
+
+    //
+    //! Receive remote request message object.
+    //
+    MSG_OBJ_TYPE_RX_REMOTE,
+
+    //
+    //! Remote frame receive remote, with auto-transmit message object.
+    //
+    MSG_OBJ_TYPE_RXTX_REMOTE
+}
+tMsgObjType;
+
+//*****************************************************************************
+//
+// The following enumeration contains all error or status indicators that can
+// be returned when calling the CANStatusGet() function.
+//
+//*****************************************************************************
+//
+//! CAN controller has entered a Bus Off state.
+//
+#define CAN_STATUS_BUS_OFF      0x00000080
+
+//
+//! CAN controller error level has reached warning level.
+//
+#define CAN_STATUS_EWARN        0x00000040
+
+//
+//! CAN controller error level has reached error passive level.
+//
+#define CAN_STATUS_EPASS        0x00000020
+
+//
+//! A message was received successfully since the last read of this status.
+//
+#define CAN_STATUS_RXOK         0x00000010
+
+//
+//! A message was transmitted successfully since the last read of this
+//! status.
+//
+#define CAN_STATUS_TXOK         0x00000008
+
+//
+//! This is the mask for the last error code field.
+//
+#define CAN_STATUS_LEC_MSK      0x00000007
+
+//
+//! There was no error.
+//
+#define CAN_STATUS_LEC_NONE     0x00000000
+
+//
+//! A bit stuffing error has occurred.
+//
+#define CAN_STATUS_LEC_STUFF    0x00000001
+
+//
+//! A formatting error has occurred.
+//
+#define CAN_STATUS_LEC_FORM     0x00000002
+
+//
+//! An acknowledge error has occurred.
+//
+#define CAN_STATUS_LEC_ACK      0x00000003
+
+//
+//! The bus remained a bit level of 1 for longer than is allowed.
+//
+#define CAN_STATUS_LEC_BIT1     0x00000004
+
+//
+//! The bus remained a bit level of 0 for longer than is allowed.
+//
+#define CAN_STATUS_LEC_BIT0     0x00000005
+
+//
+//! A CRC error has occurred.
+//
+#define CAN_STATUS_LEC_CRC      0x00000006
+
+//
+//! This is the mask for the CAN Last Error Code (LEC).
+//
+#define CAN_STATUS_LEC_MASK     0x00000007
+
+//*****************************************************************************
+//
+// Close the Doxygen group.
+//! @}
+//
+//*****************************************************************************
+
+//*****************************************************************************
+//
+// API Function prototypes
+//
+//*****************************************************************************
+extern void CANBitTimingGet(uint32_t ui32Base, tCANBitClkParms *psClkParms);
+extern void CANBitTimingSet(uint32_t ui32Base, tCANBitClkParms *psClkParms);
+extern uint32_t CANBitRateSet(uint32_t ui32Base, uint32_t ui32SourceClock,
+                              uint32_t ui32BitRate);
+extern void CANDisable(uint32_t ui32Base);
+extern void CANEnable(uint32_t ui32Base);
+extern bool CANErrCntrGet(uint32_t ui32Base, uint32_t *pui32RxCount,
+                          uint32_t *pui32TxCount);
+extern void CANInit(uint32_t ui32Base);
+extern void CANIntClear(uint32_t ui32Base, uint32_t ui32IntClr);
+extern void CANIntDisable(uint32_t ui32Base, uint32_t ui32IntFlags);
+extern void CANIntEnable(uint32_t ui32Base, uint32_t ui32IntFlags);
+extern void CANIntRegister(uint32_t ui32Base, void (*pfnHandler)(void));
+extern uint32_t CANIntStatus(uint32_t ui32Base, tCANIntStsReg eIntStsReg);
+extern void CANIntUnregister(uint32_t ui32Base);
+extern void CANMessageClear(uint32_t ui32Base, uint32_t ui32ObjID);
+extern void CANMessageGet(uint32_t ui32Base, uint32_t ui32ObjID,
+                          tCANMsgObject *psMsgObject, bool bClrPendingInt);
+extern void CANMessageSet(uint32_t ui32Base, uint32_t ui32ObjID,
+                          tCANMsgObject *psMsgObject, tMsgObjType eMsgType);
+extern bool CANRetryGet(uint32_t ui32Base);
+extern void CANRetrySet(uint32_t ui32Base, bool bAutoRetry);
+extern uint32_t CANStatusGet(uint32_t ui32Base, tCANStsReg eStatusReg);
+
+//*****************************************************************************
+//
+// Mark the end of the C bindings section for C++ compilers.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __DRIVERLIB_CAN_H__

+ 141 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/comp.h

@@ -0,0 +1,141 @@
+//*****************************************************************************
+//
+// comp.h - Prototypes for the analog comparator driver.
+//
+// Copyright (c) 2005-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Peripheral Driver Library.
+//
+//*****************************************************************************
+
+#ifndef __DRIVERLIB_COMP_H__
+#define __DRIVERLIB_COMP_H__
+
+//*****************************************************************************
+//
+// If building with a C++ compiler, make all of the definitions in this header
+// have a C binding.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+//*****************************************************************************
+//
+// Values that can be passed to ComparatorConfigure() as the ui32Config
+// parameter.  For each group (in other words, COMP_TRIG_xxx, COMP_INT_xxx, and
+// so on), one of the values may be selected and combined together with values
+// from the other groups via a logical OR.
+//
+//*****************************************************************************
+#define COMP_TRIG_NONE          0x00000000  // No ADC trigger
+#define COMP_TRIG_HIGH          0x00000880  // Trigger when high
+#define COMP_TRIG_LOW           0x00000800  // Trigger when low
+#define COMP_TRIG_FALL          0x00000820  // Trigger on falling edge
+#define COMP_TRIG_RISE          0x00000840  // Trigger on rising edge
+#define COMP_TRIG_BOTH          0x00000860  // Trigger on both edges
+#define COMP_INT_HIGH           0x00000010  // Interrupt when high
+#define COMP_INT_LOW            0x00000000  // Interrupt when low
+#define COMP_INT_FALL           0x00000004  // Interrupt on falling edge
+#define COMP_INT_RISE           0x00000008  // Interrupt on rising edge
+#define COMP_INT_BOTH           0x0000000C  // Interrupt on both edges
+#define COMP_ASRCP_PIN          0x00000000  // Dedicated Comp+ pin
+#define COMP_ASRCP_PIN0         0x00000200  // Comp0+ pin
+#define COMP_ASRCP_REF          0x00000400  // Internal voltage reference
+#define COMP_OUTPUT_NORMAL      0x00000000  // Comparator output normal
+#define COMP_OUTPUT_INVERT      0x00000002  // Comparator output inverted
+
+//*****************************************************************************
+//
+// Values that can be passed to ComparatorSetRef() as the ui32Ref parameter.
+//
+//*****************************************************************************
+#define COMP_REF_OFF            0x00000000  // Turn off the internal reference
+#define COMP_REF_0V             0x00000300  // Internal reference of 0V
+#define COMP_REF_0_1375V        0x00000301  // Internal reference of 0.1375V
+#define COMP_REF_0_275V         0x00000302  // Internal reference of 0.275V
+#define COMP_REF_0_4125V        0x00000303  // Internal reference of 0.4125V
+#define COMP_REF_0_55V          0x00000304  // Internal reference of 0.55V
+#define COMP_REF_0_6875V        0x00000305  // Internal reference of 0.6875V
+#define COMP_REF_0_825V         0x00000306  // Internal reference of 0.825V
+#define COMP_REF_0_928125V      0x00000201  // Internal reference of 0.928125V
+#define COMP_REF_0_9625V        0x00000307  // Internal reference of 0.9625V
+#define COMP_REF_1_03125V       0x00000202  // Internal reference of 1.03125V
+#define COMP_REF_1_134375V      0x00000203  // Internal reference of 1.134375V
+#define COMP_REF_1_1V           0x00000308  // Internal reference of 1.1V
+#define COMP_REF_1_2375V        0x00000309  // Internal reference of 1.2375V
+#define COMP_REF_1_340625V      0x00000205  // Internal reference of 1.340625V
+#define COMP_REF_1_375V         0x0000030A  // Internal reference of 1.375V
+#define COMP_REF_1_44375V       0x00000206  // Internal reference of 1.44375V
+#define COMP_REF_1_5125V        0x0000030B  // Internal reference of 1.5125V
+#define COMP_REF_1_546875V      0x00000207  // Internal reference of 1.546875V
+#define COMP_REF_1_65V          0x0000030C  // Internal reference of 1.65V
+#define COMP_REF_1_753125V      0x00000209  // Internal reference of 1.753125V
+#define COMP_REF_1_7875V        0x0000030D  // Internal reference of 1.7875V
+#define COMP_REF_1_85625V       0x0000020A  // Internal reference of 1.85625V
+#define COMP_REF_1_925V         0x0000030E  // Internal reference of 1.925V
+#define COMP_REF_1_959375V      0x0000020B  // Internal reference of 1.959375V
+#define COMP_REF_2_0625V        0x0000030F  // Internal reference of 2.0625V
+#define COMP_REF_2_165625V      0x0000020D  // Internal reference of 2.165625V
+#define COMP_REF_2_26875V       0x0000020E  // Internal reference of 2.26875V
+#define COMP_REF_2_371875V      0x0000020F  // Internal reference of 2.371875V
+
+//*****************************************************************************
+//
+// Prototypes for the APIs.
+//
+//*****************************************************************************
+extern void ComparatorConfigure(uint32_t ui32Base, uint32_t ui32Comp,
+                                uint32_t ui32Config);
+extern void ComparatorRefSet(uint32_t ui32Base, uint32_t ui32Ref);
+extern bool ComparatorValueGet(uint32_t ui32Base, uint32_t ui32Comp);
+extern void ComparatorIntRegister(uint32_t ui32Base, uint32_t ui32Comp,
+                                  void (*pfnHandler)(void));
+extern void ComparatorIntUnregister(uint32_t ui32Base, uint32_t ui32Comp);
+extern void ComparatorIntEnable(uint32_t ui32Base, uint32_t ui32Comp);
+extern void ComparatorIntDisable(uint32_t ui32Base, uint32_t ui32Comp);
+extern bool ComparatorIntStatus(uint32_t ui32Base, uint32_t ui32Comp,
+                                bool bMasked);
+extern void ComparatorIntClear(uint32_t ui32Base, uint32_t ui32Comp);
+
+//*****************************************************************************
+//
+// Mark the end of the C bindings section for C++ compilers.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __DRIVERLIB_COMP_H__

+ 75 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/cpu.h

@@ -0,0 +1,75 @@
+//*****************************************************************************
+//
+// cpu.h - Prototypes for the CPU instruction wrapper functions.
+//
+// Copyright (c) 2006-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Peripheral Driver Library.
+//
+//*****************************************************************************
+
+#ifndef __DRIVERLIB_CPU_H__
+#define __DRIVERLIB_CPU_H__
+
+//*****************************************************************************
+//
+// If building with a C++ compiler, make all of the definitions in this header
+// have a C binding.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+//*****************************************************************************
+//
+// Prototypes.
+//
+//*****************************************************************************
+extern uint32_t CPUcpsid(void);
+extern uint32_t CPUcpsie(void);
+extern uint32_t CPUprimask(void);
+extern void CPUwfi(void);
+extern uint32_t CPUbasepriGet(void);
+extern void CPUbasepriSet(uint32_t ui32NewBasepri);
+
+//*****************************************************************************
+//
+// Mark the end of the C bindings section for C++ compilers.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __DRIVERLIB_CPU_H__

+ 101 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/crc.h

@@ -0,0 +1,101 @@
+//*****************************************************************************
+//
+// crc.h - Defines and Macros for CRC module.
+//
+// Copyright (c) 2012-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Peripheral Driver Library.
+//
+//*****************************************************************************
+
+#ifndef __DRIVERLIB_CRC_H__
+#define __DRIVERLIB_CRC_H__
+
+//*****************************************************************************
+//
+// If building with a C++ compiler, make all of the definitions in this header
+// have a C binding.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+//*****************************************************************************
+//
+// The following defines are used in the ui32Config argument of the
+// ECConfig function.
+//
+//*****************************************************************************
+#define CRC_CFG_INIT_SEED       0x00000000  // Initialize with seed
+#define CRC_CFG_INIT_0          0x00004000  // Initialize to all '0s'
+#define CRC_CFG_INIT_1          0x00006000  // Initialize to all '1s'
+#define CRC_CFG_SIZE_8BIT       0x00001000  // Input Data Size
+#define CRC_CFG_SIZE_32BIT      0x00000000  // Input Data Size
+#define CRC_CFG_RESINV          0x00000200  // Result Inverse Enable
+#define CRC_CFG_OBR             0x00000100  // Output Reverse Enable
+#define CRC_CFG_IBR             0x00000080  // Bit reverse enable
+#define CRC_CFG_ENDIAN_SBHW     0x00000020  // Swap byte in half-word
+#define CRC_CFG_ENDIAN_SHW      0x00000010  // Swap half-word
+#define CRC_CFG_TYPE_P8005      0x00000000  // Polynomial 0x8005
+#define CRC_CFG_TYPE_P1021      0x00000001  // Polynomial 0x1021
+#define CRC_CFG_TYPE_P4C11DB7   0x00000002  // Polynomial 0x4C11DB7
+#define CRC_CFG_TYPE_P1EDC6F41  0x00000003  // Polynomial 0x1EDC6F41
+#define CRC_CFG_TYPE_TCPCHKSUM  0x00000008  // TCP checksum
+
+//*****************************************************************************
+//
+// Function prototypes.
+//
+//*****************************************************************************
+#if 0
+extern void ECClockGatingReqest(uint32_t ui32Base, uint32_t ui32ECIP,
+                                bool bGate);
+#endif
+extern void CRCConfigSet(uint32_t ui32Base, uint32_t ui32CRCConfig);
+extern uint32_t CRCDataProcess(uint32_t ui32Base, uint32_t *pui32DataIn,
+                               uint32_t ui32DataLength, bool bPPResult);
+extern void CRCDataWrite(uint32_t ui32Base, uint32_t ui32Data);
+extern uint32_t CRCResultRead(uint32_t ui32Base, bool bPPResult);
+extern void CRCSeedSet(uint32_t ui32Base, uint32_t ui32Seed);
+
+//*****************************************************************************
+//
+// Mark the end of the C bindings section for C++ compilers.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __DRIVERLIB_CRC_H__

+ 70 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/debug.h

@@ -0,0 +1,70 @@
+//*****************************************************************************
+//
+// debug.h - Macros for assisting debug of the driver library.
+//
+// Copyright (c) 2006-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Peripheral Driver Library.
+//
+//*****************************************************************************
+
+#ifndef __DRIVERLIB_DEBUG_H__
+#define __DRIVERLIB_DEBUG_H__
+
+//*****************************************************************************
+//
+// Prototype for the function that is called when an invalid argument is passed
+// to an API.  This is only used when doing a DEBUG build.
+//
+//*****************************************************************************
+extern void __error__(char *pcFilename, uint32_t ui32Line);
+
+//*****************************************************************************
+//
+// The ASSERT macro, which does the actual assertion checking.  Typically, this
+// will be for procedure arguments.
+//
+//*****************************************************************************
+#ifdef DEBUG
+#define ASSERT(expr) do                                                       \
+                     {                                                        \
+                         if(!(expr))                                          \
+                         {                                                    \
+                             __error__(__FILE__, __LINE__);                   \
+                         }                                                    \
+                     }                                                        \
+                     while(0)
+#else
+#define ASSERT(expr)
+#endif
+
+#endif // __DRIVERLIB_DEBUG_H__

+ 140 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/des.h

@@ -0,0 +1,140 @@
+//*****************************************************************************
+//
+// des.h - Defines and Macros for the DES module.
+//
+// Copyright (c) 2012-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Peripheral Driver Library.
+//
+//*****************************************************************************
+
+#ifndef __DRIVERLIB_DES_H__
+#define __DRIVERLIB_DES_H__
+
+//*****************************************************************************
+//
+// If building with a C++ compiler, make all of the definitions in this header
+// have a C binding.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+//*****************************************************************************
+//
+// The following defines are used to specify the direction with the
+// ui32Config argument in the DESConfig() function.  Only one is permitted.
+//
+//*****************************************************************************
+#define DES_CFG_DIR_DECRYPT     0x00000000
+#define DES_CFG_DIR_ENCRYPT     0x00000004
+
+//*****************************************************************************
+//
+// The following defines are used to specify the operational with the
+// ui32Config argument in the DESConfig() function.  Only one is permitted.
+//
+//*****************************************************************************
+#define DES_CFG_MODE_ECB        0x00000000
+#define DES_CFG_MODE_CBC        0x00000010
+#define DES_CFG_MODE_CFB        0x00000020
+
+//*****************************************************************************
+//
+// The following defines are used to select between single DES and triple DES
+// with the ui32Config argument in the DESConfig() function.  Only one is
+// permitted.
+//
+//*****************************************************************************
+#define DES_CFG_SINGLE          0x00000000
+#define DES_CFG_TRIPLE          0x00000008
+
+//*****************************************************************************
+//
+// The following defines are used with the DESIntEnable(), DESIntDisable() and
+// DESIntStatus() functions.
+//
+//*****************************************************************************
+#define DES_INT_CONTEXT_IN      0x00000001
+#define DES_INT_DATA_IN         0x00000002
+#define DES_INT_DATA_OUT        0x00000004
+#define DES_INT_DMA_CONTEXT_IN  0x00010000
+#define DES_INT_DMA_DATA_IN     0x00020000
+#define DES_INT_DMA_DATA_OUT    0x00040000
+
+//*****************************************************************************
+//
+// The following defines are used with the DESEnableDMA() and DESDisableDMA()
+// functions.
+//
+//*****************************************************************************
+#define DES_DMA_CONTEXT_IN      0x00000080
+#define DES_DMA_DATA_OUT        0x00000040
+#define DES_DMA_DATA_IN         0x00000020
+
+//*****************************************************************************
+//
+// API Function prototypes
+//
+//*****************************************************************************
+extern void DESConfigSet(uint32_t ui32Base, uint32_t ui32Config);
+extern void DESDataRead(uint32_t ui32Base, uint32_t *pui32Dest);
+extern bool DESDataReadNonBlocking(uint32_t ui32Base, uint32_t *pui32Dest);
+extern bool DESDataProcess(uint32_t ui32Base, uint32_t *pui32Src,
+                           uint32_t *pui32Dest, uint32_t ui32Length);
+extern void DESDataWrite(uint32_t ui32Base, uint32_t *pui32Src);
+extern bool DESDataWriteNonBlocking(uint32_t ui32Base, uint32_t *pui32Src);
+extern void DESDMADisable(uint32_t ui32Base, uint32_t ui32Flags);
+extern void DESDMAEnable(uint32_t ui32Base, uint32_t ui32Flags);
+extern void DESIntClear(uint32_t ui32Base, uint32_t ui32IntFlags);
+extern void DESIntDisable(uint32_t ui32Base, uint32_t ui32IntFlags);
+extern void DESIntEnable(uint32_t ui32Base, uint32_t ui32IntFlags);
+extern void DESIntRegister(uint32_t ui32Base, void (*pfnHandler)(void));
+extern uint32_t DESIntStatus(uint32_t ui32Base, bool bMasked);
+extern void DESIntUnregister(uint32_t ui32Base);
+extern bool DESIVSet(uint32_t ui32Base, uint32_t *pui32IVdata);
+extern void DESKeySet(uint32_t ui32Base, uint32_t *pui32Key);
+extern void DESLengthSet(uint32_t ui32Base, uint32_t ui32Length);
+extern void DESReset(uint32_t ui32Base);
+
+//*****************************************************************************
+//
+// Mark the end of the C bindings section for C++ compilers.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __DRIVERLIB_DES_H__

+ 284 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/eeprom.h

@@ -0,0 +1,284 @@
+//*****************************************************************************
+//
+// eeprom.h - Prototypes for the EEPROM driver.
+//
+// Copyright (c) 2010-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Peripheral Driver Library.
+//
+//*****************************************************************************
+
+#ifndef __DRIVERLIB_EEPROM_H__
+#define __DRIVERLIB_EEPROM_H__
+
+//*****************************************************************************
+//
+// If building with a C++ compiler, make all of the definitions in this header
+// have a C binding.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+//*****************************************************************************
+//
+//! \addtogroup eeprom_api
+//! @{
+//
+//*****************************************************************************
+
+//*****************************************************************************
+//
+// Values returned by EEPROMInit.
+//
+//*****************************************************************************
+
+//
+//! This value may be returned from a call to EEPROMInit().  It indicates that
+//! no previous write operations were interrupted by a reset event and that the
+//! EEPROM peripheral is ready for use.
+//
+#define EEPROM_INIT_OK      0
+
+//
+//! This value may be returned from a call to EEPROMInit().  It indicates that
+//! a previous data or protection write operation was interrupted by a reset
+//! event and that the EEPROM peripheral was unable to clean up after the
+//! problem.  This situation may be resolved with another reset or may be fatal
+//! depending upon the cause of the problem.  For example, if the voltage to
+//! the part is unstable, retrying once the voltage has stabilized may clear
+//! the error.
+//
+#define EEPROM_INIT_ERROR   2
+
+//*****************************************************************************
+//
+// Error indicators returned by various EEPROM API calls.  These will be ORed
+// together into the final return code.
+//
+//*****************************************************************************
+
+//
+//! This return code bit indicates that an attempt was made to read from
+//! the EEPROM while a write operation was in progress.
+//
+#define EEPROM_RC_WRBUSY            0x00000020
+
+//
+//! This return code bit indicates that an attempt was made to write a
+//! value but the destination permissions disallow write operations.  This
+//! may be due to the destination block being locked, access protection set
+//! to prohibit writes or an attempt to write a password when one is already
+//! written.
+//
+#define EEPROM_RC_NOPERM            0x00000010
+
+//
+//! This return code bit indicates that the EEPROM programming state machine
+//! is currently copying to or from the internal copy buffer to make room for
+//! a newly written value.  It is provided as a status indicator and does not
+//! indicate an error.
+//
+#define EEPROM_RC_WKCOPY            0x00000008
+
+//
+//! This return code bit indicates that the EEPROM programming state machine
+//! is currently erasing the internal copy buffer.  It is provided as a
+//! status indicator and does not indicate an error.
+//
+#define EEPROM_RC_WKERASE           0x00000004
+
+//
+//! This return code bit indicates that the EEPROM programming state machine
+//! is currently working.  No new write operations should be attempted until
+//! this bit is clear.
+//
+#define EEPROM_RC_WORKING           0x00000001
+
+//*****************************************************************************
+//
+// Values that can be passed to EEPROMBlockProtectSet() in the ui32Protect
+// parameter, and returned by EEPROMBlockProtectGet().
+//
+//*****************************************************************************
+
+//
+//! This bit may be ORed with the protection option passed to
+//! EEPROMBlockProtectSet() or returned from EEPROMBlockProtectGet().  It
+//! restricts EEPROM access to threads running in supervisor mode and prevents
+//! access to an EEPROM block when the CPU is in user mode.
+//
+#define EEPROM_PROT_SUPERVISOR_ONLY 0x00000008
+
+//
+//! This value may be passed to EEPROMBlockProtectSet() or returned from
+//! EEPROMBlockProtectGet().  It indicates that the block should offer
+//! read/write access when no password is set or when a password is set and
+//! the block is unlocked, and read-only access when a password is set but
+//! the block is locked.
+//
+#define EEPROM_PROT_RW_LRO_URW      0x00000000
+
+//
+//! This value may be passed to EEPROMBlockProtectSet() or returned from
+//! EEPROMBlockProtectGet().  It indicates that the block should offer neither
+//! read nor write access unless it is protected by a password and unlocked.
+//
+#define EEPROM_PROT_NA_LNA_URW      0x00000001
+
+//
+//! This value may be passed to EEPROMBlockProtectSet() or returned from
+//! EEPROMBlockProtectGet().  It indicates that the block should offer
+//! read-only access when no password is set or when a password is set and the
+//! block is unlocked.  When a password is set and the block is locked, neither
+//! read nor write access is permitted.
+//
+#define EEPROM_PROT_RO_LNA_URO      0x00000002
+
+//*****************************************************************************
+//
+//! This value may be passed to EEPROMIntEnable() and EEPROMIntDisable() and is
+//! returned by EEPROMIntStatus() if an EEPROM interrupt is currently being
+//! signaled.
+//
+//*****************************************************************************
+#define EEPROM_INT_PROGRAM          0x00000004
+
+//*****************************************************************************
+//
+//! Returns the EEPROM block number containing a given offset address.
+//!
+//! \param ui32Addr is the linear, byte address of the EEPROM location whose
+//! block number is to be returned.  This is a zero-based offset from the start
+//! of the EEPROM storage.
+//!
+//! This macro may be used to translate an EEPROM address offset into a
+//! block number suitable for use in any of the driver's block protection
+//! functions.  The address provided is expressed as a byte offset from the
+//! base of the EEPROM.
+//!
+//! \return Returns the zero-based block number which contains the passed
+//! address.
+//
+//*****************************************************************************
+#define EEPROMBlockFromAddr(ui32Addr) ((ui32Addr) >> 6)
+
+//*****************************************************************************
+//
+//! Returns the offset address of the first word in an EEPROM block.
+//!
+//! \param ui32Block is the index of the EEPROM block whose first word address
+//! is to be returned.
+//!
+//! This macro may be used to determine the address of the first word in a
+//! given EEPROM block.  The address returned is expressed as a byte offset
+//! from the base of EEPROM storage.
+//!
+//! \return Returns the address of the first word in the given EEPROM block.
+//
+//*****************************************************************************
+#define EEPROMAddrFromBlock(ui32Block) ((ui32Block) << 6)
+
+//*****************************************************************************
+//
+// Close the Doxygen group.
+//! @}
+//
+//*****************************************************************************
+
+//*****************************************************************************
+//
+// Prototypes for the APIs.
+//
+//*****************************************************************************
+extern uint32_t EEPROMInit(void);
+extern uint32_t EEPROMSizeGet(void);
+extern uint32_t EEPROMBlockCountGet(void);
+extern void EEPROMRead(uint32_t *pui32Data, uint32_t ui32Address,
+                       uint32_t ui32Count);
+extern uint32_t EEPROMProgram(uint32_t *pui32Data,
+                              uint32_t ui32Address,
+                              uint32_t ui32Count);
+extern uint32_t EEPROMProgramNonBlocking(uint32_t ui32Data,
+                                         uint32_t ui32Address);
+extern uint32_t EEPROMStatusGet(void);
+extern uint32_t EEPROMMassErase(void);
+extern uint32_t EEPROMBlockProtectGet(uint32_t ui32Block);
+extern uint32_t EEPROMBlockProtectSet(uint32_t ui32Block,
+                                      uint32_t ui32Protect);
+extern uint32_t EEPROMBlockPasswordSet(uint32_t ui32Block,
+                                       uint32_t *pui32Password,
+                                       uint32_t ui32Count);
+extern uint32_t EEPROMBlockLock(uint32_t ui32Block);
+extern uint32_t EEPROMBlockUnlock(uint32_t ui32Block,
+                                  uint32_t *pui32Password,
+                                  uint32_t ui32Count);
+extern void EEPROMBlockHide(uint32_t ui32Block);
+extern void EEPROMIntEnable(uint32_t ui32IntFlags);
+extern void EEPROMIntDisable(uint32_t ui32IntFlags);
+extern uint32_t EEPROMIntStatus(bool bMasked);
+extern void EEPROMIntClear(uint32_t ui32IntFlags);
+
+#ifndef DEPRECATED
+//*****************************************************************************
+//
+// The following definitions appeared in previous revisions of this file
+// but have been deprecated and should not be used by applications.
+//
+//*****************************************************************************
+
+//
+// This value used to be one of those which could be returned from a call to
+// EEPROMInit().  It transpires that it is was incorrect and has been removed
+// after EEPROMInit() was reworked for TivaWare 2.1.
+//
+#define EEPROM_INIT_RETRY   1
+
+//
+// This return code is not available from any Tiva part and has been removed.
+//
+#define EEPROM_RC_INVPL             0x00000100
+
+#endif
+
+//*****************************************************************************
+//
+// Mark the end of the C bindings section for C++ compilers.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __DRIVERLIB_EEPROM_H__

+ 1041 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/emac.h

@@ -0,0 +1,1041 @@
+//*****************************************************************************
+//
+// emac.h - Defines and Macros for the Ethernet module on Snowflake-class
+//          devices.
+//
+// Copyright (c) 2012-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Peripheral Driver Library.
+//
+//*****************************************************************************
+
+#ifndef __DRIVERLIB_EMAC_H__
+#define __DRIVERLIB_EMAC_H__
+
+//*****************************************************************************
+//
+// If building with a C++ compiler, make all of the definitions in this header
+// have a C binding.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+//*****************************************************************************
+//
+//! \addtogroup emac_api
+//! @{
+//
+//*****************************************************************************
+
+//*****************************************************************************
+//
+// The physical address of the internal PHY.  This should be in hw_emac.h.
+//
+//*****************************************************************************
+#define EMAC_PHY_ADDR 0
+
+//*****************************************************************************
+//
+// Helper Macros for Ethernet Processing
+//
+//*****************************************************************************
+//
+// htonl/ntohl - Big endian/little endian byte swapping macros for 32-bit
+// values.
+//
+//*****************************************************************************
+#ifndef htonl
+    #define htonl(a)                    \
+        ((((a) >> 24) & 0x000000ff) |   \
+         (((a) >>  8) & 0x0000ff00) |   \
+         (((a) <<  8) & 0x00ff0000) |   \
+         (((a) << 24) & 0xff000000))
+#endif
+
+#ifndef ntohl
+    #define ntohl(a)    htonl((a))
+#endif
+
+//*****************************************************************************
+//
+// htons/ntohs - Big endian/little endian byte swapping macros for 16-bit
+// values.
+//
+//*****************************************************************************
+#ifndef htons
+    #define htons(a)                \
+        ((((a) >> 8) & 0x00ff) |    \
+         (((a) << 8) & 0xff00))
+#endif
+
+#ifndef ntohs
+    #define ntohs(a)    htons((a))
+#endif
+
+//*****************************************************************************
+//
+// Forward reference to the Ethernet DMA descriptor structure.
+//
+//*****************************************************************************
+typedef struct tEMACDMADescriptor tEMACDMADescriptor;
+
+//*****************************************************************************
+//
+//! A union used to describe the two overlapping fields forming the third
+//! word of the Ethernet DMA descriptor.
+//
+//*****************************************************************************
+typedef union
+{
+    //
+    //! When DMA descriptors are used in chained mode, this field is used to
+    //! provide a link to the next descriptor.
+    //
+    tEMACDMADescriptor *pLink;
+
+    //
+    //! When the DMA descriptors are unchained, this field may be used to point
+    //! to a second buffer containing data for transmission or providing
+    //! storage for a received frame.
+    //
+    void *pvBuffer2;
+}
+tEMACDES3;
+
+//*****************************************************************************
+//
+//! A structure defining a single Ethernet DMA buffer descriptor.
+//
+//*****************************************************************************
+struct tEMACDMADescriptor
+{
+    //
+    //! The first DMA descriptor word contains various control and status bits
+    //! depending upon whether the descriptor is in the transmit or receive
+    //! queue.  Bit 31 is always the ``OWN'' bit which, when set, indicates
+    //! that the hardware has control of the descriptor.
+    //
+    volatile uint32_t ui32CtrlStatus;
+
+    //
+    //! The second descriptor word contains information on the size of the
+    //! buffer or buffers attached to the descriptor and various additional
+    //! control bits.
+    //
+    volatile uint32_t ui32Count;
+
+    //
+    //! The third descriptor word contains a pointer to the buffer containing
+    //! data to transmit or into which received data should be written.  This
+    //! pointer must refer to a buffer in internal SRAM.  Pointers to flash or
+    //! EPI-connected memory may not be used and will result in the MAC
+    //! reporting a bus error.
+    //
+    void *pvBuffer1;
+
+    //
+    //! The fourth descriptor word contains either a pointer to the next
+    //! descriptor in the ring or a pointer to a second data buffer.  The
+    //! meaning of the word is controlled by the ``CHAINED'' control bit which
+    //! appears in the first word of the transmit descriptor or the second
+    //! word of the receive descriptor.
+    //!
+    tEMACDES3 DES3;
+
+    //
+    //! The fifth descriptor word is reserved for transmit descriptors but
+    //! used to report extended status in a receive descriptor.
+    //
+    volatile uint32_t ui32ExtRxStatus;
+
+    //
+    //! The sixth descriptor word is reserved for both transmit and receive
+    //! descriptors.
+    //
+    uint32_t ui32Reserved;
+
+    //
+    //! The seventh descriptor word contains the low 32 bits of the 64-bit
+    //! timestamp captured for transmitted or received data.  The value is set
+    //! only when the transmitted or received data contains the end of a
+    //! packet.  Availability of the timestamp is indicated via a status bit
+    //! in the first descriptor word.
+    //
+    volatile uint32_t ui32IEEE1588TimeLo;
+
+    //
+    //! The eighth descriptor word contains the high 32 bits of the 64-bit
+    //! timestamp captured for transmitted or received data.
+    //
+    volatile uint32_t ui32IEEE1588TimeHi;
+};
+
+//*****************************************************************************
+//
+// Fields found in the DES0 word of the transmit descriptor (ui32CtrlStatus in
+// tEMACDMADescriptor)
+//
+//*****************************************************************************
+#define DES0_TX_CTRL_OWN                    0x80000000
+#define DES0_TX_CTRL_INTERRUPT              0x40000000
+#define DES0_TX_CTRL_LAST_SEG               0x20000000
+#define DES0_TX_CTRL_FIRST_SEG              0x10000000
+
+//
+// This value indicates that the MAC should not append a CRC to transmitted
+// packets.  If used with DES0_TX_CTRL_REPLACE_CRC, the last 4 bytes of the
+// packet passed to the transmitter are replaced with a newly calculated CRC.
+// If DES0_TX_CTRL_REPLACE_CRC is not specified, it is assumed that packets
+// transmitted have valid CRCs precomputed and included in the frame data.
+//
+// If DES0_TX_CTRL_DISABLE_CRC is not specified, the MAC will calculate the
+// CRC for all frames transmitted and append this value as the 4-byte FCS
+// after the last data byte in the frame.
+//
+#define DES0_TX_CTRL_DISABLE_CRC            0x08000000
+#define DES0_TX_CTRL_DISABLE_PADDING        0x04000000
+#define DES0_TX_CTRL_ENABLE_TS              0x02000000
+
+//
+// This value is only valid if used alongside DES0_TX_CTRL_DISABLE_CRC.  When
+// specified, the MAC will replace the last 4 bytes of a transmitted frame
+// with a newly calculated CRC.
+//
+#define DES0_TX_CTRL_REPLACE_CRC            0x01000000
+#define DES0_TX_CTRL_CHKSUM_M               0x00C00000
+#define DES0_TX_CTRL_NO_CHKSUM              0x00000000
+#define DES0_TX_CTRL_IP_HDR_CHKSUM          0x00400000
+#define DES0_TX_CTRL_IP_HDR_PAY_CHKSUM      0x00800000
+#define DES0_TX_CTRL_IP_ALL_CKHSUMS         0x00C00000
+#define DES0_TX_CTRL_END_OF_RING            0x00200000
+#define DES0_TX_CTRL_CHAINED                0x00100000
+#define DES0_TX_CTRL_VLAN_M                 0x000C0000
+#define DES0_TX_CTRL_VLAN_NONE              0x00000000
+#define DES0_TX_CTRL_VLAN_REMOVE            0x00040000
+#define DES0_TX_CTRL_VLAN_INSERT            0x00080000
+#define DES0_TX_CTRL_VLAN_REPLACE           0x000C0000
+#define DES0_TX_STAT_TS_CAPTURED            0x00020000
+#define DES0_TX_STAT_IPH_ERR                0x00010000
+#define DES0_TX_STAT_ERR                    0x00008000
+#define DES0_TX_STAT_JABBER_TO              0x00004000
+#define DES0_TX_STAT_FLUSHED                0x00002000
+#define DES0_TX_STAT_PAYLOAD_ERR            0x00001000
+#define DES0_TX_STAT_CARRIER_LOST           0x00000800
+#define DES0_TX_STAT_NO_CARRIER             0x00000400
+#define DES0_TX_STAT_TX_L_COLLISION         0x00000200
+#define DES0_TX_STAT_E_COLLISION            0x00000100
+#define DES0_TX_STAT_VLAN_FRAME             0x00000080
+#define DES0_TX_STAT_COL_COUNT_M            0x00000078
+#define DES0_TX_STAT_COL_COUNT_S            3
+#define DES0_TX_STAT_E_DEFERRAL             0x00000004
+#define DES0_TX_STAT_UNDERFLOW              0x00000002
+#define DES0_TX_STAT_DEFERRED               0x00000001
+
+//*****************************************************************************
+//
+// Fields found in the DES1 word of the transmit descriptor (ui32Count in
+// tEMACDMADescriptor)
+//
+//*****************************************************************************
+#define DES1_TX_CTRL_SADDR_MAC1             0x80000000
+#define DES1_TX_CTRL_SADDR_M                0x60000000
+#define DES1_TX_CTRL_SADDR_NONE             0x00000000
+#define DES1_TX_CTRL_SADDR_INSERT           0x20000000
+#define DES1_TX_CTRL_SADDR_REPLACE          0x40000000
+#define DES1_TX_CTRL_BUFF2_SIZE_M           0x1FFF0000
+#define DES1_TX_CTRL_BUFF1_SIZE_M           0x00001FFF
+#define DES1_TX_CTRL_BUFF2_SIZE_S           16
+#define DES1_TX_CTRL_BUFF1_SIZE_S           0
+
+//*****************************************************************************
+//
+// Fields found in the DES0 word of the receive descriptor (ui32CtrlStatus in
+// tEMACDMADescriptor)
+//
+//*****************************************************************************
+#define DES0_RX_CTRL_OWN                    0x80000000
+#define DES0_RX_STAT_DEST_ADDR_FAIL         0x40000000
+#define DES0_RX_STAT_FRAME_LENGTH_M         0x3FFF0000
+#define DES0_RX_STAT_FRAME_LENGTH_S         16
+#define DES0_RX_STAT_ERR                    0x00008000
+#define DES0_RX_STAT_DESCRIPTOR_ERR         0x00004000
+#define DES0_RX_STAT_SRC_ADDR_FAIL          0x00002000
+#define DES0_RX_STAT_LENGTH_ERR             0x00001000
+#define DES0_RX_STAT_OVERFLOW               0x00000800
+#define DES0_RX_STAT_VLAN_TAG               0x00000400
+#define DES0_RX_STAT_FIRST_DESC             0x00000200
+#define DES0_RX_STAT_LAST_DESC              0x00000100
+#define DES0_RX_STAT_TS_AVAILABLE           0x00000080
+#define DES0_RX_STAT_RX_L_COLLISION         0x00000040
+#define DES0_RX_STAT_FRAME_TYPE             0x00000020
+#define DES0_RX_STAT_WDOG_TIMEOUT           0x00000010
+#define DES0_RX_STAT_RX_ERR                 0x00000008
+#define DES0_RX_STAT_DRIBBLE_ERR            0x00000004
+#define DES0_RX_STAT_CRC_ERR                0x00000002
+#define DES0_RX_STAT_MAC_ADDR               0x00000001
+#define DES0_RX_STAT_EXT_AVAILABLE          0x00000001
+
+//*****************************************************************************
+//
+// Fields found in the DES1 word of the receive descriptor (ui32Count in
+// tEMACDMADescriptor)
+//
+//*****************************************************************************
+#define DES1_RX_CTRL_DISABLE_INT            0x80000000
+#define DES1_RX_CTRL_BUFF2_SIZE_M           0x1FFF0000
+#define DES1_RX_CTRL_BUFF2_SIZE_S           16
+#define DES1_RX_CTRL_END_OF_RING            0x00008000
+#define DES1_RX_CTRL_CHAINED                0x00004000
+#define DES1_RX_CTRL_BUFF1_SIZE_M           0x00001FFF
+#define DES1_RX_CTRL_BUFF1_SIZE_S           0
+
+//*****************************************************************************
+//
+// Fields found in the DES4 word of the receive descriptor (ui32ExtRxStatus in
+// tEMACDMADescriptor)
+//
+//*****************************************************************************
+#define DES4_RX_STAT_TS_DROPPED             0x00004000
+#define DES4_RX_STAT_PTP_VERSION2           0x00002000
+#define DES4_RX_STAT_PTP_TYPE_ETH           0x00001000
+#define DES4_RX_STAT_PTP_TYPE_UDP           0x00000000
+#define DES4_RX_STAT_PTP_MT_M               0x00000F00
+#define DES4_RX_STAT_PTP_MT_NONE            0x00000000
+#define DES4_RX_STAT_PTP_MT_SYNC            0x00000100
+#define DES4_RX_STAT_PTP_MT_FOLLOW_UP       0x00000200
+#define DES4_RX_STAT_PTP_MT_DELAY_REQ       0x00000300
+#define DES4_RX_STAT_PTP_MT_DELAY_RESP      0x00000400
+#define DES4_RX_STAT_PTP_MT_PDELAY_REQ      0x00000500
+#define DES4_RX_STAT_PTP_MT_PDELAY_RESP     0x00000600
+#define DES4_RX_STAT_PTP_MT_PDELAY_RFU      0x00000700
+#define DES4_RX_STAT_PTP_MT_ANNOUNCE        0x00000800
+#define DES4_RX_STAT_PTP_MT_SIGNALLING      0x00000A00
+#define DES4_RX_STAT_PTP_MT_RESERVED        0x00000F00
+#define DES4_RX_STAT_IPV6                   0x00000080
+#define DES4_RX_STAT_IPV4                   0x00000040
+#define DES4_RX_STAT_IP_CHK_BYPASSED        0x00000020
+#define DES4_RX_STAT_IP_PAYLOAD_ERR         0x00000010
+#define DES4_RX_STAT_IP_HEADER_ERR          0x00000008
+#define DES4_RX_STAT_PAYLOAD_M              0x00000007
+#define DES4_RX_STAT_PAYLOAD_UNKNOWN        0x00000000
+#define DES4_RX_STAT_PAYLOAD_UDP            0x00000001
+#define DES4_RX_STAT_PAYLOAD_TCP            0x00000002
+#define DES4_RX_STAT_PAYLOAD_ICMP           0x00000003
+
+//*****************************************************************************
+//
+// Values used in the ui32BusConfig parameter to EMACInit().
+//
+//***************************************************************************
+#define EMAC_BCONFIG_DMA_PRIO_WEIGHT_M      0x30000000
+#define EMAC_BCONFIG_DMA_PRIO_WEIGHT_1      0x00000000
+#define EMAC_BCONFIG_DMA_PRIO_WEIGHT_2      0x10000000
+#define EMAC_BCONFIG_DMA_PRIO_WEIGHT_3      0x20000000
+#define EMAC_BCONFIG_DMA_PRIO_WEIGHT_4      0x30000000
+#define EMAC_BCONFIG_TX_PRIORITY            0x08000000
+#define EMAC_BCONFIG_ADDR_ALIGNED           0x02000000
+#define EMAC_BCONFIG_PRIORITY_M             0x0000C000
+#define EMAC_BCONFIG_PRIORITY_1_1           (0 << 14)
+#define EMAC_BCONFIG_PRIORITY_2_1           (1 << 14)
+#define EMAC_BCONFIG_PRIORITY_3_1           (2 << 14)
+#define EMAC_BCONFIG_PRIORITY_4_1           (3 << 14)
+#define EMAC_BCONFIG_PRIORITY_FIXED         0x00000002
+#define EMAC_BCONFIG_FIXED_BURST            0x00010000
+#define EMAC_BCONFIG_MIXED_BURST            0x04000000
+
+//*****************************************************************************
+//
+// Options used in the ui32Config parameter to EMACPHYConfigSet().
+//
+//*****************************************************************************
+#define EMAC_PHY_TYPE_INTERNAL              0x00000000
+#define EMAC_PHY_TYPE_EXTERNAL_MII          0x80000000
+#define EMAC_PHY_TYPE_EXTERNAL_RMII         0xC0000000
+#define EMAC_PHY_INT_NIB_TXERR_DET_DIS      0x01000000
+#define EMAC_PHY_INT_RX_ER_DURING_IDLE      0x00800000
+#define EMAC_PHY_INT_ISOLATE_MII_LLOSS      0x00400000
+#define EMAC_PHY_INT_LINK_LOSS_RECOVERY     0x00200000
+#define EMAC_PHY_INT_TDRRUN                 0x00100000
+#define EMAC_PHY_INT_LD_ON_RX_ERR_COUNT     0x00040000
+#define EMAC_PHY_INT_LD_ON_MTL3_ERR_COUNT   0x00020000
+#define EMAC_PHY_INT_LD_ON_LOW_SNR          0x00010000
+#define EMAC_PHY_INT_LD_ON_SIGNAL_ENERGY    0x00008000
+#define EMAC_PHY_INT_POLARITY_SWAP          0x00004000
+#define EMAC_PHY_INT_MDI_SWAP               0x00002000
+#define EMAC_PHY_INT_ROBUST_MDIX            0x00001000
+#define EMAC_PHY_INT_FAST_MDIX              0x00000800
+#define EMAC_PHY_INT_MDIX_EN                0x00000400
+#define EMAC_PHY_INT_FAST_RXDV_DETECT       0x00000200
+#define EMAC_PHY_INT_FAST_L_UP_DETECT       0x00000100
+#define EMAC_PHY_INT_EXT_FULL_DUPLEX        0x00000080
+#define EMAC_PHY_INT_FAST_AN_80_50_35       0x00000040
+#define EMAC_PHY_INT_FAST_AN_120_75_50      0x00000050
+#define EMAC_PHY_INT_FAST_AN_140_150_100    0x00000060
+#define EMAC_PHY_FORCE_10B_T_HALF_DUPLEX    0x00000000
+#define EMAC_PHY_FORCE_10B_T_FULL_DUPLEX    0x00000002
+#define EMAC_PHY_FORCE_100B_T_HALF_DUPLEX   0x00000004
+#define EMAC_PHY_FORCE_100B_T_FULL_DUPLEX   0x00000006
+#define EMAC_PHY_AN_10B_T_HALF_DUPLEX       0x00000008
+#define EMAC_PHY_AN_10B_T_FULL_DUPLEX       0x0000000A
+#define EMAC_PHY_AN_100B_T_HALF_DUPLEX      0x0000000C
+#define EMAC_PHY_AN_100B_T_FULL_DUPLEX      0x0000000E
+#define EMAC_PHY_INT_HOLD                   0x00000001
+
+#define EMAC_PHY_TYPE_MASK                  0xC0000000
+
+//*****************************************************************************
+//
+// Options used in the ui32Config parameter to EMACConfigSet().
+//
+//*****************************************************************************
+#define EMAC_CONFIG_USE_MACADDR1          0x40000000
+#define EMAC_CONFIG_USE_MACADDR0          0x00000000
+#define EMAC_CONFIG_SA_FROM_DESCRIPTOR    0x00000000
+#define EMAC_CONFIG_SA_INSERT             0x20000000
+#define EMAC_CONFIG_SA_REPLACE            0x30000000
+#define EMAC_CONFIG_2K_PACKETS            0x08000000
+#define EMAC_CONFIG_STRIP_CRC             0x02000000
+#define EMAC_CONFIG_JABBER_DISABLE        0x00400000
+#define EMAC_CONFIG_JUMBO_ENABLE          0x00100000
+#define EMAC_CONFIG_IF_GAP_MASK           0x000E0000
+#define EMAC_CONFIG_IF_GAP_96BITS         (0x0 << 17)
+#define EMAC_CONFIG_IF_GAP_88BITS         (0x1 << 17)
+#define EMAC_CONFIG_IF_GAP_80BITS         (0x2 << 17)
+#define EMAC_CONFIG_IF_GAP_72BITS         (0x3 << 17)
+#define EMAC_CONFIG_IF_GAP_64BITS         (0x4 << 17)
+#define EMAC_CONFIG_IF_GAP_56BITS         (0x5 << 17)
+#define EMAC_CONFIG_IF_GAP_48BITS         (0x6 << 17)
+#define EMAC_CONFIG_IF_GAP_40BITS         (0x7 << 17)
+#define EMAC_CONFIG_CS_DISABLE            0x00010000
+#define EMAC_CONFIG_100MBPS               0x00004000
+#define EMAC_CONFIG_10MBPS                0x00000000
+#define EMAC_CONFIG_RX_OWN_DISABLE        0x00002000
+#define EMAC_CONFIG_LOOPBACK              0x00001000
+#define EMAC_CONFIG_FULL_DUPLEX           0x00000800
+#define EMAC_CONFIG_HALF_DUPLEX           0x00000000
+#define EMAC_CONFIG_CHECKSUM_OFFLOAD      0x00000400
+#define EMAC_CONFIG_RETRY_DISABLE         0x00000200
+#define EMAC_CONFIG_AUTO_CRC_STRIPPING    0x00000080
+#define EMAC_CONFIG_BO_MASK               0x00000060
+#define EMAC_CONFIG_BO_LIMIT_1024         (0x0 << 5)
+#define EMAC_CONFIG_BO_LIMIT_256          (0x1 << 5)
+#define EMAC_CONFIG_BO_LIMIT_16           (0x2 << 5)
+#define EMAC_CONFIG_BO_LIMIT_2            (0x3 << 5)
+#define EMAC_CONFIG_DEFERRAL_CHK_ENABLE   0x00000010
+#define EMAC_CONFIG_PREAMBLE_MASK         0x00000003
+#define EMAC_CONFIG_7BYTE_PREAMBLE        0x00000000
+#define EMAC_CONFIG_5BYTE_PREAMBLE        0x00000001
+#define EMAC_CONFIG_3BYTE_PREAMBLE        0x00000002
+
+//*****************************************************************************
+//
+// Options used in the ui32ModeFlags parameter to EMACConfigSet().
+//
+//*****************************************************************************
+#define EMAC_MODE_KEEP_BAD_CRC            0x04000000
+#define EMAC_MODE_RX_STORE_FORWARD        0x02000000
+#define EMAC_MODE_RX_FLUSH_DISABLE        0x01000000
+#define EMAC_MODE_TX_STORE_FORWARD        0x00200000
+#define EMAC_MODE_TX_THRESHOLD_16_BYTES   (7 << 14)
+#define EMAC_MODE_TX_THRESHOLD_24_BYTES   (6 << 14)
+#define EMAC_MODE_TX_THRESHOLD_32_BYTES   (5 << 14)
+#define EMAC_MODE_TX_THRESHOLD_40_BYTES   (4 << 14)
+#define EMAC_MODE_TX_THRESHOLD_64_BYTES   (0 << 14)
+#define EMAC_MODE_TX_THRESHOLD_128_BYTES  (1 << 14)
+#define EMAC_MODE_TX_THRESHOLD_192_BYTES  (2 << 14)
+#define EMAC_MODE_TX_THRESHOLD_256_BYTES  (3 << 14)
+#define EMAC_MODE_RX_ERROR_FRAMES         0x00000080
+#define EMAC_MODE_RX_UNDERSIZED_FRAMES    0x00000040
+#define EMAC_MODE_RX_THRESHOLD_64_BYTES   (0 << 3)
+#define EMAC_MODE_RX_THRESHOLD_32_BYTES   (1 << 3)
+#define EMAC_MODE_RX_THRESHOLD_96_BYTES   (2 << 3)
+#define EMAC_MODE_RX_THRESHOLD_128_BYTES  (3 << 3)
+#define EMAC_MODE_OPERATE_2ND_FRAME       0x00000002
+
+//*****************************************************************************
+//
+// These two values may be returned by EMACConfigGet() in the *pui32Config
+// parameter.  The transmitter and receiver are, however, enabled and disabled
+// using independent functions, EMACTxEnable/Disable() and
+// EMACRxEnable/Disable().
+//
+//*****************************************************************************
+#define EMAC_CONFIG_TX_ENABLED            0x00000008
+#define EMAC_CONFIG_RX_ENABLED            0x00000004
+
+//*****************************************************************************
+//
+// These two values may be returned by EMACConfigGet() in the *pui32Mode
+// parameter. The transmit and receive DMA channels are, however, enabled and
+// disabled using independent functions, EMACTxEnable/Disable() and
+// EMACRxEnable/Disable().
+//
+//*****************************************************************************
+#define EMAC_MODE_TX_DMA_ENABLED          0x00002000
+#define EMAC_MODE_RX_DMA_ENABLED          0x00000002
+
+//*****************************************************************************
+//
+// These values may be passed to EMACFrameFilterSet() in the ui32FilterOpts
+// parameter, and are returned by EMACFrameFilterGet().
+//
+//*****************************************************************************
+#define EMAC_FRMFILTER_RX_ALL             0x80000000
+#define EMAC_FRMFILTER_VLAN               0x00010000
+#define EMAC_FRMFILTER_HASH_AND_PERFECT   0x00000400
+#define EMAC_FRMFILTER_SADDR              0x00000200
+#define EMAC_FRMFILTER_INV_SADDR          0x00000100
+#define EMAC_FRMFILTER_PASS_MASK          (0x03 << 6)
+#define EMAC_FRMFILTER_PASS_NO_CTRL       (0x00 << 6)
+#define EMAC_FRMFILTER_PASS_NO_PAUSE      (0x01 << 6)
+#define EMAC_FRMFILTER_PASS_ALL_CTRL      (0x02 << 6)
+#define EMAC_FRMFILTER_PASS_ADDR_CTRL     (0x03 << 6)
+#define EMAC_FRMFILTER_BROADCAST          0x00000020
+#define EMAC_FRMFILTER_PASS_MULTICAST     0x00000010
+#define EMAC_FRMFILTER_INV_DADDR          0x00000008
+#define EMAC_FRMFILTER_HASH_MULTICAST     0x00000004
+#define EMAC_FRMFILTER_HASH_UNICAST       0x00000002
+#define EMAC_FRMFILTER_PROMISCUOUS        0x00000001
+
+//*****************************************************************************
+//
+// Values which may be returned by EMACStatusGet().
+//
+//*****************************************************************************
+#define EMAC_STATUS_TX_NOT_EMPTY          0x01000000
+#define EMAC_STATUS_TX_WRITING_FIFO       0x00400000
+#define EMAC_STATUS_TRC_STATE_MASK        0x00300000
+#define EMAC_STATUS_TRC_STATE_IDLE        (0x00 << 20)
+#define EMAC_STATUS_TRC_STATE_READING     (0x01 << 20)
+#define EMAC_STATUS_TRC_STATE_WAITING     (0x02 << 20)
+#define EMAC_STATUS_TRC_STATE_STATUS      (0x03 << 20)
+#define EMAC_STATUS_TX_PAUSED             0x00080000
+#define EMAC_STATUS_TFC_STATE_MASK        0x00060000
+#define EMAC_STATUS_TFC_STATE_IDLE        (0x00 << 17)
+#define EMAC_STATUS_TFC_STATE_WAITING     (0x01 << 17)
+#define EMAC_STATUS_TFC_STATE_PAUSING     (0x02 << 17)
+#define EMAC_STATUS_TFC_STATE_WRITING     (0x03 << 17)
+#define EMAC_STATUS_MAC_NOT_IDLE          0x00010000
+#define EMAC_STATUS_RX_FIFO_LEVEL_MASK    0x00000300
+#define EMAC_STATUS_RX_FIFO_EMPTY         (0x00 << 8)
+#define EMAC_STATUS_RX_FIFO_BELOW         (0x01 << 8)
+#define EMAC_STATUS_RX_FIFO_ABOVE         (0x02 << 8)
+#define EMAC_STATUS_RX_FIFO_FULL          (0x03 << 8)
+#define EMAC_STATUS_RX_FIFO_STATE_MASK    0x00000060
+#define EMAC_STATUS_RX_FIFO_IDLE          (0x00 << 5)
+#define EMAC_STATUS_RX_FIFO_READING       (0x01 << 5)
+#define EMAC_STATUS_RX_FIFO_STATUS        (0x02 << 5)
+#define EMAC_STATUS_RX_FIFO_FLUSHING      (0x03 << 5)
+#define EMAC_STATUS_RWC_ACTIVE            0x00000010
+#define EMAC_STATUS_RPE_ACTIVE            0x00000001
+
+//*****************************************************************************
+//
+// Values which may be returned by EMACDMAStateGet().
+//
+//*****************************************************************************
+#define EMAC_DMA_TXSTAT_MASK              (0x07 << 20)
+#define EMAC_DMA_TXSTAT_STOPPED           (0x00 << 20)
+#define EMAC_DMA_TXSTAT_RUN_FETCH_DESC    (0x01 << 20)
+#define EMAC_DMA_TXSTAT_RUN_WAIT_STATUS   (0x02 << 20)
+#define EMAC_DMA_TXSTAT_RUN_READING       (0x03 << 20)
+#define EMAC_DMA_TXSTAT_RUN_CLOSE_DESC    (0x07 << 20)
+#define EMAC_DMA_TXSTAT_TS_WRITE          (0x04 << 20)
+#define EMAC_DMA_TXSTAT_SUSPENDED         (0x06 << 20)
+
+#define EMAC_DMA_RXSTAT_MASK              (0x07 << 17)
+#define EMAC_DMA_RXSTAT_STOPPED           (0x00 << 17)
+#define EMAC_DMA_RXSTAT_RUN_FETCH_DESC    (0x01 << 17)
+#define EMAC_DMA_RXSTAT_RUN_WAIT_PACKET   (0x03 << 17)
+#define EMAC_DMA_RXSTAT_SUSPENDED         (0x04 << 17)
+#define EMAC_DMA_RXSTAT_RUN_CLOSE_DESC    (0x05 << 17)
+#define EMAC_DMA_RXSTAT_TS_WRITE          (0x06 << 17)
+#define EMAC_DMA_RXSTAT_RUN_RECEIVING     (0x07 << 17)
+
+#define EMAC_TX_DMA_STATE(x) ((x) & EMAC_DMA_TXSTAT_MASK)
+#define EMAC_RX_DMA_STATE(x) ((x) & EMAC_DMA_RXSTAT_MASK)
+
+#define EMAC_DMA_ERROR                    0x00002000
+#define EMAC_DMA_ERR_MASK                 0x03800000
+#define EMAC_DMA_ERR_RX_DATA_WRITE        0x00000000
+#define EMAC_DMA_ERR_TX_DATA_READ         0x01800000
+#define EMAC_DMA_ERR_RX_DESC_WRITE        0x02000000
+#define EMAC_DMA_ERR_TX_DESC_WRITE        0x02800000
+#define EMAC_DMA_ERR_RX_DESC_READ         0x03000000
+#define EMAC_DMA_ERR_TX_DESC_READ         0x03800000
+
+//*****************************************************************************
+//
+// Values which may be ORed together in the ui32Config parameter passed to
+// EMACAddrFilterSet and which may be returned by EMACAddrFilterGet.
+//
+//*****************************************************************************
+#define EMAC_FILTER_ADDR_ENABLE           0x80000000
+#define EMAC_FILTER_SOURCE_ADDR           0x40000000
+#define EMAC_FILTER_MASK_BYTE_6           0x20000000
+#define EMAC_FILTER_MASK_BYTE_5           0x10000000
+#define EMAC_FILTER_MASK_BYTE_4           0x08000000
+#define EMAC_FILTER_MASK_BYTE_3           0x04000000
+#define EMAC_FILTER_MASK_BYTE_2           0x03000000
+#define EMAC_FILTER_MASK_BYTE_1           0x01000000
+
+#define EMAC_FILTER_BYTE_MASK_M           0x3F000000
+#define EMAC_FILTER_BYTE_MASK_S           24
+
+//*****************************************************************************
+//
+// Flags passed to EMACTimestampConfigSet or returned from
+// EMACTimestampConfigGet.
+//
+//*****************************************************************************
+#define EMAC_TS_MAC_FILTER_ENABLE         0x00040000
+#define EMAC_TS_MAC_FILTER_DISABLE        0x00000000
+#define EMAC_TS_SYNC_FOLLOW_DREQ_DRESP    0x00000000
+#define EMAC_TS_SYNC_ONLY                 0x00004000
+#define EMAC_TS_DELAYREQ_ONLY             0x0000C000
+#define EMAC_TS_ALL                       0x00010000
+#define EMAC_TS_SYNC_PDREQ_PDRESP         0x00014000
+#define EMAC_TS_DREQ_PDREQ_PDRESP         0x0001C000
+#define EMAC_TS_SYNC_DELAYREQ             0x00020000
+#define EMAC_TS_PDREQ_PDRESP              0x00030000
+#define EMAC_TS_PROCESS_IPV4_UDP          0x00002000
+#define EMAC_TS_PROCESS_IPV6_UDP          0x00001000
+#define EMAC_TS_PROCESS_ETHERNET          0x00000800
+#define EMAC_TS_PTP_VERSION_2             0x00000400
+#define EMAC_TS_PTP_VERSION_1             0x00000000
+#define EMAC_TS_DIGITAL_ROLLOVER          0x00000200
+#define EMAC_TS_BINARY_ROLLOVER           0x00000000
+#define EMAC_TS_ALL_RX_FRAMES             0x00000100
+#define EMAC_TS_UPDATE_FINE               0x00000002
+#define EMAC_TS_UPDATE_COARSE             0x00000000
+
+//*****************************************************************************
+//
+// Some register bit definitions relating to external PHYs.  These are not
+// relevant (or available) when using the internal Ethernet PHY but having
+// the definitions here helps when using an external MII or RMII PHY.
+//
+//*****************************************************************************
+#define EPHY_SCR_INPOL_EXT                0x00000008
+#define EPHY_SCR_TINT_EXT                 0x00000004
+#define EPHY_SCR_INTEN_EXT                0x00000002
+#define EPHY_SCR_INTOE_EXT                0x00000001
+
+//*****************************************************************************
+//
+// These interrupt sources may be passed to EMACIntEnable() and
+// EMACIntDisable() to enable or disable various Ethernet interrupt sources.
+//
+//*****************************************************************************
+//
+// Note that interrupts relating to timestamping and power management must be
+// independently enabled via calls to functions EMACTimestampTargetIntEnable
+// and EMACPowerManagementControlSet.
+//
+// EMAC_INT_PHY is deliberately set to a reserved bit in the MAC interrupt
+// register.  We handle the fact that the PHY interrupt is controlled via an
+// independent register within the code.  If we didn't do this, the app would
+// have to enable the MAC interrupt then enable the PHY interrupt via a
+// different API (since they share a vector).  To further complicate matters,
+// they would have to call EMACIntStatus() and then, if it returned 0,
+// read the PHY interrupt status to see that it fired.  This would be nasty
+// and unfriendly so we hide it inside DriverLib.
+//
+//*****************************************************************************
+#define EMAC_INT_PHY                      0x80000000
+#define EMAC_INT_EARLY_RECEIVE            0x00004000
+#define EMAC_INT_BUS_ERROR                0x00002000
+#define EMAC_INT_EARLY_TRANSMIT           0x00000400
+#define EMAC_INT_RX_WATCHDOG              0x00000200
+#define EMAC_INT_RX_STOPPED               0x00000100
+#define EMAC_INT_RX_NO_BUFFER             0x00000080
+#define EMAC_INT_RECEIVE                  0x00000040
+#define EMAC_INT_TX_UNDERFLOW             0x00000020
+#define EMAC_INT_RX_OVERFLOW              0x00000010
+#define EMAC_INT_TX_JABBER                0x00000008
+#define EMAC_INT_TX_NO_BUFFER             0x00000004
+#define EMAC_INT_TX_STOPPED               0x00000002
+#define EMAC_INT_TRANSMIT                 0x00000001
+
+//
+// These interrupt sources are summary indicators.  They are readable
+// using EMACIntStatus() and must be cleared using EMACIntClear().  They
+// may be enabled or disabled independently of the group of interrupts that
+// they are derived from but offer merely a simple way to be informed of a
+// normal or abnormal condition requiring software attention.
+//
+// EMAC_INT_NORMAL_INT is the logical OR of the masked state of
+// EMAC_INT_TRANSMIT | EMAC_INT_RECEIVE | EMAC_INT_TX_NO_BUFFER |
+// EMAC_INT_EARLY_RECEIVE.
+//
+// EMAC_INT_ABNORMAL_INT is the logical OR of the masked state of
+// EMAC_INT_TX_STOPPED | EMAC_INT_TX_JABBER | EMAC_INT_RX_OVERFLOW |
+// EMAC_INT_TX_UNDERFLOW | EMAC_INT_RX_NO_BUFFER | EMAC_INT_RX_STOPPED |
+// EMAC_INT_RX_WATCHDOG | EMAC_INT_EARLY_TRANSMIT | EMAC_INT_BUS_ERROR.
+//
+#define EMAC_INT_NORMAL_INT               0x00010000
+#define EMAC_INT_ABNORMAL_INT             0x00008000
+
+//
+// This interrupt source is readable using EMACIntStatus but must
+// be cleared by calling the EMACEEEStatus().
+//
+#define EMAC_INT_LPI                      0x40000000
+
+//
+// This interrupt source is readable using EMACIntStatus but must
+// be cleared by calling the EMACTimestampIntStatus().
+//
+#define EMAC_INT_TIMESTAMP                0x20000000
+
+//
+// Interrupt sources which may be returned from EMACTimestampIntStatus().
+//
+#define EMAC_TS_INT_TARGET_REACHED        0x00000002
+#define EMAC_TS_INT_TS_SEC_OVERFLOW       0x00000001
+
+//
+// This interrupt source is readable using EMACIntStatus but must
+// be cleared by calling EMACPowerManagementStatusGet().
+//
+#define EMAC_INT_POWER_MGMNT              0x10000000
+
+//*****************************************************************************
+//
+// Configuration flags that may be passed in the ui32FreqConfig parameter to
+// EMACTimestampPPSSimpleModeSet().
+//
+//*****************************************************************************
+#define EMAC_PPS_SINGLE_PULSE             0x00000000
+#define EMAC_PPS_1HZ                      0x00000001
+#define EMAC_PPS_2HZ                      0x00000002
+#define EMAC_PPS_4HZ                      0x00000003
+#define EMAC_PPS_8HZ                      0x00000004
+#define EMAC_PPS_16HZ                     0x00000005
+#define EMAC_PPS_32HZ                     0x00000006
+#define EMAC_PPS_64HZ                     0x00000007
+#define EMAC_PPS_128HZ                    0x00000008
+#define EMAC_PPS_256HZ                    0x00000009
+#define EMAC_PPS_512HZ                    0x0000000A
+#define EMAC_PPS_1024HZ                   0x0000000B
+#define EMAC_PPS_2048HZ                   0x0000000C
+#define EMAC_PPS_4096HZ                   0x0000000D
+#define EMAC_PPS_8192HZ                   0x0000000E
+#define EMAC_PPS_16384HZ                  0x0000000F
+#define EMAC_PPS_32768HZ                  0x00000010
+
+//*****************************************************************************
+//
+// Configuration flags that may be passed in the ui32Config parameter to
+// EMACTimestampPPSCommandModeSet().
+//
+//*****************************************************************************
+#define EMAC_PPS_TARGET_INT               0x00000000
+#define EMAC_PPS_TARGET_PPS               0x00000060
+#define EMAC_PPS_TARGET_BOTH              0x00000040
+
+//*****************************************************************************
+//
+// Commands which may be passed to EMACTimestampPPSCmd.
+//
+//*****************************************************************************
+#define EMAC_PPS_COMMAND_NONE             0x00
+#define EMAC_PPS_COMMAND_START_SINGLE     0x01
+#define EMAC_PPS_COMMAND_START_TRAIN      0x02
+#define EMAC_PPS_COMMAND_CANCEL_START     0x03
+#define EMAC_PPS_COMMAND_STOP_AT_TIME     0x04
+#define EMAC_PPS_COMMAND_STOP_NOW         0x05
+#define EMAC_PPS_COMMAND_CANCEL_STOP      0x06
+
+//*****************************************************************************
+//
+// Values which may be passed to EMACVLANRxConfigSet in the ui32Config
+// parameter and which may be returned from EMACVLANRxConfigGet.
+//
+//*****************************************************************************
+#define EMAC_VLAN_RX_HASH_ENABLE          0x00080000
+#define EMAC_VLAN_RX_HASH_DISABLE         0x00000000
+#define EMAC_VLAN_RX_SVLAN_ENABLE         0x00040000
+#define EMAC_VLAN_RX_SVLAN_DISABLE        0x00000000
+#define EMAC_VLAN_RX_NORMAL_MATCH         0x00000000
+#define EMAC_VLAN_RX_INVERSE_MATCH        0x00020000
+#define EMAC_VLAN_RX_12BIT_TAG            0x00010000
+#define EMAC_VLAN_RX_16BIT_TAG            0x00000000
+
+//*****************************************************************************
+//
+// Values which may be passed to EMACVLANTxConfigSet in the ui32Config
+// parameter and which may be returned from EMACVLANTxConfigGet.
+//
+//*****************************************************************************
+#define EMAC_VLAN_TX_CVLAN                0x00000000
+#define EMAC_VLAN_TX_SVLAN                0x00080000
+#define EMAC_VLAN_TX_USE_VLC              0x00040000
+#define EMAC_VLAN_TX_VLC_NONE             0x00000000
+#define EMAC_VLAN_TX_VLC_DELETE           0x00010000
+#define EMAC_VLAN_TX_VLC_INSERT           0x00020000
+#define EMAC_VLAN_TX_VLC_REPLACE          0x00030000
+
+#define EMAC_VLAN_TX_VLC_MASK             0x00030000
+
+#define EMAC_RWU_FILTER_ENABLE            1
+#define EMAC_RWU_FILTER_DISABLE           0
+#define EMAC_RWU_FILTER_MULTICAST         8
+#define EMAC_RWU_FILTER_UNICAST           0
+
+//*****************************************************************************
+//
+// The following structure fields must be packed.
+//
+//*****************************************************************************
+#ifdef ewarm
+#pragma pack(1)
+#endif
+
+//*****************************************************************************
+//
+//! This structure defines up to 4 filters that can be used to define specific
+//! frames which will cause the MAC to wake up from sleep mode.
+//
+//*****************************************************************************
+typedef struct
+{
+    //
+    //! A byte mask for each filter defining which bytes from a sequence of
+    //! 31 (bit 31 must be clear in each mask) are used to filter incoming
+    //! packets. A 1 indicates that the relevant byte is used to update the
+    //! CRC16 for the filter, a 0 indicates that the byte is ignored.
+    //
+    uint32_t pui32ByteMask[4];
+
+    //
+    //! Defines whether each filter is enabled and, if so, whether it filters
+    //! multicast or unicast frames.  Valid values are one of
+    //! EMAC_RWU_FILTER_ENABLE or EMAC_RWU_FILTER_DISABLE ORed with one of
+    //! EMAC_RWU_FILTER_UNICAST or EMAC_RWU_FILTER_MULTICAST.
+    //
+    uint8_t pui8Command[4];
+
+    //
+    //! Determines the byte offset within the frame at which the filter starts
+    //! examining bytes.  The minimum value for each offset is 12.  The first
+    //! byte of a frame is offset 0.
+    //
+    uint8_t pui8Offset[4];
+
+    //
+    //! The CRC16 value that is expected for each filter if it passes.  The
+    //! CRC is calculated using all bytes indicated by the filter's mask.
+    //
+    uint16_t pui16CRC[4];
+}
+#if defined(ccs) ||             \
+    defined(codered) ||         \
+    defined(gcc) ||             \
+    defined(rvmdk) ||           \
+    defined(__ARMCC_VERSION) || \
+    defined(sourcerygxx)
+__attribute__ ((packed)) tEMACWakeUpFrameFilter;
+#else
+tEMACWakeUpFrameFilter;
+#endif
+
+//*****************************************************************************
+//
+// Turn off structure packing again.
+//
+//*****************************************************************************
+#ifdef ewarm
+#pragma pack()
+#endif
+
+//*****************************************************************************
+//
+// Values which may be ORed together and used in the ui32Flags parameter to
+// EMACPowerManagementControlSet.  These may also returned be from a call to
+// EMACPowerManagementControlGet.
+//
+//*****************************************************************************
+#define EMAC_PMT_GLOBAL_UNICAST_ENABLE    0x00000200
+#define EMAC_PMT_WAKEUP_PACKET_ENABLE     0x00000004
+#define EMAC_PMT_MAGIC_PACKET_ENABLE      0x00000002
+#define EMAC_PMT_POWER_DOWN               0x00000001
+
+//*****************************************************************************
+//
+// Values which may be ORed together and returned from a call to
+// EMACPowerManagementStatusGet.  This call will also return
+// EMAC_PMT_POWER_DOWN if the MAC is in power-down mode.
+//
+//*****************************************************************************
+#define EMAC_PMT_WAKEUP_PACKET_RECEIVED   0x00000040
+#define EMAC_PMT_MAGIC_PACKET_RECEIVED    0x00000020
+
+//*****************************************************************************
+//
+// Close the Doxygen group.
+//! @}
+//
+//*****************************************************************************
+
+//*****************************************************************************
+//
+// Public function prototypes.
+//
+//*****************************************************************************
+extern void EMACInit(uint32_t ui32Base, uint32_t ui32SysClk,
+                     uint32_t ui32BusConfig, uint32_t ui32RxBurst,
+                     uint32_t ui32TxBurst, uint32_t ui32DescSkipSize);
+extern void EMACReset(uint32_t ui32Base);
+extern void EMACPHYConfigSet(uint32_t ui32Base, uint32_t ui32Config);
+extern void EMACConfigSet(uint32_t ui32Base, uint32_t ui32Config,
+                          uint32_t ui32ModeFlags,
+                          uint32_t ui32RxMaxFrameSize);
+extern void EMACFrameFilterSet(uint32_t ui32Base, uint32_t ui32FilterOpts);
+extern uint32_t EMACFrameFilterGet(uint32_t ui32Base);
+extern void EMACHashFilterSet(uint32_t ui32Base, uint32_t ui32HashHi,
+                              uint32_t ui32HashLo);
+extern void EMACHashFilterGet(uint32_t ui32Base, uint32_t *pui32HashHi,
+                              uint32_t *pui32HashLo);
+extern uint32_t EMACHashFilterBitCalculate(uint8_t *pui8MACAddr);
+extern void EMACTxDMAPollDemand(uint32_t ui32Base);
+extern void EMACRxDMAPollDemand(uint32_t ui32Base);
+extern void EMACRxDMADescriptorListSet(uint32_t ui32Base,
+                                       tEMACDMADescriptor *pDescriptor);
+extern tEMACDMADescriptor *EMACRxDMADescriptorListGet(uint32_t ui32Base);
+extern tEMACDMADescriptor *EMACRxDMACurrentDescriptorGet(uint32_t ui32Base);
+extern uint8_t *EMACRxDMACurrentBufferGet(uint32_t ui32Base);
+extern void EMACTxDMADescriptorListSet(uint32_t ui32Base,
+                                       tEMACDMADescriptor *pDescriptor);
+extern tEMACDMADescriptor *EMACTxDMADescriptorListGet(uint32_t ui32Base);
+extern tEMACDMADescriptor *EMACTxDMACurrentDescriptorGet(uint32_t ui32Base);
+extern uint8_t *EMACTxDMACurrentBufferGet(uint32_t ui32Base);
+extern void EMACConfigGet(uint32_t ui32Base, uint32_t *pui32Config,
+                          uint32_t *pui32Mode, uint32_t *pui32RxMaxFrameSize);
+extern void EMACAddrSet(uint32_t ui32Base, uint32_t ui32Index,
+                        const uint8_t *pui8MACAddr);
+extern void EMACAddrGet(uint32_t ui32Base, uint32_t ui32Index,
+                        uint8_t *pui8MACAddr);
+extern uint32_t EMACNumAddrGet(uint32_t ui32Base);
+extern void EMACAddrFilterSet(uint32_t ui32Base, uint32_t ui32Index,
+                              uint32_t ui32Config);
+extern uint32_t EMACAddrFilterGet(uint32_t ui32Base, uint32_t ui32Index);
+extern void EMACRxWatchdogTimerSet(uint32_t ui32Base, uint8_t ui8Timeout);
+extern uint32_t EMACStatusGet(uint32_t ui32Base);
+extern uint32_t EMACDMAStateGet(uint32_t ui32Base);
+extern void EMACTxFlush(uint32_t ui32Base);
+extern void EMACTxEnable(uint32_t ui32Base);
+extern void EMACTxDisable(uint32_t ui32Base);
+extern void EMACRxEnable(uint32_t ui32Base);
+extern void EMACRxDisable(uint32_t ui32Base);
+extern void EMACIntEnable(uint32_t ui32Base, uint32_t ui32IntFlags);
+extern void EMACIntDisable(uint32_t ui32Base, uint32_t ui32IntFlags);
+extern uint32_t EMACIntStatus(uint32_t ui32Base, bool bMasked);
+extern void EMACIntClear(uint32_t ui32Base, uint32_t ui32IntFlags);
+extern void EMACIntRegister(uint32_t ui32Base, void (*pfnHandler)(void));
+extern void EMACIntUnregister(uint32_t ui32Base);
+extern void EMACPHYWrite(uint32_t ui32Base, uint8_t ui8PhyAddr,
+                         uint8_t ui8RegAddr, uint16_t ui16Data);
+extern void EMACPHYExtendedWrite(uint32_t ui32Base, uint8_t ui8PhyAddr,
+                                  uint16_t ui16RegAddr, uint16_t ui16Data);
+extern uint16_t EMACPHYRead(uint32_t ui32Base,  uint8_t ui8PhyAddr,
+                            uint8_t ui8RegAddr);
+extern uint16_t EMACPHYExtendedRead(uint32_t ui32Base, uint8_t ui8PhyAddr,
+                                    uint16_t ui16RegAddr);
+extern void EMACPHYPowerOff(uint32_t ui32Base, uint8_t ui8PhyAddr);
+extern void EMACPHYPowerOn(uint32_t ui32Base, uint8_t ui8PhyAddr);
+extern void EMACTimestampConfigSet(uint32_t ui32Base, uint32_t ui32Config,
+                                   uint32_t ui32SubSecondInc);
+extern uint32_t EMACTimestampConfigGet(uint32_t ui32Base,
+                                       uint32_t *pui32SubSecondInc);
+extern void EMACTimestampAddendSet(uint32_t ui32Base, uint32_t ui32Seconds);
+extern void EMACTimestampEnable(uint32_t ui32Base);
+extern void EMACTimestampDisable(uint32_t ui32Base);
+extern void EMACTimestampSysTimeSet(uint32_t ui32Base, uint32_t ui32Seconds,
+                                    uint32_t ui32SubSeconds);
+extern void EMACTimestampSysTimeGet(uint32_t ui32Base, uint32_t *pui32Seconds,
+                                    uint32_t *pui32SubSeconds);
+extern void EMACTimestampSysTimeUpdate(uint32_t ui32Base, uint32_t ui32Seconds,
+                                         uint32_t ui32SubSeconds, bool bInc);
+extern void EMACTimestampTargetSet(uint32_t ui32Base, uint32_t ui32Seconds,
+                                   uint32_t ui32Nanoseconds);
+extern void EMACTimestampTargetIntEnable(uint32_t ui32Base);
+extern void EMACTimestampTargetIntDisable(uint32_t ui32Base);
+extern uint32_t EMACTimestampIntStatus(uint32_t ui32Base);
+extern void EMACTimestampPPSSimpleModeSet(uint32_t ui32Base,
+                                          uint32_t ui32FreqConfig);
+extern void EMACTimestampPPSCommandModeSet(uint32_t ui32Base,
+                                           uint32_t ui32Config);
+extern void EMACTimestampPPSCommand(uint32_t ui32Base, uint8_t ui8Cmd);
+extern void EMACTimestampPPSPeriodSet(uint32_t ui32Base, uint32_t ui32Period,
+                                      uint32_t ui32Width);
+extern void EMACVLANRxConfigSet(uint32_t ui32Base, uint16_t ui16Tag,
+                                uint32_t ui32Config);
+extern uint32_t EMACVLANRxConfigGet(uint32_t ui32Base, uint16_t *pui16Tag);
+extern void EMACVLANTxConfigSet(uint32_t ui32Base, uint16_t ui16Tag,
+                                uint32_t ui32Config);
+extern uint32_t EMACVLANTxConfigGet(uint32_t ui32Base, uint16_t *pui16Tag);
+extern uint32_t EMACVLANHashFilterBitCalculate(uint16_t ui16Tag);
+extern void EMACVLANHashFilterSet(uint32_t ui32Base, uint32_t ui32Hash);
+extern uint32_t EMACVLANHashFilterGet(uint32_t ui32Base);
+extern void EMACRemoteWakeUpFrameFilterSet(uint32_t ui32Base,
+                                       const tEMACWakeUpFrameFilter *pFilter);
+extern void EMACRemoteWakeUpFrameFilterGet(uint32_t ui32Base,
+                                             tEMACWakeUpFrameFilter *pFilter);
+extern void EMACPowerManagementControlSet(uint32_t ui32Base,
+                                          uint32_t ui32Flags);
+extern uint32_t EMACPowerManagementControlGet(uint32_t ui32Base);
+extern uint32_t EMACPowerManagementStatusGet(uint32_t ui32Base);
+extern void EMACWoLEnter(uint32_t ui32Base);
+extern void EMACLPIConfig(uint32_t ui32Base, bool bLPIConfig,
+                          uint16_t ui16LPILSTimer, uint16_t ui16LPITWTimer);
+extern void EMACLPIEnter(uint32_t ui32Base);
+extern uint16_t EMACLPIStatus(uint32_t ui32Base);
+extern void EMACLPILinkSet(uint32_t ui32Base);
+extern void EMACLPILinkClear(uint32_t ui32Base);
+extern void EMACPHYMMDWrite(uint32_t ui32Base, uint8_t ui8PhyAddr,
+                            uint16_t ui16RegAddr, uint16_t ui16Data);
+extern uint16_t EMACPHYMMDRead(uint32_t ui32Base, uint8_t ui8PhyAddr,
+                               uint16_t ui16RegAddr);
+//*****************************************************************************
+//
+// Mark the end of the C bindings section for C++ compilers.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __DRIVERLIB_EMAC_H__

+ 762 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/epi.h

@@ -0,0 +1,762 @@
+//*****************************************************************************
+//
+// epi.h - Prototypes and macros for the EPI module.
+//
+// Copyright (c) 2008-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Peripheral Driver Library.
+//
+//*****************************************************************************
+
+#ifndef __DRIVERLIB_EPI_H__
+#define __DRIVERLIB_EPI_H__
+
+//*****************************************************************************
+//
+// If building with a C++ compiler, make all of the definitions in this header
+// have a C binding.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+//*****************************************************************************
+//
+// Values that can be passed to EPIModeSet()
+//
+//*****************************************************************************
+#define EPI_MODE_GENERAL        0x00000010
+#define EPI_MODE_SDRAM          0x00000011
+#define EPI_MODE_HB8            0x00000012
+#define EPI_MODE_HB16           0x00000013
+#define EPI_MODE_DISABLE        0x00000000
+
+//*****************************************************************************
+//
+// Values that can be passed to EPIConfigSDRAMSet()
+//
+//*****************************************************************************
+#define EPI_SDRAM_CORE_FREQ_0_15                                              \
+                                0x00000000
+#define EPI_SDRAM_CORE_FREQ_15_30                                             \
+                                0x40000000
+#define EPI_SDRAM_CORE_FREQ_30_50                                             \
+                                0x80000000
+#define EPI_SDRAM_CORE_FREQ_50_100                                            \
+                                0xC0000000
+#define EPI_SDRAM_LOW_POWER     0x00000200
+#define EPI_SDRAM_FULL_POWER    0x00000000
+#define EPI_SDRAM_SIZE_64MBIT   0x00000000
+#define EPI_SDRAM_SIZE_128MBIT  0x00000001
+#define EPI_SDRAM_SIZE_256MBIT  0x00000002
+#define EPI_SDRAM_SIZE_512MBIT  0x00000003
+
+//*****************************************************************************
+//
+// Values that can be passed to EPIConfigGPModeSet()
+//
+//*****************************************************************************
+#define EPI_GPMODE_CLKPIN       0x80000000
+#define EPI_GPMODE_CLKGATE      0x40000000
+#define EPI_GPMODE_FRAME50      0x04000000
+#define EPI_GPMODE_WRITE2CYCLE  0x00080000
+#define EPI_GPMODE_ASIZE_NONE   0x00000000
+#define EPI_GPMODE_ASIZE_4      0x00000010
+#define EPI_GPMODE_ASIZE_12     0x00000020
+#define EPI_GPMODE_ASIZE_20     0x00000030
+#define EPI_GPMODE_DSIZE_8      0x00000000
+#define EPI_GPMODE_DSIZE_16     0x00000001
+#define EPI_GPMODE_DSIZE_24     0x00000002
+#define EPI_GPMODE_DSIZE_32     0x00000003
+
+//*****************************************************************************
+//
+// Values that can be passed to EPIConfigHB8ModeSet()
+//
+//*****************************************************************************
+#define EPI_HB8_USE_TXEMPTY     0x00800000
+#define EPI_HB8_USE_RXFULL      0x00400000
+#define EPI_HB8_WRHIGH          0x00200000
+#define EPI_HB8_RDHIGH          0x00100000
+#define EPI_HB8_ALE_HIGH        0x00080000
+#define EPI_HB8_ALE_LOW         0x00000000
+#define EPI_HB8_WRWAIT_0        0x00000000
+#define EPI_HB8_WRWAIT_1        0x00000040
+#define EPI_HB8_WRWAIT_2        0x00000080
+#define EPI_HB8_WRWAIT_3        0x000000C0
+#define EPI_HB8_RDWAIT_0        0x00000000
+#define EPI_HB8_RDWAIT_1        0x00000010
+#define EPI_HB8_RDWAIT_2        0x00000020
+#define EPI_HB8_RDWAIT_3        0x00000030
+#define EPI_HB8_MODE_ADMUX      0x00000000
+#define EPI_HB8_MODE_ADDEMUX    0x00000001
+#define EPI_HB8_MODE_SRAM       0x00000002
+#define EPI_HB8_MODE_FIFO       0x00000003
+#define EPI_HB8_WORD_ACCESS     0x00000100
+#define EPI_HB8_CSCFG_ALE       0x00000000
+#define EPI_HB8_CSCFG_CS        0x00000200
+#define EPI_HB8_CSCFG_DUAL_CS   0x00000400
+#define EPI_HB8_CSCFG_ALE_DUAL_CS                                             \
+                                0x00000600
+#define EPI_HB8_CSCFG_ALE_SINGLE_CS                                           \
+                                0x00001000
+#define EPI_HB8_CSCFG_QUAD_CS   0x00001200
+#define EPI_HB8_CSCFG_ALE_QUAD_CS                                             \
+                                0x00001400
+#define EPI_HB8_CSBAUD          0x00000800
+#define EPI_HB8_CLOCK_GATE      0x80000000
+#define EPI_HB8_CLOCK_GATE_IDLE                                               \
+                                0x40000000
+#define EPI_HB8_CLOCK_INVERT    0x20000000
+#define EPI_HB8_IN_READY_EN     0x10000000
+#define EPI_HB8_IN_READY_EN_INVERT                                            \
+                                0x18000000
+#define EPI_HB8_CSCFG_MASK      0x00001600
+
+//*****************************************************************************
+//
+// Values that can be passed to EPIConfigHB16ModeSet()
+//
+//*****************************************************************************
+#define EPI_HB16_USE_TXEMPTY    0x00800000
+#define EPI_HB16_USE_RXFULL     0x00400000
+#define EPI_HB16_WRHIGH         0x00200000
+#define EPI_HB16_RDHIGH         0x00100000
+#define EPI_HB16_WRWAIT_0       0x00000000
+#define EPI_HB16_WRWAIT_1       0x00000040
+#define EPI_HB16_WRWAIT_2       0x00000080
+#define EPI_HB16_WRWAIT_3       0x000000C0
+#define EPI_HB16_RDWAIT_0       0x00000000
+#define EPI_HB16_RDWAIT_1       0x00000010
+#define EPI_HB16_RDWAIT_2       0x00000020
+#define EPI_HB16_RDWAIT_3       0x00000030
+#define EPI_HB16_MODE_ADMUX     0x00000000
+#define EPI_HB16_MODE_ADDEMUX   0x00000001
+#define EPI_HB16_MODE_SRAM      0x00000002
+#define EPI_HB16_MODE_FIFO      0x00000003
+#define EPI_HB16_BSEL           0x00000004
+#define EPI_HB16_WORD_ACCESS    0x00000100
+#define EPI_HB16_CSCFG_ALE      0x00000000
+#define EPI_HB16_CSCFG_CS       0x00000200
+#define EPI_HB16_CSCFG_DUAL_CS  0x00000400
+#define EPI_HB16_CSCFG_ALE_DUAL_CS                                            \
+                                0x00000600
+#define EPI_HB16_CSCFG_ALE_SINGLE_CS                                          \
+                                0x00001000
+#define EPI_HB16_CSCFG_QUAD_CS  0x00001200
+#define EPI_HB16_CSCFG_ALE_QUAD_CS                                            \
+                                0x00001400
+#define EPI_HB16_CLOCK_GATE     0x80000000
+#define EPI_HB16_CLOCK_GATE_IDLE                                              \
+                                0x40000000
+#define EPI_HB16_CLOCK_INVERT   0x20000000
+#define EPI_HB16_IN_READY_EN    0x10000000
+#define EPI_HB16_IN_READY_EN_INVERTED                                         \
+                                0x18000000
+#define EPI_HB16_ALE_HIGH       0x00080000
+#define EPI_HB16_ALE_LOW        0x00000000
+#define EPI_HB16_BURST_TRAFFIC  0x00010000
+#define EPI_HB16_CSBAUD         0x00000800
+#define EPI_HB16_CSCFG_MASK     0x00001600
+
+//*****************************************************************************
+//
+// Values that can be passed to EPIConfigHB8TimingSet().
+//
+//*****************************************************************************
+#define EPI_HB8_IN_READY_DELAY_1                                              \
+                                0x01000000
+#define EPI_HB8_IN_READY_DELAY_2                                              \
+                                0x02000000
+#define EPI_HB8_IN_READY_DELAY_3                                              \
+                                0x03000000
+#define EPI_HB8_CAP_WIDTH_1     0x00001000
+#define EPI_HB8_CAP_WIDTH_2     0x00002000
+#define EPI_HB8_WRWAIT_MINUS_DISABLE                                          \
+                                0x00000000
+#define EPI_HB8_WRWAIT_MINUS_ENABLE                                           \
+                                0x00000010
+#define EPI_HB8_RDWAIT_MINUS_DISABLE                                          \
+                                0x00000000
+#define EPI_HB8_RDWAIT_MINUS_ENABLE                                           \
+                                0x00000001
+
+//*****************************************************************************
+//
+// Values that can be passed to EPIConfigHB16TimingSet().
+//
+//*****************************************************************************
+#define EPI_HB16_IN_READY_DELAY_1                                             \
+                                0x01000000
+#define EPI_HB16_IN_READY_DELAY_2                                             \
+                                0x02000000
+#define EPI_HB16_IN_READY_DELAY_3                                             \
+                                0x03000000
+#define EPI_HB16_PSRAM_NO_LIMIT 0x00000000
+#define EPI_HB16_PSRAM_128      0x00010000
+#define EPI_HB16_PSRAM_256      0x00020000
+#define EPI_HB16_PSRAM_512      0x00030000
+#define EPI_HB16_PSRAM_1024     0x00040000
+#define EPI_HB16_PSRAM_2048     0x00050000
+#define EPI_HB16_PSRAM_4096     0x00060000
+#define EPI_HB16_PSRAM_8192     0x00070000
+#define EPI_HB16_CAP_WIDTH_1    0x00001000
+#define EPI_HB16_CAP_WIDTH_2    0x00002000
+#define EPI_HB16_WRWAIT_MINUS_DISABLE                                         \
+                                0x00000000
+#define EPI_HB16_WRWAIT_MINUS_ENABLE                                          \
+                                0x00000008
+#define EPI_HB16_RDWAIT_MINUS_DISABLE                                         \
+                                0x00000000
+#define EPI_HB16_RDWAIT_MINUS_ENABLE                                          \
+                                0x00000001
+
+//*****************************************************************************
+//
+// Values that can be passed to EPIAddressMapSet().
+//
+//*****************************************************************************
+#define EPI_ADDR_PER_SIZE_256B  0x00000000
+#define EPI_ADDR_PER_SIZE_64KB  0x00000040
+#define EPI_ADDR_PER_SIZE_16MB  0x00000080
+#define EPI_ADDR_PER_SIZE_256MB 0x000000C0
+#define EPI_ADDR_PER_BASE_NONE  0x00000000
+#define EPI_ADDR_PER_BASE_A     0x00000010
+#define EPI_ADDR_PER_BASE_C     0x00000020
+#define EPI_ADDR_RAM_SIZE_256B  0x00000000
+#define EPI_ADDR_RAM_SIZE_64KB  0x00000004
+#define EPI_ADDR_RAM_SIZE_16MB  0x00000008
+#define EPI_ADDR_RAM_SIZE_256MB 0x0000000C
+#define EPI_ADDR_RAM_BASE_NONE  0x00000000
+#define EPI_ADDR_RAM_BASE_6     0x00000001
+#define EPI_ADDR_RAM_BASE_8     0x00000002
+#define EPI_ADDR_QUAD_MODE      0x00000033
+#define EPI_ADDR_CODE_SIZE_256B 0x00000000
+#define EPI_ADDR_CODE_SIZE_64KB 0x00000400
+#define EPI_ADDR_CODE_SIZE_16MB 0x00000800
+#define EPI_ADDR_CODE_SIZE_256MB                                              \
+                                0x00000C00
+#define EPI_ADDR_CODE_BASE_NONE 0x00000000
+#define EPI_ADDR_CODE_BASE_1    0x00000100
+
+//*****************************************************************************
+//
+// Values that can be passed to EPINonBlockingReadConfigure()
+//
+//*****************************************************************************
+#define EPI_NBCONFIG_SIZE_8     1
+#define EPI_NBCONFIG_SIZE_16    2
+#define EPI_NBCONFIG_SIZE_32    3
+
+//*****************************************************************************
+//
+// Values that can be passed to EPIFIFOConfig()
+//
+//*****************************************************************************
+#define EPI_FIFO_CONFIG_WTFULLERR                                             \
+                                0x00020000
+#define EPI_FIFO_CONFIG_RSTALLERR                                             \
+                                0x00010000
+#define EPI_FIFO_CONFIG_TX_EMPTY                                              \
+                                0x00000000
+#define EPI_FIFO_CONFIG_TX_1_4  0x00000020
+#define EPI_FIFO_CONFIG_TX_1_2  0x00000030
+#define EPI_FIFO_CONFIG_TX_3_4  0x00000040
+#define EPI_FIFO_CONFIG_RX_1_8  0x00000001
+#define EPI_FIFO_CONFIG_RX_1_4  0x00000002
+#define EPI_FIFO_CONFIG_RX_1_2  0x00000003
+#define EPI_FIFO_CONFIG_RX_3_4  0x00000004
+#define EPI_FIFO_CONFIG_RX_7_8  0x00000005
+#define EPI_FIFO_CONFIG_RX_FULL 0x00000006
+
+//*****************************************************************************
+//
+// Values that can be passed to EPIIntEnable(), EPIIntDisable(), or returned
+// as flags from EPIIntStatus()
+//
+//*****************************************************************************
+#define EPI_INT_DMA_TX_DONE     0x00000010
+#define EPI_INT_DMA_RX_DONE     0x00000008
+#define EPI_INT_TXREQ           0x00000004
+#define EPI_INT_RXREQ           0x00000002
+#define EPI_INT_ERR             0x00000001
+
+//*****************************************************************************
+//
+// Values that can be passed to EPIIntErrorClear(), or returned as flags from
+// EPIIntErrorStatus()
+//
+//*****************************************************************************
+#define EPI_INT_ERR_DMAWRIC     0x00000010
+#define EPI_INT_ERR_DMARDIC     0x00000008
+#define EPI_INT_ERR_WTFULL      0x00000004
+#define EPI_INT_ERR_RSTALL      0x00000002
+#define EPI_INT_ERR_TIMEOUT     0x00000001
+
+#ifdef rvmdk
+//*****************************************************************************
+//
+// Keil case.
+//
+//*****************************************************************************
+inline void
+EPIWorkaroundWordWrite(uint32_t *pui32Addr, uint32_t ui32Value)
+{
+  uint32_t ui32Scratch;
+
+    __asm
+    {
+        //
+        // Add a NOP to ensure we don’t have a flash read immediately before
+        // the EPI read.
+        //
+        NOP
+
+        //
+        // Perform the write we're actually interested in.
+        //
+        STR ui32Value, [pui32Addr]
+
+        //
+        // Read from SRAM to ensure that we don't have an EPI write followed by
+        // a flash read.
+        //
+        LDR ui32Scratch, [__current_sp()]
+    }
+}
+
+inline uint32_t
+EPIWorkaroundWordRead(uint32_t *pui32Addr)
+{
+  uint32_t ui32Value, ui32Scratch;
+
+    __asm
+    {
+        //
+        // Add a NOP to ensure we don’t have a flash read immediately before
+        // the EPI read.
+        //
+        NOP
+
+        //
+        // Perform the read we're actually interested in.
+        //
+        LDR ui32Value, [pui32Addr]
+
+        //
+        // Read from SRAM to ensure that we don't have an EPI read followed by
+        // a flash read.
+        //
+        LDR ui32Scratch, [__current_sp()]
+    }
+
+    return(ui32Value);
+}
+
+inline void
+EPIWorkaroundHWordWrite(uint16_t *pui16Addr, uint16_t ui16Value)
+{
+    uint32_t ui32Scratch;
+
+    __asm
+    {
+        //
+        // Add a NOP to ensure we don’t have a flash read immediately before
+        // the EPI read.
+        //
+        NOP
+
+        //
+        // Perform the write we're actually interested in.
+        //
+        STRH ui16Value, [pui16Addr]
+
+        //
+        // Read from SRAM to ensure that we don't have an EPI write followed by
+        // a flash read.
+        //
+        LDR ui32Scratch, [__current_sp()]
+    }
+}
+
+inline uint16_t
+EPIWorkaroundHWordRead(uint16_t *pui16Addr)
+{
+    uint32_t ui32Scratch;
+    uint16_t ui16Value;
+
+    __asm
+    {
+        //
+        // Add a NOP to ensure we don’t have a flash read immediately before
+        // the EPI read.
+        //
+        NOP
+
+        //
+        // Perform the read we're actually interested in.
+        //
+        LDRH ui16Value, [pui16Addr]
+
+        //
+        // Read from SRAM to ensure that we don't have an EPI read followed by
+        // a flash read.
+        //
+        LDR ui32Scratch, [__current_sp()]
+    }
+
+    return(ui16Value);
+}
+
+inline void
+EPIWorkaroundByteWrite(uint8_t *pui8Addr, uint8_t ui8Value)
+{
+  uint32_t ui32Scratch;
+
+    __asm
+    {
+        //
+        // Add a NOP to ensure we don’t have a flash read immediately before
+        // the EPI read.
+        //
+        NOP
+
+        //
+        // Perform the write we're actually interested in.
+        //
+        STRB ui8Value, [pui8Addr]
+
+        //
+        // Read from SRAM to ensure that we don't have an EPI write followed by
+        // a flash read.
+        //
+        LDR ui32Scratch, [__current_sp()]
+    }
+}
+
+inline uint8_t
+EPIWorkaroundByteRead(uint8_t *pui8Addr)
+{
+    uint32_t ui32Scratch;
+    uint8_t ui8Value;
+
+    __asm
+    {
+        //
+        // Add a NOP to ensure we don’t have a flash read immediately before
+        // the EPI read.
+        //
+        NOP
+
+        //
+        // Perform the read we're actually interested in.
+        //
+        LDRB ui8Value, [pui8Addr]
+
+        //
+        // Read from SRAM to ensure that we don't have an EPI read followed by
+        // a flash read.
+        //
+        LDR ui32Scratch, [__current_sp()]
+    }
+
+    return(ui8Value);
+}
+#endif
+
+#ifdef ccs
+//*****************************************************************************
+//
+// Code Composer Studio versions of these functions can be found in separate
+// source file epi_workaround_ccs.s.
+//
+//*****************************************************************************
+extern void EPIWorkaroundWordWrite(uint32_t *pui32Addr, uint32_t ui32Value);
+extern uint32_t EPIWorkaroundWordRead(uint32_t *pui32Addr);
+extern void EPIWorkaroundHWordWrite(uint16_t *pui16Addr, uint16_t ui16Value);
+extern uint16_t EPIWorkaroundHWordRead(uint16_t *pui16Addr);
+extern void EPIWorkaroundByteWrite(uint8_t *pui8Addr, uint8_t ui8Value);
+extern uint8_t EPIWorkaroundByteRead(uint8_t *pui8Addr);
+
+#endif
+
+#if (defined gcc) || (defined ewarm) || (defined sourcerygxx) || \
+    (defined codered)
+//*****************************************************************************
+//
+// GCC-based toolchain and IAR case.
+//
+//*****************************************************************************
+inline void
+EPIWorkaroundWordWrite(uint32_t *pui32Addr, uint32_t ui32Value)
+{
+    volatile register uint32_t ui32Scratch;
+
+    __asm volatile (
+        //
+        // Add a NOP to ensure we don’t have a flash read immediately before
+        // the EPI read.
+        //
+        "    NOP\n"
+        "    STR %[value],[%[addr]]\n"
+        "    LDR %[scratch],[sp]\n"
+         :  [scratch] "=r" (ui32Scratch)
+         :  [addr] "r" (pui32Addr), [value] "r" (ui32Value)
+     );
+
+    //
+    // Keep the compiler from generating a warning.
+    //
+    ui32Scratch = ui32Scratch;
+}
+
+inline uint32_t
+EPIWorkaroundWordRead(uint32_t *pui32Addr)
+{
+    volatile register uint32_t ui32Data, ui32Scratch;
+
+    //
+    // ui32Scratch is not used other than to add a padding read following the
+    // "real" read.
+    //
+
+    __asm volatile(
+        //
+        // Add a NOP to ensure we don’t have a flash read immediately before
+        // the EPI read.
+        //
+        "    NOP\n"
+        "    LDR %[ret],[%[addr]]\n"
+        "    LDR %[scratch],[sp]\n"
+         : [ret] "=r" (ui32Data),
+           [scratch] "=r" (ui32Scratch)
+         : [addr] "r" (pui32Addr)
+    );
+
+
+    //
+    // Keep the compiler from generating a warning.
+    //
+    ui32Scratch = ui32Scratch;
+
+    return(ui32Data);
+}
+
+inline void
+EPIWorkaroundHWordWrite(uint16_t *pui16Addr, uint16_t ui16Value)
+{
+    volatile register uint32_t ui32Scratch;
+
+    __asm volatile (
+        //
+        // Add a NOP to ensure we don’t have a flash read immediately before
+        // the EPI read.
+        //
+        "    NOP\n"
+        "    STRH %[value],[%[addr]]\n"
+        "    LDR %[scratch],[sp]\n"
+         :  [scratch] "=r" (ui32Scratch)
+         :  [addr] "r" (pui16Addr), [value] "r" (ui16Value)
+     );
+
+
+    //
+    // Keep the compiler from generating a warning.
+    //
+    ui32Scratch = ui32Scratch;
+}
+
+inline uint16_t
+EPIWorkaroundHWordRead(uint16_t *pui16Addr)
+{
+    register uint16_t ui16Data;
+    register uint32_t ui32Scratch;
+
+    //
+    // ui32Scratch is not used other than to add a padding read following the
+    // "real" read.
+    //
+
+    __asm volatile(
+        //
+        // Add a NOP to ensure we don’t have a flash read immediately before
+        // the EPI read.
+        //
+        "    NOP\n"
+        "    LDRH %[ret],[%[addr]]\n"
+        "    LDR %[scratch],[sp]\n"
+         : [ret] "=r" (ui16Data),
+           [scratch] "=r" (ui32Scratch)
+         : [addr] "r" (pui16Addr)
+    );
+
+    //
+    // Keep the compiler from generating a warning.
+    //
+    ui32Scratch = ui32Scratch;
+
+    return(ui16Data);
+}
+
+inline void
+EPIWorkaroundByteWrite(uint8_t *pui8Addr, uint8_t ui8Value)
+{
+    volatile register uint32_t ui32Scratch;
+
+    __asm volatile (
+        //
+        // Add a NOP to ensure we don’t have a flash read immediately before
+        // the EPI read.
+        //
+        "    NOP\n"
+        "    STRB %[value],[%[addr]]\n"
+        "    LDR %[scratch],[sp]\n"
+         :  [scratch] "=r" (ui32Scratch)
+         :  [addr] "r" (pui8Addr), [value] "r" (ui8Value)
+     );
+
+    //
+    // Keep the compiler from generating a warning.
+    //
+    ui32Scratch = ui32Scratch;
+}
+
+inline uint8_t
+EPIWorkaroundByteRead(uint8_t *pui8Addr)
+{
+    register uint8_t ui8Data;
+    register uint32_t ui32Scratch;
+
+    //
+    // ui32Scratch is not used other than to add a padding read following the
+    // "real" read.
+    //
+
+    __asm volatile(
+        //
+        // Add a NOP to ensure we don’t have a flash read immediately before
+        // the EPI read.
+        //
+        "    NOP\n"
+        "    LDRB %[ret],[%[addr]]\n"
+        "    LDR %[scratch],[sp]\n"
+         : [ret] "=r" (ui8Data),
+           [scratch] "=r" (ui32Scratch)
+         : [addr] "r" (pui8Addr)
+    );
+
+    //
+    // Keep the compiler from generating a warning.
+    //
+    ui32Scratch = ui32Scratch;
+
+    return(ui8Data);
+}
+#endif
+
+//*****************************************************************************
+//
+// API Function prototypes
+//
+//*****************************************************************************
+extern void EPIModeSet(uint32_t ui32Base, uint32_t ui32Mode);
+extern void EPIDividerSet(uint32_t ui32Base, uint32_t ui32Divider);
+extern void EPIDividerCSSet(uint32_t ui32Base, uint32_t ui32CS,
+                            uint32_t ui32Divider);
+extern void EPIDMATxCount(uint32_t ui32Base, uint32_t ui32Count);
+extern void EPIConfigGPModeSet(uint32_t ui32Base, uint32_t ui32Config,
+                               uint32_t ui32FrameCount, uint32_t ui32MaxWait);
+extern void EPIConfigHB8Set(uint32_t ui32Base, uint32_t ui32Config,
+                            uint32_t ui32MaxWait);
+extern void EPIConfigHB16Set(uint32_t ui32Base, uint32_t ui32Config,
+                             uint32_t ui32MaxWait);
+extern void EPIConfigHB8CSSet(uint32_t ui32Base, uint32_t ui32CS,
+                               uint32_t ui32Config);
+extern void EPIConfigHB16CSSet(uint32_t ui32Base, uint32_t ui32CS,
+                                uint32_t ui32Config);
+extern void EPIConfigHB8TimingSet(uint32_t ui32Base, uint32_t ui32CS,
+                                  uint32_t ui32Config);
+extern void EPIConfigHB16TimingSet(uint32_t ui32Base, uint32_t ui32CS,
+                                   uint32_t ui32Config);
+extern void EPIPSRAMConfigRegSet(uint32_t ui32Base, uint32_t ui32CS,
+                                 uint32_t ui32CR);
+extern void EPIPSRAMConfigRegRead(uint32_t ui32Base, uint32_t ui32CS);
+extern bool EPIPSRAMConfigRegGetNonBlocking(uint32_t ui32Base,
+                                                uint32_t ui32CS,
+                                                uint32_t *pui32CR);
+extern uint32_t EPIPSRAMConfigRegGet(uint32_t ui32Base, uint32_t ui32CS);
+extern void EPIConfigSDRAMSet(uint32_t ui32Base, uint32_t ui32Config,
+                              uint32_t ui32Refresh);
+extern void EPIAddressMapSet(uint32_t ui32Base, uint32_t ui32Map);
+extern void EPINonBlockingReadConfigure(uint32_t ui32Base,
+                                        uint32_t ui32Channel,
+                                        uint32_t ui32DataSize,
+                                        uint32_t ui32Address);
+extern void EPINonBlockingReadStart(uint32_t ui32Base,
+                                    uint32_t ui32Channel,
+                                    uint32_t ui32Count);
+extern void EPINonBlockingReadStop(uint32_t ui32Base,
+                                   uint32_t ui32Channel);
+extern uint32_t EPINonBlockingReadCount(uint32_t ui32Base,
+                                        uint32_t ui32Channel);
+extern uint32_t EPINonBlockingReadAvail(uint32_t ui32Base);
+extern uint32_t EPINonBlockingReadGet32(uint32_t ui32Base,
+                                        uint32_t ui32Count,
+                                        uint32_t *pui32Buf);
+extern uint32_t EPINonBlockingReadGet16(uint32_t ui32Base,
+                                        uint32_t ui32Count,
+                                        uint16_t *pui16Buf);
+extern uint32_t EPINonBlockingReadGet8(uint32_t ui32Base,
+                                       uint32_t ui32Count,
+                                       uint8_t *pui8Buf);
+extern void EPIFIFOConfig(uint32_t ui32Base, uint32_t ui32Config);
+extern uint32_t EPIWriteFIFOCountGet(uint32_t ui32Base);
+extern void EPIIntEnable(uint32_t ui32Base, uint32_t ui32IntFlags);
+extern void EPIIntDisable(uint32_t ui32Base, uint32_t ui32IntFlags);
+extern uint32_t EPIIntStatus(uint32_t ui32Base, bool bMasked);
+extern uint32_t EPIIntErrorStatus(uint32_t ui32Base);
+extern void EPIIntErrorClear(uint32_t ui32Base, uint32_t ui32ErrFlags);
+extern void EPIIntRegister(uint32_t ui32Base, void (*pfnHandler)(void));
+extern void EPIIntUnregister(uint32_t ui32Base);
+
+//*****************************************************************************
+//
+// Mark the end of the C bindings section for C++ compilers.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __DRIVERLIB_EPI_H__

+ 122 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/flash.h

@@ -0,0 +1,122 @@
+//*****************************************************************************
+//
+// flash.h - Prototypes for the flash driver.
+//
+// Copyright (c) 2005-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Peripheral Driver Library.
+//
+//*****************************************************************************
+
+#ifndef __DRIVERLIB_FLASH_H__
+#define __DRIVERLIB_FLASH_H__
+
+//*****************************************************************************
+//
+// If building with a C++ compiler, make all of the definitions in this header
+// have a C binding.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+//*****************************************************************************
+//
+// Values that can be passed to FlashProtectSet(), and returned by
+// FlashProtectGet().
+//
+//*****************************************************************************
+typedef enum
+{
+    FlashReadWrite,                         // Flash can be read and written
+    FlashReadOnly,                          // Flash can only be read
+    FlashExecuteOnly                        // Flash can only be executed
+}
+tFlashProtection;
+
+//*****************************************************************************
+//
+// Values passed to FlashIntEnable(), FlashIntDisable() and FlashIntClear() and
+// returned from FlashIntStatus().
+//
+//*****************************************************************************
+#define FLASH_INT_PROGRAM     0x00000002 // Programming Interrupt Mask
+#define FLASH_INT_ACCESS      0x00000001 // Access Interrupt Mask
+#define FLASH_INT_EEPROM      0x00000004 // EEPROM Interrupt Mask
+#define FLASH_INT_VOLTAGE_ERR 0x00000200 // Voltage Error Interrupt Mask
+#define FLASH_INT_DATA_ERR    0x00000400 // Invalid Data Interrupt Mask
+#define FLASH_INT_ERASE_ERR   0x00000800 // Erase Error Interrupt Mask
+#define FLASH_INT_PROGRAM_ERR 0x00002000 // Program Verify Error Interrupt Mask
+
+//*****************************************************************************
+//
+// Prototypes for the APIs.
+//
+//*****************************************************************************
+extern int32_t FlashErase(uint32_t ui32Address);
+extern int32_t FlashProgram(uint32_t *pui32Data, uint32_t ui32Address,
+                            uint32_t ui32Count);
+extern tFlashProtection FlashProtectGet(uint32_t ui32Address);
+extern int32_t FlashProtectSet(uint32_t ui32Address,
+                               tFlashProtection eProtect);
+extern int32_t FlashProtectSave(void);
+extern int32_t FlashUserGet(uint32_t *pui32User0, uint32_t *pui32User1);
+extern int32_t FlashUserSet(uint32_t ui32User0, uint32_t ui32User1);
+extern int32_t FlashAllUserRegisterGet(uint32_t *pui32User0,
+                                       uint32_t *pui32User1,
+                                       uint32_t *pui32User2,
+                                       uint32_t *pui32User3);
+extern int32_t FlashAllUserRegisterSet(uint32_t ui32User0,
+                                       uint32_t ui32User1,
+                                       uint32_t ui32User2,
+                                       uint32_t ui32User3);
+extern int32_t FlashUserSave(void);
+extern int32_t FlashAllUserRegisterSave(void);
+extern void FlashIntRegister(void (*pfnHandler)(void));
+extern void FlashIntUnregister(void);
+extern void FlashIntEnable(uint32_t ui32IntFlags);
+extern void FlashIntDisable(uint32_t ui32IntFlags);
+extern uint32_t FlashIntStatus(bool bMasked);
+extern void FlashIntClear(uint32_t ui32IntFlags);
+
+//*****************************************************************************
+//
+// Mark the end of the C bindings section for C++ compilers.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __DRIVERLIB_FLASH_H__

+ 113 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/fpu.h

@@ -0,0 +1,113 @@
+//*****************************************************************************
+//
+// fpu.h - Prototypes for the floatint point manipulation routines.
+//
+// Copyright (c) 2011-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Peripheral Driver Library.
+//
+//*****************************************************************************
+
+#ifndef __DRIVERLIB_FPU_H__
+#define __DRIVERLIB_FPU_H__
+
+//*****************************************************************************
+//
+// If building with a C++ compiler, make all of the definitions in this header
+// have a C binding.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+//*****************************************************************************
+//
+// Values that can be passed to FPUHalfPrecisionSet as the ui32Mode parameter.
+//
+//*****************************************************************************
+#define FPU_HALF_IEEE           0x00000000
+#define FPU_HALF_ALTERNATE      0x04000000
+
+//*****************************************************************************
+//
+// Values that can be passed to FPUNaNModeSet as the ui32Mode parameter.
+//
+//*****************************************************************************
+#define FPU_NAN_PROPAGATE       0x00000000
+#define FPU_NAN_DEFAULT         0x02000000
+
+//*****************************************************************************
+//
+// Values that can be passed to FPUFlushToZeroModeSet as the ui32Mode
+// parameter.
+//
+//*****************************************************************************
+#define FPU_FLUSH_TO_ZERO_DIS   0x00000000
+#define FPU_FLUSH_TO_ZERO_EN    0x01000000
+
+//*****************************************************************************
+//
+// Values that can be passed to FPURoundingModeSet as the ui32Mode parameter.
+//
+//*****************************************************************************
+#define FPU_ROUND_NEAREST       0x00000000
+#define FPU_ROUND_POS_INF       0x00400000
+#define FPU_ROUND_NEG_INF       0x00800000
+#define FPU_ROUND_ZERO          0x00c00000
+
+//*****************************************************************************
+//
+// Prototypes.
+//
+//*****************************************************************************
+extern void FPUEnable(void);
+extern void FPUDisable(void);
+extern void FPUStackingEnable(void);
+extern void FPULazyStackingEnable(void);
+extern void FPUStackingDisable(void);
+extern void FPUHalfPrecisionModeSet(uint32_t ui32Mode);
+extern void FPUNaNModeSet(uint32_t ui32Mode);
+extern void FPUFlushToZeroModeSet(uint32_t ui32Mode);
+extern void FPURoundingModeSet(uint32_t ui32Mode);
+
+//*****************************************************************************
+//
+// Mark the end of the C bindings section for C++ compilers.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __DRIVERLIB_FPU_H__

+ 204 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/gpio.h

@@ -0,0 +1,204 @@
+//*****************************************************************************
+//
+// gpio.h - Defines and Macros for GPIO API.
+//
+// Copyright (c) 2005-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Peripheral Driver Library.
+//
+//*****************************************************************************
+
+#ifndef __DRIVERLIB_GPIO_H__
+#define __DRIVERLIB_GPIO_H__
+
+//*****************************************************************************
+//
+// If building with a C++ compiler, make all of the definitions in this header
+// have a C binding.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+//*****************************************************************************
+//
+// The following values define the bit field for the ui8Pins argument to
+// several of the APIs.
+//
+//*****************************************************************************
+#define GPIO_PIN_0              0x00000001  // GPIO pin 0
+#define GPIO_PIN_1              0x00000002  // GPIO pin 1
+#define GPIO_PIN_2              0x00000004  // GPIO pin 2
+#define GPIO_PIN_3              0x00000008  // GPIO pin 3
+#define GPIO_PIN_4              0x00000010  // GPIO pin 4
+#define GPIO_PIN_5              0x00000020  // GPIO pin 5
+#define GPIO_PIN_6              0x00000040  // GPIO pin 6
+#define GPIO_PIN_7              0x00000080  // GPIO pin 7
+
+//*****************************************************************************
+//
+// Values that can be passed to GPIODirModeSet as the ui32PinIO parameter, and
+// returned from GPIODirModeGet.
+//
+//*****************************************************************************
+#define GPIO_DIR_MODE_IN        0x00000000  // Pin is a GPIO input
+#define GPIO_DIR_MODE_OUT       0x00000001  // Pin is a GPIO output
+#define GPIO_DIR_MODE_HW        0x00000002  // Pin is a peripheral function
+
+//*****************************************************************************
+//
+// Values that can be passed to GPIOIntTypeSet as the ui32IntType parameter,
+// and returned from GPIOIntTypeGet.
+//
+//*****************************************************************************
+#define GPIO_FALLING_EDGE       0x00000000  // Interrupt on falling edge
+#define GPIO_RISING_EDGE        0x00000004  // Interrupt on rising edge
+#define GPIO_BOTH_EDGES         0x00000001  // Interrupt on both edges
+#define GPIO_LOW_LEVEL          0x00000002  // Interrupt on low level
+#define GPIO_HIGH_LEVEL         0x00000006  // Interrupt on high level
+#define GPIO_DISCRETE_INT       0x00010000  // Interrupt for individual pins
+
+//*****************************************************************************
+//
+// Values that can be passed to GPIOPadConfigSet as the ui32Strength parameter,
+// and returned by GPIOPadConfigGet in the *pui32Strength parameter.
+//
+//*****************************************************************************
+#define GPIO_STRENGTH_2MA       0x00000001  // 2mA drive strength
+#define GPIO_STRENGTH_4MA       0x00000002  // 4mA drive strength
+#define GPIO_STRENGTH_6MA       0x00000065  // 6mA drive strength
+#define GPIO_STRENGTH_8MA       0x00000066  // 8mA drive strength
+#define GPIO_STRENGTH_8MA_SC    0x0000006E  // 8mA drive with slew rate control
+#define GPIO_STRENGTH_10MA      0x00000075  // 10mA drive strength
+#define GPIO_STRENGTH_12MA      0x00000077  // 12mA drive strength
+
+//*****************************************************************************
+//
+// Values that can be passed to GPIOPadConfigSet as the ui32PadType parameter,
+// and returned by GPIOPadConfigGet in the *pui32PadType parameter.
+//
+//*****************************************************************************
+#define GPIO_PIN_TYPE_STD       0x00000008  // Push-pull
+#define GPIO_PIN_TYPE_STD_WPU   0x0000000A  // Push-pull with weak pull-up
+#define GPIO_PIN_TYPE_STD_WPD   0x0000000C  // Push-pull with weak pull-down
+#define GPIO_PIN_TYPE_OD        0x00000009  // Open-drain
+#define GPIO_PIN_TYPE_ANALOG    0x00000000  // Analog comparator
+#define GPIO_PIN_TYPE_WAKE_HIGH 0x00000208  // Hibernate wake, high
+#define GPIO_PIN_TYPE_WAKE_LOW  0x00000108  // Hibernate wake, low
+
+//*****************************************************************************
+//
+// Values that can be passed to GPIOIntEnable() and GPIOIntDisable() functions
+// in the ui32IntFlags parameter.
+//
+//*****************************************************************************
+#define GPIO_INT_PIN_0          0x00000001
+#define GPIO_INT_PIN_1          0x00000002
+#define GPIO_INT_PIN_2          0x00000004
+#define GPIO_INT_PIN_3          0x00000008
+#define GPIO_INT_PIN_4          0x00000010
+#define GPIO_INT_PIN_5          0x00000020
+#define GPIO_INT_PIN_6          0x00000040
+#define GPIO_INT_PIN_7          0x00000080
+#define GPIO_INT_DMA            0x00000100
+
+//*****************************************************************************
+//
+// Prototypes for the APIs.
+//
+//*****************************************************************************
+extern void GPIODirModeSet(uint32_t ui32Port, uint8_t ui8Pins,
+                           uint32_t ui32PinIO);
+extern uint32_t GPIODirModeGet(uint32_t ui32Port, uint8_t ui8Pin);
+extern void GPIOIntTypeSet(uint32_t ui32Port, uint8_t ui8Pins,
+                           uint32_t ui32IntType);
+extern uint32_t GPIOIntTypeGet(uint32_t ui32Port, uint8_t ui8Pin);
+extern void GPIOPadConfigSet(uint32_t ui32Port, uint8_t ui8Pins,
+                             uint32_t ui32Strength, uint32_t ui32PadType);
+extern void GPIOPadConfigGet(uint32_t ui32Port, uint8_t ui8Pin,
+                             uint32_t *pui32Strength, uint32_t *pui32PadType);
+extern void GPIOIntEnable(uint32_t ui32Port, uint32_t ui32IntFlags);
+extern void GPIOIntDisable(uint32_t ui32Port, uint32_t ui32IntFlags);
+extern uint32_t GPIOIntStatus(uint32_t ui32Port, bool bMasked);
+extern void GPIOIntClear(uint32_t ui32Port, uint32_t ui32IntFlags);
+extern void GPIOIntRegister(uint32_t ui32Port, void (*pfnIntHandler)(void));
+extern void GPIOIntUnregister(uint32_t ui32Port);
+extern void GPIOIntRegisterPin(uint32_t ui32Port, uint32_t ui32Pin,
+                               void (*pfnIntHandler)(void));
+extern void GPIOIntUnregisterPin(uint32_t ui32Port, uint32_t ui32Pin);
+extern int32_t GPIOPinRead(uint32_t ui32Port, uint8_t ui8Pins);
+extern void GPIOPinWrite(uint32_t ui32Port, uint8_t ui8Pins, uint8_t ui8Val);
+extern void GPIOPinConfigure(uint32_t ui32PinConfig);
+extern void GPIOPinTypeADC(uint32_t ui32Port, uint8_t ui8Pins);
+extern void GPIOPinTypeCAN(uint32_t ui32Port, uint8_t ui8Pins);
+extern void GPIOPinTypeComparator(uint32_t ui32Port, uint8_t ui8Pins);
+extern void GPIOPinTypeComparatorOutput(uint32_t ui32Port, uint8_t ui8Pins);
+extern void GPIOPinTypeDIVSCLK(uint32_t ui32Port, uint8_t ui8Pins);
+extern void GPIOPinTypeEPI(uint32_t ui32Port, uint8_t ui8Pins);
+extern void GPIOPinTypeEthernetLED(uint32_t ui32Port, uint8_t ui8Pins);
+extern void GPIOPinTypeEthernetMII(uint32_t ui32Port, uint8_t ui8Pins);
+extern void GPIOPinTypeGPIOInput(uint32_t ui32Port, uint8_t ui8Pins);
+extern void GPIOPinTypeGPIOOutput(uint32_t ui32Port, uint8_t ui8Pins);
+extern void GPIOPinTypeGPIOOutputOD(uint32_t ui32Port, uint8_t ui8Pins);
+extern void GPIOPinTypeHibernateRTCCLK(uint32_t ui32Port, uint8_t ui8Pins);
+extern void GPIOPinTypeI2C(uint32_t ui32Port, uint8_t ui8Pins);
+extern void GPIOPinTypeI2CSCL(uint32_t ui32Port, uint8_t ui8Pins);
+extern void GPIOPinTypeLCD(uint32_t ui32Port, uint8_t ui8Pins);
+extern void GPIOPinTypeOneWire(uint32_t ui32Port, uint8_t ui8Pins);
+extern void GPIOPinTypePWM(uint32_t ui32Port, uint8_t ui8Pins);
+extern void GPIOPinTypeQEI(uint32_t ui32Port, uint8_t ui8Pins);
+extern void GPIOPinTypeSSI(uint32_t ui32Port, uint8_t ui8Pins);
+extern void GPIOPinTypeTimer(uint32_t ui32Port, uint8_t ui8Pins);
+extern void GPIOPinTypeTrace(uint32_t ui32Port, uint8_t ui8Pins);
+extern void GPIOPinTypeUART(uint32_t ui32Port, uint8_t ui8Pins);
+extern void GPIOPinTypeUSBAnalog(uint32_t ui32Port, uint8_t ui8Pins);
+extern void GPIOPinTypeUSBDigital(uint32_t ui32Port, uint8_t ui8Pins);
+extern void GPIOPinTypeWakeHigh(uint32_t ui32Port, uint8_t ui8Pins);
+extern void GPIOPinTypeWakeLow(uint32_t ui32Port, uint8_t ui8Pins);
+extern uint32_t GPIOPinWakeStatus(uint32_t ui32Port);
+extern void GPIODMATriggerEnable(uint32_t ui32Port, uint8_t ui8Pins);
+extern void GPIODMATriggerDisable(uint32_t ui32Port, uint8_t ui8Pins);
+extern void GPIOADCTriggerEnable(uint32_t ui32Port, uint8_t ui8Pins);
+extern void GPIOADCTriggerDisable(uint32_t ui32Port, uint8_t ui8Pins);
+
+//*****************************************************************************
+//
+// Mark the end of the C bindings section for C++ compilers.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __DRIVERLIB_GPIO_H__

+ 257 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/hibernate.h

@@ -0,0 +1,257 @@
+//*****************************************************************************
+//
+// hibernate.h - API definition for the Hibernation module.
+//
+// Copyright (c) 2007-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Peripheral Driver Library.
+//
+//*****************************************************************************
+
+#ifndef __DRIVERLIB_HIBERNATE_H__
+#define __DRIVERLIB_HIBERNATE_H__
+
+//*****************************************************************************
+//
+// If building with a C++ compiler, make all of the definitions in this header
+// have a C binding.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+//*****************************************************************************
+//
+// Macros need to configure wake events for HibernateWakeSet()
+//
+//*****************************************************************************
+#define HIBERNATE_WAKE_PIN      0x00000010
+#define HIBERNATE_WAKE_RTC      0x00000008
+#define HIBERNATE_WAKE_LOW_BAT  0x00000200
+#define HIBERNATE_WAKE_GPIO     0x00000010
+#define HIBERNATE_WAKE_RESET    0x00100010
+#define HIBERNATE_WAKE_TAMPER   0x08000010
+
+//*****************************************************************************
+//
+// Macros needed to configure low battery detect for HibernateLowBatSet()
+//
+//*****************************************************************************
+#define HIBERNATE_LOW_BAT_DETECT                                              \
+                                0x00000020
+#define HIBERNATE_LOW_BAT_ABORT 0x000000A0
+#define HIBERNATE_LOW_BAT_1_9V  0x00000000
+#define HIBERNATE_LOW_BAT_2_1V  0x00002000
+#define HIBERNATE_LOW_BAT_2_3V  0x00004000
+#define HIBERNATE_LOW_BAT_2_5V  0x00006000
+
+//*****************************************************************************
+//
+// Macros defining interrupt source bits for the interrupt functions.
+//
+//*****************************************************************************
+#define HIBERNATE_INT_VDDFAIL   0x00000080
+#define HIBERNATE_INT_RESET_WAKE                                              \
+                                0x00000040
+#define HIBERNATE_INT_GPIO_WAKE 0x00000020
+#define HIBERNATE_INT_WR_COMPLETE                                             \
+                                0x00000010
+#define HIBERNATE_INT_PIN_WAKE  0x00000008
+#define HIBERNATE_INT_LOW_BAT   0x00000004
+#define HIBERNATE_INT_RTC_MATCH_0                                             \
+                                0x00000001
+
+//*****************************************************************************
+//
+// Macros defining oscillator configuration options for the
+// HibernateClockConfig() function.
+//
+//*****************************************************************************
+#define HIBERNATE_OSC_LFIOSC    0x00080000
+#define HIBERNATE_OSC_LOWDRIVE  0x00000000
+#define HIBERNATE_OSC_HIGHDRIVE 0x00020000
+#define HIBERNATE_OSC_DISABLE   0x00010000
+#define HIBERNATE_OUT_WRSTALL   0x20000000
+#define HIBERNATE_OUT_SYSCLK    0x00000001
+#define HIBERNATE_OUT_ALT1CLK   0x00000002
+
+//*****************************************************************************
+//
+// The following defines are used with the HibernateCounterMode() API.
+//
+//*****************************************************************************
+#define HIBERNATE_COUNTER_RTC   0x00000000
+#define HIBERNATE_COUNTER_12HR  0x00000001
+#define HIBERNATE_COUNTER_24HR  0x00000005
+
+//*****************************************************************************
+//
+// Tamper event configuration options used with HibernateTamperEventsConfig().
+//
+//*****************************************************************************
+#define HIBERNATE_TAMPER_EVENTS_NO_HIB_WAKE                                   \
+                                0x00000000
+#define HIBERNATE_TAMPER_EVENTS_HIB_WAKE                                      \
+                                0x00000800
+#define HIBERNATE_TAMPER_EVENTS_NO_ERASE_HIB_MEM                              \
+                                0x00000000
+#define HIBERNATE_TAMPER_EVENTS_ERASE_LOW_HIB_MEM                             \
+                                0x00000100
+#define HIBERNATE_TAMPER_EVENTS_ERASE_HIGH_HIB_MEM                            \
+                                0x00000200
+#define HIBERNATE_TAMPER_EVENTS_ERASE_ALL_HIB_MEM                             \
+                                0x00000300
+
+//*****************************************************************************
+//
+// Status flags returned by the HibernateTamperStatus() function.
+//
+//*****************************************************************************
+#define HIBERNATE_TAMPER_STATUS_INACTIVE                                      \
+                                0x00000010
+#define HIBERNATE_TAMPER_STATUS_ACTIVE                                        \
+                                0x00000020
+#define HIBERNATE_TAMPER_STATUS_EVENT                                         \
+                                0x00000040
+#define HIBERNATE_TAMPER_STATUS_EXT_OSC_ACTIVE                                \
+                                0x00000008
+#define HIBERNATE_TAMPER_STATUS_EXT_OSC_INACTIVE                              \
+                                0x00000002
+#define HIBERNATE_TAMPER_STATUS_EXT_OSC_VALID                                 \
+                                0x00000004
+#define HIBERNATE_TAMPER_STATUS_EXT_OSC_FAILED                                \
+                                0x00000001
+
+//*****************************************************************************
+//
+// Configuration options used with HibernateTamperIOEnable().
+//
+//*****************************************************************************
+#define HIBERNATE_TAMPER_IO_TRIGGER_LOW                                       \
+                                0x00000000
+#define HIBERNATE_TAMPER_IO_TRIGGER_HIGH                                      \
+                                0x00000002
+#define HIBERNATE_TAMPER_IO_WPU_DISABLED                                      \
+                                0x00000000
+#define HIBERNATE_TAMPER_IO_WPU_ENABLED                                       \
+                                0x00000004
+#define HIBERNATE_TAMPER_IO_MATCH_SHORT                                       \
+                                0x00000000
+#define HIBERNATE_TAMPER_IO_MATCH_LONG                                        \
+                                0x00000008
+
+//*****************************************************************************
+//
+// Tamper log event flags.
+//
+//*****************************************************************************
+#define HIBERNATE_TAMPER_EVENT_0                                              \
+                                0x00000001
+#define HIBERNATE_TAMPER_EVENT_1                                              \
+                                0x00000002
+#define HIBERNATE_TAMPER_EVENT_2                                              \
+                                0x00000004
+#define HIBERNATE_TAMPER_EVENT_3                                              \
+                                0x00000008
+#define HIBERNATE_TAMPER_EVENT_EXT_OSC                                        \
+                                0x00010000
+
+//*****************************************************************************
+//
+// API Function prototypes
+//
+//*****************************************************************************
+extern void HibernateGPIORetentionEnable(void);
+extern void HibernateGPIORetentionDisable(void);
+extern bool HibernateGPIORetentionGet(void);
+extern void HibernateEnableExpClk(uint32_t ui32HibClk);
+extern void HibernateDisable(void);
+extern void HibernateRTCEnable(void);
+extern void HibernateRTCDisable(void);
+extern void HibernateWakeSet(uint32_t ui32WakeFlags);
+extern uint32_t HibernateWakeGet(void);
+extern void HibernateLowBatSet(uint32_t ui32LowBatFlags);
+extern uint32_t HibernateLowBatGet(void);
+extern void HibernateRTCSet(uint32_t ui32RTCValue);
+extern uint32_t HibernateRTCGet(void);
+extern void HibernateRTCMatchSet(uint32_t ui32Match, uint32_t ui32Value);
+extern uint32_t HibernateRTCMatchGet(uint32_t ui32Match);
+extern void HibernateRTCTrimSet(uint32_t ui32Trim);
+extern uint32_t HibernateRTCTrimGet(void);
+extern void HibernateDataSet(uint32_t *pui32Data, uint32_t ui32Count);
+extern void HibernateDataGet(uint32_t *pui32Data, uint32_t ui32Count);
+extern void HibernateRequest(void);
+extern void HibernateIntEnable(uint32_t ui32IntFlags);
+extern void HibernateIntDisable(uint32_t ui32IntFlags);
+extern void HibernateIntRegister(void (*pfnHandler)(void));
+extern void HibernateIntUnregister(void);
+extern uint32_t HibernateIntStatus(bool bMasked);
+extern void HibernateIntClear(uint32_t ui32IntFlags);
+extern uint32_t HibernateIsActive(void);
+extern void HibernateRTCSSMatchSet(uint32_t ui32Match, uint32_t ui32Value);
+extern uint32_t HibernateRTCSSMatchGet(uint32_t ui32Match);
+extern uint32_t HibernateRTCSSGet(void);
+extern void HibernateClockConfig(uint32_t ui32Config);
+extern void HibernateBatCheckStart(void);
+extern uint32_t HibernateBatCheckDone(void);
+extern void HibernateCounterMode(uint32_t ui32Config);
+extern void HibernateCalendarSet(struct tm *psTime);
+extern int HibernateCalendarGet(struct tm *psTime);
+extern void HibernateCalendarMatchSet(uint32_t ui32Index, struct tm *psTime);
+extern void HibernateCalendarMatchGet(uint32_t ui32Index, struct tm *psTime);
+extern void HibernateTamperEnable(void);
+extern void HibernateTamperEventsConfig(uint32_t ui32Config);
+extern bool HibernateTamperEventsGet(uint32_t ui32Index, uint32_t *pui32RTC,
+                                       uint32_t *pui32Event);
+extern void HibernateTamperEventsClear(void);
+extern void HibernateTamperEventsClearNoLock(void);
+extern void HibernateTamperUnLock(void);
+extern void HibernateTamperLock(void);
+extern void HibernateTamperDisable(void);
+extern void HibernateTamperIOEnable(uint32_t ui32Input, uint32_t ui32Config);
+extern void HibernateTamperIODisable(uint32_t ui32Input);
+extern uint32_t HibernateTamperStatusGet(void);
+extern void HibernateTamperExtOscRecover(void);
+extern bool HibernateTamperExtOscValid(void);
+
+//*****************************************************************************
+//
+// Mark the end of the C bindings section for C++ compilers.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+}
+#endif
+
+#endif  // __DRIVERLIB_HIBERNATE_H__

+ 362 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/i2c.h

@@ -0,0 +1,362 @@
+//*****************************************************************************
+//
+// i2c.h - Prototypes for the I2C Driver.
+//
+// Copyright (c) 2005-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Peripheral Driver Library.
+//
+//*****************************************************************************
+
+#ifndef __DRIVERLIB_I2C_H__
+#define __DRIVERLIB_I2C_H__
+
+//*****************************************************************************
+//
+// If building with a C++ compiler, make all of the definitions in this header
+// have a C binding.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+//*****************************************************************************
+//
+// Defines for the API.
+//
+//*****************************************************************************
+
+//*****************************************************************************
+//
+// Interrupt defines.
+//
+//*****************************************************************************
+#define I2C_INT_MASTER          0x00000001
+#define I2C_INT_SLAVE           0x00000002
+
+//*****************************************************************************
+//
+// I2C Master commands.
+//
+//*****************************************************************************
+#define I2C_MASTER_CMD_SINGLE_SEND                                            \
+                                0x00000007
+#define I2C_MASTER_CMD_SINGLE_RECEIVE                                         \
+                                0x00000007
+#define I2C_MASTER_CMD_BURST_SEND_START                                       \
+                                0x00000003
+#define I2C_MASTER_CMD_BURST_SEND_CONT                                        \
+                                0x00000001
+#define I2C_MASTER_CMD_BURST_SEND_FINISH                                      \
+                                0x00000005
+#define I2C_MASTER_CMD_BURST_SEND_STOP                                        \
+                                0x00000004
+#define I2C_MASTER_CMD_BURST_SEND_ERROR_STOP                                  \
+                                0x00000004
+#define I2C_MASTER_CMD_BURST_RECEIVE_START                                    \
+                                0x0000000b
+#define I2C_MASTER_CMD_BURST_RECEIVE_CONT                                     \
+                                0x00000009
+#define I2C_MASTER_CMD_BURST_RECEIVE_FINISH                                   \
+                                0x00000005
+#define I2C_MASTER_CMD_BURST_RECEIVE_ERROR_STOP                               \
+                                0x00000004
+#define I2C_MASTER_CMD_QUICK_COMMAND                                          \
+                                0x00000027
+#define I2C_MASTER_CMD_HS_MASTER_CODE_SEND                                    \
+                                0x00000013
+#define I2C_MASTER_CMD_FIFO_SINGLE_SEND                                       \
+                                0x00000046
+#define I2C_MASTER_CMD_FIFO_SINGLE_RECEIVE                                    \
+                                0x00000046
+#define I2C_MASTER_CMD_FIFO_BURST_SEND_START                                  \
+                                0x00000042
+#define I2C_MASTER_CMD_FIFO_BURST_SEND_CONT                                   \
+                                0x00000040
+#define I2C_MASTER_CMD_FIFO_BURST_SEND_FINISH                                 \
+                                0x00000044
+#define I2C_MASTER_CMD_FIFO_BURST_SEND_ERROR_STOP                             \
+                                0x00000004
+#define I2C_MASTER_CMD_FIFO_BURST_RECEIVE_START                               \
+                                0x0000004a
+#define I2C_MASTER_CMD_FIFO_BURST_RECEIVE_CONT                                \
+                                0x00000048
+#define I2C_MASTER_CMD_FIFO_BURST_RECEIVE_FINISH                              \
+                                0x00000044
+#define I2C_MASTER_CMD_FIFO_BURST_RECEIVE_ERROR_STOP                          \
+                                0x00000004
+
+//*****************************************************************************
+//
+// I2C Master glitch filter configuration.
+//
+//*****************************************************************************
+#define I2C_MASTER_GLITCH_FILTER_DISABLED                                     \
+                                0
+#define I2C_MASTER_GLITCH_FILTER_1                                            \
+                                0x00010000
+#define I2C_MASTER_GLITCH_FILTER_2                                            \
+                                0x00020000
+#define I2C_MASTER_GLITCH_FILTER_3                                            \
+                                0x00030000
+#define I2C_MASTER_GLITCH_FILTER_4                                            \
+                                0x00040000
+#define I2C_MASTER_GLITCH_FILTER_8                                            \
+                                0x00050000
+#define I2C_MASTER_GLITCH_FILTER_16                                           \
+                                0x00060000
+#define I2C_MASTER_GLITCH_FILTER_32                                           \
+                                0x00070000
+
+//*****************************************************************************
+//
+// I2C Master error status.
+//
+//*****************************************************************************
+#define I2C_MASTER_ERR_NONE     0
+#define I2C_MASTER_ERR_ADDR_ACK 0x00000004
+#define I2C_MASTER_ERR_DATA_ACK 0x00000008
+#define I2C_MASTER_ERR_ARB_LOST 0x00000010
+#define I2C_MASTER_ERR_CLK_TOUT 0x00000080
+
+//*****************************************************************************
+//
+// I2C Slave action requests
+//
+//*****************************************************************************
+#define I2C_SLAVE_ACT_NONE      0
+#define I2C_SLAVE_ACT_RREQ      0x00000001  // Master has sent data
+#define I2C_SLAVE_ACT_TREQ      0x00000002  // Master has requested data
+#define I2C_SLAVE_ACT_RREQ_FBR  0x00000005  // Master has sent first byte
+#define I2C_SLAVE_ACT_OWN2SEL   0x00000008  // Master requested secondary slave
+#define I2C_SLAVE_ACT_QCMD      0x00000010  // Master has sent a Quick Command
+#define I2C_SLAVE_ACT_QCMD_DATA 0x00000020  // Master Quick Command value
+
+//*****************************************************************************
+//
+// Miscellaneous I2C driver definitions.
+//
+//*****************************************************************************
+#define I2C_MASTER_MAX_RETRIES  1000        // Number of retries
+
+//*****************************************************************************
+//
+// I2C Master interrupts.
+//
+//*****************************************************************************
+#define I2C_MASTER_INT_RX_FIFO_FULL                                           \
+                                0x00000800  // RX FIFO Full Interrupt
+#define I2C_MASTER_INT_TX_FIFO_EMPTY                                          \
+                                0x00000400  // TX FIFO Empty Interrupt
+#define I2C_MASTER_INT_RX_FIFO_REQ                                            \
+                                0x00000200  // RX FIFO Request Interrupt
+#define I2C_MASTER_INT_TX_FIFO_REQ                                            \
+                                0x00000100  // TX FIFO Request Interrupt
+#define I2C_MASTER_INT_ARB_LOST                                               \
+                                0x00000080  // Arb Lost Interrupt
+#define I2C_MASTER_INT_STOP     0x00000040  // Stop Condition Interrupt
+#define I2C_MASTER_INT_START    0x00000020  // Start Condition Interrupt
+#define I2C_MASTER_INT_NACK     0x00000010  // Addr/Data NACK Interrupt
+#define I2C_MASTER_INT_TX_DMA_DONE                                            \
+                                0x00000008  // TX DMA Complete Interrupt
+#define I2C_MASTER_INT_RX_DMA_DONE                                            \
+                                0x00000004  // RX DMA Complete Interrupt
+#define I2C_MASTER_INT_TIMEOUT  0x00000002  // Clock Timeout Interrupt
+#define I2C_MASTER_INT_DATA     0x00000001  // Data Interrupt
+
+//*****************************************************************************
+//
+// I2C Slave interrupts.
+//
+//*****************************************************************************
+#define I2C_SLAVE_INT_RX_FIFO_FULL                                            \
+                                0x00000100  // RX FIFO Full Interrupt
+#define I2C_SLAVE_INT_TX_FIFO_EMPTY                                           \
+                                0x00000080  // TX FIFO Empty Interrupt
+#define I2C_SLAVE_INT_RX_FIFO_REQ                                             \
+                                0x00000040  // RX FIFO Request Interrupt
+#define I2C_SLAVE_INT_TX_FIFO_REQ                                             \
+                                0x00000020  // TX FIFO Request Interrupt
+#define I2C_SLAVE_INT_TX_DMA_DONE                                             \
+                                0x00000010  // TX DMA Complete Interrupt
+#define I2C_SLAVE_INT_RX_DMA_DONE                                             \
+                                0x00000008  // RX DMA Complete Interrupt
+#define I2C_SLAVE_INT_STOP      0x00000004  // Stop Condition Interrupt
+#define I2C_SLAVE_INT_START     0x00000002  // Start Condition Interrupt
+#define I2C_SLAVE_INT_DATA      0x00000001  // Data Interrupt
+
+//*****************************************************************************
+//
+// I2C Slave FIFO configuration macros.
+//
+//*****************************************************************************
+#define I2C_SLAVE_TX_FIFO_ENABLE                                              \
+                                0x00000002
+#define I2C_SLAVE_RX_FIFO_ENABLE                                              \
+                                0x00000004
+
+//*****************************************************************************
+//
+// I2C FIFO configuration macros.
+//
+//*****************************************************************************
+#define I2C_FIFO_CFG_TX_MASTER  0x00000000
+#define I2C_FIFO_CFG_TX_SLAVE   0x00008000
+#define I2C_FIFO_CFG_RX_MASTER  0x00000000
+#define I2C_FIFO_CFG_RX_SLAVE   0x80000000
+#define I2C_FIFO_CFG_TX_MASTER_DMA                                            \
+                                0x00002000
+#define I2C_FIFO_CFG_TX_SLAVE_DMA                                             \
+                                0x0000a000
+#define I2C_FIFO_CFG_RX_MASTER_DMA                                            \
+                                0x20000000
+#define I2C_FIFO_CFG_RX_SLAVE_DMA                                             \
+                                0xa0000000
+#define I2C_FIFO_CFG_TX_NO_TRIG 0x00000000
+#define I2C_FIFO_CFG_TX_TRIG_1  0x00000001
+#define I2C_FIFO_CFG_TX_TRIG_2  0x00000002
+#define I2C_FIFO_CFG_TX_TRIG_3  0x00000003
+#define I2C_FIFO_CFG_TX_TRIG_4  0x00000004
+#define I2C_FIFO_CFG_TX_TRIG_5  0x00000005
+#define I2C_FIFO_CFG_TX_TRIG_6  0x00000006
+#define I2C_FIFO_CFG_TX_TRIG_7  0x00000007
+#define I2C_FIFO_CFG_TX_TRIG_8  0x00000008
+#define I2C_FIFO_CFG_RX_NO_TRIG 0x00000000
+#define I2C_FIFO_CFG_RX_TRIG_1  0x00010000
+#define I2C_FIFO_CFG_RX_TRIG_2  0x00020000
+#define I2C_FIFO_CFG_RX_TRIG_3  0x00030000
+#define I2C_FIFO_CFG_RX_TRIG_4  0x00040000
+#define I2C_FIFO_CFG_RX_TRIG_5  0x00050000
+#define I2C_FIFO_CFG_RX_TRIG_6  0x00060000
+#define I2C_FIFO_CFG_RX_TRIG_7  0x00070000
+#define I2C_FIFO_CFG_RX_TRIG_8  0x00080000
+
+//*****************************************************************************
+//
+// I2C FIFO status.
+//
+//*****************************************************************************
+#define I2C_FIFO_RX_BELOW_TRIG_LEVEL                                          \
+                                0x00040000
+#define I2C_FIFO_RX_FULL        0x00020000
+#define I2C_FIFO_RX_EMPTY       0x00010000
+#define I2C_FIFO_TX_BELOW_TRIG_LEVEL                                          \
+                                0x00000004
+#define I2C_FIFO_TX_FULL        0x00000002
+#define I2C_FIFO_TX_EMPTY       0x00000001
+
+//*****************************************************************************
+//
+// Prototypes for the APIs.
+//
+//*****************************************************************************
+extern void I2CIntRegister(uint32_t ui32Base, void(*pfnHandler)(void));
+extern void I2CIntUnregister(uint32_t ui32Base);
+extern void I2CTxFIFOConfigSet(uint32_t ui32Base, uint32_t ui32Config);
+extern void I2CTxFIFOFlush(uint32_t ui32Base);
+extern void I2CRxFIFOConfigSet(uint32_t ui32Base, uint32_t ui32Config);
+extern void I2CRxFIFOFlush(uint32_t ui32Base);
+extern uint32_t I2CFIFOStatus(uint32_t ui32Base);
+extern void I2CFIFODataPut(uint32_t ui32Base, uint8_t ui8Data);
+extern uint32_t I2CFIFODataPutNonBlocking(uint32_t ui32Base,
+                                          uint8_t ui8Data);
+extern uint32_t I2CFIFODataGet(uint32_t ui32Base);
+extern uint32_t I2CFIFODataGetNonBlocking(uint32_t ui32Base,
+                                          uint8_t *pui8Data);
+extern void I2CMasterBurstLengthSet(uint32_t ui32Base,
+                                    uint8_t ui8Length);
+extern uint32_t I2CMasterBurstCountGet(uint32_t ui32Base);
+extern void I2CMasterGlitchFilterConfigSet(uint32_t ui32Base,
+                                           uint32_t ui32Config);
+extern void I2CSlaveFIFOEnable(uint32_t ui32Base, uint32_t ui32Config);
+extern void I2CSlaveFIFODisable(uint32_t ui32Base);
+extern bool I2CMasterBusBusy(uint32_t ui32Base);
+extern bool I2CMasterBusy(uint32_t ui32Base);
+extern void I2CMasterControl(uint32_t ui32Base, uint32_t ui32Cmd);
+extern uint32_t I2CMasterDataGet(uint32_t ui32Base);
+extern void I2CMasterDataPut(uint32_t ui32Base, uint8_t ui8Data);
+extern void I2CMasterDisable(uint32_t ui32Base);
+extern void I2CMasterEnable(uint32_t ui32Base);
+extern uint32_t I2CMasterErr(uint32_t ui32Base);
+extern void I2CMasterInitExpClk(uint32_t ui32Base, uint32_t ui32I2CClk,
+                                bool bFast);
+extern void I2CMasterIntClear(uint32_t ui32Base);
+extern void I2CMasterIntDisable(uint32_t ui32Base);
+extern void I2CMasterIntEnable(uint32_t ui32Base);
+extern bool I2CMasterIntStatus(uint32_t ui32Base, bool bMasked);
+extern void I2CMasterIntEnableEx(uint32_t ui32Base,
+                                 uint32_t ui32IntFlags);
+extern void I2CMasterIntDisableEx(uint32_t ui32Base,
+                                  uint32_t ui32IntFlags);
+extern uint32_t I2CMasterIntStatusEx(uint32_t ui32Base,
+                                       bool bMasked);
+extern void I2CMasterIntClearEx(uint32_t ui32Base,
+                                uint32_t ui32IntFlags);
+extern void I2CMasterTimeoutSet(uint32_t ui32Base, uint32_t ui32Value);
+extern void I2CSlaveACKOverride(uint32_t ui32Base, bool bEnable);
+extern void I2CSlaveACKValueSet(uint32_t ui32Base, bool bACK);
+extern uint32_t I2CMasterLineStateGet(uint32_t ui32Base);
+extern void I2CMasterSlaveAddrSet(uint32_t ui32Base,
+                                  uint8_t ui8SlaveAddr,
+                                  bool bReceive);
+extern uint32_t I2CSlaveDataGet(uint32_t ui32Base);
+extern void I2CSlaveDataPut(uint32_t ui32Base, uint8_t ui8Data);
+extern void I2CSlaveDisable(uint32_t ui32Base);
+extern void I2CSlaveEnable(uint32_t ui32Base);
+extern void I2CSlaveInit(uint32_t ui32Base, uint8_t ui8SlaveAddr);
+extern void I2CSlaveAddressSet(uint32_t ui32Base, uint8_t ui8AddrNum,
+                                 uint8_t ui8SlaveAddr);
+extern void I2CSlaveIntClear(uint32_t ui32Base);
+extern void I2CSlaveIntDisable(uint32_t ui32Base);
+extern void I2CSlaveIntEnable(uint32_t ui32Base);
+extern void I2CSlaveIntClearEx(uint32_t ui32Base, uint32_t ui32IntFlags);
+extern void I2CSlaveIntDisableEx(uint32_t ui32Base,
+                                 uint32_t ui32IntFlags);
+extern void I2CSlaveIntEnableEx(uint32_t ui32Base, uint32_t ui32IntFlags);
+extern bool I2CSlaveIntStatus(uint32_t ui32Base, bool bMasked);
+extern uint32_t I2CSlaveIntStatusEx(uint32_t ui32Base,
+                                      bool bMasked);
+extern uint32_t I2CSlaveStatus(uint32_t ui32Base);
+extern void I2CLoopbackEnable(uint32_t ui32Base);
+
+//*****************************************************************************
+//
+// Mark the end of the C bindings section for C++ compilers.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __DRIVERLIB_I2C_H__

+ 227 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/asmdefs.h

@@ -0,0 +1,227 @@
+//*****************************************************************************
+//
+// asmdefs.h - Macros to allow assembly code be portable among toolchains.
+//
+// Copyright (c) 2005-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Firmware Development Package.
+//
+//*****************************************************************************
+
+#ifndef __ASMDEFS_H__
+#define __ASMDEFS_H__
+
+//*****************************************************************************
+//
+// The defines required for code_red.
+//
+//*****************************************************************************
+#ifdef codered
+
+//
+// The assembly code preamble required to put the assembler into the correct
+// configuration.
+//
+    .syntax unified
+    .thumb
+
+//
+// Section headers.
+//
+#define __LIBRARY__             @
+#define __TEXT__                .text
+#define __DATA__                .data
+#define __BSS__                 .bss
+#define __TEXT_NOROOT__         .text
+
+//
+// Assembler nmenonics.
+//
+#define __ALIGN__               .balign 4
+#define __END__                 .end
+#define __EXPORT__              .globl
+#define __IMPORT__              .extern
+#define __LABEL__               :
+#define __STR__                 .ascii
+#define __THUMB_LABEL__         .thumb_func
+#define __WORD__                .word
+#define __INLINE_DATA__
+
+#endif // codered
+
+//*****************************************************************************
+//
+// The defines required for EW-ARM.
+//
+//*****************************************************************************
+#ifdef ewarm
+
+//
+// Section headers.
+//
+#define __LIBRARY__             module
+#define __TEXT__                rseg CODE:CODE(2)
+#define __DATA__                rseg DATA:DATA(2)
+#define __BSS__                 rseg DATA:DATA(2)
+#define __TEXT_NOROOT__         rseg CODE:CODE:NOROOT(2)
+
+//
+// Assembler nmenonics.
+//
+#define __ALIGN__               alignrom 2
+#define __END__                 end
+#define __EXPORT__              export
+#define __IMPORT__              import
+#define __LABEL__
+#define __STR__                 dcb
+#define __THUMB_LABEL__         thumb
+#define __WORD__                dcd
+#define __INLINE_DATA__         data
+
+#endif // ewarm
+
+//*****************************************************************************
+//
+// The defines required for GCC.
+//
+//*****************************************************************************
+#if defined(gcc)
+
+//
+// The assembly code preamble required to put the assembler into the correct
+// configuration.
+//
+    .syntax unified
+    .thumb
+
+//
+// Section headers.
+//
+#define __LIBRARY__             @
+#define __TEXT__                .text
+#define __DATA__                .data
+#define __BSS__                 .bss
+#define __TEXT_NOROOT__         .text
+
+//
+// Assembler nmenonics.
+//
+#define __ALIGN__               .balign 4
+#define __END__                 .end
+#define __EXPORT__              .globl
+#define __IMPORT__              .extern
+#define __LABEL__               :
+#define __STR__                 .ascii
+#define __THUMB_LABEL__         .thumb_func
+#define __WORD__                .word
+#define __INLINE_DATA__
+
+#endif // gcc
+
+//*****************************************************************************
+//
+// The defines required for RV-MDK.
+//
+//*****************************************************************************
+#ifdef rvmdk
+
+//
+// The assembly code preamble required to put the assembler into the correct
+// configuration.
+//
+    thumb
+    require8
+    preserve8
+
+//
+// Section headers.
+//
+#define __LIBRARY__             ;
+#define __TEXT__                area ||.text||, code, readonly, align=2
+#define __DATA__                area ||.data||, data, align=2
+#define __BSS__                 area ||.bss||, noinit, align=2
+#define __TEXT_NOROOT__         area ||.text||, code, readonly, align=2
+
+//
+// Assembler nmenonics.
+//
+#define __ALIGN__               align 4
+#define __END__                 end
+#define __EXPORT__              export
+#define __IMPORT__              import
+#define __LABEL__
+#define __STR__                 dcb
+#define __THUMB_LABEL__
+#define __WORD__                dcd
+#define __INLINE_DATA__
+
+#endif // rvmdk
+
+//*****************************************************************************
+//
+// The defines required for Sourcery G++.
+//
+//*****************************************************************************
+#if defined(sourcerygxx)
+
+//
+// The assembly code preamble required to put the assembler into the correct
+// configuration.
+//
+    .syntax unified
+    .thumb
+
+//
+// Section headers.
+//
+#define __LIBRARY__             @
+#define __TEXT__                .text
+#define __DATA__                .data
+#define __BSS__                 .bss
+#define __TEXT_NOROOT__         .text
+
+//
+// Assembler nmenonics.
+//
+#define __ALIGN__               .balign 4
+#define __END__                 .end
+#define __EXPORT__              .globl
+#define __IMPORT__              .extern
+#define __LABEL__               :
+#define __STR__                 .ascii
+#define __THUMB_LABEL__         .thumb_func
+#define __WORD__                .word
+#define __INLINE_DATA__
+
+#endif // sourcerygxx
+
+#endif // __ASMDEF_H__

+ 1306 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_adc.h

@@ -0,0 +1,1306 @@
+//*****************************************************************************
+//
+// hw_adc.h - Macros used when accessing the ADC hardware.
+//
+// Copyright (c) 2005-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Firmware Development Package.
+//
+//*****************************************************************************
+
+#ifndef __HW_ADC_H__
+#define __HW_ADC_H__
+
+//*****************************************************************************
+//
+// The following are defines for the ADC register offsets.
+//
+//*****************************************************************************
+#define ADC_O_ACTSS             0x00000000  // ADC Active Sample Sequencer
+#define ADC_O_RIS               0x00000004  // ADC Raw Interrupt Status
+#define ADC_O_IM                0x00000008  // ADC Interrupt Mask
+#define ADC_O_ISC               0x0000000C  // ADC Interrupt Status and Clear
+#define ADC_O_OSTAT             0x00000010  // ADC Overflow Status
+#define ADC_O_EMUX              0x00000014  // ADC Event Multiplexer Select
+#define ADC_O_USTAT             0x00000018  // ADC Underflow Status
+#define ADC_O_TSSEL             0x0000001C  // ADC Trigger Source Select
+#define ADC_O_SSPRI             0x00000020  // ADC Sample Sequencer Priority
+#define ADC_O_SPC               0x00000024  // ADC Sample Phase Control
+#define ADC_O_PSSI              0x00000028  // ADC Processor Sample Sequence
+                                            // Initiate
+#define ADC_O_SAC               0x00000030  // ADC Sample Averaging Control
+#define ADC_O_DCISC             0x00000034  // ADC Digital Comparator Interrupt
+                                            // Status and Clear
+#define ADC_O_CTL               0x00000038  // ADC Control
+#define ADC_O_SSMUX0            0x00000040  // ADC Sample Sequence Input
+                                            // Multiplexer Select 0
+#define ADC_O_SSCTL0            0x00000044  // ADC Sample Sequence Control 0
+#define ADC_O_SSFIFO0           0x00000048  // ADC Sample Sequence Result FIFO
+                                            // 0
+#define ADC_O_SSFSTAT0          0x0000004C  // ADC Sample Sequence FIFO 0
+                                            // Status
+#define ADC_O_SSOP0             0x00000050  // ADC Sample Sequence 0 Operation
+#define ADC_O_SSDC0             0x00000054  // ADC Sample Sequence 0 Digital
+                                            // Comparator Select
+#define ADC_O_SSEMUX0           0x00000058  // ADC Sample Sequence Extended
+                                            // Input Multiplexer Select 0
+#define ADC_O_SSTSH0            0x0000005C  // ADC Sample Sequence 0 Sample and
+                                            // Hold Time
+#define ADC_O_SSMUX1            0x00000060  // ADC Sample Sequence Input
+                                            // Multiplexer Select 1
+#define ADC_O_SSCTL1            0x00000064  // ADC Sample Sequence Control 1
+#define ADC_O_SSFIFO1           0x00000068  // ADC Sample Sequence Result FIFO
+                                            // 1
+#define ADC_O_SSFSTAT1          0x0000006C  // ADC Sample Sequence FIFO 1
+                                            // Status
+#define ADC_O_SSOP1             0x00000070  // ADC Sample Sequence 1 Operation
+#define ADC_O_SSDC1             0x00000074  // ADC Sample Sequence 1 Digital
+                                            // Comparator Select
+#define ADC_O_SSEMUX1           0x00000078  // ADC Sample Sequence Extended
+                                            // Input Multiplexer Select 1
+#define ADC_O_SSTSH1            0x0000007C  // ADC Sample Sequence 1 Sample and
+                                            // Hold Time
+#define ADC_O_SSMUX2            0x00000080  // ADC Sample Sequence Input
+                                            // Multiplexer Select 2
+#define ADC_O_SSCTL2            0x00000084  // ADC Sample Sequence Control 2
+#define ADC_O_SSFIFO2           0x00000088  // ADC Sample Sequence Result FIFO
+                                            // 2
+#define ADC_O_SSFSTAT2          0x0000008C  // ADC Sample Sequence FIFO 2
+                                            // Status
+#define ADC_O_SSOP2             0x00000090  // ADC Sample Sequence 2 Operation
+#define ADC_O_SSDC2             0x00000094  // ADC Sample Sequence 2 Digital
+                                            // Comparator Select
+#define ADC_O_SSEMUX2           0x00000098  // ADC Sample Sequence Extended
+                                            // Input Multiplexer Select 2
+#define ADC_O_SSTSH2            0x0000009C  // ADC Sample Sequence 2 Sample and
+                                            // Hold Time
+#define ADC_O_SSMUX3            0x000000A0  // ADC Sample Sequence Input
+                                            // Multiplexer Select 3
+#define ADC_O_SSCTL3            0x000000A4  // ADC Sample Sequence Control 3
+#define ADC_O_SSFIFO3           0x000000A8  // ADC Sample Sequence Result FIFO
+                                            // 3
+#define ADC_O_SSFSTAT3          0x000000AC  // ADC Sample Sequence FIFO 3
+                                            // Status
+#define ADC_O_SSOP3             0x000000B0  // ADC Sample Sequence 3 Operation
+#define ADC_O_SSDC3             0x000000B4  // ADC Sample Sequence 3 Digital
+                                            // Comparator Select
+#define ADC_O_SSEMUX3           0x000000B8  // ADC Sample Sequence Extended
+                                            // Input Multiplexer Select 3
+#define ADC_O_SSTSH3            0x000000BC  // ADC Sample Sequence 3 Sample and
+                                            // Hold Time
+#define ADC_O_DCRIC             0x00000D00  // ADC Digital Comparator Reset
+                                            // Initial Conditions
+#define ADC_O_DCCTL0            0x00000E00  // ADC Digital Comparator Control 0
+#define ADC_O_DCCTL1            0x00000E04  // ADC Digital Comparator Control 1
+#define ADC_O_DCCTL2            0x00000E08  // ADC Digital Comparator Control 2
+#define ADC_O_DCCTL3            0x00000E0C  // ADC Digital Comparator Control 3
+#define ADC_O_DCCTL4            0x00000E10  // ADC Digital Comparator Control 4
+#define ADC_O_DCCTL5            0x00000E14  // ADC Digital Comparator Control 5
+#define ADC_O_DCCTL6            0x00000E18  // ADC Digital Comparator Control 6
+#define ADC_O_DCCTL7            0x00000E1C  // ADC Digital Comparator Control 7
+#define ADC_O_DCCMP0            0x00000E40  // ADC Digital Comparator Range 0
+#define ADC_O_DCCMP1            0x00000E44  // ADC Digital Comparator Range 1
+#define ADC_O_DCCMP2            0x00000E48  // ADC Digital Comparator Range 2
+#define ADC_O_DCCMP3            0x00000E4C  // ADC Digital Comparator Range 3
+#define ADC_O_DCCMP4            0x00000E50  // ADC Digital Comparator Range 4
+#define ADC_O_DCCMP5            0x00000E54  // ADC Digital Comparator Range 5
+#define ADC_O_DCCMP6            0x00000E58  // ADC Digital Comparator Range 6
+#define ADC_O_DCCMP7            0x00000E5C  // ADC Digital Comparator Range 7
+#define ADC_O_PP                0x00000FC0  // ADC Peripheral Properties
+#define ADC_O_PC                0x00000FC4  // ADC Peripheral Configuration
+#define ADC_O_CC                0x00000FC8  // ADC Clock Configuration
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_ACTSS register.
+//
+//*****************************************************************************
+#define ADC_ACTSS_BUSY          0x00010000  // ADC Busy
+#define ADC_ACTSS_ADEN3         0x00000800  // ADC SS3 DMA Enable
+#define ADC_ACTSS_ADEN2         0x00000400  // ADC SS2 DMA Enable
+#define ADC_ACTSS_ADEN1         0x00000200  // ADC SS1 DMA Enable
+#define ADC_ACTSS_ADEN0         0x00000100  // ADC SS1 DMA Enable
+#define ADC_ACTSS_ASEN3         0x00000008  // ADC SS3 Enable
+#define ADC_ACTSS_ASEN2         0x00000004  // ADC SS2 Enable
+#define ADC_ACTSS_ASEN1         0x00000002  // ADC SS1 Enable
+#define ADC_ACTSS_ASEN0         0x00000001  // ADC SS0 Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_RIS register.
+//
+//*****************************************************************************
+#define ADC_RIS_INRDC           0x00010000  // Digital Comparator Raw Interrupt
+                                            // Status
+#define ADC_RIS_DMAINR3         0x00000800  // SS3 DMA Raw Interrupt Status
+#define ADC_RIS_DMAINR2         0x00000400  // SS2 DMA Raw Interrupt Status
+#define ADC_RIS_DMAINR1         0x00000200  // SS1 DMA Raw Interrupt Status
+#define ADC_RIS_DMAINR0         0x00000100  // SS0 DMA Raw Interrupt Status
+#define ADC_RIS_INR3            0x00000008  // SS3 Raw Interrupt Status
+#define ADC_RIS_INR2            0x00000004  // SS2 Raw Interrupt Status
+#define ADC_RIS_INR1            0x00000002  // SS1 Raw Interrupt Status
+#define ADC_RIS_INR0            0x00000001  // SS0 Raw Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_IM register.
+//
+//*****************************************************************************
+#define ADC_IM_DCONSS3          0x00080000  // Digital Comparator Interrupt on
+                                            // SS3
+#define ADC_IM_DCONSS2          0x00040000  // Digital Comparator Interrupt on
+                                            // SS2
+#define ADC_IM_DCONSS1          0x00020000  // Digital Comparator Interrupt on
+                                            // SS1
+#define ADC_IM_DCONSS0          0x00010000  // Digital Comparator Interrupt on
+                                            // SS0
+#define ADC_IM_DMAMASK3         0x00000800  // SS3 DMA Interrupt Mask
+#define ADC_IM_DMAMASK2         0x00000400  // SS2 DMA Interrupt Mask
+#define ADC_IM_DMAMASK1         0x00000200  // SS1 DMA Interrupt Mask
+#define ADC_IM_DMAMASK0         0x00000100  // SS0 DMA Interrupt Mask
+#define ADC_IM_MASK3            0x00000008  // SS3 Interrupt Mask
+#define ADC_IM_MASK2            0x00000004  // SS2 Interrupt Mask
+#define ADC_IM_MASK1            0x00000002  // SS1 Interrupt Mask
+#define ADC_IM_MASK0            0x00000001  // SS0 Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_ISC register.
+//
+//*****************************************************************************
+#define ADC_ISC_DCINSS3         0x00080000  // Digital Comparator Interrupt
+                                            // Status on SS3
+#define ADC_ISC_DCINSS2         0x00040000  // Digital Comparator Interrupt
+                                            // Status on SS2
+#define ADC_ISC_DCINSS1         0x00020000  // Digital Comparator Interrupt
+                                            // Status on SS1
+#define ADC_ISC_DCINSS0         0x00010000  // Digital Comparator Interrupt
+                                            // Status on SS0
+#define ADC_ISC_DMAIN3          0x00000800  // SS3 DMA Interrupt Status and
+                                            // Clear
+#define ADC_ISC_DMAIN2          0x00000400  // SS2 DMA Interrupt Status and
+                                            // Clear
+#define ADC_ISC_DMAIN1          0x00000200  // SS1 DMA Interrupt Status and
+                                            // Clear
+#define ADC_ISC_DMAIN0          0x00000100  // SS0 DMA Interrupt Status and
+                                            // Clear
+#define ADC_ISC_IN3             0x00000008  // SS3 Interrupt Status and Clear
+#define ADC_ISC_IN2             0x00000004  // SS2 Interrupt Status and Clear
+#define ADC_ISC_IN1             0x00000002  // SS1 Interrupt Status and Clear
+#define ADC_ISC_IN0             0x00000001  // SS0 Interrupt Status and Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_OSTAT register.
+//
+//*****************************************************************************
+#define ADC_OSTAT_OV3           0x00000008  // SS3 FIFO Overflow
+#define ADC_OSTAT_OV2           0x00000004  // SS2 FIFO Overflow
+#define ADC_OSTAT_OV1           0x00000002  // SS1 FIFO Overflow
+#define ADC_OSTAT_OV0           0x00000001  // SS0 FIFO Overflow
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_EMUX register.
+//
+//*****************************************************************************
+#define ADC_EMUX_EM3_M          0x0000F000  // SS3 Trigger Select
+#define ADC_EMUX_EM3_PROCESSOR  0x00000000  // Processor (default)
+#define ADC_EMUX_EM3_COMP0      0x00001000  // Analog Comparator 0
+#define ADC_EMUX_EM3_COMP1      0x00002000  // Analog Comparator 1
+#define ADC_EMUX_EM3_COMP2      0x00003000  // Analog Comparator 2
+#define ADC_EMUX_EM3_EXTERNAL   0x00004000  // External (GPIO Pins)
+#define ADC_EMUX_EM3_TIMER      0x00005000  // Timer
+#define ADC_EMUX_EM3_PWM0       0x00006000  // PWM generator 0
+#define ADC_EMUX_EM3_PWM1       0x00007000  // PWM generator 1
+#define ADC_EMUX_EM3_PWM2       0x00008000  // PWM generator 2
+#define ADC_EMUX_EM3_PWM3       0x00009000  // PWM generator 3
+#define ADC_EMUX_EM3_NEVER      0x0000E000  // Never Trigger
+#define ADC_EMUX_EM3_ALWAYS     0x0000F000  // Always (continuously sample)
+#define ADC_EMUX_EM2_M          0x00000F00  // SS2 Trigger Select
+#define ADC_EMUX_EM2_PROCESSOR  0x00000000  // Processor (default)
+#define ADC_EMUX_EM2_COMP0      0x00000100  // Analog Comparator 0
+#define ADC_EMUX_EM2_COMP1      0x00000200  // Analog Comparator 1
+#define ADC_EMUX_EM2_COMP2      0x00000300  // Analog Comparator 2
+#define ADC_EMUX_EM2_EXTERNAL   0x00000400  // External (GPIO Pins)
+#define ADC_EMUX_EM2_TIMER      0x00000500  // Timer
+#define ADC_EMUX_EM2_PWM0       0x00000600  // PWM generator 0
+#define ADC_EMUX_EM2_PWM1       0x00000700  // PWM generator 1
+#define ADC_EMUX_EM2_PWM2       0x00000800  // PWM generator 2
+#define ADC_EMUX_EM2_PWM3       0x00000900  // PWM generator 3
+#define ADC_EMUX_EM2_NEVER      0x00000E00  // Never Trigger
+#define ADC_EMUX_EM2_ALWAYS     0x00000F00  // Always (continuously sample)
+#define ADC_EMUX_EM1_M          0x000000F0  // SS1 Trigger Select
+#define ADC_EMUX_EM1_PROCESSOR  0x00000000  // Processor (default)
+#define ADC_EMUX_EM1_COMP0      0x00000010  // Analog Comparator 0
+#define ADC_EMUX_EM1_COMP1      0x00000020  // Analog Comparator 1
+#define ADC_EMUX_EM1_COMP2      0x00000030  // Analog Comparator 2
+#define ADC_EMUX_EM1_EXTERNAL   0x00000040  // External (GPIO Pins)
+#define ADC_EMUX_EM1_TIMER      0x00000050  // Timer
+#define ADC_EMUX_EM1_PWM0       0x00000060  // PWM generator 0
+#define ADC_EMUX_EM1_PWM1       0x00000070  // PWM generator 1
+#define ADC_EMUX_EM1_PWM2       0x00000080  // PWM generator 2
+#define ADC_EMUX_EM1_PWM3       0x00000090  // PWM generator 3
+#define ADC_EMUX_EM1_NEVER      0x000000E0  // Never Trigger
+#define ADC_EMUX_EM1_ALWAYS     0x000000F0  // Always (continuously sample)
+#define ADC_EMUX_EM0_M          0x0000000F  // SS0 Trigger Select
+#define ADC_EMUX_EM0_PROCESSOR  0x00000000  // Processor (default)
+#define ADC_EMUX_EM0_COMP0      0x00000001  // Analog Comparator 0
+#define ADC_EMUX_EM0_COMP1      0x00000002  // Analog Comparator 1
+#define ADC_EMUX_EM0_COMP2      0x00000003  // Analog Comparator 2
+#define ADC_EMUX_EM0_EXTERNAL   0x00000004  // External (GPIO Pins)
+#define ADC_EMUX_EM0_TIMER      0x00000005  // Timer
+#define ADC_EMUX_EM0_PWM0       0x00000006  // PWM generator 0
+#define ADC_EMUX_EM0_PWM1       0x00000007  // PWM generator 1
+#define ADC_EMUX_EM0_PWM2       0x00000008  // PWM generator 2
+#define ADC_EMUX_EM0_PWM3       0x00000009  // PWM generator 3
+#define ADC_EMUX_EM0_NEVER      0x0000000E  // Never Trigger
+#define ADC_EMUX_EM0_ALWAYS     0x0000000F  // Always (continuously sample)
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_USTAT register.
+//
+//*****************************************************************************
+#define ADC_USTAT_UV3           0x00000008  // SS3 FIFO Underflow
+#define ADC_USTAT_UV2           0x00000004  // SS2 FIFO Underflow
+#define ADC_USTAT_UV1           0x00000002  // SS1 FIFO Underflow
+#define ADC_USTAT_UV0           0x00000001  // SS0 FIFO Underflow
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_TSSEL register.
+//
+//*****************************************************************************
+#define ADC_TSSEL_PS3_M         0x30000000  // Generator 3 PWM Module Trigger
+                                            // Select
+#define ADC_TSSEL_PS3_0         0x00000000  // Use Generator 3 (and its
+                                            // trigger) in PWM module 0
+#define ADC_TSSEL_PS3_1         0x10000000  // Use Generator 3 (and its
+                                            // trigger) in PWM module 1
+#define ADC_TSSEL_PS2_M         0x00300000  // Generator 2 PWM Module Trigger
+                                            // Select
+#define ADC_TSSEL_PS2_0         0x00000000  // Use Generator 2 (and its
+                                            // trigger) in PWM module 0
+#define ADC_TSSEL_PS2_1         0x00100000  // Use Generator 2 (and its
+                                            // trigger) in PWM module 1
+#define ADC_TSSEL_PS1_M         0x00003000  // Generator 1 PWM Module Trigger
+                                            // Select
+#define ADC_TSSEL_PS1_0         0x00000000  // Use Generator 1 (and its
+                                            // trigger) in PWM module 0
+#define ADC_TSSEL_PS1_1         0x00001000  // Use Generator 1 (and its
+                                            // trigger) in PWM module 1
+#define ADC_TSSEL_PS0_M         0x00000030  // Generator 0 PWM Module Trigger
+                                            // Select
+#define ADC_TSSEL_PS0_0         0x00000000  // Use Generator 0 (and its
+                                            // trigger) in PWM module 0
+#define ADC_TSSEL_PS0_1         0x00000010  // Use Generator 0 (and its
+                                            // trigger) in PWM module 1
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSPRI register.
+//
+//*****************************************************************************
+#define ADC_SSPRI_SS3_M         0x00003000  // SS3 Priority
+#define ADC_SSPRI_SS2_M         0x00000300  // SS2 Priority
+#define ADC_SSPRI_SS1_M         0x00000030  // SS1 Priority
+#define ADC_SSPRI_SS0_M         0x00000003  // SS0 Priority
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SPC register.
+//
+//*****************************************************************************
+#define ADC_SPC_PHASE_M         0x0000000F  // Phase Difference
+#define ADC_SPC_PHASE_0         0x00000000  // ADC sample lags by 0.0
+#define ADC_SPC_PHASE_22_5      0x00000001  // ADC sample lags by 22.5
+#define ADC_SPC_PHASE_45        0x00000002  // ADC sample lags by 45.0
+#define ADC_SPC_PHASE_67_5      0x00000003  // ADC sample lags by 67.5
+#define ADC_SPC_PHASE_90        0x00000004  // ADC sample lags by 90.0
+#define ADC_SPC_PHASE_112_5     0x00000005  // ADC sample lags by 112.5
+#define ADC_SPC_PHASE_135       0x00000006  // ADC sample lags by 135.0
+#define ADC_SPC_PHASE_157_5     0x00000007  // ADC sample lags by 157.5
+#define ADC_SPC_PHASE_180       0x00000008  // ADC sample lags by 180.0
+#define ADC_SPC_PHASE_202_5     0x00000009  // ADC sample lags by 202.5
+#define ADC_SPC_PHASE_225       0x0000000A  // ADC sample lags by 225.0
+#define ADC_SPC_PHASE_247_5     0x0000000B  // ADC sample lags by 247.5
+#define ADC_SPC_PHASE_270       0x0000000C  // ADC sample lags by 270.0
+#define ADC_SPC_PHASE_292_5     0x0000000D  // ADC sample lags by 292.5
+#define ADC_SPC_PHASE_315       0x0000000E  // ADC sample lags by 315.0
+#define ADC_SPC_PHASE_337_5     0x0000000F  // ADC sample lags by 337.5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_PSSI register.
+//
+//*****************************************************************************
+#define ADC_PSSI_GSYNC          0x80000000  // Global Synchronize
+#define ADC_PSSI_SYNCWAIT       0x08000000  // Synchronize Wait
+#define ADC_PSSI_SS3            0x00000008  // SS3 Initiate
+#define ADC_PSSI_SS2            0x00000004  // SS2 Initiate
+#define ADC_PSSI_SS1            0x00000002  // SS1 Initiate
+#define ADC_PSSI_SS0            0x00000001  // SS0 Initiate
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SAC register.
+//
+//*****************************************************************************
+#define ADC_SAC_AVG_M           0x00000007  // Hardware Averaging Control
+#define ADC_SAC_AVG_OFF         0x00000000  // No hardware oversampling
+#define ADC_SAC_AVG_2X          0x00000001  // 2x hardware oversampling
+#define ADC_SAC_AVG_4X          0x00000002  // 4x hardware oversampling
+#define ADC_SAC_AVG_8X          0x00000003  // 8x hardware oversampling
+#define ADC_SAC_AVG_16X         0x00000004  // 16x hardware oversampling
+#define ADC_SAC_AVG_32X         0x00000005  // 32x hardware oversampling
+#define ADC_SAC_AVG_64X         0x00000006  // 64x hardware oversampling
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCISC register.
+//
+//*****************************************************************************
+#define ADC_DCISC_DCINT7        0x00000080  // Digital Comparator 7 Interrupt
+                                            // Status and Clear
+#define ADC_DCISC_DCINT6        0x00000040  // Digital Comparator 6 Interrupt
+                                            // Status and Clear
+#define ADC_DCISC_DCINT5        0x00000020  // Digital Comparator 5 Interrupt
+                                            // Status and Clear
+#define ADC_DCISC_DCINT4        0x00000010  // Digital Comparator 4 Interrupt
+                                            // Status and Clear
+#define ADC_DCISC_DCINT3        0x00000008  // Digital Comparator 3 Interrupt
+                                            // Status and Clear
+#define ADC_DCISC_DCINT2        0x00000004  // Digital Comparator 2 Interrupt
+                                            // Status and Clear
+#define ADC_DCISC_DCINT1        0x00000002  // Digital Comparator 1 Interrupt
+                                            // Status and Clear
+#define ADC_DCISC_DCINT0        0x00000001  // Digital Comparator 0 Interrupt
+                                            // Status and Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_CTL register.
+//
+//*****************************************************************************
+#define ADC_CTL_VREF_M          0x00000003  // Voltage Reference Select
+#define ADC_CTL_VREF_INTERNAL   0x00000000  // VDDA and GNDA are the voltage
+                                            // references
+#define ADC_CTL_VREF_EXT_3V     0x00000001  // The external VREFA+ and VREFA-
+                                            // inputs are the voltage
+                                            // references
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSMUX0 register.
+//
+//*****************************************************************************
+#define ADC_SSMUX0_MUX7_M       0xF0000000  // 8th Sample Input Select
+#define ADC_SSMUX0_MUX6_M       0x0F000000  // 7th Sample Input Select
+#define ADC_SSMUX0_MUX5_M       0x00F00000  // 6th Sample Input Select
+#define ADC_SSMUX0_MUX4_M       0x000F0000  // 5th Sample Input Select
+#define ADC_SSMUX0_MUX3_M       0x0000F000  // 4th Sample Input Select
+#define ADC_SSMUX0_MUX2_M       0x00000F00  // 3rd Sample Input Select
+#define ADC_SSMUX0_MUX1_M       0x000000F0  // 2nd Sample Input Select
+#define ADC_SSMUX0_MUX0_M       0x0000000F  // 1st Sample Input Select
+#define ADC_SSMUX0_MUX7_S       28
+#define ADC_SSMUX0_MUX6_S       24
+#define ADC_SSMUX0_MUX5_S       20
+#define ADC_SSMUX0_MUX4_S       16
+#define ADC_SSMUX0_MUX3_S       12
+#define ADC_SSMUX0_MUX2_S       8
+#define ADC_SSMUX0_MUX1_S       4
+#define ADC_SSMUX0_MUX0_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSCTL0 register.
+//
+//*****************************************************************************
+#define ADC_SSCTL0_TS7          0x80000000  // 8th Sample Temp Sensor Select
+#define ADC_SSCTL0_IE7          0x40000000  // 8th Sample Interrupt Enable
+#define ADC_SSCTL0_END7         0x20000000  // 8th Sample is End of Sequence
+#define ADC_SSCTL0_D7           0x10000000  // 8th Sample Differential Input
+                                            // Select
+#define ADC_SSCTL0_TS6          0x08000000  // 7th Sample Temp Sensor Select
+#define ADC_SSCTL0_IE6          0x04000000  // 7th Sample Interrupt Enable
+#define ADC_SSCTL0_END6         0x02000000  // 7th Sample is End of Sequence
+#define ADC_SSCTL0_D6           0x01000000  // 7th Sample Differential Input
+                                            // Select
+#define ADC_SSCTL0_TS5          0x00800000  // 6th Sample Temp Sensor Select
+#define ADC_SSCTL0_IE5          0x00400000  // 6th Sample Interrupt Enable
+#define ADC_SSCTL0_END5         0x00200000  // 6th Sample is End of Sequence
+#define ADC_SSCTL0_D5           0x00100000  // 6th Sample Differential Input
+                                            // Select
+#define ADC_SSCTL0_TS4          0x00080000  // 5th Sample Temp Sensor Select
+#define ADC_SSCTL0_IE4          0x00040000  // 5th Sample Interrupt Enable
+#define ADC_SSCTL0_END4         0x00020000  // 5th Sample is End of Sequence
+#define ADC_SSCTL0_D4           0x00010000  // 5th Sample Differential Input
+                                            // Select
+#define ADC_SSCTL0_TS3          0x00008000  // 4th Sample Temp Sensor Select
+#define ADC_SSCTL0_IE3          0x00004000  // 4th Sample Interrupt Enable
+#define ADC_SSCTL0_END3         0x00002000  // 4th Sample is End of Sequence
+#define ADC_SSCTL0_D3           0x00001000  // 4th Sample Differential Input
+                                            // Select
+#define ADC_SSCTL0_TS2          0x00000800  // 3rd Sample Temp Sensor Select
+#define ADC_SSCTL0_IE2          0x00000400  // 3rd Sample Interrupt Enable
+#define ADC_SSCTL0_END2         0x00000200  // 3rd Sample is End of Sequence
+#define ADC_SSCTL0_D2           0x00000100  // 3rd Sample Differential Input
+                                            // Select
+#define ADC_SSCTL0_TS1          0x00000080  // 2nd Sample Temp Sensor Select
+#define ADC_SSCTL0_IE1          0x00000040  // 2nd Sample Interrupt Enable
+#define ADC_SSCTL0_END1         0x00000020  // 2nd Sample is End of Sequence
+#define ADC_SSCTL0_D1           0x00000010  // 2nd Sample Differential Input
+                                            // Select
+#define ADC_SSCTL0_TS0          0x00000008  // 1st Sample Temp Sensor Select
+#define ADC_SSCTL0_IE0          0x00000004  // 1st Sample Interrupt Enable
+#define ADC_SSCTL0_END0         0x00000002  // 1st Sample is End of Sequence
+#define ADC_SSCTL0_D0           0x00000001  // 1st Sample Differential Input
+                                            // Select
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSFIFO0 register.
+//
+//*****************************************************************************
+#define ADC_SSFIFO0_DATA_M      0x00000FFF  // Conversion Result Data
+#define ADC_SSFIFO0_DATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSFSTAT0 register.
+//
+//*****************************************************************************
+#define ADC_SSFSTAT0_FULL       0x00001000  // FIFO Full
+#define ADC_SSFSTAT0_EMPTY      0x00000100  // FIFO Empty
+#define ADC_SSFSTAT0_HPTR_M     0x000000F0  // FIFO Head Pointer
+#define ADC_SSFSTAT0_TPTR_M     0x0000000F  // FIFO Tail Pointer
+#define ADC_SSFSTAT0_HPTR_S     4
+#define ADC_SSFSTAT0_TPTR_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSOP0 register.
+//
+//*****************************************************************************
+#define ADC_SSOP0_S7DCOP        0x10000000  // Sample 7 Digital Comparator
+                                            // Operation
+#define ADC_SSOP0_S6DCOP        0x01000000  // Sample 6 Digital Comparator
+                                            // Operation
+#define ADC_SSOP0_S5DCOP        0x00100000  // Sample 5 Digital Comparator
+                                            // Operation
+#define ADC_SSOP0_S4DCOP        0x00010000  // Sample 4 Digital Comparator
+                                            // Operation
+#define ADC_SSOP0_S3DCOP        0x00001000  // Sample 3 Digital Comparator
+                                            // Operation
+#define ADC_SSOP0_S2DCOP        0x00000100  // Sample 2 Digital Comparator
+                                            // Operation
+#define ADC_SSOP0_S1DCOP        0x00000010  // Sample 1 Digital Comparator
+                                            // Operation
+#define ADC_SSOP0_S0DCOP        0x00000001  // Sample 0 Digital Comparator
+                                            // Operation
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSDC0 register.
+//
+//*****************************************************************************
+#define ADC_SSDC0_S7DCSEL_M     0xF0000000  // Sample 7 Digital Comparator
+                                            // Select
+#define ADC_SSDC0_S6DCSEL_M     0x0F000000  // Sample 6 Digital Comparator
+                                            // Select
+#define ADC_SSDC0_S5DCSEL_M     0x00F00000  // Sample 5 Digital Comparator
+                                            // Select
+#define ADC_SSDC0_S4DCSEL_M     0x000F0000  // Sample 4 Digital Comparator
+                                            // Select
+#define ADC_SSDC0_S3DCSEL_M     0x0000F000  // Sample 3 Digital Comparator
+                                            // Select
+#define ADC_SSDC0_S2DCSEL_M     0x00000F00  // Sample 2 Digital Comparator
+                                            // Select
+#define ADC_SSDC0_S1DCSEL_M     0x000000F0  // Sample 1 Digital Comparator
+                                            // Select
+#define ADC_SSDC0_S0DCSEL_M     0x0000000F  // Sample 0 Digital Comparator
+                                            // Select
+#define ADC_SSDC0_S6DCSEL_S     24
+#define ADC_SSDC0_S5DCSEL_S     20
+#define ADC_SSDC0_S4DCSEL_S     16
+#define ADC_SSDC0_S3DCSEL_S     12
+#define ADC_SSDC0_S2DCSEL_S     8
+#define ADC_SSDC0_S1DCSEL_S     4
+#define ADC_SSDC0_S0DCSEL_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSEMUX0 register.
+//
+//*****************************************************************************
+#define ADC_SSEMUX0_EMUX7       0x10000000  // 8th Sample Input Select (Upper
+                                            // Bit)
+#define ADC_SSEMUX0_EMUX6       0x01000000  // 7th Sample Input Select (Upper
+                                            // Bit)
+#define ADC_SSEMUX0_EMUX5       0x00100000  // 6th Sample Input Select (Upper
+                                            // Bit)
+#define ADC_SSEMUX0_EMUX4       0x00010000  // 5th Sample Input Select (Upper
+                                            // Bit)
+#define ADC_SSEMUX0_EMUX3       0x00001000  // 4th Sample Input Select (Upper
+                                            // Bit)
+#define ADC_SSEMUX0_EMUX2       0x00000100  // 3rd Sample Input Select (Upper
+                                            // Bit)
+#define ADC_SSEMUX0_EMUX1       0x00000010  // 2th Sample Input Select (Upper
+                                            // Bit)
+#define ADC_SSEMUX0_EMUX0       0x00000001  // 1st Sample Input Select (Upper
+                                            // Bit)
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSTSH0 register.
+//
+//*****************************************************************************
+#define ADC_SSTSH0_TSH7_M       0xF0000000  // 8th Sample and Hold Period
+                                            // Select
+#define ADC_SSTSH0_TSH6_M       0x0F000000  // 7th Sample and Hold Period
+                                            // Select
+#define ADC_SSTSH0_TSH5_M       0x00F00000  // 6th Sample and Hold Period
+                                            // Select
+#define ADC_SSTSH0_TSH4_M       0x000F0000  // 5th Sample and Hold Period
+                                            // Select
+#define ADC_SSTSH0_TSH3_M       0x0000F000  // 4th Sample and Hold Period
+                                            // Select
+#define ADC_SSTSH0_TSH2_M       0x00000F00  // 3rd Sample and Hold Period
+                                            // Select
+#define ADC_SSTSH0_TSH1_M       0x000000F0  // 2nd Sample and Hold Period
+                                            // Select
+#define ADC_SSTSH0_TSH0_M       0x0000000F  // 1st Sample and Hold Period
+                                            // Select
+#define ADC_SSTSH0_TSH7_S       28
+#define ADC_SSTSH0_TSH6_S       24
+#define ADC_SSTSH0_TSH5_S       20
+#define ADC_SSTSH0_TSH4_S       16
+#define ADC_SSTSH0_TSH3_S       12
+#define ADC_SSTSH0_TSH2_S       8
+#define ADC_SSTSH0_TSH1_S       4
+#define ADC_SSTSH0_TSH0_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSMUX1 register.
+//
+//*****************************************************************************
+#define ADC_SSMUX1_MUX3_M       0x0000F000  // 4th Sample Input Select
+#define ADC_SSMUX1_MUX2_M       0x00000F00  // 3rd Sample Input Select
+#define ADC_SSMUX1_MUX1_M       0x000000F0  // 2nd Sample Input Select
+#define ADC_SSMUX1_MUX0_M       0x0000000F  // 1st Sample Input Select
+#define ADC_SSMUX1_MUX3_S       12
+#define ADC_SSMUX1_MUX2_S       8
+#define ADC_SSMUX1_MUX1_S       4
+#define ADC_SSMUX1_MUX0_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSCTL1 register.
+//
+//*****************************************************************************
+#define ADC_SSCTL1_TS3          0x00008000  // 4th Sample Temp Sensor Select
+#define ADC_SSCTL1_IE3          0x00004000  // 4th Sample Interrupt Enable
+#define ADC_SSCTL1_END3         0x00002000  // 4th Sample is End of Sequence
+#define ADC_SSCTL1_D3           0x00001000  // 4th Sample Differential Input
+                                            // Select
+#define ADC_SSCTL1_TS2          0x00000800  // 3rd Sample Temp Sensor Select
+#define ADC_SSCTL1_IE2          0x00000400  // 3rd Sample Interrupt Enable
+#define ADC_SSCTL1_END2         0x00000200  // 3rd Sample is End of Sequence
+#define ADC_SSCTL1_D2           0x00000100  // 3rd Sample Differential Input
+                                            // Select
+#define ADC_SSCTL1_TS1          0x00000080  // 2nd Sample Temp Sensor Select
+#define ADC_SSCTL1_IE1          0x00000040  // 2nd Sample Interrupt Enable
+#define ADC_SSCTL1_END1         0x00000020  // 2nd Sample is End of Sequence
+#define ADC_SSCTL1_D1           0x00000010  // 2nd Sample Differential Input
+                                            // Select
+#define ADC_SSCTL1_TS0          0x00000008  // 1st Sample Temp Sensor Select
+#define ADC_SSCTL1_IE0          0x00000004  // 1st Sample Interrupt Enable
+#define ADC_SSCTL1_END0         0x00000002  // 1st Sample is End of Sequence
+#define ADC_SSCTL1_D0           0x00000001  // 1st Sample Differential Input
+                                            // Select
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSFIFO1 register.
+//
+//*****************************************************************************
+#define ADC_SSFIFO1_DATA_M      0x00000FFF  // Conversion Result Data
+#define ADC_SSFIFO1_DATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSFSTAT1 register.
+//
+//*****************************************************************************
+#define ADC_SSFSTAT1_FULL       0x00001000  // FIFO Full
+#define ADC_SSFSTAT1_EMPTY      0x00000100  // FIFO Empty
+#define ADC_SSFSTAT1_HPTR_M     0x000000F0  // FIFO Head Pointer
+#define ADC_SSFSTAT1_TPTR_M     0x0000000F  // FIFO Tail Pointer
+#define ADC_SSFSTAT1_HPTR_S     4
+#define ADC_SSFSTAT1_TPTR_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSOP1 register.
+//
+//*****************************************************************************
+#define ADC_SSOP1_S3DCOP        0x00001000  // Sample 3 Digital Comparator
+                                            // Operation
+#define ADC_SSOP1_S2DCOP        0x00000100  // Sample 2 Digital Comparator
+                                            // Operation
+#define ADC_SSOP1_S1DCOP        0x00000010  // Sample 1 Digital Comparator
+                                            // Operation
+#define ADC_SSOP1_S0DCOP        0x00000001  // Sample 0 Digital Comparator
+                                            // Operation
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSDC1 register.
+//
+//*****************************************************************************
+#define ADC_SSDC1_S3DCSEL_M     0x0000F000  // Sample 3 Digital Comparator
+                                            // Select
+#define ADC_SSDC1_S2DCSEL_M     0x00000F00  // Sample 2 Digital Comparator
+                                            // Select
+#define ADC_SSDC1_S1DCSEL_M     0x000000F0  // Sample 1 Digital Comparator
+                                            // Select
+#define ADC_SSDC1_S0DCSEL_M     0x0000000F  // Sample 0 Digital Comparator
+                                            // Select
+#define ADC_SSDC1_S2DCSEL_S     8
+#define ADC_SSDC1_S1DCSEL_S     4
+#define ADC_SSDC1_S0DCSEL_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSEMUX1 register.
+//
+//*****************************************************************************
+#define ADC_SSEMUX1_EMUX3       0x00001000  // 4th Sample Input Select (Upper
+                                            // Bit)
+#define ADC_SSEMUX1_EMUX2       0x00000100  // 3rd Sample Input Select (Upper
+                                            // Bit)
+#define ADC_SSEMUX1_EMUX1       0x00000010  // 2th Sample Input Select (Upper
+                                            // Bit)
+#define ADC_SSEMUX1_EMUX0       0x00000001  // 1st Sample Input Select (Upper
+                                            // Bit)
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSTSH1 register.
+//
+//*****************************************************************************
+#define ADC_SSTSH1_TSH3_M       0x0000F000  // 4th Sample and Hold Period
+                                            // Select
+#define ADC_SSTSH1_TSH2_M       0x00000F00  // 3rd Sample and Hold Period
+                                            // Select
+#define ADC_SSTSH1_TSH1_M       0x000000F0  // 2nd Sample and Hold Period
+                                            // Select
+#define ADC_SSTSH1_TSH0_M       0x0000000F  // 1st Sample and Hold Period
+                                            // Select
+#define ADC_SSTSH1_TSH3_S       12
+#define ADC_SSTSH1_TSH2_S       8
+#define ADC_SSTSH1_TSH1_S       4
+#define ADC_SSTSH1_TSH0_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSMUX2 register.
+//
+//*****************************************************************************
+#define ADC_SSMUX2_MUX3_M       0x0000F000  // 4th Sample Input Select
+#define ADC_SSMUX2_MUX2_M       0x00000F00  // 3rd Sample Input Select
+#define ADC_SSMUX2_MUX1_M       0x000000F0  // 2nd Sample Input Select
+#define ADC_SSMUX2_MUX0_M       0x0000000F  // 1st Sample Input Select
+#define ADC_SSMUX2_MUX3_S       12
+#define ADC_SSMUX2_MUX2_S       8
+#define ADC_SSMUX2_MUX1_S       4
+#define ADC_SSMUX2_MUX0_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSCTL2 register.
+//
+//*****************************************************************************
+#define ADC_SSCTL2_TS3          0x00008000  // 4th Sample Temp Sensor Select
+#define ADC_SSCTL2_IE3          0x00004000  // 4th Sample Interrupt Enable
+#define ADC_SSCTL2_END3         0x00002000  // 4th Sample is End of Sequence
+#define ADC_SSCTL2_D3           0x00001000  // 4th Sample Differential Input
+                                            // Select
+#define ADC_SSCTL2_TS2          0x00000800  // 3rd Sample Temp Sensor Select
+#define ADC_SSCTL2_IE2          0x00000400  // 3rd Sample Interrupt Enable
+#define ADC_SSCTL2_END2         0x00000200  // 3rd Sample is End of Sequence
+#define ADC_SSCTL2_D2           0x00000100  // 3rd Sample Differential Input
+                                            // Select
+#define ADC_SSCTL2_TS1          0x00000080  // 2nd Sample Temp Sensor Select
+#define ADC_SSCTL2_IE1          0x00000040  // 2nd Sample Interrupt Enable
+#define ADC_SSCTL2_END1         0x00000020  // 2nd Sample is End of Sequence
+#define ADC_SSCTL2_D1           0x00000010  // 2nd Sample Differential Input
+                                            // Select
+#define ADC_SSCTL2_TS0          0x00000008  // 1st Sample Temp Sensor Select
+#define ADC_SSCTL2_IE0          0x00000004  // 1st Sample Interrupt Enable
+#define ADC_SSCTL2_END0         0x00000002  // 1st Sample is End of Sequence
+#define ADC_SSCTL2_D0           0x00000001  // 1st Sample Differential Input
+                                            // Select
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSFIFO2 register.
+//
+//*****************************************************************************
+#define ADC_SSFIFO2_DATA_M      0x00000FFF  // Conversion Result Data
+#define ADC_SSFIFO2_DATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSFSTAT2 register.
+//
+//*****************************************************************************
+#define ADC_SSFSTAT2_FULL       0x00001000  // FIFO Full
+#define ADC_SSFSTAT2_EMPTY      0x00000100  // FIFO Empty
+#define ADC_SSFSTAT2_HPTR_M     0x000000F0  // FIFO Head Pointer
+#define ADC_SSFSTAT2_TPTR_M     0x0000000F  // FIFO Tail Pointer
+#define ADC_SSFSTAT2_HPTR_S     4
+#define ADC_SSFSTAT2_TPTR_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSOP2 register.
+//
+//*****************************************************************************
+#define ADC_SSOP2_S3DCOP        0x00001000  // Sample 3 Digital Comparator
+                                            // Operation
+#define ADC_SSOP2_S2DCOP        0x00000100  // Sample 2 Digital Comparator
+                                            // Operation
+#define ADC_SSOP2_S1DCOP        0x00000010  // Sample 1 Digital Comparator
+                                            // Operation
+#define ADC_SSOP2_S0DCOP        0x00000001  // Sample 0 Digital Comparator
+                                            // Operation
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSDC2 register.
+//
+//*****************************************************************************
+#define ADC_SSDC2_S3DCSEL_M     0x0000F000  // Sample 3 Digital Comparator
+                                            // Select
+#define ADC_SSDC2_S2DCSEL_M     0x00000F00  // Sample 2 Digital Comparator
+                                            // Select
+#define ADC_SSDC2_S1DCSEL_M     0x000000F0  // Sample 1 Digital Comparator
+                                            // Select
+#define ADC_SSDC2_S0DCSEL_M     0x0000000F  // Sample 0 Digital Comparator
+                                            // Select
+#define ADC_SSDC2_S2DCSEL_S     8
+#define ADC_SSDC2_S1DCSEL_S     4
+#define ADC_SSDC2_S0DCSEL_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSEMUX2 register.
+//
+//*****************************************************************************
+#define ADC_SSEMUX2_EMUX3       0x00001000  // 4th Sample Input Select (Upper
+                                            // Bit)
+#define ADC_SSEMUX2_EMUX2       0x00000100  // 3rd Sample Input Select (Upper
+                                            // Bit)
+#define ADC_SSEMUX2_EMUX1       0x00000010  // 2th Sample Input Select (Upper
+                                            // Bit)
+#define ADC_SSEMUX2_EMUX0       0x00000001  // 1st Sample Input Select (Upper
+                                            // Bit)
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSTSH2 register.
+//
+//*****************************************************************************
+#define ADC_SSTSH2_TSH3_M       0x0000F000  // 4th Sample and Hold Period
+                                            // Select
+#define ADC_SSTSH2_TSH2_M       0x00000F00  // 3rd Sample and Hold Period
+                                            // Select
+#define ADC_SSTSH2_TSH1_M       0x000000F0  // 2nd Sample and Hold Period
+                                            // Select
+#define ADC_SSTSH2_TSH0_M       0x0000000F  // 1st Sample and Hold Period
+                                            // Select
+#define ADC_SSTSH2_TSH3_S       12
+#define ADC_SSTSH2_TSH2_S       8
+#define ADC_SSTSH2_TSH1_S       4
+#define ADC_SSTSH2_TSH0_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSMUX3 register.
+//
+//*****************************************************************************
+#define ADC_SSMUX3_MUX0_M       0x0000000F  // 1st Sample Input Select
+#define ADC_SSMUX3_MUX0_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSCTL3 register.
+//
+//*****************************************************************************
+#define ADC_SSCTL3_TS0          0x00000008  // 1st Sample Temp Sensor Select
+#define ADC_SSCTL3_IE0          0x00000004  // Sample Interrupt Enable
+#define ADC_SSCTL3_END0         0x00000002  // End of Sequence
+#define ADC_SSCTL3_D0           0x00000001  // Sample Differential Input Select
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSFIFO3 register.
+//
+//*****************************************************************************
+#define ADC_SSFIFO3_DATA_M      0x00000FFF  // Conversion Result Data
+#define ADC_SSFIFO3_DATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSFSTAT3 register.
+//
+//*****************************************************************************
+#define ADC_SSFSTAT3_FULL       0x00001000  // FIFO Full
+#define ADC_SSFSTAT3_EMPTY      0x00000100  // FIFO Empty
+#define ADC_SSFSTAT3_HPTR_M     0x000000F0  // FIFO Head Pointer
+#define ADC_SSFSTAT3_TPTR_M     0x0000000F  // FIFO Tail Pointer
+#define ADC_SSFSTAT3_HPTR_S     4
+#define ADC_SSFSTAT3_TPTR_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSOP3 register.
+//
+//*****************************************************************************
+#define ADC_SSOP3_S0DCOP        0x00000001  // Sample 0 Digital Comparator
+                                            // Operation
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSDC3 register.
+//
+//*****************************************************************************
+#define ADC_SSDC3_S0DCSEL_M     0x0000000F  // Sample 0 Digital Comparator
+                                            // Select
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSEMUX3 register.
+//
+//*****************************************************************************
+#define ADC_SSEMUX3_EMUX0       0x00000001  // 1st Sample Input Select (Upper
+                                            // Bit)
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSTSH3 register.
+//
+//*****************************************************************************
+#define ADC_SSTSH3_TSH0_M       0x0000000F  // 1st Sample and Hold Period
+                                            // Select
+#define ADC_SSTSH3_TSH0_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCRIC register.
+//
+//*****************************************************************************
+#define ADC_DCRIC_DCTRIG7       0x00800000  // Digital Comparator Trigger 7
+#define ADC_DCRIC_DCTRIG6       0x00400000  // Digital Comparator Trigger 6
+#define ADC_DCRIC_DCTRIG5       0x00200000  // Digital Comparator Trigger 5
+#define ADC_DCRIC_DCTRIG4       0x00100000  // Digital Comparator Trigger 4
+#define ADC_DCRIC_DCTRIG3       0x00080000  // Digital Comparator Trigger 3
+#define ADC_DCRIC_DCTRIG2       0x00040000  // Digital Comparator Trigger 2
+#define ADC_DCRIC_DCTRIG1       0x00020000  // Digital Comparator Trigger 1
+#define ADC_DCRIC_DCTRIG0       0x00010000  // Digital Comparator Trigger 0
+#define ADC_DCRIC_DCINT7        0x00000080  // Digital Comparator Interrupt 7
+#define ADC_DCRIC_DCINT6        0x00000040  // Digital Comparator Interrupt 6
+#define ADC_DCRIC_DCINT5        0x00000020  // Digital Comparator Interrupt 5
+#define ADC_DCRIC_DCINT4        0x00000010  // Digital Comparator Interrupt 4
+#define ADC_DCRIC_DCINT3        0x00000008  // Digital Comparator Interrupt 3
+#define ADC_DCRIC_DCINT2        0x00000004  // Digital Comparator Interrupt 2
+#define ADC_DCRIC_DCINT1        0x00000002  // Digital Comparator Interrupt 1
+#define ADC_DCRIC_DCINT0        0x00000001  // Digital Comparator Interrupt 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCTL0 register.
+//
+//*****************************************************************************
+#define ADC_DCCTL0_CTE          0x00001000  // Comparison Trigger Enable
+#define ADC_DCCTL0_CTC_M        0x00000C00  // Comparison Trigger Condition
+#define ADC_DCCTL0_CTC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL0_CTC_MID      0x00000400  // Mid Band
+#define ADC_DCCTL0_CTC_HIGH     0x00000C00  // High Band
+#define ADC_DCCTL0_CTM_M        0x00000300  // Comparison Trigger Mode
+#define ADC_DCCTL0_CTM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL0_CTM_ONCE     0x00000100  // Once
+#define ADC_DCCTL0_CTM_HALWAYS  0x00000200  // Hysteresis Always
+#define ADC_DCCTL0_CTM_HONCE    0x00000300  // Hysteresis Once
+#define ADC_DCCTL0_CIE          0x00000010  // Comparison Interrupt Enable
+#define ADC_DCCTL0_CIC_M        0x0000000C  // Comparison Interrupt Condition
+#define ADC_DCCTL0_CIC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL0_CIC_MID      0x00000004  // Mid Band
+#define ADC_DCCTL0_CIC_HIGH     0x0000000C  // High Band
+#define ADC_DCCTL0_CIM_M        0x00000003  // Comparison Interrupt Mode
+#define ADC_DCCTL0_CIM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL0_CIM_ONCE     0x00000001  // Once
+#define ADC_DCCTL0_CIM_HALWAYS  0x00000002  // Hysteresis Always
+#define ADC_DCCTL0_CIM_HONCE    0x00000003  // Hysteresis Once
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCTL1 register.
+//
+//*****************************************************************************
+#define ADC_DCCTL1_CTE          0x00001000  // Comparison Trigger Enable
+#define ADC_DCCTL1_CTC_M        0x00000C00  // Comparison Trigger Condition
+#define ADC_DCCTL1_CTC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL1_CTC_MID      0x00000400  // Mid Band
+#define ADC_DCCTL1_CTC_HIGH     0x00000C00  // High Band
+#define ADC_DCCTL1_CTM_M        0x00000300  // Comparison Trigger Mode
+#define ADC_DCCTL1_CTM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL1_CTM_ONCE     0x00000100  // Once
+#define ADC_DCCTL1_CTM_HALWAYS  0x00000200  // Hysteresis Always
+#define ADC_DCCTL1_CTM_HONCE    0x00000300  // Hysteresis Once
+#define ADC_DCCTL1_CIE          0x00000010  // Comparison Interrupt Enable
+#define ADC_DCCTL1_CIC_M        0x0000000C  // Comparison Interrupt Condition
+#define ADC_DCCTL1_CIC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL1_CIC_MID      0x00000004  // Mid Band
+#define ADC_DCCTL1_CIC_HIGH     0x0000000C  // High Band
+#define ADC_DCCTL1_CIM_M        0x00000003  // Comparison Interrupt Mode
+#define ADC_DCCTL1_CIM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL1_CIM_ONCE     0x00000001  // Once
+#define ADC_DCCTL1_CIM_HALWAYS  0x00000002  // Hysteresis Always
+#define ADC_DCCTL1_CIM_HONCE    0x00000003  // Hysteresis Once
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCTL2 register.
+//
+//*****************************************************************************
+#define ADC_DCCTL2_CTE          0x00001000  // Comparison Trigger Enable
+#define ADC_DCCTL2_CTC_M        0x00000C00  // Comparison Trigger Condition
+#define ADC_DCCTL2_CTC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL2_CTC_MID      0x00000400  // Mid Band
+#define ADC_DCCTL2_CTC_HIGH     0x00000C00  // High Band
+#define ADC_DCCTL2_CTM_M        0x00000300  // Comparison Trigger Mode
+#define ADC_DCCTL2_CTM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL2_CTM_ONCE     0x00000100  // Once
+#define ADC_DCCTL2_CTM_HALWAYS  0x00000200  // Hysteresis Always
+#define ADC_DCCTL2_CTM_HONCE    0x00000300  // Hysteresis Once
+#define ADC_DCCTL2_CIE          0x00000010  // Comparison Interrupt Enable
+#define ADC_DCCTL2_CIC_M        0x0000000C  // Comparison Interrupt Condition
+#define ADC_DCCTL2_CIC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL2_CIC_MID      0x00000004  // Mid Band
+#define ADC_DCCTL2_CIC_HIGH     0x0000000C  // High Band
+#define ADC_DCCTL2_CIM_M        0x00000003  // Comparison Interrupt Mode
+#define ADC_DCCTL2_CIM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL2_CIM_ONCE     0x00000001  // Once
+#define ADC_DCCTL2_CIM_HALWAYS  0x00000002  // Hysteresis Always
+#define ADC_DCCTL2_CIM_HONCE    0x00000003  // Hysteresis Once
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCTL3 register.
+//
+//*****************************************************************************
+#define ADC_DCCTL3_CTE          0x00001000  // Comparison Trigger Enable
+#define ADC_DCCTL3_CTC_M        0x00000C00  // Comparison Trigger Condition
+#define ADC_DCCTL3_CTC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL3_CTC_MID      0x00000400  // Mid Band
+#define ADC_DCCTL3_CTC_HIGH     0x00000C00  // High Band
+#define ADC_DCCTL3_CTM_M        0x00000300  // Comparison Trigger Mode
+#define ADC_DCCTL3_CTM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL3_CTM_ONCE     0x00000100  // Once
+#define ADC_DCCTL3_CTM_HALWAYS  0x00000200  // Hysteresis Always
+#define ADC_DCCTL3_CTM_HONCE    0x00000300  // Hysteresis Once
+#define ADC_DCCTL3_CIE          0x00000010  // Comparison Interrupt Enable
+#define ADC_DCCTL3_CIC_M        0x0000000C  // Comparison Interrupt Condition
+#define ADC_DCCTL3_CIC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL3_CIC_MID      0x00000004  // Mid Band
+#define ADC_DCCTL3_CIC_HIGH     0x0000000C  // High Band
+#define ADC_DCCTL3_CIM_M        0x00000003  // Comparison Interrupt Mode
+#define ADC_DCCTL3_CIM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL3_CIM_ONCE     0x00000001  // Once
+#define ADC_DCCTL3_CIM_HALWAYS  0x00000002  // Hysteresis Always
+#define ADC_DCCTL3_CIM_HONCE    0x00000003  // Hysteresis Once
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCTL4 register.
+//
+//*****************************************************************************
+#define ADC_DCCTL4_CTE          0x00001000  // Comparison Trigger Enable
+#define ADC_DCCTL4_CTC_M        0x00000C00  // Comparison Trigger Condition
+#define ADC_DCCTL4_CTC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL4_CTC_MID      0x00000400  // Mid Band
+#define ADC_DCCTL4_CTC_HIGH     0x00000C00  // High Band
+#define ADC_DCCTL4_CTM_M        0x00000300  // Comparison Trigger Mode
+#define ADC_DCCTL4_CTM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL4_CTM_ONCE     0x00000100  // Once
+#define ADC_DCCTL4_CTM_HALWAYS  0x00000200  // Hysteresis Always
+#define ADC_DCCTL4_CTM_HONCE    0x00000300  // Hysteresis Once
+#define ADC_DCCTL4_CIE          0x00000010  // Comparison Interrupt Enable
+#define ADC_DCCTL4_CIC_M        0x0000000C  // Comparison Interrupt Condition
+#define ADC_DCCTL4_CIC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL4_CIC_MID      0x00000004  // Mid Band
+#define ADC_DCCTL4_CIC_HIGH     0x0000000C  // High Band
+#define ADC_DCCTL4_CIM_M        0x00000003  // Comparison Interrupt Mode
+#define ADC_DCCTL4_CIM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL4_CIM_ONCE     0x00000001  // Once
+#define ADC_DCCTL4_CIM_HALWAYS  0x00000002  // Hysteresis Always
+#define ADC_DCCTL4_CIM_HONCE    0x00000003  // Hysteresis Once
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCTL5 register.
+//
+//*****************************************************************************
+#define ADC_DCCTL5_CTE          0x00001000  // Comparison Trigger Enable
+#define ADC_DCCTL5_CTC_M        0x00000C00  // Comparison Trigger Condition
+#define ADC_DCCTL5_CTC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL5_CTC_MID      0x00000400  // Mid Band
+#define ADC_DCCTL5_CTC_HIGH     0x00000C00  // High Band
+#define ADC_DCCTL5_CTM_M        0x00000300  // Comparison Trigger Mode
+#define ADC_DCCTL5_CTM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL5_CTM_ONCE     0x00000100  // Once
+#define ADC_DCCTL5_CTM_HALWAYS  0x00000200  // Hysteresis Always
+#define ADC_DCCTL5_CTM_HONCE    0x00000300  // Hysteresis Once
+#define ADC_DCCTL5_CIE          0x00000010  // Comparison Interrupt Enable
+#define ADC_DCCTL5_CIC_M        0x0000000C  // Comparison Interrupt Condition
+#define ADC_DCCTL5_CIC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL5_CIC_MID      0x00000004  // Mid Band
+#define ADC_DCCTL5_CIC_HIGH     0x0000000C  // High Band
+#define ADC_DCCTL5_CIM_M        0x00000003  // Comparison Interrupt Mode
+#define ADC_DCCTL5_CIM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL5_CIM_ONCE     0x00000001  // Once
+#define ADC_DCCTL5_CIM_HALWAYS  0x00000002  // Hysteresis Always
+#define ADC_DCCTL5_CIM_HONCE    0x00000003  // Hysteresis Once
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCTL6 register.
+//
+//*****************************************************************************
+#define ADC_DCCTL6_CTE          0x00001000  // Comparison Trigger Enable
+#define ADC_DCCTL6_CTC_M        0x00000C00  // Comparison Trigger Condition
+#define ADC_DCCTL6_CTC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL6_CTC_MID      0x00000400  // Mid Band
+#define ADC_DCCTL6_CTC_HIGH     0x00000C00  // High Band
+#define ADC_DCCTL6_CTM_M        0x00000300  // Comparison Trigger Mode
+#define ADC_DCCTL6_CTM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL6_CTM_ONCE     0x00000100  // Once
+#define ADC_DCCTL6_CTM_HALWAYS  0x00000200  // Hysteresis Always
+#define ADC_DCCTL6_CTM_HONCE    0x00000300  // Hysteresis Once
+#define ADC_DCCTL6_CIE          0x00000010  // Comparison Interrupt Enable
+#define ADC_DCCTL6_CIC_M        0x0000000C  // Comparison Interrupt Condition
+#define ADC_DCCTL6_CIC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL6_CIC_MID      0x00000004  // Mid Band
+#define ADC_DCCTL6_CIC_HIGH     0x0000000C  // High Band
+#define ADC_DCCTL6_CIM_M        0x00000003  // Comparison Interrupt Mode
+#define ADC_DCCTL6_CIM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL6_CIM_ONCE     0x00000001  // Once
+#define ADC_DCCTL6_CIM_HALWAYS  0x00000002  // Hysteresis Always
+#define ADC_DCCTL6_CIM_HONCE    0x00000003  // Hysteresis Once
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCTL7 register.
+//
+//*****************************************************************************
+#define ADC_DCCTL7_CTE          0x00001000  // Comparison Trigger Enable
+#define ADC_DCCTL7_CTC_M        0x00000C00  // Comparison Trigger Condition
+#define ADC_DCCTL7_CTC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL7_CTC_MID      0x00000400  // Mid Band
+#define ADC_DCCTL7_CTC_HIGH     0x00000C00  // High Band
+#define ADC_DCCTL7_CTM_M        0x00000300  // Comparison Trigger Mode
+#define ADC_DCCTL7_CTM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL7_CTM_ONCE     0x00000100  // Once
+#define ADC_DCCTL7_CTM_HALWAYS  0x00000200  // Hysteresis Always
+#define ADC_DCCTL7_CTM_HONCE    0x00000300  // Hysteresis Once
+#define ADC_DCCTL7_CIE          0x00000010  // Comparison Interrupt Enable
+#define ADC_DCCTL7_CIC_M        0x0000000C  // Comparison Interrupt Condition
+#define ADC_DCCTL7_CIC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL7_CIC_MID      0x00000004  // Mid Band
+#define ADC_DCCTL7_CIC_HIGH     0x0000000C  // High Band
+#define ADC_DCCTL7_CIM_M        0x00000003  // Comparison Interrupt Mode
+#define ADC_DCCTL7_CIM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL7_CIM_ONCE     0x00000001  // Once
+#define ADC_DCCTL7_CIM_HALWAYS  0x00000002  // Hysteresis Always
+#define ADC_DCCTL7_CIM_HONCE    0x00000003  // Hysteresis Once
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCMP0 register.
+//
+//*****************************************************************************
+#define ADC_DCCMP0_COMP1_M      0x0FFF0000  // Compare 1
+#define ADC_DCCMP0_COMP0_M      0x00000FFF  // Compare 0
+#define ADC_DCCMP0_COMP1_S      16
+#define ADC_DCCMP0_COMP0_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCMP1 register.
+//
+//*****************************************************************************
+#define ADC_DCCMP1_COMP1_M      0x0FFF0000  // Compare 1
+#define ADC_DCCMP1_COMP0_M      0x00000FFF  // Compare 0
+#define ADC_DCCMP1_COMP1_S      16
+#define ADC_DCCMP1_COMP0_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCMP2 register.
+//
+//*****************************************************************************
+#define ADC_DCCMP2_COMP1_M      0x0FFF0000  // Compare 1
+#define ADC_DCCMP2_COMP0_M      0x00000FFF  // Compare 0
+#define ADC_DCCMP2_COMP1_S      16
+#define ADC_DCCMP2_COMP0_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCMP3 register.
+//
+//*****************************************************************************
+#define ADC_DCCMP3_COMP1_M      0x0FFF0000  // Compare 1
+#define ADC_DCCMP3_COMP0_M      0x00000FFF  // Compare 0
+#define ADC_DCCMP3_COMP1_S      16
+#define ADC_DCCMP3_COMP0_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCMP4 register.
+//
+//*****************************************************************************
+#define ADC_DCCMP4_COMP1_M      0x0FFF0000  // Compare 1
+#define ADC_DCCMP4_COMP0_M      0x00000FFF  // Compare 0
+#define ADC_DCCMP4_COMP1_S      16
+#define ADC_DCCMP4_COMP0_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCMP5 register.
+//
+//*****************************************************************************
+#define ADC_DCCMP5_COMP1_M      0x0FFF0000  // Compare 1
+#define ADC_DCCMP5_COMP0_M      0x00000FFF  // Compare 0
+#define ADC_DCCMP5_COMP1_S      16
+#define ADC_DCCMP5_COMP0_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCMP6 register.
+//
+//*****************************************************************************
+#define ADC_DCCMP6_COMP1_M      0x0FFF0000  // Compare 1
+#define ADC_DCCMP6_COMP0_M      0x00000FFF  // Compare 0
+#define ADC_DCCMP6_COMP1_S      16
+#define ADC_DCCMP6_COMP0_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCMP7 register.
+//
+//*****************************************************************************
+#define ADC_DCCMP7_COMP1_M      0x0FFF0000  // Compare 1
+#define ADC_DCCMP7_COMP0_M      0x00000FFF  // Compare 0
+#define ADC_DCCMP7_COMP1_S      16
+#define ADC_DCCMP7_COMP0_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_PP register.
+//
+//*****************************************************************************
+#define ADC_PP_APSHT            0x01000000  // Application-Programmable
+                                            // Sample-and-Hold Time
+#define ADC_PP_TS               0x00800000  // Temperature Sensor
+#define ADC_PP_RSL_M            0x007C0000  // Resolution
+#define ADC_PP_TYPE_M           0x00030000  // ADC Architecture
+#define ADC_PP_TYPE_SAR         0x00000000  // SAR
+#define ADC_PP_DC_M             0x0000FC00  // Digital Comparator Count
+#define ADC_PP_CH_M             0x000003F0  // ADC Channel Count
+#define ADC_PP_MCR_M            0x0000000F  // Maximum Conversion Rate
+#define ADC_PP_MCR_FULL         0x00000007  // Full conversion rate (FCONV) as
+                                            // defined by TADC and NSH
+#define ADC_PP_MSR_M            0x0000000F  // Maximum ADC Sample Rate
+#define ADC_PP_MSR_125K         0x00000001  // 125 ksps
+#define ADC_PP_MSR_250K         0x00000003  // 250 ksps
+#define ADC_PP_MSR_500K         0x00000005  // 500 ksps
+#define ADC_PP_MSR_1M           0x00000007  // 1 Msps
+#define ADC_PP_RSL_S            18
+#define ADC_PP_DC_S             10
+#define ADC_PP_CH_S             4
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_PC register.
+//
+//*****************************************************************************
+#define ADC_PC_SR_M             0x0000000F  // ADC Sample Rate
+#define ADC_PC_SR_125K          0x00000001  // 125 ksps
+#define ADC_PC_SR_250K          0x00000003  // 250 ksps
+#define ADC_PC_SR_500K          0x00000005  // 500 ksps
+#define ADC_PC_SR_1M            0x00000007  // 1 Msps
+#define ADC_PC_MCR_M            0x0000000F  // Conversion Rate
+#define ADC_PC_MCR_1_8          0x00000001  // Eighth conversion rate. After a
+                                            // conversion completes, the logic
+                                            // pauses for 112 TADC periods
+                                            // before starting the next
+                                            // conversion
+#define ADC_PC_MCR_1_4          0x00000003  // Quarter conversion rate. After a
+                                            // conversion completes, the logic
+                                            // pauses for 48 TADC periods
+                                            // before starting the next
+                                            // conversion
+#define ADC_PC_MCR_1_2          0x00000005  // Half conversion rate. After a
+                                            // conversion completes, the logic
+                                            // pauses for 16 TADC periods
+                                            // before starting the next
+                                            // conversion
+#define ADC_PC_MCR_FULL         0x00000007  // Full conversion rate (FCONV) as
+                                            // defined by TADC and NSH
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_CC register.
+//
+//*****************************************************************************
+#define ADC_CC_CLKDIV_M         0x000003F0  // PLL VCO Clock Divisor
+#define ADC_CC_CS_M             0x0000000F  // ADC Clock Source
+#define ADC_CC_CS_SYSPLL        0x00000000  // PLL VCO divided by CLKDIV
+#define ADC_CC_CS_PIOSC         0x00000001  // PIOSC
+#define ADC_CC_CS_MOSC          0x00000002  // MOSC
+#define ADC_CC_CLKDIV_S         4
+
+#endif // __HW_ADC_H__

+ 545 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_aes.h

@@ -0,0 +1,545 @@
+//*****************************************************************************
+//
+// hw_aes.h - Macros used when accessing the AES hardware.
+//
+// Copyright (c) 2012-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Firmware Development Package.
+//
+//*****************************************************************************
+
+#ifndef __HW_AES_H__
+#define __HW_AES_H__
+
+//*****************************************************************************
+//
+// The following are defines for the AES register offsets.
+//
+//*****************************************************************************
+#define AES_O_KEY2_6            0x00000000  // AES Key 2_6
+#define AES_O_KEY2_7            0x00000004  // AES Key 2_7
+#define AES_O_KEY2_4            0x00000008  // AES Key 2_4
+#define AES_O_KEY2_5            0x0000000C  // AES Key 2_5
+#define AES_O_KEY2_2            0x00000010  // AES Key 2_2
+#define AES_O_KEY2_3            0x00000014  // AES Key 2_3
+#define AES_O_KEY2_0            0x00000018  // AES Key 2_0
+#define AES_O_KEY2_1            0x0000001C  // AES Key 2_1
+#define AES_O_KEY1_6            0x00000020  // AES Key 1_6
+#define AES_O_KEY1_7            0x00000024  // AES Key 1_7
+#define AES_O_KEY1_4            0x00000028  // AES Key 1_4
+#define AES_O_KEY1_5            0x0000002C  // AES Key 1_5
+#define AES_O_KEY1_2            0x00000030  // AES Key 1_2
+#define AES_O_KEY1_3            0x00000034  // AES Key 1_3
+#define AES_O_KEY1_0            0x00000038  // AES Key 1_0
+#define AES_O_KEY1_1            0x0000003C  // AES Key 1_1
+#define AES_O_IV_IN_0           0x00000040  // AES Initialization Vector Input
+                                            // 0
+#define AES_O_IV_IN_1           0x00000044  // AES Initialization Vector Input
+                                            // 1
+#define AES_O_IV_IN_2           0x00000048  // AES Initialization Vector Input
+                                            // 2
+#define AES_O_IV_IN_3           0x0000004C  // AES Initialization Vector Input
+                                            // 3
+#define AES_O_CTRL              0x00000050  // AES Control
+#define AES_O_C_LENGTH_0        0x00000054  // AES Crypto Data Length 0
+#define AES_O_C_LENGTH_1        0x00000058  // AES Crypto Data Length 1
+#define AES_O_AUTH_LENGTH       0x0000005C  // AES Authentication Data Length
+#define AES_O_DATA_IN_0         0x00000060  // AES Data RW Plaintext/Ciphertext
+                                            // 0
+#define AES_O_DATA_IN_1         0x00000064  // AES Data RW Plaintext/Ciphertext
+                                            // 1
+#define AES_O_DATA_IN_2         0x00000068  // AES Data RW Plaintext/Ciphertext
+                                            // 2
+#define AES_O_DATA_IN_3         0x0000006C  // AES Data RW Plaintext/Ciphertext
+                                            // 3
+#define AES_O_TAG_OUT_0         0x00000070  // AES Hash Tag Out 0
+#define AES_O_TAG_OUT_1         0x00000074  // AES Hash Tag Out 1
+#define AES_O_TAG_OUT_2         0x00000078  // AES Hash Tag Out 2
+#define AES_O_TAG_OUT_3         0x0000007C  // AES Hash Tag Out 3
+#define AES_O_REVISION          0x00000080  // AES IP Revision Identifier
+#define AES_O_SYSCONFIG         0x00000084  // AES System Configuration
+#define AES_O_SYSSTATUS         0x00000088  // AES System Status
+#define AES_O_IRQSTATUS         0x0000008C  // AES Interrupt Status
+#define AES_O_IRQENABLE         0x00000090  // AES Interrupt Enable
+#define AES_O_DIRTYBITS         0x00000094  // AES Dirty Bits
+#define AES_O_DMAIM             0xFFFFA020  // AES DMA Interrupt Mask
+#define AES_O_DMARIS            0xFFFFA024  // AES DMA Raw Interrupt Status
+#define AES_O_DMAMIS            0xFFFFA028  // AES DMA Masked Interrupt Status
+#define AES_O_DMAIC             0xFFFFA02C  // AES DMA Interrupt Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_KEY2_6 register.
+//
+//*****************************************************************************
+#define AES_KEY2_6_KEY_M        0xFFFFFFFF  // Key Data
+#define AES_KEY2_6_KEY_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_KEY2_7 register.
+//
+//*****************************************************************************
+#define AES_KEY2_7_KEY_M        0xFFFFFFFF  // Key Data
+#define AES_KEY2_7_KEY_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_KEY2_4 register.
+//
+//*****************************************************************************
+#define AES_KEY2_4_KEY_M        0xFFFFFFFF  // Key Data
+#define AES_KEY2_4_KEY_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_KEY2_5 register.
+//
+//*****************************************************************************
+#define AES_KEY2_5_KEY_M        0xFFFFFFFF  // Key Data
+#define AES_KEY2_5_KEY_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_KEY2_2 register.
+//
+//*****************************************************************************
+#define AES_KEY2_2_KEY_M        0xFFFFFFFF  // Key Data
+#define AES_KEY2_2_KEY_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_KEY2_3 register.
+//
+//*****************************************************************************
+#define AES_KEY2_3_KEY_M        0xFFFFFFFF  // Key Data
+#define AES_KEY2_3_KEY_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_KEY2_0 register.
+//
+//*****************************************************************************
+#define AES_KEY2_0_KEY_M        0xFFFFFFFF  // Key Data
+#define AES_KEY2_0_KEY_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_KEY2_1 register.
+//
+//*****************************************************************************
+#define AES_KEY2_1_KEY_M        0xFFFFFFFF  // Key Data
+#define AES_KEY2_1_KEY_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_KEY1_6 register.
+//
+//*****************************************************************************
+#define AES_KEY1_6_KEY_M        0xFFFFFFFF  // Key Data
+#define AES_KEY1_6_KEY_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_KEY1_7 register.
+//
+//*****************************************************************************
+#define AES_KEY1_7_KEY_M        0xFFFFFFFF  // Key Data
+#define AES_KEY1_7_KEY_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_KEY1_4 register.
+//
+//*****************************************************************************
+#define AES_KEY1_4_KEY_M        0xFFFFFFFF  // Key Data
+#define AES_KEY1_4_KEY_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_KEY1_5 register.
+//
+//*****************************************************************************
+#define AES_KEY1_5_KEY_M        0xFFFFFFFF  // Key Data
+#define AES_KEY1_5_KEY_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_KEY1_2 register.
+//
+//*****************************************************************************
+#define AES_KEY1_2_KEY_M        0xFFFFFFFF  // Key Data
+#define AES_KEY1_2_KEY_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_KEY1_3 register.
+//
+//*****************************************************************************
+#define AES_KEY1_3_KEY_M        0xFFFFFFFF  // Key Data
+#define AES_KEY1_3_KEY_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_KEY1_0 register.
+//
+//*****************************************************************************
+#define AES_KEY1_0_KEY_M        0xFFFFFFFF  // Key Data
+#define AES_KEY1_0_KEY_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_KEY1_1 register.
+//
+//*****************************************************************************
+#define AES_KEY1_1_KEY_M        0xFFFFFFFF  // Key Data
+#define AES_KEY1_1_KEY_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_IV_IN_0 register.
+//
+//*****************************************************************************
+#define AES_IV_IN_0_DATA_M      0xFFFFFFFF  // Initialization Vector Input
+#define AES_IV_IN_0_DATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_IV_IN_1 register.
+//
+//*****************************************************************************
+#define AES_IV_IN_1_DATA_M      0xFFFFFFFF  // Initialization Vector Input
+#define AES_IV_IN_1_DATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_IV_IN_2 register.
+//
+//*****************************************************************************
+#define AES_IV_IN_2_DATA_M      0xFFFFFFFF  // Initialization Vector Input
+#define AES_IV_IN_2_DATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_IV_IN_3 register.
+//
+//*****************************************************************************
+#define AES_IV_IN_3_DATA_M      0xFFFFFFFF  // Initialization Vector Input
+#define AES_IV_IN_3_DATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_CTRL register.
+//
+//*****************************************************************************
+#define AES_CTRL_CTXTRDY        0x80000000  // Context Data Registers Ready
+#define AES_CTRL_SVCTXTRDY      0x40000000  // AES TAG/IV Block(s) Ready
+#define AES_CTRL_SAVE_CONTEXT   0x20000000  // TAG or Result IV Save
+#define AES_CTRL_CCM_M_M        0x01C00000  // Counter with CBC-MAC (CCM)
+#define AES_CTRL_CCM_L_M        0x00380000  // L Value
+#define AES_CTRL_CCM_L_2        0x00080000  // width = 2
+#define AES_CTRL_CCM_L_4        0x00180000  // width = 4
+#define AES_CTRL_CCM_L_8        0x00380000  // width = 8
+#define AES_CTRL_CCM            0x00040000  // AES-CCM Mode Enable
+#define AES_CTRL_GCM_M          0x00030000  // AES-GCM Mode Enable
+#define AES_CTRL_GCM_NOP        0x00000000  // No operation
+#define AES_CTRL_GCM_HLY0ZERO   0x00010000  // GHASH with H loaded and
+                                            // Y0-encrypted forced to zero
+#define AES_CTRL_GCM_HLY0CALC   0x00020000  // GHASH with H loaded and
+                                            // Y0-encrypted calculated
+                                            // internally
+#define AES_CTRL_GCM_HY0CALC    0x00030000  // Autonomous GHASH (both H and
+                                            // Y0-encrypted calculated
+                                            // internally)
+#define AES_CTRL_CBCMAC         0x00008000  // AES-CBC MAC Enable
+#define AES_CTRL_F9             0x00004000  // AES f9 Mode Enable
+#define AES_CTRL_F8             0x00002000  // AES f8 Mode Enable
+#define AES_CTRL_XTS_M          0x00001800  // AES-XTS Operation Enabled
+#define AES_CTRL_XTS_NOP        0x00000000  // No operation
+#define AES_CTRL_XTS_TWEAKJL    0x00000800  // Previous/intermediate tweak
+                                            // value and j loaded (value is
+                                            // loaded via IV, j is loaded via
+                                            // the AAD length register)
+#define AES_CTRL_XTS_K2IJL      0x00001000  // Key2, n and j are loaded (n is
+                                            // loaded via IV, j is loaded via
+                                            // the AAD length register)
+#define AES_CTRL_XTS_K2ILJ0     0x00001800  // Key2 and n are loaded; j=0 (n is
+                                            // loaded via IV)
+#define AES_CTRL_CFB            0x00000400  // Full block AES cipher feedback
+                                            // mode (CFB128) Enable
+#define AES_CTRL_ICM            0x00000200  // AES Integer Counter Mode (ICM)
+                                            // Enable
+#define AES_CTRL_CTR_WIDTH_M    0x00000180  // AES-CTR Mode Counter Width
+#define AES_CTRL_CTR_WIDTH_32   0x00000000  // Counter is 32 bits
+#define AES_CTRL_CTR_WIDTH_64   0x00000080  // Counter is 64 bits
+#define AES_CTRL_CTR_WIDTH_96   0x00000100  // Counter is 96 bits
+#define AES_CTRL_CTR_WIDTH_128  0x00000180  // Counter is 128 bits
+#define AES_CTRL_CTR            0x00000040  // Counter Mode
+#define AES_CTRL_MODE           0x00000020  // ECB/CBC Mode
+#define AES_CTRL_KEY_SIZE_M     0x00000018  // Key Size
+#define AES_CTRL_KEY_SIZE_128   0x00000008  // Key is 128 bits
+#define AES_CTRL_KEY_SIZE_192   0x00000010  // Key is 192 bits
+#define AES_CTRL_KEY_SIZE_256   0x00000018  // Key is 256 bits
+#define AES_CTRL_DIRECTION      0x00000004  // Encryption/Decryption Selection
+#define AES_CTRL_INPUT_READY    0x00000002  // Input Ready Status
+#define AES_CTRL_OUTPUT_READY   0x00000001  // Output Ready Status
+#define AES_CTRL_CCM_M_S        22
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_C_LENGTH_0
+// register.
+//
+//*****************************************************************************
+#define AES_C_LENGTH_0_LENGTH_M 0xFFFFFFFF  // Data Length
+#define AES_C_LENGTH_0_LENGTH_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_C_LENGTH_1
+// register.
+//
+//*****************************************************************************
+#define AES_C_LENGTH_1_LENGTH_M 0xFFFFFFFF  // Data Length
+#define AES_C_LENGTH_1_LENGTH_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_AUTH_LENGTH
+// register.
+//
+//*****************************************************************************
+#define AES_AUTH_LENGTH_AUTH_M  0xFFFFFFFF  // Authentication Data Length
+#define AES_AUTH_LENGTH_AUTH_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_DATA_IN_0
+// register.
+//
+//*****************************************************************************
+#define AES_DATA_IN_0_DATA_M    0xFFFFFFFF  // Secure Data RW
+                                            // Plaintext/Ciphertext
+#define AES_DATA_IN_0_DATA_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_DATA_IN_1
+// register.
+//
+//*****************************************************************************
+#define AES_DATA_IN_1_DATA_M    0xFFFFFFFF  // Secure Data RW
+                                            // Plaintext/Ciphertext
+#define AES_DATA_IN_1_DATA_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_DATA_IN_2
+// register.
+//
+//*****************************************************************************
+#define AES_DATA_IN_2_DATA_M    0xFFFFFFFF  // Secure Data RW
+                                            // Plaintext/Ciphertext
+#define AES_DATA_IN_2_DATA_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_DATA_IN_3
+// register.
+//
+//*****************************************************************************
+#define AES_DATA_IN_3_DATA_M    0xFFFFFFFF  // Secure Data RW
+                                            // Plaintext/Ciphertext
+#define AES_DATA_IN_3_DATA_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_TAG_OUT_0
+// register.
+//
+//*****************************************************************************
+#define AES_TAG_OUT_0_HASH_M    0xFFFFFFFF  // Hash Result
+#define AES_TAG_OUT_0_HASH_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_TAG_OUT_1
+// register.
+//
+//*****************************************************************************
+#define AES_TAG_OUT_1_HASH_M    0xFFFFFFFF  // Hash Result
+#define AES_TAG_OUT_1_HASH_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_TAG_OUT_2
+// register.
+//
+//*****************************************************************************
+#define AES_TAG_OUT_2_HASH_M    0xFFFFFFFF  // Hash Result
+#define AES_TAG_OUT_2_HASH_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_TAG_OUT_3
+// register.
+//
+//*****************************************************************************
+#define AES_TAG_OUT_3_HASH_M    0xFFFFFFFF  // Hash Result
+#define AES_TAG_OUT_3_HASH_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_REVISION register.
+//
+//*****************************************************************************
+#define AES_REVISION_M          0xFFFFFFFF  // Revision number
+#define AES_REVISION_S          0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_SYSCONFIG
+// register.
+//
+//*****************************************************************************
+#define AES_SYSCONFIG_K3        0x00001000  // K3 Select
+#define AES_SYSCONFIG_KEYENC    0x00000800  // Key Encoding
+#define AES_SYSCONFIG_MAP_CONTEXT_OUT_ON_DATA_OUT                             \
+                                0x00000200  // Map Context Out on Data Out
+                                            // Enable
+#define AES_SYSCONFIG_DMA_REQ_CONTEXT_OUT_EN                                  \
+                                0x00000100  // DMA Request Context Out Enable
+#define AES_SYSCONFIG_DMA_REQ_CONTEXT_IN_EN                                   \
+                                0x00000080  // DMA Request Context In Enable
+#define AES_SYSCONFIG_DMA_REQ_DATA_OUT_EN                                     \
+                                0x00000040  // DMA Request Data Out Enable
+#define AES_SYSCONFIG_DMA_REQ_DATA_IN_EN                                      \
+                                0x00000020  // DMA Request Data In Enable
+#define AES_SYSCONFIG_SOFTRESET 0x00000002  // Soft reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_SYSSTATUS
+// register.
+//
+//*****************************************************************************
+#define AES_SYSSTATUS_RESETDONE 0x00000001  // Reset Done
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_IRQSTATUS
+// register.
+//
+//*****************************************************************************
+#define AES_IRQSTATUS_CONTEXT_OUT                                             \
+                                0x00000008  // Context Output Interrupt Status
+#define AES_IRQSTATUS_DATA_OUT  0x00000004  // Data Out Interrupt Status
+#define AES_IRQSTATUS_DATA_IN   0x00000002  // Data In Interrupt Status
+#define AES_IRQSTATUS_CONTEXT_IN                                              \
+                                0x00000001  // Context In Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_IRQENABLE
+// register.
+//
+//*****************************************************************************
+#define AES_IRQENABLE_CONTEXT_OUT                                             \
+                                0x00000008  // Context Out Interrupt Enable
+#define AES_IRQENABLE_DATA_OUT  0x00000004  // Data Out Interrupt Enable
+#define AES_IRQENABLE_DATA_IN   0x00000002  // Data In Interrupt Enable
+#define AES_IRQENABLE_CONTEXT_IN                                              \
+                                0x00000001  // Context In Interrupt Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_DIRTYBITS
+// register.
+//
+//*****************************************************************************
+#define AES_DIRTYBITS_S_DIRTY   0x00000002  // AES Dirty Bit
+#define AES_DIRTYBITS_S_ACCESS  0x00000001  // AES Access Bit
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_DMAIM register.
+//
+//*****************************************************************************
+#define AES_DMAIM_DOUT          0x00000008  // Data Out DMA Done Interrupt Mask
+#define AES_DMAIM_DIN           0x00000004  // Data In DMA Done Interrupt Mask
+#define AES_DMAIM_COUT          0x00000002  // Context Out DMA Done Interrupt
+                                            // Mask
+#define AES_DMAIM_CIN           0x00000001  // Context In DMA Done Interrupt
+                                            // Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_DMARIS register.
+//
+//*****************************************************************************
+#define AES_DMARIS_DOUT         0x00000008  // Data Out DMA Done Raw Interrupt
+                                            // Status
+#define AES_DMARIS_DIN          0x00000004  // Data In DMA Done Raw Interrupt
+                                            // Status
+#define AES_DMARIS_COUT         0x00000002  // Context Out DMA Done Raw
+                                            // Interrupt Status
+#define AES_DMARIS_CIN          0x00000001  // Context In DMA Done Raw
+                                            // Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_DMAMIS register.
+//
+//*****************************************************************************
+#define AES_DMAMIS_DOUT         0x00000008  // Data Out DMA Done Masked
+                                            // Interrupt Status
+#define AES_DMAMIS_DIN          0x00000004  // Data In DMA Done Masked
+                                            // Interrupt Status
+#define AES_DMAMIS_COUT         0x00000002  // Context Out DMA Done Masked
+                                            // Interrupt Status
+#define AES_DMAMIS_CIN          0x00000001  // Context In DMA Done Raw
+                                            // Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the AES_O_DMAIC register.
+//
+//*****************************************************************************
+#define AES_DMAIC_DOUT          0x00000008  // Data Out DMA Done Interrupt
+                                            // Clear
+#define AES_DMAIC_DIN           0x00000004  // Data In DMA Done Interrupt Clear
+#define AES_DMAIC_COUT          0x00000002  // Context Out DMA Done Masked
+                                            // Interrupt Status
+#define AES_DMAIC_CIN           0x00000001  // Context In DMA Done Raw
+                                            // Interrupt Status
+
+#endif // __HW_AES_H__

+ 462 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_can.h

@@ -0,0 +1,462 @@
+//*****************************************************************************
+//
+// hw_can.h - Defines and macros used when accessing the CAN controllers.
+//
+// Copyright (c) 2006-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Firmware Development Package.
+//
+//*****************************************************************************
+
+#ifndef __HW_CAN_H__
+#define __HW_CAN_H__
+
+//*****************************************************************************
+//
+// The following are defines for the CAN register offsets.
+//
+//*****************************************************************************
+#define CAN_O_CTL               0x00000000  // CAN Control
+#define CAN_O_STS               0x00000004  // CAN Status
+#define CAN_O_ERR               0x00000008  // CAN Error Counter
+#define CAN_O_BIT               0x0000000C  // CAN Bit Timing
+#define CAN_O_INT               0x00000010  // CAN Interrupt
+#define CAN_O_TST               0x00000014  // CAN Test
+#define CAN_O_BRPE              0x00000018  // CAN Baud Rate Prescaler
+                                            // Extension
+#define CAN_O_IF1CRQ            0x00000020  // CAN IF1 Command Request
+#define CAN_O_IF1CMSK           0x00000024  // CAN IF1 Command Mask
+#define CAN_O_IF1MSK1           0x00000028  // CAN IF1 Mask 1
+#define CAN_O_IF1MSK2           0x0000002C  // CAN IF1 Mask 2
+#define CAN_O_IF1ARB1           0x00000030  // CAN IF1 Arbitration 1
+#define CAN_O_IF1ARB2           0x00000034  // CAN IF1 Arbitration 2
+#define CAN_O_IF1MCTL           0x00000038  // CAN IF1 Message Control
+#define CAN_O_IF1DA1            0x0000003C  // CAN IF1 Data A1
+#define CAN_O_IF1DA2            0x00000040  // CAN IF1 Data A2
+#define CAN_O_IF1DB1            0x00000044  // CAN IF1 Data B1
+#define CAN_O_IF1DB2            0x00000048  // CAN IF1 Data B2
+#define CAN_O_IF2CRQ            0x00000080  // CAN IF2 Command Request
+#define CAN_O_IF2CMSK           0x00000084  // CAN IF2 Command Mask
+#define CAN_O_IF2MSK1           0x00000088  // CAN IF2 Mask 1
+#define CAN_O_IF2MSK2           0x0000008C  // CAN IF2 Mask 2
+#define CAN_O_IF2ARB1           0x00000090  // CAN IF2 Arbitration 1
+#define CAN_O_IF2ARB2           0x00000094  // CAN IF2 Arbitration 2
+#define CAN_O_IF2MCTL           0x00000098  // CAN IF2 Message Control
+#define CAN_O_IF2DA1            0x0000009C  // CAN IF2 Data A1
+#define CAN_O_IF2DA2            0x000000A0  // CAN IF2 Data A2
+#define CAN_O_IF2DB1            0x000000A4  // CAN IF2 Data B1
+#define CAN_O_IF2DB2            0x000000A8  // CAN IF2 Data B2
+#define CAN_O_TXRQ1             0x00000100  // CAN Transmission Request 1
+#define CAN_O_TXRQ2             0x00000104  // CAN Transmission Request 2
+#define CAN_O_NWDA1             0x00000120  // CAN New Data 1
+#define CAN_O_NWDA2             0x00000124  // CAN New Data 2
+#define CAN_O_MSG1INT           0x00000140  // CAN Message 1 Interrupt Pending
+#define CAN_O_MSG2INT           0x00000144  // CAN Message 2 Interrupt Pending
+#define CAN_O_MSG1VAL           0x00000160  // CAN Message 1 Valid
+#define CAN_O_MSG2VAL           0x00000164  // CAN Message 2 Valid
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_CTL register.
+//
+//*****************************************************************************
+#define CAN_CTL_TEST            0x00000080  // Test Mode Enable
+#define CAN_CTL_CCE             0x00000040  // Configuration Change Enable
+#define CAN_CTL_DAR             0x00000020  // Disable Automatic-Retransmission
+#define CAN_CTL_EIE             0x00000008  // Error Interrupt Enable
+#define CAN_CTL_SIE             0x00000004  // Status Interrupt Enable
+#define CAN_CTL_IE              0x00000002  // CAN Interrupt Enable
+#define CAN_CTL_INIT            0x00000001  // Initialization
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_STS register.
+//
+//*****************************************************************************
+#define CAN_STS_BOFF            0x00000080  // Bus-Off Status
+#define CAN_STS_EWARN           0x00000040  // Warning Status
+#define CAN_STS_EPASS           0x00000020  // Error Passive
+#define CAN_STS_RXOK            0x00000010  // Received a Message Successfully
+#define CAN_STS_TXOK            0x00000008  // Transmitted a Message
+                                            // Successfully
+#define CAN_STS_LEC_M           0x00000007  // Last Error Code
+#define CAN_STS_LEC_NONE        0x00000000  // No Error
+#define CAN_STS_LEC_STUFF       0x00000001  // Stuff Error
+#define CAN_STS_LEC_FORM        0x00000002  // Format Error
+#define CAN_STS_LEC_ACK         0x00000003  // ACK Error
+#define CAN_STS_LEC_BIT1        0x00000004  // Bit 1 Error
+#define CAN_STS_LEC_BIT0        0x00000005  // Bit 0 Error
+#define CAN_STS_LEC_CRC         0x00000006  // CRC Error
+#define CAN_STS_LEC_NOEVENT     0x00000007  // No Event
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_ERR register.
+//
+//*****************************************************************************
+#define CAN_ERR_RP              0x00008000  // Received Error Passive
+#define CAN_ERR_REC_M           0x00007F00  // Receive Error Counter
+#define CAN_ERR_TEC_M           0x000000FF  // Transmit Error Counter
+#define CAN_ERR_REC_S           8
+#define CAN_ERR_TEC_S           0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_BIT register.
+//
+//*****************************************************************************
+#define CAN_BIT_TSEG2_M         0x00007000  // Time Segment after Sample Point
+#define CAN_BIT_TSEG1_M         0x00000F00  // Time Segment Before Sample Point
+#define CAN_BIT_SJW_M           0x000000C0  // (Re)Synchronization Jump Width
+#define CAN_BIT_BRP_M           0x0000003F  // Baud Rate Prescaler
+#define CAN_BIT_TSEG2_S         12
+#define CAN_BIT_TSEG1_S         8
+#define CAN_BIT_SJW_S           6
+#define CAN_BIT_BRP_S           0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_INT register.
+//
+//*****************************************************************************
+#define CAN_INT_INTID_M         0x0000FFFF  // Interrupt Identifier
+#define CAN_INT_INTID_NONE      0x00000000  // No interrupt pending
+#define CAN_INT_INTID_STATUS    0x00008000  // Status Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_TST register.
+//
+//*****************************************************************************
+#define CAN_TST_RX              0x00000080  // Receive Observation
+#define CAN_TST_TX_M            0x00000060  // Transmit Control
+#define CAN_TST_TX_CANCTL       0x00000000  // CAN Module Control
+#define CAN_TST_TX_SAMPLE       0x00000020  // Sample Point
+#define CAN_TST_TX_DOMINANT     0x00000040  // Driven Low
+#define CAN_TST_TX_RECESSIVE    0x00000060  // Driven High
+#define CAN_TST_LBACK           0x00000010  // Loopback Mode
+#define CAN_TST_SILENT          0x00000008  // Silent Mode
+#define CAN_TST_BASIC           0x00000004  // Basic Mode
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_BRPE register.
+//
+//*****************************************************************************
+#define CAN_BRPE_BRPE_M         0x0000000F  // Baud Rate Prescaler Extension
+#define CAN_BRPE_BRPE_S         0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF1CRQ register.
+//
+//*****************************************************************************
+#define CAN_IF1CRQ_BUSY         0x00008000  // Busy Flag
+#define CAN_IF1CRQ_MNUM_M       0x0000003F  // Message Number
+#define CAN_IF1CRQ_MNUM_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF1CMSK register.
+//
+//*****************************************************************************
+#define CAN_IF1CMSK_WRNRD       0x00000080  // Write, Not Read
+#define CAN_IF1CMSK_MASK        0x00000040  // Access Mask Bits
+#define CAN_IF1CMSK_ARB         0x00000020  // Access Arbitration Bits
+#define CAN_IF1CMSK_CONTROL     0x00000010  // Access Control Bits
+#define CAN_IF1CMSK_CLRINTPND   0x00000008  // Clear Interrupt Pending Bit
+#define CAN_IF1CMSK_NEWDAT      0x00000004  // Access New Data
+#define CAN_IF1CMSK_TXRQST      0x00000004  // Access Transmission Request
+#define CAN_IF1CMSK_DATAA       0x00000002  // Access Data Byte 0 to 3
+#define CAN_IF1CMSK_DATAB       0x00000001  // Access Data Byte 4 to 7
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF1MSK1 register.
+//
+//*****************************************************************************
+#define CAN_IF1MSK1_IDMSK_M     0x0000FFFF  // Identifier Mask
+#define CAN_IF1MSK1_IDMSK_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF1MSK2 register.
+//
+//*****************************************************************************
+#define CAN_IF1MSK2_MXTD        0x00008000  // Mask Extended Identifier
+#define CAN_IF1MSK2_MDIR        0x00004000  // Mask Message Direction
+#define CAN_IF1MSK2_IDMSK_M     0x00001FFF  // Identifier Mask
+#define CAN_IF1MSK2_IDMSK_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF1ARB1 register.
+//
+//*****************************************************************************
+#define CAN_IF1ARB1_ID_M        0x0000FFFF  // Message Identifier
+#define CAN_IF1ARB1_ID_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF1ARB2 register.
+//
+//*****************************************************************************
+#define CAN_IF1ARB2_MSGVAL      0x00008000  // Message Valid
+#define CAN_IF1ARB2_XTD         0x00004000  // Extended Identifier
+#define CAN_IF1ARB2_DIR         0x00002000  // Message Direction
+#define CAN_IF1ARB2_ID_M        0x00001FFF  // Message Identifier
+#define CAN_IF1ARB2_ID_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF1MCTL register.
+//
+//*****************************************************************************
+#define CAN_IF1MCTL_NEWDAT      0x00008000  // New Data
+#define CAN_IF1MCTL_MSGLST      0x00004000  // Message Lost
+#define CAN_IF1MCTL_INTPND      0x00002000  // Interrupt Pending
+#define CAN_IF1MCTL_UMASK       0x00001000  // Use Acceptance Mask
+#define CAN_IF1MCTL_TXIE        0x00000800  // Transmit Interrupt Enable
+#define CAN_IF1MCTL_RXIE        0x00000400  // Receive Interrupt Enable
+#define CAN_IF1MCTL_RMTEN       0x00000200  // Remote Enable
+#define CAN_IF1MCTL_TXRQST      0x00000100  // Transmit Request
+#define CAN_IF1MCTL_EOB         0x00000080  // End of Buffer
+#define CAN_IF1MCTL_DLC_M       0x0000000F  // Data Length Code
+#define CAN_IF1MCTL_DLC_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF1DA1 register.
+//
+//*****************************************************************************
+#define CAN_IF1DA1_DATA_M       0x0000FFFF  // Data
+#define CAN_IF1DA1_DATA_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF1DA2 register.
+//
+//*****************************************************************************
+#define CAN_IF1DA2_DATA_M       0x0000FFFF  // Data
+#define CAN_IF1DA2_DATA_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF1DB1 register.
+//
+//*****************************************************************************
+#define CAN_IF1DB1_DATA_M       0x0000FFFF  // Data
+#define CAN_IF1DB1_DATA_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF1DB2 register.
+//
+//*****************************************************************************
+#define CAN_IF1DB2_DATA_M       0x0000FFFF  // Data
+#define CAN_IF1DB2_DATA_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF2CRQ register.
+//
+//*****************************************************************************
+#define CAN_IF2CRQ_BUSY         0x00008000  // Busy Flag
+#define CAN_IF2CRQ_MNUM_M       0x0000003F  // Message Number
+#define CAN_IF2CRQ_MNUM_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF2CMSK register.
+//
+//*****************************************************************************
+#define CAN_IF2CMSK_WRNRD       0x00000080  // Write, Not Read
+#define CAN_IF2CMSK_MASK        0x00000040  // Access Mask Bits
+#define CAN_IF2CMSK_ARB         0x00000020  // Access Arbitration Bits
+#define CAN_IF2CMSK_CONTROL     0x00000010  // Access Control Bits
+#define CAN_IF2CMSK_CLRINTPND   0x00000008  // Clear Interrupt Pending Bit
+#define CAN_IF2CMSK_NEWDAT      0x00000004  // Access New Data
+#define CAN_IF2CMSK_TXRQST      0x00000004  // Access Transmission Request
+#define CAN_IF2CMSK_DATAA       0x00000002  // Access Data Byte 0 to 3
+#define CAN_IF2CMSK_DATAB       0x00000001  // Access Data Byte 4 to 7
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF2MSK1 register.
+//
+//*****************************************************************************
+#define CAN_IF2MSK1_IDMSK_M     0x0000FFFF  // Identifier Mask
+#define CAN_IF2MSK1_IDMSK_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF2MSK2 register.
+//
+//*****************************************************************************
+#define CAN_IF2MSK2_MXTD        0x00008000  // Mask Extended Identifier
+#define CAN_IF2MSK2_MDIR        0x00004000  // Mask Message Direction
+#define CAN_IF2MSK2_IDMSK_M     0x00001FFF  // Identifier Mask
+#define CAN_IF2MSK2_IDMSK_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF2ARB1 register.
+//
+//*****************************************************************************
+#define CAN_IF2ARB1_ID_M        0x0000FFFF  // Message Identifier
+#define CAN_IF2ARB1_ID_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF2ARB2 register.
+//
+//*****************************************************************************
+#define CAN_IF2ARB2_MSGVAL      0x00008000  // Message Valid
+#define CAN_IF2ARB2_XTD         0x00004000  // Extended Identifier
+#define CAN_IF2ARB2_DIR         0x00002000  // Message Direction
+#define CAN_IF2ARB2_ID_M        0x00001FFF  // Message Identifier
+#define CAN_IF2ARB2_ID_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF2MCTL register.
+//
+//*****************************************************************************
+#define CAN_IF2MCTL_NEWDAT      0x00008000  // New Data
+#define CAN_IF2MCTL_MSGLST      0x00004000  // Message Lost
+#define CAN_IF2MCTL_INTPND      0x00002000  // Interrupt Pending
+#define CAN_IF2MCTL_UMASK       0x00001000  // Use Acceptance Mask
+#define CAN_IF2MCTL_TXIE        0x00000800  // Transmit Interrupt Enable
+#define CAN_IF2MCTL_RXIE        0x00000400  // Receive Interrupt Enable
+#define CAN_IF2MCTL_RMTEN       0x00000200  // Remote Enable
+#define CAN_IF2MCTL_TXRQST      0x00000100  // Transmit Request
+#define CAN_IF2MCTL_EOB         0x00000080  // End of Buffer
+#define CAN_IF2MCTL_DLC_M       0x0000000F  // Data Length Code
+#define CAN_IF2MCTL_DLC_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF2DA1 register.
+//
+//*****************************************************************************
+#define CAN_IF2DA1_DATA_M       0x0000FFFF  // Data
+#define CAN_IF2DA1_DATA_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF2DA2 register.
+//
+//*****************************************************************************
+#define CAN_IF2DA2_DATA_M       0x0000FFFF  // Data
+#define CAN_IF2DA2_DATA_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF2DB1 register.
+//
+//*****************************************************************************
+#define CAN_IF2DB1_DATA_M       0x0000FFFF  // Data
+#define CAN_IF2DB1_DATA_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF2DB2 register.
+//
+//*****************************************************************************
+#define CAN_IF2DB2_DATA_M       0x0000FFFF  // Data
+#define CAN_IF2DB2_DATA_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_TXRQ1 register.
+//
+//*****************************************************************************
+#define CAN_TXRQ1_TXRQST_M      0x0000FFFF  // Transmission Request Bits
+#define CAN_TXRQ1_TXRQST_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_TXRQ2 register.
+//
+//*****************************************************************************
+#define CAN_TXRQ2_TXRQST_M      0x0000FFFF  // Transmission Request Bits
+#define CAN_TXRQ2_TXRQST_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_NWDA1 register.
+//
+//*****************************************************************************
+#define CAN_NWDA1_NEWDAT_M      0x0000FFFF  // New Data Bits
+#define CAN_NWDA1_NEWDAT_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_NWDA2 register.
+//
+//*****************************************************************************
+#define CAN_NWDA2_NEWDAT_M      0x0000FFFF  // New Data Bits
+#define CAN_NWDA2_NEWDAT_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_MSG1INT register.
+//
+//*****************************************************************************
+#define CAN_MSG1INT_INTPND_M    0x0000FFFF  // Interrupt Pending Bits
+#define CAN_MSG1INT_INTPND_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_MSG2INT register.
+//
+//*****************************************************************************
+#define CAN_MSG2INT_INTPND_M    0x0000FFFF  // Interrupt Pending Bits
+#define CAN_MSG2INT_INTPND_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_MSG1VAL register.
+//
+//*****************************************************************************
+#define CAN_MSG1VAL_MSGVAL_M    0x0000FFFF  // Message Valid Bits
+#define CAN_MSG1VAL_MSGVAL_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_MSG2VAL register.
+//
+//*****************************************************************************
+#define CAN_MSG2VAL_MSGVAL_M    0x0000FFFF  // Message Valid Bits
+#define CAN_MSG2VAL_MSGVAL_S    0
+
+#endif // __HW_CAN_H__

+ 115 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_ccm.h

@@ -0,0 +1,115 @@
+//*****************************************************************************
+//
+// hw_ccm.h - Macros used when accessing the CCM hardware.
+//
+// Copyright (c) 2012-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Firmware Development Package.
+//
+//*****************************************************************************
+
+#ifndef __HW_CCM_H__
+#define __HW_CCM_H__
+
+//*****************************************************************************
+//
+// The following are defines for the EC register offsets.
+//
+//*****************************************************************************
+#define CCM_O_CRCCTRL           0x00000400  // CRC Control
+#define CCM_O_CRCSEED           0x00000410  // CRC SEED/Context
+#define CCM_O_CRCDIN            0x00000414  // CRC Data Input
+#define CCM_O_CRCRSLTPP         0x00000418  // CRC Post Processing Result
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CCM_O_CRCCTRL register.
+//
+//*****************************************************************************
+#define CCM_CRCCTRL_INIT_M      0x00006000  // CRC Initialization
+#define CCM_CRCCTRL_INIT_SEED   0x00000000  // Use the CRCSEED register context
+                                            // as the starting value
+#define CCM_CRCCTRL_INIT_0      0x00004000  // Initialize to all '0s'
+#define CCM_CRCCTRL_INIT_1      0x00006000  // Initialize to all '1s'
+#define CCM_CRCCTRL_SIZE        0x00001000  // Input Data Size
+#define CCM_CRCCTRL_RESINV      0x00000200  // Result Inverse Enable
+#define CCM_CRCCTRL_OBR         0x00000100  // Output Reverse Enable
+#define CCM_CRCCTRL_BR          0x00000080  // Bit reverse enable
+#define CCM_CRCCTRL_ENDIAN_M    0x00000030  // Endian Control
+#define CCM_CRCCTRL_ENDIAN_SBHW 0x00000000  // Configuration unchanged. (B3,
+                                            // B2, B1, B0)
+#define CCM_CRCCTRL_ENDIAN_SHW  0x00000010  // Bytes are swapped in half-words
+                                            // but half-words are not swapped
+                                            // (B2, B3, B0, B1)
+#define CCM_CRCCTRL_ENDIAN_SHWNB                                              \
+                                0x00000020  // Half-words are swapped but bytes
+                                            // are not swapped in half-word.
+                                            // (B1, B0, B3, B2)
+#define CCM_CRCCTRL_ENDIAN_SBSW 0x00000030  // Bytes are swapped in half-words
+                                            // and half-words are swapped. (B0,
+                                            // B1, B2, B3)
+#define CCM_CRCCTRL_TYPE_M      0x0000000F  // Operation Type
+#define CCM_CRCCTRL_TYPE_P8055  0x00000000  // Polynomial 0x8005
+#define CCM_CRCCTRL_TYPE_P1021  0x00000001  // Polynomial 0x1021
+#define CCM_CRCCTRL_TYPE_P4C11DB7                                             \
+                                0x00000002  // Polynomial 0x4C11DB7
+#define CCM_CRCCTRL_TYPE_P1EDC6F41                                            \
+                                0x00000003  // Polynomial 0x1EDC6F41
+#define CCM_CRCCTRL_TYPE_TCPCHKSUM                                            \
+                                0x00000008  // TCP checksum
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CCM_O_CRCSEED register.
+//
+//*****************************************************************************
+#define CCM_CRCSEED_SEED_M      0xFFFFFFFF  // SEED/Context Value
+#define CCM_CRCSEED_SEED_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CCM_O_CRCDIN register.
+//
+//*****************************************************************************
+#define CCM_CRCDIN_DATAIN_M     0xFFFFFFFF  // Data Input
+#define CCM_CRCDIN_DATAIN_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CCM_O_CRCRSLTPP
+// register.
+//
+//*****************************************************************************
+#define CCM_CRCRSLTPP_RSLTPP_M  0xFFFFFFFF  // Post Processing Result
+#define CCM_CRCRSLTPP_RSLTPP_S  0
+
+#endif // __HW_CCM_H__

+ 211 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_comp.h

@@ -0,0 +1,211 @@
+//*****************************************************************************
+//
+// hw_comp.h - Macros used when accessing the comparator hardware.
+//
+// Copyright (c) 2005-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Firmware Development Package.
+//
+//*****************************************************************************
+
+#ifndef __HW_COMP_H__
+#define __HW_COMP_H__
+
+//*****************************************************************************
+//
+// The following are defines for the Comparator register offsets.
+//
+//*****************************************************************************
+#define COMP_O_ACMIS            0x00000000  // Analog Comparator Masked
+                                            // Interrupt Status
+#define COMP_O_ACRIS            0x00000004  // Analog Comparator Raw Interrupt
+                                            // Status
+#define COMP_O_ACINTEN          0x00000008  // Analog Comparator Interrupt
+                                            // Enable
+#define COMP_O_ACREFCTL         0x00000010  // Analog Comparator Reference
+                                            // Voltage Control
+#define COMP_O_ACSTAT0          0x00000020  // Analog Comparator Status 0
+#define COMP_O_ACCTL0           0x00000024  // Analog Comparator Control 0
+#define COMP_O_ACSTAT1          0x00000040  // Analog Comparator Status 1
+#define COMP_O_ACCTL1           0x00000044  // Analog Comparator Control 1
+#define COMP_O_ACSTAT2          0x00000060  // Analog Comparator Status 2
+#define COMP_O_ACCTL2           0x00000064  // Analog Comparator Control 2
+#define COMP_O_PP               0x00000FC0  // Analog Comparator Peripheral
+                                            // Properties
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the COMP_O_ACMIS register.
+//
+//*****************************************************************************
+#define COMP_ACMIS_IN2          0x00000004  // Comparator 2 Masked Interrupt
+                                            // Status
+#define COMP_ACMIS_IN1          0x00000002  // Comparator 1 Masked Interrupt
+                                            // Status
+#define COMP_ACMIS_IN0          0x00000001  // Comparator 0 Masked Interrupt
+                                            // Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the COMP_O_ACRIS register.
+//
+//*****************************************************************************
+#define COMP_ACRIS_IN2          0x00000004  // Comparator 2 Interrupt Status
+#define COMP_ACRIS_IN1          0x00000002  // Comparator 1 Interrupt Status
+#define COMP_ACRIS_IN0          0x00000001  // Comparator 0 Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the COMP_O_ACINTEN register.
+//
+//*****************************************************************************
+#define COMP_ACINTEN_IN2        0x00000004  // Comparator 2 Interrupt Enable
+#define COMP_ACINTEN_IN1        0x00000002  // Comparator 1 Interrupt Enable
+#define COMP_ACINTEN_IN0        0x00000001  // Comparator 0 Interrupt Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the COMP_O_ACREFCTL
+// register.
+//
+//*****************************************************************************
+#define COMP_ACREFCTL_EN        0x00000200  // Resistor Ladder Enable
+#define COMP_ACREFCTL_RNG       0x00000100  // Resistor Ladder Range
+#define COMP_ACREFCTL_VREF_M    0x0000000F  // Resistor Ladder Voltage Ref
+#define COMP_ACREFCTL_VREF_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the COMP_O_ACSTAT0 register.
+//
+//*****************************************************************************
+#define COMP_ACSTAT0_OVAL       0x00000002  // Comparator Output Value
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the COMP_O_ACCTL0 register.
+//
+//*****************************************************************************
+#define COMP_ACCTL0_TOEN        0x00000800  // Trigger Output Enable
+#define COMP_ACCTL0_ASRCP_M     0x00000600  // Analog Source Positive
+#define COMP_ACCTL0_ASRCP_PIN   0x00000000  // Pin value of Cn+
+#define COMP_ACCTL0_ASRCP_PIN0  0x00000200  // Pin value of C0+
+#define COMP_ACCTL0_ASRCP_REF   0x00000400  // Internal voltage reference
+#define COMP_ACCTL0_TSLVAL      0x00000080  // Trigger Sense Level Value
+#define COMP_ACCTL0_TSEN_M      0x00000060  // Trigger Sense
+#define COMP_ACCTL0_TSEN_LEVEL  0x00000000  // Level sense, see TSLVAL
+#define COMP_ACCTL0_TSEN_FALL   0x00000020  // Falling edge
+#define COMP_ACCTL0_TSEN_RISE   0x00000040  // Rising edge
+#define COMP_ACCTL0_TSEN_BOTH   0x00000060  // Either edge
+#define COMP_ACCTL0_ISLVAL      0x00000010  // Interrupt Sense Level Value
+#define COMP_ACCTL0_ISEN_M      0x0000000C  // Interrupt Sense
+#define COMP_ACCTL0_ISEN_LEVEL  0x00000000  // Level sense, see ISLVAL
+#define COMP_ACCTL0_ISEN_FALL   0x00000004  // Falling edge
+#define COMP_ACCTL0_ISEN_RISE   0x00000008  // Rising edge
+#define COMP_ACCTL0_ISEN_BOTH   0x0000000C  // Either edge
+#define COMP_ACCTL0_CINV        0x00000002  // Comparator Output Invert
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the COMP_O_ACSTAT1 register.
+//
+//*****************************************************************************
+#define COMP_ACSTAT1_OVAL       0x00000002  // Comparator Output Value
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the COMP_O_ACCTL1 register.
+//
+//*****************************************************************************
+#define COMP_ACCTL1_TOEN        0x00000800  // Trigger Output Enable
+#define COMP_ACCTL1_ASRCP_M     0x00000600  // Analog Source Positive
+#define COMP_ACCTL1_ASRCP_PIN   0x00000000  // Pin value of Cn+
+#define COMP_ACCTL1_ASRCP_PIN0  0x00000200  // Pin value of C0+
+#define COMP_ACCTL1_ASRCP_REF   0x00000400  // Internal voltage reference
+#define COMP_ACCTL1_TSLVAL      0x00000080  // Trigger Sense Level Value
+#define COMP_ACCTL1_TSEN_M      0x00000060  // Trigger Sense
+#define COMP_ACCTL1_TSEN_LEVEL  0x00000000  // Level sense, see TSLVAL
+#define COMP_ACCTL1_TSEN_FALL   0x00000020  // Falling edge
+#define COMP_ACCTL1_TSEN_RISE   0x00000040  // Rising edge
+#define COMP_ACCTL1_TSEN_BOTH   0x00000060  // Either edge
+#define COMP_ACCTL1_ISLVAL      0x00000010  // Interrupt Sense Level Value
+#define COMP_ACCTL1_ISEN_M      0x0000000C  // Interrupt Sense
+#define COMP_ACCTL1_ISEN_LEVEL  0x00000000  // Level sense, see ISLVAL
+#define COMP_ACCTL1_ISEN_FALL   0x00000004  // Falling edge
+#define COMP_ACCTL1_ISEN_RISE   0x00000008  // Rising edge
+#define COMP_ACCTL1_ISEN_BOTH   0x0000000C  // Either edge
+#define COMP_ACCTL1_CINV        0x00000002  // Comparator Output Invert
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the COMP_O_ACSTAT2 register.
+//
+//*****************************************************************************
+#define COMP_ACSTAT2_OVAL       0x00000002  // Comparator Output Value
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the COMP_O_ACCTL2 register.
+//
+//*****************************************************************************
+#define COMP_ACCTL2_TOEN        0x00000800  // Trigger Output Enable
+#define COMP_ACCTL2_ASRCP_M     0x00000600  // Analog Source Positive
+#define COMP_ACCTL2_ASRCP_PIN   0x00000000  // Pin value of Cn+
+#define COMP_ACCTL2_ASRCP_PIN0  0x00000200  // Pin value of C0+
+#define COMP_ACCTL2_ASRCP_REF   0x00000400  // Internal voltage reference
+#define COMP_ACCTL2_TSLVAL      0x00000080  // Trigger Sense Level Value
+#define COMP_ACCTL2_TSEN_M      0x00000060  // Trigger Sense
+#define COMP_ACCTL2_TSEN_LEVEL  0x00000000  // Level sense, see TSLVAL
+#define COMP_ACCTL2_TSEN_FALL   0x00000020  // Falling edge
+#define COMP_ACCTL2_TSEN_RISE   0x00000040  // Rising edge
+#define COMP_ACCTL2_TSEN_BOTH   0x00000060  // Either edge
+#define COMP_ACCTL2_ISLVAL      0x00000010  // Interrupt Sense Level Value
+#define COMP_ACCTL2_ISEN_M      0x0000000C  // Interrupt Sense
+#define COMP_ACCTL2_ISEN_LEVEL  0x00000000  // Level sense, see ISLVAL
+#define COMP_ACCTL2_ISEN_FALL   0x00000004  // Falling edge
+#define COMP_ACCTL2_ISEN_RISE   0x00000008  // Rising edge
+#define COMP_ACCTL2_ISEN_BOTH   0x0000000C  // Either edge
+#define COMP_ACCTL2_CINV        0x00000002  // Comparator Output Invert
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the COMP_O_PP register.
+//
+//*****************************************************************************
+#define COMP_PP_C2O             0x00040000  // Comparator Output 2 Present
+#define COMP_PP_C1O             0x00020000  // Comparator Output 1 Present
+#define COMP_PP_C0O             0x00010000  // Comparator Output 0 Present
+#define COMP_PP_CMP2            0x00000004  // Comparator 2 Present
+#define COMP_PP_CMP1            0x00000002  // Comparator 1 Present
+#define COMP_PP_CMP0            0x00000001  // Comparator 0 Present
+
+#endif // __HW_COMP_H__

+ 310 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_des.h

@@ -0,0 +1,310 @@
+//*****************************************************************************
+//
+// hw_des.h - Macros used when accessing the DES hardware.
+//
+// Copyright (c) 2012-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Firmware Development Package.
+//
+//*****************************************************************************
+
+#ifndef __HW_DES_H__
+#define __HW_DES_H__
+
+//*****************************************************************************
+//
+// The following are defines for the DES register offsets.
+//
+//*****************************************************************************
+#define DES_O_KEY3_L            0x00000000  // DES Key 3 LSW for 192-Bit Key
+#define DES_O_KEY3_H            0x00000004  // DES Key 3 MSW for 192-Bit Key
+#define DES_O_KEY2_L            0x00000008  // DES Key 2 LSW for 128-Bit Key
+#define DES_O_KEY2_H            0x0000000C  // DES Key 2 MSW for 128-Bit Key
+#define DES_O_KEY1_L            0x00000010  // DES Key 1 LSW for 64-Bit Key
+#define DES_O_KEY1_H            0x00000014  // DES Key 1 MSW for 64-Bit Key
+#define DES_O_IV_L              0x00000018  // DES Initialization Vector
+#define DES_O_IV_H              0x0000001C  // DES Initialization Vector
+#define DES_O_CTRL              0x00000020  // DES Control
+#define DES_O_LENGTH            0x00000024  // DES Cryptographic Data Length
+#define DES_O_DATA_L            0x00000028  // DES LSW Data RW
+#define DES_O_DATA_H            0x0000002C  // DES MSW Data RW
+#define DES_O_REVISION          0x00000030  // DES Revision Number
+#define DES_O_SYSCONFIG         0x00000034  // DES System Configuration
+#define DES_O_SYSSTATUS         0x00000038  // DES System Status
+#define DES_O_IRQSTATUS         0x0000003C  // DES Interrupt Status
+#define DES_O_IRQENABLE         0x00000040  // DES Interrupt Enable
+#define DES_O_DIRTYBITS         0x00000044  // DES Dirty Bits
+#define DES_O_DMAIM             0xFFFF8030  // DES DMA Interrupt Mask
+#define DES_O_DMARIS            0xFFFF8034  // DES DMA Raw Interrupt Status
+#define DES_O_DMAMIS            0xFFFF8038  // DES DMA Masked Interrupt Status
+#define DES_O_DMAIC             0xFFFF803C  // DES DMA Interrupt Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the DES_O_KEY3_L register.
+//
+//*****************************************************************************
+#define DES_KEY3_L_KEY_M        0xFFFFFFFF  // Key Data
+#define DES_KEY3_L_KEY_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the DES_O_KEY3_H register.
+//
+//*****************************************************************************
+#define DES_KEY3_H_KEY_M        0xFFFFFFFF  // Key Data
+#define DES_KEY3_H_KEY_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the DES_O_KEY2_L register.
+//
+//*****************************************************************************
+#define DES_KEY2_L_KEY_M        0xFFFFFFFF  // Key Data
+#define DES_KEY2_L_KEY_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the DES_O_KEY2_H register.
+//
+//*****************************************************************************
+#define DES_KEY2_H_KEY_M        0xFFFFFFFF  // Key Data
+#define DES_KEY2_H_KEY_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the DES_O_KEY1_L register.
+//
+//*****************************************************************************
+#define DES_KEY1_L_KEY_M        0xFFFFFFFF  // Key Data
+#define DES_KEY1_L_KEY_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the DES_O_KEY1_H register.
+//
+//*****************************************************************************
+#define DES_KEY1_H_KEY_M        0xFFFFFFFF  // Key Data
+#define DES_KEY1_H_KEY_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the DES_O_IV_L register.
+//
+//*****************************************************************************
+#define DES_IV_L_M              0xFFFFFFFF  // Initialization vector for CBC,
+                                            // CFB modes (LSW)
+#define DES_IV_L_S              0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the DES_O_IV_H register.
+//
+//*****************************************************************************
+#define DES_IV_H_M              0xFFFFFFFF  // Initialization vector for CBC,
+                                            // CFB modes (MSW)
+#define DES_IV_H_S              0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the DES_O_CTRL register.
+//
+//*****************************************************************************
+#define DES_CTRL_CONTEXT        0x80000000  // If 1, this read-only status bit
+                                            // indicates that the context data
+                                            // registers can be overwritten and
+                                            // the host is permitted to write
+                                            // the next context
+#define DES_CTRL_MODE_M         0x00000030  // Select CBC, ECB or CFB mode0x0:
+                                            // ECB mode0x1: CBC mode0x2: CFB
+                                            // mode0x3: reserved
+#define DES_CTRL_TDES           0x00000008  // Select DES or triple DES
+                                            // encryption/decryption
+#define DES_CTRL_DIRECTION      0x00000004  // Select encryption/decryption
+                                            // 0x0: decryption is selected0x1:
+                                            // Encryption is selected
+#define DES_CTRL_INPUT_READY    0x00000002  // When 1, ready to encrypt/decrypt
+                                            // data
+#define DES_CTRL_OUTPUT_READY   0x00000001  // When 1, Data decrypted/encrypted
+                                            // ready
+#define DES_CTRL_MODE_S         4
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the DES_O_LENGTH register.
+//
+//*****************************************************************************
+#define DES_LENGTH_M            0xFFFFFFFF  // Cryptographic data length in
+                                            // bytes for all modes
+#define DES_LENGTH_S            0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the DES_O_DATA_L register.
+//
+//*****************************************************************************
+#define DES_DATA_L_M            0xFFFFFFFF  // Data for encryption/decryption,
+                                            // LSW
+#define DES_DATA_L_S            0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the DES_O_DATA_H register.
+//
+//*****************************************************************************
+#define DES_DATA_H_M            0xFFFFFFFF  // Data for encryption/decryption,
+                                            // MSW
+#define DES_DATA_H_S            0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the DES_O_REVISION register.
+//
+//*****************************************************************************
+#define DES_REVISION_M          0xFFFFFFFF  // Revision number
+#define DES_REVISION_S          0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the DES_O_SYSCONFIG
+// register.
+//
+//*****************************************************************************
+#define DES_SYSCONFIG_DMA_REQ_CONTEXT_IN_EN                                   \
+                                0x00000080  // DMA Request Context In Enable
+#define DES_SYSCONFIG_DMA_REQ_DATA_OUT_EN                                     \
+                                0x00000040  // DMA Request Data Out Enable
+#define DES_SYSCONFIG_DMA_REQ_DATA_IN_EN                                      \
+                                0x00000020  // DMA Request Data In Enable
+#define DES_SYSCONFIG_SIDLE_M   0x0000000C  // Sidle mode
+#define DES_SYSCONFIG_SIDLE_FORCE                                             \
+                                0x00000000  // Force-idle mode
+#define DES_SYSCONFIG_SOFTRESET 0x00000002  // Soft reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the DES_O_SYSSTATUS
+// register.
+//
+//*****************************************************************************
+#define DES_SYSSTATUS_RESETDONE 0x00000001  // Reset Done
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the DES_O_IRQSTATUS
+// register.
+//
+//*****************************************************************************
+#define DES_IRQSTATUS_DATA_OUT  0x00000004  // This bit indicates data output
+                                            // interrupt is active and triggers
+                                            // the interrupt output
+#define DES_IRQSTATUS_DATA_IN   0x00000002  // This bit indicates data input
+                                            // interrupt is active and triggers
+                                            // the interrupt output
+#define DES_IRQSTATUS_CONTEX_IN 0x00000001  // This bit indicates context
+                                            // interrupt is active and triggers
+                                            // the interrupt output
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the DES_O_IRQENABLE
+// register.
+//
+//*****************************************************************************
+#define DES_IRQENABLE_M_DATA_OUT                                              \
+                                0x00000004  // If this bit is set to 1 the data
+                                            // output interrupt is enabled
+#define DES_IRQENABLE_M_DATA_IN 0x00000002  // If this bit is set to 1 the data
+                                            // input interrupt is enabled
+#define DES_IRQENABLE_M_CONTEX_IN                                             \
+                                0x00000001  // If this bit is set to 1 the
+                                            // context interrupt is enabled
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the DES_O_DIRTYBITS
+// register.
+//
+//*****************************************************************************
+#define DES_DIRTYBITS_S_DIRTY   0x00000002  // This bit is set to 1 by the
+                                            // module if any of the DES_*
+                                            // registers is written
+#define DES_DIRTYBITS_S_ACCESS  0x00000001  // This bit is set to 1 by the
+                                            // module if any of the DES_*
+                                            // registers is read
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the DES_O_DMAIM register.
+//
+//*****************************************************************************
+#define DES_DMAIM_DOUT          0x00000004  // Data Out DMA Done Interrupt Mask
+#define DES_DMAIM_DIN           0x00000002  // Data In DMA Done Interrupt Mask
+#define DES_DMAIM_CIN           0x00000001  // Context In DMA Done Interrupt
+                                            // Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the DES_O_DMARIS register.
+//
+//*****************************************************************************
+#define DES_DMARIS_DOUT         0x00000004  // Data Out DMA Done Raw Interrupt
+                                            // Status
+#define DES_DMARIS_DIN          0x00000002  // Data In DMA Done Raw Interrupt
+                                            // Status
+#define DES_DMARIS_CIN          0x00000001  // Context In DMA Done Raw
+                                            // Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the DES_O_DMAMIS register.
+//
+//*****************************************************************************
+#define DES_DMAMIS_DOUT         0x00000004  // Data Out DMA Done Masked
+                                            // Interrupt Status
+#define DES_DMAMIS_DIN          0x00000002  // Data In DMA Done Masked
+                                            // Interrupt Status
+#define DES_DMAMIS_CIN          0x00000001  // Context In DMA Done Raw
+                                            // Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the DES_O_DMAIC register.
+//
+//*****************************************************************************
+#define DES_DMAIC_DOUT          0x00000004  // Data Out DMA Done Interrupt
+                                            // Clear
+#define DES_DMAIC_DIN           0x00000002  // Data In DMA Done Interrupt Clear
+#define DES_DMAIC_CIN           0x00000001  // Context In DMA Done Raw
+                                            // Interrupt Status
+
+#endif // __HW_DES_H__

+ 251 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_eeprom.h

@@ -0,0 +1,251 @@
+//*****************************************************************************
+//
+// hw_eeprom.h - Macros used when accessing the EEPROM controller.
+//
+// Copyright (c) 2011-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Firmware Development Package.
+//
+//*****************************************************************************
+
+#ifndef __HW_EEPROM_H__
+#define __HW_EEPROM_H__
+
+//*****************************************************************************
+//
+// The following are defines for the EEPROM register offsets.
+//
+//*****************************************************************************
+#define EEPROM_EESIZE           0x400AF000  // EEPROM Size Information
+#define EEPROM_EEBLOCK          0x400AF004  // EEPROM Current Block
+#define EEPROM_EEOFFSET         0x400AF008  // EEPROM Current Offset
+#define EEPROM_EERDWR           0x400AF010  // EEPROM Read-Write
+#define EEPROM_EERDWRINC        0x400AF014  // EEPROM Read-Write with Increment
+#define EEPROM_EEDONE           0x400AF018  // EEPROM Done Status
+#define EEPROM_EESUPP           0x400AF01C  // EEPROM Support Control and
+                                            // Status
+#define EEPROM_EEUNLOCK         0x400AF020  // EEPROM Unlock
+#define EEPROM_EEPROT           0x400AF030  // EEPROM Protection
+#define EEPROM_EEPASS0          0x400AF034  // EEPROM Password
+#define EEPROM_EEPASS1          0x400AF038  // EEPROM Password
+#define EEPROM_EEPASS2          0x400AF03C  // EEPROM Password
+#define EEPROM_EEINT            0x400AF040  // EEPROM Interrupt
+#define EEPROM_EEHIDE0          0x400AF050  // EEPROM Block Hide 0
+#define EEPROM_EEHIDE           0x400AF050  // EEPROM Block Hide
+#define EEPROM_EEHIDE1          0x400AF054  // EEPROM Block Hide 1
+#define EEPROM_EEHIDE2          0x400AF058  // EEPROM Block Hide 2
+#define EEPROM_EEDBGME          0x400AF080  // EEPROM Debug Mass Erase
+#define EEPROM_PP               0x400AFFC0  // EEPROM Peripheral Properties
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EESIZE register.
+//
+//*****************************************************************************
+#define EEPROM_EESIZE_WORDCNT_M 0x0000FFFF  // Number of 32-Bit Words
+#define EEPROM_EESIZE_BLKCNT_M  0x07FF0000  // Number of 16-Word Blocks
+#define EEPROM_EESIZE_WORDCNT_S 0
+#define EEPROM_EESIZE_BLKCNT_S  16
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EEBLOCK register.
+//
+//*****************************************************************************
+#define EEPROM_EEBLOCK_BLOCK_M  0x0000FFFF  // Current Block
+#define EEPROM_EEBLOCK_BLOCK_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EEOFFSET
+// register.
+//
+//*****************************************************************************
+#define EEPROM_EEOFFSET_OFFSET_M                                              \
+                                0x0000000F  // Current Address Offset
+#define EEPROM_EEOFFSET_OFFSET_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EERDWR register.
+//
+//*****************************************************************************
+#define EEPROM_EERDWR_VALUE_M   0xFFFFFFFF  // EEPROM Read or Write Data
+#define EEPROM_EERDWR_VALUE_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EERDWRINC
+// register.
+//
+//*****************************************************************************
+#define EEPROM_EERDWRINC_VALUE_M                                              \
+                                0xFFFFFFFF  // EEPROM Read or Write Data with
+                                            // Increment
+#define EEPROM_EERDWRINC_VALUE_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EEDONE register.
+//
+//*****************************************************************************
+#define EEPROM_EEDONE_WORKING   0x00000001  // EEPROM Working
+#define EEPROM_EEDONE_WKERASE   0x00000004  // Working on an Erase
+#define EEPROM_EEDONE_WKCOPY    0x00000008  // Working on a Copy
+#define EEPROM_EEDONE_NOPERM    0x00000010  // Write Without Permission
+#define EEPROM_EEDONE_WRBUSY    0x00000020  // Write Busy
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EESUPP register.
+//
+//*****************************************************************************
+#define EEPROM_EESUPP_ERETRY    0x00000004  // Erase Must Be Retried
+#define EEPROM_EESUPP_PRETRY    0x00000008  // Programming Must Be Retried
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EEUNLOCK
+// register.
+//
+//*****************************************************************************
+#define EEPROM_EEUNLOCK_UNLOCK_M                                              \
+                                0xFFFFFFFF  // EEPROM Unlock
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EEPROT register.
+//
+//*****************************************************************************
+#define EEPROM_EEPROT_PROT_M    0x00000007  // Protection Control
+#define EEPROM_EEPROT_PROT_RWNPW                                              \
+                                0x00000000  // This setting is the default. If
+                                            // there is no password, the block
+                                            // is not protected and is readable
+                                            // and writable
+#define EEPROM_EEPROT_PROT_RWPW 0x00000001  // If there is a password, the
+                                            // block is readable or writable
+                                            // only when unlocked
+#define EEPROM_EEPROT_PROT_RONPW                                              \
+                                0x00000002  // If there is no password, the
+                                            // block is readable, not writable
+#define EEPROM_EEPROT_ACC       0x00000008  // Access Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EEPASS0 register.
+//
+//*****************************************************************************
+#define EEPROM_EEPASS0_PASS_M   0xFFFFFFFF  // Password
+#define EEPROM_EEPASS0_PASS_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EEPASS1 register.
+//
+//*****************************************************************************
+#define EEPROM_EEPASS1_PASS_M   0xFFFFFFFF  // Password
+#define EEPROM_EEPASS1_PASS_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EEPASS2 register.
+//
+//*****************************************************************************
+#define EEPROM_EEPASS2_PASS_M   0xFFFFFFFF  // Password
+#define EEPROM_EEPASS2_PASS_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EEINT register.
+//
+//*****************************************************************************
+#define EEPROM_EEINT_INT        0x00000001  // Interrupt Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EEHIDE0 register.
+//
+//*****************************************************************************
+#define EEPROM_EEHIDE0_HN_M     0xFFFFFFFE  // Hide Block
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EEHIDE register.
+//
+//*****************************************************************************
+#define EEPROM_EEHIDE_HN_M      0xFFFFFFFE  // Hide Block
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EEHIDE1 register.
+//
+//*****************************************************************************
+#define EEPROM_EEHIDE1_HN_M     0xFFFFFFFF  // Hide Block
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EEHIDE2 register.
+//
+//*****************************************************************************
+#define EEPROM_EEHIDE2_HN_M     0xFFFFFFFF  // Hide Block
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EEDBGME register.
+//
+//*****************************************************************************
+#define EEPROM_EEDBGME_ME       0x00000001  // Mass Erase
+#define EEPROM_EEDBGME_KEY_M    0xFFFF0000  // Erase Key
+#define EEPROM_EEDBGME_KEY_S    16
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_PP register.
+//
+//*****************************************************************************
+#define EEPROM_PP_SIZE_M        0x0000FFFF  // EEPROM Size
+#define EEPROM_PP_SIZE_64       0x00000000  // 64 bytes of EEPROM
+#define EEPROM_PP_SIZE_128      0x00000001  // 128 bytes of EEPROM
+#define EEPROM_PP_SIZE_256      0x00000003  // 256 bytes of EEPROM
+#define EEPROM_PP_SIZE_512      0x00000007  // 512 bytes of EEPROM
+#define EEPROM_PP_SIZE_1K       0x0000000F  // 1 KB of EEPROM
+#define EEPROM_PP_SIZE_2K       0x0000001F  // 2 KB of EEPROM
+#define EEPROM_PP_SIZE_3K       0x0000003F  // 3 KB of EEPROM
+#define EEPROM_PP_SIZE_4K       0x0000007F  // 4 KB of EEPROM
+#define EEPROM_PP_SIZE_5K       0x000000FF  // 5 KB of EEPROM
+#define EEPROM_PP_SIZE_6K       0x000001FF  // 6 KB of EEPROM
+#define EEPROM_PP_SIZE_S        0
+
+#endif // __HW_EEPROM_H__

+ 1874 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_emac.h

@@ -0,0 +1,1874 @@
+//*****************************************************************************
+//
+// hw_emac.h - Macros used when accessing the EMAC hardware.
+//
+// Copyright (c) 2012-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Firmware Development Package.
+//
+//*****************************************************************************
+
+#ifndef __HW_EMAC_H__
+#define __HW_EMAC_H__
+
+//*****************************************************************************
+//
+// The following are defines for the EMAC register offsets.
+//
+//*****************************************************************************
+#define EMAC_O_CFG              0x00000000  // Ethernet MAC Configuration
+#define EMAC_O_FRAMEFLTR        0x00000004  // Ethernet MAC Frame Filter
+#define EMAC_O_HASHTBLH         0x00000008  // Ethernet MAC Hash Table High
+#define EMAC_O_HASHTBLL         0x0000000C  // Ethernet MAC Hash Table Low
+#define EMAC_O_MIIADDR          0x00000010  // Ethernet MAC MII Address
+#define EMAC_O_MIIDATA          0x00000014  // Ethernet MAC MII Data Register
+#define EMAC_O_FLOWCTL          0x00000018  // Ethernet MAC Flow Control
+#define EMAC_O_VLANTG           0x0000001C  // Ethernet MAC VLAN Tag
+#define EMAC_O_STATUS           0x00000024  // Ethernet MAC Status
+#define EMAC_O_RWUFF            0x00000028  // Ethernet MAC Remote Wake-Up
+                                            // Frame Filter
+#define EMAC_O_PMTCTLSTAT       0x0000002C  // Ethernet MAC PMT Control and
+                                            // Status Register
+#define EMAC_O_LPICTLSTAT       0x00000030  // Ethernet MAC Low Power Idle
+                                            // Control and Status Register
+#define EMAC_O_LPITIMERCTL      0x00000034  // Ethernet MAC Low Power Idle
+                                            // Timer Control Register
+#define EMAC_O_RIS              0x00000038  // Ethernet MAC Raw Interrupt
+                                            // Status
+#define EMAC_O_IM               0x0000003C  // Ethernet MAC Interrupt Mask
+#define EMAC_O_ADDR0H           0x00000040  // Ethernet MAC Address 0 High
+#define EMAC_O_ADDR0L           0x00000044  // Ethernet MAC Address 0 Low
+                                            // Register
+#define EMAC_O_ADDR1H           0x00000048  // Ethernet MAC Address 1 High
+#define EMAC_O_ADDR1L           0x0000004C  // Ethernet MAC Address 1 Low
+#define EMAC_O_ADDR2H           0x00000050  // Ethernet MAC Address 2 High
+#define EMAC_O_ADDR2L           0x00000054  // Ethernet MAC Address 2 Low
+#define EMAC_O_ADDR3H           0x00000058  // Ethernet MAC Address 3 High
+#define EMAC_O_ADDR3L           0x0000005C  // Ethernet MAC Address 3 Low
+#define EMAC_O_WDOGTO           0x000000DC  // Ethernet MAC Watchdog Timeout
+#define EMAC_O_MMCCTRL          0x00000100  // Ethernet MAC MMC Control
+#define EMAC_O_MMCRXRIS         0x00000104  // Ethernet MAC MMC Receive Raw
+                                            // Interrupt Status
+#define EMAC_O_MMCTXRIS         0x00000108  // Ethernet MAC MMC Transmit Raw
+                                            // Interrupt Status
+#define EMAC_O_MMCRXIM          0x0000010C  // Ethernet MAC MMC Receive
+                                            // Interrupt Mask
+#define EMAC_O_MMCTXIM          0x00000110  // Ethernet MAC MMC Transmit
+                                            // Interrupt Mask
+#define EMAC_O_TXCNTGB          0x00000118  // Ethernet MAC Transmit Frame
+                                            // Count for Good and Bad Frames
+#define EMAC_O_TXCNTSCOL        0x0000014C  // Ethernet MAC Transmit Frame
+                                            // Count for Frames Transmitted
+                                            // after Single Collision
+#define EMAC_O_TXCNTMCOL        0x00000150  // Ethernet MAC Transmit Frame
+                                            // Count for Frames Transmitted
+                                            // after Multiple Collisions
+#define EMAC_O_TXOCTCNTG        0x00000164  // Ethernet MAC Transmit Octet
+                                            // Count Good
+#define EMAC_O_RXCNTGB          0x00000180  // Ethernet MAC Receive Frame Count
+                                            // for Good and Bad Frames
+#define EMAC_O_RXCNTCRCERR      0x00000194  // Ethernet MAC Receive Frame Count
+                                            // for CRC Error Frames
+#define EMAC_O_RXCNTALGNERR     0x00000198  // Ethernet MAC Receive Frame Count
+                                            // for Alignment Error Frames
+#define EMAC_O_RXCNTGUNI        0x000001C4  // Ethernet MAC Receive Frame Count
+                                            // for Good Unicast Frames
+#define EMAC_O_VLNINCREP        0x00000584  // Ethernet MAC VLAN Tag Inclusion
+                                            // or Replacement
+#define EMAC_O_VLANHASH         0x00000588  // Ethernet MAC VLAN Hash Table
+#define EMAC_O_TIMSTCTRL        0x00000700  // Ethernet MAC Timestamp Control
+#define EMAC_O_SUBSECINC        0x00000704  // Ethernet MAC Sub-Second
+                                            // Increment
+#define EMAC_O_TIMSEC           0x00000708  // Ethernet MAC System Time -
+                                            // Seconds
+#define EMAC_O_TIMNANO          0x0000070C  // Ethernet MAC System Time -
+                                            // Nanoseconds
+#define EMAC_O_TIMSECU          0x00000710  // Ethernet MAC System Time -
+                                            // Seconds Update
+#define EMAC_O_TIMNANOU         0x00000714  // Ethernet MAC System Time -
+                                            // Nanoseconds Update
+#define EMAC_O_TIMADD           0x00000718  // Ethernet MAC Timestamp Addend
+#define EMAC_O_TARGSEC          0x0000071C  // Ethernet MAC Target Time Seconds
+#define EMAC_O_TARGNANO         0x00000720  // Ethernet MAC Target Time
+                                            // Nanoseconds
+#define EMAC_O_HWORDSEC         0x00000724  // Ethernet MAC System Time-Higher
+                                            // Word Seconds
+#define EMAC_O_TIMSTAT          0x00000728  // Ethernet MAC Timestamp Status
+#define EMAC_O_PPSCTRL          0x0000072C  // Ethernet MAC PPS Control
+#define EMAC_O_PPS0INTVL        0x00000760  // Ethernet MAC PPS0 Interval
+#define EMAC_O_PPS0WIDTH        0x00000764  // Ethernet MAC PPS0 Width
+#define EMAC_O_DMABUSMOD        0x00000C00  // Ethernet MAC DMA Bus Mode
+#define EMAC_O_TXPOLLD          0x00000C04  // Ethernet MAC Transmit Poll
+                                            // Demand
+#define EMAC_O_RXPOLLD          0x00000C08  // Ethernet MAC Receive Poll Demand
+#define EMAC_O_RXDLADDR         0x00000C0C  // Ethernet MAC Receive Descriptor
+                                            // List Address
+#define EMAC_O_TXDLADDR         0x00000C10  // Ethernet MAC Transmit Descriptor
+                                            // List Address
+#define EMAC_O_DMARIS           0x00000C14  // Ethernet MAC DMA Interrupt
+                                            // Status
+#define EMAC_O_DMAOPMODE        0x00000C18  // Ethernet MAC DMA Operation Mode
+#define EMAC_O_DMAIM            0x00000C1C  // Ethernet MAC DMA Interrupt Mask
+                                            // Register
+#define EMAC_O_MFBOC            0x00000C20  // Ethernet MAC Missed Frame and
+                                            // Buffer Overflow Counter
+#define EMAC_O_RXINTWDT         0x00000C24  // Ethernet MAC Receive Interrupt
+                                            // Watchdog Timer
+#define EMAC_O_HOSTXDESC        0x00000C48  // Ethernet MAC Current Host
+                                            // Transmit Descriptor
+#define EMAC_O_HOSRXDESC        0x00000C4C  // Ethernet MAC Current Host
+                                            // Receive Descriptor
+#define EMAC_O_HOSTXBA          0x00000C50  // Ethernet MAC Current Host
+                                            // Transmit Buffer Address
+#define EMAC_O_HOSRXBA          0x00000C54  // Ethernet MAC Current Host
+                                            // Receive Buffer Address
+#define EMAC_O_PP               0x00000FC0  // Ethernet MAC Peripheral Property
+                                            // Register
+#define EMAC_O_PC               0x00000FC4  // Ethernet MAC Peripheral
+                                            // Configuration Register
+#define EMAC_O_CC               0x00000FC8  // Ethernet MAC Clock Configuration
+                                            // Register
+#define EMAC_O_EPHYRIS          0x00000FD0  // Ethernet PHY Raw Interrupt
+                                            // Status
+#define EMAC_O_EPHYIM           0x00000FD4  // Ethernet PHY Interrupt Mask
+#define EMAC_O_EPHYMISC         0x00000FD8  // Ethernet PHY Masked Interrupt
+                                            // Status and Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_CFG register.
+//
+//*****************************************************************************
+#define EMAC_CFG_TWOKPEN        0x08000000  // IEEE 802
+#define EMAC_CFG_CST            0x02000000  // CRC Stripping for Type Frames
+#define EMAC_CFG_WDDIS          0x00800000  // Watchdog Disable
+#define EMAC_CFG_JD             0x00400000  // Jabber Disable
+#define EMAC_CFG_JFEN           0x00100000  // Jumbo Frame Enable
+#define EMAC_CFG_IFG_M          0x000E0000  // Inter-Frame Gap (IFG)
+#define EMAC_CFG_IFG_96         0x00000000  // 96 bit times
+#define EMAC_CFG_IFG_88         0x00020000  // 88 bit times
+#define EMAC_CFG_IFG_80         0x00040000  // 80 bit times
+#define EMAC_CFG_IFG_72         0x00060000  // 72 bit times
+#define EMAC_CFG_IFG_64         0x00080000  // 64 bit times
+#define EMAC_CFG_IFG_56         0x000A0000  // 56 bit times
+#define EMAC_CFG_IFG_48         0x000C0000  // 48 bit times
+#define EMAC_CFG_IFG_40         0x000E0000  // 40 bit times
+#define EMAC_CFG_DISCRS         0x00010000  // Disable Carrier Sense During
+                                            // Transmission
+#define EMAC_CFG_PS             0x00008000  // Port Select
+#define EMAC_CFG_FES            0x00004000  // Speed
+#define EMAC_CFG_DRO            0x00002000  // Disable Receive Own
+#define EMAC_CFG_LOOPBM         0x00001000  // Loopback Mode
+#define EMAC_CFG_DUPM           0x00000800  // Duplex Mode
+#define EMAC_CFG_IPC            0x00000400  // Checksum Offload
+#define EMAC_CFG_DR             0x00000200  // Disable Retry
+#define EMAC_CFG_ACS            0x00000080  // Automatic Pad or CRC Stripping
+#define EMAC_CFG_BL_M           0x00000060  // Back-Off Limit
+#define EMAC_CFG_BL_1024        0x00000000  // k = min (n,10)
+#define EMAC_CFG_BL_256         0x00000020  // k = min (n,8)
+#define EMAC_CFG_BL_8           0x00000040  // k = min (n,4)
+#define EMAC_CFG_BL_2           0x00000060  // k = min (n,1)
+#define EMAC_CFG_DC             0x00000010  // Deferral Check
+#define EMAC_CFG_TE             0x00000008  // Transmitter Enable
+#define EMAC_CFG_RE             0x00000004  // Receiver Enable
+#define EMAC_CFG_PRELEN_M       0x00000003  // Preamble Length for Transmit
+                                            // Frames
+#define EMAC_CFG_PRELEN_7       0x00000000  // 7 bytes of preamble
+#define EMAC_CFG_PRELEN_5       0x00000001  // 5 bytes of preamble
+#define EMAC_CFG_PRELEN_3       0x00000002  // 3 bytes of preamble
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_FRAMEFLTR
+// register.
+//
+//*****************************************************************************
+#define EMAC_FRAMEFLTR_RA       0x80000000  // Receive All
+#define EMAC_FRAMEFLTR_VTFE     0x00010000  // VLAN Tag Filter Enable
+#define EMAC_FRAMEFLTR_HPF      0x00000400  // Hash or Perfect Filter
+#define EMAC_FRAMEFLTR_SAF      0x00000200  // Source Address Filter Enable
+#define EMAC_FRAMEFLTR_SAIF     0x00000100  // Source Address (SA) Inverse
+                                            // Filtering
+#define EMAC_FRAMEFLTR_PCF_M    0x000000C0  // Pass Control Frames
+#define EMAC_FRAMEFLTR_PCF_ALL  0x00000000  // The MAC filters all control
+                                            // frames from reaching application
+#define EMAC_FRAMEFLTR_PCF_PAUSE                                              \
+                                0x00000040  // MAC forwards all control frames
+                                            // except PAUSE control frames to
+                                            // application even if they fail
+                                            // the address filter
+#define EMAC_FRAMEFLTR_PCF_NONE 0x00000080  // MAC forwards all control frames
+                                            // to application even if they fail
+                                            // the address Filter
+#define EMAC_FRAMEFLTR_PCF_ADDR 0x000000C0  // MAC forwards control frames that
+                                            // pass the address Filter
+#define EMAC_FRAMEFLTR_DBF      0x00000020  // Disable Broadcast Frames
+#define EMAC_FRAMEFLTR_PM       0x00000010  // Pass All Multicast
+#define EMAC_FRAMEFLTR_DAIF     0x00000008  // Destination Address (DA) Inverse
+                                            // Filtering
+#define EMAC_FRAMEFLTR_HMC      0x00000004  // Hash Multicast
+#define EMAC_FRAMEFLTR_HUC      0x00000002  // Hash Unicast
+#define EMAC_FRAMEFLTR_PR       0x00000001  // Promiscuous Mode
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_HASHTBLH
+// register.
+//
+//*****************************************************************************
+#define EMAC_HASHTBLH_HTH_M     0xFFFFFFFF  // Hash Table High
+#define EMAC_HASHTBLH_HTH_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_HASHTBLL
+// register.
+//
+//*****************************************************************************
+#define EMAC_HASHTBLL_HTL_M     0xFFFFFFFF  // Hash Table Low
+#define EMAC_HASHTBLL_HTL_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_MIIADDR register.
+//
+//*****************************************************************************
+#define EMAC_MIIADDR_PLA_M      0x0000F800  // Physical Layer Address
+#define EMAC_MIIADDR_MII_M      0x000007C0  // MII Register
+#define EMAC_MIIADDR_CR_M       0x0000003C  // Clock Reference Frequency
+                                            // Selection
+#define EMAC_MIIADDR_CR_60_100  0x00000000  // The frequency of the System
+                                            // Clock is 60 to 100 MHz providing
+                                            // a MDIO clock of SYSCLK/42
+#define EMAC_MIIADDR_CR_100_150 0x00000004  // The frequency of the System
+                                            // Clock is 100 to 150 MHz
+                                            // providing a MDIO clock of
+                                            // SYSCLK/62
+#define EMAC_MIIADDR_CR_20_35   0x00000008  // The frequency of the System
+                                            // Clock is 20-35 MHz providing a
+                                            // MDIO clock of System Clock/16
+#define EMAC_MIIADDR_CR_35_60   0x0000000C  // The frequency of the System
+                                            // Clock is 35 to 60 MHz providing
+                                            // a MDIO clock of System Clock/26
+#define EMAC_MIIADDR_MIIW       0x00000002  // MII Write
+#define EMAC_MIIADDR_MIIB       0x00000001  // MII Busy
+#define EMAC_MIIADDR_PLA_S      11
+#define EMAC_MIIADDR_MII_S      6
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_MIIDATA register.
+//
+//*****************************************************************************
+#define EMAC_MIIDATA_DATA_M     0x0000FFFF  // MII Data
+#define EMAC_MIIDATA_DATA_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_FLOWCTL register.
+//
+//*****************************************************************************
+#define EMAC_FLOWCTL_PT_M       0xFFFF0000  // Pause Time
+#define EMAC_FLOWCTL_DZQP       0x00000080  // Disable Zero-Quanta Pause
+#define EMAC_FLOWCTL_UP         0x00000008  // Unicast Pause Frame Detect
+#define EMAC_FLOWCTL_RFE        0x00000004  // Receive Flow Control Enable
+#define EMAC_FLOWCTL_TFE        0x00000002  // Transmit Flow Control Enable
+#define EMAC_FLOWCTL_FCBBPA     0x00000001  // Flow Control Busy or
+                                            // Back-pressure Activate
+#define EMAC_FLOWCTL_PT_S       16
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_VLANTG register.
+//
+//*****************************************************************************
+#define EMAC_VLANTG_VTHM        0x00080000  // VLAN Tag Hash Table Match Enable
+#define EMAC_VLANTG_ESVL        0x00040000  // Enable S-VLAN
+#define EMAC_VLANTG_VTIM        0x00020000  // VLAN Tag Inverse Match Enable
+#define EMAC_VLANTG_ETV         0x00010000  // Enable 12-Bit VLAN Tag
+                                            // Comparison
+#define EMAC_VLANTG_VL_M        0x0000FFFF  // VLAN Tag Identifier for Receive
+                                            // Frames
+#define EMAC_VLANTG_VL_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_STATUS register.
+//
+//*****************************************************************************
+#define EMAC_STATUS_TXFF        0x02000000  // TX/RX Controller TX FIFO Full
+                                            // Status
+#define EMAC_STATUS_TXFE        0x01000000  // TX/RX Controller TX FIFO Not
+                                            // Empty Status
+#define EMAC_STATUS_TWC         0x00400000  // TX/RX Controller TX FIFO Write
+                                            // Controller Active Status
+#define EMAC_STATUS_TRC_M       0x00300000  // TX/RX Controller's TX FIFO Read
+                                            // Controller Status
+#define EMAC_STATUS_TRC_IDLE    0x00000000  // IDLE state
+#define EMAC_STATUS_TRC_READ    0x00100000  // READ state (transferring data to
+                                            // MAC transmitter)
+#define EMAC_STATUS_TRC_WAIT    0x00200000  // Waiting for TX Status from MAC
+                                            // transmitter
+#define EMAC_STATUS_TRC_WRFLUSH 0x00300000  // Writing the received TX Status
+                                            // or flushing the TX FIFO
+#define EMAC_STATUS_TXPAUSED    0x00080000  // MAC Transmitter PAUSE
+#define EMAC_STATUS_TFC_M       0x00060000  // MAC Transmit Frame Controller
+                                            // Status
+#define EMAC_STATUS_TFC_IDLE    0x00000000  // IDLE state
+#define EMAC_STATUS_TFC_STATUS  0x00020000  // Waiting for status of previous
+                                            // frame or IFG or backoff period
+                                            // to be over
+#define EMAC_STATUS_TFC_PAUSE   0x00040000  // Generating and transmitting a
+                                            // PAUSE control frame (in the
+                                            // full-duplex mode)
+#define EMAC_STATUS_TFC_INPUT   0x00060000  // Transferring input frame for
+                                            // transmission
+#define EMAC_STATUS_TPE         0x00010000  // MAC MII Transmit Protocol Engine
+                                            // Status
+#define EMAC_STATUS_RXF_M       0x00000300  // TX/RX Controller RX FIFO
+                                            // Fill-level Status
+#define EMAC_STATUS_RXF_EMPTY   0x00000000  // RX FIFO Empty
+#define EMAC_STATUS_RXF_BELOW   0x00000100  // RX FIFO fill level is below the
+                                            // flow-control deactivate
+                                            // threshold
+#define EMAC_STATUS_RXF_ABOVE   0x00000200  // RX FIFO fill level is above the
+                                            // flow-control activate threshold
+#define EMAC_STATUS_RXF_FULL    0x00000300  // RX FIFO Full
+#define EMAC_STATUS_RRC_M       0x00000060  // TX/RX Controller Read Controller
+                                            // State
+#define EMAC_STATUS_RRC_IDLE    0x00000000  // IDLE state
+#define EMAC_STATUS_RRC_STATUS  0x00000020  // Reading frame data
+#define EMAC_STATUS_RRC_DATA    0x00000040  // Reading frame status (or
+                                            // timestamp)
+#define EMAC_STATUS_RRC_FLUSH   0x00000060  // Flushing the frame data and
+                                            // status
+#define EMAC_STATUS_RWC         0x00000010  // TX/RX Controller RX FIFO Write
+                                            // Controller Active Status
+#define EMAC_STATUS_RFCFC_M     0x00000006  // MAC Receive Frame Controller
+                                            // FIFO Status
+#define EMAC_STATUS_RPE         0x00000001  // MAC MII Receive Protocol Engine
+                                            // Status
+#define EMAC_STATUS_RFCFC_S     1
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_RWUFF register.
+//
+//*****************************************************************************
+#define EMAC_RWUFF_WAKEUPFIL_M  0xFFFFFFFF  // Remote Wake-Up Frame Filter
+#define EMAC_RWUFF_WAKEUPFIL_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_PMTCTLSTAT
+// register.
+//
+//*****************************************************************************
+#define EMAC_PMTCTLSTAT_WUPFRRST                                              \
+                                0x80000000  // Wake-Up Frame Filter Register
+                                            // Pointer Reset
+#define EMAC_PMTCTLSTAT_RWKPTR_M                                              \
+                                0x07000000  // Remote Wake-Up FIFO Pointer
+#define EMAC_PMTCTLSTAT_GLBLUCAST                                             \
+                                0x00000200  // Global Unicast
+#define EMAC_PMTCTLSTAT_WUPRX   0x00000040  // Wake-Up Frame Received
+#define EMAC_PMTCTLSTAT_MGKPRX  0x00000020  // Magic Packet Received
+#define EMAC_PMTCTLSTAT_WUPFREN 0x00000004  // Wake-Up Frame Enable
+#define EMAC_PMTCTLSTAT_MGKPKTEN                                              \
+                                0x00000002  // Magic Packet Enable
+#define EMAC_PMTCTLSTAT_PWRDWN  0x00000001  // Power Down
+#define EMAC_PMTCTLSTAT_RWKPTR_S                                              \
+                                24
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_LPICTLSTAT
+// register.
+//
+//*****************************************************************************
+#define EMAC_LPICTLSTAT_LPITXA  0x00080000  // LPI TX Automate
+#define EMAC_LPICTLSTAT_PLSEN   0x00040000  // PHY Link Status Enable
+#define EMAC_LPICTLSTAT_PLS     0x00020000  // PHY Link Status
+#define EMAC_LPICTLSTAT_LPIEN   0x00010000  // LPI Enable
+#define EMAC_LPICTLSTAT_RLPIST  0x00000200  // Receive LPI State
+#define EMAC_LPICTLSTAT_TLPIST  0x00000100  // Transmit LPI State
+#define EMAC_LPICTLSTAT_RLPIEX  0x00000008  // Receive LPI Exit
+#define EMAC_LPICTLSTAT_RLPIEN  0x00000004  // Receive LPI Entry
+#define EMAC_LPICTLSTAT_TLPIEX  0x00000002  // Transmit LPI Exit
+#define EMAC_LPICTLSTAT_TLPIEN  0x00000001  // Transmit LPI Entry
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_LPITIMERCTL
+// register.
+//
+//*****************************************************************************
+#define EMAC_LPITIMERCTL_LST_M  0x03FF0000  // Low Power Idle LS Timer
+#define EMAC_LPITIMERCTL_LST_S  16
+#define EMAC_LPITIMERCTL_TWT_M  0x0000FFFF  // Low Power Idle TW Timer
+#define EMAC_LPITIMERCTL_TWT_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_RIS register.
+//
+//*****************************************************************************
+#define EMAC_RIS_LPI            0x00000400  // LPI Interrupt Status
+#define EMAC_RIS_TS             0x00000200  // Timestamp Interrupt Status
+#define EMAC_RIS_MMCTX          0x00000040  // MMC Transmit Interrupt Status
+#define EMAC_RIS_MMCRX          0x00000020  // MMC Receive Interrupt Status
+#define EMAC_RIS_MMC            0x00000010  // MMC Interrupt Status
+#define EMAC_RIS_PMT            0x00000008  // PMT Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_IM register.
+//
+//*****************************************************************************
+#define EMAC_IM_LPI             0x00000400  // LPI Interrupt Mask
+#define EMAC_IM_TSI             0x00000200  // Timestamp Interrupt Mask
+#define EMAC_IM_PMT             0x00000008  // PMT Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_ADDR0H register.
+//
+//*****************************************************************************
+#define EMAC_ADDR0H_AE          0x80000000  // Address Enable
+#define EMAC_ADDR0H_ADDRHI_M    0x0000FFFF  // MAC Address0 [47:32]
+#define EMAC_ADDR0H_ADDRHI_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_ADDR0L register.
+//
+//*****************************************************************************
+#define EMAC_ADDR0L_ADDRLO_M    0xFFFFFFFF  // MAC Address0 [31:0]
+#define EMAC_ADDR0L_ADDRLO_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_ADDR1H register.
+//
+//*****************************************************************************
+#define EMAC_ADDR1H_AE          0x80000000  // Address Enable
+#define EMAC_ADDR1H_SA          0x40000000  // Source Address
+#define EMAC_ADDR1H_MBC_M       0x3F000000  // Mask Byte Control
+#define EMAC_ADDR1H_ADDRHI_M    0x0000FFFF  // MAC Address1 [47:32]
+#define EMAC_ADDR1H_MBC_S       24
+#define EMAC_ADDR1H_ADDRHI_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_ADDR1L register.
+//
+//*****************************************************************************
+#define EMAC_ADDR1L_ADDRLO_M    0xFFFFFFFF  // MAC Address1 [31:0]
+#define EMAC_ADDR1L_ADDRLO_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_ADDR2H register.
+//
+//*****************************************************************************
+#define EMAC_ADDR2H_AE          0x80000000  // Address Enable
+#define EMAC_ADDR2H_SA          0x40000000  // Source Address
+#define EMAC_ADDR2H_MBC_M       0x3F000000  // Mask Byte Control
+#define EMAC_ADDR2H_ADDRHI_M    0x0000FFFF  // MAC Address2 [47:32]
+#define EMAC_ADDR2H_MBC_S       24
+#define EMAC_ADDR2H_ADDRHI_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_ADDR2L register.
+//
+//*****************************************************************************
+#define EMAC_ADDR2L_ADDRLO_M    0xFFFFFFFF  // MAC Address2 [31:0]
+#define EMAC_ADDR2L_ADDRLO_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_ADDR3H register.
+//
+//*****************************************************************************
+#define EMAC_ADDR3H_AE          0x80000000  // Address Enable
+#define EMAC_ADDR3H_SA          0x40000000  // Source Address
+#define EMAC_ADDR3H_MBC_M       0x3F000000  // Mask Byte Control
+#define EMAC_ADDR3H_ADDRHI_M    0x0000FFFF  // MAC Address3 [47:32]
+#define EMAC_ADDR3H_MBC_S       24
+#define EMAC_ADDR3H_ADDRHI_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_ADDR3L register.
+//
+//*****************************************************************************
+#define EMAC_ADDR3L_ADDRLO_M    0xFFFFFFFF  // MAC Address3 [31:0]
+#define EMAC_ADDR3L_ADDRLO_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_WDOGTO register.
+//
+//*****************************************************************************
+#define EMAC_WDOGTO_PWE         0x00010000  // Programmable Watchdog Enable
+#define EMAC_WDOGTO_WTO_M       0x00003FFF  // Watchdog Timeout
+#define EMAC_WDOGTO_WTO_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_MMCCTRL register.
+//
+//*****************************************************************************
+#define EMAC_MMCCTRL_UCDBC      0x00000100  // Update MMC Counters for Dropped
+                                            // Broadcast Frames
+#define EMAC_MMCCTRL_CNTPRSTLVL 0x00000020  // Full/Half Preset Level Value
+#define EMAC_MMCCTRL_CNTPRST    0x00000010  // Counters Preset
+#define EMAC_MMCCTRL_CNTFREEZ   0x00000008  // MMC Counter Freeze
+#define EMAC_MMCCTRL_RSTONRD    0x00000004  // Reset on Read
+#define EMAC_MMCCTRL_CNTSTPRO   0x00000002  // Counters Stop Rollover
+#define EMAC_MMCCTRL_CNTRST     0x00000001  // Counters Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_MMCRXRIS
+// register.
+//
+//*****************************************************************************
+#define EMAC_MMCRXRIS_UCGF      0x00020000  // MMC Receive Unicast Good Frame
+                                            // Counter Interrupt Status
+#define EMAC_MMCRXRIS_ALGNERR   0x00000040  // MMC Receive Alignment Error
+                                            // Frame Counter Interrupt Status
+#define EMAC_MMCRXRIS_CRCERR    0x00000020  // MMC Receive CRC Error Frame
+                                            // Counter Interrupt Status
+#define EMAC_MMCRXRIS_GBF       0x00000001  // MMC Receive Good Bad Frame
+                                            // Counter Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_MMCTXRIS
+// register.
+//
+//*****************************************************************************
+#define EMAC_MMCTXRIS_OCTCNT    0x00100000  // Octet Counter Interrupt Status
+#define EMAC_MMCTXRIS_MCOLLGF   0x00008000  // MMC Transmit Multiple Collision
+                                            // Good Frame Counter Interrupt
+                                            // Status
+#define EMAC_MMCTXRIS_SCOLLGF   0x00004000  // MMC Transmit Single Collision
+                                            // Good Frame Counter Interrupt
+                                            // Status
+#define EMAC_MMCTXRIS_GBF       0x00000002  // MMC Transmit Good Bad Frame
+                                            // Counter Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_MMCRXIM register.
+//
+//*****************************************************************************
+#define EMAC_MMCRXIM_UCGF       0x00020000  // MMC Receive Unicast Good Frame
+                                            // Counter Interrupt Mask
+#define EMAC_MMCRXIM_ALGNERR    0x00000040  // MMC Receive Alignment Error
+                                            // Frame Counter Interrupt Mask
+#define EMAC_MMCRXIM_CRCERR     0x00000020  // MMC Receive CRC Error Frame
+                                            // Counter Interrupt Mask
+#define EMAC_MMCRXIM_GBF        0x00000001  // MMC Receive Good Bad Frame
+                                            // Counter Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_MMCTXIM register.
+//
+//*****************************************************************************
+#define EMAC_MMCTXIM_OCTCNT     0x00100000  // MMC Transmit Good Octet Counter
+                                            // Interrupt Mask
+#define EMAC_MMCTXIM_MCOLLGF    0x00008000  // MMC Transmit Multiple Collision
+                                            // Good Frame Counter Interrupt
+                                            // Mask
+#define EMAC_MMCTXIM_SCOLLGF    0x00004000  // MMC Transmit Single Collision
+                                            // Good Frame Counter Interrupt
+                                            // Mask
+#define EMAC_MMCTXIM_GBF        0x00000002  // MMC Transmit Good Bad Frame
+                                            // Counter Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_TXCNTGB register.
+//
+//*****************************************************************************
+#define EMAC_TXCNTGB_TXFRMGB_M  0xFFFFFFFF  // This field indicates the number
+                                            // of good and bad frames
+                                            // transmitted, exclusive of
+                                            // retried frames
+#define EMAC_TXCNTGB_TXFRMGB_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_TXCNTSCOL
+// register.
+//
+//*****************************************************************************
+#define EMAC_TXCNTSCOL_TXSNGLCOLG_M                                           \
+                                0xFFFFFFFF  // This field indicates the number
+                                            // of successfully transmitted
+                                            // frames after a single collision
+                                            // in the half-duplex mode
+#define EMAC_TXCNTSCOL_TXSNGLCOLG_S                                           \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_TXCNTMCOL
+// register.
+//
+//*****************************************************************************
+#define EMAC_TXCNTMCOL_TXMULTCOLG_M                                           \
+                                0xFFFFFFFF  // This field indicates the number
+                                            // of successfully transmitted
+                                            // frames after multiple collisions
+                                            // in the half-duplex mode
+#define EMAC_TXCNTMCOL_TXMULTCOLG_S                                           \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_TXOCTCNTG
+// register.
+//
+//*****************************************************************************
+#define EMAC_TXOCTCNTG_TXOCTG_M 0xFFFFFFFF  // This field indicates the number
+                                            // of bytes transmitted, exclusive
+                                            // of preamble, in good frames
+#define EMAC_TXOCTCNTG_TXOCTG_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_RXCNTGB register.
+//
+//*****************************************************************************
+#define EMAC_RXCNTGB_RXFRMGB_M  0xFFFFFFFF  // This field indicates the number
+                                            // of received good and bad frames
+#define EMAC_RXCNTGB_RXFRMGB_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_RXCNTCRCERR
+// register.
+//
+//*****************************************************************************
+#define EMAC_RXCNTCRCERR_RXCRCERR_M                                           \
+                                0xFFFFFFFF  // This field indicates the number
+                                            // of frames received with CRC
+                                            // error
+#define EMAC_RXCNTCRCERR_RXCRCERR_S                                           \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_RXCNTALGNERR
+// register.
+//
+//*****************************************************************************
+#define EMAC_RXCNTALGNERR_RXALGNERR_M                                         \
+                                0xFFFFFFFF  // This field indicates the number
+                                            // of frames received with
+                                            // alignment (dribble) error
+#define EMAC_RXCNTALGNERR_RXALGNERR_S                                         \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_RXCNTGUNI
+// register.
+//
+//*****************************************************************************
+#define EMAC_RXCNTGUNI_RXUCASTG_M                                             \
+                                0xFFFFFFFF  // This field indicates the number
+                                            // of received good unicast frames
+#define EMAC_RXCNTGUNI_RXUCASTG_S                                             \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_VLNINCREP
+// register.
+//
+//*****************************************************************************
+#define EMAC_VLNINCREP_CSVL     0x00080000  // C-VLAN or S-VLAN
+#define EMAC_VLNINCREP_VLP      0x00040000  // VLAN Priority Control
+#define EMAC_VLNINCREP_VLC_M    0x00030000  // VLAN Tag Control in Transmit
+                                            // Frames
+#define EMAC_VLNINCREP_VLC_NONE 0x00000000  // No VLAN tag deletion, insertion,
+                                            // or replacement
+#define EMAC_VLNINCREP_VLC_TAGDEL                                             \
+                                0x00010000  // VLAN tag deletion
+#define EMAC_VLNINCREP_VLC_TAGINS                                             \
+                                0x00020000  // VLAN tag insertion
+#define EMAC_VLNINCREP_VLC_TAGREP                                             \
+                                0x00030000  // VLAN tag replacement
+#define EMAC_VLNINCREP_VLT_M    0x0000FFFF  // VLAN Tag for Transmit Frames
+#define EMAC_VLNINCREP_VLT_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_VLANHASH
+// register.
+//
+//*****************************************************************************
+#define EMAC_VLANHASH_VLHT_M    0x0000FFFF  // VLAN Hash Table
+#define EMAC_VLANHASH_VLHT_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_TIMSTCTRL
+// register.
+//
+//*****************************************************************************
+#define EMAC_TIMSTCTRL_PTPFLTR  0x00040000  // Enable MAC address for PTP Frame
+                                            // Filtering
+#define EMAC_TIMSTCTRL_SELPTP_M 0x00030000  // Select PTP packets for Taking
+                                            // Snapshots
+#define EMAC_TIMSTCTRL_TSMAST   0x00008000  // Enable Snapshot for Messages
+                                            // Relevant to Master
+#define EMAC_TIMSTCTRL_TSEVNT   0x00004000  // Enable Timestamp Snapshot for
+                                            // Event Messages
+#define EMAC_TIMSTCTRL_PTPIPV4  0x00002000  // Enable Processing of PTP Frames
+                                            // Sent over IPv4-UDP
+#define EMAC_TIMSTCTRL_PTPIPV6  0x00001000  // Enable Processing of PTP Frames
+                                            // Sent Over IPv6-UDP
+#define EMAC_TIMSTCTRL_PTPETH   0x00000800  // Enable Processing of PTP Over
+                                            // Ethernet Frames
+#define EMAC_TIMSTCTRL_PTPVER2  0x00000400  // Enable PTP Packet Processing For
+                                            // Version 2 Format
+#define EMAC_TIMSTCTRL_DGTLBIN  0x00000200  // Timestamp Digital or Binary
+                                            // Rollover Control
+#define EMAC_TIMSTCTRL_ALLF     0x00000100  // Enable Timestamp For All Frames
+#define EMAC_TIMSTCTRL_ADDREGUP 0x00000020  // Addend Register Update
+#define EMAC_TIMSTCTRL_INTTRIG  0x00000010  // Timestamp Interrupt Trigger
+                                            // Enable
+#define EMAC_TIMSTCTRL_TSUPDT   0x00000008  // Timestamp Update
+#define EMAC_TIMSTCTRL_TSINIT   0x00000004  // Timestamp Initialize
+#define EMAC_TIMSTCTRL_TSFCUPDT 0x00000002  // Timestamp Fine or Coarse Update
+#define EMAC_TIMSTCTRL_TSEN     0x00000001  // Timestamp Enable
+#define EMAC_TIMSTCTRL_SELPTP_S 16
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_SUBSECINC
+// register.
+//
+//*****************************************************************************
+#define EMAC_SUBSECINC_SSINC_M  0x000000FF  // Sub-second Increment Value
+#define EMAC_SUBSECINC_SSINC_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_TIMSEC register.
+//
+//*****************************************************************************
+#define EMAC_TIMSEC_TSS_M       0xFFFFFFFF  // Timestamp Second
+#define EMAC_TIMSEC_TSS_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_TIMNANO register.
+//
+//*****************************************************************************
+#define EMAC_TIMNANO_TSSS_M     0x7FFFFFFF  // Timestamp Sub-Seconds
+#define EMAC_TIMNANO_TSSS_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_TIMSECU register.
+//
+//*****************************************************************************
+#define EMAC_TIMSECU_TSS_M      0xFFFFFFFF  // Timestamp Second
+#define EMAC_TIMSECU_TSS_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_TIMNANOU
+// register.
+//
+//*****************************************************************************
+#define EMAC_TIMNANOU_ADDSUB    0x80000000  // Add or subtract time
+#define EMAC_TIMNANOU_TSSS_M    0x7FFFFFFF  // Timestamp Sub-Second
+#define EMAC_TIMNANOU_TSSS_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_TIMADD register.
+//
+//*****************************************************************************
+#define EMAC_TIMADD_TSAR_M      0xFFFFFFFF  // Timestamp Addend Register
+#define EMAC_TIMADD_TSAR_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_TARGSEC register.
+//
+//*****************************************************************************
+#define EMAC_TARGSEC_TSTR_M     0xFFFFFFFF  // Target Time Seconds Register
+#define EMAC_TARGSEC_TSTR_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_TARGNANO
+// register.
+//
+//*****************************************************************************
+#define EMAC_TARGNANO_TRGTBUSY  0x80000000  // Target Time Register Busy
+#define EMAC_TARGNANO_TTSLO_M   0x7FFFFFFF  // Target Timestamp Low Register
+#define EMAC_TARGNANO_TTSLO_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_HWORDSEC
+// register.
+//
+//*****************************************************************************
+#define EMAC_HWORDSEC_TSHWR_M   0x0000FFFF  // Target Timestamp Higher Word
+                                            // Register
+#define EMAC_HWORDSEC_TSHWR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_TIMSTAT register.
+//
+//*****************************************************************************
+#define EMAC_TIMSTAT_TSTARGT    0x00000002  // Timestamp Target Time Reached
+#define EMAC_TIMSTAT_TSSOVF     0x00000001  // Timestamp Seconds Overflow
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_PPSCTRL register.
+//
+//*****************************************************************************
+#define EMAC_PPSCTRL_TRGMODS0_M 0x00000060  // Target Time Register Mode for
+                                            // PPS0 Output
+#define EMAC_PPSCTRL_TRGMODS0_INTONLY                                         \
+                                0x00000000  // Indicates that the Target Time
+                                            // registers are programmed only
+                                            // for generating the interrupt
+                                            // event
+#define EMAC_PPSCTRL_TRGMODS0_INTPPS0                                         \
+                                0x00000040  // Indicates that the Target Time
+                                            // registers are programmed for
+                                            // generating the interrupt event
+                                            // and starting or stopping the
+                                            // generation of the EN0PPS output
+                                            // signal
+#define EMAC_PPSCTRL_TRGMODS0_PPS0ONLY                                        \
+                                0x00000060  // Indicates that the Target Time
+                                            // registers are programmed only
+                                            // for starting or stopping the
+                                            // generation of the EN0PPS output
+                                            // signal. No interrupt is asserted
+#define EMAC_PPSCTRL_PPSEN0     0x00000010  // Flexible PPS Output Mode Enable
+#define EMAC_PPSCTRL_PPSCTRL_M  0x0000000F  // EN0PPS Output Frequency Control
+                                            // (PPSCTRL) or Command Control
+                                            // (PPSCMD)
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_PPS0INTVL
+// register.
+//
+//*****************************************************************************
+#define EMAC_PPS0INTVL_PPS0INT_M                                              \
+                                0xFFFFFFFF  // PPS0 Output Signal Interval
+#define EMAC_PPS0INTVL_PPS0INT_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_PPS0WIDTH
+// register.
+//
+//*****************************************************************************
+#define EMAC_PPS0WIDTH_M        0xFFFFFFFF  // EN0PPS Output Signal Width
+#define EMAC_PPS0WIDTH_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_DMABUSMOD
+// register.
+//
+//*****************************************************************************
+#define EMAC_DMABUSMOD_RIB      0x80000000  // Rebuild Burst
+#define EMAC_DMABUSMOD_TXPR     0x08000000  // Transmit Priority
+#define EMAC_DMABUSMOD_MB       0x04000000  // Mixed Burst
+#define EMAC_DMABUSMOD_AAL      0x02000000  // Address Aligned Beats
+#define EMAC_DMABUSMOD_8XPBL    0x01000000  // 8 x Programmable Burst Length
+                                            // (PBL) Mode
+#define EMAC_DMABUSMOD_USP      0x00800000  // Use Separate Programmable Burst
+                                            // Length (PBL)
+#define EMAC_DMABUSMOD_RPBL_M   0x007E0000  // RX DMA Programmable Burst Length
+                                            // (PBL)
+#define EMAC_DMABUSMOD_FB       0x00010000  // Fixed Burst
+#define EMAC_DMABUSMOD_PR_M     0x0000C000  // Priority Ratio
+#define EMAC_DMABUSMOD_PBL_M    0x00003F00  // Programmable Burst Length
+#define EMAC_DMABUSMOD_ATDS     0x00000080  // Alternate Descriptor Size
+#define EMAC_DMABUSMOD_DSL_M    0x0000007C  // Descriptor Skip Length
+#define EMAC_DMABUSMOD_DA       0x00000002  // DMA Arbitration Scheme
+#define EMAC_DMABUSMOD_SWR      0x00000001  // DMA Software Reset
+#define EMAC_DMABUSMOD_RPBL_S   17
+#define EMAC_DMABUSMOD_PR_S     14
+#define EMAC_DMABUSMOD_PBL_S    8
+#define EMAC_DMABUSMOD_DSL_S    2
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_TXPOLLD register.
+//
+//*****************************************************************************
+#define EMAC_TXPOLLD_TPD_M      0xFFFFFFFF  // Transmit Poll Demand
+#define EMAC_TXPOLLD_TPD_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_RXPOLLD register.
+//
+//*****************************************************************************
+#define EMAC_RXPOLLD_RPD_M      0xFFFFFFFF  // Receive Poll Demand
+#define EMAC_RXPOLLD_RPD_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_RXDLADDR
+// register.
+//
+//*****************************************************************************
+#define EMAC_RXDLADDR_STRXLIST_M                                              \
+                                0xFFFFFFFC  // Start of Receive List
+#define EMAC_RXDLADDR_STRXLIST_S                                              \
+                                2
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_TXDLADDR
+// register.
+//
+//*****************************************************************************
+#define EMAC_TXDLADDR_TXDLADDR_M                                              \
+                                0xFFFFFFFC  // Start of Transmit List Base
+                                            // Address
+#define EMAC_TXDLADDR_TXDLADDR_S                                              \
+                                2
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_DMARIS register.
+//
+//*****************************************************************************
+#define EMAC_DMARIS_LPI         0x40000000  // LPI Trigger Interrupt Status
+#define EMAC_DMARIS_TT          0x20000000  // Timestamp Trigger Interrupt
+                                            // Status
+#define EMAC_DMARIS_PMT         0x10000000  // MAC PMT Interrupt Status
+#define EMAC_DMARIS_MMC         0x08000000  // MAC MMC Interrupt
+#define EMAC_DMARIS_AE_M        0x03800000  // Access Error
+#define EMAC_DMARIS_AE_RXDMAWD  0x00000000  // Error during RX DMA Write Data
+                                            // Transfer
+#define EMAC_DMARIS_AE_TXDMARD  0x01800000  // Error during TX DMA Read Data
+                                            // Transfer
+#define EMAC_DMARIS_AE_RXDMADW  0x02000000  // Error during RX DMA Descriptor
+                                            // Write Access
+#define EMAC_DMARIS_AE_TXDMADW  0x02800000  // Error during TX DMA Descriptor
+                                            // Write Access
+#define EMAC_DMARIS_AE_RXDMADR  0x03000000  // Error during RX DMA Descriptor
+                                            // Read Access
+#define EMAC_DMARIS_AE_TXDMADR  0x03800000  // Error during TX DMA Descriptor
+                                            // Read Access
+#define EMAC_DMARIS_TS_M        0x00700000  // Transmit Process State
+#define EMAC_DMARIS_TS_STOP     0x00000000  // Stopped; Reset or Stop transmit
+                                            // command processed
+#define EMAC_DMARIS_TS_RUNTXTD  0x00100000  // Running; Fetching transmit
+                                            // transfer descriptor
+#define EMAC_DMARIS_TS_STATUS   0x00200000  // Running; Waiting for status
+#define EMAC_DMARIS_TS_RUNTX    0x00300000  // Running; Reading data from host
+                                            // memory buffer and queuing it to
+                                            // transmit buffer (TX FIFO)
+#define EMAC_DMARIS_TS_TSTAMP   0x00400000  // Writing Timestamp
+#define EMAC_DMARIS_TS_SUSPEND  0x00600000  // Suspended; Transmit descriptor
+                                            // unavailable or transmit buffer
+                                            // underflow
+#define EMAC_DMARIS_TS_RUNCTD   0x00700000  // Running; Closing transmit
+                                            // descriptor
+#define EMAC_DMARIS_RS_M        0x000E0000  // Received Process State
+#define EMAC_DMARIS_RS_STOP     0x00000000  // Stopped: Reset or stop receive
+                                            // command issued
+#define EMAC_DMARIS_RS_RUNRXTD  0x00020000  // Running: Fetching receive
+                                            // transfer descriptor
+#define EMAC_DMARIS_RS_RUNRXD   0x00060000  // Running: Waiting for receive
+                                            // packet
+#define EMAC_DMARIS_RS_SUSPEND  0x00080000  // Suspended: Receive descriptor
+                                            // unavailable
+#define EMAC_DMARIS_RS_RUNCRD   0x000A0000  // Running: Closing receive
+                                            // descriptor
+#define EMAC_DMARIS_RS_TSWS     0x000C0000  // Writing Timestamp
+#define EMAC_DMARIS_RS_RUNTXD   0x000E0000  // Running: Transferring the
+                                            // receive packet data from receive
+                                            // buffer to host memory
+#define EMAC_DMARIS_NIS         0x00010000  // Normal Interrupt Summary
+#define EMAC_DMARIS_AIS         0x00008000  // Abnormal Interrupt Summary
+#define EMAC_DMARIS_ERI         0x00004000  // Early Receive Interrupt
+#define EMAC_DMARIS_FBI         0x00002000  // Fatal Bus Error Interrupt
+#define EMAC_DMARIS_ETI         0x00000400  // Early Transmit Interrupt
+#define EMAC_DMARIS_RWT         0x00000200  // Receive Watchdog Timeout
+#define EMAC_DMARIS_RPS         0x00000100  // Receive Process Stopped
+#define EMAC_DMARIS_RU          0x00000080  // Receive Buffer Unavailable
+#define EMAC_DMARIS_RI          0x00000040  // Receive Interrupt
+#define EMAC_DMARIS_UNF         0x00000020  // Transmit Underflow
+#define EMAC_DMARIS_OVF         0x00000010  // Receive Overflow
+#define EMAC_DMARIS_TJT         0x00000008  // Transmit Jabber Timeout
+#define EMAC_DMARIS_TU          0x00000004  // Transmit Buffer Unavailable
+#define EMAC_DMARIS_TPS         0x00000002  // Transmit Process Stopped
+#define EMAC_DMARIS_TI          0x00000001  // Transmit Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_DMAOPMODE
+// register.
+//
+//*****************************************************************************
+#define EMAC_DMAOPMODE_DT       0x04000000  // Disable Dropping of TCP/IP
+                                            // Checksum Error Frames
+#define EMAC_DMAOPMODE_RSF      0x02000000  // Receive Store and Forward
+#define EMAC_DMAOPMODE_DFF      0x01000000  // Disable Flushing of Received
+                                            // Frames
+#define EMAC_DMAOPMODE_TSF      0x00200000  // Transmit Store and Forward
+#define EMAC_DMAOPMODE_FTF      0x00100000  // Flush Transmit FIFO
+#define EMAC_DMAOPMODE_TTC_M    0x0001C000  // Transmit Threshold Control
+#define EMAC_DMAOPMODE_TTC_64   0x00000000  // 64 bytes
+#define EMAC_DMAOPMODE_TTC_128  0x00004000  // 128 bytes
+#define EMAC_DMAOPMODE_TTC_192  0x00008000  // 192 bytes
+#define EMAC_DMAOPMODE_TTC_256  0x0000C000  // 256 bytes
+#define EMAC_DMAOPMODE_TTC_40   0x00010000  // 40 bytes
+#define EMAC_DMAOPMODE_TTC_32   0x00014000  // 32 bytes
+#define EMAC_DMAOPMODE_TTC_24   0x00018000  // 24 bytes
+#define EMAC_DMAOPMODE_TTC_16   0x0001C000  // 16 bytes
+#define EMAC_DMAOPMODE_ST       0x00002000  // Start or Stop Transmission
+                                            // Command
+#define EMAC_DMAOPMODE_FEF      0x00000080  // Forward Error Frames
+#define EMAC_DMAOPMODE_FUF      0x00000040  // Forward Undersized Good Frames
+#define EMAC_DMAOPMODE_DGF      0x00000020  // Drop Giant Frame Enable
+#define EMAC_DMAOPMODE_RTC_M    0x00000018  // Receive Threshold Control
+#define EMAC_DMAOPMODE_RTC_64   0x00000000  // 64 bytes
+#define EMAC_DMAOPMODE_RTC_32   0x00000008  // 32 bytes
+#define EMAC_DMAOPMODE_RTC_96   0x00000010  // 96 bytes
+#define EMAC_DMAOPMODE_RTC_128  0x00000018  // 128 bytes
+#define EMAC_DMAOPMODE_OSF      0x00000004  // Operate on Second Frame
+#define EMAC_DMAOPMODE_SR       0x00000002  // Start or Stop Receive
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_DMAIM register.
+//
+//*****************************************************************************
+#define EMAC_DMAIM_NIE          0x00010000  // Normal Interrupt Summary Enable
+#define EMAC_DMAIM_AIE          0x00008000  // Abnormal Interrupt Summary
+                                            // Enable
+#define EMAC_DMAIM_ERE          0x00004000  // Early Receive Interrupt Enable
+#define EMAC_DMAIM_FBE          0x00002000  // Fatal Bus Error Enable
+#define EMAC_DMAIM_ETE          0x00000400  // Early Transmit Interrupt Enable
+#define EMAC_DMAIM_RWE          0x00000200  // Receive Watchdog Timeout Enable
+#define EMAC_DMAIM_RSE          0x00000100  // Receive Stopped Enable
+#define EMAC_DMAIM_RUE          0x00000080  // Receive Buffer Unavailable
+                                            // Enable
+#define EMAC_DMAIM_RIE          0x00000040  // Receive Interrupt Enable
+#define EMAC_DMAIM_UNE          0x00000020  // Underflow Interrupt Enable
+#define EMAC_DMAIM_OVE          0x00000010  // Overflow Interrupt Enable
+#define EMAC_DMAIM_TJE          0x00000008  // Transmit Jabber Timeout Enable
+#define EMAC_DMAIM_TUE          0x00000004  // Transmit Buffer Unvailable
+                                            // Enable
+#define EMAC_DMAIM_TSE          0x00000002  // Transmit Stopped Enable
+#define EMAC_DMAIM_TIE          0x00000001  // Transmit Interrupt Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_MFBOC register.
+//
+//*****************************************************************************
+#define EMAC_MFBOC_OVFCNTOVF    0x10000000  // Overflow Bit for FIFO Overflow
+                                            // Counter
+#define EMAC_MFBOC_OVFFRMCNT_M  0x0FFE0000  // Overflow Frame Counter
+#define EMAC_MFBOC_MISCNTOVF    0x00010000  // Overflow bit for Missed Frame
+                                            // Counter
+#define EMAC_MFBOC_MISFRMCNT_M  0x0000FFFF  // Missed Frame Counter
+#define EMAC_MFBOC_OVFFRMCNT_S  17
+#define EMAC_MFBOC_MISFRMCNT_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_RXINTWDT
+// register.
+//
+//*****************************************************************************
+#define EMAC_RXINTWDT_RIWT_M    0x000000FF  // Receive Interrupt Watchdog Timer
+                                            // Count
+#define EMAC_RXINTWDT_RIWT_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_HOSTXDESC
+// register.
+//
+//*****************************************************************************
+#define EMAC_HOSTXDESC_CURTXDESC_M                                            \
+                                0xFFFFFFFF  // Host Transmit Descriptor Address
+                                            // Pointer
+#define EMAC_HOSTXDESC_CURTXDESC_S                                            \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_HOSRXDESC
+// register.
+//
+//*****************************************************************************
+#define EMAC_HOSRXDESC_CURRXDESC_M                                            \
+                                0xFFFFFFFF  // Host Receive Descriptor Address
+                                            // Pointer
+#define EMAC_HOSRXDESC_CURRXDESC_S                                            \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_HOSTXBA register.
+//
+//*****************************************************************************
+#define EMAC_HOSTXBA_CURTXBUFA_M                                              \
+                                0xFFFFFFFF  // Host Transmit Buffer Address
+                                            // Pointer
+#define EMAC_HOSTXBA_CURTXBUFA_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_HOSRXBA register.
+//
+//*****************************************************************************
+#define EMAC_HOSRXBA_CURRXBUFA_M                                              \
+                                0xFFFFFFFF  // Host Receive Buffer Address
+                                            // Pointer
+#define EMAC_HOSRXBA_CURRXBUFA_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_PP register.
+//
+//*****************************************************************************
+#define EMAC_PP_MACTYPE_M       0x00000700  // Ethernet MAC Type
+#define EMAC_PP_MACTYPE_1       0x00000100  // Tiva TM4E129x-class MAC
+#define EMAC_PP_PHYTYPE_M       0x00000007  // Ethernet PHY Type
+#define EMAC_PP_PHYTYPE_NONE    0x00000000  // No PHY
+#define EMAC_PP_PHYTYPE_1       0x00000003  // Snowflake class PHY
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_PC register.
+//
+//*****************************************************************************
+#define EMAC_PC_PHYEXT          0x80000000  // PHY Select
+#define EMAC_PC_PINTFS_M        0x70000000  // Ethernet Interface Select
+#define EMAC_PC_PINTFS_IMII     0x00000000  // MII (default) Used for internal
+                                            // PHY or external PHY connected
+                                            // via MII
+#define EMAC_PC_PINTFS_RMII     0x40000000  // RMII: Used for external PHY
+                                            // connected via RMII
+#define EMAC_PC_DIGRESTART      0x02000000  // PHY Soft Restart
+#define EMAC_PC_NIBDETDIS       0x01000000  // Odd Nibble TXER Detection
+                                            // Disable
+#define EMAC_PC_RXERIDLE        0x00800000  // RXER Detection During Idle
+#define EMAC_PC_ISOMIILL        0x00400000  // Isolate MII in Link Loss
+#define EMAC_PC_LRR             0x00200000  // Link Loss Recovery
+#define EMAC_PC_TDRRUN          0x00100000  // TDR Auto Run
+#define EMAC_PC_FASTLDMODE_M    0x000F8000  // Fast Link Down Mode
+#define EMAC_PC_POLSWAP         0x00004000  // Polarity Swap
+#define EMAC_PC_MDISWAP         0x00002000  // MDI Swap
+#define EMAC_PC_RBSTMDIX        0x00001000  // Robust Auto MDI-X
+#define EMAC_PC_FASTMDIX        0x00000800  // Fast Auto MDI-X
+#define EMAC_PC_MDIXEN          0x00000400  // MDIX Enable
+#define EMAC_PC_FASTRXDV        0x00000200  // Fast RXDV Detection
+#define EMAC_PC_FASTLUPD        0x00000100  // FAST Link-Up in Parallel Detect
+#define EMAC_PC_EXTFD           0x00000080  // Extended Full Duplex Ability
+#define EMAC_PC_FASTANEN        0x00000040  // Fast Auto Negotiation Enable
+#define EMAC_PC_FASTANSEL_M     0x00000030  // Fast Auto Negotiation Select
+#define EMAC_PC_ANEN            0x00000008  // Auto Negotiation Enable
+#define EMAC_PC_ANMODE_M        0x00000006  // Auto Negotiation Mode
+#define EMAC_PC_ANMODE_10HD     0x00000000  // When ANEN = 0x0, the mode is
+                                            // 10Base-T, Half-Duplex
+#define EMAC_PC_ANMODE_10FD     0x00000002  // When ANEN = 0x0, the mode is
+                                            // 10Base-T, Full-Duplex
+#define EMAC_PC_ANMODE_100HD    0x00000004  // When ANEN = 0x0, the mode is
+                                            // 100Base-TX, Half-Duplex
+#define EMAC_PC_ANMODE_100FD    0x00000006  // When ANEN = 0x0, the mode is
+                                            // 100Base-TX, Full-Duplex
+#define EMAC_PC_PHYHOLD         0x00000001  // Ethernet PHY Hold
+#define EMAC_PC_FASTLDMODE_S    15
+#define EMAC_PC_FASTANSEL_S     4
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_CC register.
+//
+//*****************************************************************************
+#define EMAC_CC_PTPCEN          0x00040000  // PTP Clock Reference Enable
+#define EMAC_CC_POL             0x00020000  // LED Polarity Control
+#define EMAC_CC_CLKEN           0x00010000  // EN0RREF_CLK Signal Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_EPHYRIS register.
+//
+//*****************************************************************************
+#define EMAC_EPHYRIS_INT        0x00000001  // Ethernet PHY Raw Interrupt
+                                            // Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_EPHYIM register.
+//
+//*****************************************************************************
+#define EMAC_EPHYIM_INT         0x00000001  // Ethernet PHY Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EMAC_O_EPHYMISC
+// register.
+//
+//*****************************************************************************
+#define EMAC_EPHYMISC_INT       0x00000001  // Ethernet PHY Status and Clear
+                                            // register
+
+//*****************************************************************************
+//
+// The following are defines for the EPHY register offsets.
+//
+//*****************************************************************************
+#define EPHY_BMCR               0x00000000  // Ethernet PHY Basic Mode Control
+#define EPHY_BMSR               0x00000001  // Ethernet PHY Basic Mode Status
+#define EPHY_ID1                0x00000002  // Ethernet PHY Identifier Register
+                                            // 1
+#define EPHY_ID2                0x00000003  // Ethernet PHY Identifier Register
+                                            // 2
+#define EPHY_ANA                0x00000004  // Ethernet PHY Auto-Negotiation
+                                            // Advertisement
+#define EPHY_ANLPA              0x00000005  // Ethernet PHY Auto-Negotiation
+                                            // Link Partner Ability
+#define EPHY_ANER               0x00000006  // Ethernet PHY Auto-Negotiation
+                                            // Expansion
+#define EPHY_ANNPTR             0x00000007  // Ethernet PHY Auto-Negotiation
+                                            // Next Page TX
+#define EPHY_ANLNPTR            0x00000008  // Ethernet PHY Auto-Negotiation
+                                            // Link Partner Ability Next Page
+#define EPHY_CFG1               0x00000009  // Ethernet PHY Configuration 1
+#define EPHY_CFG2               0x0000000A  // Ethernet PHY Configuration 2
+#define EPHY_CFG3               0x0000000B  // Ethernet PHY Configuration 3
+#define EPHY_REGCTL             0x0000000D  // Ethernet PHY Register Control
+#define EPHY_ADDAR              0x0000000E  // Ethernet PHY Address or Data
+#define EPHY_STS                0x00000010  // Ethernet PHY Status
+#define EPHY_SCR                0x00000011  // Ethernet PHY Specific Control
+#define EPHY_MISR1              0x00000012  // Ethernet PHY MII Interrupt
+                                            // Status 1
+#define EPHY_MISR2              0x00000013  // Ethernet PHY MII Interrupt
+                                            // Status 2
+#define EPHY_FCSCR              0x00000014  // Ethernet PHY False Carrier Sense
+                                            // Counter
+#define EPHY_RXERCNT            0x00000015  // Ethernet PHY Receive Error Count
+#define EPHY_BISTCR             0x00000016  // Ethernet PHY BIST Control
+#define EPHY_LEDCR              0x00000018  // Ethernet PHY LED Control
+#define EPHY_CTL                0x00000019  // Ethernet PHY Control
+#define EPHY_10BTSC             0x0000001A  // Ethernet PHY 10Base-T
+                                            // Status/Control - MR26
+#define EPHY_BICSR1             0x0000001B  // Ethernet PHY BIST Control and
+                                            // Status 1
+#define EPHY_BICSR2             0x0000001C  // Ethernet PHY BIST Control and
+                                            // Status 2
+#define EPHY_CDCR               0x0000001E  // Ethernet PHY Cable Diagnostic
+                                            // Control
+#define EPHY_RCR                0x0000001F  // Ethernet PHY Reset Control
+#define EPHY_LEDCFG             0x00000025  // Ethernet PHY LED Configuration
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPHY_BMCR register.
+//
+//*****************************************************************************
+#define EPHY_BMCR_MIIRESET      0x00008000  // MII Register reset
+#define EPHY_BMCR_MIILOOPBK     0x00004000  // MII Loopback
+#define EPHY_BMCR_SPEED         0x00002000  // Speed Select
+#define EPHY_BMCR_ANEN          0x00001000  // Auto-Negotiate Enable
+#define EPHY_BMCR_PWRDWN        0x00000800  // Power Down
+#define EPHY_BMCR_ISOLATE       0x00000400  // Port Isolate
+#define EPHY_BMCR_RESTARTAN     0x00000200  // Restart Auto-Negotiation
+#define EPHY_BMCR_DUPLEXM       0x00000100  // Duplex Mode
+#define EPHY_BMCR_COLLTST       0x00000080  // Collision Test
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPHY_BMSR register.
+//
+//*****************************************************************************
+#define EPHY_BMSR_100BTXFD      0x00004000  // 100Base-TX Full Duplex Capable
+#define EPHY_BMSR_100BTXHD      0x00002000  // 100Base-TX Half Duplex Capable
+#define EPHY_BMSR_10BTFD        0x00001000  // 10 Base-T Full Duplex Capable
+#define EPHY_BMSR_10BTHD        0x00000800  // 10 Base-T Half Duplex Capable
+#define EPHY_BMSR_MFPRESUP      0x00000040  // Preamble Suppression Capable
+#define EPHY_BMSR_ANC           0x00000020  // Auto-Negotiation Complete
+#define EPHY_BMSR_RFAULT        0x00000010  // Remote Fault
+#define EPHY_BMSR_ANEN          0x00000008  // Auto Negotiation Enabled
+#define EPHY_BMSR_LINKSTAT      0x00000004  // Link Status
+#define EPHY_BMSR_JABBER        0x00000002  // Jabber Detect
+#define EPHY_BMSR_EXTEN         0x00000001  // Extended Capability Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPHY_ID1 register.
+//
+//*****************************************************************************
+#define EPHY_ID1_OUIMSB_M       0x0000FFFF  // OUI Most Significant Bits
+#define EPHY_ID1_OUIMSB_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPHY_ID2 register.
+//
+//*****************************************************************************
+#define EPHY_ID2_OUILSB_M       0x0000FC00  // OUI Least Significant Bits
+#define EPHY_ID2_VNDRMDL_M      0x000003F0  // Vendor Model Number
+#define EPHY_ID2_MDLREV_M       0x0000000F  // Model Revision Number
+#define EPHY_ID2_OUILSB_S       10
+#define EPHY_ID2_VNDRMDL_S      4
+#define EPHY_ID2_MDLREV_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPHY_ANA register.
+//
+//*****************************************************************************
+#define EPHY_ANA_NP             0x00008000  // Next Page Indication
+#define EPHY_ANA_RF             0x00002000  // Remote Fault
+#define EPHY_ANA_ASMDUP         0x00000800  // Asymmetric PAUSE support for
+                                            // Full Duplex Links
+#define EPHY_ANA_PAUSE          0x00000400  // PAUSE Support for Full Duplex
+                                            // Links
+#define EPHY_ANA_100BT4         0x00000200  // 100Base-T4 Support
+#define EPHY_ANA_100BTXFD       0x00000100  // 100Base-TX Full Duplex Support
+#define EPHY_ANA_100BTX         0x00000080  // 100Base-TX Support
+#define EPHY_ANA_10BTFD         0x00000040  // 10Base-T Full Duplex Support
+#define EPHY_ANA_10BT           0x00000020  // 10Base-T Support
+#define EPHY_ANA_SELECT_M       0x0000001F  // Protocol Selection
+#define EPHY_ANA_SELECT_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPHY_ANLPA register.
+//
+//*****************************************************************************
+#define EPHY_ANLPA_NP           0x00008000  // Next Page Indication
+#define EPHY_ANLPA_ACK          0x00004000  // Acknowledge
+#define EPHY_ANLPA_RF           0x00002000  // Remote Fault
+#define EPHY_ANLPA_ASMDUP       0x00000800  // Asymmetric PAUSE
+#define EPHY_ANLPA_PAUSE        0x00000400  // PAUSE
+#define EPHY_ANLPA_100BT4       0x00000200  // 100Base-T4 Support
+#define EPHY_ANLPA_100BTXFD     0x00000100  // 100Base-TX Full Duplex Support
+#define EPHY_ANLPA_100BTX       0x00000080  // 100Base-TX Support
+#define EPHY_ANLPA_10BTFD       0x00000040  // 10Base-T Full Duplex Support
+#define EPHY_ANLPA_10BT         0x00000020  // 10Base-T Support
+#define EPHY_ANLPA_SELECT_M     0x0000001F  // Protocol Selection
+#define EPHY_ANLPA_SELECT_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPHY_ANER register.
+//
+//*****************************************************************************
+#define EPHY_ANER_PDF           0x00000010  // Parallel Detection Fault
+#define EPHY_ANER_LPNPABLE      0x00000008  // Link Partner Next Page Able
+#define EPHY_ANER_NPABLE        0x00000004  // Next Page Able
+#define EPHY_ANER_PAGERX        0x00000002  // Link Code Word Page Received
+#define EPHY_ANER_LPANABLE      0x00000001  // Link Partner Auto-Negotiation
+                                            // Able
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPHY_ANNPTR register.
+//
+//*****************************************************************************
+#define EPHY_ANNPTR_NP          0x00008000  // Next Page Indication
+#define EPHY_ANNPTR_MP          0x00002000  // Message Page
+#define EPHY_ANNPTR_ACK2        0x00001000  // Acknowledge 2
+#define EPHY_ANNPTR_TOGTX       0x00000800  // Toggle
+#define EPHY_ANNPTR_CODE_M      0x000007FF  // Code
+#define EPHY_ANNPTR_CODE_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPHY_ANLNPTR register.
+//
+//*****************************************************************************
+#define EPHY_ANLNPTR_NP         0x00008000  // Next Page Indication
+#define EPHY_ANLNPTR_ACK        0x00004000  // Acknowledge
+#define EPHY_ANLNPTR_MP         0x00002000  // Message Page
+#define EPHY_ANLNPTR_ACK2       0x00001000  // Acknowledge 2
+#define EPHY_ANLNPTR_TOG        0x00000800  // Toggle
+#define EPHY_ANLNPTR_CODE_M     0x000007FF  // Code
+#define EPHY_ANLNPTR_CODE_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPHY_CFG1 register.
+//
+//*****************************************************************************
+#define EPHY_CFG1_DONE          0x00008000  // Configuration Done
+#define EPHY_CFG1_TDRAR         0x00000100  // TDR Auto-Run at Link Down
+#define EPHY_CFG1_LLR           0x00000080  // Link Loss Recovery
+#define EPHY_CFG1_FAMDIX        0x00000040  // Fast Auto MDI/MDIX
+#define EPHY_CFG1_RAMDIX        0x00000020  // Robust Auto MDI/MDIX
+#define EPHY_CFG1_FASTANEN      0x00000010  // Fast Auto Negotiation Enable
+#define EPHY_CFG1_FANSEL_M      0x0000000C  // Fast Auto-Negotiation Select
+                                            // Configuration
+#define EPHY_CFG1_FANSEL_BLT80  0x00000000  // Break Link Timer: 80 ms
+#define EPHY_CFG1_FANSEL_BLT120 0x00000004  // Break Link Timer: 120 ms
+#define EPHY_CFG1_FANSEL_BLT240 0x00000008  // Break Link Timer: 240 ms
+#define EPHY_CFG1_FRXDVDET      0x00000002  // FAST RXDV Detection
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPHY_CFG2 register.
+//
+//*****************************************************************************
+#define EPHY_CFG2_FLUPPD        0x00000040  // Fast Link-Up in Parallel Detect
+                                            // Mode
+#define EPHY_CFG2_EXTFD         0x00000020  // Extended Full-Duplex Ability
+#define EPHY_CFG2_ENLEDLINK     0x00000010  // Enhanced LED Functionality
+#define EPHY_CFG2_ISOMIILL      0x00000008  // Isolate MII outputs when
+                                            // Enhanced Link is not Achievable
+#define EPHY_CFG2_RXERRIDLE     0x00000004  // Detection of Receive Symbol
+                                            // Error During IDLE State
+#define EPHY_CFG2_ODDNDETDIS    0x00000002  // Detection of Transmit Error
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPHY_CFG3 register.
+//
+//*****************************************************************************
+#define EPHY_CFG3_POLSWAP       0x00000080  // Polarity Swap
+#define EPHY_CFG3_MDIMDIXS      0x00000040  // MDI/MDIX Swap
+#define EPHY_CFG3_FLDWNM_M      0x0000001F  // Fast Link Down Modes
+#define EPHY_CFG3_FLDWNM_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPHY_REGCTL register.
+//
+//*****************************************************************************
+#define EPHY_REGCTL_FUNC_M      0x0000C000  // Function
+#define EPHY_REGCTL_FUNC_ADDR   0x00000000  // Address
+#define EPHY_REGCTL_FUNC_DATANI 0x00004000  // Data, no post increment
+#define EPHY_REGCTL_FUNC_DATAPIRW                                             \
+                                0x00008000  // Data, post increment on read and
+                                            // write
+#define EPHY_REGCTL_FUNC_DATAPIWO                                             \
+                                0x0000C000  // Data, post increment on write
+                                            // only
+#define EPHY_REGCTL_DEVAD_M     0x0000001F  // Device Address
+#define EPHY_REGCTL_DEVAD_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPHY_ADDAR register.
+//
+//*****************************************************************************
+#define EPHY_ADDAR_ADDRDATA_M   0x0000FFFF  // Address or Data
+#define EPHY_ADDAR_ADDRDATA_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPHY_STS register.
+//
+//*****************************************************************************
+#define EPHY_STS_MDIXM          0x00004000  // MDI-X Mode
+#define EPHY_STS_RXLERR         0x00002000  // Receive Error Latch
+#define EPHY_STS_POLSTAT        0x00001000  // Polarity Status
+#define EPHY_STS_FCSL           0x00000800  // False Carrier Sense Latch
+#define EPHY_STS_SD             0x00000400  // Signal Detect
+#define EPHY_STS_DL             0x00000200  // Descrambler Lock
+#define EPHY_STS_PAGERX         0x00000100  // Link Code Page Received
+#define EPHY_STS_MIIREQ         0x00000080  // MII Interrupt Pending
+#define EPHY_STS_RF             0x00000040  // Remote Fault
+#define EPHY_STS_JD             0x00000020  // Jabber Detect
+#define EPHY_STS_ANS            0x00000010  // Auto-Negotiation Status
+#define EPHY_STS_MIILB          0x00000008  // MII Loopback Status
+#define EPHY_STS_DUPLEX         0x00000004  // Duplex Status
+#define EPHY_STS_SPEED          0x00000002  // Speed Status
+#define EPHY_STS_LINK           0x00000001  // Link Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPHY_SCR register.
+//
+//*****************************************************************************
+#define EPHY_SCR_DISCLK         0x00008000  // Disable CLK
+#define EPHY_SCR_PSEN           0x00004000  // Power Saving Modes Enable
+#define EPHY_SCR_PSMODE_M       0x00003000  // Power Saving Modes
+#define EPHY_SCR_PSMODE_NORMAL  0x00000000  // Normal: Normal operation mode.
+                                            // PHY is fully functional
+#define EPHY_SCR_PSMODE_LOWPWR  0x00001000  // IEEE Power Down
+#define EPHY_SCR_PSMODE_ACTWOL  0x00002000  // Active Sleep
+#define EPHY_SCR_PSMODE_PASWOL  0x00003000  // Passive Sleep
+#define EPHY_SCR_SBPYASS        0x00000800  // Scrambler Bypass
+#define EPHY_SCR_LBFIFO_M       0x00000300  // Loopback FIFO Depth
+#define EPHY_SCR_LBFIFO_4       0x00000000  // Four nibble FIFO
+#define EPHY_SCR_LBFIFO_5       0x00000100  // Five nibble FIFO
+#define EPHY_SCR_LBFIFO_6       0x00000200  // Six nibble FIFO
+#define EPHY_SCR_LBFIFO_8       0x00000300  // Eight nibble FIFO
+#define EPHY_SCR_COLFDM         0x00000010  // Collision in Full-Duplex Mode
+#define EPHY_SCR_TINT           0x00000004  // Test Interrupt
+#define EPHY_SCR_INTEN          0x00000002  // Interrupt Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPHY_MISR1 register.
+//
+//*****************************************************************************
+#define EPHY_MISR1_LINKSTAT     0x00002000  // Change of Link Status Interrupt
+#define EPHY_MISR1_SPEED        0x00001000  // Change of Speed Status Interrupt
+#define EPHY_MISR1_DUPLEXM      0x00000800  // Change of Duplex Status
+                                            // Interrupt
+#define EPHY_MISR1_ANC          0x00000400  // Auto-Negotiation Complete
+                                            // Interrupt
+#define EPHY_MISR1_FCHF         0x00000200  // False Carrier Counter Half-Full
+                                            // Interrupt
+#define EPHY_MISR1_RXHF         0x00000100  // Receive Error Counter Half-Full
+                                            // Interrupt
+#define EPHY_MISR1_LINKSTATEN   0x00000020  // Link Status Interrupt Enable
+#define EPHY_MISR1_SPEEDEN      0x00000010  // Speed Change Interrupt Enable
+#define EPHY_MISR1_DUPLEXMEN    0x00000008  // Duplex Status Interrupt Enable
+#define EPHY_MISR1_ANCEN        0x00000004  // Auto-Negotiation Complete
+                                            // Interrupt Enable
+#define EPHY_MISR1_FCHFEN       0x00000002  // False Carrier Counter Register
+                                            // half-full Interrupt Enable
+#define EPHY_MISR1_RXHFEN       0x00000001  // Receive Error Counter Register
+                                            // Half-Full Event Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPHY_MISR2 register.
+//
+//*****************************************************************************
+#define EPHY_MISR2_ANERR        0x00004000  // Auto-Negotiation Error Interrupt
+#define EPHY_MISR2_PAGERX       0x00002000  // Page Receive Interrupt
+#define EPHY_MISR2_LBFIFO       0x00001000  // Loopback FIFO Overflow/Underflow
+                                            // Event Interrupt
+#define EPHY_MISR2_MDICO        0x00000800  // MDI/MDIX Crossover Status
+                                            // Changed Interrupt
+#define EPHY_MISR2_SLEEP        0x00000400  // Sleep Mode Event Interrupt
+#define EPHY_MISR2_POLINT       0x00000200  // Polarity Changed Interrupt
+#define EPHY_MISR2_JABBER       0x00000100  // Jabber Detect Event Interrupt
+#define EPHY_MISR2_ANERREN      0x00000040  // Auto-Negotiation Error Interrupt
+                                            // Enable
+#define EPHY_MISR2_PAGERXEN     0x00000020  // Page Receive Interrupt Enable
+#define EPHY_MISR2_LBFIFOEN     0x00000010  // Loopback FIFO Overflow/Underflow
+                                            // Interrupt Enable
+#define EPHY_MISR2_MDICOEN      0x00000008  // MDI/MDIX Crossover Status
+                                            // Changed Interrupt Enable
+#define EPHY_MISR2_SLEEPEN      0x00000004  // Sleep Mode Event Interrupt
+                                            // Enable
+#define EPHY_MISR2_POLINTEN     0x00000002  // Polarity Changed Interrupt
+                                            // Enable
+#define EPHY_MISR2_JABBEREN     0x00000001  // Jabber Detect Event Interrupt
+                                            // Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPHY_FCSCR register.
+//
+//*****************************************************************************
+#define EPHY_FCSCR_FCSCNT_M     0x000000FF  // False Carrier Event Counter
+#define EPHY_FCSCR_FCSCNT_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPHY_RXERCNT register.
+//
+//*****************************************************************************
+#define EPHY_RXERCNT_RXERRCNT_M 0x0000FFFF  // Receive Error Count
+#define EPHY_RXERCNT_RXERRCNT_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPHY_BISTCR register.
+//
+//*****************************************************************************
+#define EPHY_BISTCR_PRBSM       0x00004000  // PRBS Single/Continuous Mode
+#define EPHY_BISTCR_PRBSPKT     0x00002000  // Generated PRBS Packets
+#define EPHY_BISTCR_PKTEN       0x00001000  // Packet Generation Enable
+#define EPHY_BISTCR_PRBSCHKLK   0x00000800  // PRBS Checker Lock Indication
+#define EPHY_BISTCR_PRBSCHKSYNC 0x00000400  // PRBS Checker Lock Sync Loss
+                                            // Indication
+#define EPHY_BISTCR_PKTGENSTAT  0x00000200  // Packet Generator Status
+                                            // Indication
+#define EPHY_BISTCR_PWRMODE     0x00000100  // Power Mode Indication
+#define EPHY_BISTCR_TXMIILB     0x00000040  // Transmit Data in MII Loopback
+                                            // Mode
+#define EPHY_BISTCR_LBMODE_M    0x0000001F  // Loopback Mode Select
+#define EPHY_BISTCR_LBMODE_NPCSIN                                             \
+                                0x00000001  // Near-end loopback: PCS Input
+                                            // Loopback
+#define EPHY_BISTCR_LBMODE_NPCSOUT                                            \
+                                0x00000002  // Near-end loopback: PCS Output
+                                            // Loopback (In 100Base-TX only)
+#define EPHY_BISTCR_LBMODE_NDIG 0x00000004  // Near-end loopback: Digital
+                                            // Loopback
+#define EPHY_BISTCR_LBMODE_NANA 0x00000008  // Near-end loopback: Analog
+                                            // Loopback (requires 100 Ohm
+                                            // termination)
+#define EPHY_BISTCR_LBMODE_FREV 0x00000010  // Far-end Loopback: Reverse
+                                            // Loopback
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPHY_LEDCR register.
+//
+//*****************************************************************************
+#define EPHY_LEDCR_BLINKRATE_M  0x00000600  // LED Blinking Rate (ON/OFF
+                                            // duration):
+#define EPHY_LEDCR_BLINKRATE_20HZ                                             \
+                                0x00000000  // 20 Hz (50 ms)
+#define EPHY_LEDCR_BLINKRATE_10HZ                                             \
+                                0x00000200  // 10 Hz (100 ms)
+#define EPHY_LEDCR_BLINKRATE_5HZ                                              \
+                                0x00000400  // 5 Hz (200 ms)
+#define EPHY_LEDCR_BLINKRATE_2HZ                                              \
+                                0x00000600  // 2 Hz (500 ms)
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPHY_CTL register.
+//
+//*****************************************************************************
+#define EPHY_CTL_AUTOMDI        0x00008000  // Auto-MDIX Enable
+#define EPHY_CTL_FORCEMDI       0x00004000  // Force MDIX
+#define EPHY_CTL_PAUSERX        0x00002000  // Pause Receive Negotiated Status
+#define EPHY_CTL_PAUSETX        0x00001000  // Pause Transmit Negotiated Status
+#define EPHY_CTL_MIILNKSTAT     0x00000800  // MII Link Status
+#define EPHY_CTL_BYPLEDSTRCH    0x00000080  // Bypass LED Stretching
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPHY_10BTSC register.
+//
+//*****************************************************************************
+#define EPHY_10BTSC_RXTHEN      0x00002000  // Lower Receiver Threshold Enable
+#define EPHY_10BTSC_SQUELCH_M   0x00001E00  // Squelch Configuration
+#define EPHY_10BTSC_NLPDIS      0x00000080  // Normal Link Pulse (NLP)
+                                            // Transmission Control
+#define EPHY_10BTSC_POLSTAT     0x00000010  // 10 Mb Polarity Status
+#define EPHY_10BTSC_JABBERD     0x00000001  // Jabber Disable
+#define EPHY_10BTSC_SQUELCH_S   9
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPHY_BICSR1 register.
+//
+//*****************************************************************************
+#define EPHY_BICSR1_ERRCNT_M    0x0000FF00  // BIST Error Count
+#define EPHY_BICSR1_IPGLENGTH_M 0x000000FF  // BIST IPG Length
+#define EPHY_BICSR1_ERRCNT_S    8
+#define EPHY_BICSR1_IPGLENGTH_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPHY_BICSR2 register.
+//
+//*****************************************************************************
+#define EPHY_BICSR2_PKTLENGTH_M 0x000007FF  // BIST Packet Length
+#define EPHY_BICSR2_PKTLENGTH_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPHY_CDCR register.
+//
+//*****************************************************************************
+#define EPHY_CDCR_START         0x00008000  // Cable Diagnostic Process Start
+#define EPHY_CDCR_LINKQUAL_M    0x00000300  // Link Quality Indication
+#define EPHY_CDCR_LINKQUAL_GOOD 0x00000100  // Good Quality Link Indication
+#define EPHY_CDCR_LINKQUAL_MILD 0x00000200  // Mid- Quality Link Indication
+#define EPHY_CDCR_LINKQUAL_POOR 0x00000300  // Poor Quality Link Indication
+#define EPHY_CDCR_DONE          0x00000002  // Cable Diagnostic Process Done
+#define EPHY_CDCR_FAIL          0x00000001  // Cable Diagnostic Process Fail
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPHY_RCR register.
+//
+//*****************************************************************************
+#define EPHY_RCR_SWRST          0x00008000  // Software Reset
+#define EPHY_RCR_SWRESTART      0x00004000  // Software Restart
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPHY_LEDCFG register.
+//
+//*****************************************************************************
+#define EPHY_LEDCFG_LED2_M      0x00000F00  // LED2 Configuration
+#define EPHY_LEDCFG_LED2_LINK   0x00000000  // Link OK
+#define EPHY_LEDCFG_LED2_RXTX   0x00000100  // RX/TX Activity
+#define EPHY_LEDCFG_LED2_TX     0x00000200  // TX Activity
+#define EPHY_LEDCFG_LED2_RX     0x00000300  // RX Activity
+#define EPHY_LEDCFG_LED2_COL    0x00000400  // Collision
+#define EPHY_LEDCFG_LED2_100BT  0x00000500  // 100-Base TX
+#define EPHY_LEDCFG_LED2_10BT   0x00000600  // 10-Base TX
+#define EPHY_LEDCFG_LED2_FD     0x00000700  // Full Duplex
+#define EPHY_LEDCFG_LED2_LINKTXRX                                             \
+                                0x00000800  // Link OK/Blink on TX/RX Activity
+#define EPHY_LEDCFG_LED1_M      0x000000F0  // LED1 Configuration
+#define EPHY_LEDCFG_LED1_LINK   0x00000000  // Link OK
+#define EPHY_LEDCFG_LED1_RXTX   0x00000010  // RX/TX Activity
+#define EPHY_LEDCFG_LED1_TX     0x00000020  // TX Activity
+#define EPHY_LEDCFG_LED1_RX     0x00000030  // RX Activity
+#define EPHY_LEDCFG_LED1_COL    0x00000040  // Collision
+#define EPHY_LEDCFG_LED1_100BT  0x00000050  // 100-Base TX
+#define EPHY_LEDCFG_LED1_10BT   0x00000060  // 10-Base TX
+#define EPHY_LEDCFG_LED1_FD     0x00000070  // Full Duplex
+#define EPHY_LEDCFG_LED1_LINKTXRX                                             \
+                                0x00000080  // Link OK/Blink on TX/RX Activity
+#define EPHY_LEDCFG_LED0_M      0x0000000F  // LED0 Configuration
+#define EPHY_LEDCFG_LED0_LINK   0x00000000  // Link OK
+#define EPHY_LEDCFG_LED0_RXTX   0x00000001  // RX/TX Activity
+#define EPHY_LEDCFG_LED0_TX     0x00000002  // TX Activity
+#define EPHY_LEDCFG_LED0_RX     0x00000003  // RX Activity
+#define EPHY_LEDCFG_LED0_COL    0x00000004  // Collision
+#define EPHY_LEDCFG_LED0_100BT  0x00000005  // 100-Base TX
+#define EPHY_LEDCFG_LED0_10BT   0x00000006  // 10-Base TX
+#define EPHY_LEDCFG_LED0_FD     0x00000007  // Full Duplex
+#define EPHY_LEDCFG_LED0_LINKTXRX                                             \
+                                0x00000008  // Link OK/Blink on TX/RX Activity
+
+//*****************************************************************************
+//
+// The following definitions are deprecated.
+//
+//*****************************************************************************
+#ifndef DEPRECATED
+
+//*****************************************************************************
+//
+// The following are deprecated defines for the bit fields in the
+// EMAC_O_PPSCTRL register.
+//
+//*****************************************************************************
+#define EMAC_PPSCTRL_PPSCTRL_1HZ                                              \
+                                0x00000000  // When the PPSEN0 bit = 0x0, the
+                                            // EN0PPS signal is 1 pulse of the
+                                            // PTP reference clock.(of width
+                                            // clk_ptp_i) every second
+#define EMAC_PPSCTRL_PPSCTRL_2HZ                                              \
+                                0x00000001  // When the PPSEN0 bit = 0x0, the
+                                            // binary rollover is 2 Hz, and the
+                                            // digital rollover is 1 Hz
+#define EMAC_PPSCTRL_PPSCTRL_4HZ                                              \
+                                0x00000002  // When the PPSEN0 bit = 0x0, the
+                                            // binary rollover is 4 Hz, and the
+                                            // digital rollover is 2 Hz
+#define EMAC_PPSCTRL_PPSCTRL_8HZ                                              \
+                                0x00000003  // When thePPSEN0 bit = 0x0, the
+                                            // binary rollover is 8 Hz, and the
+                                            // digital rollover is 4 Hz,
+#define EMAC_PPSCTRL_PPSCTRL_16HZ                                             \
+                                0x00000004  // When thePPSEN0 bit = 0x0, the
+                                            // binary rollover is 16 Hz, and
+                                            // the digital rollover is 8 Hz
+#define EMAC_PPSCTRL_PPSCTRL_32HZ                                             \
+                                0x00000005  // When thePPSEN0 bit = 0x0, the
+                                            // binary rollover is 32 Hz, and
+                                            // the digital rollover is 16 Hz
+#define EMAC_PPSCTRL_PPSCTRL_64HZ                                             \
+                                0x00000006  // When thePPSEN0 bit = 0x0, the
+                                            // binary rollover is 64 Hz, and
+                                            // the digital rollover is 32 Hz
+#define EMAC_PPSCTRL_PPSCTRL_128HZ                                            \
+                                0x00000007  // When thePPSEN0 bit = 0x0, the
+                                            // binary rollover is 128 Hz, and
+                                            // the digital rollover is 64 Hz
+#define EMAC_PPSCTRL_PPSCTRL_256HZ                                            \
+                                0x00000008  // When thePPSEN0 bit = 0x0, the
+                                            // binary rollover is 256 Hz, and
+                                            // the digital rollover is 128 Hz
+#define EMAC_PPSCTRL_PPSCTRL_512HZ                                            \
+                                0x00000009  // When thePPSEN0 bit = 0x0, the
+                                            // binary rollover is 512 Hz, and
+                                            // the digital rollover is 256 Hz
+#define EMAC_PPSCTRL_PPSCTRL_1024HZ                                           \
+                                0x0000000A  // When the PPSEN0 bit = 0x0, the
+                                            // binary rollover is 1.024 kHz,
+                                            // and the digital rollover is 512
+                                            // Hz
+#define EMAC_PPSCTRL_PPSCTRL_2048HZ                                           \
+                                0x0000000B  // When thePPSEN0 bit = 0x0, the
+                                            // binary rollover is 2.048 kHz,
+                                            // and the digital rollover is
+                                            // 1.024 kHz
+#define EMAC_PPSCTRL_PPSCTRL_4096HZ                                           \
+                                0x0000000C  // When thePPSEN0 bit = 0x0, the
+                                            // binary rollover is 4.096 kHz,
+                                            // and the digital rollover is
+                                            // 2.048 kHz
+#define EMAC_PPSCTRL_PPSCTRL_8192HZ                                           \
+                                0x0000000D  // When thePPSEN0 bit = 0x0, the
+                                            // binary rollover is 8.192 kHz,
+                                            // and the digital rollover is
+                                            // 4.096 kHz
+#define EMAC_PPSCTRL_PPSCTRL_16384HZ                                          \
+                                0x0000000E  // When thePPSEN0 bit = 0x0, the
+                                            // binary rollover is 16.384 kHz,
+                                            // and the digital rollover is
+                                            // 8.092 kHz
+#define EMAC_PPSCTRL_PPSCTRL_32768HZ                                          \
+                                0x0000000F  // When thePPSEN0 bit = 0x0, the
+                                            // binary rollover is 32.768 KHz,
+                                            // and the digital rollover is
+                                            // 16.384 KHz
+
+//*****************************************************************************
+//
+// The following are deprecated defines for the bit fields in the EMAC_O_CC
+// register.
+//
+//*****************************************************************************
+#define EMAC_CC_CS_PA7          0x00000001  // GPIO
+
+#endif
+
+#endif // __HW_EMAC_H__

+ 933 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_epi.h

@@ -0,0 +1,933 @@
+//*****************************************************************************
+//
+// hw_epi.h - Macros for use in accessing the EPI registers.
+//
+// Copyright (c) 2008-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Firmware Development Package.
+//
+//*****************************************************************************
+
+#ifndef __HW_EPI_H__
+#define __HW_EPI_H__
+
+//*****************************************************************************
+//
+// The following are defines for the External Peripheral Interface register
+// offsets.
+//
+//*****************************************************************************
+#define EPI_O_CFG               0x00000000  // EPI Configuration
+#define EPI_O_BAUD              0x00000004  // EPI Main Baud Rate
+#define EPI_O_BAUD2             0x00000008  // EPI Main Baud Rate
+#define EPI_O_HB16CFG           0x00000010  // EPI Host-Bus 16 Configuration
+#define EPI_O_GPCFG             0x00000010  // EPI General-Purpose
+                                            // Configuration
+#define EPI_O_SDRAMCFG          0x00000010  // EPI SDRAM Configuration
+#define EPI_O_HB8CFG            0x00000010  // EPI Host-Bus 8 Configuration
+#define EPI_O_HB8CFG2           0x00000014  // EPI Host-Bus 8 Configuration 2
+#define EPI_O_HB16CFG2          0x00000014  // EPI Host-Bus 16 Configuration 2
+#define EPI_O_ADDRMAP           0x0000001C  // EPI Address Map
+#define EPI_O_RSIZE0            0x00000020  // EPI Read Size 0
+#define EPI_O_RADDR0            0x00000024  // EPI Read Address 0
+#define EPI_O_RPSTD0            0x00000028  // EPI Non-Blocking Read Data 0
+#define EPI_O_RSIZE1            0x00000030  // EPI Read Size 1
+#define EPI_O_RADDR1            0x00000034  // EPI Read Address 1
+#define EPI_O_RPSTD1            0x00000038  // EPI Non-Blocking Read Data 1
+#define EPI_O_STAT              0x00000060  // EPI Status
+#define EPI_O_RFIFOCNT          0x0000006C  // EPI Read FIFO Count
+#define EPI_O_READFIFO0         0x00000070  // EPI Read FIFO
+#define EPI_O_READFIFO1         0x00000074  // EPI Read FIFO Alias 1
+#define EPI_O_READFIFO2         0x00000078  // EPI Read FIFO Alias 2
+#define EPI_O_READFIFO3         0x0000007C  // EPI Read FIFO Alias 3
+#define EPI_O_READFIFO4         0x00000080  // EPI Read FIFO Alias 4
+#define EPI_O_READFIFO5         0x00000084  // EPI Read FIFO Alias 5
+#define EPI_O_READFIFO6         0x00000088  // EPI Read FIFO Alias 6
+#define EPI_O_READFIFO7         0x0000008C  // EPI Read FIFO Alias 7
+#define EPI_O_FIFOLVL           0x00000200  // EPI FIFO Level Selects
+#define EPI_O_WFIFOCNT          0x00000204  // EPI Write FIFO Count
+#define EPI_O_DMATXCNT          0x00000208  // EPI DMA Transmit Count
+#define EPI_O_IM                0x00000210  // EPI Interrupt Mask
+#define EPI_O_RIS               0x00000214  // EPI Raw Interrupt Status
+#define EPI_O_MIS               0x00000218  // EPI Masked Interrupt Status
+#define EPI_O_EISC              0x0000021C  // EPI Error and Interrupt Status
+                                            // and Clear
+#define EPI_O_HB8CFG3           0x00000308  // EPI Host-Bus 8 Configuration 3
+#define EPI_O_HB16CFG3          0x00000308  // EPI Host-Bus 16 Configuration 3
+#define EPI_O_HB16CFG4          0x0000030C  // EPI Host-Bus 16 Configuration 4
+#define EPI_O_HB8CFG4           0x0000030C  // EPI Host-Bus 8 Configuration 4
+#define EPI_O_HB8TIME           0x00000310  // EPI Host-Bus 8 Timing Extension
+#define EPI_O_HB16TIME          0x00000310  // EPI Host-Bus 16 Timing Extension
+#define EPI_O_HB8TIME2          0x00000314  // EPI Host-Bus 8 Timing Extension
+#define EPI_O_HB16TIME2         0x00000314  // EPI Host-Bus 16 Timing Extension
+#define EPI_O_HB16TIME3         0x00000318  // EPI Host-Bus 16 Timing Extension
+#define EPI_O_HB8TIME3          0x00000318  // EPI Host-Bus 8 Timing Extension
+#define EPI_O_HB8TIME4          0x0000031C  // EPI Host-Bus 8 Timing Extension
+#define EPI_O_HB16TIME4         0x0000031C  // EPI Host-Bus 16 Timing Extension
+#define EPI_O_HBPSRAM           0x00000360  // EPI Host-Bus PSRAM
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_CFG register.
+//
+//*****************************************************************************
+#define EPI_CFG_INTDIV          0x00000100  // Integer Clock Divider Enable
+#define EPI_CFG_BLKEN           0x00000010  // Block Enable
+#define EPI_CFG_MODE_M          0x0000000F  // Mode Select
+#define EPI_CFG_MODE_NONE       0x00000000  // General Purpose
+#define EPI_CFG_MODE_SDRAM      0x00000001  // SDRAM
+#define EPI_CFG_MODE_HB8        0x00000002  // 8-Bit Host-Bus (HB8)
+#define EPI_CFG_MODE_HB16       0x00000003  // 16-Bit Host-Bus (HB16)
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_BAUD register.
+//
+//*****************************************************************************
+#define EPI_BAUD_COUNT1_M       0xFFFF0000  // Baud Rate Counter 1
+#define EPI_BAUD_COUNT0_M       0x0000FFFF  // Baud Rate Counter 0
+#define EPI_BAUD_COUNT1_S       16
+#define EPI_BAUD_COUNT0_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_BAUD2 register.
+//
+//*****************************************************************************
+#define EPI_BAUD2_COUNT1_M      0xFFFF0000  // CS3n Baud Rate Counter 1
+#define EPI_BAUD2_COUNT0_M      0x0000FFFF  // CS2n Baud Rate Counter 0
+#define EPI_BAUD2_COUNT1_S      16
+#define EPI_BAUD2_COUNT0_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_HB16CFG register.
+//
+//*****************************************************************************
+#define EPI_HB16CFG_CLKGATE     0x80000000  // Clock Gated
+#define EPI_HB16CFG_CLKGATEI    0x40000000  // Clock Gated Idle
+#define EPI_HB16CFG_CLKINV      0x20000000  // Invert Output Clock Enable
+#define EPI_HB16CFG_RDYEN       0x10000000  // Input Ready Enable
+#define EPI_HB16CFG_IRDYINV     0x08000000  // Input Ready Invert
+#define EPI_HB16CFG_XFFEN       0x00800000  // External FIFO FULL Enable
+#define EPI_HB16CFG_XFEEN       0x00400000  // External FIFO EMPTY Enable
+#define EPI_HB16CFG_WRHIGH      0x00200000  // WRITE Strobe Polarity
+#define EPI_HB16CFG_RDHIGH      0x00100000  // READ Strobe Polarity
+#define EPI_HB16CFG_ALEHIGH     0x00080000  // ALE Strobe Polarity
+#define EPI_HB16CFG_WRCRE       0x00040000  // PSRAM Configuration Register
+                                            // Write
+#define EPI_HB16CFG_RDCRE       0x00020000  // PSRAM Configuration Register
+                                            // Read
+#define EPI_HB16CFG_BURST       0x00010000  // Burst Mode
+#define EPI_HB16CFG_MAXWAIT_M   0x0000FF00  // Maximum Wait
+#define EPI_HB16CFG_WRWS_M      0x000000C0  // Write Wait States
+#define EPI_HB16CFG_WRWS_2      0x00000000  // Active WRn is 2 EPI clocks
+#define EPI_HB16CFG_WRWS_4      0x00000040  // Active WRn is 4 EPI clocks
+#define EPI_HB16CFG_WRWS_6      0x00000080  // Active WRn is 6 EPI clocks
+#define EPI_HB16CFG_WRWS_8      0x000000C0  // Active WRn is 8 EPI clocks
+#define EPI_HB16CFG_RDWS_M      0x00000030  // Read Wait States
+#define EPI_HB16CFG_RDWS_2      0x00000000  // Active RDn is 2 EPI clocks
+#define EPI_HB16CFG_RDWS_4      0x00000010  // Active RDn is 4 EPI clocks
+#define EPI_HB16CFG_RDWS_6      0x00000020  // Active RDn is 6 EPI clocks
+#define EPI_HB16CFG_RDWS_8      0x00000030  // Active RDn is 8 EPI clocks
+#define EPI_HB16CFG_BSEL        0x00000004  // Byte Select Configuration
+#define EPI_HB16CFG_MODE_M      0x00000003  // Host Bus Sub-Mode
+#define EPI_HB16CFG_MODE_ADMUX  0x00000000  // ADMUX - AD[15:0]
+#define EPI_HB16CFG_MODE_ADNMUX 0x00000001  // ADNONMUX - D[15:0]
+#define EPI_HB16CFG_MODE_SRAM   0x00000002  // Continuous Read - D[15:0]
+#define EPI_HB16CFG_MODE_XFIFO  0x00000003  // XFIFO - D[15:0]
+#define EPI_HB16CFG_MAXWAIT_S   8
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_GPCFG register.
+//
+//*****************************************************************************
+#define EPI_GPCFG_CLKPIN        0x80000000  // Clock Pin
+#define EPI_GPCFG_CLKGATE       0x40000000  // Clock Gated
+#define EPI_GPCFG_FRM50         0x04000000  // 50/50 Frame
+#define EPI_GPCFG_FRMCNT_M      0x03C00000  // Frame Count
+#define EPI_GPCFG_WR2CYC        0x00080000  // 2-Cycle Writes
+#define EPI_GPCFG_ASIZE_M       0x00000030  // Address Bus Size
+#define EPI_GPCFG_ASIZE_NONE    0x00000000  // No address
+#define EPI_GPCFG_ASIZE_4BIT    0x00000010  // Up to 4 bits wide
+#define EPI_GPCFG_ASIZE_12BIT   0x00000020  // Up to 12 bits wide. This size
+                                            // cannot be used with 24-bit data
+#define EPI_GPCFG_ASIZE_20BIT   0x00000030  // Up to 20 bits wide. This size
+                                            // cannot be used with data sizes
+                                            // other than 8
+#define EPI_GPCFG_DSIZE_M       0x00000003  // Size of Data Bus
+#define EPI_GPCFG_DSIZE_4BIT    0x00000000  // 8 Bits Wide (EPI0S0 to EPI0S7)
+#define EPI_GPCFG_DSIZE_16BIT   0x00000001  // 16 Bits Wide (EPI0S0 to EPI0S15)
+#define EPI_GPCFG_DSIZE_24BIT   0x00000002  // 24 Bits Wide (EPI0S0 to EPI0S23)
+#define EPI_GPCFG_DSIZE_32BIT   0x00000003  // 32 Bits Wide (EPI0S0 to EPI0S31)
+#define EPI_GPCFG_FRMCNT_S      22
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_SDRAMCFG register.
+//
+//*****************************************************************************
+#define EPI_SDRAMCFG_FREQ_M     0xC0000000  // EPI Frequency Range
+#define EPI_SDRAMCFG_FREQ_NONE  0x00000000  // 0 - 15 MHz
+#define EPI_SDRAMCFG_FREQ_15MHZ 0x40000000  // 15 - 30 MHz
+#define EPI_SDRAMCFG_FREQ_30MHZ 0x80000000  // 30 - 50 MHz
+#define EPI_SDRAMCFG_RFSH_M     0x07FF0000  // Refresh Counter
+#define EPI_SDRAMCFG_SLEEP      0x00000200  // Sleep Mode
+#define EPI_SDRAMCFG_SIZE_M     0x00000003  // Size of SDRAM
+#define EPI_SDRAMCFG_SIZE_8MB   0x00000000  // 64 megabits (8MB)
+#define EPI_SDRAMCFG_SIZE_16MB  0x00000001  // 128 megabits (16MB)
+#define EPI_SDRAMCFG_SIZE_32MB  0x00000002  // 256 megabits (32MB)
+#define EPI_SDRAMCFG_SIZE_64MB  0x00000003  // 512 megabits (64MB)
+#define EPI_SDRAMCFG_RFSH_S     16
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_HB8CFG register.
+//
+//*****************************************************************************
+#define EPI_HB8CFG_CLKGATE      0x80000000  // Clock Gated
+#define EPI_HB8CFG_CLKGATEI     0x40000000  // Clock Gated when Idle
+#define EPI_HB8CFG_CLKINV       0x20000000  // Invert Output Clock Enable
+#define EPI_HB8CFG_RDYEN        0x10000000  // Input Ready Enable
+#define EPI_HB8CFG_IRDYINV      0x08000000  // Input Ready Invert
+#define EPI_HB8CFG_XFFEN        0x00800000  // External FIFO FULL Enable
+#define EPI_HB8CFG_XFEEN        0x00400000  // External FIFO EMPTY Enable
+#define EPI_HB8CFG_WRHIGH       0x00200000  // WRITE Strobe Polarity
+#define EPI_HB8CFG_RDHIGH       0x00100000  // READ Strobe Polarity
+#define EPI_HB8CFG_ALEHIGH      0x00080000  // ALE Strobe Polarity
+#define EPI_HB8CFG_MAXWAIT_M    0x0000FF00  // Maximum Wait
+#define EPI_HB8CFG_WRWS_M       0x000000C0  // Write Wait States
+#define EPI_HB8CFG_WRWS_2       0x00000000  // Active WRn is 2 EPI clocks
+#define EPI_HB8CFG_WRWS_4       0x00000040  // Active WRn is 4 EPI clocks
+#define EPI_HB8CFG_WRWS_6       0x00000080  // Active WRn is 6 EPI clocks
+#define EPI_HB8CFG_WRWS_8       0x000000C0  // Active WRn is 8 EPI clocks
+#define EPI_HB8CFG_RDWS_M       0x00000030  // Read Wait States
+#define EPI_HB8CFG_RDWS_2       0x00000000  // Active RDn is 2 EPI clocks
+#define EPI_HB8CFG_RDWS_4       0x00000010  // Active RDn is 4 EPI clocks
+#define EPI_HB8CFG_RDWS_6       0x00000020  // Active RDn is 6 EPI clocks
+#define EPI_HB8CFG_RDWS_8       0x00000030  // Active RDn is 8 EPI clocks
+#define EPI_HB8CFG_MODE_M       0x00000003  // Host Bus Sub-Mode
+#define EPI_HB8CFG_MODE_MUX     0x00000000  // ADMUX - AD[7:0]
+#define EPI_HB8CFG_MODE_NMUX    0x00000001  // ADNONMUX - D[7:0]
+#define EPI_HB8CFG_MODE_SRAM    0x00000002  // Continuous Read - D[7:0]
+#define EPI_HB8CFG_MODE_FIFO    0x00000003  // XFIFO - D[7:0]
+#define EPI_HB8CFG_MAXWAIT_S    8
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_HB8CFG2 register.
+//
+//*****************************************************************************
+#define EPI_HB8CFG2_CSCFGEXT    0x08000000  // Chip Select Extended
+                                            // Configuration
+#define EPI_HB8CFG2_CSBAUD      0x04000000  // Chip Select Baud Rate and
+                                            // Multiple Sub-Mode Configuration
+                                            // enable
+#define EPI_HB8CFG2_CSCFG_M     0x03000000  // Chip Select Configuration
+#define EPI_HB8CFG2_CSCFG_ALE   0x00000000  // ALE Configuration
+#define EPI_HB8CFG2_CSCFG_CS    0x01000000  // CSn Configuration
+#define EPI_HB8CFG2_CSCFG_DCS   0x02000000  // Dual CSn Configuration
+#define EPI_HB8CFG2_CSCFG_ADCS  0x03000000  // ALE with Dual CSn Configuration
+#define EPI_HB8CFG2_WRHIGH      0x00200000  // CS1n WRITE Strobe Polarity
+#define EPI_HB8CFG2_RDHIGH      0x00100000  // CS1n READ Strobe Polarity
+#define EPI_HB8CFG2_ALEHIGH     0x00080000  // CS1n ALE Strobe Polarity
+#define EPI_HB8CFG2_WRWS_M      0x000000C0  // CS1n Write Wait States
+#define EPI_HB8CFG2_WRWS_2      0x00000000  // Active WRn is 2 EPI clocks
+#define EPI_HB8CFG2_WRWS_4      0x00000040  // Active WRn is 4 EPI clocks
+#define EPI_HB8CFG2_WRWS_6      0x00000080  // Active WRn is 6 EPI clocks
+#define EPI_HB8CFG2_WRWS_8      0x000000C0  // Active WRn is 8 EPI clocks
+#define EPI_HB8CFG2_RDWS_M      0x00000030  // CS1n Read Wait States
+#define EPI_HB8CFG2_RDWS_2      0x00000000  // Active RDn is 2 EPI clocks
+#define EPI_HB8CFG2_RDWS_4      0x00000010  // Active RDn is 4 EPI clocks
+#define EPI_HB8CFG2_RDWS_6      0x00000020  // Active RDn is 6 EPI clocks
+#define EPI_HB8CFG2_RDWS_8      0x00000030  // Active RDn is 8 EPI clocks
+#define EPI_HB8CFG2_MODE_M      0x00000003  // CS1n Host Bus Sub-Mode
+#define EPI_HB8CFG2_MODE_ADMUX  0x00000000  // ADMUX - AD[7:0]
+#define EPI_HB8CFG2_MODE_AD     0x00000001  // ADNONMUX - D[7:0]
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_HB16CFG2 register.
+//
+//*****************************************************************************
+#define EPI_HB16CFG2_CSCFGEXT   0x08000000  // Chip Select Extended
+                                            // Configuration
+#define EPI_HB16CFG2_CSBAUD     0x04000000  // Chip Select Baud Rate and
+                                            // Multiple Sub-Mode Configuration
+                                            // enable
+#define EPI_HB16CFG2_CSCFG_M    0x03000000  // Chip Select Configuration
+#define EPI_HB16CFG2_CSCFG_ALE  0x00000000  // ALE Configuration
+#define EPI_HB16CFG2_CSCFG_CS   0x01000000  // CSn Configuration
+#define EPI_HB16CFG2_CSCFG_DCS  0x02000000  // Dual CSn Configuration
+#define EPI_HB16CFG2_CSCFG_ADCS 0x03000000  // ALE with Dual CSn Configuration
+#define EPI_HB16CFG2_WRHIGH     0x00200000  // CS1n WRITE Strobe Polarity
+#define EPI_HB16CFG2_RDHIGH     0x00100000  // CS1n READ Strobe Polarity
+#define EPI_HB16CFG2_ALEHIGH    0x00080000  // CS1n ALE Strobe Polarity
+#define EPI_HB16CFG2_WRCRE      0x00040000  // CS1n PSRAM Configuration
+                                            // Register Write
+#define EPI_HB16CFG2_RDCRE      0x00020000  // CS1n PSRAM Configuration
+                                            // Register Read
+#define EPI_HB16CFG2_BURST      0x00010000  // CS1n Burst Mode
+#define EPI_HB16CFG2_WRWS_M     0x000000C0  // CS1n Write Wait States
+#define EPI_HB16CFG2_WRWS_2     0x00000000  // Active WRn is 2 EPI clocks
+#define EPI_HB16CFG2_WRWS_4     0x00000040  // Active WRn is 4 EPI clocks
+#define EPI_HB16CFG2_WRWS_6     0x00000080  // Active WRn is 6 EPI clocks
+#define EPI_HB16CFG2_WRWS_8     0x000000C0  // Active WRn is 8 EPI clocks
+#define EPI_HB16CFG2_RDWS_M     0x00000030  // CS1n Read Wait States
+#define EPI_HB16CFG2_RDWS_2     0x00000000  // Active RDn is 2 EPI clocks
+#define EPI_HB16CFG2_RDWS_4     0x00000010  // Active RDn is 4 EPI clocks
+#define EPI_HB16CFG2_RDWS_6     0x00000020  // Active RDn is 6 EPI clocks
+#define EPI_HB16CFG2_RDWS_8     0x00000030  // Active RDn is 8 EPI clocks
+#define EPI_HB16CFG2_MODE_M     0x00000003  // CS1n Host Bus Sub-Mode
+#define EPI_HB16CFG2_MODE_ADMUX 0x00000000  // ADMUX - AD[15:0]
+#define EPI_HB16CFG2_MODE_AD    0x00000001  // ADNONMUX - D[15:0]
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_ADDRMAP register.
+//
+//*****************************************************************************
+#define EPI_ADDRMAP_ECSZ_M      0x00000C00  // External Code Size
+#define EPI_ADDRMAP_ECSZ_256B   0x00000000  // 256 bytes; lower address range:
+                                            // 0x00 to 0xFF
+#define EPI_ADDRMAP_ECSZ_64KB   0x00000400  // 64 KB; lower address range:
+                                            // 0x0000 to 0xFFFF
+#define EPI_ADDRMAP_ECSZ_16MB   0x00000800  // 16 MB; lower address range:
+                                            // 0x00.0000 to 0xFF.FFFF
+#define EPI_ADDRMAP_ECSZ_256MB  0x00000C00  // 256MB; lower address range:
+                                            // 0x000.0000 to 0x0FFF.FFFF
+#define EPI_ADDRMAP_ECADR_M     0x00000300  // External Code Address
+#define EPI_ADDRMAP_ECADR_NONE  0x00000000  // Not mapped
+#define EPI_ADDRMAP_ECADR_1000  0x00000100  // At 0x1000.0000
+#define EPI_ADDRMAP_EPSZ_M      0x000000C0  // External Peripheral Size
+#define EPI_ADDRMAP_EPSZ_256B   0x00000000  // 256 bytes; lower address range:
+                                            // 0x00 to 0xFF
+#define EPI_ADDRMAP_EPSZ_64KB   0x00000040  // 64 KB; lower address range:
+                                            // 0x0000 to 0xFFFF
+#define EPI_ADDRMAP_EPSZ_16MB   0x00000080  // 16 MB; lower address range:
+                                            // 0x00.0000 to 0xFF.FFFF
+#define EPI_ADDRMAP_EPSZ_256MB  0x000000C0  // 256 MB; lower address range:
+                                            // 0x000.0000 to 0xFFF.FFFF
+#define EPI_ADDRMAP_EPADR_M     0x00000030  // External Peripheral Address
+#define EPI_ADDRMAP_EPADR_NONE  0x00000000  // Not mapped
+#define EPI_ADDRMAP_EPADR_A000  0x00000010  // At 0xA000.0000
+#define EPI_ADDRMAP_EPADR_C000  0x00000020  // At 0xC000.0000
+#define EPI_ADDRMAP_EPADR_HBQS  0x00000030  // Only to be used with Host Bus
+                                            // quad chip select. In quad chip
+                                            // select mode, CS2n maps to
+                                            // 0xA000.0000 and CS3n maps to
+                                            // 0xC000.0000
+#define EPI_ADDRMAP_ERSZ_M      0x0000000C  // External RAM Size
+#define EPI_ADDRMAP_ERSZ_256B   0x00000000  // 256 bytes; lower address range:
+                                            // 0x00 to 0xFF
+#define EPI_ADDRMAP_ERSZ_64KB   0x00000004  // 64 KB; lower address range:
+                                            // 0x0000 to 0xFFFF
+#define EPI_ADDRMAP_ERSZ_16MB   0x00000008  // 16 MB; lower address range:
+                                            // 0x00.0000 to 0xFF.FFFF
+#define EPI_ADDRMAP_ERSZ_256MB  0x0000000C  // 256 MB; lower address range:
+                                            // 0x000.0000 to 0xFFF.FFFF
+#define EPI_ADDRMAP_ERADR_M     0x00000003  // External RAM Address
+#define EPI_ADDRMAP_ERADR_NONE  0x00000000  // Not mapped
+#define EPI_ADDRMAP_ERADR_6000  0x00000001  // At 0x6000.0000
+#define EPI_ADDRMAP_ERADR_8000  0x00000002  // At 0x8000.0000
+#define EPI_ADDRMAP_ERADR_HBQS  0x00000003  // Only to be used with Host Bus
+                                            // quad chip select. In quad chip
+                                            // select mode, CS0n maps to
+                                            // 0x6000.0000 and CS1n maps to
+                                            // 0x8000.0000
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_RSIZE0 register.
+//
+//*****************************************************************************
+#define EPI_RSIZE0_SIZE_M       0x00000003  // Current Size
+#define EPI_RSIZE0_SIZE_8BIT    0x00000001  // Byte (8 bits)
+#define EPI_RSIZE0_SIZE_16BIT   0x00000002  // Half-word (16 bits)
+#define EPI_RSIZE0_SIZE_32BIT   0x00000003  // Word (32 bits)
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_RADDR0 register.
+//
+//*****************************************************************************
+#define EPI_RADDR0_ADDR_M       0xFFFFFFFF  // Current Address
+#define EPI_RADDR0_ADDR_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_RPSTD0 register.
+//
+//*****************************************************************************
+#define EPI_RPSTD0_POSTCNT_M    0x00001FFF  // Post Count
+#define EPI_RPSTD0_POSTCNT_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_RSIZE1 register.
+//
+//*****************************************************************************
+#define EPI_RSIZE1_SIZE_M       0x00000003  // Current Size
+#define EPI_RSIZE1_SIZE_8BIT    0x00000001  // Byte (8 bits)
+#define EPI_RSIZE1_SIZE_16BIT   0x00000002  // Half-word (16 bits)
+#define EPI_RSIZE1_SIZE_32BIT   0x00000003  // Word (32 bits)
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_RADDR1 register.
+//
+//*****************************************************************************
+#define EPI_RADDR1_ADDR_M       0xFFFFFFFF  // Current Address
+#define EPI_RADDR1_ADDR_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_RPSTD1 register.
+//
+//*****************************************************************************
+#define EPI_RPSTD1_POSTCNT_M    0x00001FFF  // Post Count
+#define EPI_RPSTD1_POSTCNT_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_STAT register.
+//
+//*****************************************************************************
+#define EPI_STAT_XFFULL         0x00000100  // External FIFO Full
+#define EPI_STAT_XFEMPTY        0x00000080  // External FIFO Empty
+#define EPI_STAT_INITSEQ        0x00000040  // Initialization Sequence
+#define EPI_STAT_WBUSY          0x00000020  // Write Busy
+#define EPI_STAT_NBRBUSY        0x00000010  // Non-Blocking Read Busy
+#define EPI_STAT_ACTIVE         0x00000001  // Register Active
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_RFIFOCNT register.
+//
+//*****************************************************************************
+#define EPI_RFIFOCNT_COUNT_M    0x0000000F  // FIFO Count
+#define EPI_RFIFOCNT_COUNT_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_READFIFO0
+// register.
+//
+//*****************************************************************************
+#define EPI_READFIFO0_DATA_M    0xFFFFFFFF  // Reads Data
+#define EPI_READFIFO0_DATA_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_READFIFO1
+// register.
+//
+//*****************************************************************************
+#define EPI_READFIFO1_DATA_M    0xFFFFFFFF  // Reads Data
+#define EPI_READFIFO1_DATA_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_READFIFO2
+// register.
+//
+//*****************************************************************************
+#define EPI_READFIFO2_DATA_M    0xFFFFFFFF  // Reads Data
+#define EPI_READFIFO2_DATA_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_READFIFO3
+// register.
+//
+//*****************************************************************************
+#define EPI_READFIFO3_DATA_M    0xFFFFFFFF  // Reads Data
+#define EPI_READFIFO3_DATA_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_READFIFO4
+// register.
+//
+//*****************************************************************************
+#define EPI_READFIFO4_DATA_M    0xFFFFFFFF  // Reads Data
+#define EPI_READFIFO4_DATA_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_READFIFO5
+// register.
+//
+//*****************************************************************************
+#define EPI_READFIFO5_DATA_M    0xFFFFFFFF  // Reads Data
+#define EPI_READFIFO5_DATA_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_READFIFO6
+// register.
+//
+//*****************************************************************************
+#define EPI_READFIFO6_DATA_M    0xFFFFFFFF  // Reads Data
+#define EPI_READFIFO6_DATA_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_READFIFO7
+// register.
+//
+//*****************************************************************************
+#define EPI_READFIFO7_DATA_M    0xFFFFFFFF  // Reads Data
+#define EPI_READFIFO7_DATA_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_FIFOLVL register.
+//
+//*****************************************************************************
+#define EPI_FIFOLVL_WFERR       0x00020000  // Write Full Error
+#define EPI_FIFOLVL_RSERR       0x00010000  // Read Stall Error
+#define EPI_FIFOLVL_WRFIFO_M    0x00000070  // Write FIFO
+#define EPI_FIFOLVL_WRFIFO_EMPT 0x00000000  // Interrupt is triggered while
+                                            // WRFIFO is empty.
+#define EPI_FIFOLVL_WRFIFO_2    0x00000020  // Interrupt is triggered until
+                                            // there are only two slots
+                                            // available. Thus, trigger is
+                                            // deasserted when there are two
+                                            // WRFIFO entries present. This
+                                            // configuration is optimized for
+                                            // bursts of 2
+#define EPI_FIFOLVL_WRFIFO_1    0x00000030  // Interrupt is triggered until
+                                            // there is one WRFIFO entry
+                                            // available. This configuration
+                                            // expects only single writes
+#define EPI_FIFOLVL_WRFIFO_NFULL                                              \
+                                0x00000040  // Trigger interrupt when WRFIFO is
+                                            // not full, meaning trigger will
+                                            // continue to assert until there
+                                            // are four entries in the WRFIFO
+#define EPI_FIFOLVL_RDFIFO_M    0x00000007  // Read FIFO
+#define EPI_FIFOLVL_RDFIFO_EMPT 0x00000000  // Empty
+#define EPI_FIFOLVL_RDFIFO_1    0x00000001  // Trigger when there are 1 or more
+                                            // entries in the NBRFIFO
+#define EPI_FIFOLVL_RDFIFO_2    0x00000002  // Trigger when there are 2 or more
+                                            // entries in the NBRFIFO
+#define EPI_FIFOLVL_RDFIFO_4    0x00000003  // Trigger when there are 4 or more
+                                            // entries in the NBRFIFO
+#define EPI_FIFOLVL_RDFIFO_6    0x00000004  // Trigger when there are 6 or more
+                                            // entries in the NBRFIFO
+#define EPI_FIFOLVL_RDFIFO_7    0x00000005  // Trigger when there are 7 or more
+                                            // entries in the NBRFIFO
+#define EPI_FIFOLVL_RDFIFO_8    0x00000006  // Trigger when there are 8 entries
+                                            // in the NBRFIFO
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_WFIFOCNT register.
+//
+//*****************************************************************************
+#define EPI_WFIFOCNT_WTAV_M     0x00000007  // Available Write Transactions
+#define EPI_WFIFOCNT_WTAV_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_DMATXCNT register.
+//
+//*****************************************************************************
+#define EPI_DMATXCNT_TXCNT_M    0x0000FFFF  // DMA Count
+#define EPI_DMATXCNT_TXCNT_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_IM register.
+//
+//*****************************************************************************
+#define EPI_IM_DMAWRIM          0x00000010  // Write uDMA Interrupt Mask
+#define EPI_IM_DMARDIM          0x00000008  // Read uDMA Interrupt Mask
+#define EPI_IM_WRIM             0x00000004  // Write FIFO Empty Interrupt Mask
+#define EPI_IM_RDIM             0x00000002  // Read FIFO Full Interrupt Mask
+#define EPI_IM_ERRIM            0x00000001  // Error Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_RIS register.
+//
+//*****************************************************************************
+#define EPI_RIS_DMAWRRIS        0x00000010  // Write uDMA Raw Interrupt Status
+#define EPI_RIS_DMARDRIS        0x00000008  // Read uDMA Raw Interrupt Status
+#define EPI_RIS_WRRIS           0x00000004  // Write Raw Interrupt Status
+#define EPI_RIS_RDRIS           0x00000002  // Read Raw Interrupt Status
+#define EPI_RIS_ERRRIS          0x00000001  // Error Raw Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_MIS register.
+//
+//*****************************************************************************
+#define EPI_MIS_DMAWRMIS        0x00000010  // Write uDMA Masked Interrupt
+                                            // Status
+#define EPI_MIS_DMARDMIS        0x00000008  // Read uDMA Masked Interrupt
+                                            // Status
+#define EPI_MIS_WRMIS           0x00000004  // Write Masked Interrupt Status
+#define EPI_MIS_RDMIS           0x00000002  // Read Masked Interrupt Status
+#define EPI_MIS_ERRMIS          0x00000001  // Error Masked Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_EISC register.
+//
+//*****************************************************************************
+#define EPI_EISC_DMAWRIC        0x00000010  // Write uDMA Interrupt Clear
+#define EPI_EISC_DMARDIC        0x00000008  // Read uDMA Interrupt Clear
+#define EPI_EISC_WTFULL         0x00000004  // Write FIFO Full Error
+#define EPI_EISC_RSTALL         0x00000002  // Read Stalled Error
+#define EPI_EISC_TOUT           0x00000001  // Timeout Error
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_HB8CFG3 register.
+//
+//*****************************************************************************
+#define EPI_HB8CFG3_WRHIGH      0x00200000  // CS2n WRITE Strobe Polarity
+#define EPI_HB8CFG3_RDHIGH      0x00100000  // CS2n READ Strobe Polarity
+#define EPI_HB8CFG3_ALEHIGH     0x00080000  // CS2n ALE Strobe Polarity
+#define EPI_HB8CFG3_WRWS_M      0x000000C0  // CS2n Write Wait States
+#define EPI_HB8CFG3_WRWS_2      0x00000000  // Active WRn is 2 EPI clocks
+#define EPI_HB8CFG3_WRWS_4      0x00000040  // Active WRn is 4 EPI clocks
+#define EPI_HB8CFG3_WRWS_6      0x00000080  // Active WRn is 6 EPI clocks
+#define EPI_HB8CFG3_WRWS_8      0x000000C0  // Active WRn is 8 EPI clocks
+#define EPI_HB8CFG3_RDWS_M      0x00000030  // CS2n Read Wait States
+#define EPI_HB8CFG3_RDWS_2      0x00000000  // Active RDn is 2 EPI clocks
+#define EPI_HB8CFG3_RDWS_4      0x00000010  // Active RDn is 4 EPI clocks
+#define EPI_HB8CFG3_RDWS_6      0x00000020  // Active RDn is 6 EPI clocks
+#define EPI_HB8CFG3_RDWS_8      0x00000030  // Active RDn is 8 EPI clocks
+#define EPI_HB8CFG3_MODE_M      0x00000003  // CS2n Host Bus Sub-Mode
+#define EPI_HB8CFG3_MODE_ADMUX  0x00000000  // ADMUX - AD[7:0]
+#define EPI_HB8CFG3_MODE_AD     0x00000001  // ADNONMUX - D[7:0]
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_HB16CFG3 register.
+//
+//*****************************************************************************
+#define EPI_HB16CFG3_WRHIGH     0x00200000  // CS2n WRITE Strobe Polarity
+#define EPI_HB16CFG3_RDHIGH     0x00100000  // CS2n READ Strobe Polarity
+#define EPI_HB16CFG3_ALEHIGH    0x00080000  // CS2n ALE Strobe Polarity
+#define EPI_HB16CFG3_WRCRE      0x00040000  // CS2n PSRAM Configuration
+                                            // Register Write
+#define EPI_HB16CFG3_RDCRE      0x00020000  // CS2n PSRAM Configuration
+                                            // Register Read
+#define EPI_HB16CFG3_BURST      0x00010000  // CS2n Burst Mode
+#define EPI_HB16CFG3_WRWS_M     0x000000C0  // CS2n Write Wait States
+#define EPI_HB16CFG3_WRWS_2     0x00000000  // Active WRn is 2 EPI clocks
+#define EPI_HB16CFG3_WRWS_4     0x00000040  // Active WRn is 4 EPI clocks
+#define EPI_HB16CFG3_WRWS_6     0x00000080  // Active WRn is 6 EPI clocks
+#define EPI_HB16CFG3_WRWS_8     0x000000C0  // Active WRn is 8 EPI clocks
+#define EPI_HB16CFG3_RDWS_M     0x00000030  // CS2n Read Wait States
+#define EPI_HB16CFG3_RDWS_2     0x00000000  // Active RDn is 2 EPI clocks
+#define EPI_HB16CFG3_RDWS_4     0x00000010  // Active RDn is 4 EPI clocks
+#define EPI_HB16CFG3_RDWS_6     0x00000020  // Active RDn is 6 EPI clocks
+#define EPI_HB16CFG3_RDWS_8     0x00000030  // Active RDn is 8 EPI clocks
+#define EPI_HB16CFG3_MODE_M     0x00000003  // CS2n Host Bus Sub-Mode
+#define EPI_HB16CFG3_MODE_ADMUX 0x00000000  // ADMUX - AD[15:0]
+#define EPI_HB16CFG3_MODE_AD    0x00000001  // ADNONMUX - D[15:0]
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_HB16CFG4 register.
+//
+//*****************************************************************************
+#define EPI_HB16CFG4_WRHIGH     0x00200000  // CS3n WRITE Strobe Polarity
+#define EPI_HB16CFG4_RDHIGH     0x00100000  // CS3n READ Strobe Polarity
+#define EPI_HB16CFG4_ALEHIGH    0x00080000  // CS3n ALE Strobe Polarity
+#define EPI_HB16CFG4_WRCRE      0x00040000  // CS3n PSRAM Configuration
+                                            // Register Write
+#define EPI_HB16CFG4_RDCRE      0x00020000  // CS3n PSRAM Configuration
+                                            // Register Read
+#define EPI_HB16CFG4_BURST      0x00010000  // CS3n Burst Mode
+#define EPI_HB16CFG4_WRWS_M     0x000000C0  // CS3n Write Wait States
+#define EPI_HB16CFG4_WRWS_2     0x00000000  // Active WRn is 2 EPI clocks
+#define EPI_HB16CFG4_WRWS_4     0x00000040  // Active WRn is 4 EPI clocks
+#define EPI_HB16CFG4_WRWS_6     0x00000080  // Active WRn is 6 EPI clocks
+#define EPI_HB16CFG4_WRWS_8     0x000000C0  // Active WRn is 8 EPI clocks
+#define EPI_HB16CFG4_RDWS_M     0x00000030  // CS3n Read Wait States
+#define EPI_HB16CFG4_RDWS_2     0x00000000  // Active RDn is 2 EPI clocks
+#define EPI_HB16CFG4_RDWS_4     0x00000010  // Active RDn is 4 EPI clocks
+#define EPI_HB16CFG4_RDWS_6     0x00000020  // Active RDn is 6 EPI clocks
+#define EPI_HB16CFG4_RDWS_8     0x00000030  // Active RDn is 8 EPI clocks
+#define EPI_HB16CFG4_MODE_M     0x00000003  // CS3n Host Bus Sub-Mode
+#define EPI_HB16CFG4_MODE_ADMUX 0x00000000  // ADMUX - AD[15:0]
+#define EPI_HB16CFG4_MODE_AD    0x00000001  // ADNONMUX - D[15:0]
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_HB8CFG4 register.
+//
+//*****************************************************************************
+#define EPI_HB8CFG4_WRHIGH      0x00200000  // CS3n WRITE Strobe Polarity
+#define EPI_HB8CFG4_RDHIGH      0x00100000  // CS2n READ Strobe Polarity
+#define EPI_HB8CFG4_ALEHIGH     0x00080000  // CS3n ALE Strobe Polarity
+#define EPI_HB8CFG4_WRWS_M      0x000000C0  // CS3n Write Wait States
+#define EPI_HB8CFG4_WRWS_2      0x00000000  // Active WRn is 2 EPI clocks
+#define EPI_HB8CFG4_WRWS_4      0x00000040  // Active WRn is 4 EPI clocks
+#define EPI_HB8CFG4_WRWS_6      0x00000080  // Active WRn is 6 EPI clocks
+#define EPI_HB8CFG4_WRWS_8      0x000000C0  // Active WRn is 8 EPI clocks
+#define EPI_HB8CFG4_RDWS_M      0x00000030  // CS3n Read Wait States
+#define EPI_HB8CFG4_RDWS_2      0x00000000  // Active RDn is 2 EPI clocks
+#define EPI_HB8CFG4_RDWS_4      0x00000010  // Active RDn is 4 EPI clocks
+#define EPI_HB8CFG4_RDWS_6      0x00000020  // Active RDn is 6 EPI clocks
+#define EPI_HB8CFG4_RDWS_8      0x00000030  // Active RDn is 8 EPI clocks
+#define EPI_HB8CFG4_MODE_M      0x00000003  // CS3n Host Bus Sub-Mode
+#define EPI_HB8CFG4_MODE_ADMUX  0x00000000  // ADMUX - AD[7:0]
+#define EPI_HB8CFG4_MODE_AD     0x00000001  // ADNONMUX - D[7:0]
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_HB8TIME register.
+//
+//*****************************************************************************
+#define EPI_HB8TIME_IRDYDLY_M   0x03000000  // CS0n Input Ready Delay
+#define EPI_HB8TIME_CAPWIDTH_M  0x00003000  // CS0n Inter-transfer Capture
+                                            // Width
+#define EPI_HB8TIME_WRWSM       0x00000010  // Write Wait State Minus One
+#define EPI_HB8TIME_RDWSM       0x00000001  // Read Wait State Minus One
+#define EPI_HB8TIME_IRDYDLY_S   24
+#define EPI_HB8TIME_CAPWIDTH_S  12
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_HB16TIME register.
+//
+//*****************************************************************************
+#define EPI_HB16TIME_IRDYDLY_M  0x03000000  // CS0n Input Ready Delay
+#define EPI_HB16TIME_PSRAMSZ_M  0x00070000  // PSRAM Row Size
+#define EPI_HB16TIME_PSRAMSZ_0  0x00000000  // No row size limitation
+#define EPI_HB16TIME_PSRAMSZ_128B                                             \
+                                0x00010000  // 128 B
+#define EPI_HB16TIME_PSRAMSZ_256B                                             \
+                                0x00020000  // 256 B
+#define EPI_HB16TIME_PSRAMSZ_512B                                             \
+                                0x00030000  // 512 B
+#define EPI_HB16TIME_PSRAMSZ_1KB                                              \
+                                0x00040000  // 1024 B
+#define EPI_HB16TIME_PSRAMSZ_2KB                                              \
+                                0x00050000  // 2048 B
+#define EPI_HB16TIME_PSRAMSZ_4KB                                              \
+                                0x00060000  // 4096 B
+#define EPI_HB16TIME_PSRAMSZ_8KB                                              \
+                                0x00070000  // 8192 B
+#define EPI_HB16TIME_CAPWIDTH_M 0x00003000  // CS0n Inter-transfer Capture
+                                            // Width
+#define EPI_HB16TIME_WRWSM      0x00000010  // Write Wait State Minus One
+#define EPI_HB16TIME_RDWSM      0x00000001  // Read Wait State Minus One
+#define EPI_HB16TIME_IRDYDLY_S  24
+#define EPI_HB16TIME_CAPWIDTH_S 12
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_HB8TIME2 register.
+//
+//*****************************************************************************
+#define EPI_HB8TIME2_IRDYDLY_M  0x03000000  // CS1n Input Ready Delay
+#define EPI_HB8TIME2_CAPWIDTH_M 0x00003000  // CS1n Inter-transfer Capture
+                                            // Width
+#define EPI_HB8TIME2_WRWSM      0x00000010  // CS1n Write Wait State Minus One
+#define EPI_HB8TIME2_RDWSM      0x00000001  // CS1n Read Wait State Minus One
+#define EPI_HB8TIME2_IRDYDLY_S  24
+#define EPI_HB8TIME2_CAPWIDTH_S 12
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_HB16TIME2
+// register.
+//
+//*****************************************************************************
+#define EPI_HB16TIME2_IRDYDLY_M 0x03000000  // CS1n Input Ready Delay
+#define EPI_HB16TIME2_PSRAMSZ_M 0x00070000  // PSRAM Row Size
+#define EPI_HB16TIME2_PSRAMSZ_0 0x00000000  // No row size limitation
+#define EPI_HB16TIME2_PSRAMSZ_128B                                            \
+                                0x00010000  // 128 B
+#define EPI_HB16TIME2_PSRAMSZ_256B                                            \
+                                0x00020000  // 256 B
+#define EPI_HB16TIME2_PSRAMSZ_512B                                            \
+                                0x00030000  // 512 B
+#define EPI_HB16TIME2_PSRAMSZ_1KB                                             \
+                                0x00040000  // 1024 B
+#define EPI_HB16TIME2_PSRAMSZ_2KB                                             \
+                                0x00050000  // 2048 B
+#define EPI_HB16TIME2_PSRAMSZ_4KB                                             \
+                                0x00060000  // 4096 B
+#define EPI_HB16TIME2_PSRAMSZ_8KB                                             \
+                                0x00070000  // 8192 B
+#define EPI_HB16TIME2_CAPWIDTH_M                                              \
+                                0x00003000  // CS1n Inter-transfer Capture
+                                            // Width
+#define EPI_HB16TIME2_WRWSM     0x00000010  // CS1n Write Wait State Minus One
+#define EPI_HB16TIME2_RDWSM     0x00000001  // CS1n Read Wait State Minus One
+#define EPI_HB16TIME2_IRDYDLY_S 24
+#define EPI_HB16TIME2_CAPWIDTH_S                                              \
+                                12
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_HB16TIME3
+// register.
+//
+//*****************************************************************************
+#define EPI_HB16TIME3_IRDYDLY_M 0x03000000  // CS2n Input Ready Delay
+#define EPI_HB16TIME3_PSRAMSZ_M 0x00070000  // PSRAM Row Size
+#define EPI_HB16TIME3_PSRAMSZ_0 0x00000000  // No row size limitation
+#define EPI_HB16TIME3_PSRAMSZ_128B                                            \
+                                0x00010000  // 128 B
+#define EPI_HB16TIME3_PSRAMSZ_256B                                            \
+                                0x00020000  // 256 B
+#define EPI_HB16TIME3_PSRAMSZ_512B                                            \
+                                0x00030000  // 512 B
+#define EPI_HB16TIME3_PSRAMSZ_1KB                                             \
+                                0x00040000  // 1024 B
+#define EPI_HB16TIME3_PSRAMSZ_2KB                                             \
+                                0x00050000  // 2048 B
+#define EPI_HB16TIME3_PSRAMSZ_4KB                                             \
+                                0x00060000  // 4096 B
+#define EPI_HB16TIME3_PSRAMSZ_8KB                                             \
+                                0x00070000  // 8192 B
+#define EPI_HB16TIME3_CAPWIDTH_M                                              \
+                                0x00003000  // CS2n Inter-transfer Capture
+                                            // Width
+#define EPI_HB16TIME3_WRWSM     0x00000010  // CS2n Write Wait State Minus One
+#define EPI_HB16TIME3_RDWSM     0x00000001  // CS2n Read Wait State Minus One
+#define EPI_HB16TIME3_IRDYDLY_S 24
+#define EPI_HB16TIME3_CAPWIDTH_S                                              \
+                                12
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_HB8TIME3 register.
+//
+//*****************************************************************************
+#define EPI_HB8TIME3_IRDYDLY_M  0x03000000  // CS2n Input Ready Delay
+#define EPI_HB8TIME3_CAPWIDTH_M 0x00003000  // CS2n Inter-transfer Capture
+                                            // Width
+#define EPI_HB8TIME3_WRWSM      0x00000010  // CS2n Write Wait State Minus One
+#define EPI_HB8TIME3_RDWSM      0x00000001  // CS2n Read Wait State Minus One
+#define EPI_HB8TIME3_IRDYDLY_S  24
+#define EPI_HB8TIME3_CAPWIDTH_S 12
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_HB8TIME4 register.
+//
+//*****************************************************************************
+#define EPI_HB8TIME4_IRDYDLY_M  0x03000000  // CS3n Input Ready Delay
+#define EPI_HB8TIME4_CAPWIDTH_M 0x00003000  // CS3n Inter-transfer Capture
+                                            // Width
+#define EPI_HB8TIME4_WRWSM      0x00000010  // CS3n Write Wait State Minus One
+#define EPI_HB8TIME4_RDWSM      0x00000001  // CS3n Read Wait State Minus One
+#define EPI_HB8TIME4_IRDYDLY_S  24
+#define EPI_HB8TIME4_CAPWIDTH_S 12
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_HB16TIME4
+// register.
+//
+//*****************************************************************************
+#define EPI_HB16TIME4_IRDYDLY_M 0x03000000  // CS3n Input Ready Delay
+#define EPI_HB16TIME4_PSRAMSZ_M 0x00070000  // PSRAM Row Size
+#define EPI_HB16TIME4_PSRAMSZ_0 0x00000000  // No row size limitation
+#define EPI_HB16TIME4_PSRAMSZ_128B                                            \
+                                0x00010000  // 128 B
+#define EPI_HB16TIME4_PSRAMSZ_256B                                            \
+                                0x00020000  // 256 B
+#define EPI_HB16TIME4_PSRAMSZ_512B                                            \
+                                0x00030000  // 512 B
+#define EPI_HB16TIME4_PSRAMSZ_1KB                                             \
+                                0x00040000  // 1024 B
+#define EPI_HB16TIME4_PSRAMSZ_2KB                                             \
+                                0x00050000  // 2048 B
+#define EPI_HB16TIME4_PSRAMSZ_4KB                                             \
+                                0x00060000  // 4096 B
+#define EPI_HB16TIME4_PSRAMSZ_8KB                                             \
+                                0x00070000  // 8192 B
+#define EPI_HB16TIME4_CAPWIDTH_M                                              \
+                                0x00003000  // CS3n Inter-transfer Capture
+                                            // Width
+#define EPI_HB16TIME4_WRWSM     0x00000010  // CS3n Write Wait State Minus One
+#define EPI_HB16TIME4_RDWSM     0x00000001  // CS3n Read Wait State Minus One
+#define EPI_HB16TIME4_IRDYDLY_S 24
+#define EPI_HB16TIME4_CAPWIDTH_S                                              \
+                                12
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EPI_O_HBPSRAM register.
+//
+//*****************************************************************************
+#define EPI_HBPSRAM_CR_M        0x001FFFFF  // PSRAM Config Register
+#define EPI_HBPSRAM_CR_S        0
+
+//*****************************************************************************
+//
+// The following definitions are deprecated.
+//
+//*****************************************************************************
+#ifndef DEPRECATED
+
+//*****************************************************************************
+//
+// The following are deprecated defines for the bit fields in the EPI_O_FIFOLVL
+// register.
+//
+//*****************************************************************************
+#define EPI_FIFOLVL_WRFIFO_1_4  0x00000020  // Trigger when there are up to 3
+                                            // spaces available in the WFIFO
+#define EPI_FIFOLVL_WRFIFO_1_2  0x00000030  // Trigger when there are up to 2
+                                            // spaces available in the WFIFO
+#define EPI_FIFOLVL_WRFIFO_3_4  0x00000040  // Trigger when there is 1 space
+                                            // available in the WFIFO
+#define EPI_FIFOLVL_RDFIFO_1_8  0x00000001  // Trigger when there are 1 or more
+                                            // entries in the NBRFIFO
+#define EPI_FIFOLVL_RDFIFO_1_4  0x00000002  // Trigger when there are 2 or more
+                                            // entries in the NBRFIFO
+#define EPI_FIFOLVL_RDFIFO_1_2  0x00000003  // Trigger when there are 4 or more
+                                            // entries in the NBRFIFO
+#define EPI_FIFOLVL_RDFIFO_3_4  0x00000004  // Trigger when there are 6 or more
+                                            // entries in the NBRFIFO
+#define EPI_FIFOLVL_RDFIFO_7_8  0x00000005  // Trigger when there are 7 or more
+                                            // entries in the NBRFIFO
+#define EPI_FIFOLVL_RDFIFO_FULL 0x00000006  // Trigger when there are 8 entries
+                                            // in the NBRFIFO
+
+#endif
+
+#endif // __HW_EPI_H__

+ 49 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_fan.h

@@ -0,0 +1,49 @@
+//*****************************************************************************
+//
+// hw_fan.h - Macros used when accessing the fan control hardware.
+//
+// Copyright (c) 2010-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Firmware Development Package.
+//
+//*****************************************************************************
+
+#ifndef __HW_FAN_H__
+#define __HW_FAN_H__
+
+//*****************************************************************************
+//
+// The following are defines for the Fan Control register offsets.
+//
+//*****************************************************************************
+
+#endif // __HW_FAN_H__

+ 625 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_flash.h

@@ -0,0 +1,625 @@
+//*****************************************************************************
+//
+// hw_flash.h - Macros used when accessing the flash controller.
+//
+// Copyright (c) 2005-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Firmware Development Package.
+//
+//*****************************************************************************
+
+#ifndef __HW_FLASH_H__
+#define __HW_FLASH_H__
+
+//*****************************************************************************
+//
+// The following are defines for the FLASH register offsets.
+//
+//*****************************************************************************
+#define FLASH_FMA               0x400FD000  // Flash Memory Address
+#define FLASH_FMD               0x400FD004  // Flash Memory Data
+#define FLASH_FMC               0x400FD008  // Flash Memory Control
+#define FLASH_FCRIS             0x400FD00C  // Flash Controller Raw Interrupt
+                                            // Status
+#define FLASH_FCIM              0x400FD010  // Flash Controller Interrupt Mask
+#define FLASH_FCMISC            0x400FD014  // Flash Controller Masked
+                                            // Interrupt Status and Clear
+#define FLASH_FMC2              0x400FD020  // Flash Memory Control 2
+#define FLASH_FWBVAL            0x400FD030  // Flash Write Buffer Valid
+#define FLASH_FLPEKEY           0x400FD03C  // Flash Program/Erase Key
+#define FLASH_FWBN              0x400FD100  // Flash Write Buffer n
+#define FLASH_PP                0x400FDFC0  // Flash Peripheral Properties
+#define FLASH_FSIZE             0x400FDFC0  // Flash Size
+#define FLASH_SSIZE             0x400FDFC4  // SRAM Size
+#define FLASH_CONF              0x400FDFC8  // Flash Configuration Register
+#define FLASH_ROMSWMAP          0x400FDFCC  // ROM Software Map
+#define FLASH_DMASZ             0x400FDFD0  // Flash DMA Address Size
+#define FLASH_DMAST             0x400FDFD4  // Flash DMA Starting Address
+#define FLASH_RVP               0x400FE0D4  // Reset Vector Pointer
+#define FLASH_RMCTL             0x400FE0F0  // ROM Control
+#define FLASH_BOOTCFG           0x400FE1D0  // Boot Configuration
+#define FLASH_USERREG0          0x400FE1E0  // User Register 0
+#define FLASH_USERREG1          0x400FE1E4  // User Register 1
+#define FLASH_USERREG2          0x400FE1E8  // User Register 2
+#define FLASH_USERREG3          0x400FE1EC  // User Register 3
+#define FLASH_FMPRE0            0x400FE200  // Flash Memory Protection Read
+                                            // Enable 0
+#define FLASH_FMPRE1            0x400FE204  // Flash Memory Protection Read
+                                            // Enable 1
+#define FLASH_FMPRE2            0x400FE208  // Flash Memory Protection Read
+                                            // Enable 2
+#define FLASH_FMPRE3            0x400FE20C  // Flash Memory Protection Read
+                                            // Enable 3
+#define FLASH_FMPRE4            0x400FE210  // Flash Memory Protection Read
+                                            // Enable 4
+#define FLASH_FMPRE5            0x400FE214  // Flash Memory Protection Read
+                                            // Enable 5
+#define FLASH_FMPRE6            0x400FE218  // Flash Memory Protection Read
+                                            // Enable 6
+#define FLASH_FMPRE7            0x400FE21C  // Flash Memory Protection Read
+                                            // Enable 7
+#define FLASH_FMPRE8            0x400FE220  // Flash Memory Protection Read
+                                            // Enable 8
+#define FLASH_FMPRE9            0x400FE224  // Flash Memory Protection Read
+                                            // Enable 9
+#define FLASH_FMPRE10           0x400FE228  // Flash Memory Protection Read
+                                            // Enable 10
+#define FLASH_FMPRE11           0x400FE22C  // Flash Memory Protection Read
+                                            // Enable 11
+#define FLASH_FMPRE12           0x400FE230  // Flash Memory Protection Read
+                                            // Enable 12
+#define FLASH_FMPRE13           0x400FE234  // Flash Memory Protection Read
+                                            // Enable 13
+#define FLASH_FMPRE14           0x400FE238  // Flash Memory Protection Read
+                                            // Enable 14
+#define FLASH_FMPRE15           0x400FE23C  // Flash Memory Protection Read
+                                            // Enable 15
+#define FLASH_FMPPE0            0x400FE400  // Flash Memory Protection Program
+                                            // Enable 0
+#define FLASH_FMPPE1            0x400FE404  // Flash Memory Protection Program
+                                            // Enable 1
+#define FLASH_FMPPE2            0x400FE408  // Flash Memory Protection Program
+                                            // Enable 2
+#define FLASH_FMPPE3            0x400FE40C  // Flash Memory Protection Program
+                                            // Enable 3
+#define FLASH_FMPPE4            0x400FE410  // Flash Memory Protection Program
+                                            // Enable 4
+#define FLASH_FMPPE5            0x400FE414  // Flash Memory Protection Program
+                                            // Enable 5
+#define FLASH_FMPPE6            0x400FE418  // Flash Memory Protection Program
+                                            // Enable 6
+#define FLASH_FMPPE7            0x400FE41C  // Flash Memory Protection Program
+                                            // Enable 7
+#define FLASH_FMPPE8            0x400FE420  // Flash Memory Protection Program
+                                            // Enable 8
+#define FLASH_FMPPE9            0x400FE424  // Flash Memory Protection Program
+                                            // Enable 9
+#define FLASH_FMPPE10           0x400FE428  // Flash Memory Protection Program
+                                            // Enable 10
+#define FLASH_FMPPE11           0x400FE42C  // Flash Memory Protection Program
+                                            // Enable 11
+#define FLASH_FMPPE12           0x400FE430  // Flash Memory Protection Program
+                                            // Enable 12
+#define FLASH_FMPPE13           0x400FE434  // Flash Memory Protection Program
+                                            // Enable 13
+#define FLASH_FMPPE14           0x400FE438  // Flash Memory Protection Program
+                                            // Enable 14
+#define FLASH_FMPPE15           0x400FE43C  // Flash Memory Protection Program
+                                            // Enable 15
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FMA register.
+//
+//*****************************************************************************
+#define FLASH_FMA_OFFSET_M      0x000FFFFF  // Address Offset
+#define FLASH_FMA_OFFSET_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FMD register.
+//
+//*****************************************************************************
+#define FLASH_FMD_DATA_M        0xFFFFFFFF  // Data Value
+#define FLASH_FMD_DATA_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FMC register.
+//
+//*****************************************************************************
+#define FLASH_FMC_WRKEY         0xA4420000  // FLASH write key
+#define FLASH_FMC_COMT          0x00000008  // Commit Register Value
+#define FLASH_FMC_MERASE        0x00000004  // Mass Erase Flash Memory
+#define FLASH_FMC_ERASE         0x00000002  // Erase a Page of Flash Memory
+#define FLASH_FMC_WRITE         0x00000001  // Write a Word into Flash Memory
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FCRIS register.
+//
+//*****************************************************************************
+#define FLASH_FCRIS_PROGRIS     0x00002000  // Program Verify Error Raw
+                                            // Interrupt Status
+#define FLASH_FCRIS_ERRIS       0x00000800  // Erase Verify Error Raw Interrupt
+                                            // Status
+#define FLASH_FCRIS_INVDRIS     0x00000400  // Invalid Data Raw Interrupt
+                                            // Status
+#define FLASH_FCRIS_VOLTRIS     0x00000200  // Pump Voltage Raw Interrupt
+                                            // Status
+#define FLASH_FCRIS_ERIS        0x00000004  // EEPROM Raw Interrupt Status
+#define FLASH_FCRIS_PRIS        0x00000002  // Programming Raw Interrupt Status
+#define FLASH_FCRIS_ARIS        0x00000001  // Access Raw Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FCIM register.
+//
+//*****************************************************************************
+#define FLASH_FCIM_PROGMASK     0x00002000  // PROGVER Interrupt Mask
+#define FLASH_FCIM_ERMASK       0x00000800  // ERVER Interrupt Mask
+#define FLASH_FCIM_INVDMASK     0x00000400  // Invalid Data Interrupt Mask
+#define FLASH_FCIM_VOLTMASK     0x00000200  // VOLT Interrupt Mask
+#define FLASH_FCIM_EMASK        0x00000004  // EEPROM Interrupt Mask
+#define FLASH_FCIM_PMASK        0x00000002  // Programming Interrupt Mask
+#define FLASH_FCIM_AMASK        0x00000001  // Access Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FCMISC register.
+//
+//*****************************************************************************
+#define FLASH_FCMISC_PROGMISC   0x00002000  // PROGVER Masked Interrupt Status
+                                            // and Clear
+#define FLASH_FCMISC_ERMISC     0x00000800  // ERVER Masked Interrupt Status
+                                            // and Clear
+#define FLASH_FCMISC_INVDMISC   0x00000400  // Invalid Data Masked Interrupt
+                                            // Status and Clear
+#define FLASH_FCMISC_VOLTMISC   0x00000200  // VOLT Masked Interrupt Status and
+                                            // Clear
+#define FLASH_FCMISC_EMISC      0x00000004  // EEPROM Masked Interrupt Status
+                                            // and Clear
+#define FLASH_FCMISC_PMISC      0x00000002  // Programming Masked Interrupt
+                                            // Status and Clear
+#define FLASH_FCMISC_AMISC      0x00000001  // Access Masked Interrupt Status
+                                            // and Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FMC2 register.
+//
+//*****************************************************************************
+#define FLASH_FMC2_WRKEY        0xA4420000  // FLASH write key
+#define FLASH_FMC2_WRBUF        0x00000001  // Buffered Flash Memory Write
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FWBVAL register.
+//
+//*****************************************************************************
+#define FLASH_FWBVAL_FWB_M      0xFFFFFFFF  // Flash Memory Write Buffer
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FLPEKEY register.
+//
+//*****************************************************************************
+#define FLASH_FLPEKEY_PEKEY_M   0x0000FFFF  // Key Value
+#define FLASH_FLPEKEY_PEKEY_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FWBN register.
+//
+//*****************************************************************************
+#define FLASH_FWBN_DATA_M       0xFFFFFFFF  // Data
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_PP register.
+//
+//*****************************************************************************
+#define FLASH_PP_PFC            0x40000000  // Prefetch Buffer Mode
+#define FLASH_PP_FMM            0x20000000  // Flash Mirror Mode
+#define FLASH_PP_DFA            0x10000000  // DMA Flash Access
+#define FLASH_PP_EESS_M         0x00780000  // EEPROM Sector Size of the
+                                            // physical bank
+#define FLASH_PP_EESS_1KB       0x00000000  // 1 KB
+#define FLASH_PP_EESS_2KB       0x00080000  // 2 KB
+#define FLASH_PP_EESS_4KB       0x00100000  // 4 KB
+#define FLASH_PP_EESS_8KB       0x00180000  // 8 KB
+#define FLASH_PP_MAINSS_M       0x00070000  // Flash Sector Size of the
+                                            // physical bank
+#define FLASH_PP_MAINSS_1KB     0x00000000  // 1 KB
+#define FLASH_PP_MAINSS_2KB     0x00010000  // 2 KB
+#define FLASH_PP_MAINSS_4KB     0x00020000  // 4 KB
+#define FLASH_PP_MAINSS_8KB     0x00030000  // 8 KB
+#define FLASH_PP_MAINSS_16KB    0x00040000  // 16 KB
+#define FLASH_PP_SIZE_M         0x0000FFFF  // Flash Size
+#define FLASH_PP_SIZE_512KB     0x000000FF  // 512 KB of Flash
+#define FLASH_PP_SIZE_1MB       0x000001FF  // 1024 KB of Flash
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FSIZE register.
+//
+//*****************************************************************************
+#define FLASH_FSIZE_SIZE_M      0x0000FFFF  // Flash Size
+#define FLASH_FSIZE_SIZE_32KB   0x0000000F  // 32 KB of Flash
+#define FLASH_FSIZE_SIZE_64KB   0x0000001F  // 64 KB of Flash
+#define FLASH_FSIZE_SIZE_128KB  0x0000003F  // 128 KB of Flash
+#define FLASH_FSIZE_SIZE_256KB  0x0000007F  // 256 KB of Flash
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_SSIZE register.
+//
+//*****************************************************************************
+#define FLASH_SSIZE_SIZE_M      0x0000FFFF  // SRAM Size
+#define FLASH_SSIZE_SIZE_12KB   0x0000002F  // 12 KB of SRAM
+#define FLASH_SSIZE_SIZE_24KB   0x0000005F  // 24 KB of SRAM
+#define FLASH_SSIZE_SIZE_32KB   0x0000007F  // 32 KB of SRAM
+#define FLASH_SSIZE_SIZE_256KB  0x000003FF  // 256 KB of SRAM
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_CONF register.
+//
+//*****************************************************************************
+#define FLASH_CONF_FMME         0x40000000  // Flash Mirror Mode Enable
+#define FLASH_CONF_SPFE         0x20000000  // Single Prefetch Mode Enable
+#define FLASH_CONF_CLRTV        0x00100000  // Clear Valid Tags
+#define FLASH_CONF_FPFON        0x00020000  // Force Prefetch On
+#define FLASH_CONF_FPFOFF       0x00010000  // Force Prefetch Off
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_ROMSWMAP register.
+//
+//*****************************************************************************
+#define FLASH_ROMSWMAP_SAFERTOS 0x00000001  // SafeRTOS Present
+#define FLASH_ROMSWMAP_SW0EN_M  0x00000003  // ROM SW Region 0 Availability
+#define FLASH_ROMSWMAP_SW0EN_NOTVIS                                           \
+                                0x00000000  // Software region not available to
+                                            // the core
+#define FLASH_ROMSWMAP_SW0EN_CORE                                             \
+                                0x00000001  // Region available to core
+#define FLASH_ROMSWMAP_SW1EN_M  0x0000000C  // ROM SW Region 1 Availability
+#define FLASH_ROMSWMAP_SW1EN_NOTVIS                                           \
+                                0x00000000  // Software region not available to
+                                            // the core
+#define FLASH_ROMSWMAP_SW1EN_CORE                                             \
+                                0x00000004  // Region available to core
+#define FLASH_ROMSWMAP_SW2EN_M  0x00000030  // ROM SW Region 2 Availability
+#define FLASH_ROMSWMAP_SW2EN_NOTVIS                                           \
+                                0x00000000  // Software region not available to
+                                            // the core
+#define FLASH_ROMSWMAP_SW2EN_CORE                                             \
+                                0x00000010  // Region available to core
+#define FLASH_ROMSWMAP_SW3EN_M  0x000000C0  // ROM SW Region 3 Availability
+#define FLASH_ROMSWMAP_SW3EN_NOTVIS                                           \
+                                0x00000000  // Software region not available to
+                                            // the core
+#define FLASH_ROMSWMAP_SW3EN_CORE                                             \
+                                0x00000040  // Region available to core
+#define FLASH_ROMSWMAP_SW4EN_M  0x00000300  // ROM SW Region 4 Availability
+#define FLASH_ROMSWMAP_SW4EN_NOTVIS                                           \
+                                0x00000000  // Software region not available to
+                                            // the core
+#define FLASH_ROMSWMAP_SW4EN_CORE                                             \
+                                0x00000100  // Region available to core
+#define FLASH_ROMSWMAP_SW5EN_M  0x00000C00  // ROM SW Region 5 Availability
+#define FLASH_ROMSWMAP_SW5EN_NOTVIS                                           \
+                                0x00000000  // Software region not available to
+                                            // the core
+#define FLASH_ROMSWMAP_SW5EN_CORE                                             \
+                                0x00000400  // Region available to core
+#define FLASH_ROMSWMAP_SW6EN_M  0x00003000  // ROM SW Region 6 Availability
+#define FLASH_ROMSWMAP_SW6EN_NOTVIS                                           \
+                                0x00000000  // Software region not available to
+                                            // the core
+#define FLASH_ROMSWMAP_SW6EN_CORE                                             \
+                                0x00001000  // Region available to core
+#define FLASH_ROMSWMAP_SW7EN_M  0x0000C000  // ROM SW Region 7 Availability
+#define FLASH_ROMSWMAP_SW7EN_NOTVIS                                           \
+                                0x00000000  // Software region not available to
+                                            // the core
+#define FLASH_ROMSWMAP_SW7EN_CORE                                             \
+                                0x00004000  // Region available to core
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_DMASZ register.
+//
+//*****************************************************************************
+#define FLASH_DMASZ_SIZE_M      0x0003FFFF  // uDMA-accessible Memory Size
+#define FLASH_DMASZ_SIZE_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_DMAST register.
+//
+//*****************************************************************************
+#define FLASH_DMAST_ADDR_M      0x1FFFF800  // Contains the starting address of
+                                            // the flash region accessible by
+                                            // uDMA if the FLASHPP register DFA
+                                            // bit is set
+#define FLASH_DMAST_ADDR_S      11
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_RVP register.
+//
+//*****************************************************************************
+#define FLASH_RVP_RV_M          0xFFFFFFFF  // Reset Vector Pointer Address
+#define FLASH_RVP_RV_S          0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_RMCTL register.
+//
+//*****************************************************************************
+#define FLASH_RMCTL_BA          0x00000001  // Boot Alias
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_BOOTCFG register.
+//
+//*****************************************************************************
+#define FLASH_BOOTCFG_NW        0x80000000  // Not Written
+#define FLASH_BOOTCFG_PORT_M    0x0000E000  // Boot GPIO Port
+#define FLASH_BOOTCFG_PORT_A    0x00000000  // Port A
+#define FLASH_BOOTCFG_PORT_B    0x00002000  // Port B
+#define FLASH_BOOTCFG_PORT_C    0x00004000  // Port C
+#define FLASH_BOOTCFG_PORT_D    0x00006000  // Port D
+#define FLASH_BOOTCFG_PORT_E    0x00008000  // Port E
+#define FLASH_BOOTCFG_PORT_F    0x0000A000  // Port F
+#define FLASH_BOOTCFG_PORT_G    0x0000C000  // Port G
+#define FLASH_BOOTCFG_PORT_H    0x0000E000  // Port H
+#define FLASH_BOOTCFG_PIN_M     0x00001C00  // Boot GPIO Pin
+#define FLASH_BOOTCFG_PIN_0     0x00000000  // Pin 0
+#define FLASH_BOOTCFG_PIN_1     0x00000400  // Pin 1
+#define FLASH_BOOTCFG_PIN_2     0x00000800  // Pin 2
+#define FLASH_BOOTCFG_PIN_3     0x00000C00  // Pin 3
+#define FLASH_BOOTCFG_PIN_4     0x00001000  // Pin 4
+#define FLASH_BOOTCFG_PIN_5     0x00001400  // Pin 5
+#define FLASH_BOOTCFG_PIN_6     0x00001800  // Pin 6
+#define FLASH_BOOTCFG_PIN_7     0x00001C00  // Pin 7
+#define FLASH_BOOTCFG_POL       0x00000200  // Boot GPIO Polarity
+#define FLASH_BOOTCFG_EN        0x00000100  // Boot GPIO Enable
+#define FLASH_BOOTCFG_KEY       0x00000010  // KEY Select
+#define FLASH_BOOTCFG_DBG1      0x00000002  // Debug Control 1
+#define FLASH_BOOTCFG_DBG0      0x00000001  // Debug Control 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_USERREG0 register.
+//
+//*****************************************************************************
+#define FLASH_USERREG0_DATA_M   0xFFFFFFFF  // User Data
+#define FLASH_USERREG0_DATA_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_USERREG1 register.
+//
+//*****************************************************************************
+#define FLASH_USERREG1_DATA_M   0xFFFFFFFF  // User Data
+#define FLASH_USERREG1_DATA_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_USERREG2 register.
+//
+//*****************************************************************************
+#define FLASH_USERREG2_DATA_M   0xFFFFFFFF  // User Data
+#define FLASH_USERREG2_DATA_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_USERREG3 register.
+//
+//*****************************************************************************
+#define FLASH_USERREG3_DATA_M   0xFFFFFFFF  // User Data
+#define FLASH_USERREG3_DATA_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FMPRE8 register.
+//
+//*****************************************************************************
+#define FLASH_FMPRE8_READ_ENABLE_M                                            \
+                                0xFFFFFFFF  // Flash Read Enable
+#define FLASH_FMPRE8_READ_ENABLE_S                                            \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FMPRE9 register.
+//
+//*****************************************************************************
+#define FLASH_FMPRE9_READ_ENABLE_M                                            \
+                                0xFFFFFFFF  // Flash Read Enable
+#define FLASH_FMPRE9_READ_ENABLE_S                                            \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FMPRE10 register.
+//
+//*****************************************************************************
+#define FLASH_FMPRE10_READ_ENABLE_M                                           \
+                                0xFFFFFFFF  // Flash Read Enable
+#define FLASH_FMPRE10_READ_ENABLE_S                                           \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FMPRE11 register.
+//
+//*****************************************************************************
+#define FLASH_FMPRE11_READ_ENABLE_M                                           \
+                                0xFFFFFFFF  // Flash Read Enable
+#define FLASH_FMPRE11_READ_ENABLE_S                                           \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FMPRE12 register.
+//
+//*****************************************************************************
+#define FLASH_FMPRE12_READ_ENABLE_M                                           \
+                                0xFFFFFFFF  // Flash Read Enable
+#define FLASH_FMPRE12_READ_ENABLE_S                                           \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FMPRE13 register.
+//
+//*****************************************************************************
+#define FLASH_FMPRE13_READ_ENABLE_M                                           \
+                                0xFFFFFFFF  // Flash Read Enable
+#define FLASH_FMPRE13_READ_ENABLE_S                                           \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FMPRE14 register.
+//
+//*****************************************************************************
+#define FLASH_FMPRE14_READ_ENABLE_M                                           \
+                                0xFFFFFFFF  // Flash Read Enable
+#define FLASH_FMPRE14_READ_ENABLE_S                                           \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FMPRE15 register.
+//
+//*****************************************************************************
+#define FLASH_FMPRE15_READ_ENABLE_M                                           \
+                                0xFFFFFFFF  // Flash Read Enable
+#define FLASH_FMPRE15_READ_ENABLE_S                                           \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FMPPE8 register.
+//
+//*****************************************************************************
+#define FLASH_FMPPE8_PROG_ENABLE_M                                            \
+                                0xFFFFFFFF  // Flash Programming Enable
+#define FLASH_FMPPE8_PROG_ENABLE_S                                            \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FMPPE9 register.
+//
+//*****************************************************************************
+#define FLASH_FMPPE9_PROG_ENABLE_M                                            \
+                                0xFFFFFFFF  // Flash Programming Enable
+#define FLASH_FMPPE9_PROG_ENABLE_S                                            \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FMPPE10 register.
+//
+//*****************************************************************************
+#define FLASH_FMPPE10_PROG_ENABLE_M                                           \
+                                0xFFFFFFFF  // Flash Programming Enable
+#define FLASH_FMPPE10_PROG_ENABLE_S                                           \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FMPPE11 register.
+//
+//*****************************************************************************
+#define FLASH_FMPPE11_PROG_ENABLE_M                                           \
+                                0xFFFFFFFF  // Flash Programming Enable
+#define FLASH_FMPPE11_PROG_ENABLE_S                                           \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FMPPE12 register.
+//
+//*****************************************************************************
+#define FLASH_FMPPE12_PROG_ENABLE_M                                           \
+                                0xFFFFFFFF  // Flash Programming Enable
+#define FLASH_FMPPE12_PROG_ENABLE_S                                           \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FMPPE13 register.
+//
+//*****************************************************************************
+#define FLASH_FMPPE13_PROG_ENABLE_M                                           \
+                                0xFFFFFFFF  // Flash Programming Enable
+#define FLASH_FMPPE13_PROG_ENABLE_S                                           \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FMPPE14 register.
+//
+//*****************************************************************************
+#define FLASH_FMPPE14_PROG_ENABLE_M                                           \
+                                0xFFFFFFFF  // Flash Programming Enable
+#define FLASH_FMPPE14_PROG_ENABLE_S                                           \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FMPPE15 register.
+//
+//*****************************************************************************
+#define FLASH_FMPPE15_PROG_ENABLE_M                                           \
+                                0xFFFFFFFF  // Flash Programming Enable
+#define FLASH_FMPPE15_PROG_ENABLE_S                                           \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the erase size of the FLASH block that is
+// erased by an erase operation, and the protect size is the size of the FLASH
+// block that is protected by each protection register.
+//
+//*****************************************************************************
+#define FLASH_PROTECT_SIZE      0x00000800
+#define FLASH_ERASE_SIZE        0x00000400
+
+#endif // __HW_FLASH_H__

+ 213 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_gpio.h

@@ -0,0 +1,213 @@
+//*****************************************************************************
+//
+// hw_gpio.h - Defines and Macros for GPIO hardware.
+//
+// Copyright (c) 2005-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Firmware Development Package.
+//
+//*****************************************************************************
+
+#ifndef __HW_GPIO_H__
+#define __HW_GPIO_H__
+
+//*****************************************************************************
+//
+// The following are defines for the GPIO register offsets.
+//
+//*****************************************************************************
+#define GPIO_O_DATA             0x00000000  // GPIO Data
+#define GPIO_O_DIR              0x00000400  // GPIO Direction
+#define GPIO_O_IS               0x00000404  // GPIO Interrupt Sense
+#define GPIO_O_IBE              0x00000408  // GPIO Interrupt Both Edges
+#define GPIO_O_IEV              0x0000040C  // GPIO Interrupt Event
+#define GPIO_O_IM               0x00000410  // GPIO Interrupt Mask
+#define GPIO_O_RIS              0x00000414  // GPIO Raw Interrupt Status
+#define GPIO_O_MIS              0x00000418  // GPIO Masked Interrupt Status
+#define GPIO_O_ICR              0x0000041C  // GPIO Interrupt Clear
+#define GPIO_O_AFSEL            0x00000420  // GPIO Alternate Function Select
+#define GPIO_O_DR2R             0x00000500  // GPIO 2-mA Drive Select
+#define GPIO_O_DR4R             0x00000504  // GPIO 4-mA Drive Select
+#define GPIO_O_DR8R             0x00000508  // GPIO 8-mA Drive Select
+#define GPIO_O_ODR              0x0000050C  // GPIO Open Drain Select
+#define GPIO_O_PUR              0x00000510  // GPIO Pull-Up Select
+#define GPIO_O_PDR              0x00000514  // GPIO Pull-Down Select
+#define GPIO_O_SLR              0x00000518  // GPIO Slew Rate Control Select
+#define GPIO_O_DEN              0x0000051C  // GPIO Digital Enable
+#define GPIO_O_LOCK             0x00000520  // GPIO Lock
+#define GPIO_O_CR               0x00000524  // GPIO Commit
+#define GPIO_O_AMSEL            0x00000528  // GPIO Analog Mode Select
+#define GPIO_O_PCTL             0x0000052C  // GPIO Port Control
+#define GPIO_O_ADCCTL           0x00000530  // GPIO ADC Control
+#define GPIO_O_DMACTL           0x00000534  // GPIO DMA Control
+#define GPIO_O_SI               0x00000538  // GPIO Select Interrupt
+#define GPIO_O_DR12R            0x0000053C  // GPIO 12-mA Drive Select
+#define GPIO_O_WAKEPEN          0x00000540  // GPIO Wake Pin Enable
+#define GPIO_O_WAKELVL          0x00000544  // GPIO Wake Level
+#define GPIO_O_WAKESTAT         0x00000548  // GPIO Wake Status
+#define GPIO_O_PP               0x00000FC0  // GPIO Peripheral Property
+#define GPIO_O_PC               0x00000FC4  // GPIO Peripheral Configuration
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_IM register.
+//
+//*****************************************************************************
+#define GPIO_IM_DMAIME          0x00000100  // GPIO uDMA Done Interrupt Mask
+                                            // Enable
+#define GPIO_IM_GPIO_M          0x000000FF  // GPIO Interrupt Mask Enable
+#define GPIO_IM_GPIO_S          0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_RIS register.
+//
+//*****************************************************************************
+#define GPIO_RIS_DMARIS         0x00000100  // GPIO uDMA Done Interrupt Raw
+                                            // Status
+#define GPIO_RIS_GPIO_M         0x000000FF  // GPIO Interrupt Raw Status
+#define GPIO_RIS_GPIO_S         0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_MIS register.
+//
+//*****************************************************************************
+#define GPIO_MIS_DMAMIS         0x00000100  // GPIO uDMA Done Masked Interrupt
+                                            // Status
+#define GPIO_MIS_GPIO_M         0x000000FF  // GPIO Masked Interrupt Status
+#define GPIO_MIS_GPIO_S         0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_ICR register.
+//
+//*****************************************************************************
+#define GPIO_ICR_DMAIC          0x00000100  // GPIO uDMA Interrupt Clear
+#define GPIO_ICR_GPIO_M         0x000000FF  // GPIO Interrupt Clear
+#define GPIO_ICR_GPIO_S         0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_LOCK register.
+//
+//*****************************************************************************
+#define GPIO_LOCK_M             0xFFFFFFFF  // GPIO Lock
+#define GPIO_LOCK_UNLOCKED      0x00000000  // The GPIOCR register is unlocked
+                                            // and may be modified
+#define GPIO_LOCK_LOCKED        0x00000001  // The GPIOCR register is locked
+                                            // and may not be modified
+#define GPIO_LOCK_KEY           0x4C4F434B  // Unlocks the GPIO_CR register
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_SI register.
+//
+//*****************************************************************************
+#define GPIO_SI_SUM             0x00000001  // Summary Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_DR12R register.
+//
+//*****************************************************************************
+#define GPIO_DR12R_DRV12_M      0x000000FF  // Output Pad 12-mA Drive Enable
+#define GPIO_DR12R_DRV12_12MA   0x00000001  // The corresponding GPIO pin has
+                                            // 12-mA drive. This encoding is
+                                            // only valid if the GPIOPP EDE bit
+                                            // is set and the appropriate
+                                            // GPIOPC EDM bit field is
+                                            // programmed to 0x3
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_WAKEPEN register.
+//
+//*****************************************************************************
+#define GPIO_WAKEPEN_WAKEP4     0x00000010  // P[4] Wake Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_WAKELVL register.
+//
+//*****************************************************************************
+#define GPIO_WAKELVL_WAKELVL4   0x00000010  // P[4] Wake Level
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_WAKESTAT
+// register.
+//
+//*****************************************************************************
+#define GPIO_WAKESTAT_STAT4     0x00000010  // P[4] Wake Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_PP register.
+//
+//*****************************************************************************
+#define GPIO_PP_EDE             0x00000001  // Extended Drive Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_PC register.
+//
+//*****************************************************************************
+#define GPIO_PC_EDM7_M          0x0000C000  // Extended Drive Mode Bit 7
+#define GPIO_PC_EDM6_M          0x00003000  // Extended Drive Mode Bit 6
+#define GPIO_PC_EDM5_M          0x00000C00  // Extended Drive Mode Bit 5
+#define GPIO_PC_EDM4_M          0x00000300  // Extended Drive Mode Bit 4
+#define GPIO_PC_EDM3_M          0x000000C0  // Extended Drive Mode Bit 3
+#define GPIO_PC_EDM2_M          0x00000030  // Extended Drive Mode Bit 2
+#define GPIO_PC_EDM1_M          0x0000000C  // Extended Drive Mode Bit 1
+#define GPIO_PC_EDM0_M          0x00000003  // Extended Drive Mode Bit 0
+#define GPIO_PC_EDM0_DISABLE    0x00000000  // Drive values of 2, 4 and 8 mA
+                                            // are maintained. GPIO n Drive
+                                            // Select (GPIODRnR) registers
+                                            // function as normal
+#define GPIO_PC_EDM0_6MA        0x00000001  // An additional 6 mA option is
+                                            // provided
+#define GPIO_PC_EDM0_PLUS2MA    0x00000003  // A 2 mA driver is always enabled;
+                                            // setting the corresponding
+                                            // GPIODR4R register bit adds 2 mA
+                                            // and setting the corresponding
+                                            // GPIODR8R of GPIODR12R register
+                                            // bit adds an additional 4 mA
+#define GPIO_PC_EDM7_S          14
+#define GPIO_PC_EDM6_S          12
+#define GPIO_PC_EDM5_S          10
+#define GPIO_PC_EDM4_S          8
+#define GPIO_PC_EDM3_S          6
+#define GPIO_PC_EDM2_S          4
+#define GPIO_PC_EDM1_S          2
+
+#endif // __HW_GPIO_H__

+ 483 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_hibernate.h

@@ -0,0 +1,483 @@
+//*****************************************************************************
+//
+// hw_hibernate.h - Defines and Macros for the Hibernation module.
+//
+// Copyright (c) 2007-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Firmware Development Package.
+//
+//*****************************************************************************
+
+#ifndef __HW_HIBERNATE_H__
+#define __HW_HIBERNATE_H__
+
+//*****************************************************************************
+//
+// The following are defines for the Hibernation module register addresses.
+//
+//*****************************************************************************
+#define HIB_RTCC                0x400FC000  // Hibernation RTC Counter
+#define HIB_RTCM0               0x400FC004  // Hibernation RTC Match 0
+#define HIB_RTCLD               0x400FC00C  // Hibernation RTC Load
+#define HIB_CTL                 0x400FC010  // Hibernation Control
+#define HIB_IM                  0x400FC014  // Hibernation Interrupt Mask
+#define HIB_RIS                 0x400FC018  // Hibernation Raw Interrupt Status
+#define HIB_MIS                 0x400FC01C  // Hibernation Masked Interrupt
+                                            // Status
+#define HIB_IC                  0x400FC020  // Hibernation Interrupt Clear
+#define HIB_RTCT                0x400FC024  // Hibernation RTC Trim
+#define HIB_RTCSS               0x400FC028  // Hibernation RTC Sub Seconds
+#define HIB_IO                  0x400FC02C  // Hibernation IO Configuration
+#define HIB_DATA                0x400FC030  // Hibernation Data
+#define HIB_CALCTL              0x400FC300  // Hibernation Calendar Control
+#define HIB_CAL0                0x400FC310  // Hibernation Calendar 0
+#define HIB_CAL1                0x400FC314  // Hibernation Calendar 1
+#define HIB_CALLD0              0x400FC320  // Hibernation Calendar Load 0
+#define HIB_CALLD1              0x400FC324  // Hibernation Calendar Load
+#define HIB_CALM0               0x400FC330  // Hibernation Calendar Match 0
+#define HIB_CALM1               0x400FC334  // Hibernation Calendar Match 1
+#define HIB_LOCK                0x400FC360  // Hibernation Lock
+#define HIB_TPCTL               0x400FC400  // HIB Tamper Control
+#define HIB_TPSTAT              0x400FC404  // HIB Tamper Status
+#define HIB_TPIO                0x400FC410  // HIB Tamper I/O Control
+#define HIB_TPLOG0              0x400FC4E0  // HIB Tamper Log 0
+#define HIB_TPLOG1              0x400FC4E4  // HIB Tamper Log 1
+#define HIB_TPLOG2              0x400FC4E8  // HIB Tamper Log 2
+#define HIB_TPLOG3              0x400FC4EC  // HIB Tamper Log 3
+#define HIB_TPLOG4              0x400FC4F0  // HIB Tamper Log 4
+#define HIB_TPLOG5              0x400FC4F4  // HIB Tamper Log 5
+#define HIB_TPLOG6              0x400FC4F8  // HIB Tamper Log 6
+#define HIB_TPLOG7              0x400FC4FC  // HIB Tamper Log 7
+#define HIB_PP                  0x400FCFC0  // Hibernation Peripheral
+                                            // Properties
+#define HIB_CC                  0x400FCFC8  // Hibernation Clock Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_RTCC register.
+//
+//*****************************************************************************
+#define HIB_RTCC_M              0xFFFFFFFF  // RTC Counter
+#define HIB_RTCC_S              0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_RTCM0 register.
+//
+//*****************************************************************************
+#define HIB_RTCM0_M             0xFFFFFFFF  // RTC Match 0
+#define HIB_RTCM0_S             0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_RTCLD register.
+//
+//*****************************************************************************
+#define HIB_RTCLD_M             0xFFFFFFFF  // RTC Load
+#define HIB_RTCLD_S             0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_CTL register.
+//
+//*****************************************************************************
+#define HIB_CTL_WRC             0x80000000  // Write Complete/Capable
+#define HIB_CTL_RETCLR          0x40000000  // GPIO Retention/Clear
+#define HIB_CTL_OSCSEL          0x00080000  // Oscillator Select
+#define HIB_CTL_OSCDRV          0x00020000  // Oscillator Drive Capability
+#define HIB_CTL_OSCBYP          0x00010000  // Oscillator Bypass
+#define HIB_CTL_VBATSEL_M       0x00006000  // Select for Low-Battery
+                                            // Comparator
+#define HIB_CTL_VBATSEL_1_9V    0x00000000  // 1.9 Volts
+#define HIB_CTL_VBATSEL_2_1V    0x00002000  // 2.1 Volts (default)
+#define HIB_CTL_VBATSEL_2_3V    0x00004000  // 2.3 Volts
+#define HIB_CTL_VBATSEL_2_5V    0x00006000  // 2.5 Volts
+#define HIB_CTL_BATCHK          0x00000400  // Check Battery Status
+#define HIB_CTL_BATWKEN         0x00000200  // Wake on Low Battery
+#define HIB_CTL_VDD3ON          0x00000100  // VDD Powered
+#define HIB_CTL_VABORT          0x00000080  // Power Cut Abort Enable
+#define HIB_CTL_CLK32EN         0x00000040  // Clocking Enable
+#define HIB_CTL_PINWEN          0x00000010  // External Wake Pin Enable
+#define HIB_CTL_RTCWEN          0x00000008  // RTC Wake-up Enable
+#define HIB_CTL_HIBREQ          0x00000002  // Hibernation Request
+#define HIB_CTL_RTCEN           0x00000001  // RTC Timer Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_IM register.
+//
+//*****************************************************************************
+#define HIB_IM_VDDFAIL          0x00000080  // VDD Fail Interrupt Mask
+#define HIB_IM_RSTWK            0x00000040  // Reset Pad I/O Wake-Up Interrupt
+                                            // Mask
+#define HIB_IM_PADIOWK          0x00000020  // Pad I/O Wake-Up Interrupt Mask
+#define HIB_IM_WC               0x00000010  // External Write Complete/Capable
+                                            // Interrupt Mask
+#define HIB_IM_EXTW             0x00000008  // External Wake-Up Interrupt Mask
+#define HIB_IM_LOWBAT           0x00000004  // Low Battery Voltage Interrupt
+                                            // Mask
+#define HIB_IM_RTCALT0          0x00000001  // RTC Alert 0 Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_RIS register.
+//
+//*****************************************************************************
+#define HIB_RIS_VDDFAIL         0x00000080  // VDD Fail Raw Interrupt Status
+#define HIB_RIS_RSTWK           0x00000040  // Reset Pad I/O Wake-Up Raw
+                                            // Interrupt Status
+#define HIB_RIS_PADIOWK         0x00000020  // Pad I/O Wake-Up Raw Interrupt
+                                            // Status
+#define HIB_RIS_WC              0x00000010  // Write Complete/Capable Raw
+                                            // Interrupt Status
+#define HIB_RIS_EXTW            0x00000008  // External Wake-Up Raw Interrupt
+                                            // Status
+#define HIB_RIS_LOWBAT          0x00000004  // Low Battery Voltage Raw
+                                            // Interrupt Status
+#define HIB_RIS_RTCALT0         0x00000001  // RTC Alert 0 Raw Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_MIS register.
+//
+//*****************************************************************************
+#define HIB_MIS_VDDFAIL         0x00000080  // VDD Fail Interrupt Mask
+#define HIB_MIS_RSTWK           0x00000040  // Reset Pad I/O Wake-Up Interrupt
+                                            // Mask
+#define HIB_MIS_PADIOWK         0x00000020  // Pad I/O Wake-Up Interrupt Mask
+#define HIB_MIS_WC              0x00000010  // Write Complete/Capable Masked
+                                            // Interrupt Status
+#define HIB_MIS_EXTW            0x00000008  // External Wake-Up Masked
+                                            // Interrupt Status
+#define HIB_MIS_LOWBAT          0x00000004  // Low Battery Voltage Masked
+                                            // Interrupt Status
+#define HIB_MIS_RTCALT0         0x00000001  // RTC Alert 0 Masked Interrupt
+                                            // Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_IC register.
+//
+//*****************************************************************************
+#define HIB_IC_VDDFAIL          0x00000080  // VDD Fail Interrupt Clear
+#define HIB_IC_RSTWK            0x00000040  // Reset Pad I/O Wake-Up Interrupt
+                                            // Clear
+#define HIB_IC_PADIOWK          0x00000020  // Pad I/O Wake-Up Interrupt Clear
+#define HIB_IC_WC               0x00000010  // Write Complete/Capable Interrupt
+                                            // Clear
+#define HIB_IC_EXTW             0x00000008  // External Wake-Up Interrupt Clear
+#define HIB_IC_LOWBAT           0x00000004  // Low Battery Voltage Interrupt
+                                            // Clear
+#define HIB_IC_RTCALT0          0x00000001  // RTC Alert0 Masked Interrupt
+                                            // Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_RTCT register.
+//
+//*****************************************************************************
+#define HIB_RTCT_TRIM_M         0x0000FFFF  // RTC Trim Value
+#define HIB_RTCT_TRIM_S         0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_RTCSS register.
+//
+//*****************************************************************************
+#define HIB_RTCSS_RTCSSM_M      0x7FFF0000  // RTC Sub Seconds Match
+#define HIB_RTCSS_RTCSSC_M      0x00007FFF  // RTC Sub Seconds Count
+#define HIB_RTCSS_RTCSSM_S      16
+#define HIB_RTCSS_RTCSSC_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_IO register.
+//
+//*****************************************************************************
+#define HIB_IO_IOWRC            0x80000000  // I/O Write Complete
+#define HIB_IO_WURSTEN          0x00000010  // Reset Wake Source Enable
+#define HIB_IO_WUUNLK           0x00000001  // I/O Wake Pad Configuration
+                                            // Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_DATA register.
+//
+//*****************************************************************************
+#define HIB_DATA_RTD_M          0xFFFFFFFF  // Hibernation Module NV Data
+#define HIB_DATA_RTD_S          0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_CALCTL register.
+//
+//*****************************************************************************
+#define HIB_CALCTL_CAL24        0x00000004  // Calendar Mode
+#define HIB_CALCTL_CALEN        0x00000001  // RTC Calendar/Counter Mode Select
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_CAL0 register.
+//
+//*****************************************************************************
+#define HIB_CAL0_VALID          0x80000000  // Valid Calendar Load
+#define HIB_CAL0_AMPM           0x00400000  // AM/PM Designation
+#define HIB_CAL0_HR_M           0x001F0000  // Hours
+#define HIB_CAL0_MIN_M          0x00003F00  // Minutes
+#define HIB_CAL0_SEC_M          0x0000003F  // Seconds
+#define HIB_CAL0_HR_S           16
+#define HIB_CAL0_MIN_S          8
+#define HIB_CAL0_SEC_S          0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_CAL1 register.
+//
+//*****************************************************************************
+#define HIB_CAL1_VALID          0x80000000  // Valid Calendar Load
+#define HIB_CAL1_DOW_M          0x07000000  // Day of Week
+#define HIB_CAL1_YEAR_M         0x007F0000  // Year Value
+#define HIB_CAL1_MON_M          0x00000F00  // Month
+#define HIB_CAL1_DOM_M          0x0000001F  // Day of Month
+#define HIB_CAL1_DOW_S          24
+#define HIB_CAL1_YEAR_S         16
+#define HIB_CAL1_MON_S          8
+#define HIB_CAL1_DOM_S          0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_CALLD0 register.
+//
+//*****************************************************************************
+#define HIB_CALLD0_AMPM         0x00400000  // AM/PM Designation
+#define HIB_CALLD0_HR_M         0x001F0000  // Hours
+#define HIB_CALLD0_MIN_M        0x00003F00  // Minutes
+#define HIB_CALLD0_SEC_M        0x0000003F  // Seconds
+#define HIB_CALLD0_HR_S         16
+#define HIB_CALLD0_MIN_S        8
+#define HIB_CALLD0_SEC_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_CALLD1 register.
+//
+//*****************************************************************************
+#define HIB_CALLD1_DOW_M        0x07000000  // Day of Week
+#define HIB_CALLD1_YEAR_M       0x007F0000  // Year Value
+#define HIB_CALLD1_MON_M        0x00000F00  // Month
+#define HIB_CALLD1_DOM_M        0x0000001F  // Day of Month
+#define HIB_CALLD1_DOW_S        24
+#define HIB_CALLD1_YEAR_S       16
+#define HIB_CALLD1_MON_S        8
+#define HIB_CALLD1_DOM_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_CALM0 register.
+//
+//*****************************************************************************
+#define HIB_CALM0_AMPM          0x00400000  // AM/PM Designation
+#define HIB_CALM0_HR_M          0x001F0000  // Hours
+#define HIB_CALM0_MIN_M         0x00003F00  // Minutes
+#define HIB_CALM0_SEC_M         0x0000003F  // Seconds
+#define HIB_CALM0_HR_S          16
+#define HIB_CALM0_MIN_S         8
+#define HIB_CALM0_SEC_S         0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_CALM1 register.
+//
+//*****************************************************************************
+#define HIB_CALM1_DOM_M         0x0000001F  // Day of Month
+#define HIB_CALM1_DOM_S         0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_LOCK register.
+//
+//*****************************************************************************
+#define HIB_LOCK_HIBLOCK_M      0xFFFFFFFF  // HIbernate Lock
+#define HIB_LOCK_HIBLOCK_KEY    0xA3359554  // Hibernate Lock Key
+#define HIB_LOCK_HIBLOCK_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_TPCTL register.
+//
+//*****************************************************************************
+#define HIB_TPCTL_WAKE          0x00000800  // Wake from Hibernate on a Tamper
+                                            // Event
+#define HIB_TPCTL_MEMCLR_M      0x00000300  // HIB Memory Clear on Tamper Event
+#define HIB_TPCTL_MEMCLR_NONE   0x00000000  // Do not Clear HIB memory on
+                                            // tamper event
+#define HIB_TPCTL_MEMCLR_LOW32  0x00000100  // Clear Lower 32 Bytes of HIB
+                                            // memory on tamper event
+#define HIB_TPCTL_MEMCLR_HIGH32 0x00000200  // Clear upper 32 Bytes of HIB
+                                            // memory on tamper event
+#define HIB_TPCTL_MEMCLR_ALL    0x00000300  // Clear all HIB memory on tamper
+                                            // event
+#define HIB_TPCTL_TPCLR         0x00000010  // Tamper Event Clear
+#define HIB_TPCTL_TPEN          0x00000001  // Tamper Module Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_TPSTAT register.
+//
+//*****************************************************************************
+#define HIB_TPSTAT_STATE_M      0x0000000C  // Tamper Module Status
+#define HIB_TPSTAT_STATE_DISABLED                                             \
+                                0x00000000  // Tamper disabled
+#define HIB_TPSTAT_STATE_CONFIGED                                             \
+                                0x00000004  // Tamper configured
+#define HIB_TPSTAT_STATE_ERROR  0x00000008  // Tamper pin event occurred
+#define HIB_TPSTAT_XOSCST       0x00000002  // External Oscillator Status
+#define HIB_TPSTAT_XOSCFAIL     0x00000001  // External Oscillator Failure
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_TPIO register.
+//
+//*****************************************************************************
+#define HIB_TPIO_GFLTR3         0x08000000  // TMPR3 Glitch Filtering
+#define HIB_TPIO_PUEN3          0x04000000  // TMPR3 Internal Weak Pull-up
+                                            // Enable
+#define HIB_TPIO_LEV3           0x02000000  // TMPR3 Trigger Level
+#define HIB_TPIO_EN3            0x01000000  // TMPR3 Enable
+#define HIB_TPIO_GFLTR2         0x00080000  // TMPR2 Glitch Filtering
+#define HIB_TPIO_PUEN2          0x00040000  // TMPR2 Internal Weak Pull-up
+                                            // Enable
+#define HIB_TPIO_LEV2           0x00020000  // TMPR2 Trigger Level
+#define HIB_TPIO_EN2            0x00010000  // TMPR2 Enable
+#define HIB_TPIO_GFLTR1         0x00000800  // TMPR1 Glitch Filtering
+#define HIB_TPIO_PUEN1          0x00000400  // TMPR1 Internal Weak Pull-up
+                                            // Enable
+#define HIB_TPIO_LEV1           0x00000200  // TMPR1 Trigger Level
+#define HIB_TPIO_EN1            0x00000100  // TMPR1Enable
+#define HIB_TPIO_GFLTR0         0x00000008  // TMPR0 Glitch Filtering
+#define HIB_TPIO_PUEN0          0x00000004  // TMPR0 Internal Weak Pull-up
+                                            // Enable
+#define HIB_TPIO_LEV0           0x00000002  // TMPR0 Trigger Level
+#define HIB_TPIO_EN0            0x00000001  // TMPR0 Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_TPLOG0 register.
+//
+//*****************************************************************************
+#define HIB_TPLOG0_TIME_M       0xFFFFFFFF  // Tamper Log Calendar Information
+#define HIB_TPLOG0_TIME_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_TPLOG1 register.
+//
+//*****************************************************************************
+#define HIB_TPLOG1_XOSC         0x00010000  // Status of external 32
+#define HIB_TPLOG1_TRIG3        0x00000008  // Status of TMPR[3] Trigger
+#define HIB_TPLOG1_TRIG2        0x00000004  // Status of TMPR[2] Trigger
+#define HIB_TPLOG1_TRIG1        0x00000002  // Status of TMPR[1] Trigger
+#define HIB_TPLOG1_TRIG0        0x00000001  // Status of TMPR[0] Trigger
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_TPLOG2 register.
+//
+//*****************************************************************************
+#define HIB_TPLOG2_TIME_M       0xFFFFFFFF  // Tamper Log Calendar Information
+#define HIB_TPLOG2_TIME_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_TPLOG3 register.
+//
+//*****************************************************************************
+#define HIB_TPLOG3_XOSC         0x00010000  // Status of external 32
+#define HIB_TPLOG3_TRIG3        0x00000008  // Status of TMPR[3] Trigger
+#define HIB_TPLOG3_TRIG2        0x00000004  // Status of TMPR[2] Trigger
+#define HIB_TPLOG3_TRIG1        0x00000002  // Status of TMPR[1] Trigger
+#define HIB_TPLOG3_TRIG0        0x00000001  // Status of TMPR[0] Trigger
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_TPLOG4 register.
+//
+//*****************************************************************************
+#define HIB_TPLOG4_TIME_M       0xFFFFFFFF  // Tamper Log Calendar Information
+#define HIB_TPLOG4_TIME_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_TPLOG5 register.
+//
+//*****************************************************************************
+#define HIB_TPLOG5_XOSC         0x00010000  // Status of external 32
+#define HIB_TPLOG5_TRIG3        0x00000008  // Status of TMPR[3] Trigger
+#define HIB_TPLOG5_TRIG2        0x00000004  // Status of TMPR[2] Trigger
+#define HIB_TPLOG5_TRIG1        0x00000002  // Status of TMPR[1] Trigger
+#define HIB_TPLOG5_TRIG0        0x00000001  // Status of TMPR[0] Trigger
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_TPLOG6 register.
+//
+//*****************************************************************************
+#define HIB_TPLOG6_TIME_M       0xFFFFFFFF  // Tamper Log Calendar Information
+#define HIB_TPLOG6_TIME_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_TPLOG7 register.
+//
+//*****************************************************************************
+#define HIB_TPLOG7_XOSC         0x00010000  // Status of external 32
+#define HIB_TPLOG7_TRIG3        0x00000008  // Status of TMPR[3] Trigger
+#define HIB_TPLOG7_TRIG2        0x00000004  // Status of TMPR[2] Trigger
+#define HIB_TPLOG7_TRIG1        0x00000002  // Status of TMPR[1] Trigger
+#define HIB_TPLOG7_TRIG0        0x00000001  // Status of TMPR[0] Trigger
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_PP register.
+//
+//*****************************************************************************
+#define HIB_PP_TAMPER           0x00000002  // Tamper Pin Presence
+#define HIB_PP_WAKENC           0x00000001  // Wake Pin Presence
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_CC register.
+//
+//*****************************************************************************
+#define HIB_CC_SYSCLKEN         0x00000001  // RTCOSC to System Clock Enable
+
+#endif // __HW_HIBERNATE_H__

+ 470 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_i2c.h

@@ -0,0 +1,470 @@
+//*****************************************************************************
+//
+// hw_i2c.h - Macros used when accessing the I2C master and slave hardware.
+//
+// Copyright (c) 2005-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Firmware Development Package.
+//
+//*****************************************************************************
+
+#ifndef __HW_I2C_H__
+#define __HW_I2C_H__
+
+//*****************************************************************************
+//
+// The following are defines for the I2C register offsets.
+//
+//*****************************************************************************
+#define I2C_O_MSA               0x00000000  // I2C Master Slave Address
+#define I2C_O_MCS               0x00000004  // I2C Master Control/Status
+#define I2C_O_MDR               0x00000008  // I2C Master Data
+#define I2C_O_MTPR              0x0000000C  // I2C Master Timer Period
+#define I2C_O_MIMR              0x00000010  // I2C Master Interrupt Mask
+#define I2C_O_MRIS              0x00000014  // I2C Master Raw Interrupt Status
+#define I2C_O_MMIS              0x00000018  // I2C Master Masked Interrupt
+                                            // Status
+#define I2C_O_MICR              0x0000001C  // I2C Master Interrupt Clear
+#define I2C_O_MCR               0x00000020  // I2C Master Configuration
+#define I2C_O_MCLKOCNT          0x00000024  // I2C Master Clock Low Timeout
+                                            // Count
+#define I2C_O_MBMON             0x0000002C  // I2C Master Bus Monitor
+#define I2C_O_MBLEN             0x00000030  // I2C Master Burst Length
+#define I2C_O_MBCNT             0x00000034  // I2C Master Burst Count
+#define I2C_O_MCR2              0x00000038  // I2C Master Configuration 2
+#define I2C_O_SOAR              0x00000800  // I2C Slave Own Address
+#define I2C_O_SCSR              0x00000804  // I2C Slave Control/Status
+#define I2C_O_SDR               0x00000808  // I2C Slave Data
+#define I2C_O_SIMR              0x0000080C  // I2C Slave Interrupt Mask
+#define I2C_O_SRIS              0x00000810  // I2C Slave Raw Interrupt Status
+#define I2C_O_SMIS              0x00000814  // I2C Slave Masked Interrupt
+                                            // Status
+#define I2C_O_SICR              0x00000818  // I2C Slave Interrupt Clear
+#define I2C_O_SOAR2             0x0000081C  // I2C Slave Own Address 2
+#define I2C_O_SACKCTL           0x00000820  // I2C Slave ACK Control
+#define I2C_O_FIFODATA          0x00000F00  // I2C FIFO Data
+#define I2C_O_FIFOCTL           0x00000F04  // I2C FIFO Control
+#define I2C_O_FIFOSTATUS        0x00000F08  // I2C FIFO Status
+#define I2C_O_PP                0x00000FC0  // I2C Peripheral Properties
+#define I2C_O_PC                0x00000FC4  // I2C Peripheral Configuration
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MSA register.
+//
+//*****************************************************************************
+#define I2C_MSA_SA_M            0x000000FE  // I2C Slave Address
+#define I2C_MSA_RS              0x00000001  // Receive not send
+#define I2C_MSA_SA_S            1
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MCS register.
+//
+//*****************************************************************************
+#define I2C_MCS_ACTDMARX        0x80000000  // DMA RX Active Status
+#define I2C_MCS_ACTDMATX        0x40000000  // DMA TX Active Status
+#define I2C_MCS_CLKTO           0x00000080  // Clock Timeout Error
+#define I2C_MCS_BURST           0x00000040  // Burst Enable
+#define I2C_MCS_BUSBSY          0x00000040  // Bus Busy
+#define I2C_MCS_IDLE            0x00000020  // I2C Idle
+#define I2C_MCS_QCMD            0x00000020  // Quick Command
+#define I2C_MCS_ARBLST          0x00000010  // Arbitration Lost
+#define I2C_MCS_HS              0x00000010  // High-Speed Enable
+#define I2C_MCS_ACK             0x00000008  // Data Acknowledge Enable
+#define I2C_MCS_DATACK          0x00000008  // Acknowledge Data
+#define I2C_MCS_ADRACK          0x00000004  // Acknowledge Address
+#define I2C_MCS_STOP            0x00000004  // Generate STOP
+#define I2C_MCS_ERROR           0x00000002  // Error
+#define I2C_MCS_START           0x00000002  // Generate START
+#define I2C_MCS_RUN             0x00000001  // I2C Master Enable
+#define I2C_MCS_BUSY            0x00000001  // I2C Busy
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MDR register.
+//
+//*****************************************************************************
+#define I2C_MDR_DATA_M          0x000000FF  // This byte contains the data
+                                            // transferred during a transaction
+#define I2C_MDR_DATA_S          0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MTPR register.
+//
+//*****************************************************************************
+#define I2C_MTPR_PULSEL_M       0x00070000  // Glitch Suppression Pulse Width
+#define I2C_MTPR_PULSEL_BYPASS  0x00000000  // Bypass
+#define I2C_MTPR_PULSEL_1       0x00010000  // 1 clock
+#define I2C_MTPR_PULSEL_2       0x00020000  // 2 clocks
+#define I2C_MTPR_PULSEL_3       0x00030000  // 3 clocks
+#define I2C_MTPR_PULSEL_4       0x00040000  // 4 clocks
+#define I2C_MTPR_PULSEL_8       0x00050000  // 8 clocks
+#define I2C_MTPR_PULSEL_16      0x00060000  // 16 clocks
+#define I2C_MTPR_PULSEL_31      0x00070000  // 31 clocks
+#define I2C_MTPR_HS             0x00000080  // High-Speed Enable
+#define I2C_MTPR_TPR_M          0x0000007F  // Timer Period
+#define I2C_MTPR_TPR_S          0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MIMR register.
+//
+//*****************************************************************************
+#define I2C_MIMR_RXFFIM         0x00000800  // Receive FIFO Full Interrupt Mask
+#define I2C_MIMR_TXFEIM         0x00000400  // Transmit FIFO Empty Interrupt
+                                            // Mask
+#define I2C_MIMR_RXIM           0x00000200  // Receive FIFO Request Interrupt
+                                            // Mask
+#define I2C_MIMR_TXIM           0x00000100  // Transmit FIFO Request Interrupt
+                                            // Mask
+#define I2C_MIMR_ARBLOSTIM      0x00000080  // Arbitration Lost Interrupt Mask
+#define I2C_MIMR_STOPIM         0x00000040  // STOP Detection Interrupt Mask
+#define I2C_MIMR_STARTIM        0x00000020  // START Detection Interrupt Mask
+#define I2C_MIMR_NACKIM         0x00000010  // Address/Data NACK Interrupt Mask
+#define I2C_MIMR_DMATXIM        0x00000008  // Transmit DMA Interrupt Mask
+#define I2C_MIMR_DMARXIM        0x00000004  // Receive DMA Interrupt Mask
+#define I2C_MIMR_CLKIM          0x00000002  // Clock Timeout Interrupt Mask
+#define I2C_MIMR_IM             0x00000001  // Master Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MRIS register.
+//
+//*****************************************************************************
+#define I2C_MRIS_RXFFRIS        0x00000800  // Receive FIFO Full Raw Interrupt
+                                            // Status
+#define I2C_MRIS_TXFERIS        0x00000400  // Transmit FIFO Empty Raw
+                                            // Interrupt Status
+#define I2C_MRIS_RXRIS          0x00000200  // Receive FIFO Request Raw
+                                            // Interrupt Status
+#define I2C_MRIS_TXRIS          0x00000100  // Transmit Request Raw Interrupt
+                                            // Status
+#define I2C_MRIS_ARBLOSTRIS     0x00000080  // Arbitration Lost Raw Interrupt
+                                            // Status
+#define I2C_MRIS_STOPRIS        0x00000040  // STOP Detection Raw Interrupt
+                                            // Status
+#define I2C_MRIS_STARTRIS       0x00000020  // START Detection Raw Interrupt
+                                            // Status
+#define I2C_MRIS_NACKRIS        0x00000010  // Address/Data NACK Raw Interrupt
+                                            // Status
+#define I2C_MRIS_DMATXRIS       0x00000008  // Transmit DMA Raw Interrupt
+                                            // Status
+#define I2C_MRIS_DMARXRIS       0x00000004  // Receive DMA Raw Interrupt Status
+#define I2C_MRIS_CLKRIS         0x00000002  // Clock Timeout Raw Interrupt
+                                            // Status
+#define I2C_MRIS_RIS            0x00000001  // Master Raw Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MMIS register.
+//
+//*****************************************************************************
+#define I2C_MMIS_RXFFMIS        0x00000800  // Receive FIFO Full Interrupt Mask
+#define I2C_MMIS_TXFEMIS        0x00000400  // Transmit FIFO Empty Interrupt
+                                            // Mask
+#define I2C_MMIS_RXMIS          0x00000200  // Receive FIFO Request Interrupt
+                                            // Mask
+#define I2C_MMIS_TXMIS          0x00000100  // Transmit Request Interrupt Mask
+#define I2C_MMIS_ARBLOSTMIS     0x00000080  // Arbitration Lost Interrupt Mask
+#define I2C_MMIS_STOPMIS        0x00000040  // STOP Detection Interrupt Mask
+#define I2C_MMIS_STARTMIS       0x00000020  // START Detection Interrupt Mask
+#define I2C_MMIS_NACKMIS        0x00000010  // Address/Data NACK Interrupt Mask
+#define I2C_MMIS_DMATXMIS       0x00000008  // Transmit DMA Interrupt Status
+#define I2C_MMIS_DMARXMIS       0x00000004  // Receive DMA Interrupt Status
+#define I2C_MMIS_CLKMIS         0x00000002  // Clock Timeout Masked Interrupt
+                                            // Status
+#define I2C_MMIS_MIS            0x00000001  // Masked Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MICR register.
+//
+//*****************************************************************************
+#define I2C_MICR_RXFFIC         0x00000800  // Receive FIFO Full Interrupt
+                                            // Clear
+#define I2C_MICR_TXFEIC         0x00000400  // Transmit FIFO Empty Interrupt
+                                            // Clear
+#define I2C_MICR_RXIC           0x00000200  // Receive FIFO Request Interrupt
+                                            // Clear
+#define I2C_MICR_TXIC           0x00000100  // Transmit FIFO Request Interrupt
+                                            // Clear
+#define I2C_MICR_ARBLOSTIC      0x00000080  // Arbitration Lost Interrupt Clear
+#define I2C_MICR_STOPIC         0x00000040  // STOP Detection Interrupt Clear
+#define I2C_MICR_STARTIC        0x00000020  // START Detection Interrupt Clear
+#define I2C_MICR_NACKIC         0x00000010  // Address/Data NACK Interrupt
+                                            // Clear
+#define I2C_MICR_DMATXIC        0x00000008  // Transmit DMA Interrupt Clear
+#define I2C_MICR_DMARXIC        0x00000004  // Receive DMA Interrupt Clear
+#define I2C_MICR_CLKIC          0x00000002  // Clock Timeout Interrupt Clear
+#define I2C_MICR_IC             0x00000001  // Master Interrupt Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MCR register.
+//
+//*****************************************************************************
+#define I2C_MCR_GFE             0x00000040  // I2C Glitch Filter Enable
+#define I2C_MCR_SFE             0x00000020  // I2C Slave Function Enable
+#define I2C_MCR_MFE             0x00000010  // I2C Master Function Enable
+#define I2C_MCR_LPBK            0x00000001  // I2C Loopback
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MCLKOCNT register.
+//
+//*****************************************************************************
+#define I2C_MCLKOCNT_CNTL_M     0x000000FF  // I2C Master Count
+#define I2C_MCLKOCNT_CNTL_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MBMON register.
+//
+//*****************************************************************************
+#define I2C_MBMON_SDA           0x00000002  // I2C SDA Status
+#define I2C_MBMON_SCL           0x00000001  // I2C SCL Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MBLEN register.
+//
+//*****************************************************************************
+#define I2C_MBLEN_CNTL_M        0x000000FF  // I2C Burst Length
+#define I2C_MBLEN_CNTL_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MBCNT register.
+//
+//*****************************************************************************
+#define I2C_MBCNT_CNTL_M        0x000000FF  // I2C Master Burst Count
+#define I2C_MBCNT_CNTL_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MCR2 register.
+//
+//*****************************************************************************
+#define I2C_MCR2_GFPW_M         0x00000070  // I2C Glitch Filter Pulse Width
+#define I2C_MCR2_GFPW_BYPASS    0x00000000  // Bypass
+#define I2C_MCR2_GFPW_1         0x00000010  // 1 clock
+#define I2C_MCR2_GFPW_2         0x00000020  // 2 clocks
+#define I2C_MCR2_GFPW_3         0x00000030  // 3 clocks
+#define I2C_MCR2_GFPW_4         0x00000040  // 4 clocks
+#define I2C_MCR2_GFPW_8         0x00000050  // 8 clocks
+#define I2C_MCR2_GFPW_16        0x00000060  // 16 clocks
+#define I2C_MCR2_GFPW_31        0x00000070  // 31 clocks
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_SOAR register.
+//
+//*****************************************************************************
+#define I2C_SOAR_OAR_M          0x0000007F  // I2C Slave Own Address
+#define I2C_SOAR_OAR_S          0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_SCSR register.
+//
+//*****************************************************************************
+#define I2C_SCSR_ACTDMARX       0x80000000  // DMA RX Active Status
+#define I2C_SCSR_ACTDMATX       0x40000000  // DMA TX Active Status
+#define I2C_SCSR_QCMDRW         0x00000020  // Quick Command Read / Write
+#define I2C_SCSR_QCMDST         0x00000010  // Quick Command Status
+#define I2C_SCSR_OAR2SEL        0x00000008  // OAR2 Address Matched
+#define I2C_SCSR_FBR            0x00000004  // First Byte Received
+#define I2C_SCSR_RXFIFO         0x00000004  // RX FIFO Enable
+#define I2C_SCSR_TXFIFO         0x00000002  // TX FIFO Enable
+#define I2C_SCSR_TREQ           0x00000002  // Transmit Request
+#define I2C_SCSR_DA             0x00000001  // Device Active
+#define I2C_SCSR_RREQ           0x00000001  // Receive Request
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_SDR register.
+//
+//*****************************************************************************
+#define I2C_SDR_DATA_M          0x000000FF  // Data for Transfer
+#define I2C_SDR_DATA_S          0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_SIMR register.
+//
+//*****************************************************************************
+#define I2C_SIMR_RXFFIM         0x00000100  // Receive FIFO Full Interrupt Mask
+#define I2C_SIMR_TXFEIM         0x00000080  // Transmit FIFO Empty Interrupt
+                                            // Mask
+#define I2C_SIMR_RXIM           0x00000040  // Receive FIFO Request Interrupt
+                                            // Mask
+#define I2C_SIMR_TXIM           0x00000020  // Transmit FIFO Request Interrupt
+                                            // Mask
+#define I2C_SIMR_DMATXIM        0x00000010  // Transmit DMA Interrupt Mask
+#define I2C_SIMR_DMARXIM        0x00000008  // Receive DMA Interrupt Mask
+#define I2C_SIMR_STOPIM         0x00000004  // Stop Condition Interrupt Mask
+#define I2C_SIMR_STARTIM        0x00000002  // Start Condition Interrupt Mask
+#define I2C_SIMR_DATAIM         0x00000001  // Data Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_SRIS register.
+//
+//*****************************************************************************
+#define I2C_SRIS_RXFFRIS        0x00000100  // Receive FIFO Full Raw Interrupt
+                                            // Status
+#define I2C_SRIS_TXFERIS        0x00000080  // Transmit FIFO Empty Raw
+                                            // Interrupt Status
+#define I2C_SRIS_RXRIS          0x00000040  // Receive FIFO Request Raw
+                                            // Interrupt Status
+#define I2C_SRIS_TXRIS          0x00000020  // Transmit Request Raw Interrupt
+                                            // Status
+#define I2C_SRIS_DMATXRIS       0x00000010  // Transmit DMA Raw Interrupt
+                                            // Status
+#define I2C_SRIS_DMARXRIS       0x00000008  // Receive DMA Raw Interrupt Status
+#define I2C_SRIS_STOPRIS        0x00000004  // Stop Condition Raw Interrupt
+                                            // Status
+#define I2C_SRIS_STARTRIS       0x00000002  // Start Condition Raw Interrupt
+                                            // Status
+#define I2C_SRIS_DATARIS        0x00000001  // Data Raw Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_SMIS register.
+//
+//*****************************************************************************
+#define I2C_SMIS_RXFFMIS        0x00000100  // Receive FIFO Full Interrupt Mask
+#define I2C_SMIS_TXFEMIS        0x00000080  // Transmit FIFO Empty Interrupt
+                                            // Mask
+#define I2C_SMIS_RXMIS          0x00000040  // Receive FIFO Request Interrupt
+                                            // Mask
+#define I2C_SMIS_TXMIS          0x00000020  // Transmit FIFO Request Interrupt
+                                            // Mask
+#define I2C_SMIS_DMATXMIS       0x00000010  // Transmit DMA Masked Interrupt
+                                            // Status
+#define I2C_SMIS_DMARXMIS       0x00000008  // Receive DMA Masked Interrupt
+                                            // Status
+#define I2C_SMIS_STOPMIS        0x00000004  // Stop Condition Masked Interrupt
+                                            // Status
+#define I2C_SMIS_STARTMIS       0x00000002  // Start Condition Masked Interrupt
+                                            // Status
+#define I2C_SMIS_DATAMIS        0x00000001  // Data Masked Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_SICR register.
+//
+//*****************************************************************************
+#define I2C_SICR_RXFFIC         0x00000100  // Receive FIFO Full Interrupt Mask
+#define I2C_SICR_TXFEIC         0x00000080  // Transmit FIFO Empty Interrupt
+                                            // Mask
+#define I2C_SICR_RXIC           0x00000040  // Receive Request Interrupt Mask
+#define I2C_SICR_TXIC           0x00000020  // Transmit Request Interrupt Mask
+#define I2C_SICR_DMATXIC        0x00000010  // Transmit DMA Interrupt Clear
+#define I2C_SICR_DMARXIC        0x00000008  // Receive DMA Interrupt Clear
+#define I2C_SICR_STOPIC         0x00000004  // Stop Condition Interrupt Clear
+#define I2C_SICR_STARTIC        0x00000002  // Start Condition Interrupt Clear
+#define I2C_SICR_DATAIC         0x00000001  // Data Interrupt Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_SOAR2 register.
+//
+//*****************************************************************************
+#define I2C_SOAR2_OAR2EN        0x00000080  // I2C Slave Own Address 2 Enable
+#define I2C_SOAR2_OAR2_M        0x0000007F  // I2C Slave Own Address 2
+#define I2C_SOAR2_OAR2_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_SACKCTL register.
+//
+//*****************************************************************************
+#define I2C_SACKCTL_ACKOVAL     0x00000002  // I2C Slave ACK Override Value
+#define I2C_SACKCTL_ACKOEN      0x00000001  // I2C Slave ACK Override Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_FIFODATA register.
+//
+//*****************************************************************************
+#define I2C_FIFODATA_DATA_M     0x000000FF  // I2C TX FIFO Write Data Byte
+#define I2C_FIFODATA_DATA_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_FIFOCTL register.
+//
+//*****************************************************************************
+#define I2C_FIFOCTL_RXASGNMT    0x80000000  // RX Control Assignment
+#define I2C_FIFOCTL_RXFLUSH     0x40000000  // RX FIFO Flush
+#define I2C_FIFOCTL_DMARXENA    0x20000000  // DMA RX Channel Enable
+#define I2C_FIFOCTL_RXTRIG_M    0x00070000  // RX FIFO Trigger
+#define I2C_FIFOCTL_TXASGNMT    0x00008000  // TX Control Assignment
+#define I2C_FIFOCTL_TXFLUSH     0x00004000  // TX FIFO Flush
+#define I2C_FIFOCTL_DMATXENA    0x00002000  // DMA TX Channel Enable
+#define I2C_FIFOCTL_TXTRIG_M    0x00000007  // TX FIFO Trigger
+#define I2C_FIFOCTL_RXTRIG_S    16
+#define I2C_FIFOCTL_TXTRIG_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_FIFOSTATUS
+// register.
+//
+//*****************************************************************************
+#define I2C_FIFOSTATUS_RXABVTRIG                                              \
+                                0x00040000  // RX FIFO Above Trigger Level
+#define I2C_FIFOSTATUS_RXFF     0x00020000  // RX FIFO Full
+#define I2C_FIFOSTATUS_RXFE     0x00010000  // RX FIFO Empty
+#define I2C_FIFOSTATUS_TXBLWTRIG                                              \
+                                0x00000004  // TX FIFO Below Trigger Level
+#define I2C_FIFOSTATUS_TXFF     0x00000002  // TX FIFO Full
+#define I2C_FIFOSTATUS_TXFE     0x00000001  // TX FIFO Empty
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_PP register.
+//
+//*****************************************************************************
+#define I2C_PP_HS               0x00000001  // High-Speed Capable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_PC register.
+//
+//*****************************************************************************
+#define I2C_PC_HS               0x00000001  // High-Speed Capable
+
+#endif // __HW_I2C_H__

+ 491 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_ints.h

@@ -0,0 +1,491 @@
+//*****************************************************************************
+//
+// hw_ints.h - Macros that define the interrupt assignment on Tiva C Series
+// MCUs.
+//
+// Copyright (c) 2005-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Firmware Development Package.
+//
+//*****************************************************************************
+
+#ifndef __HW_INTS_H__
+#define __HW_INTS_H__
+
+//*****************************************************************************
+//
+// The following are defines for the fault assignments.
+//
+//*****************************************************************************
+#define FAULT_NMI               2           // NMI fault
+#define FAULT_HARD              3           // Hard fault
+#define FAULT_MPU               4           // MPU fault
+#define FAULT_BUS               5           // Bus fault
+#define FAULT_USAGE             6           // Usage fault
+#define FAULT_SVCALL            11          // SVCall
+#define FAULT_DEBUG             12          // Debug monitor
+#define FAULT_PENDSV            14          // PendSV
+#define FAULT_SYSTICK           15          // System Tick
+
+//*****************************************************************************
+//
+// TM4C123 Class Interrupts
+//
+//*****************************************************************************
+#define INT_GPIOA_TM4C123       16          // GPIO Port A
+#define INT_GPIOB_TM4C123       17          // GPIO Port B
+#define INT_GPIOC_TM4C123       18          // GPIO Port C
+#define INT_GPIOD_TM4C123       19          // GPIO Port D
+#define INT_GPIOE_TM4C123       20          // GPIO Port E
+#define INT_UART0_TM4C123       21          // UART0
+#define INT_UART1_TM4C123       22          // UART1
+#define INT_SSI0_TM4C123        23          // SSI0
+#define INT_I2C0_TM4C123        24          // I2C0
+#define INT_PWM0_FAULT_TM4C123  25          // PWM0 Fault
+#define INT_PWM0_0_TM4C123      26          // PWM0 Generator 0
+#define INT_PWM0_1_TM4C123      27          // PWM0 Generator 1
+#define INT_PWM0_2_TM4C123      28          // PWM0 Generator 2
+#define INT_QEI0_TM4C123        29          // QEI0
+#define INT_ADC0SS0_TM4C123     30          // ADC0 Sequence 0
+#define INT_ADC0SS1_TM4C123     31          // ADC0 Sequence 1
+#define INT_ADC0SS2_TM4C123     32          // ADC0 Sequence 2
+#define INT_ADC0SS3_TM4C123     33          // ADC0 Sequence 3
+#define INT_WATCHDOG_TM4C123    34          // Watchdog Timers 0 and 1
+#define INT_TIMER0A_TM4C123     35          // 16/32-Bit Timer 0A
+#define INT_TIMER0B_TM4C123     36          // 16/32-Bit Timer 0B
+#define INT_TIMER1A_TM4C123     37          // 16/32-Bit Timer 1A
+#define INT_TIMER1B_TM4C123     38          // 16/32-Bit Timer 1B
+#define INT_TIMER2A_TM4C123     39          // 16/32-Bit Timer 2A
+#define INT_TIMER2B_TM4C123     40          // 16/32-Bit Timer 2B
+#define INT_COMP0_TM4C123       41          // Analog Comparator 0
+#define INT_COMP1_TM4C123       42          // Analog Comparator 1
+#define INT_COMP2_TM4C123       43          // Analog Comparator 2
+#define INT_SYSCTL_TM4C123      44          // System Control
+#define INT_FLASH_TM4C123       45          // Flash Memory Control and EEPROM
+                                            // Control
+#define INT_GPIOF_TM4C123       46          // GPIO Port F
+#define INT_GPIOG_TM4C123       47          // GPIO Port G
+#define INT_GPIOH_TM4C123       48          // GPIO Port H
+#define INT_UART2_TM4C123       49          // UART2
+#define INT_SSI1_TM4C123        50          // SSI1
+#define INT_TIMER3A_TM4C123     51          // 16/32-Bit Timer 3A
+#define INT_TIMER3B_TM4C123     52          // Timer 3B
+#define INT_I2C1_TM4C123        53          // I2C1
+#define INT_QEI1_TM4C123        54          // QEI1
+#define INT_CAN0_TM4C123        55          // CAN0
+#define INT_CAN1_TM4C123        56          // CAN1
+#define INT_HIBERNATE_TM4C123   59          // Hibernation Module
+#define INT_USB0_TM4C123        60          // USB
+#define INT_PWM0_3_TM4C123      61          // PWM Generator 3
+#define INT_UDMA_TM4C123        62          // uDMA Software
+#define INT_UDMAERR_TM4C123     63          // uDMA Error
+#define INT_ADC1SS0_TM4C123     64          // ADC1 Sequence 0
+#define INT_ADC1SS1_TM4C123     65          // ADC1 Sequence 1
+#define INT_ADC1SS2_TM4C123     66          // ADC1 Sequence 2
+#define INT_ADC1SS3_TM4C123     67          // ADC1 Sequence 3
+#define INT_GPIOJ_TM4C123       70          // GPIO Port J
+#define INT_GPIOK_TM4C123       71          // GPIO Port K
+#define INT_GPIOL_TM4C123       72          // GPIO Port L
+#define INT_SSI2_TM4C123        73          // SSI2
+#define INT_SSI3_TM4C123        74          // SSI3
+#define INT_UART3_TM4C123       75          // UART3
+#define INT_UART4_TM4C123       76          // UART4
+#define INT_UART5_TM4C123       77          // UART5
+#define INT_UART6_TM4C123       78          // UART6
+#define INT_UART7_TM4C123       79          // UART7
+#define INT_I2C2_TM4C123        84          // I2C2
+#define INT_I2C3_TM4C123        85          // I2C3
+#define INT_TIMER4A_TM4C123     86          // 16/32-Bit Timer 4A
+#define INT_TIMER4B_TM4C123     87          // 16/32-Bit Timer 4B
+#define INT_TIMER5A_TM4C123     108         // 16/32-Bit Timer 5A
+#define INT_TIMER5B_TM4C123     109         // 16/32-Bit Timer 5B
+#define INT_WTIMER0A_TM4C123    110         // 32/64-Bit Timer 0A
+#define INT_WTIMER0B_TM4C123    111         // 32/64-Bit Timer 0B
+#define INT_WTIMER1A_TM4C123    112         // 32/64-Bit Timer 1A
+#define INT_WTIMER1B_TM4C123    113         // 32/64-Bit Timer 1B
+#define INT_WTIMER2A_TM4C123    114         // 32/64-Bit Timer 2A
+#define INT_WTIMER2B_TM4C123    115         // 32/64-Bit Timer 2B
+#define INT_WTIMER3A_TM4C123    116         // 32/64-Bit Timer 3A
+#define INT_WTIMER3B_TM4C123    117         // 32/64-Bit Timer 3B
+#define INT_WTIMER4A_TM4C123    118         // 32/64-Bit Timer 4A
+#define INT_WTIMER4B_TM4C123    119         // 32/64-Bit Timer 4B
+#define INT_WTIMER5A_TM4C123    120         // 32/64-Bit Timer 5A
+#define INT_WTIMER5B_TM4C123    121         // 32/64-Bit Timer 5B
+#define INT_SYSEXC_TM4C123      122         // System Exception (imprecise)
+#define INT_I2C4_TM4C123        125         // I2C4
+#define INT_I2C5_TM4C123        126         // I2C5
+#define INT_GPIOM_TM4C123       127         // GPIO Port M
+#define INT_GPION_TM4C123       128         // GPIO Port N
+#define INT_GPIOP0_TM4C123      132         // GPIO Port P (Summary or P0)
+#define INT_GPIOP1_TM4C123      133         // GPIO Port P1
+#define INT_GPIOP2_TM4C123      134         // GPIO Port P2
+#define INT_GPIOP3_TM4C123      135         // GPIO Port P3
+#define INT_GPIOP4_TM4C123      136         // GPIO Port P4
+#define INT_GPIOP5_TM4C123      137         // GPIO Port P5
+#define INT_GPIOP6_TM4C123      138         // GPIO Port P6
+#define INT_GPIOP7_TM4C123      139         // GPIO Port P7
+#define INT_GPIOQ0_TM4C123      140         // GPIO Port Q (Summary or Q0)
+#define INT_GPIOQ1_TM4C123      141         // GPIO Port Q1
+#define INT_GPIOQ2_TM4C123      142         // GPIO Port Q2
+#define INT_GPIOQ3_TM4C123      143         // GPIO Port Q3
+#define INT_GPIOQ4_TM4C123      144         // GPIO Port Q4
+#define INT_GPIOQ5_TM4C123      145         // GPIO Port Q5
+#define INT_GPIOQ6_TM4C123      146         // GPIO Port Q6
+#define INT_GPIOQ7_TM4C123      147         // GPIO Port Q7
+#define INT_PWM1_0_TM4C123      150         // PWM1 Generator 0
+#define INT_PWM1_1_TM4C123      151         // PWM1 Generator 1
+#define INT_PWM1_2_TM4C123      152         // PWM1 Generator 2
+#define INT_PWM1_3_TM4C123      153         // PWM1 Generator 3
+#define INT_PWM1_FAULT_TM4C123  154         // PWM1 Fault
+#define NUM_INTERRUPTS_TM4C123  155
+
+//*****************************************************************************
+//
+// TM4C129 Class Interrupts
+//
+//*****************************************************************************
+#define INT_GPIOA_TM4C129       16          // GPIO Port A
+#define INT_GPIOB_TM4C129       17          // GPIO Port B
+#define INT_GPIOC_TM4C129       18          // GPIO Port C
+#define INT_GPIOD_TM4C129       19          // GPIO Port D
+#define INT_GPIOE_TM4C129       20          // GPIO Port E
+#define INT_UART0_TM4C129       21          // UART0
+#define INT_UART1_TM4C129       22          // UART1
+#define INT_SSI0_TM4C129        23          // SSI0
+#define INT_I2C0_TM4C129        24          // I2C0
+#define INT_PWM0_FAULT_TM4C129  25          // PWM Fault
+#define INT_PWM0_0_TM4C129      26          // PWM Generator 0
+#define INT_PWM0_1_TM4C129      27          // PWM Generator 1
+#define INT_PWM0_2_TM4C129      28          // PWM Generator 2
+#define INT_QEI0_TM4C129        29          // QEI0
+#define INT_ADC0SS0_TM4C129     30          // ADC0 Sequence 0
+#define INT_ADC0SS1_TM4C129     31          // ADC0 Sequence 1
+#define INT_ADC0SS2_TM4C129     32          // ADC0 Sequence 2
+#define INT_ADC0SS3_TM4C129     33          // ADC0 Sequence 3
+#define INT_WATCHDOG_TM4C129    34          // Watchdog Timers 0 and 1
+#define INT_TIMER0A_TM4C129     35          // 16/32-Bit Timer 0A
+#define INT_TIMER0B_TM4C129     36          // 16/32-Bit Timer 0B
+#define INT_TIMER1A_TM4C129     37          // 16/32-Bit Timer 1A
+#define INT_TIMER1B_TM4C129     38          // 16/32-Bit Timer 1B
+#define INT_TIMER2A_TM4C129     39          // 16/32-Bit Timer 2A
+#define INT_TIMER2B_TM4C129     40          // 16/32-Bit Timer 2B
+#define INT_COMP0_TM4C129       41          // Analog Comparator 0
+#define INT_COMP1_TM4C129       42          // Analog Comparator 1
+#define INT_COMP2_TM4C129       43          // Analog Comparator 2
+#define INT_SYSCTL_TM4C129      44          // System Control
+#define INT_FLASH_TM4C129       45          // Flash Memory Control
+#define INT_GPIOF_TM4C129       46          // GPIO Port F
+#define INT_GPIOG_TM4C129       47          // GPIO Port G
+#define INT_GPIOH_TM4C129       48          // GPIO Port H
+#define INT_UART2_TM4C129       49          // UART2
+#define INT_SSI1_TM4C129        50          // SSI1
+#define INT_TIMER3A_TM4C129     51          // 16/32-Bit Timer 3A
+#define INT_TIMER3B_TM4C129     52          // 16/32-Bit Timer 3B
+#define INT_I2C1_TM4C129        53          // I2C1
+#define INT_CAN0_TM4C129        54          // CAN 0
+#define INT_CAN1_TM4C129        55          // CAN1
+#define INT_EMAC0_TM4C129       56          // Ethernet MAC
+#define INT_HIBERNATE_TM4C129   57          // HIB
+#define INT_USB0_TM4C129        58          // USB MAC
+#define INT_PWM0_3_TM4C129      59          // PWM Generator 3
+#define INT_UDMA_TM4C129        60          // uDMA 0 Software
+#define INT_UDMAERR_TM4C129     61          // uDMA 0 Error
+#define INT_ADC1SS0_TM4C129     62          // ADC1 Sequence 0
+#define INT_ADC1SS1_TM4C129     63          // ADC1 Sequence 1
+#define INT_ADC1SS2_TM4C129     64          // ADC1 Sequence 2
+#define INT_ADC1SS3_TM4C129     65          // ADC1 Sequence 3
+#define INT_EPI0_TM4C129        66          // EPI 0
+#define INT_GPIOJ_TM4C129       67          // GPIO Port J
+#define INT_GPIOK_TM4C129       68          // GPIO Port K
+#define INT_GPIOL_TM4C129       69          // GPIO Port L
+#define INT_SSI2_TM4C129        70          // SSI 2
+#define INT_SSI3_TM4C129        71          // SSI 3
+#define INT_UART3_TM4C129       72          // UART 3
+#define INT_UART4_TM4C129       73          // UART 4
+#define INT_UART5_TM4C129       74          // UART 5
+#define INT_UART6_TM4C129       75          // UART 6
+#define INT_UART7_TM4C129       76          // UART 7
+#define INT_I2C2_TM4C129        77          // I2C 2
+#define INT_I2C3_TM4C129        78          // I2C 3
+#define INT_TIMER4A_TM4C129     79          // Timer 4A
+#define INT_TIMER4B_TM4C129     80          // Timer 4B
+#define INT_TIMER5A_TM4C129     81          // Timer 5A
+#define INT_TIMER5B_TM4C129     82          // Timer 5B
+#define INT_SYSEXC_TM4C129      83          // Floating-Point Exception
+                                            // (imprecise)
+#define INT_I2C4_TM4C129        86          // I2C 4
+#define INT_I2C5_TM4C129        87          // I2C 5
+#define INT_GPIOM_TM4C129       88          // GPIO Port M
+#define INT_GPION_TM4C129       89          // GPIO Port N
+#define INT_TAMPER0_TM4C129     91          // Tamper
+#define INT_GPIOP0_TM4C129      92          // GPIO Port P (Summary or P0)
+#define INT_GPIOP1_TM4C129      93          // GPIO Port P1
+#define INT_GPIOP2_TM4C129      94          // GPIO Port P2
+#define INT_GPIOP3_TM4C129      95          // GPIO Port P3
+#define INT_GPIOP4_TM4C129      96          // GPIO Port P4
+#define INT_GPIOP5_TM4C129      97          // GPIO Port P5
+#define INT_GPIOP6_TM4C129      98          // GPIO Port P6
+#define INT_GPIOP7_TM4C129      99          // GPIO Port P7
+#define INT_GPIOQ0_TM4C129      100         // GPIO Port Q (Summary or Q0)
+#define INT_GPIOQ1_TM4C129      101         // GPIO Port Q1
+#define INT_GPIOQ2_TM4C129      102         // GPIO Port Q2
+#define INT_GPIOQ3_TM4C129      103         // GPIO Port Q3
+#define INT_GPIOQ4_TM4C129      104         // GPIO Port Q4
+#define INT_GPIOQ5_TM4C129      105         // GPIO Port Q5
+#define INT_GPIOQ6_TM4C129      106         // GPIO Port Q6
+#define INT_GPIOQ7_TM4C129      107         // GPIO Port Q7
+#define INT_GPIOR_TM4C129       108         // GPIO Port R
+#define INT_GPIOS_TM4C129       109         // GPIO Port S
+#define INT_SHA0_TM4C129        110         // SHA/MD5
+#define INT_AES0_TM4C129        111         // AES
+#define INT_DES0_TM4C129        112         // DES
+#define INT_LCD0_TM4C129        113         // LCD
+#define INT_TIMER6A_TM4C129     114         // 16/32-Bit Timer 6A
+#define INT_TIMER6B_TM4C129     115         // 16/32-Bit Timer 6B
+#define INT_TIMER7A_TM4C129     116         // 16/32-Bit Timer 7A
+#define INT_TIMER7B_TM4C129     117         // 16/32-Bit Timer 7B
+#define INT_I2C6_TM4C129        118         // I2C 6
+#define INT_I2C7_TM4C129        119         // I2C 7
+#define INT_ONEWIRE0_TM4C129    121         // 1-Wire
+#define INT_I2C8_TM4C129        125         // I2C 8
+#define INT_I2C9_TM4C129        126         // I2C 9
+#define INT_GPIOT_TM4C129       127         // GPIO T
+#define NUM_INTERRUPTS_TM4C129  129
+
+//*****************************************************************************
+//
+// TM4C123 Interrupt Class Definition
+//
+//*****************************************************************************
+#if defined(TARGET_IS_TM4C123_RA1) || defined(TARGET_IS_TM4C123_RA2) || \
+    defined(TARGET_IS_TM4C123_RA3) || defined(TARGET_IS_TM4C123_RB0) || \
+    defined(TARGET_IS_TM4C123_RB1) || defined(PART_TM4C1230C3PM) || \
+    defined(PART_TM4C1230D5PM) || defined(PART_TM4C1230E6PM) || \
+    defined(PART_TM4C1230H6PM) || defined(PART_TM4C1231C3PM) || \
+    defined(PART_TM4C1231D5PM) || defined(PART_TM4C1231D5PZ) || \
+    defined(PART_TM4C1231E6PM) || defined(PART_TM4C1231E6PZ) || \
+    defined(PART_TM4C1231H6PM) || defined(PART_TM4C1231H6PZ) || \
+    defined(PART_TM4C1232C3PM) || defined(PART_TM4C1232D5PM) || \
+    defined(PART_TM4C1232E6PM) || defined(PART_TM4C1232H6PM) || \
+    defined(PART_TM4C1233C3PM) || defined(PART_TM4C1233D5PM) || \
+    defined(PART_TM4C1233D5PZ) || defined(PART_TM4C1233E6PM) || \
+    defined(PART_TM4C1233E6PZ) || defined(PART_TM4C1233H6PM) || \
+    defined(PART_TM4C1233H6PZ) || defined(PART_TM4C1236D5PM) || \
+    defined(PART_TM4C1236E6PM) || defined(PART_TM4C1236H6PM) || \
+    defined(PART_TM4C1237D5PM) || defined(PART_TM4C1237D5PZ) || \
+    defined(PART_TM4C1237E6PM) || defined(PART_TM4C1237E6PZ) || \
+    defined(PART_TM4C1237H6PM) || defined(PART_TM4C1237H6PZ) || \
+    defined(PART_TM4C123AE6PM) || defined(PART_TM4C123AH6PM) || \
+    defined(PART_TM4C123BE6PM) || defined(PART_TM4C123BE6PZ) || \
+    defined(PART_TM4C123BH6PM) || defined(PART_TM4C123BH6PZ) || \
+    defined(PART_TM4C123FE6PM) || defined(PART_TM4C123FH6PM) || \
+    defined(PART_TM4C123GE6PM) || defined(PART_TM4C123GE6PZ) || \
+    defined(PART_TM4C123GH6PM) || defined(PART_TM4C123GH6PZ) || \
+    defined(PART_TM4C1231H6PGE) || defined(PART_TM4C1233H6PGE) || \
+    defined(PART_TM4C1237H6PGE) || defined(PART_TM4C123BH6PGE) || \
+    defined(PART_TM4C123BH6ZRB) || defined(PART_TM4C123GH6PGE) || \
+    defined(PART_TM4C123GH6ZRB) || defined(PART_TM4C123GH6ZXR)
+#define INT_RESOLVE(intname, class) intname##TM4C123
+
+//*****************************************************************************
+//
+// TM4C129 Interrupt Class Definition
+//
+//*****************************************************************************
+#elif defined(TARGET_IS_TM4C129_RA0) || defined(PART_TM4C1290NCPDT) || \
+    defined(PART_TM4C1290NCZAD) || defined(PART_TM4C1292NCPDT) || \
+    defined(PART_TM4C1292NCZAD) || defined(PART_TM4C1294KCPDT) || \
+    defined(PART_TM4C1294NCPDT) || defined(PART_TM4C1294NCZAD) || \
+    defined(PART_TM4C1297NCZAD) || defined(PART_TM4C1299KCZAD) || \
+    defined(PART_TM4C1299NCZAD) || defined(PART_TM4C129CNCPDT) || \
+    defined(PART_TM4C129CNCZAD) || defined(PART_TM4C129DNCPDT) || \
+    defined(PART_TM4C129DNCZAD) || defined(PART_TM4C129EKCPDT) || \
+    defined(PART_TM4C129ENCPDT) || defined(PART_TM4C129ENCZAD) || \
+    defined(PART_TM4C129LNCZAD) || defined(PART_TM4C129XKCZAD) || \
+    defined(PART_TM4C129XNCZAD)
+#define INT_RESOLVE(intname, class) intname##TM4C129
+#else
+#define INT_DEVICE_CLASS        "UNKNOWN"
+#endif
+
+//*****************************************************************************
+//
+// Macros to resolve the INT_PERIPH_CLASS name to a common INT_PERIPH name.
+//
+//*****************************************************************************
+#define INT_CONCAT(intname, class)  INT_RESOLVE(intname, class)
+
+//*****************************************************************************
+//
+// The following are defines for the interrupt assignments.
+//
+//*****************************************************************************
+#define INT_ADC0SS0             INT_CONCAT(INT_ADC0SS0_, INT_DEVICE_CLASS)
+#define INT_ADC0SS1             INT_CONCAT(INT_ADC0SS1_, INT_DEVICE_CLASS)
+#define INT_ADC0SS2             INT_CONCAT(INT_ADC0SS2_, INT_DEVICE_CLASS)
+#define INT_ADC0SS3             INT_CONCAT(INT_ADC0SS3_, INT_DEVICE_CLASS)
+#define INT_ADC1SS0             INT_CONCAT(INT_ADC1SS0_, INT_DEVICE_CLASS)
+#define INT_ADC1SS1             INT_CONCAT(INT_ADC1SS1_, INT_DEVICE_CLASS)
+#define INT_ADC1SS2             INT_CONCAT(INT_ADC1SS2_, INT_DEVICE_CLASS)
+#define INT_ADC1SS3             INT_CONCAT(INT_ADC1SS3_, INT_DEVICE_CLASS)
+#define INT_AES0                INT_CONCAT(INT_AES0_, INT_DEVICE_CLASS)
+#define INT_CAN0                INT_CONCAT(INT_CAN0_, INT_DEVICE_CLASS)
+#define INT_CAN1                INT_CONCAT(INT_CAN1_, INT_DEVICE_CLASS)
+#define INT_COMP0               INT_CONCAT(INT_COMP0_, INT_DEVICE_CLASS)
+#define INT_COMP1               INT_CONCAT(INT_COMP1_, INT_DEVICE_CLASS)
+#define INT_COMP2               INT_CONCAT(INT_COMP2_, INT_DEVICE_CLASS)
+#define INT_DES0                INT_CONCAT(INT_DES0_, INT_DEVICE_CLASS)
+#define INT_EMAC0               INT_CONCAT(INT_EMAC0_, INT_DEVICE_CLASS)
+#define INT_EPI0                INT_CONCAT(INT_EPI0_, INT_DEVICE_CLASS)
+#define INT_FLASH               INT_CONCAT(INT_FLASH_, INT_DEVICE_CLASS)
+#define INT_GPIOA               INT_CONCAT(INT_GPIOA_, INT_DEVICE_CLASS)
+#define INT_GPIOB               INT_CONCAT(INT_GPIOB_, INT_DEVICE_CLASS)
+#define INT_GPIOC               INT_CONCAT(INT_GPIOC_, INT_DEVICE_CLASS)
+#define INT_GPIOD               INT_CONCAT(INT_GPIOD_, INT_DEVICE_CLASS)
+#define INT_GPIOE               INT_CONCAT(INT_GPIOE_, INT_DEVICE_CLASS)
+#define INT_GPIOF               INT_CONCAT(INT_GPIOF_, INT_DEVICE_CLASS)
+#define INT_GPIOG               INT_CONCAT(INT_GPIOG_, INT_DEVICE_CLASS)
+#define INT_GPIOH               INT_CONCAT(INT_GPIOH_, INT_DEVICE_CLASS)
+#define INT_GPIOJ               INT_CONCAT(INT_GPIOJ_, INT_DEVICE_CLASS)
+#define INT_GPIOK               INT_CONCAT(INT_GPIOK_, INT_DEVICE_CLASS)
+#define INT_GPIOL               INT_CONCAT(INT_GPIOL_, INT_DEVICE_CLASS)
+#define INT_GPIOM               INT_CONCAT(INT_GPIOM_, INT_DEVICE_CLASS)
+#define INT_GPION               INT_CONCAT(INT_GPION_, INT_DEVICE_CLASS)
+#define INT_GPIOP0              INT_CONCAT(INT_GPIOP0_, INT_DEVICE_CLASS)
+#define INT_GPIOP1              INT_CONCAT(INT_GPIOP1_, INT_DEVICE_CLASS)
+#define INT_GPIOP2              INT_CONCAT(INT_GPIOP2_, INT_DEVICE_CLASS)
+#define INT_GPIOP3              INT_CONCAT(INT_GPIOP3_, INT_DEVICE_CLASS)
+#define INT_GPIOP4              INT_CONCAT(INT_GPIOP4_, INT_DEVICE_CLASS)
+#define INT_GPIOP5              INT_CONCAT(INT_GPIOP5_, INT_DEVICE_CLASS)
+#define INT_GPIOP6              INT_CONCAT(INT_GPIOP6_, INT_DEVICE_CLASS)
+#define INT_GPIOP7              INT_CONCAT(INT_GPIOP7_, INT_DEVICE_CLASS)
+#define INT_GPIOQ0              INT_CONCAT(INT_GPIOQ0_, INT_DEVICE_CLASS)
+#define INT_GPIOQ1              INT_CONCAT(INT_GPIOQ1_, INT_DEVICE_CLASS)
+#define INT_GPIOQ2              INT_CONCAT(INT_GPIOQ2_, INT_DEVICE_CLASS)
+#define INT_GPIOQ3              INT_CONCAT(INT_GPIOQ3_, INT_DEVICE_CLASS)
+#define INT_GPIOQ4              INT_CONCAT(INT_GPIOQ4_, INT_DEVICE_CLASS)
+#define INT_GPIOQ5              INT_CONCAT(INT_GPIOQ5_, INT_DEVICE_CLASS)
+#define INT_GPIOQ6              INT_CONCAT(INT_GPIOQ6_, INT_DEVICE_CLASS)
+#define INT_GPIOQ7              INT_CONCAT(INT_GPIOQ7_, INT_DEVICE_CLASS)
+#define INT_GPIOR               INT_CONCAT(INT_GPIOR_, INT_DEVICE_CLASS)
+#define INT_GPIOS               INT_CONCAT(INT_GPIOS_, INT_DEVICE_CLASS)
+#define INT_GPIOT               INT_CONCAT(INT_GPIOT_, INT_DEVICE_CLASS)
+#define INT_HIBERNATE           INT_CONCAT(INT_HIBERNATE_, INT_DEVICE_CLASS)
+#define INT_I2C0                INT_CONCAT(INT_I2C0_, INT_DEVICE_CLASS)
+#define INT_I2C1                INT_CONCAT(INT_I2C1_, INT_DEVICE_CLASS)
+#define INT_I2C2                INT_CONCAT(INT_I2C2_, INT_DEVICE_CLASS)
+#define INT_I2C3                INT_CONCAT(INT_I2C3_, INT_DEVICE_CLASS)
+#define INT_I2C4                INT_CONCAT(INT_I2C4_, INT_DEVICE_CLASS)
+#define INT_I2C5                INT_CONCAT(INT_I2C5_, INT_DEVICE_CLASS)
+#define INT_I2C6                INT_CONCAT(INT_I2C6_, INT_DEVICE_CLASS)
+#define INT_I2C7                INT_CONCAT(INT_I2C7_, INT_DEVICE_CLASS)
+#define INT_I2C8                INT_CONCAT(INT_I2C8_, INT_DEVICE_CLASS)
+#define INT_I2C9                INT_CONCAT(INT_I2C9_, INT_DEVICE_CLASS)
+#define INT_LCD0                INT_CONCAT(INT_LCD0_, INT_DEVICE_CLASS)
+#define INT_ONEWIRE0            INT_CONCAT(INT_ONEWIRE0_, INT_DEVICE_CLASS)
+#define INT_PWM0_0              INT_CONCAT(INT_PWM0_0_, INT_DEVICE_CLASS)
+#define INT_PWM0_1              INT_CONCAT(INT_PWM0_1_, INT_DEVICE_CLASS)
+#define INT_PWM0_2              INT_CONCAT(INT_PWM0_2_, INT_DEVICE_CLASS)
+#define INT_PWM0_3              INT_CONCAT(INT_PWM0_3_, INT_DEVICE_CLASS)
+#define INT_PWM0_FAULT          INT_CONCAT(INT_PWM0_FAULT_, INT_DEVICE_CLASS)
+#define INT_PWM1_0              INT_CONCAT(INT_PWM1_0_, INT_DEVICE_CLASS)
+#define INT_PWM1_1              INT_CONCAT(INT_PWM1_1_, INT_DEVICE_CLASS)
+#define INT_PWM1_2              INT_CONCAT(INT_PWM1_2_, INT_DEVICE_CLASS)
+#define INT_PWM1_3              INT_CONCAT(INT_PWM1_3_, INT_DEVICE_CLASS)
+#define INT_PWM1_FAULT          INT_CONCAT(INT_PWM1_FAULT_, INT_DEVICE_CLASS)
+#define INT_QEI0                INT_CONCAT(INT_QEI0_, INT_DEVICE_CLASS)
+#define INT_QEI1                INT_CONCAT(INT_QEI1_, INT_DEVICE_CLASS)
+#define INT_SHA0                INT_CONCAT(INT_SHA0_, INT_DEVICE_CLASS)
+#define INT_SSI0                INT_CONCAT(INT_SSI0_, INT_DEVICE_CLASS)
+#define INT_SSI1                INT_CONCAT(INT_SSI1_, INT_DEVICE_CLASS)
+#define INT_SSI2                INT_CONCAT(INT_SSI2_, INT_DEVICE_CLASS)
+#define INT_SSI3                INT_CONCAT(INT_SSI3_, INT_DEVICE_CLASS)
+#define INT_SYSCTL              INT_CONCAT(INT_SYSCTL_, INT_DEVICE_CLASS)
+#define INT_SYSEXC              INT_CONCAT(INT_SYSEXC_, INT_DEVICE_CLASS)
+#define INT_TAMPER0             INT_CONCAT(INT_TAMPER0_, INT_DEVICE_CLASS)
+#define INT_TIMER0A             INT_CONCAT(INT_TIMER0A_, INT_DEVICE_CLASS)
+#define INT_TIMER0B             INT_CONCAT(INT_TIMER0B_, INT_DEVICE_CLASS)
+#define INT_TIMER1A             INT_CONCAT(INT_TIMER1A_, INT_DEVICE_CLASS)
+#define INT_TIMER1B             INT_CONCAT(INT_TIMER1B_, INT_DEVICE_CLASS)
+#define INT_TIMER2A             INT_CONCAT(INT_TIMER2A_, INT_DEVICE_CLASS)
+#define INT_TIMER2B             INT_CONCAT(INT_TIMER2B_, INT_DEVICE_CLASS)
+#define INT_TIMER3A             INT_CONCAT(INT_TIMER3A_, INT_DEVICE_CLASS)
+#define INT_TIMER3B             INT_CONCAT(INT_TIMER3B_, INT_DEVICE_CLASS)
+#define INT_TIMER4A             INT_CONCAT(INT_TIMER4A_, INT_DEVICE_CLASS)
+#define INT_TIMER4B             INT_CONCAT(INT_TIMER4B_, INT_DEVICE_CLASS)
+#define INT_TIMER5A             INT_CONCAT(INT_TIMER5A_, INT_DEVICE_CLASS)
+#define INT_TIMER5B             INT_CONCAT(INT_TIMER5B_, INT_DEVICE_CLASS)
+#define INT_TIMER6A             INT_CONCAT(INT_TIMER6A_, INT_DEVICE_CLASS)
+#define INT_TIMER6B             INT_CONCAT(INT_TIMER6B_, INT_DEVICE_CLASS)
+#define INT_TIMER7A             INT_CONCAT(INT_TIMER7A_, INT_DEVICE_CLASS)
+#define INT_TIMER7B             INT_CONCAT(INT_TIMER7B_, INT_DEVICE_CLASS)
+#define INT_UART0               INT_CONCAT(INT_UART0_, INT_DEVICE_CLASS)
+#define INT_UART1               INT_CONCAT(INT_UART1_, INT_DEVICE_CLASS)
+#define INT_UART2               INT_CONCAT(INT_UART2_, INT_DEVICE_CLASS)
+#define INT_UART3               INT_CONCAT(INT_UART3_, INT_DEVICE_CLASS)
+#define INT_UART4               INT_CONCAT(INT_UART4_, INT_DEVICE_CLASS)
+#define INT_UART5               INT_CONCAT(INT_UART5_, INT_DEVICE_CLASS)
+#define INT_UART6               INT_CONCAT(INT_UART6_, INT_DEVICE_CLASS)
+#define INT_UART7               INT_CONCAT(INT_UART7_, INT_DEVICE_CLASS)
+#define INT_UDMA                INT_CONCAT(INT_UDMA_, INT_DEVICE_CLASS)
+#define INT_UDMAERR             INT_CONCAT(INT_UDMAERR_, INT_DEVICE_CLASS)
+#define INT_USB0                INT_CONCAT(INT_USB0_, INT_DEVICE_CLASS)
+#define INT_WATCHDOG            INT_CONCAT(INT_WATCHDOG_, INT_DEVICE_CLASS)
+#define INT_WTIMER0A            INT_CONCAT(INT_WTIMER0A_, INT_DEVICE_CLASS)
+#define INT_WTIMER0B            INT_CONCAT(INT_WTIMER0B_, INT_DEVICE_CLASS)
+#define INT_WTIMER1A            INT_CONCAT(INT_WTIMER1A_, INT_DEVICE_CLASS)
+#define INT_WTIMER1B            INT_CONCAT(INT_WTIMER1B_, INT_DEVICE_CLASS)
+#define INT_WTIMER2A            INT_CONCAT(INT_WTIMER2A_, INT_DEVICE_CLASS)
+#define INT_WTIMER2B            INT_CONCAT(INT_WTIMER2B_, INT_DEVICE_CLASS)
+#define INT_WTIMER3A            INT_CONCAT(INT_WTIMER3A_, INT_DEVICE_CLASS)
+#define INT_WTIMER3B            INT_CONCAT(INT_WTIMER3B_, INT_DEVICE_CLASS)
+#define INT_WTIMER4A            INT_CONCAT(INT_WTIMER4A_, INT_DEVICE_CLASS)
+#define INT_WTIMER4B            INT_CONCAT(INT_WTIMER4B_, INT_DEVICE_CLASS)
+#define INT_WTIMER5A            INT_CONCAT(INT_WTIMER5A_, INT_DEVICE_CLASS)
+#define INT_WTIMER5B            INT_CONCAT(INT_WTIMER5B_, INT_DEVICE_CLASS)
+
+//*****************************************************************************
+//
+// The following are defines for the total number of interrupts.
+//
+//*****************************************************************************
+#define NUM_INTERRUPTS          INT_CONCAT(NUM_INTERRUPTS_, INT_DEVICE_CLASS)
+
+//*****************************************************************************
+//
+// The following are defines for the total number of priority levels.
+//
+//*****************************************************************************
+#define NUM_PRIORITY            8
+#define NUM_PRIORITY_BITS       3
+
+#endif // __HW_INTS_H__

+ 575 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_lcd.h

@@ -0,0 +1,575 @@
+//*****************************************************************************
+//
+// hw_lcd.h - Defines and macros used when accessing the LCD controller.
+//
+// Copyright (c) 2011-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Firmware Development Package.
+//
+//*****************************************************************************
+
+#ifndef __HW_LCD_H__
+#define __HW_LCD_H__
+
+//*****************************************************************************
+//
+// The following are defines for the LCD register offsets.
+//
+//*****************************************************************************
+#define LCD_O_PID               0x00000000  // LCD PID Register Format
+#define LCD_O_CTL               0x00000004  // LCD Control
+#define LCD_O_LIDDCTL           0x0000000C  // LCD LIDD Control
+#define LCD_O_LIDDCS0CFG        0x00000010  // LCD LIDD CS0 Configuration
+#define LCD_O_LIDDCS0ADDR       0x00000014  // LIDD CS0 Read/Write Address
+#define LCD_O_LIDDCS0DATA       0x00000018  // LIDD CS0 Data Read/Write
+                                            // Initiation
+#define LCD_O_LIDDCS1CFG        0x0000001C  // LIDD CS1 Configuration
+#define LCD_O_LIDDCS1ADDR       0x00000020  // LIDD CS1 Address Read/Write
+                                            // Initiation
+#define LCD_O_LIDDCS1DATA       0x00000024  // LIDD CS1 Data Read/Write
+                                            // Initiation
+#define LCD_O_RASTRCTL          0x00000028  // LCD Raster Control
+#define LCD_O_RASTRTIM0         0x0000002C  // LCD Raster Timing 0
+#define LCD_O_RASTRTIM1         0x00000030  // LCD Raster Timing 1
+#define LCD_O_RASTRTIM2         0x00000034  // LCD Raster Timing 2
+#define LCD_O_RASTRSUBP1        0x00000038  // LCD Raster Subpanel Display 1
+#define LCD_O_RASTRSUBP2        0x0000003C  // LCD Raster Subpanel Display 2
+#define LCD_O_DMACTL            0x00000040  // LCD DMA Control
+#define LCD_O_DMABAFB0          0x00000044  // LCD DMA Frame Buffer 0 Base
+                                            // Address
+#define LCD_O_DMACAFB0          0x00000048  // LCD DMA Frame Buffer 0 Ceiling
+                                            // Address
+#define LCD_O_DMABAFB1          0x0000004C  // LCD DMA Frame Buffer 1 Base
+                                            // Address
+#define LCD_O_DMACAFB1          0x00000050  // LCD DMA Frame Buffer 1 Ceiling
+                                            // Address
+#define LCD_O_SYSCFG            0x00000054  // LCD System Configuration
+                                            // Register
+#define LCD_O_RISSET            0x00000058  // LCD Interrupt Raw Status and Set
+                                            // Register
+#define LCD_O_MISCLR            0x0000005C  // LCD Interrupt Status and Clear
+#define LCD_O_IM                0x00000060  // LCD Interrupt Mask
+#define LCD_O_IENC              0x00000064  // LCD Interrupt Enable Clear
+#define LCD_O_CLKEN             0x0000006C  // LCD Clock Enable
+#define LCD_O_CLKRESET          0x00000070  // LCD Clock Resets
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the LCD_O_PID register.
+//
+//*****************************************************************************
+#define LCD_PID_MAJOR_M         0x00000700  // Major Release Number
+#define LCD_PID_MINOR_M         0x0000003F  // Minor Release Number
+#define LCD_PID_MAJOR_S         8
+#define LCD_PID_MINOR_S         0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the LCD_O_CTL register.
+//
+//*****************************************************************************
+#define LCD_CTL_CLKDIV_M        0x0000FF00  // Clock Divisor
+#define LCD_CTL_UFLOWRST        0x00000002  // Underflow Restart
+#define LCD_CTL_LCDMODE         0x00000001  // LCD Mode Select
+#define LCD_CTL_CLKDIV_S        8
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the LCD_O_LIDDCTL register.
+//
+//*****************************************************************************
+#define LCD_LIDDCTL_DMACS       0x00000200  // CS0/CS1 Select for LIDD DMA
+                                            // Writes
+#define LCD_LIDDCTL_DMAEN       0x00000100  // LIDD DMA Enable
+#define LCD_LIDDCTL_CS1E1       0x00000080  // Chip Select 1 (CS1)/Enable 1(E1)
+                                            // Polarity Control
+#define LCD_LIDDCTL_CS0E0       0x00000040  // Chip Select 0 (CS0)/Enable 0
+                                            // (E0) Polarity Control
+#define LCD_LIDDCTL_WRDIRINV    0x00000020  // Write Strobe (WR) /Direction
+                                            // (DIR) Polarity Control
+#define LCD_LIDDCTL_RDEN        0x00000010  // Read Strobe (RD) /Direct Enable
+                                            // (EN) Polarity Control
+#define LCD_LIDDCTL_ALE         0x00000008  // Address Latch Enable (ALE)
+                                            // Polarity Control
+#define LCD_LIDDCTL_MODE_M      0x00000007  // LIDD Mode Select
+#define LCD_LIDDCTL_MODE_SYNCM68                                              \
+                                0x00000000  // Synchronous Motorola 6800 Mode
+#define LCD_LIDDCTL_MODE_ASYNCM68                                             \
+                                0x00000001  // Asynchronous Motorola 6800 Mode
+#define LCD_LIDDCTL_MODE_SYNCM80                                              \
+                                0x00000002  // Synchronous Intel 8080 mode
+#define LCD_LIDDCTL_MODE_ASYNCM80                                             \
+                                0x00000003  // Asynchronous Intel 8080 mode
+#define LCD_LIDDCTL_MODE_ASYNCHIT                                             \
+                                0x00000004  // Asynchronous Hitachi mode
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the LCD_O_LIDDCS0CFG
+// register.
+//
+//*****************************************************************************
+#define LCD_LIDDCS0CFG_WRSU_M   0xF8000000  // Write Strobe (WR) Set-Up Cycles
+#define LCD_LIDDCS0CFG_WRDUR_M  0x07E00000  // Write Strobe (WR) Duration
+                                            // Cycles
+#define LCD_LIDDCS0CFG_WRHOLD_M 0x001E0000  // Write Strobe (WR) Hold cycles
+#define LCD_LIDDCS0CFG_RDSU_M   0x0001F000  // Read Strobe (RD) Set-Up cycles
+#define LCD_LIDDCS0CFG_RDDUR_M  0x00000FC0  // Read Strobe (RD) Duration cycles
+#define LCD_LIDDCS0CFG_RDHOLD_M 0x0000003C  // Read Strobe (RD) Hold cycles
+#define LCD_LIDDCS0CFG_GAP_M    0x00000003  // Field value defines the number
+                                            // of LCDMCLK cycles (GAP +1)
+                                            // between the end of one CS0
+                                            // (LCDAC) device access and the
+                                            // start of another CS0 (LCDAC)
+                                            // device access unless the two
+                                            // accesses are both reads
+#define LCD_LIDDCS0CFG_WRSU_S   27
+#define LCD_LIDDCS0CFG_WRDUR_S  21
+#define LCD_LIDDCS0CFG_WRHOLD_S 17
+#define LCD_LIDDCS0CFG_RDSU_S   12
+#define LCD_LIDDCS0CFG_RDDUR_S  6
+#define LCD_LIDDCS0CFG_RDHOLD_S 2
+#define LCD_LIDDCS0CFG_GAP_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the LCD_O_LIDDCS0ADDR
+// register.
+//
+//*****************************************************************************
+#define LCD_LIDDCS0ADDR_CS0ADDR_M                                             \
+                                0x0000FFFF  // LCD Address
+#define LCD_LIDDCS0ADDR_CS0ADDR_S                                             \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the LCD_O_LIDDCS0DATA
+// register.
+//
+//*****************************************************************************
+#define LCD_LIDDCS0DATA_CS0DATA_M                                             \
+                                0x0000FFFF  // LCD Data Read/Write
+#define LCD_LIDDCS0DATA_CS0DATA_S                                             \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the LCD_O_LIDDCS1CFG
+// register.
+//
+//*****************************************************************************
+#define LCD_LIDDCS1CFG_WRSU_M   0xF8000000  // Write Strobe (WR) Set-Up Cycles
+#define LCD_LIDDCS1CFG_WRDUR_M  0x07E00000  // Write Strobe (WR) Duration
+                                            // Cycles
+#define LCD_LIDDCS1CFG_WRHOLD_M 0x001E0000  // Write Strobe (WR) Hold cycles
+#define LCD_LIDDCS1CFG_RDSU_M   0x0001F000  // Read Strobe (RD) Set-Up cycles
+#define LCD_LIDDCS1CFG_RDDUR_M  0x00000FC0  // Read Strobe (RD) Duration cycles
+#define LCD_LIDDCS1CFG_RDHOLD_M 0x0000003C  // Read Strobe (RD) Hold cycles
+#define LCD_LIDDCS1CFG_GAP_M    0x00000003  // Field value defines the number
+                                            // of LCDMCLK cycles (GAP + 1)
+                                            // between the end of one CS1
+                                            // (LCDAC) device access and the
+                                            // start of another CS0 (LCDAC)
+                                            // device access unless the two
+                                            // accesses are both reads
+#define LCD_LIDDCS1CFG_WRSU_S   27
+#define LCD_LIDDCS1CFG_WRDUR_S  21
+#define LCD_LIDDCS1CFG_WRHOLD_S 17
+#define LCD_LIDDCS1CFG_RDSU_S   12
+#define LCD_LIDDCS1CFG_RDDUR_S  6
+#define LCD_LIDDCS1CFG_RDHOLD_S 2
+#define LCD_LIDDCS1CFG_GAP_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the LCD_O_LIDDCS1ADDR
+// register.
+//
+//*****************************************************************************
+#define LCD_LIDDCS1ADDR_CS1ADDR_M                                             \
+                                0x0000FFFF  // LCD Address Bus
+#define LCD_LIDDCS1ADDR_CS1ADDR_S                                             \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the LCD_O_LIDDCS1DATA
+// register.
+//
+//*****************************************************************************
+#define LCD_LIDDCS1DATA_CS0DATA_M                                             \
+                                0x0000FFFF  // LCD Data Read/Write Initiation
+#define LCD_LIDDCS1DATA_CS0DATA_S                                             \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the LCD_O_RASTRCTL register.
+//
+//*****************************************************************************
+#define LCD_RASTRCTL_TFT24UPCK  0x04000000  // 24-bit TFT Mode Packing
+#define LCD_RASTRCTL_TFT24      0x02000000  // 24-Bit TFT Mode
+#define LCD_RASTRCTL_FRMBUFSZ   0x01000000  // Frame Buffer Select
+#define LCD_RASTRCTL_TFTMAP     0x00800000  // TFT Mode Alternate Signal
+                                            // Mapping for Palettized
+                                            // Framebuffer
+#define LCD_RASTRCTL_NIBMODE    0x00400000  // Nibble Mode
+#define LCD_RASTRCTL_PALMODE_M  0x00300000  // Pallette Loading Mode
+#define LCD_RASTRCTL_PALMODE_PALDAT                                           \
+                                0x00000000  // Palette and data loading, reset
+                                            // value
+#define LCD_RASTRCTL_PALMODE_PAL                                              \
+                                0x00100000  // Palette loading only
+#define LCD_RASTRCTL_PALMODE_DAT                                              \
+                                0x00200000  // Data loading only
+#define LCD_RASTRCTL_REQDLY_M   0x000FF000  // Palette Loading Delay
+#define LCD_RASTRCTL_MONO8B     0x00000200  // Mono 8-Bit
+#define LCD_RASTRCTL_RDORDER    0x00000100  // Raster Data Order Select
+#define LCD_RASTRCTL_LCDTFT     0x00000080  // LCD TFT
+#define LCD_RASTRCTL_LCDBW      0x00000002  // LCD Monochrome
+#define LCD_RASTRCTL_LCDEN      0x00000001  // LCD Controller Enable for Raster
+                                            // Operations
+#define LCD_RASTRCTL_REQDLY_S   12
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the LCD_O_RASTRTIM0
+// register.
+//
+//*****************************************************************************
+#define LCD_RASTRTIM0_HBP_M     0xFF000000  // Horizontal Back Porch Lowbits
+#define LCD_RASTRTIM0_HFP_M     0x00FF0000  // Horizontal Front Porch Lowbits
+#define LCD_RASTRTIM0_HSW_M     0x0000FC00  // Horizontal Sync Pulse Width
+                                            // Lowbits
+#define LCD_RASTRTIM0_PPL_M     0x000003F0  // Pixels-per-line LSB[9:4]
+#define LCD_RASTRTIM0_MSBPPL    0x00000008  // Pixels-per-line MSB[10]
+#define LCD_RASTRTIM0_HBP_S     24
+#define LCD_RASTRTIM0_HFP_S     16
+#define LCD_RASTRTIM0_HSW_S     10
+#define LCD_RASTRTIM0_PPL_S     4
+#define LCD_RASTRTIM0_MSBPPL_S  3
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the LCD_O_RASTRTIM1
+// register.
+//
+//*****************************************************************************
+#define LCD_RASTRTIM1_VBP_M     0xFF000000  // Vertical Back Porch
+#define LCD_RASTRTIM1_VFP_M     0x00FF0000  // Vertical Front Porch
+#define LCD_RASTRTIM1_VSW_M     0x0000FC00  // Vertical Sync Width Pulse
+#define LCD_RASTRTIM1_LPP_M     0x000003FF  // Lines Per Panel
+#define LCD_RASTRTIM1_VBP_S     24
+#define LCD_RASTRTIM1_VFP_S     16
+#define LCD_RASTRTIM1_VSW_S     10
+#define LCD_RASTRTIM1_LPP_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the LCD_O_RASTRTIM2
+// register.
+//
+//*****************************************************************************
+#define LCD_RASTRTIM2_HSW_M     0x78000000  // Bits 9:6 of the horizontal sync
+                                            // width field
+#define LCD_RASTRTIM2_MSBLPP    0x04000000  // MSB of Lines Per Panel
+#define LCD_RASTRTIM2_PXLCLKCTL 0x02000000  // Hsync/Vsync Pixel Clock Control
+                                            // On/Off
+#define LCD_RASTRTIM2_PSYNCRF   0x01000000  // Program HSYNC/VSYNC Rise or Fall
+#define LCD_RASTRTIM2_INVOE     0x00800000  // Invert Output Enable
+#define LCD_RASTRTIM2_INVPXLCLK 0x00400000  // Invert Pixel Clock
+#define LCD_RASTRTIM2_IHS       0x00200000  // Invert Hysync
+#define LCD_RASTRTIM2_IVS       0x00100000  // Invert Vsync
+#define LCD_RASTRTIM2_ACBI_M    0x000F0000  // AC Bias Pins Transitions per
+                                            // Interrupt
+#define LCD_RASTRTIM2_ACBF_M    0x0000FF00  // AC Bias Pin Frequency
+#define LCD_RASTRTIM2_MSBHBP_M  0x00000030  // Bits 9:8 of the horizontal back
+                                            // porch field
+#define LCD_RASTRTIM2_MSBHFP_M  0x00000003  // Bits 9:8 of the horizontal front
+                                            // porch field
+#define LCD_RASTRTIM2_HSW_S     27
+#define LCD_RASTRTIM2_MSBLPP_S  26
+#define LCD_RASTRTIM2_ACBI_S    16
+#define LCD_RASTRTIM2_ACBF_S    8
+#define LCD_RASTRTIM2_MSBHBP_S  4
+#define LCD_RASTRTIM2_MSBHFP_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the LCD_O_RASTRSUBP1
+// register.
+//
+//*****************************************************************************
+#define LCD_RASTRSUBP1_SPEN     0x80000000  // Sub Panel Enable
+#define LCD_RASTRSUBP1_HOLS     0x20000000  // High or Low Signal
+#define LCD_RASTRSUBP1_LPPT_M   0x03FF0000  // Line Per Panel Threshold
+#define LCD_RASTRSUBP1_DPDLSB_M 0x0000FFFF  // Default Pixel Data LSB[15:0]
+#define LCD_RASTRSUBP1_LPPT_S   16
+#define LCD_RASTRSUBP1_DPDLSB_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the LCD_O_RASTRSUBP2
+// register.
+//
+//*****************************************************************************
+#define LCD_RASTRSUBP2_LPPTMSB  0x00000100  // Lines Per Panel Threshold Bit 10
+#define LCD_RASTRSUBP2_DPDMSB_M 0x000000FF  // Default Pixel Data MSB [23:16]
+#define LCD_RASTRSUBP2_DPDMSB_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the LCD_O_DMACTL register.
+//
+//*****************************************************************************
+#define LCD_DMACTL_FIFORDY_M    0x00000700  // DMA FIFO threshold
+#define LCD_DMACTL_FIFORDY_8    0x00000000  // 8 words
+#define LCD_DMACTL_FIFORDY_16   0x00000100  // 16 words
+#define LCD_DMACTL_FIFORDY_32   0x00000200  // 32 words
+#define LCD_DMACTL_FIFORDY_64   0x00000300  // 64 words
+#define LCD_DMACTL_FIFORDY_128  0x00000400  // 128 words
+#define LCD_DMACTL_FIFORDY_256  0x00000500  // 256 words
+#define LCD_DMACTL_FIFORDY_512  0x00000600  // 512 words
+#define LCD_DMACTL_BURSTSZ_M    0x00000070  // Burst Size setting for DMA
+                                            // transfers (all DMA transfers are
+                                            // 32 bits wide):
+#define LCD_DMACTL_BURSTSZ_4    0x00000020  // burst size of 4
+#define LCD_DMACTL_BURSTSZ_8    0x00000030  // burst size of 8
+#define LCD_DMACTL_BURSTSZ_16   0x00000040  // burst size of 16
+#define LCD_DMACTL_BYTESWAP     0x00000008  // This bit controls the bytelane
+                                            // ordering of the data on the
+                                            // output of the DMA module
+#define LCD_DMACTL_BIGDEND      0x00000002  // Big Endian Enable
+#define LCD_DMACTL_FMODE        0x00000001  // Frame Mode
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the LCD_O_DMABAFB0 register.
+//
+//*****************************************************************************
+#define LCD_DMABAFB0_FB0BA_M    0xFFFFFFFC  // Frame Buffer 0 Base Address
+                                            // pointer
+#define LCD_DMABAFB0_FB0BA_S    2
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the LCD_O_DMACAFB0 register.
+//
+//*****************************************************************************
+#define LCD_DMACAFB0_FB0CA_M    0xFFFFFFFC  // Frame Buffer 0 Ceiling Address
+                                            // pointer
+#define LCD_DMACAFB0_FB0CA_S    2
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the LCD_O_DMABAFB1 register.
+//
+//*****************************************************************************
+#define LCD_DMABAFB1_FB1BA_M    0xFFFFFFFC  // Frame Buffer 1 Base Address
+                                            // pointer
+#define LCD_DMABAFB1_FB1BA_S    2
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the LCD_O_DMACAFB1 register.
+//
+//*****************************************************************************
+#define LCD_DMACAFB1_FB1CA_M    0xFFFFFFFC  // Frame Buffer 1 Ceiling Address
+                                            // pointer
+#define LCD_DMACAFB1_FB1CA_S    2
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the LCD_O_SYSCFG register.
+//
+//*****************************************************************************
+#define LCD_SYSCFG_STDBY_M      0x00000030  // Standby Mode
+#define LCD_SYSCFG_STDBY_FORCE  0x00000000  // Force-standby mode: local
+                                            // initiator is unconditionally
+                                            // placed in standby state. Backup
+                                            // mode, for debug only
+#define LCD_SYSCFG_STDBY_NONE   0x00000010  // No-standby mode: local initiator
+                                            // is unconditionally placed out of
+                                            // standby state. Backup mode, for
+                                            // debug only
+#define LCD_SYSCFG_STDBY_SMART  0x00000020  // Smart-standby mode: local
+                                            // initiator standby status depends
+                                            // on local conditions, that is,
+                                            // the module's functional
+                                            // requirement from the initiator.
+                                            // IP module shall not generate
+                                            // (initiator-related) wakeup
+                                            // events
+#define LCD_SYSCFG_IDLEMODE_M   0x0000000C  // Idle Mode
+#define LCD_SYSCFG_IDLEMODE_FORCE                                             \
+                                0x00000000  // Force-idle mode: local target's
+                                            // idle state follows
+                                            // (acknowledges) the system's idle
+                                            // requests unconditionally, that
+                                            // is, regardless of the IP
+                                            // module's internal requirements.
+                                            // Backup mode, for debug only
+#define LCD_SYSCFG_IDLEMODE_NONE                                              \
+                                0x00000004  // No-idle mode: local target never
+                                            // enters idle state. Backup mode,
+                                            // for debug only
+#define LCD_SYSCFG_IDLEMODE_SMART                                             \
+                                0x00000008  // Smart-idle mode: local target's
+                                            // idle state eventually follows
+                                            // (acknowledges) the system's idle
+                                            // requests, depending on the IP
+                                            // module's internal requirements.
+                                            // IP module shall not generate
+                                            // (IRQ- or DMA-requestrelated)
+                                            // wakeup events
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the LCD_O_RISSET register.
+//
+//*****************************************************************************
+#define LCD_RISSET_EOF1         0x00000200  // DMA End-of-Frame 1 Raw Interrupt
+                                            // Status and Set
+#define LCD_RISSET_EOF0         0x00000100  // DMA End-of-Frame 0 Raw Interrupt
+                                            // Status and Set
+#define LCD_RISSET_PALLOAD      0x00000040  // DMA Palette Loaded Raw Interrupt
+                                            // Status and Set
+#define LCD_RISSET_FIFOU        0x00000020  // DMA FIFO Underflow Raw Interrupt
+                                            // Status and Set
+#define LCD_RISSET_ACBS         0x00000008  // AC Bias Count Raw Interrupt
+                                            // Status and Set
+#define LCD_RISSET_SYNCS        0x00000004  // Frame Synchronization Lost Raw
+                                            // Interrupt Status and Set
+#define LCD_RISSET_RRASTRDONE   0x00000002  // Raster Mode Frame Done interrupt
+#define LCD_RISSET_DONE         0x00000001  // Raster or LIDD Frame Done
+                                            // (shared, depends on whether
+                                            // Raster or LIDD mode enabled) Raw
+                                            // Interrupt Status and Set
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the LCD_O_MISCLR register.
+//
+//*****************************************************************************
+#define LCD_MISCLR_EOF1         0x00000200  // DMA End-of-Frame 1 Enabled
+                                            // Interrupt and Clear
+#define LCD_MISCLR_EOF0         0x00000100  // DMA End-of-Frame 0 Raw Interrupt
+                                            // and Clear
+#define LCD_MISCLR_PALLOAD      0x00000040  // DMA Palette Loaded Enabled
+                                            // Interrupt and Clear
+#define LCD_MISCLR_FIFOU        0x00000020  // DMA FIFO Underflow Enabled
+                                            // Interrupt and Clear
+#define LCD_MISCLR_ACBS         0x00000008  // AC Bias Count Enabled Interrupt
+                                            // and Clear
+#define LCD_MISCLR_SYNCS        0x00000004  // Frame Synchronization Lost
+                                            // Enabled Interrupt and Clear
+#define LCD_MISCLR_RRASTRDONE   0x00000002  // Raster Mode Frame Done interrupt
+#define LCD_MISCLR_DONE         0x00000001  // Raster or LIDD Frame Done
+                                            // (shared, depends on whether
+                                            // Raster or LIDD mode enabled)
+                                            // Enabled Interrupt and Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the LCD_O_IM register.
+//
+//*****************************************************************************
+#define LCD_IM_EOF1             0x00000200  // DMA End-of-Frame 1 Interrupt
+                                            // Enable Set
+#define LCD_IM_EOF0             0x00000100  // DMA End-of-Frame 0 Interrupt
+                                            // Enable Set
+#define LCD_IM_PALLOAD          0x00000040  // DMA Palette Loaded Interrupt
+                                            // Enable Set
+#define LCD_IM_FIFOU            0x00000020  // DMA FIFO Underflow Interrupt
+                                            // Enable Set
+#define LCD_IM_ACBS             0x00000008  // AC Bias Count Interrupt Enable
+                                            // Set
+#define LCD_IM_SYNCS            0x00000004  // Frame Synchronization Lost
+                                            // Interrupt Enable Set
+#define LCD_IM_RRASTRDONE       0x00000002  // Raster Mode Frame Done Interrupt
+                                            // Enable Set
+#define LCD_IM_DONE             0x00000001  // Raster or LIDD Frame Done
+                                            // (shared, depends on whether
+                                            // Raster or LIDD mode enabled)
+                                            // Interrupt Enable Set
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the LCD_O_IENC register.
+//
+//*****************************************************************************
+#define LCD_IENC_EOF1           0x00000200  // DMA End-of-Frame 1 Interrupt
+                                            // Enable Clear
+#define LCD_IENC_EOF0           0x00000100  // DMA End-of-Frame 0 Interrupt
+                                            // Enable Clear
+#define LCD_IENC_PALLOAD        0x00000040  // DMA Palette Loaded Interrupt
+                                            // Enable Clear
+#define LCD_IENC_FIFOU          0x00000020  // DMA FIFO Underflow Interrupt
+                                            // Enable Clear
+#define LCD_IENC_ACBS           0x00000008  // AC Bias Count Interrupt Enable
+                                            // Clear
+#define LCD_IENC_SYNCS          0x00000004  // Frame Synchronization Lost
+                                            // Interrupt Enable Clear
+#define LCD_IENC_RRASTRDONE     0x00000002  // Raster Mode Frame Done Interrupt
+                                            // Enable Clear
+#define LCD_IENC_DONE           0x00000001  // Raster or LIDD Frame Done
+                                            // (shared, depends on whether
+                                            // Raster or LIDD mode enabled)
+                                            // Interrupt Enable Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the LCD_O_CLKEN register.
+//
+//*****************************************************************************
+#define LCD_CLKEN_DMA           0x00000004  // DMA Clock Enable
+#define LCD_CLKEN_LIDD          0x00000002  // LIDD Submodule Clock Enable
+#define LCD_CLKEN_CORE          0x00000001  // LCD Core Clock Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the LCD_O_CLKRESET register.
+//
+//*****************************************************************************
+#define LCD_CLKRESET_MAIN       0x00000008  // Software Reset for the entire
+                                            // LCD module
+#define LCD_CLKRESET_DMA        0x00000004  // Software Reset for the DMA
+                                            // submodule
+#define LCD_CLKRESET_LIDD       0x00000002  // Software Reset for the LIDD
+                                            // submodule (character displays)
+#define LCD_CLKRESET_CORE       0x00000001  // Software Reset for the Core,
+                                            // which encompasses the Raster
+                                            // Active Matrix and Passive Matrix
+                                            // logic
+
+#endif // __HW_LCD_H__

+ 151 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_memmap.h

@@ -0,0 +1,151 @@
+//*****************************************************************************
+//
+// hw_memmap.h - Macros defining the memory map of the device.
+//
+// Copyright (c) 2005-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Firmware Development Package.
+//
+//*****************************************************************************
+
+#ifndef __HW_MEMMAP_H__
+#define __HW_MEMMAP_H__
+
+//*****************************************************************************
+//
+// The following are defines for the base address of the memories and
+// peripherals.
+//
+//*****************************************************************************
+#define FLASH_BASE              0x00000000  // FLASH memory
+#define SRAM_BASE               0x20000000  // SRAM memory
+#define WATCHDOG0_BASE          0x40000000  // Watchdog0
+#define WATCHDOG1_BASE          0x40001000  // Watchdog1
+#define GPIO_PORTA_BASE         0x40004000  // GPIO Port A
+#define GPIO_PORTB_BASE         0x40005000  // GPIO Port B
+#define GPIO_PORTC_BASE         0x40006000  // GPIO Port C
+#define GPIO_PORTD_BASE         0x40007000  // GPIO Port D
+#define SSI0_BASE               0x40008000  // SSI0
+#define SSI1_BASE               0x40009000  // SSI1
+#define SSI2_BASE               0x4000A000  // SSI2
+#define SSI3_BASE               0x4000B000  // SSI3
+#define UART0_BASE              0x4000C000  // UART0
+#define UART1_BASE              0x4000D000  // UART1
+#define UART2_BASE              0x4000E000  // UART2
+#define UART3_BASE              0x4000F000  // UART3
+#define UART4_BASE              0x40010000  // UART4
+#define UART5_BASE              0x40011000  // UART5
+#define UART6_BASE              0x40012000  // UART6
+#define UART7_BASE              0x40013000  // UART7
+#define I2C0_BASE               0x40020000  // I2C0
+#define I2C1_BASE               0x40021000  // I2C1
+#define I2C2_BASE               0x40022000  // I2C2
+#define I2C3_BASE               0x40023000  // I2C3
+#define GPIO_PORTE_BASE         0x40024000  // GPIO Port E
+#define GPIO_PORTF_BASE         0x40025000  // GPIO Port F
+#define GPIO_PORTG_BASE         0x40026000  // GPIO Port G
+#define GPIO_PORTH_BASE         0x40027000  // GPIO Port H
+#define PWM0_BASE               0x40028000  // Pulse Width Modulator (PWM)
+#define PWM1_BASE               0x40029000  // Pulse Width Modulator (PWM)
+#define QEI0_BASE               0x4002C000  // QEI0
+#define QEI1_BASE               0x4002D000  // QEI1
+#define TIMER0_BASE             0x40030000  // Timer0
+#define TIMER1_BASE             0x40031000  // Timer1
+#define TIMER2_BASE             0x40032000  // Timer2
+#define TIMER3_BASE             0x40033000  // Timer3
+#define TIMER4_BASE             0x40034000  // Timer4
+#define TIMER5_BASE             0x40035000  // Timer5
+#define WTIMER0_BASE            0x40036000  // Wide Timer0
+#define WTIMER1_BASE            0x40037000  // Wide Timer1
+#define ADC0_BASE               0x40038000  // ADC0
+#define ADC1_BASE               0x40039000  // ADC1
+#define COMP_BASE               0x4003C000  // Analog comparators
+#define GPIO_PORTJ_BASE         0x4003D000  // GPIO Port J
+#define CAN0_BASE               0x40040000  // CAN0
+#define CAN1_BASE               0x40041000  // CAN1
+#define WTIMER2_BASE            0x4004C000  // Wide Timer2
+#define WTIMER3_BASE            0x4004D000  // Wide Timer3
+#define WTIMER4_BASE            0x4004E000  // Wide Timer4
+#define WTIMER5_BASE            0x4004F000  // Wide Timer5
+#define USB0_BASE               0x40050000  // USB 0 Controller
+#define GPIO_PORTA_AHB_BASE     0x40058000  // GPIO Port A (high speed)
+#define GPIO_PORTB_AHB_BASE     0x40059000  // GPIO Port B (high speed)
+#define GPIO_PORTC_AHB_BASE     0x4005A000  // GPIO Port C (high speed)
+#define GPIO_PORTD_AHB_BASE     0x4005B000  // GPIO Port D (high speed)
+#define GPIO_PORTE_AHB_BASE     0x4005C000  // GPIO Port E (high speed)
+#define GPIO_PORTF_AHB_BASE     0x4005D000  // GPIO Port F (high speed)
+#define GPIO_PORTG_AHB_BASE     0x4005E000  // GPIO Port G (high speed)
+#define GPIO_PORTH_AHB_BASE     0x4005F000  // GPIO Port H (high speed)
+#define GPIO_PORTJ_AHB_BASE     0x40060000  // GPIO Port J (high speed)
+#define GPIO_PORTK_BASE         0x40061000  // GPIO Port K
+#define GPIO_PORTL_BASE         0x40062000  // GPIO Port L
+#define GPIO_PORTM_BASE         0x40063000  // GPIO Port M
+#define GPIO_PORTN_BASE         0x40064000  // GPIO Port N
+#define GPIO_PORTP_BASE         0x40065000  // GPIO Port P
+#define GPIO_PORTQ_BASE         0x40066000  // GPIO Port Q
+#define GPIO_PORTR_BASE         0x40067000  // General-Purpose Input/Outputs
+                                            // (GPIOs)
+#define GPIO_PORTS_BASE         0x40068000  // General-Purpose Input/Outputs
+                                            // (GPIOs)
+#define GPIO_PORTT_BASE         0x40069000  // General-Purpose Input/Outputs
+                                            // (GPIOs)
+#define EEPROM_BASE             0x400AF000  // EEPROM memory
+#define ONEWIRE0_BASE           0x400B6000  // 1-Wire Master Module
+#define I2C8_BASE               0x400B8000  // I2C8
+#define I2C9_BASE               0x400B9000  // I2C9
+#define I2C4_BASE               0x400C0000  // I2C4
+#define I2C5_BASE               0x400C1000  // I2C5
+#define I2C6_BASE               0x400C2000  // I2C6
+#define I2C7_BASE               0x400C3000  // I2C7
+#define EPI0_BASE               0x400D0000  // EPI0
+#define TIMER6_BASE             0x400E0000  // General-Purpose Timers
+#define TIMER7_BASE             0x400E1000  // General-Purpose Timers
+#define EMAC0_BASE              0x400EC000  // Ethernet Controller
+#define SYSEXC_BASE             0x400F9000  // System Exception Module
+#define HIB_BASE                0x400FC000  // Hibernation Module
+#define FLASH_CTRL_BASE         0x400FD000  // FLASH Controller
+#define SYSCTL_BASE             0x400FE000  // System Control
+#define UDMA_BASE               0x400FF000  // uDMA Controller
+#define CCM0_BASE               0x44030000  // Cyclical Redundancy Check (CRC)
+#define SHAMD5_BASE             0x44034000  // SHA/MD5 Accelerator
+#define AES_BASE                0x44036000  // Advance Encryption
+                                            // Hardware-Accelerated Module
+#define DES_BASE                0x44038000  // Data Encryption Standard
+                                            // Accelerator (DES)
+#define LCD0_BASE               0x44050000  // LCD Controller
+#define ITM_BASE                0xE0000000  // Instrumentation Trace Macrocell
+#define DWT_BASE                0xE0001000  // Data Watchpoint and Trace
+#define FPB_BASE                0xE0002000  // FLASH Patch and Breakpoint
+#define NVIC_BASE               0xE000E000  // Nested Vectored Interrupt Ctrl
+#define TPIU_BASE               0xE0040000  // Trace Port Interface Unit
+
+#endif // __HW_MEMMAP_H__

+ 1414 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_nvic.h

@@ -0,0 +1,1414 @@
+//*****************************************************************************
+//
+// hw_nvic.h - Macros used when accessing the NVIC hardware.
+//
+// Copyright (c) 2005-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Firmware Development Package.
+//
+//*****************************************************************************
+
+#ifndef __HW_NVIC_H__
+#define __HW_NVIC_H__
+
+//*****************************************************************************
+//
+// The following are defines for the NVIC register addresses.
+//
+//*****************************************************************************
+#define NVIC_ACTLR              0xE000E008  // Auxiliary Control
+#define NVIC_ST_CTRL            0xE000E010  // SysTick Control and Status
+                                            // Register
+#define NVIC_ST_RELOAD          0xE000E014  // SysTick Reload Value Register
+#define NVIC_ST_CURRENT         0xE000E018  // SysTick Current Value Register
+#define NVIC_EN0                0xE000E100  // Interrupt 0-31 Set Enable
+#define NVIC_EN1                0xE000E104  // Interrupt 32-63 Set Enable
+#define NVIC_EN2                0xE000E108  // Interrupt 64-95 Set Enable
+#define NVIC_EN3                0xE000E10C  // Interrupt 96-127 Set Enable
+#define NVIC_EN4                0xE000E110  // Interrupt 128-159 Set Enable
+#define NVIC_DIS0               0xE000E180  // Interrupt 0-31 Clear Enable
+#define NVIC_DIS1               0xE000E184  // Interrupt 32-63 Clear Enable
+#define NVIC_DIS2               0xE000E188  // Interrupt 64-95 Clear Enable
+#define NVIC_DIS3               0xE000E18C  // Interrupt 96-127 Clear Enable
+#define NVIC_DIS4               0xE000E190  // Interrupt 128-159 Clear Enable
+#define NVIC_PEND0              0xE000E200  // Interrupt 0-31 Set Pending
+#define NVIC_PEND1              0xE000E204  // Interrupt 32-63 Set Pending
+#define NVIC_PEND2              0xE000E208  // Interrupt 64-95 Set Pending
+#define NVIC_PEND3              0xE000E20C  // Interrupt 96-127 Set Pending
+#define NVIC_PEND4              0xE000E210  // Interrupt 128-159 Set Pending
+#define NVIC_UNPEND0            0xE000E280  // Interrupt 0-31 Clear Pending
+#define NVIC_UNPEND1            0xE000E284  // Interrupt 32-63 Clear Pending
+#define NVIC_UNPEND2            0xE000E288  // Interrupt 64-95 Clear Pending
+#define NVIC_UNPEND3            0xE000E28C  // Interrupt 96-127 Clear Pending
+#define NVIC_UNPEND4            0xE000E290  // Interrupt 128-159 Clear Pending
+#define NVIC_ACTIVE0            0xE000E300  // Interrupt 0-31 Active Bit
+#define NVIC_ACTIVE1            0xE000E304  // Interrupt 32-63 Active Bit
+#define NVIC_ACTIVE2            0xE000E308  // Interrupt 64-95 Active Bit
+#define NVIC_ACTIVE3            0xE000E30C  // Interrupt 96-127 Active Bit
+#define NVIC_ACTIVE4            0xE000E310  // Interrupt 128-159 Active Bit
+#define NVIC_PRI0               0xE000E400  // Interrupt 0-3 Priority
+#define NVIC_PRI1               0xE000E404  // Interrupt 4-7 Priority
+#define NVIC_PRI2               0xE000E408  // Interrupt 8-11 Priority
+#define NVIC_PRI3               0xE000E40C  // Interrupt 12-15 Priority
+#define NVIC_PRI4               0xE000E410  // Interrupt 16-19 Priority
+#define NVIC_PRI5               0xE000E414  // Interrupt 20-23 Priority
+#define NVIC_PRI6               0xE000E418  // Interrupt 24-27 Priority
+#define NVIC_PRI7               0xE000E41C  // Interrupt 28-31 Priority
+#define NVIC_PRI8               0xE000E420  // Interrupt 32-35 Priority
+#define NVIC_PRI9               0xE000E424  // Interrupt 36-39 Priority
+#define NVIC_PRI10              0xE000E428  // Interrupt 40-43 Priority
+#define NVIC_PRI11              0xE000E42C  // Interrupt 44-47 Priority
+#define NVIC_PRI12              0xE000E430  // Interrupt 48-51 Priority
+#define NVIC_PRI13              0xE000E434  // Interrupt 52-55 Priority
+#define NVIC_PRI14              0xE000E438  // Interrupt 56-59 Priority
+#define NVIC_PRI15              0xE000E43C  // Interrupt 60-63 Priority
+#define NVIC_PRI16              0xE000E440  // Interrupt 64-67 Priority
+#define NVIC_PRI17              0xE000E444  // Interrupt 68-71 Priority
+#define NVIC_PRI18              0xE000E448  // Interrupt 72-75 Priority
+#define NVIC_PRI19              0xE000E44C  // Interrupt 76-79 Priority
+#define NVIC_PRI20              0xE000E450  // Interrupt 80-83 Priority
+#define NVIC_PRI21              0xE000E454  // Interrupt 84-87 Priority
+#define NVIC_PRI22              0xE000E458  // Interrupt 88-91 Priority
+#define NVIC_PRI23              0xE000E45C  // Interrupt 92-95 Priority
+#define NVIC_PRI24              0xE000E460  // Interrupt 96-99 Priority
+#define NVIC_PRI25              0xE000E464  // Interrupt 100-103 Priority
+#define NVIC_PRI26              0xE000E468  // Interrupt 104-107 Priority
+#define NVIC_PRI27              0xE000E46C  // Interrupt 108-111 Priority
+#define NVIC_PRI28              0xE000E470  // Interrupt 112-115 Priority
+#define NVIC_PRI29              0xE000E474  // Interrupt 116-119 Priority
+#define NVIC_PRI30              0xE000E478  // Interrupt 120-123 Priority
+#define NVIC_PRI31              0xE000E47C  // Interrupt 124-127 Priority
+#define NVIC_PRI32              0xE000E480  // Interrupt 128-131 Priority
+#define NVIC_PRI33              0xE000E484  // Interrupt 132-135 Priority
+#define NVIC_PRI34              0xE000E488  // Interrupt 136-139 Priority
+#define NVIC_CPUID              0xE000ED00  // CPU ID Base
+#define NVIC_INT_CTRL           0xE000ED04  // Interrupt Control and State
+#define NVIC_VTABLE             0xE000ED08  // Vector Table Offset
+#define NVIC_APINT              0xE000ED0C  // Application Interrupt and Reset
+                                            // Control
+#define NVIC_SYS_CTRL           0xE000ED10  // System Control
+#define NVIC_CFG_CTRL           0xE000ED14  // Configuration and Control
+#define NVIC_SYS_PRI1           0xE000ED18  // System Handler Priority 1
+#define NVIC_SYS_PRI2           0xE000ED1C  // System Handler Priority 2
+#define NVIC_SYS_PRI3           0xE000ED20  // System Handler Priority 3
+#define NVIC_SYS_HND_CTRL       0xE000ED24  // System Handler Control and State
+#define NVIC_FAULT_STAT         0xE000ED28  // Configurable Fault Status
+#define NVIC_HFAULT_STAT        0xE000ED2C  // Hard Fault Status
+#define NVIC_DEBUG_STAT         0xE000ED30  // Debug Status Register
+#define NVIC_MM_ADDR            0xE000ED34  // Memory Management Fault Address
+#define NVIC_FAULT_ADDR         0xE000ED38  // Bus Fault Address
+#define NVIC_CPAC               0xE000ED88  // Coprocessor Access Control
+#define NVIC_MPU_TYPE           0xE000ED90  // MPU Type
+#define NVIC_MPU_CTRL           0xE000ED94  // MPU Control
+#define NVIC_MPU_NUMBER         0xE000ED98  // MPU Region Number
+#define NVIC_MPU_BASE           0xE000ED9C  // MPU Region Base Address
+#define NVIC_MPU_ATTR           0xE000EDA0  // MPU Region Attribute and Size
+#define NVIC_MPU_BASE1          0xE000EDA4  // MPU Region Base Address Alias 1
+#define NVIC_MPU_ATTR1          0xE000EDA8  // MPU Region Attribute and Size
+                                            // Alias 1
+#define NVIC_MPU_BASE2          0xE000EDAC  // MPU Region Base Address Alias 2
+#define NVIC_MPU_ATTR2          0xE000EDB0  // MPU Region Attribute and Size
+                                            // Alias 2
+#define NVIC_MPU_BASE3          0xE000EDB4  // MPU Region Base Address Alias 3
+#define NVIC_MPU_ATTR3          0xE000EDB8  // MPU Region Attribute and Size
+                                            // Alias 3
+#define NVIC_DBG_CTRL           0xE000EDF0  // Debug Control and Status Reg
+#define NVIC_DBG_XFER           0xE000EDF4  // Debug Core Reg. Transfer Select
+#define NVIC_DBG_DATA           0xE000EDF8  // Debug Core Register Data
+#define NVIC_DBG_INT            0xE000EDFC  // Debug Reset Interrupt Control
+#define NVIC_SW_TRIG            0xE000EF00  // Software Trigger Interrupt
+#define NVIC_FPCC               0xE000EF34  // Floating-Point Context Control
+#define NVIC_FPCA               0xE000EF38  // Floating-Point Context Address
+#define NVIC_FPDSC              0xE000EF3C  // Floating-Point Default Status
+                                            // Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_ACTLR register.
+//
+//*****************************************************************************
+#define NVIC_ACTLR_DISOOFP      0x00000200  // Disable Out-Of-Order Floating
+                                            // Point
+#define NVIC_ACTLR_DISFPCA      0x00000100  // Disable CONTROL
+#define NVIC_ACTLR_DISFOLD      0x00000004  // Disable IT Folding
+#define NVIC_ACTLR_DISWBUF      0x00000002  // Disable Write Buffer
+#define NVIC_ACTLR_DISMCYC      0x00000001  // Disable Interrupts of Multiple
+                                            // Cycle Instructions
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_ST_CTRL register.
+//
+//*****************************************************************************
+#define NVIC_ST_CTRL_COUNT      0x00010000  // Count Flag
+#define NVIC_ST_CTRL_CLK_SRC    0x00000004  // Clock Source
+#define NVIC_ST_CTRL_INTEN      0x00000002  // Interrupt Enable
+#define NVIC_ST_CTRL_ENABLE     0x00000001  // Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_ST_RELOAD register.
+//
+//*****************************************************************************
+#define NVIC_ST_RELOAD_M        0x00FFFFFF  // Reload Value
+#define NVIC_ST_RELOAD_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_ST_CURRENT
+// register.
+//
+//*****************************************************************************
+#define NVIC_ST_CURRENT_M       0x00FFFFFF  // Current Value
+#define NVIC_ST_CURRENT_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_EN0 register.
+//
+//*****************************************************************************
+#define NVIC_EN0_INT_M          0xFFFFFFFF  // Interrupt Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_EN1 register.
+//
+//*****************************************************************************
+#define NVIC_EN1_INT_M          0xFFFFFFFF  // Interrupt Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_EN2 register.
+//
+//*****************************************************************************
+#define NVIC_EN2_INT_M          0xFFFFFFFF  // Interrupt Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_EN3 register.
+//
+//*****************************************************************************
+#define NVIC_EN3_INT_M          0xFFFFFFFF  // Interrupt Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_EN4 register.
+//
+//*****************************************************************************
+#define NVIC_EN4_INT_M          0x000007FF  // Interrupt Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_DIS0 register.
+//
+//*****************************************************************************
+#define NVIC_DIS0_INT_M         0xFFFFFFFF  // Interrupt Disable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_DIS1 register.
+//
+//*****************************************************************************
+#define NVIC_DIS1_INT_M         0xFFFFFFFF  // Interrupt Disable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_DIS2 register.
+//
+//*****************************************************************************
+#define NVIC_DIS2_INT_M         0xFFFFFFFF  // Interrupt Disable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_DIS3 register.
+//
+//*****************************************************************************
+#define NVIC_DIS3_INT_M         0xFFFFFFFF  // Interrupt Disable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_DIS4 register.
+//
+//*****************************************************************************
+#define NVIC_DIS4_INT_M         0x000007FF  // Interrupt Disable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PEND0 register.
+//
+//*****************************************************************************
+#define NVIC_PEND0_INT_M        0xFFFFFFFF  // Interrupt Set Pending
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PEND1 register.
+//
+//*****************************************************************************
+#define NVIC_PEND1_INT_M        0xFFFFFFFF  // Interrupt Set Pending
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PEND2 register.
+//
+//*****************************************************************************
+#define NVIC_PEND2_INT_M        0xFFFFFFFF  // Interrupt Set Pending
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PEND3 register.
+//
+//*****************************************************************************
+#define NVIC_PEND3_INT_M        0xFFFFFFFF  // Interrupt Set Pending
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PEND4 register.
+//
+//*****************************************************************************
+#define NVIC_PEND4_INT_M        0x000007FF  // Interrupt Set Pending
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_UNPEND0 register.
+//
+//*****************************************************************************
+#define NVIC_UNPEND0_INT_M      0xFFFFFFFF  // Interrupt Clear Pending
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_UNPEND1 register.
+//
+//*****************************************************************************
+#define NVIC_UNPEND1_INT_M      0xFFFFFFFF  // Interrupt Clear Pending
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_UNPEND2 register.
+//
+//*****************************************************************************
+#define NVIC_UNPEND2_INT_M      0xFFFFFFFF  // Interrupt Clear Pending
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_UNPEND3 register.
+//
+//*****************************************************************************
+#define NVIC_UNPEND3_INT_M      0xFFFFFFFF  // Interrupt Clear Pending
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_UNPEND4 register.
+//
+//*****************************************************************************
+#define NVIC_UNPEND4_INT_M      0x000007FF  // Interrupt Clear Pending
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_ACTIVE0 register.
+//
+//*****************************************************************************
+#define NVIC_ACTIVE0_INT_M      0xFFFFFFFF  // Interrupt Active
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_ACTIVE1 register.
+//
+//*****************************************************************************
+#define NVIC_ACTIVE1_INT_M      0xFFFFFFFF  // Interrupt Active
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_ACTIVE2 register.
+//
+//*****************************************************************************
+#define NVIC_ACTIVE2_INT_M      0xFFFFFFFF  // Interrupt Active
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_ACTIVE3 register.
+//
+//*****************************************************************************
+#define NVIC_ACTIVE3_INT_M      0xFFFFFFFF  // Interrupt Active
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_ACTIVE4 register.
+//
+//*****************************************************************************
+#define NVIC_ACTIVE4_INT_M      0x000007FF  // Interrupt Active
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI0 register.
+//
+//*****************************************************************************
+#define NVIC_PRI0_INT3_M        0xE0000000  // Interrupt 3 Priority Mask
+#define NVIC_PRI0_INT2_M        0x00E00000  // Interrupt 2 Priority Mask
+#define NVIC_PRI0_INT1_M        0x0000E000  // Interrupt 1 Priority Mask
+#define NVIC_PRI0_INT0_M        0x000000E0  // Interrupt 0 Priority Mask
+#define NVIC_PRI0_INT3_S        29
+#define NVIC_PRI0_INT2_S        21
+#define NVIC_PRI0_INT1_S        13
+#define NVIC_PRI0_INT0_S        5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI1 register.
+//
+//*****************************************************************************
+#define NVIC_PRI1_INT7_M        0xE0000000  // Interrupt 7 Priority Mask
+#define NVIC_PRI1_INT6_M        0x00E00000  // Interrupt 6 Priority Mask
+#define NVIC_PRI1_INT5_M        0x0000E000  // Interrupt 5 Priority Mask
+#define NVIC_PRI1_INT4_M        0x000000E0  // Interrupt 4 Priority Mask
+#define NVIC_PRI1_INT7_S        29
+#define NVIC_PRI1_INT6_S        21
+#define NVIC_PRI1_INT5_S        13
+#define NVIC_PRI1_INT4_S        5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI2 register.
+//
+//*****************************************************************************
+#define NVIC_PRI2_INT11_M       0xE0000000  // Interrupt 11 Priority Mask
+#define NVIC_PRI2_INT10_M       0x00E00000  // Interrupt 10 Priority Mask
+#define NVIC_PRI2_INT9_M        0x0000E000  // Interrupt 9 Priority Mask
+#define NVIC_PRI2_INT8_M        0x000000E0  // Interrupt 8 Priority Mask
+#define NVIC_PRI2_INT11_S       29
+#define NVIC_PRI2_INT10_S       21
+#define NVIC_PRI2_INT9_S        13
+#define NVIC_PRI2_INT8_S        5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI3 register.
+//
+//*****************************************************************************
+#define NVIC_PRI3_INT15_M       0xE0000000  // Interrupt 15 Priority Mask
+#define NVIC_PRI3_INT14_M       0x00E00000  // Interrupt 14 Priority Mask
+#define NVIC_PRI3_INT13_M       0x0000E000  // Interrupt 13 Priority Mask
+#define NVIC_PRI3_INT12_M       0x000000E0  // Interrupt 12 Priority Mask
+#define NVIC_PRI3_INT15_S       29
+#define NVIC_PRI3_INT14_S       21
+#define NVIC_PRI3_INT13_S       13
+#define NVIC_PRI3_INT12_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI4 register.
+//
+//*****************************************************************************
+#define NVIC_PRI4_INT19_M       0xE0000000  // Interrupt 19 Priority Mask
+#define NVIC_PRI4_INT18_M       0x00E00000  // Interrupt 18 Priority Mask
+#define NVIC_PRI4_INT17_M       0x0000E000  // Interrupt 17 Priority Mask
+#define NVIC_PRI4_INT16_M       0x000000E0  // Interrupt 16 Priority Mask
+#define NVIC_PRI4_INT19_S       29
+#define NVIC_PRI4_INT18_S       21
+#define NVIC_PRI4_INT17_S       13
+#define NVIC_PRI4_INT16_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI5 register.
+//
+//*****************************************************************************
+#define NVIC_PRI5_INT23_M       0xE0000000  // Interrupt 23 Priority Mask
+#define NVIC_PRI5_INT22_M       0x00E00000  // Interrupt 22 Priority Mask
+#define NVIC_PRI5_INT21_M       0x0000E000  // Interrupt 21 Priority Mask
+#define NVIC_PRI5_INT20_M       0x000000E0  // Interrupt 20 Priority Mask
+#define NVIC_PRI5_INT23_S       29
+#define NVIC_PRI5_INT22_S       21
+#define NVIC_PRI5_INT21_S       13
+#define NVIC_PRI5_INT20_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI6 register.
+//
+//*****************************************************************************
+#define NVIC_PRI6_INT27_M       0xE0000000  // Interrupt 27 Priority Mask
+#define NVIC_PRI6_INT26_M       0x00E00000  // Interrupt 26 Priority Mask
+#define NVIC_PRI6_INT25_M       0x0000E000  // Interrupt 25 Priority Mask
+#define NVIC_PRI6_INT24_M       0x000000E0  // Interrupt 24 Priority Mask
+#define NVIC_PRI6_INT27_S       29
+#define NVIC_PRI6_INT26_S       21
+#define NVIC_PRI6_INT25_S       13
+#define NVIC_PRI6_INT24_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI7 register.
+//
+//*****************************************************************************
+#define NVIC_PRI7_INT31_M       0xE0000000  // Interrupt 31 Priority Mask
+#define NVIC_PRI7_INT30_M       0x00E00000  // Interrupt 30 Priority Mask
+#define NVIC_PRI7_INT29_M       0x0000E000  // Interrupt 29 Priority Mask
+#define NVIC_PRI7_INT28_M       0x000000E0  // Interrupt 28 Priority Mask
+#define NVIC_PRI7_INT31_S       29
+#define NVIC_PRI7_INT30_S       21
+#define NVIC_PRI7_INT29_S       13
+#define NVIC_PRI7_INT28_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI8 register.
+//
+//*****************************************************************************
+#define NVIC_PRI8_INT35_M       0xE0000000  // Interrupt 35 Priority Mask
+#define NVIC_PRI8_INT34_M       0x00E00000  // Interrupt 34 Priority Mask
+#define NVIC_PRI8_INT33_M       0x0000E000  // Interrupt 33 Priority Mask
+#define NVIC_PRI8_INT32_M       0x000000E0  // Interrupt 32 Priority Mask
+#define NVIC_PRI8_INT35_S       29
+#define NVIC_PRI8_INT34_S       21
+#define NVIC_PRI8_INT33_S       13
+#define NVIC_PRI8_INT32_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI9 register.
+//
+//*****************************************************************************
+#define NVIC_PRI9_INT39_M       0xE0000000  // Interrupt 39 Priority Mask
+#define NVIC_PRI9_INT38_M       0x00E00000  // Interrupt 38 Priority Mask
+#define NVIC_PRI9_INT37_M       0x0000E000  // Interrupt 37 Priority Mask
+#define NVIC_PRI9_INT36_M       0x000000E0  // Interrupt 36 Priority Mask
+#define NVIC_PRI9_INT39_S       29
+#define NVIC_PRI9_INT38_S       21
+#define NVIC_PRI9_INT37_S       13
+#define NVIC_PRI9_INT36_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI10 register.
+//
+//*****************************************************************************
+#define NVIC_PRI10_INT43_M      0xE0000000  // Interrupt 43 Priority Mask
+#define NVIC_PRI10_INT42_M      0x00E00000  // Interrupt 42 Priority Mask
+#define NVIC_PRI10_INT41_M      0x0000E000  // Interrupt 41 Priority Mask
+#define NVIC_PRI10_INT40_M      0x000000E0  // Interrupt 40 Priority Mask
+#define NVIC_PRI10_INT43_S      29
+#define NVIC_PRI10_INT42_S      21
+#define NVIC_PRI10_INT41_S      13
+#define NVIC_PRI10_INT40_S      5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI11 register.
+//
+//*****************************************************************************
+#define NVIC_PRI11_INT47_M      0xE0000000  // Interrupt 47 Priority Mask
+#define NVIC_PRI11_INT46_M      0x00E00000  // Interrupt 46 Priority Mask
+#define NVIC_PRI11_INT45_M      0x0000E000  // Interrupt 45 Priority Mask
+#define NVIC_PRI11_INT44_M      0x000000E0  // Interrupt 44 Priority Mask
+#define NVIC_PRI11_INT47_S      29
+#define NVIC_PRI11_INT46_S      21
+#define NVIC_PRI11_INT45_S      13
+#define NVIC_PRI11_INT44_S      5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI12 register.
+//
+//*****************************************************************************
+#define NVIC_PRI12_INT51_M      0xE0000000  // Interrupt 51 Priority Mask
+#define NVIC_PRI12_INT50_M      0x00E00000  // Interrupt 50 Priority Mask
+#define NVIC_PRI12_INT49_M      0x0000E000  // Interrupt 49 Priority Mask
+#define NVIC_PRI12_INT48_M      0x000000E0  // Interrupt 48 Priority Mask
+#define NVIC_PRI12_INT51_S      29
+#define NVIC_PRI12_INT50_S      21
+#define NVIC_PRI12_INT49_S      13
+#define NVIC_PRI12_INT48_S      5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI13 register.
+//
+//*****************************************************************************
+#define NVIC_PRI13_INT55_M      0xE0000000  // Interrupt 55 Priority Mask
+#define NVIC_PRI13_INT54_M      0x00E00000  // Interrupt 54 Priority Mask
+#define NVIC_PRI13_INT53_M      0x0000E000  // Interrupt 53 Priority Mask
+#define NVIC_PRI13_INT52_M      0x000000E0  // Interrupt 52 Priority Mask
+#define NVIC_PRI13_INT55_S      29
+#define NVIC_PRI13_INT54_S      21
+#define NVIC_PRI13_INT53_S      13
+#define NVIC_PRI13_INT52_S      5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI14 register.
+//
+//*****************************************************************************
+#define NVIC_PRI14_INTD_M       0xE0000000  // Interrupt 59 Priority Mask
+#define NVIC_PRI14_INTC_M       0x00E00000  // Interrupt 58 Priority Mask
+#define NVIC_PRI14_INTB_M       0x0000E000  // Interrupt 57 Priority Mask
+#define NVIC_PRI14_INTA_M       0x000000E0  // Interrupt 56 Priority Mask
+#define NVIC_PRI14_INTD_S       29
+#define NVIC_PRI14_INTC_S       21
+#define NVIC_PRI14_INTB_S       13
+#define NVIC_PRI14_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI15 register.
+//
+//*****************************************************************************
+#define NVIC_PRI15_INTD_M       0xE0000000  // Interrupt 63 Priority Mask
+#define NVIC_PRI15_INTC_M       0x00E00000  // Interrupt 62 Priority Mask
+#define NVIC_PRI15_INTB_M       0x0000E000  // Interrupt 61 Priority Mask
+#define NVIC_PRI15_INTA_M       0x000000E0  // Interrupt 60 Priority Mask
+#define NVIC_PRI15_INTD_S       29
+#define NVIC_PRI15_INTC_S       21
+#define NVIC_PRI15_INTB_S       13
+#define NVIC_PRI15_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI16 register.
+//
+//*****************************************************************************
+#define NVIC_PRI16_INTD_M       0xE0000000  // Interrupt 67 Priority Mask
+#define NVIC_PRI16_INTC_M       0x00E00000  // Interrupt 66 Priority Mask
+#define NVIC_PRI16_INTB_M       0x0000E000  // Interrupt 65 Priority Mask
+#define NVIC_PRI16_INTA_M       0x000000E0  // Interrupt 64 Priority Mask
+#define NVIC_PRI16_INTD_S       29
+#define NVIC_PRI16_INTC_S       21
+#define NVIC_PRI16_INTB_S       13
+#define NVIC_PRI16_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI17 register.
+//
+//*****************************************************************************
+#define NVIC_PRI17_INTD_M       0xE0000000  // Interrupt 71 Priority Mask
+#define NVIC_PRI17_INTC_M       0x00E00000  // Interrupt 70 Priority Mask
+#define NVIC_PRI17_INTB_M       0x0000E000  // Interrupt 69 Priority Mask
+#define NVIC_PRI17_INTA_M       0x000000E0  // Interrupt 68 Priority Mask
+#define NVIC_PRI17_INTD_S       29
+#define NVIC_PRI17_INTC_S       21
+#define NVIC_PRI17_INTB_S       13
+#define NVIC_PRI17_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI18 register.
+//
+//*****************************************************************************
+#define NVIC_PRI18_INTD_M       0xE0000000  // Interrupt 75 Priority Mask
+#define NVIC_PRI18_INTC_M       0x00E00000  // Interrupt 74 Priority Mask
+#define NVIC_PRI18_INTB_M       0x0000E000  // Interrupt 73 Priority Mask
+#define NVIC_PRI18_INTA_M       0x000000E0  // Interrupt 72 Priority Mask
+#define NVIC_PRI18_INTD_S       29
+#define NVIC_PRI18_INTC_S       21
+#define NVIC_PRI18_INTB_S       13
+#define NVIC_PRI18_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI19 register.
+//
+//*****************************************************************************
+#define NVIC_PRI19_INTD_M       0xE0000000  // Interrupt 79 Priority Mask
+#define NVIC_PRI19_INTC_M       0x00E00000  // Interrupt 78 Priority Mask
+#define NVIC_PRI19_INTB_M       0x0000E000  // Interrupt 77 Priority Mask
+#define NVIC_PRI19_INTA_M       0x000000E0  // Interrupt 76 Priority Mask
+#define NVIC_PRI19_INTD_S       29
+#define NVIC_PRI19_INTC_S       21
+#define NVIC_PRI19_INTB_S       13
+#define NVIC_PRI19_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI20 register.
+//
+//*****************************************************************************
+#define NVIC_PRI20_INTD_M       0xE0000000  // Interrupt 83 Priority Mask
+#define NVIC_PRI20_INTC_M       0x00E00000  // Interrupt 82 Priority Mask
+#define NVIC_PRI20_INTB_M       0x0000E000  // Interrupt 81 Priority Mask
+#define NVIC_PRI20_INTA_M       0x000000E0  // Interrupt 80 Priority Mask
+#define NVIC_PRI20_INTD_S       29
+#define NVIC_PRI20_INTC_S       21
+#define NVIC_PRI20_INTB_S       13
+#define NVIC_PRI20_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI21 register.
+//
+//*****************************************************************************
+#define NVIC_PRI21_INTD_M       0xE0000000  // Interrupt 87 Priority Mask
+#define NVIC_PRI21_INTC_M       0x00E00000  // Interrupt 86 Priority Mask
+#define NVIC_PRI21_INTB_M       0x0000E000  // Interrupt 85 Priority Mask
+#define NVIC_PRI21_INTA_M       0x000000E0  // Interrupt 84 Priority Mask
+#define NVIC_PRI21_INTD_S       29
+#define NVIC_PRI21_INTC_S       21
+#define NVIC_PRI21_INTB_S       13
+#define NVIC_PRI21_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI22 register.
+//
+//*****************************************************************************
+#define NVIC_PRI22_INTD_M       0xE0000000  // Interrupt 91 Priority Mask
+#define NVIC_PRI22_INTC_M       0x00E00000  // Interrupt 90 Priority Mask
+#define NVIC_PRI22_INTB_M       0x0000E000  // Interrupt 89 Priority Mask
+#define NVIC_PRI22_INTA_M       0x000000E0  // Interrupt 88 Priority Mask
+#define NVIC_PRI22_INTD_S       29
+#define NVIC_PRI22_INTC_S       21
+#define NVIC_PRI22_INTB_S       13
+#define NVIC_PRI22_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI23 register.
+//
+//*****************************************************************************
+#define NVIC_PRI23_INTD_M       0xE0000000  // Interrupt 95 Priority Mask
+#define NVIC_PRI23_INTC_M       0x00E00000  // Interrupt 94 Priority Mask
+#define NVIC_PRI23_INTB_M       0x0000E000  // Interrupt 93 Priority Mask
+#define NVIC_PRI23_INTA_M       0x000000E0  // Interrupt 92 Priority Mask
+#define NVIC_PRI23_INTD_S       29
+#define NVIC_PRI23_INTC_S       21
+#define NVIC_PRI23_INTB_S       13
+#define NVIC_PRI23_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI24 register.
+//
+//*****************************************************************************
+#define NVIC_PRI24_INTD_M       0xE0000000  // Interrupt 99 Priority Mask
+#define NVIC_PRI24_INTC_M       0x00E00000  // Interrupt 98 Priority Mask
+#define NVIC_PRI24_INTB_M       0x0000E000  // Interrupt 97 Priority Mask
+#define NVIC_PRI24_INTA_M       0x000000E0  // Interrupt 96 Priority Mask
+#define NVIC_PRI24_INTD_S       29
+#define NVIC_PRI24_INTC_S       21
+#define NVIC_PRI24_INTB_S       13
+#define NVIC_PRI24_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI25 register.
+//
+//*****************************************************************************
+#define NVIC_PRI25_INTD_M       0xE0000000  // Interrupt 103 Priority Mask
+#define NVIC_PRI25_INTC_M       0x00E00000  // Interrupt 102 Priority Mask
+#define NVIC_PRI25_INTB_M       0x0000E000  // Interrupt 101 Priority Mask
+#define NVIC_PRI25_INTA_M       0x000000E0  // Interrupt 100 Priority Mask
+#define NVIC_PRI25_INTD_S       29
+#define NVIC_PRI25_INTC_S       21
+#define NVIC_PRI25_INTB_S       13
+#define NVIC_PRI25_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI26 register.
+//
+//*****************************************************************************
+#define NVIC_PRI26_INTD_M       0xE0000000  // Interrupt 107 Priority Mask
+#define NVIC_PRI26_INTC_M       0x00E00000  // Interrupt 106 Priority Mask
+#define NVIC_PRI26_INTB_M       0x0000E000  // Interrupt 105 Priority Mask
+#define NVIC_PRI26_INTA_M       0x000000E0  // Interrupt 104 Priority Mask
+#define NVIC_PRI26_INTD_S       29
+#define NVIC_PRI26_INTC_S       21
+#define NVIC_PRI26_INTB_S       13
+#define NVIC_PRI26_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI27 register.
+//
+//*****************************************************************************
+#define NVIC_PRI27_INTD_M       0xE0000000  // Interrupt 111 Priority Mask
+#define NVIC_PRI27_INTC_M       0x00E00000  // Interrupt 110 Priority Mask
+#define NVIC_PRI27_INTB_M       0x0000E000  // Interrupt 109 Priority Mask
+#define NVIC_PRI27_INTA_M       0x000000E0  // Interrupt 108 Priority Mask
+#define NVIC_PRI27_INTD_S       29
+#define NVIC_PRI27_INTC_S       21
+#define NVIC_PRI27_INTB_S       13
+#define NVIC_PRI27_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI28 register.
+//
+//*****************************************************************************
+#define NVIC_PRI28_INTD_M       0xE0000000  // Interrupt 115 Priority Mask
+#define NVIC_PRI28_INTC_M       0x00E00000  // Interrupt 114 Priority Mask
+#define NVIC_PRI28_INTB_M       0x0000E000  // Interrupt 113 Priority Mask
+#define NVIC_PRI28_INTA_M       0x000000E0  // Interrupt 112 Priority Mask
+#define NVIC_PRI28_INTD_S       29
+#define NVIC_PRI28_INTC_S       21
+#define NVIC_PRI28_INTB_S       13
+#define NVIC_PRI28_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI29 register.
+//
+//*****************************************************************************
+#define NVIC_PRI29_INTD_M       0xE0000000  // Interrupt 119 Priority Mask
+#define NVIC_PRI29_INTC_M       0x00E00000  // Interrupt 118 Priority Mask
+#define NVIC_PRI29_INTB_M       0x0000E000  // Interrupt 117 Priority Mask
+#define NVIC_PRI29_INTA_M       0x000000E0  // Interrupt 116 Priority Mask
+#define NVIC_PRI29_INTD_S       29
+#define NVIC_PRI29_INTC_S       21
+#define NVIC_PRI29_INTB_S       13
+#define NVIC_PRI29_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI30 register.
+//
+//*****************************************************************************
+#define NVIC_PRI30_INTD_M       0xE0000000  // Interrupt 123 Priority Mask
+#define NVIC_PRI30_INTC_M       0x00E00000  // Interrupt 122 Priority Mask
+#define NVIC_PRI30_INTB_M       0x0000E000  // Interrupt 121 Priority Mask
+#define NVIC_PRI30_INTA_M       0x000000E0  // Interrupt 120 Priority Mask
+#define NVIC_PRI30_INTD_S       29
+#define NVIC_PRI30_INTC_S       21
+#define NVIC_PRI30_INTB_S       13
+#define NVIC_PRI30_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI31 register.
+//
+//*****************************************************************************
+#define NVIC_PRI31_INTD_M       0xE0000000  // Interrupt 127 Priority Mask
+#define NVIC_PRI31_INTC_M       0x00E00000  // Interrupt 126 Priority Mask
+#define NVIC_PRI31_INTB_M       0x0000E000  // Interrupt 125 Priority Mask
+#define NVIC_PRI31_INTA_M       0x000000E0  // Interrupt 124 Priority Mask
+#define NVIC_PRI31_INTD_S       29
+#define NVIC_PRI31_INTC_S       21
+#define NVIC_PRI31_INTB_S       13
+#define NVIC_PRI31_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI32 register.
+//
+//*****************************************************************************
+#define NVIC_PRI32_INTD_M       0xE0000000  // Interrupt 131 Priority Mask
+#define NVIC_PRI32_INTC_M       0x00E00000  // Interrupt 130 Priority Mask
+#define NVIC_PRI32_INTB_M       0x0000E000  // Interrupt 129 Priority Mask
+#define NVIC_PRI32_INTA_M       0x000000E0  // Interrupt 128 Priority Mask
+#define NVIC_PRI32_INTD_S       29
+#define NVIC_PRI32_INTC_S       21
+#define NVIC_PRI32_INTB_S       13
+#define NVIC_PRI32_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI33 register.
+//
+//*****************************************************************************
+#define NVIC_PRI33_INTD_M       0xE0000000  // Interrupt Priority for Interrupt
+                                            // [4n+3]
+#define NVIC_PRI33_INTC_M       0x00E00000  // Interrupt Priority for Interrupt
+                                            // [4n+2]
+#define NVIC_PRI33_INTB_M       0x0000E000  // Interrupt Priority for Interrupt
+                                            // [4n+1]
+#define NVIC_PRI33_INTA_M       0x000000E0  // Interrupt Priority for Interrupt
+                                            // [4n]
+#define NVIC_PRI33_INTD_S       29
+#define NVIC_PRI33_INTC_S       21
+#define NVIC_PRI33_INTB_S       13
+#define NVIC_PRI33_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI34 register.
+//
+//*****************************************************************************
+#define NVIC_PRI34_INTD_M       0xE0000000  // Interrupt Priority for Interrupt
+                                            // [4n+3]
+#define NVIC_PRI34_INTC_M       0x00E00000  // Interrupt Priority for Interrupt
+                                            // [4n+2]
+#define NVIC_PRI34_INTB_M       0x0000E000  // Interrupt Priority for Interrupt
+                                            // [4n+1]
+#define NVIC_PRI34_INTA_M       0x000000E0  // Interrupt Priority for Interrupt
+                                            // [4n]
+#define NVIC_PRI34_INTD_S       29
+#define NVIC_PRI34_INTC_S       21
+#define NVIC_PRI34_INTB_S       13
+#define NVIC_PRI34_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_CPUID register.
+//
+//*****************************************************************************
+#define NVIC_CPUID_IMP_M        0xFF000000  // Implementer Code
+#define NVIC_CPUID_IMP_ARM      0x41000000  // ARM
+#define NVIC_CPUID_VAR_M        0x00F00000  // Variant Number
+#define NVIC_CPUID_CON_M        0x000F0000  // Constant
+#define NVIC_CPUID_PARTNO_M     0x0000FFF0  // Part Number
+#define NVIC_CPUID_PARTNO_CM4   0x0000C240  // Cortex-M4 processor
+#define NVIC_CPUID_REV_M        0x0000000F  // Revision Number
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_INT_CTRL register.
+//
+//*****************************************************************************
+#define NVIC_INT_CTRL_NMI_SET   0x80000000  // NMI Set Pending
+#define NVIC_INT_CTRL_PEND_SV   0x10000000  // PendSV Set Pending
+#define NVIC_INT_CTRL_UNPEND_SV 0x08000000  // PendSV Clear Pending
+#define NVIC_INT_CTRL_PENDSTSET 0x04000000  // SysTick Set Pending
+#define NVIC_INT_CTRL_PENDSTCLR 0x02000000  // SysTick Clear Pending
+#define NVIC_INT_CTRL_ISR_PRE   0x00800000  // Debug Interrupt Handling
+#define NVIC_INT_CTRL_ISR_PEND  0x00400000  // Interrupt Pending
+#define NVIC_INT_CTRL_VEC_PEN_M 0x000FF000  // Interrupt Pending Vector Number
+#define NVIC_INT_CTRL_VEC_PEN_NMI                                             \
+                                0x00002000  // NMI
+#define NVIC_INT_CTRL_VEC_PEN_HARD                                            \
+                                0x00003000  // Hard fault
+#define NVIC_INT_CTRL_VEC_PEN_MEM                                             \
+                                0x00004000  // Memory management fault
+#define NVIC_INT_CTRL_VEC_PEN_BUS                                             \
+                                0x00005000  // Bus fault
+#define NVIC_INT_CTRL_VEC_PEN_USG                                             \
+                                0x00006000  // Usage fault
+#define NVIC_INT_CTRL_VEC_PEN_SVC                                             \
+                                0x0000B000  // SVCall
+#define NVIC_INT_CTRL_VEC_PEN_PNDSV                                           \
+                                0x0000E000  // PendSV
+#define NVIC_INT_CTRL_VEC_PEN_TICK                                            \
+                                0x0000F000  // SysTick
+#define NVIC_INT_CTRL_RET_BASE  0x00000800  // Return to Base
+#define NVIC_INT_CTRL_VEC_ACT_M 0x000000FF  // Interrupt Pending Vector Number
+#define NVIC_INT_CTRL_VEC_ACT_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_VTABLE register.
+//
+//*****************************************************************************
+#define NVIC_VTABLE_OFFSET_M    0xFFFFFC00  // Vector Table Offset
+#define NVIC_VTABLE_OFFSET_S    10
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_APINT register.
+//
+//*****************************************************************************
+#define NVIC_APINT_VECTKEY_M    0xFFFF0000  // Register Key
+#define NVIC_APINT_VECTKEY      0x05FA0000  // Vector key
+#define NVIC_APINT_ENDIANESS    0x00008000  // Data Endianess
+#define NVIC_APINT_PRIGROUP_M   0x00000700  // Interrupt Priority Grouping
+#define NVIC_APINT_PRIGROUP_7_1 0x00000000  // Priority group 7.1 split
+#define NVIC_APINT_PRIGROUP_6_2 0x00000100  // Priority group 6.2 split
+#define NVIC_APINT_PRIGROUP_5_3 0x00000200  // Priority group 5.3 split
+#define NVIC_APINT_PRIGROUP_4_4 0x00000300  // Priority group 4.4 split
+#define NVIC_APINT_PRIGROUP_3_5 0x00000400  // Priority group 3.5 split
+#define NVIC_APINT_PRIGROUP_2_6 0x00000500  // Priority group 2.6 split
+#define NVIC_APINT_PRIGROUP_1_7 0x00000600  // Priority group 1.7 split
+#define NVIC_APINT_PRIGROUP_0_8 0x00000700  // Priority group 0.8 split
+#define NVIC_APINT_SYSRESETREQ  0x00000004  // System Reset Request
+#define NVIC_APINT_VECT_CLR_ACT 0x00000002  // Clear Active NMI / Fault
+#define NVIC_APINT_VECT_RESET   0x00000001  // System Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_SYS_CTRL register.
+//
+//*****************************************************************************
+#define NVIC_SYS_CTRL_SEVONPEND 0x00000010  // Wake Up on Pending
+#define NVIC_SYS_CTRL_SLEEPDEEP 0x00000004  // Deep Sleep Enable
+#define NVIC_SYS_CTRL_SLEEPEXIT 0x00000002  // Sleep on ISR Exit
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_CFG_CTRL register.
+//
+//*****************************************************************************
+#define NVIC_CFG_CTRL_STKALIGN  0x00000200  // Stack Alignment on Exception
+                                            // Entry
+#define NVIC_CFG_CTRL_BFHFNMIGN 0x00000100  // Ignore Bus Fault in NMI and
+                                            // Fault
+#define NVIC_CFG_CTRL_DIV0      0x00000010  // Trap on Divide by 0
+#define NVIC_CFG_CTRL_UNALIGNED 0x00000008  // Trap on Unaligned Access
+#define NVIC_CFG_CTRL_MAIN_PEND 0x00000002  // Allow Main Interrupt Trigger
+#define NVIC_CFG_CTRL_BASE_THR  0x00000001  // Thread State Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_SYS_PRI1 register.
+//
+//*****************************************************************************
+#define NVIC_SYS_PRI1_USAGE_M   0x00E00000  // Usage Fault Priority
+#define NVIC_SYS_PRI1_BUS_M     0x0000E000  // Bus Fault Priority
+#define NVIC_SYS_PRI1_MEM_M     0x000000E0  // Memory Management Fault Priority
+#define NVIC_SYS_PRI1_USAGE_S   21
+#define NVIC_SYS_PRI1_BUS_S     13
+#define NVIC_SYS_PRI1_MEM_S     5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_SYS_PRI2 register.
+//
+//*****************************************************************************
+#define NVIC_SYS_PRI2_SVC_M     0xE0000000  // SVCall Priority
+#define NVIC_SYS_PRI2_SVC_S     29
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_SYS_PRI3 register.
+//
+//*****************************************************************************
+#define NVIC_SYS_PRI3_TICK_M    0xE0000000  // SysTick Exception Priority
+#define NVIC_SYS_PRI3_PENDSV_M  0x00E00000  // PendSV Priority
+#define NVIC_SYS_PRI3_DEBUG_M   0x000000E0  // Debug Priority
+#define NVIC_SYS_PRI3_TICK_S    29
+#define NVIC_SYS_PRI3_PENDSV_S  21
+#define NVIC_SYS_PRI3_DEBUG_S   5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_SYS_HND_CTRL
+// register.
+//
+//*****************************************************************************
+#define NVIC_SYS_HND_CTRL_USAGE 0x00040000  // Usage Fault Enable
+#define NVIC_SYS_HND_CTRL_BUS   0x00020000  // Bus Fault Enable
+#define NVIC_SYS_HND_CTRL_MEM   0x00010000  // Memory Management Fault Enable
+#define NVIC_SYS_HND_CTRL_SVC   0x00008000  // SVC Call Pending
+#define NVIC_SYS_HND_CTRL_BUSP  0x00004000  // Bus Fault Pending
+#define NVIC_SYS_HND_CTRL_MEMP  0x00002000  // Memory Management Fault Pending
+#define NVIC_SYS_HND_CTRL_USAGEP                                              \
+                                0x00001000  // Usage Fault Pending
+#define NVIC_SYS_HND_CTRL_TICK  0x00000800  // SysTick Exception Active
+#define NVIC_SYS_HND_CTRL_PNDSV 0x00000400  // PendSV Exception Active
+#define NVIC_SYS_HND_CTRL_MON   0x00000100  // Debug Monitor Active
+#define NVIC_SYS_HND_CTRL_SVCA  0x00000080  // SVC Call Active
+#define NVIC_SYS_HND_CTRL_USGA  0x00000008  // Usage Fault Active
+#define NVIC_SYS_HND_CTRL_BUSA  0x00000002  // Bus Fault Active
+#define NVIC_SYS_HND_CTRL_MEMA  0x00000001  // Memory Management Fault Active
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_FAULT_STAT
+// register.
+//
+//*****************************************************************************
+#define NVIC_FAULT_STAT_DIV0    0x02000000  // Divide-by-Zero Usage Fault
+#define NVIC_FAULT_STAT_UNALIGN 0x01000000  // Unaligned Access Usage Fault
+#define NVIC_FAULT_STAT_NOCP    0x00080000  // No Coprocessor Usage Fault
+#define NVIC_FAULT_STAT_INVPC   0x00040000  // Invalid PC Load Usage Fault
+#define NVIC_FAULT_STAT_INVSTAT 0x00020000  // Invalid State Usage Fault
+#define NVIC_FAULT_STAT_UNDEF   0x00010000  // Undefined Instruction Usage
+                                            // Fault
+#define NVIC_FAULT_STAT_BFARV   0x00008000  // Bus Fault Address Register Valid
+#define NVIC_FAULT_STAT_BLSPERR 0x00002000  // Bus Fault on Floating-Point Lazy
+                                            // State Preservation
+#define NVIC_FAULT_STAT_BSTKE   0x00001000  // Stack Bus Fault
+#define NVIC_FAULT_STAT_BUSTKE  0x00000800  // Unstack Bus Fault
+#define NVIC_FAULT_STAT_IMPRE   0x00000400  // Imprecise Data Bus Error
+#define NVIC_FAULT_STAT_PRECISE 0x00000200  // Precise Data Bus Error
+#define NVIC_FAULT_STAT_IBUS    0x00000100  // Instruction Bus Error
+#define NVIC_FAULT_STAT_MMARV   0x00000080  // Memory Management Fault Address
+                                            // Register Valid
+#define NVIC_FAULT_STAT_MLSPERR 0x00000020  // Memory Management Fault on
+                                            // Floating-Point Lazy State
+                                            // Preservation
+#define NVIC_FAULT_STAT_MSTKE   0x00000010  // Stack Access Violation
+#define NVIC_FAULT_STAT_MUSTKE  0x00000008  // Unstack Access Violation
+#define NVIC_FAULT_STAT_DERR    0x00000002  // Data Access Violation
+#define NVIC_FAULT_STAT_IERR    0x00000001  // Instruction Access Violation
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_HFAULT_STAT
+// register.
+//
+//*****************************************************************************
+#define NVIC_HFAULT_STAT_DBG    0x80000000  // Debug Event
+#define NVIC_HFAULT_STAT_FORCED 0x40000000  // Forced Hard Fault
+#define NVIC_HFAULT_STAT_VECT   0x00000002  // Vector Table Read Fault
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_DEBUG_STAT
+// register.
+//
+//*****************************************************************************
+#define NVIC_DEBUG_STAT_EXTRNL  0x00000010  // EDBGRQ asserted
+#define NVIC_DEBUG_STAT_VCATCH  0x00000008  // Vector catch
+#define NVIC_DEBUG_STAT_DWTTRAP 0x00000004  // DWT match
+#define NVIC_DEBUG_STAT_BKPT    0x00000002  // Breakpoint instruction
+#define NVIC_DEBUG_STAT_HALTED  0x00000001  // Halt request
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_MM_ADDR register.
+//
+//*****************************************************************************
+#define NVIC_MM_ADDR_M          0xFFFFFFFF  // Fault Address
+#define NVIC_MM_ADDR_S          0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_FAULT_ADDR
+// register.
+//
+//*****************************************************************************
+#define NVIC_FAULT_ADDR_M       0xFFFFFFFF  // Fault Address
+#define NVIC_FAULT_ADDR_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_CPAC register.
+//
+//*****************************************************************************
+#define NVIC_CPAC_CP11_M        0x00C00000  // CP11 Coprocessor Access
+                                            // Privilege
+#define NVIC_CPAC_CP11_DIS      0x00000000  // Access Denied
+#define NVIC_CPAC_CP11_PRIV     0x00400000  // Privileged Access Only
+#define NVIC_CPAC_CP11_FULL     0x00C00000  // Full Access
+#define NVIC_CPAC_CP10_M        0x00300000  // CP10 Coprocessor Access
+                                            // Privilege
+#define NVIC_CPAC_CP10_DIS      0x00000000  // Access Denied
+#define NVIC_CPAC_CP10_PRIV     0x00100000  // Privileged Access Only
+#define NVIC_CPAC_CP10_FULL     0x00300000  // Full Access
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_MPU_TYPE register.
+//
+//*****************************************************************************
+#define NVIC_MPU_TYPE_IREGION_M 0x00FF0000  // Number of I Regions
+#define NVIC_MPU_TYPE_DREGION_M 0x0000FF00  // Number of D Regions
+#define NVIC_MPU_TYPE_SEPARATE  0x00000001  // Separate or Unified MPU
+#define NVIC_MPU_TYPE_IREGION_S 16
+#define NVIC_MPU_TYPE_DREGION_S 8
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_MPU_CTRL register.
+//
+//*****************************************************************************
+#define NVIC_MPU_CTRL_PRIVDEFEN 0x00000004  // MPU Default Region
+#define NVIC_MPU_CTRL_HFNMIENA  0x00000002  // MPU Enabled During Faults
+#define NVIC_MPU_CTRL_ENABLE    0x00000001  // MPU Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_MPU_NUMBER
+// register.
+//
+//*****************************************************************************
+#define NVIC_MPU_NUMBER_M       0x00000007  // MPU Region to Access
+#define NVIC_MPU_NUMBER_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_MPU_BASE register.
+//
+//*****************************************************************************
+#define NVIC_MPU_BASE_ADDR_M    0xFFFFFFE0  // Base Address Mask
+#define NVIC_MPU_BASE_VALID     0x00000010  // Region Number Valid
+#define NVIC_MPU_BASE_REGION_M  0x00000007  // Region Number
+#define NVIC_MPU_BASE_ADDR_S    5
+#define NVIC_MPU_BASE_REGION_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_MPU_ATTR register.
+//
+//*****************************************************************************
+#define NVIC_MPU_ATTR_XN        0x10000000  // Instruction Access Disable
+#define NVIC_MPU_ATTR_AP_M      0x07000000  // Access Privilege
+#define NVIC_MPU_ATTR_AP_NO_NO  0x00000000  // prv: no access, usr: no access
+#define NVIC_MPU_ATTR_AP_RW_NO  0x01000000  // prv: rw, usr: none
+#define NVIC_MPU_ATTR_AP_RW_RO  0x02000000  // prv: rw, usr: read-only
+#define NVIC_MPU_ATTR_AP_RW_RW  0x03000000  // prv: rw, usr: rw
+#define NVIC_MPU_ATTR_AP_RO_NO  0x05000000  // prv: ro, usr: none
+#define NVIC_MPU_ATTR_AP_RO_RO  0x06000000  // prv: ro, usr: ro
+#define NVIC_MPU_ATTR_TEX_M     0x00380000  // Type Extension Mask
+#define NVIC_MPU_ATTR_SHAREABLE 0x00040000  // Shareable
+#define NVIC_MPU_ATTR_CACHEABLE 0x00020000  // Cacheable
+#define NVIC_MPU_ATTR_BUFFRABLE 0x00010000  // Bufferable
+#define NVIC_MPU_ATTR_SRD_M     0x0000FF00  // Subregion Disable Bits
+#define NVIC_MPU_ATTR_SRD_0     0x00000100  // Sub-region 0 disable
+#define NVIC_MPU_ATTR_SRD_1     0x00000200  // Sub-region 1 disable
+#define NVIC_MPU_ATTR_SRD_2     0x00000400  // Sub-region 2 disable
+#define NVIC_MPU_ATTR_SRD_3     0x00000800  // Sub-region 3 disable
+#define NVIC_MPU_ATTR_SRD_4     0x00001000  // Sub-region 4 disable
+#define NVIC_MPU_ATTR_SRD_5     0x00002000  // Sub-region 5 disable
+#define NVIC_MPU_ATTR_SRD_6     0x00004000  // Sub-region 6 disable
+#define NVIC_MPU_ATTR_SRD_7     0x00008000  // Sub-region 7 disable
+#define NVIC_MPU_ATTR_SIZE_M    0x0000003E  // Region Size Mask
+#define NVIC_MPU_ATTR_SIZE_32B  0x00000008  // Region size 32 bytes
+#define NVIC_MPU_ATTR_SIZE_64B  0x0000000A  // Region size 64 bytes
+#define NVIC_MPU_ATTR_SIZE_128B 0x0000000C  // Region size 128 bytes
+#define NVIC_MPU_ATTR_SIZE_256B 0x0000000E  // Region size 256 bytes
+#define NVIC_MPU_ATTR_SIZE_512B 0x00000010  // Region size 512 bytes
+#define NVIC_MPU_ATTR_SIZE_1K   0x00000012  // Region size 1 Kbytes
+#define NVIC_MPU_ATTR_SIZE_2K   0x00000014  // Region size 2 Kbytes
+#define NVIC_MPU_ATTR_SIZE_4K   0x00000016  // Region size 4 Kbytes
+#define NVIC_MPU_ATTR_SIZE_8K   0x00000018  // Region size 8 Kbytes
+#define NVIC_MPU_ATTR_SIZE_16K  0x0000001A  // Region size 16 Kbytes
+#define NVIC_MPU_ATTR_SIZE_32K  0x0000001C  // Region size 32 Kbytes
+#define NVIC_MPU_ATTR_SIZE_64K  0x0000001E  // Region size 64 Kbytes
+#define NVIC_MPU_ATTR_SIZE_128K 0x00000020  // Region size 128 Kbytes
+#define NVIC_MPU_ATTR_SIZE_256K 0x00000022  // Region size 256 Kbytes
+#define NVIC_MPU_ATTR_SIZE_512K 0x00000024  // Region size 512 Kbytes
+#define NVIC_MPU_ATTR_SIZE_1M   0x00000026  // Region size 1 Mbytes
+#define NVIC_MPU_ATTR_SIZE_2M   0x00000028  // Region size 2 Mbytes
+#define NVIC_MPU_ATTR_SIZE_4M   0x0000002A  // Region size 4 Mbytes
+#define NVIC_MPU_ATTR_SIZE_8M   0x0000002C  // Region size 8 Mbytes
+#define NVIC_MPU_ATTR_SIZE_16M  0x0000002E  // Region size 16 Mbytes
+#define NVIC_MPU_ATTR_SIZE_32M  0x00000030  // Region size 32 Mbytes
+#define NVIC_MPU_ATTR_SIZE_64M  0x00000032  // Region size 64 Mbytes
+#define NVIC_MPU_ATTR_SIZE_128M 0x00000034  // Region size 128 Mbytes
+#define NVIC_MPU_ATTR_SIZE_256M 0x00000036  // Region size 256 Mbytes
+#define NVIC_MPU_ATTR_SIZE_512M 0x00000038  // Region size 512 Mbytes
+#define NVIC_MPU_ATTR_SIZE_1G   0x0000003A  // Region size 1 Gbytes
+#define NVIC_MPU_ATTR_SIZE_2G   0x0000003C  // Region size 2 Gbytes
+#define NVIC_MPU_ATTR_SIZE_4G   0x0000003E  // Region size 4 Gbytes
+#define NVIC_MPU_ATTR_ENABLE    0x00000001  // Region Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_MPU_BASE1 register.
+//
+//*****************************************************************************
+#define NVIC_MPU_BASE1_ADDR_M   0xFFFFFFE0  // Base Address Mask
+#define NVIC_MPU_BASE1_VALID    0x00000010  // Region Number Valid
+#define NVIC_MPU_BASE1_REGION_M 0x00000007  // Region Number
+#define NVIC_MPU_BASE1_ADDR_S   5
+#define NVIC_MPU_BASE1_REGION_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_MPU_ATTR1 register.
+//
+//*****************************************************************************
+#define NVIC_MPU_ATTR1_XN       0x10000000  // Instruction Access Disable
+#define NVIC_MPU_ATTR1_AP_M     0x07000000  // Access Privilege
+#define NVIC_MPU_ATTR1_TEX_M    0x00380000  // Type Extension Mask
+#define NVIC_MPU_ATTR1_SHAREABLE                                              \
+                                0x00040000  // Shareable
+#define NVIC_MPU_ATTR1_CACHEABLE                                              \
+                                0x00020000  // Cacheable
+#define NVIC_MPU_ATTR1_BUFFRABLE                                              \
+                                0x00010000  // Bufferable
+#define NVIC_MPU_ATTR1_SRD_M    0x0000FF00  // Subregion Disable Bits
+#define NVIC_MPU_ATTR1_SIZE_M   0x0000003E  // Region Size Mask
+#define NVIC_MPU_ATTR1_ENABLE   0x00000001  // Region Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_MPU_BASE2 register.
+//
+//*****************************************************************************
+#define NVIC_MPU_BASE2_ADDR_M   0xFFFFFFE0  // Base Address Mask
+#define NVIC_MPU_BASE2_VALID    0x00000010  // Region Number Valid
+#define NVIC_MPU_BASE2_REGION_M 0x00000007  // Region Number
+#define NVIC_MPU_BASE2_ADDR_S   5
+#define NVIC_MPU_BASE2_REGION_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_MPU_ATTR2 register.
+//
+//*****************************************************************************
+#define NVIC_MPU_ATTR2_XN       0x10000000  // Instruction Access Disable
+#define NVIC_MPU_ATTR2_AP_M     0x07000000  // Access Privilege
+#define NVIC_MPU_ATTR2_TEX_M    0x00380000  // Type Extension Mask
+#define NVIC_MPU_ATTR2_SHAREABLE                                              \
+                                0x00040000  // Shareable
+#define NVIC_MPU_ATTR2_CACHEABLE                                              \
+                                0x00020000  // Cacheable
+#define NVIC_MPU_ATTR2_BUFFRABLE                                              \
+                                0x00010000  // Bufferable
+#define NVIC_MPU_ATTR2_SRD_M    0x0000FF00  // Subregion Disable Bits
+#define NVIC_MPU_ATTR2_SIZE_M   0x0000003E  // Region Size Mask
+#define NVIC_MPU_ATTR2_ENABLE   0x00000001  // Region Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_MPU_BASE3 register.
+//
+//*****************************************************************************
+#define NVIC_MPU_BASE3_ADDR_M   0xFFFFFFE0  // Base Address Mask
+#define NVIC_MPU_BASE3_VALID    0x00000010  // Region Number Valid
+#define NVIC_MPU_BASE3_REGION_M 0x00000007  // Region Number
+#define NVIC_MPU_BASE3_ADDR_S   5
+#define NVIC_MPU_BASE3_REGION_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_MPU_ATTR3 register.
+//
+//*****************************************************************************
+#define NVIC_MPU_ATTR3_XN       0x10000000  // Instruction Access Disable
+#define NVIC_MPU_ATTR3_AP_M     0x07000000  // Access Privilege
+#define NVIC_MPU_ATTR3_TEX_M    0x00380000  // Type Extension Mask
+#define NVIC_MPU_ATTR3_SHAREABLE                                              \
+                                0x00040000  // Shareable
+#define NVIC_MPU_ATTR3_CACHEABLE                                              \
+                                0x00020000  // Cacheable
+#define NVIC_MPU_ATTR3_BUFFRABLE                                              \
+                                0x00010000  // Bufferable
+#define NVIC_MPU_ATTR3_SRD_M    0x0000FF00  // Subregion Disable Bits
+#define NVIC_MPU_ATTR3_SIZE_M   0x0000003E  // Region Size Mask
+#define NVIC_MPU_ATTR3_ENABLE   0x00000001  // Region Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_DBG_CTRL register.
+//
+//*****************************************************************************
+#define NVIC_DBG_CTRL_DBGKEY_M  0xFFFF0000  // Debug key mask
+#define NVIC_DBG_CTRL_DBGKEY    0xA05F0000  // Debug key
+#define NVIC_DBG_CTRL_S_RESET_ST                                              \
+                                0x02000000  // Core has reset since last read
+#define NVIC_DBG_CTRL_S_RETIRE_ST                                             \
+                                0x01000000  // Core has executed insruction
+                                            // since last read
+#define NVIC_DBG_CTRL_S_LOCKUP  0x00080000  // Core is locked up
+#define NVIC_DBG_CTRL_S_SLEEP   0x00040000  // Core is sleeping
+#define NVIC_DBG_CTRL_S_HALT    0x00020000  // Core status on halt
+#define NVIC_DBG_CTRL_S_REGRDY  0x00010000  // Register read/write available
+#define NVIC_DBG_CTRL_C_SNAPSTALL                                             \
+                                0x00000020  // Breaks a stalled load/store
+#define NVIC_DBG_CTRL_C_MASKINT 0x00000008  // Mask interrupts when stepping
+#define NVIC_DBG_CTRL_C_STEP    0x00000004  // Step the core
+#define NVIC_DBG_CTRL_C_HALT    0x00000002  // Halt the core
+#define NVIC_DBG_CTRL_C_DEBUGEN 0x00000001  // Enable debug
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_DBG_XFER register.
+//
+//*****************************************************************************
+#define NVIC_DBG_XFER_REG_WNR   0x00010000  // Write or not read
+#define NVIC_DBG_XFER_REG_SEL_M 0x0000001F  // Register
+#define NVIC_DBG_XFER_REG_R0    0x00000000  // Register R0
+#define NVIC_DBG_XFER_REG_R1    0x00000001  // Register R1
+#define NVIC_DBG_XFER_REG_R2    0x00000002  // Register R2
+#define NVIC_DBG_XFER_REG_R3    0x00000003  // Register R3
+#define NVIC_DBG_XFER_REG_R4    0x00000004  // Register R4
+#define NVIC_DBG_XFER_REG_R5    0x00000005  // Register R5
+#define NVIC_DBG_XFER_REG_R6    0x00000006  // Register R6
+#define NVIC_DBG_XFER_REG_R7    0x00000007  // Register R7
+#define NVIC_DBG_XFER_REG_R8    0x00000008  // Register R8
+#define NVIC_DBG_XFER_REG_R9    0x00000009  // Register R9
+#define NVIC_DBG_XFER_REG_R10   0x0000000A  // Register R10
+#define NVIC_DBG_XFER_REG_R11   0x0000000B  // Register R11
+#define NVIC_DBG_XFER_REG_R12   0x0000000C  // Register R12
+#define NVIC_DBG_XFER_REG_R13   0x0000000D  // Register R13
+#define NVIC_DBG_XFER_REG_R14   0x0000000E  // Register R14
+#define NVIC_DBG_XFER_REG_R15   0x0000000F  // Register R15
+#define NVIC_DBG_XFER_REG_FLAGS 0x00000010  // xPSR/Flags register
+#define NVIC_DBG_XFER_REG_MSP   0x00000011  // Main SP
+#define NVIC_DBG_XFER_REG_PSP   0x00000012  // Process SP
+#define NVIC_DBG_XFER_REG_DSP   0x00000013  // Deep SP
+#define NVIC_DBG_XFER_REG_CFBP  0x00000014  // Control/Fault/BasePri/PriMask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_DBG_DATA register.
+//
+//*****************************************************************************
+#define NVIC_DBG_DATA_M         0xFFFFFFFF  // Data temporary cache
+#define NVIC_DBG_DATA_S         0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_DBG_INT register.
+//
+//*****************************************************************************
+#define NVIC_DBG_INT_HARDERR    0x00000400  // Debug trap on hard fault
+#define NVIC_DBG_INT_INTERR     0x00000200  // Debug trap on interrupt errors
+#define NVIC_DBG_INT_BUSERR     0x00000100  // Debug trap on bus error
+#define NVIC_DBG_INT_STATERR    0x00000080  // Debug trap on usage fault state
+#define NVIC_DBG_INT_CHKERR     0x00000040  // Debug trap on usage fault check
+#define NVIC_DBG_INT_NOCPERR    0x00000020  // Debug trap on coprocessor error
+#define NVIC_DBG_INT_MMERR      0x00000010  // Debug trap on mem manage fault
+#define NVIC_DBG_INT_RESET      0x00000008  // Core reset status
+#define NVIC_DBG_INT_RSTPENDCLR 0x00000004  // Clear pending core reset
+#define NVIC_DBG_INT_RSTPENDING 0x00000002  // Core reset is pending
+#define NVIC_DBG_INT_RSTVCATCH  0x00000001  // Reset vector catch
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_SW_TRIG register.
+//
+//*****************************************************************************
+#define NVIC_SW_TRIG_INTID_M    0x000000FF  // Interrupt ID
+#define NVIC_SW_TRIG_INTID_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_FPCC register.
+//
+//*****************************************************************************
+#define NVIC_FPCC_ASPEN         0x80000000  // Automatic State Preservation
+                                            // Enable
+#define NVIC_FPCC_LSPEN         0x40000000  // Lazy State Preservation Enable
+#define NVIC_FPCC_MONRDY        0x00000100  // Monitor Ready
+#define NVIC_FPCC_BFRDY         0x00000040  // Bus Fault Ready
+#define NVIC_FPCC_MMRDY         0x00000020  // Memory Management Fault Ready
+#define NVIC_FPCC_HFRDY         0x00000010  // Hard Fault Ready
+#define NVIC_FPCC_THREAD        0x00000008  // Thread Mode
+#define NVIC_FPCC_USER          0x00000002  // User Privilege Level
+#define NVIC_FPCC_LSPACT        0x00000001  // Lazy State Preservation Active
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_FPCA register.
+//
+//*****************************************************************************
+#define NVIC_FPCA_ADDRESS_M     0xFFFFFFF8  // Address
+#define NVIC_FPCA_ADDRESS_S     3
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_FPDSC register.
+//
+//*****************************************************************************
+#define NVIC_FPDSC_AHP          0x04000000  // AHP Bit Default
+#define NVIC_FPDSC_DN           0x02000000  // DN Bit Default
+#define NVIC_FPDSC_FZ           0x01000000  // FZ Bit Default
+#define NVIC_FPDSC_RMODE_M      0x00C00000  // RMODE Bit Default
+#define NVIC_FPDSC_RMODE_RN     0x00000000  // Round to Nearest (RN) mode
+#define NVIC_FPDSC_RMODE_RP     0x00400000  // Round towards Plus Infinity (RP)
+                                            // mode
+#define NVIC_FPDSC_RMODE_RM     0x00800000  // Round towards Minus Infinity
+                                            // (RM) mode
+#define NVIC_FPDSC_RMODE_RZ     0x00C00000  // Round towards Zero (RZ) mode
+
+#endif // __HW_NVIC_H__

+ 223 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_onewire.h

@@ -0,0 +1,223 @@
+//*****************************************************************************
+//
+// hw_onewire.h - Macros used when accessing the One wire hardware.
+//
+// Copyright (c) 2012-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Firmware Development Package.
+//
+//*****************************************************************************
+
+#ifndef __HW_ONEWIRE_H__
+#define __HW_ONEWIRE_H__
+
+//*****************************************************************************
+//
+// The following are defines for the One wire register offsets.
+//
+//*****************************************************************************
+#define ONEWIRE_O_CS            0x00000000  // 1-Wire Control and Status
+#define ONEWIRE_O_TIM           0x00000004  // 1-Wire Timing Override
+#define ONEWIRE_O_DATW          0x00000008  // 1-Wire Data Write
+#define ONEWIRE_O_DATR          0x0000000C  // 1-Wire Data Read
+#define ONEWIRE_O_IM            0x00000100  // 1-Wire Interrupt Mask
+#define ONEWIRE_O_RIS           0x00000104  // 1-Wire Raw Interrupt Status
+#define ONEWIRE_O_MIS           0x00000108  // 1-Wire Masked Interrupt Status
+#define ONEWIRE_O_ICR           0x0000010C  // 1-Wire Interrupt Clear
+#define ONEWIRE_O_DMA           0x00000120  // 1-Wire uDMA Control
+#define ONEWIRE_O_PP            0x00000FC0  // 1-Wire Peripheral Properties
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ONEWIRE_O_CS register.
+//
+//*****************************************************************************
+#define ONEWIRE_CS_USEALT       0x80000000  // Two Wire Enable
+#define ONEWIRE_CS_ALTP         0x40000000  // Alternate Polarity Enable
+#define ONEWIRE_CS_BSIZE_M      0x00070000  // Last Byte Size
+#define ONEWIRE_CS_BSIZE_8      0x00000000  // 8 bits (1 byte)
+#define ONEWIRE_CS_BSIZE_1      0x00010000  // 1 bit
+#define ONEWIRE_CS_BSIZE_2      0x00020000  // 2 bits
+#define ONEWIRE_CS_BSIZE_3      0x00030000  // 3 bits
+#define ONEWIRE_CS_BSIZE_4      0x00040000  // 4 bits
+#define ONEWIRE_CS_BSIZE_5      0x00050000  // 5 bits
+#define ONEWIRE_CS_BSIZE_6      0x00060000  // 6 bits
+#define ONEWIRE_CS_BSIZE_7      0x00070000  // 7 bits
+#define ONEWIRE_CS_STUCK        0x00000400  // STUCK Status
+#define ONEWIRE_CS_NOATR        0x00000200  // Answer-to-Reset Status
+#define ONEWIRE_CS_BUSY         0x00000100  // Busy Status
+#define ONEWIRE_CS_SKATR        0x00000080  // Skip Answer-to-Reset Enable
+#define ONEWIRE_CS_LSAM         0x00000040  // Late Sample Enable
+#define ONEWIRE_CS_ODRV         0x00000020  // Overdrive Enable
+#define ONEWIRE_CS_SZ_M         0x00000018  // Data Operation Size
+#define ONEWIRE_CS_OP_M         0x00000006  // Operation Request
+#define ONEWIRE_CS_OP_NONE      0x00000000  // No operation
+#define ONEWIRE_CS_OP_RD        0x00000002  // Read
+#define ONEWIRE_CS_OP_WR        0x00000004  // Write
+#define ONEWIRE_CS_OP_WRRD      0x00000006  // Write/Read
+#define ONEWIRE_CS_RST          0x00000001  // Reset Request
+#define ONEWIRE_CS_SZ_S         3
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ONEWIRE_O_TIM register.
+//
+//*****************************************************************************
+#define ONEWIRE_TIM_W1TIM_M     0xF0000000  // Value '1' Timing
+#define ONEWIRE_TIM_W0TIM_M     0x0F800000  // Value '0' Timing
+#define ONEWIRE_TIM_W0REST_M    0x00780000  // Rest Time
+#define ONEWIRE_TIM_W1SAM_M     0x00078000  // Sample Time
+#define ONEWIRE_TIM_ATRSAM_M    0x00007800  // Answer-to-Reset Sample
+#define ONEWIRE_TIM_ATRTIM_M    0x000007C0  // Answer-to-Reset/Rest Period
+#define ONEWIRE_TIM_RSTTIM_M    0x0000003F  // Reset Low Time
+#define ONEWIRE_TIM_W1TIM_S     28
+#define ONEWIRE_TIM_W0TIM_S     23
+#define ONEWIRE_TIM_W0REST_S    19
+#define ONEWIRE_TIM_W1SAM_S     15
+#define ONEWIRE_TIM_ATRSAM_S    11
+#define ONEWIRE_TIM_ATRTIM_S    6
+#define ONEWIRE_TIM_RSTTIM_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ONEWIRE_O_DATW register.
+//
+//*****************************************************************************
+#define ONEWIRE_DATW_B3_M       0xFF000000  // Upper Data Byte
+#define ONEWIRE_DATW_B2_M       0x00FF0000  // Upper Middle Data Byte
+#define ONEWIRE_DATW_B1_M       0x0000FF00  // Lower Middle Data Byte
+#define ONEWIRE_DATW_B0_M       0x000000FF  // Lowest Data Byte
+#define ONEWIRE_DATW_B3_S       24
+#define ONEWIRE_DATW_B2_S       16
+#define ONEWIRE_DATW_B1_S       8
+#define ONEWIRE_DATW_B0_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ONEWIRE_O_DATR register.
+//
+//*****************************************************************************
+#define ONEWIRE_DATR_B3_M       0xFF000000  // Upper Data Byte
+#define ONEWIRE_DATR_B2_M       0x00FF0000  // Upper Middle Data Byte
+#define ONEWIRE_DATR_B1_M       0x0000FF00  // Lower Middle Data Byte
+#define ONEWIRE_DATR_B0_M       0x000000FF  // Lowest Data Byte
+#define ONEWIRE_DATR_B3_S       24
+#define ONEWIRE_DATR_B2_S       16
+#define ONEWIRE_DATR_B1_S       8
+#define ONEWIRE_DATR_B0_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ONEWIRE_O_IM register.
+//
+//*****************************************************************************
+#define ONEWIRE_IM_DMA          0x00000010  // DMA Done Interrupt Mask
+#define ONEWIRE_IM_STUCK        0x00000008  // Stuck Status Interrupt Mask
+#define ONEWIRE_IM_NOATR        0x00000004  // No Answer-to-Reset Interrupt
+                                            // Mask
+#define ONEWIRE_IM_OPC          0x00000002  // Operation Complete Interrupt
+                                            // Mask
+#define ONEWIRE_IM_RST          0x00000001  // Reset Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ONEWIRE_O_RIS register.
+//
+//*****************************************************************************
+#define ONEWIRE_RIS_DMA         0x00000010  // DMA Done Raw Interrupt Status
+#define ONEWIRE_RIS_STUCK       0x00000008  // Stuck Status Raw Interrupt
+                                            // Status
+#define ONEWIRE_RIS_NOATR       0x00000004  // No Answer-to-Reset Raw Interrupt
+                                            // Status
+#define ONEWIRE_RIS_OPC         0x00000002  // Operation Complete Raw Interrupt
+                                            // Status
+#define ONEWIRE_RIS_RST         0x00000001  // Reset Raw Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ONEWIRE_O_MIS register.
+//
+//*****************************************************************************
+#define ONEWIRE_MIS_DMA         0x00000010  // DMA Done Masked Interrupt Status
+#define ONEWIRE_MIS_STUCK       0x00000008  // Stuck Status Masked Interrupt
+                                            // Status
+#define ONEWIRE_MIS_NOATR       0x00000004  // No Answer-to-Reset Masked
+                                            // Interrupt Status
+#define ONEWIRE_MIS_OPC         0x00000002  // Operation Complete Masked
+                                            // Interrupt Status
+#define ONEWIRE_MIS_RST         0x00000001  // Reset Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ONEWIRE_O_ICR register.
+//
+//*****************************************************************************
+#define ONEWIRE_ICR_DMA         0x00000010  // DMA Done Interrupt Clear
+#define ONEWIRE_ICR_STUCK       0x00000008  // Stuck Status Interrupt Clear
+#define ONEWIRE_ICR_NOATR       0x00000004  // No Answer-to-Reset Interrupt
+                                            // Clear
+#define ONEWIRE_ICR_OPC         0x00000002  // Operation Complete Interrupt
+                                            // Clear
+#define ONEWIRE_ICR_RST         0x00000001  // Reset Interrupt Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ONEWIRE_O_DMA register.
+//
+//*****************************************************************************
+#define ONEWIRE_DMA_SG          0x00000008  // Scatter-Gather Enable
+#define ONEWIRE_DMA_DMAOP_M     0x00000006  // uDMA Operation
+#define ONEWIRE_DMA_DMAOP_DIS   0x00000000  // uDMA disabled
+#define ONEWIRE_DMA_DMAOP_RDSNG 0x00000002  // uDMA single read: 1-Wire
+                                            // requests uDMA to read
+                                            // ONEWIREDATR register after each
+                                            // read transaction
+#define ONEWIRE_DMA_DMAOP_WRMUL 0x00000004  // uDMA multiple write: 1-Wire
+                                            // requests uDMA to load whenever
+                                            // the ONEWIREDATW register is
+                                            // empty
+#define ONEWIRE_DMA_DMAOP_RDMUL 0x00000006  // uDMA multiple read: An initial
+                                            // read occurs and subsequent reads
+                                            // start after uDMA has read the
+                                            // ONEWIREDATR register
+#define ONEWIRE_DMA_RST         0x00000001  // uDMA Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ONEWIRE_O_PP register.
+//
+//*****************************************************************************
+#define ONEWIRE_PP_DMAP         0x00000010  // uDMA Present
+#define ONEWIRE_PP_CNT_M        0x00000003  // 1-Wire Bus Count
+#define ONEWIRE_PP_CNT_S        0
+
+#endif // __HW_ONEWIRE_H__

+ 1885 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_pwm.h

@@ -0,0 +1,1885 @@
+//*****************************************************************************
+//
+// hw_pwm.h - Defines and Macros for Pulse Width Modulation (PWM) ports.
+//
+// Copyright (c) 2005-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Firmware Development Package.
+//
+//*****************************************************************************
+
+#ifndef __HW_PWM_H__
+#define __HW_PWM_H__
+
+//*****************************************************************************
+//
+// The following are defines for the PWM register offsets.
+//
+//*****************************************************************************
+#define PWM_O_CTL               0x00000000  // PWM Master Control
+#define PWM_O_SYNC              0x00000004  // PWM Time Base Sync
+#define PWM_O_ENABLE            0x00000008  // PWM Output Enable
+#define PWM_O_INVERT            0x0000000C  // PWM Output Inversion
+#define PWM_O_FAULT             0x00000010  // PWM Output Fault
+#define PWM_O_INTEN             0x00000014  // PWM Interrupt Enable
+#define PWM_O_RIS               0x00000018  // PWM Raw Interrupt Status
+#define PWM_O_ISC               0x0000001C  // PWM Interrupt Status and Clear
+#define PWM_O_STATUS            0x00000020  // PWM Status
+#define PWM_O_FAULTVAL          0x00000024  // PWM Fault Condition Value
+#define PWM_O_ENUPD             0x00000028  // PWM Enable Update
+#define PWM_O_0_CTL             0x00000040  // PWM0 Control
+#define PWM_O_0_INTEN           0x00000044  // PWM0 Interrupt and Trigger
+                                            // Enable
+#define PWM_O_0_RIS             0x00000048  // PWM0 Raw Interrupt Status
+#define PWM_O_0_ISC             0x0000004C  // PWM0 Interrupt Status and Clear
+#define PWM_O_0_LOAD            0x00000050  // PWM0 Load
+#define PWM_O_0_COUNT           0x00000054  // PWM0 Counter
+#define PWM_O_0_CMPA            0x00000058  // PWM0 Compare A
+#define PWM_O_0_CMPB            0x0000005C  // PWM0 Compare B
+#define PWM_O_0_GENA            0x00000060  // PWM0 Generator A Control
+#define PWM_O_0_GENB            0x00000064  // PWM0 Generator B Control
+#define PWM_O_0_DBCTL           0x00000068  // PWM0 Dead-Band Control
+#define PWM_O_0_DBRISE          0x0000006C  // PWM0 Dead-Band Rising-Edge Delay
+#define PWM_O_0_DBFALL          0x00000070  // PWM0 Dead-Band
+                                            // Falling-Edge-Delay
+#define PWM_O_0_FLTSRC0         0x00000074  // PWM0 Fault Source 0
+#define PWM_O_0_FLTSRC1         0x00000078  // PWM0 Fault Source 1
+#define PWM_O_0_MINFLTPER       0x0000007C  // PWM0 Minimum Fault Period
+#define PWM_O_1_CTL             0x00000080  // PWM1 Control
+#define PWM_O_1_INTEN           0x00000084  // PWM1 Interrupt and Trigger
+                                            // Enable
+#define PWM_O_1_RIS             0x00000088  // PWM1 Raw Interrupt Status
+#define PWM_O_1_ISC             0x0000008C  // PWM1 Interrupt Status and Clear
+#define PWM_O_1_LOAD            0x00000090  // PWM1 Load
+#define PWM_O_1_COUNT           0x00000094  // PWM1 Counter
+#define PWM_O_1_CMPA            0x00000098  // PWM1 Compare A
+#define PWM_O_1_CMPB            0x0000009C  // PWM1 Compare B
+#define PWM_O_1_GENA            0x000000A0  // PWM1 Generator A Control
+#define PWM_O_1_GENB            0x000000A4  // PWM1 Generator B Control
+#define PWM_O_1_DBCTL           0x000000A8  // PWM1 Dead-Band Control
+#define PWM_O_1_DBRISE          0x000000AC  // PWM1 Dead-Band Rising-Edge Delay
+#define PWM_O_1_DBFALL          0x000000B0  // PWM1 Dead-Band
+                                            // Falling-Edge-Delay
+#define PWM_O_1_FLTSRC0         0x000000B4  // PWM1 Fault Source 0
+#define PWM_O_1_FLTSRC1         0x000000B8  // PWM1 Fault Source 1
+#define PWM_O_1_MINFLTPER       0x000000BC  // PWM1 Minimum Fault Period
+#define PWM_O_2_CTL             0x000000C0  // PWM2 Control
+#define PWM_O_2_INTEN           0x000000C4  // PWM2 Interrupt and Trigger
+                                            // Enable
+#define PWM_O_2_RIS             0x000000C8  // PWM2 Raw Interrupt Status
+#define PWM_O_2_ISC             0x000000CC  // PWM2 Interrupt Status and Clear
+#define PWM_O_2_LOAD            0x000000D0  // PWM2 Load
+#define PWM_O_2_COUNT           0x000000D4  // PWM2 Counter
+#define PWM_O_2_CMPA            0x000000D8  // PWM2 Compare A
+#define PWM_O_2_CMPB            0x000000DC  // PWM2 Compare B
+#define PWM_O_2_GENA            0x000000E0  // PWM2 Generator A Control
+#define PWM_O_2_GENB            0x000000E4  // PWM2 Generator B Control
+#define PWM_O_2_DBCTL           0x000000E8  // PWM2 Dead-Band Control
+#define PWM_O_2_DBRISE          0x000000EC  // PWM2 Dead-Band Rising-Edge Delay
+#define PWM_O_2_DBFALL          0x000000F0  // PWM2 Dead-Band
+                                            // Falling-Edge-Delay
+#define PWM_O_2_FLTSRC0         0x000000F4  // PWM2 Fault Source 0
+#define PWM_O_2_FLTSRC1         0x000000F8  // PWM2 Fault Source 1
+#define PWM_O_2_MINFLTPER       0x000000FC  // PWM2 Minimum Fault Period
+#define PWM_O_3_CTL             0x00000100  // PWM3 Control
+#define PWM_O_3_INTEN           0x00000104  // PWM3 Interrupt and Trigger
+                                            // Enable
+#define PWM_O_3_RIS             0x00000108  // PWM3 Raw Interrupt Status
+#define PWM_O_3_ISC             0x0000010C  // PWM3 Interrupt Status and Clear
+#define PWM_O_3_LOAD            0x00000110  // PWM3 Load
+#define PWM_O_3_COUNT           0x00000114  // PWM3 Counter
+#define PWM_O_3_CMPA            0x00000118  // PWM3 Compare A
+#define PWM_O_3_CMPB            0x0000011C  // PWM3 Compare B
+#define PWM_O_3_GENA            0x00000120  // PWM3 Generator A Control
+#define PWM_O_3_GENB            0x00000124  // PWM3 Generator B Control
+#define PWM_O_3_DBCTL           0x00000128  // PWM3 Dead-Band Control
+#define PWM_O_3_DBRISE          0x0000012C  // PWM3 Dead-Band Rising-Edge Delay
+#define PWM_O_3_DBFALL          0x00000130  // PWM3 Dead-Band
+                                            // Falling-Edge-Delay
+#define PWM_O_3_FLTSRC0         0x00000134  // PWM3 Fault Source 0
+#define PWM_O_3_FLTSRC1         0x00000138  // PWM3 Fault Source 1
+#define PWM_O_3_MINFLTPER       0x0000013C  // PWM3 Minimum Fault Period
+#define PWM_O_0_FLTSEN          0x00000800  // PWM0 Fault Pin Logic Sense
+#define PWM_O_0_FLTSTAT0        0x00000804  // PWM0 Fault Status 0
+#define PWM_O_0_FLTSTAT1        0x00000808  // PWM0 Fault Status 1
+#define PWM_O_1_FLTSEN          0x00000880  // PWM1 Fault Pin Logic Sense
+#define PWM_O_1_FLTSTAT0        0x00000884  // PWM1 Fault Status 0
+#define PWM_O_1_FLTSTAT1        0x00000888  // PWM1 Fault Status 1
+#define PWM_O_2_FLTSEN          0x00000900  // PWM2 Fault Pin Logic Sense
+#define PWM_O_2_FLTSTAT0        0x00000904  // PWM2 Fault Status 0
+#define PWM_O_2_FLTSTAT1        0x00000908  // PWM2 Fault Status 1
+#define PWM_O_3_FLTSEN          0x00000980  // PWM3 Fault Pin Logic Sense
+#define PWM_O_3_FLTSTAT0        0x00000984  // PWM3 Fault Status 0
+#define PWM_O_3_FLTSTAT1        0x00000988  // PWM3 Fault Status 1
+#define PWM_O_PP                0x00000FC0  // PWM Peripheral Properties
+#define PWM_O_CC                0x00000FC8  // PWM Clock Configuration
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_CTL register.
+//
+//*****************************************************************************
+#define PWM_CTL_GLOBALSYNC3     0x00000008  // Update PWM Generator 3
+#define PWM_CTL_GLOBALSYNC2     0x00000004  // Update PWM Generator 2
+#define PWM_CTL_GLOBALSYNC1     0x00000002  // Update PWM Generator 1
+#define PWM_CTL_GLOBALSYNC0     0x00000001  // Update PWM Generator 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_SYNC register.
+//
+//*****************************************************************************
+#define PWM_SYNC_SYNC3          0x00000008  // Reset Generator 3 Counter
+#define PWM_SYNC_SYNC2          0x00000004  // Reset Generator 2 Counter
+#define PWM_SYNC_SYNC1          0x00000002  // Reset Generator 1 Counter
+#define PWM_SYNC_SYNC0          0x00000001  // Reset Generator 0 Counter
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_ENABLE register.
+//
+//*****************************************************************************
+#define PWM_ENABLE_PWM7EN       0x00000080  // MnPWM7 Output Enable
+#define PWM_ENABLE_PWM6EN       0x00000040  // MnPWM6 Output Enable
+#define PWM_ENABLE_PWM5EN       0x00000020  // MnPWM5 Output Enable
+#define PWM_ENABLE_PWM4EN       0x00000010  // MnPWM4 Output Enable
+#define PWM_ENABLE_PWM3EN       0x00000008  // MnPWM3 Output Enable
+#define PWM_ENABLE_PWM2EN       0x00000004  // MnPWM2 Output Enable
+#define PWM_ENABLE_PWM1EN       0x00000002  // MnPWM1 Output Enable
+#define PWM_ENABLE_PWM0EN       0x00000001  // MnPWM0 Output Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_INVERT register.
+//
+//*****************************************************************************
+#define PWM_INVERT_PWM7INV      0x00000080  // Invert MnPWM7 Signal
+#define PWM_INVERT_PWM6INV      0x00000040  // Invert MnPWM6 Signal
+#define PWM_INVERT_PWM5INV      0x00000020  // Invert MnPWM5 Signal
+#define PWM_INVERT_PWM4INV      0x00000010  // Invert MnPWM4 Signal
+#define PWM_INVERT_PWM3INV      0x00000008  // Invert MnPWM3 Signal
+#define PWM_INVERT_PWM2INV      0x00000004  // Invert MnPWM2 Signal
+#define PWM_INVERT_PWM1INV      0x00000002  // Invert MnPWM1 Signal
+#define PWM_INVERT_PWM0INV      0x00000001  // Invert MnPWM0 Signal
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_FAULT register.
+//
+//*****************************************************************************
+#define PWM_FAULT_FAULT7        0x00000080  // MnPWM7 Fault
+#define PWM_FAULT_FAULT6        0x00000040  // MnPWM6 Fault
+#define PWM_FAULT_FAULT5        0x00000020  // MnPWM5 Fault
+#define PWM_FAULT_FAULT4        0x00000010  // MnPWM4 Fault
+#define PWM_FAULT_FAULT3        0x00000008  // MnPWM3 Fault
+#define PWM_FAULT_FAULT2        0x00000004  // MnPWM2 Fault
+#define PWM_FAULT_FAULT1        0x00000002  // MnPWM1 Fault
+#define PWM_FAULT_FAULT0        0x00000001  // MnPWM0 Fault
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_INTEN register.
+//
+//*****************************************************************************
+#define PWM_INTEN_INTFAULT3     0x00080000  // Interrupt Fault 3
+#define PWM_INTEN_INTFAULT2     0x00040000  // Interrupt Fault 2
+#define PWM_INTEN_INTFAULT1     0x00020000  // Interrupt Fault 1
+#define PWM_INTEN_INTFAULT0     0x00010000  // Interrupt Fault 0
+#define PWM_INTEN_INTPWM3       0x00000008  // PWM3 Interrupt Enable
+#define PWM_INTEN_INTPWM2       0x00000004  // PWM2 Interrupt Enable
+#define PWM_INTEN_INTPWM1       0x00000002  // PWM1 Interrupt Enable
+#define PWM_INTEN_INTPWM0       0x00000001  // PWM0 Interrupt Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_RIS register.
+//
+//*****************************************************************************
+#define PWM_RIS_INTFAULT3       0x00080000  // Interrupt Fault PWM 3
+#define PWM_RIS_INTFAULT2       0x00040000  // Interrupt Fault PWM 2
+#define PWM_RIS_INTFAULT1       0x00020000  // Interrupt Fault PWM 1
+#define PWM_RIS_INTFAULT0       0x00010000  // Interrupt Fault PWM 0
+#define PWM_RIS_INTPWM3         0x00000008  // PWM3 Interrupt Asserted
+#define PWM_RIS_INTPWM2         0x00000004  // PWM2 Interrupt Asserted
+#define PWM_RIS_INTPWM1         0x00000002  // PWM1 Interrupt Asserted
+#define PWM_RIS_INTPWM0         0x00000001  // PWM0 Interrupt Asserted
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_ISC register.
+//
+//*****************************************************************************
+#define PWM_ISC_INTFAULT3       0x00080000  // FAULT3 Interrupt Asserted
+#define PWM_ISC_INTFAULT2       0x00040000  // FAULT2 Interrupt Asserted
+#define PWM_ISC_INTFAULT1       0x00020000  // FAULT1 Interrupt Asserted
+#define PWM_ISC_INTFAULT0       0x00010000  // FAULT0 Interrupt Asserted
+#define PWM_ISC_INTPWM3         0x00000008  // PWM3 Interrupt Status
+#define PWM_ISC_INTPWM2         0x00000004  // PWM2 Interrupt Status
+#define PWM_ISC_INTPWM1         0x00000002  // PWM1 Interrupt Status
+#define PWM_ISC_INTPWM0         0x00000001  // PWM0 Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_STATUS register.
+//
+//*****************************************************************************
+#define PWM_STATUS_FAULT3       0x00000008  // Generator 3 Fault Status
+#define PWM_STATUS_FAULT2       0x00000004  // Generator 2 Fault Status
+#define PWM_STATUS_FAULT1       0x00000002  // Generator 1 Fault Status
+#define PWM_STATUS_FAULT0       0x00000001  // Generator 0 Fault Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_FAULTVAL register.
+//
+//*****************************************************************************
+#define PWM_FAULTVAL_PWM7       0x00000080  // MnPWM7 Fault Value
+#define PWM_FAULTVAL_PWM6       0x00000040  // MnPWM6 Fault Value
+#define PWM_FAULTVAL_PWM5       0x00000020  // MnPWM5 Fault Value
+#define PWM_FAULTVAL_PWM4       0x00000010  // MnPWM4 Fault Value
+#define PWM_FAULTVAL_PWM3       0x00000008  // MnPWM3 Fault Value
+#define PWM_FAULTVAL_PWM2       0x00000004  // MnPWM2 Fault Value
+#define PWM_FAULTVAL_PWM1       0x00000002  // MnPWM1 Fault Value
+#define PWM_FAULTVAL_PWM0       0x00000001  // MnPWM0 Fault Value
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_ENUPD register.
+//
+//*****************************************************************************
+#define PWM_ENUPD_ENUPD7_M      0x0000C000  // MnPWM7 Enable Update Mode
+#define PWM_ENUPD_ENUPD7_IMM    0x00000000  // Immediate
+#define PWM_ENUPD_ENUPD7_LSYNC  0x00008000  // Locally Synchronized
+#define PWM_ENUPD_ENUPD7_GSYNC  0x0000C000  // Globally Synchronized
+#define PWM_ENUPD_ENUPD6_M      0x00003000  // MnPWM6 Enable Update Mode
+#define PWM_ENUPD_ENUPD6_IMM    0x00000000  // Immediate
+#define PWM_ENUPD_ENUPD6_LSYNC  0x00002000  // Locally Synchronized
+#define PWM_ENUPD_ENUPD6_GSYNC  0x00003000  // Globally Synchronized
+#define PWM_ENUPD_ENUPD5_M      0x00000C00  // MnPWM5 Enable Update Mode
+#define PWM_ENUPD_ENUPD5_IMM    0x00000000  // Immediate
+#define PWM_ENUPD_ENUPD5_LSYNC  0x00000800  // Locally Synchronized
+#define PWM_ENUPD_ENUPD5_GSYNC  0x00000C00  // Globally Synchronized
+#define PWM_ENUPD_ENUPD4_M      0x00000300  // MnPWM4 Enable Update Mode
+#define PWM_ENUPD_ENUPD4_IMM    0x00000000  // Immediate
+#define PWM_ENUPD_ENUPD4_LSYNC  0x00000200  // Locally Synchronized
+#define PWM_ENUPD_ENUPD4_GSYNC  0x00000300  // Globally Synchronized
+#define PWM_ENUPD_ENUPD3_M      0x000000C0  // MnPWM3 Enable Update Mode
+#define PWM_ENUPD_ENUPD3_IMM    0x00000000  // Immediate
+#define PWM_ENUPD_ENUPD3_LSYNC  0x00000080  // Locally Synchronized
+#define PWM_ENUPD_ENUPD3_GSYNC  0x000000C0  // Globally Synchronized
+#define PWM_ENUPD_ENUPD2_M      0x00000030  // MnPWM2 Enable Update Mode
+#define PWM_ENUPD_ENUPD2_IMM    0x00000000  // Immediate
+#define PWM_ENUPD_ENUPD2_LSYNC  0x00000020  // Locally Synchronized
+#define PWM_ENUPD_ENUPD2_GSYNC  0x00000030  // Globally Synchronized
+#define PWM_ENUPD_ENUPD1_M      0x0000000C  // MnPWM1 Enable Update Mode
+#define PWM_ENUPD_ENUPD1_IMM    0x00000000  // Immediate
+#define PWM_ENUPD_ENUPD1_LSYNC  0x00000008  // Locally Synchronized
+#define PWM_ENUPD_ENUPD1_GSYNC  0x0000000C  // Globally Synchronized
+#define PWM_ENUPD_ENUPD0_M      0x00000003  // MnPWM0 Enable Update Mode
+#define PWM_ENUPD_ENUPD0_IMM    0x00000000  // Immediate
+#define PWM_ENUPD_ENUPD0_LSYNC  0x00000002  // Locally Synchronized
+#define PWM_ENUPD_ENUPD0_GSYNC  0x00000003  // Globally Synchronized
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_CTL register.
+//
+//*****************************************************************************
+#define PWM_0_CTL_LATCH         0x00040000  // Latch Fault Input
+#define PWM_0_CTL_MINFLTPER     0x00020000  // Minimum Fault Period
+#define PWM_0_CTL_FLTSRC        0x00010000  // Fault Condition Source
+#define PWM_0_CTL_DBFALLUPD_M   0x0000C000  // PWMnDBFALL Update Mode
+#define PWM_0_CTL_DBFALLUPD_I   0x00000000  // Immediate
+#define PWM_0_CTL_DBFALLUPD_LS  0x00008000  // Locally Synchronized
+#define PWM_0_CTL_DBFALLUPD_GS  0x0000C000  // Globally Synchronized
+#define PWM_0_CTL_DBRISEUPD_M   0x00003000  // PWMnDBRISE Update Mode
+#define PWM_0_CTL_DBRISEUPD_I   0x00000000  // Immediate
+#define PWM_0_CTL_DBRISEUPD_LS  0x00002000  // Locally Synchronized
+#define PWM_0_CTL_DBRISEUPD_GS  0x00003000  // Globally Synchronized
+#define PWM_0_CTL_DBCTLUPD_M    0x00000C00  // PWMnDBCTL Update Mode
+#define PWM_0_CTL_DBCTLUPD_I    0x00000000  // Immediate
+#define PWM_0_CTL_DBCTLUPD_LS   0x00000800  // Locally Synchronized
+#define PWM_0_CTL_DBCTLUPD_GS   0x00000C00  // Globally Synchronized
+#define PWM_0_CTL_GENBUPD_M     0x00000300  // PWMnGENB Update Mode
+#define PWM_0_CTL_GENBUPD_I     0x00000000  // Immediate
+#define PWM_0_CTL_GENBUPD_LS    0x00000200  // Locally Synchronized
+#define PWM_0_CTL_GENBUPD_GS    0x00000300  // Globally Synchronized
+#define PWM_0_CTL_GENAUPD_M     0x000000C0  // PWMnGENA Update Mode
+#define PWM_0_CTL_GENAUPD_I     0x00000000  // Immediate
+#define PWM_0_CTL_GENAUPD_LS    0x00000080  // Locally Synchronized
+#define PWM_0_CTL_GENAUPD_GS    0x000000C0  // Globally Synchronized
+#define PWM_0_CTL_CMPBUPD       0x00000020  // Comparator B Update Mode
+#define PWM_0_CTL_CMPAUPD       0x00000010  // Comparator A Update Mode
+#define PWM_0_CTL_LOADUPD       0x00000008  // Load Register Update Mode
+#define PWM_0_CTL_DEBUG         0x00000004  // Debug Mode
+#define PWM_0_CTL_MODE          0x00000002  // Counter Mode
+#define PWM_0_CTL_ENABLE        0x00000001  // PWM Block Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_INTEN register.
+//
+//*****************************************************************************
+#define PWM_0_INTEN_TRCMPBD     0x00002000  // Trigger for Counter=PWMnCMPB
+                                            // Down
+#define PWM_0_INTEN_TRCMPBU     0x00001000  // Trigger for Counter=PWMnCMPB Up
+#define PWM_0_INTEN_TRCMPAD     0x00000800  // Trigger for Counter=PWMnCMPA
+                                            // Down
+#define PWM_0_INTEN_TRCMPAU     0x00000400  // Trigger for Counter=PWMnCMPA Up
+#define PWM_0_INTEN_TRCNTLOAD   0x00000200  // Trigger for Counter=PWMnLOAD
+#define PWM_0_INTEN_TRCNTZERO   0x00000100  // Trigger for Counter=0
+#define PWM_0_INTEN_INTCMPBD    0x00000020  // Interrupt for Counter=PWMnCMPB
+                                            // Down
+#define PWM_0_INTEN_INTCMPBU    0x00000010  // Interrupt for Counter=PWMnCMPB
+                                            // Up
+#define PWM_0_INTEN_INTCMPAD    0x00000008  // Interrupt for Counter=PWMnCMPA
+                                            // Down
+#define PWM_0_INTEN_INTCMPAU    0x00000004  // Interrupt for Counter=PWMnCMPA
+                                            // Up
+#define PWM_0_INTEN_INTCNTLOAD  0x00000002  // Interrupt for Counter=PWMnLOAD
+#define PWM_0_INTEN_INTCNTZERO  0x00000001  // Interrupt for Counter=0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_RIS register.
+//
+//*****************************************************************************
+#define PWM_0_RIS_INTCMPBD      0x00000020  // Comparator B Down Interrupt
+                                            // Status
+#define PWM_0_RIS_INTCMPBU      0x00000010  // Comparator B Up Interrupt Status
+#define PWM_0_RIS_INTCMPAD      0x00000008  // Comparator A Down Interrupt
+                                            // Status
+#define PWM_0_RIS_INTCMPAU      0x00000004  // Comparator A Up Interrupt Status
+#define PWM_0_RIS_INTCNTLOAD    0x00000002  // Counter=Load Interrupt Status
+#define PWM_0_RIS_INTCNTZERO    0x00000001  // Counter=0 Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_ISC register.
+//
+//*****************************************************************************
+#define PWM_0_ISC_INTCMPBD      0x00000020  // Comparator B Down Interrupt
+#define PWM_0_ISC_INTCMPBU      0x00000010  // Comparator B Up Interrupt
+#define PWM_0_ISC_INTCMPAD      0x00000008  // Comparator A Down Interrupt
+#define PWM_0_ISC_INTCMPAU      0x00000004  // Comparator A Up Interrupt
+#define PWM_0_ISC_INTCNTLOAD    0x00000002  // Counter=Load Interrupt
+#define PWM_0_ISC_INTCNTZERO    0x00000001  // Counter=0 Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_LOAD register.
+//
+//*****************************************************************************
+#define PWM_0_LOAD_M            0x0000FFFF  // Counter Load Value
+#define PWM_0_LOAD_S            0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_COUNT register.
+//
+//*****************************************************************************
+#define PWM_0_COUNT_M           0x0000FFFF  // Counter Value
+#define PWM_0_COUNT_S           0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_CMPA register.
+//
+//*****************************************************************************
+#define PWM_0_CMPA_M            0x0000FFFF  // Comparator A Value
+#define PWM_0_CMPA_S            0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_CMPB register.
+//
+//*****************************************************************************
+#define PWM_0_CMPB_M            0x0000FFFF  // Comparator B Value
+#define PWM_0_CMPB_S            0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_GENA register.
+//
+//*****************************************************************************
+#define PWM_0_GENA_ACTCMPBD_M   0x00000C00  // Action for Comparator B Down
+#define PWM_0_GENA_ACTCMPBD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_0_GENA_ACTCMPBD_INV 0x00000400  // Invert pwmA
+#define PWM_0_GENA_ACTCMPBD_ZERO                                              \
+                                0x00000800  // Drive pwmA Low
+#define PWM_0_GENA_ACTCMPBD_ONE 0x00000C00  // Drive pwmA High
+#define PWM_0_GENA_ACTCMPBU_M   0x00000300  // Action for Comparator B Up
+#define PWM_0_GENA_ACTCMPBU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_0_GENA_ACTCMPBU_INV 0x00000100  // Invert pwmA
+#define PWM_0_GENA_ACTCMPBU_ZERO                                              \
+                                0x00000200  // Drive pwmA Low
+#define PWM_0_GENA_ACTCMPBU_ONE 0x00000300  // Drive pwmA High
+#define PWM_0_GENA_ACTCMPAD_M   0x000000C0  // Action for Comparator A Down
+#define PWM_0_GENA_ACTCMPAD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_0_GENA_ACTCMPAD_INV 0x00000040  // Invert pwmA
+#define PWM_0_GENA_ACTCMPAD_ZERO                                              \
+                                0x00000080  // Drive pwmA Low
+#define PWM_0_GENA_ACTCMPAD_ONE 0x000000C0  // Drive pwmA High
+#define PWM_0_GENA_ACTCMPAU_M   0x00000030  // Action for Comparator A Up
+#define PWM_0_GENA_ACTCMPAU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_0_GENA_ACTCMPAU_INV 0x00000010  // Invert pwmA
+#define PWM_0_GENA_ACTCMPAU_ZERO                                              \
+                                0x00000020  // Drive pwmA Low
+#define PWM_0_GENA_ACTCMPAU_ONE 0x00000030  // Drive pwmA High
+#define PWM_0_GENA_ACTLOAD_M    0x0000000C  // Action for Counter=LOAD
+#define PWM_0_GENA_ACTLOAD_NONE 0x00000000  // Do nothing
+#define PWM_0_GENA_ACTLOAD_INV  0x00000004  // Invert pwmA
+#define PWM_0_GENA_ACTLOAD_ZERO 0x00000008  // Drive pwmA Low
+#define PWM_0_GENA_ACTLOAD_ONE  0x0000000C  // Drive pwmA High
+#define PWM_0_GENA_ACTZERO_M    0x00000003  // Action for Counter=0
+#define PWM_0_GENA_ACTZERO_NONE 0x00000000  // Do nothing
+#define PWM_0_GENA_ACTZERO_INV  0x00000001  // Invert pwmA
+#define PWM_0_GENA_ACTZERO_ZERO 0x00000002  // Drive pwmA Low
+#define PWM_0_GENA_ACTZERO_ONE  0x00000003  // Drive pwmA High
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_GENB register.
+//
+//*****************************************************************************
+#define PWM_0_GENB_ACTCMPBD_M   0x00000C00  // Action for Comparator B Down
+#define PWM_0_GENB_ACTCMPBD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_0_GENB_ACTCMPBD_INV 0x00000400  // Invert pwmB
+#define PWM_0_GENB_ACTCMPBD_ZERO                                              \
+                                0x00000800  // Drive pwmB Low
+#define PWM_0_GENB_ACTCMPBD_ONE 0x00000C00  // Drive pwmB High
+#define PWM_0_GENB_ACTCMPBU_M   0x00000300  // Action for Comparator B Up
+#define PWM_0_GENB_ACTCMPBU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_0_GENB_ACTCMPBU_INV 0x00000100  // Invert pwmB
+#define PWM_0_GENB_ACTCMPBU_ZERO                                              \
+                                0x00000200  // Drive pwmB Low
+#define PWM_0_GENB_ACTCMPBU_ONE 0x00000300  // Drive pwmB High
+#define PWM_0_GENB_ACTCMPAD_M   0x000000C0  // Action for Comparator A Down
+#define PWM_0_GENB_ACTCMPAD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_0_GENB_ACTCMPAD_INV 0x00000040  // Invert pwmB
+#define PWM_0_GENB_ACTCMPAD_ZERO                                              \
+                                0x00000080  // Drive pwmB Low
+#define PWM_0_GENB_ACTCMPAD_ONE 0x000000C0  // Drive pwmB High
+#define PWM_0_GENB_ACTCMPAU_M   0x00000030  // Action for Comparator A Up
+#define PWM_0_GENB_ACTCMPAU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_0_GENB_ACTCMPAU_INV 0x00000010  // Invert pwmB
+#define PWM_0_GENB_ACTCMPAU_ZERO                                              \
+                                0x00000020  // Drive pwmB Low
+#define PWM_0_GENB_ACTCMPAU_ONE 0x00000030  // Drive pwmB High
+#define PWM_0_GENB_ACTLOAD_M    0x0000000C  // Action for Counter=LOAD
+#define PWM_0_GENB_ACTLOAD_NONE 0x00000000  // Do nothing
+#define PWM_0_GENB_ACTLOAD_INV  0x00000004  // Invert pwmB
+#define PWM_0_GENB_ACTLOAD_ZERO 0x00000008  // Drive pwmB Low
+#define PWM_0_GENB_ACTLOAD_ONE  0x0000000C  // Drive pwmB High
+#define PWM_0_GENB_ACTZERO_M    0x00000003  // Action for Counter=0
+#define PWM_0_GENB_ACTZERO_NONE 0x00000000  // Do nothing
+#define PWM_0_GENB_ACTZERO_INV  0x00000001  // Invert pwmB
+#define PWM_0_GENB_ACTZERO_ZERO 0x00000002  // Drive pwmB Low
+#define PWM_0_GENB_ACTZERO_ONE  0x00000003  // Drive pwmB High
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_DBCTL register.
+//
+//*****************************************************************************
+#define PWM_0_DBCTL_ENABLE      0x00000001  // Dead-Band Generator Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_DBRISE register.
+//
+//*****************************************************************************
+#define PWM_0_DBRISE_DELAY_M    0x00000FFF  // Dead-Band Rise Delay
+#define PWM_0_DBRISE_DELAY_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_DBFALL register.
+//
+//*****************************************************************************
+#define PWM_0_DBFALL_DELAY_M    0x00000FFF  // Dead-Band Fall Delay
+#define PWM_0_DBFALL_DELAY_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_FLTSRC0
+// register.
+//
+//*****************************************************************************
+#define PWM_0_FLTSRC0_FAULT3    0x00000008  // Fault3 Input
+#define PWM_0_FLTSRC0_FAULT2    0x00000004  // Fault2 Input
+#define PWM_0_FLTSRC0_FAULT1    0x00000002  // Fault1 Input
+#define PWM_0_FLTSRC0_FAULT0    0x00000001  // Fault0 Input
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_FLTSRC1
+// register.
+//
+//*****************************************************************************
+#define PWM_0_FLTSRC1_DCMP7     0x00000080  // Digital Comparator 7
+#define PWM_0_FLTSRC1_DCMP6     0x00000040  // Digital Comparator 6
+#define PWM_0_FLTSRC1_DCMP5     0x00000020  // Digital Comparator 5
+#define PWM_0_FLTSRC1_DCMP4     0x00000010  // Digital Comparator 4
+#define PWM_0_FLTSRC1_DCMP3     0x00000008  // Digital Comparator 3
+#define PWM_0_FLTSRC1_DCMP2     0x00000004  // Digital Comparator 2
+#define PWM_0_FLTSRC1_DCMP1     0x00000002  // Digital Comparator 1
+#define PWM_0_FLTSRC1_DCMP0     0x00000001  // Digital Comparator 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_MINFLTPER
+// register.
+//
+//*****************************************************************************
+#define PWM_0_MINFLTPER_M       0x0000FFFF  // Minimum Fault Period
+#define PWM_0_MINFLTPER_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_CTL register.
+//
+//*****************************************************************************
+#define PWM_1_CTL_LATCH         0x00040000  // Latch Fault Input
+#define PWM_1_CTL_MINFLTPER     0x00020000  // Minimum Fault Period
+#define PWM_1_CTL_FLTSRC        0x00010000  // Fault Condition Source
+#define PWM_1_CTL_DBFALLUPD_M   0x0000C000  // PWMnDBFALL Update Mode
+#define PWM_1_CTL_DBFALLUPD_I   0x00000000  // Immediate
+#define PWM_1_CTL_DBFALLUPD_LS  0x00008000  // Locally Synchronized
+#define PWM_1_CTL_DBFALLUPD_GS  0x0000C000  // Globally Synchronized
+#define PWM_1_CTL_DBRISEUPD_M   0x00003000  // PWMnDBRISE Update Mode
+#define PWM_1_CTL_DBRISEUPD_I   0x00000000  // Immediate
+#define PWM_1_CTL_DBRISEUPD_LS  0x00002000  // Locally Synchronized
+#define PWM_1_CTL_DBRISEUPD_GS  0x00003000  // Globally Synchronized
+#define PWM_1_CTL_DBCTLUPD_M    0x00000C00  // PWMnDBCTL Update Mode
+#define PWM_1_CTL_DBCTLUPD_I    0x00000000  // Immediate
+#define PWM_1_CTL_DBCTLUPD_LS   0x00000800  // Locally Synchronized
+#define PWM_1_CTL_DBCTLUPD_GS   0x00000C00  // Globally Synchronized
+#define PWM_1_CTL_GENBUPD_M     0x00000300  // PWMnGENB Update Mode
+#define PWM_1_CTL_GENBUPD_I     0x00000000  // Immediate
+#define PWM_1_CTL_GENBUPD_LS    0x00000200  // Locally Synchronized
+#define PWM_1_CTL_GENBUPD_GS    0x00000300  // Globally Synchronized
+#define PWM_1_CTL_GENAUPD_M     0x000000C0  // PWMnGENA Update Mode
+#define PWM_1_CTL_GENAUPD_I     0x00000000  // Immediate
+#define PWM_1_CTL_GENAUPD_LS    0x00000080  // Locally Synchronized
+#define PWM_1_CTL_GENAUPD_GS    0x000000C0  // Globally Synchronized
+#define PWM_1_CTL_CMPBUPD       0x00000020  // Comparator B Update Mode
+#define PWM_1_CTL_CMPAUPD       0x00000010  // Comparator A Update Mode
+#define PWM_1_CTL_LOADUPD       0x00000008  // Load Register Update Mode
+#define PWM_1_CTL_DEBUG         0x00000004  // Debug Mode
+#define PWM_1_CTL_MODE          0x00000002  // Counter Mode
+#define PWM_1_CTL_ENABLE        0x00000001  // PWM Block Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_INTEN register.
+//
+//*****************************************************************************
+#define PWM_1_INTEN_TRCMPBD     0x00002000  // Trigger for Counter=PWMnCMPB
+                                            // Down
+#define PWM_1_INTEN_TRCMPBU     0x00001000  // Trigger for Counter=PWMnCMPB Up
+#define PWM_1_INTEN_TRCMPAD     0x00000800  // Trigger for Counter=PWMnCMPA
+                                            // Down
+#define PWM_1_INTEN_TRCMPAU     0x00000400  // Trigger for Counter=PWMnCMPA Up
+#define PWM_1_INTEN_TRCNTLOAD   0x00000200  // Trigger for Counter=PWMnLOAD
+#define PWM_1_INTEN_TRCNTZERO   0x00000100  // Trigger for Counter=0
+#define PWM_1_INTEN_INTCMPBD    0x00000020  // Interrupt for Counter=PWMnCMPB
+                                            // Down
+#define PWM_1_INTEN_INTCMPBU    0x00000010  // Interrupt for Counter=PWMnCMPB
+                                            // Up
+#define PWM_1_INTEN_INTCMPAD    0x00000008  // Interrupt for Counter=PWMnCMPA
+                                            // Down
+#define PWM_1_INTEN_INTCMPAU    0x00000004  // Interrupt for Counter=PWMnCMPA
+                                            // Up
+#define PWM_1_INTEN_INTCNTLOAD  0x00000002  // Interrupt for Counter=PWMnLOAD
+#define PWM_1_INTEN_INTCNTZERO  0x00000001  // Interrupt for Counter=0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_RIS register.
+//
+//*****************************************************************************
+#define PWM_1_RIS_INTCMPBD      0x00000020  // Comparator B Down Interrupt
+                                            // Status
+#define PWM_1_RIS_INTCMPBU      0x00000010  // Comparator B Up Interrupt Status
+#define PWM_1_RIS_INTCMPAD      0x00000008  // Comparator A Down Interrupt
+                                            // Status
+#define PWM_1_RIS_INTCMPAU      0x00000004  // Comparator A Up Interrupt Status
+#define PWM_1_RIS_INTCNTLOAD    0x00000002  // Counter=Load Interrupt Status
+#define PWM_1_RIS_INTCNTZERO    0x00000001  // Counter=0 Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_ISC register.
+//
+//*****************************************************************************
+#define PWM_1_ISC_INTCMPBD      0x00000020  // Comparator B Down Interrupt
+#define PWM_1_ISC_INTCMPBU      0x00000010  // Comparator B Up Interrupt
+#define PWM_1_ISC_INTCMPAD      0x00000008  // Comparator A Down Interrupt
+#define PWM_1_ISC_INTCMPAU      0x00000004  // Comparator A Up Interrupt
+#define PWM_1_ISC_INTCNTLOAD    0x00000002  // Counter=Load Interrupt
+#define PWM_1_ISC_INTCNTZERO    0x00000001  // Counter=0 Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_LOAD register.
+//
+//*****************************************************************************
+#define PWM_1_LOAD_LOAD_M       0x0000FFFF  // Counter Load Value
+#define PWM_1_LOAD_LOAD_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_COUNT register.
+//
+//*****************************************************************************
+#define PWM_1_COUNT_COUNT_M     0x0000FFFF  // Counter Value
+#define PWM_1_COUNT_COUNT_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_CMPA register.
+//
+//*****************************************************************************
+#define PWM_1_CMPA_COMPA_M      0x0000FFFF  // Comparator A Value
+#define PWM_1_CMPA_COMPA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_CMPB register.
+//
+//*****************************************************************************
+#define PWM_1_CMPB_COMPB_M      0x0000FFFF  // Comparator B Value
+#define PWM_1_CMPB_COMPB_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_GENA register.
+//
+//*****************************************************************************
+#define PWM_1_GENA_ACTCMPBD_M   0x00000C00  // Action for Comparator B Down
+#define PWM_1_GENA_ACTCMPBD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_1_GENA_ACTCMPBD_INV 0x00000400  // Invert pwmA
+#define PWM_1_GENA_ACTCMPBD_ZERO                                              \
+                                0x00000800  // Drive pwmA Low
+#define PWM_1_GENA_ACTCMPBD_ONE 0x00000C00  // Drive pwmA High
+#define PWM_1_GENA_ACTCMPBU_M   0x00000300  // Action for Comparator B Up
+#define PWM_1_GENA_ACTCMPBU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_1_GENA_ACTCMPBU_INV 0x00000100  // Invert pwmA
+#define PWM_1_GENA_ACTCMPBU_ZERO                                              \
+                                0x00000200  // Drive pwmA Low
+#define PWM_1_GENA_ACTCMPBU_ONE 0x00000300  // Drive pwmA High
+#define PWM_1_GENA_ACTCMPAD_M   0x000000C0  // Action for Comparator A Down
+#define PWM_1_GENA_ACTCMPAD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_1_GENA_ACTCMPAD_INV 0x00000040  // Invert pwmA
+#define PWM_1_GENA_ACTCMPAD_ZERO                                              \
+                                0x00000080  // Drive pwmA Low
+#define PWM_1_GENA_ACTCMPAD_ONE 0x000000C0  // Drive pwmA High
+#define PWM_1_GENA_ACTCMPAU_M   0x00000030  // Action for Comparator A Up
+#define PWM_1_GENA_ACTCMPAU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_1_GENA_ACTCMPAU_INV 0x00000010  // Invert pwmA
+#define PWM_1_GENA_ACTCMPAU_ZERO                                              \
+                                0x00000020  // Drive pwmA Low
+#define PWM_1_GENA_ACTCMPAU_ONE 0x00000030  // Drive pwmA High
+#define PWM_1_GENA_ACTLOAD_M    0x0000000C  // Action for Counter=LOAD
+#define PWM_1_GENA_ACTLOAD_NONE 0x00000000  // Do nothing
+#define PWM_1_GENA_ACTLOAD_INV  0x00000004  // Invert pwmA
+#define PWM_1_GENA_ACTLOAD_ZERO 0x00000008  // Drive pwmA Low
+#define PWM_1_GENA_ACTLOAD_ONE  0x0000000C  // Drive pwmA High
+#define PWM_1_GENA_ACTZERO_M    0x00000003  // Action for Counter=0
+#define PWM_1_GENA_ACTZERO_NONE 0x00000000  // Do nothing
+#define PWM_1_GENA_ACTZERO_INV  0x00000001  // Invert pwmA
+#define PWM_1_GENA_ACTZERO_ZERO 0x00000002  // Drive pwmA Low
+#define PWM_1_GENA_ACTZERO_ONE  0x00000003  // Drive pwmA High
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_GENB register.
+//
+//*****************************************************************************
+#define PWM_1_GENB_ACTCMPBD_M   0x00000C00  // Action for Comparator B Down
+#define PWM_1_GENB_ACTCMPBD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_1_GENB_ACTCMPBD_INV 0x00000400  // Invert pwmB
+#define PWM_1_GENB_ACTCMPBD_ZERO                                              \
+                                0x00000800  // Drive pwmB Low
+#define PWM_1_GENB_ACTCMPBD_ONE 0x00000C00  // Drive pwmB High
+#define PWM_1_GENB_ACTCMPBU_M   0x00000300  // Action for Comparator B Up
+#define PWM_1_GENB_ACTCMPBU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_1_GENB_ACTCMPBU_INV 0x00000100  // Invert pwmB
+#define PWM_1_GENB_ACTCMPBU_ZERO                                              \
+                                0x00000200  // Drive pwmB Low
+#define PWM_1_GENB_ACTCMPBU_ONE 0x00000300  // Drive pwmB High
+#define PWM_1_GENB_ACTCMPAD_M   0x000000C0  // Action for Comparator A Down
+#define PWM_1_GENB_ACTCMPAD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_1_GENB_ACTCMPAD_INV 0x00000040  // Invert pwmB
+#define PWM_1_GENB_ACTCMPAD_ZERO                                              \
+                                0x00000080  // Drive pwmB Low
+#define PWM_1_GENB_ACTCMPAD_ONE 0x000000C0  // Drive pwmB High
+#define PWM_1_GENB_ACTCMPAU_M   0x00000030  // Action for Comparator A Up
+#define PWM_1_GENB_ACTCMPAU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_1_GENB_ACTCMPAU_INV 0x00000010  // Invert pwmB
+#define PWM_1_GENB_ACTCMPAU_ZERO                                              \
+                                0x00000020  // Drive pwmB Low
+#define PWM_1_GENB_ACTCMPAU_ONE 0x00000030  // Drive pwmB High
+#define PWM_1_GENB_ACTLOAD_M    0x0000000C  // Action for Counter=LOAD
+#define PWM_1_GENB_ACTLOAD_NONE 0x00000000  // Do nothing
+#define PWM_1_GENB_ACTLOAD_INV  0x00000004  // Invert pwmB
+#define PWM_1_GENB_ACTLOAD_ZERO 0x00000008  // Drive pwmB Low
+#define PWM_1_GENB_ACTLOAD_ONE  0x0000000C  // Drive pwmB High
+#define PWM_1_GENB_ACTZERO_M    0x00000003  // Action for Counter=0
+#define PWM_1_GENB_ACTZERO_NONE 0x00000000  // Do nothing
+#define PWM_1_GENB_ACTZERO_INV  0x00000001  // Invert pwmB
+#define PWM_1_GENB_ACTZERO_ZERO 0x00000002  // Drive pwmB Low
+#define PWM_1_GENB_ACTZERO_ONE  0x00000003  // Drive pwmB High
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_DBCTL register.
+//
+//*****************************************************************************
+#define PWM_1_DBCTL_ENABLE      0x00000001  // Dead-Band Generator Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_DBRISE register.
+//
+//*****************************************************************************
+#define PWM_1_DBRISE_RISEDELAY_M                                              \
+                                0x00000FFF  // Dead-Band Rise Delay
+#define PWM_1_DBRISE_RISEDELAY_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_DBFALL register.
+//
+//*****************************************************************************
+#define PWM_1_DBFALL_FALLDELAY_M                                              \
+                                0x00000FFF  // Dead-Band Fall Delay
+#define PWM_1_DBFALL_FALLDELAY_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_FLTSRC0
+// register.
+//
+//*****************************************************************************
+#define PWM_1_FLTSRC0_FAULT3    0x00000008  // Fault3 Input
+#define PWM_1_FLTSRC0_FAULT2    0x00000004  // Fault2 Input
+#define PWM_1_FLTSRC0_FAULT1    0x00000002  // Fault1 Input
+#define PWM_1_FLTSRC0_FAULT0    0x00000001  // Fault0 Input
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_FLTSRC1
+// register.
+//
+//*****************************************************************************
+#define PWM_1_FLTSRC1_DCMP7     0x00000080  // Digital Comparator 7
+#define PWM_1_FLTSRC1_DCMP6     0x00000040  // Digital Comparator 6
+#define PWM_1_FLTSRC1_DCMP5     0x00000020  // Digital Comparator 5
+#define PWM_1_FLTSRC1_DCMP4     0x00000010  // Digital Comparator 4
+#define PWM_1_FLTSRC1_DCMP3     0x00000008  // Digital Comparator 3
+#define PWM_1_FLTSRC1_DCMP2     0x00000004  // Digital Comparator 2
+#define PWM_1_FLTSRC1_DCMP1     0x00000002  // Digital Comparator 1
+#define PWM_1_FLTSRC1_DCMP0     0x00000001  // Digital Comparator 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_MINFLTPER
+// register.
+//
+//*****************************************************************************
+#define PWM_1_MINFLTPER_MFP_M   0x0000FFFF  // Minimum Fault Period
+#define PWM_1_MINFLTPER_MFP_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_CTL register.
+//
+//*****************************************************************************
+#define PWM_2_CTL_LATCH         0x00040000  // Latch Fault Input
+#define PWM_2_CTL_MINFLTPER     0x00020000  // Minimum Fault Period
+#define PWM_2_CTL_FLTSRC        0x00010000  // Fault Condition Source
+#define PWM_2_CTL_DBFALLUPD_M   0x0000C000  // PWMnDBFALL Update Mode
+#define PWM_2_CTL_DBFALLUPD_I   0x00000000  // Immediate
+#define PWM_2_CTL_DBFALLUPD_LS  0x00008000  // Locally Synchronized
+#define PWM_2_CTL_DBFALLUPD_GS  0x0000C000  // Globally Synchronized
+#define PWM_2_CTL_DBRISEUPD_M   0x00003000  // PWMnDBRISE Update Mode
+#define PWM_2_CTL_DBRISEUPD_I   0x00000000  // Immediate
+#define PWM_2_CTL_DBRISEUPD_LS  0x00002000  // Locally Synchronized
+#define PWM_2_CTL_DBRISEUPD_GS  0x00003000  // Globally Synchronized
+#define PWM_2_CTL_DBCTLUPD_M    0x00000C00  // PWMnDBCTL Update Mode
+#define PWM_2_CTL_DBCTLUPD_I    0x00000000  // Immediate
+#define PWM_2_CTL_DBCTLUPD_LS   0x00000800  // Locally Synchronized
+#define PWM_2_CTL_DBCTLUPD_GS   0x00000C00  // Globally Synchronized
+#define PWM_2_CTL_GENBUPD_M     0x00000300  // PWMnGENB Update Mode
+#define PWM_2_CTL_GENBUPD_I     0x00000000  // Immediate
+#define PWM_2_CTL_GENBUPD_LS    0x00000200  // Locally Synchronized
+#define PWM_2_CTL_GENBUPD_GS    0x00000300  // Globally Synchronized
+#define PWM_2_CTL_GENAUPD_M     0x000000C0  // PWMnGENA Update Mode
+#define PWM_2_CTL_GENAUPD_I     0x00000000  // Immediate
+#define PWM_2_CTL_GENAUPD_LS    0x00000080  // Locally Synchronized
+#define PWM_2_CTL_GENAUPD_GS    0x000000C0  // Globally Synchronized
+#define PWM_2_CTL_CMPBUPD       0x00000020  // Comparator B Update Mode
+#define PWM_2_CTL_CMPAUPD       0x00000010  // Comparator A Update Mode
+#define PWM_2_CTL_LOADUPD       0x00000008  // Load Register Update Mode
+#define PWM_2_CTL_DEBUG         0x00000004  // Debug Mode
+#define PWM_2_CTL_MODE          0x00000002  // Counter Mode
+#define PWM_2_CTL_ENABLE        0x00000001  // PWM Block Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_INTEN register.
+//
+//*****************************************************************************
+#define PWM_2_INTEN_TRCMPBD     0x00002000  // Trigger for Counter=PWMnCMPB
+                                            // Down
+#define PWM_2_INTEN_TRCMPBU     0x00001000  // Trigger for Counter=PWMnCMPB Up
+#define PWM_2_INTEN_TRCMPAD     0x00000800  // Trigger for Counter=PWMnCMPA
+                                            // Down
+#define PWM_2_INTEN_TRCMPAU     0x00000400  // Trigger for Counter=PWMnCMPA Up
+#define PWM_2_INTEN_TRCNTLOAD   0x00000200  // Trigger for Counter=PWMnLOAD
+#define PWM_2_INTEN_TRCNTZERO   0x00000100  // Trigger for Counter=0
+#define PWM_2_INTEN_INTCMPBD    0x00000020  // Interrupt for Counter=PWMnCMPB
+                                            // Down
+#define PWM_2_INTEN_INTCMPBU    0x00000010  // Interrupt for Counter=PWMnCMPB
+                                            // Up
+#define PWM_2_INTEN_INTCMPAD    0x00000008  // Interrupt for Counter=PWMnCMPA
+                                            // Down
+#define PWM_2_INTEN_INTCMPAU    0x00000004  // Interrupt for Counter=PWMnCMPA
+                                            // Up
+#define PWM_2_INTEN_INTCNTLOAD  0x00000002  // Interrupt for Counter=PWMnLOAD
+#define PWM_2_INTEN_INTCNTZERO  0x00000001  // Interrupt for Counter=0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_RIS register.
+//
+//*****************************************************************************
+#define PWM_2_RIS_INTCMPBD      0x00000020  // Comparator B Down Interrupt
+                                            // Status
+#define PWM_2_RIS_INTCMPBU      0x00000010  // Comparator B Up Interrupt Status
+#define PWM_2_RIS_INTCMPAD      0x00000008  // Comparator A Down Interrupt
+                                            // Status
+#define PWM_2_RIS_INTCMPAU      0x00000004  // Comparator A Up Interrupt Status
+#define PWM_2_RIS_INTCNTLOAD    0x00000002  // Counter=Load Interrupt Status
+#define PWM_2_RIS_INTCNTZERO    0x00000001  // Counter=0 Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_ISC register.
+//
+//*****************************************************************************
+#define PWM_2_ISC_INTCMPBD      0x00000020  // Comparator B Down Interrupt
+#define PWM_2_ISC_INTCMPBU      0x00000010  // Comparator B Up Interrupt
+#define PWM_2_ISC_INTCMPAD      0x00000008  // Comparator A Down Interrupt
+#define PWM_2_ISC_INTCMPAU      0x00000004  // Comparator A Up Interrupt
+#define PWM_2_ISC_INTCNTLOAD    0x00000002  // Counter=Load Interrupt
+#define PWM_2_ISC_INTCNTZERO    0x00000001  // Counter=0 Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_LOAD register.
+//
+//*****************************************************************************
+#define PWM_2_LOAD_LOAD_M       0x0000FFFF  // Counter Load Value
+#define PWM_2_LOAD_LOAD_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_COUNT register.
+//
+//*****************************************************************************
+#define PWM_2_COUNT_COUNT_M     0x0000FFFF  // Counter Value
+#define PWM_2_COUNT_COUNT_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_CMPA register.
+//
+//*****************************************************************************
+#define PWM_2_CMPA_COMPA_M      0x0000FFFF  // Comparator A Value
+#define PWM_2_CMPA_COMPA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_CMPB register.
+//
+//*****************************************************************************
+#define PWM_2_CMPB_COMPB_M      0x0000FFFF  // Comparator B Value
+#define PWM_2_CMPB_COMPB_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_GENA register.
+//
+//*****************************************************************************
+#define PWM_2_GENA_ACTCMPBD_M   0x00000C00  // Action for Comparator B Down
+#define PWM_2_GENA_ACTCMPBD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_2_GENA_ACTCMPBD_INV 0x00000400  // Invert pwmA
+#define PWM_2_GENA_ACTCMPBD_ZERO                                              \
+                                0x00000800  // Drive pwmA Low
+#define PWM_2_GENA_ACTCMPBD_ONE 0x00000C00  // Drive pwmA High
+#define PWM_2_GENA_ACTCMPBU_M   0x00000300  // Action for Comparator B Up
+#define PWM_2_GENA_ACTCMPBU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_2_GENA_ACTCMPBU_INV 0x00000100  // Invert pwmA
+#define PWM_2_GENA_ACTCMPBU_ZERO                                              \
+                                0x00000200  // Drive pwmA Low
+#define PWM_2_GENA_ACTCMPBU_ONE 0x00000300  // Drive pwmA High
+#define PWM_2_GENA_ACTCMPAD_M   0x000000C0  // Action for Comparator A Down
+#define PWM_2_GENA_ACTCMPAD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_2_GENA_ACTCMPAD_INV 0x00000040  // Invert pwmA
+#define PWM_2_GENA_ACTCMPAD_ZERO                                              \
+                                0x00000080  // Drive pwmA Low
+#define PWM_2_GENA_ACTCMPAD_ONE 0x000000C0  // Drive pwmA High
+#define PWM_2_GENA_ACTCMPAU_M   0x00000030  // Action for Comparator A Up
+#define PWM_2_GENA_ACTCMPAU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_2_GENA_ACTCMPAU_INV 0x00000010  // Invert pwmA
+#define PWM_2_GENA_ACTCMPAU_ZERO                                              \
+                                0x00000020  // Drive pwmA Low
+#define PWM_2_GENA_ACTCMPAU_ONE 0x00000030  // Drive pwmA High
+#define PWM_2_GENA_ACTLOAD_M    0x0000000C  // Action for Counter=LOAD
+#define PWM_2_GENA_ACTLOAD_NONE 0x00000000  // Do nothing
+#define PWM_2_GENA_ACTLOAD_INV  0x00000004  // Invert pwmA
+#define PWM_2_GENA_ACTLOAD_ZERO 0x00000008  // Drive pwmA Low
+#define PWM_2_GENA_ACTLOAD_ONE  0x0000000C  // Drive pwmA High
+#define PWM_2_GENA_ACTZERO_M    0x00000003  // Action for Counter=0
+#define PWM_2_GENA_ACTZERO_NONE 0x00000000  // Do nothing
+#define PWM_2_GENA_ACTZERO_INV  0x00000001  // Invert pwmA
+#define PWM_2_GENA_ACTZERO_ZERO 0x00000002  // Drive pwmA Low
+#define PWM_2_GENA_ACTZERO_ONE  0x00000003  // Drive pwmA High
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_GENB register.
+//
+//*****************************************************************************
+#define PWM_2_GENB_ACTCMPBD_M   0x00000C00  // Action for Comparator B Down
+#define PWM_2_GENB_ACTCMPBD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_2_GENB_ACTCMPBD_INV 0x00000400  // Invert pwmB
+#define PWM_2_GENB_ACTCMPBD_ZERO                                              \
+                                0x00000800  // Drive pwmB Low
+#define PWM_2_GENB_ACTCMPBD_ONE 0x00000C00  // Drive pwmB High
+#define PWM_2_GENB_ACTCMPBU_M   0x00000300  // Action for Comparator B Up
+#define PWM_2_GENB_ACTCMPBU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_2_GENB_ACTCMPBU_INV 0x00000100  // Invert pwmB
+#define PWM_2_GENB_ACTCMPBU_ZERO                                              \
+                                0x00000200  // Drive pwmB Low
+#define PWM_2_GENB_ACTCMPBU_ONE 0x00000300  // Drive pwmB High
+#define PWM_2_GENB_ACTCMPAD_M   0x000000C0  // Action for Comparator A Down
+#define PWM_2_GENB_ACTCMPAD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_2_GENB_ACTCMPAD_INV 0x00000040  // Invert pwmB
+#define PWM_2_GENB_ACTCMPAD_ZERO                                              \
+                                0x00000080  // Drive pwmB Low
+#define PWM_2_GENB_ACTCMPAD_ONE 0x000000C0  // Drive pwmB High
+#define PWM_2_GENB_ACTCMPAU_M   0x00000030  // Action for Comparator A Up
+#define PWM_2_GENB_ACTCMPAU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_2_GENB_ACTCMPAU_INV 0x00000010  // Invert pwmB
+#define PWM_2_GENB_ACTCMPAU_ZERO                                              \
+                                0x00000020  // Drive pwmB Low
+#define PWM_2_GENB_ACTCMPAU_ONE 0x00000030  // Drive pwmB High
+#define PWM_2_GENB_ACTLOAD_M    0x0000000C  // Action for Counter=LOAD
+#define PWM_2_GENB_ACTLOAD_NONE 0x00000000  // Do nothing
+#define PWM_2_GENB_ACTLOAD_INV  0x00000004  // Invert pwmB
+#define PWM_2_GENB_ACTLOAD_ZERO 0x00000008  // Drive pwmB Low
+#define PWM_2_GENB_ACTLOAD_ONE  0x0000000C  // Drive pwmB High
+#define PWM_2_GENB_ACTZERO_M    0x00000003  // Action for Counter=0
+#define PWM_2_GENB_ACTZERO_NONE 0x00000000  // Do nothing
+#define PWM_2_GENB_ACTZERO_INV  0x00000001  // Invert pwmB
+#define PWM_2_GENB_ACTZERO_ZERO 0x00000002  // Drive pwmB Low
+#define PWM_2_GENB_ACTZERO_ONE  0x00000003  // Drive pwmB High
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_DBCTL register.
+//
+//*****************************************************************************
+#define PWM_2_DBCTL_ENABLE      0x00000001  // Dead-Band Generator Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_DBRISE register.
+//
+//*****************************************************************************
+#define PWM_2_DBRISE_RISEDELAY_M                                              \
+                                0x00000FFF  // Dead-Band Rise Delay
+#define PWM_2_DBRISE_RISEDELAY_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_DBFALL register.
+//
+//*****************************************************************************
+#define PWM_2_DBFALL_FALLDELAY_M                                              \
+                                0x00000FFF  // Dead-Band Fall Delay
+#define PWM_2_DBFALL_FALLDELAY_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_FLTSRC0
+// register.
+//
+//*****************************************************************************
+#define PWM_2_FLTSRC0_FAULT3    0x00000008  // Fault3 Input
+#define PWM_2_FLTSRC0_FAULT2    0x00000004  // Fault2 Input
+#define PWM_2_FLTSRC0_FAULT1    0x00000002  // Fault1 Input
+#define PWM_2_FLTSRC0_FAULT0    0x00000001  // Fault0 Input
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_FLTSRC1
+// register.
+//
+//*****************************************************************************
+#define PWM_2_FLTSRC1_DCMP7     0x00000080  // Digital Comparator 7
+#define PWM_2_FLTSRC1_DCMP6     0x00000040  // Digital Comparator 6
+#define PWM_2_FLTSRC1_DCMP5     0x00000020  // Digital Comparator 5
+#define PWM_2_FLTSRC1_DCMP4     0x00000010  // Digital Comparator 4
+#define PWM_2_FLTSRC1_DCMP3     0x00000008  // Digital Comparator 3
+#define PWM_2_FLTSRC1_DCMP2     0x00000004  // Digital Comparator 2
+#define PWM_2_FLTSRC1_DCMP1     0x00000002  // Digital Comparator 1
+#define PWM_2_FLTSRC1_DCMP0     0x00000001  // Digital Comparator 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_MINFLTPER
+// register.
+//
+//*****************************************************************************
+#define PWM_2_MINFLTPER_MFP_M   0x0000FFFF  // Minimum Fault Period
+#define PWM_2_MINFLTPER_MFP_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_CTL register.
+//
+//*****************************************************************************
+#define PWM_3_CTL_LATCH         0x00040000  // Latch Fault Input
+#define PWM_3_CTL_MINFLTPER     0x00020000  // Minimum Fault Period
+#define PWM_3_CTL_FLTSRC        0x00010000  // Fault Condition Source
+#define PWM_3_CTL_DBFALLUPD_M   0x0000C000  // PWMnDBFALL Update Mode
+#define PWM_3_CTL_DBFALLUPD_I   0x00000000  // Immediate
+#define PWM_3_CTL_DBFALLUPD_LS  0x00008000  // Locally Synchronized
+#define PWM_3_CTL_DBFALLUPD_GS  0x0000C000  // Globally Synchronized
+#define PWM_3_CTL_DBRISEUPD_M   0x00003000  // PWMnDBRISE Update Mode
+#define PWM_3_CTL_DBRISEUPD_I   0x00000000  // Immediate
+#define PWM_3_CTL_DBRISEUPD_LS  0x00002000  // Locally Synchronized
+#define PWM_3_CTL_DBRISEUPD_GS  0x00003000  // Globally Synchronized
+#define PWM_3_CTL_DBCTLUPD_M    0x00000C00  // PWMnDBCTL Update Mode
+#define PWM_3_CTL_DBCTLUPD_I    0x00000000  // Immediate
+#define PWM_3_CTL_DBCTLUPD_LS   0x00000800  // Locally Synchronized
+#define PWM_3_CTL_DBCTLUPD_GS   0x00000C00  // Globally Synchronized
+#define PWM_3_CTL_GENBUPD_M     0x00000300  // PWMnGENB Update Mode
+#define PWM_3_CTL_GENBUPD_I     0x00000000  // Immediate
+#define PWM_3_CTL_GENBUPD_LS    0x00000200  // Locally Synchronized
+#define PWM_3_CTL_GENBUPD_GS    0x00000300  // Globally Synchronized
+#define PWM_3_CTL_GENAUPD_M     0x000000C0  // PWMnGENA Update Mode
+#define PWM_3_CTL_GENAUPD_I     0x00000000  // Immediate
+#define PWM_3_CTL_GENAUPD_LS    0x00000080  // Locally Synchronized
+#define PWM_3_CTL_GENAUPD_GS    0x000000C0  // Globally Synchronized
+#define PWM_3_CTL_CMPBUPD       0x00000020  // Comparator B Update Mode
+#define PWM_3_CTL_CMPAUPD       0x00000010  // Comparator A Update Mode
+#define PWM_3_CTL_LOADUPD       0x00000008  // Load Register Update Mode
+#define PWM_3_CTL_DEBUG         0x00000004  // Debug Mode
+#define PWM_3_CTL_MODE          0x00000002  // Counter Mode
+#define PWM_3_CTL_ENABLE        0x00000001  // PWM Block Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_INTEN register.
+//
+//*****************************************************************************
+#define PWM_3_INTEN_TRCMPBD     0x00002000  // Trigger for Counter=PWMnCMPB
+                                            // Down
+#define PWM_3_INTEN_TRCMPBU     0x00001000  // Trigger for Counter=PWMnCMPB Up
+#define PWM_3_INTEN_TRCMPAD     0x00000800  // Trigger for Counter=PWMnCMPA
+                                            // Down
+#define PWM_3_INTEN_TRCMPAU     0x00000400  // Trigger for Counter=PWMnCMPA Up
+#define PWM_3_INTEN_TRCNTLOAD   0x00000200  // Trigger for Counter=PWMnLOAD
+#define PWM_3_INTEN_TRCNTZERO   0x00000100  // Trigger for Counter=0
+#define PWM_3_INTEN_INTCMPBD    0x00000020  // Interrupt for Counter=PWMnCMPB
+                                            // Down
+#define PWM_3_INTEN_INTCMPBU    0x00000010  // Interrupt for Counter=PWMnCMPB
+                                            // Up
+#define PWM_3_INTEN_INTCMPAD    0x00000008  // Interrupt for Counter=PWMnCMPA
+                                            // Down
+#define PWM_3_INTEN_INTCMPAU    0x00000004  // Interrupt for Counter=PWMnCMPA
+                                            // Up
+#define PWM_3_INTEN_INTCNTLOAD  0x00000002  // Interrupt for Counter=PWMnLOAD
+#define PWM_3_INTEN_INTCNTZERO  0x00000001  // Interrupt for Counter=0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_RIS register.
+//
+//*****************************************************************************
+#define PWM_3_RIS_INTCMPBD      0x00000020  // Comparator B Down Interrupt
+                                            // Status
+#define PWM_3_RIS_INTCMPBU      0x00000010  // Comparator B Up Interrupt Status
+#define PWM_3_RIS_INTCMPAD      0x00000008  // Comparator A Down Interrupt
+                                            // Status
+#define PWM_3_RIS_INTCMPAU      0x00000004  // Comparator A Up Interrupt Status
+#define PWM_3_RIS_INTCNTLOAD    0x00000002  // Counter=Load Interrupt Status
+#define PWM_3_RIS_INTCNTZERO    0x00000001  // Counter=0 Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_ISC register.
+//
+//*****************************************************************************
+#define PWM_3_ISC_INTCMPBD      0x00000020  // Comparator B Down Interrupt
+#define PWM_3_ISC_INTCMPBU      0x00000010  // Comparator B Up Interrupt
+#define PWM_3_ISC_INTCMPAD      0x00000008  // Comparator A Down Interrupt
+#define PWM_3_ISC_INTCMPAU      0x00000004  // Comparator A Up Interrupt
+#define PWM_3_ISC_INTCNTLOAD    0x00000002  // Counter=Load Interrupt
+#define PWM_3_ISC_INTCNTZERO    0x00000001  // Counter=0 Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_LOAD register.
+//
+//*****************************************************************************
+#define PWM_3_LOAD_LOAD_M       0x0000FFFF  // Counter Load Value
+#define PWM_3_LOAD_LOAD_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_COUNT register.
+//
+//*****************************************************************************
+#define PWM_3_COUNT_COUNT_M     0x0000FFFF  // Counter Value
+#define PWM_3_COUNT_COUNT_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_CMPA register.
+//
+//*****************************************************************************
+#define PWM_3_CMPA_COMPA_M      0x0000FFFF  // Comparator A Value
+#define PWM_3_CMPA_COMPA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_CMPB register.
+//
+//*****************************************************************************
+#define PWM_3_CMPB_COMPB_M      0x0000FFFF  // Comparator B Value
+#define PWM_3_CMPB_COMPB_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_GENA register.
+//
+//*****************************************************************************
+#define PWM_3_GENA_ACTCMPBD_M   0x00000C00  // Action for Comparator B Down
+#define PWM_3_GENA_ACTCMPBD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_3_GENA_ACTCMPBD_INV 0x00000400  // Invert pwmA
+#define PWM_3_GENA_ACTCMPBD_ZERO                                              \
+                                0x00000800  // Drive pwmA Low
+#define PWM_3_GENA_ACTCMPBD_ONE 0x00000C00  // Drive pwmA High
+#define PWM_3_GENA_ACTCMPBU_M   0x00000300  // Action for Comparator B Up
+#define PWM_3_GENA_ACTCMPBU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_3_GENA_ACTCMPBU_INV 0x00000100  // Invert pwmA
+#define PWM_3_GENA_ACTCMPBU_ZERO                                              \
+                                0x00000200  // Drive pwmA Low
+#define PWM_3_GENA_ACTCMPBU_ONE 0x00000300  // Drive pwmA High
+#define PWM_3_GENA_ACTCMPAD_M   0x000000C0  // Action for Comparator A Down
+#define PWM_3_GENA_ACTCMPAD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_3_GENA_ACTCMPAD_INV 0x00000040  // Invert pwmA
+#define PWM_3_GENA_ACTCMPAD_ZERO                                              \
+                                0x00000080  // Drive pwmA Low
+#define PWM_3_GENA_ACTCMPAD_ONE 0x000000C0  // Drive pwmA High
+#define PWM_3_GENA_ACTCMPAU_M   0x00000030  // Action for Comparator A Up
+#define PWM_3_GENA_ACTCMPAU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_3_GENA_ACTCMPAU_INV 0x00000010  // Invert pwmA
+#define PWM_3_GENA_ACTCMPAU_ZERO                                              \
+                                0x00000020  // Drive pwmA Low
+#define PWM_3_GENA_ACTCMPAU_ONE 0x00000030  // Drive pwmA High
+#define PWM_3_GENA_ACTLOAD_M    0x0000000C  // Action for Counter=LOAD
+#define PWM_3_GENA_ACTLOAD_NONE 0x00000000  // Do nothing
+#define PWM_3_GENA_ACTLOAD_INV  0x00000004  // Invert pwmA
+#define PWM_3_GENA_ACTLOAD_ZERO 0x00000008  // Drive pwmA Low
+#define PWM_3_GENA_ACTLOAD_ONE  0x0000000C  // Drive pwmA High
+#define PWM_3_GENA_ACTZERO_M    0x00000003  // Action for Counter=0
+#define PWM_3_GENA_ACTZERO_NONE 0x00000000  // Do nothing
+#define PWM_3_GENA_ACTZERO_INV  0x00000001  // Invert pwmA
+#define PWM_3_GENA_ACTZERO_ZERO 0x00000002  // Drive pwmA Low
+#define PWM_3_GENA_ACTZERO_ONE  0x00000003  // Drive pwmA High
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_GENB register.
+//
+//*****************************************************************************
+#define PWM_3_GENB_ACTCMPBD_M   0x00000C00  // Action for Comparator B Down
+#define PWM_3_GENB_ACTCMPBD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_3_GENB_ACTCMPBD_INV 0x00000400  // Invert pwmB
+#define PWM_3_GENB_ACTCMPBD_ZERO                                              \
+                                0x00000800  // Drive pwmB Low
+#define PWM_3_GENB_ACTCMPBD_ONE 0x00000C00  // Drive pwmB High
+#define PWM_3_GENB_ACTCMPBU_M   0x00000300  // Action for Comparator B Up
+#define PWM_3_GENB_ACTCMPBU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_3_GENB_ACTCMPBU_INV 0x00000100  // Invert pwmB
+#define PWM_3_GENB_ACTCMPBU_ZERO                                              \
+                                0x00000200  // Drive pwmB Low
+#define PWM_3_GENB_ACTCMPBU_ONE 0x00000300  // Drive pwmB High
+#define PWM_3_GENB_ACTCMPAD_M   0x000000C0  // Action for Comparator A Down
+#define PWM_3_GENB_ACTCMPAD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_3_GENB_ACTCMPAD_INV 0x00000040  // Invert pwmB
+#define PWM_3_GENB_ACTCMPAD_ZERO                                              \
+                                0x00000080  // Drive pwmB Low
+#define PWM_3_GENB_ACTCMPAD_ONE 0x000000C0  // Drive pwmB High
+#define PWM_3_GENB_ACTCMPAU_M   0x00000030  // Action for Comparator A Up
+#define PWM_3_GENB_ACTCMPAU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_3_GENB_ACTCMPAU_INV 0x00000010  // Invert pwmB
+#define PWM_3_GENB_ACTCMPAU_ZERO                                              \
+                                0x00000020  // Drive pwmB Low
+#define PWM_3_GENB_ACTCMPAU_ONE 0x00000030  // Drive pwmB High
+#define PWM_3_GENB_ACTLOAD_M    0x0000000C  // Action for Counter=LOAD
+#define PWM_3_GENB_ACTLOAD_NONE 0x00000000  // Do nothing
+#define PWM_3_GENB_ACTLOAD_INV  0x00000004  // Invert pwmB
+#define PWM_3_GENB_ACTLOAD_ZERO 0x00000008  // Drive pwmB Low
+#define PWM_3_GENB_ACTLOAD_ONE  0x0000000C  // Drive pwmB High
+#define PWM_3_GENB_ACTZERO_M    0x00000003  // Action for Counter=0
+#define PWM_3_GENB_ACTZERO_NONE 0x00000000  // Do nothing
+#define PWM_3_GENB_ACTZERO_INV  0x00000001  // Invert pwmB
+#define PWM_3_GENB_ACTZERO_ZERO 0x00000002  // Drive pwmB Low
+#define PWM_3_GENB_ACTZERO_ONE  0x00000003  // Drive pwmB High
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_DBCTL register.
+//
+//*****************************************************************************
+#define PWM_3_DBCTL_ENABLE      0x00000001  // Dead-Band Generator Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_DBRISE register.
+//
+//*****************************************************************************
+#define PWM_3_DBRISE_RISEDELAY_M                                              \
+                                0x00000FFF  // Dead-Band Rise Delay
+#define PWM_3_DBRISE_RISEDELAY_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_DBFALL register.
+//
+//*****************************************************************************
+#define PWM_3_DBFALL_FALLDELAY_M                                              \
+                                0x00000FFF  // Dead-Band Fall Delay
+#define PWM_3_DBFALL_FALLDELAY_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_FLTSRC0
+// register.
+//
+//*****************************************************************************
+#define PWM_3_FLTSRC0_FAULT3    0x00000008  // Fault3 Input
+#define PWM_3_FLTSRC0_FAULT2    0x00000004  // Fault2 Input
+#define PWM_3_FLTSRC0_FAULT1    0x00000002  // Fault1 Input
+#define PWM_3_FLTSRC0_FAULT0    0x00000001  // Fault0 Input
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_FLTSRC1
+// register.
+//
+//*****************************************************************************
+#define PWM_3_FLTSRC1_DCMP7     0x00000080  // Digital Comparator 7
+#define PWM_3_FLTSRC1_DCMP6     0x00000040  // Digital Comparator 6
+#define PWM_3_FLTSRC1_DCMP5     0x00000020  // Digital Comparator 5
+#define PWM_3_FLTSRC1_DCMP4     0x00000010  // Digital Comparator 4
+#define PWM_3_FLTSRC1_DCMP3     0x00000008  // Digital Comparator 3
+#define PWM_3_FLTSRC1_DCMP2     0x00000004  // Digital Comparator 2
+#define PWM_3_FLTSRC1_DCMP1     0x00000002  // Digital Comparator 1
+#define PWM_3_FLTSRC1_DCMP0     0x00000001  // Digital Comparator 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_MINFLTPER
+// register.
+//
+//*****************************************************************************
+#define PWM_3_MINFLTPER_MFP_M   0x0000FFFF  // Minimum Fault Period
+#define PWM_3_MINFLTPER_MFP_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_FLTSEN register.
+//
+//*****************************************************************************
+#define PWM_0_FLTSEN_FAULT3     0x00000008  // Fault3 Sense
+#define PWM_0_FLTSEN_FAULT2     0x00000004  // Fault2 Sense
+#define PWM_0_FLTSEN_FAULT1     0x00000002  // Fault1 Sense
+#define PWM_0_FLTSEN_FAULT0     0x00000001  // Fault0 Sense
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_FLTSTAT0
+// register.
+//
+//*****************************************************************************
+#define PWM_0_FLTSTAT0_FAULT3   0x00000008  // Fault Input 3
+#define PWM_0_FLTSTAT0_FAULT2   0x00000004  // Fault Input 2
+#define PWM_0_FLTSTAT0_FAULT1   0x00000002  // Fault Input 1
+#define PWM_0_FLTSTAT0_FAULT0   0x00000001  // Fault Input 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_FLTSTAT1
+// register.
+//
+//*****************************************************************************
+#define PWM_0_FLTSTAT1_DCMP7    0x00000080  // Digital Comparator 7 Trigger
+#define PWM_0_FLTSTAT1_DCMP6    0x00000040  // Digital Comparator 6 Trigger
+#define PWM_0_FLTSTAT1_DCMP5    0x00000020  // Digital Comparator 5 Trigger
+#define PWM_0_FLTSTAT1_DCMP4    0x00000010  // Digital Comparator 4 Trigger
+#define PWM_0_FLTSTAT1_DCMP3    0x00000008  // Digital Comparator 3 Trigger
+#define PWM_0_FLTSTAT1_DCMP2    0x00000004  // Digital Comparator 2 Trigger
+#define PWM_0_FLTSTAT1_DCMP1    0x00000002  // Digital Comparator 1 Trigger
+#define PWM_0_FLTSTAT1_DCMP0    0x00000001  // Digital Comparator 0 Trigger
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_FLTSEN register.
+//
+//*****************************************************************************
+#define PWM_1_FLTSEN_FAULT3     0x00000008  // Fault3 Sense
+#define PWM_1_FLTSEN_FAULT2     0x00000004  // Fault2 Sense
+#define PWM_1_FLTSEN_FAULT1     0x00000002  // Fault1 Sense
+#define PWM_1_FLTSEN_FAULT0     0x00000001  // Fault0 Sense
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_FLTSTAT0
+// register.
+//
+//*****************************************************************************
+#define PWM_1_FLTSTAT0_FAULT3   0x00000008  // Fault Input 3
+#define PWM_1_FLTSTAT0_FAULT2   0x00000004  // Fault Input 2
+#define PWM_1_FLTSTAT0_FAULT1   0x00000002  // Fault Input 1
+#define PWM_1_FLTSTAT0_FAULT0   0x00000001  // Fault Input 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_FLTSTAT1
+// register.
+//
+//*****************************************************************************
+#define PWM_1_FLTSTAT1_DCMP7    0x00000080  // Digital Comparator 7 Trigger
+#define PWM_1_FLTSTAT1_DCMP6    0x00000040  // Digital Comparator 6 Trigger
+#define PWM_1_FLTSTAT1_DCMP5    0x00000020  // Digital Comparator 5 Trigger
+#define PWM_1_FLTSTAT1_DCMP4    0x00000010  // Digital Comparator 4 Trigger
+#define PWM_1_FLTSTAT1_DCMP3    0x00000008  // Digital Comparator 3 Trigger
+#define PWM_1_FLTSTAT1_DCMP2    0x00000004  // Digital Comparator 2 Trigger
+#define PWM_1_FLTSTAT1_DCMP1    0x00000002  // Digital Comparator 1 Trigger
+#define PWM_1_FLTSTAT1_DCMP0    0x00000001  // Digital Comparator 0 Trigger
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_FLTSEN register.
+//
+//*****************************************************************************
+#define PWM_2_FLTSEN_FAULT3     0x00000008  // Fault3 Sense
+#define PWM_2_FLTSEN_FAULT2     0x00000004  // Fault2 Sense
+#define PWM_2_FLTSEN_FAULT1     0x00000002  // Fault1 Sense
+#define PWM_2_FLTSEN_FAULT0     0x00000001  // Fault0 Sense
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_FLTSTAT0
+// register.
+//
+//*****************************************************************************
+#define PWM_2_FLTSTAT0_FAULT3   0x00000008  // Fault Input 3
+#define PWM_2_FLTSTAT0_FAULT2   0x00000004  // Fault Input 2
+#define PWM_2_FLTSTAT0_FAULT1   0x00000002  // Fault Input 1
+#define PWM_2_FLTSTAT0_FAULT0   0x00000001  // Fault Input 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_FLTSTAT1
+// register.
+//
+//*****************************************************************************
+#define PWM_2_FLTSTAT1_DCMP7    0x00000080  // Digital Comparator 7 Trigger
+#define PWM_2_FLTSTAT1_DCMP6    0x00000040  // Digital Comparator 6 Trigger
+#define PWM_2_FLTSTAT1_DCMP5    0x00000020  // Digital Comparator 5 Trigger
+#define PWM_2_FLTSTAT1_DCMP4    0x00000010  // Digital Comparator 4 Trigger
+#define PWM_2_FLTSTAT1_DCMP3    0x00000008  // Digital Comparator 3 Trigger
+#define PWM_2_FLTSTAT1_DCMP2    0x00000004  // Digital Comparator 2 Trigger
+#define PWM_2_FLTSTAT1_DCMP1    0x00000002  // Digital Comparator 1 Trigger
+#define PWM_2_FLTSTAT1_DCMP0    0x00000001  // Digital Comparator 0 Trigger
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_FLTSEN register.
+//
+//*****************************************************************************
+#define PWM_3_FLTSEN_FAULT3     0x00000008  // Fault3 Sense
+#define PWM_3_FLTSEN_FAULT2     0x00000004  // Fault2 Sense
+#define PWM_3_FLTSEN_FAULT1     0x00000002  // Fault1 Sense
+#define PWM_3_FLTSEN_FAULT0     0x00000001  // Fault0 Sense
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_FLTSTAT0
+// register.
+//
+//*****************************************************************************
+#define PWM_3_FLTSTAT0_FAULT3   0x00000008  // Fault Input 3
+#define PWM_3_FLTSTAT0_FAULT2   0x00000004  // Fault Input 2
+#define PWM_3_FLTSTAT0_FAULT1   0x00000002  // Fault Input 1
+#define PWM_3_FLTSTAT0_FAULT0   0x00000001  // Fault Input 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_FLTSTAT1
+// register.
+//
+//*****************************************************************************
+#define PWM_3_FLTSTAT1_DCMP7    0x00000080  // Digital Comparator 7 Trigger
+#define PWM_3_FLTSTAT1_DCMP6    0x00000040  // Digital Comparator 6 Trigger
+#define PWM_3_FLTSTAT1_DCMP5    0x00000020  // Digital Comparator 5 Trigger
+#define PWM_3_FLTSTAT1_DCMP4    0x00000010  // Digital Comparator 4 Trigger
+#define PWM_3_FLTSTAT1_DCMP3    0x00000008  // Digital Comparator 3 Trigger
+#define PWM_3_FLTSTAT1_DCMP2    0x00000004  // Digital Comparator 2 Trigger
+#define PWM_3_FLTSTAT1_DCMP1    0x00000002  // Digital Comparator 1 Trigger
+#define PWM_3_FLTSTAT1_DCMP0    0x00000001  // Digital Comparator 0 Trigger
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_PP register.
+//
+//*****************************************************************************
+#define PWM_PP_GCNT_M           0x0000000F  // Generators
+#define PWM_PP_FCNT_M           0x000000F0  // Fault Inputs (per PWM unit)
+#define PWM_PP_ESYNC            0x00000100  // Extended Synchronization
+#define PWM_PP_EFAULT           0x00000200  // Extended Fault
+#define PWM_PP_ONE              0x00000400  // One-Shot Mode
+#define PWM_PP_GCNT_S           0
+#define PWM_PP_FCNT_S           4
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_CC register.
+//
+//*****************************************************************************
+#define PWM_CC_USEPWM           0x00000100  // Use PWM Clock Divisor
+#define PWM_CC_PWMDIV_M         0x00000007  // PWM Clock Divider
+#define PWM_CC_PWMDIV_2         0x00000000  // /2
+#define PWM_CC_PWMDIV_4         0x00000001  // /4
+#define PWM_CC_PWMDIV_8         0x00000002  // /8
+#define PWM_CC_PWMDIV_16        0x00000003  // /16
+#define PWM_CC_PWMDIV_32        0x00000004  // /32
+#define PWM_CC_PWMDIV_64        0x00000005  // /64
+
+//*****************************************************************************
+//
+// The following are defines for the PWM Generator standard offsets.
+//
+//*****************************************************************************
+#define PWM_O_X_CTL             0x00000000  // Gen Control Reg
+#define PWM_O_X_INTEN           0x00000004  // Gen Int/Trig Enable Reg
+#define PWM_O_X_RIS             0x00000008  // Gen Raw Int Status Reg
+#define PWM_O_X_ISC             0x0000000C  // Gen Int Status Reg
+#define PWM_O_X_LOAD            0x00000010  // Gen Load Reg
+#define PWM_O_X_COUNT           0x00000014  // Gen Counter Reg
+#define PWM_O_X_CMPA            0x00000018  // Gen Compare A Reg
+#define PWM_O_X_CMPB            0x0000001C  // Gen Compare B Reg
+#define PWM_O_X_GENA            0x00000020  // Gen Generator A Ctrl Reg
+#define PWM_O_X_GENB            0x00000024  // Gen Generator B Ctrl Reg
+#define PWM_O_X_DBCTL           0x00000028  // Gen Dead Band Ctrl Reg
+#define PWM_O_X_DBRISE          0x0000002C  // Gen DB Rising Edge Delay Reg
+#define PWM_O_X_DBFALL          0x00000030  // Gen DB Falling Edge Delay Reg
+#define PWM_O_X_FLTSRC0         0x00000034  // Fault pin, comparator condition
+#define PWM_O_X_FLTSRC1         0x00000038  // Digital comparator condition
+#define PWM_O_X_MINFLTPER       0x0000003C  // Fault minimum period extension
+#define PWM_GEN_0_OFFSET        0x00000040  // PWM0 base
+#define PWM_GEN_1_OFFSET        0x00000080  // PWM1 base
+#define PWM_GEN_2_OFFSET        0x000000C0  // PWM2 base
+#define PWM_GEN_3_OFFSET        0x00000100  // PWM3 base
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_X_CTL register.
+//
+//*****************************************************************************
+#define PWM_X_CTL_LATCH         0x00040000  // Latch Fault Input
+#define PWM_X_CTL_MINFLTPER     0x00020000  // Minimum Fault Period
+#define PWM_X_CTL_FLTSRC        0x00010000  // Fault Condition Source
+#define PWM_X_CTL_DBFALLUPD_M   0x0000C000  // PWMnDBFALL Update Mode
+#define PWM_X_CTL_DBFALLUPD_I   0x00000000  // Immediate
+#define PWM_X_CTL_DBFALLUPD_LS  0x00008000  // Locally Synchronized
+#define PWM_X_CTL_DBFALLUPD_GS  0x0000C000  // Globally Synchronized
+#define PWM_X_CTL_DBRISEUPD_M   0x00003000  // PWMnDBRISE Update Mode
+#define PWM_X_CTL_DBRISEUPD_I   0x00000000  // Immediate
+#define PWM_X_CTL_DBRISEUPD_LS  0x00002000  // Locally Synchronized
+#define PWM_X_CTL_DBRISEUPD_GS  0x00003000  // Globally Synchronized
+#define PWM_X_CTL_DBCTLUPD_M    0x00000C00  // PWMnDBCTL Update Mode
+#define PWM_X_CTL_DBCTLUPD_I    0x00000000  // Immediate
+#define PWM_X_CTL_DBCTLUPD_LS   0x00000800  // Locally Synchronized
+#define PWM_X_CTL_DBCTLUPD_GS   0x00000C00  // Globally Synchronized
+#define PWM_X_CTL_GENBUPD_M     0x00000300  // PWMnGENB Update Mode
+#define PWM_X_CTL_GENBUPD_I     0x00000000  // Immediate
+#define PWM_X_CTL_GENBUPD_LS    0x00000200  // Locally Synchronized
+#define PWM_X_CTL_GENBUPD_GS    0x00000300  // Globally Synchronized
+#define PWM_X_CTL_GENAUPD_M     0x000000C0  // PWMnGENA Update Mode
+#define PWM_X_CTL_GENAUPD_I     0x00000000  // Immediate
+#define PWM_X_CTL_GENAUPD_LS    0x00000080  // Locally Synchronized
+#define PWM_X_CTL_GENAUPD_GS    0x000000C0  // Globally Synchronized
+#define PWM_X_CTL_CMPBUPD       0x00000020  // Comparator B Update Mode
+#define PWM_X_CTL_CMPAUPD       0x00000010  // Comparator A Update Mode
+#define PWM_X_CTL_LOADUPD       0x00000008  // Load Register Update Mode
+#define PWM_X_CTL_DEBUG         0x00000004  // Debug Mode
+#define PWM_X_CTL_MODE          0x00000002  // Counter Mode
+#define PWM_X_CTL_ENABLE        0x00000001  // PWM Block Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_X_INTEN register.
+//
+//*****************************************************************************
+#define PWM_X_INTEN_TRCMPBD     0x00002000  // Trigger for Counter=PWMnCMPB
+                                            // Down
+#define PWM_X_INTEN_TRCMPBU     0x00001000  // Trigger for Counter=PWMnCMPB Up
+#define PWM_X_INTEN_TRCMPAD     0x00000800  // Trigger for Counter=PWMnCMPA
+                                            // Down
+#define PWM_X_INTEN_TRCMPAU     0x00000400  // Trigger for Counter=PWMnCMPA Up
+#define PWM_X_INTEN_TRCNTLOAD   0x00000200  // Trigger for Counter=PWMnLOAD
+#define PWM_X_INTEN_TRCNTZERO   0x00000100  // Trigger for Counter=0
+#define PWM_X_INTEN_INTCMPBD    0x00000020  // Interrupt for Counter=PWMnCMPB
+                                            // Down
+#define PWM_X_INTEN_INTCMPBU    0x00000010  // Interrupt for Counter=PWMnCMPB
+                                            // Up
+#define PWM_X_INTEN_INTCMPAD    0x00000008  // Interrupt for Counter=PWMnCMPA
+                                            // Down
+#define PWM_X_INTEN_INTCMPAU    0x00000004  // Interrupt for Counter=PWMnCMPA
+                                            // Up
+#define PWM_X_INTEN_INTCNTLOAD  0x00000002  // Interrupt for Counter=PWMnLOAD
+#define PWM_X_INTEN_INTCNTZERO  0x00000001  // Interrupt for Counter=0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_X_RIS register.
+//
+//*****************************************************************************
+#define PWM_X_RIS_INTCMPBD      0x00000020  // Comparator B Down Interrupt
+                                            // Status
+#define PWM_X_RIS_INTCMPBU      0x00000010  // Comparator B Up Interrupt Status
+#define PWM_X_RIS_INTCMPAD      0x00000008  // Comparator A Down Interrupt
+                                            // Status
+#define PWM_X_RIS_INTCMPAU      0x00000004  // Comparator A Up Interrupt Status
+#define PWM_X_RIS_INTCNTLOAD    0x00000002  // Counter=Load Interrupt Status
+#define PWM_X_RIS_INTCNTZERO    0x00000001  // Counter=0 Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_X_ISC register.
+//
+//*****************************************************************************
+#define PWM_X_ISC_INTCMPBD      0x00000020  // Comparator B Down Interrupt
+#define PWM_X_ISC_INTCMPBU      0x00000010  // Comparator B Up Interrupt
+#define PWM_X_ISC_INTCMPAD      0x00000008  // Comparator A Down Interrupt
+#define PWM_X_ISC_INTCMPAU      0x00000004  // Comparator A Up Interrupt
+#define PWM_X_ISC_INTCNTLOAD    0x00000002  // Counter=Load Interrupt
+#define PWM_X_ISC_INTCNTZERO    0x00000001  // Counter=0 Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_X_LOAD register.
+//
+//*****************************************************************************
+#define PWM_X_LOAD_M            0x0000FFFF  // Counter Load Value
+#define PWM_X_LOAD_S            0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_X_COUNT register.
+//
+//*****************************************************************************
+#define PWM_X_COUNT_M           0x0000FFFF  // Counter Value
+#define PWM_X_COUNT_S           0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_X_CMPA register.
+//
+//*****************************************************************************
+#define PWM_X_CMPA_M            0x0000FFFF  // Comparator A Value
+#define PWM_X_CMPA_S            0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_X_CMPB register.
+//
+//*****************************************************************************
+#define PWM_X_CMPB_M            0x0000FFFF  // Comparator B Value
+#define PWM_X_CMPB_S            0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_X_GENA register.
+//
+//*****************************************************************************
+#define PWM_X_GENA_ACTCMPBD_M   0x00000C00  // Action for Comparator B Down
+#define PWM_X_GENA_ACTCMPBD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_X_GENA_ACTCMPBD_INV 0x00000400  // Invert pwmA
+#define PWM_X_GENA_ACTCMPBD_ZERO                                              \
+                                0x00000800  // Drive pwmA Low
+#define PWM_X_GENA_ACTCMPBD_ONE 0x00000C00  // Drive pwmA High
+#define PWM_X_GENA_ACTCMPBU_M   0x00000300  // Action for Comparator B Up
+#define PWM_X_GENA_ACTCMPBU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_X_GENA_ACTCMPBU_INV 0x00000100  // Invert pwmA
+#define PWM_X_GENA_ACTCMPBU_ZERO                                              \
+                                0x00000200  // Drive pwmA Low
+#define PWM_X_GENA_ACTCMPBU_ONE 0x00000300  // Drive pwmA High
+#define PWM_X_GENA_ACTCMPAD_M   0x000000C0  // Action for Comparator A Down
+#define PWM_X_GENA_ACTCMPAD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_X_GENA_ACTCMPAD_INV 0x00000040  // Invert pwmA
+#define PWM_X_GENA_ACTCMPAD_ZERO                                              \
+                                0x00000080  // Drive pwmA Low
+#define PWM_X_GENA_ACTCMPAD_ONE 0x000000C0  // Drive pwmA High
+#define PWM_X_GENA_ACTCMPAU_M   0x00000030  // Action for Comparator A Up
+#define PWM_X_GENA_ACTCMPAU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_X_GENA_ACTCMPAU_INV 0x00000010  // Invert pwmA
+#define PWM_X_GENA_ACTCMPAU_ZERO                                              \
+                                0x00000020  // Drive pwmA Low
+#define PWM_X_GENA_ACTCMPAU_ONE 0x00000030  // Drive pwmA High
+#define PWM_X_GENA_ACTLOAD_M    0x0000000C  // Action for Counter=LOAD
+#define PWM_X_GENA_ACTLOAD_NONE 0x00000000  // Do nothing
+#define PWM_X_GENA_ACTLOAD_INV  0x00000004  // Invert pwmA
+#define PWM_X_GENA_ACTLOAD_ZERO 0x00000008  // Drive pwmA Low
+#define PWM_X_GENA_ACTLOAD_ONE  0x0000000C  // Drive pwmA High
+#define PWM_X_GENA_ACTZERO_M    0x00000003  // Action for Counter=0
+#define PWM_X_GENA_ACTZERO_NONE 0x00000000  // Do nothing
+#define PWM_X_GENA_ACTZERO_INV  0x00000001  // Invert pwmA
+#define PWM_X_GENA_ACTZERO_ZERO 0x00000002  // Drive pwmA Low
+#define PWM_X_GENA_ACTZERO_ONE  0x00000003  // Drive pwmA High
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_X_GENB register.
+//
+//*****************************************************************************
+#define PWM_X_GENB_ACTCMPBD_M   0x00000C00  // Action for Comparator B Down
+#define PWM_X_GENB_ACTCMPBD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_X_GENB_ACTCMPBD_INV 0x00000400  // Invert pwmB
+#define PWM_X_GENB_ACTCMPBD_ZERO                                              \
+                                0x00000800  // Drive pwmB Low
+#define PWM_X_GENB_ACTCMPBD_ONE 0x00000C00  // Drive pwmB High
+#define PWM_X_GENB_ACTCMPBU_M   0x00000300  // Action for Comparator B Up
+#define PWM_X_GENB_ACTCMPBU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_X_GENB_ACTCMPBU_INV 0x00000100  // Invert pwmB
+#define PWM_X_GENB_ACTCMPBU_ZERO                                              \
+                                0x00000200  // Drive pwmB Low
+#define PWM_X_GENB_ACTCMPBU_ONE 0x00000300  // Drive pwmB High
+#define PWM_X_GENB_ACTCMPAD_M   0x000000C0  // Action for Comparator A Down
+#define PWM_X_GENB_ACTCMPAD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_X_GENB_ACTCMPAD_INV 0x00000040  // Invert pwmB
+#define PWM_X_GENB_ACTCMPAD_ZERO                                              \
+                                0x00000080  // Drive pwmB Low
+#define PWM_X_GENB_ACTCMPAD_ONE 0x000000C0  // Drive pwmB High
+#define PWM_X_GENB_ACTCMPAU_M   0x00000030  // Action for Comparator A Up
+#define PWM_X_GENB_ACTCMPAU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_X_GENB_ACTCMPAU_INV 0x00000010  // Invert pwmB
+#define PWM_X_GENB_ACTCMPAU_ZERO                                              \
+                                0x00000020  // Drive pwmB Low
+#define PWM_X_GENB_ACTCMPAU_ONE 0x00000030  // Drive pwmB High
+#define PWM_X_GENB_ACTLOAD_M    0x0000000C  // Action for Counter=LOAD
+#define PWM_X_GENB_ACTLOAD_NONE 0x00000000  // Do nothing
+#define PWM_X_GENB_ACTLOAD_INV  0x00000004  // Invert pwmB
+#define PWM_X_GENB_ACTLOAD_ZERO 0x00000008  // Drive pwmB Low
+#define PWM_X_GENB_ACTLOAD_ONE  0x0000000C  // Drive pwmB High
+#define PWM_X_GENB_ACTZERO_M    0x00000003  // Action for Counter=0
+#define PWM_X_GENB_ACTZERO_NONE 0x00000000  // Do nothing
+#define PWM_X_GENB_ACTZERO_INV  0x00000001  // Invert pwmB
+#define PWM_X_GENB_ACTZERO_ZERO 0x00000002  // Drive pwmB Low
+#define PWM_X_GENB_ACTZERO_ONE  0x00000003  // Drive pwmB High
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_X_DBCTL register.
+//
+//*****************************************************************************
+#define PWM_X_DBCTL_ENABLE      0x00000001  // Dead-Band Generator Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_X_DBRISE register.
+//
+//*****************************************************************************
+#define PWM_X_DBRISE_DELAY_M    0x00000FFF  // Dead-Band Rise Delay
+#define PWM_X_DBRISE_DELAY_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_X_DBFALL register.
+//
+//*****************************************************************************
+#define PWM_X_DBFALL_DELAY_M    0x00000FFF  // Dead-Band Fall Delay
+#define PWM_X_DBFALL_DELAY_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_X_FLTSRC0
+// register.
+//
+//*****************************************************************************
+#define PWM_X_FLTSRC0_FAULT3    0x00000008  // Fault3 Input
+#define PWM_X_FLTSRC0_FAULT2    0x00000004  // Fault2 Input
+#define PWM_X_FLTSRC0_FAULT1    0x00000002  // Fault1 Input
+#define PWM_X_FLTSRC0_FAULT0    0x00000001  // Fault0 Input
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_X_FLTSRC1
+// register.
+//
+//*****************************************************************************
+#define PWM_X_FLTSRC1_DCMP7     0x00000080  // Digital Comparator 7
+#define PWM_X_FLTSRC1_DCMP6     0x00000040  // Digital Comparator 6
+#define PWM_X_FLTSRC1_DCMP5     0x00000020  // Digital Comparator 5
+#define PWM_X_FLTSRC1_DCMP4     0x00000010  // Digital Comparator 4
+#define PWM_X_FLTSRC1_DCMP3     0x00000008  // Digital Comparator 3
+#define PWM_X_FLTSRC1_DCMP2     0x00000004  // Digital Comparator 2
+#define PWM_X_FLTSRC1_DCMP1     0x00000002  // Digital Comparator 1
+#define PWM_X_FLTSRC1_DCMP0     0x00000001  // Digital Comparator 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_X_MINFLTPER
+// register.
+//
+//*****************************************************************************
+#define PWM_X_MINFLTPER_M       0x0000FFFF  // Minimum Fault Period
+#define PWM_X_MINFLTPER_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the PWM Generator extended offsets.
+//
+//*****************************************************************************
+#define PWM_O_X_FLTSEN          0x00000000  // Fault logic sense
+#define PWM_O_X_FLTSTAT0        0x00000004  // Pin and comparator status
+#define PWM_O_X_FLTSTAT1        0x00000008  // Digital comparator status
+#define PWM_EXT_0_OFFSET        0x00000800  // PWM0 extended base
+#define PWM_EXT_1_OFFSET        0x00000880  // PWM1 extended base
+#define PWM_EXT_2_OFFSET        0x00000900  // PWM2 extended base
+#define PWM_EXT_3_OFFSET        0x00000980  // PWM3 extended base
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_X_FLTSEN register.
+//
+//*****************************************************************************
+#define PWM_X_FLTSEN_FAULT3     0x00000008  // Fault3 Sense
+#define PWM_X_FLTSEN_FAULT2     0x00000004  // Fault2 Sense
+#define PWM_X_FLTSEN_FAULT1     0x00000002  // Fault1 Sense
+#define PWM_X_FLTSEN_FAULT0     0x00000001  // Fault0 Sense
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_X_FLTSTAT0
+// register.
+//
+//*****************************************************************************
+#define PWM_X_FLTSTAT0_FAULT3   0x00000008  // Fault Input 3
+#define PWM_X_FLTSTAT0_FAULT2   0x00000004  // Fault Input 2
+#define PWM_X_FLTSTAT0_FAULT1   0x00000002  // Fault Input 1
+#define PWM_X_FLTSTAT0_FAULT0   0x00000001  // Fault Input 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_X_FLTSTAT1
+// register.
+//
+//*****************************************************************************
+#define PWM_X_FLTSTAT1_DCMP7    0x00000080  // Digital Comparator 7 Trigger
+#define PWM_X_FLTSTAT1_DCMP6    0x00000040  // Digital Comparator 6 Trigger
+#define PWM_X_FLTSTAT1_DCMP5    0x00000020  // Digital Comparator 5 Trigger
+#define PWM_X_FLTSTAT1_DCMP4    0x00000010  // Digital Comparator 4 Trigger
+#define PWM_X_FLTSTAT1_DCMP3    0x00000008  // Digital Comparator 3 Trigger
+#define PWM_X_FLTSTAT1_DCMP2    0x00000004  // Digital Comparator 2 Trigger
+#define PWM_X_FLTSTAT1_DCMP1    0x00000002  // Digital Comparator 1 Trigger
+#define PWM_X_FLTSTAT1_DCMP0    0x00000001  // Digital Comparator 0 Trigger
+
+#endif // __HW_PWM_H__

+ 178 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_qei.h

@@ -0,0 +1,178 @@
+//*****************************************************************************
+//
+// hw_qei.h - Macros used when accessing the QEI hardware.
+//
+// Copyright (c) 2005-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Firmware Development Package.
+//
+//*****************************************************************************
+
+#ifndef __HW_QEI_H__
+#define __HW_QEI_H__
+
+//*****************************************************************************
+//
+// The following are defines for the QEI register offsets.
+//
+//*****************************************************************************
+#define QEI_O_CTL               0x00000000  // QEI Control
+#define QEI_O_STAT              0x00000004  // QEI Status
+#define QEI_O_POS               0x00000008  // QEI Position
+#define QEI_O_MAXPOS            0x0000000C  // QEI Maximum Position
+#define QEI_O_LOAD              0x00000010  // QEI Timer Load
+#define QEI_O_TIME              0x00000014  // QEI Timer
+#define QEI_O_COUNT             0x00000018  // QEI Velocity Counter
+#define QEI_O_SPEED             0x0000001C  // QEI Velocity
+#define QEI_O_INTEN             0x00000020  // QEI Interrupt Enable
+#define QEI_O_RIS               0x00000024  // QEI Raw Interrupt Status
+#define QEI_O_ISC               0x00000028  // QEI Interrupt Status and Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the QEI_O_CTL register.
+//
+//*****************************************************************************
+#define QEI_CTL_FILTCNT_M       0x000F0000  // Input Filter Prescale Count
+#define QEI_CTL_FILTEN          0x00002000  // Enable Input Filter
+#define QEI_CTL_STALLEN         0x00001000  // Stall QEI
+#define QEI_CTL_INVI            0x00000800  // Invert Index Pulse
+#define QEI_CTL_INVB            0x00000400  // Invert PhB
+#define QEI_CTL_INVA            0x00000200  // Invert PhA
+#define QEI_CTL_VELDIV_M        0x000001C0  // Predivide Velocity
+#define QEI_CTL_VELDIV_1        0x00000000  // QEI clock /1
+#define QEI_CTL_VELDIV_2        0x00000040  // QEI clock /2
+#define QEI_CTL_VELDIV_4        0x00000080  // QEI clock /4
+#define QEI_CTL_VELDIV_8        0x000000C0  // QEI clock /8
+#define QEI_CTL_VELDIV_16       0x00000100  // QEI clock /16
+#define QEI_CTL_VELDIV_32       0x00000140  // QEI clock /32
+#define QEI_CTL_VELDIV_64       0x00000180  // QEI clock /64
+#define QEI_CTL_VELDIV_128      0x000001C0  // QEI clock /128
+#define QEI_CTL_VELEN           0x00000020  // Capture Velocity
+#define QEI_CTL_RESMODE         0x00000010  // Reset Mode
+#define QEI_CTL_CAPMODE         0x00000008  // Capture Mode
+#define QEI_CTL_SIGMODE         0x00000004  // Signal Mode
+#define QEI_CTL_SWAP            0x00000002  // Swap Signals
+#define QEI_CTL_ENABLE          0x00000001  // Enable QEI
+#define QEI_CTL_FILTCNT_S       16
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the QEI_O_STAT register.
+//
+//*****************************************************************************
+#define QEI_STAT_DIRECTION      0x00000002  // Direction of Rotation
+#define QEI_STAT_ERROR          0x00000001  // Error Detected
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the QEI_O_POS register.
+//
+//*****************************************************************************
+#define QEI_POS_M               0xFFFFFFFF  // Current Position Integrator
+                                            // Value
+#define QEI_POS_S               0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the QEI_O_MAXPOS register.
+//
+//*****************************************************************************
+#define QEI_MAXPOS_M            0xFFFFFFFF  // Maximum Position Integrator
+                                            // Value
+#define QEI_MAXPOS_S            0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the QEI_O_LOAD register.
+//
+//*****************************************************************************
+#define QEI_LOAD_M              0xFFFFFFFF  // Velocity Timer Load Value
+#define QEI_LOAD_S              0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the QEI_O_TIME register.
+//
+//*****************************************************************************
+#define QEI_TIME_M              0xFFFFFFFF  // Velocity Timer Current Value
+#define QEI_TIME_S              0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the QEI_O_COUNT register.
+//
+//*****************************************************************************
+#define QEI_COUNT_M             0xFFFFFFFF  // Velocity Pulse Count
+#define QEI_COUNT_S             0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the QEI_O_SPEED register.
+//
+//*****************************************************************************
+#define QEI_SPEED_M             0xFFFFFFFF  // Velocity
+#define QEI_SPEED_S             0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the QEI_O_INTEN register.
+//
+//*****************************************************************************
+#define QEI_INTEN_ERROR         0x00000008  // Phase Error Interrupt Enable
+#define QEI_INTEN_DIR           0x00000004  // Direction Change Interrupt
+                                            // Enable
+#define QEI_INTEN_TIMER         0x00000002  // Timer Expires Interrupt Enable
+#define QEI_INTEN_INDEX         0x00000001  // Index Pulse Detected Interrupt
+                                            // Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the QEI_O_RIS register.
+//
+//*****************************************************************************
+#define QEI_RIS_ERROR           0x00000008  // Phase Error Detected
+#define QEI_RIS_DIR             0x00000004  // Direction Change Detected
+#define QEI_RIS_TIMER           0x00000002  // Velocity Timer Expired
+#define QEI_RIS_INDEX           0x00000001  // Index Pulse Asserted
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the QEI_O_ISC register.
+//
+//*****************************************************************************
+#define QEI_ISC_ERROR           0x00000008  // Phase Error Interrupt
+#define QEI_ISC_DIR             0x00000004  // Direction Change Interrupt
+#define QEI_ISC_TIMER           0x00000002  // Velocity Timer Expired Interrupt
+#define QEI_ISC_INDEX           0x00000001  // Index Pulse Interrupt
+
+#endif // __HW_QEI_H__

+ 548 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_shamd5.h

@@ -0,0 +1,548 @@
+//*****************************************************************************
+//
+// hw_shamd5.h - Macros used when accessing the SHA/MD5 hardware.
+//
+// Copyright (c) 2012-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Firmware Development Package.
+//
+//*****************************************************************************
+
+#ifndef __HW_SHAMD5_H__
+#define __HW_SHAMD5_H__
+
+//*****************************************************************************
+//
+// The following are defines for the SHA/MD5 register offsets.
+//
+//*****************************************************************************
+#define SHAMD5_O_ODIGEST_A      0x00000000  // SHA Outer Digest A
+#define SHAMD5_O_ODIGEST_B      0x00000004  // SHA Outer Digest B
+#define SHAMD5_O_ODIGEST_C      0x00000008  // SHA Outer Digest C
+#define SHAMD5_O_ODIGEST_D      0x0000000C  // SHA Outer Digest D
+#define SHAMD5_O_ODIGEST_E      0x00000010  // SHA Outer Digest E
+#define SHAMD5_O_ODIGEST_F      0x00000014  // SHA Outer Digest F
+#define SHAMD5_O_ODIGEST_G      0x00000018  // SHA Outer Digest G
+#define SHAMD5_O_ODIGEST_H      0x0000001C  // SHA Outer Digest H
+#define SHAMD5_O_IDIGEST_A      0x00000020  // SHA Inner Digest A
+#define SHAMD5_O_IDIGEST_B      0x00000024  // SHA Inner Digest B
+#define SHAMD5_O_IDIGEST_C      0x00000028  // SHA Inner Digest C
+#define SHAMD5_O_IDIGEST_D      0x0000002C  // SHA Inner Digest D
+#define SHAMD5_O_IDIGEST_E      0x00000030  // SHA Inner Digest E
+#define SHAMD5_O_IDIGEST_F      0x00000034  // SHA Inner Digest F
+#define SHAMD5_O_IDIGEST_G      0x00000038  // SHA Inner Digest G
+#define SHAMD5_O_IDIGEST_H      0x0000003C  // SHA Inner Digest H
+#define SHAMD5_O_DIGEST_COUNT   0x00000040  // SHA Digest Count
+#define SHAMD5_O_MODE           0x00000044  // SHA Mode
+#define SHAMD5_O_LENGTH         0x00000048  // SHA Length
+#define SHAMD5_O_DATA_0_IN      0x00000080  // SHA Data 0 Input
+#define SHAMD5_O_DATA_1_IN      0x00000084  // SHA Data 1 Input
+#define SHAMD5_O_DATA_2_IN      0x00000088  // SHA Data 2 Input
+#define SHAMD5_O_DATA_3_IN      0x0000008C  // SHA Data 3 Input
+#define SHAMD5_O_DATA_4_IN      0x00000090  // SHA Data 4 Input
+#define SHAMD5_O_DATA_5_IN      0x00000094  // SHA Data 5 Input
+#define SHAMD5_O_DATA_6_IN      0x00000098  // SHA Data 6 Input
+#define SHAMD5_O_DATA_7_IN      0x0000009C  // SHA Data 7 Input
+#define SHAMD5_O_DATA_8_IN      0x000000A0  // SHA Data 8 Input
+#define SHAMD5_O_DATA_9_IN      0x000000A4  // SHA Data 9 Input
+#define SHAMD5_O_DATA_10_IN     0x000000A8  // SHA Data 10 Input
+#define SHAMD5_O_DATA_11_IN     0x000000AC  // SHA Data 11 Input
+#define SHAMD5_O_DATA_12_IN     0x000000B0  // SHA Data 12 Input
+#define SHAMD5_O_DATA_13_IN     0x000000B4  // SHA Data 13 Input
+#define SHAMD5_O_DATA_14_IN     0x000000B8  // SHA Data 14 Input
+#define SHAMD5_O_DATA_15_IN     0x000000BC  // SHA Data 15 Input
+#define SHAMD5_O_REVISION       0x00000100  // SHA Revision
+#define SHAMD5_O_SYSCONFIG      0x00000110  // SHA System Configuration
+#define SHAMD5_O_SYSSTATUS      0x00000114  // SHA System Status
+#define SHAMD5_O_IRQSTATUS      0x00000118  // SHA Interrupt Status
+#define SHAMD5_O_IRQENABLE      0x0000011C  // SHA Interrupt Enable
+#define SHAMD5_O_DMAIM          0xFFFFC010  // SHA DMA Interrupt Mask
+#define SHAMD5_O_DMARIS         0xFFFFC014  // SHA DMA Raw Interrupt Status
+#define SHAMD5_O_DMAMIS         0xFFFFC018  // SHA DMA Masked Interrupt Status
+#define SHAMD5_O_DMAIC          0xFFFFC01C  // SHA DMA Interrupt Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_ODIGEST_A
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_ODIGEST_A_DATA_M 0xFFFFFFFF  // Digest/Key Data
+#define SHAMD5_ODIGEST_A_DATA_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_ODIGEST_B
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_ODIGEST_B_DATA_M 0xFFFFFFFF  // Digest/Key Data
+#define SHAMD5_ODIGEST_B_DATA_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_ODIGEST_C
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_ODIGEST_C_DATA_M 0xFFFFFFFF  // Digest/Key Data
+#define SHAMD5_ODIGEST_C_DATA_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_ODIGEST_D
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_ODIGEST_D_DATA_M 0xFFFFFFFF  // Digest/Key Data
+#define SHAMD5_ODIGEST_D_DATA_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_ODIGEST_E
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_ODIGEST_E_DATA_M 0xFFFFFFFF  // Digest/Key Data
+#define SHAMD5_ODIGEST_E_DATA_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_ODIGEST_F
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_ODIGEST_F_DATA_M 0xFFFFFFFF  // Digest/Key Data
+#define SHAMD5_ODIGEST_F_DATA_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_ODIGEST_G
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_ODIGEST_G_DATA_M 0xFFFFFFFF  // Digest/Key Data
+#define SHAMD5_ODIGEST_G_DATA_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_ODIGEST_H
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_ODIGEST_H_DATA_M 0xFFFFFFFF  // Digest/Key Data
+#define SHAMD5_ODIGEST_H_DATA_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_IDIGEST_A
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_IDIGEST_A_DATA_M 0xFFFFFFFF  // Digest/Key Data
+#define SHAMD5_IDIGEST_A_DATA_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_IDIGEST_B
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_IDIGEST_B_DATA_M 0xFFFFFFFF  // Digest/Key Data
+#define SHAMD5_IDIGEST_B_DATA_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_IDIGEST_C
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_IDIGEST_C_DATA_M 0xFFFFFFFF  // Digest/Key Data
+#define SHAMD5_IDIGEST_C_DATA_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_IDIGEST_D
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_IDIGEST_D_DATA_M 0xFFFFFFFF  // Digest/Key Data
+#define SHAMD5_IDIGEST_D_DATA_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_IDIGEST_E
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_IDIGEST_E_DATA_M 0xFFFFFFFF  // Digest/Key Data
+#define SHAMD5_IDIGEST_E_DATA_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_IDIGEST_F
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_IDIGEST_F_DATA_M 0xFFFFFFFF  // Digest/Key Data
+#define SHAMD5_IDIGEST_F_DATA_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_IDIGEST_G
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_IDIGEST_G_DATA_M 0xFFFFFFFF  // Digest/Key Data
+#define SHAMD5_IDIGEST_G_DATA_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_IDIGEST_H
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_IDIGEST_H_DATA_M 0xFFFFFFFF  // Digest/Key Data
+#define SHAMD5_IDIGEST_H_DATA_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_DIGEST_COUNT
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_DIGEST_COUNT_M   0xFFFFFFFF  // Digest Count
+#define SHAMD5_DIGEST_COUNT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_MODE register.
+//
+//*****************************************************************************
+#define SHAMD5_MODE_HMAC_OUTER_HASH                                           \
+                                0x00000080  // HMAC Outer Hash Processing
+                                            // Enable
+#define SHAMD5_MODE_HMAC_KEY_PROC                                             \
+                                0x00000020  // HMAC Key Processing Enable
+#define SHAMD5_MODE_CLOSE_HASH  0x00000010  // Performs the padding, the
+                                            // Hash/HMAC will be 'closed' at
+                                            // the end of the block, as per
+                                            // MD5/SHA-1/SHA-2 specification
+#define SHAMD5_MODE_ALGO_CONSTANT                                             \
+                                0x00000008  // The initial digest register will
+                                            // be overwritten with the
+                                            // algorithm constants for the
+                                            // selected algorithm when hashing
+                                            // and the initial digest count
+                                            // register will be reset to 0
+#define SHAMD5_MODE_ALGO_M      0x00000007  // Hash Algorithm
+#define SHAMD5_MODE_ALGO_MD5    0x00000000  // MD5
+#define SHAMD5_MODE_ALGO_SHA1   0x00000002  // SHA-1
+#define SHAMD5_MODE_ALGO_SHA224 0x00000004  // SHA-224
+#define SHAMD5_MODE_ALGO_SHA256 0x00000006  // SHA-256
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_LENGTH
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_LENGTH_M         0xFFFFFFFF  // Block Length/Remaining Byte
+                                            // Count
+#define SHAMD5_LENGTH_S         0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_DATA_0_IN
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_DATA_0_IN_DATA_M 0xFFFFFFFF  // Digest/Key Data
+#define SHAMD5_DATA_0_IN_DATA_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_DATA_1_IN
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_DATA_1_IN_DATA_M 0xFFFFFFFF  // Digest/Key Data
+#define SHAMD5_DATA_1_IN_DATA_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_DATA_2_IN
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_DATA_2_IN_DATA_M 0xFFFFFFFF  // Digest/Key Data
+#define SHAMD5_DATA_2_IN_DATA_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_DATA_3_IN
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_DATA_3_IN_DATA_M 0xFFFFFFFF  // Digest/Key Data
+#define SHAMD5_DATA_3_IN_DATA_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_DATA_4_IN
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_DATA_4_IN_DATA_M 0xFFFFFFFF  // Digest/Key Data
+#define SHAMD5_DATA_4_IN_DATA_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_DATA_5_IN
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_DATA_5_IN_DATA_M 0xFFFFFFFF  // Digest/Key Data
+#define SHAMD5_DATA_5_IN_DATA_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_DATA_6_IN
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_DATA_6_IN_DATA_M 0xFFFFFFFF  // Digest/Key Data
+#define SHAMD5_DATA_6_IN_DATA_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_DATA_7_IN
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_DATA_7_IN_DATA_M 0xFFFFFFFF  // Digest/Key Data
+#define SHAMD5_DATA_7_IN_DATA_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_DATA_8_IN
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_DATA_8_IN_DATA_M 0xFFFFFFFF  // Digest/Key Data
+#define SHAMD5_DATA_8_IN_DATA_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_DATA_9_IN
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_DATA_9_IN_DATA_M 0xFFFFFFFF  // Digest/Key Data
+#define SHAMD5_DATA_9_IN_DATA_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_DATA_10_IN
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_DATA_10_IN_DATA_M                                              \
+                                0xFFFFFFFF  // Digest/Key Data
+#define SHAMD5_DATA_10_IN_DATA_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_DATA_11_IN
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_DATA_11_IN_DATA_M                                              \
+                                0xFFFFFFFF  // Digest/Key Data
+#define SHAMD5_DATA_11_IN_DATA_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_DATA_12_IN
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_DATA_12_IN_DATA_M                                              \
+                                0xFFFFFFFF  // Digest/Key Data
+#define SHAMD5_DATA_12_IN_DATA_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_DATA_13_IN
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_DATA_13_IN_DATA_M                                              \
+                                0xFFFFFFFF  // Digest/Key Data
+#define SHAMD5_DATA_13_IN_DATA_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_DATA_14_IN
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_DATA_14_IN_DATA_M                                              \
+                                0xFFFFFFFF  // Digest/Key Data
+#define SHAMD5_DATA_14_IN_DATA_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_DATA_15_IN
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_DATA_15_IN_DATA_M                                              \
+                                0xFFFFFFFF  // Digest/Key Data
+#define SHAMD5_DATA_15_IN_DATA_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_REVISION
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_REVISION_M       0xFFFFFFFF  // Revision Number
+#define SHAMD5_REVISION_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_SYSCONFIG
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_SYSCONFIG_SADVANCED                                            \
+                                0x00000080  // Advanced Mode Enable
+#define SHAMD5_SYSCONFIG_SIDLE_M                                              \
+                                0x00000030  // Sidle mode
+#define SHAMD5_SYSCONFIG_SIDLE_FORCE                                          \
+                                0x00000000  // Force-idle mode
+#define SHAMD5_SYSCONFIG_DMA_EN 0x00000008  // uDMA Request Enable
+#define SHAMD5_SYSCONFIG_IT_EN  0x00000004  // Interrupt Enable
+#define SHAMD5_SYSCONFIG_SOFTRESET                                            \
+                                0x00000002  // Soft reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_SYSSTATUS
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_SYSSTATUS_RESETDONE                                            \
+                                0x00000001  // Reset done status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_IRQSTATUS
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_IRQSTATUS_CONTEXT_READY                                        \
+                                0x00000008  // Context Ready Status
+#define SHAMD5_IRQSTATUS_INPUT_READY                                          \
+                                0x00000002  // Input Ready Status
+#define SHAMD5_IRQSTATUS_OUTPUT_READY                                         \
+                                0x00000001  // Output Ready Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_IRQENABLE
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_IRQENABLE_CONTEXT_READY                                        \
+                                0x00000008  // Mask for context ready interrupt
+#define SHAMD5_IRQENABLE_INPUT_READY                                          \
+                                0x00000002  // Mask for input ready interrupt
+#define SHAMD5_IRQENABLE_OUTPUT_READY                                         \
+                                0x00000001  // Mask for output ready interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_DMAIM register.
+//
+//*****************************************************************************
+#define SHAMD5_DMAIM_COUT       0x00000004  // Context Out DMA Done Interrupt
+                                            // Mask
+#define SHAMD5_DMAIM_DIN        0x00000002  // Data In DMA Done Interrupt Mask
+#define SHAMD5_DMAIM_CIN        0x00000001  // Context In DMA Done Interrupt
+                                            // Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_DMARIS
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_DMARIS_COUT      0x00000004  // Context Out DMA Done Raw
+                                            // Interrupt Status
+#define SHAMD5_DMARIS_DIN       0x00000002  // Data In DMA Done Raw Interrupt
+                                            // Status
+#define SHAMD5_DMARIS_CIN       0x00000001  // Context In DMA Done Raw
+                                            // Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_DMAMIS
+// register.
+//
+//*****************************************************************************
+#define SHAMD5_DMAMIS_COUT      0x00000004  // Context Out DMA Done Masked
+                                            // Interrupt Status
+#define SHAMD5_DMAMIS_DIN       0x00000002  // Data In DMA Done Masked
+                                            // Interrupt Status
+#define SHAMD5_DMAMIS_CIN       0x00000001  // Context In DMA Done Raw
+                                            // Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SHAMD5_O_DMAIC register.
+//
+//*****************************************************************************
+#define SHAMD5_DMAIC_COUT       0x00000004  // Context Out DMA Done Masked
+                                            // Interrupt Status
+#define SHAMD5_DMAIC_DIN        0x00000002  // Data In DMA Done Interrupt Clear
+#define SHAMD5_DMAIC_CIN        0x00000001  // Context In DMA Done Raw
+                                            // Interrupt Status
+
+#endif // __HW_SHAMD5_H__

+ 237 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_ssi.h

@@ -0,0 +1,237 @@
+//*****************************************************************************
+//
+// hw_ssi.h - Macros used when accessing the SSI hardware.
+//
+// Copyright (c) 2005-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Firmware Development Package.
+//
+//*****************************************************************************
+
+#ifndef __HW_SSI_H__
+#define __HW_SSI_H__
+
+//*****************************************************************************
+//
+// The following are defines for the SSI register offsets.
+//
+//*****************************************************************************
+#define SSI_O_CR0               0x00000000  // SSI Control 0
+#define SSI_O_CR1               0x00000004  // SSI Control 1
+#define SSI_O_DR                0x00000008  // SSI Data
+#define SSI_O_SR                0x0000000C  // SSI Status
+#define SSI_O_CPSR              0x00000010  // SSI Clock Prescale
+#define SSI_O_IM                0x00000014  // SSI Interrupt Mask
+#define SSI_O_RIS               0x00000018  // SSI Raw Interrupt Status
+#define SSI_O_MIS               0x0000001C  // SSI Masked Interrupt Status
+#define SSI_O_ICR               0x00000020  // SSI Interrupt Clear
+#define SSI_O_DMACTL            0x00000024  // SSI DMA Control
+#define SSI_O_PP                0x00000FC0  // SSI Peripheral Properties
+#define SSI_O_CC                0x00000FC8  // SSI Clock Configuration
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SSI_O_CR0 register.
+//
+//*****************************************************************************
+#define SSI_CR0_SCR_M           0x0000FF00  // SSI Serial Clock Rate
+#define SSI_CR0_SPH             0x00000080  // SSI Serial Clock Phase
+#define SSI_CR0_SPO             0x00000040  // SSI Serial Clock Polarity
+#define SSI_CR0_FRF_M           0x00000030  // SSI Frame Format Select
+#define SSI_CR0_FRF_MOTO        0x00000000  // Freescale SPI Frame Format
+#define SSI_CR0_FRF_TI          0x00000010  // Synchronous Serial Frame Format
+#define SSI_CR0_FRF_NMW         0x00000020  // MICROWIRE Frame Format
+#define SSI_CR0_DSS_M           0x0000000F  // SSI Data Size Select
+#define SSI_CR0_DSS_4           0x00000003  // 4-bit data
+#define SSI_CR0_DSS_5           0x00000004  // 5-bit data
+#define SSI_CR0_DSS_6           0x00000005  // 6-bit data
+#define SSI_CR0_DSS_7           0x00000006  // 7-bit data
+#define SSI_CR0_DSS_8           0x00000007  // 8-bit data
+#define SSI_CR0_DSS_9           0x00000008  // 9-bit data
+#define SSI_CR0_DSS_10          0x00000009  // 10-bit data
+#define SSI_CR0_DSS_11          0x0000000A  // 11-bit data
+#define SSI_CR0_DSS_12          0x0000000B  // 12-bit data
+#define SSI_CR0_DSS_13          0x0000000C  // 13-bit data
+#define SSI_CR0_DSS_14          0x0000000D  // 14-bit data
+#define SSI_CR0_DSS_15          0x0000000E  // 15-bit data
+#define SSI_CR0_DSS_16          0x0000000F  // 16-bit data
+#define SSI_CR0_SCR_S           8
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SSI_O_CR1 register.
+//
+//*****************************************************************************
+#define SSI_CR1_EOM             0x00000800  // Stop Frame (End of Message)
+#define SSI_CR1_FSSHLDFRM       0x00000400  // FSS Hold Frame
+#define SSI_CR1_HSCLKEN         0x00000200  // High Speed Clock Enable
+#define SSI_CR1_DIR             0x00000100  // SSI Direction of Operation
+#define SSI_CR1_MODE_M          0x000000C0  // SSI Mode
+#define SSI_CR1_MODE_LEGACY     0x00000000  // Legacy SSI mode
+#define SSI_CR1_MODE_BI         0x00000040  // Bi-SSI mode
+#define SSI_CR1_MODE_QUAD       0x00000080  // Quad-SSI Mode
+#define SSI_CR1_MODE_ADVANCED   0x000000C0  // Advanced SSI Mode with 8-bit
+                                            // packet size
+#define SSI_CR1_EOT             0x00000010  // End of Transmission
+#define SSI_CR1_MS              0x00000004  // SSI Master/Slave Select
+#define SSI_CR1_SSE             0x00000002  // SSI Synchronous Serial Port
+                                            // Enable
+#define SSI_CR1_LBM             0x00000001  // SSI Loopback Mode
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SSI_O_DR register.
+//
+//*****************************************************************************
+#define SSI_DR_DATA_M           0x0000FFFF  // SSI Receive/Transmit Data
+#define SSI_DR_DATA_S           0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SSI_O_SR register.
+//
+//*****************************************************************************
+#define SSI_SR_BSY              0x00000010  // SSI Busy Bit
+#define SSI_SR_RFF              0x00000008  // SSI Receive FIFO Full
+#define SSI_SR_RNE              0x00000004  // SSI Receive FIFO Not Empty
+#define SSI_SR_TNF              0x00000002  // SSI Transmit FIFO Not Full
+#define SSI_SR_TFE              0x00000001  // SSI Transmit FIFO Empty
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SSI_O_CPSR register.
+//
+//*****************************************************************************
+#define SSI_CPSR_CPSDVSR_M      0x000000FF  // SSI Clock Prescale Divisor
+#define SSI_CPSR_CPSDVSR_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SSI_O_IM register.
+//
+//*****************************************************************************
+#define SSI_IM_EOTIM            0x00000040  // End of Transmit Interrupt Mask
+#define SSI_IM_DMATXIM          0x00000020  // SSI Transmit DMA Interrupt Mask
+#define SSI_IM_DMARXIM          0x00000010  // SSI Receive DMA Interrupt Mask
+#define SSI_IM_TXIM             0x00000008  // SSI Transmit FIFO Interrupt Mask
+#define SSI_IM_RXIM             0x00000004  // SSI Receive FIFO Interrupt Mask
+#define SSI_IM_RTIM             0x00000002  // SSI Receive Time-Out Interrupt
+                                            // Mask
+#define SSI_IM_RORIM            0x00000001  // SSI Receive Overrun Interrupt
+                                            // Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SSI_O_RIS register.
+//
+//*****************************************************************************
+#define SSI_RIS_EOTRIS          0x00000040  // End of Transmit Raw Interrupt
+                                            // Status
+#define SSI_RIS_DMATXRIS        0x00000020  // SSI Transmit DMA Raw Interrupt
+                                            // Status
+#define SSI_RIS_DMARXRIS        0x00000010  // SSI Receive DMA Raw Interrupt
+                                            // Status
+#define SSI_RIS_TXRIS           0x00000008  // SSI Transmit FIFO Raw Interrupt
+                                            // Status
+#define SSI_RIS_RXRIS           0x00000004  // SSI Receive FIFO Raw Interrupt
+                                            // Status
+#define SSI_RIS_RTRIS           0x00000002  // SSI Receive Time-Out Raw
+                                            // Interrupt Status
+#define SSI_RIS_RORRIS          0x00000001  // SSI Receive Overrun Raw
+                                            // Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SSI_O_MIS register.
+//
+//*****************************************************************************
+#define SSI_MIS_EOTMIS          0x00000040  // End of Transmit Masked Interrupt
+                                            // Status
+#define SSI_MIS_DMATXMIS        0x00000020  // SSI Transmit DMA Masked
+                                            // Interrupt Status
+#define SSI_MIS_DMARXMIS        0x00000010  // SSI Receive DMA Masked Interrupt
+                                            // Status
+#define SSI_MIS_TXMIS           0x00000008  // SSI Transmit FIFO Masked
+                                            // Interrupt Status
+#define SSI_MIS_RXMIS           0x00000004  // SSI Receive FIFO Masked
+                                            // Interrupt Status
+#define SSI_MIS_RTMIS           0x00000002  // SSI Receive Time-Out Masked
+                                            // Interrupt Status
+#define SSI_MIS_RORMIS          0x00000001  // SSI Receive Overrun Masked
+                                            // Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SSI_O_ICR register.
+//
+//*****************************************************************************
+#define SSI_ICR_EOTIC           0x00000040  // End of Transmit Interrupt Clear
+#define SSI_ICR_DMATXIC         0x00000020  // SSI Transmit DMA Interrupt Clear
+#define SSI_ICR_DMARXIC         0x00000010  // SSI Receive DMA Interrupt Clear
+#define SSI_ICR_RTIC            0x00000002  // SSI Receive Time-Out Interrupt
+                                            // Clear
+#define SSI_ICR_RORIC           0x00000001  // SSI Receive Overrun Interrupt
+                                            // Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SSI_O_DMACTL register.
+//
+//*****************************************************************************
+#define SSI_DMACTL_TXDMAE       0x00000002  // Transmit DMA Enable
+#define SSI_DMACTL_RXDMAE       0x00000001  // Receive DMA Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SSI_O_PP register.
+//
+//*****************************************************************************
+#define SSI_PP_FSSHLDFRM        0x00000008  // FSS Hold Frame Capability
+#define SSI_PP_MODE_M           0x00000006  // Mode of Operation
+#define SSI_PP_MODE_LEGACY      0x00000000  // Legacy SSI mode
+#define SSI_PP_MODE_ADVBI       0x00000002  // Legacy mode, Advanced SSI mode
+                                            // and Bi-SSI mode enabled
+#define SSI_PP_MODE_ADVBIQUAD   0x00000004  // Legacy mode, Advanced mode,
+                                            // Bi-SSI and Quad-SSI mode enabled
+#define SSI_PP_HSCLK            0x00000001  // High Speed Capability
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SSI_O_CC register.
+//
+//*****************************************************************************
+#define SSI_CC_CS_M             0x0000000F  // SSI Baud Clock Source
+#define SSI_CC_CS_SYSPLL        0x00000000  // System clock (based on clock
+                                            // source and divisor factor)
+#define SSI_CC_CS_PIOSC         0x00000005  // PIOSC
+
+#endif // __HW_SSI_H__

+ 3749 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_sysctl.h

@@ -0,0 +1,3749 @@
+//*****************************************************************************
+//
+// hw_sysctl.h - Macros used when accessing the system control hardware.
+//
+// Copyright (c) 2005-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Firmware Development Package.
+//
+//*****************************************************************************
+
+#ifndef __HW_SYSCTL_H__
+#define __HW_SYSCTL_H__
+
+//*****************************************************************************
+//
+// The following are defines for the System Control register addresses.
+//
+//*****************************************************************************
+#define SYSCTL_DID0             0x400FE000  // Device Identification 0
+#define SYSCTL_DID1             0x400FE004  // Device Identification 1
+#define SYSCTL_DC0              0x400FE008  // Device Capabilities 0
+#define SYSCTL_DC1              0x400FE010  // Device Capabilities 1
+#define SYSCTL_DC2              0x400FE014  // Device Capabilities 2
+#define SYSCTL_DC3              0x400FE018  // Device Capabilities 3
+#define SYSCTL_DC4              0x400FE01C  // Device Capabilities 4
+#define SYSCTL_DC5              0x400FE020  // Device Capabilities 5
+#define SYSCTL_DC6              0x400FE024  // Device Capabilities 6
+#define SYSCTL_DC7              0x400FE028  // Device Capabilities 7
+#define SYSCTL_DC8              0x400FE02C  // Device Capabilities 8
+#define SYSCTL_PBORCTL          0x400FE030  // Brown-Out Reset Control
+#define SYSCTL_PTBOCTL          0x400FE038  // Power-Temp Brown Out Control
+#define SYSCTL_SRCR0            0x400FE040  // Software Reset Control 0
+#define SYSCTL_SRCR1            0x400FE044  // Software Reset Control 1
+#define SYSCTL_SRCR2            0x400FE048  // Software Reset Control 2
+#define SYSCTL_RIS              0x400FE050  // Raw Interrupt Status
+#define SYSCTL_IMC              0x400FE054  // Interrupt Mask Control
+#define SYSCTL_MISC             0x400FE058  // Masked Interrupt Status and
+                                            // Clear
+#define SYSCTL_RESC             0x400FE05C  // Reset Cause
+#define SYSCTL_PWRTC            0x400FE060  // Power-Temperature Cause
+#define SYSCTL_RCC              0x400FE060  // Run-Mode Clock Configuration
+#define SYSCTL_NMIC             0x400FE064  // NMI Cause Register
+#define SYSCTL_GPIOHBCTL        0x400FE06C  // GPIO High-Performance Bus
+                                            // Control
+#define SYSCTL_RCC2             0x400FE070  // Run-Mode Clock Configuration 2
+#define SYSCTL_MOSCCTL          0x400FE07C  // Main Oscillator Control
+#define SYSCTL_RSCLKCFG         0x400FE0B0  // Run and Sleep Mode Configuration
+                                            // Register
+#define SYSCTL_MEMTIM0          0x400FE0C0  // Memory Timing Parameter Register
+                                            // 0 for Main Flash and EEPROM
+#define SYSCTL_RCGC0            0x400FE100  // Run Mode Clock Gating Control
+                                            // Register 0
+#define SYSCTL_RCGC1            0x400FE104  // Run Mode Clock Gating Control
+                                            // Register 1
+#define SYSCTL_RCGC2            0x400FE108  // Run Mode Clock Gating Control
+                                            // Register 2
+#define SYSCTL_SCGC0            0x400FE110  // Sleep Mode Clock Gating Control
+                                            // Register 0
+#define SYSCTL_SCGC1            0x400FE114  // Sleep Mode Clock Gating Control
+                                            // Register 1
+#define SYSCTL_SCGC2            0x400FE118  // Sleep Mode Clock Gating Control
+                                            // Register 2
+#define SYSCTL_DCGC0            0x400FE120  // Deep Sleep Mode Clock Gating
+                                            // Control Register 0
+#define SYSCTL_DCGC1            0x400FE124  // Deep-Sleep Mode Clock Gating
+                                            // Control Register 1
+#define SYSCTL_DCGC2            0x400FE128  // Deep Sleep Mode Clock Gating
+                                            // Control Register 2
+#define SYSCTL_ALTCLKCFG        0x400FE138  // Alternate Clock Configuration
+#define SYSCTL_DSLPCLKCFG       0x400FE144  // Deep Sleep Clock Configuration
+#define SYSCTL_DSCLKCFG         0x400FE144  // Deep Sleep Clock Configuration
+                                            // Register
+#define SYSCTL_DIVSCLK          0x400FE148  // Divisor and Source Clock
+                                            // Configuration
+#define SYSCTL_SYSPROP          0x400FE14C  // System Properties
+#define SYSCTL_PIOSCCAL         0x400FE150  // Precision Internal Oscillator
+                                            // Calibration
+#define SYSCTL_PIOSCSTAT        0x400FE154  // Precision Internal Oscillator
+                                            // Statistics
+#define SYSCTL_PLLFREQ0         0x400FE160  // PLL Frequency 0
+#define SYSCTL_PLLFREQ1         0x400FE164  // PLL Frequency 1
+#define SYSCTL_PLLSTAT          0x400FE168  // PLL Status
+#define SYSCTL_SLPPWRCFG        0x400FE188  // Sleep Power Configuration
+#define SYSCTL_DSLPPWRCFG       0x400FE18C  // Deep-Sleep Power Configuration
+#define SYSCTL_DC9              0x400FE190  // Device Capabilities 9
+#define SYSCTL_NVMSTAT          0x400FE1A0  // Non-Volatile Memory Information
+#define SYSCTL_LDOSPCTL         0x400FE1B4  // LDO Sleep Power Control
+#define SYSCTL_LDODPCTL         0x400FE1BC  // LDO Deep-Sleep Power Control
+#define SYSCTL_RESBEHAVCTL      0x400FE1D8  // Reset Behavior Control Register
+#define SYSCTL_HSSR             0x400FE1F4  // Hardware System Service Request
+#define SYSCTL_USBPDS           0x400FE280  // USB Power Domain Status
+#define SYSCTL_USBMPC           0x400FE284  // USB Memory Power Control
+#define SYSCTL_EMACPDS          0x400FE288  // Ethernet MAC Power Domain Status
+#define SYSCTL_EMACMPC          0x400FE28C  // Ethernet MAC Memory Power
+                                            // Control
+#define SYSCTL_LCDMPC           0x400FE294  // LCD Memory Power Control
+#define SYSCTL_PPWD             0x400FE300  // Watchdog Timer Peripheral
+                                            // Present
+#define SYSCTL_PPTIMER          0x400FE304  // 16/32-Bit General-Purpose Timer
+                                            // Peripheral Present
+#define SYSCTL_PPGPIO           0x400FE308  // General-Purpose Input/Output
+                                            // Peripheral Present
+#define SYSCTL_PPDMA            0x400FE30C  // Micro Direct Memory Access
+                                            // Peripheral Present
+#define SYSCTL_PPEPI            0x400FE310  // EPI Peripheral Present
+#define SYSCTL_PPHIB            0x400FE314  // Hibernation Peripheral Present
+#define SYSCTL_PPUART           0x400FE318  // Universal Asynchronous
+                                            // Receiver/Transmitter Peripheral
+                                            // Present
+#define SYSCTL_PPSSI            0x400FE31C  // Synchronous Serial Interface
+                                            // Peripheral Present
+#define SYSCTL_PPI2C            0x400FE320  // Inter-Integrated Circuit
+                                            // Peripheral Present
+#define SYSCTL_PPUSB            0x400FE328  // Universal Serial Bus Peripheral
+                                            // Present
+#define SYSCTL_PPEPHY           0x400FE330  // Ethernet PHY Peripheral Present
+#define SYSCTL_PPCAN            0x400FE334  // Controller Area Network
+                                            // Peripheral Present
+#define SYSCTL_PPADC            0x400FE338  // Analog-to-Digital Converter
+                                            // Peripheral Present
+#define SYSCTL_PPACMP           0x400FE33C  // Analog Comparator Peripheral
+                                            // Present
+#define SYSCTL_PPPWM            0x400FE340  // Pulse Width Modulator Peripheral
+                                            // Present
+#define SYSCTL_PPQEI            0x400FE344  // Quadrature Encoder Interface
+                                            // Peripheral Present
+#define SYSCTL_PPLPC            0x400FE348  // Low Pin Count Interface
+                                            // Peripheral Present
+#define SYSCTL_PPPECI           0x400FE350  // Platform Environment Control
+                                            // Interface Peripheral Present
+#define SYSCTL_PPFAN            0x400FE354  // Fan Control Peripheral Present
+#define SYSCTL_PPEEPROM         0x400FE358  // EEPROM Peripheral Present
+#define SYSCTL_PPWTIMER         0x400FE35C  // 32/64-Bit Wide General-Purpose
+                                            // Timer Peripheral Present
+#define SYSCTL_PPRTS            0x400FE370  // Remote Temperature Sensor
+                                            // Peripheral Present
+#define SYSCTL_PPCCM            0x400FE374  // CRC and Cryptographic Modules
+                                            // Peripheral Present
+#define SYSCTL_PPLCD            0x400FE390  // LCD Peripheral Present
+#define SYSCTL_PPOWIRE          0x400FE398  // 1-Wire Peripheral Present
+#define SYSCTL_PPEMAC           0x400FE39C  // Ethernet MAC Peripheral Present
+#define SYSCTL_PPHIM            0x400FE3A4  // Human Interface Master
+                                            // Peripheral Present
+#define SYSCTL_SRWD             0x400FE500  // Watchdog Timer Software Reset
+#define SYSCTL_SRTIMER          0x400FE504  // 16/32-Bit General-Purpose Timer
+                                            // Software Reset
+#define SYSCTL_SRGPIO           0x400FE508  // General-Purpose Input/Output
+                                            // Software Reset
+#define SYSCTL_SRDMA            0x400FE50C  // Micro Direct Memory Access
+                                            // Software Reset
+#define SYSCTL_SREPI            0x400FE510  // EPI Software Reset
+#define SYSCTL_SRHIB            0x400FE514  // Hibernation Software Reset
+#define SYSCTL_SRUART           0x400FE518  // Universal Asynchronous
+                                            // Receiver/Transmitter Software
+                                            // Reset
+#define SYSCTL_SRSSI            0x400FE51C  // Synchronous Serial Interface
+                                            // Software Reset
+#define SYSCTL_SRI2C            0x400FE520  // Inter-Integrated Circuit
+                                            // Software Reset
+#define SYSCTL_SRUSB            0x400FE528  // Universal Serial Bus Software
+                                            // Reset
+#define SYSCTL_SREPHY           0x400FE530  // Ethernet PHY Software Reset
+#define SYSCTL_SRCAN            0x400FE534  // Controller Area Network Software
+                                            // Reset
+#define SYSCTL_SRADC            0x400FE538  // Analog-to-Digital Converter
+                                            // Software Reset
+#define SYSCTL_SRACMP           0x400FE53C  // Analog Comparator Software Reset
+#define SYSCTL_SRPWM            0x400FE540  // Pulse Width Modulator Software
+                                            // Reset
+#define SYSCTL_SRQEI            0x400FE544  // Quadrature Encoder Interface
+                                            // Software Reset
+#define SYSCTL_SREEPROM         0x400FE558  // EEPROM Software Reset
+#define SYSCTL_SRWTIMER         0x400FE55C  // 32/64-Bit Wide General-Purpose
+                                            // Timer Software Reset
+#define SYSCTL_SRCCM            0x400FE574  // CRC and Cryptographic Modules
+                                            // Software Reset
+#define SYSCTL_SRLCD            0x400FE590  // LCD Controller Software Reset
+#define SYSCTL_SROWIRE          0x400FE598  // 1-Wire Software Reset
+#define SYSCTL_SREMAC           0x400FE59C  // Ethernet MAC Software Reset
+#define SYSCTL_RCGCWD           0x400FE600  // Watchdog Timer Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCTIMER        0x400FE604  // 16/32-Bit General-Purpose Timer
+                                            // Run Mode Clock Gating Control
+#define SYSCTL_RCGCGPIO         0x400FE608  // General-Purpose Input/Output Run
+                                            // Mode Clock Gating Control
+#define SYSCTL_RCGCDMA          0x400FE60C  // Micro Direct Memory Access Run
+                                            // Mode Clock Gating Control
+#define SYSCTL_RCGCEPI          0x400FE610  // EPI Run Mode Clock Gating
+                                            // Control
+#define SYSCTL_RCGCHIB          0x400FE614  // Hibernation Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCUART         0x400FE618  // Universal Asynchronous
+                                            // Receiver/Transmitter Run Mode
+                                            // Clock Gating Control
+#define SYSCTL_RCGCSSI          0x400FE61C  // Synchronous Serial Interface Run
+                                            // Mode Clock Gating Control
+#define SYSCTL_RCGCI2C          0x400FE620  // Inter-Integrated Circuit Run
+                                            // Mode Clock Gating Control
+#define SYSCTL_RCGCUSB          0x400FE628  // Universal Serial Bus Run Mode
+                                            // Clock Gating Control
+#define SYSCTL_RCGCEPHY         0x400FE630  // Ethernet PHY Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCCAN          0x400FE634  // Controller Area Network Run Mode
+                                            // Clock Gating Control
+#define SYSCTL_RCGCADC          0x400FE638  // Analog-to-Digital Converter Run
+                                            // Mode Clock Gating Control
+#define SYSCTL_RCGCACMP         0x400FE63C  // Analog Comparator Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCPWM          0x400FE640  // Pulse Width Modulator Run Mode
+                                            // Clock Gating Control
+#define SYSCTL_RCGCQEI          0x400FE644  // Quadrature Encoder Interface Run
+                                            // Mode Clock Gating Control
+#define SYSCTL_RCGCEEPROM       0x400FE658  // EEPROM Run Mode Clock Gating
+                                            // Control
+#define SYSCTL_RCGCWTIMER       0x400FE65C  // 32/64-Bit Wide General-Purpose
+                                            // Timer Run Mode Clock Gating
+                                            // Control
+#define SYSCTL_RCGCCCM          0x400FE674  // CRC and Cryptographic Modules
+                                            // Run Mode Clock Gating Control
+#define SYSCTL_RCGCLCD          0x400FE690  // LCD Controller Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCOWIRE        0x400FE698  // 1-Wire Run Mode Clock Gating
+                                            // Control
+#define SYSCTL_RCGCEMAC         0x400FE69C  // Ethernet MAC Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCWD           0x400FE700  // Watchdog Timer Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCTIMER        0x400FE704  // 16/32-Bit General-Purpose Timer
+                                            // Sleep Mode Clock Gating Control
+#define SYSCTL_SCGCGPIO         0x400FE708  // General-Purpose Input/Output
+                                            // Sleep Mode Clock Gating Control
+#define SYSCTL_SCGCDMA          0x400FE70C  // Micro Direct Memory Access Sleep
+                                            // Mode Clock Gating Control
+#define SYSCTL_SCGCEPI          0x400FE710  // EPI Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_SCGCHIB          0x400FE714  // Hibernation Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCUART         0x400FE718  // Universal Asynchronous
+                                            // Receiver/Transmitter Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_SCGCSSI          0x400FE71C  // Synchronous Serial Interface
+                                            // Sleep Mode Clock Gating Control
+#define SYSCTL_SCGCI2C          0x400FE720  // Inter-Integrated Circuit Sleep
+                                            // Mode Clock Gating Control
+#define SYSCTL_SCGCUSB          0x400FE728  // Universal Serial Bus Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_SCGCEPHY         0x400FE730  // Ethernet PHY Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCCAN          0x400FE734  // Controller Area Network Sleep
+                                            // Mode Clock Gating Control
+#define SYSCTL_SCGCADC          0x400FE738  // Analog-to-Digital Converter
+                                            // Sleep Mode Clock Gating Control
+#define SYSCTL_SCGCACMP         0x400FE73C  // Analog Comparator Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_SCGCPWM          0x400FE740  // Pulse Width Modulator Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_SCGCQEI          0x400FE744  // Quadrature Encoder Interface
+                                            // Sleep Mode Clock Gating Control
+#define SYSCTL_SCGCEEPROM       0x400FE758  // EEPROM Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_SCGCWTIMER       0x400FE75C  // 32/64-Bit Wide General-Purpose
+                                            // Timer Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_SCGCCCM          0x400FE774  // CRC and Cryptographic Modules
+                                            // Sleep Mode Clock Gating Control
+#define SYSCTL_SCGCLCD          0x400FE790  // LCD Controller Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCOWIRE        0x400FE798  // 1-Wire Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_SCGCEMAC         0x400FE79C  // Ethernet MAC Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_DCGCWD           0x400FE800  // Watchdog Timer Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCTIMER        0x400FE804  // 16/32-Bit General-Purpose Timer
+                                            // Deep-Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_DCGCGPIO         0x400FE808  // General-Purpose Input/Output
+                                            // Deep-Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_DCGCDMA          0x400FE80C  // Micro Direct Memory Access
+                                            // Deep-Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_DCGCEPI          0x400FE810  // EPI Deep-Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_DCGCHIB          0x400FE814  // Hibernation Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCUART         0x400FE818  // Universal Asynchronous
+                                            // Receiver/Transmitter Deep-Sleep
+                                            // Mode Clock Gating Control
+#define SYSCTL_DCGCSSI          0x400FE81C  // Synchronous Serial Interface
+                                            // Deep-Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_DCGCI2C          0x400FE820  // Inter-Integrated Circuit
+                                            // Deep-Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_DCGCUSB          0x400FE828  // Universal Serial Bus Deep-Sleep
+                                            // Mode Clock Gating Control
+#define SYSCTL_DCGCEPHY         0x400FE830  // Ethernet PHY Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCCAN          0x400FE834  // Controller Area Network
+                                            // Deep-Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_DCGCADC          0x400FE838  // Analog-to-Digital Converter
+                                            // Deep-Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_DCGCACMP         0x400FE83C  // Analog Comparator Deep-Sleep
+                                            // Mode Clock Gating Control
+#define SYSCTL_DCGCPWM          0x400FE840  // Pulse Width Modulator Deep-Sleep
+                                            // Mode Clock Gating Control
+#define SYSCTL_DCGCQEI          0x400FE844  // Quadrature Encoder Interface
+                                            // Deep-Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_DCGCEEPROM       0x400FE858  // EEPROM Deep-Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_DCGCWTIMER       0x400FE85C  // 32/64-Bit Wide General-Purpose
+                                            // Timer Deep-Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_DCGCCCM          0x400FE874  // CRC and Cryptographic Modules
+                                            // Deep-Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_DCGCLCD          0x400FE890  // LCD Controller Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCOWIRE        0x400FE898  // 1-Wire Deep-Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_DCGCEMAC         0x400FE89C  // Ethernet MAC Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_PCWD             0x400FE900  // Watchdog Timer Power Control
+#define SYSCTL_PCTIMER          0x400FE904  // 16/32-Bit General-Purpose Timer
+                                            // Power Control
+#define SYSCTL_PCGPIO           0x400FE908  // General-Purpose Input/Output
+                                            // Power Control
+#define SYSCTL_PCDMA            0x400FE90C  // Micro Direct Memory Access Power
+                                            // Control
+#define SYSCTL_PCEPI            0x400FE910  // External Peripheral Interface
+                                            // Power Control
+#define SYSCTL_PCHIB            0x400FE914  // Hibernation Power Control
+#define SYSCTL_PCUART           0x400FE918  // Universal Asynchronous
+                                            // Receiver/Transmitter Power
+                                            // Control
+#define SYSCTL_PCSSI            0x400FE91C  // Synchronous Serial Interface
+                                            // Power Control
+#define SYSCTL_PCI2C            0x400FE920  // Inter-Integrated Circuit Power
+                                            // Control
+#define SYSCTL_PCUSB            0x400FE928  // Universal Serial Bus Power
+                                            // Control
+#define SYSCTL_PCEPHY           0x400FE930  // Ethernet PHY Power Control
+#define SYSCTL_PCCAN            0x400FE934  // Controller Area Network Power
+                                            // Control
+#define SYSCTL_PCADC            0x400FE938  // Analog-to-Digital Converter
+                                            // Power Control
+#define SYSCTL_PCACMP           0x400FE93C  // Analog Comparator Power Control
+#define SYSCTL_PCPWM            0x400FE940  // Pulse Width Modulator Power
+                                            // Control
+#define SYSCTL_PCQEI            0x400FE944  // Quadrature Encoder Interface
+                                            // Power Control
+#define SYSCTL_PCEEPROM         0x400FE958  // EEPROM Power Control
+#define SYSCTL_PCCCM            0x400FE974  // CRC and Cryptographic Modules
+                                            // Power Control
+#define SYSCTL_PCLCD            0x400FE990  // LCD Controller Power Control
+#define SYSCTL_PCOWIRE          0x400FE998  // 1-Wire Power Control
+#define SYSCTL_PCEMAC           0x400FE99C  // Ethernet MAC Power Control
+#define SYSCTL_PRWD             0x400FEA00  // Watchdog Timer Peripheral Ready
+#define SYSCTL_PRTIMER          0x400FEA04  // 16/32-Bit General-Purpose Timer
+                                            // Peripheral Ready
+#define SYSCTL_PRGPIO           0x400FEA08  // General-Purpose Input/Output
+                                            // Peripheral Ready
+#define SYSCTL_PRDMA            0x400FEA0C  // Micro Direct Memory Access
+                                            // Peripheral Ready
+#define SYSCTL_PREPI            0x400FEA10  // EPI Peripheral Ready
+#define SYSCTL_PRHIB            0x400FEA14  // Hibernation Peripheral Ready
+#define SYSCTL_PRUART           0x400FEA18  // Universal Asynchronous
+                                            // Receiver/Transmitter Peripheral
+                                            // Ready
+#define SYSCTL_PRSSI            0x400FEA1C  // Synchronous Serial Interface
+                                            // Peripheral Ready
+#define SYSCTL_PRI2C            0x400FEA20  // Inter-Integrated Circuit
+                                            // Peripheral Ready
+#define SYSCTL_PRUSB            0x400FEA28  // Universal Serial Bus Peripheral
+                                            // Ready
+#define SYSCTL_PREPHY           0x400FEA30  // Ethernet PHY Peripheral Ready
+#define SYSCTL_PRCAN            0x400FEA34  // Controller Area Network
+                                            // Peripheral Ready
+#define SYSCTL_PRADC            0x400FEA38  // Analog-to-Digital Converter
+                                            // Peripheral Ready
+#define SYSCTL_PRACMP           0x400FEA3C  // Analog Comparator Peripheral
+                                            // Ready
+#define SYSCTL_PRPWM            0x400FEA40  // Pulse Width Modulator Peripheral
+                                            // Ready
+#define SYSCTL_PRQEI            0x400FEA44  // Quadrature Encoder Interface
+                                            // Peripheral Ready
+#define SYSCTL_PREEPROM         0x400FEA58  // EEPROM Peripheral Ready
+#define SYSCTL_PRWTIMER         0x400FEA5C  // 32/64-Bit Wide General-Purpose
+                                            // Timer Peripheral Ready
+#define SYSCTL_PRCCM            0x400FEA74  // CRC and Cryptographic Modules
+                                            // Peripheral Ready
+#define SYSCTL_PRLCD            0x400FEA90  // LCD Controller Peripheral Ready
+#define SYSCTL_PROWIRE          0x400FEA98  // 1-Wire Peripheral Ready
+#define SYSCTL_PREMAC           0x400FEA9C  // Ethernet MAC Peripheral Ready
+#define SYSCTL_UNIQUEID0        0x400FEF20  // Unique ID 0
+#define SYSCTL_UNIQUEID1        0x400FEF24  // Unique ID 1
+#define SYSCTL_UNIQUEID2        0x400FEF28  // Unique ID 2
+#define SYSCTL_UNIQUEID3        0x400FEF2C  // Unique ID 3
+#define SYSCTL_CCMCGREQ         0x44030204  // Cryptographic Modules Clock
+                                            // Gating Request
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DID0 register.
+//
+//*****************************************************************************
+#define SYSCTL_DID0_VER_M       0x70000000  // DID0 Version
+#define SYSCTL_DID0_VER_1       0x10000000  // Second version of the DID0
+                                            // register format.
+#define SYSCTL_DID0_CLASS_M     0x00FF0000  // Device Class
+#define SYSCTL_DID0_CLASS_TM4C123                                             \
+                                0x00050000  // Tiva TM4C123x and TM4E123x
+                                            // microcontrollers
+#define SYSCTL_DID0_CLASS_TM4C129                                             \
+                                0x000A0000  // Tiva(TM) TM4C129-class
+                                            // microcontrollers
+#define SYSCTL_DID0_MAJ_M       0x0000FF00  // Major Revision
+#define SYSCTL_DID0_MAJ_REVA    0x00000000  // Revision A (initial device)
+#define SYSCTL_DID0_MAJ_REVB    0x00000100  // Revision B (first base layer
+                                            // revision)
+#define SYSCTL_DID0_MAJ_REVC    0x00000200  // Revision C (second base layer
+                                            // revision)
+#define SYSCTL_DID0_MIN_M       0x000000FF  // Minor Revision
+#define SYSCTL_DID0_MIN_0       0x00000000  // Initial device, or a major
+                                            // revision update
+#define SYSCTL_DID0_MIN_1       0x00000001  // First metal layer change
+#define SYSCTL_DID0_MIN_2       0x00000002  // Second metal layer change
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DID1 register.
+//
+//*****************************************************************************
+#define SYSCTL_DID1_VER_M       0xF0000000  // DID1 Version
+#define SYSCTL_DID1_VER_1       0x10000000  // fury_ib
+#define SYSCTL_DID1_FAM_M       0x0F000000  // Family
+#define SYSCTL_DID1_FAM_TIVA    0x00000000  // Tiva family of microcontollers
+#define SYSCTL_DID1_PRTNO_M     0x00FF0000  // Part Number
+#define SYSCTL_DID1_PRTNO_TM4C1230C3PM                                        \
+                                0x00220000  // TM4C1230C3PM
+#define SYSCTL_DID1_PRTNO_TM4C1230D5PM                                        \
+                                0x00230000  // TM4C1230D5PM
+#define SYSCTL_DID1_PRTNO_TM4C1230E6PM                                        \
+                                0x00200000  // TM4C1230E6PM
+#define SYSCTL_DID1_PRTNO_TM4C1230H6PM                                        \
+                                0x00210000  // TM4C1230H6PM
+#define SYSCTL_DID1_PRTNO_TM4C1231C3PM                                        \
+                                0x00180000  // TM4C1231C3PM
+#define SYSCTL_DID1_PRTNO_TM4C1231D5PM                                        \
+                                0x00190000  // TM4C1231D5PM
+#define SYSCTL_DID1_PRTNO_TM4C1231D5PZ                                        \
+                                0x00360000  // TM4C1231D5PZ
+#define SYSCTL_DID1_PRTNO_TM4C1231E6PM                                        \
+                                0x00100000  // TM4C1231E6PM
+#define SYSCTL_DID1_PRTNO_TM4C1231E6PZ                                        \
+                                0x00300000  // TM4C1231E6PZ
+#define SYSCTL_DID1_PRTNO_TM4C1231H6PGE                                       \
+                                0x00350000  // TM4C1231H6PGE
+#define SYSCTL_DID1_PRTNO_TM4C1231H6PM                                        \
+                                0x00110000  // TM4C1231H6PM
+#define SYSCTL_DID1_PRTNO_TM4C1231H6PZ                                        \
+                                0x00310000  // TM4C1231H6PZ
+#define SYSCTL_DID1_PRTNO_TM4C1232C3PM                                        \
+                                0x00080000  // TM4C1232C3PM
+#define SYSCTL_DID1_PRTNO_TM4C1232D5PM                                        \
+                                0x00090000  // TM4C1232D5PM
+#define SYSCTL_DID1_PRTNO_TM4C1232E6PM                                        \
+                                0x000A0000  // TM4C1232E6PM
+#define SYSCTL_DID1_PRTNO_TM4C1232H6PM                                        \
+                                0x000B0000  // TM4C1232H6PM
+#define SYSCTL_DID1_PRTNO_TM4C1233C3PM                                        \
+                                0x00010000  // TM4C1233C3PM
+#define SYSCTL_DID1_PRTNO_TM4C1233D5PM                                        \
+                                0x00020000  // TM4C1233D5PM
+#define SYSCTL_DID1_PRTNO_TM4C1233D5PZ                                        \
+                                0x00D00000  // TM4C1233D5PZ
+#define SYSCTL_DID1_PRTNO_TM4C1233E6PM                                        \
+                                0x00030000  // TM4C1233E6PM
+#define SYSCTL_DID1_PRTNO_TM4C1233E6PZ                                        \
+                                0x00D10000  // TM4C1233E6PZ
+#define SYSCTL_DID1_PRTNO_TM4C1233H6PGE                                       \
+                                0x00D60000  // TM4C1233H6PGE
+#define SYSCTL_DID1_PRTNO_TM4C1233H6PM                                        \
+                                0x00040000  // TM4C1233H6PM
+#define SYSCTL_DID1_PRTNO_TM4C1233H6PZ                                        \
+                                0x00D20000  // TM4C1233H6PZ
+#define SYSCTL_DID1_PRTNO_TM4C1236D5PM                                        \
+                                0x00520000  // TM4C1236D5PM
+#define SYSCTL_DID1_PRTNO_TM4C1236E6PM                                        \
+                                0x00500000  // TM4C1236E6PM
+#define SYSCTL_DID1_PRTNO_TM4C1236H6PM                                        \
+                                0x00510000  // TM4C1236H6PM
+#define SYSCTL_DID1_PRTNO_TM4C1237D5PM                                        \
+                                0x00480000  // TM4C1237D5PM
+#define SYSCTL_DID1_PRTNO_TM4C1237D5PZ                                        \
+                                0x00660000  // TM4C1237D5PZ
+#define SYSCTL_DID1_PRTNO_TM4C1237E6PM                                        \
+                                0x00400000  // TM4C1237E6PM
+#define SYSCTL_DID1_PRTNO_TM4C1237E6PZ                                        \
+                                0x00600000  // TM4C1237E6PZ
+#define SYSCTL_DID1_PRTNO_TM4C1237H6PGE                                       \
+                                0x00650000  // TM4C1237H6PGE
+#define SYSCTL_DID1_PRTNO_TM4C1237H6PM                                        \
+                                0x00410000  // TM4C1237H6PM
+#define SYSCTL_DID1_PRTNO_TM4C1237H6PZ                                        \
+                                0x00610000  // TM4C1237H6PZ
+#define SYSCTL_DID1_PRTNO_TM4C123AE6PM                                        \
+                                0x00800000  // TM4C123AE6PM
+#define SYSCTL_DID1_PRTNO_TM4C123AH6PM                                        \
+                                0x00830000  // TM4C123AH6PM
+#define SYSCTL_DID1_PRTNO_TM4C123BE6PM                                        \
+                                0x00700000  // TM4C123BE6PM
+#define SYSCTL_DID1_PRTNO_TM4C123BE6PZ                                        \
+                                0x00C30000  // TM4C123BE6PZ
+#define SYSCTL_DID1_PRTNO_TM4C123BH6PGE                                       \
+                                0x00C60000  // TM4C123BH6PGE
+#define SYSCTL_DID1_PRTNO_TM4C123BH6PM                                        \
+                                0x00730000  // TM4C123BH6PM
+#define SYSCTL_DID1_PRTNO_TM4C123BH6PZ                                        \
+                                0x00C40000  // TM4C123BH6PZ
+#define SYSCTL_DID1_PRTNO_TM4C123BH6ZRB                                       \
+                                0x00E90000  // TM4C123BH6ZRB
+#define SYSCTL_DID1_PRTNO_TM4C123FE6PM                                        \
+                                0x00B00000  // TM4C123FE6PM
+#define SYSCTL_DID1_PRTNO_TM4C123FH6PM                                        \
+                                0x00B10000  // TM4C123FH6PM
+#define SYSCTL_DID1_PRTNO_TM4C123GE6PM                                        \
+                                0x00A00000  // TM4C123GE6PM
+#define SYSCTL_DID1_PRTNO_TM4C123GE6PZ                                        \
+                                0x00C00000  // TM4C123GE6PZ
+#define SYSCTL_DID1_PRTNO_TM4C123GH6PGE                                       \
+                                0x00C50000  // TM4C123GH6PGE
+#define SYSCTL_DID1_PRTNO_TM4C123GH6PM                                        \
+                                0x00A10000  // TM4C123GH6PM
+#define SYSCTL_DID1_PRTNO_TM4C123GH6PZ                                        \
+                                0x00C10000  // TM4C123GH6PZ
+#define SYSCTL_DID1_PRTNO_TM4C123GH6ZRB                                       \
+                                0x00E30000  // TM4C123GH6ZRB
+#define SYSCTL_DID1_PRTNO_TM4C1290NCPDT                                       \
+                                0x00190000  // TM4C1290NCPDT
+#define SYSCTL_DID1_PRTNO_TM4C1290NCZAD                                       \
+                                0x001B0000  // TM4C1290NCZAD
+#define SYSCTL_DID1_PRTNO_TM4C1292NCPDT                                       \
+                                0x001C0000  // TM4C1292NCPDT
+#define SYSCTL_DID1_PRTNO_TM4C1292NCZAD                                       \
+                                0x001E0000  // TM4C1292NCZAD
+#define SYSCTL_DID1_PRTNO_TM4C1294KCPDT                                       \
+                                0x00340000  // TM4C1294KCPDT
+#define SYSCTL_DID1_PRTNO_TM4C1294NCPDT                                       \
+                                0x001F0000  // TM4C1294NCPDT
+#define SYSCTL_DID1_PRTNO_TM4C1294NCZAD                                       \
+                                0x00210000  // TM4C1294NCZAD
+#define SYSCTL_DID1_PRTNO_TM4C1297NCZAD                                       \
+                                0x00220000  // TM4C1297NCZAD
+#define SYSCTL_DID1_PRTNO_TM4C1299KCZAD                                       \
+                                0x00360000  // TM4C1299KCZAD
+#define SYSCTL_DID1_PRTNO_TM4C1299NCZAD                                       \
+                                0x00230000  // TM4C1299NCZAD
+#define SYSCTL_DID1_PRTNO_TM4C129CNCPDT                                       \
+                                0x00240000  // TM4C129CNCPDT
+#define SYSCTL_DID1_PRTNO_TM4C129CNCZAD                                       \
+                                0x00260000  // TM4C129CNCZAD
+#define SYSCTL_DID1_PRTNO_TM4C129DNCPDT                                       \
+                                0x00270000  // TM4C129DNCPDT
+#define SYSCTL_DID1_PRTNO_TM4C129DNCZAD                                       \
+                                0x00290000  // TM4C129DNCZAD
+#define SYSCTL_DID1_PRTNO_TM4C129EKCPDT                                       \
+                                0x00350000  // TM4C129EKCPDT
+#define SYSCTL_DID1_PRTNO_TM4C129ENCPDT                                       \
+                                0x002D0000  // TM4C129ENCPDT
+#define SYSCTL_DID1_PRTNO_TM4C129ENCZAD                                       \
+                                0x002F0000  // TM4C129ENCZAD
+#define SYSCTL_DID1_PRTNO_TM4C129LNCZAD                                       \
+                                0x00300000  // TM4C129LNCZAD
+#define SYSCTL_DID1_PRTNO_TM4C129XKCZAD                                       \
+                                0x00370000  // TM4C129XKCZAD
+#define SYSCTL_DID1_PRTNO_TM4C129XNCZAD                                       \
+                                0x00320000  // TM4C129XNCZAD
+#define SYSCTL_DID1_PINCNT_M    0x0000E000  // Package Pin Count
+#define SYSCTL_DID1_PINCNT_100  0x00004000  // 100-pin LQFP package
+#define SYSCTL_DID1_PINCNT_64   0x00006000  // 64-pin LQFP package
+#define SYSCTL_DID1_PINCNT_144  0x00008000  // 144-pin LQFP package
+#define SYSCTL_DID1_PINCNT_157  0x0000A000  // 157-pin BGA package
+#define SYSCTL_DID1_PINCNT_128  0x0000C000  // 128-pin TQFP package
+#define SYSCTL_DID1_TEMP_M      0x000000E0  // Temperature Range
+#define SYSCTL_DID1_TEMP_C      0x00000000  // Commercial temperature range
+#define SYSCTL_DID1_TEMP_I      0x00000020  // Industrial temperature range
+#define SYSCTL_DID1_TEMP_E      0x00000040  // Extended temperature range
+#define SYSCTL_DID1_TEMP_IE     0x00000060  // Available in both industrial
+                                            // temperature range (-40C to 85C)
+                                            // and extended temperature range
+                                            // (-40C to 105C) devices. See
+#define SYSCTL_DID1_PKG_M       0x00000018  // Package Type
+#define SYSCTL_DID1_PKG_QFP     0x00000008  // QFP package
+#define SYSCTL_DID1_PKG_BGA     0x00000010  // BGA package
+#define SYSCTL_DID1_ROHS        0x00000004  // RoHS-Compliance
+#define SYSCTL_DID1_QUAL_M      0x00000003  // Qualification Status
+#define SYSCTL_DID1_QUAL_ES     0x00000000  // Engineering Sample (unqualified)
+#define SYSCTL_DID1_QUAL_PP     0x00000001  // Pilot Production (unqualified)
+#define SYSCTL_DID1_QUAL_FQ     0x00000002  // Fully Qualified
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DC0 register.
+//
+//*****************************************************************************
+#define SYSCTL_DC0_SRAMSZ_M     0xFFFF0000  // SRAM Size
+#define SYSCTL_DC0_SRAMSZ_2KB   0x00070000  // 2 KB of SRAM
+#define SYSCTL_DC0_SRAMSZ_4KB   0x000F0000  // 4 KB of SRAM
+#define SYSCTL_DC0_SRAMSZ_6KB   0x00170000  // 6 KB of SRAM
+#define SYSCTL_DC0_SRAMSZ_8KB   0x001F0000  // 8 KB of SRAM
+#define SYSCTL_DC0_SRAMSZ_12KB  0x002F0000  // 12 KB of SRAM
+#define SYSCTL_DC0_SRAMSZ_16KB  0x003F0000  // 16 KB of SRAM
+#define SYSCTL_DC0_SRAMSZ_20KB  0x004F0000  // 20 KB of SRAM
+#define SYSCTL_DC0_SRAMSZ_24KB  0x005F0000  // 24 KB of SRAM
+#define SYSCTL_DC0_SRAMSZ_32KB  0x007F0000  // 32 KB of SRAM
+#define SYSCTL_DC0_FLASHSZ_M    0x0000FFFF  // Flash Size
+#define SYSCTL_DC0_FLASHSZ_8KB  0x00000003  // 8 KB of Flash
+#define SYSCTL_DC0_FLASHSZ_16KB 0x00000007  // 16 KB of Flash
+#define SYSCTL_DC0_FLASHSZ_32KB 0x0000000F  // 32 KB of Flash
+#define SYSCTL_DC0_FLASHSZ_64KB 0x0000001F  // 64 KB of Flash
+#define SYSCTL_DC0_FLASHSZ_96KB 0x0000002F  // 96 KB of Flash
+#define SYSCTL_DC0_FLASHSZ_128K 0x0000003F  // 128 KB of Flash
+#define SYSCTL_DC0_FLASHSZ_192K 0x0000005F  // 192 KB of Flash
+#define SYSCTL_DC0_FLASHSZ_256K 0x0000007F  // 256 KB of Flash
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DC1 register.
+//
+//*****************************************************************************
+#define SYSCTL_DC1_WDT1         0x10000000  // Watchdog Timer1 Present
+#define SYSCTL_DC1_CAN1         0x02000000  // CAN Module 1 Present
+#define SYSCTL_DC1_CAN0         0x01000000  // CAN Module 0 Present
+#define SYSCTL_DC1_PWM1         0x00200000  // PWM Module 1 Present
+#define SYSCTL_DC1_PWM0         0x00100000  // PWM Module 0 Present
+#define SYSCTL_DC1_ADC1         0x00020000  // ADC Module 1 Present
+#define SYSCTL_DC1_ADC0         0x00010000  // ADC Module 0 Present
+#define SYSCTL_DC1_MINSYSDIV_M  0x0000F000  // System Clock Divider
+#define SYSCTL_DC1_MINSYSDIV_80 0x00002000  // Specifies an 80-MHz CPU clock
+                                            // with a PLL divider of 2.5
+#define SYSCTL_DC1_MINSYSDIV_50 0x00003000  // Specifies a 50-MHz CPU clock
+                                            // with a PLL divider of 4
+#define SYSCTL_DC1_MINSYSDIV_40 0x00004000  // Specifies a 40-MHz CPU clock
+                                            // with a PLL divider of 5
+#define SYSCTL_DC1_MINSYSDIV_25 0x00007000  // Specifies a 25-MHz clock with a
+                                            // PLL divider of 8
+#define SYSCTL_DC1_MINSYSDIV_20 0x00009000  // Specifies a 20-MHz clock with a
+                                            // PLL divider of 10
+#define SYSCTL_DC1_ADC1SPD_M    0x00000C00  // Max ADC1 Speed
+#define SYSCTL_DC1_ADC1SPD_125K 0x00000000  // 125K samples/second
+#define SYSCTL_DC1_ADC1SPD_250K 0x00000400  // 250K samples/second
+#define SYSCTL_DC1_ADC1SPD_500K 0x00000800  // 500K samples/second
+#define SYSCTL_DC1_ADC1SPD_1M   0x00000C00  // 1M samples/second
+#define SYSCTL_DC1_ADC0SPD_M    0x00000300  // Max ADC0 Speed
+#define SYSCTL_DC1_ADC0SPD_125K 0x00000000  // 125K samples/second
+#define SYSCTL_DC1_ADC0SPD_250K 0x00000100  // 250K samples/second
+#define SYSCTL_DC1_ADC0SPD_500K 0x00000200  // 500K samples/second
+#define SYSCTL_DC1_ADC0SPD_1M   0x00000300  // 1M samples/second
+#define SYSCTL_DC1_MPU          0x00000080  // MPU Present
+#define SYSCTL_DC1_HIB          0x00000040  // Hibernation Module Present
+#define SYSCTL_DC1_TEMP         0x00000020  // Temp Sensor Present
+#define SYSCTL_DC1_PLL          0x00000010  // PLL Present
+#define SYSCTL_DC1_WDT0         0x00000008  // Watchdog Timer 0 Present
+#define SYSCTL_DC1_SWO          0x00000004  // SWO Trace Port Present
+#define SYSCTL_DC1_SWD          0x00000002  // SWD Present
+#define SYSCTL_DC1_JTAG         0x00000001  // JTAG Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DC2 register.
+//
+//*****************************************************************************
+#define SYSCTL_DC2_EPI0         0x40000000  // EPI Module 0 Present
+#define SYSCTL_DC2_I2S0         0x10000000  // I2S Module 0 Present
+#define SYSCTL_DC2_COMP2        0x04000000  // Analog Comparator 2 Present
+#define SYSCTL_DC2_COMP1        0x02000000  // Analog Comparator 1 Present
+#define SYSCTL_DC2_COMP0        0x01000000  // Analog Comparator 0 Present
+#define SYSCTL_DC2_TIMER3       0x00080000  // Timer Module 3 Present
+#define SYSCTL_DC2_TIMER2       0x00040000  // Timer Module 2 Present
+#define SYSCTL_DC2_TIMER1       0x00020000  // Timer Module 1 Present
+#define SYSCTL_DC2_TIMER0       0x00010000  // Timer Module 0 Present
+#define SYSCTL_DC2_I2C1HS       0x00008000  // I2C Module 1 Speed
+#define SYSCTL_DC2_I2C1         0x00004000  // I2C Module 1 Present
+#define SYSCTL_DC2_I2C0HS       0x00002000  // I2C Module 0 Speed
+#define SYSCTL_DC2_I2C0         0x00001000  // I2C Module 0 Present
+#define SYSCTL_DC2_QEI1         0x00000200  // QEI Module 1 Present
+#define SYSCTL_DC2_QEI0         0x00000100  // QEI Module 0 Present
+#define SYSCTL_DC2_SSI1         0x00000020  // SSI Module 1 Present
+#define SYSCTL_DC2_SSI0         0x00000010  // SSI Module 0 Present
+#define SYSCTL_DC2_UART2        0x00000004  // UART Module 2 Present
+#define SYSCTL_DC2_UART1        0x00000002  // UART Module 1 Present
+#define SYSCTL_DC2_UART0        0x00000001  // UART Module 0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DC3 register.
+//
+//*****************************************************************************
+#define SYSCTL_DC3_32KHZ        0x80000000  // 32KHz Input Clock Available
+#define SYSCTL_DC3_CCP5         0x20000000  // T2CCP1 Pin Present
+#define SYSCTL_DC3_CCP4         0x10000000  // T2CCP0 Pin Present
+#define SYSCTL_DC3_CCP3         0x08000000  // T1CCP1 Pin Present
+#define SYSCTL_DC3_CCP2         0x04000000  // T1CCP0 Pin Present
+#define SYSCTL_DC3_CCP1         0x02000000  // T0CCP1 Pin Present
+#define SYSCTL_DC3_CCP0         0x01000000  // T0CCP0 Pin Present
+#define SYSCTL_DC3_ADC0AIN7     0x00800000  // ADC Module 0 AIN7 Pin Present
+#define SYSCTL_DC3_ADC0AIN6     0x00400000  // ADC Module 0 AIN6 Pin Present
+#define SYSCTL_DC3_ADC0AIN5     0x00200000  // ADC Module 0 AIN5 Pin Present
+#define SYSCTL_DC3_ADC0AIN4     0x00100000  // ADC Module 0 AIN4 Pin Present
+#define SYSCTL_DC3_ADC0AIN3     0x00080000  // ADC Module 0 AIN3 Pin Present
+#define SYSCTL_DC3_ADC0AIN2     0x00040000  // ADC Module 0 AIN2 Pin Present
+#define SYSCTL_DC3_ADC0AIN1     0x00020000  // ADC Module 0 AIN1 Pin Present
+#define SYSCTL_DC3_ADC0AIN0     0x00010000  // ADC Module 0 AIN0 Pin Present
+#define SYSCTL_DC3_PWMFAULT     0x00008000  // PWM Fault Pin Present
+#define SYSCTL_DC3_C2O          0x00004000  // C2o Pin Present
+#define SYSCTL_DC3_C2PLUS       0x00002000  // C2+ Pin Present
+#define SYSCTL_DC3_C2MINUS      0x00001000  // C2- Pin Present
+#define SYSCTL_DC3_C1O          0x00000800  // C1o Pin Present
+#define SYSCTL_DC3_C1PLUS       0x00000400  // C1+ Pin Present
+#define SYSCTL_DC3_C1MINUS      0x00000200  // C1- Pin Present
+#define SYSCTL_DC3_C0O          0x00000100  // C0o Pin Present
+#define SYSCTL_DC3_C0PLUS       0x00000080  // C0+ Pin Present
+#define SYSCTL_DC3_C0MINUS      0x00000040  // C0- Pin Present
+#define SYSCTL_DC3_PWM5         0x00000020  // PWM5 Pin Present
+#define SYSCTL_DC3_PWM4         0x00000010  // PWM4 Pin Present
+#define SYSCTL_DC3_PWM3         0x00000008  // PWM3 Pin Present
+#define SYSCTL_DC3_PWM2         0x00000004  // PWM2 Pin Present
+#define SYSCTL_DC3_PWM1         0x00000002  // PWM1 Pin Present
+#define SYSCTL_DC3_PWM0         0x00000001  // PWM0 Pin Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DC4 register.
+//
+//*****************************************************************************
+#define SYSCTL_DC4_EPHY0        0x40000000  // Ethernet PHY Layer 0 Present
+#define SYSCTL_DC4_EMAC0        0x10000000  // Ethernet MAC Layer 0 Present
+#define SYSCTL_DC4_E1588        0x01000000  // 1588 Capable
+#define SYSCTL_DC4_PICAL        0x00040000  // PIOSC Calibrate
+#define SYSCTL_DC4_CCP7         0x00008000  // T3CCP1 Pin Present
+#define SYSCTL_DC4_CCP6         0x00004000  // T3CCP0 Pin Present
+#define SYSCTL_DC4_UDMA         0x00002000  // Micro-DMA Module Present
+#define SYSCTL_DC4_ROM          0x00001000  // Internal Code ROM Present
+#define SYSCTL_DC4_GPIOJ        0x00000100  // GPIO Port J Present
+#define SYSCTL_DC4_GPIOH        0x00000080  // GPIO Port H Present
+#define SYSCTL_DC4_GPIOG        0x00000040  // GPIO Port G Present
+#define SYSCTL_DC4_GPIOF        0x00000020  // GPIO Port F Present
+#define SYSCTL_DC4_GPIOE        0x00000010  // GPIO Port E Present
+#define SYSCTL_DC4_GPIOD        0x00000008  // GPIO Port D Present
+#define SYSCTL_DC4_GPIOC        0x00000004  // GPIO Port C Present
+#define SYSCTL_DC4_GPIOB        0x00000002  // GPIO Port B Present
+#define SYSCTL_DC4_GPIOA        0x00000001  // GPIO Port A Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DC5 register.
+//
+//*****************************************************************************
+#define SYSCTL_DC5_PWMFAULT3    0x08000000  // PWM Fault 3 Pin Present
+#define SYSCTL_DC5_PWMFAULT2    0x04000000  // PWM Fault 2 Pin Present
+#define SYSCTL_DC5_PWMFAULT1    0x02000000  // PWM Fault 1 Pin Present
+#define SYSCTL_DC5_PWMFAULT0    0x01000000  // PWM Fault 0 Pin Present
+#define SYSCTL_DC5_PWMEFLT      0x00200000  // PWM Extended Fault Active
+#define SYSCTL_DC5_PWMESYNC     0x00100000  // PWM Extended SYNC Active
+#define SYSCTL_DC5_PWM7         0x00000080  // PWM7 Pin Present
+#define SYSCTL_DC5_PWM6         0x00000040  // PWM6 Pin Present
+#define SYSCTL_DC5_PWM5         0x00000020  // PWM5 Pin Present
+#define SYSCTL_DC5_PWM4         0x00000010  // PWM4 Pin Present
+#define SYSCTL_DC5_PWM3         0x00000008  // PWM3 Pin Present
+#define SYSCTL_DC5_PWM2         0x00000004  // PWM2 Pin Present
+#define SYSCTL_DC5_PWM1         0x00000002  // PWM1 Pin Present
+#define SYSCTL_DC5_PWM0         0x00000001  // PWM0 Pin Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DC6 register.
+//
+//*****************************************************************************
+#define SYSCTL_DC6_USB0PHY      0x00000010  // USB Module 0 PHY Present
+#define SYSCTL_DC6_USB0_M       0x00000003  // USB Module 0 Present
+#define SYSCTL_DC6_USB0_DEV     0x00000001  // USB0 is Device Only
+#define SYSCTL_DC6_USB0_HOSTDEV 0x00000002  // USB is Device or Host
+#define SYSCTL_DC6_USB0_OTG     0x00000003  // USB0 is OTG
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DC7 register.
+//
+//*****************************************************************************
+#define SYSCTL_DC7_DMACH30      0x40000000  // DMA Channel 30
+#define SYSCTL_DC7_DMACH29      0x20000000  // DMA Channel 29
+#define SYSCTL_DC7_DMACH28      0x10000000  // DMA Channel 28
+#define SYSCTL_DC7_DMACH27      0x08000000  // DMA Channel 27
+#define SYSCTL_DC7_DMACH26      0x04000000  // DMA Channel 26
+#define SYSCTL_DC7_DMACH25      0x02000000  // DMA Channel 25
+#define SYSCTL_DC7_DMACH24      0x01000000  // DMA Channel 24
+#define SYSCTL_DC7_DMACH23      0x00800000  // DMA Channel 23
+#define SYSCTL_DC7_DMACH22      0x00400000  // DMA Channel 22
+#define SYSCTL_DC7_DMACH21      0x00200000  // DMA Channel 21
+#define SYSCTL_DC7_DMACH20      0x00100000  // DMA Channel 20
+#define SYSCTL_DC7_DMACH19      0x00080000  // DMA Channel 19
+#define SYSCTL_DC7_DMACH18      0x00040000  // DMA Channel 18
+#define SYSCTL_DC7_DMACH17      0x00020000  // DMA Channel 17
+#define SYSCTL_DC7_DMACH16      0x00010000  // DMA Channel 16
+#define SYSCTL_DC7_DMACH15      0x00008000  // DMA Channel 15
+#define SYSCTL_DC7_DMACH14      0x00004000  // DMA Channel 14
+#define SYSCTL_DC7_DMACH13      0x00002000  // DMA Channel 13
+#define SYSCTL_DC7_DMACH12      0x00001000  // DMA Channel 12
+#define SYSCTL_DC7_DMACH11      0x00000800  // DMA Channel 11
+#define SYSCTL_DC7_DMACH10      0x00000400  // DMA Channel 10
+#define SYSCTL_DC7_DMACH9       0x00000200  // DMA Channel 9
+#define SYSCTL_DC7_DMACH8       0x00000100  // DMA Channel 8
+#define SYSCTL_DC7_DMACH7       0x00000080  // DMA Channel 7
+#define SYSCTL_DC7_DMACH6       0x00000040  // DMA Channel 6
+#define SYSCTL_DC7_DMACH5       0x00000020  // DMA Channel 5
+#define SYSCTL_DC7_DMACH4       0x00000010  // DMA Channel 4
+#define SYSCTL_DC7_DMACH3       0x00000008  // DMA Channel 3
+#define SYSCTL_DC7_DMACH2       0x00000004  // DMA Channel 2
+#define SYSCTL_DC7_DMACH1       0x00000002  // DMA Channel 1
+#define SYSCTL_DC7_DMACH0       0x00000001  // DMA Channel 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DC8 register.
+//
+//*****************************************************************************
+#define SYSCTL_DC8_ADC1AIN15    0x80000000  // ADC Module 1 AIN15 Pin Present
+#define SYSCTL_DC8_ADC1AIN14    0x40000000  // ADC Module 1 AIN14 Pin Present
+#define SYSCTL_DC8_ADC1AIN13    0x20000000  // ADC Module 1 AIN13 Pin Present
+#define SYSCTL_DC8_ADC1AIN12    0x10000000  // ADC Module 1 AIN12 Pin Present
+#define SYSCTL_DC8_ADC1AIN11    0x08000000  // ADC Module 1 AIN11 Pin Present
+#define SYSCTL_DC8_ADC1AIN10    0x04000000  // ADC Module 1 AIN10 Pin Present
+#define SYSCTL_DC8_ADC1AIN9     0x02000000  // ADC Module 1 AIN9 Pin Present
+#define SYSCTL_DC8_ADC1AIN8     0x01000000  // ADC Module 1 AIN8 Pin Present
+#define SYSCTL_DC8_ADC1AIN7     0x00800000  // ADC Module 1 AIN7 Pin Present
+#define SYSCTL_DC8_ADC1AIN6     0x00400000  // ADC Module 1 AIN6 Pin Present
+#define SYSCTL_DC8_ADC1AIN5     0x00200000  // ADC Module 1 AIN5 Pin Present
+#define SYSCTL_DC8_ADC1AIN4     0x00100000  // ADC Module 1 AIN4 Pin Present
+#define SYSCTL_DC8_ADC1AIN3     0x00080000  // ADC Module 1 AIN3 Pin Present
+#define SYSCTL_DC8_ADC1AIN2     0x00040000  // ADC Module 1 AIN2 Pin Present
+#define SYSCTL_DC8_ADC1AIN1     0x00020000  // ADC Module 1 AIN1 Pin Present
+#define SYSCTL_DC8_ADC1AIN0     0x00010000  // ADC Module 1 AIN0 Pin Present
+#define SYSCTL_DC8_ADC0AIN15    0x00008000  // ADC Module 0 AIN15 Pin Present
+#define SYSCTL_DC8_ADC0AIN14    0x00004000  // ADC Module 0 AIN14 Pin Present
+#define SYSCTL_DC8_ADC0AIN13    0x00002000  // ADC Module 0 AIN13 Pin Present
+#define SYSCTL_DC8_ADC0AIN12    0x00001000  // ADC Module 0 AIN12 Pin Present
+#define SYSCTL_DC8_ADC0AIN11    0x00000800  // ADC Module 0 AIN11 Pin Present
+#define SYSCTL_DC8_ADC0AIN10    0x00000400  // ADC Module 0 AIN10 Pin Present
+#define SYSCTL_DC8_ADC0AIN9     0x00000200  // ADC Module 0 AIN9 Pin Present
+#define SYSCTL_DC8_ADC0AIN8     0x00000100  // ADC Module 0 AIN8 Pin Present
+#define SYSCTL_DC8_ADC0AIN7     0x00000080  // ADC Module 0 AIN7 Pin Present
+#define SYSCTL_DC8_ADC0AIN6     0x00000040  // ADC Module 0 AIN6 Pin Present
+#define SYSCTL_DC8_ADC0AIN5     0x00000020  // ADC Module 0 AIN5 Pin Present
+#define SYSCTL_DC8_ADC0AIN4     0x00000010  // ADC Module 0 AIN4 Pin Present
+#define SYSCTL_DC8_ADC0AIN3     0x00000008  // ADC Module 0 AIN3 Pin Present
+#define SYSCTL_DC8_ADC0AIN2     0x00000004  // ADC Module 0 AIN2 Pin Present
+#define SYSCTL_DC8_ADC0AIN1     0x00000002  // ADC Module 0 AIN1 Pin Present
+#define SYSCTL_DC8_ADC0AIN0     0x00000001  // ADC Module 0 AIN0 Pin Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PBORCTL register.
+//
+//*****************************************************************************
+#define SYSCTL_PBORCTL_BOR0     0x00000004  // VDD under BOR0 Event Action
+#define SYSCTL_PBORCTL_BOR1     0x00000002  // VDD under BOR1 Event Action
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PTBOCTL register.
+//
+//*****************************************************************************
+#define SYSCTL_PTBOCTL_VDDA_UBOR_M                                            \
+                                0x00000300  // VDDA under BOR Event Action
+#define SYSCTL_PTBOCTL_VDDA_UBOR_NONE                                         \
+                                0x00000000  // No Action
+#define SYSCTL_PTBOCTL_VDDA_UBOR_SYSINT                                       \
+                                0x00000100  // System control interrupt
+#define SYSCTL_PTBOCTL_VDDA_UBOR_NMI                                          \
+                                0x00000200  // NMI
+#define SYSCTL_PTBOCTL_VDDA_UBOR_RST                                          \
+                                0x00000300  // Reset
+#define SYSCTL_PTBOCTL_VDD_UBOR_M                                             \
+                                0x00000003  // VDD (VDDS) under BOR Event
+                                            // Action
+#define SYSCTL_PTBOCTL_VDD_UBOR_NONE                                          \
+                                0x00000000  // No Action
+#define SYSCTL_PTBOCTL_VDD_UBOR_SYSINT                                        \
+                                0x00000001  // System control interrupt
+#define SYSCTL_PTBOCTL_VDD_UBOR_NMI                                           \
+                                0x00000002  // NMI
+#define SYSCTL_PTBOCTL_VDD_UBOR_RST                                           \
+                                0x00000003  // Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRCR0 register.
+//
+//*****************************************************************************
+#define SYSCTL_SRCR0_WDT1       0x10000000  // WDT1 Reset Control
+#define SYSCTL_SRCR0_CAN1       0x02000000  // CAN1 Reset Control
+#define SYSCTL_SRCR0_CAN0       0x01000000  // CAN0 Reset Control
+#define SYSCTL_SRCR0_PWM0       0x00100000  // PWM Reset Control
+#define SYSCTL_SRCR0_ADC1       0x00020000  // ADC1 Reset Control
+#define SYSCTL_SRCR0_ADC0       0x00010000  // ADC0 Reset Control
+#define SYSCTL_SRCR0_HIB        0x00000040  // HIB Reset Control
+#define SYSCTL_SRCR0_WDT0       0x00000008  // WDT0 Reset Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRCR1 register.
+//
+//*****************************************************************************
+#define SYSCTL_SRCR1_COMP2      0x04000000  // Analog Comp 2 Reset Control
+#define SYSCTL_SRCR1_COMP1      0x02000000  // Analog Comp 1 Reset Control
+#define SYSCTL_SRCR1_COMP0      0x01000000  // Analog Comp 0 Reset Control
+#define SYSCTL_SRCR1_TIMER3     0x00080000  // Timer 3 Reset Control
+#define SYSCTL_SRCR1_TIMER2     0x00040000  // Timer 2 Reset Control
+#define SYSCTL_SRCR1_TIMER1     0x00020000  // Timer 1 Reset Control
+#define SYSCTL_SRCR1_TIMER0     0x00010000  // Timer 0 Reset Control
+#define SYSCTL_SRCR1_I2C1       0x00004000  // I2C1 Reset Control
+#define SYSCTL_SRCR1_I2C0       0x00001000  // I2C0 Reset Control
+#define SYSCTL_SRCR1_QEI1       0x00000200  // QEI1 Reset Control
+#define SYSCTL_SRCR1_QEI0       0x00000100  // QEI0 Reset Control
+#define SYSCTL_SRCR1_SSI1       0x00000020  // SSI1 Reset Control
+#define SYSCTL_SRCR1_SSI0       0x00000010  // SSI0 Reset Control
+#define SYSCTL_SRCR1_UART2      0x00000004  // UART2 Reset Control
+#define SYSCTL_SRCR1_UART1      0x00000002  // UART1 Reset Control
+#define SYSCTL_SRCR1_UART0      0x00000001  // UART0 Reset Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRCR2 register.
+//
+//*****************************************************************************
+#define SYSCTL_SRCR2_USB0       0x00010000  // USB0 Reset Control
+#define SYSCTL_SRCR2_UDMA       0x00002000  // Micro-DMA Reset Control
+#define SYSCTL_SRCR2_GPIOJ      0x00000100  // Port J Reset Control
+#define SYSCTL_SRCR2_GPIOH      0x00000080  // Port H Reset Control
+#define SYSCTL_SRCR2_GPIOG      0x00000040  // Port G Reset Control
+#define SYSCTL_SRCR2_GPIOF      0x00000020  // Port F Reset Control
+#define SYSCTL_SRCR2_GPIOE      0x00000010  // Port E Reset Control
+#define SYSCTL_SRCR2_GPIOD      0x00000008  // Port D Reset Control
+#define SYSCTL_SRCR2_GPIOC      0x00000004  // Port C Reset Control
+#define SYSCTL_SRCR2_GPIOB      0x00000002  // Port B Reset Control
+#define SYSCTL_SRCR2_GPIOA      0x00000001  // Port A Reset Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RIS register.
+//
+//*****************************************************************************
+#define SYSCTL_RIS_BOR0RIS      0x00000800  // VDD under BOR0 Raw Interrupt
+                                            // Status
+#define SYSCTL_RIS_VDDARIS      0x00000400  // VDDA Power OK Event Raw
+                                            // Interrupt Status
+#define SYSCTL_RIS_MOSCPUPRIS   0x00000100  // MOSC Power Up Raw Interrupt
+                                            // Status
+#define SYSCTL_RIS_USBPLLLRIS   0x00000080  // USB PLL Lock Raw Interrupt
+                                            // Status
+#define SYSCTL_RIS_PLLLRIS      0x00000040  // PLL Lock Raw Interrupt Status
+#define SYSCTL_RIS_MOFRIS       0x00000008  // Main Oscillator Failure Raw
+                                            // Interrupt Status
+#define SYSCTL_RIS_BOR1RIS      0x00000002  // VDD under BOR1 Raw Interrupt
+                                            // Status
+#define SYSCTL_RIS_BORRIS       0x00000002  // Brown-Out Reset Raw Interrupt
+                                            // Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_IMC register.
+//
+//*****************************************************************************
+#define SYSCTL_IMC_BOR0IM       0x00000800  // VDD under BOR0 Interrupt Mask
+#define SYSCTL_IMC_VDDAIM       0x00000400  // VDDA Power OK Interrupt Mask
+#define SYSCTL_IMC_MOSCPUPIM    0x00000100  // MOSC Power Up Interrupt Mask
+#define SYSCTL_IMC_USBPLLLIM    0x00000080  // USB PLL Lock Interrupt Mask
+#define SYSCTL_IMC_PLLLIM       0x00000040  // PLL Lock Interrupt Mask
+#define SYSCTL_IMC_MOFIM        0x00000008  // Main Oscillator Failure
+                                            // Interrupt Mask
+#define SYSCTL_IMC_BORIM        0x00000002  // Brown-Out Reset Interrupt Mask
+#define SYSCTL_IMC_BOR1IM       0x00000002  // VDD under BOR1 Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_MISC register.
+//
+//*****************************************************************************
+#define SYSCTL_MISC_BOR0MIS     0x00000800  // VDD under BOR0 Masked Interrupt
+                                            // Status
+#define SYSCTL_MISC_VDDAMIS     0x00000400  // VDDA Power OK Masked Interrupt
+                                            // Status
+#define SYSCTL_MISC_MOSCPUPMIS  0x00000100  // MOSC Power Up Masked Interrupt
+                                            // Status
+#define SYSCTL_MISC_USBPLLLMIS  0x00000080  // USB PLL Lock Masked Interrupt
+                                            // Status
+#define SYSCTL_MISC_PLLLMIS     0x00000040  // PLL Lock Masked Interrupt Status
+#define SYSCTL_MISC_MOFMIS      0x00000008  // Main Oscillator Failure Masked
+                                            // Interrupt Status
+#define SYSCTL_MISC_BORMIS      0x00000002  // BOR Masked Interrupt Status
+#define SYSCTL_MISC_BOR1MIS     0x00000002  // VDD under BOR1 Masked Interrupt
+                                            // Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RESC register.
+//
+//*****************************************************************************
+#define SYSCTL_RESC_MOSCFAIL    0x00010000  // MOSC Failure Reset
+#define SYSCTL_RESC_HSSR        0x00001000  // HSSR Reset
+#define SYSCTL_RESC_WDT1        0x00000020  // Watchdog Timer 1 Reset
+#define SYSCTL_RESC_SW          0x00000010  // Software Reset
+#define SYSCTL_RESC_WDT0        0x00000008  // Watchdog Timer 0 Reset
+#define SYSCTL_RESC_BOR         0x00000004  // Brown-Out Reset
+#define SYSCTL_RESC_POR         0x00000002  // Power-On Reset
+#define SYSCTL_RESC_EXT         0x00000001  // External Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PWRTC register.
+//
+//*****************************************************************************
+#define SYSCTL_PWRTC_VDDA_UBOR  0x00000010  // VDDA Under BOR Status
+#define SYSCTL_PWRTC_VDD_UBOR   0x00000001  // VDD Under BOR Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCC register.
+//
+//*****************************************************************************
+#define SYSCTL_RCC_ACG          0x08000000  // Auto Clock Gating
+#define SYSCTL_RCC_SYSDIV_M     0x07800000  // System Clock Divisor
+#define SYSCTL_RCC_USESYSDIV    0x00400000  // Enable System Clock Divider
+#define SYSCTL_RCC_USEPWMDIV    0x00100000  // Enable PWM Clock Divisor
+#define SYSCTL_RCC_PWMDIV_M     0x000E0000  // PWM Unit Clock Divisor
+#define SYSCTL_RCC_PWMDIV_2     0x00000000  // PWM clock /2
+#define SYSCTL_RCC_PWMDIV_4     0x00020000  // PWM clock /4
+#define SYSCTL_RCC_PWMDIV_8     0x00040000  // PWM clock /8
+#define SYSCTL_RCC_PWMDIV_16    0x00060000  // PWM clock /16
+#define SYSCTL_RCC_PWMDIV_32    0x00080000  // PWM clock /32
+#define SYSCTL_RCC_PWMDIV_64    0x000A0000  // PWM clock /64
+#define SYSCTL_RCC_PWRDN        0x00002000  // PLL Power Down
+#define SYSCTL_RCC_BYPASS       0x00000800  // PLL Bypass
+#define SYSCTL_RCC_XTAL_M       0x000007C0  // Crystal Value
+#define SYSCTL_RCC_XTAL_4MHZ    0x00000180  // 4 MHz
+#define SYSCTL_RCC_XTAL_4_09MHZ 0x000001C0  // 4.096 MHz
+#define SYSCTL_RCC_XTAL_4_91MHZ 0x00000200  // 4.9152 MHz
+#define SYSCTL_RCC_XTAL_5MHZ    0x00000240  // 5 MHz
+#define SYSCTL_RCC_XTAL_5_12MHZ 0x00000280  // 5.12 MHz
+#define SYSCTL_RCC_XTAL_6MHZ    0x000002C0  // 6 MHz
+#define SYSCTL_RCC_XTAL_6_14MHZ 0x00000300  // 6.144 MHz
+#define SYSCTL_RCC_XTAL_7_37MHZ 0x00000340  // 7.3728 MHz
+#define SYSCTL_RCC_XTAL_8MHZ    0x00000380  // 8 MHz
+#define SYSCTL_RCC_XTAL_8_19MHZ 0x000003C0  // 8.192 MHz
+#define SYSCTL_RCC_XTAL_10MHZ   0x00000400  // 10 MHz
+#define SYSCTL_RCC_XTAL_12MHZ   0x00000440  // 12 MHz
+#define SYSCTL_RCC_XTAL_12_2MHZ 0x00000480  // 12.288 MHz
+#define SYSCTL_RCC_XTAL_13_5MHZ 0x000004C0  // 13.56 MHz
+#define SYSCTL_RCC_XTAL_14_3MHZ 0x00000500  // 14.31818 MHz
+#define SYSCTL_RCC_XTAL_16MHZ   0x00000540  // 16 MHz
+#define SYSCTL_RCC_XTAL_16_3MHZ 0x00000580  // 16.384 MHz
+#define SYSCTL_RCC_XTAL_18MHZ   0x000005C0  // 18.0 MHz (USB)
+#define SYSCTL_RCC_XTAL_20MHZ   0x00000600  // 20.0 MHz (USB)
+#define SYSCTL_RCC_XTAL_24MHZ   0x00000640  // 24.0 MHz (USB)
+#define SYSCTL_RCC_XTAL_25MHZ   0x00000680  // 25.0 MHz (USB)
+#define SYSCTL_RCC_OSCSRC_M     0x00000030  // Oscillator Source
+#define SYSCTL_RCC_OSCSRC_MAIN  0x00000000  // MOSC
+#define SYSCTL_RCC_OSCSRC_INT   0x00000010  // IOSC
+#define SYSCTL_RCC_OSCSRC_INT4  0x00000020  // IOSC/4
+#define SYSCTL_RCC_OSCSRC_30    0x00000030  // LFIOSC
+#define SYSCTL_RCC_MOSCDIS      0x00000001  // Main Oscillator Disable
+#define SYSCTL_RCC_SYSDIV_S     23
+#define SYSCTL_RCC_XTAL_S       6           // Shift to the XTAL field
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_NMIC register.
+//
+//*****************************************************************************
+#define SYSCTL_NMIC_MOSCFAIL    0x00010000  // MOSC Failure NMI
+#define SYSCTL_NMIC_TAMPER      0x00000200  // Tamper Event NMI
+#define SYSCTL_NMIC_WDT1        0x00000020  // Watch Dog Timer (WDT) 1 NMI
+#define SYSCTL_NMIC_WDT0        0x00000008  // Watch Dog Timer (WDT) 0 NMI
+#define SYSCTL_NMIC_POWER       0x00000004  // Power/Brown Out Event NMI
+#define SYSCTL_NMIC_EXTERNAL    0x00000001  // External Pin NMI
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_GPIOHBCTL
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_GPIOHBCTL_PORTJ  0x00000100  // Port J Advanced High-Performance
+                                            // Bus
+#define SYSCTL_GPIOHBCTL_PORTH  0x00000080  // Port H Advanced High-Performance
+                                            // Bus
+#define SYSCTL_GPIOHBCTL_PORTG  0x00000040  // Port G Advanced High-Performance
+                                            // Bus
+#define SYSCTL_GPIOHBCTL_PORTF  0x00000020  // Port F Advanced High-Performance
+                                            // Bus
+#define SYSCTL_GPIOHBCTL_PORTE  0x00000010  // Port E Advanced High-Performance
+                                            // Bus
+#define SYSCTL_GPIOHBCTL_PORTD  0x00000008  // Port D Advanced High-Performance
+                                            // Bus
+#define SYSCTL_GPIOHBCTL_PORTC  0x00000004  // Port C Advanced High-Performance
+                                            // Bus
+#define SYSCTL_GPIOHBCTL_PORTB  0x00000002  // Port B Advanced High-Performance
+                                            // Bus
+#define SYSCTL_GPIOHBCTL_PORTA  0x00000001  // Port A Advanced High-Performance
+                                            // Bus
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCC2 register.
+//
+//*****************************************************************************
+#define SYSCTL_RCC2_USERCC2     0x80000000  // Use RCC2
+#define SYSCTL_RCC2_DIV400      0x40000000  // Divide PLL as 400 MHz vs. 200
+                                            // MHz
+#define SYSCTL_RCC2_SYSDIV2_M   0x1F800000  // System Clock Divisor 2
+#define SYSCTL_RCC2_SYSDIV2LSB  0x00400000  // Additional LSB for SYSDIV2
+#define SYSCTL_RCC2_USBPWRDN    0x00004000  // Power-Down USB PLL
+#define SYSCTL_RCC2_PWRDN2      0x00002000  // Power-Down PLL 2
+#define SYSCTL_RCC2_BYPASS2     0x00000800  // PLL Bypass 2
+#define SYSCTL_RCC2_OSCSRC2_M   0x00000070  // Oscillator Source 2
+#define SYSCTL_RCC2_OSCSRC2_MO  0x00000000  // MOSC
+#define SYSCTL_RCC2_OSCSRC2_IO  0x00000010  // PIOSC
+#define SYSCTL_RCC2_OSCSRC2_IO4 0x00000020  // PIOSC/4
+#define SYSCTL_RCC2_OSCSRC2_30  0x00000030  // LFIOSC
+#define SYSCTL_RCC2_OSCSRC2_32  0x00000070  // 32.768 kHz
+#define SYSCTL_RCC2_SYSDIV2_S   23
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_MOSCCTL register.
+//
+//*****************************************************************************
+#define SYSCTL_MOSCCTL_OSCRNG   0x00000010  // Oscillator Range
+#define SYSCTL_MOSCCTL_PWRDN    0x00000008  // Power Down
+#define SYSCTL_MOSCCTL_NOXTAL   0x00000004  // No Crystal Connected
+#define SYSCTL_MOSCCTL_MOSCIM   0x00000002  // MOSC Failure Action
+#define SYSCTL_MOSCCTL_CVAL     0x00000001  // Clock Validation for MOSC
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RSCLKCFG
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_RSCLKCFG_MEMTIMU 0x80000000  // Memory Timing Register Update
+#define SYSCTL_RSCLKCFG_NEWFREQ 0x40000000  // New PLLFREQ Accept
+#define SYSCTL_RSCLKCFG_ACG     0x20000000  // Auto Clock Gating
+#define SYSCTL_RSCLKCFG_USEPLL  0x10000000  // Use PLL
+#define SYSCTL_RSCLKCFG_PLLSRC_M                                              \
+                                0x0F000000  // PLL Source
+#define SYSCTL_RSCLKCFG_PLLSRC_PIOSC                                          \
+                                0x00000000  // PIOSC is PLL input clock source
+#define SYSCTL_RSCLKCFG_PLLSRC_MOSC                                           \
+                                0x03000000  // MOSC is the PLL input clock
+                                            // source
+#define SYSCTL_RSCLKCFG_OSCSRC_M                                              \
+                                0x00F00000  // Oscillator Source
+#define SYSCTL_RSCLKCFG_OSCSRC_PIOSC                                          \
+                                0x00000000  // PIOSC is oscillator source
+#define SYSCTL_RSCLKCFG_OSCSRC_LFIOSC                                         \
+                                0x00200000  // LFIOSC is oscillator source
+#define SYSCTL_RSCLKCFG_OSCSRC_MOSC                                           \
+                                0x00300000  // MOSC is oscillator source
+#define SYSCTL_RSCLKCFG_OSCSRC_RTC                                            \
+                                0x00400000  // Hibernation Module RTC
+                                            // Oscillator (RTCOSC)
+#define SYSCTL_RSCLKCFG_OSYSDIV_M                                             \
+                                0x000FFC00  // Oscillator System Clock Divisor
+#define SYSCTL_RSCLKCFG_PSYSDIV_M                                             \
+                                0x000003FF  // PLL System Clock Divisor
+#define SYSCTL_RSCLKCFG_OSYSDIV_S                                             \
+                                10
+#define SYSCTL_RSCLKCFG_PSYSDIV_S                                             \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_MEMTIM0 register.
+//
+//*****************************************************************************
+#define SYSCTL_MEMTIM0_EBCHT_M  0x03C00000  // EEPROM Clock High Time
+#define SYSCTL_MEMTIM0_EBCHT_0_5                                              \
+                                0x00000000  // 1/2 system clock period
+#define SYSCTL_MEMTIM0_EBCHT_1  0x00400000  // 1 system clock period
+#define SYSCTL_MEMTIM0_EBCHT_1_5                                              \
+                                0x00800000  // 1.5 system clock periods
+#define SYSCTL_MEMTIM0_EBCHT_2  0x00C00000  // 2 system clock periods
+#define SYSCTL_MEMTIM0_EBCHT_2_5                                              \
+                                0x01000000  // 2.5 system clock periods
+#define SYSCTL_MEMTIM0_EBCHT_3  0x01400000  // 3 system clock periods
+#define SYSCTL_MEMTIM0_EBCHT_3_5                                              \
+                                0x01800000  // 3.5 system clock periods
+#define SYSCTL_MEMTIM0_EBCHT_4  0x01C00000  // 4 system clock periods
+#define SYSCTL_MEMTIM0_EBCHT_4_5                                              \
+                                0x02000000  // 4.5 system clock periods
+#define SYSCTL_MEMTIM0_EBCE     0x00200000  // EEPROM Bank Clock Edge
+#define SYSCTL_MEMTIM0_MB1      0x00100010  // Must be one
+#define SYSCTL_MEMTIM0_EWS_M    0x000F0000  // EEPROM Wait States
+#define SYSCTL_MEMTIM0_FBCHT_M  0x000003C0  // Flash Bank Clock High Time
+#define SYSCTL_MEMTIM0_FBCHT_0_5                                              \
+                                0x00000000  // 1/2 system clock period
+#define SYSCTL_MEMTIM0_FBCHT_1  0x00000040  // 1 system clock period
+#define SYSCTL_MEMTIM0_FBCHT_1_5                                              \
+                                0x00000080  // 1.5 system clock periods
+#define SYSCTL_MEMTIM0_FBCHT_2  0x000000C0  // 2 system clock periods
+#define SYSCTL_MEMTIM0_FBCHT_2_5                                              \
+                                0x00000100  // 2.5 system clock periods
+#define SYSCTL_MEMTIM0_FBCHT_3  0x00000140  // 3 system clock periods
+#define SYSCTL_MEMTIM0_FBCHT_3_5                                              \
+                                0x00000180  // 3.5 system clock periods
+#define SYSCTL_MEMTIM0_FBCHT_4  0x000001C0  // 4 system clock periods
+#define SYSCTL_MEMTIM0_FBCHT_4_5                                              \
+                                0x00000200  // 4.5 system clock periods
+#define SYSCTL_MEMTIM0_FBCE     0x00000020  // Flash Bank Clock Edge
+#define SYSCTL_MEMTIM0_FWS_M    0x0000000F  // Flash Wait State
+#define SYSCTL_MEMTIM0_EWS_S    16
+#define SYSCTL_MEMTIM0_FWS_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGC0 register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGC0_WDT1       0x10000000  // WDT1 Clock Gating Control
+#define SYSCTL_RCGC0_CAN1       0x02000000  // CAN1 Clock Gating Control
+#define SYSCTL_RCGC0_CAN0       0x01000000  // CAN0 Clock Gating Control
+#define SYSCTL_RCGC0_PWM0       0x00100000  // PWM Clock Gating Control
+#define SYSCTL_RCGC0_ADC1       0x00020000  // ADC1 Clock Gating Control
+#define SYSCTL_RCGC0_ADC0       0x00010000  // ADC0 Clock Gating Control
+#define SYSCTL_RCGC0_ADC1SPD_M  0x00000C00  // ADC1 Sample Speed
+#define SYSCTL_RCGC0_ADC1SPD_125K                                             \
+                                0x00000000  // 125K samples/second
+#define SYSCTL_RCGC0_ADC1SPD_250K                                             \
+                                0x00000400  // 250K samples/second
+#define SYSCTL_RCGC0_ADC1SPD_500K                                             \
+                                0x00000800  // 500K samples/second
+#define SYSCTL_RCGC0_ADC1SPD_1M 0x00000C00  // 1M samples/second
+#define SYSCTL_RCGC0_ADC0SPD_M  0x00000300  // ADC0 Sample Speed
+#define SYSCTL_RCGC0_ADC0SPD_125K                                             \
+                                0x00000000  // 125K samples/second
+#define SYSCTL_RCGC0_ADC0SPD_250K                                             \
+                                0x00000100  // 250K samples/second
+#define SYSCTL_RCGC0_ADC0SPD_500K                                             \
+                                0x00000200  // 500K samples/second
+#define SYSCTL_RCGC0_ADC0SPD_1M 0x00000300  // 1M samples/second
+#define SYSCTL_RCGC0_HIB        0x00000040  // HIB Clock Gating Control
+#define SYSCTL_RCGC0_WDT0       0x00000008  // WDT0 Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGC1 register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGC1_COMP2      0x04000000  // Analog Comparator 2 Clock Gating
+#define SYSCTL_RCGC1_COMP1      0x02000000  // Analog Comparator 1 Clock Gating
+#define SYSCTL_RCGC1_COMP0      0x01000000  // Analog Comparator 0 Clock Gating
+#define SYSCTL_RCGC1_TIMER3     0x00080000  // Timer 3 Clock Gating Control
+#define SYSCTL_RCGC1_TIMER2     0x00040000  // Timer 2 Clock Gating Control
+#define SYSCTL_RCGC1_TIMER1     0x00020000  // Timer 1 Clock Gating Control
+#define SYSCTL_RCGC1_TIMER0     0x00010000  // Timer 0 Clock Gating Control
+#define SYSCTL_RCGC1_I2C1       0x00004000  // I2C1 Clock Gating Control
+#define SYSCTL_RCGC1_I2C0       0x00001000  // I2C0 Clock Gating Control
+#define SYSCTL_RCGC1_QEI1       0x00000200  // QEI1 Clock Gating Control
+#define SYSCTL_RCGC1_QEI0       0x00000100  // QEI0 Clock Gating Control
+#define SYSCTL_RCGC1_SSI1       0x00000020  // SSI1 Clock Gating Control
+#define SYSCTL_RCGC1_SSI0       0x00000010  // SSI0 Clock Gating Control
+#define SYSCTL_RCGC1_UART2      0x00000004  // UART2 Clock Gating Control
+#define SYSCTL_RCGC1_UART1      0x00000002  // UART1 Clock Gating Control
+#define SYSCTL_RCGC1_UART0      0x00000001  // UART0 Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGC2 register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGC2_USB0       0x00010000  // USB0 Clock Gating Control
+#define SYSCTL_RCGC2_UDMA       0x00002000  // Micro-DMA Clock Gating Control
+#define SYSCTL_RCGC2_GPIOJ      0x00000100  // Port J Clock Gating Control
+#define SYSCTL_RCGC2_GPIOH      0x00000080  // Port H Clock Gating Control
+#define SYSCTL_RCGC2_GPIOG      0x00000040  // Port G Clock Gating Control
+#define SYSCTL_RCGC2_GPIOF      0x00000020  // Port F Clock Gating Control
+#define SYSCTL_RCGC2_GPIOE      0x00000010  // Port E Clock Gating Control
+#define SYSCTL_RCGC2_GPIOD      0x00000008  // Port D Clock Gating Control
+#define SYSCTL_RCGC2_GPIOC      0x00000004  // Port C Clock Gating Control
+#define SYSCTL_RCGC2_GPIOB      0x00000002  // Port B Clock Gating Control
+#define SYSCTL_RCGC2_GPIOA      0x00000001  // Port A Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGC0 register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGC0_WDT1       0x10000000  // WDT1 Clock Gating Control
+#define SYSCTL_SCGC0_CAN1       0x02000000  // CAN1 Clock Gating Control
+#define SYSCTL_SCGC0_CAN0       0x01000000  // CAN0 Clock Gating Control
+#define SYSCTL_SCGC0_PWM0       0x00100000  // PWM Clock Gating Control
+#define SYSCTL_SCGC0_ADC1       0x00020000  // ADC1 Clock Gating Control
+#define SYSCTL_SCGC0_ADC0       0x00010000  // ADC0 Clock Gating Control
+#define SYSCTL_SCGC0_ADCSPD_M   0x00000F00  // ADC Sample Speed
+#define SYSCTL_SCGC0_HIB        0x00000040  // HIB Clock Gating Control
+#define SYSCTL_SCGC0_WDT0       0x00000008  // WDT0 Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGC1 register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGC1_COMP2      0x04000000  // Analog Comparator 2 Clock Gating
+#define SYSCTL_SCGC1_COMP1      0x02000000  // Analog Comparator 1 Clock Gating
+#define SYSCTL_SCGC1_COMP0      0x01000000  // Analog Comparator 0 Clock Gating
+#define SYSCTL_SCGC1_TIMER3     0x00080000  // Timer 3 Clock Gating Control
+#define SYSCTL_SCGC1_TIMER2     0x00040000  // Timer 2 Clock Gating Control
+#define SYSCTL_SCGC1_TIMER1     0x00020000  // Timer 1 Clock Gating Control
+#define SYSCTL_SCGC1_TIMER0     0x00010000  // Timer 0 Clock Gating Control
+#define SYSCTL_SCGC1_I2C1       0x00004000  // I2C1 Clock Gating Control
+#define SYSCTL_SCGC1_I2C0       0x00001000  // I2C0 Clock Gating Control
+#define SYSCTL_SCGC1_QEI1       0x00000200  // QEI1 Clock Gating Control
+#define SYSCTL_SCGC1_QEI0       0x00000100  // QEI0 Clock Gating Control
+#define SYSCTL_SCGC1_SSI1       0x00000020  // SSI1 Clock Gating Control
+#define SYSCTL_SCGC1_SSI0       0x00000010  // SSI0 Clock Gating Control
+#define SYSCTL_SCGC1_UART2      0x00000004  // UART2 Clock Gating Control
+#define SYSCTL_SCGC1_UART1      0x00000002  // UART1 Clock Gating Control
+#define SYSCTL_SCGC1_UART0      0x00000001  // UART0 Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGC2 register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGC2_USB0       0x00010000  // USB0 Clock Gating Control
+#define SYSCTL_SCGC2_UDMA       0x00002000  // Micro-DMA Clock Gating Control
+#define SYSCTL_SCGC2_GPIOJ      0x00000100  // Port J Clock Gating Control
+#define SYSCTL_SCGC2_GPIOH      0x00000080  // Port H Clock Gating Control
+#define SYSCTL_SCGC2_GPIOG      0x00000040  // Port G Clock Gating Control
+#define SYSCTL_SCGC2_GPIOF      0x00000020  // Port F Clock Gating Control
+#define SYSCTL_SCGC2_GPIOE      0x00000010  // Port E Clock Gating Control
+#define SYSCTL_SCGC2_GPIOD      0x00000008  // Port D Clock Gating Control
+#define SYSCTL_SCGC2_GPIOC      0x00000004  // Port C Clock Gating Control
+#define SYSCTL_SCGC2_GPIOB      0x00000002  // Port B Clock Gating Control
+#define SYSCTL_SCGC2_GPIOA      0x00000001  // Port A Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGC0 register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGC0_WDT1       0x10000000  // WDT1 Clock Gating Control
+#define SYSCTL_DCGC0_CAN1       0x02000000  // CAN1 Clock Gating Control
+#define SYSCTL_DCGC0_CAN0       0x01000000  // CAN0 Clock Gating Control
+#define SYSCTL_DCGC0_PWM0       0x00100000  // PWM Clock Gating Control
+#define SYSCTL_DCGC0_ADC1       0x00020000  // ADC1 Clock Gating Control
+#define SYSCTL_DCGC0_ADC0       0x00010000  // ADC0 Clock Gating Control
+#define SYSCTL_DCGC0_HIB        0x00000040  // HIB Clock Gating Control
+#define SYSCTL_DCGC0_WDT0       0x00000008  // WDT0 Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGC1 register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGC1_COMP2      0x04000000  // Analog Comparator 2 Clock Gating
+#define SYSCTL_DCGC1_COMP1      0x02000000  // Analog Comparator 1 Clock Gating
+#define SYSCTL_DCGC1_COMP0      0x01000000  // Analog Comparator 0 Clock Gating
+#define SYSCTL_DCGC1_TIMER3     0x00080000  // Timer 3 Clock Gating Control
+#define SYSCTL_DCGC1_TIMER2     0x00040000  // Timer 2 Clock Gating Control
+#define SYSCTL_DCGC1_TIMER1     0x00020000  // Timer 1 Clock Gating Control
+#define SYSCTL_DCGC1_TIMER0     0x00010000  // Timer 0 Clock Gating Control
+#define SYSCTL_DCGC1_I2C1       0x00004000  // I2C1 Clock Gating Control
+#define SYSCTL_DCGC1_I2C0       0x00001000  // I2C0 Clock Gating Control
+#define SYSCTL_DCGC1_QEI1       0x00000200  // QEI1 Clock Gating Control
+#define SYSCTL_DCGC1_QEI0       0x00000100  // QEI0 Clock Gating Control
+#define SYSCTL_DCGC1_SSI1       0x00000020  // SSI1 Clock Gating Control
+#define SYSCTL_DCGC1_SSI0       0x00000010  // SSI0 Clock Gating Control
+#define SYSCTL_DCGC1_UART2      0x00000004  // UART2 Clock Gating Control
+#define SYSCTL_DCGC1_UART1      0x00000002  // UART1 Clock Gating Control
+#define SYSCTL_DCGC1_UART0      0x00000001  // UART0 Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGC2 register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGC2_USB0       0x00010000  // USB0 Clock Gating Control
+#define SYSCTL_DCGC2_UDMA       0x00002000  // Micro-DMA Clock Gating Control
+#define SYSCTL_DCGC2_GPIOJ      0x00000100  // Port J Clock Gating Control
+#define SYSCTL_DCGC2_GPIOH      0x00000080  // Port H Clock Gating Control
+#define SYSCTL_DCGC2_GPIOG      0x00000040  // Port G Clock Gating Control
+#define SYSCTL_DCGC2_GPIOF      0x00000020  // Port F Clock Gating Control
+#define SYSCTL_DCGC2_GPIOE      0x00000010  // Port E Clock Gating Control
+#define SYSCTL_DCGC2_GPIOD      0x00000008  // Port D Clock Gating Control
+#define SYSCTL_DCGC2_GPIOC      0x00000004  // Port C Clock Gating Control
+#define SYSCTL_DCGC2_GPIOB      0x00000002  // Port B Clock Gating Control
+#define SYSCTL_DCGC2_GPIOA      0x00000001  // Port A Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_ALTCLKCFG
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_ALTCLKCFG_ALTCLK_M                                             \
+                                0x0000000F  // Alternate Clock Source
+#define SYSCTL_ALTCLKCFG_ALTCLK_PIOSC                                         \
+                                0x00000000  // PIOSC
+#define SYSCTL_ALTCLKCFG_ALTCLK_RTCOSC                                        \
+                                0x00000003  // Hibernation Module Real-time
+                                            // clock output (RTCOSC)
+#define SYSCTL_ALTCLKCFG_ALTCLK_LFIOSC                                        \
+                                0x00000004  // Low-frequency internal
+                                            // oscillator (LFIOSC)
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DSLPCLKCFG
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_DSLPCLKCFG_D_M   0x1F800000  // Divider Field Override
+#define SYSCTL_DSLPCLKCFG_O_M   0x00000070  // Clock Source
+#define SYSCTL_DSLPCLKCFG_O_IGN 0x00000000  // MOSC
+#define SYSCTL_DSLPCLKCFG_O_IO  0x00000010  // PIOSC
+#define SYSCTL_DSLPCLKCFG_O_30  0x00000030  // LFIOSC
+#define SYSCTL_DSLPCLKCFG_O_32  0x00000070  // 32.768 kHz
+#define SYSCTL_DSLPCLKCFG_PIOSCPD                                             \
+                                0x00000002  // PIOSC Power Down Request
+#define SYSCTL_DSLPCLKCFG_D_S   23
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DSCLKCFG
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_DSCLKCFG_PIOSCPD 0x80000000  // PIOSC Power Down
+#define SYSCTL_DSCLKCFG_MOSCDPD 0x40000000  // MOSC Disable Power Down
+#define SYSCTL_DSCLKCFG_DSOSCSRC_M                                            \
+                                0x00F00000  // Deep Sleep Oscillator Source
+#define SYSCTL_DSCLKCFG_DSOSCSRC_PIOSC                                        \
+                                0x00000000  // PIOSC
+#define SYSCTL_DSCLKCFG_DSOSCSRC_LFIOSC                                       \
+                                0x00200000  // LFIOSC
+#define SYSCTL_DSCLKCFG_DSOSCSRC_MOSC                                         \
+                                0x00300000  // MOSC
+#define SYSCTL_DSCLKCFG_DSOSCSRC_RTC                                          \
+                                0x00400000  // Hibernation Module RTCOSC
+#define SYSCTL_DSCLKCFG_DSSYSDIV_M                                            \
+                                0x000003FF  // Deep Sleep Clock Divisor
+#define SYSCTL_DSCLKCFG_DSSYSDIV_S                                            \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DIVSCLK register.
+//
+//*****************************************************************************
+#define SYSCTL_DIVSCLK_EN       0x80000000  // DIVSCLK Enable
+#define SYSCTL_DIVSCLK_SRC_M    0x00030000  // Clock Source
+#define SYSCTL_DIVSCLK_SRC_SYSCLK                                             \
+                                0x00000000  // System Clock
+#define SYSCTL_DIVSCLK_SRC_PIOSC                                              \
+                                0x00010000  // PIOSC
+#define SYSCTL_DIVSCLK_SRC_MOSC 0x00020000  // MOSC
+#define SYSCTL_DIVSCLK_DIV_M    0x000000FF  // Divisor Value
+#define SYSCTL_DIVSCLK_DIV_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SYSPROP register.
+//
+//*****************************************************************************
+#define SYSCTL_SYSPROP_FPU      0x00000001  // FPU Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PIOSCCAL
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_PIOSCCAL_UTEN    0x80000000  // Use User Trim Value
+#define SYSCTL_PIOSCCAL_CAL     0x00000200  // Start Calibration
+#define SYSCTL_PIOSCCAL_UPDATE  0x00000100  // Update Trim
+#define SYSCTL_PIOSCCAL_UT_M    0x0000007F  // User Trim Value
+#define SYSCTL_PIOSCCAL_UT_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PIOSCSTAT
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_PIOSCSTAT_DT_M   0x007F0000  // Default Trim Value
+#define SYSCTL_PIOSCSTAT_CR_M   0x00000300  // Calibration Result
+#define SYSCTL_PIOSCSTAT_CRNONE 0x00000000  // Calibration has not been
+                                            // attempted
+#define SYSCTL_PIOSCSTAT_CRPASS 0x00000100  // The last calibration operation
+                                            // completed to meet 1% accuracy
+#define SYSCTL_PIOSCSTAT_CRFAIL 0x00000200  // The last calibration operation
+                                            // failed to meet 1% accuracy
+#define SYSCTL_PIOSCSTAT_CT_M   0x0000007F  // Calibration Trim Value
+#define SYSCTL_PIOSCSTAT_DT_S   16
+#define SYSCTL_PIOSCSTAT_CT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PLLFREQ0
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_PLLFREQ0_PLLPWR  0x00800000  // PLL Power
+#define SYSCTL_PLLFREQ0_MFRAC_M 0x000FFC00  // PLL M Fractional Value
+#define SYSCTL_PLLFREQ0_MINT_M  0x000003FF  // PLL M Integer Value
+#define SYSCTL_PLLFREQ0_MFRAC_S 10
+#define SYSCTL_PLLFREQ0_MINT_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PLLFREQ1
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_PLLFREQ1_Q_M     0x00001F00  // PLL Q Value
+#define SYSCTL_PLLFREQ1_N_M     0x0000001F  // PLL N Value
+#define SYSCTL_PLLFREQ1_Q_S     8
+#define SYSCTL_PLLFREQ1_N_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PLLSTAT register.
+//
+//*****************************************************************************
+#define SYSCTL_PLLSTAT_LOCK     0x00000001  // PLL Lock
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SLPPWRCFG
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_SLPPWRCFG_FLASHPM_M                                            \
+                                0x00000030  // Flash Power Modes
+#define SYSCTL_SLPPWRCFG_FLASHPM_NRM                                          \
+                                0x00000000  // Active Mode
+#define SYSCTL_SLPPWRCFG_FLASHPM_SLP                                          \
+                                0x00000020  // Low Power Mode
+#define SYSCTL_SLPPWRCFG_SRAMPM_M                                             \
+                                0x00000003  // SRAM Power Modes
+#define SYSCTL_SLPPWRCFG_SRAMPM_NRM                                           \
+                                0x00000000  // Active Mode
+#define SYSCTL_SLPPWRCFG_SRAMPM_SBY                                           \
+                                0x00000001  // Standby Mode
+#define SYSCTL_SLPPWRCFG_SRAMPM_LP                                            \
+                                0x00000003  // Low Power Mode
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DSLPPWRCFG
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_DSLPPWRCFG_LDOSM 0x00000200  // LDO Sleep Mode
+#define SYSCTL_DSLPPWRCFG_TSPD  0x00000100  // Temperature Sense Power Down
+#define SYSCTL_DSLPPWRCFG_FLASHPM_M                                           \
+                                0x00000030  // Flash Power Modes
+#define SYSCTL_DSLPPWRCFG_FLASHPM_NRM                                         \
+                                0x00000000  // Active Mode
+#define SYSCTL_DSLPPWRCFG_FLASHPM_SLP                                         \
+                                0x00000020  // Low Power Mode
+#define SYSCTL_DSLPPWRCFG_SRAMPM_M                                            \
+                                0x00000003  // SRAM Power Modes
+#define SYSCTL_DSLPPWRCFG_SRAMPM_NRM                                          \
+                                0x00000000  // Active Mode
+#define SYSCTL_DSLPPWRCFG_SRAMPM_SBY                                          \
+                                0x00000001  // Standby Mode
+#define SYSCTL_DSLPPWRCFG_SRAMPM_LP                                           \
+                                0x00000003  // Low Power Mode
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DC9 register.
+//
+//*****************************************************************************
+#define SYSCTL_DC9_ADC1DC7      0x00800000  // ADC1 DC7 Present
+#define SYSCTL_DC9_ADC1DC6      0x00400000  // ADC1 DC6 Present
+#define SYSCTL_DC9_ADC1DC5      0x00200000  // ADC1 DC5 Present
+#define SYSCTL_DC9_ADC1DC4      0x00100000  // ADC1 DC4 Present
+#define SYSCTL_DC9_ADC1DC3      0x00080000  // ADC1 DC3 Present
+#define SYSCTL_DC9_ADC1DC2      0x00040000  // ADC1 DC2 Present
+#define SYSCTL_DC9_ADC1DC1      0x00020000  // ADC1 DC1 Present
+#define SYSCTL_DC9_ADC1DC0      0x00010000  // ADC1 DC0 Present
+#define SYSCTL_DC9_ADC0DC7      0x00000080  // ADC0 DC7 Present
+#define SYSCTL_DC9_ADC0DC6      0x00000040  // ADC0 DC6 Present
+#define SYSCTL_DC9_ADC0DC5      0x00000020  // ADC0 DC5 Present
+#define SYSCTL_DC9_ADC0DC4      0x00000010  // ADC0 DC4 Present
+#define SYSCTL_DC9_ADC0DC3      0x00000008  // ADC0 DC3 Present
+#define SYSCTL_DC9_ADC0DC2      0x00000004  // ADC0 DC2 Present
+#define SYSCTL_DC9_ADC0DC1      0x00000002  // ADC0 DC1 Present
+#define SYSCTL_DC9_ADC0DC0      0x00000001  // ADC0 DC0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_NVMSTAT register.
+//
+//*****************************************************************************
+#define SYSCTL_NVMSTAT_FWB      0x00000001  // 32 Word Flash Write Buffer
+                                            // Available
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_LDOSPCTL
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_LDOSPCTL_VADJEN  0x80000000  // Voltage Adjust Enable
+#define SYSCTL_LDOSPCTL_VLDO_M  0x000000FF  // LDO Output Voltage
+#define SYSCTL_LDOSPCTL_VLDO_0_90V                                            \
+                                0x00000012  // 0.90 V
+#define SYSCTL_LDOSPCTL_VLDO_0_95V                                            \
+                                0x00000013  // 0.95 V
+#define SYSCTL_LDOSPCTL_VLDO_1_00V                                            \
+                                0x00000014  // 1.00 V
+#define SYSCTL_LDOSPCTL_VLDO_1_05V                                            \
+                                0x00000015  // 1.05 V
+#define SYSCTL_LDOSPCTL_VLDO_1_10V                                            \
+                                0x00000016  // 1.10 V
+#define SYSCTL_LDOSPCTL_VLDO_1_15V                                            \
+                                0x00000017  // 1.15 V
+#define SYSCTL_LDOSPCTL_VLDO_1_20V                                            \
+                                0x00000018  // 1.20 V
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_LDODPCTL
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_LDODPCTL_VADJEN  0x80000000  // Voltage Adjust Enable
+#define SYSCTL_LDODPCTL_VLDO_M  0x000000FF  // LDO Output Voltage
+#define SYSCTL_LDODPCTL_VLDO_0_90V                                            \
+                                0x00000012  // 0.90 V
+#define SYSCTL_LDODPCTL_VLDO_0_95V                                            \
+                                0x00000013  // 0.95 V
+#define SYSCTL_LDODPCTL_VLDO_1_00V                                            \
+                                0x00000014  // 1.00 V
+#define SYSCTL_LDODPCTL_VLDO_1_05V                                            \
+                                0x00000015  // 1.05 V
+#define SYSCTL_LDODPCTL_VLDO_1_10V                                            \
+                                0x00000016  // 1.10 V
+#define SYSCTL_LDODPCTL_VLDO_1_15V                                            \
+                                0x00000017  // 1.15 V
+#define SYSCTL_LDODPCTL_VLDO_1_20V                                            \
+                                0x00000018  // 1.20 V
+#define SYSCTL_LDODPCTL_VLDO_1_25V                                            \
+                                0x00000019  // 1.25 V
+#define SYSCTL_LDODPCTL_VLDO_1_30V                                            \
+                                0x0000001A  // 1.30 V
+#define SYSCTL_LDODPCTL_VLDO_1_35V                                            \
+                                0x0000001B  // 1.35 V
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RESBEHAVCTL
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_RESBEHAVCTL_WDOG1_M                                            \
+                                0x000000C0  // Watchdog 1 Reset Operation
+#define SYSCTL_RESBEHAVCTL_WDOG1_SYSRST                                       \
+                                0x00000080  // Watchdog 1 issues a system
+                                            // reset. The application starts
+                                            // within 10 us
+#define SYSCTL_RESBEHAVCTL_WDOG1_POR                                          \
+                                0x000000C0  // Watchdog 1 issues a simulated
+                                            // POR sequence. Application starts
+                                            // less than 500 us after
+                                            // deassertion (Default)
+#define SYSCTL_RESBEHAVCTL_WDOG0_M                                            \
+                                0x00000030  // Watchdog 0 Reset Operation
+#define SYSCTL_RESBEHAVCTL_WDOG0_SYSRST                                       \
+                                0x00000020  // Watchdog 0 issues a system
+                                            // reset. The application starts
+                                            // within 10 us
+#define SYSCTL_RESBEHAVCTL_WDOG0_POR                                          \
+                                0x00000030  // Watchdog 0 issues a simulated
+                                            // POR sequence. Application starts
+                                            // less than 500 us after
+                                            // deassertion (Default)
+#define SYSCTL_RESBEHAVCTL_BOR_M                                              \
+                                0x0000000C  // BOR Reset operation
+#define SYSCTL_RESBEHAVCTL_BOR_SYSRST                                         \
+                                0x00000008  // Brown Out Reset issues system
+                                            // reset. The application starts
+                                            // within 10 us
+#define SYSCTL_RESBEHAVCTL_BOR_POR                                            \
+                                0x0000000C  // Brown Out Reset issues a
+                                            // simulated POR sequence. The
+                                            // application starts less than 500
+                                            // us after deassertion (Default)
+#define SYSCTL_RESBEHAVCTL_EXTRES_M                                           \
+                                0x00000003  // External RST Pin Operation
+#define SYSCTL_RESBEHAVCTL_EXTRES_SYSRST                                      \
+                                0x00000002  // External RST assertion issues a
+                                            // system reset. The application
+                                            // starts within 10 us
+#define SYSCTL_RESBEHAVCTL_EXTRES_POR                                         \
+                                0x00000003  // External RST assertion issues a
+                                            // simulated POR sequence.
+                                            // Application starts less than 500
+                                            // us after deassertion (Default)
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_HSSR register.
+//
+//*****************************************************************************
+#define SYSCTL_HSSR_KEY_M       0xFF000000  // Write Key
+#define SYSCTL_HSSR_CDOFF_M     0x00FFFFFF  // Command Descriptor Pointer
+#define SYSCTL_HSSR_KEY_S       24
+#define SYSCTL_HSSR_CDOFF_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_USBPDS register.
+//
+//*****************************************************************************
+#define SYSCTL_USBPDS_MEMSTAT_M 0x0000000C  // Memory Array Power Status
+#define SYSCTL_USBPDS_MEMSTAT_OFF                                             \
+                                0x00000000  // Array OFF
+#define SYSCTL_USBPDS_MEMSTAT_RETAIN                                          \
+                                0x00000004  // SRAM Retention
+#define SYSCTL_USBPDS_MEMSTAT_ON                                              \
+                                0x0000000C  // Array On
+#define SYSCTL_USBPDS_PWRSTAT_M 0x00000003  // Power Domain Status
+#define SYSCTL_USBPDS_PWRSTAT_OFF                                             \
+                                0x00000000  // OFF
+#define SYSCTL_USBPDS_PWRSTAT_ON                                              \
+                                0x00000003  // ON
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_USBMPC register.
+//
+//*****************************************************************************
+#define SYSCTL_USBMPC_PWRCTL_M  0x00000003  // Memory Array Power Control
+#define SYSCTL_USBMPC_PWRCTL_OFF                                              \
+                                0x00000000  // Array OFF
+#define SYSCTL_USBMPC_PWRCTL_RETAIN                                           \
+                                0x00000001  // SRAM Retention
+#define SYSCTL_USBMPC_PWRCTL_ON 0x00000003  // Array On
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_EMACPDS register.
+//
+//*****************************************************************************
+#define SYSCTL_EMACPDS_MEMSTAT_M                                              \
+                                0x0000000C  // Memory Array Power Status
+#define SYSCTL_EMACPDS_MEMSTAT_OFF                                            \
+                                0x00000000  // Array OFF
+#define SYSCTL_EMACPDS_MEMSTAT_ON                                             \
+                                0x0000000C  // Array On
+#define SYSCTL_EMACPDS_PWRSTAT_M                                              \
+                                0x00000003  // Power Domain Status
+#define SYSCTL_EMACPDS_PWRSTAT_OFF                                            \
+                                0x00000000  // OFF
+#define SYSCTL_EMACPDS_PWRSTAT_ON                                             \
+                                0x00000003  // ON
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_EMACMPC register.
+//
+//*****************************************************************************
+#define SYSCTL_EMACMPC_PWRCTL_M 0x00000003  // Memory Array Power Control
+#define SYSCTL_EMACMPC_PWRCTL_OFF                                             \
+                                0x00000000  // Array OFF
+#define SYSCTL_EMACMPC_PWRCTL_ON                                              \
+                                0x00000003  // Array On
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_LCDMPC register.
+//
+//*****************************************************************************
+#define SYSCTL_LCDMPC_PWRCTL_M  0x00000003  // Memory Array Power Control
+#define SYSCTL_LCDMPC_PWRCTL_OFF                                              \
+                                0x00000000  // Array OFF
+#define SYSCTL_LCDMPC_PWRCTL_ON 0x00000003  // Array On
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPWD register.
+//
+//*****************************************************************************
+#define SYSCTL_PPWD_P1          0x00000002  // Watchdog Timer 1 Present
+#define SYSCTL_PPWD_P0          0x00000001  // Watchdog Timer 0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPTIMER register.
+//
+//*****************************************************************************
+#define SYSCTL_PPTIMER_P7       0x00000080  // 16/32-Bit General-Purpose Timer
+                                            // 7 Present
+#define SYSCTL_PPTIMER_P6       0x00000040  // 16/32-Bit General-Purpose Timer
+                                            // 6 Present
+#define SYSCTL_PPTIMER_P5       0x00000020  // 16/32-Bit General-Purpose Timer
+                                            // 5 Present
+#define SYSCTL_PPTIMER_P4       0x00000010  // 16/32-Bit General-Purpose Timer
+                                            // 4 Present
+#define SYSCTL_PPTIMER_P3       0x00000008  // 16/32-Bit General-Purpose Timer
+                                            // 3 Present
+#define SYSCTL_PPTIMER_P2       0x00000004  // 16/32-Bit General-Purpose Timer
+                                            // 2 Present
+#define SYSCTL_PPTIMER_P1       0x00000002  // 16/32-Bit General-Purpose Timer
+                                            // 1 Present
+#define SYSCTL_PPTIMER_P0       0x00000001  // 16/32-Bit General-Purpose Timer
+                                            // 0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPGPIO register.
+//
+//*****************************************************************************
+#define SYSCTL_PPGPIO_P17       0x00020000  // GPIO Port T Present
+#define SYSCTL_PPGPIO_P16       0x00010000  // GPIO Port S Present
+#define SYSCTL_PPGPIO_P15       0x00008000  // GPIO Port R Present
+#define SYSCTL_PPGPIO_P14       0x00004000  // GPIO Port Q Present
+#define SYSCTL_PPGPIO_P13       0x00002000  // GPIO Port P Present
+#define SYSCTL_PPGPIO_P12       0x00001000  // GPIO Port N Present
+#define SYSCTL_PPGPIO_P11       0x00000800  // GPIO Port M Present
+#define SYSCTL_PPGPIO_P10       0x00000400  // GPIO Port L Present
+#define SYSCTL_PPGPIO_P9        0x00000200  // GPIO Port K Present
+#define SYSCTL_PPGPIO_P8        0x00000100  // GPIO Port J Present
+#define SYSCTL_PPGPIO_P7        0x00000080  // GPIO Port H Present
+#define SYSCTL_PPGPIO_P6        0x00000040  // GPIO Port G Present
+#define SYSCTL_PPGPIO_P5        0x00000020  // GPIO Port F Present
+#define SYSCTL_PPGPIO_P4        0x00000010  // GPIO Port E Present
+#define SYSCTL_PPGPIO_P3        0x00000008  // GPIO Port D Present
+#define SYSCTL_PPGPIO_P2        0x00000004  // GPIO Port C Present
+#define SYSCTL_PPGPIO_P1        0x00000002  // GPIO Port B Present
+#define SYSCTL_PPGPIO_P0        0x00000001  // GPIO Port A Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPDMA register.
+//
+//*****************************************************************************
+#define SYSCTL_PPDMA_P0         0x00000001  // uDMA Module Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPEPI register.
+//
+//*****************************************************************************
+#define SYSCTL_PPEPI_P0         0x00000001  // EPI Module Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPHIB register.
+//
+//*****************************************************************************
+#define SYSCTL_PPHIB_P0         0x00000001  // Hibernation Module Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPUART register.
+//
+//*****************************************************************************
+#define SYSCTL_PPUART_P7        0x00000080  // UART Module 7 Present
+#define SYSCTL_PPUART_P6        0x00000040  // UART Module 6 Present
+#define SYSCTL_PPUART_P5        0x00000020  // UART Module 5 Present
+#define SYSCTL_PPUART_P4        0x00000010  // UART Module 4 Present
+#define SYSCTL_PPUART_P3        0x00000008  // UART Module 3 Present
+#define SYSCTL_PPUART_P2        0x00000004  // UART Module 2 Present
+#define SYSCTL_PPUART_P1        0x00000002  // UART Module 1 Present
+#define SYSCTL_PPUART_P0        0x00000001  // UART Module 0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPSSI register.
+//
+//*****************************************************************************
+#define SYSCTL_PPSSI_P3         0x00000008  // SSI Module 3 Present
+#define SYSCTL_PPSSI_P2         0x00000004  // SSI Module 2 Present
+#define SYSCTL_PPSSI_P1         0x00000002  // SSI Module 1 Present
+#define SYSCTL_PPSSI_P0         0x00000001  // SSI Module 0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPI2C register.
+//
+//*****************************************************************************
+#define SYSCTL_PPI2C_P9         0x00000200  // I2C Module 9 Present
+#define SYSCTL_PPI2C_P8         0x00000100  // I2C Module 8 Present
+#define SYSCTL_PPI2C_P7         0x00000080  // I2C Module 7 Present
+#define SYSCTL_PPI2C_P6         0x00000040  // I2C Module 6 Present
+#define SYSCTL_PPI2C_P5         0x00000020  // I2C Module 5 Present
+#define SYSCTL_PPI2C_P4         0x00000010  // I2C Module 4 Present
+#define SYSCTL_PPI2C_P3         0x00000008  // I2C Module 3 Present
+#define SYSCTL_PPI2C_P2         0x00000004  // I2C Module 2 Present
+#define SYSCTL_PPI2C_P1         0x00000002  // I2C Module 1 Present
+#define SYSCTL_PPI2C_P0         0x00000001  // I2C Module 0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPUSB register.
+//
+//*****************************************************************************
+#define SYSCTL_PPUSB_P0         0x00000001  // USB Module Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPEPHY register.
+//
+//*****************************************************************************
+#define SYSCTL_PPEPHY_P0        0x00000001  // Ethernet PHY Module Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPCAN register.
+//
+//*****************************************************************************
+#define SYSCTL_PPCAN_P1         0x00000002  // CAN Module 1 Present
+#define SYSCTL_PPCAN_P0         0x00000001  // CAN Module 0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPADC register.
+//
+//*****************************************************************************
+#define SYSCTL_PPADC_P1         0x00000002  // ADC Module 1 Present
+#define SYSCTL_PPADC_P0         0x00000001  // ADC Module 0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPACMP register.
+//
+//*****************************************************************************
+#define SYSCTL_PPACMP_P0        0x00000001  // Analog Comparator Module Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPPWM register.
+//
+//*****************************************************************************
+#define SYSCTL_PPPWM_P1         0x00000002  // PWM Module 1 Present
+#define SYSCTL_PPPWM_P0         0x00000001  // PWM Module 0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPQEI register.
+//
+//*****************************************************************************
+#define SYSCTL_PPQEI_P1         0x00000002  // QEI Module 1 Present
+#define SYSCTL_PPQEI_P0         0x00000001  // QEI Module 0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPLPC register.
+//
+//*****************************************************************************
+#define SYSCTL_PPLPC_P0         0x00000001  // LPC Module Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPPECI register.
+//
+//*****************************************************************************
+#define SYSCTL_PPPECI_P0        0x00000001  // PECI Module Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPFAN register.
+//
+//*****************************************************************************
+#define SYSCTL_PPFAN_P0         0x00000001  // FAN Module 0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPEEPROM
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_PPEEPROM_P0      0x00000001  // EEPROM Module Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPWTIMER
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_PPWTIMER_P5      0x00000020  // 32/64-Bit Wide General-Purpose
+                                            // Timer 5 Present
+#define SYSCTL_PPWTIMER_P4      0x00000010  // 32/64-Bit Wide General-Purpose
+                                            // Timer 4 Present
+#define SYSCTL_PPWTIMER_P3      0x00000008  // 32/64-Bit Wide General-Purpose
+                                            // Timer 3 Present
+#define SYSCTL_PPWTIMER_P2      0x00000004  // 32/64-Bit Wide General-Purpose
+                                            // Timer 2 Present
+#define SYSCTL_PPWTIMER_P1      0x00000002  // 32/64-Bit Wide General-Purpose
+                                            // Timer 1 Present
+#define SYSCTL_PPWTIMER_P0      0x00000001  // 32/64-Bit Wide General-Purpose
+                                            // Timer 0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPRTS register.
+//
+//*****************************************************************************
+#define SYSCTL_PPRTS_P0         0x00000001  // RTS Module Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPCCM register.
+//
+//*****************************************************************************
+#define SYSCTL_PPCCM_P0         0x00000001  // CRC and Cryptographic Modules
+                                            // Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPLCD register.
+//
+//*****************************************************************************
+#define SYSCTL_PPLCD_P0         0x00000001  // LCD Module Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPOWIRE register.
+//
+//*****************************************************************************
+#define SYSCTL_PPOWIRE_P0       0x00000001  // 1-Wire Module Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPEMAC register.
+//
+//*****************************************************************************
+#define SYSCTL_PPEMAC_P0        0x00000001  // Ethernet Controller Module
+                                            // Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPHIM register.
+//
+//*****************************************************************************
+#define SYSCTL_PPHIM_P0         0x00000001  // HIM Module Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRWD register.
+//
+//*****************************************************************************
+#define SYSCTL_SRWD_R1          0x00000002  // Watchdog Timer 1 Software Reset
+#define SYSCTL_SRWD_R0          0x00000001  // Watchdog Timer 0 Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRTIMER register.
+//
+//*****************************************************************************
+#define SYSCTL_SRTIMER_R7       0x00000080  // 16/32-Bit General-Purpose Timer
+                                            // 7 Software Reset
+#define SYSCTL_SRTIMER_R6       0x00000040  // 16/32-Bit General-Purpose Timer
+                                            // 6 Software Reset
+#define SYSCTL_SRTIMER_R5       0x00000020  // 16/32-Bit General-Purpose Timer
+                                            // 5 Software Reset
+#define SYSCTL_SRTIMER_R4       0x00000010  // 16/32-Bit General-Purpose Timer
+                                            // 4 Software Reset
+#define SYSCTL_SRTIMER_R3       0x00000008  // 16/32-Bit General-Purpose Timer
+                                            // 3 Software Reset
+#define SYSCTL_SRTIMER_R2       0x00000004  // 16/32-Bit General-Purpose Timer
+                                            // 2 Software Reset
+#define SYSCTL_SRTIMER_R1       0x00000002  // 16/32-Bit General-Purpose Timer
+                                            // 1 Software Reset
+#define SYSCTL_SRTIMER_R0       0x00000001  // 16/32-Bit General-Purpose Timer
+                                            // 0 Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRGPIO register.
+//
+//*****************************************************************************
+#define SYSCTL_SRGPIO_R17       0x00020000  // GPIO Port T Software Reset
+#define SYSCTL_SRGPIO_R16       0x00010000  // GPIO Port S Software Reset
+#define SYSCTL_SRGPIO_R15       0x00008000  // GPIO Port R Software Reset
+#define SYSCTL_SRGPIO_R14       0x00004000  // GPIO Port Q Software Reset
+#define SYSCTL_SRGPIO_R13       0x00002000  // GPIO Port P Software Reset
+#define SYSCTL_SRGPIO_R12       0x00001000  // GPIO Port N Software Reset
+#define SYSCTL_SRGPIO_R11       0x00000800  // GPIO Port M Software Reset
+#define SYSCTL_SRGPIO_R10       0x00000400  // GPIO Port L Software Reset
+#define SYSCTL_SRGPIO_R9        0x00000200  // GPIO Port K Software Reset
+#define SYSCTL_SRGPIO_R8        0x00000100  // GPIO Port J Software Reset
+#define SYSCTL_SRGPIO_R7        0x00000080  // GPIO Port H Software Reset
+#define SYSCTL_SRGPIO_R6        0x00000040  // GPIO Port G Software Reset
+#define SYSCTL_SRGPIO_R5        0x00000020  // GPIO Port F Software Reset
+#define SYSCTL_SRGPIO_R4        0x00000010  // GPIO Port E Software Reset
+#define SYSCTL_SRGPIO_R3        0x00000008  // GPIO Port D Software Reset
+#define SYSCTL_SRGPIO_R2        0x00000004  // GPIO Port C Software Reset
+#define SYSCTL_SRGPIO_R1        0x00000002  // GPIO Port B Software Reset
+#define SYSCTL_SRGPIO_R0        0x00000001  // GPIO Port A Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRDMA register.
+//
+//*****************************************************************************
+#define SYSCTL_SRDMA_R0         0x00000001  // uDMA Module Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SREPI register.
+//
+//*****************************************************************************
+#define SYSCTL_SREPI_R0         0x00000001  // EPI Module Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRHIB register.
+//
+//*****************************************************************************
+#define SYSCTL_SRHIB_R0         0x00000001  // Hibernation Module Software
+                                            // Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRUART register.
+//
+//*****************************************************************************
+#define SYSCTL_SRUART_R7        0x00000080  // UART Module 7 Software Reset
+#define SYSCTL_SRUART_R6        0x00000040  // UART Module 6 Software Reset
+#define SYSCTL_SRUART_R5        0x00000020  // UART Module 5 Software Reset
+#define SYSCTL_SRUART_R4        0x00000010  // UART Module 4 Software Reset
+#define SYSCTL_SRUART_R3        0x00000008  // UART Module 3 Software Reset
+#define SYSCTL_SRUART_R2        0x00000004  // UART Module 2 Software Reset
+#define SYSCTL_SRUART_R1        0x00000002  // UART Module 1 Software Reset
+#define SYSCTL_SRUART_R0        0x00000001  // UART Module 0 Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRSSI register.
+//
+//*****************************************************************************
+#define SYSCTL_SRSSI_R3         0x00000008  // SSI Module 3 Software Reset
+#define SYSCTL_SRSSI_R2         0x00000004  // SSI Module 2 Software Reset
+#define SYSCTL_SRSSI_R1         0x00000002  // SSI Module 1 Software Reset
+#define SYSCTL_SRSSI_R0         0x00000001  // SSI Module 0 Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRI2C register.
+//
+//*****************************************************************************
+#define SYSCTL_SRI2C_R9         0x00000200  // I2C Module 9 Software Reset
+#define SYSCTL_SRI2C_R8         0x00000100  // I2C Module 8 Software Reset
+#define SYSCTL_SRI2C_R7         0x00000080  // I2C Module 7 Software Reset
+#define SYSCTL_SRI2C_R6         0x00000040  // I2C Module 6 Software Reset
+#define SYSCTL_SRI2C_R5         0x00000020  // I2C Module 5 Software Reset
+#define SYSCTL_SRI2C_R4         0x00000010  // I2C Module 4 Software Reset
+#define SYSCTL_SRI2C_R3         0x00000008  // I2C Module 3 Software Reset
+#define SYSCTL_SRI2C_R2         0x00000004  // I2C Module 2 Software Reset
+#define SYSCTL_SRI2C_R1         0x00000002  // I2C Module 1 Software Reset
+#define SYSCTL_SRI2C_R0         0x00000001  // I2C Module 0 Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRUSB register.
+//
+//*****************************************************************************
+#define SYSCTL_SRUSB_R0         0x00000001  // USB Module Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SREPHY register.
+//
+//*****************************************************************************
+#define SYSCTL_SREPHY_R0        0x00000001  // Ethernet PHY Module Software
+                                            // Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRCAN register.
+//
+//*****************************************************************************
+#define SYSCTL_SRCAN_R1         0x00000002  // CAN Module 1 Software Reset
+#define SYSCTL_SRCAN_R0         0x00000001  // CAN Module 0 Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRADC register.
+//
+//*****************************************************************************
+#define SYSCTL_SRADC_R1         0x00000002  // ADC Module 1 Software Reset
+#define SYSCTL_SRADC_R0         0x00000001  // ADC Module 0 Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRACMP register.
+//
+//*****************************************************************************
+#define SYSCTL_SRACMP_R0        0x00000001  // Analog Comparator Module 0
+                                            // Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRPWM register.
+//
+//*****************************************************************************
+#define SYSCTL_SRPWM_R1         0x00000002  // PWM Module 1 Software Reset
+#define SYSCTL_SRPWM_R0         0x00000001  // PWM Module 0 Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRQEI register.
+//
+//*****************************************************************************
+#define SYSCTL_SRQEI_R1         0x00000002  // QEI Module 1 Software Reset
+#define SYSCTL_SRQEI_R0         0x00000001  // QEI Module 0 Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SREEPROM
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_SREEPROM_R0      0x00000001  // EEPROM Module Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRWTIMER
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_SRWTIMER_R5      0x00000020  // 32/64-Bit Wide General-Purpose
+                                            // Timer 5 Software Reset
+#define SYSCTL_SRWTIMER_R4      0x00000010  // 32/64-Bit Wide General-Purpose
+                                            // Timer 4 Software Reset
+#define SYSCTL_SRWTIMER_R3      0x00000008  // 32/64-Bit Wide General-Purpose
+                                            // Timer 3 Software Reset
+#define SYSCTL_SRWTIMER_R2      0x00000004  // 32/64-Bit Wide General-Purpose
+                                            // Timer 2 Software Reset
+#define SYSCTL_SRWTIMER_R1      0x00000002  // 32/64-Bit Wide General-Purpose
+                                            // Timer 1 Software Reset
+#define SYSCTL_SRWTIMER_R0      0x00000001  // 32/64-Bit Wide General-Purpose
+                                            // Timer 0 Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRCCM register.
+//
+//*****************************************************************************
+#define SYSCTL_SRCCM_R0         0x00000001  // CRC and Cryptographic Modules
+                                            // Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRLCD register.
+//
+//*****************************************************************************
+#define SYSCTL_SRLCD_R0         0x00000001  // LCD Module 0 Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SROWIRE register.
+//
+//*****************************************************************************
+#define SYSCTL_SROWIRE_R0       0x00000001  // 1-Wire Module Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SREMAC register.
+//
+//*****************************************************************************
+#define SYSCTL_SREMAC_R0        0x00000001  // Ethernet Controller MAC Module 0
+                                            // Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCWD register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCWD_R1        0x00000002  // Watchdog Timer 1 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCWD_R0        0x00000001  // Watchdog Timer 0 Run Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCTIMER
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCTIMER_R7     0x00000080  // 16/32-Bit General-Purpose Timer
+                                            // 7 Run Mode Clock Gating Control
+#define SYSCTL_RCGCTIMER_R6     0x00000040  // 16/32-Bit General-Purpose Timer
+                                            // 6 Run Mode Clock Gating Control
+#define SYSCTL_RCGCTIMER_R5     0x00000020  // 16/32-Bit General-Purpose Timer
+                                            // 5 Run Mode Clock Gating Control
+#define SYSCTL_RCGCTIMER_R4     0x00000010  // 16/32-Bit General-Purpose Timer
+                                            // 4 Run Mode Clock Gating Control
+#define SYSCTL_RCGCTIMER_R3     0x00000008  // 16/32-Bit General-Purpose Timer
+                                            // 3 Run Mode Clock Gating Control
+#define SYSCTL_RCGCTIMER_R2     0x00000004  // 16/32-Bit General-Purpose Timer
+                                            // 2 Run Mode Clock Gating Control
+#define SYSCTL_RCGCTIMER_R1     0x00000002  // 16/32-Bit General-Purpose Timer
+                                            // 1 Run Mode Clock Gating Control
+#define SYSCTL_RCGCTIMER_R0     0x00000001  // 16/32-Bit General-Purpose Timer
+                                            // 0 Run Mode Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCGPIO
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCGPIO_R17     0x00020000  // GPIO Port T Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCGPIO_R16     0x00010000  // GPIO Port S Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCGPIO_R15     0x00008000  // GPIO Port R Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCGPIO_R14     0x00004000  // GPIO Port Q Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCGPIO_R13     0x00002000  // GPIO Port P Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCGPIO_R12     0x00001000  // GPIO Port N Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCGPIO_R11     0x00000800  // GPIO Port M Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCGPIO_R10     0x00000400  // GPIO Port L Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCGPIO_R9      0x00000200  // GPIO Port K Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCGPIO_R8      0x00000100  // GPIO Port J Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCGPIO_R7      0x00000080  // GPIO Port H Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCGPIO_R6      0x00000040  // GPIO Port G Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCGPIO_R5      0x00000020  // GPIO Port F Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCGPIO_R4      0x00000010  // GPIO Port E Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCGPIO_R3      0x00000008  // GPIO Port D Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCGPIO_R2      0x00000004  // GPIO Port C Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCGPIO_R1      0x00000002  // GPIO Port B Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCGPIO_R0      0x00000001  // GPIO Port A Run Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCDMA register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCDMA_R0       0x00000001  // uDMA Module Run Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCEPI register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCEPI_R0       0x00000001  // EPI Module Run Mode Clock Gating
+                                            // Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCHIB register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCHIB_R0       0x00000001  // Hibernation Module Run Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCUART
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCUART_R7      0x00000080  // UART Module 7 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCUART_R6      0x00000040  // UART Module 6 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCUART_R5      0x00000020  // UART Module 5 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCUART_R4      0x00000010  // UART Module 4 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCUART_R3      0x00000008  // UART Module 3 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCUART_R2      0x00000004  // UART Module 2 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCUART_R1      0x00000002  // UART Module 1 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCUART_R0      0x00000001  // UART Module 0 Run Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCSSI register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCSSI_R3       0x00000008  // SSI Module 3 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCSSI_R2       0x00000004  // SSI Module 2 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCSSI_R1       0x00000002  // SSI Module 1 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCSSI_R0       0x00000001  // SSI Module 0 Run Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCI2C register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCI2C_R9       0x00000200  // I2C Module 9 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCI2C_R8       0x00000100  // I2C Module 8 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCI2C_R7       0x00000080  // I2C Module 7 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCI2C_R6       0x00000040  // I2C Module 6 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCI2C_R5       0x00000020  // I2C Module 5 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCI2C_R4       0x00000010  // I2C Module 4 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCI2C_R3       0x00000008  // I2C Module 3 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCI2C_R2       0x00000004  // I2C Module 2 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCI2C_R1       0x00000002  // I2C Module 1 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCI2C_R0       0x00000001  // I2C Module 0 Run Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCUSB register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCUSB_R0       0x00000001  // USB Module Run Mode Clock Gating
+                                            // Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCEPHY
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCEPHY_R0      0x00000001  // Ethernet PHY Module Run Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCCAN register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCCAN_R1       0x00000002  // CAN Module 1 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCCAN_R0       0x00000001  // CAN Module 0 Run Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCADC register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCADC_R1       0x00000002  // ADC Module 1 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCADC_R0       0x00000001  // ADC Module 0 Run Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCACMP
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCACMP_R0      0x00000001  // Analog Comparator Module 0 Run
+                                            // Mode Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCPWM register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCPWM_R1       0x00000002  // PWM Module 1 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCPWM_R0       0x00000001  // PWM Module 0 Run Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCQEI register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCQEI_R1       0x00000002  // QEI Module 1 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCQEI_R0       0x00000001  // QEI Module 0 Run Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCEEPROM
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCEEPROM_R0    0x00000001  // EEPROM Module Run Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCWTIMER
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCWTIMER_R5    0x00000020  // 32/64-Bit Wide General-Purpose
+                                            // Timer 5 Run Mode Clock Gating
+                                            // Control
+#define SYSCTL_RCGCWTIMER_R4    0x00000010  // 32/64-Bit Wide General-Purpose
+                                            // Timer 4 Run Mode Clock Gating
+                                            // Control
+#define SYSCTL_RCGCWTIMER_R3    0x00000008  // 32/64-Bit Wide General-Purpose
+                                            // Timer 3 Run Mode Clock Gating
+                                            // Control
+#define SYSCTL_RCGCWTIMER_R2    0x00000004  // 32/64-Bit Wide General-Purpose
+                                            // Timer 2 Run Mode Clock Gating
+                                            // Control
+#define SYSCTL_RCGCWTIMER_R1    0x00000002  // 32/64-Bit Wide General-Purpose
+                                            // Timer 1 Run Mode Clock Gating
+                                            // Control
+#define SYSCTL_RCGCWTIMER_R0    0x00000001  // 32/64-Bit Wide General-Purpose
+                                            // Timer 0 Run Mode Clock Gating
+                                            // Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCCCM register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCCCM_R0       0x00000001  // CRC and Cryptographic Modules
+                                            // Run Mode Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCLCD register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCLCD_R0       0x00000001  // LCD Controller Module 0 Run Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCOWIRE
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCOWIRE_R0     0x00000001  // 1-Wire Module 0 Run Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCEMAC
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCEMAC_R0      0x00000001  // Ethernet MAC Module 0 Run Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCWD register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCWD_S1        0x00000002  // Watchdog Timer 1 Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_SCGCWD_S0        0x00000001  // Watchdog Timer 0 Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCTIMER
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCTIMER_S7     0x00000080  // 16/32-Bit General-Purpose Timer
+                                            // 7 Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_SCGCTIMER_S6     0x00000040  // 16/32-Bit General-Purpose Timer
+                                            // 6 Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_SCGCTIMER_S5     0x00000020  // 16/32-Bit General-Purpose Timer
+                                            // 5 Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_SCGCTIMER_S4     0x00000010  // 16/32-Bit General-Purpose Timer
+                                            // 4 Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_SCGCTIMER_S3     0x00000008  // 16/32-Bit General-Purpose Timer
+                                            // 3 Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_SCGCTIMER_S2     0x00000004  // 16/32-Bit General-Purpose Timer
+                                            // 2 Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_SCGCTIMER_S1     0x00000002  // 16/32-Bit General-Purpose Timer
+                                            // 1 Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_SCGCTIMER_S0     0x00000001  // 16/32-Bit General-Purpose Timer
+                                            // 0 Sleep Mode Clock Gating
+                                            // Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCGPIO
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCGPIO_S17     0x00020000  // GPIO Port T Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCGPIO_S16     0x00010000  // GPIO Port S Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCGPIO_S15     0x00008000  // GPIO Port R Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCGPIO_S14     0x00004000  // GPIO Port Q Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCGPIO_S13     0x00002000  // GPIO Port P Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCGPIO_S12     0x00001000  // GPIO Port N Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCGPIO_S11     0x00000800  // GPIO Port M Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCGPIO_S10     0x00000400  // GPIO Port L Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCGPIO_S9      0x00000200  // GPIO Port K Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCGPIO_S8      0x00000100  // GPIO Port J Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCGPIO_S7      0x00000080  // GPIO Port H Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCGPIO_S6      0x00000040  // GPIO Port G Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCGPIO_S5      0x00000020  // GPIO Port F Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCGPIO_S4      0x00000010  // GPIO Port E Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCGPIO_S3      0x00000008  // GPIO Port D Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCGPIO_S2      0x00000004  // GPIO Port C Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCGPIO_S1      0x00000002  // GPIO Port B Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCGPIO_S0      0x00000001  // GPIO Port A Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCDMA register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCDMA_S0       0x00000001  // uDMA Module Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCEPI register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCEPI_S0       0x00000001  // EPI Module Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCHIB register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCHIB_S0       0x00000001  // Hibernation Module Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCUART
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCUART_S7      0x00000080  // UART Module 7 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCUART_S6      0x00000040  // UART Module 6 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCUART_S5      0x00000020  // UART Module 5 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCUART_S4      0x00000010  // UART Module 4 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCUART_S3      0x00000008  // UART Module 3 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCUART_S2      0x00000004  // UART Module 2 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCUART_S1      0x00000002  // UART Module 1 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCUART_S0      0x00000001  // UART Module 0 Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCSSI register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCSSI_S3       0x00000008  // SSI Module 3 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCSSI_S2       0x00000004  // SSI Module 2 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCSSI_S1       0x00000002  // SSI Module 1 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCSSI_S0       0x00000001  // SSI Module 0 Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCI2C register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCI2C_S9       0x00000200  // I2C Module 9 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCI2C_S8       0x00000100  // I2C Module 8 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCI2C_S7       0x00000080  // I2C Module 7 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCI2C_S6       0x00000040  // I2C Module 6 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCI2C_S5       0x00000020  // I2C Module 5 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCI2C_S4       0x00000010  // I2C Module 4 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCI2C_S3       0x00000008  // I2C Module 3 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCI2C_S2       0x00000004  // I2C Module 2 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCI2C_S1       0x00000002  // I2C Module 1 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCI2C_S0       0x00000001  // I2C Module 0 Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCUSB register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCUSB_S0       0x00000001  // USB Module Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCEPHY
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCEPHY_S0      0x00000001  // PHY Module Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCCAN register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCCAN_S1       0x00000002  // CAN Module 1 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCCAN_S0       0x00000001  // CAN Module 0 Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCADC register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCADC_S1       0x00000002  // ADC Module 1 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCADC_S0       0x00000001  // ADC Module 0 Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCACMP
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCACMP_S0      0x00000001  // Analog Comparator Module 0 Sleep
+                                            // Mode Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCPWM register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCPWM_S1       0x00000002  // PWM Module 1 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCPWM_S0       0x00000001  // PWM Module 0 Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCQEI register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCQEI_S1       0x00000002  // QEI Module 1 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCQEI_S0       0x00000001  // QEI Module 0 Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCEEPROM
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCEEPROM_S0    0x00000001  // EEPROM Module Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCWTIMER
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCWTIMER_S5    0x00000020  // 32/64-Bit Wide General-Purpose
+                                            // Timer 5 Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_SCGCWTIMER_S4    0x00000010  // 32/64-Bit Wide General-Purpose
+                                            // Timer 4 Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_SCGCWTIMER_S3    0x00000008  // 32/64-Bit Wide General-Purpose
+                                            // Timer 3 Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_SCGCWTIMER_S2    0x00000004  // 32/64-Bit Wide General-Purpose
+                                            // Timer 2 Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_SCGCWTIMER_S1    0x00000002  // 32/64-Bit Wide General-Purpose
+                                            // Timer 1 Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_SCGCWTIMER_S0    0x00000001  // 32/64-Bit Wide General-Purpose
+                                            // Timer 0 Sleep Mode Clock Gating
+                                            // Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCCCM register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCCCM_S0       0x00000001  // CRC and Cryptographic Modules
+                                            // Sleep Mode Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCLCD register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCLCD_S0       0x00000001  // LCD Controller Module 0 Sleep
+                                            // Mode Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCOWIRE
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCOWIRE_S0     0x00000001  // 1-Wire Module 0 Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCEMAC
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCEMAC_S0      0x00000001  // Ethernet MAC Module 0 Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCWD register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCWD_D1        0x00000002  // Watchdog Timer 1 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCWD_D0        0x00000001  // Watchdog Timer 0 Deep-Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCTIMER
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCTIMER_D7     0x00000080  // 16/32-Bit General-Purpose Timer
+                                            // 7 Deep-Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_DCGCTIMER_D6     0x00000040  // 16/32-Bit General-Purpose Timer
+                                            // 6 Deep-Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_DCGCTIMER_D5     0x00000020  // 16/32-Bit General-Purpose Timer
+                                            // 5 Deep-Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_DCGCTIMER_D4     0x00000010  // 16/32-Bit General-Purpose Timer
+                                            // 4 Deep-Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_DCGCTIMER_D3     0x00000008  // 16/32-Bit General-Purpose Timer
+                                            // 3 Deep-Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_DCGCTIMER_D2     0x00000004  // 16/32-Bit General-Purpose Timer
+                                            // 2 Deep-Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_DCGCTIMER_D1     0x00000002  // 16/32-Bit General-Purpose Timer
+                                            // 1 Deep-Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_DCGCTIMER_D0     0x00000001  // 16/32-Bit General-Purpose Timer
+                                            // 0 Deep-Sleep Mode Clock Gating
+                                            // Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCGPIO
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCGPIO_D17     0x00020000  // GPIO Port T Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCGPIO_D16     0x00010000  // GPIO Port S Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCGPIO_D15     0x00008000  // GPIO Port R Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCGPIO_D14     0x00004000  // GPIO Port Q Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCGPIO_D13     0x00002000  // GPIO Port P Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCGPIO_D12     0x00001000  // GPIO Port N Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCGPIO_D11     0x00000800  // GPIO Port M Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCGPIO_D10     0x00000400  // GPIO Port L Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCGPIO_D9      0x00000200  // GPIO Port K Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCGPIO_D8      0x00000100  // GPIO Port J Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCGPIO_D7      0x00000080  // GPIO Port H Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCGPIO_D6      0x00000040  // GPIO Port G Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCGPIO_D5      0x00000020  // GPIO Port F Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCGPIO_D4      0x00000010  // GPIO Port E Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCGPIO_D3      0x00000008  // GPIO Port D Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCGPIO_D2      0x00000004  // GPIO Port C Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCGPIO_D1      0x00000002  // GPIO Port B Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCGPIO_D0      0x00000001  // GPIO Port A Deep-Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCDMA register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCDMA_D0       0x00000001  // uDMA Module Deep-Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCEPI register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCEPI_D0       0x00000001  // EPI Module Deep-Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCHIB register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCHIB_D0       0x00000001  // Hibernation Module Deep-Sleep
+                                            // Mode Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCUART
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCUART_D7      0x00000080  // UART Module 7 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCUART_D6      0x00000040  // UART Module 6 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCUART_D5      0x00000020  // UART Module 5 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCUART_D4      0x00000010  // UART Module 4 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCUART_D3      0x00000008  // UART Module 3 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCUART_D2      0x00000004  // UART Module 2 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCUART_D1      0x00000002  // UART Module 1 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCUART_D0      0x00000001  // UART Module 0 Deep-Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCSSI register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCSSI_D3       0x00000008  // SSI Module 3 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCSSI_D2       0x00000004  // SSI Module 2 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCSSI_D1       0x00000002  // SSI Module 1 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCSSI_D0       0x00000001  // SSI Module 0 Deep-Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCI2C register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCI2C_D9       0x00000200  // I2C Module 9 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCI2C_D8       0x00000100  // I2C Module 8 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCI2C_D7       0x00000080  // I2C Module 7 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCI2C_D6       0x00000040  // I2C Module 6 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCI2C_D5       0x00000020  // I2C Module 5 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCI2C_D4       0x00000010  // I2C Module 4 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCI2C_D3       0x00000008  // I2C Module 3 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCI2C_D2       0x00000004  // I2C Module 2 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCI2C_D1       0x00000002  // I2C Module 1 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCI2C_D0       0x00000001  // I2C Module 0 Deep-Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCUSB register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCUSB_D0       0x00000001  // USB Module Deep-Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCEPHY
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCEPHY_D0      0x00000001  // PHY Module Deep-Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCCAN register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCCAN_D1       0x00000002  // CAN Module 1 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCCAN_D0       0x00000001  // CAN Module 0 Deep-Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCADC register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCADC_D1       0x00000002  // ADC Module 1 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCADC_D0       0x00000001  // ADC Module 0 Deep-Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCACMP
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCACMP_D0      0x00000001  // Analog Comparator Module 0
+                                            // Deep-Sleep Mode Clock Gating
+                                            // Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCPWM register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCPWM_D1       0x00000002  // PWM Module 1 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCPWM_D0       0x00000001  // PWM Module 0 Deep-Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCQEI register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCQEI_D1       0x00000002  // QEI Module 1 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCQEI_D0       0x00000001  // QEI Module 0 Deep-Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCEEPROM
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCEEPROM_D0    0x00000001  // EEPROM Module Deep-Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCWTIMER
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCWTIMER_D5    0x00000020  // 32/64-Bit Wide General-Purpose
+                                            // Timer 5 Deep-Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_DCGCWTIMER_D4    0x00000010  // 32/64-Bit Wide General-Purpose
+                                            // Timer 4 Deep-Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_DCGCWTIMER_D3    0x00000008  // 32/64-Bit Wide General-Purpose
+                                            // Timer 3 Deep-Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_DCGCWTIMER_D2    0x00000004  // 32/64-Bit Wide General-Purpose
+                                            // Timer 2 Deep-Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_DCGCWTIMER_D1    0x00000002  // 32/64-Bit Wide General-Purpose
+                                            // Timer 1 Deep-Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_DCGCWTIMER_D0    0x00000001  // 32/64-Bit Wide General-Purpose
+                                            // Timer 0 Deep-Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCCCM register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCCCM_D0       0x00000001  // CRC and Cryptographic Modules
+                                            // Deep-Sleep Mode Clock Gating
+                                            // Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCLCD register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCLCD_D0       0x00000001  // LCD Controller Module 0
+                                            // Deep-Sleep Mode Clock Gating
+                                            // Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCOWIRE
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCOWIRE_D0     0x00000001  // 1-Wire Module 0 Deep-Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCEMAC
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCEMAC_D0      0x00000001  // Ethernet MAC Module 0 Deep-Sleep
+                                            // Mode Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PCWD register.
+//
+//*****************************************************************************
+#define SYSCTL_PCWD_P1          0x00000002  // Watchdog Timer 1 Power Control
+#define SYSCTL_PCWD_P0          0x00000001  // Watchdog Timer 0 Power Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PCTIMER register.
+//
+//*****************************************************************************
+#define SYSCTL_PCTIMER_P7       0x00000080  // General-Purpose Timer 7 Power
+                                            // Control
+#define SYSCTL_PCTIMER_P6       0x00000040  // General-Purpose Timer 6 Power
+                                            // Control
+#define SYSCTL_PCTIMER_P5       0x00000020  // General-Purpose Timer 5 Power
+                                            // Control
+#define SYSCTL_PCTIMER_P4       0x00000010  // General-Purpose Timer 4 Power
+                                            // Control
+#define SYSCTL_PCTIMER_P3       0x00000008  // General-Purpose Timer 3 Power
+                                            // Control
+#define SYSCTL_PCTIMER_P2       0x00000004  // General-Purpose Timer 2 Power
+                                            // Control
+#define SYSCTL_PCTIMER_P1       0x00000002  // General-Purpose Timer 1 Power
+                                            // Control
+#define SYSCTL_PCTIMER_P0       0x00000001  // General-Purpose Timer 0 Power
+                                            // Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PCGPIO register.
+//
+//*****************************************************************************
+#define SYSCTL_PCGPIO_P17       0x00020000  // GPIO Port T Power Control
+#define SYSCTL_PCGPIO_P16       0x00010000  // GPIO Port S Power Control
+#define SYSCTL_PCGPIO_P15       0x00008000  // GPIO Port R Power Control
+#define SYSCTL_PCGPIO_P14       0x00004000  // GPIO Port Q Power Control
+#define SYSCTL_PCGPIO_P13       0x00002000  // GPIO Port P Power Control
+#define SYSCTL_PCGPIO_P12       0x00001000  // GPIO Port N Power Control
+#define SYSCTL_PCGPIO_P11       0x00000800  // GPIO Port M Power Control
+#define SYSCTL_PCGPIO_P10       0x00000400  // GPIO Port L Power Control
+#define SYSCTL_PCGPIO_P9        0x00000200  // GPIO Port K Power Control
+#define SYSCTL_PCGPIO_P8        0x00000100  // GPIO Port J Power Control
+#define SYSCTL_PCGPIO_P7        0x00000080  // GPIO Port H Power Control
+#define SYSCTL_PCGPIO_P6        0x00000040  // GPIO Port G Power Control
+#define SYSCTL_PCGPIO_P5        0x00000020  // GPIO Port F Power Control
+#define SYSCTL_PCGPIO_P4        0x00000010  // GPIO Port E Power Control
+#define SYSCTL_PCGPIO_P3        0x00000008  // GPIO Port D Power Control
+#define SYSCTL_PCGPIO_P2        0x00000004  // GPIO Port C Power Control
+#define SYSCTL_PCGPIO_P1        0x00000002  // GPIO Port B Power Control
+#define SYSCTL_PCGPIO_P0        0x00000001  // GPIO Port A Power Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PCDMA register.
+//
+//*****************************************************************************
+#define SYSCTL_PCDMA_P0         0x00000001  // uDMA Module Power Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PCEPI register.
+//
+//*****************************************************************************
+#define SYSCTL_PCEPI_P0         0x00000001  // EPI Module Power Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PCHIB register.
+//
+//*****************************************************************************
+#define SYSCTL_PCHIB_P0         0x00000001  // Hibernation Module Power Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PCUART register.
+//
+//*****************************************************************************
+#define SYSCTL_PCUART_P7        0x00000080  // UART Module 7 Power Control
+#define SYSCTL_PCUART_P6        0x00000040  // UART Module 6 Power Control
+#define SYSCTL_PCUART_P5        0x00000020  // UART Module 5 Power Control
+#define SYSCTL_PCUART_P4        0x00000010  // UART Module 4 Power Control
+#define SYSCTL_PCUART_P3        0x00000008  // UART Module 3 Power Control
+#define SYSCTL_PCUART_P2        0x00000004  // UART Module 2 Power Control
+#define SYSCTL_PCUART_P1        0x00000002  // UART Module 1 Power Control
+#define SYSCTL_PCUART_P0        0x00000001  // UART Module 0 Power Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PCSSI register.
+//
+//*****************************************************************************
+#define SYSCTL_PCSSI_P3         0x00000008  // SSI Module 3 Power Control
+#define SYSCTL_PCSSI_P2         0x00000004  // SSI Module 2 Power Control
+#define SYSCTL_PCSSI_P1         0x00000002  // SSI Module 1 Power Control
+#define SYSCTL_PCSSI_P0         0x00000001  // SSI Module 0 Power Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PCI2C register.
+//
+//*****************************************************************************
+#define SYSCTL_PCI2C_P9         0x00000200  // I2C Module 9 Power Control
+#define SYSCTL_PCI2C_P8         0x00000100  // I2C Module 8 Power Control
+#define SYSCTL_PCI2C_P7         0x00000080  // I2C Module 7 Power Control
+#define SYSCTL_PCI2C_P6         0x00000040  // I2C Module 6 Power Control
+#define SYSCTL_PCI2C_P5         0x00000020  // I2C Module 5 Power Control
+#define SYSCTL_PCI2C_P4         0x00000010  // I2C Module 4 Power Control
+#define SYSCTL_PCI2C_P3         0x00000008  // I2C Module 3 Power Control
+#define SYSCTL_PCI2C_P2         0x00000004  // I2C Module 2 Power Control
+#define SYSCTL_PCI2C_P1         0x00000002  // I2C Module 1 Power Control
+#define SYSCTL_PCI2C_P0         0x00000001  // I2C Module 0 Power Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PCUSB register.
+//
+//*****************************************************************************
+#define SYSCTL_PCUSB_P0         0x00000001  // USB Module Power Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PCEPHY register.
+//
+//*****************************************************************************
+#define SYSCTL_PCEPHY_P0        0x00000001  // Ethernet PHY Module Power
+                                            // Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PCCAN register.
+//
+//*****************************************************************************
+#define SYSCTL_PCCAN_P1         0x00000002  // CAN Module 1 Power Control
+#define SYSCTL_PCCAN_P0         0x00000001  // CAN Module 0 Power Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PCADC register.
+//
+//*****************************************************************************
+#define SYSCTL_PCADC_P1         0x00000002  // ADC Module 1 Power Control
+#define SYSCTL_PCADC_P0         0x00000001  // ADC Module 0 Power Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PCACMP register.
+//
+//*****************************************************************************
+#define SYSCTL_PCACMP_P0        0x00000001  // Analog Comparator Module 0 Power
+                                            // Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PCPWM register.
+//
+//*****************************************************************************
+#define SYSCTL_PCPWM_P0         0x00000001  // PWM Module 0 Power Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PCQEI register.
+//
+//*****************************************************************************
+#define SYSCTL_PCQEI_P0         0x00000001  // QEI Module 0 Power Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PCEEPROM
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_PCEEPROM_P0      0x00000001  // EEPROM Module 0 Power Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PCCCM register.
+//
+//*****************************************************************************
+#define SYSCTL_PCCCM_P0         0x00000001  // CRC and Cryptographic Modules
+                                            // Power Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PCLCD register.
+//
+//*****************************************************************************
+#define SYSCTL_PCLCD_P0         0x00000001  // LCD Controller Module 0 Power
+                                            // Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PCOWIRE register.
+//
+//*****************************************************************************
+#define SYSCTL_PCOWIRE_P0       0x00000001  // 1-Wire Module 0 Power Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PCEMAC register.
+//
+//*****************************************************************************
+#define SYSCTL_PCEMAC_P0        0x00000001  // Ethernet MAC Module 0 Power
+                                            // Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRWD register.
+//
+//*****************************************************************************
+#define SYSCTL_PRWD_R1          0x00000002  // Watchdog Timer 1 Peripheral
+                                            // Ready
+#define SYSCTL_PRWD_R0          0x00000001  // Watchdog Timer 0 Peripheral
+                                            // Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRTIMER register.
+//
+//*****************************************************************************
+#define SYSCTL_PRTIMER_R7       0x00000080  // 16/32-Bit General-Purpose Timer
+                                            // 7 Peripheral Ready
+#define SYSCTL_PRTIMER_R6       0x00000040  // 16/32-Bit General-Purpose Timer
+                                            // 6 Peripheral Ready
+#define SYSCTL_PRTIMER_R5       0x00000020  // 16/32-Bit General-Purpose Timer
+                                            // 5 Peripheral Ready
+#define SYSCTL_PRTIMER_R4       0x00000010  // 16/32-Bit General-Purpose Timer
+                                            // 4 Peripheral Ready
+#define SYSCTL_PRTIMER_R3       0x00000008  // 16/32-Bit General-Purpose Timer
+                                            // 3 Peripheral Ready
+#define SYSCTL_PRTIMER_R2       0x00000004  // 16/32-Bit General-Purpose Timer
+                                            // 2 Peripheral Ready
+#define SYSCTL_PRTIMER_R1       0x00000002  // 16/32-Bit General-Purpose Timer
+                                            // 1 Peripheral Ready
+#define SYSCTL_PRTIMER_R0       0x00000001  // 16/32-Bit General-Purpose Timer
+                                            // 0 Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRGPIO register.
+//
+//*****************************************************************************
+#define SYSCTL_PRGPIO_R17       0x00020000  // GPIO Port T Peripheral Ready
+#define SYSCTL_PRGPIO_R16       0x00010000  // GPIO Port S Peripheral Ready
+#define SYSCTL_PRGPIO_R15       0x00008000  // GPIO Port R Peripheral Ready
+#define SYSCTL_PRGPIO_R14       0x00004000  // GPIO Port Q Peripheral Ready
+#define SYSCTL_PRGPIO_R13       0x00002000  // GPIO Port P Peripheral Ready
+#define SYSCTL_PRGPIO_R12       0x00001000  // GPIO Port N Peripheral Ready
+#define SYSCTL_PRGPIO_R11       0x00000800  // GPIO Port M Peripheral Ready
+#define SYSCTL_PRGPIO_R10       0x00000400  // GPIO Port L Peripheral Ready
+#define SYSCTL_PRGPIO_R9        0x00000200  // GPIO Port K Peripheral Ready
+#define SYSCTL_PRGPIO_R8        0x00000100  // GPIO Port J Peripheral Ready
+#define SYSCTL_PRGPIO_R7        0x00000080  // GPIO Port H Peripheral Ready
+#define SYSCTL_PRGPIO_R6        0x00000040  // GPIO Port G Peripheral Ready
+#define SYSCTL_PRGPIO_R5        0x00000020  // GPIO Port F Peripheral Ready
+#define SYSCTL_PRGPIO_R4        0x00000010  // GPIO Port E Peripheral Ready
+#define SYSCTL_PRGPIO_R3        0x00000008  // GPIO Port D Peripheral Ready
+#define SYSCTL_PRGPIO_R2        0x00000004  // GPIO Port C Peripheral Ready
+#define SYSCTL_PRGPIO_R1        0x00000002  // GPIO Port B Peripheral Ready
+#define SYSCTL_PRGPIO_R0        0x00000001  // GPIO Port A Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRDMA register.
+//
+//*****************************************************************************
+#define SYSCTL_PRDMA_R0         0x00000001  // uDMA Module Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PREPI register.
+//
+//*****************************************************************************
+#define SYSCTL_PREPI_R0         0x00000001  // EPI Module Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRHIB register.
+//
+//*****************************************************************************
+#define SYSCTL_PRHIB_R0         0x00000001  // Hibernation Module Peripheral
+                                            // Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRUART register.
+//
+//*****************************************************************************
+#define SYSCTL_PRUART_R7        0x00000080  // UART Module 7 Peripheral Ready
+#define SYSCTL_PRUART_R6        0x00000040  // UART Module 6 Peripheral Ready
+#define SYSCTL_PRUART_R5        0x00000020  // UART Module 5 Peripheral Ready
+#define SYSCTL_PRUART_R4        0x00000010  // UART Module 4 Peripheral Ready
+#define SYSCTL_PRUART_R3        0x00000008  // UART Module 3 Peripheral Ready
+#define SYSCTL_PRUART_R2        0x00000004  // UART Module 2 Peripheral Ready
+#define SYSCTL_PRUART_R1        0x00000002  // UART Module 1 Peripheral Ready
+#define SYSCTL_PRUART_R0        0x00000001  // UART Module 0 Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRSSI register.
+//
+//*****************************************************************************
+#define SYSCTL_PRSSI_R3         0x00000008  // SSI Module 3 Peripheral Ready
+#define SYSCTL_PRSSI_R2         0x00000004  // SSI Module 2 Peripheral Ready
+#define SYSCTL_PRSSI_R1         0x00000002  // SSI Module 1 Peripheral Ready
+#define SYSCTL_PRSSI_R0         0x00000001  // SSI Module 0 Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRI2C register.
+//
+//*****************************************************************************
+#define SYSCTL_PRI2C_R9         0x00000200  // I2C Module 9 Peripheral Ready
+#define SYSCTL_PRI2C_R8         0x00000100  // I2C Module 8 Peripheral Ready
+#define SYSCTL_PRI2C_R7         0x00000080  // I2C Module 7 Peripheral Ready
+#define SYSCTL_PRI2C_R6         0x00000040  // I2C Module 6 Peripheral Ready
+#define SYSCTL_PRI2C_R5         0x00000020  // I2C Module 5 Peripheral Ready
+#define SYSCTL_PRI2C_R4         0x00000010  // I2C Module 4 Peripheral Ready
+#define SYSCTL_PRI2C_R3         0x00000008  // I2C Module 3 Peripheral Ready
+#define SYSCTL_PRI2C_R2         0x00000004  // I2C Module 2 Peripheral Ready
+#define SYSCTL_PRI2C_R1         0x00000002  // I2C Module 1 Peripheral Ready
+#define SYSCTL_PRI2C_R0         0x00000001  // I2C Module 0 Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRUSB register.
+//
+//*****************************************************************************
+#define SYSCTL_PRUSB_R0         0x00000001  // USB Module Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PREPHY register.
+//
+//*****************************************************************************
+#define SYSCTL_PREPHY_R0        0x00000001  // Ethernet PHY Module Peripheral
+                                            // Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRCAN register.
+//
+//*****************************************************************************
+#define SYSCTL_PRCAN_R1         0x00000002  // CAN Module 1 Peripheral Ready
+#define SYSCTL_PRCAN_R0         0x00000001  // CAN Module 0 Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRADC register.
+//
+//*****************************************************************************
+#define SYSCTL_PRADC_R1         0x00000002  // ADC Module 1 Peripheral Ready
+#define SYSCTL_PRADC_R0         0x00000001  // ADC Module 0 Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRACMP register.
+//
+//*****************************************************************************
+#define SYSCTL_PRACMP_R0        0x00000001  // Analog Comparator Module 0
+                                            // Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRPWM register.
+//
+//*****************************************************************************
+#define SYSCTL_PRPWM_R1         0x00000002  // PWM Module 1 Peripheral Ready
+#define SYSCTL_PRPWM_R0         0x00000001  // PWM Module 0 Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRQEI register.
+//
+//*****************************************************************************
+#define SYSCTL_PRQEI_R1         0x00000002  // QEI Module 1 Peripheral Ready
+#define SYSCTL_PRQEI_R0         0x00000001  // QEI Module 0 Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PREEPROM
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_PREEPROM_R0      0x00000001  // EEPROM Module Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRWTIMER
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_PRWTIMER_R5      0x00000020  // 32/64-Bit Wide General-Purpose
+                                            // Timer 5 Peripheral Ready
+#define SYSCTL_PRWTIMER_R4      0x00000010  // 32/64-Bit Wide General-Purpose
+                                            // Timer 4 Peripheral Ready
+#define SYSCTL_PRWTIMER_R3      0x00000008  // 32/64-Bit Wide General-Purpose
+                                            // Timer 3 Peripheral Ready
+#define SYSCTL_PRWTIMER_R2      0x00000004  // 32/64-Bit Wide General-Purpose
+                                            // Timer 2 Peripheral Ready
+#define SYSCTL_PRWTIMER_R1      0x00000002  // 32/64-Bit Wide General-Purpose
+                                            // Timer 1 Peripheral Ready
+#define SYSCTL_PRWTIMER_R0      0x00000001  // 32/64-Bit Wide General-Purpose
+                                            // Timer 0 Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRCCM register.
+//
+//*****************************************************************************
+#define SYSCTL_PRCCM_R0         0x00000001  // CRC and Cryptographic Modules
+                                            // Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRLCD register.
+//
+//*****************************************************************************
+#define SYSCTL_PRLCD_R0         0x00000001  // LCD Controller Module 0
+                                            // Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PROWIRE register.
+//
+//*****************************************************************************
+#define SYSCTL_PROWIRE_R0       0x00000001  // 1-Wire Module 0 Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PREMAC register.
+//
+//*****************************************************************************
+#define SYSCTL_PREMAC_R0        0x00000001  // Ethernet MAC Module 0 Peripheral
+                                            // Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_UNIQUEID0
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_UNIQUEID0_ID_M   0xFFFFFFFF  // Unique ID
+#define SYSCTL_UNIQUEID0_ID_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_UNIQUEID1
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_UNIQUEID1_ID_M   0xFFFFFFFF  // Unique ID
+#define SYSCTL_UNIQUEID1_ID_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_UNIQUEID2
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_UNIQUEID2_ID_M   0xFFFFFFFF  // Unique ID
+#define SYSCTL_UNIQUEID2_ID_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_UNIQUEID3
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_UNIQUEID3_ID_M   0xFFFFFFFF  // Unique ID
+#define SYSCTL_UNIQUEID3_ID_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_CCMCGREQ
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_CCMCGREQ_DESCFG  0x00000004  // DES Clock Gating Request
+#define SYSCTL_CCMCGREQ_AESCFG  0x00000002  // AES Clock Gating Request
+#define SYSCTL_CCMCGREQ_SHACFG  0x00000001  // SHA/MD5 Clock Gating Request
+
+//*****************************************************************************
+//
+// The following definitions are deprecated.
+//
+//*****************************************************************************
+#ifndef DEPRECATED
+
+//*****************************************************************************
+//
+// The following are deprecated defines for the bit fields in the SYSCTL_DID0
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_DID0_CLASS_BLIZZARD                                            \
+                                0x00050000  // Tiva(TM) C Series TM4C123-class
+                                            // microcontrollers
+#define SYSCTL_DID0_CLASS_SNOWFLAKE                                           \
+                                0x000A0000  // Tiva(TM) C Series TM4C129-class
+                                            // microcontrollers
+
+//*****************************************************************************
+//
+// The following are deprecated defines for the bit fields in the SYSCTL_RESC
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_RESC_HIB         0x00000040  // HIB Reset
+
+//*****************************************************************************
+//
+// The following are deprecated defines for the bit fields in the SYSCTL_PWRTC
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_PWRTC_VDDA_UBOR0 0x00000010  // VDDA Under BOR0 Status
+#define SYSCTL_PWRTC_VDD_UBOR0  0x00000001  // VDD Under BOR0 Status
+
+#endif
+
+#endif // __HW_SYSCTL_H__

+ 132 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_sysexc.h

@@ -0,0 +1,132 @@
+//*****************************************************************************
+//
+// hw_sysexc.h - Macros used when accessing the system exception module.
+//
+// Copyright (c) 2011-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Firmware Development Package.
+//
+//*****************************************************************************
+
+#ifndef __HW_SYSEXC_H__
+#define __HW_SYSEXC_H__
+
+//*****************************************************************************
+//
+// The following are defines for the System Exception Module register
+// addresses.
+//
+//*****************************************************************************
+#define SYSEXC_RIS              0x400F9000  // System Exception Raw Interrupt
+                                            // Status
+#define SYSEXC_IM               0x400F9004  // System Exception Interrupt Mask
+#define SYSEXC_MIS              0x400F9008  // System Exception Masked
+                                            // Interrupt Status
+#define SYSEXC_IC               0x400F900C  // System Exception Interrupt Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSEXC_RIS register.
+//
+//*****************************************************************************
+#define SYSEXC_RIS_FPIXCRIS     0x00000020  // Floating-Point Inexact Exception
+                                            // Raw Interrupt Status
+#define SYSEXC_RIS_FPOFCRIS     0x00000010  // Floating-Point Overflow
+                                            // Exception Raw Interrupt Status
+#define SYSEXC_RIS_FPUFCRIS     0x00000008  // Floating-Point Underflow
+                                            // Exception Raw Interrupt Status
+#define SYSEXC_RIS_FPIOCRIS     0x00000004  // Floating-Point Invalid Operation
+                                            // Raw Interrupt Status
+#define SYSEXC_RIS_FPDZCRIS     0x00000002  // Floating-Point Divide By 0
+                                            // Exception Raw Interrupt Status
+#define SYSEXC_RIS_FPIDCRIS     0x00000001  // Floating-Point Input Denormal
+                                            // Exception Raw Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSEXC_IM register.
+//
+//*****************************************************************************
+#define SYSEXC_IM_FPIXCIM       0x00000020  // Floating-Point Inexact Exception
+                                            // Interrupt Mask
+#define SYSEXC_IM_FPOFCIM       0x00000010  // Floating-Point Overflow
+                                            // Exception Interrupt Mask
+#define SYSEXC_IM_FPUFCIM       0x00000008  // Floating-Point Underflow
+                                            // Exception Interrupt Mask
+#define SYSEXC_IM_FPIOCIM       0x00000004  // Floating-Point Invalid Operation
+                                            // Interrupt Mask
+#define SYSEXC_IM_FPDZCIM       0x00000002  // Floating-Point Divide By 0
+                                            // Exception Interrupt Mask
+#define SYSEXC_IM_FPIDCIM       0x00000001  // Floating-Point Input Denormal
+                                            // Exception Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSEXC_MIS register.
+//
+//*****************************************************************************
+#define SYSEXC_MIS_FPIXCMIS     0x00000020  // Floating-Point Inexact Exception
+                                            // Masked Interrupt Status
+#define SYSEXC_MIS_FPOFCMIS     0x00000010  // Floating-Point Overflow
+                                            // Exception Masked Interrupt
+                                            // Status
+#define SYSEXC_MIS_FPUFCMIS     0x00000008  // Floating-Point Underflow
+                                            // Exception Masked Interrupt
+                                            // Status
+#define SYSEXC_MIS_FPIOCMIS     0x00000004  // Floating-Point Invalid Operation
+                                            // Masked Interrupt Status
+#define SYSEXC_MIS_FPDZCMIS     0x00000002  // Floating-Point Divide By 0
+                                            // Exception Masked Interrupt
+                                            // Status
+#define SYSEXC_MIS_FPIDCMIS     0x00000001  // Floating-Point Input Denormal
+                                            // Exception Masked Interrupt
+                                            // Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSEXC_IC register.
+//
+//*****************************************************************************
+#define SYSEXC_IC_FPIXCIC       0x00000020  // Floating-Point Inexact Exception
+                                            // Interrupt Clear
+#define SYSEXC_IC_FPOFCIC       0x00000010  // Floating-Point Overflow
+                                            // Exception Interrupt Clear
+#define SYSEXC_IC_FPUFCIC       0x00000008  // Floating-Point Underflow
+                                            // Exception Interrupt Clear
+#define SYSEXC_IC_FPIOCIC       0x00000004  // Floating-Point Invalid Operation
+                                            // Interrupt Clear
+#define SYSEXC_IC_FPDZCIC       0x00000002  // Floating-Point Divide By 0
+                                            // Exception Interrupt Clear
+#define SYSEXC_IC_FPIDCIC       0x00000001  // Floating-Point Input Denormal
+                                            // Exception Interrupt Clear
+
+#endif // __HW_SYSEXC_H__

+ 700 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_timer.h

@@ -0,0 +1,700 @@
+//*****************************************************************************
+//
+// hw_timer.h - Defines and macros used when accessing the timer.
+//
+// Copyright (c) 2005-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Firmware Development Package.
+//
+//*****************************************************************************
+
+#ifndef __HW_TIMER_H__
+#define __HW_TIMER_H__
+
+//*****************************************************************************
+//
+// The following are defines for the Timer register offsets.
+//
+//*****************************************************************************
+#define TIMER_O_CFG             0x00000000  // GPTM Configuration
+#define TIMER_O_TAMR            0x00000004  // GPTM Timer A Mode
+#define TIMER_O_TBMR            0x00000008  // GPTM Timer B Mode
+#define TIMER_O_CTL             0x0000000C  // GPTM Control
+#define TIMER_O_SYNC            0x00000010  // GPTM Synchronize
+#define TIMER_O_IMR             0x00000018  // GPTM Interrupt Mask
+#define TIMER_O_RIS             0x0000001C  // GPTM Raw Interrupt Status
+#define TIMER_O_MIS             0x00000020  // GPTM Masked Interrupt Status
+#define TIMER_O_ICR             0x00000024  // GPTM Interrupt Clear
+#define TIMER_O_TAILR           0x00000028  // GPTM Timer A Interval Load
+#define TIMER_O_TBILR           0x0000002C  // GPTM Timer B Interval Load
+#define TIMER_O_TAMATCHR        0x00000030  // GPTM Timer A Match
+#define TIMER_O_TBMATCHR        0x00000034  // GPTM Timer B Match
+#define TIMER_O_TAPR            0x00000038  // GPTM Timer A Prescale
+#define TIMER_O_TBPR            0x0000003C  // GPTM Timer B Prescale
+#define TIMER_O_TAPMR           0x00000040  // GPTM TimerA Prescale Match
+#define TIMER_O_TBPMR           0x00000044  // GPTM TimerB Prescale Match
+#define TIMER_O_TAR             0x00000048  // GPTM Timer A
+#define TIMER_O_TBR             0x0000004C  // GPTM Timer B
+#define TIMER_O_TAV             0x00000050  // GPTM Timer A Value
+#define TIMER_O_TBV             0x00000054  // GPTM Timer B Value
+#define TIMER_O_RTCPD           0x00000058  // GPTM RTC Predivide
+#define TIMER_O_TAPS            0x0000005C  // GPTM Timer A Prescale Snapshot
+#define TIMER_O_TBPS            0x00000060  // GPTM Timer B Prescale Snapshot
+#define TIMER_O_TAPV            0x00000064  // GPTM Timer A Prescale Value
+#define TIMER_O_TBPV            0x00000068  // GPTM Timer B Prescale Value
+#define TIMER_O_DMAEV           0x0000006C  // GPTM DMA Event
+#define TIMER_O_ADCEV           0x00000070  // GPTM ADC Event
+#define TIMER_O_PP              0x00000FC0  // GPTM Peripheral Properties
+#define TIMER_O_CC              0x00000FC8  // GPTM Clock Configuration
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_CFG register.
+//
+//*****************************************************************************
+#define TIMER_CFG_M             0x00000007  // GPTM Configuration
+#define TIMER_CFG_32_BIT_TIMER  0x00000000  // For a 16/32-bit timer, this
+                                            // value selects the 32-bit timer
+                                            // configuration
+#define TIMER_CFG_32_BIT_RTC    0x00000001  // For a 16/32-bit timer, this
+                                            // value selects the 32-bit
+                                            // real-time clock (RTC) counter
+                                            // configuration
+#define TIMER_CFG_16_BIT        0x00000004  // For a 16/32-bit timer, this
+                                            // value selects the 16-bit timer
+                                            // configuration
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TAMR register.
+//
+//*****************************************************************************
+#define TIMER_TAMR_TCACT_M      0x0000E000  // Timer Compare Action Select
+#define TIMER_TAMR_TCACT_NONE   0x00000000  // Disable compare operations
+#define TIMER_TAMR_TCACT_TOGGLE 0x00002000  // Toggle State on Time-Out
+#define TIMER_TAMR_TCACT_CLRTO  0x00004000  // Clear CCP on Time-Out
+#define TIMER_TAMR_TCACT_SETTO  0x00006000  // Set CCP on Time-Out
+#define TIMER_TAMR_TCACT_SETTOGTO                                             \
+                                0x00008000  // Set CCP immediately and toggle
+                                            // on Time-Out
+#define TIMER_TAMR_TCACT_CLRTOGTO                                             \
+                                0x0000A000  // Clear CCP immediately and toggle
+                                            // on Time-Out
+#define TIMER_TAMR_TCACT_SETCLRTO                                             \
+                                0x0000C000  // Set CCP immediately and clear on
+                                            // Time-Out
+#define TIMER_TAMR_TCACT_CLRSETTO                                             \
+                                0x0000E000  // Clear CCP immediately and set on
+                                            // Time-Out
+#define TIMER_TAMR_TACINTD      0x00001000  // One-shot/Periodic Interrupt
+                                            // Disable
+#define TIMER_TAMR_TAPLO        0x00000800  // GPTM Timer A PWM Legacy
+                                            // Operation
+#define TIMER_TAMR_TAMRSU       0x00000400  // GPTM Timer A Match Register
+                                            // Update
+#define TIMER_TAMR_TAPWMIE      0x00000200  // GPTM Timer A PWM Interrupt
+                                            // Enable
+#define TIMER_TAMR_TAILD        0x00000100  // GPTM Timer A Interval Load Write
+#define TIMER_TAMR_TASNAPS      0x00000080  // GPTM Timer A Snap-Shot Mode
+#define TIMER_TAMR_TAWOT        0x00000040  // GPTM Timer A Wait-on-Trigger
+#define TIMER_TAMR_TAMIE        0x00000020  // GPTM Timer A Match Interrupt
+                                            // Enable
+#define TIMER_TAMR_TACDIR       0x00000010  // GPTM Timer A Count Direction
+#define TIMER_TAMR_TAAMS        0x00000008  // GPTM Timer A Alternate Mode
+                                            // Select
+#define TIMER_TAMR_TACMR        0x00000004  // GPTM Timer A Capture Mode
+#define TIMER_TAMR_TAMR_M       0x00000003  // GPTM Timer A Mode
+#define TIMER_TAMR_TAMR_1_SHOT  0x00000001  // One-Shot Timer mode
+#define TIMER_TAMR_TAMR_PERIOD  0x00000002  // Periodic Timer mode
+#define TIMER_TAMR_TAMR_CAP     0x00000003  // Capture mode
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TBMR register.
+//
+//*****************************************************************************
+#define TIMER_TBMR_TCACT_M      0x0000E000  // Timer Compare Action Select
+#define TIMER_TBMR_TCACT_NONE   0x00000000  // Disable compare operations
+#define TIMER_TBMR_TCACT_TOGGLE 0x00002000  // Toggle State on Time-Out
+#define TIMER_TBMR_TCACT_CLRTO  0x00004000  // Clear CCP on Time-Out
+#define TIMER_TBMR_TCACT_SETTO  0x00006000  // Set CCP on Time-Out
+#define TIMER_TBMR_TCACT_SETTOGTO                                             \
+                                0x00008000  // Set CCP immediately and toggle
+                                            // on Time-Out
+#define TIMER_TBMR_TCACT_CLRTOGTO                                             \
+                                0x0000A000  // Clear CCP immediately and toggle
+                                            // on Time-Out
+#define TIMER_TBMR_TCACT_SETCLRTO                                             \
+                                0x0000C000  // Set CCP immediately and clear on
+                                            // Time-Out
+#define TIMER_TBMR_TCACT_CLRSETTO                                             \
+                                0x0000E000  // Clear CCP immediately and set on
+                                            // Time-Out
+#define TIMER_TBMR_TBCINTD      0x00001000  // One-Shot/Periodic Interrupt
+                                            // Disable
+#define TIMER_TBMR_TBPLO        0x00000800  // GPTM Timer B PWM Legacy
+                                            // Operation
+#define TIMER_TBMR_TBMRSU       0x00000400  // GPTM Timer B Match Register
+                                            // Update
+#define TIMER_TBMR_TBPWMIE      0x00000200  // GPTM Timer B PWM Interrupt
+                                            // Enable
+#define TIMER_TBMR_TBILD        0x00000100  // GPTM Timer B Interval Load Write
+#define TIMER_TBMR_TBSNAPS      0x00000080  // GPTM Timer B Snap-Shot Mode
+#define TIMER_TBMR_TBWOT        0x00000040  // GPTM Timer B Wait-on-Trigger
+#define TIMER_TBMR_TBMIE        0x00000020  // GPTM Timer B Match Interrupt
+                                            // Enable
+#define TIMER_TBMR_TBCDIR       0x00000010  // GPTM Timer B Count Direction
+#define TIMER_TBMR_TBAMS        0x00000008  // GPTM Timer B Alternate Mode
+                                            // Select
+#define TIMER_TBMR_TBCMR        0x00000004  // GPTM Timer B Capture Mode
+#define TIMER_TBMR_TBMR_M       0x00000003  // GPTM Timer B Mode
+#define TIMER_TBMR_TBMR_1_SHOT  0x00000001  // One-Shot Timer mode
+#define TIMER_TBMR_TBMR_PERIOD  0x00000002  // Periodic Timer mode
+#define TIMER_TBMR_TBMR_CAP     0x00000003  // Capture mode
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_CTL register.
+//
+//*****************************************************************************
+#define TIMER_CTL_TBPWML        0x00004000  // GPTM Timer B PWM Output Level
+#define TIMER_CTL_TBOTE         0x00002000  // GPTM Timer B Output Trigger
+                                            // Enable
+#define TIMER_CTL_TBEVENT_M     0x00000C00  // GPTM Timer B Event Mode
+#define TIMER_CTL_TBEVENT_POS   0x00000000  // Positive edge
+#define TIMER_CTL_TBEVENT_NEG   0x00000400  // Negative edge
+#define TIMER_CTL_TBEVENT_BOTH  0x00000C00  // Both edges
+#define TIMER_CTL_TBSTALL       0x00000200  // GPTM Timer B Stall Enable
+#define TIMER_CTL_TBEN          0x00000100  // GPTM Timer B Enable
+#define TIMER_CTL_TAPWML        0x00000040  // GPTM Timer A PWM Output Level
+#define TIMER_CTL_TAOTE         0x00000020  // GPTM Timer A Output Trigger
+                                            // Enable
+#define TIMER_CTL_RTCEN         0x00000010  // GPTM RTC Stall Enable
+#define TIMER_CTL_TAEVENT_M     0x0000000C  // GPTM Timer A Event Mode
+#define TIMER_CTL_TAEVENT_POS   0x00000000  // Positive edge
+#define TIMER_CTL_TAEVENT_NEG   0x00000004  // Negative edge
+#define TIMER_CTL_TAEVENT_BOTH  0x0000000C  // Both edges
+#define TIMER_CTL_TASTALL       0x00000002  // GPTM Timer A Stall Enable
+#define TIMER_CTL_TAEN          0x00000001  // GPTM Timer A Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_SYNC register.
+//
+//*****************************************************************************
+#define TIMER_SYNC_SYNCWT5_M    0x00C00000  // Synchronize GPTM 32/64-Bit Timer
+                                            // 5
+#define TIMER_SYNC_SYNCWT5_NONE 0x00000000  // GPTM 32/64-Bit Timer 5 is not
+                                            // affected
+#define TIMER_SYNC_SYNCWT5_TA   0x00400000  // A timeout event for Timer A of
+                                            // GPTM 32/64-Bit Timer 5 is
+                                            // triggered
+#define TIMER_SYNC_SYNCWT5_TB   0x00800000  // A timeout event for Timer B of
+                                            // GPTM 32/64-Bit Timer 5 is
+                                            // triggered
+#define TIMER_SYNC_SYNCWT5_TATB 0x00C00000  // A timeout event for both Timer A
+                                            // and Timer B of GPTM 32/64-Bit
+                                            // Timer 5 is triggered
+#define TIMER_SYNC_SYNCWT4_M    0x00300000  // Synchronize GPTM 32/64-Bit Timer
+                                            // 4
+#define TIMER_SYNC_SYNCWT4_NONE 0x00000000  // GPTM 32/64-Bit Timer 4 is not
+                                            // affected
+#define TIMER_SYNC_SYNCWT4_TA   0x00100000  // A timeout event for Timer A of
+                                            // GPTM 32/64-Bit Timer 4 is
+                                            // triggered
+#define TIMER_SYNC_SYNCWT4_TB   0x00200000  // A timeout event for Timer B of
+                                            // GPTM 32/64-Bit Timer 4 is
+                                            // triggered
+#define TIMER_SYNC_SYNCWT4_TATB 0x00300000  // A timeout event for both Timer A
+                                            // and Timer B of GPTM 32/64-Bit
+                                            // Timer 4 is triggered
+#define TIMER_SYNC_SYNCWT3_M    0x000C0000  // Synchronize GPTM 32/64-Bit Timer
+                                            // 3
+#define TIMER_SYNC_SYNCWT3_NONE 0x00000000  // GPTM 32/64-Bit Timer 3 is not
+                                            // affected
+#define TIMER_SYNC_SYNCWT3_TA   0x00040000  // A timeout event for Timer A of
+                                            // GPTM 32/64-Bit Timer 3 is
+                                            // triggered
+#define TIMER_SYNC_SYNCWT3_TB   0x00080000  // A timeout event for Timer B of
+                                            // GPTM 32/64-Bit Timer 3 is
+                                            // triggered
+#define TIMER_SYNC_SYNCWT3_TATB 0x000C0000  // A timeout event for both Timer A
+                                            // and Timer B of GPTM 32/64-Bit
+                                            // Timer 3 is triggered
+#define TIMER_SYNC_SYNCWT2_M    0x00030000  // Synchronize GPTM 32/64-Bit Timer
+                                            // 2
+#define TIMER_SYNC_SYNCWT2_NONE 0x00000000  // GPTM 32/64-Bit Timer 2 is not
+                                            // affected
+#define TIMER_SYNC_SYNCWT2_TA   0x00010000  // A timeout event for Timer A of
+                                            // GPTM 32/64-Bit Timer 2 is
+                                            // triggered
+#define TIMER_SYNC_SYNCWT2_TB   0x00020000  // A timeout event for Timer B of
+                                            // GPTM 32/64-Bit Timer 2 is
+                                            // triggered
+#define TIMER_SYNC_SYNCWT2_TATB 0x00030000  // A timeout event for both Timer A
+                                            // and Timer B of GPTM 32/64-Bit
+                                            // Timer 2 is triggered
+#define TIMER_SYNC_SYNCT7_M     0x0000C000  // Synchronize GPTM Timer 7
+#define TIMER_SYNC_SYNCT7_NONE  0x00000000  // GPT7 is not affected
+#define TIMER_SYNC_SYNCT7_TA    0x00004000  // A timeout event for Timer A of
+                                            // GPTM7 is triggered
+#define TIMER_SYNC_SYNCT7_TB    0x00008000  // A timeout event for Timer B of
+                                            // GPTM7 is triggered
+#define TIMER_SYNC_SYNCT7_TATB  0x0000C000  // A timeout event for both Timer A
+                                            // and Timer B of GPTM7 is
+                                            // triggered
+#define TIMER_SYNC_SYNCWT1_M    0x0000C000  // Synchronize GPTM 32/64-Bit Timer
+                                            // 1
+#define TIMER_SYNC_SYNCWT1_NONE 0x00000000  // GPTM 32/64-Bit Timer 1 is not
+                                            // affected
+#define TIMER_SYNC_SYNCWT1_TA   0x00004000  // A timeout event for Timer A of
+                                            // GPTM 32/64-Bit Timer 1 is
+                                            // triggered
+#define TIMER_SYNC_SYNCWT1_TB   0x00008000  // A timeout event for Timer B of
+                                            // GPTM 32/64-Bit Timer 1 is
+                                            // triggered
+#define TIMER_SYNC_SYNCWT1_TATB 0x0000C000  // A timeout event for both Timer A
+                                            // and Timer B of GPTM 32/64-Bit
+                                            // Timer 1 is triggered
+#define TIMER_SYNC_SYNCWT0_M    0x00003000  // Synchronize GPTM 32/64-Bit Timer
+                                            // 0
+#define TIMER_SYNC_SYNCWT0_NONE 0x00000000  // GPTM 32/64-Bit Timer 0 is not
+                                            // affected
+#define TIMER_SYNC_SYNCWT0_TA   0x00001000  // A timeout event for Timer A of
+                                            // GPTM 32/64-Bit Timer 0 is
+                                            // triggered
+#define TIMER_SYNC_SYNCWT0_TB   0x00002000  // A timeout event for Timer B of
+                                            // GPTM 32/64-Bit Timer 0 is
+                                            // triggered
+#define TIMER_SYNC_SYNCWT0_TATB 0x00003000  // A timeout event for both Timer A
+                                            // and Timer B of GPTM 32/64-Bit
+                                            // Timer 0 is triggered
+#define TIMER_SYNC_SYNCT6_M     0x00003000  // Synchronize GPTM Timer 6
+#define TIMER_SYNC_SYNCT6_NONE  0x00000000  // GPTM6 is not affected
+#define TIMER_SYNC_SYNCT6_TA    0x00001000  // A timeout event for Timer A of
+                                            // GPTM6 is triggered
+#define TIMER_SYNC_SYNCT6_TB    0x00002000  // A timeout event for Timer B of
+                                            // GPTM6 is triggered
+#define TIMER_SYNC_SYNCT6_TATB  0x00003000  // A timeout event for both Timer A
+                                            // and Timer B of GPTM6 is
+                                            // triggered
+#define TIMER_SYNC_SYNCT5_M     0x00000C00  // Synchronize GPTM Timer 5
+#define TIMER_SYNC_SYNCT5_NONE  0x00000000  // GPTM5 is not affected
+#define TIMER_SYNC_SYNCT5_TA    0x00000400  // A timeout event for Timer A of
+                                            // GPTM5 is triggered
+#define TIMER_SYNC_SYNCT5_TB    0x00000800  // A timeout event for Timer B of
+                                            // GPTM5 is triggered
+#define TIMER_SYNC_SYNCT5_TATB  0x00000C00  // A timeout event for both Timer A
+                                            // and Timer B of GPTM5 is
+                                            // triggered
+#define TIMER_SYNC_SYNCT4_M     0x00000300  // Synchronize GPTM Timer 4
+#define TIMER_SYNC_SYNCT4_NONE  0x00000000  // GPTM4 is not affected
+#define TIMER_SYNC_SYNCT4_TA    0x00000100  // A timeout event for Timer A of
+                                            // GPTM4 is triggered
+#define TIMER_SYNC_SYNCT4_TB    0x00000200  // A timeout event for Timer B of
+                                            // GPTM4 is triggered
+#define TIMER_SYNC_SYNCT4_TATB  0x00000300  // A timeout event for both Timer A
+                                            // and Timer B of GPTM4 is
+                                            // triggered
+#define TIMER_SYNC_SYNCT3_M     0x000000C0  // Synchronize GPTM Timer 3
+#define TIMER_SYNC_SYNCT3_NONE  0x00000000  // GPTM3 is not affected
+#define TIMER_SYNC_SYNCT3_TA    0x00000040  // A timeout event for Timer A of
+                                            // GPTM3 is triggered
+#define TIMER_SYNC_SYNCT3_TB    0x00000080  // A timeout event for Timer B of
+                                            // GPTM3 is triggered
+#define TIMER_SYNC_SYNCT3_TATB  0x000000C0  // A timeout event for both Timer A
+                                            // and Timer B of GPTM3 is
+                                            // triggered
+#define TIMER_SYNC_SYNCT2_M     0x00000030  // Synchronize GPTM Timer 2
+#define TIMER_SYNC_SYNCT2_NONE  0x00000000  // GPTM2 is not affected
+#define TIMER_SYNC_SYNCT2_TA    0x00000010  // A timeout event for Timer A of
+                                            // GPTM2 is triggered
+#define TIMER_SYNC_SYNCT2_TB    0x00000020  // A timeout event for Timer B of
+                                            // GPTM2 is triggered
+#define TIMER_SYNC_SYNCT2_TATB  0x00000030  // A timeout event for both Timer A
+                                            // and Timer B of GPTM2 is
+                                            // triggered
+#define TIMER_SYNC_SYNCT1_M     0x0000000C  // Synchronize GPTM Timer 1
+#define TIMER_SYNC_SYNCT1_NONE  0x00000000  // GPTM1 is not affected
+#define TIMER_SYNC_SYNCT1_TA    0x00000004  // A timeout event for Timer A of
+                                            // GPTM1 is triggered
+#define TIMER_SYNC_SYNCT1_TB    0x00000008  // A timeout event for Timer B of
+                                            // GPTM1 is triggered
+#define TIMER_SYNC_SYNCT1_TATB  0x0000000C  // A timeout event for both Timer A
+                                            // and Timer B of GPTM1 is
+                                            // triggered
+#define TIMER_SYNC_SYNCT0_M     0x00000003  // Synchronize GPTM Timer 0
+#define TIMER_SYNC_SYNCT0_NONE  0x00000000  // GPTM0 is not affected
+#define TIMER_SYNC_SYNCT0_TA    0x00000001  // A timeout event for Timer A of
+                                            // GPTM0 is triggered
+#define TIMER_SYNC_SYNCT0_TB    0x00000002  // A timeout event for Timer B of
+                                            // GPTM0 is triggered
+#define TIMER_SYNC_SYNCT0_TATB  0x00000003  // A timeout event for both Timer A
+                                            // and Timer B of GPTM0 is
+                                            // triggered
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_IMR register.
+//
+//*****************************************************************************
+#define TIMER_IMR_WUEIM         0x00010000  // 32/64-Bit Wide GPTM Write Update
+                                            // Error Interrupt Mask
+#define TIMER_IMR_DMABIM        0x00002000  // GPTM Timer B DMA Done Interrupt
+                                            // Mask
+#define TIMER_IMR_TBMIM         0x00000800  // GPTM Timer B Match Interrupt
+                                            // Mask
+#define TIMER_IMR_CBEIM         0x00000400  // GPTM Timer B Capture Mode Event
+                                            // Interrupt Mask
+#define TIMER_IMR_CBMIM         0x00000200  // GPTM Timer B Capture Mode Match
+                                            // Interrupt Mask
+#define TIMER_IMR_TBTOIM        0x00000100  // GPTM Timer B Time-Out Interrupt
+                                            // Mask
+#define TIMER_IMR_DMAAIM        0x00000020  // GPTM Timer A DMA Done Interrupt
+                                            // Mask
+#define TIMER_IMR_TAMIM         0x00000010  // GPTM Timer A Match Interrupt
+                                            // Mask
+#define TIMER_IMR_RTCIM         0x00000008  // GPTM RTC Interrupt Mask
+#define TIMER_IMR_CAEIM         0x00000004  // GPTM Timer A Capture Mode Event
+                                            // Interrupt Mask
+#define TIMER_IMR_CAMIM         0x00000002  // GPTM Timer A Capture Mode Match
+                                            // Interrupt Mask
+#define TIMER_IMR_TATOIM        0x00000001  // GPTM Timer A Time-Out Interrupt
+                                            // Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_RIS register.
+//
+//*****************************************************************************
+#define TIMER_RIS_WUERIS        0x00010000  // 32/64-Bit Wide GPTM Write Update
+                                            // Error Raw Interrupt Status
+#define TIMER_RIS_DMABRIS       0x00002000  // GPTM Timer B DMA Done Raw
+                                            // Interrupt Status
+#define TIMER_RIS_TBMRIS        0x00000800  // GPTM Timer B Match Raw Interrupt
+#define TIMER_RIS_CBERIS        0x00000400  // GPTM Timer B Capture Mode Event
+                                            // Raw Interrupt
+#define TIMER_RIS_CBMRIS        0x00000200  // GPTM Timer B Capture Mode Match
+                                            // Raw Interrupt
+#define TIMER_RIS_TBTORIS       0x00000100  // GPTM Timer B Time-Out Raw
+                                            // Interrupt
+#define TIMER_RIS_DMAARIS       0x00000020  // GPTM Timer A DMA Done Raw
+                                            // Interrupt Status
+#define TIMER_RIS_TAMRIS        0x00000010  // GPTM Timer A Match Raw Interrupt
+#define TIMER_RIS_RTCRIS        0x00000008  // GPTM RTC Raw Interrupt
+#define TIMER_RIS_CAERIS        0x00000004  // GPTM Timer A Capture Mode Event
+                                            // Raw Interrupt
+#define TIMER_RIS_CAMRIS        0x00000002  // GPTM Timer A Capture Mode Match
+                                            // Raw Interrupt
+#define TIMER_RIS_TATORIS       0x00000001  // GPTM Timer A Time-Out Raw
+                                            // Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_MIS register.
+//
+//*****************************************************************************
+#define TIMER_MIS_WUEMIS        0x00010000  // 32/64-Bit Wide GPTM Write Update
+                                            // Error Masked Interrupt Status
+#define TIMER_MIS_DMABMIS       0x00002000  // GPTM Timer B DMA Done Masked
+                                            // Interrupt
+#define TIMER_MIS_TBMMIS        0x00000800  // GPTM Timer B Match Masked
+                                            // Interrupt
+#define TIMER_MIS_CBEMIS        0x00000400  // GPTM Timer B Capture Mode Event
+                                            // Masked Interrupt
+#define TIMER_MIS_CBMMIS        0x00000200  // GPTM Timer B Capture Mode Match
+                                            // Masked Interrupt
+#define TIMER_MIS_TBTOMIS       0x00000100  // GPTM Timer B Time-Out Masked
+                                            // Interrupt
+#define TIMER_MIS_DMAAMIS       0x00000020  // GPTM Timer A DMA Done Masked
+                                            // Interrupt
+#define TIMER_MIS_TAMMIS        0x00000010  // GPTM Timer A Match Masked
+                                            // Interrupt
+#define TIMER_MIS_RTCMIS        0x00000008  // GPTM RTC Masked Interrupt
+#define TIMER_MIS_CAEMIS        0x00000004  // GPTM Timer A Capture Mode Event
+                                            // Masked Interrupt
+#define TIMER_MIS_CAMMIS        0x00000002  // GPTM Timer A Capture Mode Match
+                                            // Masked Interrupt
+#define TIMER_MIS_TATOMIS       0x00000001  // GPTM Timer A Time-Out Masked
+                                            // Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_ICR register.
+//
+//*****************************************************************************
+#define TIMER_ICR_WUECINT       0x00010000  // 32/64-Bit Wide GPTM Write Update
+                                            // Error Interrupt Clear
+#define TIMER_ICR_DMABINT       0x00002000  // GPTM Timer B DMA Done Interrupt
+                                            // Clear
+#define TIMER_ICR_TBMCINT       0x00000800  // GPTM Timer B Match Interrupt
+                                            // Clear
+#define TIMER_ICR_CBECINT       0x00000400  // GPTM Timer B Capture Mode Event
+                                            // Interrupt Clear
+#define TIMER_ICR_CBMCINT       0x00000200  // GPTM Timer B Capture Mode Match
+                                            // Interrupt Clear
+#define TIMER_ICR_TBTOCINT      0x00000100  // GPTM Timer B Time-Out Interrupt
+                                            // Clear
+#define TIMER_ICR_DMAAINT       0x00000020  // GPTM Timer A DMA Done Interrupt
+                                            // Clear
+#define TIMER_ICR_TAMCINT       0x00000010  // GPTM Timer A Match Interrupt
+                                            // Clear
+#define TIMER_ICR_RTCCINT       0x00000008  // GPTM RTC Interrupt Clear
+#define TIMER_ICR_CAECINT       0x00000004  // GPTM Timer A Capture Mode Event
+                                            // Interrupt Clear
+#define TIMER_ICR_CAMCINT       0x00000002  // GPTM Timer A Capture Mode Match
+                                            // Interrupt Clear
+#define TIMER_ICR_TATOCINT      0x00000001  // GPTM Timer A Time-Out Raw
+                                            // Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TAILR register.
+//
+//*****************************************************************************
+#define TIMER_TAILR_M           0xFFFFFFFF  // GPTM Timer A Interval Load
+                                            // Register
+#define TIMER_TAILR_S           0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TBILR register.
+//
+//*****************************************************************************
+#define TIMER_TBILR_M           0xFFFFFFFF  // GPTM Timer B Interval Load
+                                            // Register
+#define TIMER_TBILR_S           0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TAMATCHR
+// register.
+//
+//*****************************************************************************
+#define TIMER_TAMATCHR_TAMR_M   0xFFFFFFFF  // GPTM Timer A Match Register
+#define TIMER_TAMATCHR_TAMR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TBMATCHR
+// register.
+//
+//*****************************************************************************
+#define TIMER_TBMATCHR_TBMR_M   0xFFFFFFFF  // GPTM Timer B Match Register
+#define TIMER_TBMATCHR_TBMR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TAPR register.
+//
+//*****************************************************************************
+#define TIMER_TAPR_TAPSRH_M     0x0000FF00  // GPTM Timer A Prescale High Byte
+#define TIMER_TAPR_TAPSR_M      0x000000FF  // GPTM Timer A Prescale
+#define TIMER_TAPR_TAPSRH_S     8
+#define TIMER_TAPR_TAPSR_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TBPR register.
+//
+//*****************************************************************************
+#define TIMER_TBPR_TBPSRH_M     0x0000FF00  // GPTM Timer B Prescale High Byte
+#define TIMER_TBPR_TBPSR_M      0x000000FF  // GPTM Timer B Prescale
+#define TIMER_TBPR_TBPSRH_S     8
+#define TIMER_TBPR_TBPSR_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TAPMR register.
+//
+//*****************************************************************************
+#define TIMER_TAPMR_TAPSMRH_M   0x0000FF00  // GPTM Timer A Prescale Match High
+                                            // Byte
+#define TIMER_TAPMR_TAPSMR_M    0x000000FF  // GPTM TimerA Prescale Match
+#define TIMER_TAPMR_TAPSMRH_S   8
+#define TIMER_TAPMR_TAPSMR_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TBPMR register.
+//
+//*****************************************************************************
+#define TIMER_TBPMR_TBPSMRH_M   0x0000FF00  // GPTM Timer B Prescale Match High
+                                            // Byte
+#define TIMER_TBPMR_TBPSMR_M    0x000000FF  // GPTM TimerB Prescale Match
+#define TIMER_TBPMR_TBPSMRH_S   8
+#define TIMER_TBPMR_TBPSMR_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TAR register.
+//
+//*****************************************************************************
+#define TIMER_TAR_M             0xFFFFFFFF  // GPTM Timer A Register
+#define TIMER_TAR_S             0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TBR register.
+//
+//*****************************************************************************
+#define TIMER_TBR_M             0xFFFFFFFF  // GPTM Timer B Register
+#define TIMER_TBR_S             0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TAV register.
+//
+//*****************************************************************************
+#define TIMER_TAV_M             0xFFFFFFFF  // GPTM Timer A Value
+#define TIMER_TAV_S             0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TBV register.
+//
+//*****************************************************************************
+#define TIMER_TBV_M             0xFFFFFFFF  // GPTM Timer B Value
+#define TIMER_TBV_S             0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_RTCPD register.
+//
+//*****************************************************************************
+#define TIMER_RTCPD_RTCPD_M     0x0000FFFF  // RTC Predivide Counter Value
+#define TIMER_RTCPD_RTCPD_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TAPS register.
+//
+//*****************************************************************************
+#define TIMER_TAPS_PSS_M        0x0000FFFF  // GPTM Timer A Prescaler Snapshot
+#define TIMER_TAPS_PSS_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TBPS register.
+//
+//*****************************************************************************
+#define TIMER_TBPS_PSS_M        0x0000FFFF  // GPTM Timer A Prescaler Value
+#define TIMER_TBPS_PSS_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TAPV register.
+//
+//*****************************************************************************
+#define TIMER_TAPV_PSV_M        0x0000FFFF  // GPTM Timer A Prescaler Value
+#define TIMER_TAPV_PSV_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TBPV register.
+//
+//*****************************************************************************
+#define TIMER_TBPV_PSV_M        0x0000FFFF  // GPTM Timer B Prescaler Value
+#define TIMER_TBPV_PSV_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_DMAEV register.
+//
+//*****************************************************************************
+#define TIMER_DMAEV_TBMDMAEN    0x00000800  // GPTM B Mode Match Event DMA
+                                            // Trigger Enable
+#define TIMER_DMAEV_CBEDMAEN    0x00000400  // GPTM B Capture Event DMA Trigger
+                                            // Enable
+#define TIMER_DMAEV_CBMDMAEN    0x00000200  // GPTM B Capture Match Event DMA
+                                            // Trigger Enable
+#define TIMER_DMAEV_TBTODMAEN   0x00000100  // GPTM B Time-Out Event DMA
+                                            // Trigger Enable
+#define TIMER_DMAEV_TAMDMAEN    0x00000010  // GPTM A Mode Match Event DMA
+                                            // Trigger Enable
+#define TIMER_DMAEV_RTCDMAEN    0x00000008  // GPTM A RTC Match Event DMA
+                                            // Trigger Enable
+#define TIMER_DMAEV_CAEDMAEN    0x00000004  // GPTM A Capture Event DMA Trigger
+                                            // Enable
+#define TIMER_DMAEV_CAMDMAEN    0x00000002  // GPTM A Capture Match Event DMA
+                                            // Trigger Enable
+#define TIMER_DMAEV_TATODMAEN   0x00000001  // GPTM A Time-Out Event DMA
+                                            // Trigger Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_ADCEV register.
+//
+//*****************************************************************************
+#define TIMER_ADCEV_TBMADCEN    0x00000800  // GPTM B Mode Match Event ADC
+                                            // Trigger Enable
+#define TIMER_ADCEV_CBEADCEN    0x00000400  // GPTM B Capture Event ADC Trigger
+                                            // Enable
+#define TIMER_ADCEV_CBMADCEN    0x00000200  // GPTM B Capture Match Event ADC
+                                            // Trigger Enable
+#define TIMER_ADCEV_TBTOADCEN   0x00000100  // GPTM B Time-Out Event ADC
+                                            // Trigger Enable
+#define TIMER_ADCEV_TAMADCEN    0x00000010  // GPTM A Mode Match Event ADC
+                                            // Trigger Enable
+#define TIMER_ADCEV_RTCADCEN    0x00000008  // GPTM RTC Match Event ADC Trigger
+                                            // Enable
+#define TIMER_ADCEV_CAEADCEN    0x00000004  // GPTM A Capture Event ADC Trigger
+                                            // Enable
+#define TIMER_ADCEV_CAMADCEN    0x00000002  // GPTM A Capture Match Event ADC
+                                            // Trigger Enable
+#define TIMER_ADCEV_TATOADCEN   0x00000001  // GPTM A Time-Out Event ADC
+                                            // Trigger Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_PP register.
+//
+//*****************************************************************************
+#define TIMER_PP_ALTCLK         0x00000040  // Alternate Clock Source
+#define TIMER_PP_SYNCCNT        0x00000020  // Synchronize Start
+#define TIMER_PP_CHAIN          0x00000010  // Chain with Other Timers
+#define TIMER_PP_SIZE_M         0x0000000F  // Count Size
+#define TIMER_PP_SIZE_16        0x00000000  // Timer A and Timer B counters are
+                                            // 16 bits each with an 8-bit
+                                            // prescale counter
+#define TIMER_PP_SIZE_32        0x00000001  // Timer A and Timer B counters are
+                                            // 32 bits each with a 16-bit
+                                            // prescale counter
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_CC register.
+//
+//*****************************************************************************
+#define TIMER_CC_ALTCLK         0x00000001  // Alternate Clock Source
+
+#endif // __HW_TIMER_H__

+ 147 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_types.h

@@ -0,0 +1,147 @@
+//*****************************************************************************
+//
+// hw_types.h - Common types and macros.
+//
+// Copyright (c) 2005-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Firmware Development Package.
+//
+//*****************************************************************************
+
+#ifndef __HW_TYPES_H__
+#define __HW_TYPES_H__
+
+//*****************************************************************************
+//
+// Macros for hardware access, both direct and via the bit-band region.
+//
+//*****************************************************************************
+#define HWREG(x)                                                              \
+        (*((volatile uint32_t *)(x)))
+#define HWREGH(x)                                                             \
+        (*((volatile uint16_t *)(x)))
+#define HWREGB(x)                                                             \
+        (*((volatile uint8_t *)(x)))
+#define HWREGBITW(x, b)                                                       \
+        HWREG(((uint32_t)(x) & 0xF0000000) | 0x02000000 |                     \
+              (((uint32_t)(x) & 0x000FFFFF) << 5) | ((b) << 2))
+#define HWREGBITH(x, b)                                                       \
+        HWREGH(((uint32_t)(x) & 0xF0000000) | 0x02000000 |                    \
+               (((uint32_t)(x) & 0x000FFFFF) << 5) | ((b) << 2))
+#define HWREGBITB(x, b)                                                       \
+        HWREGB(((uint32_t)(x) & 0xF0000000) | 0x02000000 |                    \
+               (((uint32_t)(x) & 0x000FFFFF) << 5) | ((b) << 2))
+
+//*****************************************************************************
+//
+// Helper Macros for determining silicon revisions, etc.
+//
+// These macros will be used by Driverlib at "run-time" to create necessary
+// conditional code blocks that will allow a single version of the Driverlib
+// "binary" code to support multiple(all) Tiva silicon revisions.
+//
+// It is expected that these macros will be used inside of a standard 'C'
+// conditional block of code, e.g.
+//
+//     if(CLASS_IS_TM4C123)
+//     {
+//         do some TM4C123-class specific code here.
+//     }
+//
+// By default, these macros will be defined as run-time checks of the
+// appropriate register(s) to allow creation of run-time conditional code
+// blocks for a common DriverLib across the entire Tiva family.
+//
+// However, if code-space optimization is required, these macros can be "hard-
+// coded" for a specific version of Tiva silicon.  Many compilers will then
+// detect the "hard-coded" conditionals, and appropriately optimize the code
+// blocks, eliminating any "unreachable" code.  This would result in a smaller
+// Driverlib, thus producing a smaller final application size, but at the cost
+// of limiting the Driverlib binary to a specific Tiva silicon revision.
+//
+//*****************************************************************************
+#ifndef CLASS_IS_TM4C123
+#define CLASS_IS_TM4C123                                                     \
+        ((HWREG(SYSCTL_DID0) & (SYSCTL_DID0_VER_M | SYSCTL_DID0_CLASS_M)) == \
+         (SYSCTL_DID0_VER_1 | SYSCTL_DID0_CLASS_TM4C123))
+#endif
+
+#ifndef CLASS_IS_TM4C129
+#define CLASS_IS_TM4C129                                                     \
+        ((HWREG(SYSCTL_DID0) & (SYSCTL_DID0_VER_M | SYSCTL_DID0_CLASS_M)) == \
+         (SYSCTL_DID0_VER_1 | SYSCTL_DID0_CLASS_TM4C129))
+#endif
+
+#ifndef REVISION_IS_A0
+#define REVISION_IS_A0                                                     \
+        ((HWREG(SYSCTL_DID0) & (SYSCTL_DID0_MAJ_M | SYSCTL_DID0_MIN_M)) == \
+         (SYSCTL_DID0_MAJ_REVA | SYSCTL_DID0_MIN_0))
+#endif
+
+#ifndef REVISION_IS_A1
+#define REVISION_IS_A1                                                     \
+        ((HWREG(SYSCTL_DID0) & (SYSCTL_DID0_MAJ_M | SYSCTL_DID0_MIN_M)) == \
+         (SYSCTL_DID0_MAJ_REVA | SYSCTL_DID0_MIN_0))
+#endif
+
+#ifndef REVISION_IS_A2
+#define REVISION_IS_A2                                                     \
+        ((HWREG(SYSCTL_DID0) & (SYSCTL_DID0_MAJ_M | SYSCTL_DID0_MIN_M)) == \
+         (SYSCTL_DID0_MAJ_REVA | SYSCTL_DID0_MIN_2))
+#endif
+
+#ifndef REVISION_IS_B0
+#define REVISION_IS_B0                                                     \
+        ((HWREG(SYSCTL_DID0) & (SYSCTL_DID0_MAJ_M | SYSCTL_DID0_MIN_M)) == \
+         (SYSCTL_DID0_MAJ_REVB | SYSCTL_DID0_MIN_0))
+#endif
+
+#ifndef REVISION_IS_B1
+#define REVISION_IS_B1                                                     \
+        ((HWREG(SYSCTL_DID0) & (SYSCTL_DID0_MAJ_M | SYSCTL_DID0_MIN_M)) == \
+         (SYSCTL_DID0_MAJ_REVB | SYSCTL_DID0_MIN_1))
+#endif
+
+//*****************************************************************************
+//
+// For TivaWare 2.1, we removed all references to Tiva IC codenames from the
+// source.  To ensure that existing customer code doesn't break as a result
+// of this change, make sure that the old definitions are still available at
+// least for the time being.
+//
+//*****************************************************************************
+#ifndef DEPRECATED
+#define CLASS_IS_BLIZZARD CLASS_IS_TM4C123
+#define CLASS_IS_SNOWFLAKE CLASS_IS_TM4C123
+#endif
+
+#endif // __HW_TYPES_H__

+ 367 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_uart.h

@@ -0,0 +1,367 @@
+//*****************************************************************************
+//
+// hw_uart.h - Macros and defines used when accessing the UART hardware.
+//
+// Copyright (c) 2005-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Firmware Development Package.
+//
+//*****************************************************************************
+
+#ifndef __HW_UART_H__
+#define __HW_UART_H__
+
+//*****************************************************************************
+//
+// The following are defines for the UART register offsets.
+//
+//*****************************************************************************
+#define UART_O_DR               0x00000000  // UART Data
+#define UART_O_RSR              0x00000004  // UART Receive Status/Error Clear
+#define UART_O_ECR              0x00000004  // UART Receive Status/Error Clear
+#define UART_O_FR               0x00000018  // UART Flag
+#define UART_O_ILPR             0x00000020  // UART IrDA Low-Power Register
+#define UART_O_IBRD             0x00000024  // UART Integer Baud-Rate Divisor
+#define UART_O_FBRD             0x00000028  // UART Fractional Baud-Rate
+                                            // Divisor
+#define UART_O_LCRH             0x0000002C  // UART Line Control
+#define UART_O_CTL              0x00000030  // UART Control
+#define UART_O_IFLS             0x00000034  // UART Interrupt FIFO Level Select
+#define UART_O_IM               0x00000038  // UART Interrupt Mask
+#define UART_O_RIS              0x0000003C  // UART Raw Interrupt Status
+#define UART_O_MIS              0x00000040  // UART Masked Interrupt Status
+#define UART_O_ICR              0x00000044  // UART Interrupt Clear
+#define UART_O_DMACTL           0x00000048  // UART DMA Control
+#define UART_O_9BITADDR         0x000000A4  // UART 9-Bit Self Address
+#define UART_O_9BITAMASK        0x000000A8  // UART 9-Bit Self Address Mask
+#define UART_O_PP               0x00000FC0  // UART Peripheral Properties
+#define UART_O_CC               0x00000FC8  // UART Clock Configuration
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_DR register.
+//
+//*****************************************************************************
+#define UART_DR_OE              0x00000800  // UART Overrun Error
+#define UART_DR_BE              0x00000400  // UART Break Error
+#define UART_DR_PE              0x00000200  // UART Parity Error
+#define UART_DR_FE              0x00000100  // UART Framing Error
+#define UART_DR_DATA_M          0x000000FF  // Data Transmitted or Received
+#define UART_DR_DATA_S          0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_RSR register.
+//
+//*****************************************************************************
+#define UART_RSR_OE             0x00000008  // UART Overrun Error
+#define UART_RSR_BE             0x00000004  // UART Break Error
+#define UART_RSR_PE             0x00000002  // UART Parity Error
+#define UART_RSR_FE             0x00000001  // UART Framing Error
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_ECR register.
+//
+//*****************************************************************************
+#define UART_ECR_DATA_M         0x000000FF  // Error Clear
+#define UART_ECR_DATA_S         0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_FR register.
+//
+//*****************************************************************************
+#define UART_FR_RI              0x00000100  // Ring Indicator
+#define UART_FR_TXFE            0x00000080  // UART Transmit FIFO Empty
+#define UART_FR_RXFF            0x00000040  // UART Receive FIFO Full
+#define UART_FR_TXFF            0x00000020  // UART Transmit FIFO Full
+#define UART_FR_RXFE            0x00000010  // UART Receive FIFO Empty
+#define UART_FR_BUSY            0x00000008  // UART Busy
+#define UART_FR_DCD             0x00000004  // Data Carrier Detect
+#define UART_FR_DSR             0x00000002  // Data Set Ready
+#define UART_FR_CTS             0x00000001  // Clear To Send
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_ILPR register.
+//
+//*****************************************************************************
+#define UART_ILPR_ILPDVSR_M     0x000000FF  // IrDA Low-Power Divisor
+#define UART_ILPR_ILPDVSR_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_IBRD register.
+//
+//*****************************************************************************
+#define UART_IBRD_DIVINT_M      0x0000FFFF  // Integer Baud-Rate Divisor
+#define UART_IBRD_DIVINT_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_FBRD register.
+//
+//*****************************************************************************
+#define UART_FBRD_DIVFRAC_M     0x0000003F  // Fractional Baud-Rate Divisor
+#define UART_FBRD_DIVFRAC_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_LCRH register.
+//
+//*****************************************************************************
+#define UART_LCRH_SPS           0x00000080  // UART Stick Parity Select
+#define UART_LCRH_WLEN_M        0x00000060  // UART Word Length
+#define UART_LCRH_WLEN_5        0x00000000  // 5 bits (default)
+#define UART_LCRH_WLEN_6        0x00000020  // 6 bits
+#define UART_LCRH_WLEN_7        0x00000040  // 7 bits
+#define UART_LCRH_WLEN_8        0x00000060  // 8 bits
+#define UART_LCRH_FEN           0x00000010  // UART Enable FIFOs
+#define UART_LCRH_STP2          0x00000008  // UART Two Stop Bits Select
+#define UART_LCRH_EPS           0x00000004  // UART Even Parity Select
+#define UART_LCRH_PEN           0x00000002  // UART Parity Enable
+#define UART_LCRH_BRK           0x00000001  // UART Send Break
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_CTL register.
+//
+//*****************************************************************************
+#define UART_CTL_CTSEN          0x00008000  // Enable Clear To Send
+#define UART_CTL_RTSEN          0x00004000  // Enable Request to Send
+#define UART_CTL_RTS            0x00000800  // Request to Send
+#define UART_CTL_DTR            0x00000400  // Data Terminal Ready
+#define UART_CTL_RXE            0x00000200  // UART Receive Enable
+#define UART_CTL_TXE            0x00000100  // UART Transmit Enable
+#define UART_CTL_LBE            0x00000080  // UART Loop Back Enable
+#define UART_CTL_HSE            0x00000020  // High-Speed Enable
+#define UART_CTL_EOT            0x00000010  // End of Transmission
+#define UART_CTL_SMART          0x00000008  // ISO 7816 Smart Card Support
+#define UART_CTL_SIRLP          0x00000004  // UART SIR Low-Power Mode
+#define UART_CTL_SIREN          0x00000002  // UART SIR Enable
+#define UART_CTL_UARTEN         0x00000001  // UART Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_IFLS register.
+//
+//*****************************************************************************
+#define UART_IFLS_RX_M          0x00000038  // UART Receive Interrupt FIFO
+                                            // Level Select
+#define UART_IFLS_RX1_8         0x00000000  // RX FIFO >= 1/8 full
+#define UART_IFLS_RX2_8         0x00000008  // RX FIFO >= 1/4 full
+#define UART_IFLS_RX4_8         0x00000010  // RX FIFO >= 1/2 full (default)
+#define UART_IFLS_RX6_8         0x00000018  // RX FIFO >= 3/4 full
+#define UART_IFLS_RX7_8         0x00000020  // RX FIFO >= 7/8 full
+#define UART_IFLS_TX_M          0x00000007  // UART Transmit Interrupt FIFO
+                                            // Level Select
+#define UART_IFLS_TX1_8         0x00000000  // TX FIFO <= 1/8 full
+#define UART_IFLS_TX2_8         0x00000001  // TX FIFO <= 1/4 full
+#define UART_IFLS_TX4_8         0x00000002  // TX FIFO <= 1/2 full (default)
+#define UART_IFLS_TX6_8         0x00000003  // TX FIFO <= 3/4 full
+#define UART_IFLS_TX7_8         0x00000004  // TX FIFO <= 7/8 full
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_IM register.
+//
+//*****************************************************************************
+#define UART_IM_DMATXIM         0x00020000  // Transmit DMA Interrupt Mask
+#define UART_IM_DMARXIM         0x00010000  // Receive DMA Interrupt Mask
+#define UART_IM_9BITIM          0x00001000  // 9-Bit Mode Interrupt Mask
+#define UART_IM_EOTIM           0x00000800  // End of Transmission Interrupt
+                                            // Mask
+#define UART_IM_OEIM            0x00000400  // UART Overrun Error Interrupt
+                                            // Mask
+#define UART_IM_BEIM            0x00000200  // UART Break Error Interrupt Mask
+#define UART_IM_PEIM            0x00000100  // UART Parity Error Interrupt Mask
+#define UART_IM_FEIM            0x00000080  // UART Framing Error Interrupt
+                                            // Mask
+#define UART_IM_RTIM            0x00000040  // UART Receive Time-Out Interrupt
+                                            // Mask
+#define UART_IM_TXIM            0x00000020  // UART Transmit Interrupt Mask
+#define UART_IM_RXIM            0x00000010  // UART Receive Interrupt Mask
+#define UART_IM_DSRMIM          0x00000008  // UART Data Set Ready Modem
+                                            // Interrupt Mask
+#define UART_IM_DCDMIM          0x00000004  // UART Data Carrier Detect Modem
+                                            // Interrupt Mask
+#define UART_IM_CTSMIM          0x00000002  // UART Clear to Send Modem
+                                            // Interrupt Mask
+#define UART_IM_RIMIM           0x00000001  // UART Ring Indicator Modem
+                                            // Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_RIS register.
+//
+//*****************************************************************************
+#define UART_RIS_DMATXRIS       0x00020000  // Transmit DMA Raw Interrupt
+                                            // Status
+#define UART_RIS_DMARXRIS       0x00010000  // Receive DMA Raw Interrupt Status
+#define UART_RIS_9BITRIS        0x00001000  // 9-Bit Mode Raw Interrupt Status
+#define UART_RIS_EOTRIS         0x00000800  // End of Transmission Raw
+                                            // Interrupt Status
+#define UART_RIS_OERIS          0x00000400  // UART Overrun Error Raw Interrupt
+                                            // Status
+#define UART_RIS_BERIS          0x00000200  // UART Break Error Raw Interrupt
+                                            // Status
+#define UART_RIS_PERIS          0x00000100  // UART Parity Error Raw Interrupt
+                                            // Status
+#define UART_RIS_FERIS          0x00000080  // UART Framing Error Raw Interrupt
+                                            // Status
+#define UART_RIS_RTRIS          0x00000040  // UART Receive Time-Out Raw
+                                            // Interrupt Status
+#define UART_RIS_TXRIS          0x00000020  // UART Transmit Raw Interrupt
+                                            // Status
+#define UART_RIS_RXRIS          0x00000010  // UART Receive Raw Interrupt
+                                            // Status
+#define UART_RIS_DSRRIS         0x00000008  // UART Data Set Ready Modem Raw
+                                            // Interrupt Status
+#define UART_RIS_DCDRIS         0x00000004  // UART Data Carrier Detect Modem
+                                            // Raw Interrupt Status
+#define UART_RIS_CTSRIS         0x00000002  // UART Clear to Send Modem Raw
+                                            // Interrupt Status
+#define UART_RIS_RIRIS          0x00000001  // UART Ring Indicator Modem Raw
+                                            // Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_MIS register.
+//
+//*****************************************************************************
+#define UART_MIS_DMATXMIS       0x00020000  // Transmit DMA Masked Interrupt
+                                            // Status
+#define UART_MIS_DMARXMIS       0x00010000  // Receive DMA Masked Interrupt
+                                            // Status
+#define UART_MIS_9BITMIS        0x00001000  // 9-Bit Mode Masked Interrupt
+                                            // Status
+#define UART_MIS_EOTMIS         0x00000800  // End of Transmission Masked
+                                            // Interrupt Status
+#define UART_MIS_OEMIS          0x00000400  // UART Overrun Error Masked
+                                            // Interrupt Status
+#define UART_MIS_BEMIS          0x00000200  // UART Break Error Masked
+                                            // Interrupt Status
+#define UART_MIS_PEMIS          0x00000100  // UART Parity Error Masked
+                                            // Interrupt Status
+#define UART_MIS_FEMIS          0x00000080  // UART Framing Error Masked
+                                            // Interrupt Status
+#define UART_MIS_RTMIS          0x00000040  // UART Receive Time-Out Masked
+                                            // Interrupt Status
+#define UART_MIS_TXMIS          0x00000020  // UART Transmit Masked Interrupt
+                                            // Status
+#define UART_MIS_RXMIS          0x00000010  // UART Receive Masked Interrupt
+                                            // Status
+#define UART_MIS_DSRMIS         0x00000008  // UART Data Set Ready Modem Masked
+                                            // Interrupt Status
+#define UART_MIS_DCDMIS         0x00000004  // UART Data Carrier Detect Modem
+                                            // Masked Interrupt Status
+#define UART_MIS_CTSMIS         0x00000002  // UART Clear to Send Modem Masked
+                                            // Interrupt Status
+#define UART_MIS_RIMIS          0x00000001  // UART Ring Indicator Modem Masked
+                                            // Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_ICR register.
+//
+//*****************************************************************************
+#define UART_ICR_DMATXIC        0x00020000  // Transmit DMA Interrupt Clear
+#define UART_ICR_DMARXIC        0x00010000  // Receive DMA Interrupt Clear
+#define UART_ICR_9BITIC         0x00001000  // 9-Bit Mode Interrupt Clear
+#define UART_ICR_EOTIC          0x00000800  // End of Transmission Interrupt
+                                            // Clear
+#define UART_ICR_OEIC           0x00000400  // Overrun Error Interrupt Clear
+#define UART_ICR_BEIC           0x00000200  // Break Error Interrupt Clear
+#define UART_ICR_PEIC           0x00000100  // Parity Error Interrupt Clear
+#define UART_ICR_FEIC           0x00000080  // Framing Error Interrupt Clear
+#define UART_ICR_RTIC           0x00000040  // Receive Time-Out Interrupt Clear
+#define UART_ICR_TXIC           0x00000020  // Transmit Interrupt Clear
+#define UART_ICR_RXIC           0x00000010  // Receive Interrupt Clear
+#define UART_ICR_DSRMIC         0x00000008  // UART Data Set Ready Modem
+                                            // Interrupt Clear
+#define UART_ICR_DCDMIC         0x00000004  // UART Data Carrier Detect Modem
+                                            // Interrupt Clear
+#define UART_ICR_CTSMIC         0x00000002  // UART Clear to Send Modem
+                                            // Interrupt Clear
+#define UART_ICR_RIMIC          0x00000001  // UART Ring Indicator Modem
+                                            // Interrupt Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_DMACTL register.
+//
+//*****************************************************************************
+#define UART_DMACTL_DMAERR      0x00000004  // DMA on Error
+#define UART_DMACTL_TXDMAE      0x00000002  // Transmit DMA Enable
+#define UART_DMACTL_RXDMAE      0x00000001  // Receive DMA Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_9BITADDR
+// register.
+//
+//*****************************************************************************
+#define UART_9BITADDR_9BITEN    0x00008000  // Enable 9-Bit Mode
+#define UART_9BITADDR_ADDR_M    0x000000FF  // Self Address for 9-Bit Mode
+#define UART_9BITADDR_ADDR_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_9BITAMASK
+// register.
+//
+//*****************************************************************************
+#define UART_9BITAMASK_MASK_M   0x000000FF  // Self Address Mask for 9-Bit Mode
+#define UART_9BITAMASK_MASK_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_PP register.
+//
+//*****************************************************************************
+#define UART_PP_MSE             0x00000008  // Modem Support Extended
+#define UART_PP_MS              0x00000004  // Modem Support
+#define UART_PP_NB              0x00000002  // 9-Bit Support
+#define UART_PP_SC              0x00000001  // Smart Card Support
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_CC register.
+//
+//*****************************************************************************
+#define UART_CC_CS_M            0x0000000F  // UART Baud Clock Source
+#define UART_CC_CS_SYSCLK       0x00000000  // System clock (based on clock
+                                            // source and divisor factor)
+#define UART_CC_CS_PIOSC        0x00000005  // PIOSC
+
+#endif // __HW_UART_H__

+ 414 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_udma.h

@@ -0,0 +1,414 @@
+//*****************************************************************************
+//
+// hw_udma.h - Macros for use in accessing the UDMA registers.
+//
+// Copyright (c) 2007-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Firmware Development Package.
+//
+//*****************************************************************************
+
+#ifndef __HW_UDMA_H__
+#define __HW_UDMA_H__
+
+//*****************************************************************************
+//
+// The following are defines for the Micro Direct Memory Access register
+// addresses.
+//
+//*****************************************************************************
+#define UDMA_STAT               0x400FF000  // DMA Status
+#define UDMA_CFG                0x400FF004  // DMA Configuration
+#define UDMA_CTLBASE            0x400FF008  // DMA Channel Control Base Pointer
+#define UDMA_ALTBASE            0x400FF00C  // DMA Alternate Channel Control
+                                            // Base Pointer
+#define UDMA_WAITSTAT           0x400FF010  // DMA Channel Wait-on-Request
+                                            // Status
+#define UDMA_SWREQ              0x400FF014  // DMA Channel Software Request
+#define UDMA_USEBURSTSET        0x400FF018  // DMA Channel Useburst Set
+#define UDMA_USEBURSTCLR        0x400FF01C  // DMA Channel Useburst Clear
+#define UDMA_REQMASKSET         0x400FF020  // DMA Channel Request Mask Set
+#define UDMA_REQMASKCLR         0x400FF024  // DMA Channel Request Mask Clear
+#define UDMA_ENASET             0x400FF028  // DMA Channel Enable Set
+#define UDMA_ENACLR             0x400FF02C  // DMA Channel Enable Clear
+#define UDMA_ALTSET             0x400FF030  // DMA Channel Primary Alternate
+                                            // Set
+#define UDMA_ALTCLR             0x400FF034  // DMA Channel Primary Alternate
+                                            // Clear
+#define UDMA_PRIOSET            0x400FF038  // DMA Channel Priority Set
+#define UDMA_PRIOCLR            0x400FF03C  // DMA Channel Priority Clear
+#define UDMA_ERRCLR             0x400FF04C  // DMA Bus Error Clear
+#define UDMA_CHASGN             0x400FF500  // DMA Channel Assignment
+#define UDMA_CHIS               0x400FF504  // DMA Channel Interrupt Status
+#define UDMA_CHMAP0             0x400FF510  // DMA Channel Map Select 0
+#define UDMA_CHMAP1             0x400FF514  // DMA Channel Map Select 1
+#define UDMA_CHMAP2             0x400FF518  // DMA Channel Map Select 2
+#define UDMA_CHMAP3             0x400FF51C  // DMA Channel Map Select 3
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_STAT register.
+//
+//*****************************************************************************
+#define UDMA_STAT_DMACHANS_M    0x001F0000  // Available uDMA Channels Minus 1
+#define UDMA_STAT_STATE_M       0x000000F0  // Control State Machine Status
+#define UDMA_STAT_STATE_IDLE    0x00000000  // Idle
+#define UDMA_STAT_STATE_RD_CTRL 0x00000010  // Reading channel controller data
+#define UDMA_STAT_STATE_RD_SRCENDP                                            \
+                                0x00000020  // Reading source end pointer
+#define UDMA_STAT_STATE_RD_DSTENDP                                            \
+                                0x00000030  // Reading destination end pointer
+#define UDMA_STAT_STATE_RD_SRCDAT                                             \
+                                0x00000040  // Reading source data
+#define UDMA_STAT_STATE_WR_DSTDAT                                             \
+                                0x00000050  // Writing destination data
+#define UDMA_STAT_STATE_WAIT    0x00000060  // Waiting for uDMA request to
+                                            // clear
+#define UDMA_STAT_STATE_WR_CTRL 0x00000070  // Writing channel controller data
+#define UDMA_STAT_STATE_STALL   0x00000080  // Stalled
+#define UDMA_STAT_STATE_DONE    0x00000090  // Done
+#define UDMA_STAT_STATE_UNDEF   0x000000A0  // Undefined
+#define UDMA_STAT_MASTEN        0x00000001  // Master Enable Status
+#define UDMA_STAT_DMACHANS_S    16
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_CFG register.
+//
+//*****************************************************************************
+#define UDMA_CFG_MASTEN         0x00000001  // Controller Master Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_CTLBASE register.
+//
+//*****************************************************************************
+#define UDMA_CTLBASE_ADDR_M     0xFFFFFC00  // Channel Control Base Address
+#define UDMA_CTLBASE_ADDR_S     10
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_ALTBASE register.
+//
+//*****************************************************************************
+#define UDMA_ALTBASE_ADDR_M     0xFFFFFFFF  // Alternate Channel Address
+                                            // Pointer
+#define UDMA_ALTBASE_ADDR_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_WAITSTAT register.
+//
+//*****************************************************************************
+#define UDMA_WAITSTAT_WAITREQ_M 0xFFFFFFFF  // Channel [n] Wait Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_SWREQ register.
+//
+//*****************************************************************************
+#define UDMA_SWREQ_M            0xFFFFFFFF  // Channel [n] Software Request
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_USEBURSTSET
+// register.
+//
+//*****************************************************************************
+#define UDMA_USEBURSTSET_SET_M  0xFFFFFFFF  // Channel [n] Useburst Set
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_USEBURSTCLR
+// register.
+//
+//*****************************************************************************
+#define UDMA_USEBURSTCLR_CLR_M  0xFFFFFFFF  // Channel [n] Useburst Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_REQMASKSET
+// register.
+//
+//*****************************************************************************
+#define UDMA_REQMASKSET_SET_M   0xFFFFFFFF  // Channel [n] Request Mask Set
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_REQMASKCLR
+// register.
+//
+//*****************************************************************************
+#define UDMA_REQMASKCLR_CLR_M   0xFFFFFFFF  // Channel [n] Request Mask Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_ENASET register.
+//
+//*****************************************************************************
+#define UDMA_ENASET_SET_M       0xFFFFFFFF  // Channel [n] Enable Set
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_ENACLR register.
+//
+//*****************************************************************************
+#define UDMA_ENACLR_CLR_M       0xFFFFFFFF  // Clear Channel [n] Enable Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_ALTSET register.
+//
+//*****************************************************************************
+#define UDMA_ALTSET_SET_M       0xFFFFFFFF  // Channel [n] Alternate Set
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_ALTCLR register.
+//
+//*****************************************************************************
+#define UDMA_ALTCLR_CLR_M       0xFFFFFFFF  // Channel [n] Alternate Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_PRIOSET register.
+//
+//*****************************************************************************
+#define UDMA_PRIOSET_SET_M      0xFFFFFFFF  // Channel [n] Priority Set
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_PRIOCLR register.
+//
+//*****************************************************************************
+#define UDMA_PRIOCLR_CLR_M      0xFFFFFFFF  // Channel [n] Priority Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_ERRCLR register.
+//
+//*****************************************************************************
+#define UDMA_ERRCLR_ERRCLR      0x00000001  // uDMA Bus Error Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_CHASGN register.
+//
+//*****************************************************************************
+#define UDMA_CHASGN_M           0xFFFFFFFF  // Channel [n] Assignment Select
+#define UDMA_CHASGN_PRIMARY     0x00000000  // Use the primary channel
+                                            // assignment
+#define UDMA_CHASGN_SECONDARY   0x00000001  // Use the secondary channel
+                                            // assignment
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_CHIS register.
+//
+//*****************************************************************************
+#define UDMA_CHIS_M             0xFFFFFFFF  // Channel [n] Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_CHMAP0 register.
+//
+//*****************************************************************************
+#define UDMA_CHMAP0_CH7SEL_M    0xF0000000  // uDMA Channel 7 Source Select
+#define UDMA_CHMAP0_CH6SEL_M    0x0F000000  // uDMA Channel 6 Source Select
+#define UDMA_CHMAP0_CH5SEL_M    0x00F00000  // uDMA Channel 5 Source Select
+#define UDMA_CHMAP0_CH4SEL_M    0x000F0000  // uDMA Channel 4 Source Select
+#define UDMA_CHMAP0_CH3SEL_M    0x0000F000  // uDMA Channel 3 Source Select
+#define UDMA_CHMAP0_CH2SEL_M    0x00000F00  // uDMA Channel 2 Source Select
+#define UDMA_CHMAP0_CH1SEL_M    0x000000F0  // uDMA Channel 1 Source Select
+#define UDMA_CHMAP0_CH0SEL_M    0x0000000F  // uDMA Channel 0 Source Select
+#define UDMA_CHMAP0_CH7SEL_S    28
+#define UDMA_CHMAP0_CH6SEL_S    24
+#define UDMA_CHMAP0_CH5SEL_S    20
+#define UDMA_CHMAP0_CH4SEL_S    16
+#define UDMA_CHMAP0_CH3SEL_S    12
+#define UDMA_CHMAP0_CH2SEL_S    8
+#define UDMA_CHMAP0_CH1SEL_S    4
+#define UDMA_CHMAP0_CH0SEL_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_CHMAP1 register.
+//
+//*****************************************************************************
+#define UDMA_CHMAP1_CH15SEL_M   0xF0000000  // uDMA Channel 15 Source Select
+#define UDMA_CHMAP1_CH14SEL_M   0x0F000000  // uDMA Channel 14 Source Select
+#define UDMA_CHMAP1_CH13SEL_M   0x00F00000  // uDMA Channel 13 Source Select
+#define UDMA_CHMAP1_CH12SEL_M   0x000F0000  // uDMA Channel 12 Source Select
+#define UDMA_CHMAP1_CH11SEL_M   0x0000F000  // uDMA Channel 11 Source Select
+#define UDMA_CHMAP1_CH10SEL_M   0x00000F00  // uDMA Channel 10 Source Select
+#define UDMA_CHMAP1_CH9SEL_M    0x000000F0  // uDMA Channel 9 Source Select
+#define UDMA_CHMAP1_CH8SEL_M    0x0000000F  // uDMA Channel 8 Source Select
+#define UDMA_CHMAP1_CH15SEL_S   28
+#define UDMA_CHMAP1_CH14SEL_S   24
+#define UDMA_CHMAP1_CH13SEL_S   20
+#define UDMA_CHMAP1_CH12SEL_S   16
+#define UDMA_CHMAP1_CH11SEL_S   12
+#define UDMA_CHMAP1_CH10SEL_S   8
+#define UDMA_CHMAP1_CH9SEL_S    4
+#define UDMA_CHMAP1_CH8SEL_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_CHMAP2 register.
+//
+//*****************************************************************************
+#define UDMA_CHMAP2_CH23SEL_M   0xF0000000  // uDMA Channel 23 Source Select
+#define UDMA_CHMAP2_CH22SEL_M   0x0F000000  // uDMA Channel 22 Source Select
+#define UDMA_CHMAP2_CH21SEL_M   0x00F00000  // uDMA Channel 21 Source Select
+#define UDMA_CHMAP2_CH20SEL_M   0x000F0000  // uDMA Channel 20 Source Select
+#define UDMA_CHMAP2_CH19SEL_M   0x0000F000  // uDMA Channel 19 Source Select
+#define UDMA_CHMAP2_CH18SEL_M   0x00000F00  // uDMA Channel 18 Source Select
+#define UDMA_CHMAP2_CH17SEL_M   0x000000F0  // uDMA Channel 17 Source Select
+#define UDMA_CHMAP2_CH16SEL_M   0x0000000F  // uDMA Channel 16 Source Select
+#define UDMA_CHMAP2_CH23SEL_S   28
+#define UDMA_CHMAP2_CH22SEL_S   24
+#define UDMA_CHMAP2_CH21SEL_S   20
+#define UDMA_CHMAP2_CH20SEL_S   16
+#define UDMA_CHMAP2_CH19SEL_S   12
+#define UDMA_CHMAP2_CH18SEL_S   8
+#define UDMA_CHMAP2_CH17SEL_S   4
+#define UDMA_CHMAP2_CH16SEL_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_CHMAP3 register.
+//
+//*****************************************************************************
+#define UDMA_CHMAP3_CH31SEL_M   0xF0000000  // uDMA Channel 31 Source Select
+#define UDMA_CHMAP3_CH30SEL_M   0x0F000000  // uDMA Channel 30 Source Select
+#define UDMA_CHMAP3_CH29SEL_M   0x00F00000  // uDMA Channel 29 Source Select
+#define UDMA_CHMAP3_CH28SEL_M   0x000F0000  // uDMA Channel 28 Source Select
+#define UDMA_CHMAP3_CH27SEL_M   0x0000F000  // uDMA Channel 27 Source Select
+#define UDMA_CHMAP3_CH26SEL_M   0x00000F00  // uDMA Channel 26 Source Select
+#define UDMA_CHMAP3_CH25SEL_M   0x000000F0  // uDMA Channel 25 Source Select
+#define UDMA_CHMAP3_CH24SEL_M   0x0000000F  // uDMA Channel 24 Source Select
+#define UDMA_CHMAP3_CH31SEL_S   28
+#define UDMA_CHMAP3_CH30SEL_S   24
+#define UDMA_CHMAP3_CH29SEL_S   20
+#define UDMA_CHMAP3_CH28SEL_S   16
+#define UDMA_CHMAP3_CH27SEL_S   12
+#define UDMA_CHMAP3_CH26SEL_S   8
+#define UDMA_CHMAP3_CH25SEL_S   4
+#define UDMA_CHMAP3_CH24SEL_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the Micro Direct Memory Access (uDMA) offsets.
+//
+//*****************************************************************************
+#define UDMA_O_SRCENDP          0x00000000  // DMA Channel Source Address End
+                                            // Pointer
+#define UDMA_O_DSTENDP          0x00000004  // DMA Channel Destination Address
+                                            // End Pointer
+#define UDMA_O_CHCTL            0x00000008  // DMA Channel Control Word
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_O_SRCENDP register.
+//
+//*****************************************************************************
+#define UDMA_SRCENDP_ADDR_M     0xFFFFFFFF  // Source Address End Pointer
+#define UDMA_SRCENDP_ADDR_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_O_DSTENDP register.
+//
+//*****************************************************************************
+#define UDMA_DSTENDP_ADDR_M     0xFFFFFFFF  // Destination Address End Pointer
+#define UDMA_DSTENDP_ADDR_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_O_CHCTL register.
+//
+//*****************************************************************************
+#define UDMA_CHCTL_DSTINC_M     0xC0000000  // Destination Address Increment
+#define UDMA_CHCTL_DSTINC_8     0x00000000  // Byte
+#define UDMA_CHCTL_DSTINC_16    0x40000000  // Half-word
+#define UDMA_CHCTL_DSTINC_32    0x80000000  // Word
+#define UDMA_CHCTL_DSTINC_NONE  0xC0000000  // No increment
+#define UDMA_CHCTL_DSTSIZE_M    0x30000000  // Destination Data Size
+#define UDMA_CHCTL_DSTSIZE_8    0x00000000  // Byte
+#define UDMA_CHCTL_DSTSIZE_16   0x10000000  // Half-word
+#define UDMA_CHCTL_DSTSIZE_32   0x20000000  // Word
+#define UDMA_CHCTL_SRCINC_M     0x0C000000  // Source Address Increment
+#define UDMA_CHCTL_SRCINC_8     0x00000000  // Byte
+#define UDMA_CHCTL_SRCINC_16    0x04000000  // Half-word
+#define UDMA_CHCTL_SRCINC_32    0x08000000  // Word
+#define UDMA_CHCTL_SRCINC_NONE  0x0C000000  // No increment
+#define UDMA_CHCTL_SRCSIZE_M    0x03000000  // Source Data Size
+#define UDMA_CHCTL_SRCSIZE_8    0x00000000  // Byte
+#define UDMA_CHCTL_SRCSIZE_16   0x01000000  // Half-word
+#define UDMA_CHCTL_SRCSIZE_32   0x02000000  // Word
+#define UDMA_CHCTL_DSTPROT0     0x00200000  // Destination Privilege Access
+#define UDMA_CHCTL_SRCPROT0     0x00040000  // Source Privilege Access
+#define UDMA_CHCTL_ARBSIZE_M    0x0003C000  // Arbitration Size
+#define UDMA_CHCTL_ARBSIZE_1    0x00000000  // 1 Transfer
+#define UDMA_CHCTL_ARBSIZE_2    0x00004000  // 2 Transfers
+#define UDMA_CHCTL_ARBSIZE_4    0x00008000  // 4 Transfers
+#define UDMA_CHCTL_ARBSIZE_8    0x0000C000  // 8 Transfers
+#define UDMA_CHCTL_ARBSIZE_16   0x00010000  // 16 Transfers
+#define UDMA_CHCTL_ARBSIZE_32   0x00014000  // 32 Transfers
+#define UDMA_CHCTL_ARBSIZE_64   0x00018000  // 64 Transfers
+#define UDMA_CHCTL_ARBSIZE_128  0x0001C000  // 128 Transfers
+#define UDMA_CHCTL_ARBSIZE_256  0x00020000  // 256 Transfers
+#define UDMA_CHCTL_ARBSIZE_512  0x00024000  // 512 Transfers
+#define UDMA_CHCTL_ARBSIZE_1024 0x00028000  // 1024 Transfers
+#define UDMA_CHCTL_XFERSIZE_M   0x00003FF0  // Transfer Size (minus 1)
+#define UDMA_CHCTL_NXTUSEBURST  0x00000008  // Next Useburst
+#define UDMA_CHCTL_XFERMODE_M   0x00000007  // uDMA Transfer Mode
+#define UDMA_CHCTL_XFERMODE_STOP                                              \
+                                0x00000000  // Stop
+#define UDMA_CHCTL_XFERMODE_BASIC                                             \
+                                0x00000001  // Basic
+#define UDMA_CHCTL_XFERMODE_AUTO                                              \
+                                0x00000002  // Auto-Request
+#define UDMA_CHCTL_XFERMODE_PINGPONG                                          \
+                                0x00000003  // Ping-Pong
+#define UDMA_CHCTL_XFERMODE_MEM_SG                                            \
+                                0x00000004  // Memory Scatter-Gather
+#define UDMA_CHCTL_XFERMODE_MEM_SGA                                           \
+                                0x00000005  // Alternate Memory Scatter-Gather
+#define UDMA_CHCTL_XFERMODE_PER_SG                                            \
+                                0x00000006  // Peripheral Scatter-Gather
+#define UDMA_CHCTL_XFERMODE_PER_SGA                                           \
+                                0x00000007  // Alternate Peripheral
+                                            // Scatter-Gather
+#define UDMA_CHCTL_XFERSIZE_S   4
+
+#endif // __HW_UDMA_H__

+ 3032 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_usb.h

@@ -0,0 +1,3032 @@
+//*****************************************************************************
+//
+// hw_usb.h - Macros for use in accessing the USB registers.
+//
+// Copyright (c) 2007-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Firmware Development Package.
+//
+//*****************************************************************************
+
+#ifndef __HW_USB_H__
+#define __HW_USB_H__
+
+//*****************************************************************************
+//
+// The following are defines for the Univeral Serial Bus register offsets.
+//
+//*****************************************************************************
+#define USB_O_FADDR             0x00000000  // USB Device Functional Address
+#define USB_O_POWER             0x00000001  // USB Power
+#define USB_O_TXIS              0x00000002  // USB Transmit Interrupt Status
+#define USB_O_RXIS              0x00000004  // USB Receive Interrupt Status
+#define USB_O_TXIE              0x00000006  // USB Transmit Interrupt Enable
+#define USB_O_RXIE              0x00000008  // USB Receive Interrupt Enable
+#define USB_O_IS                0x0000000A  // USB General Interrupt Status
+#define USB_O_IE                0x0000000B  // USB Interrupt Enable
+#define USB_O_FRAME             0x0000000C  // USB Frame Value
+#define USB_O_EPIDX             0x0000000E  // USB Endpoint Index
+#define USB_O_TEST              0x0000000F  // USB Test Mode
+#define USB_O_FIFO0             0x00000020  // USB FIFO Endpoint 0
+#define USB_O_FIFO1             0x00000024  // USB FIFO Endpoint 1
+#define USB_O_FIFO2             0x00000028  // USB FIFO Endpoint 2
+#define USB_O_FIFO3             0x0000002C  // USB FIFO Endpoint 3
+#define USB_O_FIFO4             0x00000030  // USB FIFO Endpoint 4
+#define USB_O_FIFO5             0x00000034  // USB FIFO Endpoint 5
+#define USB_O_FIFO6             0x00000038  // USB FIFO Endpoint 6
+#define USB_O_FIFO7             0x0000003C  // USB FIFO Endpoint 7
+#define USB_O_DEVCTL            0x00000060  // USB Device Control
+#define USB_O_CCONF             0x00000061  // USB Common Configuration
+#define USB_O_TXFIFOSZ          0x00000062  // USB Transmit Dynamic FIFO Sizing
+#define USB_O_RXFIFOSZ          0x00000063  // USB Receive Dynamic FIFO Sizing
+#define USB_O_TXFIFOADD         0x00000064  // USB Transmit FIFO Start Address
+#define USB_O_RXFIFOADD         0x00000066  // USB Receive FIFO Start Address
+#define USB_O_ULPIVBUSCTL       0x00000070  // USB ULPI VBUS Control
+#define USB_O_ULPIREGDATA       0x00000074  // USB ULPI Register Data
+#define USB_O_ULPIREGADDR       0x00000075  // USB ULPI Register Address
+#define USB_O_ULPIREGCTL        0x00000076  // USB ULPI Register Control
+#define USB_O_EPINFO            0x00000078  // USB Endpoint Information
+#define USB_O_RAMINFO           0x00000079  // USB RAM Information
+#define USB_O_CONTIM            0x0000007A  // USB Connect Timing
+#define USB_O_VPLEN             0x0000007B  // USB OTG VBUS Pulse Timing
+#define USB_O_HSEOF             0x0000007C  // USB High-Speed Last Transaction
+                                            // to End of Frame Timing
+#define USB_O_FSEOF             0x0000007D  // USB Full-Speed Last Transaction
+                                            // to End of Frame Timing
+#define USB_O_LSEOF             0x0000007E  // USB Low-Speed Last Transaction
+                                            // to End of Frame Timing
+#define USB_O_TXFUNCADDR0       0x00000080  // USB Transmit Functional Address
+                                            // Endpoint 0
+#define USB_O_TXHUBADDR0        0x00000082  // USB Transmit Hub Address
+                                            // Endpoint 0
+#define USB_O_TXHUBPORT0        0x00000083  // USB Transmit Hub Port Endpoint 0
+#define USB_O_TXFUNCADDR1       0x00000088  // USB Transmit Functional Address
+                                            // Endpoint 1
+#define USB_O_TXHUBADDR1        0x0000008A  // USB Transmit Hub Address
+                                            // Endpoint 1
+#define USB_O_TXHUBPORT1        0x0000008B  // USB Transmit Hub Port Endpoint 1
+#define USB_O_RXFUNCADDR1       0x0000008C  // USB Receive Functional Address
+                                            // Endpoint 1
+#define USB_O_RXHUBADDR1        0x0000008E  // USB Receive Hub Address Endpoint
+                                            // 1
+#define USB_O_RXHUBPORT1        0x0000008F  // USB Receive Hub Port Endpoint 1
+#define USB_O_TXFUNCADDR2       0x00000090  // USB Transmit Functional Address
+                                            // Endpoint 2
+#define USB_O_TXHUBADDR2        0x00000092  // USB Transmit Hub Address
+                                            // Endpoint 2
+#define USB_O_TXHUBPORT2        0x00000093  // USB Transmit Hub Port Endpoint 2
+#define USB_O_RXFUNCADDR2       0x00000094  // USB Receive Functional Address
+                                            // Endpoint 2
+#define USB_O_RXHUBADDR2        0x00000096  // USB Receive Hub Address Endpoint
+                                            // 2
+#define USB_O_RXHUBPORT2        0x00000097  // USB Receive Hub Port Endpoint 2
+#define USB_O_TXFUNCADDR3       0x00000098  // USB Transmit Functional Address
+                                            // Endpoint 3
+#define USB_O_TXHUBADDR3        0x0000009A  // USB Transmit Hub Address
+                                            // Endpoint 3
+#define USB_O_TXHUBPORT3        0x0000009B  // USB Transmit Hub Port Endpoint 3
+#define USB_O_RXFUNCADDR3       0x0000009C  // USB Receive Functional Address
+                                            // Endpoint 3
+#define USB_O_RXHUBADDR3        0x0000009E  // USB Receive Hub Address Endpoint
+                                            // 3
+#define USB_O_RXHUBPORT3        0x0000009F  // USB Receive Hub Port Endpoint 3
+#define USB_O_TXFUNCADDR4       0x000000A0  // USB Transmit Functional Address
+                                            // Endpoint 4
+#define USB_O_TXHUBADDR4        0x000000A2  // USB Transmit Hub Address
+                                            // Endpoint 4
+#define USB_O_TXHUBPORT4        0x000000A3  // USB Transmit Hub Port Endpoint 4
+#define USB_O_RXFUNCADDR4       0x000000A4  // USB Receive Functional Address
+                                            // Endpoint 4
+#define USB_O_RXHUBADDR4        0x000000A6  // USB Receive Hub Address Endpoint
+                                            // 4
+#define USB_O_RXHUBPORT4        0x000000A7  // USB Receive Hub Port Endpoint 4
+#define USB_O_TXFUNCADDR5       0x000000A8  // USB Transmit Functional Address
+                                            // Endpoint 5
+#define USB_O_TXHUBADDR5        0x000000AA  // USB Transmit Hub Address
+                                            // Endpoint 5
+#define USB_O_TXHUBPORT5        0x000000AB  // USB Transmit Hub Port Endpoint 5
+#define USB_O_RXFUNCADDR5       0x000000AC  // USB Receive Functional Address
+                                            // Endpoint 5
+#define USB_O_RXHUBADDR5        0x000000AE  // USB Receive Hub Address Endpoint
+                                            // 5
+#define USB_O_RXHUBPORT5        0x000000AF  // USB Receive Hub Port Endpoint 5
+#define USB_O_TXFUNCADDR6       0x000000B0  // USB Transmit Functional Address
+                                            // Endpoint 6
+#define USB_O_TXHUBADDR6        0x000000B2  // USB Transmit Hub Address
+                                            // Endpoint 6
+#define USB_O_TXHUBPORT6        0x000000B3  // USB Transmit Hub Port Endpoint 6
+#define USB_O_RXFUNCADDR6       0x000000B4  // USB Receive Functional Address
+                                            // Endpoint 6
+#define USB_O_RXHUBADDR6        0x000000B6  // USB Receive Hub Address Endpoint
+                                            // 6
+#define USB_O_RXHUBPORT6        0x000000B7  // USB Receive Hub Port Endpoint 6
+#define USB_O_TXFUNCADDR7       0x000000B8  // USB Transmit Functional Address
+                                            // Endpoint 7
+#define USB_O_TXHUBADDR7        0x000000BA  // USB Transmit Hub Address
+                                            // Endpoint 7
+#define USB_O_TXHUBPORT7        0x000000BB  // USB Transmit Hub Port Endpoint 7
+#define USB_O_RXFUNCADDR7       0x000000BC  // USB Receive Functional Address
+                                            // Endpoint 7
+#define USB_O_RXHUBADDR7        0x000000BE  // USB Receive Hub Address Endpoint
+                                            // 7
+#define USB_O_RXHUBPORT7        0x000000BF  // USB Receive Hub Port Endpoint 7
+#define USB_O_CSRL0             0x00000102  // USB Control and Status Endpoint
+                                            // 0 Low
+#define USB_O_CSRH0             0x00000103  // USB Control and Status Endpoint
+                                            // 0 High
+#define USB_O_COUNT0            0x00000108  // USB Receive Byte Count Endpoint
+                                            // 0
+#define USB_O_TYPE0             0x0000010A  // USB Type Endpoint 0
+#define USB_O_NAKLMT            0x0000010B  // USB NAK Limit
+#define USB_O_TXMAXP1           0x00000110  // USB Maximum Transmit Data
+                                            // Endpoint 1
+#define USB_O_TXCSRL1           0x00000112  // USB Transmit Control and Status
+                                            // Endpoint 1 Low
+#define USB_O_TXCSRH1           0x00000113  // USB Transmit Control and Status
+                                            // Endpoint 1 High
+#define USB_O_RXMAXP1           0x00000114  // USB Maximum Receive Data
+                                            // Endpoint 1
+#define USB_O_RXCSRL1           0x00000116  // USB Receive Control and Status
+                                            // Endpoint 1 Low
+#define USB_O_RXCSRH1           0x00000117  // USB Receive Control and Status
+                                            // Endpoint 1 High
+#define USB_O_RXCOUNT1          0x00000118  // USB Receive Byte Count Endpoint
+                                            // 1
+#define USB_O_TXTYPE1           0x0000011A  // USB Host Transmit Configure Type
+                                            // Endpoint 1
+#define USB_O_TXINTERVAL1       0x0000011B  // USB Host Transmit Interval
+                                            // Endpoint 1
+#define USB_O_RXTYPE1           0x0000011C  // USB Host Configure Receive Type
+                                            // Endpoint 1
+#define USB_O_RXINTERVAL1       0x0000011D  // USB Host Receive Polling
+                                            // Interval Endpoint 1
+#define USB_O_TXMAXP2           0x00000120  // USB Maximum Transmit Data
+                                            // Endpoint 2
+#define USB_O_TXCSRL2           0x00000122  // USB Transmit Control and Status
+                                            // Endpoint 2 Low
+#define USB_O_TXCSRH2           0x00000123  // USB Transmit Control and Status
+                                            // Endpoint 2 High
+#define USB_O_RXMAXP2           0x00000124  // USB Maximum Receive Data
+                                            // Endpoint 2
+#define USB_O_RXCSRL2           0x00000126  // USB Receive Control and Status
+                                            // Endpoint 2 Low
+#define USB_O_RXCSRH2           0x00000127  // USB Receive Control and Status
+                                            // Endpoint 2 High
+#define USB_O_RXCOUNT2          0x00000128  // USB Receive Byte Count Endpoint
+                                            // 2
+#define USB_O_TXTYPE2           0x0000012A  // USB Host Transmit Configure Type
+                                            // Endpoint 2
+#define USB_O_TXINTERVAL2       0x0000012B  // USB Host Transmit Interval
+                                            // Endpoint 2
+#define USB_O_RXTYPE2           0x0000012C  // USB Host Configure Receive Type
+                                            // Endpoint 2
+#define USB_O_RXINTERVAL2       0x0000012D  // USB Host Receive Polling
+                                            // Interval Endpoint 2
+#define USB_O_TXMAXP3           0x00000130  // USB Maximum Transmit Data
+                                            // Endpoint 3
+#define USB_O_TXCSRL3           0x00000132  // USB Transmit Control and Status
+                                            // Endpoint 3 Low
+#define USB_O_TXCSRH3           0x00000133  // USB Transmit Control and Status
+                                            // Endpoint 3 High
+#define USB_O_RXMAXP3           0x00000134  // USB Maximum Receive Data
+                                            // Endpoint 3
+#define USB_O_RXCSRL3           0x00000136  // USB Receive Control and Status
+                                            // Endpoint 3 Low
+#define USB_O_RXCSRH3           0x00000137  // USB Receive Control and Status
+                                            // Endpoint 3 High
+#define USB_O_RXCOUNT3          0x00000138  // USB Receive Byte Count Endpoint
+                                            // 3
+#define USB_O_TXTYPE3           0x0000013A  // USB Host Transmit Configure Type
+                                            // Endpoint 3
+#define USB_O_TXINTERVAL3       0x0000013B  // USB Host Transmit Interval
+                                            // Endpoint 3
+#define USB_O_RXTYPE3           0x0000013C  // USB Host Configure Receive Type
+                                            // Endpoint 3
+#define USB_O_RXINTERVAL3       0x0000013D  // USB Host Receive Polling
+                                            // Interval Endpoint 3
+#define USB_O_TXMAXP4           0x00000140  // USB Maximum Transmit Data
+                                            // Endpoint 4
+#define USB_O_TXCSRL4           0x00000142  // USB Transmit Control and Status
+                                            // Endpoint 4 Low
+#define USB_O_TXCSRH4           0x00000143  // USB Transmit Control and Status
+                                            // Endpoint 4 High
+#define USB_O_RXMAXP4           0x00000144  // USB Maximum Receive Data
+                                            // Endpoint 4
+#define USB_O_RXCSRL4           0x00000146  // USB Receive Control and Status
+                                            // Endpoint 4 Low
+#define USB_O_RXCSRH4           0x00000147  // USB Receive Control and Status
+                                            // Endpoint 4 High
+#define USB_O_RXCOUNT4          0x00000148  // USB Receive Byte Count Endpoint
+                                            // 4
+#define USB_O_TXTYPE4           0x0000014A  // USB Host Transmit Configure Type
+                                            // Endpoint 4
+#define USB_O_TXINTERVAL4       0x0000014B  // USB Host Transmit Interval
+                                            // Endpoint 4
+#define USB_O_RXTYPE4           0x0000014C  // USB Host Configure Receive Type
+                                            // Endpoint 4
+#define USB_O_RXINTERVAL4       0x0000014D  // USB Host Receive Polling
+                                            // Interval Endpoint 4
+#define USB_O_TXMAXP5           0x00000150  // USB Maximum Transmit Data
+                                            // Endpoint 5
+#define USB_O_TXCSRL5           0x00000152  // USB Transmit Control and Status
+                                            // Endpoint 5 Low
+#define USB_O_TXCSRH5           0x00000153  // USB Transmit Control and Status
+                                            // Endpoint 5 High
+#define USB_O_RXMAXP5           0x00000154  // USB Maximum Receive Data
+                                            // Endpoint 5
+#define USB_O_RXCSRL5           0x00000156  // USB Receive Control and Status
+                                            // Endpoint 5 Low
+#define USB_O_RXCSRH5           0x00000157  // USB Receive Control and Status
+                                            // Endpoint 5 High
+#define USB_O_RXCOUNT5          0x00000158  // USB Receive Byte Count Endpoint
+                                            // 5
+#define USB_O_TXTYPE5           0x0000015A  // USB Host Transmit Configure Type
+                                            // Endpoint 5
+#define USB_O_TXINTERVAL5       0x0000015B  // USB Host Transmit Interval
+                                            // Endpoint 5
+#define USB_O_RXTYPE5           0x0000015C  // USB Host Configure Receive Type
+                                            // Endpoint 5
+#define USB_O_RXINTERVAL5       0x0000015D  // USB Host Receive Polling
+                                            // Interval Endpoint 5
+#define USB_O_TXMAXP6           0x00000160  // USB Maximum Transmit Data
+                                            // Endpoint 6
+#define USB_O_TXCSRL6           0x00000162  // USB Transmit Control and Status
+                                            // Endpoint 6 Low
+#define USB_O_TXCSRH6           0x00000163  // USB Transmit Control and Status
+                                            // Endpoint 6 High
+#define USB_O_RXMAXP6           0x00000164  // USB Maximum Receive Data
+                                            // Endpoint 6
+#define USB_O_RXCSRL6           0x00000166  // USB Receive Control and Status
+                                            // Endpoint 6 Low
+#define USB_O_RXCSRH6           0x00000167  // USB Receive Control and Status
+                                            // Endpoint 6 High
+#define USB_O_RXCOUNT6          0x00000168  // USB Receive Byte Count Endpoint
+                                            // 6
+#define USB_O_TXTYPE6           0x0000016A  // USB Host Transmit Configure Type
+                                            // Endpoint 6
+#define USB_O_TXINTERVAL6       0x0000016B  // USB Host Transmit Interval
+                                            // Endpoint 6
+#define USB_O_RXTYPE6           0x0000016C  // USB Host Configure Receive Type
+                                            // Endpoint 6
+#define USB_O_RXINTERVAL6       0x0000016D  // USB Host Receive Polling
+                                            // Interval Endpoint 6
+#define USB_O_TXMAXP7           0x00000170  // USB Maximum Transmit Data
+                                            // Endpoint 7
+#define USB_O_TXCSRL7           0x00000172  // USB Transmit Control and Status
+                                            // Endpoint 7 Low
+#define USB_O_TXCSRH7           0x00000173  // USB Transmit Control and Status
+                                            // Endpoint 7 High
+#define USB_O_RXMAXP7           0x00000174  // USB Maximum Receive Data
+                                            // Endpoint 7
+#define USB_O_RXCSRL7           0x00000176  // USB Receive Control and Status
+                                            // Endpoint 7 Low
+#define USB_O_RXCSRH7           0x00000177  // USB Receive Control and Status
+                                            // Endpoint 7 High
+#define USB_O_RXCOUNT7          0x00000178  // USB Receive Byte Count Endpoint
+                                            // 7
+#define USB_O_TXTYPE7           0x0000017A  // USB Host Transmit Configure Type
+                                            // Endpoint 7
+#define USB_O_TXINTERVAL7       0x0000017B  // USB Host Transmit Interval
+                                            // Endpoint 7
+#define USB_O_RXTYPE7           0x0000017C  // USB Host Configure Receive Type
+                                            // Endpoint 7
+#define USB_O_RXINTERVAL7       0x0000017D  // USB Host Receive Polling
+                                            // Interval Endpoint 7
+#define USB_O_DMAINTR           0x00000200  // USB DMA Interrupt
+#define USB_O_DMACTL0           0x00000204  // USB DMA Control 0
+#define USB_O_DMAADDR0          0x00000208  // USB DMA Address 0
+#define USB_O_DMACOUNT0         0x0000020C  // USB DMA Count 0
+#define USB_O_DMACTL1           0x00000214  // USB DMA Control 1
+#define USB_O_DMAADDR1          0x00000218  // USB DMA Address 1
+#define USB_O_DMACOUNT1         0x0000021C  // USB DMA Count 1
+#define USB_O_DMACTL2           0x00000224  // USB DMA Control 2
+#define USB_O_DMAADDR2          0x00000228  // USB DMA Address 2
+#define USB_O_DMACOUNT2         0x0000022C  // USB DMA Count 2
+#define USB_O_DMACTL3           0x00000234  // USB DMA Control 3
+#define USB_O_DMAADDR3          0x00000238  // USB DMA Address 3
+#define USB_O_DMACOUNT3         0x0000023C  // USB DMA Count 3
+#define USB_O_DMACTL4           0x00000244  // USB DMA Control 4
+#define USB_O_DMAADDR4          0x00000248  // USB DMA Address 4
+#define USB_O_DMACOUNT4         0x0000024C  // USB DMA Count 4
+#define USB_O_DMACTL5           0x00000254  // USB DMA Control 5
+#define USB_O_DMAADDR5          0x00000258  // USB DMA Address 5
+#define USB_O_DMACOUNT5         0x0000025C  // USB DMA Count 5
+#define USB_O_DMACTL6           0x00000264  // USB DMA Control 6
+#define USB_O_DMAADDR6          0x00000268  // USB DMA Address 6
+#define USB_O_DMACOUNT6         0x0000026C  // USB DMA Count 6
+#define USB_O_DMACTL7           0x00000274  // USB DMA Control 7
+#define USB_O_DMAADDR7          0x00000278  // USB DMA Address 7
+#define USB_O_DMACOUNT7         0x0000027C  // USB DMA Count 7
+#define USB_O_RQPKTCOUNT1       0x00000304  // USB Request Packet Count in
+                                            // Block Transfer Endpoint 1
+#define USB_O_RQPKTCOUNT2       0x00000308  // USB Request Packet Count in
+                                            // Block Transfer Endpoint 2
+#define USB_O_RQPKTCOUNT3       0x0000030C  // USB Request Packet Count in
+                                            // Block Transfer Endpoint 3
+#define USB_O_RQPKTCOUNT4       0x00000310  // USB Request Packet Count in
+                                            // Block Transfer Endpoint 4
+#define USB_O_RQPKTCOUNT5       0x00000314  // USB Request Packet Count in
+                                            // Block Transfer Endpoint 5
+#define USB_O_RQPKTCOUNT6       0x00000318  // USB Request Packet Count in
+                                            // Block Transfer Endpoint 6
+#define USB_O_RQPKTCOUNT7       0x0000031C  // USB Request Packet Count in
+                                            // Block Transfer Endpoint 7
+#define USB_O_RXDPKTBUFDIS      0x00000340  // USB Receive Double Packet Buffer
+                                            // Disable
+#define USB_O_TXDPKTBUFDIS      0x00000342  // USB Transmit Double Packet
+                                            // Buffer Disable
+#define USB_O_CTO               0x00000344  // USB Chirp Timeout
+#define USB_O_HHSRTN            0x00000346  // USB High Speed to UTM Operating
+                                            // Delay
+#define USB_O_HSBT              0x00000348  // USB High Speed Time-out Adder
+#define USB_O_LPMATTR           0x00000360  // USB LPM Attributes
+#define USB_O_LPMCNTRL          0x00000362  // USB LPM Control
+#define USB_O_LPMIM             0x00000363  // USB LPM Interrupt Mask
+#define USB_O_LPMRIS            0x00000364  // USB LPM Raw Interrupt Status
+#define USB_O_LPMFADDR          0x00000365  // USB LPM Function Address
+#define USB_O_EPC               0x00000400  // USB External Power Control
+#define USB_O_EPCRIS            0x00000404  // USB External Power Control Raw
+                                            // Interrupt Status
+#define USB_O_EPCIM             0x00000408  // USB External Power Control
+                                            // Interrupt Mask
+#define USB_O_EPCISC            0x0000040C  // USB External Power Control
+                                            // Interrupt Status and Clear
+#define USB_O_DRRIS             0x00000410  // USB Device RESUME Raw Interrupt
+                                            // Status
+#define USB_O_DRIM              0x00000414  // USB Device RESUME Interrupt Mask
+#define USB_O_DRISC             0x00000418  // USB Device RESUME Interrupt
+                                            // Status and Clear
+#define USB_O_GPCS              0x0000041C  // USB General-Purpose Control and
+                                            // Status
+#define USB_O_VDC               0x00000430  // USB VBUS Droop Control
+#define USB_O_VDCRIS            0x00000434  // USB VBUS Droop Control Raw
+                                            // Interrupt Status
+#define USB_O_VDCIM             0x00000438  // USB VBUS Droop Control Interrupt
+                                            // Mask
+#define USB_O_VDCISC            0x0000043C  // USB VBUS Droop Control Interrupt
+                                            // Status and Clear
+#define USB_O_IDVRIS            0x00000444  // USB ID Valid Detect Raw
+                                            // Interrupt Status
+#define USB_O_IDVIM             0x00000448  // USB ID Valid Detect Interrupt
+                                            // Mask
+#define USB_O_IDVISC            0x0000044C  // USB ID Valid Detect Interrupt
+                                            // Status and Clear
+#define USB_O_DMASEL            0x00000450  // USB DMA Select
+#define USB_O_PP                0x00000FC0  // USB Peripheral Properties
+#define USB_O_PC                0x00000FC4  // USB Peripheral Configuration
+#define USB_O_CC                0x00000FC8  // USB Clock Configuration
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_FADDR register.
+//
+//*****************************************************************************
+#define USB_FADDR_M             0x0000007F  // Function Address
+#define USB_FADDR_S             0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_POWER register.
+//
+//*****************************************************************************
+#define USB_POWER_ISOUP         0x00000080  // Isochronous Update
+#define USB_POWER_SOFTCONN      0x00000040  // Soft Connect/Disconnect
+#define USB_POWER_HSENAB        0x00000020  // High Speed Enable
+#define USB_POWER_HSMODE        0x00000010  // High Speed Enable
+#define USB_POWER_RESET         0x00000008  // RESET Signaling
+#define USB_POWER_RESUME        0x00000004  // RESUME Signaling
+#define USB_POWER_SUSPEND       0x00000002  // SUSPEND Mode
+#define USB_POWER_PWRDNPHY      0x00000001  // Power Down PHY
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXIS register.
+//
+//*****************************************************************************
+#define USB_TXIS_EP7            0x00000080  // TX Endpoint 7 Interrupt
+#define USB_TXIS_EP6            0x00000040  // TX Endpoint 6 Interrupt
+#define USB_TXIS_EP5            0x00000020  // TX Endpoint 5 Interrupt
+#define USB_TXIS_EP4            0x00000010  // TX Endpoint 4 Interrupt
+#define USB_TXIS_EP3            0x00000008  // TX Endpoint 3 Interrupt
+#define USB_TXIS_EP2            0x00000004  // TX Endpoint 2 Interrupt
+#define USB_TXIS_EP1            0x00000002  // TX Endpoint 1 Interrupt
+#define USB_TXIS_EP0            0x00000001  // TX and RX Endpoint 0 Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXIS register.
+//
+//*****************************************************************************
+#define USB_RXIS_EP7            0x00000080  // RX Endpoint 7 Interrupt
+#define USB_RXIS_EP6            0x00000040  // RX Endpoint 6 Interrupt
+#define USB_RXIS_EP5            0x00000020  // RX Endpoint 5 Interrupt
+#define USB_RXIS_EP4            0x00000010  // RX Endpoint 4 Interrupt
+#define USB_RXIS_EP3            0x00000008  // RX Endpoint 3 Interrupt
+#define USB_RXIS_EP2            0x00000004  // RX Endpoint 2 Interrupt
+#define USB_RXIS_EP1            0x00000002  // RX Endpoint 1 Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXIE register.
+//
+//*****************************************************************************
+#define USB_TXIE_EP7            0x00000080  // TX Endpoint 7 Interrupt Enable
+#define USB_TXIE_EP6            0x00000040  // TX Endpoint 6 Interrupt Enable
+#define USB_TXIE_EP5            0x00000020  // TX Endpoint 5 Interrupt Enable
+#define USB_TXIE_EP4            0x00000010  // TX Endpoint 4 Interrupt Enable
+#define USB_TXIE_EP3            0x00000008  // TX Endpoint 3 Interrupt Enable
+#define USB_TXIE_EP2            0x00000004  // TX Endpoint 2 Interrupt Enable
+#define USB_TXIE_EP1            0x00000002  // TX Endpoint 1 Interrupt Enable
+#define USB_TXIE_EP0            0x00000001  // TX and RX Endpoint 0 Interrupt
+                                            // Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXIE register.
+//
+//*****************************************************************************
+#define USB_RXIE_EP7            0x00000080  // RX Endpoint 7 Interrupt Enable
+#define USB_RXIE_EP6            0x00000040  // RX Endpoint 6 Interrupt Enable
+#define USB_RXIE_EP5            0x00000020  // RX Endpoint 5 Interrupt Enable
+#define USB_RXIE_EP4            0x00000010  // RX Endpoint 4 Interrupt Enable
+#define USB_RXIE_EP3            0x00000008  // RX Endpoint 3 Interrupt Enable
+#define USB_RXIE_EP2            0x00000004  // RX Endpoint 2 Interrupt Enable
+#define USB_RXIE_EP1            0x00000002  // RX Endpoint 1 Interrupt Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_IS register.
+//
+//*****************************************************************************
+#define USB_IS_VBUSERR          0x00000080  // VBUS Error (OTG only)
+#define USB_IS_SESREQ           0x00000040  // SESSION REQUEST (OTG only)
+#define USB_IS_DISCON           0x00000020  // Session Disconnect (OTG only)
+#define USB_IS_CONN             0x00000010  // Session Connect
+#define USB_IS_SOF              0x00000008  // Start of Frame
+#define USB_IS_BABBLE           0x00000004  // Babble Detected
+#define USB_IS_RESET            0x00000004  // RESET Signaling Detected
+#define USB_IS_RESUME           0x00000002  // RESUME Signaling Detected
+#define USB_IS_SUSPEND          0x00000001  // SUSPEND Signaling Detected
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_IE register.
+//
+//*****************************************************************************
+#define USB_IE_VBUSERR          0x00000080  // Enable VBUS Error Interrupt (OTG
+                                            // only)
+#define USB_IE_SESREQ           0x00000040  // Enable Session Request (OTG
+                                            // only)
+#define USB_IE_DISCON           0x00000020  // Enable Disconnect Interrupt
+#define USB_IE_CONN             0x00000010  // Enable Connect Interrupt
+#define USB_IE_SOF              0x00000008  // Enable Start-of-Frame Interrupt
+#define USB_IE_BABBLE           0x00000004  // Enable Babble Interrupt
+#define USB_IE_RESET            0x00000004  // Enable RESET Interrupt
+#define USB_IE_RESUME           0x00000002  // Enable RESUME Interrupt
+#define USB_IE_SUSPND           0x00000001  // Enable SUSPEND Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_FRAME register.
+//
+//*****************************************************************************
+#define USB_FRAME_M             0x000007FF  // Frame Number
+#define USB_FRAME_S             0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_EPIDX register.
+//
+//*****************************************************************************
+#define USB_EPIDX_EPIDX_M       0x0000000F  // Endpoint Index
+#define USB_EPIDX_EPIDX_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TEST register.
+//
+//*****************************************************************************
+#define USB_TEST_FORCEH         0x00000080  // Force Host Mode
+#define USB_TEST_FIFOACC        0x00000040  // FIFO Access
+#define USB_TEST_FORCEFS        0x00000020  // Force Full-Speed Mode
+#define USB_TEST_FORCEHS        0x00000010  // Force High-Speed Mode
+#define USB_TEST_TESTPKT        0x00000008  // Test Packet Mode Enable
+#define USB_TEST_TESTK          0x00000004  // Test_K Mode Enable
+#define USB_TEST_TESTJ          0x00000002  // Test_J Mode Enable
+#define USB_TEST_TESTSE0NAK     0x00000001  // Test_SE0_NAK Test Mode Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_FIFO0 register.
+//
+//*****************************************************************************
+#define USB_FIFO0_EPDATA_M      0xFFFFFFFF  // Endpoint Data
+#define USB_FIFO0_EPDATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_FIFO1 register.
+//
+//*****************************************************************************
+#define USB_FIFO1_EPDATA_M      0xFFFFFFFF  // Endpoint Data
+#define USB_FIFO1_EPDATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_FIFO2 register.
+//
+//*****************************************************************************
+#define USB_FIFO2_EPDATA_M      0xFFFFFFFF  // Endpoint Data
+#define USB_FIFO2_EPDATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_FIFO3 register.
+//
+//*****************************************************************************
+#define USB_FIFO3_EPDATA_M      0xFFFFFFFF  // Endpoint Data
+#define USB_FIFO3_EPDATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_FIFO4 register.
+//
+//*****************************************************************************
+#define USB_FIFO4_EPDATA_M      0xFFFFFFFF  // Endpoint Data
+#define USB_FIFO4_EPDATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_FIFO5 register.
+//
+//*****************************************************************************
+#define USB_FIFO5_EPDATA_M      0xFFFFFFFF  // Endpoint Data
+#define USB_FIFO5_EPDATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_FIFO6 register.
+//
+//*****************************************************************************
+#define USB_FIFO6_EPDATA_M      0xFFFFFFFF  // Endpoint Data
+#define USB_FIFO6_EPDATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_FIFO7 register.
+//
+//*****************************************************************************
+#define USB_FIFO7_EPDATA_M      0xFFFFFFFF  // Endpoint Data
+#define USB_FIFO7_EPDATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DEVCTL register.
+//
+//*****************************************************************************
+#define USB_DEVCTL_DEV          0x00000080  // Device Mode (OTG only)
+#define USB_DEVCTL_FSDEV        0x00000040  // Full-Speed Device Detected
+#define USB_DEVCTL_LSDEV        0x00000020  // Low-Speed Device Detected
+#define USB_DEVCTL_VBUS_M       0x00000018  // VBUS Level (OTG only)
+#define USB_DEVCTL_VBUS_NONE    0x00000000  // Below SessionEnd
+#define USB_DEVCTL_VBUS_SEND    0x00000008  // Above SessionEnd, below AValid
+#define USB_DEVCTL_VBUS_AVALID  0x00000010  // Above AValid, below VBUSValid
+#define USB_DEVCTL_VBUS_VALID   0x00000018  // Above VBUSValid
+#define USB_DEVCTL_HOST         0x00000004  // Host Mode
+#define USB_DEVCTL_HOSTREQ      0x00000002  // Host Request (OTG only)
+#define USB_DEVCTL_SESSION      0x00000001  // Session Start/End (OTG only)
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_CCONF register.
+//
+//*****************************************************************************
+#define USB_CCONF_TXEDMA        0x00000002  // TX Early DMA Enable
+#define USB_CCONF_RXEDMA        0x00000001  // TX Early DMA Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXFIFOSZ register.
+//
+//*****************************************************************************
+#define USB_TXFIFOSZ_DPB        0x00000010  // Double Packet Buffer Support
+#define USB_TXFIFOSZ_SIZE_M     0x0000000F  // Max Packet Size
+#define USB_TXFIFOSZ_SIZE_8     0x00000000  // 8
+#define USB_TXFIFOSZ_SIZE_16    0x00000001  // 16
+#define USB_TXFIFOSZ_SIZE_32    0x00000002  // 32
+#define USB_TXFIFOSZ_SIZE_64    0x00000003  // 64
+#define USB_TXFIFOSZ_SIZE_128   0x00000004  // 128
+#define USB_TXFIFOSZ_SIZE_256   0x00000005  // 256
+#define USB_TXFIFOSZ_SIZE_512   0x00000006  // 512
+#define USB_TXFIFOSZ_SIZE_1024  0x00000007  // 1024
+#define USB_TXFIFOSZ_SIZE_2048  0x00000008  // 2048
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXFIFOSZ register.
+//
+//*****************************************************************************
+#define USB_RXFIFOSZ_DPB        0x00000010  // Double Packet Buffer Support
+#define USB_RXFIFOSZ_SIZE_M     0x0000000F  // Max Packet Size
+#define USB_RXFIFOSZ_SIZE_8     0x00000000  // 8
+#define USB_RXFIFOSZ_SIZE_16    0x00000001  // 16
+#define USB_RXFIFOSZ_SIZE_32    0x00000002  // 32
+#define USB_RXFIFOSZ_SIZE_64    0x00000003  // 64
+#define USB_RXFIFOSZ_SIZE_128   0x00000004  // 128
+#define USB_RXFIFOSZ_SIZE_256   0x00000005  // 256
+#define USB_RXFIFOSZ_SIZE_512   0x00000006  // 512
+#define USB_RXFIFOSZ_SIZE_1024  0x00000007  // 1024
+#define USB_RXFIFOSZ_SIZE_2048  0x00000008  // 2048
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXFIFOADD
+// register.
+//
+//*****************************************************************************
+#define USB_TXFIFOADD_ADDR_M    0x000001FF  // Transmit/Receive Start Address
+#define USB_TXFIFOADD_ADDR_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXFIFOADD
+// register.
+//
+//*****************************************************************************
+#define USB_RXFIFOADD_ADDR_M    0x000001FF  // Transmit/Receive Start Address
+#define USB_RXFIFOADD_ADDR_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_ULPIVBUSCTL
+// register.
+//
+//*****************************************************************************
+#define USB_ULPIVBUSCTL_USEEXTVBUSIND                                         \
+                                0x00000002  // Use External VBUS Indicator
+#define USB_ULPIVBUSCTL_USEEXTVBUS                                            \
+                                0x00000001  // Use External VBUS
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_ULPIREGDATA
+// register.
+//
+//*****************************************************************************
+#define USB_ULPIREGDATA_REGDATA_M                                             \
+                                0x000000FF  // Register Data
+#define USB_ULPIREGDATA_REGDATA_S                                             \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_ULPIREGADDR
+// register.
+//
+//*****************************************************************************
+#define USB_ULPIREGADDR_ADDR_M  0x000000FF  // Register Address
+#define USB_ULPIREGADDR_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_ULPIREGCTL
+// register.
+//
+//*****************************************************************************
+#define USB_ULPIREGCTL_RDWR     0x00000004  // Read/Write Control
+#define USB_ULPIREGCTL_REGCMPLT 0x00000002  // Register Access Complete
+#define USB_ULPIREGCTL_REGACC   0x00000001  // Initiate Register Access
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_EPINFO register.
+//
+//*****************************************************************************
+#define USB_EPINFO_RXEP_M       0x000000F0  // RX Endpoints
+#define USB_EPINFO_TXEP_M       0x0000000F  // TX Endpoints
+#define USB_EPINFO_RXEP_S       4
+#define USB_EPINFO_TXEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RAMINFO register.
+//
+//*****************************************************************************
+#define USB_RAMINFO_DMACHAN_M   0x000000F0  // DMA Channels
+#define USB_RAMINFO_RAMBITS_M   0x0000000F  // RAM Address Bus Width
+#define USB_RAMINFO_DMACHAN_S   4
+#define USB_RAMINFO_RAMBITS_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_CONTIM register.
+//
+//*****************************************************************************
+#define USB_CONTIM_WTCON_M      0x000000F0  // Connect Wait
+#define USB_CONTIM_WTID_M       0x0000000F  // Wait ID
+#define USB_CONTIM_WTCON_S      4
+#define USB_CONTIM_WTID_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_VPLEN register.
+//
+//*****************************************************************************
+#define USB_VPLEN_VPLEN_M       0x000000FF  // VBUS Pulse Length
+#define USB_VPLEN_VPLEN_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_HSEOF register.
+//
+//*****************************************************************************
+#define USB_HSEOF_HSEOFG_M      0x000000FF  // HIgh-Speed End-of-Frame Gap
+#define USB_HSEOF_HSEOFG_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_FSEOF register.
+//
+//*****************************************************************************
+#define USB_FSEOF_FSEOFG_M      0x000000FF  // Full-Speed End-of-Frame Gap
+#define USB_FSEOF_FSEOFG_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_LSEOF register.
+//
+//*****************************************************************************
+#define USB_LSEOF_LSEOFG_M      0x000000FF  // Low-Speed End-of-Frame Gap
+#define USB_LSEOF_LSEOFG_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXFUNCADDR0
+// register.
+//
+//*****************************************************************************
+#define USB_TXFUNCADDR0_ADDR_M  0x0000007F  // Device Address
+#define USB_TXFUNCADDR0_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBADDR0
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBADDR0_ADDR_M   0x0000007F  // Hub Address
+#define USB_TXHUBADDR0_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBPORT0
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBPORT0_PORT_M   0x0000007F  // Hub Port
+#define USB_TXHUBPORT0_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXFUNCADDR1
+// register.
+//
+//*****************************************************************************
+#define USB_TXFUNCADDR1_ADDR_M  0x0000007F  // Device Address
+#define USB_TXFUNCADDR1_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBADDR1
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBADDR1_ADDR_M   0x0000007F  // Hub Address
+#define USB_TXHUBADDR1_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBPORT1
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBPORT1_PORT_M   0x0000007F  // Hub Port
+#define USB_TXHUBPORT1_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXFUNCADDR1
+// register.
+//
+//*****************************************************************************
+#define USB_RXFUNCADDR1_ADDR_M  0x0000007F  // Device Address
+#define USB_RXFUNCADDR1_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBADDR1
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBADDR1_ADDR_M   0x0000007F  // Hub Address
+#define USB_RXHUBADDR1_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBPORT1
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBPORT1_PORT_M   0x0000007F  // Hub Port
+#define USB_RXHUBPORT1_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXFUNCADDR2
+// register.
+//
+//*****************************************************************************
+#define USB_TXFUNCADDR2_ADDR_M  0x0000007F  // Device Address
+#define USB_TXFUNCADDR2_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBADDR2
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBADDR2_ADDR_M   0x0000007F  // Hub Address
+#define USB_TXHUBADDR2_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBPORT2
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBPORT2_PORT_M   0x0000007F  // Hub Port
+#define USB_TXHUBPORT2_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXFUNCADDR2
+// register.
+//
+//*****************************************************************************
+#define USB_RXFUNCADDR2_ADDR_M  0x0000007F  // Device Address
+#define USB_RXFUNCADDR2_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBADDR2
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBADDR2_ADDR_M   0x0000007F  // Hub Address
+#define USB_RXHUBADDR2_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBPORT2
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBPORT2_PORT_M   0x0000007F  // Hub Port
+#define USB_RXHUBPORT2_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXFUNCADDR3
+// register.
+//
+//*****************************************************************************
+#define USB_TXFUNCADDR3_ADDR_M  0x0000007F  // Device Address
+#define USB_TXFUNCADDR3_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBADDR3
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBADDR3_ADDR_M   0x0000007F  // Hub Address
+#define USB_TXHUBADDR3_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBPORT3
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBPORT3_PORT_M   0x0000007F  // Hub Port
+#define USB_TXHUBPORT3_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXFUNCADDR3
+// register.
+//
+//*****************************************************************************
+#define USB_RXFUNCADDR3_ADDR_M  0x0000007F  // Device Address
+#define USB_RXFUNCADDR3_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBADDR3
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBADDR3_ADDR_M   0x0000007F  // Hub Address
+#define USB_RXHUBADDR3_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBPORT3
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBPORT3_PORT_M   0x0000007F  // Hub Port
+#define USB_RXHUBPORT3_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXFUNCADDR4
+// register.
+//
+//*****************************************************************************
+#define USB_TXFUNCADDR4_ADDR_M  0x0000007F  // Device Address
+#define USB_TXFUNCADDR4_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBADDR4
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBADDR4_ADDR_M   0x0000007F  // Hub Address
+#define USB_TXHUBADDR4_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBPORT4
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBPORT4_PORT_M   0x0000007F  // Hub Port
+#define USB_TXHUBPORT4_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXFUNCADDR4
+// register.
+//
+//*****************************************************************************
+#define USB_RXFUNCADDR4_ADDR_M  0x0000007F  // Device Address
+#define USB_RXFUNCADDR4_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBADDR4
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBADDR4_ADDR_M   0x0000007F  // Hub Address
+#define USB_RXHUBADDR4_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBPORT4
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBPORT4_PORT_M   0x0000007F  // Hub Port
+#define USB_RXHUBPORT4_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXFUNCADDR5
+// register.
+//
+//*****************************************************************************
+#define USB_TXFUNCADDR5_ADDR_M  0x0000007F  // Device Address
+#define USB_TXFUNCADDR5_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBADDR5
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBADDR5_ADDR_M   0x0000007F  // Hub Address
+#define USB_TXHUBADDR5_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBPORT5
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBPORT5_PORT_M   0x0000007F  // Hub Port
+#define USB_TXHUBPORT5_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXFUNCADDR5
+// register.
+//
+//*****************************************************************************
+#define USB_RXFUNCADDR5_ADDR_M  0x0000007F  // Device Address
+#define USB_RXFUNCADDR5_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBADDR5
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBADDR5_ADDR_M   0x0000007F  // Hub Address
+#define USB_RXHUBADDR5_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBPORT5
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBPORT5_PORT_M   0x0000007F  // Hub Port
+#define USB_RXHUBPORT5_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXFUNCADDR6
+// register.
+//
+//*****************************************************************************
+#define USB_TXFUNCADDR6_ADDR_M  0x0000007F  // Device Address
+#define USB_TXFUNCADDR6_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBADDR6
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBADDR6_ADDR_M   0x0000007F  // Hub Address
+#define USB_TXHUBADDR6_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBPORT6
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBPORT6_PORT_M   0x0000007F  // Hub Port
+#define USB_TXHUBPORT6_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXFUNCADDR6
+// register.
+//
+//*****************************************************************************
+#define USB_RXFUNCADDR6_ADDR_M  0x0000007F  // Device Address
+#define USB_RXFUNCADDR6_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBADDR6
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBADDR6_ADDR_M   0x0000007F  // Hub Address
+#define USB_RXHUBADDR6_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBPORT6
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBPORT6_PORT_M   0x0000007F  // Hub Port
+#define USB_RXHUBPORT6_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXFUNCADDR7
+// register.
+//
+//*****************************************************************************
+#define USB_TXFUNCADDR7_ADDR_M  0x0000007F  // Device Address
+#define USB_TXFUNCADDR7_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBADDR7
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBADDR7_ADDR_M   0x0000007F  // Hub Address
+#define USB_TXHUBADDR7_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBPORT7
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBPORT7_PORT_M   0x0000007F  // Hub Port
+#define USB_TXHUBPORT7_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXFUNCADDR7
+// register.
+//
+//*****************************************************************************
+#define USB_RXFUNCADDR7_ADDR_M  0x0000007F  // Device Address
+#define USB_RXFUNCADDR7_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBADDR7
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBADDR7_ADDR_M   0x0000007F  // Hub Address
+#define USB_RXHUBADDR7_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBPORT7
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBPORT7_PORT_M   0x0000007F  // Hub Port
+#define USB_RXHUBPORT7_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_CSRL0 register.
+//
+//*****************************************************************************
+#define USB_CSRL0_NAKTO         0x00000080  // NAK Timeout
+#define USB_CSRL0_SETENDC       0x00000080  // Setup End Clear
+#define USB_CSRL0_STATUS        0x00000040  // STATUS Packet
+#define USB_CSRL0_RXRDYC        0x00000040  // RXRDY Clear
+#define USB_CSRL0_REQPKT        0x00000020  // Request Packet
+#define USB_CSRL0_STALL         0x00000020  // Send Stall
+#define USB_CSRL0_SETEND        0x00000010  // Setup End
+#define USB_CSRL0_ERROR         0x00000010  // Error
+#define USB_CSRL0_DATAEND       0x00000008  // Data End
+#define USB_CSRL0_SETUP         0x00000008  // Setup Packet
+#define USB_CSRL0_STALLED       0x00000004  // Endpoint Stalled
+#define USB_CSRL0_TXRDY         0x00000002  // Transmit Packet Ready
+#define USB_CSRL0_RXRDY         0x00000001  // Receive Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_CSRH0 register.
+//
+//*****************************************************************************
+#define USB_CSRH0_DISPING       0x00000008  // PING Disable
+#define USB_CSRH0_DTWE          0x00000004  // Data Toggle Write Enable
+#define USB_CSRH0_DT            0x00000002  // Data Toggle
+#define USB_CSRH0_FLUSH         0x00000001  // Flush FIFO
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_COUNT0 register.
+//
+//*****************************************************************************
+#define USB_COUNT0_COUNT_M      0x0000007F  // FIFO Count
+#define USB_COUNT0_COUNT_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TYPE0 register.
+//
+//*****************************************************************************
+#define USB_TYPE0_SPEED_M       0x000000C0  // Operating Speed
+#define USB_TYPE0_SPEED_HIGH    0x00000040  // High
+#define USB_TYPE0_SPEED_FULL    0x00000080  // Full
+#define USB_TYPE0_SPEED_LOW     0x000000C0  // Low
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_NAKLMT register.
+//
+//*****************************************************************************
+#define USB_NAKLMT_NAKLMT_M     0x0000001F  // EP0 NAK Limit
+#define USB_NAKLMT_NAKLMT_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXMAXP1 register.
+//
+//*****************************************************************************
+#define USB_TXMAXP1_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_TXMAXP1_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRL1 register.
+//
+//*****************************************************************************
+#define USB_TXCSRL1_NAKTO       0x00000080  // NAK Timeout
+#define USB_TXCSRL1_CLRDT       0x00000040  // Clear Data Toggle
+#define USB_TXCSRL1_STALLED     0x00000020  // Endpoint Stalled
+#define USB_TXCSRL1_STALL       0x00000010  // Send STALL
+#define USB_TXCSRL1_SETUP       0x00000010  // Setup Packet
+#define USB_TXCSRL1_FLUSH       0x00000008  // Flush FIFO
+#define USB_TXCSRL1_ERROR       0x00000004  // Error
+#define USB_TXCSRL1_UNDRN       0x00000004  // Underrun
+#define USB_TXCSRL1_FIFONE      0x00000002  // FIFO Not Empty
+#define USB_TXCSRL1_TXRDY       0x00000001  // Transmit Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRH1 register.
+//
+//*****************************************************************************
+#define USB_TXCSRH1_AUTOSET     0x00000080  // Auto Set
+#define USB_TXCSRH1_ISO         0x00000040  // Isochronous Transfers
+#define USB_TXCSRH1_MODE        0x00000020  // Mode
+#define USB_TXCSRH1_DMAEN       0x00000010  // DMA Request Enable
+#define USB_TXCSRH1_FDT         0x00000008  // Force Data Toggle
+#define USB_TXCSRH1_DMAMOD      0x00000004  // DMA Request Mode
+#define USB_TXCSRH1_DTWE        0x00000002  // Data Toggle Write Enable
+#define USB_TXCSRH1_DT          0x00000001  // Data Toggle
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXMAXP1 register.
+//
+//*****************************************************************************
+#define USB_RXMAXP1_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_RXMAXP1_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRL1 register.
+//
+//*****************************************************************************
+#define USB_RXCSRL1_CLRDT       0x00000080  // Clear Data Toggle
+#define USB_RXCSRL1_STALLED     0x00000040  // Endpoint Stalled
+#define USB_RXCSRL1_STALL       0x00000020  // Send STALL
+#define USB_RXCSRL1_REQPKT      0x00000020  // Request Packet
+#define USB_RXCSRL1_FLUSH       0x00000010  // Flush FIFO
+#define USB_RXCSRL1_DATAERR     0x00000008  // Data Error
+#define USB_RXCSRL1_NAKTO       0x00000008  // NAK Timeout
+#define USB_RXCSRL1_OVER        0x00000004  // Overrun
+#define USB_RXCSRL1_ERROR       0x00000004  // Error
+#define USB_RXCSRL1_FULL        0x00000002  // FIFO Full
+#define USB_RXCSRL1_RXRDY       0x00000001  // Receive Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRH1 register.
+//
+//*****************************************************************************
+#define USB_RXCSRH1_AUTOCL      0x00000080  // Auto Clear
+#define USB_RXCSRH1_AUTORQ      0x00000040  // Auto Request
+#define USB_RXCSRH1_ISO         0x00000040  // Isochronous Transfers
+#define USB_RXCSRH1_DMAEN       0x00000020  // DMA Request Enable
+#define USB_RXCSRH1_DISNYET     0x00000010  // Disable NYET
+#define USB_RXCSRH1_PIDERR      0x00000010  // PID Error
+#define USB_RXCSRH1_DMAMOD      0x00000008  // DMA Request Mode
+#define USB_RXCSRH1_DTWE        0x00000004  // Data Toggle Write Enable
+#define USB_RXCSRH1_DT          0x00000002  // Data Toggle
+#define USB_RXCSRH1_INCOMPRX    0x00000001  // Incomplete RX Transmission
+                                            // Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCOUNT1 register.
+//
+//*****************************************************************************
+#define USB_RXCOUNT1_COUNT_M    0x00001FFF  // Receive Packet Count
+#define USB_RXCOUNT1_COUNT_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXTYPE1 register.
+//
+//*****************************************************************************
+#define USB_TXTYPE1_SPEED_M     0x000000C0  // Operating Speed
+#define USB_TXTYPE1_SPEED_DFLT  0x00000000  // Default
+#define USB_TXTYPE1_SPEED_HIGH  0x00000040  // High
+#define USB_TXTYPE1_SPEED_FULL  0x00000080  // Full
+#define USB_TXTYPE1_SPEED_LOW   0x000000C0  // Low
+#define USB_TXTYPE1_PROTO_M     0x00000030  // Protocol
+#define USB_TXTYPE1_PROTO_CTRL  0x00000000  // Control
+#define USB_TXTYPE1_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_TXTYPE1_PROTO_BULK  0x00000020  // Bulk
+#define USB_TXTYPE1_PROTO_INT   0x00000030  // Interrupt
+#define USB_TXTYPE1_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_TXTYPE1_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXINTERVAL1
+// register.
+//
+//*****************************************************************************
+#define USB_TXINTERVAL1_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_TXINTERVAL1_TXPOLL_M                                              \
+                                0x000000FF  // TX Polling
+#define USB_TXINTERVAL1_TXPOLL_S                                              \
+                                0
+#define USB_TXINTERVAL1_NAKLMT_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXTYPE1 register.
+//
+//*****************************************************************************
+#define USB_RXTYPE1_SPEED_M     0x000000C0  // Operating Speed
+#define USB_RXTYPE1_SPEED_DFLT  0x00000000  // Default
+#define USB_RXTYPE1_SPEED_HIGH  0x00000040  // High
+#define USB_RXTYPE1_SPEED_FULL  0x00000080  // Full
+#define USB_RXTYPE1_SPEED_LOW   0x000000C0  // Low
+#define USB_RXTYPE1_PROTO_M     0x00000030  // Protocol
+#define USB_RXTYPE1_PROTO_CTRL  0x00000000  // Control
+#define USB_RXTYPE1_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_RXTYPE1_PROTO_BULK  0x00000020  // Bulk
+#define USB_RXTYPE1_PROTO_INT   0x00000030  // Interrupt
+#define USB_RXTYPE1_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_RXTYPE1_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXINTERVAL1
+// register.
+//
+//*****************************************************************************
+#define USB_RXINTERVAL1_TXPOLL_M                                              \
+                                0x000000FF  // RX Polling
+#define USB_RXINTERVAL1_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_RXINTERVAL1_TXPOLL_S                                              \
+                                0
+#define USB_RXINTERVAL1_NAKLMT_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXMAXP2 register.
+//
+//*****************************************************************************
+#define USB_TXMAXP2_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_TXMAXP2_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRL2 register.
+//
+//*****************************************************************************
+#define USB_TXCSRL2_NAKTO       0x00000080  // NAK Timeout
+#define USB_TXCSRL2_CLRDT       0x00000040  // Clear Data Toggle
+#define USB_TXCSRL2_STALLED     0x00000020  // Endpoint Stalled
+#define USB_TXCSRL2_SETUP       0x00000010  // Setup Packet
+#define USB_TXCSRL2_STALL       0x00000010  // Send STALL
+#define USB_TXCSRL2_FLUSH       0x00000008  // Flush FIFO
+#define USB_TXCSRL2_ERROR       0x00000004  // Error
+#define USB_TXCSRL2_UNDRN       0x00000004  // Underrun
+#define USB_TXCSRL2_FIFONE      0x00000002  // FIFO Not Empty
+#define USB_TXCSRL2_TXRDY       0x00000001  // Transmit Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRH2 register.
+//
+//*****************************************************************************
+#define USB_TXCSRH2_AUTOSET     0x00000080  // Auto Set
+#define USB_TXCSRH2_ISO         0x00000040  // Isochronous Transfers
+#define USB_TXCSRH2_MODE        0x00000020  // Mode
+#define USB_TXCSRH2_DMAEN       0x00000010  // DMA Request Enable
+#define USB_TXCSRH2_FDT         0x00000008  // Force Data Toggle
+#define USB_TXCSRH2_DMAMOD      0x00000004  // DMA Request Mode
+#define USB_TXCSRH2_DTWE        0x00000002  // Data Toggle Write Enable
+#define USB_TXCSRH2_DT          0x00000001  // Data Toggle
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXMAXP2 register.
+//
+//*****************************************************************************
+#define USB_RXMAXP2_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_RXMAXP2_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRL2 register.
+//
+//*****************************************************************************
+#define USB_RXCSRL2_CLRDT       0x00000080  // Clear Data Toggle
+#define USB_RXCSRL2_STALLED     0x00000040  // Endpoint Stalled
+#define USB_RXCSRL2_REQPKT      0x00000020  // Request Packet
+#define USB_RXCSRL2_STALL       0x00000020  // Send STALL
+#define USB_RXCSRL2_FLUSH       0x00000010  // Flush FIFO
+#define USB_RXCSRL2_DATAERR     0x00000008  // Data Error
+#define USB_RXCSRL2_NAKTO       0x00000008  // NAK Timeout
+#define USB_RXCSRL2_ERROR       0x00000004  // Error
+#define USB_RXCSRL2_OVER        0x00000004  // Overrun
+#define USB_RXCSRL2_FULL        0x00000002  // FIFO Full
+#define USB_RXCSRL2_RXRDY       0x00000001  // Receive Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRH2 register.
+//
+//*****************************************************************************
+#define USB_RXCSRH2_AUTOCL      0x00000080  // Auto Clear
+#define USB_RXCSRH2_AUTORQ      0x00000040  // Auto Request
+#define USB_RXCSRH2_ISO         0x00000040  // Isochronous Transfers
+#define USB_RXCSRH2_DMAEN       0x00000020  // DMA Request Enable
+#define USB_RXCSRH2_DISNYET     0x00000010  // Disable NYET
+#define USB_RXCSRH2_PIDERR      0x00000010  // PID Error
+#define USB_RXCSRH2_DMAMOD      0x00000008  // DMA Request Mode
+#define USB_RXCSRH2_DTWE        0x00000004  // Data Toggle Write Enable
+#define USB_RXCSRH2_DT          0x00000002  // Data Toggle
+#define USB_RXCSRH2_INCOMPRX    0x00000001  // Incomplete RX Transmission
+                                            // Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCOUNT2 register.
+//
+//*****************************************************************************
+#define USB_RXCOUNT2_COUNT_M    0x00001FFF  // Receive Packet Count
+#define USB_RXCOUNT2_COUNT_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXTYPE2 register.
+//
+//*****************************************************************************
+#define USB_TXTYPE2_SPEED_M     0x000000C0  // Operating Speed
+#define USB_TXTYPE2_SPEED_DFLT  0x00000000  // Default
+#define USB_TXTYPE2_SPEED_HIGH  0x00000040  // High
+#define USB_TXTYPE2_SPEED_FULL  0x00000080  // Full
+#define USB_TXTYPE2_SPEED_LOW   0x000000C0  // Low
+#define USB_TXTYPE2_PROTO_M     0x00000030  // Protocol
+#define USB_TXTYPE2_PROTO_CTRL  0x00000000  // Control
+#define USB_TXTYPE2_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_TXTYPE2_PROTO_BULK  0x00000020  // Bulk
+#define USB_TXTYPE2_PROTO_INT   0x00000030  // Interrupt
+#define USB_TXTYPE2_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_TXTYPE2_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXINTERVAL2
+// register.
+//
+//*****************************************************************************
+#define USB_TXINTERVAL2_TXPOLL_M                                              \
+                                0x000000FF  // TX Polling
+#define USB_TXINTERVAL2_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_TXINTERVAL2_NAKLMT_S                                              \
+                                0
+#define USB_TXINTERVAL2_TXPOLL_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXTYPE2 register.
+//
+//*****************************************************************************
+#define USB_RXTYPE2_SPEED_M     0x000000C0  // Operating Speed
+#define USB_RXTYPE2_SPEED_DFLT  0x00000000  // Default
+#define USB_RXTYPE2_SPEED_HIGH  0x00000040  // High
+#define USB_RXTYPE2_SPEED_FULL  0x00000080  // Full
+#define USB_RXTYPE2_SPEED_LOW   0x000000C0  // Low
+#define USB_RXTYPE2_PROTO_M     0x00000030  // Protocol
+#define USB_RXTYPE2_PROTO_CTRL  0x00000000  // Control
+#define USB_RXTYPE2_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_RXTYPE2_PROTO_BULK  0x00000020  // Bulk
+#define USB_RXTYPE2_PROTO_INT   0x00000030  // Interrupt
+#define USB_RXTYPE2_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_RXTYPE2_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXINTERVAL2
+// register.
+//
+//*****************************************************************************
+#define USB_RXINTERVAL2_TXPOLL_M                                              \
+                                0x000000FF  // RX Polling
+#define USB_RXINTERVAL2_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_RXINTERVAL2_TXPOLL_S                                              \
+                                0
+#define USB_RXINTERVAL2_NAKLMT_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXMAXP3 register.
+//
+//*****************************************************************************
+#define USB_TXMAXP3_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_TXMAXP3_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRL3 register.
+//
+//*****************************************************************************
+#define USB_TXCSRL3_NAKTO       0x00000080  // NAK Timeout
+#define USB_TXCSRL3_CLRDT       0x00000040  // Clear Data Toggle
+#define USB_TXCSRL3_STALLED     0x00000020  // Endpoint Stalled
+#define USB_TXCSRL3_SETUP       0x00000010  // Setup Packet
+#define USB_TXCSRL3_STALL       0x00000010  // Send STALL
+#define USB_TXCSRL3_FLUSH       0x00000008  // Flush FIFO
+#define USB_TXCSRL3_ERROR       0x00000004  // Error
+#define USB_TXCSRL3_UNDRN       0x00000004  // Underrun
+#define USB_TXCSRL3_FIFONE      0x00000002  // FIFO Not Empty
+#define USB_TXCSRL3_TXRDY       0x00000001  // Transmit Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRH3 register.
+//
+//*****************************************************************************
+#define USB_TXCSRH3_AUTOSET     0x00000080  // Auto Set
+#define USB_TXCSRH3_ISO         0x00000040  // Isochronous Transfers
+#define USB_TXCSRH3_MODE        0x00000020  // Mode
+#define USB_TXCSRH3_DMAEN       0x00000010  // DMA Request Enable
+#define USB_TXCSRH3_FDT         0x00000008  // Force Data Toggle
+#define USB_TXCSRH3_DMAMOD      0x00000004  // DMA Request Mode
+#define USB_TXCSRH3_DTWE        0x00000002  // Data Toggle Write Enable
+#define USB_TXCSRH3_DT          0x00000001  // Data Toggle
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXMAXP3 register.
+//
+//*****************************************************************************
+#define USB_RXMAXP3_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_RXMAXP3_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRL3 register.
+//
+//*****************************************************************************
+#define USB_RXCSRL3_CLRDT       0x00000080  // Clear Data Toggle
+#define USB_RXCSRL3_STALLED     0x00000040  // Endpoint Stalled
+#define USB_RXCSRL3_STALL       0x00000020  // Send STALL
+#define USB_RXCSRL3_REQPKT      0x00000020  // Request Packet
+#define USB_RXCSRL3_FLUSH       0x00000010  // Flush FIFO
+#define USB_RXCSRL3_DATAERR     0x00000008  // Data Error
+#define USB_RXCSRL3_NAKTO       0x00000008  // NAK Timeout
+#define USB_RXCSRL3_ERROR       0x00000004  // Error
+#define USB_RXCSRL3_OVER        0x00000004  // Overrun
+#define USB_RXCSRL3_FULL        0x00000002  // FIFO Full
+#define USB_RXCSRL3_RXRDY       0x00000001  // Receive Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRH3 register.
+//
+//*****************************************************************************
+#define USB_RXCSRH3_AUTOCL      0x00000080  // Auto Clear
+#define USB_RXCSRH3_AUTORQ      0x00000040  // Auto Request
+#define USB_RXCSRH3_ISO         0x00000040  // Isochronous Transfers
+#define USB_RXCSRH3_DMAEN       0x00000020  // DMA Request Enable
+#define USB_RXCSRH3_DISNYET     0x00000010  // Disable NYET
+#define USB_RXCSRH3_PIDERR      0x00000010  // PID Error
+#define USB_RXCSRH3_DMAMOD      0x00000008  // DMA Request Mode
+#define USB_RXCSRH3_DTWE        0x00000004  // Data Toggle Write Enable
+#define USB_RXCSRH3_DT          0x00000002  // Data Toggle
+#define USB_RXCSRH3_INCOMPRX    0x00000001  // Incomplete RX Transmission
+                                            // Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCOUNT3 register.
+//
+//*****************************************************************************
+#define USB_RXCOUNT3_COUNT_M    0x00001FFF  // Receive Packet Count
+#define USB_RXCOUNT3_COUNT_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXTYPE3 register.
+//
+//*****************************************************************************
+#define USB_TXTYPE3_SPEED_M     0x000000C0  // Operating Speed
+#define USB_TXTYPE3_SPEED_DFLT  0x00000000  // Default
+#define USB_TXTYPE3_SPEED_HIGH  0x00000040  // High
+#define USB_TXTYPE3_SPEED_FULL  0x00000080  // Full
+#define USB_TXTYPE3_SPEED_LOW   0x000000C0  // Low
+#define USB_TXTYPE3_PROTO_M     0x00000030  // Protocol
+#define USB_TXTYPE3_PROTO_CTRL  0x00000000  // Control
+#define USB_TXTYPE3_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_TXTYPE3_PROTO_BULK  0x00000020  // Bulk
+#define USB_TXTYPE3_PROTO_INT   0x00000030  // Interrupt
+#define USB_TXTYPE3_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_TXTYPE3_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXINTERVAL3
+// register.
+//
+//*****************************************************************************
+#define USB_TXINTERVAL3_TXPOLL_M                                              \
+                                0x000000FF  // TX Polling
+#define USB_TXINTERVAL3_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_TXINTERVAL3_TXPOLL_S                                              \
+                                0
+#define USB_TXINTERVAL3_NAKLMT_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXTYPE3 register.
+//
+//*****************************************************************************
+#define USB_RXTYPE3_SPEED_M     0x000000C0  // Operating Speed
+#define USB_RXTYPE3_SPEED_DFLT  0x00000000  // Default
+#define USB_RXTYPE3_SPEED_HIGH  0x00000040  // High
+#define USB_RXTYPE3_SPEED_FULL  0x00000080  // Full
+#define USB_RXTYPE3_SPEED_LOW   0x000000C0  // Low
+#define USB_RXTYPE3_PROTO_M     0x00000030  // Protocol
+#define USB_RXTYPE3_PROTO_CTRL  0x00000000  // Control
+#define USB_RXTYPE3_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_RXTYPE3_PROTO_BULK  0x00000020  // Bulk
+#define USB_RXTYPE3_PROTO_INT   0x00000030  // Interrupt
+#define USB_RXTYPE3_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_RXTYPE3_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXINTERVAL3
+// register.
+//
+//*****************************************************************************
+#define USB_RXINTERVAL3_TXPOLL_M                                              \
+                                0x000000FF  // RX Polling
+#define USB_RXINTERVAL3_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_RXINTERVAL3_TXPOLL_S                                              \
+                                0
+#define USB_RXINTERVAL3_NAKLMT_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXMAXP4 register.
+//
+//*****************************************************************************
+#define USB_TXMAXP4_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_TXMAXP4_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRL4 register.
+//
+//*****************************************************************************
+#define USB_TXCSRL4_NAKTO       0x00000080  // NAK Timeout
+#define USB_TXCSRL4_CLRDT       0x00000040  // Clear Data Toggle
+#define USB_TXCSRL4_STALLED     0x00000020  // Endpoint Stalled
+#define USB_TXCSRL4_SETUP       0x00000010  // Setup Packet
+#define USB_TXCSRL4_STALL       0x00000010  // Send STALL
+#define USB_TXCSRL4_FLUSH       0x00000008  // Flush FIFO
+#define USB_TXCSRL4_ERROR       0x00000004  // Error
+#define USB_TXCSRL4_UNDRN       0x00000004  // Underrun
+#define USB_TXCSRL4_FIFONE      0x00000002  // FIFO Not Empty
+#define USB_TXCSRL4_TXRDY       0x00000001  // Transmit Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRH4 register.
+//
+//*****************************************************************************
+#define USB_TXCSRH4_AUTOSET     0x00000080  // Auto Set
+#define USB_TXCSRH4_ISO         0x00000040  // Isochronous Transfers
+#define USB_TXCSRH4_MODE        0x00000020  // Mode
+#define USB_TXCSRH4_DMAEN       0x00000010  // DMA Request Enable
+#define USB_TXCSRH4_FDT         0x00000008  // Force Data Toggle
+#define USB_TXCSRH4_DMAMOD      0x00000004  // DMA Request Mode
+#define USB_TXCSRH4_DTWE        0x00000002  // Data Toggle Write Enable
+#define USB_TXCSRH4_DT          0x00000001  // Data Toggle
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXMAXP4 register.
+//
+//*****************************************************************************
+#define USB_RXMAXP4_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_RXMAXP4_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRL4 register.
+//
+//*****************************************************************************
+#define USB_RXCSRL4_CLRDT       0x00000080  // Clear Data Toggle
+#define USB_RXCSRL4_STALLED     0x00000040  // Endpoint Stalled
+#define USB_RXCSRL4_STALL       0x00000020  // Send STALL
+#define USB_RXCSRL4_REQPKT      0x00000020  // Request Packet
+#define USB_RXCSRL4_FLUSH       0x00000010  // Flush FIFO
+#define USB_RXCSRL4_NAKTO       0x00000008  // NAK Timeout
+#define USB_RXCSRL4_DATAERR     0x00000008  // Data Error
+#define USB_RXCSRL4_OVER        0x00000004  // Overrun
+#define USB_RXCSRL4_ERROR       0x00000004  // Error
+#define USB_RXCSRL4_FULL        0x00000002  // FIFO Full
+#define USB_RXCSRL4_RXRDY       0x00000001  // Receive Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRH4 register.
+//
+//*****************************************************************************
+#define USB_RXCSRH4_AUTOCL      0x00000080  // Auto Clear
+#define USB_RXCSRH4_AUTORQ      0x00000040  // Auto Request
+#define USB_RXCSRH4_ISO         0x00000040  // Isochronous Transfers
+#define USB_RXCSRH4_DMAEN       0x00000020  // DMA Request Enable
+#define USB_RXCSRH4_DISNYET     0x00000010  // Disable NYET
+#define USB_RXCSRH4_PIDERR      0x00000010  // PID Error
+#define USB_RXCSRH4_DMAMOD      0x00000008  // DMA Request Mode
+#define USB_RXCSRH4_DTWE        0x00000004  // Data Toggle Write Enable
+#define USB_RXCSRH4_DT          0x00000002  // Data Toggle
+#define USB_RXCSRH4_INCOMPRX    0x00000001  // Incomplete RX Transmission
+                                            // Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCOUNT4 register.
+//
+//*****************************************************************************
+#define USB_RXCOUNT4_COUNT_M    0x00001FFF  // Receive Packet Count
+#define USB_RXCOUNT4_COUNT_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXTYPE4 register.
+//
+//*****************************************************************************
+#define USB_TXTYPE4_SPEED_M     0x000000C0  // Operating Speed
+#define USB_TXTYPE4_SPEED_DFLT  0x00000000  // Default
+#define USB_TXTYPE4_SPEED_HIGH  0x00000040  // High
+#define USB_TXTYPE4_SPEED_FULL  0x00000080  // Full
+#define USB_TXTYPE4_SPEED_LOW   0x000000C0  // Low
+#define USB_TXTYPE4_PROTO_M     0x00000030  // Protocol
+#define USB_TXTYPE4_PROTO_CTRL  0x00000000  // Control
+#define USB_TXTYPE4_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_TXTYPE4_PROTO_BULK  0x00000020  // Bulk
+#define USB_TXTYPE4_PROTO_INT   0x00000030  // Interrupt
+#define USB_TXTYPE4_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_TXTYPE4_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXINTERVAL4
+// register.
+//
+//*****************************************************************************
+#define USB_TXINTERVAL4_TXPOLL_M                                              \
+                                0x000000FF  // TX Polling
+#define USB_TXINTERVAL4_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_TXINTERVAL4_NAKLMT_S                                              \
+                                0
+#define USB_TXINTERVAL4_TXPOLL_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXTYPE4 register.
+//
+//*****************************************************************************
+#define USB_RXTYPE4_SPEED_M     0x000000C0  // Operating Speed
+#define USB_RXTYPE4_SPEED_DFLT  0x00000000  // Default
+#define USB_RXTYPE4_SPEED_HIGH  0x00000040  // High
+#define USB_RXTYPE4_SPEED_FULL  0x00000080  // Full
+#define USB_RXTYPE4_SPEED_LOW   0x000000C0  // Low
+#define USB_RXTYPE4_PROTO_M     0x00000030  // Protocol
+#define USB_RXTYPE4_PROTO_CTRL  0x00000000  // Control
+#define USB_RXTYPE4_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_RXTYPE4_PROTO_BULK  0x00000020  // Bulk
+#define USB_RXTYPE4_PROTO_INT   0x00000030  // Interrupt
+#define USB_RXTYPE4_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_RXTYPE4_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXINTERVAL4
+// register.
+//
+//*****************************************************************************
+#define USB_RXINTERVAL4_TXPOLL_M                                              \
+                                0x000000FF  // RX Polling
+#define USB_RXINTERVAL4_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_RXINTERVAL4_NAKLMT_S                                              \
+                                0
+#define USB_RXINTERVAL4_TXPOLL_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXMAXP5 register.
+//
+//*****************************************************************************
+#define USB_TXMAXP5_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_TXMAXP5_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRL5 register.
+//
+//*****************************************************************************
+#define USB_TXCSRL5_NAKTO       0x00000080  // NAK Timeout
+#define USB_TXCSRL5_CLRDT       0x00000040  // Clear Data Toggle
+#define USB_TXCSRL5_STALLED     0x00000020  // Endpoint Stalled
+#define USB_TXCSRL5_SETUP       0x00000010  // Setup Packet
+#define USB_TXCSRL5_STALL       0x00000010  // Send STALL
+#define USB_TXCSRL5_FLUSH       0x00000008  // Flush FIFO
+#define USB_TXCSRL5_ERROR       0x00000004  // Error
+#define USB_TXCSRL5_UNDRN       0x00000004  // Underrun
+#define USB_TXCSRL5_FIFONE      0x00000002  // FIFO Not Empty
+#define USB_TXCSRL5_TXRDY       0x00000001  // Transmit Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRH5 register.
+//
+//*****************************************************************************
+#define USB_TXCSRH5_AUTOSET     0x00000080  // Auto Set
+#define USB_TXCSRH5_ISO         0x00000040  // Isochronous Transfers
+#define USB_TXCSRH5_MODE        0x00000020  // Mode
+#define USB_TXCSRH5_DMAEN       0x00000010  // DMA Request Enable
+#define USB_TXCSRH5_FDT         0x00000008  // Force Data Toggle
+#define USB_TXCSRH5_DMAMOD      0x00000004  // DMA Request Mode
+#define USB_TXCSRH5_DTWE        0x00000002  // Data Toggle Write Enable
+#define USB_TXCSRH5_DT          0x00000001  // Data Toggle
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXMAXP5 register.
+//
+//*****************************************************************************
+#define USB_RXMAXP5_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_RXMAXP5_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRL5 register.
+//
+//*****************************************************************************
+#define USB_RXCSRL5_CLRDT       0x00000080  // Clear Data Toggle
+#define USB_RXCSRL5_STALLED     0x00000040  // Endpoint Stalled
+#define USB_RXCSRL5_STALL       0x00000020  // Send STALL
+#define USB_RXCSRL5_REQPKT      0x00000020  // Request Packet
+#define USB_RXCSRL5_FLUSH       0x00000010  // Flush FIFO
+#define USB_RXCSRL5_NAKTO       0x00000008  // NAK Timeout
+#define USB_RXCSRL5_DATAERR     0x00000008  // Data Error
+#define USB_RXCSRL5_ERROR       0x00000004  // Error
+#define USB_RXCSRL5_OVER        0x00000004  // Overrun
+#define USB_RXCSRL5_FULL        0x00000002  // FIFO Full
+#define USB_RXCSRL5_RXRDY       0x00000001  // Receive Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRH5 register.
+//
+//*****************************************************************************
+#define USB_RXCSRH5_AUTOCL      0x00000080  // Auto Clear
+#define USB_RXCSRH5_AUTORQ      0x00000040  // Auto Request
+#define USB_RXCSRH5_ISO         0x00000040  // Isochronous Transfers
+#define USB_RXCSRH5_DMAEN       0x00000020  // DMA Request Enable
+#define USB_RXCSRH5_DISNYET     0x00000010  // Disable NYET
+#define USB_RXCSRH5_PIDERR      0x00000010  // PID Error
+#define USB_RXCSRH5_DMAMOD      0x00000008  // DMA Request Mode
+#define USB_RXCSRH5_DTWE        0x00000004  // Data Toggle Write Enable
+#define USB_RXCSRH5_DT          0x00000002  // Data Toggle
+#define USB_RXCSRH5_INCOMPRX    0x00000001  // Incomplete RX Transmission
+                                            // Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCOUNT5 register.
+//
+//*****************************************************************************
+#define USB_RXCOUNT5_COUNT_M    0x00001FFF  // Receive Packet Count
+#define USB_RXCOUNT5_COUNT_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXTYPE5 register.
+//
+//*****************************************************************************
+#define USB_TXTYPE5_SPEED_M     0x000000C0  // Operating Speed
+#define USB_TXTYPE5_SPEED_DFLT  0x00000000  // Default
+#define USB_TXTYPE5_SPEED_HIGH  0x00000040  // High
+#define USB_TXTYPE5_SPEED_FULL  0x00000080  // Full
+#define USB_TXTYPE5_SPEED_LOW   0x000000C0  // Low
+#define USB_TXTYPE5_PROTO_M     0x00000030  // Protocol
+#define USB_TXTYPE5_PROTO_CTRL  0x00000000  // Control
+#define USB_TXTYPE5_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_TXTYPE5_PROTO_BULK  0x00000020  // Bulk
+#define USB_TXTYPE5_PROTO_INT   0x00000030  // Interrupt
+#define USB_TXTYPE5_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_TXTYPE5_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXINTERVAL5
+// register.
+//
+//*****************************************************************************
+#define USB_TXINTERVAL5_TXPOLL_M                                              \
+                                0x000000FF  // TX Polling
+#define USB_TXINTERVAL5_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_TXINTERVAL5_NAKLMT_S                                              \
+                                0
+#define USB_TXINTERVAL5_TXPOLL_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXTYPE5 register.
+//
+//*****************************************************************************
+#define USB_RXTYPE5_SPEED_M     0x000000C0  // Operating Speed
+#define USB_RXTYPE5_SPEED_DFLT  0x00000000  // Default
+#define USB_RXTYPE5_SPEED_HIGH  0x00000040  // High
+#define USB_RXTYPE5_SPEED_FULL  0x00000080  // Full
+#define USB_RXTYPE5_SPEED_LOW   0x000000C0  // Low
+#define USB_RXTYPE5_PROTO_M     0x00000030  // Protocol
+#define USB_RXTYPE5_PROTO_CTRL  0x00000000  // Control
+#define USB_RXTYPE5_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_RXTYPE5_PROTO_BULK  0x00000020  // Bulk
+#define USB_RXTYPE5_PROTO_INT   0x00000030  // Interrupt
+#define USB_RXTYPE5_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_RXTYPE5_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXINTERVAL5
+// register.
+//
+//*****************************************************************************
+#define USB_RXINTERVAL5_TXPOLL_M                                              \
+                                0x000000FF  // RX Polling
+#define USB_RXINTERVAL5_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_RXINTERVAL5_TXPOLL_S                                              \
+                                0
+#define USB_RXINTERVAL5_NAKLMT_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXMAXP6 register.
+//
+//*****************************************************************************
+#define USB_TXMAXP6_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_TXMAXP6_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRL6 register.
+//
+//*****************************************************************************
+#define USB_TXCSRL6_NAKTO       0x00000080  // NAK Timeout
+#define USB_TXCSRL6_CLRDT       0x00000040  // Clear Data Toggle
+#define USB_TXCSRL6_STALLED     0x00000020  // Endpoint Stalled
+#define USB_TXCSRL6_STALL       0x00000010  // Send STALL
+#define USB_TXCSRL6_SETUP       0x00000010  // Setup Packet
+#define USB_TXCSRL6_FLUSH       0x00000008  // Flush FIFO
+#define USB_TXCSRL6_ERROR       0x00000004  // Error
+#define USB_TXCSRL6_UNDRN       0x00000004  // Underrun
+#define USB_TXCSRL6_FIFONE      0x00000002  // FIFO Not Empty
+#define USB_TXCSRL6_TXRDY       0x00000001  // Transmit Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRH6 register.
+//
+//*****************************************************************************
+#define USB_TXCSRH6_AUTOSET     0x00000080  // Auto Set
+#define USB_TXCSRH6_ISO         0x00000040  // Isochronous Transfers
+#define USB_TXCSRH6_MODE        0x00000020  // Mode
+#define USB_TXCSRH6_DMAEN       0x00000010  // DMA Request Enable
+#define USB_TXCSRH6_FDT         0x00000008  // Force Data Toggle
+#define USB_TXCSRH6_DMAMOD      0x00000004  // DMA Request Mode
+#define USB_TXCSRH6_DTWE        0x00000002  // Data Toggle Write Enable
+#define USB_TXCSRH6_DT          0x00000001  // Data Toggle
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXMAXP6 register.
+//
+//*****************************************************************************
+#define USB_RXMAXP6_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_RXMAXP6_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRL6 register.
+//
+//*****************************************************************************
+#define USB_RXCSRL6_CLRDT       0x00000080  // Clear Data Toggle
+#define USB_RXCSRL6_STALLED     0x00000040  // Endpoint Stalled
+#define USB_RXCSRL6_REQPKT      0x00000020  // Request Packet
+#define USB_RXCSRL6_STALL       0x00000020  // Send STALL
+#define USB_RXCSRL6_FLUSH       0x00000010  // Flush FIFO
+#define USB_RXCSRL6_NAKTO       0x00000008  // NAK Timeout
+#define USB_RXCSRL6_DATAERR     0x00000008  // Data Error
+#define USB_RXCSRL6_ERROR       0x00000004  // Error
+#define USB_RXCSRL6_OVER        0x00000004  // Overrun
+#define USB_RXCSRL6_FULL        0x00000002  // FIFO Full
+#define USB_RXCSRL6_RXRDY       0x00000001  // Receive Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRH6 register.
+//
+//*****************************************************************************
+#define USB_RXCSRH6_AUTOCL      0x00000080  // Auto Clear
+#define USB_RXCSRH6_AUTORQ      0x00000040  // Auto Request
+#define USB_RXCSRH6_ISO         0x00000040  // Isochronous Transfers
+#define USB_RXCSRH6_DMAEN       0x00000020  // DMA Request Enable
+#define USB_RXCSRH6_DISNYET     0x00000010  // Disable NYET
+#define USB_RXCSRH6_PIDERR      0x00000010  // PID Error
+#define USB_RXCSRH6_DMAMOD      0x00000008  // DMA Request Mode
+#define USB_RXCSRH6_DTWE        0x00000004  // Data Toggle Write Enable
+#define USB_RXCSRH6_DT          0x00000002  // Data Toggle
+#define USB_RXCSRH6_INCOMPRX    0x00000001  // Incomplete RX Transmission
+                                            // Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCOUNT6 register.
+//
+//*****************************************************************************
+#define USB_RXCOUNT6_COUNT_M    0x00001FFF  // Receive Packet Count
+#define USB_RXCOUNT6_COUNT_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXTYPE6 register.
+//
+//*****************************************************************************
+#define USB_TXTYPE6_SPEED_M     0x000000C0  // Operating Speed
+#define USB_TXTYPE6_SPEED_DFLT  0x00000000  // Default
+#define USB_TXTYPE6_SPEED_HIGH  0x00000040  // High
+#define USB_TXTYPE6_SPEED_FULL  0x00000080  // Full
+#define USB_TXTYPE6_SPEED_LOW   0x000000C0  // Low
+#define USB_TXTYPE6_PROTO_M     0x00000030  // Protocol
+#define USB_TXTYPE6_PROTO_CTRL  0x00000000  // Control
+#define USB_TXTYPE6_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_TXTYPE6_PROTO_BULK  0x00000020  // Bulk
+#define USB_TXTYPE6_PROTO_INT   0x00000030  // Interrupt
+#define USB_TXTYPE6_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_TXTYPE6_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXINTERVAL6
+// register.
+//
+//*****************************************************************************
+#define USB_TXINTERVAL6_TXPOLL_M                                              \
+                                0x000000FF  // TX Polling
+#define USB_TXINTERVAL6_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_TXINTERVAL6_TXPOLL_S                                              \
+                                0
+#define USB_TXINTERVAL6_NAKLMT_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXTYPE6 register.
+//
+//*****************************************************************************
+#define USB_RXTYPE6_SPEED_M     0x000000C0  // Operating Speed
+#define USB_RXTYPE6_SPEED_DFLT  0x00000000  // Default
+#define USB_RXTYPE6_SPEED_HIGH  0x00000040  // High
+#define USB_RXTYPE6_SPEED_FULL  0x00000080  // Full
+#define USB_RXTYPE6_SPEED_LOW   0x000000C0  // Low
+#define USB_RXTYPE6_PROTO_M     0x00000030  // Protocol
+#define USB_RXTYPE6_PROTO_CTRL  0x00000000  // Control
+#define USB_RXTYPE6_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_RXTYPE6_PROTO_BULK  0x00000020  // Bulk
+#define USB_RXTYPE6_PROTO_INT   0x00000030  // Interrupt
+#define USB_RXTYPE6_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_RXTYPE6_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXINTERVAL6
+// register.
+//
+//*****************************************************************************
+#define USB_RXINTERVAL6_TXPOLL_M                                              \
+                                0x000000FF  // RX Polling
+#define USB_RXINTERVAL6_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_RXINTERVAL6_NAKLMT_S                                              \
+                                0
+#define USB_RXINTERVAL6_TXPOLL_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXMAXP7 register.
+//
+//*****************************************************************************
+#define USB_TXMAXP7_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_TXMAXP7_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRL7 register.
+//
+//*****************************************************************************
+#define USB_TXCSRL7_NAKTO       0x00000080  // NAK Timeout
+#define USB_TXCSRL7_CLRDT       0x00000040  // Clear Data Toggle
+#define USB_TXCSRL7_STALLED     0x00000020  // Endpoint Stalled
+#define USB_TXCSRL7_STALL       0x00000010  // Send STALL
+#define USB_TXCSRL7_SETUP       0x00000010  // Setup Packet
+#define USB_TXCSRL7_FLUSH       0x00000008  // Flush FIFO
+#define USB_TXCSRL7_ERROR       0x00000004  // Error
+#define USB_TXCSRL7_UNDRN       0x00000004  // Underrun
+#define USB_TXCSRL7_FIFONE      0x00000002  // FIFO Not Empty
+#define USB_TXCSRL7_TXRDY       0x00000001  // Transmit Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRH7 register.
+//
+//*****************************************************************************
+#define USB_TXCSRH7_AUTOSET     0x00000080  // Auto Set
+#define USB_TXCSRH7_ISO         0x00000040  // Isochronous Transfers
+#define USB_TXCSRH7_MODE        0x00000020  // Mode
+#define USB_TXCSRH7_DMAEN       0x00000010  // DMA Request Enable
+#define USB_TXCSRH7_FDT         0x00000008  // Force Data Toggle
+#define USB_TXCSRH7_DMAMOD      0x00000004  // DMA Request Mode
+#define USB_TXCSRH7_DTWE        0x00000002  // Data Toggle Write Enable
+#define USB_TXCSRH7_DT          0x00000001  // Data Toggle
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXMAXP7 register.
+//
+//*****************************************************************************
+#define USB_RXMAXP7_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_RXMAXP7_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRL7 register.
+//
+//*****************************************************************************
+#define USB_RXCSRL7_CLRDT       0x00000080  // Clear Data Toggle
+#define USB_RXCSRL7_STALLED     0x00000040  // Endpoint Stalled
+#define USB_RXCSRL7_REQPKT      0x00000020  // Request Packet
+#define USB_RXCSRL7_STALL       0x00000020  // Send STALL
+#define USB_RXCSRL7_FLUSH       0x00000010  // Flush FIFO
+#define USB_RXCSRL7_DATAERR     0x00000008  // Data Error
+#define USB_RXCSRL7_NAKTO       0x00000008  // NAK Timeout
+#define USB_RXCSRL7_ERROR       0x00000004  // Error
+#define USB_RXCSRL7_OVER        0x00000004  // Overrun
+#define USB_RXCSRL7_FULL        0x00000002  // FIFO Full
+#define USB_RXCSRL7_RXRDY       0x00000001  // Receive Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRH7 register.
+//
+//*****************************************************************************
+#define USB_RXCSRH7_AUTOCL      0x00000080  // Auto Clear
+#define USB_RXCSRH7_ISO         0x00000040  // Isochronous Transfers
+#define USB_RXCSRH7_AUTORQ      0x00000040  // Auto Request
+#define USB_RXCSRH7_DMAEN       0x00000020  // DMA Request Enable
+#define USB_RXCSRH7_PIDERR      0x00000010  // PID Error
+#define USB_RXCSRH7_DISNYET     0x00000010  // Disable NYET
+#define USB_RXCSRH7_DMAMOD      0x00000008  // DMA Request Mode
+#define USB_RXCSRH7_DTWE        0x00000004  // Data Toggle Write Enable
+#define USB_RXCSRH7_DT          0x00000002  // Data Toggle
+#define USB_RXCSRH7_INCOMPRX    0x00000001  // Incomplete RX Transmission
+                                            // Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCOUNT7 register.
+//
+//*****************************************************************************
+#define USB_RXCOUNT7_COUNT_M    0x00001FFF  // Receive Packet Count
+#define USB_RXCOUNT7_COUNT_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXTYPE7 register.
+//
+//*****************************************************************************
+#define USB_TXTYPE7_SPEED_M     0x000000C0  // Operating Speed
+#define USB_TXTYPE7_SPEED_DFLT  0x00000000  // Default
+#define USB_TXTYPE7_SPEED_HIGH  0x00000040  // High
+#define USB_TXTYPE7_SPEED_FULL  0x00000080  // Full
+#define USB_TXTYPE7_SPEED_LOW   0x000000C0  // Low
+#define USB_TXTYPE7_PROTO_M     0x00000030  // Protocol
+#define USB_TXTYPE7_PROTO_CTRL  0x00000000  // Control
+#define USB_TXTYPE7_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_TXTYPE7_PROTO_BULK  0x00000020  // Bulk
+#define USB_TXTYPE7_PROTO_INT   0x00000030  // Interrupt
+#define USB_TXTYPE7_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_TXTYPE7_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXINTERVAL7
+// register.
+//
+//*****************************************************************************
+#define USB_TXINTERVAL7_TXPOLL_M                                              \
+                                0x000000FF  // TX Polling
+#define USB_TXINTERVAL7_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_TXINTERVAL7_NAKLMT_S                                              \
+                                0
+#define USB_TXINTERVAL7_TXPOLL_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXTYPE7 register.
+//
+//*****************************************************************************
+#define USB_RXTYPE7_SPEED_M     0x000000C0  // Operating Speed
+#define USB_RXTYPE7_SPEED_DFLT  0x00000000  // Default
+#define USB_RXTYPE7_SPEED_HIGH  0x00000040  // High
+#define USB_RXTYPE7_SPEED_FULL  0x00000080  // Full
+#define USB_RXTYPE7_SPEED_LOW   0x000000C0  // Low
+#define USB_RXTYPE7_PROTO_M     0x00000030  // Protocol
+#define USB_RXTYPE7_PROTO_CTRL  0x00000000  // Control
+#define USB_RXTYPE7_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_RXTYPE7_PROTO_BULK  0x00000020  // Bulk
+#define USB_RXTYPE7_PROTO_INT   0x00000030  // Interrupt
+#define USB_RXTYPE7_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_RXTYPE7_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXINTERVAL7
+// register.
+//
+//*****************************************************************************
+#define USB_RXINTERVAL7_TXPOLL_M                                              \
+                                0x000000FF  // RX Polling
+#define USB_RXINTERVAL7_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_RXINTERVAL7_NAKLMT_S                                              \
+                                0
+#define USB_RXINTERVAL7_TXPOLL_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DMAINTR register.
+//
+//*****************************************************************************
+#define USB_DMAINTR_CH7         0x00000080  // Channel 7 DMA Interrupt
+#define USB_DMAINTR_CH6         0x00000040  // Channel 6 DMA Interrupt
+#define USB_DMAINTR_CH5         0x00000020  // Channel 5 DMA Interrupt
+#define USB_DMAINTR_CH4         0x00000010  // Channel 4 DMA Interrupt
+#define USB_DMAINTR_CH3         0x00000008  // Channel 3 DMA Interrupt
+#define USB_DMAINTR_CH2         0x00000004  // Channel 2 DMA Interrupt
+#define USB_DMAINTR_CH1         0x00000002  // Channel 1 DMA Interrupt
+#define USB_DMAINTR_CH0         0x00000001  // Channel 0 DMA Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DMACTL0 register.
+//
+//*****************************************************************************
+#define USB_DMACTL0_BRSTM_M     0x00000600  // Burst Mode
+#define USB_DMACTL0_BRSTM_ANY   0x00000000  // Bursts of unspecified length
+#define USB_DMACTL0_BRSTM_INC4  0x00000200  // INCR4 or unspecified length
+#define USB_DMACTL0_BRSTM_INC8  0x00000400  // INCR8, INCR4 or unspecified
+                                            // length
+#define USB_DMACTL0_BRSTM_INC16 0x00000600  // INCR16, INCR8, INCR4 or
+                                            // unspecified length
+#define USB_DMACTL0_ERR         0x00000100  // Bus Error Bit
+#define USB_DMACTL0_EP_M        0x000000F0  // Endpoint number
+#define USB_DMACTL0_IE          0x00000008  // DMA Interrupt Enable
+#define USB_DMACTL0_MODE        0x00000004  // DMA Transfer Mode
+#define USB_DMACTL0_DIR         0x00000002  // DMA Direction
+#define USB_DMACTL0_ENABLE      0x00000001  // DMA Transfer Enable
+#define USB_DMACTL0_EP_S        4
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DMAADDR0 register.
+//
+//*****************************************************************************
+#define USB_DMAADDR0_ADDR_M     0xFFFFFFFC  // DMA Address
+#define USB_DMAADDR0_ADDR_S     2
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DMACOUNT0
+// register.
+//
+//*****************************************************************************
+#define USB_DMACOUNT0_COUNT_M   0xFFFFFFFC  // DMA Count
+#define USB_DMACOUNT0_COUNT_S   2
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DMACTL1 register.
+//
+//*****************************************************************************
+#define USB_DMACTL1_BRSTM_M     0x00000600  // Burst Mode
+#define USB_DMACTL1_BRSTM_ANY   0x00000000  // Bursts of unspecified length
+#define USB_DMACTL1_BRSTM_INC4  0x00000200  // INCR4 or unspecified length
+#define USB_DMACTL1_BRSTM_INC8  0x00000400  // INCR8, INCR4 or unspecified
+                                            // length
+#define USB_DMACTL1_BRSTM_INC16 0x00000600  // INCR16, INCR8, INCR4 or
+                                            // unspecified length
+#define USB_DMACTL1_ERR         0x00000100  // Bus Error Bit
+#define USB_DMACTL1_EP_M        0x000000F0  // Endpoint number
+#define USB_DMACTL1_IE          0x00000008  // DMA Interrupt Enable
+#define USB_DMACTL1_MODE        0x00000004  // DMA Transfer Mode
+#define USB_DMACTL1_DIR         0x00000002  // DMA Direction
+#define USB_DMACTL1_ENABLE      0x00000001  // DMA Transfer Enable
+#define USB_DMACTL1_EP_S        4
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DMAADDR1 register.
+//
+//*****************************************************************************
+#define USB_DMAADDR1_ADDR_M     0xFFFFFFFC  // DMA Address
+#define USB_DMAADDR1_ADDR_S     2
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DMACOUNT1
+// register.
+//
+//*****************************************************************************
+#define USB_DMACOUNT1_COUNT_M   0xFFFFFFFC  // DMA Count
+#define USB_DMACOUNT1_COUNT_S   2
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DMACTL2 register.
+//
+//*****************************************************************************
+#define USB_DMACTL2_BRSTM_M     0x00000600  // Burst Mode
+#define USB_DMACTL2_BRSTM_ANY   0x00000000  // Bursts of unspecified length
+#define USB_DMACTL2_BRSTM_INC4  0x00000200  // INCR4 or unspecified length
+#define USB_DMACTL2_BRSTM_INC8  0x00000400  // INCR8, INCR4 or unspecified
+                                            // length
+#define USB_DMACTL2_BRSTM_INC16 0x00000600  // INCR16, INCR8, INCR4 or
+                                            // unspecified length
+#define USB_DMACTL2_ERR         0x00000100  // Bus Error Bit
+#define USB_DMACTL2_EP_M        0x000000F0  // Endpoint number
+#define USB_DMACTL2_IE          0x00000008  // DMA Interrupt Enable
+#define USB_DMACTL2_MODE        0x00000004  // DMA Transfer Mode
+#define USB_DMACTL2_DIR         0x00000002  // DMA Direction
+#define USB_DMACTL2_ENABLE      0x00000001  // DMA Transfer Enable
+#define USB_DMACTL2_EP_S        4
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DMAADDR2 register.
+//
+//*****************************************************************************
+#define USB_DMAADDR2_ADDR_M     0xFFFFFFFC  // DMA Address
+#define USB_DMAADDR2_ADDR_S     2
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DMACOUNT2
+// register.
+//
+//*****************************************************************************
+#define USB_DMACOUNT2_COUNT_M   0xFFFFFFFC  // DMA Count
+#define USB_DMACOUNT2_COUNT_S   2
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DMACTL3 register.
+//
+//*****************************************************************************
+#define USB_DMACTL3_BRSTM_M     0x00000600  // Burst Mode
+#define USB_DMACTL3_BRSTM_ANY   0x00000000  // Bursts of unspecified length
+#define USB_DMACTL3_BRSTM_INC4  0x00000200  // INCR4 or unspecified length
+#define USB_DMACTL3_BRSTM_INC8  0x00000400  // INCR8, INCR4 or unspecified
+                                            // length
+#define USB_DMACTL3_BRSTM_INC16 0x00000600  // INCR16, INCR8, INCR4 or
+                                            // unspecified length
+#define USB_DMACTL3_ERR         0x00000100  // Bus Error Bit
+#define USB_DMACTL3_EP_M        0x000000F0  // Endpoint number
+#define USB_DMACTL3_IE          0x00000008  // DMA Interrupt Enable
+#define USB_DMACTL3_MODE        0x00000004  // DMA Transfer Mode
+#define USB_DMACTL3_DIR         0x00000002  // DMA Direction
+#define USB_DMACTL3_ENABLE      0x00000001  // DMA Transfer Enable
+#define USB_DMACTL3_EP_S        4
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DMAADDR3 register.
+//
+//*****************************************************************************
+#define USB_DMAADDR3_ADDR_M     0xFFFFFFFC  // DMA Address
+#define USB_DMAADDR3_ADDR_S     2
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DMACOUNT3
+// register.
+//
+//*****************************************************************************
+#define USB_DMACOUNT3_COUNT_M   0xFFFFFFFC  // DMA Count
+#define USB_DMACOUNT3_COUNT_S   2
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DMACTL4 register.
+//
+//*****************************************************************************
+#define USB_DMACTL4_BRSTM_M     0x00000600  // Burst Mode
+#define USB_DMACTL4_BRSTM_ANY   0x00000000  // Bursts of unspecified length
+#define USB_DMACTL4_BRSTM_INC4  0x00000200  // INCR4 or unspecified length
+#define USB_DMACTL4_BRSTM_INC8  0x00000400  // INCR8, INCR4 or unspecified
+                                            // length
+#define USB_DMACTL4_BRSTM_INC16 0x00000600  // INCR16, INCR8, INCR4 or
+                                            // unspecified length
+#define USB_DMACTL4_ERR         0x00000100  // Bus Error Bit
+#define USB_DMACTL4_EP_M        0x000000F0  // Endpoint number
+#define USB_DMACTL4_IE          0x00000008  // DMA Interrupt Enable
+#define USB_DMACTL4_MODE        0x00000004  // DMA Transfer Mode
+#define USB_DMACTL4_DIR         0x00000002  // DMA Direction
+#define USB_DMACTL4_ENABLE      0x00000001  // DMA Transfer Enable
+#define USB_DMACTL4_EP_S        4
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DMAADDR4 register.
+//
+//*****************************************************************************
+#define USB_DMAADDR4_ADDR_M     0xFFFFFFFC  // DMA Address
+#define USB_DMAADDR4_ADDR_S     2
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DMACOUNT4
+// register.
+//
+//*****************************************************************************
+#define USB_DMACOUNT4_COUNT_M   0xFFFFFFFC  // DMA Count
+#define USB_DMACOUNT4_COUNT_S   2
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DMACTL5 register.
+//
+//*****************************************************************************
+#define USB_DMACTL5_BRSTM_M     0x00000600  // Burst Mode
+#define USB_DMACTL5_BRSTM_ANY   0x00000000  // Bursts of unspecified length
+#define USB_DMACTL5_BRSTM_INC4  0x00000200  // INCR4 or unspecified length
+#define USB_DMACTL5_BRSTM_INC8  0x00000400  // INCR8, INCR4 or unspecified
+                                            // length
+#define USB_DMACTL5_BRSTM_INC16 0x00000600  // INCR16, INCR8, INCR4 or
+                                            // unspecified length
+#define USB_DMACTL5_ERR         0x00000100  // Bus Error Bit
+#define USB_DMACTL5_EP_M        0x000000F0  // Endpoint number
+#define USB_DMACTL5_IE          0x00000008  // DMA Interrupt Enable
+#define USB_DMACTL5_MODE        0x00000004  // DMA Transfer Mode
+#define USB_DMACTL5_DIR         0x00000002  // DMA Direction
+#define USB_DMACTL5_ENABLE      0x00000001  // DMA Transfer Enable
+#define USB_DMACTL5_EP_S        4
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DMAADDR5 register.
+//
+//*****************************************************************************
+#define USB_DMAADDR5_ADDR_M     0xFFFFFFFC  // DMA Address
+#define USB_DMAADDR5_ADDR_S     2
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DMACOUNT5
+// register.
+//
+//*****************************************************************************
+#define USB_DMACOUNT5_COUNT_M   0xFFFFFFFC  // DMA Count
+#define USB_DMACOUNT5_COUNT_S   2
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DMACTL6 register.
+//
+//*****************************************************************************
+#define USB_DMACTL6_BRSTM_M     0x00000600  // Burst Mode
+#define USB_DMACTL6_BRSTM_ANY   0x00000000  // Bursts of unspecified length
+#define USB_DMACTL6_BRSTM_INC4  0x00000200  // INCR4 or unspecified length
+#define USB_DMACTL6_BRSTM_INC8  0x00000400  // INCR8, INCR4 or unspecified
+                                            // length
+#define USB_DMACTL6_BRSTM_INC16 0x00000600  // INCR16, INCR8, INCR4 or
+                                            // unspecified length
+#define USB_DMACTL6_ERR         0x00000100  // Bus Error Bit
+#define USB_DMACTL6_EP_M        0x000000F0  // Endpoint number
+#define USB_DMACTL6_IE          0x00000008  // DMA Interrupt Enable
+#define USB_DMACTL6_MODE        0x00000004  // DMA Transfer Mode
+#define USB_DMACTL6_DIR         0x00000002  // DMA Direction
+#define USB_DMACTL6_ENABLE      0x00000001  // DMA Transfer Enable
+#define USB_DMACTL6_EP_S        4
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DMAADDR6 register.
+//
+//*****************************************************************************
+#define USB_DMAADDR6_ADDR_M     0xFFFFFFFC  // DMA Address
+#define USB_DMAADDR6_ADDR_S     2
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DMACOUNT6
+// register.
+//
+//*****************************************************************************
+#define USB_DMACOUNT6_COUNT_M   0xFFFFFFFC  // DMA Count
+#define USB_DMACOUNT6_COUNT_S   2
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DMACTL7 register.
+//
+//*****************************************************************************
+#define USB_DMACTL7_BRSTM_M     0x00000600  // Burst Mode
+#define USB_DMACTL7_BRSTM_ANY   0x00000000  // Bursts of unspecified length
+#define USB_DMACTL7_BRSTM_INC4  0x00000200  // INCR4 or unspecified length
+#define USB_DMACTL7_BRSTM_INC8  0x00000400  // INCR8, INCR4 or unspecified
+                                            // length
+#define USB_DMACTL7_BRSTM_INC16 0x00000600  // INCR16, INCR8, INCR4 or
+                                            // unspecified length
+#define USB_DMACTL7_ERR         0x00000100  // Bus Error Bit
+#define USB_DMACTL7_EP_M        0x000000F0  // Endpoint number
+#define USB_DMACTL7_IE          0x00000008  // DMA Interrupt Enable
+#define USB_DMACTL7_MODE        0x00000004  // DMA Transfer Mode
+#define USB_DMACTL7_DIR         0x00000002  // DMA Direction
+#define USB_DMACTL7_ENABLE      0x00000001  // DMA Transfer Enable
+#define USB_DMACTL7_EP_S        4
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DMAADDR7 register.
+//
+//*****************************************************************************
+#define USB_DMAADDR7_ADDR_M     0xFFFFFFFC  // DMA Address
+#define USB_DMAADDR7_ADDR_S     2
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DMACOUNT7
+// register.
+//
+//*****************************************************************************
+#define USB_DMACOUNT7_COUNT_M   0xFFFFFFFC  // DMA Count
+#define USB_DMACOUNT7_COUNT_S   2
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RQPKTCOUNT1
+// register.
+//
+//*****************************************************************************
+#define USB_RQPKTCOUNT1_M       0x0000FFFF  // Block Transfer Packet Count
+#define USB_RQPKTCOUNT1_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RQPKTCOUNT2
+// register.
+//
+//*****************************************************************************
+#define USB_RQPKTCOUNT2_M       0x0000FFFF  // Block Transfer Packet Count
+#define USB_RQPKTCOUNT2_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RQPKTCOUNT3
+// register.
+//
+//*****************************************************************************
+#define USB_RQPKTCOUNT3_M       0x0000FFFF  // Block Transfer Packet Count
+#define USB_RQPKTCOUNT3_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RQPKTCOUNT4
+// register.
+//
+//*****************************************************************************
+#define USB_RQPKTCOUNT4_COUNT_M 0x0000FFFF  // Block Transfer Packet Count
+#define USB_RQPKTCOUNT4_COUNT_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RQPKTCOUNT5
+// register.
+//
+//*****************************************************************************
+#define USB_RQPKTCOUNT5_COUNT_M 0x0000FFFF  // Block Transfer Packet Count
+#define USB_RQPKTCOUNT5_COUNT_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RQPKTCOUNT6
+// register.
+//
+//*****************************************************************************
+#define USB_RQPKTCOUNT6_COUNT_M 0x0000FFFF  // Block Transfer Packet Count
+#define USB_RQPKTCOUNT6_COUNT_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RQPKTCOUNT7
+// register.
+//
+//*****************************************************************************
+#define USB_RQPKTCOUNT7_COUNT_M 0x0000FFFF  // Block Transfer Packet Count
+#define USB_RQPKTCOUNT7_COUNT_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXDPKTBUFDIS
+// register.
+//
+//*****************************************************************************
+#define USB_RXDPKTBUFDIS_EP7    0x00000080  // EP7 RX Double-Packet Buffer
+                                            // Disable
+#define USB_RXDPKTBUFDIS_EP6    0x00000040  // EP6 RX Double-Packet Buffer
+                                            // Disable
+#define USB_RXDPKTBUFDIS_EP5    0x00000020  // EP5 RX Double-Packet Buffer
+                                            // Disable
+#define USB_RXDPKTBUFDIS_EP4    0x00000010  // EP4 RX Double-Packet Buffer
+                                            // Disable
+#define USB_RXDPKTBUFDIS_EP3    0x00000008  // EP3 RX Double-Packet Buffer
+                                            // Disable
+#define USB_RXDPKTBUFDIS_EP2    0x00000004  // EP2 RX Double-Packet Buffer
+                                            // Disable
+#define USB_RXDPKTBUFDIS_EP1    0x00000002  // EP1 RX Double-Packet Buffer
+                                            // Disable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXDPKTBUFDIS
+// register.
+//
+//*****************************************************************************
+#define USB_TXDPKTBUFDIS_EP7    0x00000080  // EP7 TX Double-Packet Buffer
+                                            // Disable
+#define USB_TXDPKTBUFDIS_EP6    0x00000040  // EP6 TX Double-Packet Buffer
+                                            // Disable
+#define USB_TXDPKTBUFDIS_EP5    0x00000020  // EP5 TX Double-Packet Buffer
+                                            // Disable
+#define USB_TXDPKTBUFDIS_EP4    0x00000010  // EP4 TX Double-Packet Buffer
+                                            // Disable
+#define USB_TXDPKTBUFDIS_EP3    0x00000008  // EP3 TX Double-Packet Buffer
+                                            // Disable
+#define USB_TXDPKTBUFDIS_EP2    0x00000004  // EP2 TX Double-Packet Buffer
+                                            // Disable
+#define USB_TXDPKTBUFDIS_EP1    0x00000002  // EP1 TX Double-Packet Buffer
+                                            // Disable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_CTO register.
+//
+//*****************************************************************************
+#define USB_CTO_CCTV_M          0x0000FFFF  // Configurable Chirp Timeout Value
+#define USB_CTO_CCTV_S          0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_HHSRTN register.
+//
+//*****************************************************************************
+#define USB_HHSRTN_HHSRTN_M     0x0000FFFF  // HIgh Speed to UTM Operating
+                                            // Delay
+#define USB_HHSRTN_HHSRTN_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_HSBT register.
+//
+//*****************************************************************************
+#define USB_HSBT_HSBT_M         0x0000000F  // High Speed Timeout Adder
+#define USB_HSBT_HSBT_S         0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_LPMATTR register.
+//
+//*****************************************************************************
+#define USB_LPMATTR_ENDPT_M     0x0000F000  // Endpoint
+#define USB_LPMATTR_RMTWAK      0x00000100  // Remote Wake
+#define USB_LPMATTR_HIRD_M      0x000000F0  // Host Initiated Resume Duration
+#define USB_LPMATTR_LS_M        0x0000000F  // Link State
+#define USB_LPMATTR_LS_L1       0x00000001  // Sleep State (L1)
+#define USB_LPMATTR_ENDPT_S     12
+#define USB_LPMATTR_HIRD_S      4
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_LPMCNTRL register.
+//
+//*****************************************************************************
+#define USB_LPMCNTRL_NAK        0x00000010  // LPM NAK
+#define USB_LPMCNTRL_EN_M       0x0000000C  // LPM Enable
+#define USB_LPMCNTRL_EN_NONE    0x00000000  // LPM and Extended transactions
+                                            // are not supported. In this case,
+                                            // the USB does not respond to LPM
+                                            // transactions and LPM
+                                            // transactions cause a timeout
+#define USB_LPMCNTRL_EN_EXT     0x00000004  // LPM is not supported but
+                                            // extended transactions are
+                                            // supported. In this case, the USB
+                                            // does respond to an LPM
+                                            // transaction with a STALL
+#define USB_LPMCNTRL_EN_LPMEXT  0x0000000C  // The USB supports LPM extended
+                                            // transactions. In this case, the
+                                            // USB responds with a NYET or an
+                                            // ACK as determined by the value
+                                            // of TXLPM and other conditions
+#define USB_LPMCNTRL_RES        0x00000002  // LPM Resume
+#define USB_LPMCNTRL_TXLPM      0x00000001  // Transmit LPM Transaction Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_LPMIM register.
+//
+//*****************************************************************************
+#define USB_LPMIM_ERR           0x00000020  // LPM Error Interrupt Mask
+#define USB_LPMIM_RES           0x00000010  // LPM Resume Interrupt Mask
+#define USB_LPMIM_NC            0x00000008  // LPM NC Interrupt Mask
+#define USB_LPMIM_ACK           0x00000004  // LPM ACK Interrupt Mask
+#define USB_LPMIM_NY            0x00000002  // LPM NY Interrupt Mask
+#define USB_LPMIM_STALL         0x00000001  // LPM STALL Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_LPMRIS register.
+//
+//*****************************************************************************
+#define USB_LPMRIS_ERR          0x00000020  // LPM Interrupt Status
+#define USB_LPMRIS_RES          0x00000010  // LPM Resume Interrupt Status
+#define USB_LPMRIS_NC           0x00000008  // LPM NC Interrupt Status
+#define USB_LPMRIS_ACK          0x00000004  // LPM ACK Interrupt Status
+#define USB_LPMRIS_NY           0x00000002  // LPM NY Interrupt Status
+#define USB_LPMRIS_LPMST        0x00000001  // LPM STALL Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_LPMFADDR register.
+//
+//*****************************************************************************
+#define USB_LPMFADDR_ADDR_M     0x0000007F  // LPM Function Address
+#define USB_LPMFADDR_ADDR_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_EPC register.
+//
+//*****************************************************************************
+#define USB_EPC_PFLTACT_M       0x00000300  // Power Fault Action
+#define USB_EPC_PFLTACT_UNCHG   0x00000000  // Unchanged
+#define USB_EPC_PFLTACT_TRIS    0x00000100  // Tristate
+#define USB_EPC_PFLTACT_LOW     0x00000200  // Low
+#define USB_EPC_PFLTACT_HIGH    0x00000300  // High
+#define USB_EPC_PFLTAEN         0x00000040  // Power Fault Action Enable
+#define USB_EPC_PFLTSEN_HIGH    0x00000020  // Power Fault Sense
+#define USB_EPC_PFLTEN          0x00000010  // Power Fault Input Enable
+#define USB_EPC_EPENDE          0x00000004  // EPEN Drive Enable
+#define USB_EPC_EPEN_M          0x00000003  // External Power Supply Enable
+                                            // Configuration
+#define USB_EPC_EPEN_LOW        0x00000000  // Power Enable Active Low
+#define USB_EPC_EPEN_HIGH       0x00000001  // Power Enable Active High
+#define USB_EPC_EPEN_VBLOW      0x00000002  // Power Enable High if VBUS Low
+                                            // (OTG only)
+#define USB_EPC_EPEN_VBHIGH     0x00000003  // Power Enable High if VBUS High
+                                            // (OTG only)
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_EPCRIS register.
+//
+//*****************************************************************************
+#define USB_EPCRIS_PF           0x00000001  // USB Power Fault Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_EPCIM register.
+//
+//*****************************************************************************
+#define USB_EPCIM_PF            0x00000001  // USB Power Fault Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_EPCISC register.
+//
+//*****************************************************************************
+#define USB_EPCISC_PF           0x00000001  // USB Power Fault Interrupt Status
+                                            // and Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DRRIS register.
+//
+//*****************************************************************************
+#define USB_DRRIS_RESUME        0x00000001  // RESUME Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DRIM register.
+//
+//*****************************************************************************
+#define USB_DRIM_RESUME         0x00000001  // RESUME Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DRISC register.
+//
+//*****************************************************************************
+#define USB_DRISC_RESUME        0x00000001  // RESUME Interrupt Status and
+                                            // Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_GPCS register.
+//
+//*****************************************************************************
+#define USB_GPCS_DEVMOD_M       0x00000007  // Device Mode
+#define USB_GPCS_DEVMOD_OTG     0x00000000  // Use USB0VBUS and USB0ID pin
+#define USB_GPCS_DEVMOD_HOST    0x00000002  // Force USB0VBUS and USB0ID low
+#define USB_GPCS_DEVMOD_DEV     0x00000003  // Force USB0VBUS and USB0ID high
+#define USB_GPCS_DEVMOD_HOSTVBUS                                              \
+                                0x00000004  // Use USB0VBUS and force USB0ID
+                                            // low
+#define USB_GPCS_DEVMOD_DEVVBUS 0x00000005  // Use USB0VBUS and force USB0ID
+                                            // high
+#define USB_GPCS_DEVMODOTG      0x00000002  // Enable Device Mode
+#define USB_GPCS_DEVMOD         0x00000001  // Device Mode
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_VDC register.
+//
+//*****************************************************************************
+#define USB_VDC_VBDEN           0x00000001  // VBUS Droop Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_VDCRIS register.
+//
+//*****************************************************************************
+#define USB_VDCRIS_VD           0x00000001  // VBUS Droop Raw Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_VDCIM register.
+//
+//*****************************************************************************
+#define USB_VDCIM_VD            0x00000001  // VBUS Droop Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_VDCISC register.
+//
+//*****************************************************************************
+#define USB_VDCISC_VD           0x00000001  // VBUS Droop Interrupt Status and
+                                            // Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_IDVRIS register.
+//
+//*****************************************************************************
+#define USB_IDVRIS_ID           0x00000001  // ID Valid Detect Raw Interrupt
+                                            // Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_IDVIM register.
+//
+//*****************************************************************************
+#define USB_IDVIM_ID            0x00000001  // ID Valid Detect Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_IDVISC register.
+//
+//*****************************************************************************
+#define USB_IDVISC_ID           0x00000001  // ID Valid Detect Interrupt Status
+                                            // and Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DMASEL register.
+//
+//*****************************************************************************
+#define USB_DMASEL_DMACTX_M     0x00F00000  // DMA C TX Select
+#define USB_DMASEL_DMACRX_M     0x000F0000  // DMA C RX Select
+#define USB_DMASEL_DMABTX_M     0x0000F000  // DMA B TX Select
+#define USB_DMASEL_DMABRX_M     0x00000F00  // DMA B RX Select
+#define USB_DMASEL_DMAATX_M     0x000000F0  // DMA A TX Select
+#define USB_DMASEL_DMAARX_M     0x0000000F  // DMA A RX Select
+#define USB_DMASEL_DMACTX_S     20
+#define USB_DMASEL_DMACRX_S     16
+#define USB_DMASEL_DMABTX_S     12
+#define USB_DMASEL_DMABRX_S     8
+#define USB_DMASEL_DMAATX_S     4
+#define USB_DMASEL_DMAARX_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_PP register.
+//
+//*****************************************************************************
+#define USB_PP_ECNT_M           0x0000FF00  // Endpoint Count
+#define USB_PP_USB_M            0x000000C0  // USB Capability
+#define USB_PP_USB_DEVICE       0x00000040  // DEVICE
+#define USB_PP_USB_HOSTDEVICE   0x00000080  // HOST
+#define USB_PP_USB_OTG          0x000000C0  // OTG
+#define USB_PP_ULPI             0x00000020  // ULPI Present
+#define USB_PP_PHY              0x00000010  // PHY Present
+#define USB_PP_TYPE_M           0x0000000F  // Controller Type
+#define USB_PP_TYPE_0           0x00000000  // The first-generation USB
+                                            // controller
+#define USB_PP_TYPE_1           0x00000001  // Second-generation USB
+                                            // controller.The controller
+                                            // implemented in post Icestorm
+                                            // devices that use the 3.0 version
+                                            // of the Mentor controller
+#define USB_PP_ECNT_S           8
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_PC register.
+//
+//*****************************************************************************
+#define USB_PC_ULPIEN           0x00010000  // ULPI Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_CC register.
+//
+//*****************************************************************************
+#define USB_CC_CLKEN            0x00000200  // USB Clock Enable
+#define USB_CC_CSD              0x00000100  // Clock Source/Direction
+#define USB_CC_CLKDIV_M         0x0000000F  // PLL Clock Divisor
+#define USB_CC_CLKDIV_S         0
+
+#endif // __HW_USB_H__

+ 122 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/hw_watchdog.h

@@ -0,0 +1,122 @@
+//*****************************************************************************
+//
+// hw_watchdog.h - Macros used when accessing the Watchdog Timer hardware.
+//
+// Copyright (c) 2005-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Firmware Development Package.
+//
+//*****************************************************************************
+
+#ifndef __HW_WATCHDOG_H__
+#define __HW_WATCHDOG_H__
+
+//*****************************************************************************
+//
+// The following are defines for the Watchdog Timer register offsets.
+//
+//*****************************************************************************
+#define WDT_O_LOAD              0x00000000  // Watchdog Load
+#define WDT_O_VALUE             0x00000004  // Watchdog Value
+#define WDT_O_CTL               0x00000008  // Watchdog Control
+#define WDT_O_ICR               0x0000000C  // Watchdog Interrupt Clear
+#define WDT_O_RIS               0x00000010  // Watchdog Raw Interrupt Status
+#define WDT_O_MIS               0x00000014  // Watchdog Masked Interrupt Status
+#define WDT_O_TEST              0x00000418  // Watchdog Test
+#define WDT_O_LOCK              0x00000C00  // Watchdog Lock
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the WDT_O_LOAD register.
+//
+//*****************************************************************************
+#define WDT_LOAD_M              0xFFFFFFFF  // Watchdog Load Value
+#define WDT_LOAD_S              0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the WDT_O_VALUE register.
+//
+//*****************************************************************************
+#define WDT_VALUE_M             0xFFFFFFFF  // Watchdog Value
+#define WDT_VALUE_S             0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the WDT_O_CTL register.
+//
+//*****************************************************************************
+#define WDT_CTL_WRC             0x80000000  // Write Complete
+#define WDT_CTL_INTTYPE         0x00000004  // Watchdog Interrupt Type
+#define WDT_CTL_RESEN           0x00000002  // Watchdog Reset Enable
+#define WDT_CTL_INTEN           0x00000001  // Watchdog Interrupt Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the WDT_O_ICR register.
+//
+//*****************************************************************************
+#define WDT_ICR_M               0xFFFFFFFF  // Watchdog Interrupt Clear
+#define WDT_ICR_S               0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the WDT_O_RIS register.
+//
+//*****************************************************************************
+#define WDT_RIS_WDTRIS          0x00000001  // Watchdog Raw Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the WDT_O_MIS register.
+//
+//*****************************************************************************
+#define WDT_MIS_WDTMIS          0x00000001  // Watchdog Masked Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the WDT_O_TEST register.
+//
+//*****************************************************************************
+#define WDT_TEST_STALL          0x00000100  // Watchdog Stall Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the WDT_O_LOCK register.
+//
+//*****************************************************************************
+#define WDT_LOCK_M              0xFFFFFFFF  // Watchdog Lock
+#define WDT_LOCK_UNLOCKED       0x00000000  // Unlocked
+#define WDT_LOCK_LOCKED         0x00000001  // Locked
+#define WDT_LOCK_UNLOCK         0x1ACCE551  // Unlocks the watchdog timer
+
+#endif // __HW_WATCHDOG_H__

+ 12867 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/tm4c123gh6pm.h

@@ -0,0 +1,12867 @@
+//*****************************************************************************
+//
+// tm4c123gh6pm.h - TM4C123GH6PM Register Definitions
+//
+// Copyright (c) 2013-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Firmware Development Package.
+//
+//*****************************************************************************
+
+#ifndef __TM4C123GH6PM_H__
+#define __TM4C123GH6PM_H__
+
+//*****************************************************************************
+//
+// Interrupt assignments
+//
+//*****************************************************************************
+#define INT_GPIOA               16          // GPIO Port A
+#define INT_GPIOB               17          // GPIO Port B
+#define INT_GPIOC               18          // GPIO Port C
+#define INT_GPIOD               19          // GPIO Port D
+#define INT_GPIOE               20          // GPIO Port E
+#define INT_UART0               21          // UART0
+#define INT_UART1               22          // UART1
+#define INT_SSI0                23          // SSI0
+#define INT_I2C0                24          // I2C0
+#define INT_PWM0_FAULT          25          // PWM0 Fault
+#define INT_PWM0_0              26          // PWM0 Generator 0
+#define INT_PWM0_1              27          // PWM0 Generator 1
+#define INT_PWM0_2              28          // PWM0 Generator 2
+#define INT_QEI0                29          // QEI0
+#define INT_ADC0SS0             30          // ADC0 Sequence 0
+#define INT_ADC0SS1             31          // ADC0 Sequence 1
+#define INT_ADC0SS2             32          // ADC0 Sequence 2
+#define INT_ADC0SS3             33          // ADC0 Sequence 3
+#define INT_WATCHDOG            34          // Watchdog Timers 0 and 1
+#define INT_TIMER0A             35          // 16/32-Bit Timer 0A
+#define INT_TIMER0B             36          // 16/32-Bit Timer 0B
+#define INT_TIMER1A             37          // 16/32-Bit Timer 1A
+#define INT_TIMER1B             38          // 16/32-Bit Timer 1B
+#define INT_TIMER2A             39          // 16/32-Bit Timer 2A
+#define INT_TIMER2B             40          // 16/32-Bit Timer 2B
+#define INT_COMP0               41          // Analog Comparator 0
+#define INT_COMP1               42          // Analog Comparator 1
+#define INT_SYSCTL              44          // System Control
+#define INT_FLASH               45          // Flash Memory Control and EEPROM
+                                            // Control
+#define INT_GPIOF               46          // GPIO Port F
+#define INT_UART2               49          // UART2
+#define INT_SSI1                50          // SSI1
+#define INT_TIMER3A             51          // 16/32-Bit Timer 3A
+#define INT_TIMER3B             52          // Timer 3B
+#define INT_I2C1                53          // I2C1
+#define INT_QEI1                54          // QEI1
+#define INT_CAN0                55          // CAN0
+#define INT_CAN1                56          // CAN1
+#define INT_HIBERNATE           59          // Hibernation Module
+#define INT_USB0                60          // USB
+#define INT_PWM0_3              61          // PWM Generator 3
+#define INT_UDMA                62          // uDMA Software
+#define INT_UDMAERR             63          // uDMA Error
+#define INT_ADC1SS0             64          // ADC1 Sequence 0
+#define INT_ADC1SS1             65          // ADC1 Sequence 1
+#define INT_ADC1SS2             66          // ADC1 Sequence 2
+#define INT_ADC1SS3             67          // ADC1 Sequence 3
+#define INT_SSI2                73          // SSI2
+#define INT_SSI3                74          // SSI3
+#define INT_UART3               75          // UART3
+#define INT_UART4               76          // UART4
+#define INT_UART5               77          // UART5
+#define INT_UART6               78          // UART6
+#define INT_UART7               79          // UART7
+#define INT_I2C2                84          // I2C2
+#define INT_I2C3                85          // I2C3
+#define INT_TIMER4A             86          // 16/32-Bit Timer 4A
+#define INT_TIMER4B             87          // 16/32-Bit Timer 4B
+#define INT_TIMER5A             108         // 16/32-Bit Timer 5A
+#define INT_TIMER5B             109         // 16/32-Bit Timer 5B
+#define INT_WTIMER0A            110         // 32/64-Bit Timer 0A
+#define INT_WTIMER0B            111         // 32/64-Bit Timer 0B
+#define INT_WTIMER1A            112         // 32/64-Bit Timer 1A
+#define INT_WTIMER1B            113         // 32/64-Bit Timer 1B
+#define INT_WTIMER2A            114         // 32/64-Bit Timer 2A
+#define INT_WTIMER2B            115         // 32/64-Bit Timer 2B
+#define INT_WTIMER3A            116         // 32/64-Bit Timer 3A
+#define INT_WTIMER3B            117         // 32/64-Bit Timer 3B
+#define INT_WTIMER4A            118         // 32/64-Bit Timer 4A
+#define INT_WTIMER4B            119         // 32/64-Bit Timer 4B
+#define INT_WTIMER5A            120         // 32/64-Bit Timer 5A
+#define INT_WTIMER5B            121         // 32/64-Bit Timer 5B
+#define INT_SYSEXC              122         // System Exception (imprecise)
+#define INT_PWM1_0              150         // PWM1 Generator 0
+#define INT_PWM1_1              151         // PWM1 Generator 1
+#define INT_PWM1_2              152         // PWM1 Generator 2
+#define INT_PWM1_3              153         // PWM1 Generator 3
+#define INT_PWM1_FAULT          154         // PWM1 Fault
+
+//*****************************************************************************
+//
+// Watchdog Timer registers (WATCHDOG0)
+//
+//*****************************************************************************
+#define WATCHDOG0_LOAD_R        (*((volatile uint32_t *)0x40000000))
+#define WATCHDOG0_VALUE_R       (*((volatile uint32_t *)0x40000004))
+#define WATCHDOG0_CTL_R         (*((volatile uint32_t *)0x40000008))
+#define WATCHDOG0_ICR_R         (*((volatile uint32_t *)0x4000000C))
+#define WATCHDOG0_RIS_R         (*((volatile uint32_t *)0x40000010))
+#define WATCHDOG0_MIS_R         (*((volatile uint32_t *)0x40000014))
+#define WATCHDOG0_TEST_R        (*((volatile uint32_t *)0x40000418))
+#define WATCHDOG0_LOCK_R        (*((volatile uint32_t *)0x40000C00))
+
+//*****************************************************************************
+//
+// Watchdog Timer registers (WATCHDOG1)
+//
+//*****************************************************************************
+#define WATCHDOG1_LOAD_R        (*((volatile uint32_t *)0x40001000))
+#define WATCHDOG1_VALUE_R       (*((volatile uint32_t *)0x40001004))
+#define WATCHDOG1_CTL_R         (*((volatile uint32_t *)0x40001008))
+#define WATCHDOG1_ICR_R         (*((volatile uint32_t *)0x4000100C))
+#define WATCHDOG1_RIS_R         (*((volatile uint32_t *)0x40001010))
+#define WATCHDOG1_MIS_R         (*((volatile uint32_t *)0x40001014))
+#define WATCHDOG1_TEST_R        (*((volatile uint32_t *)0x40001418))
+#define WATCHDOG1_LOCK_R        (*((volatile uint32_t *)0x40001C00))
+
+//*****************************************************************************
+//
+// GPIO registers (PORTA)
+//
+//*****************************************************************************
+#define GPIO_PORTA_DATA_BITS_R  ((volatile uint32_t *)0x40004000)
+#define GPIO_PORTA_DATA_R       (*((volatile uint32_t *)0x400043FC))
+#define GPIO_PORTA_DIR_R        (*((volatile uint32_t *)0x40004400))
+#define GPIO_PORTA_IS_R         (*((volatile uint32_t *)0x40004404))
+#define GPIO_PORTA_IBE_R        (*((volatile uint32_t *)0x40004408))
+#define GPIO_PORTA_IEV_R        (*((volatile uint32_t *)0x4000440C))
+#define GPIO_PORTA_IM_R         (*((volatile uint32_t *)0x40004410))
+#define GPIO_PORTA_RIS_R        (*((volatile uint32_t *)0x40004414))
+#define GPIO_PORTA_MIS_R        (*((volatile uint32_t *)0x40004418))
+#define GPIO_PORTA_ICR_R        (*((volatile uint32_t *)0x4000441C))
+#define GPIO_PORTA_AFSEL_R      (*((volatile uint32_t *)0x40004420))
+#define GPIO_PORTA_DR2R_R       (*((volatile uint32_t *)0x40004500))
+#define GPIO_PORTA_DR4R_R       (*((volatile uint32_t *)0x40004504))
+#define GPIO_PORTA_DR8R_R       (*((volatile uint32_t *)0x40004508))
+#define GPIO_PORTA_ODR_R        (*((volatile uint32_t *)0x4000450C))
+#define GPIO_PORTA_PUR_R        (*((volatile uint32_t *)0x40004510))
+#define GPIO_PORTA_PDR_R        (*((volatile uint32_t *)0x40004514))
+#define GPIO_PORTA_SLR_R        (*((volatile uint32_t *)0x40004518))
+#define GPIO_PORTA_DEN_R        (*((volatile uint32_t *)0x4000451C))
+#define GPIO_PORTA_LOCK_R       (*((volatile uint32_t *)0x40004520))
+#define GPIO_PORTA_CR_R         (*((volatile uint32_t *)0x40004524))
+#define GPIO_PORTA_AMSEL_R      (*((volatile uint32_t *)0x40004528))
+#define GPIO_PORTA_PCTL_R       (*((volatile uint32_t *)0x4000452C))
+#define GPIO_PORTA_ADCCTL_R     (*((volatile uint32_t *)0x40004530))
+#define GPIO_PORTA_DMACTL_R     (*((volatile uint32_t *)0x40004534))
+
+//*****************************************************************************
+//
+// GPIO registers (PORTB)
+//
+//*****************************************************************************
+#define GPIO_PORTB_DATA_BITS_R  ((volatile uint32_t *)0x40005000)
+#define GPIO_PORTB_DATA_R       (*((volatile uint32_t *)0x400053FC))
+#define GPIO_PORTB_DIR_R        (*((volatile uint32_t *)0x40005400))
+#define GPIO_PORTB_IS_R         (*((volatile uint32_t *)0x40005404))
+#define GPIO_PORTB_IBE_R        (*((volatile uint32_t *)0x40005408))
+#define GPIO_PORTB_IEV_R        (*((volatile uint32_t *)0x4000540C))
+#define GPIO_PORTB_IM_R         (*((volatile uint32_t *)0x40005410))
+#define GPIO_PORTB_RIS_R        (*((volatile uint32_t *)0x40005414))
+#define GPIO_PORTB_MIS_R        (*((volatile uint32_t *)0x40005418))
+#define GPIO_PORTB_ICR_R        (*((volatile uint32_t *)0x4000541C))
+#define GPIO_PORTB_AFSEL_R      (*((volatile uint32_t *)0x40005420))
+#define GPIO_PORTB_DR2R_R       (*((volatile uint32_t *)0x40005500))
+#define GPIO_PORTB_DR4R_R       (*((volatile uint32_t *)0x40005504))
+#define GPIO_PORTB_DR8R_R       (*((volatile uint32_t *)0x40005508))
+#define GPIO_PORTB_ODR_R        (*((volatile uint32_t *)0x4000550C))
+#define GPIO_PORTB_PUR_R        (*((volatile uint32_t *)0x40005510))
+#define GPIO_PORTB_PDR_R        (*((volatile uint32_t *)0x40005514))
+#define GPIO_PORTB_SLR_R        (*((volatile uint32_t *)0x40005518))
+#define GPIO_PORTB_DEN_R        (*((volatile uint32_t *)0x4000551C))
+#define GPIO_PORTB_LOCK_R       (*((volatile uint32_t *)0x40005520))
+#define GPIO_PORTB_CR_R         (*((volatile uint32_t *)0x40005524))
+#define GPIO_PORTB_AMSEL_R      (*((volatile uint32_t *)0x40005528))
+#define GPIO_PORTB_PCTL_R       (*((volatile uint32_t *)0x4000552C))
+#define GPIO_PORTB_ADCCTL_R     (*((volatile uint32_t *)0x40005530))
+#define GPIO_PORTB_DMACTL_R     (*((volatile uint32_t *)0x40005534))
+
+//*****************************************************************************
+//
+// GPIO registers (PORTC)
+//
+//*****************************************************************************
+#define GPIO_PORTC_DATA_BITS_R  ((volatile uint32_t *)0x40006000)
+#define GPIO_PORTC_DATA_R       (*((volatile uint32_t *)0x400063FC))
+#define GPIO_PORTC_DIR_R        (*((volatile uint32_t *)0x40006400))
+#define GPIO_PORTC_IS_R         (*((volatile uint32_t *)0x40006404))
+#define GPIO_PORTC_IBE_R        (*((volatile uint32_t *)0x40006408))
+#define GPIO_PORTC_IEV_R        (*((volatile uint32_t *)0x4000640C))
+#define GPIO_PORTC_IM_R         (*((volatile uint32_t *)0x40006410))
+#define GPIO_PORTC_RIS_R        (*((volatile uint32_t *)0x40006414))
+#define GPIO_PORTC_MIS_R        (*((volatile uint32_t *)0x40006418))
+#define GPIO_PORTC_ICR_R        (*((volatile uint32_t *)0x4000641C))
+#define GPIO_PORTC_AFSEL_R      (*((volatile uint32_t *)0x40006420))
+#define GPIO_PORTC_DR2R_R       (*((volatile uint32_t *)0x40006500))
+#define GPIO_PORTC_DR4R_R       (*((volatile uint32_t *)0x40006504))
+#define GPIO_PORTC_DR8R_R       (*((volatile uint32_t *)0x40006508))
+#define GPIO_PORTC_ODR_R        (*((volatile uint32_t *)0x4000650C))
+#define GPIO_PORTC_PUR_R        (*((volatile uint32_t *)0x40006510))
+#define GPIO_PORTC_PDR_R        (*((volatile uint32_t *)0x40006514))
+#define GPIO_PORTC_SLR_R        (*((volatile uint32_t *)0x40006518))
+#define GPIO_PORTC_DEN_R        (*((volatile uint32_t *)0x4000651C))
+#define GPIO_PORTC_LOCK_R       (*((volatile uint32_t *)0x40006520))
+#define GPIO_PORTC_CR_R         (*((volatile uint32_t *)0x40006524))
+#define GPIO_PORTC_AMSEL_R      (*((volatile uint32_t *)0x40006528))
+#define GPIO_PORTC_PCTL_R       (*((volatile uint32_t *)0x4000652C))
+#define GPIO_PORTC_ADCCTL_R     (*((volatile uint32_t *)0x40006530))
+#define GPIO_PORTC_DMACTL_R     (*((volatile uint32_t *)0x40006534))
+
+//*****************************************************************************
+//
+// GPIO registers (PORTD)
+//
+//*****************************************************************************
+#define GPIO_PORTD_DATA_BITS_R  ((volatile uint32_t *)0x40007000)
+#define GPIO_PORTD_DATA_R       (*((volatile uint32_t *)0x400073FC))
+#define GPIO_PORTD_DIR_R        (*((volatile uint32_t *)0x40007400))
+#define GPIO_PORTD_IS_R         (*((volatile uint32_t *)0x40007404))
+#define GPIO_PORTD_IBE_R        (*((volatile uint32_t *)0x40007408))
+#define GPIO_PORTD_IEV_R        (*((volatile uint32_t *)0x4000740C))
+#define GPIO_PORTD_IM_R         (*((volatile uint32_t *)0x40007410))
+#define GPIO_PORTD_RIS_R        (*((volatile uint32_t *)0x40007414))
+#define GPIO_PORTD_MIS_R        (*((volatile uint32_t *)0x40007418))
+#define GPIO_PORTD_ICR_R        (*((volatile uint32_t *)0x4000741C))
+#define GPIO_PORTD_AFSEL_R      (*((volatile uint32_t *)0x40007420))
+#define GPIO_PORTD_DR2R_R       (*((volatile uint32_t *)0x40007500))
+#define GPIO_PORTD_DR4R_R       (*((volatile uint32_t *)0x40007504))
+#define GPIO_PORTD_DR8R_R       (*((volatile uint32_t *)0x40007508))
+#define GPIO_PORTD_ODR_R        (*((volatile uint32_t *)0x4000750C))
+#define GPIO_PORTD_PUR_R        (*((volatile uint32_t *)0x40007510))
+#define GPIO_PORTD_PDR_R        (*((volatile uint32_t *)0x40007514))
+#define GPIO_PORTD_SLR_R        (*((volatile uint32_t *)0x40007518))
+#define GPIO_PORTD_DEN_R        (*((volatile uint32_t *)0x4000751C))
+#define GPIO_PORTD_LOCK_R       (*((volatile uint32_t *)0x40007520))
+#define GPIO_PORTD_CR_R         (*((volatile uint32_t *)0x40007524))
+#define GPIO_PORTD_AMSEL_R      (*((volatile uint32_t *)0x40007528))
+#define GPIO_PORTD_PCTL_R       (*((volatile uint32_t *)0x4000752C))
+#define GPIO_PORTD_ADCCTL_R     (*((volatile uint32_t *)0x40007530))
+#define GPIO_PORTD_DMACTL_R     (*((volatile uint32_t *)0x40007534))
+
+//*****************************************************************************
+//
+// SSI registers (SSI0)
+//
+//*****************************************************************************
+#define SSI0_CR0_R              (*((volatile uint32_t *)0x40008000))
+#define SSI0_CR1_R              (*((volatile uint32_t *)0x40008004))
+#define SSI0_DR_R               (*((volatile uint32_t *)0x40008008))
+#define SSI0_SR_R               (*((volatile uint32_t *)0x4000800C))
+#define SSI0_CPSR_R             (*((volatile uint32_t *)0x40008010))
+#define SSI0_IM_R               (*((volatile uint32_t *)0x40008014))
+#define SSI0_RIS_R              (*((volatile uint32_t *)0x40008018))
+#define SSI0_MIS_R              (*((volatile uint32_t *)0x4000801C))
+#define SSI0_ICR_R              (*((volatile uint32_t *)0x40008020))
+#define SSI0_DMACTL_R           (*((volatile uint32_t *)0x40008024))
+#define SSI0_CC_R               (*((volatile uint32_t *)0x40008FC8))
+
+//*****************************************************************************
+//
+// SSI registers (SSI1)
+//
+//*****************************************************************************
+#define SSI1_CR0_R              (*((volatile uint32_t *)0x40009000))
+#define SSI1_CR1_R              (*((volatile uint32_t *)0x40009004))
+#define SSI1_DR_R               (*((volatile uint32_t *)0x40009008))
+#define SSI1_SR_R               (*((volatile uint32_t *)0x4000900C))
+#define SSI1_CPSR_R             (*((volatile uint32_t *)0x40009010))
+#define SSI1_IM_R               (*((volatile uint32_t *)0x40009014))
+#define SSI1_RIS_R              (*((volatile uint32_t *)0x40009018))
+#define SSI1_MIS_R              (*((volatile uint32_t *)0x4000901C))
+#define SSI1_ICR_R              (*((volatile uint32_t *)0x40009020))
+#define SSI1_DMACTL_R           (*((volatile uint32_t *)0x40009024))
+#define SSI1_CC_R               (*((volatile uint32_t *)0x40009FC8))
+
+//*****************************************************************************
+//
+// SSI registers (SSI2)
+//
+//*****************************************************************************
+#define SSI2_CR0_R              (*((volatile uint32_t *)0x4000A000))
+#define SSI2_CR1_R              (*((volatile uint32_t *)0x4000A004))
+#define SSI2_DR_R               (*((volatile uint32_t *)0x4000A008))
+#define SSI2_SR_R               (*((volatile uint32_t *)0x4000A00C))
+#define SSI2_CPSR_R             (*((volatile uint32_t *)0x4000A010))
+#define SSI2_IM_R               (*((volatile uint32_t *)0x4000A014))
+#define SSI2_RIS_R              (*((volatile uint32_t *)0x4000A018))
+#define SSI2_MIS_R              (*((volatile uint32_t *)0x4000A01C))
+#define SSI2_ICR_R              (*((volatile uint32_t *)0x4000A020))
+#define SSI2_DMACTL_R           (*((volatile uint32_t *)0x4000A024))
+#define SSI2_CC_R               (*((volatile uint32_t *)0x4000AFC8))
+
+//*****************************************************************************
+//
+// SSI registers (SSI3)
+//
+//*****************************************************************************
+#define SSI3_CR0_R              (*((volatile uint32_t *)0x4000B000))
+#define SSI3_CR1_R              (*((volatile uint32_t *)0x4000B004))
+#define SSI3_DR_R               (*((volatile uint32_t *)0x4000B008))
+#define SSI3_SR_R               (*((volatile uint32_t *)0x4000B00C))
+#define SSI3_CPSR_R             (*((volatile uint32_t *)0x4000B010))
+#define SSI3_IM_R               (*((volatile uint32_t *)0x4000B014))
+#define SSI3_RIS_R              (*((volatile uint32_t *)0x4000B018))
+#define SSI3_MIS_R              (*((volatile uint32_t *)0x4000B01C))
+#define SSI3_ICR_R              (*((volatile uint32_t *)0x4000B020))
+#define SSI3_DMACTL_R           (*((volatile uint32_t *)0x4000B024))
+#define SSI3_CC_R               (*((volatile uint32_t *)0x4000BFC8))
+
+//*****************************************************************************
+//
+// UART registers (UART0)
+//
+//*****************************************************************************
+#define UART0_DR_R              (*((volatile uint32_t *)0x4000C000))
+#define UART0_RSR_R             (*((volatile uint32_t *)0x4000C004))
+#define UART0_ECR_R             (*((volatile uint32_t *)0x4000C004))
+#define UART0_FR_R              (*((volatile uint32_t *)0x4000C018))
+#define UART0_ILPR_R            (*((volatile uint32_t *)0x4000C020))
+#define UART0_IBRD_R            (*((volatile uint32_t *)0x4000C024))
+#define UART0_FBRD_R            (*((volatile uint32_t *)0x4000C028))
+#define UART0_LCRH_R            (*((volatile uint32_t *)0x4000C02C))
+#define UART0_CTL_R             (*((volatile uint32_t *)0x4000C030))
+#define UART0_IFLS_R            (*((volatile uint32_t *)0x4000C034))
+#define UART0_IM_R              (*((volatile uint32_t *)0x4000C038))
+#define UART0_RIS_R             (*((volatile uint32_t *)0x4000C03C))
+#define UART0_MIS_R             (*((volatile uint32_t *)0x4000C040))
+#define UART0_ICR_R             (*((volatile uint32_t *)0x4000C044))
+#define UART0_DMACTL_R          (*((volatile uint32_t *)0x4000C048))
+#define UART0_9BITADDR_R        (*((volatile uint32_t *)0x4000C0A4))
+#define UART0_9BITAMASK_R       (*((volatile uint32_t *)0x4000C0A8))
+#define UART0_PP_R              (*((volatile uint32_t *)0x4000CFC0))
+#define UART0_CC_R              (*((volatile uint32_t *)0x4000CFC8))
+
+//*****************************************************************************
+//
+// UART registers (UART1)
+//
+//*****************************************************************************
+#define UART1_DR_R              (*((volatile uint32_t *)0x4000D000))
+#define UART1_RSR_R             (*((volatile uint32_t *)0x4000D004))
+#define UART1_ECR_R             (*((volatile uint32_t *)0x4000D004))
+#define UART1_FR_R              (*((volatile uint32_t *)0x4000D018))
+#define UART1_ILPR_R            (*((volatile uint32_t *)0x4000D020))
+#define UART1_IBRD_R            (*((volatile uint32_t *)0x4000D024))
+#define UART1_FBRD_R            (*((volatile uint32_t *)0x4000D028))
+#define UART1_LCRH_R            (*((volatile uint32_t *)0x4000D02C))
+#define UART1_CTL_R             (*((volatile uint32_t *)0x4000D030))
+#define UART1_IFLS_R            (*((volatile uint32_t *)0x4000D034))
+#define UART1_IM_R              (*((volatile uint32_t *)0x4000D038))
+#define UART1_RIS_R             (*((volatile uint32_t *)0x4000D03C))
+#define UART1_MIS_R             (*((volatile uint32_t *)0x4000D040))
+#define UART1_ICR_R             (*((volatile uint32_t *)0x4000D044))
+#define UART1_DMACTL_R          (*((volatile uint32_t *)0x4000D048))
+#define UART1_9BITADDR_R        (*((volatile uint32_t *)0x4000D0A4))
+#define UART1_9BITAMASK_R       (*((volatile uint32_t *)0x4000D0A8))
+#define UART1_PP_R              (*((volatile uint32_t *)0x4000DFC0))
+#define UART1_CC_R              (*((volatile uint32_t *)0x4000DFC8))
+
+//*****************************************************************************
+//
+// UART registers (UART2)
+//
+//*****************************************************************************
+#define UART2_DR_R              (*((volatile uint32_t *)0x4000E000))
+#define UART2_RSR_R             (*((volatile uint32_t *)0x4000E004))
+#define UART2_ECR_R             (*((volatile uint32_t *)0x4000E004))
+#define UART2_FR_R              (*((volatile uint32_t *)0x4000E018))
+#define UART2_ILPR_R            (*((volatile uint32_t *)0x4000E020))
+#define UART2_IBRD_R            (*((volatile uint32_t *)0x4000E024))
+#define UART2_FBRD_R            (*((volatile uint32_t *)0x4000E028))
+#define UART2_LCRH_R            (*((volatile uint32_t *)0x4000E02C))
+#define UART2_CTL_R             (*((volatile uint32_t *)0x4000E030))
+#define UART2_IFLS_R            (*((volatile uint32_t *)0x4000E034))
+#define UART2_IM_R              (*((volatile uint32_t *)0x4000E038))
+#define UART2_RIS_R             (*((volatile uint32_t *)0x4000E03C))
+#define UART2_MIS_R             (*((volatile uint32_t *)0x4000E040))
+#define UART2_ICR_R             (*((volatile uint32_t *)0x4000E044))
+#define UART2_DMACTL_R          (*((volatile uint32_t *)0x4000E048))
+#define UART2_9BITADDR_R        (*((volatile uint32_t *)0x4000E0A4))
+#define UART2_9BITAMASK_R       (*((volatile uint32_t *)0x4000E0A8))
+#define UART2_PP_R              (*((volatile uint32_t *)0x4000EFC0))
+#define UART2_CC_R              (*((volatile uint32_t *)0x4000EFC8))
+
+//*****************************************************************************
+//
+// UART registers (UART3)
+//
+//*****************************************************************************
+#define UART3_DR_R              (*((volatile uint32_t *)0x4000F000))
+#define UART3_RSR_R             (*((volatile uint32_t *)0x4000F004))
+#define UART3_ECR_R             (*((volatile uint32_t *)0x4000F004))
+#define UART3_FR_R              (*((volatile uint32_t *)0x4000F018))
+#define UART3_ILPR_R            (*((volatile uint32_t *)0x4000F020))
+#define UART3_IBRD_R            (*((volatile uint32_t *)0x4000F024))
+#define UART3_FBRD_R            (*((volatile uint32_t *)0x4000F028))
+#define UART3_LCRH_R            (*((volatile uint32_t *)0x4000F02C))
+#define UART3_CTL_R             (*((volatile uint32_t *)0x4000F030))
+#define UART3_IFLS_R            (*((volatile uint32_t *)0x4000F034))
+#define UART3_IM_R              (*((volatile uint32_t *)0x4000F038))
+#define UART3_RIS_R             (*((volatile uint32_t *)0x4000F03C))
+#define UART3_MIS_R             (*((volatile uint32_t *)0x4000F040))
+#define UART3_ICR_R             (*((volatile uint32_t *)0x4000F044))
+#define UART3_DMACTL_R          (*((volatile uint32_t *)0x4000F048))
+#define UART3_9BITADDR_R        (*((volatile uint32_t *)0x4000F0A4))
+#define UART3_9BITAMASK_R       (*((volatile uint32_t *)0x4000F0A8))
+#define UART3_PP_R              (*((volatile uint32_t *)0x4000FFC0))
+#define UART3_CC_R              (*((volatile uint32_t *)0x4000FFC8))
+
+//*****************************************************************************
+//
+// UART registers (UART4)
+//
+//*****************************************************************************
+#define UART4_DR_R              (*((volatile uint32_t *)0x40010000))
+#define UART4_RSR_R             (*((volatile uint32_t *)0x40010004))
+#define UART4_ECR_R             (*((volatile uint32_t *)0x40010004))
+#define UART4_FR_R              (*((volatile uint32_t *)0x40010018))
+#define UART4_ILPR_R            (*((volatile uint32_t *)0x40010020))
+#define UART4_IBRD_R            (*((volatile uint32_t *)0x40010024))
+#define UART4_FBRD_R            (*((volatile uint32_t *)0x40010028))
+#define UART4_LCRH_R            (*((volatile uint32_t *)0x4001002C))
+#define UART4_CTL_R             (*((volatile uint32_t *)0x40010030))
+#define UART4_IFLS_R            (*((volatile uint32_t *)0x40010034))
+#define UART4_IM_R              (*((volatile uint32_t *)0x40010038))
+#define UART4_RIS_R             (*((volatile uint32_t *)0x4001003C))
+#define UART4_MIS_R             (*((volatile uint32_t *)0x40010040))
+#define UART4_ICR_R             (*((volatile uint32_t *)0x40010044))
+#define UART4_DMACTL_R          (*((volatile uint32_t *)0x40010048))
+#define UART4_9BITADDR_R        (*((volatile uint32_t *)0x400100A4))
+#define UART4_9BITAMASK_R       (*((volatile uint32_t *)0x400100A8))
+#define UART4_PP_R              (*((volatile uint32_t *)0x40010FC0))
+#define UART4_CC_R              (*((volatile uint32_t *)0x40010FC8))
+
+//*****************************************************************************
+//
+// UART registers (UART5)
+//
+//*****************************************************************************
+#define UART5_DR_R              (*((volatile uint32_t *)0x40011000))
+#define UART5_RSR_R             (*((volatile uint32_t *)0x40011004))
+#define UART5_ECR_R             (*((volatile uint32_t *)0x40011004))
+#define UART5_FR_R              (*((volatile uint32_t *)0x40011018))
+#define UART5_ILPR_R            (*((volatile uint32_t *)0x40011020))
+#define UART5_IBRD_R            (*((volatile uint32_t *)0x40011024))
+#define UART5_FBRD_R            (*((volatile uint32_t *)0x40011028))
+#define UART5_LCRH_R            (*((volatile uint32_t *)0x4001102C))
+#define UART5_CTL_R             (*((volatile uint32_t *)0x40011030))
+#define UART5_IFLS_R            (*((volatile uint32_t *)0x40011034))
+#define UART5_IM_R              (*((volatile uint32_t *)0x40011038))
+#define UART5_RIS_R             (*((volatile uint32_t *)0x4001103C))
+#define UART5_MIS_R             (*((volatile uint32_t *)0x40011040))
+#define UART5_ICR_R             (*((volatile uint32_t *)0x40011044))
+#define UART5_DMACTL_R          (*((volatile uint32_t *)0x40011048))
+#define UART5_9BITADDR_R        (*((volatile uint32_t *)0x400110A4))
+#define UART5_9BITAMASK_R       (*((volatile uint32_t *)0x400110A8))
+#define UART5_PP_R              (*((volatile uint32_t *)0x40011FC0))
+#define UART5_CC_R              (*((volatile uint32_t *)0x40011FC8))
+
+//*****************************************************************************
+//
+// UART registers (UART6)
+//
+//*****************************************************************************
+#define UART6_DR_R              (*((volatile uint32_t *)0x40012000))
+#define UART6_RSR_R             (*((volatile uint32_t *)0x40012004))
+#define UART6_ECR_R             (*((volatile uint32_t *)0x40012004))
+#define UART6_FR_R              (*((volatile uint32_t *)0x40012018))
+#define UART6_ILPR_R            (*((volatile uint32_t *)0x40012020))
+#define UART6_IBRD_R            (*((volatile uint32_t *)0x40012024))
+#define UART6_FBRD_R            (*((volatile uint32_t *)0x40012028))
+#define UART6_LCRH_R            (*((volatile uint32_t *)0x4001202C))
+#define UART6_CTL_R             (*((volatile uint32_t *)0x40012030))
+#define UART6_IFLS_R            (*((volatile uint32_t *)0x40012034))
+#define UART6_IM_R              (*((volatile uint32_t *)0x40012038))
+#define UART6_RIS_R             (*((volatile uint32_t *)0x4001203C))
+#define UART6_MIS_R             (*((volatile uint32_t *)0x40012040))
+#define UART6_ICR_R             (*((volatile uint32_t *)0x40012044))
+#define UART6_DMACTL_R          (*((volatile uint32_t *)0x40012048))
+#define UART6_9BITADDR_R        (*((volatile uint32_t *)0x400120A4))
+#define UART6_9BITAMASK_R       (*((volatile uint32_t *)0x400120A8))
+#define UART6_PP_R              (*((volatile uint32_t *)0x40012FC0))
+#define UART6_CC_R              (*((volatile uint32_t *)0x40012FC8))
+
+//*****************************************************************************
+//
+// UART registers (UART7)
+//
+//*****************************************************************************
+#define UART7_DR_R              (*((volatile uint32_t *)0x40013000))
+#define UART7_RSR_R             (*((volatile uint32_t *)0x40013004))
+#define UART7_ECR_R             (*((volatile uint32_t *)0x40013004))
+#define UART7_FR_R              (*((volatile uint32_t *)0x40013018))
+#define UART7_ILPR_R            (*((volatile uint32_t *)0x40013020))
+#define UART7_IBRD_R            (*((volatile uint32_t *)0x40013024))
+#define UART7_FBRD_R            (*((volatile uint32_t *)0x40013028))
+#define UART7_LCRH_R            (*((volatile uint32_t *)0x4001302C))
+#define UART7_CTL_R             (*((volatile uint32_t *)0x40013030))
+#define UART7_IFLS_R            (*((volatile uint32_t *)0x40013034))
+#define UART7_IM_R              (*((volatile uint32_t *)0x40013038))
+#define UART7_RIS_R             (*((volatile uint32_t *)0x4001303C))
+#define UART7_MIS_R             (*((volatile uint32_t *)0x40013040))
+#define UART7_ICR_R             (*((volatile uint32_t *)0x40013044))
+#define UART7_DMACTL_R          (*((volatile uint32_t *)0x40013048))
+#define UART7_9BITADDR_R        (*((volatile uint32_t *)0x400130A4))
+#define UART7_9BITAMASK_R       (*((volatile uint32_t *)0x400130A8))
+#define UART7_PP_R              (*((volatile uint32_t *)0x40013FC0))
+#define UART7_CC_R              (*((volatile uint32_t *)0x40013FC8))
+
+//*****************************************************************************
+//
+// I2C registers (I2C0)
+//
+//*****************************************************************************
+#define I2C0_MSA_R              (*((volatile uint32_t *)0x40020000))
+#define I2C0_MCS_R              (*((volatile uint32_t *)0x40020004))
+#define I2C0_MDR_R              (*((volatile uint32_t *)0x40020008))
+#define I2C0_MTPR_R             (*((volatile uint32_t *)0x4002000C))
+#define I2C0_MIMR_R             (*((volatile uint32_t *)0x40020010))
+#define I2C0_MRIS_R             (*((volatile uint32_t *)0x40020014))
+#define I2C0_MMIS_R             (*((volatile uint32_t *)0x40020018))
+#define I2C0_MICR_R             (*((volatile uint32_t *)0x4002001C))
+#define I2C0_MCR_R              (*((volatile uint32_t *)0x40020020))
+#define I2C0_MCLKOCNT_R         (*((volatile uint32_t *)0x40020024))
+#define I2C0_MBMON_R            (*((volatile uint32_t *)0x4002002C))
+#define I2C0_MCR2_R             (*((volatile uint32_t *)0x40020038))
+#define I2C0_SOAR_R             (*((volatile uint32_t *)0x40020800))
+#define I2C0_SCSR_R             (*((volatile uint32_t *)0x40020804))
+#define I2C0_SDR_R              (*((volatile uint32_t *)0x40020808))
+#define I2C0_SIMR_R             (*((volatile uint32_t *)0x4002080C))
+#define I2C0_SRIS_R             (*((volatile uint32_t *)0x40020810))
+#define I2C0_SMIS_R             (*((volatile uint32_t *)0x40020814))
+#define I2C0_SICR_R             (*((volatile uint32_t *)0x40020818))
+#define I2C0_SOAR2_R            (*((volatile uint32_t *)0x4002081C))
+#define I2C0_SACKCTL_R          (*((volatile uint32_t *)0x40020820))
+#define I2C0_PP_R               (*((volatile uint32_t *)0x40020FC0))
+#define I2C0_PC_R               (*((volatile uint32_t *)0x40020FC4))
+
+//*****************************************************************************
+//
+// I2C registers (I2C1)
+//
+//*****************************************************************************
+#define I2C1_MSA_R              (*((volatile uint32_t *)0x40021000))
+#define I2C1_MCS_R              (*((volatile uint32_t *)0x40021004))
+#define I2C1_MDR_R              (*((volatile uint32_t *)0x40021008))
+#define I2C1_MTPR_R             (*((volatile uint32_t *)0x4002100C))
+#define I2C1_MIMR_R             (*((volatile uint32_t *)0x40021010))
+#define I2C1_MRIS_R             (*((volatile uint32_t *)0x40021014))
+#define I2C1_MMIS_R             (*((volatile uint32_t *)0x40021018))
+#define I2C1_MICR_R             (*((volatile uint32_t *)0x4002101C))
+#define I2C1_MCR_R              (*((volatile uint32_t *)0x40021020))
+#define I2C1_MCLKOCNT_R         (*((volatile uint32_t *)0x40021024))
+#define I2C1_MBMON_R            (*((volatile uint32_t *)0x4002102C))
+#define I2C1_MCR2_R             (*((volatile uint32_t *)0x40021038))
+#define I2C1_SOAR_R             (*((volatile uint32_t *)0x40021800))
+#define I2C1_SCSR_R             (*((volatile uint32_t *)0x40021804))
+#define I2C1_SDR_R              (*((volatile uint32_t *)0x40021808))
+#define I2C1_SIMR_R             (*((volatile uint32_t *)0x4002180C))
+#define I2C1_SRIS_R             (*((volatile uint32_t *)0x40021810))
+#define I2C1_SMIS_R             (*((volatile uint32_t *)0x40021814))
+#define I2C1_SICR_R             (*((volatile uint32_t *)0x40021818))
+#define I2C1_SOAR2_R            (*((volatile uint32_t *)0x4002181C))
+#define I2C1_SACKCTL_R          (*((volatile uint32_t *)0x40021820))
+#define I2C1_PP_R               (*((volatile uint32_t *)0x40021FC0))
+#define I2C1_PC_R               (*((volatile uint32_t *)0x40021FC4))
+
+//*****************************************************************************
+//
+// I2C registers (I2C2)
+//
+//*****************************************************************************
+#define I2C2_MSA_R              (*((volatile uint32_t *)0x40022000))
+#define I2C2_MCS_R              (*((volatile uint32_t *)0x40022004))
+#define I2C2_MDR_R              (*((volatile uint32_t *)0x40022008))
+#define I2C2_MTPR_R             (*((volatile uint32_t *)0x4002200C))
+#define I2C2_MIMR_R             (*((volatile uint32_t *)0x40022010))
+#define I2C2_MRIS_R             (*((volatile uint32_t *)0x40022014))
+#define I2C2_MMIS_R             (*((volatile uint32_t *)0x40022018))
+#define I2C2_MICR_R             (*((volatile uint32_t *)0x4002201C))
+#define I2C2_MCR_R              (*((volatile uint32_t *)0x40022020))
+#define I2C2_MCLKOCNT_R         (*((volatile uint32_t *)0x40022024))
+#define I2C2_MBMON_R            (*((volatile uint32_t *)0x4002202C))
+#define I2C2_MCR2_R             (*((volatile uint32_t *)0x40022038))
+#define I2C2_SOAR_R             (*((volatile uint32_t *)0x40022800))
+#define I2C2_SCSR_R             (*((volatile uint32_t *)0x40022804))
+#define I2C2_SDR_R              (*((volatile uint32_t *)0x40022808))
+#define I2C2_SIMR_R             (*((volatile uint32_t *)0x4002280C))
+#define I2C2_SRIS_R             (*((volatile uint32_t *)0x40022810))
+#define I2C2_SMIS_R             (*((volatile uint32_t *)0x40022814))
+#define I2C2_SICR_R             (*((volatile uint32_t *)0x40022818))
+#define I2C2_SOAR2_R            (*((volatile uint32_t *)0x4002281C))
+#define I2C2_SACKCTL_R          (*((volatile uint32_t *)0x40022820))
+#define I2C2_PP_R               (*((volatile uint32_t *)0x40022FC0))
+#define I2C2_PC_R               (*((volatile uint32_t *)0x40022FC4))
+
+//*****************************************************************************
+//
+// I2C registers (I2C3)
+//
+//*****************************************************************************
+#define I2C3_MSA_R              (*((volatile uint32_t *)0x40023000))
+#define I2C3_MCS_R              (*((volatile uint32_t *)0x40023004))
+#define I2C3_MDR_R              (*((volatile uint32_t *)0x40023008))
+#define I2C3_MTPR_R             (*((volatile uint32_t *)0x4002300C))
+#define I2C3_MIMR_R             (*((volatile uint32_t *)0x40023010))
+#define I2C3_MRIS_R             (*((volatile uint32_t *)0x40023014))
+#define I2C3_MMIS_R             (*((volatile uint32_t *)0x40023018))
+#define I2C3_MICR_R             (*((volatile uint32_t *)0x4002301C))
+#define I2C3_MCR_R              (*((volatile uint32_t *)0x40023020))
+#define I2C3_MCLKOCNT_R         (*((volatile uint32_t *)0x40023024))
+#define I2C3_MBMON_R            (*((volatile uint32_t *)0x4002302C))
+#define I2C3_MCR2_R             (*((volatile uint32_t *)0x40023038))
+#define I2C3_SOAR_R             (*((volatile uint32_t *)0x40023800))
+#define I2C3_SCSR_R             (*((volatile uint32_t *)0x40023804))
+#define I2C3_SDR_R              (*((volatile uint32_t *)0x40023808))
+#define I2C3_SIMR_R             (*((volatile uint32_t *)0x4002380C))
+#define I2C3_SRIS_R             (*((volatile uint32_t *)0x40023810))
+#define I2C3_SMIS_R             (*((volatile uint32_t *)0x40023814))
+#define I2C3_SICR_R             (*((volatile uint32_t *)0x40023818))
+#define I2C3_SOAR2_R            (*((volatile uint32_t *)0x4002381C))
+#define I2C3_SACKCTL_R          (*((volatile uint32_t *)0x40023820))
+#define I2C3_PP_R               (*((volatile uint32_t *)0x40023FC0))
+#define I2C3_PC_R               (*((volatile uint32_t *)0x40023FC4))
+
+//*****************************************************************************
+//
+// GPIO registers (PORTE)
+//
+//*****************************************************************************
+#define GPIO_PORTE_DATA_BITS_R  ((volatile uint32_t *)0x40024000)
+#define GPIO_PORTE_DATA_R       (*((volatile uint32_t *)0x400243FC))
+#define GPIO_PORTE_DIR_R        (*((volatile uint32_t *)0x40024400))
+#define GPIO_PORTE_IS_R         (*((volatile uint32_t *)0x40024404))
+#define GPIO_PORTE_IBE_R        (*((volatile uint32_t *)0x40024408))
+#define GPIO_PORTE_IEV_R        (*((volatile uint32_t *)0x4002440C))
+#define GPIO_PORTE_IM_R         (*((volatile uint32_t *)0x40024410))
+#define GPIO_PORTE_RIS_R        (*((volatile uint32_t *)0x40024414))
+#define GPIO_PORTE_MIS_R        (*((volatile uint32_t *)0x40024418))
+#define GPIO_PORTE_ICR_R        (*((volatile uint32_t *)0x4002441C))
+#define GPIO_PORTE_AFSEL_R      (*((volatile uint32_t *)0x40024420))
+#define GPIO_PORTE_DR2R_R       (*((volatile uint32_t *)0x40024500))
+#define GPIO_PORTE_DR4R_R       (*((volatile uint32_t *)0x40024504))
+#define GPIO_PORTE_DR8R_R       (*((volatile uint32_t *)0x40024508))
+#define GPIO_PORTE_ODR_R        (*((volatile uint32_t *)0x4002450C))
+#define GPIO_PORTE_PUR_R        (*((volatile uint32_t *)0x40024510))
+#define GPIO_PORTE_PDR_R        (*((volatile uint32_t *)0x40024514))
+#define GPIO_PORTE_SLR_R        (*((volatile uint32_t *)0x40024518))
+#define GPIO_PORTE_DEN_R        (*((volatile uint32_t *)0x4002451C))
+#define GPIO_PORTE_LOCK_R       (*((volatile uint32_t *)0x40024520))
+#define GPIO_PORTE_CR_R         (*((volatile uint32_t *)0x40024524))
+#define GPIO_PORTE_AMSEL_R      (*((volatile uint32_t *)0x40024528))
+#define GPIO_PORTE_PCTL_R       (*((volatile uint32_t *)0x4002452C))
+#define GPIO_PORTE_ADCCTL_R     (*((volatile uint32_t *)0x40024530))
+#define GPIO_PORTE_DMACTL_R     (*((volatile uint32_t *)0x40024534))
+
+//*****************************************************************************
+//
+// GPIO registers (PORTF)
+//
+//*****************************************************************************
+#define GPIO_PORTF_DATA_BITS_R  ((volatile uint32_t *)0x40025000)
+#define GPIO_PORTF_DATA_R       (*((volatile uint32_t *)0x400253FC))
+#define GPIO_PORTF_DIR_R        (*((volatile uint32_t *)0x40025400))
+#define GPIO_PORTF_IS_R         (*((volatile uint32_t *)0x40025404))
+#define GPIO_PORTF_IBE_R        (*((volatile uint32_t *)0x40025408))
+#define GPIO_PORTF_IEV_R        (*((volatile uint32_t *)0x4002540C))
+#define GPIO_PORTF_IM_R         (*((volatile uint32_t *)0x40025410))
+#define GPIO_PORTF_RIS_R        (*((volatile uint32_t *)0x40025414))
+#define GPIO_PORTF_MIS_R        (*((volatile uint32_t *)0x40025418))
+#define GPIO_PORTF_ICR_R        (*((volatile uint32_t *)0x4002541C))
+#define GPIO_PORTF_AFSEL_R      (*((volatile uint32_t *)0x40025420))
+#define GPIO_PORTF_DR2R_R       (*((volatile uint32_t *)0x40025500))
+#define GPIO_PORTF_DR4R_R       (*((volatile uint32_t *)0x40025504))
+#define GPIO_PORTF_DR8R_R       (*((volatile uint32_t *)0x40025508))
+#define GPIO_PORTF_ODR_R        (*((volatile uint32_t *)0x4002550C))
+#define GPIO_PORTF_PUR_R        (*((volatile uint32_t *)0x40025510))
+#define GPIO_PORTF_PDR_R        (*((volatile uint32_t *)0x40025514))
+#define GPIO_PORTF_SLR_R        (*((volatile uint32_t *)0x40025518))
+#define GPIO_PORTF_DEN_R        (*((volatile uint32_t *)0x4002551C))
+#define GPIO_PORTF_LOCK_R       (*((volatile uint32_t *)0x40025520))
+#define GPIO_PORTF_CR_R         (*((volatile uint32_t *)0x40025524))
+#define GPIO_PORTF_AMSEL_R      (*((volatile uint32_t *)0x40025528))
+#define GPIO_PORTF_PCTL_R       (*((volatile uint32_t *)0x4002552C))
+#define GPIO_PORTF_ADCCTL_R     (*((volatile uint32_t *)0x40025530))
+#define GPIO_PORTF_DMACTL_R     (*((volatile uint32_t *)0x40025534))
+
+//*****************************************************************************
+//
+// PWM registers (PWM0)
+//
+//*****************************************************************************
+#define PWM0_CTL_R              (*((volatile uint32_t *)0x40028000))
+#define PWM0_SYNC_R             (*((volatile uint32_t *)0x40028004))
+#define PWM0_ENABLE_R           (*((volatile uint32_t *)0x40028008))
+#define PWM0_INVERT_R           (*((volatile uint32_t *)0x4002800C))
+#define PWM0_FAULT_R            (*((volatile uint32_t *)0x40028010))
+#define PWM0_INTEN_R            (*((volatile uint32_t *)0x40028014))
+#define PWM0_RIS_R              (*((volatile uint32_t *)0x40028018))
+#define PWM0_ISC_R              (*((volatile uint32_t *)0x4002801C))
+#define PWM0_STATUS_R           (*((volatile uint32_t *)0x40028020))
+#define PWM0_FAULTVAL_R         (*((volatile uint32_t *)0x40028024))
+#define PWM0_ENUPD_R            (*((volatile uint32_t *)0x40028028))
+#define PWM0_0_CTL_R            (*((volatile uint32_t *)0x40028040))
+#define PWM0_0_INTEN_R          (*((volatile uint32_t *)0x40028044))
+#define PWM0_0_RIS_R            (*((volatile uint32_t *)0x40028048))
+#define PWM0_0_ISC_R            (*((volatile uint32_t *)0x4002804C))
+#define PWM0_0_LOAD_R           (*((volatile uint32_t *)0x40028050))
+#define PWM0_0_COUNT_R          (*((volatile uint32_t *)0x40028054))
+#define PWM0_0_CMPA_R           (*((volatile uint32_t *)0x40028058))
+#define PWM0_0_CMPB_R           (*((volatile uint32_t *)0x4002805C))
+#define PWM0_0_GENA_R           (*((volatile uint32_t *)0x40028060))
+#define PWM0_0_GENB_R           (*((volatile uint32_t *)0x40028064))
+#define PWM0_0_DBCTL_R          (*((volatile uint32_t *)0x40028068))
+#define PWM0_0_DBRISE_R         (*((volatile uint32_t *)0x4002806C))
+#define PWM0_0_DBFALL_R         (*((volatile uint32_t *)0x40028070))
+#define PWM0_0_FLTSRC0_R        (*((volatile uint32_t *)0x40028074))
+#define PWM0_0_FLTSRC1_R        (*((volatile uint32_t *)0x40028078))
+#define PWM0_0_MINFLTPER_R      (*((volatile uint32_t *)0x4002807C))
+#define PWM0_1_CTL_R            (*((volatile uint32_t *)0x40028080))
+#define PWM0_1_INTEN_R          (*((volatile uint32_t *)0x40028084))
+#define PWM0_1_RIS_R            (*((volatile uint32_t *)0x40028088))
+#define PWM0_1_ISC_R            (*((volatile uint32_t *)0x4002808C))
+#define PWM0_1_LOAD_R           (*((volatile uint32_t *)0x40028090))
+#define PWM0_1_COUNT_R          (*((volatile uint32_t *)0x40028094))
+#define PWM0_1_CMPA_R           (*((volatile uint32_t *)0x40028098))
+#define PWM0_1_CMPB_R           (*((volatile uint32_t *)0x4002809C))
+#define PWM0_1_GENA_R           (*((volatile uint32_t *)0x400280A0))
+#define PWM0_1_GENB_R           (*((volatile uint32_t *)0x400280A4))
+#define PWM0_1_DBCTL_R          (*((volatile uint32_t *)0x400280A8))
+#define PWM0_1_DBRISE_R         (*((volatile uint32_t *)0x400280AC))
+#define PWM0_1_DBFALL_R         (*((volatile uint32_t *)0x400280B0))
+#define PWM0_1_FLTSRC0_R        (*((volatile uint32_t *)0x400280B4))
+#define PWM0_1_FLTSRC1_R        (*((volatile uint32_t *)0x400280B8))
+#define PWM0_1_MINFLTPER_R      (*((volatile uint32_t *)0x400280BC))
+#define PWM0_2_CTL_R            (*((volatile uint32_t *)0x400280C0))
+#define PWM0_2_INTEN_R          (*((volatile uint32_t *)0x400280C4))
+#define PWM0_2_RIS_R            (*((volatile uint32_t *)0x400280C8))
+#define PWM0_2_ISC_R            (*((volatile uint32_t *)0x400280CC))
+#define PWM0_2_LOAD_R           (*((volatile uint32_t *)0x400280D0))
+#define PWM0_2_COUNT_R          (*((volatile uint32_t *)0x400280D4))
+#define PWM0_2_CMPA_R           (*((volatile uint32_t *)0x400280D8))
+#define PWM0_2_CMPB_R           (*((volatile uint32_t *)0x400280DC))
+#define PWM0_2_GENA_R           (*((volatile uint32_t *)0x400280E0))
+#define PWM0_2_GENB_R           (*((volatile uint32_t *)0x400280E4))
+#define PWM0_2_DBCTL_R          (*((volatile uint32_t *)0x400280E8))
+#define PWM0_2_DBRISE_R         (*((volatile uint32_t *)0x400280EC))
+#define PWM0_2_DBFALL_R         (*((volatile uint32_t *)0x400280F0))
+#define PWM0_2_FLTSRC0_R        (*((volatile uint32_t *)0x400280F4))
+#define PWM0_2_FLTSRC1_R        (*((volatile uint32_t *)0x400280F8))
+#define PWM0_2_MINFLTPER_R      (*((volatile uint32_t *)0x400280FC))
+#define PWM0_3_CTL_R            (*((volatile uint32_t *)0x40028100))
+#define PWM0_3_INTEN_R          (*((volatile uint32_t *)0x40028104))
+#define PWM0_3_RIS_R            (*((volatile uint32_t *)0x40028108))
+#define PWM0_3_ISC_R            (*((volatile uint32_t *)0x4002810C))
+#define PWM0_3_LOAD_R           (*((volatile uint32_t *)0x40028110))
+#define PWM0_3_COUNT_R          (*((volatile uint32_t *)0x40028114))
+#define PWM0_3_CMPA_R           (*((volatile uint32_t *)0x40028118))
+#define PWM0_3_CMPB_R           (*((volatile uint32_t *)0x4002811C))
+#define PWM0_3_GENA_R           (*((volatile uint32_t *)0x40028120))
+#define PWM0_3_GENB_R           (*((volatile uint32_t *)0x40028124))
+#define PWM0_3_DBCTL_R          (*((volatile uint32_t *)0x40028128))
+#define PWM0_3_DBRISE_R         (*((volatile uint32_t *)0x4002812C))
+#define PWM0_3_DBFALL_R         (*((volatile uint32_t *)0x40028130))
+#define PWM0_3_FLTSRC0_R        (*((volatile uint32_t *)0x40028134))
+#define PWM0_3_FLTSRC1_R        (*((volatile uint32_t *)0x40028138))
+#define PWM0_3_MINFLTPER_R      (*((volatile uint32_t *)0x4002813C))
+#define PWM0_0_FLTSEN_R         (*((volatile uint32_t *)0x40028800))
+#define PWM0_0_FLTSTAT0_R       (*((volatile uint32_t *)0x40028804))
+#define PWM0_0_FLTSTAT1_R       (*((volatile uint32_t *)0x40028808))
+#define PWM0_1_FLTSEN_R         (*((volatile uint32_t *)0x40028880))
+#define PWM0_1_FLTSTAT0_R       (*((volatile uint32_t *)0x40028884))
+#define PWM0_1_FLTSTAT1_R       (*((volatile uint32_t *)0x40028888))
+#define PWM0_2_FLTSTAT0_R       (*((volatile uint32_t *)0x40028904))
+#define PWM0_2_FLTSTAT1_R       (*((volatile uint32_t *)0x40028908))
+#define PWM0_3_FLTSTAT0_R       (*((volatile uint32_t *)0x40028984))
+#define PWM0_3_FLTSTAT1_R       (*((volatile uint32_t *)0x40028988))
+#define PWM0_PP_R               (*((volatile uint32_t *)0x40028FC0))
+
+//*****************************************************************************
+//
+// PWM registers (PWM1)
+//
+//*****************************************************************************
+#define PWM1_CTL_R              (*((volatile uint32_t *)0x40029000))
+#define PWM1_SYNC_R             (*((volatile uint32_t *)0x40029004))
+#define PWM1_ENABLE_R           (*((volatile uint32_t *)0x40029008))
+#define PWM1_INVERT_R           (*((volatile uint32_t *)0x4002900C))
+#define PWM1_FAULT_R            (*((volatile uint32_t *)0x40029010))
+#define PWM1_INTEN_R            (*((volatile uint32_t *)0x40029014))
+#define PWM1_RIS_R              (*((volatile uint32_t *)0x40029018))
+#define PWM1_ISC_R              (*((volatile uint32_t *)0x4002901C))
+#define PWM1_STATUS_R           (*((volatile uint32_t *)0x40029020))
+#define PWM1_FAULTVAL_R         (*((volatile uint32_t *)0x40029024))
+#define PWM1_ENUPD_R            (*((volatile uint32_t *)0x40029028))
+#define PWM1_0_CTL_R            (*((volatile uint32_t *)0x40029040))
+#define PWM1_0_INTEN_R          (*((volatile uint32_t *)0x40029044))
+#define PWM1_0_RIS_R            (*((volatile uint32_t *)0x40029048))
+#define PWM1_0_ISC_R            (*((volatile uint32_t *)0x4002904C))
+#define PWM1_0_LOAD_R           (*((volatile uint32_t *)0x40029050))
+#define PWM1_0_COUNT_R          (*((volatile uint32_t *)0x40029054))
+#define PWM1_0_CMPA_R           (*((volatile uint32_t *)0x40029058))
+#define PWM1_0_CMPB_R           (*((volatile uint32_t *)0x4002905C))
+#define PWM1_0_GENA_R           (*((volatile uint32_t *)0x40029060))
+#define PWM1_0_GENB_R           (*((volatile uint32_t *)0x40029064))
+#define PWM1_0_DBCTL_R          (*((volatile uint32_t *)0x40029068))
+#define PWM1_0_DBRISE_R         (*((volatile uint32_t *)0x4002906C))
+#define PWM1_0_DBFALL_R         (*((volatile uint32_t *)0x40029070))
+#define PWM1_0_FLTSRC0_R        (*((volatile uint32_t *)0x40029074))
+#define PWM1_0_FLTSRC1_R        (*((volatile uint32_t *)0x40029078))
+#define PWM1_0_MINFLTPER_R      (*((volatile uint32_t *)0x4002907C))
+#define PWM1_1_CTL_R            (*((volatile uint32_t *)0x40029080))
+#define PWM1_1_INTEN_R          (*((volatile uint32_t *)0x40029084))
+#define PWM1_1_RIS_R            (*((volatile uint32_t *)0x40029088))
+#define PWM1_1_ISC_R            (*((volatile uint32_t *)0x4002908C))
+#define PWM1_1_LOAD_R           (*((volatile uint32_t *)0x40029090))
+#define PWM1_1_COUNT_R          (*((volatile uint32_t *)0x40029094))
+#define PWM1_1_CMPA_R           (*((volatile uint32_t *)0x40029098))
+#define PWM1_1_CMPB_R           (*((volatile uint32_t *)0x4002909C))
+#define PWM1_1_GENA_R           (*((volatile uint32_t *)0x400290A0))
+#define PWM1_1_GENB_R           (*((volatile uint32_t *)0x400290A4))
+#define PWM1_1_DBCTL_R          (*((volatile uint32_t *)0x400290A8))
+#define PWM1_1_DBRISE_R         (*((volatile uint32_t *)0x400290AC))
+#define PWM1_1_DBFALL_R         (*((volatile uint32_t *)0x400290B0))
+#define PWM1_1_FLTSRC0_R        (*((volatile uint32_t *)0x400290B4))
+#define PWM1_1_FLTSRC1_R        (*((volatile uint32_t *)0x400290B8))
+#define PWM1_1_MINFLTPER_R      (*((volatile uint32_t *)0x400290BC))
+#define PWM1_2_CTL_R            (*((volatile uint32_t *)0x400290C0))
+#define PWM1_2_INTEN_R          (*((volatile uint32_t *)0x400290C4))
+#define PWM1_2_RIS_R            (*((volatile uint32_t *)0x400290C8))
+#define PWM1_2_ISC_R            (*((volatile uint32_t *)0x400290CC))
+#define PWM1_2_LOAD_R           (*((volatile uint32_t *)0x400290D0))
+#define PWM1_2_COUNT_R          (*((volatile uint32_t *)0x400290D4))
+#define PWM1_2_CMPA_R           (*((volatile uint32_t *)0x400290D8))
+#define PWM1_2_CMPB_R           (*((volatile uint32_t *)0x400290DC))
+#define PWM1_2_GENA_R           (*((volatile uint32_t *)0x400290E0))
+#define PWM1_2_GENB_R           (*((volatile uint32_t *)0x400290E4))
+#define PWM1_2_DBCTL_R          (*((volatile uint32_t *)0x400290E8))
+#define PWM1_2_DBRISE_R         (*((volatile uint32_t *)0x400290EC))
+#define PWM1_2_DBFALL_R         (*((volatile uint32_t *)0x400290F0))
+#define PWM1_2_FLTSRC0_R        (*((volatile uint32_t *)0x400290F4))
+#define PWM1_2_FLTSRC1_R        (*((volatile uint32_t *)0x400290F8))
+#define PWM1_2_MINFLTPER_R      (*((volatile uint32_t *)0x400290FC))
+#define PWM1_3_CTL_R            (*((volatile uint32_t *)0x40029100))
+#define PWM1_3_INTEN_R          (*((volatile uint32_t *)0x40029104))
+#define PWM1_3_RIS_R            (*((volatile uint32_t *)0x40029108))
+#define PWM1_3_ISC_R            (*((volatile uint32_t *)0x4002910C))
+#define PWM1_3_LOAD_R           (*((volatile uint32_t *)0x40029110))
+#define PWM1_3_COUNT_R          (*((volatile uint32_t *)0x40029114))
+#define PWM1_3_CMPA_R           (*((volatile uint32_t *)0x40029118))
+#define PWM1_3_CMPB_R           (*((volatile uint32_t *)0x4002911C))
+#define PWM1_3_GENA_R           (*((volatile uint32_t *)0x40029120))
+#define PWM1_3_GENB_R           (*((volatile uint32_t *)0x40029124))
+#define PWM1_3_DBCTL_R          (*((volatile uint32_t *)0x40029128))
+#define PWM1_3_DBRISE_R         (*((volatile uint32_t *)0x4002912C))
+#define PWM1_3_DBFALL_R         (*((volatile uint32_t *)0x40029130))
+#define PWM1_3_FLTSRC0_R        (*((volatile uint32_t *)0x40029134))
+#define PWM1_3_FLTSRC1_R        (*((volatile uint32_t *)0x40029138))
+#define PWM1_3_MINFLTPER_R      (*((volatile uint32_t *)0x4002913C))
+#define PWM1_0_FLTSEN_R         (*((volatile uint32_t *)0x40029800))
+#define PWM1_0_FLTSTAT0_R       (*((volatile uint32_t *)0x40029804))
+#define PWM1_0_FLTSTAT1_R       (*((volatile uint32_t *)0x40029808))
+#define PWM1_1_FLTSEN_R         (*((volatile uint32_t *)0x40029880))
+#define PWM1_1_FLTSTAT0_R       (*((volatile uint32_t *)0x40029884))
+#define PWM1_1_FLTSTAT1_R       (*((volatile uint32_t *)0x40029888))
+#define PWM1_2_FLTSTAT0_R       (*((volatile uint32_t *)0x40029904))
+#define PWM1_2_FLTSTAT1_R       (*((volatile uint32_t *)0x40029908))
+#define PWM1_3_FLTSTAT0_R       (*((volatile uint32_t *)0x40029984))
+#define PWM1_3_FLTSTAT1_R       (*((volatile uint32_t *)0x40029988))
+#define PWM1_PP_R               (*((volatile uint32_t *)0x40029FC0))
+
+//*****************************************************************************
+//
+// QEI registers (QEI0)
+//
+//*****************************************************************************
+#define QEI0_CTL_R              (*((volatile uint32_t *)0x4002C000))
+#define QEI0_STAT_R             (*((volatile uint32_t *)0x4002C004))
+#define QEI0_POS_R              (*((volatile uint32_t *)0x4002C008))
+#define QEI0_MAXPOS_R           (*((volatile uint32_t *)0x4002C00C))
+#define QEI0_LOAD_R             (*((volatile uint32_t *)0x4002C010))
+#define QEI0_TIME_R             (*((volatile uint32_t *)0x4002C014))
+#define QEI0_COUNT_R            (*((volatile uint32_t *)0x4002C018))
+#define QEI0_SPEED_R            (*((volatile uint32_t *)0x4002C01C))
+#define QEI0_INTEN_R            (*((volatile uint32_t *)0x4002C020))
+#define QEI0_RIS_R              (*((volatile uint32_t *)0x4002C024))
+#define QEI0_ISC_R              (*((volatile uint32_t *)0x4002C028))
+
+//*****************************************************************************
+//
+// QEI registers (QEI1)
+//
+//*****************************************************************************
+#define QEI1_CTL_R              (*((volatile uint32_t *)0x4002D000))
+#define QEI1_STAT_R             (*((volatile uint32_t *)0x4002D004))
+#define QEI1_POS_R              (*((volatile uint32_t *)0x4002D008))
+#define QEI1_MAXPOS_R           (*((volatile uint32_t *)0x4002D00C))
+#define QEI1_LOAD_R             (*((volatile uint32_t *)0x4002D010))
+#define QEI1_TIME_R             (*((volatile uint32_t *)0x4002D014))
+#define QEI1_COUNT_R            (*((volatile uint32_t *)0x4002D018))
+#define QEI1_SPEED_R            (*((volatile uint32_t *)0x4002D01C))
+#define QEI1_INTEN_R            (*((volatile uint32_t *)0x4002D020))
+#define QEI1_RIS_R              (*((volatile uint32_t *)0x4002D024))
+#define QEI1_ISC_R              (*((volatile uint32_t *)0x4002D028))
+
+//*****************************************************************************
+//
+// Timer registers (TIMER0)
+//
+//*****************************************************************************
+#define TIMER0_CFG_R            (*((volatile uint32_t *)0x40030000))
+#define TIMER0_TAMR_R           (*((volatile uint32_t *)0x40030004))
+#define TIMER0_TBMR_R           (*((volatile uint32_t *)0x40030008))
+#define TIMER0_CTL_R            (*((volatile uint32_t *)0x4003000C))
+#define TIMER0_SYNC_R           (*((volatile uint32_t *)0x40030010))
+#define TIMER0_IMR_R            (*((volatile uint32_t *)0x40030018))
+#define TIMER0_RIS_R            (*((volatile uint32_t *)0x4003001C))
+#define TIMER0_MIS_R            (*((volatile uint32_t *)0x40030020))
+#define TIMER0_ICR_R            (*((volatile uint32_t *)0x40030024))
+#define TIMER0_TAILR_R          (*((volatile uint32_t *)0x40030028))
+#define TIMER0_TBILR_R          (*((volatile uint32_t *)0x4003002C))
+#define TIMER0_TAMATCHR_R       (*((volatile uint32_t *)0x40030030))
+#define TIMER0_TBMATCHR_R       (*((volatile uint32_t *)0x40030034))
+#define TIMER0_TAPR_R           (*((volatile uint32_t *)0x40030038))
+#define TIMER0_TBPR_R           (*((volatile uint32_t *)0x4003003C))
+#define TIMER0_TAPMR_R          (*((volatile uint32_t *)0x40030040))
+#define TIMER0_TBPMR_R          (*((volatile uint32_t *)0x40030044))
+#define TIMER0_TAR_R            (*((volatile uint32_t *)0x40030048))
+#define TIMER0_TBR_R            (*((volatile uint32_t *)0x4003004C))
+#define TIMER0_TAV_R            (*((volatile uint32_t *)0x40030050))
+#define TIMER0_TBV_R            (*((volatile uint32_t *)0x40030054))
+#define TIMER0_RTCPD_R          (*((volatile uint32_t *)0x40030058))
+#define TIMER0_TAPS_R           (*((volatile uint32_t *)0x4003005C))
+#define TIMER0_TBPS_R           (*((volatile uint32_t *)0x40030060))
+#define TIMER0_TAPV_R           (*((volatile uint32_t *)0x40030064))
+#define TIMER0_TBPV_R           (*((volatile uint32_t *)0x40030068))
+#define TIMER0_PP_R             (*((volatile uint32_t *)0x40030FC0))
+
+//*****************************************************************************
+//
+// Timer registers (TIMER1)
+//
+//*****************************************************************************
+#define TIMER1_CFG_R            (*((volatile uint32_t *)0x40031000))
+#define TIMER1_TAMR_R           (*((volatile uint32_t *)0x40031004))
+#define TIMER1_TBMR_R           (*((volatile uint32_t *)0x40031008))
+#define TIMER1_CTL_R            (*((volatile uint32_t *)0x4003100C))
+#define TIMER1_SYNC_R           (*((volatile uint32_t *)0x40031010))
+#define TIMER1_IMR_R            (*((volatile uint32_t *)0x40031018))
+#define TIMER1_RIS_R            (*((volatile uint32_t *)0x4003101C))
+#define TIMER1_MIS_R            (*((volatile uint32_t *)0x40031020))
+#define TIMER1_ICR_R            (*((volatile uint32_t *)0x40031024))
+#define TIMER1_TAILR_R          (*((volatile uint32_t *)0x40031028))
+#define TIMER1_TBILR_R          (*((volatile uint32_t *)0x4003102C))
+#define TIMER1_TAMATCHR_R       (*((volatile uint32_t *)0x40031030))
+#define TIMER1_TBMATCHR_R       (*((volatile uint32_t *)0x40031034))
+#define TIMER1_TAPR_R           (*((volatile uint32_t *)0x40031038))
+#define TIMER1_TBPR_R           (*((volatile uint32_t *)0x4003103C))
+#define TIMER1_TAPMR_R          (*((volatile uint32_t *)0x40031040))
+#define TIMER1_TBPMR_R          (*((volatile uint32_t *)0x40031044))
+#define TIMER1_TAR_R            (*((volatile uint32_t *)0x40031048))
+#define TIMER1_TBR_R            (*((volatile uint32_t *)0x4003104C))
+#define TIMER1_TAV_R            (*((volatile uint32_t *)0x40031050))
+#define TIMER1_TBV_R            (*((volatile uint32_t *)0x40031054))
+#define TIMER1_RTCPD_R          (*((volatile uint32_t *)0x40031058))
+#define TIMER1_TAPS_R           (*((volatile uint32_t *)0x4003105C))
+#define TIMER1_TBPS_R           (*((volatile uint32_t *)0x40031060))
+#define TIMER1_TAPV_R           (*((volatile uint32_t *)0x40031064))
+#define TIMER1_TBPV_R           (*((volatile uint32_t *)0x40031068))
+#define TIMER1_PP_R             (*((volatile uint32_t *)0x40031FC0))
+
+//*****************************************************************************
+//
+// Timer registers (TIMER2)
+//
+//*****************************************************************************
+#define TIMER2_CFG_R            (*((volatile uint32_t *)0x40032000))
+#define TIMER2_TAMR_R           (*((volatile uint32_t *)0x40032004))
+#define TIMER2_TBMR_R           (*((volatile uint32_t *)0x40032008))
+#define TIMER2_CTL_R            (*((volatile uint32_t *)0x4003200C))
+#define TIMER2_SYNC_R           (*((volatile uint32_t *)0x40032010))
+#define TIMER2_IMR_R            (*((volatile uint32_t *)0x40032018))
+#define TIMER2_RIS_R            (*((volatile uint32_t *)0x4003201C))
+#define TIMER2_MIS_R            (*((volatile uint32_t *)0x40032020))
+#define TIMER2_ICR_R            (*((volatile uint32_t *)0x40032024))
+#define TIMER2_TAILR_R          (*((volatile uint32_t *)0x40032028))
+#define TIMER2_TBILR_R          (*((volatile uint32_t *)0x4003202C))
+#define TIMER2_TAMATCHR_R       (*((volatile uint32_t *)0x40032030))
+#define TIMER2_TBMATCHR_R       (*((volatile uint32_t *)0x40032034))
+#define TIMER2_TAPR_R           (*((volatile uint32_t *)0x40032038))
+#define TIMER2_TBPR_R           (*((volatile uint32_t *)0x4003203C))
+#define TIMER2_TAPMR_R          (*((volatile uint32_t *)0x40032040))
+#define TIMER2_TBPMR_R          (*((volatile uint32_t *)0x40032044))
+#define TIMER2_TAR_R            (*((volatile uint32_t *)0x40032048))
+#define TIMER2_TBR_R            (*((volatile uint32_t *)0x4003204C))
+#define TIMER2_TAV_R            (*((volatile uint32_t *)0x40032050))
+#define TIMER2_TBV_R            (*((volatile uint32_t *)0x40032054))
+#define TIMER2_RTCPD_R          (*((volatile uint32_t *)0x40032058))
+#define TIMER2_TAPS_R           (*((volatile uint32_t *)0x4003205C))
+#define TIMER2_TBPS_R           (*((volatile uint32_t *)0x40032060))
+#define TIMER2_TAPV_R           (*((volatile uint32_t *)0x40032064))
+#define TIMER2_TBPV_R           (*((volatile uint32_t *)0x40032068))
+#define TIMER2_PP_R             (*((volatile uint32_t *)0x40032FC0))
+
+//*****************************************************************************
+//
+// Timer registers (TIMER3)
+//
+//*****************************************************************************
+#define TIMER3_CFG_R            (*((volatile uint32_t *)0x40033000))
+#define TIMER3_TAMR_R           (*((volatile uint32_t *)0x40033004))
+#define TIMER3_TBMR_R           (*((volatile uint32_t *)0x40033008))
+#define TIMER3_CTL_R            (*((volatile uint32_t *)0x4003300C))
+#define TIMER3_SYNC_R           (*((volatile uint32_t *)0x40033010))
+#define TIMER3_IMR_R            (*((volatile uint32_t *)0x40033018))
+#define TIMER3_RIS_R            (*((volatile uint32_t *)0x4003301C))
+#define TIMER3_MIS_R            (*((volatile uint32_t *)0x40033020))
+#define TIMER3_ICR_R            (*((volatile uint32_t *)0x40033024))
+#define TIMER3_TAILR_R          (*((volatile uint32_t *)0x40033028))
+#define TIMER3_TBILR_R          (*((volatile uint32_t *)0x4003302C))
+#define TIMER3_TAMATCHR_R       (*((volatile uint32_t *)0x40033030))
+#define TIMER3_TBMATCHR_R       (*((volatile uint32_t *)0x40033034))
+#define TIMER3_TAPR_R           (*((volatile uint32_t *)0x40033038))
+#define TIMER3_TBPR_R           (*((volatile uint32_t *)0x4003303C))
+#define TIMER3_TAPMR_R          (*((volatile uint32_t *)0x40033040))
+#define TIMER3_TBPMR_R          (*((volatile uint32_t *)0x40033044))
+#define TIMER3_TAR_R            (*((volatile uint32_t *)0x40033048))
+#define TIMER3_TBR_R            (*((volatile uint32_t *)0x4003304C))
+#define TIMER3_TAV_R            (*((volatile uint32_t *)0x40033050))
+#define TIMER3_TBV_R            (*((volatile uint32_t *)0x40033054))
+#define TIMER3_RTCPD_R          (*((volatile uint32_t *)0x40033058))
+#define TIMER3_TAPS_R           (*((volatile uint32_t *)0x4003305C))
+#define TIMER3_TBPS_R           (*((volatile uint32_t *)0x40033060))
+#define TIMER3_TAPV_R           (*((volatile uint32_t *)0x40033064))
+#define TIMER3_TBPV_R           (*((volatile uint32_t *)0x40033068))
+#define TIMER3_PP_R             (*((volatile uint32_t *)0x40033FC0))
+
+//*****************************************************************************
+//
+// Timer registers (TIMER4)
+//
+//*****************************************************************************
+#define TIMER4_CFG_R            (*((volatile uint32_t *)0x40034000))
+#define TIMER4_TAMR_R           (*((volatile uint32_t *)0x40034004))
+#define TIMER4_TBMR_R           (*((volatile uint32_t *)0x40034008))
+#define TIMER4_CTL_R            (*((volatile uint32_t *)0x4003400C))
+#define TIMER4_SYNC_R           (*((volatile uint32_t *)0x40034010))
+#define TIMER4_IMR_R            (*((volatile uint32_t *)0x40034018))
+#define TIMER4_RIS_R            (*((volatile uint32_t *)0x4003401C))
+#define TIMER4_MIS_R            (*((volatile uint32_t *)0x40034020))
+#define TIMER4_ICR_R            (*((volatile uint32_t *)0x40034024))
+#define TIMER4_TAILR_R          (*((volatile uint32_t *)0x40034028))
+#define TIMER4_TBILR_R          (*((volatile uint32_t *)0x4003402C))
+#define TIMER4_TAMATCHR_R       (*((volatile uint32_t *)0x40034030))
+#define TIMER4_TBMATCHR_R       (*((volatile uint32_t *)0x40034034))
+#define TIMER4_TAPR_R           (*((volatile uint32_t *)0x40034038))
+#define TIMER4_TBPR_R           (*((volatile uint32_t *)0x4003403C))
+#define TIMER4_TAPMR_R          (*((volatile uint32_t *)0x40034040))
+#define TIMER4_TBPMR_R          (*((volatile uint32_t *)0x40034044))
+#define TIMER4_TAR_R            (*((volatile uint32_t *)0x40034048))
+#define TIMER4_TBR_R            (*((volatile uint32_t *)0x4003404C))
+#define TIMER4_TAV_R            (*((volatile uint32_t *)0x40034050))
+#define TIMER4_TBV_R            (*((volatile uint32_t *)0x40034054))
+#define TIMER4_RTCPD_R          (*((volatile uint32_t *)0x40034058))
+#define TIMER4_TAPS_R           (*((volatile uint32_t *)0x4003405C))
+#define TIMER4_TBPS_R           (*((volatile uint32_t *)0x40034060))
+#define TIMER4_TAPV_R           (*((volatile uint32_t *)0x40034064))
+#define TIMER4_TBPV_R           (*((volatile uint32_t *)0x40034068))
+#define TIMER4_PP_R             (*((volatile uint32_t *)0x40034FC0))
+
+//*****************************************************************************
+//
+// Timer registers (TIMER5)
+//
+//*****************************************************************************
+#define TIMER5_CFG_R            (*((volatile uint32_t *)0x40035000))
+#define TIMER5_TAMR_R           (*((volatile uint32_t *)0x40035004))
+#define TIMER5_TBMR_R           (*((volatile uint32_t *)0x40035008))
+#define TIMER5_CTL_R            (*((volatile uint32_t *)0x4003500C))
+#define TIMER5_SYNC_R           (*((volatile uint32_t *)0x40035010))
+#define TIMER5_IMR_R            (*((volatile uint32_t *)0x40035018))
+#define TIMER5_RIS_R            (*((volatile uint32_t *)0x4003501C))
+#define TIMER5_MIS_R            (*((volatile uint32_t *)0x40035020))
+#define TIMER5_ICR_R            (*((volatile uint32_t *)0x40035024))
+#define TIMER5_TAILR_R          (*((volatile uint32_t *)0x40035028))
+#define TIMER5_TBILR_R          (*((volatile uint32_t *)0x4003502C))
+#define TIMER5_TAMATCHR_R       (*((volatile uint32_t *)0x40035030))
+#define TIMER5_TBMATCHR_R       (*((volatile uint32_t *)0x40035034))
+#define TIMER5_TAPR_R           (*((volatile uint32_t *)0x40035038))
+#define TIMER5_TBPR_R           (*((volatile uint32_t *)0x4003503C))
+#define TIMER5_TAPMR_R          (*((volatile uint32_t *)0x40035040))
+#define TIMER5_TBPMR_R          (*((volatile uint32_t *)0x40035044))
+#define TIMER5_TAR_R            (*((volatile uint32_t *)0x40035048))
+#define TIMER5_TBR_R            (*((volatile uint32_t *)0x4003504C))
+#define TIMER5_TAV_R            (*((volatile uint32_t *)0x40035050))
+#define TIMER5_TBV_R            (*((volatile uint32_t *)0x40035054))
+#define TIMER5_RTCPD_R          (*((volatile uint32_t *)0x40035058))
+#define TIMER5_TAPS_R           (*((volatile uint32_t *)0x4003505C))
+#define TIMER5_TBPS_R           (*((volatile uint32_t *)0x40035060))
+#define TIMER5_TAPV_R           (*((volatile uint32_t *)0x40035064))
+#define TIMER5_TBPV_R           (*((volatile uint32_t *)0x40035068))
+#define TIMER5_PP_R             (*((volatile uint32_t *)0x40035FC0))
+
+//*****************************************************************************
+//
+// Timer registers (WTIMER0)
+//
+//*****************************************************************************
+#define WTIMER0_CFG_R           (*((volatile uint32_t *)0x40036000))
+#define WTIMER0_TAMR_R          (*((volatile uint32_t *)0x40036004))
+#define WTIMER0_TBMR_R          (*((volatile uint32_t *)0x40036008))
+#define WTIMER0_CTL_R           (*((volatile uint32_t *)0x4003600C))
+#define WTIMER0_SYNC_R          (*((volatile uint32_t *)0x40036010))
+#define WTIMER0_IMR_R           (*((volatile uint32_t *)0x40036018))
+#define WTIMER0_RIS_R           (*((volatile uint32_t *)0x4003601C))
+#define WTIMER0_MIS_R           (*((volatile uint32_t *)0x40036020))
+#define WTIMER0_ICR_R           (*((volatile uint32_t *)0x40036024))
+#define WTIMER0_TAILR_R         (*((volatile uint32_t *)0x40036028))
+#define WTIMER0_TBILR_R         (*((volatile uint32_t *)0x4003602C))
+#define WTIMER0_TAMATCHR_R      (*((volatile uint32_t *)0x40036030))
+#define WTIMER0_TBMATCHR_R      (*((volatile uint32_t *)0x40036034))
+#define WTIMER0_TAPR_R          (*((volatile uint32_t *)0x40036038))
+#define WTIMER0_TBPR_R          (*((volatile uint32_t *)0x4003603C))
+#define WTIMER0_TAPMR_R         (*((volatile uint32_t *)0x40036040))
+#define WTIMER0_TBPMR_R         (*((volatile uint32_t *)0x40036044))
+#define WTIMER0_TAR_R           (*((volatile uint32_t *)0x40036048))
+#define WTIMER0_TBR_R           (*((volatile uint32_t *)0x4003604C))
+#define WTIMER0_TAV_R           (*((volatile uint32_t *)0x40036050))
+#define WTIMER0_TBV_R           (*((volatile uint32_t *)0x40036054))
+#define WTIMER0_RTCPD_R         (*((volatile uint32_t *)0x40036058))
+#define WTIMER0_TAPS_R          (*((volatile uint32_t *)0x4003605C))
+#define WTIMER0_TBPS_R          (*((volatile uint32_t *)0x40036060))
+#define WTIMER0_TAPV_R          (*((volatile uint32_t *)0x40036064))
+#define WTIMER0_TBPV_R          (*((volatile uint32_t *)0x40036068))
+#define WTIMER0_PP_R            (*((volatile uint32_t *)0x40036FC0))
+
+//*****************************************************************************
+//
+// Timer registers (WTIMER1)
+//
+//*****************************************************************************
+#define WTIMER1_CFG_R           (*((volatile uint32_t *)0x40037000))
+#define WTIMER1_TAMR_R          (*((volatile uint32_t *)0x40037004))
+#define WTIMER1_TBMR_R          (*((volatile uint32_t *)0x40037008))
+#define WTIMER1_CTL_R           (*((volatile uint32_t *)0x4003700C))
+#define WTIMER1_SYNC_R          (*((volatile uint32_t *)0x40037010))
+#define WTIMER1_IMR_R           (*((volatile uint32_t *)0x40037018))
+#define WTIMER1_RIS_R           (*((volatile uint32_t *)0x4003701C))
+#define WTIMER1_MIS_R           (*((volatile uint32_t *)0x40037020))
+#define WTIMER1_ICR_R           (*((volatile uint32_t *)0x40037024))
+#define WTIMER1_TAILR_R         (*((volatile uint32_t *)0x40037028))
+#define WTIMER1_TBILR_R         (*((volatile uint32_t *)0x4003702C))
+#define WTIMER1_TAMATCHR_R      (*((volatile uint32_t *)0x40037030))
+#define WTIMER1_TBMATCHR_R      (*((volatile uint32_t *)0x40037034))
+#define WTIMER1_TAPR_R          (*((volatile uint32_t *)0x40037038))
+#define WTIMER1_TBPR_R          (*((volatile uint32_t *)0x4003703C))
+#define WTIMER1_TAPMR_R         (*((volatile uint32_t *)0x40037040))
+#define WTIMER1_TBPMR_R         (*((volatile uint32_t *)0x40037044))
+#define WTIMER1_TAR_R           (*((volatile uint32_t *)0x40037048))
+#define WTIMER1_TBR_R           (*((volatile uint32_t *)0x4003704C))
+#define WTIMER1_TAV_R           (*((volatile uint32_t *)0x40037050))
+#define WTIMER1_TBV_R           (*((volatile uint32_t *)0x40037054))
+#define WTIMER1_RTCPD_R         (*((volatile uint32_t *)0x40037058))
+#define WTIMER1_TAPS_R          (*((volatile uint32_t *)0x4003705C))
+#define WTIMER1_TBPS_R          (*((volatile uint32_t *)0x40037060))
+#define WTIMER1_TAPV_R          (*((volatile uint32_t *)0x40037064))
+#define WTIMER1_TBPV_R          (*((volatile uint32_t *)0x40037068))
+#define WTIMER1_PP_R            (*((volatile uint32_t *)0x40037FC0))
+
+//*****************************************************************************
+//
+// ADC registers (ADC0)
+//
+//*****************************************************************************
+#define ADC0_ACTSS_R            (*((volatile uint32_t *)0x40038000))
+#define ADC0_RIS_R              (*((volatile uint32_t *)0x40038004))
+#define ADC0_IM_R               (*((volatile uint32_t *)0x40038008))
+#define ADC0_ISC_R              (*((volatile uint32_t *)0x4003800C))
+#define ADC0_OSTAT_R            (*((volatile uint32_t *)0x40038010))
+#define ADC0_EMUX_R             (*((volatile uint32_t *)0x40038014))
+#define ADC0_USTAT_R            (*((volatile uint32_t *)0x40038018))
+#define ADC0_TSSEL_R            (*((volatile uint32_t *)0x4003801C))
+#define ADC0_SSPRI_R            (*((volatile uint32_t *)0x40038020))
+#define ADC0_SPC_R              (*((volatile uint32_t *)0x40038024))
+#define ADC0_PSSI_R             (*((volatile uint32_t *)0x40038028))
+#define ADC0_SAC_R              (*((volatile uint32_t *)0x40038030))
+#define ADC0_DCISC_R            (*((volatile uint32_t *)0x40038034))
+#define ADC0_CTL_R              (*((volatile uint32_t *)0x40038038))
+#define ADC0_SSMUX0_R           (*((volatile uint32_t *)0x40038040))
+#define ADC0_SSCTL0_R           (*((volatile uint32_t *)0x40038044))
+#define ADC0_SSFIFO0_R          (*((volatile uint32_t *)0x40038048))
+#define ADC0_SSFSTAT0_R         (*((volatile uint32_t *)0x4003804C))
+#define ADC0_SSOP0_R            (*((volatile uint32_t *)0x40038050))
+#define ADC0_SSDC0_R            (*((volatile uint32_t *)0x40038054))
+#define ADC0_SSMUX1_R           (*((volatile uint32_t *)0x40038060))
+#define ADC0_SSCTL1_R           (*((volatile uint32_t *)0x40038064))
+#define ADC0_SSFIFO1_R          (*((volatile uint32_t *)0x40038068))
+#define ADC0_SSFSTAT1_R         (*((volatile uint32_t *)0x4003806C))
+#define ADC0_SSOP1_R            (*((volatile uint32_t *)0x40038070))
+#define ADC0_SSDC1_R            (*((volatile uint32_t *)0x40038074))
+#define ADC0_SSMUX2_R           (*((volatile uint32_t *)0x40038080))
+#define ADC0_SSCTL2_R           (*((volatile uint32_t *)0x40038084))
+#define ADC0_SSFIFO2_R          (*((volatile uint32_t *)0x40038088))
+#define ADC0_SSFSTAT2_R         (*((volatile uint32_t *)0x4003808C))
+#define ADC0_SSOP2_R            (*((volatile uint32_t *)0x40038090))
+#define ADC0_SSDC2_R            (*((volatile uint32_t *)0x40038094))
+#define ADC0_SSMUX3_R           (*((volatile uint32_t *)0x400380A0))
+#define ADC0_SSCTL3_R           (*((volatile uint32_t *)0x400380A4))
+#define ADC0_SSFIFO3_R          (*((volatile uint32_t *)0x400380A8))
+#define ADC0_SSFSTAT3_R         (*((volatile uint32_t *)0x400380AC))
+#define ADC0_SSOP3_R            (*((volatile uint32_t *)0x400380B0))
+#define ADC0_SSDC3_R            (*((volatile uint32_t *)0x400380B4))
+#define ADC0_DCRIC_R            (*((volatile uint32_t *)0x40038D00))
+#define ADC0_DCCTL0_R           (*((volatile uint32_t *)0x40038E00))
+#define ADC0_DCCTL1_R           (*((volatile uint32_t *)0x40038E04))
+#define ADC0_DCCTL2_R           (*((volatile uint32_t *)0x40038E08))
+#define ADC0_DCCTL3_R           (*((volatile uint32_t *)0x40038E0C))
+#define ADC0_DCCTL4_R           (*((volatile uint32_t *)0x40038E10))
+#define ADC0_DCCTL5_R           (*((volatile uint32_t *)0x40038E14))
+#define ADC0_DCCTL6_R           (*((volatile uint32_t *)0x40038E18))
+#define ADC0_DCCTL7_R           (*((volatile uint32_t *)0x40038E1C))
+#define ADC0_DCCMP0_R           (*((volatile uint32_t *)0x40038E40))
+#define ADC0_DCCMP1_R           (*((volatile uint32_t *)0x40038E44))
+#define ADC0_DCCMP2_R           (*((volatile uint32_t *)0x40038E48))
+#define ADC0_DCCMP3_R           (*((volatile uint32_t *)0x40038E4C))
+#define ADC0_DCCMP4_R           (*((volatile uint32_t *)0x40038E50))
+#define ADC0_DCCMP5_R           (*((volatile uint32_t *)0x40038E54))
+#define ADC0_DCCMP6_R           (*((volatile uint32_t *)0x40038E58))
+#define ADC0_DCCMP7_R           (*((volatile uint32_t *)0x40038E5C))
+#define ADC0_PP_R               (*((volatile uint32_t *)0x40038FC0))
+#define ADC0_PC_R               (*((volatile uint32_t *)0x40038FC4))
+#define ADC0_CC_R               (*((volatile uint32_t *)0x40038FC8))
+
+//*****************************************************************************
+//
+// ADC registers (ADC1)
+//
+//*****************************************************************************
+#define ADC1_ACTSS_R            (*((volatile uint32_t *)0x40039000))
+#define ADC1_RIS_R              (*((volatile uint32_t *)0x40039004))
+#define ADC1_IM_R               (*((volatile uint32_t *)0x40039008))
+#define ADC1_ISC_R              (*((volatile uint32_t *)0x4003900C))
+#define ADC1_OSTAT_R            (*((volatile uint32_t *)0x40039010))
+#define ADC1_EMUX_R             (*((volatile uint32_t *)0x40039014))
+#define ADC1_USTAT_R            (*((volatile uint32_t *)0x40039018))
+#define ADC1_TSSEL_R            (*((volatile uint32_t *)0x4003901C))
+#define ADC1_SSPRI_R            (*((volatile uint32_t *)0x40039020))
+#define ADC1_SPC_R              (*((volatile uint32_t *)0x40039024))
+#define ADC1_PSSI_R             (*((volatile uint32_t *)0x40039028))
+#define ADC1_SAC_R              (*((volatile uint32_t *)0x40039030))
+#define ADC1_DCISC_R            (*((volatile uint32_t *)0x40039034))
+#define ADC1_CTL_R              (*((volatile uint32_t *)0x40039038))
+#define ADC1_SSMUX0_R           (*((volatile uint32_t *)0x40039040))
+#define ADC1_SSCTL0_R           (*((volatile uint32_t *)0x40039044))
+#define ADC1_SSFIFO0_R          (*((volatile uint32_t *)0x40039048))
+#define ADC1_SSFSTAT0_R         (*((volatile uint32_t *)0x4003904C))
+#define ADC1_SSOP0_R            (*((volatile uint32_t *)0x40039050))
+#define ADC1_SSDC0_R            (*((volatile uint32_t *)0x40039054))
+#define ADC1_SSMUX1_R           (*((volatile uint32_t *)0x40039060))
+#define ADC1_SSCTL1_R           (*((volatile uint32_t *)0x40039064))
+#define ADC1_SSFIFO1_R          (*((volatile uint32_t *)0x40039068))
+#define ADC1_SSFSTAT1_R         (*((volatile uint32_t *)0x4003906C))
+#define ADC1_SSOP1_R            (*((volatile uint32_t *)0x40039070))
+#define ADC1_SSDC1_R            (*((volatile uint32_t *)0x40039074))
+#define ADC1_SSMUX2_R           (*((volatile uint32_t *)0x40039080))
+#define ADC1_SSCTL2_R           (*((volatile uint32_t *)0x40039084))
+#define ADC1_SSFIFO2_R          (*((volatile uint32_t *)0x40039088))
+#define ADC1_SSFSTAT2_R         (*((volatile uint32_t *)0x4003908C))
+#define ADC1_SSOP2_R            (*((volatile uint32_t *)0x40039090))
+#define ADC1_SSDC2_R            (*((volatile uint32_t *)0x40039094))
+#define ADC1_SSMUX3_R           (*((volatile uint32_t *)0x400390A0))
+#define ADC1_SSCTL3_R           (*((volatile uint32_t *)0x400390A4))
+#define ADC1_SSFIFO3_R          (*((volatile uint32_t *)0x400390A8))
+#define ADC1_SSFSTAT3_R         (*((volatile uint32_t *)0x400390AC))
+#define ADC1_SSOP3_R            (*((volatile uint32_t *)0x400390B0))
+#define ADC1_SSDC3_R            (*((volatile uint32_t *)0x400390B4))
+#define ADC1_DCRIC_R            (*((volatile uint32_t *)0x40039D00))
+#define ADC1_DCCTL0_R           (*((volatile uint32_t *)0x40039E00))
+#define ADC1_DCCTL1_R           (*((volatile uint32_t *)0x40039E04))
+#define ADC1_DCCTL2_R           (*((volatile uint32_t *)0x40039E08))
+#define ADC1_DCCTL3_R           (*((volatile uint32_t *)0x40039E0C))
+#define ADC1_DCCTL4_R           (*((volatile uint32_t *)0x40039E10))
+#define ADC1_DCCTL5_R           (*((volatile uint32_t *)0x40039E14))
+#define ADC1_DCCTL6_R           (*((volatile uint32_t *)0x40039E18))
+#define ADC1_DCCTL7_R           (*((volatile uint32_t *)0x40039E1C))
+#define ADC1_DCCMP0_R           (*((volatile uint32_t *)0x40039E40))
+#define ADC1_DCCMP1_R           (*((volatile uint32_t *)0x40039E44))
+#define ADC1_DCCMP2_R           (*((volatile uint32_t *)0x40039E48))
+#define ADC1_DCCMP3_R           (*((volatile uint32_t *)0x40039E4C))
+#define ADC1_DCCMP4_R           (*((volatile uint32_t *)0x40039E50))
+#define ADC1_DCCMP5_R           (*((volatile uint32_t *)0x40039E54))
+#define ADC1_DCCMP6_R           (*((volatile uint32_t *)0x40039E58))
+#define ADC1_DCCMP7_R           (*((volatile uint32_t *)0x40039E5C))
+#define ADC1_PP_R               (*((volatile uint32_t *)0x40039FC0))
+#define ADC1_PC_R               (*((volatile uint32_t *)0x40039FC4))
+#define ADC1_CC_R               (*((volatile uint32_t *)0x40039FC8))
+
+//*****************************************************************************
+//
+// Comparator registers (COMP)
+//
+//*****************************************************************************
+#define COMP_ACMIS_R            (*((volatile uint32_t *)0x4003C000))
+#define COMP_ACRIS_R            (*((volatile uint32_t *)0x4003C004))
+#define COMP_ACINTEN_R          (*((volatile uint32_t *)0x4003C008))
+#define COMP_ACREFCTL_R         (*((volatile uint32_t *)0x4003C010))
+#define COMP_ACSTAT0_R          (*((volatile uint32_t *)0x4003C020))
+#define COMP_ACCTL0_R           (*((volatile uint32_t *)0x4003C024))
+#define COMP_ACSTAT1_R          (*((volatile uint32_t *)0x4003C040))
+#define COMP_ACCTL1_R           (*((volatile uint32_t *)0x4003C044))
+#define COMP_PP_R               (*((volatile uint32_t *)0x4003CFC0))
+
+//*****************************************************************************
+//
+// CAN registers (CAN0)
+//
+//*****************************************************************************
+#define CAN0_CTL_R              (*((volatile uint32_t *)0x40040000))
+#define CAN0_STS_R              (*((volatile uint32_t *)0x40040004))
+#define CAN0_ERR_R              (*((volatile uint32_t *)0x40040008))
+#define CAN0_BIT_R              (*((volatile uint32_t *)0x4004000C))
+#define CAN0_INT_R              (*((volatile uint32_t *)0x40040010))
+#define CAN0_TST_R              (*((volatile uint32_t *)0x40040014))
+#define CAN0_BRPE_R             (*((volatile uint32_t *)0x40040018))
+#define CAN0_IF1CRQ_R           (*((volatile uint32_t *)0x40040020))
+#define CAN0_IF1CMSK_R          (*((volatile uint32_t *)0x40040024))
+#define CAN0_IF1MSK1_R          (*((volatile uint32_t *)0x40040028))
+#define CAN0_IF1MSK2_R          (*((volatile uint32_t *)0x4004002C))
+#define CAN0_IF1ARB1_R          (*((volatile uint32_t *)0x40040030))
+#define CAN0_IF1ARB2_R          (*((volatile uint32_t *)0x40040034))
+#define CAN0_IF1MCTL_R          (*((volatile uint32_t *)0x40040038))
+#define CAN0_IF1DA1_R           (*((volatile uint32_t *)0x4004003C))
+#define CAN0_IF1DA2_R           (*((volatile uint32_t *)0x40040040))
+#define CAN0_IF1DB1_R           (*((volatile uint32_t *)0x40040044))
+#define CAN0_IF1DB2_R           (*((volatile uint32_t *)0x40040048))
+#define CAN0_IF2CRQ_R           (*((volatile uint32_t *)0x40040080))
+#define CAN0_IF2CMSK_R          (*((volatile uint32_t *)0x40040084))
+#define CAN0_IF2MSK1_R          (*((volatile uint32_t *)0x40040088))
+#define CAN0_IF2MSK2_R          (*((volatile uint32_t *)0x4004008C))
+#define CAN0_IF2ARB1_R          (*((volatile uint32_t *)0x40040090))
+#define CAN0_IF2ARB2_R          (*((volatile uint32_t *)0x40040094))
+#define CAN0_IF2MCTL_R          (*((volatile uint32_t *)0x40040098))
+#define CAN0_IF2DA1_R           (*((volatile uint32_t *)0x4004009C))
+#define CAN0_IF2DA2_R           (*((volatile uint32_t *)0x400400A0))
+#define CAN0_IF2DB1_R           (*((volatile uint32_t *)0x400400A4))
+#define CAN0_IF2DB2_R           (*((volatile uint32_t *)0x400400A8))
+#define CAN0_TXRQ1_R            (*((volatile uint32_t *)0x40040100))
+#define CAN0_TXRQ2_R            (*((volatile uint32_t *)0x40040104))
+#define CAN0_NWDA1_R            (*((volatile uint32_t *)0x40040120))
+#define CAN0_NWDA2_R            (*((volatile uint32_t *)0x40040124))
+#define CAN0_MSG1INT_R          (*((volatile uint32_t *)0x40040140))
+#define CAN0_MSG2INT_R          (*((volatile uint32_t *)0x40040144))
+#define CAN0_MSG1VAL_R          (*((volatile uint32_t *)0x40040160))
+#define CAN0_MSG2VAL_R          (*((volatile uint32_t *)0x40040164))
+
+//*****************************************************************************
+//
+// CAN registers (CAN1)
+//
+//*****************************************************************************
+#define CAN1_CTL_R              (*((volatile uint32_t *)0x40041000))
+#define CAN1_STS_R              (*((volatile uint32_t *)0x40041004))
+#define CAN1_ERR_R              (*((volatile uint32_t *)0x40041008))
+#define CAN1_BIT_R              (*((volatile uint32_t *)0x4004100C))
+#define CAN1_INT_R              (*((volatile uint32_t *)0x40041010))
+#define CAN1_TST_R              (*((volatile uint32_t *)0x40041014))
+#define CAN1_BRPE_R             (*((volatile uint32_t *)0x40041018))
+#define CAN1_IF1CRQ_R           (*((volatile uint32_t *)0x40041020))
+#define CAN1_IF1CMSK_R          (*((volatile uint32_t *)0x40041024))
+#define CAN1_IF1MSK1_R          (*((volatile uint32_t *)0x40041028))
+#define CAN1_IF1MSK2_R          (*((volatile uint32_t *)0x4004102C))
+#define CAN1_IF1ARB1_R          (*((volatile uint32_t *)0x40041030))
+#define CAN1_IF1ARB2_R          (*((volatile uint32_t *)0x40041034))
+#define CAN1_IF1MCTL_R          (*((volatile uint32_t *)0x40041038))
+#define CAN1_IF1DA1_R           (*((volatile uint32_t *)0x4004103C))
+#define CAN1_IF1DA2_R           (*((volatile uint32_t *)0x40041040))
+#define CAN1_IF1DB1_R           (*((volatile uint32_t *)0x40041044))
+#define CAN1_IF1DB2_R           (*((volatile uint32_t *)0x40041048))
+#define CAN1_IF2CRQ_R           (*((volatile uint32_t *)0x40041080))
+#define CAN1_IF2CMSK_R          (*((volatile uint32_t *)0x40041084))
+#define CAN1_IF2MSK1_R          (*((volatile uint32_t *)0x40041088))
+#define CAN1_IF2MSK2_R          (*((volatile uint32_t *)0x4004108C))
+#define CAN1_IF2ARB1_R          (*((volatile uint32_t *)0x40041090))
+#define CAN1_IF2ARB2_R          (*((volatile uint32_t *)0x40041094))
+#define CAN1_IF2MCTL_R          (*((volatile uint32_t *)0x40041098))
+#define CAN1_IF2DA1_R           (*((volatile uint32_t *)0x4004109C))
+#define CAN1_IF2DA2_R           (*((volatile uint32_t *)0x400410A0))
+#define CAN1_IF2DB1_R           (*((volatile uint32_t *)0x400410A4))
+#define CAN1_IF2DB2_R           (*((volatile uint32_t *)0x400410A8))
+#define CAN1_TXRQ1_R            (*((volatile uint32_t *)0x40041100))
+#define CAN1_TXRQ2_R            (*((volatile uint32_t *)0x40041104))
+#define CAN1_NWDA1_R            (*((volatile uint32_t *)0x40041120))
+#define CAN1_NWDA2_R            (*((volatile uint32_t *)0x40041124))
+#define CAN1_MSG1INT_R          (*((volatile uint32_t *)0x40041140))
+#define CAN1_MSG2INT_R          (*((volatile uint32_t *)0x40041144))
+#define CAN1_MSG1VAL_R          (*((volatile uint32_t *)0x40041160))
+#define CAN1_MSG2VAL_R          (*((volatile uint32_t *)0x40041164))
+
+//*****************************************************************************
+//
+// Timer registers (WTIMER2)
+//
+//*****************************************************************************
+#define WTIMER2_CFG_R           (*((volatile uint32_t *)0x4004C000))
+#define WTIMER2_TAMR_R          (*((volatile uint32_t *)0x4004C004))
+#define WTIMER2_TBMR_R          (*((volatile uint32_t *)0x4004C008))
+#define WTIMER2_CTL_R           (*((volatile uint32_t *)0x4004C00C))
+#define WTIMER2_SYNC_R          (*((volatile uint32_t *)0x4004C010))
+#define WTIMER2_IMR_R           (*((volatile uint32_t *)0x4004C018))
+#define WTIMER2_RIS_R           (*((volatile uint32_t *)0x4004C01C))
+#define WTIMER2_MIS_R           (*((volatile uint32_t *)0x4004C020))
+#define WTIMER2_ICR_R           (*((volatile uint32_t *)0x4004C024))
+#define WTIMER2_TAILR_R         (*((volatile uint32_t *)0x4004C028))
+#define WTIMER2_TBILR_R         (*((volatile uint32_t *)0x4004C02C))
+#define WTIMER2_TAMATCHR_R      (*((volatile uint32_t *)0x4004C030))
+#define WTIMER2_TBMATCHR_R      (*((volatile uint32_t *)0x4004C034))
+#define WTIMER2_TAPR_R          (*((volatile uint32_t *)0x4004C038))
+#define WTIMER2_TBPR_R          (*((volatile uint32_t *)0x4004C03C))
+#define WTIMER2_TAPMR_R         (*((volatile uint32_t *)0x4004C040))
+#define WTIMER2_TBPMR_R         (*((volatile uint32_t *)0x4004C044))
+#define WTIMER2_TAR_R           (*((volatile uint32_t *)0x4004C048))
+#define WTIMER2_TBR_R           (*((volatile uint32_t *)0x4004C04C))
+#define WTIMER2_TAV_R           (*((volatile uint32_t *)0x4004C050))
+#define WTIMER2_TBV_R           (*((volatile uint32_t *)0x4004C054))
+#define WTIMER2_RTCPD_R         (*((volatile uint32_t *)0x4004C058))
+#define WTIMER2_TAPS_R          (*((volatile uint32_t *)0x4004C05C))
+#define WTIMER2_TBPS_R          (*((volatile uint32_t *)0x4004C060))
+#define WTIMER2_TAPV_R          (*((volatile uint32_t *)0x4004C064))
+#define WTIMER2_TBPV_R          (*((volatile uint32_t *)0x4004C068))
+#define WTIMER2_PP_R            (*((volatile uint32_t *)0x4004CFC0))
+
+//*****************************************************************************
+//
+// Timer registers (WTIMER3)
+//
+//*****************************************************************************
+#define WTIMER3_CFG_R           (*((volatile uint32_t *)0x4004D000))
+#define WTIMER3_TAMR_R          (*((volatile uint32_t *)0x4004D004))
+#define WTIMER3_TBMR_R          (*((volatile uint32_t *)0x4004D008))
+#define WTIMER3_CTL_R           (*((volatile uint32_t *)0x4004D00C))
+#define WTIMER3_SYNC_R          (*((volatile uint32_t *)0x4004D010))
+#define WTIMER3_IMR_R           (*((volatile uint32_t *)0x4004D018))
+#define WTIMER3_RIS_R           (*((volatile uint32_t *)0x4004D01C))
+#define WTIMER3_MIS_R           (*((volatile uint32_t *)0x4004D020))
+#define WTIMER3_ICR_R           (*((volatile uint32_t *)0x4004D024))
+#define WTIMER3_TAILR_R         (*((volatile uint32_t *)0x4004D028))
+#define WTIMER3_TBILR_R         (*((volatile uint32_t *)0x4004D02C))
+#define WTIMER3_TAMATCHR_R      (*((volatile uint32_t *)0x4004D030))
+#define WTIMER3_TBMATCHR_R      (*((volatile uint32_t *)0x4004D034))
+#define WTIMER3_TAPR_R          (*((volatile uint32_t *)0x4004D038))
+#define WTIMER3_TBPR_R          (*((volatile uint32_t *)0x4004D03C))
+#define WTIMER3_TAPMR_R         (*((volatile uint32_t *)0x4004D040))
+#define WTIMER3_TBPMR_R         (*((volatile uint32_t *)0x4004D044))
+#define WTIMER3_TAR_R           (*((volatile uint32_t *)0x4004D048))
+#define WTIMER3_TBR_R           (*((volatile uint32_t *)0x4004D04C))
+#define WTIMER3_TAV_R           (*((volatile uint32_t *)0x4004D050))
+#define WTIMER3_TBV_R           (*((volatile uint32_t *)0x4004D054))
+#define WTIMER3_RTCPD_R         (*((volatile uint32_t *)0x4004D058))
+#define WTIMER3_TAPS_R          (*((volatile uint32_t *)0x4004D05C))
+#define WTIMER3_TBPS_R          (*((volatile uint32_t *)0x4004D060))
+#define WTIMER3_TAPV_R          (*((volatile uint32_t *)0x4004D064))
+#define WTIMER3_TBPV_R          (*((volatile uint32_t *)0x4004D068))
+#define WTIMER3_PP_R            (*((volatile uint32_t *)0x4004DFC0))
+
+//*****************************************************************************
+//
+// Timer registers (WTIMER4)
+//
+//*****************************************************************************
+#define WTIMER4_CFG_R           (*((volatile uint32_t *)0x4004E000))
+#define WTIMER4_TAMR_R          (*((volatile uint32_t *)0x4004E004))
+#define WTIMER4_TBMR_R          (*((volatile uint32_t *)0x4004E008))
+#define WTIMER4_CTL_R           (*((volatile uint32_t *)0x4004E00C))
+#define WTIMER4_SYNC_R          (*((volatile uint32_t *)0x4004E010))
+#define WTIMER4_IMR_R           (*((volatile uint32_t *)0x4004E018))
+#define WTIMER4_RIS_R           (*((volatile uint32_t *)0x4004E01C))
+#define WTIMER4_MIS_R           (*((volatile uint32_t *)0x4004E020))
+#define WTIMER4_ICR_R           (*((volatile uint32_t *)0x4004E024))
+#define WTIMER4_TAILR_R         (*((volatile uint32_t *)0x4004E028))
+#define WTIMER4_TBILR_R         (*((volatile uint32_t *)0x4004E02C))
+#define WTIMER4_TAMATCHR_R      (*((volatile uint32_t *)0x4004E030))
+#define WTIMER4_TBMATCHR_R      (*((volatile uint32_t *)0x4004E034))
+#define WTIMER4_TAPR_R          (*((volatile uint32_t *)0x4004E038))
+#define WTIMER4_TBPR_R          (*((volatile uint32_t *)0x4004E03C))
+#define WTIMER4_TAPMR_R         (*((volatile uint32_t *)0x4004E040))
+#define WTIMER4_TBPMR_R         (*((volatile uint32_t *)0x4004E044))
+#define WTIMER4_TAR_R           (*((volatile uint32_t *)0x4004E048))
+#define WTIMER4_TBR_R           (*((volatile uint32_t *)0x4004E04C))
+#define WTIMER4_TAV_R           (*((volatile uint32_t *)0x4004E050))
+#define WTIMER4_TBV_R           (*((volatile uint32_t *)0x4004E054))
+#define WTIMER4_RTCPD_R         (*((volatile uint32_t *)0x4004E058))
+#define WTIMER4_TAPS_R          (*((volatile uint32_t *)0x4004E05C))
+#define WTIMER4_TBPS_R          (*((volatile uint32_t *)0x4004E060))
+#define WTIMER4_TAPV_R          (*((volatile uint32_t *)0x4004E064))
+#define WTIMER4_TBPV_R          (*((volatile uint32_t *)0x4004E068))
+#define WTIMER4_PP_R            (*((volatile uint32_t *)0x4004EFC0))
+
+//*****************************************************************************
+//
+// Timer registers (WTIMER5)
+//
+//*****************************************************************************
+#define WTIMER5_CFG_R           (*((volatile uint32_t *)0x4004F000))
+#define WTIMER5_TAMR_R          (*((volatile uint32_t *)0x4004F004))
+#define WTIMER5_TBMR_R          (*((volatile uint32_t *)0x4004F008))
+#define WTIMER5_CTL_R           (*((volatile uint32_t *)0x4004F00C))
+#define WTIMER5_SYNC_R          (*((volatile uint32_t *)0x4004F010))
+#define WTIMER5_IMR_R           (*((volatile uint32_t *)0x4004F018))
+#define WTIMER5_RIS_R           (*((volatile uint32_t *)0x4004F01C))
+#define WTIMER5_MIS_R           (*((volatile uint32_t *)0x4004F020))
+#define WTIMER5_ICR_R           (*((volatile uint32_t *)0x4004F024))
+#define WTIMER5_TAILR_R         (*((volatile uint32_t *)0x4004F028))
+#define WTIMER5_TBILR_R         (*((volatile uint32_t *)0x4004F02C))
+#define WTIMER5_TAMATCHR_R      (*((volatile uint32_t *)0x4004F030))
+#define WTIMER5_TBMATCHR_R      (*((volatile uint32_t *)0x4004F034))
+#define WTIMER5_TAPR_R          (*((volatile uint32_t *)0x4004F038))
+#define WTIMER5_TBPR_R          (*((volatile uint32_t *)0x4004F03C))
+#define WTIMER5_TAPMR_R         (*((volatile uint32_t *)0x4004F040))
+#define WTIMER5_TBPMR_R         (*((volatile uint32_t *)0x4004F044))
+#define WTIMER5_TAR_R           (*((volatile uint32_t *)0x4004F048))
+#define WTIMER5_TBR_R           (*((volatile uint32_t *)0x4004F04C))
+#define WTIMER5_TAV_R           (*((volatile uint32_t *)0x4004F050))
+#define WTIMER5_TBV_R           (*((volatile uint32_t *)0x4004F054))
+#define WTIMER5_RTCPD_R         (*((volatile uint32_t *)0x4004F058))
+#define WTIMER5_TAPS_R          (*((volatile uint32_t *)0x4004F05C))
+#define WTIMER5_TBPS_R          (*((volatile uint32_t *)0x4004F060))
+#define WTIMER5_TAPV_R          (*((volatile uint32_t *)0x4004F064))
+#define WTIMER5_TBPV_R          (*((volatile uint32_t *)0x4004F068))
+#define WTIMER5_PP_R            (*((volatile uint32_t *)0x4004FFC0))
+
+//*****************************************************************************
+//
+// Univeral Serial Bus registers (USB0)
+//
+//*****************************************************************************
+#define USB0_FADDR_R            (*((volatile uint8_t *)0x40050000))
+#define USB0_POWER_R            (*((volatile uint8_t *)0x40050001))
+#define USB0_TXIS_R             (*((volatile uint16_t *)0x40050002))
+#define USB0_RXIS_R             (*((volatile uint16_t *)0x40050004))
+#define USB0_TXIE_R             (*((volatile uint16_t *)0x40050006))
+#define USB0_RXIE_R             (*((volatile uint16_t *)0x40050008))
+#define USB0_IS_R               (*((volatile uint8_t *)0x4005000A))
+#define USB0_IE_R               (*((volatile uint8_t *)0x4005000B))
+#define USB0_FRAME_R            (*((volatile uint16_t *)0x4005000C))
+#define USB0_EPIDX_R            (*((volatile uint8_t *)0x4005000E))
+#define USB0_TEST_R             (*((volatile uint8_t *)0x4005000F))
+#define USB0_FIFO0_R            (*((volatile uint32_t *)0x40050020))
+#define USB0_FIFO1_R            (*((volatile uint32_t *)0x40050024))
+#define USB0_FIFO2_R            (*((volatile uint32_t *)0x40050028))
+#define USB0_FIFO3_R            (*((volatile uint32_t *)0x4005002C))
+#define USB0_FIFO4_R            (*((volatile uint32_t *)0x40050030))
+#define USB0_FIFO5_R            (*((volatile uint32_t *)0x40050034))
+#define USB0_FIFO6_R            (*((volatile uint32_t *)0x40050038))
+#define USB0_FIFO7_R            (*((volatile uint32_t *)0x4005003C))
+#define USB0_DEVCTL_R           (*((volatile uint8_t *)0x40050060))
+#define USB0_TXFIFOSZ_R         (*((volatile uint8_t *)0x40050062))
+#define USB0_RXFIFOSZ_R         (*((volatile uint8_t *)0x40050063))
+#define USB0_TXFIFOADD_R        (*((volatile uint16_t *)0x40050064))
+#define USB0_RXFIFOADD_R        (*((volatile uint16_t *)0x40050066))
+#define USB0_CONTIM_R           (*((volatile uint8_t *)0x4005007A))
+#define USB0_VPLEN_R            (*((volatile uint8_t *)0x4005007B))
+#define USB0_FSEOF_R            (*((volatile uint8_t *)0x4005007D))
+#define USB0_LSEOF_R            (*((volatile uint8_t *)0x4005007E))
+#define USB0_TXFUNCADDR0_R      (*((volatile uint8_t *)0x40050080))
+#define USB0_TXHUBADDR0_R       (*((volatile uint8_t *)0x40050082))
+#define USB0_TXHUBPORT0_R       (*((volatile uint8_t *)0x40050083))
+#define USB0_TXFUNCADDR1_R      (*((volatile uint8_t *)0x40050088))
+#define USB0_TXHUBADDR1_R       (*((volatile uint8_t *)0x4005008A))
+#define USB0_TXHUBPORT1_R       (*((volatile uint8_t *)0x4005008B))
+#define USB0_RXFUNCADDR1_R      (*((volatile uint8_t *)0x4005008C))
+#define USB0_RXHUBADDR1_R       (*((volatile uint8_t *)0x4005008E))
+#define USB0_RXHUBPORT1_R       (*((volatile uint8_t *)0x4005008F))
+#define USB0_TXFUNCADDR2_R      (*((volatile uint8_t *)0x40050090))
+#define USB0_TXHUBADDR2_R       (*((volatile uint8_t *)0x40050092))
+#define USB0_TXHUBPORT2_R       (*((volatile uint8_t *)0x40050093))
+#define USB0_RXFUNCADDR2_R      (*((volatile uint8_t *)0x40050094))
+#define USB0_RXHUBADDR2_R       (*((volatile uint8_t *)0x40050096))
+#define USB0_RXHUBPORT2_R       (*((volatile uint8_t *)0x40050097))
+#define USB0_TXFUNCADDR3_R      (*((volatile uint8_t *)0x40050098))
+#define USB0_TXHUBADDR3_R       (*((volatile uint8_t *)0x4005009A))
+#define USB0_TXHUBPORT3_R       (*((volatile uint8_t *)0x4005009B))
+#define USB0_RXFUNCADDR3_R      (*((volatile uint8_t *)0x4005009C))
+#define USB0_RXHUBADDR3_R       (*((volatile uint8_t *)0x4005009E))
+#define USB0_RXHUBPORT3_R       (*((volatile uint8_t *)0x4005009F))
+#define USB0_TXFUNCADDR4_R      (*((volatile uint8_t *)0x400500A0))
+#define USB0_TXHUBADDR4_R       (*((volatile uint8_t *)0x400500A2))
+#define USB0_TXHUBPORT4_R       (*((volatile uint8_t *)0x400500A3))
+#define USB0_RXFUNCADDR4_R      (*((volatile uint8_t *)0x400500A4))
+#define USB0_RXHUBADDR4_R       (*((volatile uint8_t *)0x400500A6))
+#define USB0_RXHUBPORT4_R       (*((volatile uint8_t *)0x400500A7))
+#define USB0_TXFUNCADDR5_R      (*((volatile uint8_t *)0x400500A8))
+#define USB0_TXHUBADDR5_R       (*((volatile uint8_t *)0x400500AA))
+#define USB0_TXHUBPORT5_R       (*((volatile uint8_t *)0x400500AB))
+#define USB0_RXFUNCADDR5_R      (*((volatile uint8_t *)0x400500AC))
+#define USB0_RXHUBADDR5_R       (*((volatile uint8_t *)0x400500AE))
+#define USB0_RXHUBPORT5_R       (*((volatile uint8_t *)0x400500AF))
+#define USB0_TXFUNCADDR6_R      (*((volatile uint8_t *)0x400500B0))
+#define USB0_TXHUBADDR6_R       (*((volatile uint8_t *)0x400500B2))
+#define USB0_TXHUBPORT6_R       (*((volatile uint8_t *)0x400500B3))
+#define USB0_RXFUNCADDR6_R      (*((volatile uint8_t *)0x400500B4))
+#define USB0_RXHUBADDR6_R       (*((volatile uint8_t *)0x400500B6))
+#define USB0_RXHUBPORT6_R       (*((volatile uint8_t *)0x400500B7))
+#define USB0_TXFUNCADDR7_R      (*((volatile uint8_t *)0x400500B8))
+#define USB0_TXHUBADDR7_R       (*((volatile uint8_t *)0x400500BA))
+#define USB0_TXHUBPORT7_R       (*((volatile uint8_t *)0x400500BB))
+#define USB0_RXFUNCADDR7_R      (*((volatile uint8_t *)0x400500BC))
+#define USB0_RXHUBADDR7_R       (*((volatile uint8_t *)0x400500BE))
+#define USB0_RXHUBPORT7_R       (*((volatile uint8_t *)0x400500BF))
+#define USB0_CSRL0_R            (*((volatile uint8_t *)0x40050102))
+#define USB0_CSRH0_R            (*((volatile uint8_t *)0x40050103))
+#define USB0_COUNT0_R           (*((volatile uint8_t *)0x40050108))
+#define USB0_TYPE0_R            (*((volatile uint8_t *)0x4005010A))
+#define USB0_NAKLMT_R           (*((volatile uint8_t *)0x4005010B))
+#define USB0_TXMAXP1_R          (*((volatile uint16_t *)0x40050110))
+#define USB0_TXCSRL1_R          (*((volatile uint8_t *)0x40050112))
+#define USB0_TXCSRH1_R          (*((volatile uint8_t *)0x40050113))
+#define USB0_RXMAXP1_R          (*((volatile uint16_t *)0x40050114))
+#define USB0_RXCSRL1_R          (*((volatile uint8_t *)0x40050116))
+#define USB0_RXCSRH1_R          (*((volatile uint8_t *)0x40050117))
+#define USB0_RXCOUNT1_R         (*((volatile uint16_t *)0x40050118))
+#define USB0_TXTYPE1_R          (*((volatile uint8_t *)0x4005011A))
+#define USB0_TXINTERVAL1_R      (*((volatile uint8_t *)0x4005011B))
+#define USB0_RXTYPE1_R          (*((volatile uint8_t *)0x4005011C))
+#define USB0_RXINTERVAL1_R      (*((volatile uint8_t *)0x4005011D))
+#define USB0_TXMAXP2_R          (*((volatile uint16_t *)0x40050120))
+#define USB0_TXCSRL2_R          (*((volatile uint8_t *)0x40050122))
+#define USB0_TXCSRH2_R          (*((volatile uint8_t *)0x40050123))
+#define USB0_RXMAXP2_R          (*((volatile uint16_t *)0x40050124))
+#define USB0_RXCSRL2_R          (*((volatile uint8_t *)0x40050126))
+#define USB0_RXCSRH2_R          (*((volatile uint8_t *)0x40050127))
+#define USB0_RXCOUNT2_R         (*((volatile uint16_t *)0x40050128))
+#define USB0_TXTYPE2_R          (*((volatile uint8_t *)0x4005012A))
+#define USB0_TXINTERVAL2_R      (*((volatile uint8_t *)0x4005012B))
+#define USB0_RXTYPE2_R          (*((volatile uint8_t *)0x4005012C))
+#define USB0_RXINTERVAL2_R      (*((volatile uint8_t *)0x4005012D))
+#define USB0_TXMAXP3_R          (*((volatile uint16_t *)0x40050130))
+#define USB0_TXCSRL3_R          (*((volatile uint8_t *)0x40050132))
+#define USB0_TXCSRH3_R          (*((volatile uint8_t *)0x40050133))
+#define USB0_RXMAXP3_R          (*((volatile uint16_t *)0x40050134))
+#define USB0_RXCSRL3_R          (*((volatile uint8_t *)0x40050136))
+#define USB0_RXCSRH3_R          (*((volatile uint8_t *)0x40050137))
+#define USB0_RXCOUNT3_R         (*((volatile uint16_t *)0x40050138))
+#define USB0_TXTYPE3_R          (*((volatile uint8_t *)0x4005013A))
+#define USB0_TXINTERVAL3_R      (*((volatile uint8_t *)0x4005013B))
+#define USB0_RXTYPE3_R          (*((volatile uint8_t *)0x4005013C))
+#define USB0_RXINTERVAL3_R      (*((volatile uint8_t *)0x4005013D))
+#define USB0_TXMAXP4_R          (*((volatile uint16_t *)0x40050140))
+#define USB0_TXCSRL4_R          (*((volatile uint8_t *)0x40050142))
+#define USB0_TXCSRH4_R          (*((volatile uint8_t *)0x40050143))
+#define USB0_RXMAXP4_R          (*((volatile uint16_t *)0x40050144))
+#define USB0_RXCSRL4_R          (*((volatile uint8_t *)0x40050146))
+#define USB0_RXCSRH4_R          (*((volatile uint8_t *)0x40050147))
+#define USB0_RXCOUNT4_R         (*((volatile uint16_t *)0x40050148))
+#define USB0_TXTYPE4_R          (*((volatile uint8_t *)0x4005014A))
+#define USB0_TXINTERVAL4_R      (*((volatile uint8_t *)0x4005014B))
+#define USB0_RXTYPE4_R          (*((volatile uint8_t *)0x4005014C))
+#define USB0_RXINTERVAL4_R      (*((volatile uint8_t *)0x4005014D))
+#define USB0_TXMAXP5_R          (*((volatile uint16_t *)0x40050150))
+#define USB0_TXCSRL5_R          (*((volatile uint8_t *)0x40050152))
+#define USB0_TXCSRH5_R          (*((volatile uint8_t *)0x40050153))
+#define USB0_RXMAXP5_R          (*((volatile uint16_t *)0x40050154))
+#define USB0_RXCSRL5_R          (*((volatile uint8_t *)0x40050156))
+#define USB0_RXCSRH5_R          (*((volatile uint8_t *)0x40050157))
+#define USB0_RXCOUNT5_R         (*((volatile uint16_t *)0x40050158))
+#define USB0_TXTYPE5_R          (*((volatile uint8_t *)0x4005015A))
+#define USB0_TXINTERVAL5_R      (*((volatile uint8_t *)0x4005015B))
+#define USB0_RXTYPE5_R          (*((volatile uint8_t *)0x4005015C))
+#define USB0_RXINTERVAL5_R      (*((volatile uint8_t *)0x4005015D))
+#define USB0_TXMAXP6_R          (*((volatile uint16_t *)0x40050160))
+#define USB0_TXCSRL6_R          (*((volatile uint8_t *)0x40050162))
+#define USB0_TXCSRH6_R          (*((volatile uint8_t *)0x40050163))
+#define USB0_RXMAXP6_R          (*((volatile uint16_t *)0x40050164))
+#define USB0_RXCSRL6_R          (*((volatile uint8_t *)0x40050166))
+#define USB0_RXCSRH6_R          (*((volatile uint8_t *)0x40050167))
+#define USB0_RXCOUNT6_R         (*((volatile uint16_t *)0x40050168))
+#define USB0_TXTYPE6_R          (*((volatile uint8_t *)0x4005016A))
+#define USB0_TXINTERVAL6_R      (*((volatile uint8_t *)0x4005016B))
+#define USB0_RXTYPE6_R          (*((volatile uint8_t *)0x4005016C))
+#define USB0_RXINTERVAL6_R      (*((volatile uint8_t *)0x4005016D))
+#define USB0_TXMAXP7_R          (*((volatile uint16_t *)0x40050170))
+#define USB0_TXCSRL7_R          (*((volatile uint8_t *)0x40050172))
+#define USB0_TXCSRH7_R          (*((volatile uint8_t *)0x40050173))
+#define USB0_RXMAXP7_R          (*((volatile uint16_t *)0x40050174))
+#define USB0_RXCSRL7_R          (*((volatile uint8_t *)0x40050176))
+#define USB0_RXCSRH7_R          (*((volatile uint8_t *)0x40050177))
+#define USB0_RXCOUNT7_R         (*((volatile uint16_t *)0x40050178))
+#define USB0_TXTYPE7_R          (*((volatile uint8_t *)0x4005017A))
+#define USB0_TXINTERVAL7_R      (*((volatile uint8_t *)0x4005017B))
+#define USB0_RXTYPE7_R          (*((volatile uint8_t *)0x4005017C))
+#define USB0_RXINTERVAL7_R      (*((volatile uint8_t *)0x4005017D))
+#define USB0_RQPKTCOUNT1_R      (*((volatile uint16_t *)0x40050304))
+#define USB0_RQPKTCOUNT2_R      (*((volatile uint16_t *)0x40050308))
+#define USB0_RQPKTCOUNT3_R      (*((volatile uint16_t *)0x4005030C))
+#define USB0_RQPKTCOUNT4_R      (*((volatile uint16_t *)0x40050310))
+#define USB0_RQPKTCOUNT5_R      (*((volatile uint16_t *)0x40050314))
+#define USB0_RQPKTCOUNT6_R      (*((volatile uint16_t *)0x40050318))
+#define USB0_RQPKTCOUNT7_R      (*((volatile uint16_t *)0x4005031C))
+#define USB0_RXDPKTBUFDIS_R     (*((volatile uint16_t *)0x40050340))
+#define USB0_TXDPKTBUFDIS_R     (*((volatile uint16_t *)0x40050342))
+#define USB0_EPC_R              (*((volatile uint32_t *)0x40050400))
+#define USB0_EPCRIS_R           (*((volatile uint32_t *)0x40050404))
+#define USB0_EPCIM_R            (*((volatile uint32_t *)0x40050408))
+#define USB0_EPCISC_R           (*((volatile uint32_t *)0x4005040C))
+#define USB0_DRRIS_R            (*((volatile uint32_t *)0x40050410))
+#define USB0_DRIM_R             (*((volatile uint32_t *)0x40050414))
+#define USB0_DRISC_R            (*((volatile uint32_t *)0x40050418))
+#define USB0_GPCS_R             (*((volatile uint32_t *)0x4005041C))
+#define USB0_VDC_R              (*((volatile uint32_t *)0x40050430))
+#define USB0_VDCRIS_R           (*((volatile uint32_t *)0x40050434))
+#define USB0_VDCIM_R            (*((volatile uint32_t *)0x40050438))
+#define USB0_VDCISC_R           (*((volatile uint32_t *)0x4005043C))
+#define USB0_IDVRIS_R           (*((volatile uint32_t *)0x40050444))
+#define USB0_IDVIM_R            (*((volatile uint32_t *)0x40050448))
+#define USB0_IDVISC_R           (*((volatile uint32_t *)0x4005044C))
+#define USB0_DMASEL_R           (*((volatile uint32_t *)0x40050450))
+#define USB0_PP_R               (*((volatile uint32_t *)0x40050FC0))
+
+//*****************************************************************************
+//
+// GPIO registers (PORTA AHB)
+//
+//*****************************************************************************
+#define GPIO_PORTA_AHB_DATA_BITS_R                                            \
+                                ((volatile uint32_t *)0x40058000)
+#define GPIO_PORTA_AHB_DATA_R   (*((volatile uint32_t *)0x400583FC))
+#define GPIO_PORTA_AHB_DIR_R    (*((volatile uint32_t *)0x40058400))
+#define GPIO_PORTA_AHB_IS_R     (*((volatile uint32_t *)0x40058404))
+#define GPIO_PORTA_AHB_IBE_R    (*((volatile uint32_t *)0x40058408))
+#define GPIO_PORTA_AHB_IEV_R    (*((volatile uint32_t *)0x4005840C))
+#define GPIO_PORTA_AHB_IM_R     (*((volatile uint32_t *)0x40058410))
+#define GPIO_PORTA_AHB_RIS_R    (*((volatile uint32_t *)0x40058414))
+#define GPIO_PORTA_AHB_MIS_R    (*((volatile uint32_t *)0x40058418))
+#define GPIO_PORTA_AHB_ICR_R    (*((volatile uint32_t *)0x4005841C))
+#define GPIO_PORTA_AHB_AFSEL_R  (*((volatile uint32_t *)0x40058420))
+#define GPIO_PORTA_AHB_DR2R_R   (*((volatile uint32_t *)0x40058500))
+#define GPIO_PORTA_AHB_DR4R_R   (*((volatile uint32_t *)0x40058504))
+#define GPIO_PORTA_AHB_DR8R_R   (*((volatile uint32_t *)0x40058508))
+#define GPIO_PORTA_AHB_ODR_R    (*((volatile uint32_t *)0x4005850C))
+#define GPIO_PORTA_AHB_PUR_R    (*((volatile uint32_t *)0x40058510))
+#define GPIO_PORTA_AHB_PDR_R    (*((volatile uint32_t *)0x40058514))
+#define GPIO_PORTA_AHB_SLR_R    (*((volatile uint32_t *)0x40058518))
+#define GPIO_PORTA_AHB_DEN_R    (*((volatile uint32_t *)0x4005851C))
+#define GPIO_PORTA_AHB_LOCK_R   (*((volatile uint32_t *)0x40058520))
+#define GPIO_PORTA_AHB_CR_R     (*((volatile uint32_t *)0x40058524))
+#define GPIO_PORTA_AHB_AMSEL_R  (*((volatile uint32_t *)0x40058528))
+#define GPIO_PORTA_AHB_PCTL_R   (*((volatile uint32_t *)0x4005852C))
+#define GPIO_PORTA_AHB_ADCCTL_R (*((volatile uint32_t *)0x40058530))
+#define GPIO_PORTA_AHB_DMACTL_R (*((volatile uint32_t *)0x40058534))
+
+//*****************************************************************************
+//
+// GPIO registers (PORTB AHB)
+//
+//*****************************************************************************
+#define GPIO_PORTB_AHB_DATA_BITS_R                                            \
+                                ((volatile uint32_t *)0x40059000)
+#define GPIO_PORTB_AHB_DATA_R   (*((volatile uint32_t *)0x400593FC))
+#define GPIO_PORTB_AHB_DIR_R    (*((volatile uint32_t *)0x40059400))
+#define GPIO_PORTB_AHB_IS_R     (*((volatile uint32_t *)0x40059404))
+#define GPIO_PORTB_AHB_IBE_R    (*((volatile uint32_t *)0x40059408))
+#define GPIO_PORTB_AHB_IEV_R    (*((volatile uint32_t *)0x4005940C))
+#define GPIO_PORTB_AHB_IM_R     (*((volatile uint32_t *)0x40059410))
+#define GPIO_PORTB_AHB_RIS_R    (*((volatile uint32_t *)0x40059414))
+#define GPIO_PORTB_AHB_MIS_R    (*((volatile uint32_t *)0x40059418))
+#define GPIO_PORTB_AHB_ICR_R    (*((volatile uint32_t *)0x4005941C))
+#define GPIO_PORTB_AHB_AFSEL_R  (*((volatile uint32_t *)0x40059420))
+#define GPIO_PORTB_AHB_DR2R_R   (*((volatile uint32_t *)0x40059500))
+#define GPIO_PORTB_AHB_DR4R_R   (*((volatile uint32_t *)0x40059504))
+#define GPIO_PORTB_AHB_DR8R_R   (*((volatile uint32_t *)0x40059508))
+#define GPIO_PORTB_AHB_ODR_R    (*((volatile uint32_t *)0x4005950C))
+#define GPIO_PORTB_AHB_PUR_R    (*((volatile uint32_t *)0x40059510))
+#define GPIO_PORTB_AHB_PDR_R    (*((volatile uint32_t *)0x40059514))
+#define GPIO_PORTB_AHB_SLR_R    (*((volatile uint32_t *)0x40059518))
+#define GPIO_PORTB_AHB_DEN_R    (*((volatile uint32_t *)0x4005951C))
+#define GPIO_PORTB_AHB_LOCK_R   (*((volatile uint32_t *)0x40059520))
+#define GPIO_PORTB_AHB_CR_R     (*((volatile uint32_t *)0x40059524))
+#define GPIO_PORTB_AHB_AMSEL_R  (*((volatile uint32_t *)0x40059528))
+#define GPIO_PORTB_AHB_PCTL_R   (*((volatile uint32_t *)0x4005952C))
+#define GPIO_PORTB_AHB_ADCCTL_R (*((volatile uint32_t *)0x40059530))
+#define GPIO_PORTB_AHB_DMACTL_R (*((volatile uint32_t *)0x40059534))
+
+//*****************************************************************************
+//
+// GPIO registers (PORTC AHB)
+//
+//*****************************************************************************
+#define GPIO_PORTC_AHB_DATA_BITS_R                                            \
+                                ((volatile uint32_t *)0x4005A000)
+#define GPIO_PORTC_AHB_DATA_R   (*((volatile uint32_t *)0x4005A3FC))
+#define GPIO_PORTC_AHB_DIR_R    (*((volatile uint32_t *)0x4005A400))
+#define GPIO_PORTC_AHB_IS_R     (*((volatile uint32_t *)0x4005A404))
+#define GPIO_PORTC_AHB_IBE_R    (*((volatile uint32_t *)0x4005A408))
+#define GPIO_PORTC_AHB_IEV_R    (*((volatile uint32_t *)0x4005A40C))
+#define GPIO_PORTC_AHB_IM_R     (*((volatile uint32_t *)0x4005A410))
+#define GPIO_PORTC_AHB_RIS_R    (*((volatile uint32_t *)0x4005A414))
+#define GPIO_PORTC_AHB_MIS_R    (*((volatile uint32_t *)0x4005A418))
+#define GPIO_PORTC_AHB_ICR_R    (*((volatile uint32_t *)0x4005A41C))
+#define GPIO_PORTC_AHB_AFSEL_R  (*((volatile uint32_t *)0x4005A420))
+#define GPIO_PORTC_AHB_DR2R_R   (*((volatile uint32_t *)0x4005A500))
+#define GPIO_PORTC_AHB_DR4R_R   (*((volatile uint32_t *)0x4005A504))
+#define GPIO_PORTC_AHB_DR8R_R   (*((volatile uint32_t *)0x4005A508))
+#define GPIO_PORTC_AHB_ODR_R    (*((volatile uint32_t *)0x4005A50C))
+#define GPIO_PORTC_AHB_PUR_R    (*((volatile uint32_t *)0x4005A510))
+#define GPIO_PORTC_AHB_PDR_R    (*((volatile uint32_t *)0x4005A514))
+#define GPIO_PORTC_AHB_SLR_R    (*((volatile uint32_t *)0x4005A518))
+#define GPIO_PORTC_AHB_DEN_R    (*((volatile uint32_t *)0x4005A51C))
+#define GPIO_PORTC_AHB_LOCK_R   (*((volatile uint32_t *)0x4005A520))
+#define GPIO_PORTC_AHB_CR_R     (*((volatile uint32_t *)0x4005A524))
+#define GPIO_PORTC_AHB_AMSEL_R  (*((volatile uint32_t *)0x4005A528))
+#define GPIO_PORTC_AHB_PCTL_R   (*((volatile uint32_t *)0x4005A52C))
+#define GPIO_PORTC_AHB_ADCCTL_R (*((volatile uint32_t *)0x4005A530))
+#define GPIO_PORTC_AHB_DMACTL_R (*((volatile uint32_t *)0x4005A534))
+
+//*****************************************************************************
+//
+// GPIO registers (PORTD AHB)
+//
+//*****************************************************************************
+#define GPIO_PORTD_AHB_DATA_BITS_R                                            \
+                                ((volatile uint32_t *)0x4005B000)
+#define GPIO_PORTD_AHB_DATA_R   (*((volatile uint32_t *)0x4005B3FC))
+#define GPIO_PORTD_AHB_DIR_R    (*((volatile uint32_t *)0x4005B400))
+#define GPIO_PORTD_AHB_IS_R     (*((volatile uint32_t *)0x4005B404))
+#define GPIO_PORTD_AHB_IBE_R    (*((volatile uint32_t *)0x4005B408))
+#define GPIO_PORTD_AHB_IEV_R    (*((volatile uint32_t *)0x4005B40C))
+#define GPIO_PORTD_AHB_IM_R     (*((volatile uint32_t *)0x4005B410))
+#define GPIO_PORTD_AHB_RIS_R    (*((volatile uint32_t *)0x4005B414))
+#define GPIO_PORTD_AHB_MIS_R    (*((volatile uint32_t *)0x4005B418))
+#define GPIO_PORTD_AHB_ICR_R    (*((volatile uint32_t *)0x4005B41C))
+#define GPIO_PORTD_AHB_AFSEL_R  (*((volatile uint32_t *)0x4005B420))
+#define GPIO_PORTD_AHB_DR2R_R   (*((volatile uint32_t *)0x4005B500))
+#define GPIO_PORTD_AHB_DR4R_R   (*((volatile uint32_t *)0x4005B504))
+#define GPIO_PORTD_AHB_DR8R_R   (*((volatile uint32_t *)0x4005B508))
+#define GPIO_PORTD_AHB_ODR_R    (*((volatile uint32_t *)0x4005B50C))
+#define GPIO_PORTD_AHB_PUR_R    (*((volatile uint32_t *)0x4005B510))
+#define GPIO_PORTD_AHB_PDR_R    (*((volatile uint32_t *)0x4005B514))
+#define GPIO_PORTD_AHB_SLR_R    (*((volatile uint32_t *)0x4005B518))
+#define GPIO_PORTD_AHB_DEN_R    (*((volatile uint32_t *)0x4005B51C))
+#define GPIO_PORTD_AHB_LOCK_R   (*((volatile uint32_t *)0x4005B520))
+#define GPIO_PORTD_AHB_CR_R     (*((volatile uint32_t *)0x4005B524))
+#define GPIO_PORTD_AHB_AMSEL_R  (*((volatile uint32_t *)0x4005B528))
+#define GPIO_PORTD_AHB_PCTL_R   (*((volatile uint32_t *)0x4005B52C))
+#define GPIO_PORTD_AHB_ADCCTL_R (*((volatile uint32_t *)0x4005B530))
+#define GPIO_PORTD_AHB_DMACTL_R (*((volatile uint32_t *)0x4005B534))
+
+//*****************************************************************************
+//
+// GPIO registers (PORTE AHB)
+//
+//*****************************************************************************
+#define GPIO_PORTE_AHB_DATA_BITS_R                                            \
+                                ((volatile uint32_t *)0x4005C000)
+#define GPIO_PORTE_AHB_DATA_R   (*((volatile uint32_t *)0x4005C3FC))
+#define GPIO_PORTE_AHB_DIR_R    (*((volatile uint32_t *)0x4005C400))
+#define GPIO_PORTE_AHB_IS_R     (*((volatile uint32_t *)0x4005C404))
+#define GPIO_PORTE_AHB_IBE_R    (*((volatile uint32_t *)0x4005C408))
+#define GPIO_PORTE_AHB_IEV_R    (*((volatile uint32_t *)0x4005C40C))
+#define GPIO_PORTE_AHB_IM_R     (*((volatile uint32_t *)0x4005C410))
+#define GPIO_PORTE_AHB_RIS_R    (*((volatile uint32_t *)0x4005C414))
+#define GPIO_PORTE_AHB_MIS_R    (*((volatile uint32_t *)0x4005C418))
+#define GPIO_PORTE_AHB_ICR_R    (*((volatile uint32_t *)0x4005C41C))
+#define GPIO_PORTE_AHB_AFSEL_R  (*((volatile uint32_t *)0x4005C420))
+#define GPIO_PORTE_AHB_DR2R_R   (*((volatile uint32_t *)0x4005C500))
+#define GPIO_PORTE_AHB_DR4R_R   (*((volatile uint32_t *)0x4005C504))
+#define GPIO_PORTE_AHB_DR8R_R   (*((volatile uint32_t *)0x4005C508))
+#define GPIO_PORTE_AHB_ODR_R    (*((volatile uint32_t *)0x4005C50C))
+#define GPIO_PORTE_AHB_PUR_R    (*((volatile uint32_t *)0x4005C510))
+#define GPIO_PORTE_AHB_PDR_R    (*((volatile uint32_t *)0x4005C514))
+#define GPIO_PORTE_AHB_SLR_R    (*((volatile uint32_t *)0x4005C518))
+#define GPIO_PORTE_AHB_DEN_R    (*((volatile uint32_t *)0x4005C51C))
+#define GPIO_PORTE_AHB_LOCK_R   (*((volatile uint32_t *)0x4005C520))
+#define GPIO_PORTE_AHB_CR_R     (*((volatile uint32_t *)0x4005C524))
+#define GPIO_PORTE_AHB_AMSEL_R  (*((volatile uint32_t *)0x4005C528))
+#define GPIO_PORTE_AHB_PCTL_R   (*((volatile uint32_t *)0x4005C52C))
+#define GPIO_PORTE_AHB_ADCCTL_R (*((volatile uint32_t *)0x4005C530))
+#define GPIO_PORTE_AHB_DMACTL_R (*((volatile uint32_t *)0x4005C534))
+
+//*****************************************************************************
+//
+// GPIO registers (PORTF AHB)
+//
+//*****************************************************************************
+#define GPIO_PORTF_AHB_DATA_BITS_R                                            \
+                                ((volatile uint32_t *)0x4005D000)
+#define GPIO_PORTF_AHB_DATA_R   (*((volatile uint32_t *)0x4005D3FC))
+#define GPIO_PORTF_AHB_DIR_R    (*((volatile uint32_t *)0x4005D400))
+#define GPIO_PORTF_AHB_IS_R     (*((volatile uint32_t *)0x4005D404))
+#define GPIO_PORTF_AHB_IBE_R    (*((volatile uint32_t *)0x4005D408))
+#define GPIO_PORTF_AHB_IEV_R    (*((volatile uint32_t *)0x4005D40C))
+#define GPIO_PORTF_AHB_IM_R     (*((volatile uint32_t *)0x4005D410))
+#define GPIO_PORTF_AHB_RIS_R    (*((volatile uint32_t *)0x4005D414))
+#define GPIO_PORTF_AHB_MIS_R    (*((volatile uint32_t *)0x4005D418))
+#define GPIO_PORTF_AHB_ICR_R    (*((volatile uint32_t *)0x4005D41C))
+#define GPIO_PORTF_AHB_AFSEL_R  (*((volatile uint32_t *)0x4005D420))
+#define GPIO_PORTF_AHB_DR2R_R   (*((volatile uint32_t *)0x4005D500))
+#define GPIO_PORTF_AHB_DR4R_R   (*((volatile uint32_t *)0x4005D504))
+#define GPIO_PORTF_AHB_DR8R_R   (*((volatile uint32_t *)0x4005D508))
+#define GPIO_PORTF_AHB_ODR_R    (*((volatile uint32_t *)0x4005D50C))
+#define GPIO_PORTF_AHB_PUR_R    (*((volatile uint32_t *)0x4005D510))
+#define GPIO_PORTF_AHB_PDR_R    (*((volatile uint32_t *)0x4005D514))
+#define GPIO_PORTF_AHB_SLR_R    (*((volatile uint32_t *)0x4005D518))
+#define GPIO_PORTF_AHB_DEN_R    (*((volatile uint32_t *)0x4005D51C))
+#define GPIO_PORTF_AHB_LOCK_R   (*((volatile uint32_t *)0x4005D520))
+#define GPIO_PORTF_AHB_CR_R     (*((volatile uint32_t *)0x4005D524))
+#define GPIO_PORTF_AHB_AMSEL_R  (*((volatile uint32_t *)0x4005D528))
+#define GPIO_PORTF_AHB_PCTL_R   (*((volatile uint32_t *)0x4005D52C))
+#define GPIO_PORTF_AHB_ADCCTL_R (*((volatile uint32_t *)0x4005D530))
+#define GPIO_PORTF_AHB_DMACTL_R (*((volatile uint32_t *)0x4005D534))
+
+//*****************************************************************************
+//
+// EEPROM registers (EEPROM)
+//
+//*****************************************************************************
+#define EEPROM_EESIZE_R         (*((volatile uint32_t *)0x400AF000))
+#define EEPROM_EEBLOCK_R        (*((volatile uint32_t *)0x400AF004))
+#define EEPROM_EEOFFSET_R       (*((volatile uint32_t *)0x400AF008))
+#define EEPROM_EERDWR_R         (*((volatile uint32_t *)0x400AF010))
+#define EEPROM_EERDWRINC_R      (*((volatile uint32_t *)0x400AF014))
+#define EEPROM_EEDONE_R         (*((volatile uint32_t *)0x400AF018))
+#define EEPROM_EESUPP_R         (*((volatile uint32_t *)0x400AF01C))
+#define EEPROM_EEUNLOCK_R       (*((volatile uint32_t *)0x400AF020))
+#define EEPROM_EEPROT_R         (*((volatile uint32_t *)0x400AF030))
+#define EEPROM_EEPASS0_R        (*((volatile uint32_t *)0x400AF034))
+#define EEPROM_EEPASS1_R        (*((volatile uint32_t *)0x400AF038))
+#define EEPROM_EEPASS2_R        (*((volatile uint32_t *)0x400AF03C))
+#define EEPROM_EEINT_R          (*((volatile uint32_t *)0x400AF040))
+#define EEPROM_EEHIDE_R         (*((volatile uint32_t *)0x400AF050))
+#define EEPROM_EEDBGME_R        (*((volatile uint32_t *)0x400AF080))
+#define EEPROM_PP_R             (*((volatile uint32_t *)0x400AFFC0))
+
+//*****************************************************************************
+//
+// System Exception Module registers (SYSEXC)
+//
+//*****************************************************************************
+#define SYSEXC_RIS_R            (*((volatile uint32_t *)0x400F9000))
+#define SYSEXC_IM_R             (*((volatile uint32_t *)0x400F9004))
+#define SYSEXC_MIS_R            (*((volatile uint32_t *)0x400F9008))
+#define SYSEXC_IC_R             (*((volatile uint32_t *)0x400F900C))
+
+//*****************************************************************************
+//
+// Hibernation module registers (HIB)
+//
+//*****************************************************************************
+#define HIB_RTCC_R              (*((volatile uint32_t *)0x400FC000))
+#define HIB_RTCM0_R             (*((volatile uint32_t *)0x400FC004))
+#define HIB_RTCLD_R             (*((volatile uint32_t *)0x400FC00C))
+#define HIB_CTL_R               (*((volatile uint32_t *)0x400FC010))
+#define HIB_IM_R                (*((volatile uint32_t *)0x400FC014))
+#define HIB_RIS_R               (*((volatile uint32_t *)0x400FC018))
+#define HIB_MIS_R               (*((volatile uint32_t *)0x400FC01C))
+#define HIB_IC_R                (*((volatile uint32_t *)0x400FC020))
+#define HIB_RTCT_R              (*((volatile uint32_t *)0x400FC024))
+#define HIB_RTCSS_R             (*((volatile uint32_t *)0x400FC028))
+#define HIB_DATA_R              (*((volatile uint32_t *)0x400FC030))
+
+//*****************************************************************************
+//
+// FLASH registers (FLASH CTRL)
+//
+//*****************************************************************************
+#define FLASH_FMA_R             (*((volatile uint32_t *)0x400FD000))
+#define FLASH_FMD_R             (*((volatile uint32_t *)0x400FD004))
+#define FLASH_FMC_R             (*((volatile uint32_t *)0x400FD008))
+#define FLASH_FCRIS_R           (*((volatile uint32_t *)0x400FD00C))
+#define FLASH_FCIM_R            (*((volatile uint32_t *)0x400FD010))
+#define FLASH_FCMISC_R          (*((volatile uint32_t *)0x400FD014))
+#define FLASH_FMC2_R            (*((volatile uint32_t *)0x400FD020))
+#define FLASH_FWBVAL_R          (*((volatile uint32_t *)0x400FD030))
+#define FLASH_FWBN_R            (*((volatile uint32_t *)0x400FD100))
+#define FLASH_FSIZE_R           (*((volatile uint32_t *)0x400FDFC0))
+#define FLASH_SSIZE_R           (*((volatile uint32_t *)0x400FDFC4))
+#define FLASH_ROMSWMAP_R        (*((volatile uint32_t *)0x400FDFCC))
+#define FLASH_RMCTL_R           (*((volatile uint32_t *)0x400FE0F0))
+#define FLASH_BOOTCFG_R         (*((volatile uint32_t *)0x400FE1D0))
+#define FLASH_USERREG0_R        (*((volatile uint32_t *)0x400FE1E0))
+#define FLASH_USERREG1_R        (*((volatile uint32_t *)0x400FE1E4))
+#define FLASH_USERREG2_R        (*((volatile uint32_t *)0x400FE1E8))
+#define FLASH_USERREG3_R        (*((volatile uint32_t *)0x400FE1EC))
+#define FLASH_FMPRE0_R          (*((volatile uint32_t *)0x400FE200))
+#define FLASH_FMPRE1_R          (*((volatile uint32_t *)0x400FE204))
+#define FLASH_FMPRE2_R          (*((volatile uint32_t *)0x400FE208))
+#define FLASH_FMPRE3_R          (*((volatile uint32_t *)0x400FE20C))
+#define FLASH_FMPPE0_R          (*((volatile uint32_t *)0x400FE400))
+#define FLASH_FMPPE1_R          (*((volatile uint32_t *)0x400FE404))
+#define FLASH_FMPPE2_R          (*((volatile uint32_t *)0x400FE408))
+#define FLASH_FMPPE3_R          (*((volatile uint32_t *)0x400FE40C))
+
+//*****************************************************************************
+//
+// System Control registers (SYSCTL)
+//
+//*****************************************************************************
+#define SYSCTL_DID0_R           (*((volatile uint32_t *)0x400FE000))
+#define SYSCTL_DID1_R           (*((volatile uint32_t *)0x400FE004))
+#define SYSCTL_DC0_R            (*((volatile uint32_t *)0x400FE008))
+#define SYSCTL_DC1_R            (*((volatile uint32_t *)0x400FE010))
+#define SYSCTL_DC2_R            (*((volatile uint32_t *)0x400FE014))
+#define SYSCTL_DC3_R            (*((volatile uint32_t *)0x400FE018))
+#define SYSCTL_DC4_R            (*((volatile uint32_t *)0x400FE01C))
+#define SYSCTL_DC5_R            (*((volatile uint32_t *)0x400FE020))
+#define SYSCTL_DC6_R            (*((volatile uint32_t *)0x400FE024))
+#define SYSCTL_DC7_R            (*((volatile uint32_t *)0x400FE028))
+#define SYSCTL_DC8_R            (*((volatile uint32_t *)0x400FE02C))
+#define SYSCTL_PBORCTL_R        (*((volatile uint32_t *)0x400FE030))
+#define SYSCTL_SRCR0_R          (*((volatile uint32_t *)0x400FE040))
+#define SYSCTL_SRCR1_R          (*((volatile uint32_t *)0x400FE044))
+#define SYSCTL_SRCR2_R          (*((volatile uint32_t *)0x400FE048))
+#define SYSCTL_RIS_R            (*((volatile uint32_t *)0x400FE050))
+#define SYSCTL_IMC_R            (*((volatile uint32_t *)0x400FE054))
+#define SYSCTL_MISC_R           (*((volatile uint32_t *)0x400FE058))
+#define SYSCTL_RESC_R           (*((volatile uint32_t *)0x400FE05C))
+#define SYSCTL_RCC_R            (*((volatile uint32_t *)0x400FE060))
+#define SYSCTL_GPIOHBCTL_R      (*((volatile uint32_t *)0x400FE06C))
+#define SYSCTL_RCC2_R           (*((volatile uint32_t *)0x400FE070))
+#define SYSCTL_MOSCCTL_R        (*((volatile uint32_t *)0x400FE07C))
+#define SYSCTL_RCGC0_R          (*((volatile uint32_t *)0x400FE100))
+#define SYSCTL_RCGC1_R          (*((volatile uint32_t *)0x400FE104))
+#define SYSCTL_RCGC2_R          (*((volatile uint32_t *)0x400FE108))
+#define SYSCTL_SCGC0_R          (*((volatile uint32_t *)0x400FE110))
+#define SYSCTL_SCGC1_R          (*((volatile uint32_t *)0x400FE114))
+#define SYSCTL_SCGC2_R          (*((volatile uint32_t *)0x400FE118))
+#define SYSCTL_DCGC0_R          (*((volatile uint32_t *)0x400FE120))
+#define SYSCTL_DCGC1_R          (*((volatile uint32_t *)0x400FE124))
+#define SYSCTL_DCGC2_R          (*((volatile uint32_t *)0x400FE128))
+#define SYSCTL_DSLPCLKCFG_R     (*((volatile uint32_t *)0x400FE144))
+#define SYSCTL_SYSPROP_R        (*((volatile uint32_t *)0x400FE14C))
+#define SYSCTL_PIOSCCAL_R       (*((volatile uint32_t *)0x400FE150))
+#define SYSCTL_PIOSCSTAT_R      (*((volatile uint32_t *)0x400FE154))
+#define SYSCTL_PLLFREQ0_R       (*((volatile uint32_t *)0x400FE160))
+#define SYSCTL_PLLFREQ1_R       (*((volatile uint32_t *)0x400FE164))
+#define SYSCTL_PLLSTAT_R        (*((volatile uint32_t *)0x400FE168))
+#define SYSCTL_SLPPWRCFG_R      (*((volatile uint32_t *)0x400FE188))
+#define SYSCTL_DSLPPWRCFG_R     (*((volatile uint32_t *)0x400FE18C))
+#define SYSCTL_DC9_R            (*((volatile uint32_t *)0x400FE190))
+#define SYSCTL_NVMSTAT_R        (*((volatile uint32_t *)0x400FE1A0))
+#define SYSCTL_LDOSPCTL_R       (*((volatile uint32_t *)0x400FE1B4))
+#define SYSCTL_LDODPCTL_R       (*((volatile uint32_t *)0x400FE1BC))
+#define SYSCTL_PPWD_R           (*((volatile uint32_t *)0x400FE300))
+#define SYSCTL_PPTIMER_R        (*((volatile uint32_t *)0x400FE304))
+#define SYSCTL_PPGPIO_R         (*((volatile uint32_t *)0x400FE308))
+#define SYSCTL_PPDMA_R          (*((volatile uint32_t *)0x400FE30C))
+#define SYSCTL_PPHIB_R          (*((volatile uint32_t *)0x400FE314))
+#define SYSCTL_PPUART_R         (*((volatile uint32_t *)0x400FE318))
+#define SYSCTL_PPSSI_R          (*((volatile uint32_t *)0x400FE31C))
+#define SYSCTL_PPI2C_R          (*((volatile uint32_t *)0x400FE320))
+#define SYSCTL_PPUSB_R          (*((volatile uint32_t *)0x400FE328))
+#define SYSCTL_PPCAN_R          (*((volatile uint32_t *)0x400FE334))
+#define SYSCTL_PPADC_R          (*((volatile uint32_t *)0x400FE338))
+#define SYSCTL_PPACMP_R         (*((volatile uint32_t *)0x400FE33C))
+#define SYSCTL_PPPWM_R          (*((volatile uint32_t *)0x400FE340))
+#define SYSCTL_PPQEI_R          (*((volatile uint32_t *)0x400FE344))
+#define SYSCTL_PPEEPROM_R       (*((volatile uint32_t *)0x400FE358))
+#define SYSCTL_PPWTIMER_R       (*((volatile uint32_t *)0x400FE35C))
+#define SYSCTL_SRWD_R           (*((volatile uint32_t *)0x400FE500))
+#define SYSCTL_SRTIMER_R        (*((volatile uint32_t *)0x400FE504))
+#define SYSCTL_SRGPIO_R         (*((volatile uint32_t *)0x400FE508))
+#define SYSCTL_SRDMA_R          (*((volatile uint32_t *)0x400FE50C))
+#define SYSCTL_SRHIB_R          (*((volatile uint32_t *)0x400FE514))
+#define SYSCTL_SRUART_R         (*((volatile uint32_t *)0x400FE518))
+#define SYSCTL_SRSSI_R          (*((volatile uint32_t *)0x400FE51C))
+#define SYSCTL_SRI2C_R          (*((volatile uint32_t *)0x400FE520))
+#define SYSCTL_SRUSB_R          (*((volatile uint32_t *)0x400FE528))
+#define SYSCTL_SRCAN_R          (*((volatile uint32_t *)0x400FE534))
+#define SYSCTL_SRADC_R          (*((volatile uint32_t *)0x400FE538))
+#define SYSCTL_SRACMP_R         (*((volatile uint32_t *)0x400FE53C))
+#define SYSCTL_SRPWM_R          (*((volatile uint32_t *)0x400FE540))
+#define SYSCTL_SRQEI_R          (*((volatile uint32_t *)0x400FE544))
+#define SYSCTL_SREEPROM_R       (*((volatile uint32_t *)0x400FE558))
+#define SYSCTL_SRWTIMER_R       (*((volatile uint32_t *)0x400FE55C))
+#define SYSCTL_RCGCWD_R         (*((volatile uint32_t *)0x400FE600))
+#define SYSCTL_RCGCTIMER_R      (*((volatile uint32_t *)0x400FE604))
+#define SYSCTL_RCGCGPIO_R       (*((volatile uint32_t *)0x400FE608))
+#define SYSCTL_RCGCDMA_R        (*((volatile uint32_t *)0x400FE60C))
+#define SYSCTL_RCGCHIB_R        (*((volatile uint32_t *)0x400FE614))
+#define SYSCTL_RCGCUART_R       (*((volatile uint32_t *)0x400FE618))
+#define SYSCTL_RCGCSSI_R        (*((volatile uint32_t *)0x400FE61C))
+#define SYSCTL_RCGCI2C_R        (*((volatile uint32_t *)0x400FE620))
+#define SYSCTL_RCGCUSB_R        (*((volatile uint32_t *)0x400FE628))
+#define SYSCTL_RCGCCAN_R        (*((volatile uint32_t *)0x400FE634))
+#define SYSCTL_RCGCADC_R        (*((volatile uint32_t *)0x400FE638))
+#define SYSCTL_RCGCACMP_R       (*((volatile uint32_t *)0x400FE63C))
+#define SYSCTL_RCGCPWM_R        (*((volatile uint32_t *)0x400FE640))
+#define SYSCTL_RCGCQEI_R        (*((volatile uint32_t *)0x400FE644))
+#define SYSCTL_RCGCEEPROM_R     (*((volatile uint32_t *)0x400FE658))
+#define SYSCTL_RCGCWTIMER_R     (*((volatile uint32_t *)0x400FE65C))
+#define SYSCTL_SCGCWD_R         (*((volatile uint32_t *)0x400FE700))
+#define SYSCTL_SCGCTIMER_R      (*((volatile uint32_t *)0x400FE704))
+#define SYSCTL_SCGCGPIO_R       (*((volatile uint32_t *)0x400FE708))
+#define SYSCTL_SCGCDMA_R        (*((volatile uint32_t *)0x400FE70C))
+#define SYSCTL_SCGCHIB_R        (*((volatile uint32_t *)0x400FE714))
+#define SYSCTL_SCGCUART_R       (*((volatile uint32_t *)0x400FE718))
+#define SYSCTL_SCGCSSI_R        (*((volatile uint32_t *)0x400FE71C))
+#define SYSCTL_SCGCI2C_R        (*((volatile uint32_t *)0x400FE720))
+#define SYSCTL_SCGCUSB_R        (*((volatile uint32_t *)0x400FE728))
+#define SYSCTL_SCGCCAN_R        (*((volatile uint32_t *)0x400FE734))
+#define SYSCTL_SCGCADC_R        (*((volatile uint32_t *)0x400FE738))
+#define SYSCTL_SCGCACMP_R       (*((volatile uint32_t *)0x400FE73C))
+#define SYSCTL_SCGCPWM_R        (*((volatile uint32_t *)0x400FE740))
+#define SYSCTL_SCGCQEI_R        (*((volatile uint32_t *)0x400FE744))
+#define SYSCTL_SCGCEEPROM_R     (*((volatile uint32_t *)0x400FE758))
+#define SYSCTL_SCGCWTIMER_R     (*((volatile uint32_t *)0x400FE75C))
+#define SYSCTL_DCGCWD_R         (*((volatile uint32_t *)0x400FE800))
+#define SYSCTL_DCGCTIMER_R      (*((volatile uint32_t *)0x400FE804))
+#define SYSCTL_DCGCGPIO_R       (*((volatile uint32_t *)0x400FE808))
+#define SYSCTL_DCGCDMA_R        (*((volatile uint32_t *)0x400FE80C))
+#define SYSCTL_DCGCHIB_R        (*((volatile uint32_t *)0x400FE814))
+#define SYSCTL_DCGCUART_R       (*((volatile uint32_t *)0x400FE818))
+#define SYSCTL_DCGCSSI_R        (*((volatile uint32_t *)0x400FE81C))
+#define SYSCTL_DCGCI2C_R        (*((volatile uint32_t *)0x400FE820))
+#define SYSCTL_DCGCUSB_R        (*((volatile uint32_t *)0x400FE828))
+#define SYSCTL_DCGCCAN_R        (*((volatile uint32_t *)0x400FE834))
+#define SYSCTL_DCGCADC_R        (*((volatile uint32_t *)0x400FE838))
+#define SYSCTL_DCGCACMP_R       (*((volatile uint32_t *)0x400FE83C))
+#define SYSCTL_DCGCPWM_R        (*((volatile uint32_t *)0x400FE840))
+#define SYSCTL_DCGCQEI_R        (*((volatile uint32_t *)0x400FE844))
+#define SYSCTL_DCGCEEPROM_R     (*((volatile uint32_t *)0x400FE858))
+#define SYSCTL_DCGCWTIMER_R     (*((volatile uint32_t *)0x400FE85C))
+#define SYSCTL_PRWD_R           (*((volatile uint32_t *)0x400FEA00))
+#define SYSCTL_PRTIMER_R        (*((volatile uint32_t *)0x400FEA04))
+#define SYSCTL_PRGPIO_R         (*((volatile uint32_t *)0x400FEA08))
+#define SYSCTL_PRDMA_R          (*((volatile uint32_t *)0x400FEA0C))
+#define SYSCTL_PRHIB_R          (*((volatile uint32_t *)0x400FEA14))
+#define SYSCTL_PRUART_R         (*((volatile uint32_t *)0x400FEA18))
+#define SYSCTL_PRSSI_R          (*((volatile uint32_t *)0x400FEA1C))
+#define SYSCTL_PRI2C_R          (*((volatile uint32_t *)0x400FEA20))
+#define SYSCTL_PRUSB_R          (*((volatile uint32_t *)0x400FEA28))
+#define SYSCTL_PRCAN_R          (*((volatile uint32_t *)0x400FEA34))
+#define SYSCTL_PRADC_R          (*((volatile uint32_t *)0x400FEA38))
+#define SYSCTL_PRACMP_R         (*((volatile uint32_t *)0x400FEA3C))
+#define SYSCTL_PRPWM_R          (*((volatile uint32_t *)0x400FEA40))
+#define SYSCTL_PRQEI_R          (*((volatile uint32_t *)0x400FEA44))
+#define SYSCTL_PREEPROM_R       (*((volatile uint32_t *)0x400FEA58))
+#define SYSCTL_PRWTIMER_R       (*((volatile uint32_t *)0x400FEA5C))
+
+//*****************************************************************************
+//
+// Micro Direct Memory Access registers (UDMA)
+//
+//*****************************************************************************
+#define UDMA_STAT_R             (*((volatile uint32_t *)0x400FF000))
+#define UDMA_CFG_R              (*((volatile uint32_t *)0x400FF004))
+#define UDMA_CTLBASE_R          (*((volatile uint32_t *)0x400FF008))
+#define UDMA_ALTBASE_R          (*((volatile uint32_t *)0x400FF00C))
+#define UDMA_WAITSTAT_R         (*((volatile uint32_t *)0x400FF010))
+#define UDMA_SWREQ_R            (*((volatile uint32_t *)0x400FF014))
+#define UDMA_USEBURSTSET_R      (*((volatile uint32_t *)0x400FF018))
+#define UDMA_USEBURSTCLR_R      (*((volatile uint32_t *)0x400FF01C))
+#define UDMA_REQMASKSET_R       (*((volatile uint32_t *)0x400FF020))
+#define UDMA_REQMASKCLR_R       (*((volatile uint32_t *)0x400FF024))
+#define UDMA_ENASET_R           (*((volatile uint32_t *)0x400FF028))
+#define UDMA_ENACLR_R           (*((volatile uint32_t *)0x400FF02C))
+#define UDMA_ALTSET_R           (*((volatile uint32_t *)0x400FF030))
+#define UDMA_ALTCLR_R           (*((volatile uint32_t *)0x400FF034))
+#define UDMA_PRIOSET_R          (*((volatile uint32_t *)0x400FF038))
+#define UDMA_PRIOCLR_R          (*((volatile uint32_t *)0x400FF03C))
+#define UDMA_ERRCLR_R           (*((volatile uint32_t *)0x400FF04C))
+#define UDMA_CHASGN_R           (*((volatile uint32_t *)0x400FF500))
+#define UDMA_CHIS_R             (*((volatile uint32_t *)0x400FF504))
+#define UDMA_CHMAP0_R           (*((volatile uint32_t *)0x400FF510))
+#define UDMA_CHMAP1_R           (*((volatile uint32_t *)0x400FF514))
+#define UDMA_CHMAP2_R           (*((volatile uint32_t *)0x400FF518))
+#define UDMA_CHMAP3_R           (*((volatile uint32_t *)0x400FF51C))
+
+//*****************************************************************************
+//
+// Micro Direct Memory Access (uDMA) offsets (UDMA)
+//
+//*****************************************************************************
+#define UDMA_SRCENDP            0x00000000  // DMA Channel Source Address End
+                                            // Pointer
+#define UDMA_DSTENDP            0x00000004  // DMA Channel Destination Address
+                                            // End Pointer
+#define UDMA_CHCTL              0x00000008  // DMA Channel Control Word
+
+//*****************************************************************************
+//
+// NVIC registers (NVIC)
+//
+//*****************************************************************************
+#define NVIC_ACTLR_R            (*((volatile uint32_t *)0xE000E008))
+#define NVIC_ST_CTRL_R          (*((volatile uint32_t *)0xE000E010))
+#define NVIC_ST_RELOAD_R        (*((volatile uint32_t *)0xE000E014))
+#define NVIC_ST_CURRENT_R       (*((volatile uint32_t *)0xE000E018))
+#define NVIC_EN0_R              (*((volatile uint32_t *)0xE000E100))
+#define NVIC_EN1_R              (*((volatile uint32_t *)0xE000E104))
+#define NVIC_EN2_R              (*((volatile uint32_t *)0xE000E108))
+#define NVIC_EN3_R              (*((volatile uint32_t *)0xE000E10C))
+#define NVIC_EN4_R              (*((volatile uint32_t *)0xE000E110))
+#define NVIC_DIS0_R             (*((volatile uint32_t *)0xE000E180))
+#define NVIC_DIS1_R             (*((volatile uint32_t *)0xE000E184))
+#define NVIC_DIS2_R             (*((volatile uint32_t *)0xE000E188))
+#define NVIC_DIS3_R             (*((volatile uint32_t *)0xE000E18C))
+#define NVIC_DIS4_R             (*((volatile uint32_t *)0xE000E190))
+#define NVIC_PEND0_R            (*((volatile uint32_t *)0xE000E200))
+#define NVIC_PEND1_R            (*((volatile uint32_t *)0xE000E204))
+#define NVIC_PEND2_R            (*((volatile uint32_t *)0xE000E208))
+#define NVIC_PEND3_R            (*((volatile uint32_t *)0xE000E20C))
+#define NVIC_PEND4_R            (*((volatile uint32_t *)0xE000E210))
+#define NVIC_UNPEND0_R          (*((volatile uint32_t *)0xE000E280))
+#define NVIC_UNPEND1_R          (*((volatile uint32_t *)0xE000E284))
+#define NVIC_UNPEND2_R          (*((volatile uint32_t *)0xE000E288))
+#define NVIC_UNPEND3_R          (*((volatile uint32_t *)0xE000E28C))
+#define NVIC_UNPEND4_R          (*((volatile uint32_t *)0xE000E290))
+#define NVIC_ACTIVE0_R          (*((volatile uint32_t *)0xE000E300))
+#define NVIC_ACTIVE1_R          (*((volatile uint32_t *)0xE000E304))
+#define NVIC_ACTIVE2_R          (*((volatile uint32_t *)0xE000E308))
+#define NVIC_ACTIVE3_R          (*((volatile uint32_t *)0xE000E30C))
+#define NVIC_ACTIVE4_R          (*((volatile uint32_t *)0xE000E310))
+#define NVIC_PRI0_R             (*((volatile uint32_t *)0xE000E400))
+#define NVIC_PRI1_R             (*((volatile uint32_t *)0xE000E404))
+#define NVIC_PRI2_R             (*((volatile uint32_t *)0xE000E408))
+#define NVIC_PRI3_R             (*((volatile uint32_t *)0xE000E40C))
+#define NVIC_PRI4_R             (*((volatile uint32_t *)0xE000E410))
+#define NVIC_PRI5_R             (*((volatile uint32_t *)0xE000E414))
+#define NVIC_PRI6_R             (*((volatile uint32_t *)0xE000E418))
+#define NVIC_PRI7_R             (*((volatile uint32_t *)0xE000E41C))
+#define NVIC_PRI8_R             (*((volatile uint32_t *)0xE000E420))
+#define NVIC_PRI9_R             (*((volatile uint32_t *)0xE000E424))
+#define NVIC_PRI10_R            (*((volatile uint32_t *)0xE000E428))
+#define NVIC_PRI11_R            (*((volatile uint32_t *)0xE000E42C))
+#define NVIC_PRI12_R            (*((volatile uint32_t *)0xE000E430))
+#define NVIC_PRI13_R            (*((volatile uint32_t *)0xE000E434))
+#define NVIC_PRI14_R            (*((volatile uint32_t *)0xE000E438))
+#define NVIC_PRI15_R            (*((volatile uint32_t *)0xE000E43C))
+#define NVIC_PRI16_R            (*((volatile uint32_t *)0xE000E440))
+#define NVIC_PRI17_R            (*((volatile uint32_t *)0xE000E444))
+#define NVIC_PRI18_R            (*((volatile uint32_t *)0xE000E448))
+#define NVIC_PRI19_R            (*((volatile uint32_t *)0xE000E44C))
+#define NVIC_PRI20_R            (*((volatile uint32_t *)0xE000E450))
+#define NVIC_PRI21_R            (*((volatile uint32_t *)0xE000E454))
+#define NVIC_PRI22_R            (*((volatile uint32_t *)0xE000E458))
+#define NVIC_PRI23_R            (*((volatile uint32_t *)0xE000E45C))
+#define NVIC_PRI24_R            (*((volatile uint32_t *)0xE000E460))
+#define NVIC_PRI25_R            (*((volatile uint32_t *)0xE000E464))
+#define NVIC_PRI26_R            (*((volatile uint32_t *)0xE000E468))
+#define NVIC_PRI27_R            (*((volatile uint32_t *)0xE000E46C))
+#define NVIC_PRI28_R            (*((volatile uint32_t *)0xE000E470))
+#define NVIC_PRI29_R            (*((volatile uint32_t *)0xE000E474))
+#define NVIC_PRI30_R            (*((volatile uint32_t *)0xE000E478))
+#define NVIC_PRI31_R            (*((volatile uint32_t *)0xE000E47C))
+#define NVIC_PRI32_R            (*((volatile uint32_t *)0xE000E480))
+#define NVIC_PRI33_R            (*((volatile uint32_t *)0xE000E484))
+#define NVIC_PRI34_R            (*((volatile uint32_t *)0xE000E488))
+#define NVIC_CPUID_R            (*((volatile uint32_t *)0xE000ED00))
+#define NVIC_INT_CTRL_R         (*((volatile uint32_t *)0xE000ED04))
+#define NVIC_VTABLE_R           (*((volatile uint32_t *)0xE000ED08))
+#define NVIC_APINT_R            (*((volatile uint32_t *)0xE000ED0C))
+#define NVIC_SYS_CTRL_R         (*((volatile uint32_t *)0xE000ED10))
+#define NVIC_CFG_CTRL_R         (*((volatile uint32_t *)0xE000ED14))
+#define NVIC_SYS_PRI1_R         (*((volatile uint32_t *)0xE000ED18))
+#define NVIC_SYS_PRI2_R         (*((volatile uint32_t *)0xE000ED1C))
+#define NVIC_SYS_PRI3_R         (*((volatile uint32_t *)0xE000ED20))
+#define NVIC_SYS_HND_CTRL_R     (*((volatile uint32_t *)0xE000ED24))
+#define NVIC_FAULT_STAT_R       (*((volatile uint32_t *)0xE000ED28))
+#define NVIC_HFAULT_STAT_R      (*((volatile uint32_t *)0xE000ED2C))
+#define NVIC_DEBUG_STAT_R       (*((volatile uint32_t *)0xE000ED30))
+#define NVIC_MM_ADDR_R          (*((volatile uint32_t *)0xE000ED34))
+#define NVIC_FAULT_ADDR_R       (*((volatile uint32_t *)0xE000ED38))
+#define NVIC_CPAC_R             (*((volatile uint32_t *)0xE000ED88))
+#define NVIC_MPU_TYPE_R         (*((volatile uint32_t *)0xE000ED90))
+#define NVIC_MPU_CTRL_R         (*((volatile uint32_t *)0xE000ED94))
+#define NVIC_MPU_NUMBER_R       (*((volatile uint32_t *)0xE000ED98))
+#define NVIC_MPU_BASE_R         (*((volatile uint32_t *)0xE000ED9C))
+#define NVIC_MPU_ATTR_R         (*((volatile uint32_t *)0xE000EDA0))
+#define NVIC_MPU_BASE1_R        (*((volatile uint32_t *)0xE000EDA4))
+#define NVIC_MPU_ATTR1_R        (*((volatile uint32_t *)0xE000EDA8))
+#define NVIC_MPU_BASE2_R        (*((volatile uint32_t *)0xE000EDAC))
+#define NVIC_MPU_ATTR2_R        (*((volatile uint32_t *)0xE000EDB0))
+#define NVIC_MPU_BASE3_R        (*((volatile uint32_t *)0xE000EDB4))
+#define NVIC_MPU_ATTR3_R        (*((volatile uint32_t *)0xE000EDB8))
+#define NVIC_DBG_CTRL_R         (*((volatile uint32_t *)0xE000EDF0))
+#define NVIC_DBG_XFER_R         (*((volatile uint32_t *)0xE000EDF4))
+#define NVIC_DBG_DATA_R         (*((volatile uint32_t *)0xE000EDF8))
+#define NVIC_DBG_INT_R          (*((volatile uint32_t *)0xE000EDFC))
+#define NVIC_SW_TRIG_R          (*((volatile uint32_t *)0xE000EF00))
+#define NVIC_FPCC_R             (*((volatile uint32_t *)0xE000EF34))
+#define NVIC_FPCA_R             (*((volatile uint32_t *)0xE000EF38))
+#define NVIC_FPDSC_R            (*((volatile uint32_t *)0xE000EF3C))
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the WDT_O_LOAD register.
+//
+//*****************************************************************************
+#define WDT_LOAD_M              0xFFFFFFFF  // Watchdog Load Value
+#define WDT_LOAD_S              0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the WDT_O_VALUE register.
+//
+//*****************************************************************************
+#define WDT_VALUE_M             0xFFFFFFFF  // Watchdog Value
+#define WDT_VALUE_S             0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the WDT_O_CTL register.
+//
+//*****************************************************************************
+#define WDT_CTL_WRC             0x80000000  // Write Complete
+#define WDT_CTL_INTTYPE         0x00000004  // Watchdog Interrupt Type
+#define WDT_CTL_RESEN           0x00000002  // Watchdog Reset Enable
+#define WDT_CTL_INTEN           0x00000001  // Watchdog Interrupt Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the WDT_O_ICR register.
+//
+//*****************************************************************************
+#define WDT_ICR_M               0xFFFFFFFF  // Watchdog Interrupt Clear
+#define WDT_ICR_S               0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the WDT_O_RIS register.
+//
+//*****************************************************************************
+#define WDT_RIS_WDTRIS          0x00000001  // Watchdog Raw Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the WDT_O_MIS register.
+//
+//*****************************************************************************
+#define WDT_MIS_WDTMIS          0x00000001  // Watchdog Masked Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the WDT_O_TEST register.
+//
+//*****************************************************************************
+#define WDT_TEST_STALL          0x00000100  // Watchdog Stall Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the WDT_O_LOCK register.
+//
+//*****************************************************************************
+#define WDT_LOCK_M              0xFFFFFFFF  // Watchdog Lock
+#define WDT_LOCK_UNLOCKED       0x00000000  // Unlocked
+#define WDT_LOCK_LOCKED         0x00000001  // Locked
+#define WDT_LOCK_UNLOCK         0x1ACCE551  // Unlocks the watchdog timer
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_IM register.
+//
+//*****************************************************************************
+#define GPIO_IM_GPIO_M          0x000000FF  // GPIO Interrupt Mask Enable
+#define GPIO_IM_GPIO_S          0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_RIS register.
+//
+//*****************************************************************************
+#define GPIO_RIS_GPIO_M         0x000000FF  // GPIO Interrupt Raw Status
+#define GPIO_RIS_GPIO_S         0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_MIS register.
+//
+//*****************************************************************************
+#define GPIO_MIS_GPIO_M         0x000000FF  // GPIO Masked Interrupt Status
+#define GPIO_MIS_GPIO_S         0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_ICR register.
+//
+//*****************************************************************************
+#define GPIO_ICR_GPIO_M         0x000000FF  // GPIO Interrupt Clear
+#define GPIO_ICR_GPIO_S         0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_LOCK register.
+//
+//*****************************************************************************
+#define GPIO_LOCK_M             0xFFFFFFFF  // GPIO Lock
+#define GPIO_LOCK_UNLOCKED      0x00000000  // The GPIOCR register is unlocked
+                                            // and may be modified
+#define GPIO_LOCK_LOCKED        0x00000001  // The GPIOCR register is locked
+                                            // and may not be modified
+#define GPIO_LOCK_KEY           0x4C4F434B  // Unlocks the GPIO_CR register
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_PCTL register for
+// port A.
+//
+//*****************************************************************************
+#define GPIO_PCTL_PA7_M         0xF0000000  // PA7 Mask
+#define GPIO_PCTL_PA7_I2C1SDA   0x30000000  // I2C1SDA on PA7
+#define GPIO_PCTL_PA7_M1PWM3    0x50000000  // M1PWM3 on PA7
+#define GPIO_PCTL_PA6_M         0x0F000000  // PA6 Mask
+#define GPIO_PCTL_PA6_I2C1SCL   0x03000000  // I2C1SCL on PA6
+#define GPIO_PCTL_PA6_M1PWM2    0x05000000  // M1PWM2 on PA6
+#define GPIO_PCTL_PA5_M         0x00F00000  // PA5 Mask
+#define GPIO_PCTL_PA5_SSI0TX    0x00200000  // SSI0TX on PA5
+#define GPIO_PCTL_PA4_M         0x000F0000  // PA4 Mask
+#define GPIO_PCTL_PA4_SSI0RX    0x00020000  // SSI0RX on PA4
+#define GPIO_PCTL_PA3_M         0x0000F000  // PA3 Mask
+#define GPIO_PCTL_PA3_SSI0FSS   0x00002000  // SSI0FSS on PA3
+#define GPIO_PCTL_PA2_M         0x00000F00  // PA2 Mask
+#define GPIO_PCTL_PA2_SSI0CLK   0x00000200  // SSI0CLK on PA2
+#define GPIO_PCTL_PA1_M         0x000000F0  // PA1 Mask
+#define GPIO_PCTL_PA1_U0TX      0x00000010  // U0TX on PA1
+#define GPIO_PCTL_PA1_CAN1TX    0x00000080  // CAN1TX on PA1
+#define GPIO_PCTL_PA0_M         0x0000000F  // PA0 Mask
+#define GPIO_PCTL_PA0_U0RX      0x00000001  // U0RX on PA0
+#define GPIO_PCTL_PA0_CAN1RX    0x00000008  // CAN1RX on PA0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_PCTL register for
+// port B.
+//
+//*****************************************************************************
+#define GPIO_PCTL_PB7_M         0xF0000000  // PB7 Mask
+#define GPIO_PCTL_PB7_SSI2TX    0x20000000  // SSI2TX on PB7
+#define GPIO_PCTL_PB7_M0PWM1    0x40000000  // M0PWM1 on PB7
+#define GPIO_PCTL_PB7_T0CCP1    0x70000000  // T0CCP1 on PB7
+#define GPIO_PCTL_PB6_M         0x0F000000  // PB6 Mask
+#define GPIO_PCTL_PB6_SSI2RX    0x02000000  // SSI2RX on PB6
+#define GPIO_PCTL_PB6_M0PWM0    0x04000000  // M0PWM0 on PB6
+#define GPIO_PCTL_PB6_T0CCP0    0x07000000  // T0CCP0 on PB6
+#define GPIO_PCTL_PB5_M         0x00F00000  // PB5 Mask
+#define GPIO_PCTL_PB5_SSI2FSS   0x00200000  // SSI2FSS on PB5
+#define GPIO_PCTL_PB5_M0PWM3    0x00400000  // M0PWM3 on PB5
+#define GPIO_PCTL_PB5_T1CCP1    0x00700000  // T1CCP1 on PB5
+#define GPIO_PCTL_PB5_CAN0TX    0x00800000  // CAN0TX on PB5
+#define GPIO_PCTL_PB4_M         0x000F0000  // PB4 Mask
+#define GPIO_PCTL_PB4_SSI2CLK   0x00020000  // SSI2CLK on PB4
+#define GPIO_PCTL_PB4_M0PWM2    0x00040000  // M0PWM2 on PB4
+#define GPIO_PCTL_PB4_T1CCP0    0x00070000  // T1CCP0 on PB4
+#define GPIO_PCTL_PB4_CAN0RX    0x00080000  // CAN0RX on PB4
+#define GPIO_PCTL_PB3_M         0x0000F000  // PB3 Mask
+#define GPIO_PCTL_PB3_I2C0SDA   0x00003000  // I2C0SDA on PB3
+#define GPIO_PCTL_PB3_T3CCP1    0x00007000  // T3CCP1 on PB3
+#define GPIO_PCTL_PB2_M         0x00000F00  // PB2 Mask
+#define GPIO_PCTL_PB2_I2C0SCL   0x00000300  // I2C0SCL on PB2
+#define GPIO_PCTL_PB2_T3CCP0    0x00000700  // T3CCP0 on PB2
+#define GPIO_PCTL_PB1_M         0x000000F0  // PB1 Mask
+#define GPIO_PCTL_PB1_USB0VBUS  0x00000000  // USB0VBUS on PB1
+#define GPIO_PCTL_PB1_U1TX      0x00000010  // U1TX on PB1
+#define GPIO_PCTL_PB1_T2CCP1    0x00000070  // T2CCP1 on PB1
+#define GPIO_PCTL_PB0_M         0x0000000F  // PB0 Mask
+#define GPIO_PCTL_PB0_USB0ID    0x00000000  // USB0ID on PB0
+#define GPIO_PCTL_PB0_U1RX      0x00000001  // U1RX on PB0
+#define GPIO_PCTL_PB0_T2CCP0    0x00000007  // T2CCP0 on PB0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_PCTL register for
+// port C.
+//
+//*****************************************************************************
+#define GPIO_PCTL_PC7_M         0xF0000000  // PC7 Mask
+#define GPIO_PCTL_PC7_U3TX      0x10000000  // U3TX on PC7
+#define GPIO_PCTL_PC7_WT1CCP1   0x70000000  // WT1CCP1 on PC7
+#define GPIO_PCTL_PC7_USB0PFLT  0x80000000  // USB0PFLT on PC7
+#define GPIO_PCTL_PC6_M         0x0F000000  // PC6 Mask
+#define GPIO_PCTL_PC6_U3RX      0x01000000  // U3RX on PC6
+#define GPIO_PCTL_PC6_PHB1      0x06000000  // PHB1 on PC6
+#define GPIO_PCTL_PC6_WT1CCP0   0x07000000  // WT1CCP0 on PC6
+#define GPIO_PCTL_PC6_USB0EPEN  0x08000000  // USB0EPEN on PC6
+#define GPIO_PCTL_PC5_M         0x00F00000  // PC5 Mask
+#define GPIO_PCTL_PC5_U4TX      0x00100000  // U4TX on PC5
+#define GPIO_PCTL_PC5_U1TX      0x00200000  // U1TX on PC5
+#define GPIO_PCTL_PC5_M0PWM7    0x00400000  // M0PWM7 on PC5
+#define GPIO_PCTL_PC5_PHA1      0x00600000  // PHA1 on PC5
+#define GPIO_PCTL_PC5_WT0CCP1   0x00700000  // WT0CCP1 on PC5
+#define GPIO_PCTL_PC5_U1CTS     0x00800000  // U1CTS on PC5
+#define GPIO_PCTL_PC4_M         0x000F0000  // PC4 Mask
+#define GPIO_PCTL_PC4_U4RX      0x00010000  // U4RX on PC4
+#define GPIO_PCTL_PC4_U1RX      0x00020000  // U1RX on PC4
+#define GPIO_PCTL_PC4_M0PWM6    0x00040000  // M0PWM6 on PC4
+#define GPIO_PCTL_PC4_IDX1      0x00060000  // IDX1 on PC4
+#define GPIO_PCTL_PC4_WT0CCP0   0x00070000  // WT0CCP0 on PC4
+#define GPIO_PCTL_PC4_U1RTS     0x00080000  // U1RTS on PC4
+#define GPIO_PCTL_PC3_M         0x0000F000  // PC3 Mask
+#define GPIO_PCTL_PC3_TDO       0x00001000  // TDO on PC3
+#define GPIO_PCTL_PC3_T5CCP1    0x00007000  // T5CCP1 on PC3
+#define GPIO_PCTL_PC2_M         0x00000F00  // PC2 Mask
+#define GPIO_PCTL_PC2_TDI       0x00000100  // TDI on PC2
+#define GPIO_PCTL_PC2_T5CCP0    0x00000700  // T5CCP0 on PC2
+#define GPIO_PCTL_PC1_M         0x000000F0  // PC1 Mask
+#define GPIO_PCTL_PC1_TMS       0x00000010  // TMS on PC1
+#define GPIO_PCTL_PC1_T4CCP1    0x00000070  // T4CCP1 on PC1
+#define GPIO_PCTL_PC0_M         0x0000000F  // PC0 Mask
+#define GPIO_PCTL_PC0_TCK       0x00000001  // TCK on PC0
+#define GPIO_PCTL_PC0_T4CCP0    0x00000007  // T4CCP0 on PC0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_PCTL register for
+// port D.
+//
+//*****************************************************************************
+#define GPIO_PCTL_PD7_M         0xF0000000  // PD7 Mask
+#define GPIO_PCTL_PD7_U2TX      0x10000000  // U2TX on PD7
+#define GPIO_PCTL_PD7_PHB0      0x60000000  // PHB0 on PD7
+#define GPIO_PCTL_PD7_WT5CCP1   0x70000000  // WT5CCP1 on PD7
+#define GPIO_PCTL_PD7_NMI       0x80000000  // NMI on PD7
+#define GPIO_PCTL_PD6_M         0x0F000000  // PD6 Mask
+#define GPIO_PCTL_PD6_U2RX      0x01000000  // U2RX on PD6
+#define GPIO_PCTL_PD6_M0FAULT0  0x04000000  // M0FAULT0 on PD6
+#define GPIO_PCTL_PD6_PHA0      0x06000000  // PHA0 on PD6
+#define GPIO_PCTL_PD6_WT5CCP0   0x07000000  // WT5CCP0 on PD6
+#define GPIO_PCTL_PD5_M         0x00F00000  // PD5 Mask
+#define GPIO_PCTL_PD5_USB0DP    0x00000000  // USB0DP on PD5
+#define GPIO_PCTL_PD5_U6TX      0x00100000  // U6TX on PD5
+#define GPIO_PCTL_PD5_WT4CCP1   0x00700000  // WT4CCP1 on PD5
+#define GPIO_PCTL_PD4_M         0x000F0000  // PD4 Mask
+#define GPIO_PCTL_PD4_USB0DM    0x00000000  // USB0DM on PD4
+#define GPIO_PCTL_PD4_U6RX      0x00010000  // U6RX on PD4
+#define GPIO_PCTL_PD4_WT4CCP0   0x00070000  // WT4CCP0 on PD4
+#define GPIO_PCTL_PD3_M         0x0000F000  // PD3 Mask
+#define GPIO_PCTL_PD3_AIN4      0x00000000  // AIN4 on PD3
+#define GPIO_PCTL_PD3_SSI3TX    0x00001000  // SSI3TX on PD3
+#define GPIO_PCTL_PD3_SSI1TX    0x00002000  // SSI1TX on PD3
+#define GPIO_PCTL_PD3_IDX0      0x00006000  // IDX0 on PD3
+#define GPIO_PCTL_PD3_WT3CCP1   0x00007000  // WT3CCP1 on PD3
+#define GPIO_PCTL_PD3_USB0PFLT  0x00008000  // USB0PFLT on PD3
+#define GPIO_PCTL_PD2_M         0x00000F00  // PD2 Mask
+#define GPIO_PCTL_PD2_AIN5      0x00000000  // AIN5 on PD2
+#define GPIO_PCTL_PD2_SSI3RX    0x00000100  // SSI3RX on PD2
+#define GPIO_PCTL_PD2_SSI1RX    0x00000200  // SSI1RX on PD2
+#define GPIO_PCTL_PD2_M0FAULT0  0x00000400  // M0FAULT0 on PD2
+#define GPIO_PCTL_PD2_WT3CCP0   0x00000700  // WT3CCP0 on PD2
+#define GPIO_PCTL_PD2_USB0EPEN  0x00000800  // USB0EPEN on PD2
+#define GPIO_PCTL_PD1_M         0x000000F0  // PD1 Mask
+#define GPIO_PCTL_PD1_AIN6      0x00000000  // AIN6 on PD1
+#define GPIO_PCTL_PD1_SSI3FSS   0x00000010  // SSI3FSS on PD1
+#define GPIO_PCTL_PD1_SSI1FSS   0x00000020  // SSI1FSS on PD1
+#define GPIO_PCTL_PD1_I2C3SDA   0x00000030  // I2C3SDA on PD1
+#define GPIO_PCTL_PD1_M0PWM7    0x00000040  // M0PWM7 on PD1
+#define GPIO_PCTL_PD1_M1PWM1    0x00000050  // M1PWM1 on PD1
+#define GPIO_PCTL_PD1_WT2CCP1   0x00000070  // WT2CCP1 on PD1
+#define GPIO_PCTL_PD0_M         0x0000000F  // PD0 Mask
+#define GPIO_PCTL_PD0_AIN7      0x00000000  // AIN7 on PD0
+#define GPIO_PCTL_PD0_SSI3CLK   0x00000001  // SSI3CLK on PD0
+#define GPIO_PCTL_PD0_SSI1CLK   0x00000002  // SSI1CLK on PD0
+#define GPIO_PCTL_PD0_I2C3SCL   0x00000003  // I2C3SCL on PD0
+#define GPIO_PCTL_PD0_M0PWM6    0x00000004  // M0PWM6 on PD0
+#define GPIO_PCTL_PD0_M1PWM0    0x00000005  // M1PWM0 on PD0
+#define GPIO_PCTL_PD0_WT2CCP0   0x00000007  // WT2CCP0 on PD0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_PCTL register for
+// port E.
+//
+//*****************************************************************************
+#define GPIO_PCTL_PE5_M         0x00F00000  // PE5 Mask
+#define GPIO_PCTL_PE5_AIN8      0x00000000  // AIN8 on PE5
+#define GPIO_PCTL_PE5_U5TX      0x00100000  // U5TX on PE5
+#define GPIO_PCTL_PE5_I2C2SDA   0x00300000  // I2C2SDA on PE5
+#define GPIO_PCTL_PE5_M0PWM5    0x00400000  // M0PWM5 on PE5
+#define GPIO_PCTL_PE5_M1PWM3    0x00500000  // M1PWM3 on PE5
+#define GPIO_PCTL_PE5_CAN0TX    0x00800000  // CAN0TX on PE5
+#define GPIO_PCTL_PE4_M         0x000F0000  // PE4 Mask
+#define GPIO_PCTL_PE4_AIN9      0x00000000  // AIN9 on PE4
+#define GPIO_PCTL_PE4_U5RX      0x00010000  // U5RX on PE4
+#define GPIO_PCTL_PE4_I2C2SCL   0x00030000  // I2C2SCL on PE4
+#define GPIO_PCTL_PE4_M0PWM4    0x00040000  // M0PWM4 on PE4
+#define GPIO_PCTL_PE4_M1PWM2    0x00050000  // M1PWM2 on PE4
+#define GPIO_PCTL_PE4_CAN0RX    0x00080000  // CAN0RX on PE4
+#define GPIO_PCTL_PE3_M         0x0000F000  // PE3 Mask
+#define GPIO_PCTL_PE3_AIN0      0x00000000  // AIN0 on PE3
+#define GPIO_PCTL_PE2_M         0x00000F00  // PE2 Mask
+#define GPIO_PCTL_PE2_AIN1      0x00000000  // AIN1 on PE2
+#define GPIO_PCTL_PE1_M         0x000000F0  // PE1 Mask
+#define GPIO_PCTL_PE1_AIN2      0x00000000  // AIN2 on PE1
+#define GPIO_PCTL_PE1_U7TX      0x00000010  // U7TX on PE1
+#define GPIO_PCTL_PE0_M         0x0000000F  // PE0 Mask
+#define GPIO_PCTL_PE0_AIN3      0x00000000  // AIN3 on PE0
+#define GPIO_PCTL_PE0_U7RX      0x00000001  // U7RX on PE0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_PCTL register for
+// port F.
+//
+//*****************************************************************************
+#define GPIO_PCTL_PF4_M         0x000F0000  // PF4 Mask
+#define GPIO_PCTL_PF4_M1FAULT0  0x00050000  // M1FAULT0 on PF4
+#define GPIO_PCTL_PF4_IDX0      0x00060000  // IDX0 on PF4
+#define GPIO_PCTL_PF4_T2CCP0    0x00070000  // T2CCP0 on PF4
+#define GPIO_PCTL_PF4_USB0EPEN  0x00080000  // USB0EPEN on PF4
+#define GPIO_PCTL_PF3_M         0x0000F000  // PF3 Mask
+#define GPIO_PCTL_PF3_SSI1FSS   0x00002000  // SSI1FSS on PF3
+#define GPIO_PCTL_PF3_CAN0TX    0x00003000  // CAN0TX on PF3
+#define GPIO_PCTL_PF3_M1PWM7    0x00005000  // M1PWM7 on PF3
+#define GPIO_PCTL_PF3_T1CCP1    0x00007000  // T1CCP1 on PF3
+#define GPIO_PCTL_PF3_TRCLK     0x0000E000  // TRCLK on PF3
+#define GPIO_PCTL_PF2_M         0x00000F00  // PF2 Mask
+#define GPIO_PCTL_PF2_SSI1CLK   0x00000200  // SSI1CLK on PF2
+#define GPIO_PCTL_PF2_M0FAULT0  0x00000400  // M0FAULT0 on PF2
+#define GPIO_PCTL_PF2_M1PWM6    0x00000500  // M1PWM6 on PF2
+#define GPIO_PCTL_PF2_T1CCP0    0x00000700  // T1CCP0 on PF2
+#define GPIO_PCTL_PF2_TRD0      0x00000E00  // TRD0 on PF2
+#define GPIO_PCTL_PF1_M         0x000000F0  // PF1 Mask
+#define GPIO_PCTL_PF1_U1CTS     0x00000010  // U1CTS on PF1
+#define GPIO_PCTL_PF1_SSI1TX    0x00000020  // SSI1TX on PF1
+#define GPIO_PCTL_PF1_M1PWM5    0x00000050  // M1PWM5 on PF1
+#define GPIO_PCTL_PF1_PHB0      0x00000060  // PHB0 on PF1
+#define GPIO_PCTL_PF1_T0CCP1    0x00000070  // T0CCP1 on PF1
+#define GPIO_PCTL_PF1_C1O       0x00000090  // C1O on PF1
+#define GPIO_PCTL_PF1_TRD1      0x000000E0  // TRD1 on PF1
+#define GPIO_PCTL_PF0_M         0x0000000F  // PF0 Mask
+#define GPIO_PCTL_PF0_U1RTS     0x00000001  // U1RTS on PF0
+#define GPIO_PCTL_PF0_SSI1RX    0x00000002  // SSI1RX on PF0
+#define GPIO_PCTL_PF0_CAN0RX    0x00000003  // CAN0RX on PF0
+#define GPIO_PCTL_PF0_M1PWM4    0x00000005  // M1PWM4 on PF0
+#define GPIO_PCTL_PF0_PHA0      0x00000006  // PHA0 on PF0
+#define GPIO_PCTL_PF0_T0CCP0    0x00000007  // T0CCP0 on PF0
+#define GPIO_PCTL_PF0_NMI       0x00000008  // NMI on PF0
+#define GPIO_PCTL_PF0_C0O       0x00000009  // C0O on PF0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SSI_O_CR0 register.
+//
+//*****************************************************************************
+#define SSI_CR0_SCR_M           0x0000FF00  // SSI Serial Clock Rate
+#define SSI_CR0_SPH             0x00000080  // SSI Serial Clock Phase
+#define SSI_CR0_SPO             0x00000040  // SSI Serial Clock Polarity
+#define SSI_CR0_FRF_M           0x00000030  // SSI Frame Format Select
+#define SSI_CR0_FRF_MOTO        0x00000000  // Freescale SPI Frame Format
+#define SSI_CR0_FRF_TI          0x00000010  // Synchronous Serial Frame Format
+#define SSI_CR0_FRF_NMW         0x00000020  // MICROWIRE Frame Format
+#define SSI_CR0_DSS_M           0x0000000F  // SSI Data Size Select
+#define SSI_CR0_DSS_4           0x00000003  // 4-bit data
+#define SSI_CR0_DSS_5           0x00000004  // 5-bit data
+#define SSI_CR0_DSS_6           0x00000005  // 6-bit data
+#define SSI_CR0_DSS_7           0x00000006  // 7-bit data
+#define SSI_CR0_DSS_8           0x00000007  // 8-bit data
+#define SSI_CR0_DSS_9           0x00000008  // 9-bit data
+#define SSI_CR0_DSS_10          0x00000009  // 10-bit data
+#define SSI_CR0_DSS_11          0x0000000A  // 11-bit data
+#define SSI_CR0_DSS_12          0x0000000B  // 12-bit data
+#define SSI_CR0_DSS_13          0x0000000C  // 13-bit data
+#define SSI_CR0_DSS_14          0x0000000D  // 14-bit data
+#define SSI_CR0_DSS_15          0x0000000E  // 15-bit data
+#define SSI_CR0_DSS_16          0x0000000F  // 16-bit data
+#define SSI_CR0_SCR_S           8
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SSI_O_CR1 register.
+//
+//*****************************************************************************
+#define SSI_CR1_EOT             0x00000010  // End of Transmission
+#define SSI_CR1_MS              0x00000004  // SSI Master/Slave Select
+#define SSI_CR1_SSE             0x00000002  // SSI Synchronous Serial Port
+                                            // Enable
+#define SSI_CR1_LBM             0x00000001  // SSI Loopback Mode
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SSI_O_DR register.
+//
+//*****************************************************************************
+#define SSI_DR_DATA_M           0x0000FFFF  // SSI Receive/Transmit Data
+#define SSI_DR_DATA_S           0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SSI_O_SR register.
+//
+//*****************************************************************************
+#define SSI_SR_BSY              0x00000010  // SSI Busy Bit
+#define SSI_SR_RFF              0x00000008  // SSI Receive FIFO Full
+#define SSI_SR_RNE              0x00000004  // SSI Receive FIFO Not Empty
+#define SSI_SR_TNF              0x00000002  // SSI Transmit FIFO Not Full
+#define SSI_SR_TFE              0x00000001  // SSI Transmit FIFO Empty
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SSI_O_CPSR register.
+//
+//*****************************************************************************
+#define SSI_CPSR_CPSDVSR_M      0x000000FF  // SSI Clock Prescale Divisor
+#define SSI_CPSR_CPSDVSR_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SSI_O_IM register.
+//
+//*****************************************************************************
+#define SSI_IM_TXIM             0x00000008  // SSI Transmit FIFO Interrupt Mask
+#define SSI_IM_RXIM             0x00000004  // SSI Receive FIFO Interrupt Mask
+#define SSI_IM_RTIM             0x00000002  // SSI Receive Time-Out Interrupt
+                                            // Mask
+#define SSI_IM_RORIM            0x00000001  // SSI Receive Overrun Interrupt
+                                            // Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SSI_O_RIS register.
+//
+//*****************************************************************************
+#define SSI_RIS_TXRIS           0x00000008  // SSI Transmit FIFO Raw Interrupt
+                                            // Status
+#define SSI_RIS_RXRIS           0x00000004  // SSI Receive FIFO Raw Interrupt
+                                            // Status
+#define SSI_RIS_RTRIS           0x00000002  // SSI Receive Time-Out Raw
+                                            // Interrupt Status
+#define SSI_RIS_RORRIS          0x00000001  // SSI Receive Overrun Raw
+                                            // Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SSI_O_MIS register.
+//
+//*****************************************************************************
+#define SSI_MIS_TXMIS           0x00000008  // SSI Transmit FIFO Masked
+                                            // Interrupt Status
+#define SSI_MIS_RXMIS           0x00000004  // SSI Receive FIFO Masked
+                                            // Interrupt Status
+#define SSI_MIS_RTMIS           0x00000002  // SSI Receive Time-Out Masked
+                                            // Interrupt Status
+#define SSI_MIS_RORMIS          0x00000001  // SSI Receive Overrun Masked
+                                            // Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SSI_O_ICR register.
+//
+//*****************************************************************************
+#define SSI_ICR_RTIC            0x00000002  // SSI Receive Time-Out Interrupt
+                                            // Clear
+#define SSI_ICR_RORIC           0x00000001  // SSI Receive Overrun Interrupt
+                                            // Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SSI_O_DMACTL register.
+//
+//*****************************************************************************
+#define SSI_DMACTL_TXDMAE       0x00000002  // Transmit DMA Enable
+#define SSI_DMACTL_RXDMAE       0x00000001  // Receive DMA Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SSI_O_CC register.
+//
+//*****************************************************************************
+#define SSI_CC_CS_M             0x0000000F  // SSI Baud Clock Source
+#define SSI_CC_CS_SYSPLL        0x00000000  // System clock (based on clock
+                                            // source and divisor factor)
+#define SSI_CC_CS_PIOSC         0x00000005  // PIOSC
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_DR register.
+//
+//*****************************************************************************
+#define UART_DR_OE              0x00000800  // UART Overrun Error
+#define UART_DR_BE              0x00000400  // UART Break Error
+#define UART_DR_PE              0x00000200  // UART Parity Error
+#define UART_DR_FE              0x00000100  // UART Framing Error
+#define UART_DR_DATA_M          0x000000FF  // Data Transmitted or Received
+#define UART_DR_DATA_S          0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_RSR register.
+//
+//*****************************************************************************
+#define UART_RSR_OE             0x00000008  // UART Overrun Error
+#define UART_RSR_BE             0x00000004  // UART Break Error
+#define UART_RSR_PE             0x00000002  // UART Parity Error
+#define UART_RSR_FE             0x00000001  // UART Framing Error
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_ECR register.
+//
+//*****************************************************************************
+#define UART_ECR_DATA_M         0x000000FF  // Error Clear
+#define UART_ECR_DATA_S         0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_FR register.
+//
+//*****************************************************************************
+#define UART_FR_TXFE            0x00000080  // UART Transmit FIFO Empty
+#define UART_FR_RXFF            0x00000040  // UART Receive FIFO Full
+#define UART_FR_TXFF            0x00000020  // UART Transmit FIFO Full
+#define UART_FR_RXFE            0x00000010  // UART Receive FIFO Empty
+#define UART_FR_BUSY            0x00000008  // UART Busy
+#define UART_FR_CTS             0x00000001  // Clear To Send
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_ILPR register.
+//
+//*****************************************************************************
+#define UART_ILPR_ILPDVSR_M     0x000000FF  // IrDA Low-Power Divisor
+#define UART_ILPR_ILPDVSR_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_IBRD register.
+//
+//*****************************************************************************
+#define UART_IBRD_DIVINT_M      0x0000FFFF  // Integer Baud-Rate Divisor
+#define UART_IBRD_DIVINT_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_FBRD register.
+//
+//*****************************************************************************
+#define UART_FBRD_DIVFRAC_M     0x0000003F  // Fractional Baud-Rate Divisor
+#define UART_FBRD_DIVFRAC_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_LCRH register.
+//
+//*****************************************************************************
+#define UART_LCRH_SPS           0x00000080  // UART Stick Parity Select
+#define UART_LCRH_WLEN_M        0x00000060  // UART Word Length
+#define UART_LCRH_WLEN_5        0x00000000  // 5 bits (default)
+#define UART_LCRH_WLEN_6        0x00000020  // 6 bits
+#define UART_LCRH_WLEN_7        0x00000040  // 7 bits
+#define UART_LCRH_WLEN_8        0x00000060  // 8 bits
+#define UART_LCRH_FEN           0x00000010  // UART Enable FIFOs
+#define UART_LCRH_STP2          0x00000008  // UART Two Stop Bits Select
+#define UART_LCRH_EPS           0x00000004  // UART Even Parity Select
+#define UART_LCRH_PEN           0x00000002  // UART Parity Enable
+#define UART_LCRH_BRK           0x00000001  // UART Send Break
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_CTL register.
+//
+//*****************************************************************************
+#define UART_CTL_CTSEN          0x00008000  // Enable Clear To Send
+#define UART_CTL_RTSEN          0x00004000  // Enable Request to Send
+#define UART_CTL_RTS            0x00000800  // Request to Send
+#define UART_CTL_RXE            0x00000200  // UART Receive Enable
+#define UART_CTL_TXE            0x00000100  // UART Transmit Enable
+#define UART_CTL_LBE            0x00000080  // UART Loop Back Enable
+#define UART_CTL_HSE            0x00000020  // High-Speed Enable
+#define UART_CTL_EOT            0x00000010  // End of Transmission
+#define UART_CTL_SMART          0x00000008  // ISO 7816 Smart Card Support
+#define UART_CTL_SIRLP          0x00000004  // UART SIR Low-Power Mode
+#define UART_CTL_SIREN          0x00000002  // UART SIR Enable
+#define UART_CTL_UARTEN         0x00000001  // UART Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_IFLS register.
+//
+//*****************************************************************************
+#define UART_IFLS_RX_M          0x00000038  // UART Receive Interrupt FIFO
+                                            // Level Select
+#define UART_IFLS_RX1_8         0x00000000  // RX FIFO >= 1/8 full
+#define UART_IFLS_RX2_8         0x00000008  // RX FIFO >= 1/4 full
+#define UART_IFLS_RX4_8         0x00000010  // RX FIFO >= 1/2 full (default)
+#define UART_IFLS_RX6_8         0x00000018  // RX FIFO >= 3/4 full
+#define UART_IFLS_RX7_8         0x00000020  // RX FIFO >= 7/8 full
+#define UART_IFLS_TX_M          0x00000007  // UART Transmit Interrupt FIFO
+                                            // Level Select
+#define UART_IFLS_TX1_8         0x00000000  // TX FIFO <= 1/8 full
+#define UART_IFLS_TX2_8         0x00000001  // TX FIFO <= 1/4 full
+#define UART_IFLS_TX4_8         0x00000002  // TX FIFO <= 1/2 full (default)
+#define UART_IFLS_TX6_8         0x00000003  // TX FIFO <= 3/4 full
+#define UART_IFLS_TX7_8         0x00000004  // TX FIFO <= 7/8 full
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_IM register.
+//
+//*****************************************************************************
+#define UART_IM_9BITIM          0x00001000  // 9-Bit Mode Interrupt Mask
+#define UART_IM_OEIM            0x00000400  // UART Overrun Error Interrupt
+                                            // Mask
+#define UART_IM_BEIM            0x00000200  // UART Break Error Interrupt Mask
+#define UART_IM_PEIM            0x00000100  // UART Parity Error Interrupt Mask
+#define UART_IM_FEIM            0x00000080  // UART Framing Error Interrupt
+                                            // Mask
+#define UART_IM_RTIM            0x00000040  // UART Receive Time-Out Interrupt
+                                            // Mask
+#define UART_IM_TXIM            0x00000020  // UART Transmit Interrupt Mask
+#define UART_IM_RXIM            0x00000010  // UART Receive Interrupt Mask
+#define UART_IM_CTSMIM          0x00000002  // UART Clear to Send Modem
+                                            // Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_RIS register.
+//
+//*****************************************************************************
+#define UART_RIS_9BITRIS        0x00001000  // 9-Bit Mode Raw Interrupt Status
+#define UART_RIS_OERIS          0x00000400  // UART Overrun Error Raw Interrupt
+                                            // Status
+#define UART_RIS_BERIS          0x00000200  // UART Break Error Raw Interrupt
+                                            // Status
+#define UART_RIS_PERIS          0x00000100  // UART Parity Error Raw Interrupt
+                                            // Status
+#define UART_RIS_FERIS          0x00000080  // UART Framing Error Raw Interrupt
+                                            // Status
+#define UART_RIS_RTRIS          0x00000040  // UART Receive Time-Out Raw
+                                            // Interrupt Status
+#define UART_RIS_TXRIS          0x00000020  // UART Transmit Raw Interrupt
+                                            // Status
+#define UART_RIS_RXRIS          0x00000010  // UART Receive Raw Interrupt
+                                            // Status
+#define UART_RIS_CTSRIS         0x00000002  // UART Clear to Send Modem Raw
+                                            // Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_MIS register.
+//
+//*****************************************************************************
+#define UART_MIS_9BITMIS        0x00001000  // 9-Bit Mode Masked Interrupt
+                                            // Status
+#define UART_MIS_OEMIS          0x00000400  // UART Overrun Error Masked
+                                            // Interrupt Status
+#define UART_MIS_BEMIS          0x00000200  // UART Break Error Masked
+                                            // Interrupt Status
+#define UART_MIS_PEMIS          0x00000100  // UART Parity Error Masked
+                                            // Interrupt Status
+#define UART_MIS_FEMIS          0x00000080  // UART Framing Error Masked
+                                            // Interrupt Status
+#define UART_MIS_RTMIS          0x00000040  // UART Receive Time-Out Masked
+                                            // Interrupt Status
+#define UART_MIS_TXMIS          0x00000020  // UART Transmit Masked Interrupt
+                                            // Status
+#define UART_MIS_RXMIS          0x00000010  // UART Receive Masked Interrupt
+                                            // Status
+#define UART_MIS_CTSMIS         0x00000002  // UART Clear to Send Modem Masked
+                                            // Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_ICR register.
+//
+//*****************************************************************************
+#define UART_ICR_9BITIC         0x00001000  // 9-Bit Mode Interrupt Clear
+#define UART_ICR_OEIC           0x00000400  // Overrun Error Interrupt Clear
+#define UART_ICR_BEIC           0x00000200  // Break Error Interrupt Clear
+#define UART_ICR_PEIC           0x00000100  // Parity Error Interrupt Clear
+#define UART_ICR_FEIC           0x00000080  // Framing Error Interrupt Clear
+#define UART_ICR_RTIC           0x00000040  // Receive Time-Out Interrupt Clear
+#define UART_ICR_TXIC           0x00000020  // Transmit Interrupt Clear
+#define UART_ICR_RXIC           0x00000010  // Receive Interrupt Clear
+#define UART_ICR_CTSMIC         0x00000002  // UART Clear to Send Modem
+                                            // Interrupt Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_DMACTL register.
+//
+//*****************************************************************************
+#define UART_DMACTL_DMAERR      0x00000004  // DMA on Error
+#define UART_DMACTL_TXDMAE      0x00000002  // Transmit DMA Enable
+#define UART_DMACTL_RXDMAE      0x00000001  // Receive DMA Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_9BITADDR
+// register.
+//
+//*****************************************************************************
+#define UART_9BITADDR_9BITEN    0x00008000  // Enable 9-Bit Mode
+#define UART_9BITADDR_ADDR_M    0x000000FF  // Self Address for 9-Bit Mode
+#define UART_9BITADDR_ADDR_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_9BITAMASK
+// register.
+//
+//*****************************************************************************
+#define UART_9BITAMASK_MASK_M   0x000000FF  // Self Address Mask for 9-Bit Mode
+#define UART_9BITAMASK_MASK_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_PP register.
+//
+//*****************************************************************************
+#define UART_PP_NB              0x00000002  // 9-Bit Support
+#define UART_PP_SC              0x00000001  // Smart Card Support
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_CC register.
+//
+//*****************************************************************************
+#define UART_CC_CS_M            0x0000000F  // UART Baud Clock Source
+#define UART_CC_CS_SYSCLK       0x00000000  // System clock (based on clock
+                                            // source and divisor factor)
+#define UART_CC_CS_PIOSC        0x00000005  // PIOSC
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MSA register.
+//
+//*****************************************************************************
+#define I2C_MSA_SA_M            0x000000FE  // I2C Slave Address
+#define I2C_MSA_RS              0x00000001  // Receive not send
+#define I2C_MSA_SA_S            1
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MCS register.
+//
+//*****************************************************************************
+#define I2C_MCS_CLKTO           0x00000080  // Clock Timeout Error
+#define I2C_MCS_BUSBSY          0x00000040  // Bus Busy
+#define I2C_MCS_IDLE            0x00000020  // I2C Idle
+#define I2C_MCS_ARBLST          0x00000010  // Arbitration Lost
+#define I2C_MCS_HS              0x00000010  // High-Speed Enable
+#define I2C_MCS_ACK             0x00000008  // Data Acknowledge Enable
+#define I2C_MCS_DATACK          0x00000008  // Acknowledge Data
+#define I2C_MCS_ADRACK          0x00000004  // Acknowledge Address
+#define I2C_MCS_STOP            0x00000004  // Generate STOP
+#define I2C_MCS_ERROR           0x00000002  // Error
+#define I2C_MCS_START           0x00000002  // Generate START
+#define I2C_MCS_RUN             0x00000001  // I2C Master Enable
+#define I2C_MCS_BUSY            0x00000001  // I2C Busy
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MDR register.
+//
+//*****************************************************************************
+#define I2C_MDR_DATA_M          0x000000FF  // This byte contains the data
+                                            // transferred during a transaction
+#define I2C_MDR_DATA_S          0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MTPR register.
+//
+//*****************************************************************************
+#define I2C_MTPR_HS             0x00000080  // High-Speed Enable
+#define I2C_MTPR_TPR_M          0x0000007F  // Timer Period
+#define I2C_MTPR_TPR_S          0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MIMR register.
+//
+//*****************************************************************************
+#define I2C_MIMR_CLKIM          0x00000002  // Clock Timeout Interrupt Mask
+#define I2C_MIMR_IM             0x00000001  // Master Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MRIS register.
+//
+//*****************************************************************************
+#define I2C_MRIS_CLKRIS         0x00000002  // Clock Timeout Raw Interrupt
+                                            // Status
+#define I2C_MRIS_RIS            0x00000001  // Master Raw Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MMIS register.
+//
+//*****************************************************************************
+#define I2C_MMIS_CLKMIS         0x00000002  // Clock Timeout Masked Interrupt
+                                            // Status
+#define I2C_MMIS_MIS            0x00000001  // Masked Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MICR register.
+//
+//*****************************************************************************
+#define I2C_MICR_CLKIC          0x00000002  // Clock Timeout Interrupt Clear
+#define I2C_MICR_IC             0x00000001  // Master Interrupt Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MCR register.
+//
+//*****************************************************************************
+#define I2C_MCR_GFE             0x00000040  // I2C Glitch Filter Enable
+#define I2C_MCR_SFE             0x00000020  // I2C Slave Function Enable
+#define I2C_MCR_MFE             0x00000010  // I2C Master Function Enable
+#define I2C_MCR_LPBK            0x00000001  // I2C Loopback
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MCLKOCNT register.
+//
+//*****************************************************************************
+#define I2C_MCLKOCNT_CNTL_M     0x000000FF  // I2C Master Count
+#define I2C_MCLKOCNT_CNTL_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MBMON register.
+//
+//*****************************************************************************
+#define I2C_MBMON_SDA           0x00000002  // I2C SDA Status
+#define I2C_MBMON_SCL           0x00000001  // I2C SCL Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MCR2 register.
+//
+//*****************************************************************************
+#define I2C_MCR2_GFPW_M         0x00000070  // I2C Glitch Filter Pulse Width
+#define I2C_MCR2_GFPW_BYPASS    0x00000000  // Bypass
+#define I2C_MCR2_GFPW_1         0x00000010  // 1 clock
+#define I2C_MCR2_GFPW_2         0x00000020  // 2 clocks
+#define I2C_MCR2_GFPW_3         0x00000030  // 3 clocks
+#define I2C_MCR2_GFPW_4         0x00000040  // 4 clocks
+#define I2C_MCR2_GFPW_8         0x00000050  // 8 clocks
+#define I2C_MCR2_GFPW_16        0x00000060  // 16 clocks
+#define I2C_MCR2_GFPW_31        0x00000070  // 31 clocks
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_SOAR register.
+//
+//*****************************************************************************
+#define I2C_SOAR_OAR_M          0x0000007F  // I2C Slave Own Address
+#define I2C_SOAR_OAR_S          0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_SCSR register.
+//
+//*****************************************************************************
+#define I2C_SCSR_OAR2SEL        0x00000008  // OAR2 Address Matched
+#define I2C_SCSR_FBR            0x00000004  // First Byte Received
+#define I2C_SCSR_TREQ           0x00000002  // Transmit Request
+#define I2C_SCSR_DA             0x00000001  // Device Active
+#define I2C_SCSR_RREQ           0x00000001  // Receive Request
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_SDR register.
+//
+//*****************************************************************************
+#define I2C_SDR_DATA_M          0x000000FF  // Data for Transfer
+#define I2C_SDR_DATA_S          0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_SIMR register.
+//
+//*****************************************************************************
+#define I2C_SIMR_STOPIM         0x00000004  // Stop Condition Interrupt Mask
+#define I2C_SIMR_STARTIM        0x00000002  // Start Condition Interrupt Mask
+#define I2C_SIMR_DATAIM         0x00000001  // Data Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_SRIS register.
+//
+//*****************************************************************************
+#define I2C_SRIS_STOPRIS        0x00000004  // Stop Condition Raw Interrupt
+                                            // Status
+#define I2C_SRIS_STARTRIS       0x00000002  // Start Condition Raw Interrupt
+                                            // Status
+#define I2C_SRIS_DATARIS        0x00000001  // Data Raw Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_SMIS register.
+//
+//*****************************************************************************
+#define I2C_SMIS_STOPMIS        0x00000004  // Stop Condition Masked Interrupt
+                                            // Status
+#define I2C_SMIS_STARTMIS       0x00000002  // Start Condition Masked Interrupt
+                                            // Status
+#define I2C_SMIS_DATAMIS        0x00000001  // Data Masked Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_SICR register.
+//
+//*****************************************************************************
+#define I2C_SICR_STOPIC         0x00000004  // Stop Condition Interrupt Clear
+#define I2C_SICR_STARTIC        0x00000002  // Start Condition Interrupt Clear
+#define I2C_SICR_DATAIC         0x00000001  // Data Interrupt Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_SOAR2 register.
+//
+//*****************************************************************************
+#define I2C_SOAR2_OAR2EN        0x00000080  // I2C Slave Own Address 2 Enable
+#define I2C_SOAR2_OAR2_M        0x0000007F  // I2C Slave Own Address 2
+#define I2C_SOAR2_OAR2_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_SACKCTL register.
+//
+//*****************************************************************************
+#define I2C_SACKCTL_ACKOVAL     0x00000002  // I2C Slave ACK Override Value
+#define I2C_SACKCTL_ACKOEN      0x00000001  // I2C Slave ACK Override Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_PP register.
+//
+//*****************************************************************************
+#define I2C_PP_HS               0x00000001  // High-Speed Capable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_PC register.
+//
+//*****************************************************************************
+#define I2C_PC_HS               0x00000001  // High-Speed Capable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_CTL register.
+//
+//*****************************************************************************
+#define PWM_CTL_GLOBALSYNC3     0x00000008  // Update PWM Generator 3
+#define PWM_CTL_GLOBALSYNC2     0x00000004  // Update PWM Generator 2
+#define PWM_CTL_GLOBALSYNC1     0x00000002  // Update PWM Generator 1
+#define PWM_CTL_GLOBALSYNC0     0x00000001  // Update PWM Generator 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_SYNC register.
+//
+//*****************************************************************************
+#define PWM_SYNC_SYNC3          0x00000008  // Reset Generator 3 Counter
+#define PWM_SYNC_SYNC2          0x00000004  // Reset Generator 2 Counter
+#define PWM_SYNC_SYNC1          0x00000002  // Reset Generator 1 Counter
+#define PWM_SYNC_SYNC0          0x00000001  // Reset Generator 0 Counter
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_ENABLE register.
+//
+//*****************************************************************************
+#define PWM_ENABLE_PWM7EN       0x00000080  // MnPWM7 Output Enable
+#define PWM_ENABLE_PWM6EN       0x00000040  // MnPWM6 Output Enable
+#define PWM_ENABLE_PWM5EN       0x00000020  // MnPWM5 Output Enable
+#define PWM_ENABLE_PWM4EN       0x00000010  // MnPWM4 Output Enable
+#define PWM_ENABLE_PWM3EN       0x00000008  // MnPWM3 Output Enable
+#define PWM_ENABLE_PWM2EN       0x00000004  // MnPWM2 Output Enable
+#define PWM_ENABLE_PWM1EN       0x00000002  // MnPWM1 Output Enable
+#define PWM_ENABLE_PWM0EN       0x00000001  // MnPWM0 Output Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_INVERT register.
+//
+//*****************************************************************************
+#define PWM_INVERT_PWM7INV      0x00000080  // Invert MnPWM7 Signal
+#define PWM_INVERT_PWM6INV      0x00000040  // Invert MnPWM6 Signal
+#define PWM_INVERT_PWM5INV      0x00000020  // Invert MnPWM5 Signal
+#define PWM_INVERT_PWM4INV      0x00000010  // Invert MnPWM4 Signal
+#define PWM_INVERT_PWM3INV      0x00000008  // Invert MnPWM3 Signal
+#define PWM_INVERT_PWM2INV      0x00000004  // Invert MnPWM2 Signal
+#define PWM_INVERT_PWM1INV      0x00000002  // Invert MnPWM1 Signal
+#define PWM_INVERT_PWM0INV      0x00000001  // Invert MnPWM0 Signal
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_FAULT register.
+//
+//*****************************************************************************
+#define PWM_FAULT_FAULT7        0x00000080  // MnPWM7 Fault
+#define PWM_FAULT_FAULT6        0x00000040  // MnPWM6 Fault
+#define PWM_FAULT_FAULT5        0x00000020  // MnPWM5 Fault
+#define PWM_FAULT_FAULT4        0x00000010  // MnPWM4 Fault
+#define PWM_FAULT_FAULT3        0x00000008  // MnPWM3 Fault
+#define PWM_FAULT_FAULT2        0x00000004  // MnPWM2 Fault
+#define PWM_FAULT_FAULT1        0x00000002  // MnPWM1 Fault
+#define PWM_FAULT_FAULT0        0x00000001  // MnPWM0 Fault
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_INTEN register.
+//
+//*****************************************************************************
+#define PWM_INTEN_INTFAULT1     0x00020000  // Interrupt Fault 1
+#define PWM_INTEN_INTFAULT0     0x00010000  // Interrupt Fault 0
+#define PWM_INTEN_INTPWM3       0x00000008  // PWM3 Interrupt Enable
+#define PWM_INTEN_INTPWM2       0x00000004  // PWM2 Interrupt Enable
+#define PWM_INTEN_INTPWM1       0x00000002  // PWM1 Interrupt Enable
+#define PWM_INTEN_INTPWM0       0x00000001  // PWM0 Interrupt Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_RIS register.
+//
+//*****************************************************************************
+#define PWM_RIS_INTFAULT1       0x00020000  // Interrupt Fault PWM 1
+#define PWM_RIS_INTFAULT0       0x00010000  // Interrupt Fault PWM 0
+#define PWM_RIS_INTPWM3         0x00000008  // PWM3 Interrupt Asserted
+#define PWM_RIS_INTPWM2         0x00000004  // PWM2 Interrupt Asserted
+#define PWM_RIS_INTPWM1         0x00000002  // PWM1 Interrupt Asserted
+#define PWM_RIS_INTPWM0         0x00000001  // PWM0 Interrupt Asserted
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_ISC register.
+//
+//*****************************************************************************
+#define PWM_ISC_INTFAULT1       0x00020000  // FAULT1 Interrupt Asserted
+#define PWM_ISC_INTFAULT0       0x00010000  // FAULT0 Interrupt Asserted
+#define PWM_ISC_INTPWM3         0x00000008  // PWM3 Interrupt Status
+#define PWM_ISC_INTPWM2         0x00000004  // PWM2 Interrupt Status
+#define PWM_ISC_INTPWM1         0x00000002  // PWM1 Interrupt Status
+#define PWM_ISC_INTPWM0         0x00000001  // PWM0 Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_STATUS register.
+//
+//*****************************************************************************
+#define PWM_STATUS_FAULT1       0x00000002  // Generator 1 Fault Status
+#define PWM_STATUS_FAULT0       0x00000001  // Generator 0 Fault Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_FAULTVAL register.
+//
+//*****************************************************************************
+#define PWM_FAULTVAL_PWM7       0x00000080  // MnPWM7 Fault Value
+#define PWM_FAULTVAL_PWM6       0x00000040  // MnPWM6 Fault Value
+#define PWM_FAULTVAL_PWM5       0x00000020  // MnPWM5 Fault Value
+#define PWM_FAULTVAL_PWM4       0x00000010  // MnPWM4 Fault Value
+#define PWM_FAULTVAL_PWM3       0x00000008  // MnPWM3 Fault Value
+#define PWM_FAULTVAL_PWM2       0x00000004  // MnPWM2 Fault Value
+#define PWM_FAULTVAL_PWM1       0x00000002  // MnPWM1 Fault Value
+#define PWM_FAULTVAL_PWM0       0x00000001  // MnPWM0 Fault Value
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_ENUPD register.
+//
+//*****************************************************************************
+#define PWM_ENUPD_ENUPD7_M      0x0000C000  // MnPWM7 Enable Update Mode
+#define PWM_ENUPD_ENUPD7_IMM    0x00000000  // Immediate
+#define PWM_ENUPD_ENUPD7_LSYNC  0x00008000  // Locally Synchronized
+#define PWM_ENUPD_ENUPD7_GSYNC  0x0000C000  // Globally Synchronized
+#define PWM_ENUPD_ENUPD6_M      0x00003000  // MnPWM6 Enable Update Mode
+#define PWM_ENUPD_ENUPD6_IMM    0x00000000  // Immediate
+#define PWM_ENUPD_ENUPD6_LSYNC  0x00002000  // Locally Synchronized
+#define PWM_ENUPD_ENUPD6_GSYNC  0x00003000  // Globally Synchronized
+#define PWM_ENUPD_ENUPD5_M      0x00000C00  // MnPWM5 Enable Update Mode
+#define PWM_ENUPD_ENUPD5_IMM    0x00000000  // Immediate
+#define PWM_ENUPD_ENUPD5_LSYNC  0x00000800  // Locally Synchronized
+#define PWM_ENUPD_ENUPD5_GSYNC  0x00000C00  // Globally Synchronized
+#define PWM_ENUPD_ENUPD4_M      0x00000300  // MnPWM4 Enable Update Mode
+#define PWM_ENUPD_ENUPD4_IMM    0x00000000  // Immediate
+#define PWM_ENUPD_ENUPD4_LSYNC  0x00000200  // Locally Synchronized
+#define PWM_ENUPD_ENUPD4_GSYNC  0x00000300  // Globally Synchronized
+#define PWM_ENUPD_ENUPD3_M      0x000000C0  // MnPWM3 Enable Update Mode
+#define PWM_ENUPD_ENUPD3_IMM    0x00000000  // Immediate
+#define PWM_ENUPD_ENUPD3_LSYNC  0x00000080  // Locally Synchronized
+#define PWM_ENUPD_ENUPD3_GSYNC  0x000000C0  // Globally Synchronized
+#define PWM_ENUPD_ENUPD2_M      0x00000030  // MnPWM2 Enable Update Mode
+#define PWM_ENUPD_ENUPD2_IMM    0x00000000  // Immediate
+#define PWM_ENUPD_ENUPD2_LSYNC  0x00000020  // Locally Synchronized
+#define PWM_ENUPD_ENUPD2_GSYNC  0x00000030  // Globally Synchronized
+#define PWM_ENUPD_ENUPD1_M      0x0000000C  // MnPWM1 Enable Update Mode
+#define PWM_ENUPD_ENUPD1_IMM    0x00000000  // Immediate
+#define PWM_ENUPD_ENUPD1_LSYNC  0x00000008  // Locally Synchronized
+#define PWM_ENUPD_ENUPD1_GSYNC  0x0000000C  // Globally Synchronized
+#define PWM_ENUPD_ENUPD0_M      0x00000003  // MnPWM0 Enable Update Mode
+#define PWM_ENUPD_ENUPD0_IMM    0x00000000  // Immediate
+#define PWM_ENUPD_ENUPD0_LSYNC  0x00000002  // Locally Synchronized
+#define PWM_ENUPD_ENUPD0_GSYNC  0x00000003  // Globally Synchronized
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_CTL register.
+//
+//*****************************************************************************
+#define PWM_0_CTL_LATCH         0x00040000  // Latch Fault Input
+#define PWM_0_CTL_MINFLTPER     0x00020000  // Minimum Fault Period
+#define PWM_0_CTL_FLTSRC        0x00010000  // Fault Condition Source
+#define PWM_0_CTL_DBFALLUPD_M   0x0000C000  // PWMnDBFALL Update Mode
+#define PWM_0_CTL_DBFALLUPD_I   0x00000000  // Immediate
+#define PWM_0_CTL_DBFALLUPD_LS  0x00008000  // Locally Synchronized
+#define PWM_0_CTL_DBFALLUPD_GS  0x0000C000  // Globally Synchronized
+#define PWM_0_CTL_DBRISEUPD_M   0x00003000  // PWMnDBRISE Update Mode
+#define PWM_0_CTL_DBRISEUPD_I   0x00000000  // Immediate
+#define PWM_0_CTL_DBRISEUPD_LS  0x00002000  // Locally Synchronized
+#define PWM_0_CTL_DBRISEUPD_GS  0x00003000  // Globally Synchronized
+#define PWM_0_CTL_DBCTLUPD_M    0x00000C00  // PWMnDBCTL Update Mode
+#define PWM_0_CTL_DBCTLUPD_I    0x00000000  // Immediate
+#define PWM_0_CTL_DBCTLUPD_LS   0x00000800  // Locally Synchronized
+#define PWM_0_CTL_DBCTLUPD_GS   0x00000C00  // Globally Synchronized
+#define PWM_0_CTL_GENBUPD_M     0x00000300  // PWMnGENB Update Mode
+#define PWM_0_CTL_GENBUPD_I     0x00000000  // Immediate
+#define PWM_0_CTL_GENBUPD_LS    0x00000200  // Locally Synchronized
+#define PWM_0_CTL_GENBUPD_GS    0x00000300  // Globally Synchronized
+#define PWM_0_CTL_GENAUPD_M     0x000000C0  // PWMnGENA Update Mode
+#define PWM_0_CTL_GENAUPD_I     0x00000000  // Immediate
+#define PWM_0_CTL_GENAUPD_LS    0x00000080  // Locally Synchronized
+#define PWM_0_CTL_GENAUPD_GS    0x000000C0  // Globally Synchronized
+#define PWM_0_CTL_CMPBUPD       0x00000020  // Comparator B Update Mode
+#define PWM_0_CTL_CMPAUPD       0x00000010  // Comparator A Update Mode
+#define PWM_0_CTL_LOADUPD       0x00000008  // Load Register Update Mode
+#define PWM_0_CTL_DEBUG         0x00000004  // Debug Mode
+#define PWM_0_CTL_MODE          0x00000002  // Counter Mode
+#define PWM_0_CTL_ENABLE        0x00000001  // PWM Block Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_INTEN register.
+//
+//*****************************************************************************
+#define PWM_0_INTEN_TRCMPBD     0x00002000  // Trigger for Counter=PWMnCMPB
+                                            // Down
+#define PWM_0_INTEN_TRCMPBU     0x00001000  // Trigger for Counter=PWMnCMPB Up
+#define PWM_0_INTEN_TRCMPAD     0x00000800  // Trigger for Counter=PWMnCMPA
+                                            // Down
+#define PWM_0_INTEN_TRCMPAU     0x00000400  // Trigger for Counter=PWMnCMPA Up
+#define PWM_0_INTEN_TRCNTLOAD   0x00000200  // Trigger for Counter=PWMnLOAD
+#define PWM_0_INTEN_TRCNTZERO   0x00000100  // Trigger for Counter=0
+#define PWM_0_INTEN_INTCMPBD    0x00000020  // Interrupt for Counter=PWMnCMPB
+                                            // Down
+#define PWM_0_INTEN_INTCMPBU    0x00000010  // Interrupt for Counter=PWMnCMPB
+                                            // Up
+#define PWM_0_INTEN_INTCMPAD    0x00000008  // Interrupt for Counter=PWMnCMPA
+                                            // Down
+#define PWM_0_INTEN_INTCMPAU    0x00000004  // Interrupt for Counter=PWMnCMPA
+                                            // Up
+#define PWM_0_INTEN_INTCNTLOAD  0x00000002  // Interrupt for Counter=PWMnLOAD
+#define PWM_0_INTEN_INTCNTZERO  0x00000001  // Interrupt for Counter=0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_RIS register.
+//
+//*****************************************************************************
+#define PWM_0_RIS_INTCMPBD      0x00000020  // Comparator B Down Interrupt
+                                            // Status
+#define PWM_0_RIS_INTCMPBU      0x00000010  // Comparator B Up Interrupt Status
+#define PWM_0_RIS_INTCMPAD      0x00000008  // Comparator A Down Interrupt
+                                            // Status
+#define PWM_0_RIS_INTCMPAU      0x00000004  // Comparator A Up Interrupt Status
+#define PWM_0_RIS_INTCNTLOAD    0x00000002  // Counter=Load Interrupt Status
+#define PWM_0_RIS_INTCNTZERO    0x00000001  // Counter=0 Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_ISC register.
+//
+//*****************************************************************************
+#define PWM_0_ISC_INTCMPBD      0x00000020  // Comparator B Down Interrupt
+#define PWM_0_ISC_INTCMPBU      0x00000010  // Comparator B Up Interrupt
+#define PWM_0_ISC_INTCMPAD      0x00000008  // Comparator A Down Interrupt
+#define PWM_0_ISC_INTCMPAU      0x00000004  // Comparator A Up Interrupt
+#define PWM_0_ISC_INTCNTLOAD    0x00000002  // Counter=Load Interrupt
+#define PWM_0_ISC_INTCNTZERO    0x00000001  // Counter=0 Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_LOAD register.
+//
+//*****************************************************************************
+#define PWM_0_LOAD_M            0x0000FFFF  // Counter Load Value
+#define PWM_0_LOAD_S            0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_COUNT register.
+//
+//*****************************************************************************
+#define PWM_0_COUNT_M           0x0000FFFF  // Counter Value
+#define PWM_0_COUNT_S           0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_CMPA register.
+//
+//*****************************************************************************
+#define PWM_0_CMPA_M            0x0000FFFF  // Comparator A Value
+#define PWM_0_CMPA_S            0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_CMPB register.
+//
+//*****************************************************************************
+#define PWM_0_CMPB_M            0x0000FFFF  // Comparator B Value
+#define PWM_0_CMPB_S            0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_GENA register.
+//
+//*****************************************************************************
+#define PWM_0_GENA_ACTCMPBD_M   0x00000C00  // Action for Comparator B Down
+#define PWM_0_GENA_ACTCMPBD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_0_GENA_ACTCMPBD_INV 0x00000400  // Invert pwmA
+#define PWM_0_GENA_ACTCMPBD_ZERO                                              \
+                                0x00000800  // Drive pwmA Low
+#define PWM_0_GENA_ACTCMPBD_ONE 0x00000C00  // Drive pwmA High
+#define PWM_0_GENA_ACTCMPBU_M   0x00000300  // Action for Comparator B Up
+#define PWM_0_GENA_ACTCMPBU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_0_GENA_ACTCMPBU_INV 0x00000100  // Invert pwmA
+#define PWM_0_GENA_ACTCMPBU_ZERO                                              \
+                                0x00000200  // Drive pwmA Low
+#define PWM_0_GENA_ACTCMPBU_ONE 0x00000300  // Drive pwmA High
+#define PWM_0_GENA_ACTCMPAD_M   0x000000C0  // Action for Comparator A Down
+#define PWM_0_GENA_ACTCMPAD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_0_GENA_ACTCMPAD_INV 0x00000040  // Invert pwmA
+#define PWM_0_GENA_ACTCMPAD_ZERO                                              \
+                                0x00000080  // Drive pwmA Low
+#define PWM_0_GENA_ACTCMPAD_ONE 0x000000C0  // Drive pwmA High
+#define PWM_0_GENA_ACTCMPAU_M   0x00000030  // Action for Comparator A Up
+#define PWM_0_GENA_ACTCMPAU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_0_GENA_ACTCMPAU_INV 0x00000010  // Invert pwmA
+#define PWM_0_GENA_ACTCMPAU_ZERO                                              \
+                                0x00000020  // Drive pwmA Low
+#define PWM_0_GENA_ACTCMPAU_ONE 0x00000030  // Drive pwmA High
+#define PWM_0_GENA_ACTLOAD_M    0x0000000C  // Action for Counter=LOAD
+#define PWM_0_GENA_ACTLOAD_NONE 0x00000000  // Do nothing
+#define PWM_0_GENA_ACTLOAD_INV  0x00000004  // Invert pwmA
+#define PWM_0_GENA_ACTLOAD_ZERO 0x00000008  // Drive pwmA Low
+#define PWM_0_GENA_ACTLOAD_ONE  0x0000000C  // Drive pwmA High
+#define PWM_0_GENA_ACTZERO_M    0x00000003  // Action for Counter=0
+#define PWM_0_GENA_ACTZERO_NONE 0x00000000  // Do nothing
+#define PWM_0_GENA_ACTZERO_INV  0x00000001  // Invert pwmA
+#define PWM_0_GENA_ACTZERO_ZERO 0x00000002  // Drive pwmA Low
+#define PWM_0_GENA_ACTZERO_ONE  0x00000003  // Drive pwmA High
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_GENB register.
+//
+//*****************************************************************************
+#define PWM_0_GENB_ACTCMPBD_M   0x00000C00  // Action for Comparator B Down
+#define PWM_0_GENB_ACTCMPBD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_0_GENB_ACTCMPBD_INV 0x00000400  // Invert pwmB
+#define PWM_0_GENB_ACTCMPBD_ZERO                                              \
+                                0x00000800  // Drive pwmB Low
+#define PWM_0_GENB_ACTCMPBD_ONE 0x00000C00  // Drive pwmB High
+#define PWM_0_GENB_ACTCMPBU_M   0x00000300  // Action for Comparator B Up
+#define PWM_0_GENB_ACTCMPBU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_0_GENB_ACTCMPBU_INV 0x00000100  // Invert pwmB
+#define PWM_0_GENB_ACTCMPBU_ZERO                                              \
+                                0x00000200  // Drive pwmB Low
+#define PWM_0_GENB_ACTCMPBU_ONE 0x00000300  // Drive pwmB High
+#define PWM_0_GENB_ACTCMPAD_M   0x000000C0  // Action for Comparator A Down
+#define PWM_0_GENB_ACTCMPAD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_0_GENB_ACTCMPAD_INV 0x00000040  // Invert pwmB
+#define PWM_0_GENB_ACTCMPAD_ZERO                                              \
+                                0x00000080  // Drive pwmB Low
+#define PWM_0_GENB_ACTCMPAD_ONE 0x000000C0  // Drive pwmB High
+#define PWM_0_GENB_ACTCMPAU_M   0x00000030  // Action for Comparator A Up
+#define PWM_0_GENB_ACTCMPAU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_0_GENB_ACTCMPAU_INV 0x00000010  // Invert pwmB
+#define PWM_0_GENB_ACTCMPAU_ZERO                                              \
+                                0x00000020  // Drive pwmB Low
+#define PWM_0_GENB_ACTCMPAU_ONE 0x00000030  // Drive pwmB High
+#define PWM_0_GENB_ACTLOAD_M    0x0000000C  // Action for Counter=LOAD
+#define PWM_0_GENB_ACTLOAD_NONE 0x00000000  // Do nothing
+#define PWM_0_GENB_ACTLOAD_INV  0x00000004  // Invert pwmB
+#define PWM_0_GENB_ACTLOAD_ZERO 0x00000008  // Drive pwmB Low
+#define PWM_0_GENB_ACTLOAD_ONE  0x0000000C  // Drive pwmB High
+#define PWM_0_GENB_ACTZERO_M    0x00000003  // Action for Counter=0
+#define PWM_0_GENB_ACTZERO_NONE 0x00000000  // Do nothing
+#define PWM_0_GENB_ACTZERO_INV  0x00000001  // Invert pwmB
+#define PWM_0_GENB_ACTZERO_ZERO 0x00000002  // Drive pwmB Low
+#define PWM_0_GENB_ACTZERO_ONE  0x00000003  // Drive pwmB High
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_DBCTL register.
+//
+//*****************************************************************************
+#define PWM_0_DBCTL_ENABLE      0x00000001  // Dead-Band Generator Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_DBRISE register.
+//
+//*****************************************************************************
+#define PWM_0_DBRISE_DELAY_M    0x00000FFF  // Dead-Band Rise Delay
+#define PWM_0_DBRISE_DELAY_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_DBFALL register.
+//
+//*****************************************************************************
+#define PWM_0_DBFALL_DELAY_M    0x00000FFF  // Dead-Band Fall Delay
+#define PWM_0_DBFALL_DELAY_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_FLTSRC0
+// register.
+//
+//*****************************************************************************
+#define PWM_0_FLTSRC0_FAULT1    0x00000002  // Fault1 Input
+#define PWM_0_FLTSRC0_FAULT0    0x00000001  // Fault0 Input
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_FLTSRC1
+// register.
+//
+//*****************************************************************************
+#define PWM_0_FLTSRC1_DCMP7     0x00000080  // Digital Comparator 7
+#define PWM_0_FLTSRC1_DCMP6     0x00000040  // Digital Comparator 6
+#define PWM_0_FLTSRC1_DCMP5     0x00000020  // Digital Comparator 5
+#define PWM_0_FLTSRC1_DCMP4     0x00000010  // Digital Comparator 4
+#define PWM_0_FLTSRC1_DCMP3     0x00000008  // Digital Comparator 3
+#define PWM_0_FLTSRC1_DCMP2     0x00000004  // Digital Comparator 2
+#define PWM_0_FLTSRC1_DCMP1     0x00000002  // Digital Comparator 1
+#define PWM_0_FLTSRC1_DCMP0     0x00000001  // Digital Comparator 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_MINFLTPER
+// register.
+//
+//*****************************************************************************
+#define PWM_0_MINFLTPER_M       0x0000FFFF  // Minimum Fault Period
+#define PWM_0_MINFLTPER_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_CTL register.
+//
+//*****************************************************************************
+#define PWM_1_CTL_LATCH         0x00040000  // Latch Fault Input
+#define PWM_1_CTL_MINFLTPER     0x00020000  // Minimum Fault Period
+#define PWM_1_CTL_FLTSRC        0x00010000  // Fault Condition Source
+#define PWM_1_CTL_DBFALLUPD_M   0x0000C000  // PWMnDBFALL Update Mode
+#define PWM_1_CTL_DBFALLUPD_I   0x00000000  // Immediate
+#define PWM_1_CTL_DBFALLUPD_LS  0x00008000  // Locally Synchronized
+#define PWM_1_CTL_DBFALLUPD_GS  0x0000C000  // Globally Synchronized
+#define PWM_1_CTL_DBRISEUPD_M   0x00003000  // PWMnDBRISE Update Mode
+#define PWM_1_CTL_DBRISEUPD_I   0x00000000  // Immediate
+#define PWM_1_CTL_DBRISEUPD_LS  0x00002000  // Locally Synchronized
+#define PWM_1_CTL_DBRISEUPD_GS  0x00003000  // Globally Synchronized
+#define PWM_1_CTL_DBCTLUPD_M    0x00000C00  // PWMnDBCTL Update Mode
+#define PWM_1_CTL_DBCTLUPD_I    0x00000000  // Immediate
+#define PWM_1_CTL_DBCTLUPD_LS   0x00000800  // Locally Synchronized
+#define PWM_1_CTL_DBCTLUPD_GS   0x00000C00  // Globally Synchronized
+#define PWM_1_CTL_GENBUPD_M     0x00000300  // PWMnGENB Update Mode
+#define PWM_1_CTL_GENBUPD_I     0x00000000  // Immediate
+#define PWM_1_CTL_GENBUPD_LS    0x00000200  // Locally Synchronized
+#define PWM_1_CTL_GENBUPD_GS    0x00000300  // Globally Synchronized
+#define PWM_1_CTL_GENAUPD_M     0x000000C0  // PWMnGENA Update Mode
+#define PWM_1_CTL_GENAUPD_I     0x00000000  // Immediate
+#define PWM_1_CTL_GENAUPD_LS    0x00000080  // Locally Synchronized
+#define PWM_1_CTL_GENAUPD_GS    0x000000C0  // Globally Synchronized
+#define PWM_1_CTL_CMPBUPD       0x00000020  // Comparator B Update Mode
+#define PWM_1_CTL_CMPAUPD       0x00000010  // Comparator A Update Mode
+#define PWM_1_CTL_LOADUPD       0x00000008  // Load Register Update Mode
+#define PWM_1_CTL_DEBUG         0x00000004  // Debug Mode
+#define PWM_1_CTL_MODE          0x00000002  // Counter Mode
+#define PWM_1_CTL_ENABLE        0x00000001  // PWM Block Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_INTEN register.
+//
+//*****************************************************************************
+#define PWM_1_INTEN_TRCMPBD     0x00002000  // Trigger for Counter=PWMnCMPB
+                                            // Down
+#define PWM_1_INTEN_TRCMPBU     0x00001000  // Trigger for Counter=PWMnCMPB Up
+#define PWM_1_INTEN_TRCMPAD     0x00000800  // Trigger for Counter=PWMnCMPA
+                                            // Down
+#define PWM_1_INTEN_TRCMPAU     0x00000400  // Trigger for Counter=PWMnCMPA Up
+#define PWM_1_INTEN_TRCNTLOAD   0x00000200  // Trigger for Counter=PWMnLOAD
+#define PWM_1_INTEN_TRCNTZERO   0x00000100  // Trigger for Counter=0
+#define PWM_1_INTEN_INTCMPBD    0x00000020  // Interrupt for Counter=PWMnCMPB
+                                            // Down
+#define PWM_1_INTEN_INTCMPBU    0x00000010  // Interrupt for Counter=PWMnCMPB
+                                            // Up
+#define PWM_1_INTEN_INTCMPAD    0x00000008  // Interrupt for Counter=PWMnCMPA
+                                            // Down
+#define PWM_1_INTEN_INTCMPAU    0x00000004  // Interrupt for Counter=PWMnCMPA
+                                            // Up
+#define PWM_1_INTEN_INTCNTLOAD  0x00000002  // Interrupt for Counter=PWMnLOAD
+#define PWM_1_INTEN_INTCNTZERO  0x00000001  // Interrupt for Counter=0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_RIS register.
+//
+//*****************************************************************************
+#define PWM_1_RIS_INTCMPBD      0x00000020  // Comparator B Down Interrupt
+                                            // Status
+#define PWM_1_RIS_INTCMPBU      0x00000010  // Comparator B Up Interrupt Status
+#define PWM_1_RIS_INTCMPAD      0x00000008  // Comparator A Down Interrupt
+                                            // Status
+#define PWM_1_RIS_INTCMPAU      0x00000004  // Comparator A Up Interrupt Status
+#define PWM_1_RIS_INTCNTLOAD    0x00000002  // Counter=Load Interrupt Status
+#define PWM_1_RIS_INTCNTZERO    0x00000001  // Counter=0 Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_ISC register.
+//
+//*****************************************************************************
+#define PWM_1_ISC_INTCMPBD      0x00000020  // Comparator B Down Interrupt
+#define PWM_1_ISC_INTCMPBU      0x00000010  // Comparator B Up Interrupt
+#define PWM_1_ISC_INTCMPAD      0x00000008  // Comparator A Down Interrupt
+#define PWM_1_ISC_INTCMPAU      0x00000004  // Comparator A Up Interrupt
+#define PWM_1_ISC_INTCNTLOAD    0x00000002  // Counter=Load Interrupt
+#define PWM_1_ISC_INTCNTZERO    0x00000001  // Counter=0 Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_LOAD register.
+//
+//*****************************************************************************
+#define PWM_1_LOAD_LOAD_M       0x0000FFFF  // Counter Load Value
+#define PWM_1_LOAD_LOAD_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_COUNT register.
+//
+//*****************************************************************************
+#define PWM_1_COUNT_COUNT_M     0x0000FFFF  // Counter Value
+#define PWM_1_COUNT_COUNT_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_CMPA register.
+//
+//*****************************************************************************
+#define PWM_1_CMPA_COMPA_M      0x0000FFFF  // Comparator A Value
+#define PWM_1_CMPA_COMPA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_CMPB register.
+//
+//*****************************************************************************
+#define PWM_1_CMPB_COMPB_M      0x0000FFFF  // Comparator B Value
+#define PWM_1_CMPB_COMPB_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_GENA register.
+//
+//*****************************************************************************
+#define PWM_1_GENA_ACTCMPBD_M   0x00000C00  // Action for Comparator B Down
+#define PWM_1_GENA_ACTCMPBD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_1_GENA_ACTCMPBD_INV 0x00000400  // Invert pwmA
+#define PWM_1_GENA_ACTCMPBD_ZERO                                              \
+                                0x00000800  // Drive pwmA Low
+#define PWM_1_GENA_ACTCMPBD_ONE 0x00000C00  // Drive pwmA High
+#define PWM_1_GENA_ACTCMPBU_M   0x00000300  // Action for Comparator B Up
+#define PWM_1_GENA_ACTCMPBU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_1_GENA_ACTCMPBU_INV 0x00000100  // Invert pwmA
+#define PWM_1_GENA_ACTCMPBU_ZERO                                              \
+                                0x00000200  // Drive pwmA Low
+#define PWM_1_GENA_ACTCMPBU_ONE 0x00000300  // Drive pwmA High
+#define PWM_1_GENA_ACTCMPAD_M   0x000000C0  // Action for Comparator A Down
+#define PWM_1_GENA_ACTCMPAD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_1_GENA_ACTCMPAD_INV 0x00000040  // Invert pwmA
+#define PWM_1_GENA_ACTCMPAD_ZERO                                              \
+                                0x00000080  // Drive pwmA Low
+#define PWM_1_GENA_ACTCMPAD_ONE 0x000000C0  // Drive pwmA High
+#define PWM_1_GENA_ACTCMPAU_M   0x00000030  // Action for Comparator A Up
+#define PWM_1_GENA_ACTCMPAU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_1_GENA_ACTCMPAU_INV 0x00000010  // Invert pwmA
+#define PWM_1_GENA_ACTCMPAU_ZERO                                              \
+                                0x00000020  // Drive pwmA Low
+#define PWM_1_GENA_ACTCMPAU_ONE 0x00000030  // Drive pwmA High
+#define PWM_1_GENA_ACTLOAD_M    0x0000000C  // Action for Counter=LOAD
+#define PWM_1_GENA_ACTLOAD_NONE 0x00000000  // Do nothing
+#define PWM_1_GENA_ACTLOAD_INV  0x00000004  // Invert pwmA
+#define PWM_1_GENA_ACTLOAD_ZERO 0x00000008  // Drive pwmA Low
+#define PWM_1_GENA_ACTLOAD_ONE  0x0000000C  // Drive pwmA High
+#define PWM_1_GENA_ACTZERO_M    0x00000003  // Action for Counter=0
+#define PWM_1_GENA_ACTZERO_NONE 0x00000000  // Do nothing
+#define PWM_1_GENA_ACTZERO_INV  0x00000001  // Invert pwmA
+#define PWM_1_GENA_ACTZERO_ZERO 0x00000002  // Drive pwmA Low
+#define PWM_1_GENA_ACTZERO_ONE  0x00000003  // Drive pwmA High
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_GENB register.
+//
+//*****************************************************************************
+#define PWM_1_GENB_ACTCMPBD_M   0x00000C00  // Action for Comparator B Down
+#define PWM_1_GENB_ACTCMPBD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_1_GENB_ACTCMPBD_INV 0x00000400  // Invert pwmB
+#define PWM_1_GENB_ACTCMPBD_ZERO                                              \
+                                0x00000800  // Drive pwmB Low
+#define PWM_1_GENB_ACTCMPBD_ONE 0x00000C00  // Drive pwmB High
+#define PWM_1_GENB_ACTCMPBU_M   0x00000300  // Action for Comparator B Up
+#define PWM_1_GENB_ACTCMPBU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_1_GENB_ACTCMPBU_INV 0x00000100  // Invert pwmB
+#define PWM_1_GENB_ACTCMPBU_ZERO                                              \
+                                0x00000200  // Drive pwmB Low
+#define PWM_1_GENB_ACTCMPBU_ONE 0x00000300  // Drive pwmB High
+#define PWM_1_GENB_ACTCMPAD_M   0x000000C0  // Action for Comparator A Down
+#define PWM_1_GENB_ACTCMPAD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_1_GENB_ACTCMPAD_INV 0x00000040  // Invert pwmB
+#define PWM_1_GENB_ACTCMPAD_ZERO                                              \
+                                0x00000080  // Drive pwmB Low
+#define PWM_1_GENB_ACTCMPAD_ONE 0x000000C0  // Drive pwmB High
+#define PWM_1_GENB_ACTCMPAU_M   0x00000030  // Action for Comparator A Up
+#define PWM_1_GENB_ACTCMPAU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_1_GENB_ACTCMPAU_INV 0x00000010  // Invert pwmB
+#define PWM_1_GENB_ACTCMPAU_ZERO                                              \
+                                0x00000020  // Drive pwmB Low
+#define PWM_1_GENB_ACTCMPAU_ONE 0x00000030  // Drive pwmB High
+#define PWM_1_GENB_ACTLOAD_M    0x0000000C  // Action for Counter=LOAD
+#define PWM_1_GENB_ACTLOAD_NONE 0x00000000  // Do nothing
+#define PWM_1_GENB_ACTLOAD_INV  0x00000004  // Invert pwmB
+#define PWM_1_GENB_ACTLOAD_ZERO 0x00000008  // Drive pwmB Low
+#define PWM_1_GENB_ACTLOAD_ONE  0x0000000C  // Drive pwmB High
+#define PWM_1_GENB_ACTZERO_M    0x00000003  // Action for Counter=0
+#define PWM_1_GENB_ACTZERO_NONE 0x00000000  // Do nothing
+#define PWM_1_GENB_ACTZERO_INV  0x00000001  // Invert pwmB
+#define PWM_1_GENB_ACTZERO_ZERO 0x00000002  // Drive pwmB Low
+#define PWM_1_GENB_ACTZERO_ONE  0x00000003  // Drive pwmB High
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_DBCTL register.
+//
+//*****************************************************************************
+#define PWM_1_DBCTL_ENABLE      0x00000001  // Dead-Band Generator Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_DBRISE register.
+//
+//*****************************************************************************
+#define PWM_1_DBRISE_RISEDELAY_M                                              \
+                                0x00000FFF  // Dead-Band Rise Delay
+#define PWM_1_DBRISE_RISEDELAY_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_DBFALL register.
+//
+//*****************************************************************************
+#define PWM_1_DBFALL_FALLDELAY_M                                              \
+                                0x00000FFF  // Dead-Band Fall Delay
+#define PWM_1_DBFALL_FALLDELAY_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_FLTSRC0
+// register.
+//
+//*****************************************************************************
+#define PWM_1_FLTSRC0_FAULT1    0x00000002  // Fault1 Input
+#define PWM_1_FLTSRC0_FAULT0    0x00000001  // Fault0 Input
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_FLTSRC1
+// register.
+//
+//*****************************************************************************
+#define PWM_1_FLTSRC1_DCMP7     0x00000080  // Digital Comparator 7
+#define PWM_1_FLTSRC1_DCMP6     0x00000040  // Digital Comparator 6
+#define PWM_1_FLTSRC1_DCMP5     0x00000020  // Digital Comparator 5
+#define PWM_1_FLTSRC1_DCMP4     0x00000010  // Digital Comparator 4
+#define PWM_1_FLTSRC1_DCMP3     0x00000008  // Digital Comparator 3
+#define PWM_1_FLTSRC1_DCMP2     0x00000004  // Digital Comparator 2
+#define PWM_1_FLTSRC1_DCMP1     0x00000002  // Digital Comparator 1
+#define PWM_1_FLTSRC1_DCMP0     0x00000001  // Digital Comparator 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_MINFLTPER
+// register.
+//
+//*****************************************************************************
+#define PWM_1_MINFLTPER_MFP_M   0x0000FFFF  // Minimum Fault Period
+#define PWM_1_MINFLTPER_MFP_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_CTL register.
+//
+//*****************************************************************************
+#define PWM_2_CTL_LATCH         0x00040000  // Latch Fault Input
+#define PWM_2_CTL_MINFLTPER     0x00020000  // Minimum Fault Period
+#define PWM_2_CTL_FLTSRC        0x00010000  // Fault Condition Source
+#define PWM_2_CTL_DBFALLUPD_M   0x0000C000  // PWMnDBFALL Update Mode
+#define PWM_2_CTL_DBFALLUPD_I   0x00000000  // Immediate
+#define PWM_2_CTL_DBFALLUPD_LS  0x00008000  // Locally Synchronized
+#define PWM_2_CTL_DBFALLUPD_GS  0x0000C000  // Globally Synchronized
+#define PWM_2_CTL_DBRISEUPD_M   0x00003000  // PWMnDBRISE Update Mode
+#define PWM_2_CTL_DBRISEUPD_I   0x00000000  // Immediate
+#define PWM_2_CTL_DBRISEUPD_LS  0x00002000  // Locally Synchronized
+#define PWM_2_CTL_DBRISEUPD_GS  0x00003000  // Globally Synchronized
+#define PWM_2_CTL_DBCTLUPD_M    0x00000C00  // PWMnDBCTL Update Mode
+#define PWM_2_CTL_DBCTLUPD_I    0x00000000  // Immediate
+#define PWM_2_CTL_DBCTLUPD_LS   0x00000800  // Locally Synchronized
+#define PWM_2_CTL_DBCTLUPD_GS   0x00000C00  // Globally Synchronized
+#define PWM_2_CTL_GENBUPD_M     0x00000300  // PWMnGENB Update Mode
+#define PWM_2_CTL_GENBUPD_I     0x00000000  // Immediate
+#define PWM_2_CTL_GENBUPD_LS    0x00000200  // Locally Synchronized
+#define PWM_2_CTL_GENBUPD_GS    0x00000300  // Globally Synchronized
+#define PWM_2_CTL_GENAUPD_M     0x000000C0  // PWMnGENA Update Mode
+#define PWM_2_CTL_GENAUPD_I     0x00000000  // Immediate
+#define PWM_2_CTL_GENAUPD_LS    0x00000080  // Locally Synchronized
+#define PWM_2_CTL_GENAUPD_GS    0x000000C0  // Globally Synchronized
+#define PWM_2_CTL_CMPBUPD       0x00000020  // Comparator B Update Mode
+#define PWM_2_CTL_CMPAUPD       0x00000010  // Comparator A Update Mode
+#define PWM_2_CTL_LOADUPD       0x00000008  // Load Register Update Mode
+#define PWM_2_CTL_DEBUG         0x00000004  // Debug Mode
+#define PWM_2_CTL_MODE          0x00000002  // Counter Mode
+#define PWM_2_CTL_ENABLE        0x00000001  // PWM Block Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_INTEN register.
+//
+//*****************************************************************************
+#define PWM_2_INTEN_TRCMPBD     0x00002000  // Trigger for Counter=PWMnCMPB
+                                            // Down
+#define PWM_2_INTEN_TRCMPBU     0x00001000  // Trigger for Counter=PWMnCMPB Up
+#define PWM_2_INTEN_TRCMPAD     0x00000800  // Trigger for Counter=PWMnCMPA
+                                            // Down
+#define PWM_2_INTEN_TRCMPAU     0x00000400  // Trigger for Counter=PWMnCMPA Up
+#define PWM_2_INTEN_TRCNTLOAD   0x00000200  // Trigger for Counter=PWMnLOAD
+#define PWM_2_INTEN_TRCNTZERO   0x00000100  // Trigger for Counter=0
+#define PWM_2_INTEN_INTCMPBD    0x00000020  // Interrupt for Counter=PWMnCMPB
+                                            // Down
+#define PWM_2_INTEN_INTCMPBU    0x00000010  // Interrupt for Counter=PWMnCMPB
+                                            // Up
+#define PWM_2_INTEN_INTCMPAD    0x00000008  // Interrupt for Counter=PWMnCMPA
+                                            // Down
+#define PWM_2_INTEN_INTCMPAU    0x00000004  // Interrupt for Counter=PWMnCMPA
+                                            // Up
+#define PWM_2_INTEN_INTCNTLOAD  0x00000002  // Interrupt for Counter=PWMnLOAD
+#define PWM_2_INTEN_INTCNTZERO  0x00000001  // Interrupt for Counter=0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_RIS register.
+//
+//*****************************************************************************
+#define PWM_2_RIS_INTCMPBD      0x00000020  // Comparator B Down Interrupt
+                                            // Status
+#define PWM_2_RIS_INTCMPBU      0x00000010  // Comparator B Up Interrupt Status
+#define PWM_2_RIS_INTCMPAD      0x00000008  // Comparator A Down Interrupt
+                                            // Status
+#define PWM_2_RIS_INTCMPAU      0x00000004  // Comparator A Up Interrupt Status
+#define PWM_2_RIS_INTCNTLOAD    0x00000002  // Counter=Load Interrupt Status
+#define PWM_2_RIS_INTCNTZERO    0x00000001  // Counter=0 Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_ISC register.
+//
+//*****************************************************************************
+#define PWM_2_ISC_INTCMPBD      0x00000020  // Comparator B Down Interrupt
+#define PWM_2_ISC_INTCMPBU      0x00000010  // Comparator B Up Interrupt
+#define PWM_2_ISC_INTCMPAD      0x00000008  // Comparator A Down Interrupt
+#define PWM_2_ISC_INTCMPAU      0x00000004  // Comparator A Up Interrupt
+#define PWM_2_ISC_INTCNTLOAD    0x00000002  // Counter=Load Interrupt
+#define PWM_2_ISC_INTCNTZERO    0x00000001  // Counter=0 Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_LOAD register.
+//
+//*****************************************************************************
+#define PWM_2_LOAD_LOAD_M       0x0000FFFF  // Counter Load Value
+#define PWM_2_LOAD_LOAD_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_COUNT register.
+//
+//*****************************************************************************
+#define PWM_2_COUNT_COUNT_M     0x0000FFFF  // Counter Value
+#define PWM_2_COUNT_COUNT_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_CMPA register.
+//
+//*****************************************************************************
+#define PWM_2_CMPA_COMPA_M      0x0000FFFF  // Comparator A Value
+#define PWM_2_CMPA_COMPA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_CMPB register.
+//
+//*****************************************************************************
+#define PWM_2_CMPB_COMPB_M      0x0000FFFF  // Comparator B Value
+#define PWM_2_CMPB_COMPB_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_GENA register.
+//
+//*****************************************************************************
+#define PWM_2_GENA_ACTCMPBD_M   0x00000C00  // Action for Comparator B Down
+#define PWM_2_GENA_ACTCMPBD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_2_GENA_ACTCMPBD_INV 0x00000400  // Invert pwmA
+#define PWM_2_GENA_ACTCMPBD_ZERO                                              \
+                                0x00000800  // Drive pwmA Low
+#define PWM_2_GENA_ACTCMPBD_ONE 0x00000C00  // Drive pwmA High
+#define PWM_2_GENA_ACTCMPBU_M   0x00000300  // Action for Comparator B Up
+#define PWM_2_GENA_ACTCMPBU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_2_GENA_ACTCMPBU_INV 0x00000100  // Invert pwmA
+#define PWM_2_GENA_ACTCMPBU_ZERO                                              \
+                                0x00000200  // Drive pwmA Low
+#define PWM_2_GENA_ACTCMPBU_ONE 0x00000300  // Drive pwmA High
+#define PWM_2_GENA_ACTCMPAD_M   0x000000C0  // Action for Comparator A Down
+#define PWM_2_GENA_ACTCMPAD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_2_GENA_ACTCMPAD_INV 0x00000040  // Invert pwmA
+#define PWM_2_GENA_ACTCMPAD_ZERO                                              \
+                                0x00000080  // Drive pwmA Low
+#define PWM_2_GENA_ACTCMPAD_ONE 0x000000C0  // Drive pwmA High
+#define PWM_2_GENA_ACTCMPAU_M   0x00000030  // Action for Comparator A Up
+#define PWM_2_GENA_ACTCMPAU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_2_GENA_ACTCMPAU_INV 0x00000010  // Invert pwmA
+#define PWM_2_GENA_ACTCMPAU_ZERO                                              \
+                                0x00000020  // Drive pwmA Low
+#define PWM_2_GENA_ACTCMPAU_ONE 0x00000030  // Drive pwmA High
+#define PWM_2_GENA_ACTLOAD_M    0x0000000C  // Action for Counter=LOAD
+#define PWM_2_GENA_ACTLOAD_NONE 0x00000000  // Do nothing
+#define PWM_2_GENA_ACTLOAD_INV  0x00000004  // Invert pwmA
+#define PWM_2_GENA_ACTLOAD_ZERO 0x00000008  // Drive pwmA Low
+#define PWM_2_GENA_ACTLOAD_ONE  0x0000000C  // Drive pwmA High
+#define PWM_2_GENA_ACTZERO_M    0x00000003  // Action for Counter=0
+#define PWM_2_GENA_ACTZERO_NONE 0x00000000  // Do nothing
+#define PWM_2_GENA_ACTZERO_INV  0x00000001  // Invert pwmA
+#define PWM_2_GENA_ACTZERO_ZERO 0x00000002  // Drive pwmA Low
+#define PWM_2_GENA_ACTZERO_ONE  0x00000003  // Drive pwmA High
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_GENB register.
+//
+//*****************************************************************************
+#define PWM_2_GENB_ACTCMPBD_M   0x00000C00  // Action for Comparator B Down
+#define PWM_2_GENB_ACTCMPBD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_2_GENB_ACTCMPBD_INV 0x00000400  // Invert pwmB
+#define PWM_2_GENB_ACTCMPBD_ZERO                                              \
+                                0x00000800  // Drive pwmB Low
+#define PWM_2_GENB_ACTCMPBD_ONE 0x00000C00  // Drive pwmB High
+#define PWM_2_GENB_ACTCMPBU_M   0x00000300  // Action for Comparator B Up
+#define PWM_2_GENB_ACTCMPBU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_2_GENB_ACTCMPBU_INV 0x00000100  // Invert pwmB
+#define PWM_2_GENB_ACTCMPBU_ZERO                                              \
+                                0x00000200  // Drive pwmB Low
+#define PWM_2_GENB_ACTCMPBU_ONE 0x00000300  // Drive pwmB High
+#define PWM_2_GENB_ACTCMPAD_M   0x000000C0  // Action for Comparator A Down
+#define PWM_2_GENB_ACTCMPAD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_2_GENB_ACTCMPAD_INV 0x00000040  // Invert pwmB
+#define PWM_2_GENB_ACTCMPAD_ZERO                                              \
+                                0x00000080  // Drive pwmB Low
+#define PWM_2_GENB_ACTCMPAD_ONE 0x000000C0  // Drive pwmB High
+#define PWM_2_GENB_ACTCMPAU_M   0x00000030  // Action for Comparator A Up
+#define PWM_2_GENB_ACTCMPAU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_2_GENB_ACTCMPAU_INV 0x00000010  // Invert pwmB
+#define PWM_2_GENB_ACTCMPAU_ZERO                                              \
+                                0x00000020  // Drive pwmB Low
+#define PWM_2_GENB_ACTCMPAU_ONE 0x00000030  // Drive pwmB High
+#define PWM_2_GENB_ACTLOAD_M    0x0000000C  // Action for Counter=LOAD
+#define PWM_2_GENB_ACTLOAD_NONE 0x00000000  // Do nothing
+#define PWM_2_GENB_ACTLOAD_INV  0x00000004  // Invert pwmB
+#define PWM_2_GENB_ACTLOAD_ZERO 0x00000008  // Drive pwmB Low
+#define PWM_2_GENB_ACTLOAD_ONE  0x0000000C  // Drive pwmB High
+#define PWM_2_GENB_ACTZERO_M    0x00000003  // Action for Counter=0
+#define PWM_2_GENB_ACTZERO_NONE 0x00000000  // Do nothing
+#define PWM_2_GENB_ACTZERO_INV  0x00000001  // Invert pwmB
+#define PWM_2_GENB_ACTZERO_ZERO 0x00000002  // Drive pwmB Low
+#define PWM_2_GENB_ACTZERO_ONE  0x00000003  // Drive pwmB High
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_DBCTL register.
+//
+//*****************************************************************************
+#define PWM_2_DBCTL_ENABLE      0x00000001  // Dead-Band Generator Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_DBRISE register.
+//
+//*****************************************************************************
+#define PWM_2_DBRISE_RISEDELAY_M                                              \
+                                0x00000FFF  // Dead-Band Rise Delay
+#define PWM_2_DBRISE_RISEDELAY_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_DBFALL register.
+//
+//*****************************************************************************
+#define PWM_2_DBFALL_FALLDELAY_M                                              \
+                                0x00000FFF  // Dead-Band Fall Delay
+#define PWM_2_DBFALL_FALLDELAY_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_FLTSRC0
+// register.
+//
+//*****************************************************************************
+#define PWM_2_FLTSRC0_FAULT1    0x00000002  // Fault1 Input
+#define PWM_2_FLTSRC0_FAULT0    0x00000001  // Fault0 Input
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_FLTSRC1
+// register.
+//
+//*****************************************************************************
+#define PWM_2_FLTSRC1_DCMP7     0x00000080  // Digital Comparator 7
+#define PWM_2_FLTSRC1_DCMP6     0x00000040  // Digital Comparator 6
+#define PWM_2_FLTSRC1_DCMP5     0x00000020  // Digital Comparator 5
+#define PWM_2_FLTSRC1_DCMP4     0x00000010  // Digital Comparator 4
+#define PWM_2_FLTSRC1_DCMP3     0x00000008  // Digital Comparator 3
+#define PWM_2_FLTSRC1_DCMP2     0x00000004  // Digital Comparator 2
+#define PWM_2_FLTSRC1_DCMP1     0x00000002  // Digital Comparator 1
+#define PWM_2_FLTSRC1_DCMP0     0x00000001  // Digital Comparator 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_MINFLTPER
+// register.
+//
+//*****************************************************************************
+#define PWM_2_MINFLTPER_MFP_M   0x0000FFFF  // Minimum Fault Period
+#define PWM_2_MINFLTPER_MFP_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_CTL register.
+//
+//*****************************************************************************
+#define PWM_3_CTL_LATCH         0x00040000  // Latch Fault Input
+#define PWM_3_CTL_MINFLTPER     0x00020000  // Minimum Fault Period
+#define PWM_3_CTL_FLTSRC        0x00010000  // Fault Condition Source
+#define PWM_3_CTL_DBFALLUPD_M   0x0000C000  // PWMnDBFALL Update Mode
+#define PWM_3_CTL_DBFALLUPD_I   0x00000000  // Immediate
+#define PWM_3_CTL_DBFALLUPD_LS  0x00008000  // Locally Synchronized
+#define PWM_3_CTL_DBFALLUPD_GS  0x0000C000  // Globally Synchronized
+#define PWM_3_CTL_DBRISEUPD_M   0x00003000  // PWMnDBRISE Update Mode
+#define PWM_3_CTL_DBRISEUPD_I   0x00000000  // Immediate
+#define PWM_3_CTL_DBRISEUPD_LS  0x00002000  // Locally Synchronized
+#define PWM_3_CTL_DBRISEUPD_GS  0x00003000  // Globally Synchronized
+#define PWM_3_CTL_DBCTLUPD_M    0x00000C00  // PWMnDBCTL Update Mode
+#define PWM_3_CTL_DBCTLUPD_I    0x00000000  // Immediate
+#define PWM_3_CTL_DBCTLUPD_LS   0x00000800  // Locally Synchronized
+#define PWM_3_CTL_DBCTLUPD_GS   0x00000C00  // Globally Synchronized
+#define PWM_3_CTL_GENBUPD_M     0x00000300  // PWMnGENB Update Mode
+#define PWM_3_CTL_GENBUPD_I     0x00000000  // Immediate
+#define PWM_3_CTL_GENBUPD_LS    0x00000200  // Locally Synchronized
+#define PWM_3_CTL_GENBUPD_GS    0x00000300  // Globally Synchronized
+#define PWM_3_CTL_GENAUPD_M     0x000000C0  // PWMnGENA Update Mode
+#define PWM_3_CTL_GENAUPD_I     0x00000000  // Immediate
+#define PWM_3_CTL_GENAUPD_LS    0x00000080  // Locally Synchronized
+#define PWM_3_CTL_GENAUPD_GS    0x000000C0  // Globally Synchronized
+#define PWM_3_CTL_CMPBUPD       0x00000020  // Comparator B Update Mode
+#define PWM_3_CTL_CMPAUPD       0x00000010  // Comparator A Update Mode
+#define PWM_3_CTL_LOADUPD       0x00000008  // Load Register Update Mode
+#define PWM_3_CTL_DEBUG         0x00000004  // Debug Mode
+#define PWM_3_CTL_MODE          0x00000002  // Counter Mode
+#define PWM_3_CTL_ENABLE        0x00000001  // PWM Block Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_INTEN register.
+//
+//*****************************************************************************
+#define PWM_3_INTEN_TRCMPBD     0x00002000  // Trigger for Counter=PWMnCMPB
+                                            // Down
+#define PWM_3_INTEN_TRCMPBU     0x00001000  // Trigger for Counter=PWMnCMPB Up
+#define PWM_3_INTEN_TRCMPAD     0x00000800  // Trigger for Counter=PWMnCMPA
+                                            // Down
+#define PWM_3_INTEN_TRCMPAU     0x00000400  // Trigger for Counter=PWMnCMPA Up
+#define PWM_3_INTEN_TRCNTLOAD   0x00000200  // Trigger for Counter=PWMnLOAD
+#define PWM_3_INTEN_TRCNTZERO   0x00000100  // Trigger for Counter=0
+#define PWM_3_INTEN_INTCMPBD    0x00000020  // Interrupt for Counter=PWMnCMPB
+                                            // Down
+#define PWM_3_INTEN_INTCMPBU    0x00000010  // Interrupt for Counter=PWMnCMPB
+                                            // Up
+#define PWM_3_INTEN_INTCMPAD    0x00000008  // Interrupt for Counter=PWMnCMPA
+                                            // Down
+#define PWM_3_INTEN_INTCMPAU    0x00000004  // Interrupt for Counter=PWMnCMPA
+                                            // Up
+#define PWM_3_INTEN_INTCNTLOAD  0x00000002  // Interrupt for Counter=PWMnLOAD
+#define PWM_3_INTEN_INTCNTZERO  0x00000001  // Interrupt for Counter=0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_RIS register.
+//
+//*****************************************************************************
+#define PWM_3_RIS_INTCMPBD      0x00000020  // Comparator B Down Interrupt
+                                            // Status
+#define PWM_3_RIS_INTCMPBU      0x00000010  // Comparator B Up Interrupt Status
+#define PWM_3_RIS_INTCMPAD      0x00000008  // Comparator A Down Interrupt
+                                            // Status
+#define PWM_3_RIS_INTCMPAU      0x00000004  // Comparator A Up Interrupt Status
+#define PWM_3_RIS_INTCNTLOAD    0x00000002  // Counter=Load Interrupt Status
+#define PWM_3_RIS_INTCNTZERO    0x00000001  // Counter=0 Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_ISC register.
+//
+//*****************************************************************************
+#define PWM_3_ISC_INTCMPBD      0x00000020  // Comparator B Down Interrupt
+#define PWM_3_ISC_INTCMPBU      0x00000010  // Comparator B Up Interrupt
+#define PWM_3_ISC_INTCMPAD      0x00000008  // Comparator A Down Interrupt
+#define PWM_3_ISC_INTCMPAU      0x00000004  // Comparator A Up Interrupt
+#define PWM_3_ISC_INTCNTLOAD    0x00000002  // Counter=Load Interrupt
+#define PWM_3_ISC_INTCNTZERO    0x00000001  // Counter=0 Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_LOAD register.
+//
+//*****************************************************************************
+#define PWM_3_LOAD_LOAD_M       0x0000FFFF  // Counter Load Value
+#define PWM_3_LOAD_LOAD_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_COUNT register.
+//
+//*****************************************************************************
+#define PWM_3_COUNT_COUNT_M     0x0000FFFF  // Counter Value
+#define PWM_3_COUNT_COUNT_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_CMPA register.
+//
+//*****************************************************************************
+#define PWM_3_CMPA_COMPA_M      0x0000FFFF  // Comparator A Value
+#define PWM_3_CMPA_COMPA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_CMPB register.
+//
+//*****************************************************************************
+#define PWM_3_CMPB_COMPB_M      0x0000FFFF  // Comparator B Value
+#define PWM_3_CMPB_COMPB_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_GENA register.
+//
+//*****************************************************************************
+#define PWM_3_GENA_ACTCMPBD_M   0x00000C00  // Action for Comparator B Down
+#define PWM_3_GENA_ACTCMPBD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_3_GENA_ACTCMPBD_INV 0x00000400  // Invert pwmA
+#define PWM_3_GENA_ACTCMPBD_ZERO                                              \
+                                0x00000800  // Drive pwmA Low
+#define PWM_3_GENA_ACTCMPBD_ONE 0x00000C00  // Drive pwmA High
+#define PWM_3_GENA_ACTCMPBU_M   0x00000300  // Action for Comparator B Up
+#define PWM_3_GENA_ACTCMPBU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_3_GENA_ACTCMPBU_INV 0x00000100  // Invert pwmA
+#define PWM_3_GENA_ACTCMPBU_ZERO                                              \
+                                0x00000200  // Drive pwmA Low
+#define PWM_3_GENA_ACTCMPBU_ONE 0x00000300  // Drive pwmA High
+#define PWM_3_GENA_ACTCMPAD_M   0x000000C0  // Action for Comparator A Down
+#define PWM_3_GENA_ACTCMPAD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_3_GENA_ACTCMPAD_INV 0x00000040  // Invert pwmA
+#define PWM_3_GENA_ACTCMPAD_ZERO                                              \
+                                0x00000080  // Drive pwmA Low
+#define PWM_3_GENA_ACTCMPAD_ONE 0x000000C0  // Drive pwmA High
+#define PWM_3_GENA_ACTCMPAU_M   0x00000030  // Action for Comparator A Up
+#define PWM_3_GENA_ACTCMPAU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_3_GENA_ACTCMPAU_INV 0x00000010  // Invert pwmA
+#define PWM_3_GENA_ACTCMPAU_ZERO                                              \
+                                0x00000020  // Drive pwmA Low
+#define PWM_3_GENA_ACTCMPAU_ONE 0x00000030  // Drive pwmA High
+#define PWM_3_GENA_ACTLOAD_M    0x0000000C  // Action for Counter=LOAD
+#define PWM_3_GENA_ACTLOAD_NONE 0x00000000  // Do nothing
+#define PWM_3_GENA_ACTLOAD_INV  0x00000004  // Invert pwmA
+#define PWM_3_GENA_ACTLOAD_ZERO 0x00000008  // Drive pwmA Low
+#define PWM_3_GENA_ACTLOAD_ONE  0x0000000C  // Drive pwmA High
+#define PWM_3_GENA_ACTZERO_M    0x00000003  // Action for Counter=0
+#define PWM_3_GENA_ACTZERO_NONE 0x00000000  // Do nothing
+#define PWM_3_GENA_ACTZERO_INV  0x00000001  // Invert pwmA
+#define PWM_3_GENA_ACTZERO_ZERO 0x00000002  // Drive pwmA Low
+#define PWM_3_GENA_ACTZERO_ONE  0x00000003  // Drive pwmA High
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_GENB register.
+//
+//*****************************************************************************
+#define PWM_3_GENB_ACTCMPBD_M   0x00000C00  // Action for Comparator B Down
+#define PWM_3_GENB_ACTCMPBD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_3_GENB_ACTCMPBD_INV 0x00000400  // Invert pwmB
+#define PWM_3_GENB_ACTCMPBD_ZERO                                              \
+                                0x00000800  // Drive pwmB Low
+#define PWM_3_GENB_ACTCMPBD_ONE 0x00000C00  // Drive pwmB High
+#define PWM_3_GENB_ACTCMPBU_M   0x00000300  // Action for Comparator B Up
+#define PWM_3_GENB_ACTCMPBU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_3_GENB_ACTCMPBU_INV 0x00000100  // Invert pwmB
+#define PWM_3_GENB_ACTCMPBU_ZERO                                              \
+                                0x00000200  // Drive pwmB Low
+#define PWM_3_GENB_ACTCMPBU_ONE 0x00000300  // Drive pwmB High
+#define PWM_3_GENB_ACTCMPAD_M   0x000000C0  // Action for Comparator A Down
+#define PWM_3_GENB_ACTCMPAD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_3_GENB_ACTCMPAD_INV 0x00000040  // Invert pwmB
+#define PWM_3_GENB_ACTCMPAD_ZERO                                              \
+                                0x00000080  // Drive pwmB Low
+#define PWM_3_GENB_ACTCMPAD_ONE 0x000000C0  // Drive pwmB High
+#define PWM_3_GENB_ACTCMPAU_M   0x00000030  // Action for Comparator A Up
+#define PWM_3_GENB_ACTCMPAU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_3_GENB_ACTCMPAU_INV 0x00000010  // Invert pwmB
+#define PWM_3_GENB_ACTCMPAU_ZERO                                              \
+                                0x00000020  // Drive pwmB Low
+#define PWM_3_GENB_ACTCMPAU_ONE 0x00000030  // Drive pwmB High
+#define PWM_3_GENB_ACTLOAD_M    0x0000000C  // Action for Counter=LOAD
+#define PWM_3_GENB_ACTLOAD_NONE 0x00000000  // Do nothing
+#define PWM_3_GENB_ACTLOAD_INV  0x00000004  // Invert pwmB
+#define PWM_3_GENB_ACTLOAD_ZERO 0x00000008  // Drive pwmB Low
+#define PWM_3_GENB_ACTLOAD_ONE  0x0000000C  // Drive pwmB High
+#define PWM_3_GENB_ACTZERO_M    0x00000003  // Action for Counter=0
+#define PWM_3_GENB_ACTZERO_NONE 0x00000000  // Do nothing
+#define PWM_3_GENB_ACTZERO_INV  0x00000001  // Invert pwmB
+#define PWM_3_GENB_ACTZERO_ZERO 0x00000002  // Drive pwmB Low
+#define PWM_3_GENB_ACTZERO_ONE  0x00000003  // Drive pwmB High
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_DBCTL register.
+//
+//*****************************************************************************
+#define PWM_3_DBCTL_ENABLE      0x00000001  // Dead-Band Generator Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_DBRISE register.
+//
+//*****************************************************************************
+#define PWM_3_DBRISE_RISEDELAY_M                                              \
+                                0x00000FFF  // Dead-Band Rise Delay
+#define PWM_3_DBRISE_RISEDELAY_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_DBFALL register.
+//
+//*****************************************************************************
+#define PWM_3_DBFALL_FALLDELAY_M                                              \
+                                0x00000FFF  // Dead-Band Fall Delay
+#define PWM_3_DBFALL_FALLDELAY_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_FLTSRC0
+// register.
+//
+//*****************************************************************************
+#define PWM_3_FLTSRC0_FAULT1    0x00000002  // Fault1 Input
+#define PWM_3_FLTSRC0_FAULT0    0x00000001  // Fault0 Input
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_FLTSRC1
+// register.
+//
+//*****************************************************************************
+#define PWM_3_FLTSRC1_DCMP7     0x00000080  // Digital Comparator 7
+#define PWM_3_FLTSRC1_DCMP6     0x00000040  // Digital Comparator 6
+#define PWM_3_FLTSRC1_DCMP5     0x00000020  // Digital Comparator 5
+#define PWM_3_FLTSRC1_DCMP4     0x00000010  // Digital Comparator 4
+#define PWM_3_FLTSRC1_DCMP3     0x00000008  // Digital Comparator 3
+#define PWM_3_FLTSRC1_DCMP2     0x00000004  // Digital Comparator 2
+#define PWM_3_FLTSRC1_DCMP1     0x00000002  // Digital Comparator 1
+#define PWM_3_FLTSRC1_DCMP0     0x00000001  // Digital Comparator 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_MINFLTPER
+// register.
+//
+//*****************************************************************************
+#define PWM_3_MINFLTPER_MFP_M   0x0000FFFF  // Minimum Fault Period
+#define PWM_3_MINFLTPER_MFP_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_FLTSEN register.
+//
+//*****************************************************************************
+#define PWM_0_FLTSEN_FAULT1     0x00000002  // Fault1 Sense
+#define PWM_0_FLTSEN_FAULT0     0x00000001  // Fault0 Sense
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_FLTSTAT0
+// register.
+//
+//*****************************************************************************
+#define PWM_0_FLTSTAT0_FAULT1   0x00000002  // Fault Input 1
+#define PWM_0_FLTSTAT0_FAULT0   0x00000001  // Fault Input 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_FLTSTAT1
+// register.
+//
+//*****************************************************************************
+#define PWM_0_FLTSTAT1_DCMP7    0x00000080  // Digital Comparator 7 Trigger
+#define PWM_0_FLTSTAT1_DCMP6    0x00000040  // Digital Comparator 6 Trigger
+#define PWM_0_FLTSTAT1_DCMP5    0x00000020  // Digital Comparator 5 Trigger
+#define PWM_0_FLTSTAT1_DCMP4    0x00000010  // Digital Comparator 4 Trigger
+#define PWM_0_FLTSTAT1_DCMP3    0x00000008  // Digital Comparator 3 Trigger
+#define PWM_0_FLTSTAT1_DCMP2    0x00000004  // Digital Comparator 2 Trigger
+#define PWM_0_FLTSTAT1_DCMP1    0x00000002  // Digital Comparator 1 Trigger
+#define PWM_0_FLTSTAT1_DCMP0    0x00000001  // Digital Comparator 0 Trigger
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_FLTSEN register.
+//
+//*****************************************************************************
+#define PWM_1_FLTSEN_FAULT1     0x00000002  // Fault1 Sense
+#define PWM_1_FLTSEN_FAULT0     0x00000001  // Fault0 Sense
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_FLTSTAT0
+// register.
+//
+//*****************************************************************************
+#define PWM_1_FLTSTAT0_FAULT1   0x00000002  // Fault Input 1
+#define PWM_1_FLTSTAT0_FAULT0   0x00000001  // Fault Input 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_FLTSTAT1
+// register.
+//
+//*****************************************************************************
+#define PWM_1_FLTSTAT1_DCMP7    0x00000080  // Digital Comparator 7 Trigger
+#define PWM_1_FLTSTAT1_DCMP6    0x00000040  // Digital Comparator 6 Trigger
+#define PWM_1_FLTSTAT1_DCMP5    0x00000020  // Digital Comparator 5 Trigger
+#define PWM_1_FLTSTAT1_DCMP4    0x00000010  // Digital Comparator 4 Trigger
+#define PWM_1_FLTSTAT1_DCMP3    0x00000008  // Digital Comparator 3 Trigger
+#define PWM_1_FLTSTAT1_DCMP2    0x00000004  // Digital Comparator 2 Trigger
+#define PWM_1_FLTSTAT1_DCMP1    0x00000002  // Digital Comparator 1 Trigger
+#define PWM_1_FLTSTAT1_DCMP0    0x00000001  // Digital Comparator 0 Trigger
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_FLTSTAT0
+// register.
+//
+//*****************************************************************************
+#define PWM_2_FLTSTAT0_FAULT1   0x00000002  // Fault Input 1
+#define PWM_2_FLTSTAT0_FAULT0   0x00000001  // Fault Input 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_FLTSTAT1
+// register.
+//
+//*****************************************************************************
+#define PWM_2_FLTSTAT1_DCMP7    0x00000080  // Digital Comparator 7 Trigger
+#define PWM_2_FLTSTAT1_DCMP6    0x00000040  // Digital Comparator 6 Trigger
+#define PWM_2_FLTSTAT1_DCMP5    0x00000020  // Digital Comparator 5 Trigger
+#define PWM_2_FLTSTAT1_DCMP4    0x00000010  // Digital Comparator 4 Trigger
+#define PWM_2_FLTSTAT1_DCMP3    0x00000008  // Digital Comparator 3 Trigger
+#define PWM_2_FLTSTAT1_DCMP2    0x00000004  // Digital Comparator 2 Trigger
+#define PWM_2_FLTSTAT1_DCMP1    0x00000002  // Digital Comparator 1 Trigger
+#define PWM_2_FLTSTAT1_DCMP0    0x00000001  // Digital Comparator 0 Trigger
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_FLTSTAT0
+// register.
+//
+//*****************************************************************************
+#define PWM_3_FLTSTAT0_FAULT1   0x00000002  // Fault Input 1
+#define PWM_3_FLTSTAT0_FAULT0   0x00000001  // Fault Input 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_FLTSTAT1
+// register.
+//
+//*****************************************************************************
+#define PWM_3_FLTSTAT1_DCMP7    0x00000080  // Digital Comparator 7 Trigger
+#define PWM_3_FLTSTAT1_DCMP6    0x00000040  // Digital Comparator 6 Trigger
+#define PWM_3_FLTSTAT1_DCMP5    0x00000020  // Digital Comparator 5 Trigger
+#define PWM_3_FLTSTAT1_DCMP4    0x00000010  // Digital Comparator 4 Trigger
+#define PWM_3_FLTSTAT1_DCMP3    0x00000008  // Digital Comparator 3 Trigger
+#define PWM_3_FLTSTAT1_DCMP2    0x00000004  // Digital Comparator 2 Trigger
+#define PWM_3_FLTSTAT1_DCMP1    0x00000002  // Digital Comparator 1 Trigger
+#define PWM_3_FLTSTAT1_DCMP0    0x00000001  // Digital Comparator 0 Trigger
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_PP register.
+//
+//*****************************************************************************
+#define PWM_PP_ONE              0x00000400  // One-Shot Mode
+#define PWM_PP_EFAULT           0x00000200  // Extended Fault
+#define PWM_PP_ESYNC            0x00000100  // Extended Synchronization
+#define PWM_PP_FCNT_M           0x000000F0  // Fault Inputs (per PWM unit)
+#define PWM_PP_GCNT_M           0x0000000F  // Generators
+#define PWM_PP_FCNT_S           4
+#define PWM_PP_GCNT_S           0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the QEI_O_CTL register.
+//
+//*****************************************************************************
+#define QEI_CTL_FILTCNT_M       0x000F0000  // Input Filter Prescale Count
+#define QEI_CTL_FILTEN          0x00002000  // Enable Input Filter
+#define QEI_CTL_STALLEN         0x00001000  // Stall QEI
+#define QEI_CTL_INVI            0x00000800  // Invert Index Pulse
+#define QEI_CTL_INVB            0x00000400  // Invert PhB
+#define QEI_CTL_INVA            0x00000200  // Invert PhA
+#define QEI_CTL_VELDIV_M        0x000001C0  // Predivide Velocity
+#define QEI_CTL_VELDIV_1        0x00000000  // QEI clock /1
+#define QEI_CTL_VELDIV_2        0x00000040  // QEI clock /2
+#define QEI_CTL_VELDIV_4        0x00000080  // QEI clock /4
+#define QEI_CTL_VELDIV_8        0x000000C0  // QEI clock /8
+#define QEI_CTL_VELDIV_16       0x00000100  // QEI clock /16
+#define QEI_CTL_VELDIV_32       0x00000140  // QEI clock /32
+#define QEI_CTL_VELDIV_64       0x00000180  // QEI clock /64
+#define QEI_CTL_VELDIV_128      0x000001C0  // QEI clock /128
+#define QEI_CTL_VELEN           0x00000020  // Capture Velocity
+#define QEI_CTL_RESMODE         0x00000010  // Reset Mode
+#define QEI_CTL_CAPMODE         0x00000008  // Capture Mode
+#define QEI_CTL_SIGMODE         0x00000004  // Signal Mode
+#define QEI_CTL_SWAP            0x00000002  // Swap Signals
+#define QEI_CTL_ENABLE          0x00000001  // Enable QEI
+#define QEI_CTL_FILTCNT_S       16
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the QEI_O_STAT register.
+//
+//*****************************************************************************
+#define QEI_STAT_DIRECTION      0x00000002  // Direction of Rotation
+#define QEI_STAT_ERROR          0x00000001  // Error Detected
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the QEI_O_POS register.
+//
+//*****************************************************************************
+#define QEI_POS_M               0xFFFFFFFF  // Current Position Integrator
+                                            // Value
+#define QEI_POS_S               0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the QEI_O_MAXPOS register.
+//
+//*****************************************************************************
+#define QEI_MAXPOS_M            0xFFFFFFFF  // Maximum Position Integrator
+                                            // Value
+#define QEI_MAXPOS_S            0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the QEI_O_LOAD register.
+//
+//*****************************************************************************
+#define QEI_LOAD_M              0xFFFFFFFF  // Velocity Timer Load Value
+#define QEI_LOAD_S              0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the QEI_O_TIME register.
+//
+//*****************************************************************************
+#define QEI_TIME_M              0xFFFFFFFF  // Velocity Timer Current Value
+#define QEI_TIME_S              0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the QEI_O_COUNT register.
+//
+//*****************************************************************************
+#define QEI_COUNT_M             0xFFFFFFFF  // Velocity Pulse Count
+#define QEI_COUNT_S             0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the QEI_O_SPEED register.
+//
+//*****************************************************************************
+#define QEI_SPEED_M             0xFFFFFFFF  // Velocity
+#define QEI_SPEED_S             0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the QEI_O_INTEN register.
+//
+//*****************************************************************************
+#define QEI_INTEN_ERROR         0x00000008  // Phase Error Interrupt Enable
+#define QEI_INTEN_DIR           0x00000004  // Direction Change Interrupt
+                                            // Enable
+#define QEI_INTEN_TIMER         0x00000002  // Timer Expires Interrupt Enable
+#define QEI_INTEN_INDEX         0x00000001  // Index Pulse Detected Interrupt
+                                            // Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the QEI_O_RIS register.
+//
+//*****************************************************************************
+#define QEI_RIS_ERROR           0x00000008  // Phase Error Detected
+#define QEI_RIS_DIR             0x00000004  // Direction Change Detected
+#define QEI_RIS_TIMER           0x00000002  // Velocity Timer Expired
+#define QEI_RIS_INDEX           0x00000001  // Index Pulse Asserted
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the QEI_O_ISC register.
+//
+//*****************************************************************************
+#define QEI_ISC_ERROR           0x00000008  // Phase Error Interrupt
+#define QEI_ISC_DIR             0x00000004  // Direction Change Interrupt
+#define QEI_ISC_TIMER           0x00000002  // Velocity Timer Expired Interrupt
+#define QEI_ISC_INDEX           0x00000001  // Index Pulse Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_CFG register.
+//
+//*****************************************************************************
+#define TIMER_CFG_M             0x00000007  // GPTM Configuration
+#define TIMER_CFG_32_BIT_TIMER  0x00000000  // For a 16/32-bit timer, this
+                                            // value selects the 32-bit timer
+                                            // configuration
+#define TIMER_CFG_32_BIT_RTC    0x00000001  // For a 16/32-bit timer, this
+                                            // value selects the 32-bit
+                                            // real-time clock (RTC) counter
+                                            // configuration
+#define TIMER_CFG_16_BIT        0x00000004  // For a 16/32-bit timer, this
+                                            // value selects the 16-bit timer
+                                            // configuration
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TAMR register.
+//
+//*****************************************************************************
+#define TIMER_TAMR_TAPLO        0x00000800  // GPTM Timer A PWM Legacy
+                                            // Operation
+#define TIMER_TAMR_TAMRSU       0x00000400  // GPTM Timer A Match Register
+                                            // Update
+#define TIMER_TAMR_TAPWMIE      0x00000200  // GPTM Timer A PWM Interrupt
+                                            // Enable
+#define TIMER_TAMR_TAILD        0x00000100  // GPTM Timer A Interval Load Write
+#define TIMER_TAMR_TASNAPS      0x00000080  // GPTM Timer A Snap-Shot Mode
+#define TIMER_TAMR_TAWOT        0x00000040  // GPTM Timer A Wait-on-Trigger
+#define TIMER_TAMR_TAMIE        0x00000020  // GPTM Timer A Match Interrupt
+                                            // Enable
+#define TIMER_TAMR_TACDIR       0x00000010  // GPTM Timer A Count Direction
+#define TIMER_TAMR_TAAMS        0x00000008  // GPTM Timer A Alternate Mode
+                                            // Select
+#define TIMER_TAMR_TACMR        0x00000004  // GPTM Timer A Capture Mode
+#define TIMER_TAMR_TAMR_M       0x00000003  // GPTM Timer A Mode
+#define TIMER_TAMR_TAMR_1_SHOT  0x00000001  // One-Shot Timer mode
+#define TIMER_TAMR_TAMR_PERIOD  0x00000002  // Periodic Timer mode
+#define TIMER_TAMR_TAMR_CAP     0x00000003  // Capture mode
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TBMR register.
+//
+//*****************************************************************************
+#define TIMER_TBMR_TBPLO        0x00000800  // GPTM Timer B PWM Legacy
+                                            // Operation
+#define TIMER_TBMR_TBMRSU       0x00000400  // GPTM Timer B Match Register
+                                            // Update
+#define TIMER_TBMR_TBPWMIE      0x00000200  // GPTM Timer B PWM Interrupt
+                                            // Enable
+#define TIMER_TBMR_TBILD        0x00000100  // GPTM Timer B Interval Load Write
+#define TIMER_TBMR_TBSNAPS      0x00000080  // GPTM Timer B Snap-Shot Mode
+#define TIMER_TBMR_TBWOT        0x00000040  // GPTM Timer B Wait-on-Trigger
+#define TIMER_TBMR_TBMIE        0x00000020  // GPTM Timer B Match Interrupt
+                                            // Enable
+#define TIMER_TBMR_TBCDIR       0x00000010  // GPTM Timer B Count Direction
+#define TIMER_TBMR_TBAMS        0x00000008  // GPTM Timer B Alternate Mode
+                                            // Select
+#define TIMER_TBMR_TBCMR        0x00000004  // GPTM Timer B Capture Mode
+#define TIMER_TBMR_TBMR_M       0x00000003  // GPTM Timer B Mode
+#define TIMER_TBMR_TBMR_1_SHOT  0x00000001  // One-Shot Timer mode
+#define TIMER_TBMR_TBMR_PERIOD  0x00000002  // Periodic Timer mode
+#define TIMER_TBMR_TBMR_CAP     0x00000003  // Capture mode
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_CTL register.
+//
+//*****************************************************************************
+#define TIMER_CTL_TBPWML        0x00004000  // GPTM Timer B PWM Output Level
+#define TIMER_CTL_TBOTE         0x00002000  // GPTM Timer B Output Trigger
+                                            // Enable
+#define TIMER_CTL_TBEVENT_M     0x00000C00  // GPTM Timer B Event Mode
+#define TIMER_CTL_TBEVENT_POS   0x00000000  // Positive edge
+#define TIMER_CTL_TBEVENT_NEG   0x00000400  // Negative edge
+#define TIMER_CTL_TBEVENT_BOTH  0x00000C00  // Both edges
+#define TIMER_CTL_TBSTALL       0x00000200  // GPTM Timer B Stall Enable
+#define TIMER_CTL_TBEN          0x00000100  // GPTM Timer B Enable
+#define TIMER_CTL_TAPWML        0x00000040  // GPTM Timer A PWM Output Level
+#define TIMER_CTL_TAOTE         0x00000020  // GPTM Timer A Output Trigger
+                                            // Enable
+#define TIMER_CTL_RTCEN         0x00000010  // GPTM RTC Stall Enable
+#define TIMER_CTL_TAEVENT_M     0x0000000C  // GPTM Timer A Event Mode
+#define TIMER_CTL_TAEVENT_POS   0x00000000  // Positive edge
+#define TIMER_CTL_TAEVENT_NEG   0x00000004  // Negative edge
+#define TIMER_CTL_TAEVENT_BOTH  0x0000000C  // Both edges
+#define TIMER_CTL_TASTALL       0x00000002  // GPTM Timer A Stall Enable
+#define TIMER_CTL_TAEN          0x00000001  // GPTM Timer A Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_SYNC register.
+//
+//*****************************************************************************
+#define TIMER_SYNC_SYNCWT5_M    0x00C00000  // Synchronize GPTM 32/64-Bit Timer
+                                            // 5
+#define TIMER_SYNC_SYNCWT5_NONE 0x00000000  // GPTM 32/64-Bit Timer 5 is not
+                                            // affected
+#define TIMER_SYNC_SYNCWT5_TA   0x00400000  // A timeout event for Timer A of
+                                            // GPTM 32/64-Bit Timer 5 is
+                                            // triggered
+#define TIMER_SYNC_SYNCWT5_TB   0x00800000  // A timeout event for Timer B of
+                                            // GPTM 32/64-Bit Timer 5 is
+                                            // triggered
+#define TIMER_SYNC_SYNCWT5_TATB 0x00C00000  // A timeout event for both Timer A
+                                            // and Timer B of GPTM 32/64-Bit
+                                            // Timer 5 is triggered
+#define TIMER_SYNC_SYNCWT4_M    0x00300000  // Synchronize GPTM 32/64-Bit Timer
+                                            // 4
+#define TIMER_SYNC_SYNCWT4_NONE 0x00000000  // GPTM 32/64-Bit Timer 4 is not
+                                            // affected
+#define TIMER_SYNC_SYNCWT4_TA   0x00100000  // A timeout event for Timer A of
+                                            // GPTM 32/64-Bit Timer 4 is
+                                            // triggered
+#define TIMER_SYNC_SYNCWT4_TB   0x00200000  // A timeout event for Timer B of
+                                            // GPTM 32/64-Bit Timer 4 is
+                                            // triggered
+#define TIMER_SYNC_SYNCWT4_TATB 0x00300000  // A timeout event for both Timer A
+                                            // and Timer B of GPTM 32/64-Bit
+                                            // Timer 4 is triggered
+#define TIMER_SYNC_SYNCWT3_M    0x000C0000  // Synchronize GPTM 32/64-Bit Timer
+                                            // 3
+#define TIMER_SYNC_SYNCWT3_NONE 0x00000000  // GPTM 32/64-Bit Timer 3 is not
+                                            // affected
+#define TIMER_SYNC_SYNCWT3_TA   0x00040000  // A timeout event for Timer A of
+                                            // GPTM 32/64-Bit Timer 3 is
+                                            // triggered
+#define TIMER_SYNC_SYNCWT3_TB   0x00080000  // A timeout event for Timer B of
+                                            // GPTM 32/64-Bit Timer 3 is
+                                            // triggered
+#define TIMER_SYNC_SYNCWT3_TATB 0x000C0000  // A timeout event for both Timer A
+                                            // and Timer B of GPTM 32/64-Bit
+                                            // Timer 3 is triggered
+#define TIMER_SYNC_SYNCWT2_M    0x00030000  // Synchronize GPTM 32/64-Bit Timer
+                                            // 2
+#define TIMER_SYNC_SYNCWT2_NONE 0x00000000  // GPTM 32/64-Bit Timer 2 is not
+                                            // affected
+#define TIMER_SYNC_SYNCWT2_TA   0x00010000  // A timeout event for Timer A of
+                                            // GPTM 32/64-Bit Timer 2 is
+                                            // triggered
+#define TIMER_SYNC_SYNCWT2_TB   0x00020000  // A timeout event for Timer B of
+                                            // GPTM 32/64-Bit Timer 2 is
+                                            // triggered
+#define TIMER_SYNC_SYNCWT2_TATB 0x00030000  // A timeout event for both Timer A
+                                            // and Timer B of GPTM 32/64-Bit
+                                            // Timer 2 is triggered
+#define TIMER_SYNC_SYNCWT1_M    0x0000C000  // Synchronize GPTM 32/64-Bit Timer
+                                            // 1
+#define TIMER_SYNC_SYNCWT1_NONE 0x00000000  // GPTM 32/64-Bit Timer 1 is not
+                                            // affected
+#define TIMER_SYNC_SYNCWT1_TA   0x00004000  // A timeout event for Timer A of
+                                            // GPTM 32/64-Bit Timer 1 is
+                                            // triggered
+#define TIMER_SYNC_SYNCWT1_TB   0x00008000  // A timeout event for Timer B of
+                                            // GPTM 32/64-Bit Timer 1 is
+                                            // triggered
+#define TIMER_SYNC_SYNCWT1_TATB 0x0000C000  // A timeout event for both Timer A
+                                            // and Timer B of GPTM 32/64-Bit
+                                            // Timer 1 is triggered
+#define TIMER_SYNC_SYNCWT0_M    0x00003000  // Synchronize GPTM 32/64-Bit Timer
+                                            // 0
+#define TIMER_SYNC_SYNCWT0_NONE 0x00000000  // GPTM 32/64-Bit Timer 0 is not
+                                            // affected
+#define TIMER_SYNC_SYNCWT0_TA   0x00001000  // A timeout event for Timer A of
+                                            // GPTM 32/64-Bit Timer 0 is
+                                            // triggered
+#define TIMER_SYNC_SYNCWT0_TB   0x00002000  // A timeout event for Timer B of
+                                            // GPTM 32/64-Bit Timer 0 is
+                                            // triggered
+#define TIMER_SYNC_SYNCWT0_TATB 0x00003000  // A timeout event for both Timer A
+                                            // and Timer B of GPTM 32/64-Bit
+                                            // Timer 0 is triggered
+#define TIMER_SYNC_SYNCT5_M     0x00000C00  // Synchronize GPTM Timer 5
+#define TIMER_SYNC_SYNCT5_NONE  0x00000000  // GPTM5 is not affected
+#define TIMER_SYNC_SYNCT5_TA    0x00000400  // A timeout event for Timer A of
+                                            // GPTM5 is triggered
+#define TIMER_SYNC_SYNCT5_TB    0x00000800  // A timeout event for Timer B of
+                                            // GPTM5 is triggered
+#define TIMER_SYNC_SYNCT5_TATB  0x00000C00  // A timeout event for both Timer A
+                                            // and Timer B of GPTM5 is
+                                            // triggered
+#define TIMER_SYNC_SYNCT4_M     0x00000300  // Synchronize GPTM Timer 4
+#define TIMER_SYNC_SYNCT4_NONE  0x00000000  // GPTM4 is not affected
+#define TIMER_SYNC_SYNCT4_TA    0x00000100  // A timeout event for Timer A of
+                                            // GPTM4 is triggered
+#define TIMER_SYNC_SYNCT4_TB    0x00000200  // A timeout event for Timer B of
+                                            // GPTM4 is triggered
+#define TIMER_SYNC_SYNCT4_TATB  0x00000300  // A timeout event for both Timer A
+                                            // and Timer B of GPTM4 is
+                                            // triggered
+#define TIMER_SYNC_SYNCT3_M     0x000000C0  // Synchronize GPTM Timer 3
+#define TIMER_SYNC_SYNCT3_NONE  0x00000000  // GPTM3 is not affected
+#define TIMER_SYNC_SYNCT3_TA    0x00000040  // A timeout event for Timer A of
+                                            // GPTM3 is triggered
+#define TIMER_SYNC_SYNCT3_TB    0x00000080  // A timeout event for Timer B of
+                                            // GPTM3 is triggered
+#define TIMER_SYNC_SYNCT3_TATB  0x000000C0  // A timeout event for both Timer A
+                                            // and Timer B of GPTM3 is
+                                            // triggered
+#define TIMER_SYNC_SYNCT2_M     0x00000030  // Synchronize GPTM Timer 2
+#define TIMER_SYNC_SYNCT2_NONE  0x00000000  // GPTM2 is not affected
+#define TIMER_SYNC_SYNCT2_TA    0x00000010  // A timeout event for Timer A of
+                                            // GPTM2 is triggered
+#define TIMER_SYNC_SYNCT2_TB    0x00000020  // A timeout event for Timer B of
+                                            // GPTM2 is triggered
+#define TIMER_SYNC_SYNCT2_TATB  0x00000030  // A timeout event for both Timer A
+                                            // and Timer B of GPTM2 is
+                                            // triggered
+#define TIMER_SYNC_SYNCT1_M     0x0000000C  // Synchronize GPTM Timer 1
+#define TIMER_SYNC_SYNCT1_NONE  0x00000000  // GPTM1 is not affected
+#define TIMER_SYNC_SYNCT1_TA    0x00000004  // A timeout event for Timer A of
+                                            // GPTM1 is triggered
+#define TIMER_SYNC_SYNCT1_TB    0x00000008  // A timeout event for Timer B of
+                                            // GPTM1 is triggered
+#define TIMER_SYNC_SYNCT1_TATB  0x0000000C  // A timeout event for both Timer A
+                                            // and Timer B of GPTM1 is
+                                            // triggered
+#define TIMER_SYNC_SYNCT0_M     0x00000003  // Synchronize GPTM Timer 0
+#define TIMER_SYNC_SYNCT0_NONE  0x00000000  // GPTM0 is not affected
+#define TIMER_SYNC_SYNCT0_TA    0x00000001  // A timeout event for Timer A of
+                                            // GPTM0 is triggered
+#define TIMER_SYNC_SYNCT0_TB    0x00000002  // A timeout event for Timer B of
+                                            // GPTM0 is triggered
+#define TIMER_SYNC_SYNCT0_TATB  0x00000003  // A timeout event for both Timer A
+                                            // and Timer B of GPTM0 is
+                                            // triggered
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_IMR register.
+//
+//*****************************************************************************
+#define TIMER_IMR_WUEIM         0x00010000  // 32/64-Bit Wide GPTM Write Update
+                                            // Error Interrupt Mask
+#define TIMER_IMR_TBMIM         0x00000800  // GPTM Timer B Match Interrupt
+                                            // Mask
+#define TIMER_IMR_CBEIM         0x00000400  // GPTM Timer B Capture Mode Event
+                                            // Interrupt Mask
+#define TIMER_IMR_CBMIM         0x00000200  // GPTM Timer B Capture Mode Match
+                                            // Interrupt Mask
+#define TIMER_IMR_TBTOIM        0x00000100  // GPTM Timer B Time-Out Interrupt
+                                            // Mask
+#define TIMER_IMR_TAMIM         0x00000010  // GPTM Timer A Match Interrupt
+                                            // Mask
+#define TIMER_IMR_RTCIM         0x00000008  // GPTM RTC Interrupt Mask
+#define TIMER_IMR_CAEIM         0x00000004  // GPTM Timer A Capture Mode Event
+                                            // Interrupt Mask
+#define TIMER_IMR_CAMIM         0x00000002  // GPTM Timer A Capture Mode Match
+                                            // Interrupt Mask
+#define TIMER_IMR_TATOIM        0x00000001  // GPTM Timer A Time-Out Interrupt
+                                            // Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_RIS register.
+//
+//*****************************************************************************
+#define TIMER_RIS_WUERIS        0x00010000  // 32/64-Bit Wide GPTM Write Update
+                                            // Error Raw Interrupt Status
+#define TIMER_RIS_TBMRIS        0x00000800  // GPTM Timer B Match Raw Interrupt
+#define TIMER_RIS_CBERIS        0x00000400  // GPTM Timer B Capture Mode Event
+                                            // Raw Interrupt
+#define TIMER_RIS_CBMRIS        0x00000200  // GPTM Timer B Capture Mode Match
+                                            // Raw Interrupt
+#define TIMER_RIS_TBTORIS       0x00000100  // GPTM Timer B Time-Out Raw
+                                            // Interrupt
+#define TIMER_RIS_TAMRIS        0x00000010  // GPTM Timer A Match Raw Interrupt
+#define TIMER_RIS_RTCRIS        0x00000008  // GPTM RTC Raw Interrupt
+#define TIMER_RIS_CAERIS        0x00000004  // GPTM Timer A Capture Mode Event
+                                            // Raw Interrupt
+#define TIMER_RIS_CAMRIS        0x00000002  // GPTM Timer A Capture Mode Match
+                                            // Raw Interrupt
+#define TIMER_RIS_TATORIS       0x00000001  // GPTM Timer A Time-Out Raw
+                                            // Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_MIS register.
+//
+//*****************************************************************************
+#define TIMER_MIS_WUEMIS        0x00010000  // 32/64-Bit Wide GPTM Write Update
+                                            // Error Masked Interrupt Status
+#define TIMER_MIS_TBMMIS        0x00000800  // GPTM Timer B Match Masked
+                                            // Interrupt
+#define TIMER_MIS_CBEMIS        0x00000400  // GPTM Timer B Capture Mode Event
+                                            // Masked Interrupt
+#define TIMER_MIS_CBMMIS        0x00000200  // GPTM Timer B Capture Mode Match
+                                            // Masked Interrupt
+#define TIMER_MIS_TBTOMIS       0x00000100  // GPTM Timer B Time-Out Masked
+                                            // Interrupt
+#define TIMER_MIS_TAMMIS        0x00000010  // GPTM Timer A Match Masked
+                                            // Interrupt
+#define TIMER_MIS_RTCMIS        0x00000008  // GPTM RTC Masked Interrupt
+#define TIMER_MIS_CAEMIS        0x00000004  // GPTM Timer A Capture Mode Event
+                                            // Masked Interrupt
+#define TIMER_MIS_CAMMIS        0x00000002  // GPTM Timer A Capture Mode Match
+                                            // Masked Interrupt
+#define TIMER_MIS_TATOMIS       0x00000001  // GPTM Timer A Time-Out Masked
+                                            // Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_ICR register.
+//
+//*****************************************************************************
+#define TIMER_ICR_WUECINT       0x00010000  // 32/64-Bit Wide GPTM Write Update
+                                            // Error Interrupt Clear
+#define TIMER_ICR_TBMCINT       0x00000800  // GPTM Timer B Match Interrupt
+                                            // Clear
+#define TIMER_ICR_CBECINT       0x00000400  // GPTM Timer B Capture Mode Event
+                                            // Interrupt Clear
+#define TIMER_ICR_CBMCINT       0x00000200  // GPTM Timer B Capture Mode Match
+                                            // Interrupt Clear
+#define TIMER_ICR_TBTOCINT      0x00000100  // GPTM Timer B Time-Out Interrupt
+                                            // Clear
+#define TIMER_ICR_TAMCINT       0x00000010  // GPTM Timer A Match Interrupt
+                                            // Clear
+#define TIMER_ICR_RTCCINT       0x00000008  // GPTM RTC Interrupt Clear
+#define TIMER_ICR_CAECINT       0x00000004  // GPTM Timer A Capture Mode Event
+                                            // Interrupt Clear
+#define TIMER_ICR_CAMCINT       0x00000002  // GPTM Timer A Capture Mode Match
+                                            // Interrupt Clear
+#define TIMER_ICR_TATOCINT      0x00000001  // GPTM Timer A Time-Out Raw
+                                            // Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TAILR register.
+//
+//*****************************************************************************
+#define TIMER_TAILR_M           0xFFFFFFFF  // GPTM Timer A Interval Load
+                                            // Register
+#define TIMER_TAILR_S           0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TBILR register.
+//
+//*****************************************************************************
+#define TIMER_TBILR_M           0xFFFFFFFF  // GPTM Timer B Interval Load
+                                            // Register
+#define TIMER_TBILR_S           0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TAMATCHR
+// register.
+//
+//*****************************************************************************
+#define TIMER_TAMATCHR_TAMR_M   0xFFFFFFFF  // GPTM Timer A Match Register
+#define TIMER_TAMATCHR_TAMR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TBMATCHR
+// register.
+//
+//*****************************************************************************
+#define TIMER_TBMATCHR_TBMR_M   0xFFFFFFFF  // GPTM Timer B Match Register
+#define TIMER_TBMATCHR_TBMR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TAPR register.
+//
+//*****************************************************************************
+#define TIMER_TAPR_TAPSRH_M     0x0000FF00  // GPTM Timer A Prescale High Byte
+#define TIMER_TAPR_TAPSR_M      0x000000FF  // GPTM Timer A Prescale
+#define TIMER_TAPR_TAPSRH_S     8
+#define TIMER_TAPR_TAPSR_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TBPR register.
+//
+//*****************************************************************************
+#define TIMER_TBPR_TBPSRH_M     0x0000FF00  // GPTM Timer B Prescale High Byte
+#define TIMER_TBPR_TBPSR_M      0x000000FF  // GPTM Timer B Prescale
+#define TIMER_TBPR_TBPSRH_S     8
+#define TIMER_TBPR_TBPSR_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TAPMR register.
+//
+//*****************************************************************************
+#define TIMER_TAPMR_TAPSMRH_M   0x0000FF00  // GPTM Timer A Prescale Match High
+                                            // Byte
+#define TIMER_TAPMR_TAPSMR_M    0x000000FF  // GPTM TimerA Prescale Match
+#define TIMER_TAPMR_TAPSMRH_S   8
+#define TIMER_TAPMR_TAPSMR_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TBPMR register.
+//
+//*****************************************************************************
+#define TIMER_TBPMR_TBPSMRH_M   0x0000FF00  // GPTM Timer B Prescale Match High
+                                            // Byte
+#define TIMER_TBPMR_TBPSMR_M    0x000000FF  // GPTM TimerB Prescale Match
+#define TIMER_TBPMR_TBPSMRH_S   8
+#define TIMER_TBPMR_TBPSMR_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TAR register.
+//
+//*****************************************************************************
+#define TIMER_TAR_M             0xFFFFFFFF  // GPTM Timer A Register
+#define TIMER_TAR_S             0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TBR register.
+//
+//*****************************************************************************
+#define TIMER_TBR_M             0xFFFFFFFF  // GPTM Timer B Register
+#define TIMER_TBR_S             0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TAV register.
+//
+//*****************************************************************************
+#define TIMER_TAV_M             0xFFFFFFFF  // GPTM Timer A Value
+#define TIMER_TAV_S             0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TBV register.
+//
+//*****************************************************************************
+#define TIMER_TBV_M             0xFFFFFFFF  // GPTM Timer B Value
+#define TIMER_TBV_S             0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_RTCPD register.
+//
+//*****************************************************************************
+#define TIMER_RTCPD_RTCPD_M     0x0000FFFF  // RTC Predivide Counter Value
+#define TIMER_RTCPD_RTCPD_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TAPS register.
+//
+//*****************************************************************************
+#define TIMER_TAPS_PSS_M        0x0000FFFF  // GPTM Timer A Prescaler Snapshot
+#define TIMER_TAPS_PSS_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TBPS register.
+//
+//*****************************************************************************
+#define TIMER_TBPS_PSS_M        0x0000FFFF  // GPTM Timer A Prescaler Value
+#define TIMER_TBPS_PSS_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TAPV register.
+//
+//*****************************************************************************
+#define TIMER_TAPV_PSV_M        0x0000FFFF  // GPTM Timer A Prescaler Value
+#define TIMER_TAPV_PSV_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TBPV register.
+//
+//*****************************************************************************
+#define TIMER_TBPV_PSV_M        0x0000FFFF  // GPTM Timer B Prescaler Value
+#define TIMER_TBPV_PSV_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_PP register.
+//
+//*****************************************************************************
+#define TIMER_PP_SIZE_M         0x0000000F  // Count Size
+#define TIMER_PP_SIZE_16        0x00000000  // Timer A and Timer B counters are
+                                            // 16 bits each with an 8-bit
+                                            // prescale counter
+#define TIMER_PP_SIZE_32        0x00000001  // Timer A and Timer B counters are
+                                            // 32 bits each with a 16-bit
+                                            // prescale counter
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_ACTSS register.
+//
+//*****************************************************************************
+#define ADC_ACTSS_BUSY          0x00010000  // ADC Busy
+#define ADC_ACTSS_ASEN3         0x00000008  // ADC SS3 Enable
+#define ADC_ACTSS_ASEN2         0x00000004  // ADC SS2 Enable
+#define ADC_ACTSS_ASEN1         0x00000002  // ADC SS1 Enable
+#define ADC_ACTSS_ASEN0         0x00000001  // ADC SS0 Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_RIS register.
+//
+//*****************************************************************************
+#define ADC_RIS_INRDC           0x00010000  // Digital Comparator Raw Interrupt
+                                            // Status
+#define ADC_RIS_INR3            0x00000008  // SS3 Raw Interrupt Status
+#define ADC_RIS_INR2            0x00000004  // SS2 Raw Interrupt Status
+#define ADC_RIS_INR1            0x00000002  // SS1 Raw Interrupt Status
+#define ADC_RIS_INR0            0x00000001  // SS0 Raw Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_IM register.
+//
+//*****************************************************************************
+#define ADC_IM_DCONSS3          0x00080000  // Digital Comparator Interrupt on
+                                            // SS3
+#define ADC_IM_DCONSS2          0x00040000  // Digital Comparator Interrupt on
+                                            // SS2
+#define ADC_IM_DCONSS1          0x00020000  // Digital Comparator Interrupt on
+                                            // SS1
+#define ADC_IM_DCONSS0          0x00010000  // Digital Comparator Interrupt on
+                                            // SS0
+#define ADC_IM_MASK3            0x00000008  // SS3 Interrupt Mask
+#define ADC_IM_MASK2            0x00000004  // SS2 Interrupt Mask
+#define ADC_IM_MASK1            0x00000002  // SS1 Interrupt Mask
+#define ADC_IM_MASK0            0x00000001  // SS0 Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_ISC register.
+//
+//*****************************************************************************
+#define ADC_ISC_DCINSS3         0x00080000  // Digital Comparator Interrupt
+                                            // Status on SS3
+#define ADC_ISC_DCINSS2         0x00040000  // Digital Comparator Interrupt
+                                            // Status on SS2
+#define ADC_ISC_DCINSS1         0x00020000  // Digital Comparator Interrupt
+                                            // Status on SS1
+#define ADC_ISC_DCINSS0         0x00010000  // Digital Comparator Interrupt
+                                            // Status on SS0
+#define ADC_ISC_IN3             0x00000008  // SS3 Interrupt Status and Clear
+#define ADC_ISC_IN2             0x00000004  // SS2 Interrupt Status and Clear
+#define ADC_ISC_IN1             0x00000002  // SS1 Interrupt Status and Clear
+#define ADC_ISC_IN0             0x00000001  // SS0 Interrupt Status and Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_OSTAT register.
+//
+//*****************************************************************************
+#define ADC_OSTAT_OV3           0x00000008  // SS3 FIFO Overflow
+#define ADC_OSTAT_OV2           0x00000004  // SS2 FIFO Overflow
+#define ADC_OSTAT_OV1           0x00000002  // SS1 FIFO Overflow
+#define ADC_OSTAT_OV0           0x00000001  // SS0 FIFO Overflow
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_EMUX register.
+//
+//*****************************************************************************
+#define ADC_EMUX_EM3_M          0x0000F000  // SS3 Trigger Select
+#define ADC_EMUX_EM3_PROCESSOR  0x00000000  // Processor (default)
+#define ADC_EMUX_EM3_COMP0      0x00001000  // Analog Comparator 0
+#define ADC_EMUX_EM3_COMP1      0x00002000  // Analog Comparator 1
+#define ADC_EMUX_EM3_EXTERNAL   0x00004000  // External (GPIO Pins)
+#define ADC_EMUX_EM3_TIMER      0x00005000  // Timer
+#define ADC_EMUX_EM3_PWM0       0x00006000  // PWM generator 0
+#define ADC_EMUX_EM3_PWM1       0x00007000  // PWM generator 1
+#define ADC_EMUX_EM3_PWM2       0x00008000  // PWM generator 2
+#define ADC_EMUX_EM3_PWM3       0x00009000  // PWM generator 3
+#define ADC_EMUX_EM3_ALWAYS     0x0000F000  // Always (continuously sample)
+#define ADC_EMUX_EM2_M          0x00000F00  // SS2 Trigger Select
+#define ADC_EMUX_EM2_PROCESSOR  0x00000000  // Processor (default)
+#define ADC_EMUX_EM2_COMP0      0x00000100  // Analog Comparator 0
+#define ADC_EMUX_EM2_COMP1      0x00000200  // Analog Comparator 1
+#define ADC_EMUX_EM2_EXTERNAL   0x00000400  // External (GPIO Pins)
+#define ADC_EMUX_EM2_TIMER      0x00000500  // Timer
+#define ADC_EMUX_EM2_PWM0       0x00000600  // PWM generator 0
+#define ADC_EMUX_EM2_PWM1       0x00000700  // PWM generator 1
+#define ADC_EMUX_EM2_PWM2       0x00000800  // PWM generator 2
+#define ADC_EMUX_EM2_PWM3       0x00000900  // PWM generator 3
+#define ADC_EMUX_EM2_ALWAYS     0x00000F00  // Always (continuously sample)
+#define ADC_EMUX_EM1_M          0x000000F0  // SS1 Trigger Select
+#define ADC_EMUX_EM1_PROCESSOR  0x00000000  // Processor (default)
+#define ADC_EMUX_EM1_COMP0      0x00000010  // Analog Comparator 0
+#define ADC_EMUX_EM1_COMP1      0x00000020  // Analog Comparator 1
+#define ADC_EMUX_EM1_EXTERNAL   0x00000040  // External (GPIO Pins)
+#define ADC_EMUX_EM1_TIMER      0x00000050  // Timer
+#define ADC_EMUX_EM1_PWM0       0x00000060  // PWM generator 0
+#define ADC_EMUX_EM1_PWM1       0x00000070  // PWM generator 1
+#define ADC_EMUX_EM1_PWM2       0x00000080  // PWM generator 2
+#define ADC_EMUX_EM1_PWM3       0x00000090  // PWM generator 3
+#define ADC_EMUX_EM1_ALWAYS     0x000000F0  // Always (continuously sample)
+#define ADC_EMUX_EM0_M          0x0000000F  // SS0 Trigger Select
+#define ADC_EMUX_EM0_PROCESSOR  0x00000000  // Processor (default)
+#define ADC_EMUX_EM0_COMP0      0x00000001  // Analog Comparator 0
+#define ADC_EMUX_EM0_COMP1      0x00000002  // Analog Comparator 1
+#define ADC_EMUX_EM0_EXTERNAL   0x00000004  // External (GPIO Pins)
+#define ADC_EMUX_EM0_TIMER      0x00000005  // Timer
+#define ADC_EMUX_EM0_PWM0       0x00000006  // PWM generator 0
+#define ADC_EMUX_EM0_PWM1       0x00000007  // PWM generator 1
+#define ADC_EMUX_EM0_PWM2       0x00000008  // PWM generator 2
+#define ADC_EMUX_EM0_PWM3       0x00000009  // PWM generator 3
+#define ADC_EMUX_EM0_ALWAYS     0x0000000F  // Always (continuously sample)
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_USTAT register.
+//
+//*****************************************************************************
+#define ADC_USTAT_UV3           0x00000008  // SS3 FIFO Underflow
+#define ADC_USTAT_UV2           0x00000004  // SS2 FIFO Underflow
+#define ADC_USTAT_UV1           0x00000002  // SS1 FIFO Underflow
+#define ADC_USTAT_UV0           0x00000001  // SS0 FIFO Underflow
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_TSSEL register.
+//
+//*****************************************************************************
+#define ADC_TSSEL_PS3_M         0x30000000  // Generator 3 PWM Module Trigger
+                                            // Select
+#define ADC_TSSEL_PS3_0         0x00000000  // Use Generator 3 (and its
+                                            // trigger) in PWM module 0
+#define ADC_TSSEL_PS3_1         0x10000000  // Use Generator 3 (and its
+                                            // trigger) in PWM module 1
+#define ADC_TSSEL_PS2_M         0x00300000  // Generator 2 PWM Module Trigger
+                                            // Select
+#define ADC_TSSEL_PS2_0         0x00000000  // Use Generator 2 (and its
+                                            // trigger) in PWM module 0
+#define ADC_TSSEL_PS2_1         0x00100000  // Use Generator 2 (and its
+                                            // trigger) in PWM module 1
+#define ADC_TSSEL_PS1_M         0x00003000  // Generator 1 PWM Module Trigger
+                                            // Select
+#define ADC_TSSEL_PS1_0         0x00000000  // Use Generator 1 (and its
+                                            // trigger) in PWM module 0
+#define ADC_TSSEL_PS1_1         0x00001000  // Use Generator 1 (and its
+                                            // trigger) in PWM module 1
+#define ADC_TSSEL_PS0_M         0x00000030  // Generator 0 PWM Module Trigger
+                                            // Select
+#define ADC_TSSEL_PS0_0         0x00000000  // Use Generator 0 (and its
+                                            // trigger) in PWM module 0
+#define ADC_TSSEL_PS0_1         0x00000010  // Use Generator 0 (and its
+                                            // trigger) in PWM module 1
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSPRI register.
+//
+//*****************************************************************************
+#define ADC_SSPRI_SS3_M         0x00003000  // SS3 Priority
+#define ADC_SSPRI_SS2_M         0x00000300  // SS2 Priority
+#define ADC_SSPRI_SS1_M         0x00000030  // SS1 Priority
+#define ADC_SSPRI_SS0_M         0x00000003  // SS0 Priority
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SPC register.
+//
+//*****************************************************************************
+#define ADC_SPC_PHASE_M         0x0000000F  // Phase Difference
+#define ADC_SPC_PHASE_0         0x00000000  // ADC sample lags by 0.0
+#define ADC_SPC_PHASE_22_5      0x00000001  // ADC sample lags by 22.5
+#define ADC_SPC_PHASE_45        0x00000002  // ADC sample lags by 45.0
+#define ADC_SPC_PHASE_67_5      0x00000003  // ADC sample lags by 67.5
+#define ADC_SPC_PHASE_90        0x00000004  // ADC sample lags by 90.0
+#define ADC_SPC_PHASE_112_5     0x00000005  // ADC sample lags by 112.5
+#define ADC_SPC_PHASE_135       0x00000006  // ADC sample lags by 135.0
+#define ADC_SPC_PHASE_157_5     0x00000007  // ADC sample lags by 157.5
+#define ADC_SPC_PHASE_180       0x00000008  // ADC sample lags by 180.0
+#define ADC_SPC_PHASE_202_5     0x00000009  // ADC sample lags by 202.5
+#define ADC_SPC_PHASE_225       0x0000000A  // ADC sample lags by 225.0
+#define ADC_SPC_PHASE_247_5     0x0000000B  // ADC sample lags by 247.5
+#define ADC_SPC_PHASE_270       0x0000000C  // ADC sample lags by 270.0
+#define ADC_SPC_PHASE_292_5     0x0000000D  // ADC sample lags by 292.5
+#define ADC_SPC_PHASE_315       0x0000000E  // ADC sample lags by 315.0
+#define ADC_SPC_PHASE_337_5     0x0000000F  // ADC sample lags by 337.5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_PSSI register.
+//
+//*****************************************************************************
+#define ADC_PSSI_GSYNC          0x80000000  // Global Synchronize
+#define ADC_PSSI_SYNCWAIT       0x08000000  // Synchronize Wait
+#define ADC_PSSI_SS3            0x00000008  // SS3 Initiate
+#define ADC_PSSI_SS2            0x00000004  // SS2 Initiate
+#define ADC_PSSI_SS1            0x00000002  // SS1 Initiate
+#define ADC_PSSI_SS0            0x00000001  // SS0 Initiate
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SAC register.
+//
+//*****************************************************************************
+#define ADC_SAC_AVG_M           0x00000007  // Hardware Averaging Control
+#define ADC_SAC_AVG_OFF         0x00000000  // No hardware oversampling
+#define ADC_SAC_AVG_2X          0x00000001  // 2x hardware oversampling
+#define ADC_SAC_AVG_4X          0x00000002  // 4x hardware oversampling
+#define ADC_SAC_AVG_8X          0x00000003  // 8x hardware oversampling
+#define ADC_SAC_AVG_16X         0x00000004  // 16x hardware oversampling
+#define ADC_SAC_AVG_32X         0x00000005  // 32x hardware oversampling
+#define ADC_SAC_AVG_64X         0x00000006  // 64x hardware oversampling
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCISC register.
+//
+//*****************************************************************************
+#define ADC_DCISC_DCINT7        0x00000080  // Digital Comparator 7 Interrupt
+                                            // Status and Clear
+#define ADC_DCISC_DCINT6        0x00000040  // Digital Comparator 6 Interrupt
+                                            // Status and Clear
+#define ADC_DCISC_DCINT5        0x00000020  // Digital Comparator 5 Interrupt
+                                            // Status and Clear
+#define ADC_DCISC_DCINT4        0x00000010  // Digital Comparator 4 Interrupt
+                                            // Status and Clear
+#define ADC_DCISC_DCINT3        0x00000008  // Digital Comparator 3 Interrupt
+                                            // Status and Clear
+#define ADC_DCISC_DCINT2        0x00000004  // Digital Comparator 2 Interrupt
+                                            // Status and Clear
+#define ADC_DCISC_DCINT1        0x00000002  // Digital Comparator 1 Interrupt
+                                            // Status and Clear
+#define ADC_DCISC_DCINT0        0x00000001  // Digital Comparator 0 Interrupt
+                                            // Status and Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_CTL register.
+//
+//*****************************************************************************
+#define ADC_CTL_VREF_M          0x00000001  // Voltage Reference Select
+#define ADC_CTL_VREF_INTERNAL   0x00000000  // VDDA and GNDA are the voltage
+                                            // references
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSMUX0 register.
+//
+//*****************************************************************************
+#define ADC_SSMUX0_MUX7_M       0xF0000000  // 8th Sample Input Select
+#define ADC_SSMUX0_MUX6_M       0x0F000000  // 7th Sample Input Select
+#define ADC_SSMUX0_MUX5_M       0x00F00000  // 6th Sample Input Select
+#define ADC_SSMUX0_MUX4_M       0x000F0000  // 5th Sample Input Select
+#define ADC_SSMUX0_MUX3_M       0x0000F000  // 4th Sample Input Select
+#define ADC_SSMUX0_MUX2_M       0x00000F00  // 3rd Sample Input Select
+#define ADC_SSMUX0_MUX1_M       0x000000F0  // 2nd Sample Input Select
+#define ADC_SSMUX0_MUX0_M       0x0000000F  // 1st Sample Input Select
+#define ADC_SSMUX0_MUX7_S       28
+#define ADC_SSMUX0_MUX6_S       24
+#define ADC_SSMUX0_MUX5_S       20
+#define ADC_SSMUX0_MUX4_S       16
+#define ADC_SSMUX0_MUX3_S       12
+#define ADC_SSMUX0_MUX2_S       8
+#define ADC_SSMUX0_MUX1_S       4
+#define ADC_SSMUX0_MUX0_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSCTL0 register.
+//
+//*****************************************************************************
+#define ADC_SSCTL0_TS7          0x80000000  // 8th Sample Temp Sensor Select
+#define ADC_SSCTL0_IE7          0x40000000  // 8th Sample Interrupt Enable
+#define ADC_SSCTL0_END7         0x20000000  // 8th Sample is End of Sequence
+#define ADC_SSCTL0_D7           0x10000000  // 8th Sample Differential Input
+                                            // Select
+#define ADC_SSCTL0_TS6          0x08000000  // 7th Sample Temp Sensor Select
+#define ADC_SSCTL0_IE6          0x04000000  // 7th Sample Interrupt Enable
+#define ADC_SSCTL0_END6         0x02000000  // 7th Sample is End of Sequence
+#define ADC_SSCTL0_D6           0x01000000  // 7th Sample Differential Input
+                                            // Select
+#define ADC_SSCTL0_TS5          0x00800000  // 6th Sample Temp Sensor Select
+#define ADC_SSCTL0_IE5          0x00400000  // 6th Sample Interrupt Enable
+#define ADC_SSCTL0_END5         0x00200000  // 6th Sample is End of Sequence
+#define ADC_SSCTL0_D5           0x00100000  // 6th Sample Differential Input
+                                            // Select
+#define ADC_SSCTL0_TS4          0x00080000  // 5th Sample Temp Sensor Select
+#define ADC_SSCTL0_IE4          0x00040000  // 5th Sample Interrupt Enable
+#define ADC_SSCTL0_END4         0x00020000  // 5th Sample is End of Sequence
+#define ADC_SSCTL0_D4           0x00010000  // 5th Sample Differential Input
+                                            // Select
+#define ADC_SSCTL0_TS3          0x00008000  // 4th Sample Temp Sensor Select
+#define ADC_SSCTL0_IE3          0x00004000  // 4th Sample Interrupt Enable
+#define ADC_SSCTL0_END3         0x00002000  // 4th Sample is End of Sequence
+#define ADC_SSCTL0_D3           0x00001000  // 4th Sample Differential Input
+                                            // Select
+#define ADC_SSCTL0_TS2          0x00000800  // 3rd Sample Temp Sensor Select
+#define ADC_SSCTL0_IE2          0x00000400  // 3rd Sample Interrupt Enable
+#define ADC_SSCTL0_END2         0x00000200  // 3rd Sample is End of Sequence
+#define ADC_SSCTL0_D2           0x00000100  // 3rd Sample Differential Input
+                                            // Select
+#define ADC_SSCTL0_TS1          0x00000080  // 2nd Sample Temp Sensor Select
+#define ADC_SSCTL0_IE1          0x00000040  // 2nd Sample Interrupt Enable
+#define ADC_SSCTL0_END1         0x00000020  // 2nd Sample is End of Sequence
+#define ADC_SSCTL0_D1           0x00000010  // 2nd Sample Differential Input
+                                            // Select
+#define ADC_SSCTL0_TS0          0x00000008  // 1st Sample Temp Sensor Select
+#define ADC_SSCTL0_IE0          0x00000004  // 1st Sample Interrupt Enable
+#define ADC_SSCTL0_END0         0x00000002  // 1st Sample is End of Sequence
+#define ADC_SSCTL0_D0           0x00000001  // 1st Sample Differential Input
+                                            // Select
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSFIFO0 register.
+//
+//*****************************************************************************
+#define ADC_SSFIFO0_DATA_M      0x00000FFF  // Conversion Result Data
+#define ADC_SSFIFO0_DATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSFSTAT0 register.
+//
+//*****************************************************************************
+#define ADC_SSFSTAT0_FULL       0x00001000  // FIFO Full
+#define ADC_SSFSTAT0_EMPTY      0x00000100  // FIFO Empty
+#define ADC_SSFSTAT0_HPTR_M     0x000000F0  // FIFO Head Pointer
+#define ADC_SSFSTAT0_TPTR_M     0x0000000F  // FIFO Tail Pointer
+#define ADC_SSFSTAT0_HPTR_S     4
+#define ADC_SSFSTAT0_TPTR_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSOP0 register.
+//
+//*****************************************************************************
+#define ADC_SSOP0_S7DCOP        0x10000000  // Sample 7 Digital Comparator
+                                            // Operation
+#define ADC_SSOP0_S6DCOP        0x01000000  // Sample 6 Digital Comparator
+                                            // Operation
+#define ADC_SSOP0_S5DCOP        0x00100000  // Sample 5 Digital Comparator
+                                            // Operation
+#define ADC_SSOP0_S4DCOP        0x00010000  // Sample 4 Digital Comparator
+                                            // Operation
+#define ADC_SSOP0_S3DCOP        0x00001000  // Sample 3 Digital Comparator
+                                            // Operation
+#define ADC_SSOP0_S2DCOP        0x00000100  // Sample 2 Digital Comparator
+                                            // Operation
+#define ADC_SSOP0_S1DCOP        0x00000010  // Sample 1 Digital Comparator
+                                            // Operation
+#define ADC_SSOP0_S0DCOP        0x00000001  // Sample 0 Digital Comparator
+                                            // Operation
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSDC0 register.
+//
+//*****************************************************************************
+#define ADC_SSDC0_S7DCSEL_M     0xF0000000  // Sample 7 Digital Comparator
+                                            // Select
+#define ADC_SSDC0_S6DCSEL_M     0x0F000000  // Sample 6 Digital Comparator
+                                            // Select
+#define ADC_SSDC0_S5DCSEL_M     0x00F00000  // Sample 5 Digital Comparator
+                                            // Select
+#define ADC_SSDC0_S4DCSEL_M     0x000F0000  // Sample 4 Digital Comparator
+                                            // Select
+#define ADC_SSDC0_S3DCSEL_M     0x0000F000  // Sample 3 Digital Comparator
+                                            // Select
+#define ADC_SSDC0_S2DCSEL_M     0x00000F00  // Sample 2 Digital Comparator
+                                            // Select
+#define ADC_SSDC0_S1DCSEL_M     0x000000F0  // Sample 1 Digital Comparator
+                                            // Select
+#define ADC_SSDC0_S0DCSEL_M     0x0000000F  // Sample 0 Digital Comparator
+                                            // Select
+#define ADC_SSDC0_S6DCSEL_S     24
+#define ADC_SSDC0_S5DCSEL_S     20
+#define ADC_SSDC0_S4DCSEL_S     16
+#define ADC_SSDC0_S3DCSEL_S     12
+#define ADC_SSDC0_S2DCSEL_S     8
+#define ADC_SSDC0_S1DCSEL_S     4
+#define ADC_SSDC0_S0DCSEL_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSMUX1 register.
+//
+//*****************************************************************************
+#define ADC_SSMUX1_MUX3_M       0x0000F000  // 4th Sample Input Select
+#define ADC_SSMUX1_MUX2_M       0x00000F00  // 3rd Sample Input Select
+#define ADC_SSMUX1_MUX1_M       0x000000F0  // 2nd Sample Input Select
+#define ADC_SSMUX1_MUX0_M       0x0000000F  // 1st Sample Input Select
+#define ADC_SSMUX1_MUX3_S       12
+#define ADC_SSMUX1_MUX2_S       8
+#define ADC_SSMUX1_MUX1_S       4
+#define ADC_SSMUX1_MUX0_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSCTL1 register.
+//
+//*****************************************************************************
+#define ADC_SSCTL1_TS3          0x00008000  // 4th Sample Temp Sensor Select
+#define ADC_SSCTL1_IE3          0x00004000  // 4th Sample Interrupt Enable
+#define ADC_SSCTL1_END3         0x00002000  // 4th Sample is End of Sequence
+#define ADC_SSCTL1_D3           0x00001000  // 4th Sample Differential Input
+                                            // Select
+#define ADC_SSCTL1_TS2          0x00000800  // 3rd Sample Temp Sensor Select
+#define ADC_SSCTL1_IE2          0x00000400  // 3rd Sample Interrupt Enable
+#define ADC_SSCTL1_END2         0x00000200  // 3rd Sample is End of Sequence
+#define ADC_SSCTL1_D2           0x00000100  // 3rd Sample Differential Input
+                                            // Select
+#define ADC_SSCTL1_TS1          0x00000080  // 2nd Sample Temp Sensor Select
+#define ADC_SSCTL1_IE1          0x00000040  // 2nd Sample Interrupt Enable
+#define ADC_SSCTL1_END1         0x00000020  // 2nd Sample is End of Sequence
+#define ADC_SSCTL1_D1           0x00000010  // 2nd Sample Differential Input
+                                            // Select
+#define ADC_SSCTL1_TS0          0x00000008  // 1st Sample Temp Sensor Select
+#define ADC_SSCTL1_IE0          0x00000004  // 1st Sample Interrupt Enable
+#define ADC_SSCTL1_END0         0x00000002  // 1st Sample is End of Sequence
+#define ADC_SSCTL1_D0           0x00000001  // 1st Sample Differential Input
+                                            // Select
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSFIFO1 register.
+//
+//*****************************************************************************
+#define ADC_SSFIFO1_DATA_M      0x00000FFF  // Conversion Result Data
+#define ADC_SSFIFO1_DATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSFSTAT1 register.
+//
+//*****************************************************************************
+#define ADC_SSFSTAT1_FULL       0x00001000  // FIFO Full
+#define ADC_SSFSTAT1_EMPTY      0x00000100  // FIFO Empty
+#define ADC_SSFSTAT1_HPTR_M     0x000000F0  // FIFO Head Pointer
+#define ADC_SSFSTAT1_TPTR_M     0x0000000F  // FIFO Tail Pointer
+#define ADC_SSFSTAT1_HPTR_S     4
+#define ADC_SSFSTAT1_TPTR_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSOP1 register.
+//
+//*****************************************************************************
+#define ADC_SSOP1_S3DCOP        0x00001000  // Sample 3 Digital Comparator
+                                            // Operation
+#define ADC_SSOP1_S2DCOP        0x00000100  // Sample 2 Digital Comparator
+                                            // Operation
+#define ADC_SSOP1_S1DCOP        0x00000010  // Sample 1 Digital Comparator
+                                            // Operation
+#define ADC_SSOP1_S0DCOP        0x00000001  // Sample 0 Digital Comparator
+                                            // Operation
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSDC1 register.
+//
+//*****************************************************************************
+#define ADC_SSDC1_S3DCSEL_M     0x0000F000  // Sample 3 Digital Comparator
+                                            // Select
+#define ADC_SSDC1_S2DCSEL_M     0x00000F00  // Sample 2 Digital Comparator
+                                            // Select
+#define ADC_SSDC1_S1DCSEL_M     0x000000F0  // Sample 1 Digital Comparator
+                                            // Select
+#define ADC_SSDC1_S0DCSEL_M     0x0000000F  // Sample 0 Digital Comparator
+                                            // Select
+#define ADC_SSDC1_S2DCSEL_S     8
+#define ADC_SSDC1_S1DCSEL_S     4
+#define ADC_SSDC1_S0DCSEL_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSMUX2 register.
+//
+//*****************************************************************************
+#define ADC_SSMUX2_MUX3_M       0x0000F000  // 4th Sample Input Select
+#define ADC_SSMUX2_MUX2_M       0x00000F00  // 3rd Sample Input Select
+#define ADC_SSMUX2_MUX1_M       0x000000F0  // 2nd Sample Input Select
+#define ADC_SSMUX2_MUX0_M       0x0000000F  // 1st Sample Input Select
+#define ADC_SSMUX2_MUX3_S       12
+#define ADC_SSMUX2_MUX2_S       8
+#define ADC_SSMUX2_MUX1_S       4
+#define ADC_SSMUX2_MUX0_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSCTL2 register.
+//
+//*****************************************************************************
+#define ADC_SSCTL2_TS3          0x00008000  // 4th Sample Temp Sensor Select
+#define ADC_SSCTL2_IE3          0x00004000  // 4th Sample Interrupt Enable
+#define ADC_SSCTL2_END3         0x00002000  // 4th Sample is End of Sequence
+#define ADC_SSCTL2_D3           0x00001000  // 4th Sample Differential Input
+                                            // Select
+#define ADC_SSCTL2_TS2          0x00000800  // 3rd Sample Temp Sensor Select
+#define ADC_SSCTL2_IE2          0x00000400  // 3rd Sample Interrupt Enable
+#define ADC_SSCTL2_END2         0x00000200  // 3rd Sample is End of Sequence
+#define ADC_SSCTL2_D2           0x00000100  // 3rd Sample Differential Input
+                                            // Select
+#define ADC_SSCTL2_TS1          0x00000080  // 2nd Sample Temp Sensor Select
+#define ADC_SSCTL2_IE1          0x00000040  // 2nd Sample Interrupt Enable
+#define ADC_SSCTL2_END1         0x00000020  // 2nd Sample is End of Sequence
+#define ADC_SSCTL2_D1           0x00000010  // 2nd Sample Differential Input
+                                            // Select
+#define ADC_SSCTL2_TS0          0x00000008  // 1st Sample Temp Sensor Select
+#define ADC_SSCTL2_IE0          0x00000004  // 1st Sample Interrupt Enable
+#define ADC_SSCTL2_END0         0x00000002  // 1st Sample is End of Sequence
+#define ADC_SSCTL2_D0           0x00000001  // 1st Sample Differential Input
+                                            // Select
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSFIFO2 register.
+//
+//*****************************************************************************
+#define ADC_SSFIFO2_DATA_M      0x00000FFF  // Conversion Result Data
+#define ADC_SSFIFO2_DATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSFSTAT2 register.
+//
+//*****************************************************************************
+#define ADC_SSFSTAT2_FULL       0x00001000  // FIFO Full
+#define ADC_SSFSTAT2_EMPTY      0x00000100  // FIFO Empty
+#define ADC_SSFSTAT2_HPTR_M     0x000000F0  // FIFO Head Pointer
+#define ADC_SSFSTAT2_TPTR_M     0x0000000F  // FIFO Tail Pointer
+#define ADC_SSFSTAT2_HPTR_S     4
+#define ADC_SSFSTAT2_TPTR_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSOP2 register.
+//
+//*****************************************************************************
+#define ADC_SSOP2_S3DCOP        0x00001000  // Sample 3 Digital Comparator
+                                            // Operation
+#define ADC_SSOP2_S2DCOP        0x00000100  // Sample 2 Digital Comparator
+                                            // Operation
+#define ADC_SSOP2_S1DCOP        0x00000010  // Sample 1 Digital Comparator
+                                            // Operation
+#define ADC_SSOP2_S0DCOP        0x00000001  // Sample 0 Digital Comparator
+                                            // Operation
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSDC2 register.
+//
+//*****************************************************************************
+#define ADC_SSDC2_S3DCSEL_M     0x0000F000  // Sample 3 Digital Comparator
+                                            // Select
+#define ADC_SSDC2_S2DCSEL_M     0x00000F00  // Sample 2 Digital Comparator
+                                            // Select
+#define ADC_SSDC2_S1DCSEL_M     0x000000F0  // Sample 1 Digital Comparator
+                                            // Select
+#define ADC_SSDC2_S0DCSEL_M     0x0000000F  // Sample 0 Digital Comparator
+                                            // Select
+#define ADC_SSDC2_S2DCSEL_S     8
+#define ADC_SSDC2_S1DCSEL_S     4
+#define ADC_SSDC2_S0DCSEL_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSMUX3 register.
+//
+//*****************************************************************************
+#define ADC_SSMUX3_MUX0_M       0x0000000F  // 1st Sample Input Select
+#define ADC_SSMUX3_MUX0_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSCTL3 register.
+//
+//*****************************************************************************
+#define ADC_SSCTL3_TS0          0x00000008  // 1st Sample Temp Sensor Select
+#define ADC_SSCTL3_IE0          0x00000004  // Sample Interrupt Enable
+#define ADC_SSCTL3_END0         0x00000002  // End of Sequence
+#define ADC_SSCTL3_D0           0x00000001  // Sample Differential Input Select
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSFIFO3 register.
+//
+//*****************************************************************************
+#define ADC_SSFIFO3_DATA_M      0x00000FFF  // Conversion Result Data
+#define ADC_SSFIFO3_DATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSFSTAT3 register.
+//
+//*****************************************************************************
+#define ADC_SSFSTAT3_FULL       0x00001000  // FIFO Full
+#define ADC_SSFSTAT3_EMPTY      0x00000100  // FIFO Empty
+#define ADC_SSFSTAT3_HPTR_M     0x000000F0  // FIFO Head Pointer
+#define ADC_SSFSTAT3_TPTR_M     0x0000000F  // FIFO Tail Pointer
+#define ADC_SSFSTAT3_HPTR_S     4
+#define ADC_SSFSTAT3_TPTR_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSOP3 register.
+//
+//*****************************************************************************
+#define ADC_SSOP3_S0DCOP        0x00000001  // Sample 0 Digital Comparator
+                                            // Operation
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSDC3 register.
+//
+//*****************************************************************************
+#define ADC_SSDC3_S0DCSEL_M     0x0000000F  // Sample 0 Digital Comparator
+                                            // Select
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCRIC register.
+//
+//*****************************************************************************
+#define ADC_DCRIC_DCTRIG7       0x00800000  // Digital Comparator Trigger 7
+#define ADC_DCRIC_DCTRIG6       0x00400000  // Digital Comparator Trigger 6
+#define ADC_DCRIC_DCTRIG5       0x00200000  // Digital Comparator Trigger 5
+#define ADC_DCRIC_DCTRIG4       0x00100000  // Digital Comparator Trigger 4
+#define ADC_DCRIC_DCTRIG3       0x00080000  // Digital Comparator Trigger 3
+#define ADC_DCRIC_DCTRIG2       0x00040000  // Digital Comparator Trigger 2
+#define ADC_DCRIC_DCTRIG1       0x00020000  // Digital Comparator Trigger 1
+#define ADC_DCRIC_DCTRIG0       0x00010000  // Digital Comparator Trigger 0
+#define ADC_DCRIC_DCINT7        0x00000080  // Digital Comparator Interrupt 7
+#define ADC_DCRIC_DCINT6        0x00000040  // Digital Comparator Interrupt 6
+#define ADC_DCRIC_DCINT5        0x00000020  // Digital Comparator Interrupt 5
+#define ADC_DCRIC_DCINT4        0x00000010  // Digital Comparator Interrupt 4
+#define ADC_DCRIC_DCINT3        0x00000008  // Digital Comparator Interrupt 3
+#define ADC_DCRIC_DCINT2        0x00000004  // Digital Comparator Interrupt 2
+#define ADC_DCRIC_DCINT1        0x00000002  // Digital Comparator Interrupt 1
+#define ADC_DCRIC_DCINT0        0x00000001  // Digital Comparator Interrupt 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCTL0 register.
+//
+//*****************************************************************************
+#define ADC_DCCTL0_CTE          0x00001000  // Comparison Trigger Enable
+#define ADC_DCCTL0_CTC_M        0x00000C00  // Comparison Trigger Condition
+#define ADC_DCCTL0_CTC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL0_CTC_MID      0x00000400  // Mid Band
+#define ADC_DCCTL0_CTC_HIGH     0x00000C00  // High Band
+#define ADC_DCCTL0_CTM_M        0x00000300  // Comparison Trigger Mode
+#define ADC_DCCTL0_CTM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL0_CTM_ONCE     0x00000100  // Once
+#define ADC_DCCTL0_CTM_HALWAYS  0x00000200  // Hysteresis Always
+#define ADC_DCCTL0_CTM_HONCE    0x00000300  // Hysteresis Once
+#define ADC_DCCTL0_CIE          0x00000010  // Comparison Interrupt Enable
+#define ADC_DCCTL0_CIC_M        0x0000000C  // Comparison Interrupt Condition
+#define ADC_DCCTL0_CIC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL0_CIC_MID      0x00000004  // Mid Band
+#define ADC_DCCTL0_CIC_HIGH     0x0000000C  // High Band
+#define ADC_DCCTL0_CIM_M        0x00000003  // Comparison Interrupt Mode
+#define ADC_DCCTL0_CIM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL0_CIM_ONCE     0x00000001  // Once
+#define ADC_DCCTL0_CIM_HALWAYS  0x00000002  // Hysteresis Always
+#define ADC_DCCTL0_CIM_HONCE    0x00000003  // Hysteresis Once
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCTL1 register.
+//
+//*****************************************************************************
+#define ADC_DCCTL1_CTE          0x00001000  // Comparison Trigger Enable
+#define ADC_DCCTL1_CTC_M        0x00000C00  // Comparison Trigger Condition
+#define ADC_DCCTL1_CTC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL1_CTC_MID      0x00000400  // Mid Band
+#define ADC_DCCTL1_CTC_HIGH     0x00000C00  // High Band
+#define ADC_DCCTL1_CTM_M        0x00000300  // Comparison Trigger Mode
+#define ADC_DCCTL1_CTM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL1_CTM_ONCE     0x00000100  // Once
+#define ADC_DCCTL1_CTM_HALWAYS  0x00000200  // Hysteresis Always
+#define ADC_DCCTL1_CTM_HONCE    0x00000300  // Hysteresis Once
+#define ADC_DCCTL1_CIE          0x00000010  // Comparison Interrupt Enable
+#define ADC_DCCTL1_CIC_M        0x0000000C  // Comparison Interrupt Condition
+#define ADC_DCCTL1_CIC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL1_CIC_MID      0x00000004  // Mid Band
+#define ADC_DCCTL1_CIC_HIGH     0x0000000C  // High Band
+#define ADC_DCCTL1_CIM_M        0x00000003  // Comparison Interrupt Mode
+#define ADC_DCCTL1_CIM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL1_CIM_ONCE     0x00000001  // Once
+#define ADC_DCCTL1_CIM_HALWAYS  0x00000002  // Hysteresis Always
+#define ADC_DCCTL1_CIM_HONCE    0x00000003  // Hysteresis Once
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCTL2 register.
+//
+//*****************************************************************************
+#define ADC_DCCTL2_CTE          0x00001000  // Comparison Trigger Enable
+#define ADC_DCCTL2_CTC_M        0x00000C00  // Comparison Trigger Condition
+#define ADC_DCCTL2_CTC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL2_CTC_MID      0x00000400  // Mid Band
+#define ADC_DCCTL2_CTC_HIGH     0x00000C00  // High Band
+#define ADC_DCCTL2_CTM_M        0x00000300  // Comparison Trigger Mode
+#define ADC_DCCTL2_CTM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL2_CTM_ONCE     0x00000100  // Once
+#define ADC_DCCTL2_CTM_HALWAYS  0x00000200  // Hysteresis Always
+#define ADC_DCCTL2_CTM_HONCE    0x00000300  // Hysteresis Once
+#define ADC_DCCTL2_CIE          0x00000010  // Comparison Interrupt Enable
+#define ADC_DCCTL2_CIC_M        0x0000000C  // Comparison Interrupt Condition
+#define ADC_DCCTL2_CIC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL2_CIC_MID      0x00000004  // Mid Band
+#define ADC_DCCTL2_CIC_HIGH     0x0000000C  // High Band
+#define ADC_DCCTL2_CIM_M        0x00000003  // Comparison Interrupt Mode
+#define ADC_DCCTL2_CIM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL2_CIM_ONCE     0x00000001  // Once
+#define ADC_DCCTL2_CIM_HALWAYS  0x00000002  // Hysteresis Always
+#define ADC_DCCTL2_CIM_HONCE    0x00000003  // Hysteresis Once
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCTL3 register.
+//
+//*****************************************************************************
+#define ADC_DCCTL3_CTE          0x00001000  // Comparison Trigger Enable
+#define ADC_DCCTL3_CTC_M        0x00000C00  // Comparison Trigger Condition
+#define ADC_DCCTL3_CTC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL3_CTC_MID      0x00000400  // Mid Band
+#define ADC_DCCTL3_CTC_HIGH     0x00000C00  // High Band
+#define ADC_DCCTL3_CTM_M        0x00000300  // Comparison Trigger Mode
+#define ADC_DCCTL3_CTM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL3_CTM_ONCE     0x00000100  // Once
+#define ADC_DCCTL3_CTM_HALWAYS  0x00000200  // Hysteresis Always
+#define ADC_DCCTL3_CTM_HONCE    0x00000300  // Hysteresis Once
+#define ADC_DCCTL3_CIE          0x00000010  // Comparison Interrupt Enable
+#define ADC_DCCTL3_CIC_M        0x0000000C  // Comparison Interrupt Condition
+#define ADC_DCCTL3_CIC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL3_CIC_MID      0x00000004  // Mid Band
+#define ADC_DCCTL3_CIC_HIGH     0x0000000C  // High Band
+#define ADC_DCCTL3_CIM_M        0x00000003  // Comparison Interrupt Mode
+#define ADC_DCCTL3_CIM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL3_CIM_ONCE     0x00000001  // Once
+#define ADC_DCCTL3_CIM_HALWAYS  0x00000002  // Hysteresis Always
+#define ADC_DCCTL3_CIM_HONCE    0x00000003  // Hysteresis Once
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCTL4 register.
+//
+//*****************************************************************************
+#define ADC_DCCTL4_CTE          0x00001000  // Comparison Trigger Enable
+#define ADC_DCCTL4_CTC_M        0x00000C00  // Comparison Trigger Condition
+#define ADC_DCCTL4_CTC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL4_CTC_MID      0x00000400  // Mid Band
+#define ADC_DCCTL4_CTC_HIGH     0x00000C00  // High Band
+#define ADC_DCCTL4_CTM_M        0x00000300  // Comparison Trigger Mode
+#define ADC_DCCTL4_CTM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL4_CTM_ONCE     0x00000100  // Once
+#define ADC_DCCTL4_CTM_HALWAYS  0x00000200  // Hysteresis Always
+#define ADC_DCCTL4_CTM_HONCE    0x00000300  // Hysteresis Once
+#define ADC_DCCTL4_CIE          0x00000010  // Comparison Interrupt Enable
+#define ADC_DCCTL4_CIC_M        0x0000000C  // Comparison Interrupt Condition
+#define ADC_DCCTL4_CIC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL4_CIC_MID      0x00000004  // Mid Band
+#define ADC_DCCTL4_CIC_HIGH     0x0000000C  // High Band
+#define ADC_DCCTL4_CIM_M        0x00000003  // Comparison Interrupt Mode
+#define ADC_DCCTL4_CIM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL4_CIM_ONCE     0x00000001  // Once
+#define ADC_DCCTL4_CIM_HALWAYS  0x00000002  // Hysteresis Always
+#define ADC_DCCTL4_CIM_HONCE    0x00000003  // Hysteresis Once
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCTL5 register.
+//
+//*****************************************************************************
+#define ADC_DCCTL5_CTE          0x00001000  // Comparison Trigger Enable
+#define ADC_DCCTL5_CTC_M        0x00000C00  // Comparison Trigger Condition
+#define ADC_DCCTL5_CTC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL5_CTC_MID      0x00000400  // Mid Band
+#define ADC_DCCTL5_CTC_HIGH     0x00000C00  // High Band
+#define ADC_DCCTL5_CTM_M        0x00000300  // Comparison Trigger Mode
+#define ADC_DCCTL5_CTM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL5_CTM_ONCE     0x00000100  // Once
+#define ADC_DCCTL5_CTM_HALWAYS  0x00000200  // Hysteresis Always
+#define ADC_DCCTL5_CTM_HONCE    0x00000300  // Hysteresis Once
+#define ADC_DCCTL5_CIE          0x00000010  // Comparison Interrupt Enable
+#define ADC_DCCTL5_CIC_M        0x0000000C  // Comparison Interrupt Condition
+#define ADC_DCCTL5_CIC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL5_CIC_MID      0x00000004  // Mid Band
+#define ADC_DCCTL5_CIC_HIGH     0x0000000C  // High Band
+#define ADC_DCCTL5_CIM_M        0x00000003  // Comparison Interrupt Mode
+#define ADC_DCCTL5_CIM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL5_CIM_ONCE     0x00000001  // Once
+#define ADC_DCCTL5_CIM_HALWAYS  0x00000002  // Hysteresis Always
+#define ADC_DCCTL5_CIM_HONCE    0x00000003  // Hysteresis Once
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCTL6 register.
+//
+//*****************************************************************************
+#define ADC_DCCTL6_CTE          0x00001000  // Comparison Trigger Enable
+#define ADC_DCCTL6_CTC_M        0x00000C00  // Comparison Trigger Condition
+#define ADC_DCCTL6_CTC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL6_CTC_MID      0x00000400  // Mid Band
+#define ADC_DCCTL6_CTC_HIGH     0x00000C00  // High Band
+#define ADC_DCCTL6_CTM_M        0x00000300  // Comparison Trigger Mode
+#define ADC_DCCTL6_CTM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL6_CTM_ONCE     0x00000100  // Once
+#define ADC_DCCTL6_CTM_HALWAYS  0x00000200  // Hysteresis Always
+#define ADC_DCCTL6_CTM_HONCE    0x00000300  // Hysteresis Once
+#define ADC_DCCTL6_CIE          0x00000010  // Comparison Interrupt Enable
+#define ADC_DCCTL6_CIC_M        0x0000000C  // Comparison Interrupt Condition
+#define ADC_DCCTL6_CIC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL6_CIC_MID      0x00000004  // Mid Band
+#define ADC_DCCTL6_CIC_HIGH     0x0000000C  // High Band
+#define ADC_DCCTL6_CIM_M        0x00000003  // Comparison Interrupt Mode
+#define ADC_DCCTL6_CIM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL6_CIM_ONCE     0x00000001  // Once
+#define ADC_DCCTL6_CIM_HALWAYS  0x00000002  // Hysteresis Always
+#define ADC_DCCTL6_CIM_HONCE    0x00000003  // Hysteresis Once
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCTL7 register.
+//
+//*****************************************************************************
+#define ADC_DCCTL7_CTE          0x00001000  // Comparison Trigger Enable
+#define ADC_DCCTL7_CTC_M        0x00000C00  // Comparison Trigger Condition
+#define ADC_DCCTL7_CTC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL7_CTC_MID      0x00000400  // Mid Band
+#define ADC_DCCTL7_CTC_HIGH     0x00000C00  // High Band
+#define ADC_DCCTL7_CTM_M        0x00000300  // Comparison Trigger Mode
+#define ADC_DCCTL7_CTM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL7_CTM_ONCE     0x00000100  // Once
+#define ADC_DCCTL7_CTM_HALWAYS  0x00000200  // Hysteresis Always
+#define ADC_DCCTL7_CTM_HONCE    0x00000300  // Hysteresis Once
+#define ADC_DCCTL7_CIE          0x00000010  // Comparison Interrupt Enable
+#define ADC_DCCTL7_CIC_M        0x0000000C  // Comparison Interrupt Condition
+#define ADC_DCCTL7_CIC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL7_CIC_MID      0x00000004  // Mid Band
+#define ADC_DCCTL7_CIC_HIGH     0x0000000C  // High Band
+#define ADC_DCCTL7_CIM_M        0x00000003  // Comparison Interrupt Mode
+#define ADC_DCCTL7_CIM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL7_CIM_ONCE     0x00000001  // Once
+#define ADC_DCCTL7_CIM_HALWAYS  0x00000002  // Hysteresis Always
+#define ADC_DCCTL7_CIM_HONCE    0x00000003  // Hysteresis Once
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCMP0 register.
+//
+//*****************************************************************************
+#define ADC_DCCMP0_COMP1_M      0x0FFF0000  // Compare 1
+#define ADC_DCCMP0_COMP0_M      0x00000FFF  // Compare 0
+#define ADC_DCCMP0_COMP1_S      16
+#define ADC_DCCMP0_COMP0_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCMP1 register.
+//
+//*****************************************************************************
+#define ADC_DCCMP1_COMP1_M      0x0FFF0000  // Compare 1
+#define ADC_DCCMP1_COMP0_M      0x00000FFF  // Compare 0
+#define ADC_DCCMP1_COMP1_S      16
+#define ADC_DCCMP1_COMP0_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCMP2 register.
+//
+//*****************************************************************************
+#define ADC_DCCMP2_COMP1_M      0x0FFF0000  // Compare 1
+#define ADC_DCCMP2_COMP0_M      0x00000FFF  // Compare 0
+#define ADC_DCCMP2_COMP1_S      16
+#define ADC_DCCMP2_COMP0_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCMP3 register.
+//
+//*****************************************************************************
+#define ADC_DCCMP3_COMP1_M      0x0FFF0000  // Compare 1
+#define ADC_DCCMP3_COMP0_M      0x00000FFF  // Compare 0
+#define ADC_DCCMP3_COMP1_S      16
+#define ADC_DCCMP3_COMP0_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCMP4 register.
+//
+//*****************************************************************************
+#define ADC_DCCMP4_COMP1_M      0x0FFF0000  // Compare 1
+#define ADC_DCCMP4_COMP0_M      0x00000FFF  // Compare 0
+#define ADC_DCCMP4_COMP1_S      16
+#define ADC_DCCMP4_COMP0_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCMP5 register.
+//
+//*****************************************************************************
+#define ADC_DCCMP5_COMP1_M      0x0FFF0000  // Compare 1
+#define ADC_DCCMP5_COMP0_M      0x00000FFF  // Compare 0
+#define ADC_DCCMP5_COMP1_S      16
+#define ADC_DCCMP5_COMP0_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCMP6 register.
+//
+//*****************************************************************************
+#define ADC_DCCMP6_COMP1_M      0x0FFF0000  // Compare 1
+#define ADC_DCCMP6_COMP0_M      0x00000FFF  // Compare 0
+#define ADC_DCCMP6_COMP1_S      16
+#define ADC_DCCMP6_COMP0_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCMP7 register.
+//
+//*****************************************************************************
+#define ADC_DCCMP7_COMP1_M      0x0FFF0000  // Compare 1
+#define ADC_DCCMP7_COMP0_M      0x00000FFF  // Compare 0
+#define ADC_DCCMP7_COMP1_S      16
+#define ADC_DCCMP7_COMP0_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_PP register.
+//
+//*****************************************************************************
+#define ADC_PP_TS               0x00800000  // Temperature Sensor
+#define ADC_PP_RSL_M            0x007C0000  // Resolution
+#define ADC_PP_TYPE_M           0x00030000  // ADC Architecture
+#define ADC_PP_TYPE_SAR         0x00000000  // SAR
+#define ADC_PP_DC_M             0x0000FC00  // Digital Comparator Count
+#define ADC_PP_CH_M             0x000003F0  // ADC Channel Count
+#define ADC_PP_MSR_M            0x0000000F  // Maximum ADC Sample Rate
+#define ADC_PP_MSR_125K         0x00000001  // 125 ksps
+#define ADC_PP_MSR_250K         0x00000003  // 250 ksps
+#define ADC_PP_MSR_500K         0x00000005  // 500 ksps
+#define ADC_PP_MSR_1M           0x00000007  // 1 Msps
+#define ADC_PP_RSL_S            18
+#define ADC_PP_DC_S             10
+#define ADC_PP_CH_S             4
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_PC register.
+//
+//*****************************************************************************
+#define ADC_PC_SR_M             0x0000000F  // ADC Sample Rate
+#define ADC_PC_SR_125K          0x00000001  // 125 ksps
+#define ADC_PC_SR_250K          0x00000003  // 250 ksps
+#define ADC_PC_SR_500K          0x00000005  // 500 ksps
+#define ADC_PC_SR_1M            0x00000007  // 1 Msps
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_CC register.
+//
+//*****************************************************************************
+#define ADC_CC_CS_M             0x0000000F  // ADC Clock Source
+#define ADC_CC_CS_SYSPLL        0x00000000  // PLL VCO divided by CLKDIV
+#define ADC_CC_CS_PIOSC         0x00000001  // PIOSC
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the COMP_O_ACMIS register.
+//
+//*****************************************************************************
+#define COMP_ACMIS_IN1          0x00000002  // Comparator 1 Masked Interrupt
+                                            // Status
+#define COMP_ACMIS_IN0          0x00000001  // Comparator 0 Masked Interrupt
+                                            // Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the COMP_O_ACRIS register.
+//
+//*****************************************************************************
+#define COMP_ACRIS_IN1          0x00000002  // Comparator 1 Interrupt Status
+#define COMP_ACRIS_IN0          0x00000001  // Comparator 0 Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the COMP_O_ACINTEN register.
+//
+//*****************************************************************************
+#define COMP_ACINTEN_IN1        0x00000002  // Comparator 1 Interrupt Enable
+#define COMP_ACINTEN_IN0        0x00000001  // Comparator 0 Interrupt Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the COMP_O_ACREFCTL
+// register.
+//
+//*****************************************************************************
+#define COMP_ACREFCTL_EN        0x00000200  // Resistor Ladder Enable
+#define COMP_ACREFCTL_RNG       0x00000100  // Resistor Ladder Range
+#define COMP_ACREFCTL_VREF_M    0x0000000F  // Resistor Ladder Voltage Ref
+#define COMP_ACREFCTL_VREF_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the COMP_O_ACSTAT0 register.
+//
+//*****************************************************************************
+#define COMP_ACSTAT0_OVAL       0x00000002  // Comparator Output Value
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the COMP_O_ACCTL0 register.
+//
+//*****************************************************************************
+#define COMP_ACCTL0_TOEN        0x00000800  // Trigger Output Enable
+#define COMP_ACCTL0_ASRCP_M     0x00000600  // Analog Source Positive
+#define COMP_ACCTL0_ASRCP_PIN   0x00000000  // Pin value of Cn+
+#define COMP_ACCTL0_ASRCP_PIN0  0x00000200  // Pin value of C0+
+#define COMP_ACCTL0_ASRCP_REF   0x00000400  // Internal voltage reference
+#define COMP_ACCTL0_TSLVAL      0x00000080  // Trigger Sense Level Value
+#define COMP_ACCTL0_TSEN_M      0x00000060  // Trigger Sense
+#define COMP_ACCTL0_TSEN_LEVEL  0x00000000  // Level sense, see TSLVAL
+#define COMP_ACCTL0_TSEN_FALL   0x00000020  // Falling edge
+#define COMP_ACCTL0_TSEN_RISE   0x00000040  // Rising edge
+#define COMP_ACCTL0_TSEN_BOTH   0x00000060  // Either edge
+#define COMP_ACCTL0_ISLVAL      0x00000010  // Interrupt Sense Level Value
+#define COMP_ACCTL0_ISEN_M      0x0000000C  // Interrupt Sense
+#define COMP_ACCTL0_ISEN_LEVEL  0x00000000  // Level sense, see ISLVAL
+#define COMP_ACCTL0_ISEN_FALL   0x00000004  // Falling edge
+#define COMP_ACCTL0_ISEN_RISE   0x00000008  // Rising edge
+#define COMP_ACCTL0_ISEN_BOTH   0x0000000C  // Either edge
+#define COMP_ACCTL0_CINV        0x00000002  // Comparator Output Invert
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the COMP_O_ACSTAT1 register.
+//
+//*****************************************************************************
+#define COMP_ACSTAT1_OVAL       0x00000002  // Comparator Output Value
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the COMP_O_ACCTL1 register.
+//
+//*****************************************************************************
+#define COMP_ACCTL1_TOEN        0x00000800  // Trigger Output Enable
+#define COMP_ACCTL1_ASRCP_M     0x00000600  // Analog Source Positive
+#define COMP_ACCTL1_ASRCP_PIN   0x00000000  // Pin value of Cn+
+#define COMP_ACCTL1_ASRCP_PIN0  0x00000200  // Pin value of C0+
+#define COMP_ACCTL1_ASRCP_REF   0x00000400  // Internal voltage reference
+#define COMP_ACCTL1_TSLVAL      0x00000080  // Trigger Sense Level Value
+#define COMP_ACCTL1_TSEN_M      0x00000060  // Trigger Sense
+#define COMP_ACCTL1_TSEN_LEVEL  0x00000000  // Level sense, see TSLVAL
+#define COMP_ACCTL1_TSEN_FALL   0x00000020  // Falling edge
+#define COMP_ACCTL1_TSEN_RISE   0x00000040  // Rising edge
+#define COMP_ACCTL1_TSEN_BOTH   0x00000060  // Either edge
+#define COMP_ACCTL1_ISLVAL      0x00000010  // Interrupt Sense Level Value
+#define COMP_ACCTL1_ISEN_M      0x0000000C  // Interrupt Sense
+#define COMP_ACCTL1_ISEN_LEVEL  0x00000000  // Level sense, see ISLVAL
+#define COMP_ACCTL1_ISEN_FALL   0x00000004  // Falling edge
+#define COMP_ACCTL1_ISEN_RISE   0x00000008  // Rising edge
+#define COMP_ACCTL1_ISEN_BOTH   0x0000000C  // Either edge
+#define COMP_ACCTL1_CINV        0x00000002  // Comparator Output Invert
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the COMP_O_PP register.
+//
+//*****************************************************************************
+#define COMP_PP_C1O             0x00020000  // Comparator Output 1 Present
+#define COMP_PP_C0O             0x00010000  // Comparator Output 0 Present
+#define COMP_PP_CMP1            0x00000002  // Comparator 1 Present
+#define COMP_PP_CMP0            0x00000001  // Comparator 0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_CTL register.
+//
+//*****************************************************************************
+#define CAN_CTL_TEST            0x00000080  // Test Mode Enable
+#define CAN_CTL_CCE             0x00000040  // Configuration Change Enable
+#define CAN_CTL_DAR             0x00000020  // Disable Automatic-Retransmission
+#define CAN_CTL_EIE             0x00000008  // Error Interrupt Enable
+#define CAN_CTL_SIE             0x00000004  // Status Interrupt Enable
+#define CAN_CTL_IE              0x00000002  // CAN Interrupt Enable
+#define CAN_CTL_INIT            0x00000001  // Initialization
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_STS register.
+//
+//*****************************************************************************
+#define CAN_STS_BOFF            0x00000080  // Bus-Off Status
+#define CAN_STS_EWARN           0x00000040  // Warning Status
+#define CAN_STS_EPASS           0x00000020  // Error Passive
+#define CAN_STS_RXOK            0x00000010  // Received a Message Successfully
+#define CAN_STS_TXOK            0x00000008  // Transmitted a Message
+                                            // Successfully
+#define CAN_STS_LEC_M           0x00000007  // Last Error Code
+#define CAN_STS_LEC_NONE        0x00000000  // No Error
+#define CAN_STS_LEC_STUFF       0x00000001  // Stuff Error
+#define CAN_STS_LEC_FORM        0x00000002  // Format Error
+#define CAN_STS_LEC_ACK         0x00000003  // ACK Error
+#define CAN_STS_LEC_BIT1        0x00000004  // Bit 1 Error
+#define CAN_STS_LEC_BIT0        0x00000005  // Bit 0 Error
+#define CAN_STS_LEC_CRC         0x00000006  // CRC Error
+#define CAN_STS_LEC_NOEVENT     0x00000007  // No Event
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_ERR register.
+//
+//*****************************************************************************
+#define CAN_ERR_RP              0x00008000  // Received Error Passive
+#define CAN_ERR_REC_M           0x00007F00  // Receive Error Counter
+#define CAN_ERR_TEC_M           0x000000FF  // Transmit Error Counter
+#define CAN_ERR_REC_S           8
+#define CAN_ERR_TEC_S           0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_BIT register.
+//
+//*****************************************************************************
+#define CAN_BIT_TSEG2_M         0x00007000  // Time Segment after Sample Point
+#define CAN_BIT_TSEG1_M         0x00000F00  // Time Segment Before Sample Point
+#define CAN_BIT_SJW_M           0x000000C0  // (Re)Synchronization Jump Width
+#define CAN_BIT_BRP_M           0x0000003F  // Baud Rate Prescaler
+#define CAN_BIT_TSEG2_S         12
+#define CAN_BIT_TSEG1_S         8
+#define CAN_BIT_SJW_S           6
+#define CAN_BIT_BRP_S           0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_INT register.
+//
+//*****************************************************************************
+#define CAN_INT_INTID_M         0x0000FFFF  // Interrupt Identifier
+#define CAN_INT_INTID_NONE      0x00000000  // No interrupt pending
+#define CAN_INT_INTID_STATUS    0x00008000  // Status Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_TST register.
+//
+//*****************************************************************************
+#define CAN_TST_RX              0x00000080  // Receive Observation
+#define CAN_TST_TX_M            0x00000060  // Transmit Control
+#define CAN_TST_TX_CANCTL       0x00000000  // CAN Module Control
+#define CAN_TST_TX_SAMPLE       0x00000020  // Sample Point
+#define CAN_TST_TX_DOMINANT     0x00000040  // Driven Low
+#define CAN_TST_TX_RECESSIVE    0x00000060  // Driven High
+#define CAN_TST_LBACK           0x00000010  // Loopback Mode
+#define CAN_TST_SILENT          0x00000008  // Silent Mode
+#define CAN_TST_BASIC           0x00000004  // Basic Mode
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_BRPE register.
+//
+//*****************************************************************************
+#define CAN_BRPE_BRPE_M         0x0000000F  // Baud Rate Prescaler Extension
+#define CAN_BRPE_BRPE_S         0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF1CRQ register.
+//
+//*****************************************************************************
+#define CAN_IF1CRQ_BUSY         0x00008000  // Busy Flag
+#define CAN_IF1CRQ_MNUM_M       0x0000003F  // Message Number
+#define CAN_IF1CRQ_MNUM_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF1CMSK register.
+//
+//*****************************************************************************
+#define CAN_IF1CMSK_WRNRD       0x00000080  // Write, Not Read
+#define CAN_IF1CMSK_MASK        0x00000040  // Access Mask Bits
+#define CAN_IF1CMSK_ARB         0x00000020  // Access Arbitration Bits
+#define CAN_IF1CMSK_CONTROL     0x00000010  // Access Control Bits
+#define CAN_IF1CMSK_CLRINTPND   0x00000008  // Clear Interrupt Pending Bit
+#define CAN_IF1CMSK_NEWDAT      0x00000004  // Access New Data
+#define CAN_IF1CMSK_TXRQST      0x00000004  // Access Transmission Request
+#define CAN_IF1CMSK_DATAA       0x00000002  // Access Data Byte 0 to 3
+#define CAN_IF1CMSK_DATAB       0x00000001  // Access Data Byte 4 to 7
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF1MSK1 register.
+//
+//*****************************************************************************
+#define CAN_IF1MSK1_IDMSK_M     0x0000FFFF  // Identifier Mask
+#define CAN_IF1MSK1_IDMSK_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF1MSK2 register.
+//
+//*****************************************************************************
+#define CAN_IF1MSK2_MXTD        0x00008000  // Mask Extended Identifier
+#define CAN_IF1MSK2_MDIR        0x00004000  // Mask Message Direction
+#define CAN_IF1MSK2_IDMSK_M     0x00001FFF  // Identifier Mask
+#define CAN_IF1MSK2_IDMSK_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF1ARB1 register.
+//
+//*****************************************************************************
+#define CAN_IF1ARB1_ID_M        0x0000FFFF  // Message Identifier
+#define CAN_IF1ARB1_ID_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF1ARB2 register.
+//
+//*****************************************************************************
+#define CAN_IF1ARB2_MSGVAL      0x00008000  // Message Valid
+#define CAN_IF1ARB2_XTD         0x00004000  // Extended Identifier
+#define CAN_IF1ARB2_DIR         0x00002000  // Message Direction
+#define CAN_IF1ARB2_ID_M        0x00001FFF  // Message Identifier
+#define CAN_IF1ARB2_ID_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF1MCTL register.
+//
+//*****************************************************************************
+#define CAN_IF1MCTL_NEWDAT      0x00008000  // New Data
+#define CAN_IF1MCTL_MSGLST      0x00004000  // Message Lost
+#define CAN_IF1MCTL_INTPND      0x00002000  // Interrupt Pending
+#define CAN_IF1MCTL_UMASK       0x00001000  // Use Acceptance Mask
+#define CAN_IF1MCTL_TXIE        0x00000800  // Transmit Interrupt Enable
+#define CAN_IF1MCTL_RXIE        0x00000400  // Receive Interrupt Enable
+#define CAN_IF1MCTL_RMTEN       0x00000200  // Remote Enable
+#define CAN_IF1MCTL_TXRQST      0x00000100  // Transmit Request
+#define CAN_IF1MCTL_EOB         0x00000080  // End of Buffer
+#define CAN_IF1MCTL_DLC_M       0x0000000F  // Data Length Code
+#define CAN_IF1MCTL_DLC_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF1DA1 register.
+//
+//*****************************************************************************
+#define CAN_IF1DA1_DATA_M       0x0000FFFF  // Data
+#define CAN_IF1DA1_DATA_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF1DA2 register.
+//
+//*****************************************************************************
+#define CAN_IF1DA2_DATA_M       0x0000FFFF  // Data
+#define CAN_IF1DA2_DATA_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF1DB1 register.
+//
+//*****************************************************************************
+#define CAN_IF1DB1_DATA_M       0x0000FFFF  // Data
+#define CAN_IF1DB1_DATA_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF1DB2 register.
+//
+//*****************************************************************************
+#define CAN_IF1DB2_DATA_M       0x0000FFFF  // Data
+#define CAN_IF1DB2_DATA_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF2CRQ register.
+//
+//*****************************************************************************
+#define CAN_IF2CRQ_BUSY         0x00008000  // Busy Flag
+#define CAN_IF2CRQ_MNUM_M       0x0000003F  // Message Number
+#define CAN_IF2CRQ_MNUM_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF2CMSK register.
+//
+//*****************************************************************************
+#define CAN_IF2CMSK_WRNRD       0x00000080  // Write, Not Read
+#define CAN_IF2CMSK_MASK        0x00000040  // Access Mask Bits
+#define CAN_IF2CMSK_ARB         0x00000020  // Access Arbitration Bits
+#define CAN_IF2CMSK_CONTROL     0x00000010  // Access Control Bits
+#define CAN_IF2CMSK_CLRINTPND   0x00000008  // Clear Interrupt Pending Bit
+#define CAN_IF2CMSK_NEWDAT      0x00000004  // Access New Data
+#define CAN_IF2CMSK_TXRQST      0x00000004  // Access Transmission Request
+#define CAN_IF2CMSK_DATAA       0x00000002  // Access Data Byte 0 to 3
+#define CAN_IF2CMSK_DATAB       0x00000001  // Access Data Byte 4 to 7
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF2MSK1 register.
+//
+//*****************************************************************************
+#define CAN_IF2MSK1_IDMSK_M     0x0000FFFF  // Identifier Mask
+#define CAN_IF2MSK1_IDMSK_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF2MSK2 register.
+//
+//*****************************************************************************
+#define CAN_IF2MSK2_MXTD        0x00008000  // Mask Extended Identifier
+#define CAN_IF2MSK2_MDIR        0x00004000  // Mask Message Direction
+#define CAN_IF2MSK2_IDMSK_M     0x00001FFF  // Identifier Mask
+#define CAN_IF2MSK2_IDMSK_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF2ARB1 register.
+//
+//*****************************************************************************
+#define CAN_IF2ARB1_ID_M        0x0000FFFF  // Message Identifier
+#define CAN_IF2ARB1_ID_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF2ARB2 register.
+//
+//*****************************************************************************
+#define CAN_IF2ARB2_MSGVAL      0x00008000  // Message Valid
+#define CAN_IF2ARB2_XTD         0x00004000  // Extended Identifier
+#define CAN_IF2ARB2_DIR         0x00002000  // Message Direction
+#define CAN_IF2ARB2_ID_M        0x00001FFF  // Message Identifier
+#define CAN_IF2ARB2_ID_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF2MCTL register.
+//
+//*****************************************************************************
+#define CAN_IF2MCTL_NEWDAT      0x00008000  // New Data
+#define CAN_IF2MCTL_MSGLST      0x00004000  // Message Lost
+#define CAN_IF2MCTL_INTPND      0x00002000  // Interrupt Pending
+#define CAN_IF2MCTL_UMASK       0x00001000  // Use Acceptance Mask
+#define CAN_IF2MCTL_TXIE        0x00000800  // Transmit Interrupt Enable
+#define CAN_IF2MCTL_RXIE        0x00000400  // Receive Interrupt Enable
+#define CAN_IF2MCTL_RMTEN       0x00000200  // Remote Enable
+#define CAN_IF2MCTL_TXRQST      0x00000100  // Transmit Request
+#define CAN_IF2MCTL_EOB         0x00000080  // End of Buffer
+#define CAN_IF2MCTL_DLC_M       0x0000000F  // Data Length Code
+#define CAN_IF2MCTL_DLC_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF2DA1 register.
+//
+//*****************************************************************************
+#define CAN_IF2DA1_DATA_M       0x0000FFFF  // Data
+#define CAN_IF2DA1_DATA_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF2DA2 register.
+//
+//*****************************************************************************
+#define CAN_IF2DA2_DATA_M       0x0000FFFF  // Data
+#define CAN_IF2DA2_DATA_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF2DB1 register.
+//
+//*****************************************************************************
+#define CAN_IF2DB1_DATA_M       0x0000FFFF  // Data
+#define CAN_IF2DB1_DATA_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF2DB2 register.
+//
+//*****************************************************************************
+#define CAN_IF2DB2_DATA_M       0x0000FFFF  // Data
+#define CAN_IF2DB2_DATA_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_TXRQ1 register.
+//
+//*****************************************************************************
+#define CAN_TXRQ1_TXRQST_M      0x0000FFFF  // Transmission Request Bits
+#define CAN_TXRQ1_TXRQST_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_TXRQ2 register.
+//
+//*****************************************************************************
+#define CAN_TXRQ2_TXRQST_M      0x0000FFFF  // Transmission Request Bits
+#define CAN_TXRQ2_TXRQST_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_NWDA1 register.
+//
+//*****************************************************************************
+#define CAN_NWDA1_NEWDAT_M      0x0000FFFF  // New Data Bits
+#define CAN_NWDA1_NEWDAT_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_NWDA2 register.
+//
+//*****************************************************************************
+#define CAN_NWDA2_NEWDAT_M      0x0000FFFF  // New Data Bits
+#define CAN_NWDA2_NEWDAT_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_MSG1INT register.
+//
+//*****************************************************************************
+#define CAN_MSG1INT_INTPND_M    0x0000FFFF  // Interrupt Pending Bits
+#define CAN_MSG1INT_INTPND_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_MSG2INT register.
+//
+//*****************************************************************************
+#define CAN_MSG2INT_INTPND_M    0x0000FFFF  // Interrupt Pending Bits
+#define CAN_MSG2INT_INTPND_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_MSG1VAL register.
+//
+//*****************************************************************************
+#define CAN_MSG1VAL_MSGVAL_M    0x0000FFFF  // Message Valid Bits
+#define CAN_MSG1VAL_MSGVAL_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_MSG2VAL register.
+//
+//*****************************************************************************
+#define CAN_MSG2VAL_MSGVAL_M    0x0000FFFF  // Message Valid Bits
+#define CAN_MSG2VAL_MSGVAL_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_FADDR register.
+//
+//*****************************************************************************
+#define USB_FADDR_M             0x0000007F  // Function Address
+#define USB_FADDR_S             0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_POWER register.
+//
+//*****************************************************************************
+#define USB_POWER_ISOUP         0x00000080  // Isochronous Update
+#define USB_POWER_SOFTCONN      0x00000040  // Soft Connect/Disconnect
+#define USB_POWER_RESET         0x00000008  // RESET Signaling
+#define USB_POWER_RESUME        0x00000004  // RESUME Signaling
+#define USB_POWER_SUSPEND       0x00000002  // SUSPEND Mode
+#define USB_POWER_PWRDNPHY      0x00000001  // Power Down PHY
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXIS register.
+//
+//*****************************************************************************
+#define USB_TXIS_EP7            0x00000080  // TX Endpoint 7 Interrupt
+#define USB_TXIS_EP6            0x00000040  // TX Endpoint 6 Interrupt
+#define USB_TXIS_EP5            0x00000020  // TX Endpoint 5 Interrupt
+#define USB_TXIS_EP4            0x00000010  // TX Endpoint 4 Interrupt
+#define USB_TXIS_EP3            0x00000008  // TX Endpoint 3 Interrupt
+#define USB_TXIS_EP2            0x00000004  // TX Endpoint 2 Interrupt
+#define USB_TXIS_EP1            0x00000002  // TX Endpoint 1 Interrupt
+#define USB_TXIS_EP0            0x00000001  // TX and RX Endpoint 0 Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXIS register.
+//
+//*****************************************************************************
+#define USB_RXIS_EP7            0x00000080  // RX Endpoint 7 Interrupt
+#define USB_RXIS_EP6            0x00000040  // RX Endpoint 6 Interrupt
+#define USB_RXIS_EP5            0x00000020  // RX Endpoint 5 Interrupt
+#define USB_RXIS_EP4            0x00000010  // RX Endpoint 4 Interrupt
+#define USB_RXIS_EP3            0x00000008  // RX Endpoint 3 Interrupt
+#define USB_RXIS_EP2            0x00000004  // RX Endpoint 2 Interrupt
+#define USB_RXIS_EP1            0x00000002  // RX Endpoint 1 Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXIE register.
+//
+//*****************************************************************************
+#define USB_TXIE_EP7            0x00000080  // TX Endpoint 7 Interrupt Enable
+#define USB_TXIE_EP6            0x00000040  // TX Endpoint 6 Interrupt Enable
+#define USB_TXIE_EP5            0x00000020  // TX Endpoint 5 Interrupt Enable
+#define USB_TXIE_EP4            0x00000010  // TX Endpoint 4 Interrupt Enable
+#define USB_TXIE_EP3            0x00000008  // TX Endpoint 3 Interrupt Enable
+#define USB_TXIE_EP2            0x00000004  // TX Endpoint 2 Interrupt Enable
+#define USB_TXIE_EP1            0x00000002  // TX Endpoint 1 Interrupt Enable
+#define USB_TXIE_EP0            0x00000001  // TX and RX Endpoint 0 Interrupt
+                                            // Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXIE register.
+//
+//*****************************************************************************
+#define USB_RXIE_EP7            0x00000080  // RX Endpoint 7 Interrupt Enable
+#define USB_RXIE_EP6            0x00000040  // RX Endpoint 6 Interrupt Enable
+#define USB_RXIE_EP5            0x00000020  // RX Endpoint 5 Interrupt Enable
+#define USB_RXIE_EP4            0x00000010  // RX Endpoint 4 Interrupt Enable
+#define USB_RXIE_EP3            0x00000008  // RX Endpoint 3 Interrupt Enable
+#define USB_RXIE_EP2            0x00000004  // RX Endpoint 2 Interrupt Enable
+#define USB_RXIE_EP1            0x00000002  // RX Endpoint 1 Interrupt Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_IS register.
+//
+//*****************************************************************************
+#define USB_IS_VBUSERR          0x00000080  // VBUS Error (OTG only)
+#define USB_IS_SESREQ           0x00000040  // SESSION REQUEST (OTG only)
+#define USB_IS_DISCON           0x00000020  // Session Disconnect (OTG only)
+#define USB_IS_CONN             0x00000010  // Session Connect
+#define USB_IS_SOF              0x00000008  // Start of Frame
+#define USB_IS_BABBLE           0x00000004  // Babble Detected
+#define USB_IS_RESET            0x00000004  // RESET Signaling Detected
+#define USB_IS_RESUME           0x00000002  // RESUME Signaling Detected
+#define USB_IS_SUSPEND          0x00000001  // SUSPEND Signaling Detected
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_IE register.
+//
+//*****************************************************************************
+#define USB_IE_VBUSERR          0x00000080  // Enable VBUS Error Interrupt (OTG
+                                            // only)
+#define USB_IE_SESREQ           0x00000040  // Enable Session Request (OTG
+                                            // only)
+#define USB_IE_DISCON           0x00000020  // Enable Disconnect Interrupt
+#define USB_IE_CONN             0x00000010  // Enable Connect Interrupt
+#define USB_IE_SOF              0x00000008  // Enable Start-of-Frame Interrupt
+#define USB_IE_BABBLE           0x00000004  // Enable Babble Interrupt
+#define USB_IE_RESET            0x00000004  // Enable RESET Interrupt
+#define USB_IE_RESUME           0x00000002  // Enable RESUME Interrupt
+#define USB_IE_SUSPND           0x00000001  // Enable SUSPEND Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_FRAME register.
+//
+//*****************************************************************************
+#define USB_FRAME_M             0x000007FF  // Frame Number
+#define USB_FRAME_S             0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_EPIDX register.
+//
+//*****************************************************************************
+#define USB_EPIDX_EPIDX_M       0x0000000F  // Endpoint Index
+#define USB_EPIDX_EPIDX_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TEST register.
+//
+//*****************************************************************************
+#define USB_TEST_FORCEH         0x00000080  // Force Host Mode
+#define USB_TEST_FIFOACC        0x00000040  // FIFO Access
+#define USB_TEST_FORCEFS        0x00000020  // Force Full-Speed Mode
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_FIFO0 register.
+//
+//*****************************************************************************
+#define USB_FIFO0_EPDATA_M      0xFFFFFFFF  // Endpoint Data
+#define USB_FIFO0_EPDATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_FIFO1 register.
+//
+//*****************************************************************************
+#define USB_FIFO1_EPDATA_M      0xFFFFFFFF  // Endpoint Data
+#define USB_FIFO1_EPDATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_FIFO2 register.
+//
+//*****************************************************************************
+#define USB_FIFO2_EPDATA_M      0xFFFFFFFF  // Endpoint Data
+#define USB_FIFO2_EPDATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_FIFO3 register.
+//
+//*****************************************************************************
+#define USB_FIFO3_EPDATA_M      0xFFFFFFFF  // Endpoint Data
+#define USB_FIFO3_EPDATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_FIFO4 register.
+//
+//*****************************************************************************
+#define USB_FIFO4_EPDATA_M      0xFFFFFFFF  // Endpoint Data
+#define USB_FIFO4_EPDATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_FIFO5 register.
+//
+//*****************************************************************************
+#define USB_FIFO5_EPDATA_M      0xFFFFFFFF  // Endpoint Data
+#define USB_FIFO5_EPDATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_FIFO6 register.
+//
+//*****************************************************************************
+#define USB_FIFO6_EPDATA_M      0xFFFFFFFF  // Endpoint Data
+#define USB_FIFO6_EPDATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_FIFO7 register.
+//
+//*****************************************************************************
+#define USB_FIFO7_EPDATA_M      0xFFFFFFFF  // Endpoint Data
+#define USB_FIFO7_EPDATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DEVCTL register.
+//
+//*****************************************************************************
+#define USB_DEVCTL_DEV          0x00000080  // Device Mode (OTG only)
+#define USB_DEVCTL_FSDEV        0x00000040  // Full-Speed Device Detected
+#define USB_DEVCTL_LSDEV        0x00000020  // Low-Speed Device Detected
+#define USB_DEVCTL_VBUS_M       0x00000018  // VBUS Level (OTG only)
+#define USB_DEVCTL_VBUS_NONE    0x00000000  // Below SessionEnd
+#define USB_DEVCTL_VBUS_SEND    0x00000008  // Above SessionEnd, below AValid
+#define USB_DEVCTL_VBUS_AVALID  0x00000010  // Above AValid, below VBUSValid
+#define USB_DEVCTL_VBUS_VALID   0x00000018  // Above VBUSValid
+#define USB_DEVCTL_HOST         0x00000004  // Host Mode
+#define USB_DEVCTL_HOSTREQ      0x00000002  // Host Request (OTG only)
+#define USB_DEVCTL_SESSION      0x00000001  // Session Start/End (OTG only)
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXFIFOSZ register.
+//
+//*****************************************************************************
+#define USB_TXFIFOSZ_DPB        0x00000010  // Double Packet Buffer Support
+#define USB_TXFIFOSZ_SIZE_M     0x0000000F  // Max Packet Size
+#define USB_TXFIFOSZ_SIZE_8     0x00000000  // 8
+#define USB_TXFIFOSZ_SIZE_16    0x00000001  // 16
+#define USB_TXFIFOSZ_SIZE_32    0x00000002  // 32
+#define USB_TXFIFOSZ_SIZE_64    0x00000003  // 64
+#define USB_TXFIFOSZ_SIZE_128   0x00000004  // 128
+#define USB_TXFIFOSZ_SIZE_256   0x00000005  // 256
+#define USB_TXFIFOSZ_SIZE_512   0x00000006  // 512
+#define USB_TXFIFOSZ_SIZE_1024  0x00000007  // 1024
+#define USB_TXFIFOSZ_SIZE_2048  0x00000008  // 2048
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXFIFOSZ register.
+//
+//*****************************************************************************
+#define USB_RXFIFOSZ_DPB        0x00000010  // Double Packet Buffer Support
+#define USB_RXFIFOSZ_SIZE_M     0x0000000F  // Max Packet Size
+#define USB_RXFIFOSZ_SIZE_8     0x00000000  // 8
+#define USB_RXFIFOSZ_SIZE_16    0x00000001  // 16
+#define USB_RXFIFOSZ_SIZE_32    0x00000002  // 32
+#define USB_RXFIFOSZ_SIZE_64    0x00000003  // 64
+#define USB_RXFIFOSZ_SIZE_128   0x00000004  // 128
+#define USB_RXFIFOSZ_SIZE_256   0x00000005  // 256
+#define USB_RXFIFOSZ_SIZE_512   0x00000006  // 512
+#define USB_RXFIFOSZ_SIZE_1024  0x00000007  // 1024
+#define USB_RXFIFOSZ_SIZE_2048  0x00000008  // 2048
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXFIFOADD
+// register.
+//
+//*****************************************************************************
+#define USB_TXFIFOADD_ADDR_M    0x000001FF  // Transmit/Receive Start Address
+#define USB_TXFIFOADD_ADDR_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXFIFOADD
+// register.
+//
+//*****************************************************************************
+#define USB_RXFIFOADD_ADDR_M    0x000001FF  // Transmit/Receive Start Address
+#define USB_RXFIFOADD_ADDR_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_CONTIM register.
+//
+//*****************************************************************************
+#define USB_CONTIM_WTCON_M      0x000000F0  // Connect Wait
+#define USB_CONTIM_WTID_M       0x0000000F  // Wait ID
+#define USB_CONTIM_WTCON_S      4
+#define USB_CONTIM_WTID_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_VPLEN register.
+//
+//*****************************************************************************
+#define USB_VPLEN_VPLEN_M       0x000000FF  // VBUS Pulse Length
+#define USB_VPLEN_VPLEN_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_FSEOF register.
+//
+//*****************************************************************************
+#define USB_FSEOF_FSEOFG_M      0x000000FF  // Full-Speed End-of-Frame Gap
+#define USB_FSEOF_FSEOFG_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_LSEOF register.
+//
+//*****************************************************************************
+#define USB_LSEOF_LSEOFG_M      0x000000FF  // Low-Speed End-of-Frame Gap
+#define USB_LSEOF_LSEOFG_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXFUNCADDR0
+// register.
+//
+//*****************************************************************************
+#define USB_TXFUNCADDR0_ADDR_M  0x0000007F  // Device Address
+#define USB_TXFUNCADDR0_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBADDR0
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBADDR0_ADDR_M   0x0000007F  // Hub Address
+#define USB_TXHUBADDR0_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBPORT0
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBPORT0_PORT_M   0x0000007F  // Hub Port
+#define USB_TXHUBPORT0_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXFUNCADDR1
+// register.
+//
+//*****************************************************************************
+#define USB_TXFUNCADDR1_ADDR_M  0x0000007F  // Device Address
+#define USB_TXFUNCADDR1_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBADDR1
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBADDR1_ADDR_M   0x0000007F  // Hub Address
+#define USB_TXHUBADDR1_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBPORT1
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBPORT1_PORT_M   0x0000007F  // Hub Port
+#define USB_TXHUBPORT1_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXFUNCADDR1
+// register.
+//
+//*****************************************************************************
+#define USB_RXFUNCADDR1_ADDR_M  0x0000007F  // Device Address
+#define USB_RXFUNCADDR1_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBADDR1
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBADDR1_ADDR_M   0x0000007F  // Hub Address
+#define USB_RXHUBADDR1_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBPORT1
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBPORT1_PORT_M   0x0000007F  // Hub Port
+#define USB_RXHUBPORT1_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXFUNCADDR2
+// register.
+//
+//*****************************************************************************
+#define USB_TXFUNCADDR2_ADDR_M  0x0000007F  // Device Address
+#define USB_TXFUNCADDR2_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBADDR2
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBADDR2_ADDR_M   0x0000007F  // Hub Address
+#define USB_TXHUBADDR2_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBPORT2
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBPORT2_PORT_M   0x0000007F  // Hub Port
+#define USB_TXHUBPORT2_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXFUNCADDR2
+// register.
+//
+//*****************************************************************************
+#define USB_RXFUNCADDR2_ADDR_M  0x0000007F  // Device Address
+#define USB_RXFUNCADDR2_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBADDR2
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBADDR2_ADDR_M   0x0000007F  // Hub Address
+#define USB_RXHUBADDR2_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBPORT2
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBPORT2_PORT_M   0x0000007F  // Hub Port
+#define USB_RXHUBPORT2_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXFUNCADDR3
+// register.
+//
+//*****************************************************************************
+#define USB_TXFUNCADDR3_ADDR_M  0x0000007F  // Device Address
+#define USB_TXFUNCADDR3_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBADDR3
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBADDR3_ADDR_M   0x0000007F  // Hub Address
+#define USB_TXHUBADDR3_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBPORT3
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBPORT3_PORT_M   0x0000007F  // Hub Port
+#define USB_TXHUBPORT3_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXFUNCADDR3
+// register.
+//
+//*****************************************************************************
+#define USB_RXFUNCADDR3_ADDR_M  0x0000007F  // Device Address
+#define USB_RXFUNCADDR3_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBADDR3
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBADDR3_ADDR_M   0x0000007F  // Hub Address
+#define USB_RXHUBADDR3_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBPORT3
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBPORT3_PORT_M   0x0000007F  // Hub Port
+#define USB_RXHUBPORT3_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXFUNCADDR4
+// register.
+//
+//*****************************************************************************
+#define USB_TXFUNCADDR4_ADDR_M  0x0000007F  // Device Address
+#define USB_TXFUNCADDR4_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBADDR4
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBADDR4_ADDR_M   0x0000007F  // Hub Address
+#define USB_TXHUBADDR4_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBPORT4
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBPORT4_PORT_M   0x0000007F  // Hub Port
+#define USB_TXHUBPORT4_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXFUNCADDR4
+// register.
+//
+//*****************************************************************************
+#define USB_RXFUNCADDR4_ADDR_M  0x0000007F  // Device Address
+#define USB_RXFUNCADDR4_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBADDR4
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBADDR4_ADDR_M   0x0000007F  // Hub Address
+#define USB_RXHUBADDR4_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBPORT4
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBPORT4_PORT_M   0x0000007F  // Hub Port
+#define USB_RXHUBPORT4_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXFUNCADDR5
+// register.
+//
+//*****************************************************************************
+#define USB_TXFUNCADDR5_ADDR_M  0x0000007F  // Device Address
+#define USB_TXFUNCADDR5_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBADDR5
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBADDR5_ADDR_M   0x0000007F  // Hub Address
+#define USB_TXHUBADDR5_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBPORT5
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBPORT5_PORT_M   0x0000007F  // Hub Port
+#define USB_TXHUBPORT5_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXFUNCADDR5
+// register.
+//
+//*****************************************************************************
+#define USB_RXFUNCADDR5_ADDR_M  0x0000007F  // Device Address
+#define USB_RXFUNCADDR5_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBADDR5
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBADDR5_ADDR_M   0x0000007F  // Hub Address
+#define USB_RXHUBADDR5_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBPORT5
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBPORT5_PORT_M   0x0000007F  // Hub Port
+#define USB_RXHUBPORT5_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXFUNCADDR6
+// register.
+//
+//*****************************************************************************
+#define USB_TXFUNCADDR6_ADDR_M  0x0000007F  // Device Address
+#define USB_TXFUNCADDR6_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBADDR6
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBADDR6_ADDR_M   0x0000007F  // Hub Address
+#define USB_TXHUBADDR6_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBPORT6
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBPORT6_PORT_M   0x0000007F  // Hub Port
+#define USB_TXHUBPORT6_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXFUNCADDR6
+// register.
+//
+//*****************************************************************************
+#define USB_RXFUNCADDR6_ADDR_M  0x0000007F  // Device Address
+#define USB_RXFUNCADDR6_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBADDR6
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBADDR6_ADDR_M   0x0000007F  // Hub Address
+#define USB_RXHUBADDR6_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBPORT6
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBPORT6_PORT_M   0x0000007F  // Hub Port
+#define USB_RXHUBPORT6_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXFUNCADDR7
+// register.
+//
+//*****************************************************************************
+#define USB_TXFUNCADDR7_ADDR_M  0x0000007F  // Device Address
+#define USB_TXFUNCADDR7_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBADDR7
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBADDR7_ADDR_M   0x0000007F  // Hub Address
+#define USB_TXHUBADDR7_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBPORT7
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBPORT7_PORT_M   0x0000007F  // Hub Port
+#define USB_TXHUBPORT7_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXFUNCADDR7
+// register.
+//
+//*****************************************************************************
+#define USB_RXFUNCADDR7_ADDR_M  0x0000007F  // Device Address
+#define USB_RXFUNCADDR7_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBADDR7
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBADDR7_ADDR_M   0x0000007F  // Hub Address
+#define USB_RXHUBADDR7_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBPORT7
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBPORT7_PORT_M   0x0000007F  // Hub Port
+#define USB_RXHUBPORT7_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_CSRL0 register.
+//
+//*****************************************************************************
+#define USB_CSRL0_NAKTO         0x00000080  // NAK Timeout
+#define USB_CSRL0_SETENDC       0x00000080  // Setup End Clear
+#define USB_CSRL0_STATUS        0x00000040  // STATUS Packet
+#define USB_CSRL0_RXRDYC        0x00000040  // RXRDY Clear
+#define USB_CSRL0_REQPKT        0x00000020  // Request Packet
+#define USB_CSRL0_STALL         0x00000020  // Send Stall
+#define USB_CSRL0_SETEND        0x00000010  // Setup End
+#define USB_CSRL0_ERROR         0x00000010  // Error
+#define USB_CSRL0_DATAEND       0x00000008  // Data End
+#define USB_CSRL0_SETUP         0x00000008  // Setup Packet
+#define USB_CSRL0_STALLED       0x00000004  // Endpoint Stalled
+#define USB_CSRL0_TXRDY         0x00000002  // Transmit Packet Ready
+#define USB_CSRL0_RXRDY         0x00000001  // Receive Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_CSRH0 register.
+//
+//*****************************************************************************
+#define USB_CSRH0_DTWE          0x00000004  // Data Toggle Write Enable
+#define USB_CSRH0_DT            0x00000002  // Data Toggle
+#define USB_CSRH0_FLUSH         0x00000001  // Flush FIFO
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_COUNT0 register.
+//
+//*****************************************************************************
+#define USB_COUNT0_COUNT_M      0x0000007F  // FIFO Count
+#define USB_COUNT0_COUNT_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TYPE0 register.
+//
+//*****************************************************************************
+#define USB_TYPE0_SPEED_M       0x000000C0  // Operating Speed
+#define USB_TYPE0_SPEED_FULL    0x00000080  // Full
+#define USB_TYPE0_SPEED_LOW     0x000000C0  // Low
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_NAKLMT register.
+//
+//*****************************************************************************
+#define USB_NAKLMT_NAKLMT_M     0x0000001F  // EP0 NAK Limit
+#define USB_NAKLMT_NAKLMT_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXMAXP1 register.
+//
+//*****************************************************************************
+#define USB_TXMAXP1_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_TXMAXP1_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRL1 register.
+//
+//*****************************************************************************
+#define USB_TXCSRL1_NAKTO       0x00000080  // NAK Timeout
+#define USB_TXCSRL1_CLRDT       0x00000040  // Clear Data Toggle
+#define USB_TXCSRL1_STALLED     0x00000020  // Endpoint Stalled
+#define USB_TXCSRL1_STALL       0x00000010  // Send STALL
+#define USB_TXCSRL1_SETUP       0x00000010  // Setup Packet
+#define USB_TXCSRL1_FLUSH       0x00000008  // Flush FIFO
+#define USB_TXCSRL1_ERROR       0x00000004  // Error
+#define USB_TXCSRL1_UNDRN       0x00000004  // Underrun
+#define USB_TXCSRL1_FIFONE      0x00000002  // FIFO Not Empty
+#define USB_TXCSRL1_TXRDY       0x00000001  // Transmit Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRH1 register.
+//
+//*****************************************************************************
+#define USB_TXCSRH1_AUTOSET     0x00000080  // Auto Set
+#define USB_TXCSRH1_ISO         0x00000040  // Isochronous Transfers
+#define USB_TXCSRH1_MODE        0x00000020  // Mode
+#define USB_TXCSRH1_DMAEN       0x00000010  // DMA Request Enable
+#define USB_TXCSRH1_FDT         0x00000008  // Force Data Toggle
+#define USB_TXCSRH1_DMAMOD      0x00000004  // DMA Request Mode
+#define USB_TXCSRH1_DTWE        0x00000002  // Data Toggle Write Enable
+#define USB_TXCSRH1_DT          0x00000001  // Data Toggle
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXMAXP1 register.
+//
+//*****************************************************************************
+#define USB_RXMAXP1_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_RXMAXP1_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRL1 register.
+//
+//*****************************************************************************
+#define USB_RXCSRL1_CLRDT       0x00000080  // Clear Data Toggle
+#define USB_RXCSRL1_STALLED     0x00000040  // Endpoint Stalled
+#define USB_RXCSRL1_STALL       0x00000020  // Send STALL
+#define USB_RXCSRL1_REQPKT      0x00000020  // Request Packet
+#define USB_RXCSRL1_FLUSH       0x00000010  // Flush FIFO
+#define USB_RXCSRL1_DATAERR     0x00000008  // Data Error
+#define USB_RXCSRL1_NAKTO       0x00000008  // NAK Timeout
+#define USB_RXCSRL1_OVER        0x00000004  // Overrun
+#define USB_RXCSRL1_ERROR       0x00000004  // Error
+#define USB_RXCSRL1_FULL        0x00000002  // FIFO Full
+#define USB_RXCSRL1_RXRDY       0x00000001  // Receive Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRH1 register.
+//
+//*****************************************************************************
+#define USB_RXCSRH1_AUTOCL      0x00000080  // Auto Clear
+#define USB_RXCSRH1_AUTORQ      0x00000040  // Auto Request
+#define USB_RXCSRH1_ISO         0x00000040  // Isochronous Transfers
+#define USB_RXCSRH1_DMAEN       0x00000020  // DMA Request Enable
+#define USB_RXCSRH1_DISNYET     0x00000010  // Disable NYET
+#define USB_RXCSRH1_PIDERR      0x00000010  // PID Error
+#define USB_RXCSRH1_DMAMOD      0x00000008  // DMA Request Mode
+#define USB_RXCSRH1_DTWE        0x00000004  // Data Toggle Write Enable
+#define USB_RXCSRH1_DT          0x00000002  // Data Toggle
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCOUNT1 register.
+//
+//*****************************************************************************
+#define USB_RXCOUNT1_COUNT_M    0x00001FFF  // Receive Packet Count
+#define USB_RXCOUNT1_COUNT_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXTYPE1 register.
+//
+//*****************************************************************************
+#define USB_TXTYPE1_SPEED_M     0x000000C0  // Operating Speed
+#define USB_TXTYPE1_SPEED_DFLT  0x00000000  // Default
+#define USB_TXTYPE1_SPEED_FULL  0x00000080  // Full
+#define USB_TXTYPE1_SPEED_LOW   0x000000C0  // Low
+#define USB_TXTYPE1_PROTO_M     0x00000030  // Protocol
+#define USB_TXTYPE1_PROTO_CTRL  0x00000000  // Control
+#define USB_TXTYPE1_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_TXTYPE1_PROTO_BULK  0x00000020  // Bulk
+#define USB_TXTYPE1_PROTO_INT   0x00000030  // Interrupt
+#define USB_TXTYPE1_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_TXTYPE1_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXINTERVAL1
+// register.
+//
+//*****************************************************************************
+#define USB_TXINTERVAL1_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_TXINTERVAL1_TXPOLL_M                                              \
+                                0x000000FF  // TX Polling
+#define USB_TXINTERVAL1_TXPOLL_S                                              \
+                                0
+#define USB_TXINTERVAL1_NAKLMT_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXTYPE1 register.
+//
+//*****************************************************************************
+#define USB_RXTYPE1_SPEED_M     0x000000C0  // Operating Speed
+#define USB_RXTYPE1_SPEED_DFLT  0x00000000  // Default
+#define USB_RXTYPE1_SPEED_FULL  0x00000080  // Full
+#define USB_RXTYPE1_SPEED_LOW   0x000000C0  // Low
+#define USB_RXTYPE1_PROTO_M     0x00000030  // Protocol
+#define USB_RXTYPE1_PROTO_CTRL  0x00000000  // Control
+#define USB_RXTYPE1_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_RXTYPE1_PROTO_BULK  0x00000020  // Bulk
+#define USB_RXTYPE1_PROTO_INT   0x00000030  // Interrupt
+#define USB_RXTYPE1_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_RXTYPE1_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXINTERVAL1
+// register.
+//
+//*****************************************************************************
+#define USB_RXINTERVAL1_TXPOLL_M                                              \
+                                0x000000FF  // RX Polling
+#define USB_RXINTERVAL1_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_RXINTERVAL1_TXPOLL_S                                              \
+                                0
+#define USB_RXINTERVAL1_NAKLMT_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXMAXP2 register.
+//
+//*****************************************************************************
+#define USB_TXMAXP2_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_TXMAXP2_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRL2 register.
+//
+//*****************************************************************************
+#define USB_TXCSRL2_NAKTO       0x00000080  // NAK Timeout
+#define USB_TXCSRL2_CLRDT       0x00000040  // Clear Data Toggle
+#define USB_TXCSRL2_STALLED     0x00000020  // Endpoint Stalled
+#define USB_TXCSRL2_SETUP       0x00000010  // Setup Packet
+#define USB_TXCSRL2_STALL       0x00000010  // Send STALL
+#define USB_TXCSRL2_FLUSH       0x00000008  // Flush FIFO
+#define USB_TXCSRL2_ERROR       0x00000004  // Error
+#define USB_TXCSRL2_UNDRN       0x00000004  // Underrun
+#define USB_TXCSRL2_FIFONE      0x00000002  // FIFO Not Empty
+#define USB_TXCSRL2_TXRDY       0x00000001  // Transmit Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRH2 register.
+//
+//*****************************************************************************
+#define USB_TXCSRH2_AUTOSET     0x00000080  // Auto Set
+#define USB_TXCSRH2_ISO         0x00000040  // Isochronous Transfers
+#define USB_TXCSRH2_MODE        0x00000020  // Mode
+#define USB_TXCSRH2_DMAEN       0x00000010  // DMA Request Enable
+#define USB_TXCSRH2_FDT         0x00000008  // Force Data Toggle
+#define USB_TXCSRH2_DMAMOD      0x00000004  // DMA Request Mode
+#define USB_TXCSRH2_DTWE        0x00000002  // Data Toggle Write Enable
+#define USB_TXCSRH2_DT          0x00000001  // Data Toggle
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXMAXP2 register.
+//
+//*****************************************************************************
+#define USB_RXMAXP2_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_RXMAXP2_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRL2 register.
+//
+//*****************************************************************************
+#define USB_RXCSRL2_CLRDT       0x00000080  // Clear Data Toggle
+#define USB_RXCSRL2_STALLED     0x00000040  // Endpoint Stalled
+#define USB_RXCSRL2_REQPKT      0x00000020  // Request Packet
+#define USB_RXCSRL2_STALL       0x00000020  // Send STALL
+#define USB_RXCSRL2_FLUSH       0x00000010  // Flush FIFO
+#define USB_RXCSRL2_DATAERR     0x00000008  // Data Error
+#define USB_RXCSRL2_NAKTO       0x00000008  // NAK Timeout
+#define USB_RXCSRL2_ERROR       0x00000004  // Error
+#define USB_RXCSRL2_OVER        0x00000004  // Overrun
+#define USB_RXCSRL2_FULL        0x00000002  // FIFO Full
+#define USB_RXCSRL2_RXRDY       0x00000001  // Receive Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRH2 register.
+//
+//*****************************************************************************
+#define USB_RXCSRH2_AUTOCL      0x00000080  // Auto Clear
+#define USB_RXCSRH2_AUTORQ      0x00000040  // Auto Request
+#define USB_RXCSRH2_ISO         0x00000040  // Isochronous Transfers
+#define USB_RXCSRH2_DMAEN       0x00000020  // DMA Request Enable
+#define USB_RXCSRH2_DISNYET     0x00000010  // Disable NYET
+#define USB_RXCSRH2_PIDERR      0x00000010  // PID Error
+#define USB_RXCSRH2_DMAMOD      0x00000008  // DMA Request Mode
+#define USB_RXCSRH2_DTWE        0x00000004  // Data Toggle Write Enable
+#define USB_RXCSRH2_DT          0x00000002  // Data Toggle
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCOUNT2 register.
+//
+//*****************************************************************************
+#define USB_RXCOUNT2_COUNT_M    0x00001FFF  // Receive Packet Count
+#define USB_RXCOUNT2_COUNT_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXTYPE2 register.
+//
+//*****************************************************************************
+#define USB_TXTYPE2_SPEED_M     0x000000C0  // Operating Speed
+#define USB_TXTYPE2_SPEED_DFLT  0x00000000  // Default
+#define USB_TXTYPE2_SPEED_FULL  0x00000080  // Full
+#define USB_TXTYPE2_SPEED_LOW   0x000000C0  // Low
+#define USB_TXTYPE2_PROTO_M     0x00000030  // Protocol
+#define USB_TXTYPE2_PROTO_CTRL  0x00000000  // Control
+#define USB_TXTYPE2_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_TXTYPE2_PROTO_BULK  0x00000020  // Bulk
+#define USB_TXTYPE2_PROTO_INT   0x00000030  // Interrupt
+#define USB_TXTYPE2_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_TXTYPE2_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXINTERVAL2
+// register.
+//
+//*****************************************************************************
+#define USB_TXINTERVAL2_TXPOLL_M                                              \
+                                0x000000FF  // TX Polling
+#define USB_TXINTERVAL2_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_TXINTERVAL2_NAKLMT_S                                              \
+                                0
+#define USB_TXINTERVAL2_TXPOLL_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXTYPE2 register.
+//
+//*****************************************************************************
+#define USB_RXTYPE2_SPEED_M     0x000000C0  // Operating Speed
+#define USB_RXTYPE2_SPEED_DFLT  0x00000000  // Default
+#define USB_RXTYPE2_SPEED_FULL  0x00000080  // Full
+#define USB_RXTYPE2_SPEED_LOW   0x000000C0  // Low
+#define USB_RXTYPE2_PROTO_M     0x00000030  // Protocol
+#define USB_RXTYPE2_PROTO_CTRL  0x00000000  // Control
+#define USB_RXTYPE2_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_RXTYPE2_PROTO_BULK  0x00000020  // Bulk
+#define USB_RXTYPE2_PROTO_INT   0x00000030  // Interrupt
+#define USB_RXTYPE2_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_RXTYPE2_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXINTERVAL2
+// register.
+//
+//*****************************************************************************
+#define USB_RXINTERVAL2_TXPOLL_M                                              \
+                                0x000000FF  // RX Polling
+#define USB_RXINTERVAL2_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_RXINTERVAL2_TXPOLL_S                                              \
+                                0
+#define USB_RXINTERVAL2_NAKLMT_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXMAXP3 register.
+//
+//*****************************************************************************
+#define USB_TXMAXP3_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_TXMAXP3_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRL3 register.
+//
+//*****************************************************************************
+#define USB_TXCSRL3_NAKTO       0x00000080  // NAK Timeout
+#define USB_TXCSRL3_CLRDT       0x00000040  // Clear Data Toggle
+#define USB_TXCSRL3_STALLED     0x00000020  // Endpoint Stalled
+#define USB_TXCSRL3_SETUP       0x00000010  // Setup Packet
+#define USB_TXCSRL3_STALL       0x00000010  // Send STALL
+#define USB_TXCSRL3_FLUSH       0x00000008  // Flush FIFO
+#define USB_TXCSRL3_ERROR       0x00000004  // Error
+#define USB_TXCSRL3_UNDRN       0x00000004  // Underrun
+#define USB_TXCSRL3_FIFONE      0x00000002  // FIFO Not Empty
+#define USB_TXCSRL3_TXRDY       0x00000001  // Transmit Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRH3 register.
+//
+//*****************************************************************************
+#define USB_TXCSRH3_AUTOSET     0x00000080  // Auto Set
+#define USB_TXCSRH3_ISO         0x00000040  // Isochronous Transfers
+#define USB_TXCSRH3_MODE        0x00000020  // Mode
+#define USB_TXCSRH3_DMAEN       0x00000010  // DMA Request Enable
+#define USB_TXCSRH3_FDT         0x00000008  // Force Data Toggle
+#define USB_TXCSRH3_DMAMOD      0x00000004  // DMA Request Mode
+#define USB_TXCSRH3_DTWE        0x00000002  // Data Toggle Write Enable
+#define USB_TXCSRH3_DT          0x00000001  // Data Toggle
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXMAXP3 register.
+//
+//*****************************************************************************
+#define USB_RXMAXP3_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_RXMAXP3_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRL3 register.
+//
+//*****************************************************************************
+#define USB_RXCSRL3_CLRDT       0x00000080  // Clear Data Toggle
+#define USB_RXCSRL3_STALLED     0x00000040  // Endpoint Stalled
+#define USB_RXCSRL3_STALL       0x00000020  // Send STALL
+#define USB_RXCSRL3_REQPKT      0x00000020  // Request Packet
+#define USB_RXCSRL3_FLUSH       0x00000010  // Flush FIFO
+#define USB_RXCSRL3_DATAERR     0x00000008  // Data Error
+#define USB_RXCSRL3_NAKTO       0x00000008  // NAK Timeout
+#define USB_RXCSRL3_ERROR       0x00000004  // Error
+#define USB_RXCSRL3_OVER        0x00000004  // Overrun
+#define USB_RXCSRL3_FULL        0x00000002  // FIFO Full
+#define USB_RXCSRL3_RXRDY       0x00000001  // Receive Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRH3 register.
+//
+//*****************************************************************************
+#define USB_RXCSRH3_AUTOCL      0x00000080  // Auto Clear
+#define USB_RXCSRH3_AUTORQ      0x00000040  // Auto Request
+#define USB_RXCSRH3_ISO         0x00000040  // Isochronous Transfers
+#define USB_RXCSRH3_DMAEN       0x00000020  // DMA Request Enable
+#define USB_RXCSRH3_DISNYET     0x00000010  // Disable NYET
+#define USB_RXCSRH3_PIDERR      0x00000010  // PID Error
+#define USB_RXCSRH3_DMAMOD      0x00000008  // DMA Request Mode
+#define USB_RXCSRH3_DTWE        0x00000004  // Data Toggle Write Enable
+#define USB_RXCSRH3_DT          0x00000002  // Data Toggle
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCOUNT3 register.
+//
+//*****************************************************************************
+#define USB_RXCOUNT3_COUNT_M    0x00001FFF  // Receive Packet Count
+#define USB_RXCOUNT3_COUNT_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXTYPE3 register.
+//
+//*****************************************************************************
+#define USB_TXTYPE3_SPEED_M     0x000000C0  // Operating Speed
+#define USB_TXTYPE3_SPEED_DFLT  0x00000000  // Default
+#define USB_TXTYPE3_SPEED_FULL  0x00000080  // Full
+#define USB_TXTYPE3_SPEED_LOW   0x000000C0  // Low
+#define USB_TXTYPE3_PROTO_M     0x00000030  // Protocol
+#define USB_TXTYPE3_PROTO_CTRL  0x00000000  // Control
+#define USB_TXTYPE3_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_TXTYPE3_PROTO_BULK  0x00000020  // Bulk
+#define USB_TXTYPE3_PROTO_INT   0x00000030  // Interrupt
+#define USB_TXTYPE3_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_TXTYPE3_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXINTERVAL3
+// register.
+//
+//*****************************************************************************
+#define USB_TXINTERVAL3_TXPOLL_M                                              \
+                                0x000000FF  // TX Polling
+#define USB_TXINTERVAL3_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_TXINTERVAL3_TXPOLL_S                                              \
+                                0
+#define USB_TXINTERVAL3_NAKLMT_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXTYPE3 register.
+//
+//*****************************************************************************
+#define USB_RXTYPE3_SPEED_M     0x000000C0  // Operating Speed
+#define USB_RXTYPE3_SPEED_DFLT  0x00000000  // Default
+#define USB_RXTYPE3_SPEED_FULL  0x00000080  // Full
+#define USB_RXTYPE3_SPEED_LOW   0x000000C0  // Low
+#define USB_RXTYPE3_PROTO_M     0x00000030  // Protocol
+#define USB_RXTYPE3_PROTO_CTRL  0x00000000  // Control
+#define USB_RXTYPE3_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_RXTYPE3_PROTO_BULK  0x00000020  // Bulk
+#define USB_RXTYPE3_PROTO_INT   0x00000030  // Interrupt
+#define USB_RXTYPE3_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_RXTYPE3_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXINTERVAL3
+// register.
+//
+//*****************************************************************************
+#define USB_RXINTERVAL3_TXPOLL_M                                              \
+                                0x000000FF  // RX Polling
+#define USB_RXINTERVAL3_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_RXINTERVAL3_TXPOLL_S                                              \
+                                0
+#define USB_RXINTERVAL3_NAKLMT_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXMAXP4 register.
+//
+//*****************************************************************************
+#define USB_TXMAXP4_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_TXMAXP4_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRL4 register.
+//
+//*****************************************************************************
+#define USB_TXCSRL4_NAKTO       0x00000080  // NAK Timeout
+#define USB_TXCSRL4_CLRDT       0x00000040  // Clear Data Toggle
+#define USB_TXCSRL4_STALLED     0x00000020  // Endpoint Stalled
+#define USB_TXCSRL4_SETUP       0x00000010  // Setup Packet
+#define USB_TXCSRL4_STALL       0x00000010  // Send STALL
+#define USB_TXCSRL4_FLUSH       0x00000008  // Flush FIFO
+#define USB_TXCSRL4_ERROR       0x00000004  // Error
+#define USB_TXCSRL4_UNDRN       0x00000004  // Underrun
+#define USB_TXCSRL4_FIFONE      0x00000002  // FIFO Not Empty
+#define USB_TXCSRL4_TXRDY       0x00000001  // Transmit Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRH4 register.
+//
+//*****************************************************************************
+#define USB_TXCSRH4_AUTOSET     0x00000080  // Auto Set
+#define USB_TXCSRH4_ISO         0x00000040  // Isochronous Transfers
+#define USB_TXCSRH4_MODE        0x00000020  // Mode
+#define USB_TXCSRH4_DMAEN       0x00000010  // DMA Request Enable
+#define USB_TXCSRH4_FDT         0x00000008  // Force Data Toggle
+#define USB_TXCSRH4_DMAMOD      0x00000004  // DMA Request Mode
+#define USB_TXCSRH4_DTWE        0x00000002  // Data Toggle Write Enable
+#define USB_TXCSRH4_DT          0x00000001  // Data Toggle
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXMAXP4 register.
+//
+//*****************************************************************************
+#define USB_RXMAXP4_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_RXMAXP4_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRL4 register.
+//
+//*****************************************************************************
+#define USB_RXCSRL4_CLRDT       0x00000080  // Clear Data Toggle
+#define USB_RXCSRL4_STALLED     0x00000040  // Endpoint Stalled
+#define USB_RXCSRL4_STALL       0x00000020  // Send STALL
+#define USB_RXCSRL4_REQPKT      0x00000020  // Request Packet
+#define USB_RXCSRL4_FLUSH       0x00000010  // Flush FIFO
+#define USB_RXCSRL4_NAKTO       0x00000008  // NAK Timeout
+#define USB_RXCSRL4_DATAERR     0x00000008  // Data Error
+#define USB_RXCSRL4_OVER        0x00000004  // Overrun
+#define USB_RXCSRL4_ERROR       0x00000004  // Error
+#define USB_RXCSRL4_FULL        0x00000002  // FIFO Full
+#define USB_RXCSRL4_RXRDY       0x00000001  // Receive Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRH4 register.
+//
+//*****************************************************************************
+#define USB_RXCSRH4_AUTOCL      0x00000080  // Auto Clear
+#define USB_RXCSRH4_AUTORQ      0x00000040  // Auto Request
+#define USB_RXCSRH4_ISO         0x00000040  // Isochronous Transfers
+#define USB_RXCSRH4_DMAEN       0x00000020  // DMA Request Enable
+#define USB_RXCSRH4_DISNYET     0x00000010  // Disable NYET
+#define USB_RXCSRH4_PIDERR      0x00000010  // PID Error
+#define USB_RXCSRH4_DMAMOD      0x00000008  // DMA Request Mode
+#define USB_RXCSRH4_DTWE        0x00000004  // Data Toggle Write Enable
+#define USB_RXCSRH4_DT          0x00000002  // Data Toggle
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCOUNT4 register.
+//
+//*****************************************************************************
+#define USB_RXCOUNT4_COUNT_M    0x00001FFF  // Receive Packet Count
+#define USB_RXCOUNT4_COUNT_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXTYPE4 register.
+//
+//*****************************************************************************
+#define USB_TXTYPE4_SPEED_M     0x000000C0  // Operating Speed
+#define USB_TXTYPE4_SPEED_DFLT  0x00000000  // Default
+#define USB_TXTYPE4_SPEED_FULL  0x00000080  // Full
+#define USB_TXTYPE4_SPEED_LOW   0x000000C0  // Low
+#define USB_TXTYPE4_PROTO_M     0x00000030  // Protocol
+#define USB_TXTYPE4_PROTO_CTRL  0x00000000  // Control
+#define USB_TXTYPE4_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_TXTYPE4_PROTO_BULK  0x00000020  // Bulk
+#define USB_TXTYPE4_PROTO_INT   0x00000030  // Interrupt
+#define USB_TXTYPE4_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_TXTYPE4_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXINTERVAL4
+// register.
+//
+//*****************************************************************************
+#define USB_TXINTERVAL4_TXPOLL_M                                              \
+                                0x000000FF  // TX Polling
+#define USB_TXINTERVAL4_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_TXINTERVAL4_NAKLMT_S                                              \
+                                0
+#define USB_TXINTERVAL4_TXPOLL_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXTYPE4 register.
+//
+//*****************************************************************************
+#define USB_RXTYPE4_SPEED_M     0x000000C0  // Operating Speed
+#define USB_RXTYPE4_SPEED_DFLT  0x00000000  // Default
+#define USB_RXTYPE4_SPEED_FULL  0x00000080  // Full
+#define USB_RXTYPE4_SPEED_LOW   0x000000C0  // Low
+#define USB_RXTYPE4_PROTO_M     0x00000030  // Protocol
+#define USB_RXTYPE4_PROTO_CTRL  0x00000000  // Control
+#define USB_RXTYPE4_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_RXTYPE4_PROTO_BULK  0x00000020  // Bulk
+#define USB_RXTYPE4_PROTO_INT   0x00000030  // Interrupt
+#define USB_RXTYPE4_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_RXTYPE4_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXINTERVAL4
+// register.
+//
+//*****************************************************************************
+#define USB_RXINTERVAL4_TXPOLL_M                                              \
+                                0x000000FF  // RX Polling
+#define USB_RXINTERVAL4_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_RXINTERVAL4_NAKLMT_S                                              \
+                                0
+#define USB_RXINTERVAL4_TXPOLL_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXMAXP5 register.
+//
+//*****************************************************************************
+#define USB_TXMAXP5_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_TXMAXP5_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRL5 register.
+//
+//*****************************************************************************
+#define USB_TXCSRL5_NAKTO       0x00000080  // NAK Timeout
+#define USB_TXCSRL5_CLRDT       0x00000040  // Clear Data Toggle
+#define USB_TXCSRL5_STALLED     0x00000020  // Endpoint Stalled
+#define USB_TXCSRL5_SETUP       0x00000010  // Setup Packet
+#define USB_TXCSRL5_STALL       0x00000010  // Send STALL
+#define USB_TXCSRL5_FLUSH       0x00000008  // Flush FIFO
+#define USB_TXCSRL5_ERROR       0x00000004  // Error
+#define USB_TXCSRL5_UNDRN       0x00000004  // Underrun
+#define USB_TXCSRL5_FIFONE      0x00000002  // FIFO Not Empty
+#define USB_TXCSRL5_TXRDY       0x00000001  // Transmit Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRH5 register.
+//
+//*****************************************************************************
+#define USB_TXCSRH5_AUTOSET     0x00000080  // Auto Set
+#define USB_TXCSRH5_ISO         0x00000040  // Isochronous Transfers
+#define USB_TXCSRH5_MODE        0x00000020  // Mode
+#define USB_TXCSRH5_DMAEN       0x00000010  // DMA Request Enable
+#define USB_TXCSRH5_FDT         0x00000008  // Force Data Toggle
+#define USB_TXCSRH5_DMAMOD      0x00000004  // DMA Request Mode
+#define USB_TXCSRH5_DTWE        0x00000002  // Data Toggle Write Enable
+#define USB_TXCSRH5_DT          0x00000001  // Data Toggle
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXMAXP5 register.
+//
+//*****************************************************************************
+#define USB_RXMAXP5_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_RXMAXP5_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRL5 register.
+//
+//*****************************************************************************
+#define USB_RXCSRL5_CLRDT       0x00000080  // Clear Data Toggle
+#define USB_RXCSRL5_STALLED     0x00000040  // Endpoint Stalled
+#define USB_RXCSRL5_STALL       0x00000020  // Send STALL
+#define USB_RXCSRL5_REQPKT      0x00000020  // Request Packet
+#define USB_RXCSRL5_FLUSH       0x00000010  // Flush FIFO
+#define USB_RXCSRL5_NAKTO       0x00000008  // NAK Timeout
+#define USB_RXCSRL5_DATAERR     0x00000008  // Data Error
+#define USB_RXCSRL5_ERROR       0x00000004  // Error
+#define USB_RXCSRL5_OVER        0x00000004  // Overrun
+#define USB_RXCSRL5_FULL        0x00000002  // FIFO Full
+#define USB_RXCSRL5_RXRDY       0x00000001  // Receive Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRH5 register.
+//
+//*****************************************************************************
+#define USB_RXCSRH5_AUTOCL      0x00000080  // Auto Clear
+#define USB_RXCSRH5_AUTORQ      0x00000040  // Auto Request
+#define USB_RXCSRH5_ISO         0x00000040  // Isochronous Transfers
+#define USB_RXCSRH5_DMAEN       0x00000020  // DMA Request Enable
+#define USB_RXCSRH5_DISNYET     0x00000010  // Disable NYET
+#define USB_RXCSRH5_PIDERR      0x00000010  // PID Error
+#define USB_RXCSRH5_DMAMOD      0x00000008  // DMA Request Mode
+#define USB_RXCSRH5_DTWE        0x00000004  // Data Toggle Write Enable
+#define USB_RXCSRH5_DT          0x00000002  // Data Toggle
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCOUNT5 register.
+//
+//*****************************************************************************
+#define USB_RXCOUNT5_COUNT_M    0x00001FFF  // Receive Packet Count
+#define USB_RXCOUNT5_COUNT_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXTYPE5 register.
+//
+//*****************************************************************************
+#define USB_TXTYPE5_SPEED_M     0x000000C0  // Operating Speed
+#define USB_TXTYPE5_SPEED_DFLT  0x00000000  // Default
+#define USB_TXTYPE5_SPEED_FULL  0x00000080  // Full
+#define USB_TXTYPE5_SPEED_LOW   0x000000C0  // Low
+#define USB_TXTYPE5_PROTO_M     0x00000030  // Protocol
+#define USB_TXTYPE5_PROTO_CTRL  0x00000000  // Control
+#define USB_TXTYPE5_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_TXTYPE5_PROTO_BULK  0x00000020  // Bulk
+#define USB_TXTYPE5_PROTO_INT   0x00000030  // Interrupt
+#define USB_TXTYPE5_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_TXTYPE5_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXINTERVAL5
+// register.
+//
+//*****************************************************************************
+#define USB_TXINTERVAL5_TXPOLL_M                                              \
+                                0x000000FF  // TX Polling
+#define USB_TXINTERVAL5_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_TXINTERVAL5_NAKLMT_S                                              \
+                                0
+#define USB_TXINTERVAL5_TXPOLL_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXTYPE5 register.
+//
+//*****************************************************************************
+#define USB_RXTYPE5_SPEED_M     0x000000C0  // Operating Speed
+#define USB_RXTYPE5_SPEED_DFLT  0x00000000  // Default
+#define USB_RXTYPE5_SPEED_FULL  0x00000080  // Full
+#define USB_RXTYPE5_SPEED_LOW   0x000000C0  // Low
+#define USB_RXTYPE5_PROTO_M     0x00000030  // Protocol
+#define USB_RXTYPE5_PROTO_CTRL  0x00000000  // Control
+#define USB_RXTYPE5_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_RXTYPE5_PROTO_BULK  0x00000020  // Bulk
+#define USB_RXTYPE5_PROTO_INT   0x00000030  // Interrupt
+#define USB_RXTYPE5_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_RXTYPE5_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXINTERVAL5
+// register.
+//
+//*****************************************************************************
+#define USB_RXINTERVAL5_TXPOLL_M                                              \
+                                0x000000FF  // RX Polling
+#define USB_RXINTERVAL5_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_RXINTERVAL5_TXPOLL_S                                              \
+                                0
+#define USB_RXINTERVAL5_NAKLMT_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXMAXP6 register.
+//
+//*****************************************************************************
+#define USB_TXMAXP6_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_TXMAXP6_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRL6 register.
+//
+//*****************************************************************************
+#define USB_TXCSRL6_NAKTO       0x00000080  // NAK Timeout
+#define USB_TXCSRL6_CLRDT       0x00000040  // Clear Data Toggle
+#define USB_TXCSRL6_STALLED     0x00000020  // Endpoint Stalled
+#define USB_TXCSRL6_STALL       0x00000010  // Send STALL
+#define USB_TXCSRL6_SETUP       0x00000010  // Setup Packet
+#define USB_TXCSRL6_FLUSH       0x00000008  // Flush FIFO
+#define USB_TXCSRL6_ERROR       0x00000004  // Error
+#define USB_TXCSRL6_UNDRN       0x00000004  // Underrun
+#define USB_TXCSRL6_FIFONE      0x00000002  // FIFO Not Empty
+#define USB_TXCSRL6_TXRDY       0x00000001  // Transmit Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRH6 register.
+//
+//*****************************************************************************
+#define USB_TXCSRH6_AUTOSET     0x00000080  // Auto Set
+#define USB_TXCSRH6_ISO         0x00000040  // Isochronous Transfers
+#define USB_TXCSRH6_MODE        0x00000020  // Mode
+#define USB_TXCSRH6_DMAEN       0x00000010  // DMA Request Enable
+#define USB_TXCSRH6_FDT         0x00000008  // Force Data Toggle
+#define USB_TXCSRH6_DMAMOD      0x00000004  // DMA Request Mode
+#define USB_TXCSRH6_DTWE        0x00000002  // Data Toggle Write Enable
+#define USB_TXCSRH6_DT          0x00000001  // Data Toggle
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXMAXP6 register.
+//
+//*****************************************************************************
+#define USB_RXMAXP6_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_RXMAXP6_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRL6 register.
+//
+//*****************************************************************************
+#define USB_RXCSRL6_CLRDT       0x00000080  // Clear Data Toggle
+#define USB_RXCSRL6_STALLED     0x00000040  // Endpoint Stalled
+#define USB_RXCSRL6_REQPKT      0x00000020  // Request Packet
+#define USB_RXCSRL6_STALL       0x00000020  // Send STALL
+#define USB_RXCSRL6_FLUSH       0x00000010  // Flush FIFO
+#define USB_RXCSRL6_NAKTO       0x00000008  // NAK Timeout
+#define USB_RXCSRL6_DATAERR     0x00000008  // Data Error
+#define USB_RXCSRL6_ERROR       0x00000004  // Error
+#define USB_RXCSRL6_OVER        0x00000004  // Overrun
+#define USB_RXCSRL6_FULL        0x00000002  // FIFO Full
+#define USB_RXCSRL6_RXRDY       0x00000001  // Receive Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRH6 register.
+//
+//*****************************************************************************
+#define USB_RXCSRH6_AUTOCL      0x00000080  // Auto Clear
+#define USB_RXCSRH6_AUTORQ      0x00000040  // Auto Request
+#define USB_RXCSRH6_ISO         0x00000040  // Isochronous Transfers
+#define USB_RXCSRH6_DMAEN       0x00000020  // DMA Request Enable
+#define USB_RXCSRH6_DISNYET     0x00000010  // Disable NYET
+#define USB_RXCSRH6_PIDERR      0x00000010  // PID Error
+#define USB_RXCSRH6_DMAMOD      0x00000008  // DMA Request Mode
+#define USB_RXCSRH6_DTWE        0x00000004  // Data Toggle Write Enable
+#define USB_RXCSRH6_DT          0x00000002  // Data Toggle
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCOUNT6 register.
+//
+//*****************************************************************************
+#define USB_RXCOUNT6_COUNT_M    0x00001FFF  // Receive Packet Count
+#define USB_RXCOUNT6_COUNT_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXTYPE6 register.
+//
+//*****************************************************************************
+#define USB_TXTYPE6_SPEED_M     0x000000C0  // Operating Speed
+#define USB_TXTYPE6_SPEED_DFLT  0x00000000  // Default
+#define USB_TXTYPE6_SPEED_FULL  0x00000080  // Full
+#define USB_TXTYPE6_SPEED_LOW   0x000000C0  // Low
+#define USB_TXTYPE6_PROTO_M     0x00000030  // Protocol
+#define USB_TXTYPE6_PROTO_CTRL  0x00000000  // Control
+#define USB_TXTYPE6_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_TXTYPE6_PROTO_BULK  0x00000020  // Bulk
+#define USB_TXTYPE6_PROTO_INT   0x00000030  // Interrupt
+#define USB_TXTYPE6_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_TXTYPE6_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXINTERVAL6
+// register.
+//
+//*****************************************************************************
+#define USB_TXINTERVAL6_TXPOLL_M                                              \
+                                0x000000FF  // TX Polling
+#define USB_TXINTERVAL6_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_TXINTERVAL6_TXPOLL_S                                              \
+                                0
+#define USB_TXINTERVAL6_NAKLMT_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXTYPE6 register.
+//
+//*****************************************************************************
+#define USB_RXTYPE6_SPEED_M     0x000000C0  // Operating Speed
+#define USB_RXTYPE6_SPEED_DFLT  0x00000000  // Default
+#define USB_RXTYPE6_SPEED_FULL  0x00000080  // Full
+#define USB_RXTYPE6_SPEED_LOW   0x000000C0  // Low
+#define USB_RXTYPE6_PROTO_M     0x00000030  // Protocol
+#define USB_RXTYPE6_PROTO_CTRL  0x00000000  // Control
+#define USB_RXTYPE6_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_RXTYPE6_PROTO_BULK  0x00000020  // Bulk
+#define USB_RXTYPE6_PROTO_INT   0x00000030  // Interrupt
+#define USB_RXTYPE6_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_RXTYPE6_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXINTERVAL6
+// register.
+//
+//*****************************************************************************
+#define USB_RXINTERVAL6_TXPOLL_M                                              \
+                                0x000000FF  // RX Polling
+#define USB_RXINTERVAL6_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_RXINTERVAL6_NAKLMT_S                                              \
+                                0
+#define USB_RXINTERVAL6_TXPOLL_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXMAXP7 register.
+//
+//*****************************************************************************
+#define USB_TXMAXP7_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_TXMAXP7_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRL7 register.
+//
+//*****************************************************************************
+#define USB_TXCSRL7_NAKTO       0x00000080  // NAK Timeout
+#define USB_TXCSRL7_CLRDT       0x00000040  // Clear Data Toggle
+#define USB_TXCSRL7_STALLED     0x00000020  // Endpoint Stalled
+#define USB_TXCSRL7_STALL       0x00000010  // Send STALL
+#define USB_TXCSRL7_SETUP       0x00000010  // Setup Packet
+#define USB_TXCSRL7_FLUSH       0x00000008  // Flush FIFO
+#define USB_TXCSRL7_ERROR       0x00000004  // Error
+#define USB_TXCSRL7_UNDRN       0x00000004  // Underrun
+#define USB_TXCSRL7_FIFONE      0x00000002  // FIFO Not Empty
+#define USB_TXCSRL7_TXRDY       0x00000001  // Transmit Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRH7 register.
+//
+//*****************************************************************************
+#define USB_TXCSRH7_AUTOSET     0x00000080  // Auto Set
+#define USB_TXCSRH7_ISO         0x00000040  // Isochronous Transfers
+#define USB_TXCSRH7_MODE        0x00000020  // Mode
+#define USB_TXCSRH7_DMAEN       0x00000010  // DMA Request Enable
+#define USB_TXCSRH7_FDT         0x00000008  // Force Data Toggle
+#define USB_TXCSRH7_DMAMOD      0x00000004  // DMA Request Mode
+#define USB_TXCSRH7_DTWE        0x00000002  // Data Toggle Write Enable
+#define USB_TXCSRH7_DT          0x00000001  // Data Toggle
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXMAXP7 register.
+//
+//*****************************************************************************
+#define USB_RXMAXP7_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_RXMAXP7_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRL7 register.
+//
+//*****************************************************************************
+#define USB_RXCSRL7_CLRDT       0x00000080  // Clear Data Toggle
+#define USB_RXCSRL7_STALLED     0x00000040  // Endpoint Stalled
+#define USB_RXCSRL7_REQPKT      0x00000020  // Request Packet
+#define USB_RXCSRL7_STALL       0x00000020  // Send STALL
+#define USB_RXCSRL7_FLUSH       0x00000010  // Flush FIFO
+#define USB_RXCSRL7_DATAERR     0x00000008  // Data Error
+#define USB_RXCSRL7_NAKTO       0x00000008  // NAK Timeout
+#define USB_RXCSRL7_ERROR       0x00000004  // Error
+#define USB_RXCSRL7_OVER        0x00000004  // Overrun
+#define USB_RXCSRL7_FULL        0x00000002  // FIFO Full
+#define USB_RXCSRL7_RXRDY       0x00000001  // Receive Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRH7 register.
+//
+//*****************************************************************************
+#define USB_RXCSRH7_AUTOCL      0x00000080  // Auto Clear
+#define USB_RXCSRH7_ISO         0x00000040  // Isochronous Transfers
+#define USB_RXCSRH7_AUTORQ      0x00000040  // Auto Request
+#define USB_RXCSRH7_DMAEN       0x00000020  // DMA Request Enable
+#define USB_RXCSRH7_PIDERR      0x00000010  // PID Error
+#define USB_RXCSRH7_DISNYET     0x00000010  // Disable NYET
+#define USB_RXCSRH7_DMAMOD      0x00000008  // DMA Request Mode
+#define USB_RXCSRH7_DTWE        0x00000004  // Data Toggle Write Enable
+#define USB_RXCSRH7_DT          0x00000002  // Data Toggle
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCOUNT7 register.
+//
+//*****************************************************************************
+#define USB_RXCOUNT7_COUNT_M    0x00001FFF  // Receive Packet Count
+#define USB_RXCOUNT7_COUNT_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXTYPE7 register.
+//
+//*****************************************************************************
+#define USB_TXTYPE7_SPEED_M     0x000000C0  // Operating Speed
+#define USB_TXTYPE7_SPEED_DFLT  0x00000000  // Default
+#define USB_TXTYPE7_SPEED_FULL  0x00000080  // Full
+#define USB_TXTYPE7_SPEED_LOW   0x000000C0  // Low
+#define USB_TXTYPE7_PROTO_M     0x00000030  // Protocol
+#define USB_TXTYPE7_PROTO_CTRL  0x00000000  // Control
+#define USB_TXTYPE7_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_TXTYPE7_PROTO_BULK  0x00000020  // Bulk
+#define USB_TXTYPE7_PROTO_INT   0x00000030  // Interrupt
+#define USB_TXTYPE7_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_TXTYPE7_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXINTERVAL7
+// register.
+//
+//*****************************************************************************
+#define USB_TXINTERVAL7_TXPOLL_M                                              \
+                                0x000000FF  // TX Polling
+#define USB_TXINTERVAL7_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_TXINTERVAL7_NAKLMT_S                                              \
+                                0
+#define USB_TXINTERVAL7_TXPOLL_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXTYPE7 register.
+//
+//*****************************************************************************
+#define USB_RXTYPE7_SPEED_M     0x000000C0  // Operating Speed
+#define USB_RXTYPE7_SPEED_DFLT  0x00000000  // Default
+#define USB_RXTYPE7_SPEED_FULL  0x00000080  // Full
+#define USB_RXTYPE7_SPEED_LOW   0x000000C0  // Low
+#define USB_RXTYPE7_PROTO_M     0x00000030  // Protocol
+#define USB_RXTYPE7_PROTO_CTRL  0x00000000  // Control
+#define USB_RXTYPE7_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_RXTYPE7_PROTO_BULK  0x00000020  // Bulk
+#define USB_RXTYPE7_PROTO_INT   0x00000030  // Interrupt
+#define USB_RXTYPE7_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_RXTYPE7_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXINTERVAL7
+// register.
+//
+//*****************************************************************************
+#define USB_RXINTERVAL7_TXPOLL_M                                              \
+                                0x000000FF  // RX Polling
+#define USB_RXINTERVAL7_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_RXINTERVAL7_NAKLMT_S                                              \
+                                0
+#define USB_RXINTERVAL7_TXPOLL_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RQPKTCOUNT1
+// register.
+//
+//*****************************************************************************
+#define USB_RQPKTCOUNT1_M       0x0000FFFF  // Block Transfer Packet Count
+#define USB_RQPKTCOUNT1_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RQPKTCOUNT2
+// register.
+//
+//*****************************************************************************
+#define USB_RQPKTCOUNT2_M       0x0000FFFF  // Block Transfer Packet Count
+#define USB_RQPKTCOUNT2_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RQPKTCOUNT3
+// register.
+//
+//*****************************************************************************
+#define USB_RQPKTCOUNT3_M       0x0000FFFF  // Block Transfer Packet Count
+#define USB_RQPKTCOUNT3_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RQPKTCOUNT4
+// register.
+//
+//*****************************************************************************
+#define USB_RQPKTCOUNT4_COUNT_M 0x0000FFFF  // Block Transfer Packet Count
+#define USB_RQPKTCOUNT4_COUNT_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RQPKTCOUNT5
+// register.
+//
+//*****************************************************************************
+#define USB_RQPKTCOUNT5_COUNT_M 0x0000FFFF  // Block Transfer Packet Count
+#define USB_RQPKTCOUNT5_COUNT_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RQPKTCOUNT6
+// register.
+//
+//*****************************************************************************
+#define USB_RQPKTCOUNT6_COUNT_M 0x0000FFFF  // Block Transfer Packet Count
+#define USB_RQPKTCOUNT6_COUNT_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RQPKTCOUNT7
+// register.
+//
+//*****************************************************************************
+#define USB_RQPKTCOUNT7_COUNT_M 0x0000FFFF  // Block Transfer Packet Count
+#define USB_RQPKTCOUNT7_COUNT_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXDPKTBUFDIS
+// register.
+//
+//*****************************************************************************
+#define USB_RXDPKTBUFDIS_EP7    0x00000080  // EP7 RX Double-Packet Buffer
+                                            // Disable
+#define USB_RXDPKTBUFDIS_EP6    0x00000040  // EP6 RX Double-Packet Buffer
+                                            // Disable
+#define USB_RXDPKTBUFDIS_EP5    0x00000020  // EP5 RX Double-Packet Buffer
+                                            // Disable
+#define USB_RXDPKTBUFDIS_EP4    0x00000010  // EP4 RX Double-Packet Buffer
+                                            // Disable
+#define USB_RXDPKTBUFDIS_EP3    0x00000008  // EP3 RX Double-Packet Buffer
+                                            // Disable
+#define USB_RXDPKTBUFDIS_EP2    0x00000004  // EP2 RX Double-Packet Buffer
+                                            // Disable
+#define USB_RXDPKTBUFDIS_EP1    0x00000002  // EP1 RX Double-Packet Buffer
+                                            // Disable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXDPKTBUFDIS
+// register.
+//
+//*****************************************************************************
+#define USB_TXDPKTBUFDIS_EP7    0x00000080  // EP7 TX Double-Packet Buffer
+                                            // Disable
+#define USB_TXDPKTBUFDIS_EP6    0x00000040  // EP6 TX Double-Packet Buffer
+                                            // Disable
+#define USB_TXDPKTBUFDIS_EP5    0x00000020  // EP5 TX Double-Packet Buffer
+                                            // Disable
+#define USB_TXDPKTBUFDIS_EP4    0x00000010  // EP4 TX Double-Packet Buffer
+                                            // Disable
+#define USB_TXDPKTBUFDIS_EP3    0x00000008  // EP3 TX Double-Packet Buffer
+                                            // Disable
+#define USB_TXDPKTBUFDIS_EP2    0x00000004  // EP2 TX Double-Packet Buffer
+                                            // Disable
+#define USB_TXDPKTBUFDIS_EP1    0x00000002  // EP1 TX Double-Packet Buffer
+                                            // Disable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_EPC register.
+//
+//*****************************************************************************
+#define USB_EPC_PFLTACT_M       0x00000300  // Power Fault Action
+#define USB_EPC_PFLTACT_UNCHG   0x00000000  // Unchanged
+#define USB_EPC_PFLTACT_TRIS    0x00000100  // Tristate
+#define USB_EPC_PFLTACT_LOW     0x00000200  // Low
+#define USB_EPC_PFLTACT_HIGH    0x00000300  // High
+#define USB_EPC_PFLTAEN         0x00000040  // Power Fault Action Enable
+#define USB_EPC_PFLTSEN_HIGH    0x00000020  // Power Fault Sense
+#define USB_EPC_PFLTEN          0x00000010  // Power Fault Input Enable
+#define USB_EPC_EPENDE          0x00000004  // EPEN Drive Enable
+#define USB_EPC_EPEN_M          0x00000003  // External Power Supply Enable
+                                            // Configuration
+#define USB_EPC_EPEN_LOW        0x00000000  // Power Enable Active Low
+#define USB_EPC_EPEN_HIGH       0x00000001  // Power Enable Active High
+#define USB_EPC_EPEN_VBLOW      0x00000002  // Power Enable High if VBUS Low
+                                            // (OTG only)
+#define USB_EPC_EPEN_VBHIGH     0x00000003  // Power Enable High if VBUS High
+                                            // (OTG only)
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_EPCRIS register.
+//
+//*****************************************************************************
+#define USB_EPCRIS_PF           0x00000001  // USB Power Fault Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_EPCIM register.
+//
+//*****************************************************************************
+#define USB_EPCIM_PF            0x00000001  // USB Power Fault Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_EPCISC register.
+//
+//*****************************************************************************
+#define USB_EPCISC_PF           0x00000001  // USB Power Fault Interrupt Status
+                                            // and Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DRRIS register.
+//
+//*****************************************************************************
+#define USB_DRRIS_RESUME        0x00000001  // RESUME Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DRIM register.
+//
+//*****************************************************************************
+#define USB_DRIM_RESUME         0x00000001  // RESUME Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DRISC register.
+//
+//*****************************************************************************
+#define USB_DRISC_RESUME        0x00000001  // RESUME Interrupt Status and
+                                            // Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_GPCS register.
+//
+//*****************************************************************************
+#define USB_GPCS_DEVMODOTG      0x00000002  // Enable Device Mode
+#define USB_GPCS_DEVMOD         0x00000001  // Device Mode
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_VDC register.
+//
+//*****************************************************************************
+#define USB_VDC_VBDEN           0x00000001  // VBUS Droop Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_VDCRIS register.
+//
+//*****************************************************************************
+#define USB_VDCRIS_VD           0x00000001  // VBUS Droop Raw Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_VDCIM register.
+//
+//*****************************************************************************
+#define USB_VDCIM_VD            0x00000001  // VBUS Droop Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_VDCISC register.
+//
+//*****************************************************************************
+#define USB_VDCISC_VD           0x00000001  // VBUS Droop Interrupt Status and
+                                            // Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_IDVRIS register.
+//
+//*****************************************************************************
+#define USB_IDVRIS_ID           0x00000001  // ID Valid Detect Raw Interrupt
+                                            // Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_IDVIM register.
+//
+//*****************************************************************************
+#define USB_IDVIM_ID            0x00000001  // ID Valid Detect Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_IDVISC register.
+//
+//*****************************************************************************
+#define USB_IDVISC_ID           0x00000001  // ID Valid Detect Interrupt Status
+                                            // and Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DMASEL register.
+//
+//*****************************************************************************
+#define USB_DMASEL_DMACTX_M     0x00F00000  // DMA C TX Select
+#define USB_DMASEL_DMACRX_M     0x000F0000  // DMA C RX Select
+#define USB_DMASEL_DMABTX_M     0x0000F000  // DMA B TX Select
+#define USB_DMASEL_DMABRX_M     0x00000F00  // DMA B RX Select
+#define USB_DMASEL_DMAATX_M     0x000000F0  // DMA A TX Select
+#define USB_DMASEL_DMAARX_M     0x0000000F  // DMA A RX Select
+#define USB_DMASEL_DMACTX_S     20
+#define USB_DMASEL_DMACRX_S     16
+#define USB_DMASEL_DMABTX_S     12
+#define USB_DMASEL_DMABRX_S     8
+#define USB_DMASEL_DMAATX_S     4
+#define USB_DMASEL_DMAARX_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_PP register.
+//
+//*****************************************************************************
+#define USB_PP_ECNT_M           0x0000FF00  // Endpoint Count
+#define USB_PP_USB_M            0x000000C0  // USB Capability
+#define USB_PP_USB_DEVICE       0x00000040  // DEVICE
+#define USB_PP_USB_HOSTDEVICE   0x00000080  // HOST
+#define USB_PP_USB_OTG          0x000000C0  // OTG
+#define USB_PP_PHY              0x00000010  // PHY Present
+#define USB_PP_TYPE_M           0x0000000F  // Controller Type
+#define USB_PP_TYPE_0           0x00000000  // The first-generation USB
+                                            // controller
+#define USB_PP_ECNT_S           8
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EESIZE register.
+//
+//*****************************************************************************
+#define EEPROM_EESIZE_BLKCNT_M  0x07FF0000  // Number of 16-Word Blocks
+#define EEPROM_EESIZE_WORDCNT_M 0x0000FFFF  // Number of 32-Bit Words
+#define EEPROM_EESIZE_BLKCNT_S  16
+#define EEPROM_EESIZE_WORDCNT_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EEBLOCK register.
+//
+//*****************************************************************************
+#define EEPROM_EEBLOCK_BLOCK_M  0x0000FFFF  // Current Block
+#define EEPROM_EEBLOCK_BLOCK_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EEOFFSET
+// register.
+//
+//*****************************************************************************
+#define EEPROM_EEOFFSET_OFFSET_M                                              \
+                                0x0000000F  // Current Address Offset
+#define EEPROM_EEOFFSET_OFFSET_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EERDWR register.
+//
+//*****************************************************************************
+#define EEPROM_EERDWR_VALUE_M   0xFFFFFFFF  // EEPROM Read or Write Data
+#define EEPROM_EERDWR_VALUE_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EERDWRINC
+// register.
+//
+//*****************************************************************************
+#define EEPROM_EERDWRINC_VALUE_M                                              \
+                                0xFFFFFFFF  // EEPROM Read or Write Data with
+                                            // Increment
+#define EEPROM_EERDWRINC_VALUE_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EEDONE register.
+//
+//*****************************************************************************
+#define EEPROM_EEDONE_WRBUSY    0x00000020  // Write Busy
+#define EEPROM_EEDONE_NOPERM    0x00000010  // Write Without Permission
+#define EEPROM_EEDONE_WKCOPY    0x00000008  // Working on a Copy
+#define EEPROM_EEDONE_WKERASE   0x00000004  // Working on an Erase
+#define EEPROM_EEDONE_WORKING   0x00000001  // EEPROM Working
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EESUPP register.
+//
+//*****************************************************************************
+#define EEPROM_EESUPP_PRETRY    0x00000008  // Programming Must Be Retried
+#define EEPROM_EESUPP_ERETRY    0x00000004  // Erase Must Be Retried
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EEUNLOCK
+// register.
+//
+//*****************************************************************************
+#define EEPROM_EEUNLOCK_UNLOCK_M                                              \
+                                0xFFFFFFFF  // EEPROM Unlock
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EEPROT register.
+//
+//*****************************************************************************
+#define EEPROM_EEPROT_ACC       0x00000008  // Access Control
+#define EEPROM_EEPROT_PROT_M    0x00000007  // Protection Control
+#define EEPROM_EEPROT_PROT_RWNPW                                              \
+                                0x00000000  // This setting is the default. If
+                                            // there is no password, the block
+                                            // is not protected and is readable
+                                            // and writable
+#define EEPROM_EEPROT_PROT_RWPW 0x00000001  // If there is a password, the
+                                            // block is readable or writable
+                                            // only when unlocked
+#define EEPROM_EEPROT_PROT_RONPW                                              \
+                                0x00000002  // If there is no password, the
+                                            // block is readable, not writable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EEPASS0 register.
+//
+//*****************************************************************************
+#define EEPROM_EEPASS0_PASS_M   0xFFFFFFFF  // Password
+#define EEPROM_EEPASS0_PASS_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EEPASS1 register.
+//
+//*****************************************************************************
+#define EEPROM_EEPASS1_PASS_M   0xFFFFFFFF  // Password
+#define EEPROM_EEPASS1_PASS_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EEPASS2 register.
+//
+//*****************************************************************************
+#define EEPROM_EEPASS2_PASS_M   0xFFFFFFFF  // Password
+#define EEPROM_EEPASS2_PASS_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EEINT register.
+//
+//*****************************************************************************
+#define EEPROM_EEINT_INT        0x00000001  // Interrupt Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EEHIDE register.
+//
+//*****************************************************************************
+#define EEPROM_EEHIDE_HN_M      0xFFFFFFFE  // Hide Block
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EEDBGME register.
+//
+//*****************************************************************************
+#define EEPROM_EEDBGME_KEY_M    0xFFFF0000  // Erase Key
+#define EEPROM_EEDBGME_ME       0x00000001  // Mass Erase
+#define EEPROM_EEDBGME_KEY_S    16
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_PP register.
+//
+//*****************************************************************************
+#define EEPROM_PP_SIZE_M        0x0000001F  // EEPROM Size
+#define EEPROM_PP_SIZE_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSEXC_RIS register.
+//
+//*****************************************************************************
+#define SYSEXC_RIS_FPIXCRIS     0x00000020  // Floating-Point Inexact Exception
+                                            // Raw Interrupt Status
+#define SYSEXC_RIS_FPOFCRIS     0x00000010  // Floating-Point Overflow
+                                            // Exception Raw Interrupt Status
+#define SYSEXC_RIS_FPUFCRIS     0x00000008  // Floating-Point Underflow
+                                            // Exception Raw Interrupt Status
+#define SYSEXC_RIS_FPIOCRIS     0x00000004  // Floating-Point Invalid Operation
+                                            // Raw Interrupt Status
+#define SYSEXC_RIS_FPDZCRIS     0x00000002  // Floating-Point Divide By 0
+                                            // Exception Raw Interrupt Status
+#define SYSEXC_RIS_FPIDCRIS     0x00000001  // Floating-Point Input Denormal
+                                            // Exception Raw Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSEXC_IM register.
+//
+//*****************************************************************************
+#define SYSEXC_IM_FPIXCIM       0x00000020  // Floating-Point Inexact Exception
+                                            // Interrupt Mask
+#define SYSEXC_IM_FPOFCIM       0x00000010  // Floating-Point Overflow
+                                            // Exception Interrupt Mask
+#define SYSEXC_IM_FPUFCIM       0x00000008  // Floating-Point Underflow
+                                            // Exception Interrupt Mask
+#define SYSEXC_IM_FPIOCIM       0x00000004  // Floating-Point Invalid Operation
+                                            // Interrupt Mask
+#define SYSEXC_IM_FPDZCIM       0x00000002  // Floating-Point Divide By 0
+                                            // Exception Interrupt Mask
+#define SYSEXC_IM_FPIDCIM       0x00000001  // Floating-Point Input Denormal
+                                            // Exception Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSEXC_MIS register.
+//
+//*****************************************************************************
+#define SYSEXC_MIS_FPIXCMIS     0x00000020  // Floating-Point Inexact Exception
+                                            // Masked Interrupt Status
+#define SYSEXC_MIS_FPOFCMIS     0x00000010  // Floating-Point Overflow
+                                            // Exception Masked Interrupt
+                                            // Status
+#define SYSEXC_MIS_FPUFCMIS     0x00000008  // Floating-Point Underflow
+                                            // Exception Masked Interrupt
+                                            // Status
+#define SYSEXC_MIS_FPIOCMIS     0x00000004  // Floating-Point Invalid Operation
+                                            // Masked Interrupt Status
+#define SYSEXC_MIS_FPDZCMIS     0x00000002  // Floating-Point Divide By 0
+                                            // Exception Masked Interrupt
+                                            // Status
+#define SYSEXC_MIS_FPIDCMIS     0x00000001  // Floating-Point Input Denormal
+                                            // Exception Masked Interrupt
+                                            // Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSEXC_IC register.
+//
+//*****************************************************************************
+#define SYSEXC_IC_FPIXCIC       0x00000020  // Floating-Point Inexact Exception
+                                            // Interrupt Clear
+#define SYSEXC_IC_FPOFCIC       0x00000010  // Floating-Point Overflow
+                                            // Exception Interrupt Clear
+#define SYSEXC_IC_FPUFCIC       0x00000008  // Floating-Point Underflow
+                                            // Exception Interrupt Clear
+#define SYSEXC_IC_FPIOCIC       0x00000004  // Floating-Point Invalid Operation
+                                            // Interrupt Clear
+#define SYSEXC_IC_FPDZCIC       0x00000002  // Floating-Point Divide By 0
+                                            // Exception Interrupt Clear
+#define SYSEXC_IC_FPIDCIC       0x00000001  // Floating-Point Input Denormal
+                                            // Exception Interrupt Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_RTCC register.
+//
+//*****************************************************************************
+#define HIB_RTCC_M              0xFFFFFFFF  // RTC Counter
+#define HIB_RTCC_S              0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_RTCM0 register.
+//
+//*****************************************************************************
+#define HIB_RTCM0_M             0xFFFFFFFF  // RTC Match 0
+#define HIB_RTCM0_S             0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_RTCLD register.
+//
+//*****************************************************************************
+#define HIB_RTCLD_M             0xFFFFFFFF  // RTC Load
+#define HIB_RTCLD_S             0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_CTL register.
+//
+//*****************************************************************************
+#define HIB_CTL_WRC             0x80000000  // Write Complete/Capable
+#define HIB_CTL_OSCDRV          0x00020000  // Oscillator Drive Capability
+#define HIB_CTL_OSCBYP          0x00010000  // Oscillator Bypass
+#define HIB_CTL_VBATSEL_M       0x00006000  // Select for Low-Battery
+                                            // Comparator
+#define HIB_CTL_VBATSEL_1_9V    0x00000000  // 1.9 Volts
+#define HIB_CTL_VBATSEL_2_1V    0x00002000  // 2.1 Volts (default)
+#define HIB_CTL_VBATSEL_2_3V    0x00004000  // 2.3 Volts
+#define HIB_CTL_VBATSEL_2_5V    0x00006000  // 2.5 Volts
+#define HIB_CTL_BATCHK          0x00000400  // Check Battery Status
+#define HIB_CTL_BATWKEN         0x00000200  // Wake on Low Battery
+#define HIB_CTL_VDD3ON          0x00000100  // VDD Powered
+#define HIB_CTL_VABORT          0x00000080  // Power Cut Abort Enable
+#define HIB_CTL_CLK32EN         0x00000040  // Clocking Enable
+#define HIB_CTL_PINWEN          0x00000010  // External Wake Pin Enable
+#define HIB_CTL_RTCWEN          0x00000008  // RTC Wake-up Enable
+#define HIB_CTL_HIBREQ          0x00000002  // Hibernation Request
+#define HIB_CTL_RTCEN           0x00000001  // RTC Timer Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_IM register.
+//
+//*****************************************************************************
+#define HIB_IM_WC               0x00000010  // External Write Complete/Capable
+                                            // Interrupt Mask
+#define HIB_IM_EXTW             0x00000008  // External Wake-Up Interrupt Mask
+#define HIB_IM_LOWBAT           0x00000004  // Low Battery Voltage Interrupt
+                                            // Mask
+#define HIB_IM_RTCALT0          0x00000001  // RTC Alert 0 Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_RIS register.
+//
+//*****************************************************************************
+#define HIB_RIS_WC              0x00000010  // Write Complete/Capable Raw
+                                            // Interrupt Status
+#define HIB_RIS_EXTW            0x00000008  // External Wake-Up Raw Interrupt
+                                            // Status
+#define HIB_RIS_LOWBAT          0x00000004  // Low Battery Voltage Raw
+                                            // Interrupt Status
+#define HIB_RIS_RTCALT0         0x00000001  // RTC Alert 0 Raw Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_MIS register.
+//
+//*****************************************************************************
+#define HIB_MIS_WC              0x00000010  // Write Complete/Capable Masked
+                                            // Interrupt Status
+#define HIB_MIS_EXTW            0x00000008  // External Wake-Up Masked
+                                            // Interrupt Status
+#define HIB_MIS_LOWBAT          0x00000004  // Low Battery Voltage Masked
+                                            // Interrupt Status
+#define HIB_MIS_RTCALT0         0x00000001  // RTC Alert 0 Masked Interrupt
+                                            // Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_IC register.
+//
+//*****************************************************************************
+#define HIB_IC_WC               0x00000010  // Write Complete/Capable Interrupt
+                                            // Clear
+#define HIB_IC_EXTW             0x00000008  // External Wake-Up Interrupt Clear
+#define HIB_IC_LOWBAT           0x00000004  // Low Battery Voltage Interrupt
+                                            // Clear
+#define HIB_IC_RTCALT0          0x00000001  // RTC Alert0 Masked Interrupt
+                                            // Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_RTCT register.
+//
+//*****************************************************************************
+#define HIB_RTCT_TRIM_M         0x0000FFFF  // RTC Trim Value
+#define HIB_RTCT_TRIM_S         0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_RTCSS register.
+//
+//*****************************************************************************
+#define HIB_RTCSS_RTCSSM_M      0x7FFF0000  // RTC Sub Seconds Match
+#define HIB_RTCSS_RTCSSC_M      0x00007FFF  // RTC Sub Seconds Count
+#define HIB_RTCSS_RTCSSM_S      16
+#define HIB_RTCSS_RTCSSC_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_DATA register.
+//
+//*****************************************************************************
+#define HIB_DATA_RTD_M          0xFFFFFFFF  // Hibernation Module NV Data
+#define HIB_DATA_RTD_S          0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FMA register.
+//
+//*****************************************************************************
+#define FLASH_FMA_OFFSET_M      0x0003FFFF  // Address Offset
+#define FLASH_FMA_OFFSET_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FMD register.
+//
+//*****************************************************************************
+#define FLASH_FMD_DATA_M        0xFFFFFFFF  // Data Value
+#define FLASH_FMD_DATA_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FMC register.
+//
+//*****************************************************************************
+#define FLASH_FMC_WRKEY         0xA4420000  // FLASH write key
+#define FLASH_FMC_COMT          0x00000008  // Commit Register Value
+#define FLASH_FMC_MERASE        0x00000004  // Mass Erase Flash Memory
+#define FLASH_FMC_ERASE         0x00000002  // Erase a Page of Flash Memory
+#define FLASH_FMC_WRITE         0x00000001  // Write a Word into Flash Memory
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FCRIS register.
+//
+//*****************************************************************************
+#define FLASH_FCRIS_PROGRIS     0x00002000  // Program Verify Error Raw
+                                            // Interrupt Status
+#define FLASH_FCRIS_ERRIS       0x00000800  // Erase Verify Error Raw Interrupt
+                                            // Status
+#define FLASH_FCRIS_INVDRIS     0x00000400  // Invalid Data Raw Interrupt
+                                            // Status
+#define FLASH_FCRIS_VOLTRIS     0x00000200  // Pump Voltage Raw Interrupt
+                                            // Status
+#define FLASH_FCRIS_ERIS        0x00000004  // EEPROM Raw Interrupt Status
+#define FLASH_FCRIS_PRIS        0x00000002  // Programming Raw Interrupt Status
+#define FLASH_FCRIS_ARIS        0x00000001  // Access Raw Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FCIM register.
+//
+//*****************************************************************************
+#define FLASH_FCIM_PROGMASK     0x00002000  // PROGVER Interrupt Mask
+#define FLASH_FCIM_ERMASK       0x00000800  // ERVER Interrupt Mask
+#define FLASH_FCIM_INVDMASK     0x00000400  // Invalid Data Interrupt Mask
+#define FLASH_FCIM_VOLTMASK     0x00000200  // VOLT Interrupt Mask
+#define FLASH_FCIM_EMASK        0x00000004  // EEPROM Interrupt Mask
+#define FLASH_FCIM_PMASK        0x00000002  // Programming Interrupt Mask
+#define FLASH_FCIM_AMASK        0x00000001  // Access Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FCMISC register.
+//
+//*****************************************************************************
+#define FLASH_FCMISC_PROGMISC   0x00002000  // PROGVER Masked Interrupt Status
+                                            // and Clear
+#define FLASH_FCMISC_ERMISC     0x00000800  // ERVER Masked Interrupt Status
+                                            // and Clear
+#define FLASH_FCMISC_INVDMISC   0x00000400  // Invalid Data Masked Interrupt
+                                            // Status and Clear
+#define FLASH_FCMISC_VOLTMISC   0x00000200  // VOLT Masked Interrupt Status and
+                                            // Clear
+#define FLASH_FCMISC_EMISC      0x00000004  // EEPROM Masked Interrupt Status
+                                            // and Clear
+#define FLASH_FCMISC_PMISC      0x00000002  // Programming Masked Interrupt
+                                            // Status and Clear
+#define FLASH_FCMISC_AMISC      0x00000001  // Access Masked Interrupt Status
+                                            // and Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FMC2 register.
+//
+//*****************************************************************************
+#define FLASH_FMC2_WRBUF        0x00000001  // Buffered Flash Memory Write
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FWBVAL register.
+//
+//*****************************************************************************
+#define FLASH_FWBVAL_FWB_M      0xFFFFFFFF  // Flash Memory Write Buffer
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FWBN register.
+//
+//*****************************************************************************
+#define FLASH_FWBN_DATA_M       0xFFFFFFFF  // Data
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FSIZE register.
+//
+//*****************************************************************************
+#define FLASH_FSIZE_SIZE_M      0x0000FFFF  // Flash Size
+#define FLASH_FSIZE_SIZE_256KB  0x0000007F  // 256 KB of Flash
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_SSIZE register.
+//
+//*****************************************************************************
+#define FLASH_SSIZE_SIZE_M      0x0000FFFF  // SRAM Size
+#define FLASH_SSIZE_SIZE_32KB   0x0000007F  // 32 KB of SRAM
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_ROMSWMAP register.
+//
+//*****************************************************************************
+#define FLASH_ROMSWMAP_SAFERTOS 0x00000001  // SafeRTOS Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_RMCTL register.
+//
+//*****************************************************************************
+#define FLASH_RMCTL_BA          0x00000001  // Boot Alias
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_BOOTCFG register.
+//
+//*****************************************************************************
+#define FLASH_BOOTCFG_NW        0x80000000  // Not Written
+#define FLASH_BOOTCFG_PORT_M    0x0000E000  // Boot GPIO Port
+#define FLASH_BOOTCFG_PORT_A    0x00000000  // Port A
+#define FLASH_BOOTCFG_PORT_B    0x00002000  // Port B
+#define FLASH_BOOTCFG_PORT_C    0x00004000  // Port C
+#define FLASH_BOOTCFG_PORT_D    0x00006000  // Port D
+#define FLASH_BOOTCFG_PORT_E    0x00008000  // Port E
+#define FLASH_BOOTCFG_PORT_F    0x0000A000  // Port F
+#define FLASH_BOOTCFG_PORT_G    0x0000C000  // Port G
+#define FLASH_BOOTCFG_PORT_H    0x0000E000  // Port H
+#define FLASH_BOOTCFG_PIN_M     0x00001C00  // Boot GPIO Pin
+#define FLASH_BOOTCFG_PIN_0     0x00000000  // Pin 0
+#define FLASH_BOOTCFG_PIN_1     0x00000400  // Pin 1
+#define FLASH_BOOTCFG_PIN_2     0x00000800  // Pin 2
+#define FLASH_BOOTCFG_PIN_3     0x00000C00  // Pin 3
+#define FLASH_BOOTCFG_PIN_4     0x00001000  // Pin 4
+#define FLASH_BOOTCFG_PIN_5     0x00001400  // Pin 5
+#define FLASH_BOOTCFG_PIN_6     0x00001800  // Pin 6
+#define FLASH_BOOTCFG_PIN_7     0x00001C00  // Pin 7
+#define FLASH_BOOTCFG_POL       0x00000200  // Boot GPIO Polarity
+#define FLASH_BOOTCFG_EN        0x00000100  // Boot GPIO Enable
+#define FLASH_BOOTCFG_KEY       0x00000010  // KEY Select
+#define FLASH_BOOTCFG_DBG1      0x00000002  // Debug Control 1
+#define FLASH_BOOTCFG_DBG0      0x00000001  // Debug Control 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_USERREG0 register.
+//
+//*****************************************************************************
+#define FLASH_USERREG0_DATA_M   0xFFFFFFFF  // User Data
+#define FLASH_USERREG0_DATA_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_USERREG1 register.
+//
+//*****************************************************************************
+#define FLASH_USERREG1_DATA_M   0xFFFFFFFF  // User Data
+#define FLASH_USERREG1_DATA_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_USERREG2 register.
+//
+//*****************************************************************************
+#define FLASH_USERREG2_DATA_M   0xFFFFFFFF  // User Data
+#define FLASH_USERREG2_DATA_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_USERREG3 register.
+//
+//*****************************************************************************
+#define FLASH_USERREG3_DATA_M   0xFFFFFFFF  // User Data
+#define FLASH_USERREG3_DATA_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DID0 register.
+//
+//*****************************************************************************
+#define SYSCTL_DID0_VER_M       0x70000000  // DID0 Version
+#define SYSCTL_DID0_VER_1       0x10000000  // Second version of the DID0
+                                            // register format.
+#define SYSCTL_DID0_CLASS_M     0x00FF0000  // Device Class
+#define SYSCTL_DID0_CLASS_TM4C123                                             \
+                                0x00050000  // Tiva TM4C123x and TM4E123x
+                                            // microcontrollers
+#define SYSCTL_DID0_MAJ_M       0x0000FF00  // Major Revision
+#define SYSCTL_DID0_MAJ_REVA    0x00000000  // Revision A (initial device)
+#define SYSCTL_DID0_MAJ_REVB    0x00000100  // Revision B (first base layer
+                                            // revision)
+#define SYSCTL_DID0_MAJ_REVC    0x00000200  // Revision C (second base layer
+                                            // revision)
+#define SYSCTL_DID0_MIN_M       0x000000FF  // Minor Revision
+#define SYSCTL_DID0_MIN_0       0x00000000  // Initial device, or a major
+                                            // revision update
+#define SYSCTL_DID0_MIN_1       0x00000001  // First metal layer change
+#define SYSCTL_DID0_MIN_2       0x00000002  // Second metal layer change
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DID1 register.
+//
+//*****************************************************************************
+#define SYSCTL_DID1_VER_M       0xF0000000  // DID1 Version
+#define SYSCTL_DID1_VER_1       0x10000000  // fury_ib
+#define SYSCTL_DID1_FAM_M       0x0F000000  // Family
+#define SYSCTL_DID1_FAM_TIVA    0x00000000  // Tiva family of microcontollers
+#define SYSCTL_DID1_PRTNO_M     0x00FF0000  // Part Number
+#define SYSCTL_DID1_PRTNO_TM4C123GH6PM                                        \
+                                0x00A10000  // TM4C123GH6PM
+#define SYSCTL_DID1_PINCNT_M    0x0000E000  // Package Pin Count
+#define SYSCTL_DID1_PINCNT_100  0x00004000  // 100-pin LQFP package
+#define SYSCTL_DID1_PINCNT_64   0x00006000  // 64-pin LQFP package
+#define SYSCTL_DID1_PINCNT_144  0x00008000  // 144-pin LQFP package
+#define SYSCTL_DID1_PINCNT_157  0x0000A000  // 157-pin BGA package
+#define SYSCTL_DID1_PINCNT_128  0x0000C000  // 128-pin TQFP package
+#define SYSCTL_DID1_TEMP_M      0x000000E0  // Temperature Range
+#define SYSCTL_DID1_TEMP_I      0x00000020  // Industrial temperature range
+#define SYSCTL_DID1_TEMP_E      0x00000040  // Extended temperature range
+#define SYSCTL_DID1_TEMP_IE     0x00000060  // Available in both industrial
+                                            // temperature range (-40C to 85C)
+                                            // and extended temperature range
+                                            // (-40C to 105C) devices. See
+#define SYSCTL_DID1_PKG_M       0x00000018  // Package Type
+#define SYSCTL_DID1_PKG_QFP     0x00000008  // QFP package
+#define SYSCTL_DID1_PKG_BGA     0x00000010  // BGA package
+#define SYSCTL_DID1_ROHS        0x00000004  // RoHS-Compliance
+#define SYSCTL_DID1_QUAL_M      0x00000003  // Qualification Status
+#define SYSCTL_DID1_QUAL_ES     0x00000000  // Engineering Sample (unqualified)
+#define SYSCTL_DID1_QUAL_PP     0x00000001  // Pilot Production (unqualified)
+#define SYSCTL_DID1_QUAL_FQ     0x00000002  // Fully Qualified
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DC0 register.
+//
+//*****************************************************************************
+#define SYSCTL_DC0_SRAMSZ_M     0xFFFF0000  // SRAM Size
+#define SYSCTL_DC0_SRAMSZ_2KB   0x00070000  // 2 KB of SRAM
+#define SYSCTL_DC0_SRAMSZ_4KB   0x000F0000  // 4 KB of SRAM
+#define SYSCTL_DC0_SRAMSZ_6KB   0x00170000  // 6 KB of SRAM
+#define SYSCTL_DC0_SRAMSZ_8KB   0x001F0000  // 8 KB of SRAM
+#define SYSCTL_DC0_SRAMSZ_12KB  0x002F0000  // 12 KB of SRAM
+#define SYSCTL_DC0_SRAMSZ_16KB  0x003F0000  // 16 KB of SRAM
+#define SYSCTL_DC0_SRAMSZ_20KB  0x004F0000  // 20 KB of SRAM
+#define SYSCTL_DC0_SRAMSZ_24KB  0x005F0000  // 24 KB of SRAM
+#define SYSCTL_DC0_SRAMSZ_32KB  0x007F0000  // 32 KB of SRAM
+#define SYSCTL_DC0_FLASHSZ_M    0x0000FFFF  // Flash Size
+#define SYSCTL_DC0_FLASHSZ_8KB  0x00000003  // 8 KB of Flash
+#define SYSCTL_DC0_FLASHSZ_16KB 0x00000007  // 16 KB of Flash
+#define SYSCTL_DC0_FLASHSZ_32KB 0x0000000F  // 32 KB of Flash
+#define SYSCTL_DC0_FLASHSZ_64KB 0x0000001F  // 64 KB of Flash
+#define SYSCTL_DC0_FLASHSZ_96KB 0x0000002F  // 96 KB of Flash
+#define SYSCTL_DC0_FLASHSZ_128K 0x0000003F  // 128 KB of Flash
+#define SYSCTL_DC0_FLASHSZ_192K 0x0000005F  // 192 KB of Flash
+#define SYSCTL_DC0_FLASHSZ_256K 0x0000007F  // 256 KB of Flash
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DC1 register.
+//
+//*****************************************************************************
+#define SYSCTL_DC1_WDT1         0x10000000  // Watchdog Timer1 Present
+#define SYSCTL_DC1_CAN1         0x02000000  // CAN Module 1 Present
+#define SYSCTL_DC1_CAN0         0x01000000  // CAN Module 0 Present
+#define SYSCTL_DC1_PWM1         0x00200000  // PWM Module 1 Present
+#define SYSCTL_DC1_PWM0         0x00100000  // PWM Module 0 Present
+#define SYSCTL_DC1_ADC1         0x00020000  // ADC Module 1 Present
+#define SYSCTL_DC1_ADC0         0x00010000  // ADC Module 0 Present
+#define SYSCTL_DC1_MINSYSDIV_M  0x0000F000  // System Clock Divider
+#define SYSCTL_DC1_MINSYSDIV_80 0x00002000  // Specifies an 80-MHz CPU clock
+                                            // with a PLL divider of 2.5
+#define SYSCTL_DC1_MINSYSDIV_50 0x00003000  // Specifies a 50-MHz CPU clock
+                                            // with a PLL divider of 4
+#define SYSCTL_DC1_MINSYSDIV_40 0x00004000  // Specifies a 40-MHz CPU clock
+                                            // with a PLL divider of 5
+#define SYSCTL_DC1_MINSYSDIV_25 0x00007000  // Specifies a 25-MHz clock with a
+                                            // PLL divider of 8
+#define SYSCTL_DC1_MINSYSDIV_20 0x00009000  // Specifies a 20-MHz clock with a
+                                            // PLL divider of 10
+#define SYSCTL_DC1_ADC1SPD_M    0x00000C00  // Max ADC1 Speed
+#define SYSCTL_DC1_ADC1SPD_125K 0x00000000  // 125K samples/second
+#define SYSCTL_DC1_ADC1SPD_250K 0x00000400  // 250K samples/second
+#define SYSCTL_DC1_ADC1SPD_500K 0x00000800  // 500K samples/second
+#define SYSCTL_DC1_ADC1SPD_1M   0x00000C00  // 1M samples/second
+#define SYSCTL_DC1_ADC0SPD_M    0x00000300  // Max ADC0 Speed
+#define SYSCTL_DC1_ADC0SPD_125K 0x00000000  // 125K samples/second
+#define SYSCTL_DC1_ADC0SPD_250K 0x00000100  // 250K samples/second
+#define SYSCTL_DC1_ADC0SPD_500K 0x00000200  // 500K samples/second
+#define SYSCTL_DC1_ADC0SPD_1M   0x00000300  // 1M samples/second
+#define SYSCTL_DC1_MPU          0x00000080  // MPU Present
+#define SYSCTL_DC1_HIB          0x00000040  // Hibernation Module Present
+#define SYSCTL_DC1_TEMP         0x00000020  // Temp Sensor Present
+#define SYSCTL_DC1_PLL          0x00000010  // PLL Present
+#define SYSCTL_DC1_WDT0         0x00000008  // Watchdog Timer 0 Present
+#define SYSCTL_DC1_SWO          0x00000004  // SWO Trace Port Present
+#define SYSCTL_DC1_SWD          0x00000002  // SWD Present
+#define SYSCTL_DC1_JTAG         0x00000001  // JTAG Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DC2 register.
+//
+//*****************************************************************************
+#define SYSCTL_DC2_EPI0         0x40000000  // EPI Module 0 Present
+#define SYSCTL_DC2_I2S0         0x10000000  // I2S Module 0 Present
+#define SYSCTL_DC2_COMP2        0x04000000  // Analog Comparator 2 Present
+#define SYSCTL_DC2_COMP1        0x02000000  // Analog Comparator 1 Present
+#define SYSCTL_DC2_COMP0        0x01000000  // Analog Comparator 0 Present
+#define SYSCTL_DC2_TIMER3       0x00080000  // Timer Module 3 Present
+#define SYSCTL_DC2_TIMER2       0x00040000  // Timer Module 2 Present
+#define SYSCTL_DC2_TIMER1       0x00020000  // Timer Module 1 Present
+#define SYSCTL_DC2_TIMER0       0x00010000  // Timer Module 0 Present
+#define SYSCTL_DC2_I2C1HS       0x00008000  // I2C Module 1 Speed
+#define SYSCTL_DC2_I2C1         0x00004000  // I2C Module 1 Present
+#define SYSCTL_DC2_I2C0HS       0x00002000  // I2C Module 0 Speed
+#define SYSCTL_DC2_I2C0         0x00001000  // I2C Module 0 Present
+#define SYSCTL_DC2_QEI1         0x00000200  // QEI Module 1 Present
+#define SYSCTL_DC2_QEI0         0x00000100  // QEI Module 0 Present
+#define SYSCTL_DC2_SSI1         0x00000020  // SSI Module 1 Present
+#define SYSCTL_DC2_SSI0         0x00000010  // SSI Module 0 Present
+#define SYSCTL_DC2_UART2        0x00000004  // UART Module 2 Present
+#define SYSCTL_DC2_UART1        0x00000002  // UART Module 1 Present
+#define SYSCTL_DC2_UART0        0x00000001  // UART Module 0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DC3 register.
+//
+//*****************************************************************************
+#define SYSCTL_DC3_32KHZ        0x80000000  // 32KHz Input Clock Available
+#define SYSCTL_DC3_CCP5         0x20000000  // T2CCP1 Pin Present
+#define SYSCTL_DC3_CCP4         0x10000000  // T2CCP0 Pin Present
+#define SYSCTL_DC3_CCP3         0x08000000  // T1CCP1 Pin Present
+#define SYSCTL_DC3_CCP2         0x04000000  // T1CCP0 Pin Present
+#define SYSCTL_DC3_CCP1         0x02000000  // T0CCP1 Pin Present
+#define SYSCTL_DC3_CCP0         0x01000000  // T0CCP0 Pin Present
+#define SYSCTL_DC3_ADC0AIN7     0x00800000  // ADC Module 0 AIN7 Pin Present
+#define SYSCTL_DC3_ADC0AIN6     0x00400000  // ADC Module 0 AIN6 Pin Present
+#define SYSCTL_DC3_ADC0AIN5     0x00200000  // ADC Module 0 AIN5 Pin Present
+#define SYSCTL_DC3_ADC0AIN4     0x00100000  // ADC Module 0 AIN4 Pin Present
+#define SYSCTL_DC3_ADC0AIN3     0x00080000  // ADC Module 0 AIN3 Pin Present
+#define SYSCTL_DC3_ADC0AIN2     0x00040000  // ADC Module 0 AIN2 Pin Present
+#define SYSCTL_DC3_ADC0AIN1     0x00020000  // ADC Module 0 AIN1 Pin Present
+#define SYSCTL_DC3_ADC0AIN0     0x00010000  // ADC Module 0 AIN0 Pin Present
+#define SYSCTL_DC3_PWMFAULT     0x00008000  // PWM Fault Pin Present
+#define SYSCTL_DC3_C2O          0x00004000  // C2o Pin Present
+#define SYSCTL_DC3_C2PLUS       0x00002000  // C2+ Pin Present
+#define SYSCTL_DC3_C2MINUS      0x00001000  // C2- Pin Present
+#define SYSCTL_DC3_C1O          0x00000800  // C1o Pin Present
+#define SYSCTL_DC3_C1PLUS       0x00000400  // C1+ Pin Present
+#define SYSCTL_DC3_C1MINUS      0x00000200  // C1- Pin Present
+#define SYSCTL_DC3_C0O          0x00000100  // C0o Pin Present
+#define SYSCTL_DC3_C0PLUS       0x00000080  // C0+ Pin Present
+#define SYSCTL_DC3_C0MINUS      0x00000040  // C0- Pin Present
+#define SYSCTL_DC3_PWM5         0x00000020  // PWM5 Pin Present
+#define SYSCTL_DC3_PWM4         0x00000010  // PWM4 Pin Present
+#define SYSCTL_DC3_PWM3         0x00000008  // PWM3 Pin Present
+#define SYSCTL_DC3_PWM2         0x00000004  // PWM2 Pin Present
+#define SYSCTL_DC3_PWM1         0x00000002  // PWM1 Pin Present
+#define SYSCTL_DC3_PWM0         0x00000001  // PWM0 Pin Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DC4 register.
+//
+//*****************************************************************************
+#define SYSCTL_DC4_EPHY0        0x40000000  // Ethernet PHY Layer 0 Present
+#define SYSCTL_DC4_EMAC0        0x10000000  // Ethernet MAC Layer 0 Present
+#define SYSCTL_DC4_E1588        0x01000000  // 1588 Capable
+#define SYSCTL_DC4_PICAL        0x00040000  // PIOSC Calibrate
+#define SYSCTL_DC4_CCP7         0x00008000  // T3CCP1 Pin Present
+#define SYSCTL_DC4_CCP6         0x00004000  // T3CCP0 Pin Present
+#define SYSCTL_DC4_UDMA         0x00002000  // Micro-DMA Module Present
+#define SYSCTL_DC4_ROM          0x00001000  // Internal Code ROM Present
+#define SYSCTL_DC4_GPIOJ        0x00000100  // GPIO Port J Present
+#define SYSCTL_DC4_GPIOH        0x00000080  // GPIO Port H Present
+#define SYSCTL_DC4_GPIOG        0x00000040  // GPIO Port G Present
+#define SYSCTL_DC4_GPIOF        0x00000020  // GPIO Port F Present
+#define SYSCTL_DC4_GPIOE        0x00000010  // GPIO Port E Present
+#define SYSCTL_DC4_GPIOD        0x00000008  // GPIO Port D Present
+#define SYSCTL_DC4_GPIOC        0x00000004  // GPIO Port C Present
+#define SYSCTL_DC4_GPIOB        0x00000002  // GPIO Port B Present
+#define SYSCTL_DC4_GPIOA        0x00000001  // GPIO Port A Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DC5 register.
+//
+//*****************************************************************************
+#define SYSCTL_DC5_PWMFAULT3    0x08000000  // PWM Fault 3 Pin Present
+#define SYSCTL_DC5_PWMFAULT2    0x04000000  // PWM Fault 2 Pin Present
+#define SYSCTL_DC5_PWMFAULT1    0x02000000  // PWM Fault 1 Pin Present
+#define SYSCTL_DC5_PWMFAULT0    0x01000000  // PWM Fault 0 Pin Present
+#define SYSCTL_DC5_PWMEFLT      0x00200000  // PWM Extended Fault Active
+#define SYSCTL_DC5_PWMESYNC     0x00100000  // PWM Extended SYNC Active
+#define SYSCTL_DC5_PWM7         0x00000080  // PWM7 Pin Present
+#define SYSCTL_DC5_PWM6         0x00000040  // PWM6 Pin Present
+#define SYSCTL_DC5_PWM5         0x00000020  // PWM5 Pin Present
+#define SYSCTL_DC5_PWM4         0x00000010  // PWM4 Pin Present
+#define SYSCTL_DC5_PWM3         0x00000008  // PWM3 Pin Present
+#define SYSCTL_DC5_PWM2         0x00000004  // PWM2 Pin Present
+#define SYSCTL_DC5_PWM1         0x00000002  // PWM1 Pin Present
+#define SYSCTL_DC5_PWM0         0x00000001  // PWM0 Pin Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DC6 register.
+//
+//*****************************************************************************
+#define SYSCTL_DC6_USB0PHY      0x00000010  // USB Module 0 PHY Present
+#define SYSCTL_DC6_USB0_M       0x00000003  // USB Module 0 Present
+#define SYSCTL_DC6_USB0_DEV     0x00000001  // USB0 is Device Only
+#define SYSCTL_DC6_USB0_HOSTDEV 0x00000002  // USB is Device or Host
+#define SYSCTL_DC6_USB0_OTG     0x00000003  // USB0 is OTG
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DC7 register.
+//
+//*****************************************************************************
+#define SYSCTL_DC7_DMACH30      0x40000000  // DMA Channel 30
+#define SYSCTL_DC7_DMACH29      0x20000000  // DMA Channel 29
+#define SYSCTL_DC7_DMACH28      0x10000000  // DMA Channel 28
+#define SYSCTL_DC7_DMACH27      0x08000000  // DMA Channel 27
+#define SYSCTL_DC7_DMACH26      0x04000000  // DMA Channel 26
+#define SYSCTL_DC7_DMACH25      0x02000000  // DMA Channel 25
+#define SYSCTL_DC7_DMACH24      0x01000000  // DMA Channel 24
+#define SYSCTL_DC7_DMACH23      0x00800000  // DMA Channel 23
+#define SYSCTL_DC7_DMACH22      0x00400000  // DMA Channel 22
+#define SYSCTL_DC7_DMACH21      0x00200000  // DMA Channel 21
+#define SYSCTL_DC7_DMACH20      0x00100000  // DMA Channel 20
+#define SYSCTL_DC7_DMACH19      0x00080000  // DMA Channel 19
+#define SYSCTL_DC7_DMACH18      0x00040000  // DMA Channel 18
+#define SYSCTL_DC7_DMACH17      0x00020000  // DMA Channel 17
+#define SYSCTL_DC7_DMACH16      0x00010000  // DMA Channel 16
+#define SYSCTL_DC7_DMACH15      0x00008000  // DMA Channel 15
+#define SYSCTL_DC7_DMACH14      0x00004000  // DMA Channel 14
+#define SYSCTL_DC7_DMACH13      0x00002000  // DMA Channel 13
+#define SYSCTL_DC7_DMACH12      0x00001000  // DMA Channel 12
+#define SYSCTL_DC7_DMACH11      0x00000800  // DMA Channel 11
+#define SYSCTL_DC7_DMACH10      0x00000400  // DMA Channel 10
+#define SYSCTL_DC7_DMACH9       0x00000200  // DMA Channel 9
+#define SYSCTL_DC7_DMACH8       0x00000100  // DMA Channel 8
+#define SYSCTL_DC7_DMACH7       0x00000080  // DMA Channel 7
+#define SYSCTL_DC7_DMACH6       0x00000040  // DMA Channel 6
+#define SYSCTL_DC7_DMACH5       0x00000020  // DMA Channel 5
+#define SYSCTL_DC7_DMACH4       0x00000010  // DMA Channel 4
+#define SYSCTL_DC7_DMACH3       0x00000008  // DMA Channel 3
+#define SYSCTL_DC7_DMACH2       0x00000004  // DMA Channel 2
+#define SYSCTL_DC7_DMACH1       0x00000002  // DMA Channel 1
+#define SYSCTL_DC7_DMACH0       0x00000001  // DMA Channel 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DC8 register.
+//
+//*****************************************************************************
+#define SYSCTL_DC8_ADC1AIN15    0x80000000  // ADC Module 1 AIN15 Pin Present
+#define SYSCTL_DC8_ADC1AIN14    0x40000000  // ADC Module 1 AIN14 Pin Present
+#define SYSCTL_DC8_ADC1AIN13    0x20000000  // ADC Module 1 AIN13 Pin Present
+#define SYSCTL_DC8_ADC1AIN12    0x10000000  // ADC Module 1 AIN12 Pin Present
+#define SYSCTL_DC8_ADC1AIN11    0x08000000  // ADC Module 1 AIN11 Pin Present
+#define SYSCTL_DC8_ADC1AIN10    0x04000000  // ADC Module 1 AIN10 Pin Present
+#define SYSCTL_DC8_ADC1AIN9     0x02000000  // ADC Module 1 AIN9 Pin Present
+#define SYSCTL_DC8_ADC1AIN8     0x01000000  // ADC Module 1 AIN8 Pin Present
+#define SYSCTL_DC8_ADC1AIN7     0x00800000  // ADC Module 1 AIN7 Pin Present
+#define SYSCTL_DC8_ADC1AIN6     0x00400000  // ADC Module 1 AIN6 Pin Present
+#define SYSCTL_DC8_ADC1AIN5     0x00200000  // ADC Module 1 AIN5 Pin Present
+#define SYSCTL_DC8_ADC1AIN4     0x00100000  // ADC Module 1 AIN4 Pin Present
+#define SYSCTL_DC8_ADC1AIN3     0x00080000  // ADC Module 1 AIN3 Pin Present
+#define SYSCTL_DC8_ADC1AIN2     0x00040000  // ADC Module 1 AIN2 Pin Present
+#define SYSCTL_DC8_ADC1AIN1     0x00020000  // ADC Module 1 AIN1 Pin Present
+#define SYSCTL_DC8_ADC1AIN0     0x00010000  // ADC Module 1 AIN0 Pin Present
+#define SYSCTL_DC8_ADC0AIN15    0x00008000  // ADC Module 0 AIN15 Pin Present
+#define SYSCTL_DC8_ADC0AIN14    0x00004000  // ADC Module 0 AIN14 Pin Present
+#define SYSCTL_DC8_ADC0AIN13    0x00002000  // ADC Module 0 AIN13 Pin Present
+#define SYSCTL_DC8_ADC0AIN12    0x00001000  // ADC Module 0 AIN12 Pin Present
+#define SYSCTL_DC8_ADC0AIN11    0x00000800  // ADC Module 0 AIN11 Pin Present
+#define SYSCTL_DC8_ADC0AIN10    0x00000400  // ADC Module 0 AIN10 Pin Present
+#define SYSCTL_DC8_ADC0AIN9     0x00000200  // ADC Module 0 AIN9 Pin Present
+#define SYSCTL_DC8_ADC0AIN8     0x00000100  // ADC Module 0 AIN8 Pin Present
+#define SYSCTL_DC8_ADC0AIN7     0x00000080  // ADC Module 0 AIN7 Pin Present
+#define SYSCTL_DC8_ADC0AIN6     0x00000040  // ADC Module 0 AIN6 Pin Present
+#define SYSCTL_DC8_ADC0AIN5     0x00000020  // ADC Module 0 AIN5 Pin Present
+#define SYSCTL_DC8_ADC0AIN4     0x00000010  // ADC Module 0 AIN4 Pin Present
+#define SYSCTL_DC8_ADC0AIN3     0x00000008  // ADC Module 0 AIN3 Pin Present
+#define SYSCTL_DC8_ADC0AIN2     0x00000004  // ADC Module 0 AIN2 Pin Present
+#define SYSCTL_DC8_ADC0AIN1     0x00000002  // ADC Module 0 AIN1 Pin Present
+#define SYSCTL_DC8_ADC0AIN0     0x00000001  // ADC Module 0 AIN0 Pin Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PBORCTL register.
+//
+//*****************************************************************************
+#define SYSCTL_PBORCTL_BOR0     0x00000004  // VDD under BOR0 Event Action
+#define SYSCTL_PBORCTL_BOR1     0x00000002  // VDD under BOR1 Event Action
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRCR0 register.
+//
+//*****************************************************************************
+#define SYSCTL_SRCR0_WDT1       0x10000000  // WDT1 Reset Control
+#define SYSCTL_SRCR0_CAN1       0x02000000  // CAN1 Reset Control
+#define SYSCTL_SRCR0_CAN0       0x01000000  // CAN0 Reset Control
+#define SYSCTL_SRCR0_PWM0       0x00100000  // PWM Reset Control
+#define SYSCTL_SRCR0_ADC1       0x00020000  // ADC1 Reset Control
+#define SYSCTL_SRCR0_ADC0       0x00010000  // ADC0 Reset Control
+#define SYSCTL_SRCR0_HIB        0x00000040  // HIB Reset Control
+#define SYSCTL_SRCR0_WDT0       0x00000008  // WDT0 Reset Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRCR1 register.
+//
+//*****************************************************************************
+#define SYSCTL_SRCR1_COMP1      0x02000000  // Analog Comp 1 Reset Control
+#define SYSCTL_SRCR1_COMP0      0x01000000  // Analog Comp 0 Reset Control
+#define SYSCTL_SRCR1_TIMER3     0x00080000  // Timer 3 Reset Control
+#define SYSCTL_SRCR1_TIMER2     0x00040000  // Timer 2 Reset Control
+#define SYSCTL_SRCR1_TIMER1     0x00020000  // Timer 1 Reset Control
+#define SYSCTL_SRCR1_TIMER0     0x00010000  // Timer 0 Reset Control
+#define SYSCTL_SRCR1_I2C1       0x00004000  // I2C1 Reset Control
+#define SYSCTL_SRCR1_I2C0       0x00001000  // I2C0 Reset Control
+#define SYSCTL_SRCR1_QEI1       0x00000200  // QEI1 Reset Control
+#define SYSCTL_SRCR1_QEI0       0x00000100  // QEI0 Reset Control
+#define SYSCTL_SRCR1_SSI1       0x00000020  // SSI1 Reset Control
+#define SYSCTL_SRCR1_SSI0       0x00000010  // SSI0 Reset Control
+#define SYSCTL_SRCR1_UART2      0x00000004  // UART2 Reset Control
+#define SYSCTL_SRCR1_UART1      0x00000002  // UART1 Reset Control
+#define SYSCTL_SRCR1_UART0      0x00000001  // UART0 Reset Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRCR2 register.
+//
+//*****************************************************************************
+#define SYSCTL_SRCR2_USB0       0x00010000  // USB0 Reset Control
+#define SYSCTL_SRCR2_UDMA       0x00002000  // Micro-DMA Reset Control
+#define SYSCTL_SRCR2_GPIOF      0x00000020  // Port F Reset Control
+#define SYSCTL_SRCR2_GPIOE      0x00000010  // Port E Reset Control
+#define SYSCTL_SRCR2_GPIOD      0x00000008  // Port D Reset Control
+#define SYSCTL_SRCR2_GPIOC      0x00000004  // Port C Reset Control
+#define SYSCTL_SRCR2_GPIOB      0x00000002  // Port B Reset Control
+#define SYSCTL_SRCR2_GPIOA      0x00000001  // Port A Reset Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RIS register.
+//
+//*****************************************************************************
+#define SYSCTL_RIS_BOR0RIS      0x00000800  // VDD under BOR0 Raw Interrupt
+                                            // Status
+#define SYSCTL_RIS_VDDARIS      0x00000400  // VDDA Power OK Event Raw
+                                            // Interrupt Status
+#define SYSCTL_RIS_MOSCPUPRIS   0x00000100  // MOSC Power Up Raw Interrupt
+                                            // Status
+#define SYSCTL_RIS_USBPLLLRIS   0x00000080  // USB PLL Lock Raw Interrupt
+                                            // Status
+#define SYSCTL_RIS_PLLLRIS      0x00000040  // PLL Lock Raw Interrupt Status
+#define SYSCTL_RIS_MOFRIS       0x00000008  // Main Oscillator Failure Raw
+                                            // Interrupt Status
+#define SYSCTL_RIS_BOR1RIS      0x00000002  // VDD under BOR1 Raw Interrupt
+                                            // Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_IMC register.
+//
+//*****************************************************************************
+#define SYSCTL_IMC_BOR0IM       0x00000800  // VDD under BOR0 Interrupt Mask
+#define SYSCTL_IMC_VDDAIM       0x00000400  // VDDA Power OK Interrupt Mask
+#define SYSCTL_IMC_MOSCPUPIM    0x00000100  // MOSC Power Up Interrupt Mask
+#define SYSCTL_IMC_USBPLLLIM    0x00000080  // USB PLL Lock Interrupt Mask
+#define SYSCTL_IMC_PLLLIM       0x00000040  // PLL Lock Interrupt Mask
+#define SYSCTL_IMC_MOFIM        0x00000008  // Main Oscillator Failure
+                                            // Interrupt Mask
+#define SYSCTL_IMC_BOR1IM       0x00000002  // VDD under BOR1 Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_MISC register.
+//
+//*****************************************************************************
+#define SYSCTL_MISC_BOR0MIS     0x00000800  // VDD under BOR0 Masked Interrupt
+                                            // Status
+#define SYSCTL_MISC_VDDAMIS     0x00000400  // VDDA Power OK Masked Interrupt
+                                            // Status
+#define SYSCTL_MISC_MOSCPUPMIS  0x00000100  // MOSC Power Up Masked Interrupt
+                                            // Status
+#define SYSCTL_MISC_USBPLLLMIS  0x00000080  // USB PLL Lock Masked Interrupt
+                                            // Status
+#define SYSCTL_MISC_PLLLMIS     0x00000040  // PLL Lock Masked Interrupt Status
+#define SYSCTL_MISC_MOFMIS      0x00000008  // Main Oscillator Failure Masked
+                                            // Interrupt Status
+#define SYSCTL_MISC_BOR1MIS     0x00000002  // VDD under BOR1 Masked Interrupt
+                                            // Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RESC register.
+//
+//*****************************************************************************
+#define SYSCTL_RESC_MOSCFAIL    0x00010000  // MOSC Failure Reset
+#define SYSCTL_RESC_WDT1        0x00000020  // Watchdog Timer 1 Reset
+#define SYSCTL_RESC_SW          0x00000010  // Software Reset
+#define SYSCTL_RESC_WDT0        0x00000008  // Watchdog Timer 0 Reset
+#define SYSCTL_RESC_BOR         0x00000004  // Brown-Out Reset
+#define SYSCTL_RESC_POR         0x00000002  // Power-On Reset
+#define SYSCTL_RESC_EXT         0x00000001  // External Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCC register.
+//
+//*****************************************************************************
+#define SYSCTL_RCC_ACG          0x08000000  // Auto Clock Gating
+#define SYSCTL_RCC_SYSDIV_M     0x07800000  // System Clock Divisor
+#define SYSCTL_RCC_USESYSDIV    0x00400000  // Enable System Clock Divider
+#define SYSCTL_RCC_USEPWMDIV    0x00100000  // Enable PWM Clock Divisor
+#define SYSCTL_RCC_PWMDIV_M     0x000E0000  // PWM Unit Clock Divisor
+#define SYSCTL_RCC_PWMDIV_2     0x00000000  // PWM clock /2
+#define SYSCTL_RCC_PWMDIV_4     0x00020000  // PWM clock /4
+#define SYSCTL_RCC_PWMDIV_8     0x00040000  // PWM clock /8
+#define SYSCTL_RCC_PWMDIV_16    0x00060000  // PWM clock /16
+#define SYSCTL_RCC_PWMDIV_32    0x00080000  // PWM clock /32
+#define SYSCTL_RCC_PWMDIV_64    0x000A0000  // PWM clock /64
+#define SYSCTL_RCC_PWRDN        0x00002000  // PLL Power Down
+#define SYSCTL_RCC_BYPASS       0x00000800  // PLL Bypass
+#define SYSCTL_RCC_XTAL_M       0x000007C0  // Crystal Value
+#define SYSCTL_RCC_XTAL_4MHZ    0x00000180  // 4 MHz
+#define SYSCTL_RCC_XTAL_4_09MHZ 0x000001C0  // 4.096 MHz
+#define SYSCTL_RCC_XTAL_4_91MHZ 0x00000200  // 4.9152 MHz
+#define SYSCTL_RCC_XTAL_5MHZ    0x00000240  // 5 MHz
+#define SYSCTL_RCC_XTAL_5_12MHZ 0x00000280  // 5.12 MHz
+#define SYSCTL_RCC_XTAL_6MHZ    0x000002C0  // 6 MHz
+#define SYSCTL_RCC_XTAL_6_14MHZ 0x00000300  // 6.144 MHz
+#define SYSCTL_RCC_XTAL_7_37MHZ 0x00000340  // 7.3728 MHz
+#define SYSCTL_RCC_XTAL_8MHZ    0x00000380  // 8 MHz
+#define SYSCTL_RCC_XTAL_8_19MHZ 0x000003C0  // 8.192 MHz
+#define SYSCTL_RCC_XTAL_10MHZ   0x00000400  // 10 MHz
+#define SYSCTL_RCC_XTAL_12MHZ   0x00000440  // 12 MHz
+#define SYSCTL_RCC_XTAL_12_2MHZ 0x00000480  // 12.288 MHz
+#define SYSCTL_RCC_XTAL_13_5MHZ 0x000004C0  // 13.56 MHz
+#define SYSCTL_RCC_XTAL_14_3MHZ 0x00000500  // 14.31818 MHz
+#define SYSCTL_RCC_XTAL_16MHZ   0x00000540  // 16 MHz
+#define SYSCTL_RCC_XTAL_16_3MHZ 0x00000580  // 16.384 MHz
+#define SYSCTL_RCC_XTAL_18MHZ   0x000005C0  // 18.0 MHz (USB)
+#define SYSCTL_RCC_XTAL_20MHZ   0x00000600  // 20.0 MHz (USB)
+#define SYSCTL_RCC_XTAL_24MHZ   0x00000640  // 24.0 MHz (USB)
+#define SYSCTL_RCC_XTAL_25MHZ   0x00000680  // 25.0 MHz (USB)
+#define SYSCTL_RCC_OSCSRC_M     0x00000030  // Oscillator Source
+#define SYSCTL_RCC_OSCSRC_MAIN  0x00000000  // MOSC
+#define SYSCTL_RCC_OSCSRC_INT   0x00000010  // IOSC
+#define SYSCTL_RCC_OSCSRC_INT4  0x00000020  // IOSC/4
+#define SYSCTL_RCC_OSCSRC_30    0x00000030  // LFIOSC
+#define SYSCTL_RCC_MOSCDIS      0x00000001  // Main Oscillator Disable
+#define SYSCTL_RCC_SYSDIV_S     23
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_GPIOHBCTL
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_GPIOHBCTL_PORTF  0x00000020  // Port F Advanced High-Performance
+                                            // Bus
+#define SYSCTL_GPIOHBCTL_PORTE  0x00000010  // Port E Advanced High-Performance
+                                            // Bus
+#define SYSCTL_GPIOHBCTL_PORTD  0x00000008  // Port D Advanced High-Performance
+                                            // Bus
+#define SYSCTL_GPIOHBCTL_PORTC  0x00000004  // Port C Advanced High-Performance
+                                            // Bus
+#define SYSCTL_GPIOHBCTL_PORTB  0x00000002  // Port B Advanced High-Performance
+                                            // Bus
+#define SYSCTL_GPIOHBCTL_PORTA  0x00000001  // Port A Advanced High-Performance
+                                            // Bus
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCC2 register.
+//
+//*****************************************************************************
+#define SYSCTL_RCC2_USERCC2     0x80000000  // Use RCC2
+#define SYSCTL_RCC2_DIV400      0x40000000  // Divide PLL as 400 MHz vs. 200
+                                            // MHz
+#define SYSCTL_RCC2_SYSDIV2_M   0x1F800000  // System Clock Divisor 2
+#define SYSCTL_RCC2_SYSDIV2LSB  0x00400000  // Additional LSB for SYSDIV2
+#define SYSCTL_RCC2_USBPWRDN    0x00004000  // Power-Down USB PLL
+#define SYSCTL_RCC2_PWRDN2      0x00002000  // Power-Down PLL 2
+#define SYSCTL_RCC2_BYPASS2     0x00000800  // PLL Bypass 2
+#define SYSCTL_RCC2_OSCSRC2_M   0x00000070  // Oscillator Source 2
+#define SYSCTL_RCC2_OSCSRC2_MO  0x00000000  // MOSC
+#define SYSCTL_RCC2_OSCSRC2_IO  0x00000010  // PIOSC
+#define SYSCTL_RCC2_OSCSRC2_IO4 0x00000020  // PIOSC/4
+#define SYSCTL_RCC2_OSCSRC2_30  0x00000030  // LFIOSC
+#define SYSCTL_RCC2_OSCSRC2_32  0x00000070  // 32.768 kHz
+#define SYSCTL_RCC2_SYSDIV2_S   23
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_MOSCCTL register.
+//
+//*****************************************************************************
+#define SYSCTL_MOSCCTL_NOXTAL   0x00000004  // No Crystal Connected
+#define SYSCTL_MOSCCTL_MOSCIM   0x00000002  // MOSC Failure Action
+#define SYSCTL_MOSCCTL_CVAL     0x00000001  // Clock Validation for MOSC
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGC0 register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGC0_WDT1       0x10000000  // WDT1 Clock Gating Control
+#define SYSCTL_RCGC0_CAN1       0x02000000  // CAN1 Clock Gating Control
+#define SYSCTL_RCGC0_CAN0       0x01000000  // CAN0 Clock Gating Control
+#define SYSCTL_RCGC0_PWM0       0x00100000  // PWM Clock Gating Control
+#define SYSCTL_RCGC0_ADC1       0x00020000  // ADC1 Clock Gating Control
+#define SYSCTL_RCGC0_ADC0       0x00010000  // ADC0 Clock Gating Control
+#define SYSCTL_RCGC0_ADC1SPD_M  0x00000C00  // ADC1 Sample Speed
+#define SYSCTL_RCGC0_ADC1SPD_125K                                             \
+                                0x00000000  // 125K samples/second
+#define SYSCTL_RCGC0_ADC1SPD_250K                                             \
+                                0x00000400  // 250K samples/second
+#define SYSCTL_RCGC0_ADC1SPD_500K                                             \
+                                0x00000800  // 500K samples/second
+#define SYSCTL_RCGC0_ADC1SPD_1M 0x00000C00  // 1M samples/second
+#define SYSCTL_RCGC0_ADC0SPD_M  0x00000300  // ADC0 Sample Speed
+#define SYSCTL_RCGC0_ADC0SPD_125K                                             \
+                                0x00000000  // 125K samples/second
+#define SYSCTL_RCGC0_ADC0SPD_250K                                             \
+                                0x00000100  // 250K samples/second
+#define SYSCTL_RCGC0_ADC0SPD_500K                                             \
+                                0x00000200  // 500K samples/second
+#define SYSCTL_RCGC0_ADC0SPD_1M 0x00000300  // 1M samples/second
+#define SYSCTL_RCGC0_HIB        0x00000040  // HIB Clock Gating Control
+#define SYSCTL_RCGC0_WDT0       0x00000008  // WDT0 Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGC1 register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGC1_COMP1      0x02000000  // Analog Comparator 1 Clock Gating
+#define SYSCTL_RCGC1_COMP0      0x01000000  // Analog Comparator 0 Clock Gating
+#define SYSCTL_RCGC1_TIMER3     0x00080000  // Timer 3 Clock Gating Control
+#define SYSCTL_RCGC1_TIMER2     0x00040000  // Timer 2 Clock Gating Control
+#define SYSCTL_RCGC1_TIMER1     0x00020000  // Timer 1 Clock Gating Control
+#define SYSCTL_RCGC1_TIMER0     0x00010000  // Timer 0 Clock Gating Control
+#define SYSCTL_RCGC1_I2C1       0x00004000  // I2C1 Clock Gating Control
+#define SYSCTL_RCGC1_I2C0       0x00001000  // I2C0 Clock Gating Control
+#define SYSCTL_RCGC1_QEI1       0x00000200  // QEI1 Clock Gating Control
+#define SYSCTL_RCGC1_QEI0       0x00000100  // QEI0 Clock Gating Control
+#define SYSCTL_RCGC1_SSI1       0x00000020  // SSI1 Clock Gating Control
+#define SYSCTL_RCGC1_SSI0       0x00000010  // SSI0 Clock Gating Control
+#define SYSCTL_RCGC1_UART2      0x00000004  // UART2 Clock Gating Control
+#define SYSCTL_RCGC1_UART1      0x00000002  // UART1 Clock Gating Control
+#define SYSCTL_RCGC1_UART0      0x00000001  // UART0 Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGC2 register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGC2_USB0       0x00010000  // USB0 Clock Gating Control
+#define SYSCTL_RCGC2_UDMA       0x00002000  // Micro-DMA Clock Gating Control
+#define SYSCTL_RCGC2_GPIOF      0x00000020  // Port F Clock Gating Control
+#define SYSCTL_RCGC2_GPIOE      0x00000010  // Port E Clock Gating Control
+#define SYSCTL_RCGC2_GPIOD      0x00000008  // Port D Clock Gating Control
+#define SYSCTL_RCGC2_GPIOC      0x00000004  // Port C Clock Gating Control
+#define SYSCTL_RCGC2_GPIOB      0x00000002  // Port B Clock Gating Control
+#define SYSCTL_RCGC2_GPIOA      0x00000001  // Port A Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGC0 register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGC0_WDT1       0x10000000  // WDT1 Clock Gating Control
+#define SYSCTL_SCGC0_CAN1       0x02000000  // CAN1 Clock Gating Control
+#define SYSCTL_SCGC0_CAN0       0x01000000  // CAN0 Clock Gating Control
+#define SYSCTL_SCGC0_PWM0       0x00100000  // PWM Clock Gating Control
+#define SYSCTL_SCGC0_ADC1       0x00020000  // ADC1 Clock Gating Control
+#define SYSCTL_SCGC0_ADC0       0x00010000  // ADC0 Clock Gating Control
+#define SYSCTL_SCGC0_HIB        0x00000040  // HIB Clock Gating Control
+#define SYSCTL_SCGC0_WDT0       0x00000008  // WDT0 Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGC1 register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGC1_COMP1      0x02000000  // Analog Comparator 1 Clock Gating
+#define SYSCTL_SCGC1_COMP0      0x01000000  // Analog Comparator 0 Clock Gating
+#define SYSCTL_SCGC1_TIMER3     0x00080000  // Timer 3 Clock Gating Control
+#define SYSCTL_SCGC1_TIMER2     0x00040000  // Timer 2 Clock Gating Control
+#define SYSCTL_SCGC1_TIMER1     0x00020000  // Timer 1 Clock Gating Control
+#define SYSCTL_SCGC1_TIMER0     0x00010000  // Timer 0 Clock Gating Control
+#define SYSCTL_SCGC1_I2C1       0x00004000  // I2C1 Clock Gating Control
+#define SYSCTL_SCGC1_I2C0       0x00001000  // I2C0 Clock Gating Control
+#define SYSCTL_SCGC1_QEI1       0x00000200  // QEI1 Clock Gating Control
+#define SYSCTL_SCGC1_QEI0       0x00000100  // QEI0 Clock Gating Control
+#define SYSCTL_SCGC1_SSI1       0x00000020  // SSI1 Clock Gating Control
+#define SYSCTL_SCGC1_SSI0       0x00000010  // SSI0 Clock Gating Control
+#define SYSCTL_SCGC1_UART2      0x00000004  // UART2 Clock Gating Control
+#define SYSCTL_SCGC1_UART1      0x00000002  // UART1 Clock Gating Control
+#define SYSCTL_SCGC1_UART0      0x00000001  // UART0 Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGC2 register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGC2_USB0       0x00010000  // USB0 Clock Gating Control
+#define SYSCTL_SCGC2_UDMA       0x00002000  // Micro-DMA Clock Gating Control
+#define SYSCTL_SCGC2_GPIOF      0x00000020  // Port F Clock Gating Control
+#define SYSCTL_SCGC2_GPIOE      0x00000010  // Port E Clock Gating Control
+#define SYSCTL_SCGC2_GPIOD      0x00000008  // Port D Clock Gating Control
+#define SYSCTL_SCGC2_GPIOC      0x00000004  // Port C Clock Gating Control
+#define SYSCTL_SCGC2_GPIOB      0x00000002  // Port B Clock Gating Control
+#define SYSCTL_SCGC2_GPIOA      0x00000001  // Port A Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGC0 register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGC0_WDT1       0x10000000  // WDT1 Clock Gating Control
+#define SYSCTL_DCGC0_CAN1       0x02000000  // CAN1 Clock Gating Control
+#define SYSCTL_DCGC0_CAN0       0x01000000  // CAN0 Clock Gating Control
+#define SYSCTL_DCGC0_PWM0       0x00100000  // PWM Clock Gating Control
+#define SYSCTL_DCGC0_ADC1       0x00020000  // ADC1 Clock Gating Control
+#define SYSCTL_DCGC0_ADC0       0x00010000  // ADC0 Clock Gating Control
+#define SYSCTL_DCGC0_HIB        0x00000040  // HIB Clock Gating Control
+#define SYSCTL_DCGC0_WDT0       0x00000008  // WDT0 Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGC1 register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGC1_COMP1      0x02000000  // Analog Comparator 1 Clock Gating
+#define SYSCTL_DCGC1_COMP0      0x01000000  // Analog Comparator 0 Clock Gating
+#define SYSCTL_DCGC1_TIMER3     0x00080000  // Timer 3 Clock Gating Control
+#define SYSCTL_DCGC1_TIMER2     0x00040000  // Timer 2 Clock Gating Control
+#define SYSCTL_DCGC1_TIMER1     0x00020000  // Timer 1 Clock Gating Control
+#define SYSCTL_DCGC1_TIMER0     0x00010000  // Timer 0 Clock Gating Control
+#define SYSCTL_DCGC1_I2C1       0x00004000  // I2C1 Clock Gating Control
+#define SYSCTL_DCGC1_I2C0       0x00001000  // I2C0 Clock Gating Control
+#define SYSCTL_DCGC1_QEI1       0x00000200  // QEI1 Clock Gating Control
+#define SYSCTL_DCGC1_QEI0       0x00000100  // QEI0 Clock Gating Control
+#define SYSCTL_DCGC1_SSI1       0x00000020  // SSI1 Clock Gating Control
+#define SYSCTL_DCGC1_SSI0       0x00000010  // SSI0 Clock Gating Control
+#define SYSCTL_DCGC1_UART2      0x00000004  // UART2 Clock Gating Control
+#define SYSCTL_DCGC1_UART1      0x00000002  // UART1 Clock Gating Control
+#define SYSCTL_DCGC1_UART0      0x00000001  // UART0 Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGC2 register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGC2_USB0       0x00010000  // USB0 Clock Gating Control
+#define SYSCTL_DCGC2_UDMA       0x00002000  // Micro-DMA Clock Gating Control
+#define SYSCTL_DCGC2_GPIOF      0x00000020  // Port F Clock Gating Control
+#define SYSCTL_DCGC2_GPIOE      0x00000010  // Port E Clock Gating Control
+#define SYSCTL_DCGC2_GPIOD      0x00000008  // Port D Clock Gating Control
+#define SYSCTL_DCGC2_GPIOC      0x00000004  // Port C Clock Gating Control
+#define SYSCTL_DCGC2_GPIOB      0x00000002  // Port B Clock Gating Control
+#define SYSCTL_DCGC2_GPIOA      0x00000001  // Port A Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DSLPCLKCFG
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_DSLPCLKCFG_D_M   0x1F800000  // Divider Field Override
+#define SYSCTL_DSLPCLKCFG_O_M   0x00000070  // Clock Source
+#define SYSCTL_DSLPCLKCFG_O_IGN 0x00000000  // MOSC
+#define SYSCTL_DSLPCLKCFG_O_IO  0x00000010  // PIOSC
+#define SYSCTL_DSLPCLKCFG_O_30  0x00000030  // LFIOSC
+#define SYSCTL_DSLPCLKCFG_O_32  0x00000070  // 32.768 kHz
+#define SYSCTL_DSLPCLKCFG_PIOSCPD                                             \
+                                0x00000002  // PIOSC Power Down Request
+#define SYSCTL_DSLPCLKCFG_D_S   23
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SYSPROP register.
+//
+//*****************************************************************************
+#define SYSCTL_SYSPROP_FPU      0x00000001  // FPU Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PIOSCCAL
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_PIOSCCAL_UTEN    0x80000000  // Use User Trim Value
+#define SYSCTL_PIOSCCAL_CAL     0x00000200  // Start Calibration
+#define SYSCTL_PIOSCCAL_UPDATE  0x00000100  // Update Trim
+#define SYSCTL_PIOSCCAL_UT_M    0x0000007F  // User Trim Value
+#define SYSCTL_PIOSCCAL_UT_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PIOSCSTAT
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_PIOSCSTAT_DT_M   0x007F0000  // Default Trim Value
+#define SYSCTL_PIOSCSTAT_CR_M   0x00000300  // Calibration Result
+#define SYSCTL_PIOSCSTAT_CRNONE 0x00000000  // Calibration has not been
+                                            // attempted
+#define SYSCTL_PIOSCSTAT_CRPASS 0x00000100  // The last calibration operation
+                                            // completed to meet 1% accuracy
+#define SYSCTL_PIOSCSTAT_CRFAIL 0x00000200  // The last calibration operation
+                                            // failed to meet 1% accuracy
+#define SYSCTL_PIOSCSTAT_CT_M   0x0000007F  // Calibration Trim Value
+#define SYSCTL_PIOSCSTAT_DT_S   16
+#define SYSCTL_PIOSCSTAT_CT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PLLFREQ0
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_PLLFREQ0_MFRAC_M 0x000FFC00  // PLL M Fractional Value
+#define SYSCTL_PLLFREQ0_MINT_M  0x000003FF  // PLL M Integer Value
+#define SYSCTL_PLLFREQ0_MFRAC_S 10
+#define SYSCTL_PLLFREQ0_MINT_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PLLFREQ1
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_PLLFREQ1_Q_M     0x00001F00  // PLL Q Value
+#define SYSCTL_PLLFREQ1_N_M     0x0000001F  // PLL N Value
+#define SYSCTL_PLLFREQ1_Q_S     8
+#define SYSCTL_PLLFREQ1_N_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PLLSTAT register.
+//
+//*****************************************************************************
+#define SYSCTL_PLLSTAT_LOCK     0x00000001  // PLL Lock
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SLPPWRCFG
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_SLPPWRCFG_FLASHPM_M                                            \
+                                0x00000030  // Flash Power Modes
+#define SYSCTL_SLPPWRCFG_FLASHPM_NRM                                          \
+                                0x00000000  // Active Mode
+#define SYSCTL_SLPPWRCFG_FLASHPM_SLP                                          \
+                                0x00000020  // Low Power Mode
+#define SYSCTL_SLPPWRCFG_SRAMPM_M                                             \
+                                0x00000003  // SRAM Power Modes
+#define SYSCTL_SLPPWRCFG_SRAMPM_NRM                                           \
+                                0x00000000  // Active Mode
+#define SYSCTL_SLPPWRCFG_SRAMPM_SBY                                           \
+                                0x00000001  // Standby Mode
+#define SYSCTL_SLPPWRCFG_SRAMPM_LP                                            \
+                                0x00000003  // Low Power Mode
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DSLPPWRCFG
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_DSLPPWRCFG_FLASHPM_M                                           \
+                                0x00000030  // Flash Power Modes
+#define SYSCTL_DSLPPWRCFG_FLASHPM_NRM                                         \
+                                0x00000000  // Active Mode
+#define SYSCTL_DSLPPWRCFG_FLASHPM_SLP                                         \
+                                0x00000020  // Low Power Mode
+#define SYSCTL_DSLPPWRCFG_SRAMPM_M                                            \
+                                0x00000003  // SRAM Power Modes
+#define SYSCTL_DSLPPWRCFG_SRAMPM_NRM                                          \
+                                0x00000000  // Active Mode
+#define SYSCTL_DSLPPWRCFG_SRAMPM_SBY                                          \
+                                0x00000001  // Standby Mode
+#define SYSCTL_DSLPPWRCFG_SRAMPM_LP                                           \
+                                0x00000003  // Low Power Mode
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DC9 register.
+//
+//*****************************************************************************
+#define SYSCTL_DC9_ADC1DC7      0x00800000  // ADC1 DC7 Present
+#define SYSCTL_DC9_ADC1DC6      0x00400000  // ADC1 DC6 Present
+#define SYSCTL_DC9_ADC1DC5      0x00200000  // ADC1 DC5 Present
+#define SYSCTL_DC9_ADC1DC4      0x00100000  // ADC1 DC4 Present
+#define SYSCTL_DC9_ADC1DC3      0x00080000  // ADC1 DC3 Present
+#define SYSCTL_DC9_ADC1DC2      0x00040000  // ADC1 DC2 Present
+#define SYSCTL_DC9_ADC1DC1      0x00020000  // ADC1 DC1 Present
+#define SYSCTL_DC9_ADC1DC0      0x00010000  // ADC1 DC0 Present
+#define SYSCTL_DC9_ADC0DC7      0x00000080  // ADC0 DC7 Present
+#define SYSCTL_DC9_ADC0DC6      0x00000040  // ADC0 DC6 Present
+#define SYSCTL_DC9_ADC0DC5      0x00000020  // ADC0 DC5 Present
+#define SYSCTL_DC9_ADC0DC4      0x00000010  // ADC0 DC4 Present
+#define SYSCTL_DC9_ADC0DC3      0x00000008  // ADC0 DC3 Present
+#define SYSCTL_DC9_ADC0DC2      0x00000004  // ADC0 DC2 Present
+#define SYSCTL_DC9_ADC0DC1      0x00000002  // ADC0 DC1 Present
+#define SYSCTL_DC9_ADC0DC0      0x00000001  // ADC0 DC0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_NVMSTAT register.
+//
+//*****************************************************************************
+#define SYSCTL_NVMSTAT_FWB      0x00000001  // 32 Word Flash Write Buffer
+                                            // Available
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_LDOSPCTL
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_LDOSPCTL_VADJEN  0x80000000  // Voltage Adjust Enable
+#define SYSCTL_LDOSPCTL_VLDO_M  0x000000FF  // LDO Output Voltage
+#define SYSCTL_LDOSPCTL_VLDO_0_90V                                            \
+                                0x00000012  // 0.90 V
+#define SYSCTL_LDOSPCTL_VLDO_0_95V                                            \
+                                0x00000013  // 0.95 V
+#define SYSCTL_LDOSPCTL_VLDO_1_00V                                            \
+                                0x00000014  // 1.00 V
+#define SYSCTL_LDOSPCTL_VLDO_1_05V                                            \
+                                0x00000015  // 1.05 V
+#define SYSCTL_LDOSPCTL_VLDO_1_10V                                            \
+                                0x00000016  // 1.10 V
+#define SYSCTL_LDOSPCTL_VLDO_1_15V                                            \
+                                0x00000017  // 1.15 V
+#define SYSCTL_LDOSPCTL_VLDO_1_20V                                            \
+                                0x00000018  // 1.20 V
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_LDODPCTL
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_LDODPCTL_VADJEN  0x80000000  // Voltage Adjust Enable
+#define SYSCTL_LDODPCTL_VLDO_M  0x000000FF  // LDO Output Voltage
+#define SYSCTL_LDODPCTL_VLDO_0_90V                                            \
+                                0x00000012  // 0.90 V
+#define SYSCTL_LDODPCTL_VLDO_0_95V                                            \
+                                0x00000013  // 0.95 V
+#define SYSCTL_LDODPCTL_VLDO_1_00V                                            \
+                                0x00000014  // 1.00 V
+#define SYSCTL_LDODPCTL_VLDO_1_05V                                            \
+                                0x00000015  // 1.05 V
+#define SYSCTL_LDODPCTL_VLDO_1_10V                                            \
+                                0x00000016  // 1.10 V
+#define SYSCTL_LDODPCTL_VLDO_1_15V                                            \
+                                0x00000017  // 1.15 V
+#define SYSCTL_LDODPCTL_VLDO_1_20V                                            \
+                                0x00000018  // 1.20 V
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPWD register.
+//
+//*****************************************************************************
+#define SYSCTL_PPWD_P1          0x00000002  // Watchdog Timer 1 Present
+#define SYSCTL_PPWD_P0          0x00000001  // Watchdog Timer 0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPTIMER register.
+//
+//*****************************************************************************
+#define SYSCTL_PPTIMER_P5       0x00000020  // 16/32-Bit General-Purpose Timer
+                                            // 5 Present
+#define SYSCTL_PPTIMER_P4       0x00000010  // 16/32-Bit General-Purpose Timer
+                                            // 4 Present
+#define SYSCTL_PPTIMER_P3       0x00000008  // 16/32-Bit General-Purpose Timer
+                                            // 3 Present
+#define SYSCTL_PPTIMER_P2       0x00000004  // 16/32-Bit General-Purpose Timer
+                                            // 2 Present
+#define SYSCTL_PPTIMER_P1       0x00000002  // 16/32-Bit General-Purpose Timer
+                                            // 1 Present
+#define SYSCTL_PPTIMER_P0       0x00000001  // 16/32-Bit General-Purpose Timer
+                                            // 0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPGPIO register.
+//
+//*****************************************************************************
+#define SYSCTL_PPGPIO_P14       0x00004000  // GPIO Port Q Present
+#define SYSCTL_PPGPIO_P13       0x00002000  // GPIO Port P Present
+#define SYSCTL_PPGPIO_P12       0x00001000  // GPIO Port N Present
+#define SYSCTL_PPGPIO_P11       0x00000800  // GPIO Port M Present
+#define SYSCTL_PPGPIO_P10       0x00000400  // GPIO Port L Present
+#define SYSCTL_PPGPIO_P9        0x00000200  // GPIO Port K Present
+#define SYSCTL_PPGPIO_P8        0x00000100  // GPIO Port J Present
+#define SYSCTL_PPGPIO_P7        0x00000080  // GPIO Port H Present
+#define SYSCTL_PPGPIO_P6        0x00000040  // GPIO Port G Present
+#define SYSCTL_PPGPIO_P5        0x00000020  // GPIO Port F Present
+#define SYSCTL_PPGPIO_P4        0x00000010  // GPIO Port E Present
+#define SYSCTL_PPGPIO_P3        0x00000008  // GPIO Port D Present
+#define SYSCTL_PPGPIO_P2        0x00000004  // GPIO Port C Present
+#define SYSCTL_PPGPIO_P1        0x00000002  // GPIO Port B Present
+#define SYSCTL_PPGPIO_P0        0x00000001  // GPIO Port A Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPDMA register.
+//
+//*****************************************************************************
+#define SYSCTL_PPDMA_P0         0x00000001  // uDMA Module Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPHIB register.
+//
+//*****************************************************************************
+#define SYSCTL_PPHIB_P0         0x00000001  // Hibernation Module Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPUART register.
+//
+//*****************************************************************************
+#define SYSCTL_PPUART_P7        0x00000080  // UART Module 7 Present
+#define SYSCTL_PPUART_P6        0x00000040  // UART Module 6 Present
+#define SYSCTL_PPUART_P5        0x00000020  // UART Module 5 Present
+#define SYSCTL_PPUART_P4        0x00000010  // UART Module 4 Present
+#define SYSCTL_PPUART_P3        0x00000008  // UART Module 3 Present
+#define SYSCTL_PPUART_P2        0x00000004  // UART Module 2 Present
+#define SYSCTL_PPUART_P1        0x00000002  // UART Module 1 Present
+#define SYSCTL_PPUART_P0        0x00000001  // UART Module 0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPSSI register.
+//
+//*****************************************************************************
+#define SYSCTL_PPSSI_P3         0x00000008  // SSI Module 3 Present
+#define SYSCTL_PPSSI_P2         0x00000004  // SSI Module 2 Present
+#define SYSCTL_PPSSI_P1         0x00000002  // SSI Module 1 Present
+#define SYSCTL_PPSSI_P0         0x00000001  // SSI Module 0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPI2C register.
+//
+//*****************************************************************************
+#define SYSCTL_PPI2C_P5         0x00000020  // I2C Module 5 Present
+#define SYSCTL_PPI2C_P4         0x00000010  // I2C Module 4 Present
+#define SYSCTL_PPI2C_P3         0x00000008  // I2C Module 3 Present
+#define SYSCTL_PPI2C_P2         0x00000004  // I2C Module 2 Present
+#define SYSCTL_PPI2C_P1         0x00000002  // I2C Module 1 Present
+#define SYSCTL_PPI2C_P0         0x00000001  // I2C Module 0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPUSB register.
+//
+//*****************************************************************************
+#define SYSCTL_PPUSB_P0         0x00000001  // USB Module Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPCAN register.
+//
+//*****************************************************************************
+#define SYSCTL_PPCAN_P1         0x00000002  // CAN Module 1 Present
+#define SYSCTL_PPCAN_P0         0x00000001  // CAN Module 0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPADC register.
+//
+//*****************************************************************************
+#define SYSCTL_PPADC_P1         0x00000002  // ADC Module 1 Present
+#define SYSCTL_PPADC_P0         0x00000001  // ADC Module 0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPACMP register.
+//
+//*****************************************************************************
+#define SYSCTL_PPACMP_P0        0x00000001  // Analog Comparator Module Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPPWM register.
+//
+//*****************************************************************************
+#define SYSCTL_PPPWM_P1         0x00000002  // PWM Module 1 Present
+#define SYSCTL_PPPWM_P0         0x00000001  // PWM Module 0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPQEI register.
+//
+//*****************************************************************************
+#define SYSCTL_PPQEI_P1         0x00000002  // QEI Module 1 Present
+#define SYSCTL_PPQEI_P0         0x00000001  // QEI Module 0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPEEPROM
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_PPEEPROM_P0      0x00000001  // EEPROM Module Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPWTIMER
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_PPWTIMER_P5      0x00000020  // 32/64-Bit Wide General-Purpose
+                                            // Timer 5 Present
+#define SYSCTL_PPWTIMER_P4      0x00000010  // 32/64-Bit Wide General-Purpose
+                                            // Timer 4 Present
+#define SYSCTL_PPWTIMER_P3      0x00000008  // 32/64-Bit Wide General-Purpose
+                                            // Timer 3 Present
+#define SYSCTL_PPWTIMER_P2      0x00000004  // 32/64-Bit Wide General-Purpose
+                                            // Timer 2 Present
+#define SYSCTL_PPWTIMER_P1      0x00000002  // 32/64-Bit Wide General-Purpose
+                                            // Timer 1 Present
+#define SYSCTL_PPWTIMER_P0      0x00000001  // 32/64-Bit Wide General-Purpose
+                                            // Timer 0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRWD register.
+//
+//*****************************************************************************
+#define SYSCTL_SRWD_R1          0x00000002  // Watchdog Timer 1 Software Reset
+#define SYSCTL_SRWD_R0          0x00000001  // Watchdog Timer 0 Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRTIMER register.
+//
+//*****************************************************************************
+#define SYSCTL_SRTIMER_R5       0x00000020  // 16/32-Bit General-Purpose Timer
+                                            // 5 Software Reset
+#define SYSCTL_SRTIMER_R4       0x00000010  // 16/32-Bit General-Purpose Timer
+                                            // 4 Software Reset
+#define SYSCTL_SRTIMER_R3       0x00000008  // 16/32-Bit General-Purpose Timer
+                                            // 3 Software Reset
+#define SYSCTL_SRTIMER_R2       0x00000004  // 16/32-Bit General-Purpose Timer
+                                            // 2 Software Reset
+#define SYSCTL_SRTIMER_R1       0x00000002  // 16/32-Bit General-Purpose Timer
+                                            // 1 Software Reset
+#define SYSCTL_SRTIMER_R0       0x00000001  // 16/32-Bit General-Purpose Timer
+                                            // 0 Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRGPIO register.
+//
+//*****************************************************************************
+#define SYSCTL_SRGPIO_R5        0x00000020  // GPIO Port F Software Reset
+#define SYSCTL_SRGPIO_R4        0x00000010  // GPIO Port E Software Reset
+#define SYSCTL_SRGPIO_R3        0x00000008  // GPIO Port D Software Reset
+#define SYSCTL_SRGPIO_R2        0x00000004  // GPIO Port C Software Reset
+#define SYSCTL_SRGPIO_R1        0x00000002  // GPIO Port B Software Reset
+#define SYSCTL_SRGPIO_R0        0x00000001  // GPIO Port A Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRDMA register.
+//
+//*****************************************************************************
+#define SYSCTL_SRDMA_R0         0x00000001  // uDMA Module Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRHIB register.
+//
+//*****************************************************************************
+#define SYSCTL_SRHIB_R0         0x00000001  // Hibernation Module Software
+                                            // Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRUART register.
+//
+//*****************************************************************************
+#define SYSCTL_SRUART_R7        0x00000080  // UART Module 7 Software Reset
+#define SYSCTL_SRUART_R6        0x00000040  // UART Module 6 Software Reset
+#define SYSCTL_SRUART_R5        0x00000020  // UART Module 5 Software Reset
+#define SYSCTL_SRUART_R4        0x00000010  // UART Module 4 Software Reset
+#define SYSCTL_SRUART_R3        0x00000008  // UART Module 3 Software Reset
+#define SYSCTL_SRUART_R2        0x00000004  // UART Module 2 Software Reset
+#define SYSCTL_SRUART_R1        0x00000002  // UART Module 1 Software Reset
+#define SYSCTL_SRUART_R0        0x00000001  // UART Module 0 Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRSSI register.
+//
+//*****************************************************************************
+#define SYSCTL_SRSSI_R3         0x00000008  // SSI Module 3 Software Reset
+#define SYSCTL_SRSSI_R2         0x00000004  // SSI Module 2 Software Reset
+#define SYSCTL_SRSSI_R1         0x00000002  // SSI Module 1 Software Reset
+#define SYSCTL_SRSSI_R0         0x00000001  // SSI Module 0 Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRI2C register.
+//
+//*****************************************************************************
+#define SYSCTL_SRI2C_R3         0x00000008  // I2C Module 3 Software Reset
+#define SYSCTL_SRI2C_R2         0x00000004  // I2C Module 2 Software Reset
+#define SYSCTL_SRI2C_R1         0x00000002  // I2C Module 1 Software Reset
+#define SYSCTL_SRI2C_R0         0x00000001  // I2C Module 0 Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRUSB register.
+//
+//*****************************************************************************
+#define SYSCTL_SRUSB_R0         0x00000001  // USB Module Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRCAN register.
+//
+//*****************************************************************************
+#define SYSCTL_SRCAN_R1         0x00000002  // CAN Module 1 Software Reset
+#define SYSCTL_SRCAN_R0         0x00000001  // CAN Module 0 Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRADC register.
+//
+//*****************************************************************************
+#define SYSCTL_SRADC_R1         0x00000002  // ADC Module 1 Software Reset
+#define SYSCTL_SRADC_R0         0x00000001  // ADC Module 0 Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRACMP register.
+//
+//*****************************************************************************
+#define SYSCTL_SRACMP_R0        0x00000001  // Analog Comparator Module 0
+                                            // Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRPWM register.
+//
+//*****************************************************************************
+#define SYSCTL_SRPWM_R1         0x00000002  // PWM Module 1 Software Reset
+#define SYSCTL_SRPWM_R0         0x00000001  // PWM Module 0 Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRQEI register.
+//
+//*****************************************************************************
+#define SYSCTL_SRQEI_R1         0x00000002  // QEI Module 1 Software Reset
+#define SYSCTL_SRQEI_R0         0x00000001  // QEI Module 0 Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SREEPROM
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_SREEPROM_R0      0x00000001  // EEPROM Module Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRWTIMER
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_SRWTIMER_R5      0x00000020  // 32/64-Bit Wide General-Purpose
+                                            // Timer 5 Software Reset
+#define SYSCTL_SRWTIMER_R4      0x00000010  // 32/64-Bit Wide General-Purpose
+                                            // Timer 4 Software Reset
+#define SYSCTL_SRWTIMER_R3      0x00000008  // 32/64-Bit Wide General-Purpose
+                                            // Timer 3 Software Reset
+#define SYSCTL_SRWTIMER_R2      0x00000004  // 32/64-Bit Wide General-Purpose
+                                            // Timer 2 Software Reset
+#define SYSCTL_SRWTIMER_R1      0x00000002  // 32/64-Bit Wide General-Purpose
+                                            // Timer 1 Software Reset
+#define SYSCTL_SRWTIMER_R0      0x00000001  // 32/64-Bit Wide General-Purpose
+                                            // Timer 0 Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCWD register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCWD_R1        0x00000002  // Watchdog Timer 1 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCWD_R0        0x00000001  // Watchdog Timer 0 Run Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCTIMER
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCTIMER_R5     0x00000020  // 16/32-Bit General-Purpose Timer
+                                            // 5 Run Mode Clock Gating Control
+#define SYSCTL_RCGCTIMER_R4     0x00000010  // 16/32-Bit General-Purpose Timer
+                                            // 4 Run Mode Clock Gating Control
+#define SYSCTL_RCGCTIMER_R3     0x00000008  // 16/32-Bit General-Purpose Timer
+                                            // 3 Run Mode Clock Gating Control
+#define SYSCTL_RCGCTIMER_R2     0x00000004  // 16/32-Bit General-Purpose Timer
+                                            // 2 Run Mode Clock Gating Control
+#define SYSCTL_RCGCTIMER_R1     0x00000002  // 16/32-Bit General-Purpose Timer
+                                            // 1 Run Mode Clock Gating Control
+#define SYSCTL_RCGCTIMER_R0     0x00000001  // 16/32-Bit General-Purpose Timer
+                                            // 0 Run Mode Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCGPIO
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCGPIO_R5      0x00000020  // GPIO Port F Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCGPIO_R4      0x00000010  // GPIO Port E Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCGPIO_R3      0x00000008  // GPIO Port D Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCGPIO_R2      0x00000004  // GPIO Port C Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCGPIO_R1      0x00000002  // GPIO Port B Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCGPIO_R0      0x00000001  // GPIO Port A Run Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCDMA register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCDMA_R0       0x00000001  // uDMA Module Run Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCHIB register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCHIB_R0       0x00000001  // Hibernation Module Run Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCUART
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCUART_R7      0x00000080  // UART Module 7 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCUART_R6      0x00000040  // UART Module 6 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCUART_R5      0x00000020  // UART Module 5 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCUART_R4      0x00000010  // UART Module 4 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCUART_R3      0x00000008  // UART Module 3 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCUART_R2      0x00000004  // UART Module 2 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCUART_R1      0x00000002  // UART Module 1 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCUART_R0      0x00000001  // UART Module 0 Run Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCSSI register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCSSI_R3       0x00000008  // SSI Module 3 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCSSI_R2       0x00000004  // SSI Module 2 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCSSI_R1       0x00000002  // SSI Module 1 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCSSI_R0       0x00000001  // SSI Module 0 Run Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCI2C register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCI2C_R3       0x00000008  // I2C Module 3 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCI2C_R2       0x00000004  // I2C Module 2 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCI2C_R1       0x00000002  // I2C Module 1 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCI2C_R0       0x00000001  // I2C Module 0 Run Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCUSB register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCUSB_R0       0x00000001  // USB Module Run Mode Clock Gating
+                                            // Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCCAN register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCCAN_R1       0x00000002  // CAN Module 1 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCCAN_R0       0x00000001  // CAN Module 0 Run Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCADC register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCADC_R1       0x00000002  // ADC Module 1 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCADC_R0       0x00000001  // ADC Module 0 Run Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCACMP
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCACMP_R0      0x00000001  // Analog Comparator Module 0 Run
+                                            // Mode Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCPWM register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCPWM_R1       0x00000002  // PWM Module 1 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCPWM_R0       0x00000001  // PWM Module 0 Run Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCQEI register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCQEI_R1       0x00000002  // QEI Module 1 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCQEI_R0       0x00000001  // QEI Module 0 Run Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCEEPROM
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCEEPROM_R0    0x00000001  // EEPROM Module Run Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCWTIMER
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCWTIMER_R5    0x00000020  // 32/64-Bit Wide General-Purpose
+                                            // Timer 5 Run Mode Clock Gating
+                                            // Control
+#define SYSCTL_RCGCWTIMER_R4    0x00000010  // 32/64-Bit Wide General-Purpose
+                                            // Timer 4 Run Mode Clock Gating
+                                            // Control
+#define SYSCTL_RCGCWTIMER_R3    0x00000008  // 32/64-Bit Wide General-Purpose
+                                            // Timer 3 Run Mode Clock Gating
+                                            // Control
+#define SYSCTL_RCGCWTIMER_R2    0x00000004  // 32/64-Bit Wide General-Purpose
+                                            // Timer 2 Run Mode Clock Gating
+                                            // Control
+#define SYSCTL_RCGCWTIMER_R1    0x00000002  // 32/64-Bit Wide General-Purpose
+                                            // Timer 1 Run Mode Clock Gating
+                                            // Control
+#define SYSCTL_RCGCWTIMER_R0    0x00000001  // 32/64-Bit Wide General-Purpose
+                                            // Timer 0 Run Mode Clock Gating
+                                            // Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCWD register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCWD_S1        0x00000002  // Watchdog Timer 1 Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_SCGCWD_S0        0x00000001  // Watchdog Timer 0 Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCTIMER
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCTIMER_S5     0x00000020  // 16/32-Bit General-Purpose Timer
+                                            // 5 Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_SCGCTIMER_S4     0x00000010  // 16/32-Bit General-Purpose Timer
+                                            // 4 Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_SCGCTIMER_S3     0x00000008  // 16/32-Bit General-Purpose Timer
+                                            // 3 Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_SCGCTIMER_S2     0x00000004  // 16/32-Bit General-Purpose Timer
+                                            // 2 Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_SCGCTIMER_S1     0x00000002  // 16/32-Bit General-Purpose Timer
+                                            // 1 Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_SCGCTIMER_S0     0x00000001  // 16/32-Bit General-Purpose Timer
+                                            // 0 Sleep Mode Clock Gating
+                                            // Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCGPIO
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCGPIO_S5      0x00000020  // GPIO Port F Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCGPIO_S4      0x00000010  // GPIO Port E Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCGPIO_S3      0x00000008  // GPIO Port D Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCGPIO_S2      0x00000004  // GPIO Port C Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCGPIO_S1      0x00000002  // GPIO Port B Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCGPIO_S0      0x00000001  // GPIO Port A Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCDMA register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCDMA_S0       0x00000001  // uDMA Module Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCHIB register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCHIB_S0       0x00000001  // Hibernation Module Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCUART
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCUART_S7      0x00000080  // UART Module 7 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCUART_S6      0x00000040  // UART Module 6 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCUART_S5      0x00000020  // UART Module 5 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCUART_S4      0x00000010  // UART Module 4 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCUART_S3      0x00000008  // UART Module 3 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCUART_S2      0x00000004  // UART Module 2 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCUART_S1      0x00000002  // UART Module 1 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCUART_S0      0x00000001  // UART Module 0 Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCSSI register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCSSI_S3       0x00000008  // SSI Module 3 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCSSI_S2       0x00000004  // SSI Module 2 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCSSI_S1       0x00000002  // SSI Module 1 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCSSI_S0       0x00000001  // SSI Module 0 Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCI2C register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCI2C_S3       0x00000008  // I2C Module 3 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCI2C_S2       0x00000004  // I2C Module 2 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCI2C_S1       0x00000002  // I2C Module 1 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCI2C_S0       0x00000001  // I2C Module 0 Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCUSB register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCUSB_S0       0x00000001  // USB Module Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCCAN register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCCAN_S1       0x00000002  // CAN Module 1 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCCAN_S0       0x00000001  // CAN Module 0 Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCADC register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCADC_S1       0x00000002  // ADC Module 1 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCADC_S0       0x00000001  // ADC Module 0 Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCACMP
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCACMP_S0      0x00000001  // Analog Comparator Module 0 Sleep
+                                            // Mode Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCPWM register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCPWM_S1       0x00000002  // PWM Module 1 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCPWM_S0       0x00000001  // PWM Module 0 Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCQEI register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCQEI_S1       0x00000002  // QEI Module 1 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCQEI_S0       0x00000001  // QEI Module 0 Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCEEPROM
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCEEPROM_S0    0x00000001  // EEPROM Module Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCWTIMER
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCWTIMER_S5    0x00000020  // 32/64-Bit Wide General-Purpose
+                                            // Timer 5 Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_SCGCWTIMER_S4    0x00000010  // 32/64-Bit Wide General-Purpose
+                                            // Timer 4 Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_SCGCWTIMER_S3    0x00000008  // 32/64-Bit Wide General-Purpose
+                                            // Timer 3 Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_SCGCWTIMER_S2    0x00000004  // 32/64-Bit Wide General-Purpose
+                                            // Timer 2 Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_SCGCWTIMER_S1    0x00000002  // 32/64-Bit Wide General-Purpose
+                                            // Timer 1 Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_SCGCWTIMER_S0    0x00000001  // 32/64-Bit Wide General-Purpose
+                                            // Timer 0 Sleep Mode Clock Gating
+                                            // Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCWD register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCWD_D1        0x00000002  // Watchdog Timer 1 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCWD_D0        0x00000001  // Watchdog Timer 0 Deep-Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCTIMER
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCTIMER_D5     0x00000020  // 16/32-Bit General-Purpose Timer
+                                            // 5 Deep-Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_DCGCTIMER_D4     0x00000010  // 16/32-Bit General-Purpose Timer
+                                            // 4 Deep-Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_DCGCTIMER_D3     0x00000008  // 16/32-Bit General-Purpose Timer
+                                            // 3 Deep-Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_DCGCTIMER_D2     0x00000004  // 16/32-Bit General-Purpose Timer
+                                            // 2 Deep-Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_DCGCTIMER_D1     0x00000002  // 16/32-Bit General-Purpose Timer
+                                            // 1 Deep-Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_DCGCTIMER_D0     0x00000001  // 16/32-Bit General-Purpose Timer
+                                            // 0 Deep-Sleep Mode Clock Gating
+                                            // Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCGPIO
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCGPIO_D5      0x00000020  // GPIO Port F Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCGPIO_D4      0x00000010  // GPIO Port E Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCGPIO_D3      0x00000008  // GPIO Port D Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCGPIO_D2      0x00000004  // GPIO Port C Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCGPIO_D1      0x00000002  // GPIO Port B Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCGPIO_D0      0x00000001  // GPIO Port A Deep-Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCDMA register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCDMA_D0       0x00000001  // uDMA Module Deep-Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCHIB register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCHIB_D0       0x00000001  // Hibernation Module Deep-Sleep
+                                            // Mode Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCUART
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCUART_D7      0x00000080  // UART Module 7 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCUART_D6      0x00000040  // UART Module 6 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCUART_D5      0x00000020  // UART Module 5 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCUART_D4      0x00000010  // UART Module 4 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCUART_D3      0x00000008  // UART Module 3 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCUART_D2      0x00000004  // UART Module 2 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCUART_D1      0x00000002  // UART Module 1 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCUART_D0      0x00000001  // UART Module 0 Deep-Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCSSI register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCSSI_D3       0x00000008  // SSI Module 3 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCSSI_D2       0x00000004  // SSI Module 2 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCSSI_D1       0x00000002  // SSI Module 1 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCSSI_D0       0x00000001  // SSI Module 0 Deep-Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCI2C register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCI2C_D3       0x00000008  // I2C Module 3 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCI2C_D2       0x00000004  // I2C Module 2 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCI2C_D1       0x00000002  // I2C Module 1 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCI2C_D0       0x00000001  // I2C Module 0 Deep-Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCUSB register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCUSB_D0       0x00000001  // USB Module Deep-Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCCAN register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCCAN_D1       0x00000002  // CAN Module 1 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCCAN_D0       0x00000001  // CAN Module 0 Deep-Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCADC register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCADC_D1       0x00000002  // ADC Module 1 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCADC_D0       0x00000001  // ADC Module 0 Deep-Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCACMP
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCACMP_D0      0x00000001  // Analog Comparator Module 0
+                                            // Deep-Sleep Mode Clock Gating
+                                            // Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCPWM register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCPWM_D1       0x00000002  // PWM Module 1 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCPWM_D0       0x00000001  // PWM Module 0 Deep-Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCQEI register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCQEI_D1       0x00000002  // QEI Module 1 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCQEI_D0       0x00000001  // QEI Module 0 Deep-Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCEEPROM
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCEEPROM_D0    0x00000001  // EEPROM Module Deep-Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCWTIMER
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCWTIMER_D5    0x00000020  // 32/64-Bit Wide General-Purpose
+                                            // Timer 5 Deep-Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_DCGCWTIMER_D4    0x00000010  // 32/64-Bit Wide General-Purpose
+                                            // Timer 4 Deep-Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_DCGCWTIMER_D3    0x00000008  // 32/64-Bit Wide General-Purpose
+                                            // Timer 3 Deep-Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_DCGCWTIMER_D2    0x00000004  // 32/64-Bit Wide General-Purpose
+                                            // Timer 2 Deep-Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_DCGCWTIMER_D1    0x00000002  // 32/64-Bit Wide General-Purpose
+                                            // Timer 1 Deep-Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_DCGCWTIMER_D0    0x00000001  // 32/64-Bit Wide General-Purpose
+                                            // Timer 0 Deep-Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRWD register.
+//
+//*****************************************************************************
+#define SYSCTL_PRWD_R1          0x00000002  // Watchdog Timer 1 Peripheral
+                                            // Ready
+#define SYSCTL_PRWD_R0          0x00000001  // Watchdog Timer 0 Peripheral
+                                            // Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRTIMER register.
+//
+//*****************************************************************************
+#define SYSCTL_PRTIMER_R5       0x00000020  // 16/32-Bit General-Purpose Timer
+                                            // 5 Peripheral Ready
+#define SYSCTL_PRTIMER_R4       0x00000010  // 16/32-Bit General-Purpose Timer
+                                            // 4 Peripheral Ready
+#define SYSCTL_PRTIMER_R3       0x00000008  // 16/32-Bit General-Purpose Timer
+                                            // 3 Peripheral Ready
+#define SYSCTL_PRTIMER_R2       0x00000004  // 16/32-Bit General-Purpose Timer
+                                            // 2 Peripheral Ready
+#define SYSCTL_PRTIMER_R1       0x00000002  // 16/32-Bit General-Purpose Timer
+                                            // 1 Peripheral Ready
+#define SYSCTL_PRTIMER_R0       0x00000001  // 16/32-Bit General-Purpose Timer
+                                            // 0 Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRGPIO register.
+//
+//*****************************************************************************
+#define SYSCTL_PRGPIO_R5        0x00000020  // GPIO Port F Peripheral Ready
+#define SYSCTL_PRGPIO_R4        0x00000010  // GPIO Port E Peripheral Ready
+#define SYSCTL_PRGPIO_R3        0x00000008  // GPIO Port D Peripheral Ready
+#define SYSCTL_PRGPIO_R2        0x00000004  // GPIO Port C Peripheral Ready
+#define SYSCTL_PRGPIO_R1        0x00000002  // GPIO Port B Peripheral Ready
+#define SYSCTL_PRGPIO_R0        0x00000001  // GPIO Port A Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRDMA register.
+//
+//*****************************************************************************
+#define SYSCTL_PRDMA_R0         0x00000001  // uDMA Module Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRHIB register.
+//
+//*****************************************************************************
+#define SYSCTL_PRHIB_R0         0x00000001  // Hibernation Module Peripheral
+                                            // Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRUART register.
+//
+//*****************************************************************************
+#define SYSCTL_PRUART_R7        0x00000080  // UART Module 7 Peripheral Ready
+#define SYSCTL_PRUART_R6        0x00000040  // UART Module 6 Peripheral Ready
+#define SYSCTL_PRUART_R5        0x00000020  // UART Module 5 Peripheral Ready
+#define SYSCTL_PRUART_R4        0x00000010  // UART Module 4 Peripheral Ready
+#define SYSCTL_PRUART_R3        0x00000008  // UART Module 3 Peripheral Ready
+#define SYSCTL_PRUART_R2        0x00000004  // UART Module 2 Peripheral Ready
+#define SYSCTL_PRUART_R1        0x00000002  // UART Module 1 Peripheral Ready
+#define SYSCTL_PRUART_R0        0x00000001  // UART Module 0 Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRSSI register.
+//
+//*****************************************************************************
+#define SYSCTL_PRSSI_R3         0x00000008  // SSI Module 3 Peripheral Ready
+#define SYSCTL_PRSSI_R2         0x00000004  // SSI Module 2 Peripheral Ready
+#define SYSCTL_PRSSI_R1         0x00000002  // SSI Module 1 Peripheral Ready
+#define SYSCTL_PRSSI_R0         0x00000001  // SSI Module 0 Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRI2C register.
+//
+//*****************************************************************************
+#define SYSCTL_PRI2C_R3         0x00000008  // I2C Module 3 Peripheral Ready
+#define SYSCTL_PRI2C_R2         0x00000004  // I2C Module 2 Peripheral Ready
+#define SYSCTL_PRI2C_R1         0x00000002  // I2C Module 1 Peripheral Ready
+#define SYSCTL_PRI2C_R0         0x00000001  // I2C Module 0 Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRUSB register.
+//
+//*****************************************************************************
+#define SYSCTL_PRUSB_R0         0x00000001  // USB Module Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRCAN register.
+//
+//*****************************************************************************
+#define SYSCTL_PRCAN_R1         0x00000002  // CAN Module 1 Peripheral Ready
+#define SYSCTL_PRCAN_R0         0x00000001  // CAN Module 0 Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRADC register.
+//
+//*****************************************************************************
+#define SYSCTL_PRADC_R1         0x00000002  // ADC Module 1 Peripheral Ready
+#define SYSCTL_PRADC_R0         0x00000001  // ADC Module 0 Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRACMP register.
+//
+//*****************************************************************************
+#define SYSCTL_PRACMP_R0        0x00000001  // Analog Comparator Module 0
+                                            // Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRPWM register.
+//
+//*****************************************************************************
+#define SYSCTL_PRPWM_R1         0x00000002  // PWM Module 1 Peripheral Ready
+#define SYSCTL_PRPWM_R0         0x00000001  // PWM Module 0 Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRQEI register.
+//
+//*****************************************************************************
+#define SYSCTL_PRQEI_R1         0x00000002  // QEI Module 1 Peripheral Ready
+#define SYSCTL_PRQEI_R0         0x00000001  // QEI Module 0 Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PREEPROM
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_PREEPROM_R0      0x00000001  // EEPROM Module Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRWTIMER
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_PRWTIMER_R5      0x00000020  // 32/64-Bit Wide General-Purpose
+                                            // Timer 5 Peripheral Ready
+#define SYSCTL_PRWTIMER_R4      0x00000010  // 32/64-Bit Wide General-Purpose
+                                            // Timer 4 Peripheral Ready
+#define SYSCTL_PRWTIMER_R3      0x00000008  // 32/64-Bit Wide General-Purpose
+                                            // Timer 3 Peripheral Ready
+#define SYSCTL_PRWTIMER_R2      0x00000004  // 32/64-Bit Wide General-Purpose
+                                            // Timer 2 Peripheral Ready
+#define SYSCTL_PRWTIMER_R1      0x00000002  // 32/64-Bit Wide General-Purpose
+                                            // Timer 1 Peripheral Ready
+#define SYSCTL_PRWTIMER_R0      0x00000001  // 32/64-Bit Wide General-Purpose
+                                            // Timer 0 Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_STAT register.
+//
+//*****************************************************************************
+#define UDMA_STAT_DMACHANS_M    0x001F0000  // Available uDMA Channels Minus 1
+#define UDMA_STAT_STATE_M       0x000000F0  // Control State Machine Status
+#define UDMA_STAT_STATE_IDLE    0x00000000  // Idle
+#define UDMA_STAT_STATE_RD_CTRL 0x00000010  // Reading channel controller data
+#define UDMA_STAT_STATE_RD_SRCENDP                                            \
+                                0x00000020  // Reading source end pointer
+#define UDMA_STAT_STATE_RD_DSTENDP                                            \
+                                0x00000030  // Reading destination end pointer
+#define UDMA_STAT_STATE_RD_SRCDAT                                             \
+                                0x00000040  // Reading source data
+#define UDMA_STAT_STATE_WR_DSTDAT                                             \
+                                0x00000050  // Writing destination data
+#define UDMA_STAT_STATE_WAIT    0x00000060  // Waiting for uDMA request to
+                                            // clear
+#define UDMA_STAT_STATE_WR_CTRL 0x00000070  // Writing channel controller data
+#define UDMA_STAT_STATE_STALL   0x00000080  // Stalled
+#define UDMA_STAT_STATE_DONE    0x00000090  // Done
+#define UDMA_STAT_STATE_UNDEF   0x000000A0  // Undefined
+#define UDMA_STAT_MASTEN        0x00000001  // Master Enable Status
+#define UDMA_STAT_DMACHANS_S    16
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_CFG register.
+//
+//*****************************************************************************
+#define UDMA_CFG_MASTEN         0x00000001  // Controller Master Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_CTLBASE register.
+//
+//*****************************************************************************
+#define UDMA_CTLBASE_ADDR_M     0xFFFFFC00  // Channel Control Base Address
+#define UDMA_CTLBASE_ADDR_S     10
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_ALTBASE register.
+//
+//*****************************************************************************
+#define UDMA_ALTBASE_ADDR_M     0xFFFFFFFF  // Alternate Channel Address
+                                            // Pointer
+#define UDMA_ALTBASE_ADDR_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_WAITSTAT register.
+//
+//*****************************************************************************
+#define UDMA_WAITSTAT_WAITREQ_M 0xFFFFFFFF  // Channel [n] Wait Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_SWREQ register.
+//
+//*****************************************************************************
+#define UDMA_SWREQ_M            0xFFFFFFFF  // Channel [n] Software Request
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_USEBURSTSET
+// register.
+//
+//*****************************************************************************
+#define UDMA_USEBURSTSET_SET_M  0xFFFFFFFF  // Channel [n] Useburst Set
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_USEBURSTCLR
+// register.
+//
+//*****************************************************************************
+#define UDMA_USEBURSTCLR_CLR_M  0xFFFFFFFF  // Channel [n] Useburst Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_REQMASKSET
+// register.
+//
+//*****************************************************************************
+#define UDMA_REQMASKSET_SET_M   0xFFFFFFFF  // Channel [n] Request Mask Set
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_REQMASKCLR
+// register.
+//
+//*****************************************************************************
+#define UDMA_REQMASKCLR_CLR_M   0xFFFFFFFF  // Channel [n] Request Mask Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_ENASET register.
+//
+//*****************************************************************************
+#define UDMA_ENASET_SET_M       0xFFFFFFFF  // Channel [n] Enable Set
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_ENACLR register.
+//
+//*****************************************************************************
+#define UDMA_ENACLR_CLR_M       0xFFFFFFFF  // Clear Channel [n] Enable Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_ALTSET register.
+//
+//*****************************************************************************
+#define UDMA_ALTSET_SET_M       0xFFFFFFFF  // Channel [n] Alternate Set
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_ALTCLR register.
+//
+//*****************************************************************************
+#define UDMA_ALTCLR_CLR_M       0xFFFFFFFF  // Channel [n] Alternate Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_PRIOSET register.
+//
+//*****************************************************************************
+#define UDMA_PRIOSET_SET_M      0xFFFFFFFF  // Channel [n] Priority Set
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_PRIOCLR register.
+//
+//*****************************************************************************
+#define UDMA_PRIOCLR_CLR_M      0xFFFFFFFF  // Channel [n] Priority Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_ERRCLR register.
+//
+//*****************************************************************************
+#define UDMA_ERRCLR_ERRCLR      0x00000001  // uDMA Bus Error Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_CHASGN register.
+//
+//*****************************************************************************
+#define UDMA_CHASGN_M           0xFFFFFFFF  // Channel [n] Assignment Select
+#define UDMA_CHASGN_PRIMARY     0x00000000  // Use the primary channel
+                                            // assignment
+#define UDMA_CHASGN_SECONDARY   0x00000001  // Use the secondary channel
+                                            // assignment
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_CHIS register.
+//
+//*****************************************************************************
+#define UDMA_CHIS_M             0xFFFFFFFF  // Channel [n] Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_CHMAP0 register.
+//
+//*****************************************************************************
+#define UDMA_CHMAP0_CH7SEL_M    0xF0000000  // uDMA Channel 7 Source Select
+#define UDMA_CHMAP0_CH6SEL_M    0x0F000000  // uDMA Channel 6 Source Select
+#define UDMA_CHMAP0_CH5SEL_M    0x00F00000  // uDMA Channel 5 Source Select
+#define UDMA_CHMAP0_CH4SEL_M    0x000F0000  // uDMA Channel 4 Source Select
+#define UDMA_CHMAP0_CH3SEL_M    0x0000F000  // uDMA Channel 3 Source Select
+#define UDMA_CHMAP0_CH2SEL_M    0x00000F00  // uDMA Channel 2 Source Select
+#define UDMA_CHMAP0_CH1SEL_M    0x000000F0  // uDMA Channel 1 Source Select
+#define UDMA_CHMAP0_CH0SEL_M    0x0000000F  // uDMA Channel 0 Source Select
+#define UDMA_CHMAP0_CH7SEL_S    28
+#define UDMA_CHMAP0_CH6SEL_S    24
+#define UDMA_CHMAP0_CH5SEL_S    20
+#define UDMA_CHMAP0_CH4SEL_S    16
+#define UDMA_CHMAP0_CH3SEL_S    12
+#define UDMA_CHMAP0_CH2SEL_S    8
+#define UDMA_CHMAP0_CH1SEL_S    4
+#define UDMA_CHMAP0_CH0SEL_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_CHMAP1 register.
+//
+//*****************************************************************************
+#define UDMA_CHMAP1_CH15SEL_M   0xF0000000  // uDMA Channel 15 Source Select
+#define UDMA_CHMAP1_CH14SEL_M   0x0F000000  // uDMA Channel 14 Source Select
+#define UDMA_CHMAP1_CH13SEL_M   0x00F00000  // uDMA Channel 13 Source Select
+#define UDMA_CHMAP1_CH12SEL_M   0x000F0000  // uDMA Channel 12 Source Select
+#define UDMA_CHMAP1_CH11SEL_M   0x0000F000  // uDMA Channel 11 Source Select
+#define UDMA_CHMAP1_CH10SEL_M   0x00000F00  // uDMA Channel 10 Source Select
+#define UDMA_CHMAP1_CH9SEL_M    0x000000F0  // uDMA Channel 9 Source Select
+#define UDMA_CHMAP1_CH8SEL_M    0x0000000F  // uDMA Channel 8 Source Select
+#define UDMA_CHMAP1_CH15SEL_S   28
+#define UDMA_CHMAP1_CH14SEL_S   24
+#define UDMA_CHMAP1_CH13SEL_S   20
+#define UDMA_CHMAP1_CH12SEL_S   16
+#define UDMA_CHMAP1_CH11SEL_S   12
+#define UDMA_CHMAP1_CH10SEL_S   8
+#define UDMA_CHMAP1_CH9SEL_S    4
+#define UDMA_CHMAP1_CH8SEL_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_CHMAP2 register.
+//
+//*****************************************************************************
+#define UDMA_CHMAP2_CH23SEL_M   0xF0000000  // uDMA Channel 23 Source Select
+#define UDMA_CHMAP2_CH22SEL_M   0x0F000000  // uDMA Channel 22 Source Select
+#define UDMA_CHMAP2_CH21SEL_M   0x00F00000  // uDMA Channel 21 Source Select
+#define UDMA_CHMAP2_CH20SEL_M   0x000F0000  // uDMA Channel 20 Source Select
+#define UDMA_CHMAP2_CH19SEL_M   0x0000F000  // uDMA Channel 19 Source Select
+#define UDMA_CHMAP2_CH18SEL_M   0x00000F00  // uDMA Channel 18 Source Select
+#define UDMA_CHMAP2_CH17SEL_M   0x000000F0  // uDMA Channel 17 Source Select
+#define UDMA_CHMAP2_CH16SEL_M   0x0000000F  // uDMA Channel 16 Source Select
+#define UDMA_CHMAP2_CH23SEL_S   28
+#define UDMA_CHMAP2_CH22SEL_S   24
+#define UDMA_CHMAP2_CH21SEL_S   20
+#define UDMA_CHMAP2_CH20SEL_S   16
+#define UDMA_CHMAP2_CH19SEL_S   12
+#define UDMA_CHMAP2_CH18SEL_S   8
+#define UDMA_CHMAP2_CH17SEL_S   4
+#define UDMA_CHMAP2_CH16SEL_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_CHMAP3 register.
+//
+//*****************************************************************************
+#define UDMA_CHMAP3_CH31SEL_M   0xF0000000  // uDMA Channel 31 Source Select
+#define UDMA_CHMAP3_CH30SEL_M   0x0F000000  // uDMA Channel 30 Source Select
+#define UDMA_CHMAP3_CH29SEL_M   0x00F00000  // uDMA Channel 29 Source Select
+#define UDMA_CHMAP3_CH28SEL_M   0x000F0000  // uDMA Channel 28 Source Select
+#define UDMA_CHMAP3_CH27SEL_M   0x0000F000  // uDMA Channel 27 Source Select
+#define UDMA_CHMAP3_CH26SEL_M   0x00000F00  // uDMA Channel 26 Source Select
+#define UDMA_CHMAP3_CH25SEL_M   0x000000F0  // uDMA Channel 25 Source Select
+#define UDMA_CHMAP3_CH24SEL_M   0x0000000F  // uDMA Channel 24 Source Select
+#define UDMA_CHMAP3_CH31SEL_S   28
+#define UDMA_CHMAP3_CH30SEL_S   24
+#define UDMA_CHMAP3_CH29SEL_S   20
+#define UDMA_CHMAP3_CH28SEL_S   16
+#define UDMA_CHMAP3_CH27SEL_S   12
+#define UDMA_CHMAP3_CH26SEL_S   8
+#define UDMA_CHMAP3_CH25SEL_S   4
+#define UDMA_CHMAP3_CH24SEL_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_O_SRCENDP register.
+//
+//*****************************************************************************
+#define UDMA_SRCENDP_ADDR_M     0xFFFFFFFF  // Source Address End Pointer
+#define UDMA_SRCENDP_ADDR_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_O_DSTENDP register.
+//
+//*****************************************************************************
+#define UDMA_DSTENDP_ADDR_M     0xFFFFFFFF  // Destination Address End Pointer
+#define UDMA_DSTENDP_ADDR_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_O_CHCTL register.
+//
+//*****************************************************************************
+#define UDMA_CHCTL_DSTINC_M     0xC0000000  // Destination Address Increment
+#define UDMA_CHCTL_DSTINC_8     0x00000000  // Byte
+#define UDMA_CHCTL_DSTINC_16    0x40000000  // Half-word
+#define UDMA_CHCTL_DSTINC_32    0x80000000  // Word
+#define UDMA_CHCTL_DSTINC_NONE  0xC0000000  // No increment
+#define UDMA_CHCTL_DSTSIZE_M    0x30000000  // Destination Data Size
+#define UDMA_CHCTL_DSTSIZE_8    0x00000000  // Byte
+#define UDMA_CHCTL_DSTSIZE_16   0x10000000  // Half-word
+#define UDMA_CHCTL_DSTSIZE_32   0x20000000  // Word
+#define UDMA_CHCTL_SRCINC_M     0x0C000000  // Source Address Increment
+#define UDMA_CHCTL_SRCINC_8     0x00000000  // Byte
+#define UDMA_CHCTL_SRCINC_16    0x04000000  // Half-word
+#define UDMA_CHCTL_SRCINC_32    0x08000000  // Word
+#define UDMA_CHCTL_SRCINC_NONE  0x0C000000  // No increment
+#define UDMA_CHCTL_SRCSIZE_M    0x03000000  // Source Data Size
+#define UDMA_CHCTL_SRCSIZE_8    0x00000000  // Byte
+#define UDMA_CHCTL_SRCSIZE_16   0x01000000  // Half-word
+#define UDMA_CHCTL_SRCSIZE_32   0x02000000  // Word
+#define UDMA_CHCTL_ARBSIZE_M    0x0003C000  // Arbitration Size
+#define UDMA_CHCTL_ARBSIZE_1    0x00000000  // 1 Transfer
+#define UDMA_CHCTL_ARBSIZE_2    0x00004000  // 2 Transfers
+#define UDMA_CHCTL_ARBSIZE_4    0x00008000  // 4 Transfers
+#define UDMA_CHCTL_ARBSIZE_8    0x0000C000  // 8 Transfers
+#define UDMA_CHCTL_ARBSIZE_16   0x00010000  // 16 Transfers
+#define UDMA_CHCTL_ARBSIZE_32   0x00014000  // 32 Transfers
+#define UDMA_CHCTL_ARBSIZE_64   0x00018000  // 64 Transfers
+#define UDMA_CHCTL_ARBSIZE_128  0x0001C000  // 128 Transfers
+#define UDMA_CHCTL_ARBSIZE_256  0x00020000  // 256 Transfers
+#define UDMA_CHCTL_ARBSIZE_512  0x00024000  // 512 Transfers
+#define UDMA_CHCTL_ARBSIZE_1024 0x00028000  // 1024 Transfers
+#define UDMA_CHCTL_XFERSIZE_M   0x00003FF0  // Transfer Size (minus 1)
+#define UDMA_CHCTL_NXTUSEBURST  0x00000008  // Next Useburst
+#define UDMA_CHCTL_XFERMODE_M   0x00000007  // uDMA Transfer Mode
+#define UDMA_CHCTL_XFERMODE_STOP                                              \
+                                0x00000000  // Stop
+#define UDMA_CHCTL_XFERMODE_BASIC                                             \
+                                0x00000001  // Basic
+#define UDMA_CHCTL_XFERMODE_AUTO                                              \
+                                0x00000002  // Auto-Request
+#define UDMA_CHCTL_XFERMODE_PINGPONG                                          \
+                                0x00000003  // Ping-Pong
+#define UDMA_CHCTL_XFERMODE_MEM_SG                                            \
+                                0x00000004  // Memory Scatter-Gather
+#define UDMA_CHCTL_XFERMODE_MEM_SGA                                           \
+                                0x00000005  // Alternate Memory Scatter-Gather
+#define UDMA_CHCTL_XFERMODE_PER_SG                                            \
+                                0x00000006  // Peripheral Scatter-Gather
+#define UDMA_CHCTL_XFERMODE_PER_SGA                                           \
+                                0x00000007  // Alternate Peripheral
+                                            // Scatter-Gather
+#define UDMA_CHCTL_XFERSIZE_S   4
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_ACTLR register.
+//
+//*****************************************************************************
+#define NVIC_ACTLR_DISOOFP      0x00000200  // Disable Out-Of-Order Floating
+                                            // Point
+#define NVIC_ACTLR_DISFPCA      0x00000100  // Disable CONTROL
+#define NVIC_ACTLR_DISFOLD      0x00000004  // Disable IT Folding
+#define NVIC_ACTLR_DISWBUF      0x00000002  // Disable Write Buffer
+#define NVIC_ACTLR_DISMCYC      0x00000001  // Disable Interrupts of Multiple
+                                            // Cycle Instructions
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_ST_CTRL register.
+//
+//*****************************************************************************
+#define NVIC_ST_CTRL_COUNT      0x00010000  // Count Flag
+#define NVIC_ST_CTRL_CLK_SRC    0x00000004  // Clock Source
+#define NVIC_ST_CTRL_INTEN      0x00000002  // Interrupt Enable
+#define NVIC_ST_CTRL_ENABLE     0x00000001  // Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_ST_RELOAD register.
+//
+//*****************************************************************************
+#define NVIC_ST_RELOAD_M        0x00FFFFFF  // Reload Value
+#define NVIC_ST_RELOAD_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_ST_CURRENT
+// register.
+//
+//*****************************************************************************
+#define NVIC_ST_CURRENT_M       0x00FFFFFF  // Current Value
+#define NVIC_ST_CURRENT_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_EN0 register.
+//
+//*****************************************************************************
+#define NVIC_EN0_INT_M          0xFFFFFFFF  // Interrupt Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_EN1 register.
+//
+//*****************************************************************************
+#define NVIC_EN1_INT_M          0xFFFFFFFF  // Interrupt Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_EN2 register.
+//
+//*****************************************************************************
+#define NVIC_EN2_INT_M          0xFFFFFFFF  // Interrupt Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_EN3 register.
+//
+//*****************************************************************************
+#define NVIC_EN3_INT_M          0xFFFFFFFF  // Interrupt Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_EN4 register.
+//
+//*****************************************************************************
+#define NVIC_EN4_INT_M          0x000007FF  // Interrupt Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_DIS0 register.
+//
+//*****************************************************************************
+#define NVIC_DIS0_INT_M         0xFFFFFFFF  // Interrupt Disable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_DIS1 register.
+//
+//*****************************************************************************
+#define NVIC_DIS1_INT_M         0xFFFFFFFF  // Interrupt Disable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_DIS2 register.
+//
+//*****************************************************************************
+#define NVIC_DIS2_INT_M         0xFFFFFFFF  // Interrupt Disable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_DIS3 register.
+//
+//*****************************************************************************
+#define NVIC_DIS3_INT_M         0xFFFFFFFF  // Interrupt Disable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_DIS4 register.
+//
+//*****************************************************************************
+#define NVIC_DIS4_INT_M         0x000007FF  // Interrupt Disable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PEND0 register.
+//
+//*****************************************************************************
+#define NVIC_PEND0_INT_M        0xFFFFFFFF  // Interrupt Set Pending
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PEND1 register.
+//
+//*****************************************************************************
+#define NVIC_PEND1_INT_M        0xFFFFFFFF  // Interrupt Set Pending
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PEND2 register.
+//
+//*****************************************************************************
+#define NVIC_PEND2_INT_M        0xFFFFFFFF  // Interrupt Set Pending
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PEND3 register.
+//
+//*****************************************************************************
+#define NVIC_PEND3_INT_M        0xFFFFFFFF  // Interrupt Set Pending
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PEND4 register.
+//
+//*****************************************************************************
+#define NVIC_PEND4_INT_M        0x000007FF  // Interrupt Set Pending
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_UNPEND0 register.
+//
+//*****************************************************************************
+#define NVIC_UNPEND0_INT_M      0xFFFFFFFF  // Interrupt Clear Pending
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_UNPEND1 register.
+//
+//*****************************************************************************
+#define NVIC_UNPEND1_INT_M      0xFFFFFFFF  // Interrupt Clear Pending
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_UNPEND2 register.
+//
+//*****************************************************************************
+#define NVIC_UNPEND2_INT_M      0xFFFFFFFF  // Interrupt Clear Pending
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_UNPEND3 register.
+//
+//*****************************************************************************
+#define NVIC_UNPEND3_INT_M      0xFFFFFFFF  // Interrupt Clear Pending
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_UNPEND4 register.
+//
+//*****************************************************************************
+#define NVIC_UNPEND4_INT_M      0x000007FF  // Interrupt Clear Pending
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_ACTIVE0 register.
+//
+//*****************************************************************************
+#define NVIC_ACTIVE0_INT_M      0xFFFFFFFF  // Interrupt Active
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_ACTIVE1 register.
+//
+//*****************************************************************************
+#define NVIC_ACTIVE1_INT_M      0xFFFFFFFF  // Interrupt Active
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_ACTIVE2 register.
+//
+//*****************************************************************************
+#define NVIC_ACTIVE2_INT_M      0xFFFFFFFF  // Interrupt Active
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_ACTIVE3 register.
+//
+//*****************************************************************************
+#define NVIC_ACTIVE3_INT_M      0xFFFFFFFF  // Interrupt Active
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_ACTIVE4 register.
+//
+//*****************************************************************************
+#define NVIC_ACTIVE4_INT_M      0x000007FF  // Interrupt Active
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI0 register.
+//
+//*****************************************************************************
+#define NVIC_PRI0_INT3_M        0xE0000000  // Interrupt 3 Priority Mask
+#define NVIC_PRI0_INT2_M        0x00E00000  // Interrupt 2 Priority Mask
+#define NVIC_PRI0_INT1_M        0x0000E000  // Interrupt 1 Priority Mask
+#define NVIC_PRI0_INT0_M        0x000000E0  // Interrupt 0 Priority Mask
+#define NVIC_PRI0_INT3_S        29
+#define NVIC_PRI0_INT2_S        21
+#define NVIC_PRI0_INT1_S        13
+#define NVIC_PRI0_INT0_S        5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI1 register.
+//
+//*****************************************************************************
+#define NVIC_PRI1_INT7_M        0xE0000000  // Interrupt 7 Priority Mask
+#define NVIC_PRI1_INT6_M        0x00E00000  // Interrupt 6 Priority Mask
+#define NVIC_PRI1_INT5_M        0x0000E000  // Interrupt 5 Priority Mask
+#define NVIC_PRI1_INT4_M        0x000000E0  // Interrupt 4 Priority Mask
+#define NVIC_PRI1_INT7_S        29
+#define NVIC_PRI1_INT6_S        21
+#define NVIC_PRI1_INT5_S        13
+#define NVIC_PRI1_INT4_S        5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI2 register.
+//
+//*****************************************************************************
+#define NVIC_PRI2_INT11_M       0xE0000000  // Interrupt 11 Priority Mask
+#define NVIC_PRI2_INT10_M       0x00E00000  // Interrupt 10 Priority Mask
+#define NVIC_PRI2_INT9_M        0x0000E000  // Interrupt 9 Priority Mask
+#define NVIC_PRI2_INT8_M        0x000000E0  // Interrupt 8 Priority Mask
+#define NVIC_PRI2_INT11_S       29
+#define NVIC_PRI2_INT10_S       21
+#define NVIC_PRI2_INT9_S        13
+#define NVIC_PRI2_INT8_S        5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI3 register.
+//
+//*****************************************************************************
+#define NVIC_PRI3_INT15_M       0xE0000000  // Interrupt 15 Priority Mask
+#define NVIC_PRI3_INT14_M       0x00E00000  // Interrupt 14 Priority Mask
+#define NVIC_PRI3_INT13_M       0x0000E000  // Interrupt 13 Priority Mask
+#define NVIC_PRI3_INT12_M       0x000000E0  // Interrupt 12 Priority Mask
+#define NVIC_PRI3_INT15_S       29
+#define NVIC_PRI3_INT14_S       21
+#define NVIC_PRI3_INT13_S       13
+#define NVIC_PRI3_INT12_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI4 register.
+//
+//*****************************************************************************
+#define NVIC_PRI4_INT19_M       0xE0000000  // Interrupt 19 Priority Mask
+#define NVIC_PRI4_INT18_M       0x00E00000  // Interrupt 18 Priority Mask
+#define NVIC_PRI4_INT17_M       0x0000E000  // Interrupt 17 Priority Mask
+#define NVIC_PRI4_INT16_M       0x000000E0  // Interrupt 16 Priority Mask
+#define NVIC_PRI4_INT19_S       29
+#define NVIC_PRI4_INT18_S       21
+#define NVIC_PRI4_INT17_S       13
+#define NVIC_PRI4_INT16_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI5 register.
+//
+//*****************************************************************************
+#define NVIC_PRI5_INT23_M       0xE0000000  // Interrupt 23 Priority Mask
+#define NVIC_PRI5_INT22_M       0x00E00000  // Interrupt 22 Priority Mask
+#define NVIC_PRI5_INT21_M       0x0000E000  // Interrupt 21 Priority Mask
+#define NVIC_PRI5_INT20_M       0x000000E0  // Interrupt 20 Priority Mask
+#define NVIC_PRI5_INT23_S       29
+#define NVIC_PRI5_INT22_S       21
+#define NVIC_PRI5_INT21_S       13
+#define NVIC_PRI5_INT20_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI6 register.
+//
+//*****************************************************************************
+#define NVIC_PRI6_INT27_M       0xE0000000  // Interrupt 27 Priority Mask
+#define NVIC_PRI6_INT26_M       0x00E00000  // Interrupt 26 Priority Mask
+#define NVIC_PRI6_INT25_M       0x0000E000  // Interrupt 25 Priority Mask
+#define NVIC_PRI6_INT24_M       0x000000E0  // Interrupt 24 Priority Mask
+#define NVIC_PRI6_INT27_S       29
+#define NVIC_PRI6_INT26_S       21
+#define NVIC_PRI6_INT25_S       13
+#define NVIC_PRI6_INT24_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI7 register.
+//
+//*****************************************************************************
+#define NVIC_PRI7_INT31_M       0xE0000000  // Interrupt 31 Priority Mask
+#define NVIC_PRI7_INT30_M       0x00E00000  // Interrupt 30 Priority Mask
+#define NVIC_PRI7_INT29_M       0x0000E000  // Interrupt 29 Priority Mask
+#define NVIC_PRI7_INT28_M       0x000000E0  // Interrupt 28 Priority Mask
+#define NVIC_PRI7_INT31_S       29
+#define NVIC_PRI7_INT30_S       21
+#define NVIC_PRI7_INT29_S       13
+#define NVIC_PRI7_INT28_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI8 register.
+//
+//*****************************************************************************
+#define NVIC_PRI8_INT35_M       0xE0000000  // Interrupt 35 Priority Mask
+#define NVIC_PRI8_INT34_M       0x00E00000  // Interrupt 34 Priority Mask
+#define NVIC_PRI8_INT33_M       0x0000E000  // Interrupt 33 Priority Mask
+#define NVIC_PRI8_INT32_M       0x000000E0  // Interrupt 32 Priority Mask
+#define NVIC_PRI8_INT35_S       29
+#define NVIC_PRI8_INT34_S       21
+#define NVIC_PRI8_INT33_S       13
+#define NVIC_PRI8_INT32_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI9 register.
+//
+//*****************************************************************************
+#define NVIC_PRI9_INT39_M       0xE0000000  // Interrupt 39 Priority Mask
+#define NVIC_PRI9_INT38_M       0x00E00000  // Interrupt 38 Priority Mask
+#define NVIC_PRI9_INT37_M       0x0000E000  // Interrupt 37 Priority Mask
+#define NVIC_PRI9_INT36_M       0x000000E0  // Interrupt 36 Priority Mask
+#define NVIC_PRI9_INT39_S       29
+#define NVIC_PRI9_INT38_S       21
+#define NVIC_PRI9_INT37_S       13
+#define NVIC_PRI9_INT36_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI10 register.
+//
+//*****************************************************************************
+#define NVIC_PRI10_INT43_M      0xE0000000  // Interrupt 43 Priority Mask
+#define NVIC_PRI10_INT42_M      0x00E00000  // Interrupt 42 Priority Mask
+#define NVIC_PRI10_INT41_M      0x0000E000  // Interrupt 41 Priority Mask
+#define NVIC_PRI10_INT40_M      0x000000E0  // Interrupt 40 Priority Mask
+#define NVIC_PRI10_INT43_S      29
+#define NVIC_PRI10_INT42_S      21
+#define NVIC_PRI10_INT41_S      13
+#define NVIC_PRI10_INT40_S      5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI11 register.
+//
+//*****************************************************************************
+#define NVIC_PRI11_INT47_M      0xE0000000  // Interrupt 47 Priority Mask
+#define NVIC_PRI11_INT46_M      0x00E00000  // Interrupt 46 Priority Mask
+#define NVIC_PRI11_INT45_M      0x0000E000  // Interrupt 45 Priority Mask
+#define NVIC_PRI11_INT44_M      0x000000E0  // Interrupt 44 Priority Mask
+#define NVIC_PRI11_INT47_S      29
+#define NVIC_PRI11_INT46_S      21
+#define NVIC_PRI11_INT45_S      13
+#define NVIC_PRI11_INT44_S      5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI12 register.
+//
+//*****************************************************************************
+#define NVIC_PRI12_INT51_M      0xE0000000  // Interrupt 51 Priority Mask
+#define NVIC_PRI12_INT50_M      0x00E00000  // Interrupt 50 Priority Mask
+#define NVIC_PRI12_INT49_M      0x0000E000  // Interrupt 49 Priority Mask
+#define NVIC_PRI12_INT48_M      0x000000E0  // Interrupt 48 Priority Mask
+#define NVIC_PRI12_INT51_S      29
+#define NVIC_PRI12_INT50_S      21
+#define NVIC_PRI12_INT49_S      13
+#define NVIC_PRI12_INT48_S      5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI13 register.
+//
+//*****************************************************************************
+#define NVIC_PRI13_INT55_M      0xE0000000  // Interrupt 55 Priority Mask
+#define NVIC_PRI13_INT54_M      0x00E00000  // Interrupt 54 Priority Mask
+#define NVIC_PRI13_INT53_M      0x0000E000  // Interrupt 53 Priority Mask
+#define NVIC_PRI13_INT52_M      0x000000E0  // Interrupt 52 Priority Mask
+#define NVIC_PRI13_INT55_S      29
+#define NVIC_PRI13_INT54_S      21
+#define NVIC_PRI13_INT53_S      13
+#define NVIC_PRI13_INT52_S      5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI14 register.
+//
+//*****************************************************************************
+#define NVIC_PRI14_INTD_M       0xE0000000  // Interrupt 59 Priority Mask
+#define NVIC_PRI14_INTC_M       0x00E00000  // Interrupt 58 Priority Mask
+#define NVIC_PRI14_INTB_M       0x0000E000  // Interrupt 57 Priority Mask
+#define NVIC_PRI14_INTA_M       0x000000E0  // Interrupt 56 Priority Mask
+#define NVIC_PRI14_INTD_S       29
+#define NVIC_PRI14_INTC_S       21
+#define NVIC_PRI14_INTB_S       13
+#define NVIC_PRI14_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI15 register.
+//
+//*****************************************************************************
+#define NVIC_PRI15_INTD_M       0xE0000000  // Interrupt 63 Priority Mask
+#define NVIC_PRI15_INTC_M       0x00E00000  // Interrupt 62 Priority Mask
+#define NVIC_PRI15_INTB_M       0x0000E000  // Interrupt 61 Priority Mask
+#define NVIC_PRI15_INTA_M       0x000000E0  // Interrupt 60 Priority Mask
+#define NVIC_PRI15_INTD_S       29
+#define NVIC_PRI15_INTC_S       21
+#define NVIC_PRI15_INTB_S       13
+#define NVIC_PRI15_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI16 register.
+//
+//*****************************************************************************
+#define NVIC_PRI16_INTD_M       0xE0000000  // Interrupt 67 Priority Mask
+#define NVIC_PRI16_INTC_M       0x00E00000  // Interrupt 66 Priority Mask
+#define NVIC_PRI16_INTB_M       0x0000E000  // Interrupt 65 Priority Mask
+#define NVIC_PRI16_INTA_M       0x000000E0  // Interrupt 64 Priority Mask
+#define NVIC_PRI16_INTD_S       29
+#define NVIC_PRI16_INTC_S       21
+#define NVIC_PRI16_INTB_S       13
+#define NVIC_PRI16_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI17 register.
+//
+//*****************************************************************************
+#define NVIC_PRI17_INTD_M       0xE0000000  // Interrupt 71 Priority Mask
+#define NVIC_PRI17_INTC_M       0x00E00000  // Interrupt 70 Priority Mask
+#define NVIC_PRI17_INTB_M       0x0000E000  // Interrupt 69 Priority Mask
+#define NVIC_PRI17_INTA_M       0x000000E0  // Interrupt 68 Priority Mask
+#define NVIC_PRI17_INTD_S       29
+#define NVIC_PRI17_INTC_S       21
+#define NVIC_PRI17_INTB_S       13
+#define NVIC_PRI17_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI18 register.
+//
+//*****************************************************************************
+#define NVIC_PRI18_INTD_M       0xE0000000  // Interrupt 75 Priority Mask
+#define NVIC_PRI18_INTC_M       0x00E00000  // Interrupt 74 Priority Mask
+#define NVIC_PRI18_INTB_M       0x0000E000  // Interrupt 73 Priority Mask
+#define NVIC_PRI18_INTA_M       0x000000E0  // Interrupt 72 Priority Mask
+#define NVIC_PRI18_INTD_S       29
+#define NVIC_PRI18_INTC_S       21
+#define NVIC_PRI18_INTB_S       13
+#define NVIC_PRI18_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI19 register.
+//
+//*****************************************************************************
+#define NVIC_PRI19_INTD_M       0xE0000000  // Interrupt 79 Priority Mask
+#define NVIC_PRI19_INTC_M       0x00E00000  // Interrupt 78 Priority Mask
+#define NVIC_PRI19_INTB_M       0x0000E000  // Interrupt 77 Priority Mask
+#define NVIC_PRI19_INTA_M       0x000000E0  // Interrupt 76 Priority Mask
+#define NVIC_PRI19_INTD_S       29
+#define NVIC_PRI19_INTC_S       21
+#define NVIC_PRI19_INTB_S       13
+#define NVIC_PRI19_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI20 register.
+//
+//*****************************************************************************
+#define NVIC_PRI20_INTD_M       0xE0000000  // Interrupt 83 Priority Mask
+#define NVIC_PRI20_INTC_M       0x00E00000  // Interrupt 82 Priority Mask
+#define NVIC_PRI20_INTB_M       0x0000E000  // Interrupt 81 Priority Mask
+#define NVIC_PRI20_INTA_M       0x000000E0  // Interrupt 80 Priority Mask
+#define NVIC_PRI20_INTD_S       29
+#define NVIC_PRI20_INTC_S       21
+#define NVIC_PRI20_INTB_S       13
+#define NVIC_PRI20_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI21 register.
+//
+//*****************************************************************************
+#define NVIC_PRI21_INTD_M       0xE0000000  // Interrupt 87 Priority Mask
+#define NVIC_PRI21_INTC_M       0x00E00000  // Interrupt 86 Priority Mask
+#define NVIC_PRI21_INTB_M       0x0000E000  // Interrupt 85 Priority Mask
+#define NVIC_PRI21_INTA_M       0x000000E0  // Interrupt 84 Priority Mask
+#define NVIC_PRI21_INTD_S       29
+#define NVIC_PRI21_INTC_S       21
+#define NVIC_PRI21_INTB_S       13
+#define NVIC_PRI21_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI22 register.
+//
+//*****************************************************************************
+#define NVIC_PRI22_INTD_M       0xE0000000  // Interrupt 91 Priority Mask
+#define NVIC_PRI22_INTC_M       0x00E00000  // Interrupt 90 Priority Mask
+#define NVIC_PRI22_INTB_M       0x0000E000  // Interrupt 89 Priority Mask
+#define NVIC_PRI22_INTA_M       0x000000E0  // Interrupt 88 Priority Mask
+#define NVIC_PRI22_INTD_S       29
+#define NVIC_PRI22_INTC_S       21
+#define NVIC_PRI22_INTB_S       13
+#define NVIC_PRI22_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI23 register.
+//
+//*****************************************************************************
+#define NVIC_PRI23_INTD_M       0xE0000000  // Interrupt 95 Priority Mask
+#define NVIC_PRI23_INTC_M       0x00E00000  // Interrupt 94 Priority Mask
+#define NVIC_PRI23_INTB_M       0x0000E000  // Interrupt 93 Priority Mask
+#define NVIC_PRI23_INTA_M       0x000000E0  // Interrupt 92 Priority Mask
+#define NVIC_PRI23_INTD_S       29
+#define NVIC_PRI23_INTC_S       21
+#define NVIC_PRI23_INTB_S       13
+#define NVIC_PRI23_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI24 register.
+//
+//*****************************************************************************
+#define NVIC_PRI24_INTD_M       0xE0000000  // Interrupt 99 Priority Mask
+#define NVIC_PRI24_INTC_M       0x00E00000  // Interrupt 98 Priority Mask
+#define NVIC_PRI24_INTB_M       0x0000E000  // Interrupt 97 Priority Mask
+#define NVIC_PRI24_INTA_M       0x000000E0  // Interrupt 96 Priority Mask
+#define NVIC_PRI24_INTD_S       29
+#define NVIC_PRI24_INTC_S       21
+#define NVIC_PRI24_INTB_S       13
+#define NVIC_PRI24_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI25 register.
+//
+//*****************************************************************************
+#define NVIC_PRI25_INTD_M       0xE0000000  // Interrupt 103 Priority Mask
+#define NVIC_PRI25_INTC_M       0x00E00000  // Interrupt 102 Priority Mask
+#define NVIC_PRI25_INTB_M       0x0000E000  // Interrupt 101 Priority Mask
+#define NVIC_PRI25_INTA_M       0x000000E0  // Interrupt 100 Priority Mask
+#define NVIC_PRI25_INTD_S       29
+#define NVIC_PRI25_INTC_S       21
+#define NVIC_PRI25_INTB_S       13
+#define NVIC_PRI25_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI26 register.
+//
+//*****************************************************************************
+#define NVIC_PRI26_INTD_M       0xE0000000  // Interrupt 107 Priority Mask
+#define NVIC_PRI26_INTC_M       0x00E00000  // Interrupt 106 Priority Mask
+#define NVIC_PRI26_INTB_M       0x0000E000  // Interrupt 105 Priority Mask
+#define NVIC_PRI26_INTA_M       0x000000E0  // Interrupt 104 Priority Mask
+#define NVIC_PRI26_INTD_S       29
+#define NVIC_PRI26_INTC_S       21
+#define NVIC_PRI26_INTB_S       13
+#define NVIC_PRI26_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI27 register.
+//
+//*****************************************************************************
+#define NVIC_PRI27_INTD_M       0xE0000000  // Interrupt 111 Priority Mask
+#define NVIC_PRI27_INTC_M       0x00E00000  // Interrupt 110 Priority Mask
+#define NVIC_PRI27_INTB_M       0x0000E000  // Interrupt 109 Priority Mask
+#define NVIC_PRI27_INTA_M       0x000000E0  // Interrupt 108 Priority Mask
+#define NVIC_PRI27_INTD_S       29
+#define NVIC_PRI27_INTC_S       21
+#define NVIC_PRI27_INTB_S       13
+#define NVIC_PRI27_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI28 register.
+//
+//*****************************************************************************
+#define NVIC_PRI28_INTD_M       0xE0000000  // Interrupt 115 Priority Mask
+#define NVIC_PRI28_INTC_M       0x00E00000  // Interrupt 114 Priority Mask
+#define NVIC_PRI28_INTB_M       0x0000E000  // Interrupt 113 Priority Mask
+#define NVIC_PRI28_INTA_M       0x000000E0  // Interrupt 112 Priority Mask
+#define NVIC_PRI28_INTD_S       29
+#define NVIC_PRI28_INTC_S       21
+#define NVIC_PRI28_INTB_S       13
+#define NVIC_PRI28_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI29 register.
+//
+//*****************************************************************************
+#define NVIC_PRI29_INTD_M       0xE0000000  // Interrupt 119 Priority Mask
+#define NVIC_PRI29_INTC_M       0x00E00000  // Interrupt 118 Priority Mask
+#define NVIC_PRI29_INTB_M       0x0000E000  // Interrupt 117 Priority Mask
+#define NVIC_PRI29_INTA_M       0x000000E0  // Interrupt 116 Priority Mask
+#define NVIC_PRI29_INTD_S       29
+#define NVIC_PRI29_INTC_S       21
+#define NVIC_PRI29_INTB_S       13
+#define NVIC_PRI29_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI30 register.
+//
+//*****************************************************************************
+#define NVIC_PRI30_INTD_M       0xE0000000  // Interrupt 123 Priority Mask
+#define NVIC_PRI30_INTC_M       0x00E00000  // Interrupt 122 Priority Mask
+#define NVIC_PRI30_INTB_M       0x0000E000  // Interrupt 121 Priority Mask
+#define NVIC_PRI30_INTA_M       0x000000E0  // Interrupt 120 Priority Mask
+#define NVIC_PRI30_INTD_S       29
+#define NVIC_PRI30_INTC_S       21
+#define NVIC_PRI30_INTB_S       13
+#define NVIC_PRI30_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI31 register.
+//
+//*****************************************************************************
+#define NVIC_PRI31_INTD_M       0xE0000000  // Interrupt 127 Priority Mask
+#define NVIC_PRI31_INTC_M       0x00E00000  // Interrupt 126 Priority Mask
+#define NVIC_PRI31_INTB_M       0x0000E000  // Interrupt 125 Priority Mask
+#define NVIC_PRI31_INTA_M       0x000000E0  // Interrupt 124 Priority Mask
+#define NVIC_PRI31_INTD_S       29
+#define NVIC_PRI31_INTC_S       21
+#define NVIC_PRI31_INTB_S       13
+#define NVIC_PRI31_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI32 register.
+//
+//*****************************************************************************
+#define NVIC_PRI32_INTD_M       0xE0000000  // Interrupt 131 Priority Mask
+#define NVIC_PRI32_INTC_M       0x00E00000  // Interrupt 130 Priority Mask
+#define NVIC_PRI32_INTB_M       0x0000E000  // Interrupt 129 Priority Mask
+#define NVIC_PRI32_INTA_M       0x000000E0  // Interrupt 128 Priority Mask
+#define NVIC_PRI32_INTD_S       29
+#define NVIC_PRI32_INTC_S       21
+#define NVIC_PRI32_INTB_S       13
+#define NVIC_PRI32_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI33 register.
+//
+//*****************************************************************************
+#define NVIC_PRI33_INTD_M       0xE0000000  // Interrupt Priority for Interrupt
+                                            // [4n+3]
+#define NVIC_PRI33_INTC_M       0x00E00000  // Interrupt Priority for Interrupt
+                                            // [4n+2]
+#define NVIC_PRI33_INTB_M       0x0000E000  // Interrupt Priority for Interrupt
+                                            // [4n+1]
+#define NVIC_PRI33_INTA_M       0x000000E0  // Interrupt Priority for Interrupt
+                                            // [4n]
+#define NVIC_PRI33_INTD_S       29
+#define NVIC_PRI33_INTC_S       21
+#define NVIC_PRI33_INTB_S       13
+#define NVIC_PRI33_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI34 register.
+//
+//*****************************************************************************
+#define NVIC_PRI34_INTD_M       0xE0000000  // Interrupt Priority for Interrupt
+                                            // [4n+3]
+#define NVIC_PRI34_INTC_M       0x00E00000  // Interrupt Priority for Interrupt
+                                            // [4n+2]
+#define NVIC_PRI34_INTB_M       0x0000E000  // Interrupt Priority for Interrupt
+                                            // [4n+1]
+#define NVIC_PRI34_INTA_M       0x000000E0  // Interrupt Priority for Interrupt
+                                            // [4n]
+#define NVIC_PRI34_INTD_S       29
+#define NVIC_PRI34_INTC_S       21
+#define NVIC_PRI34_INTB_S       13
+#define NVIC_PRI34_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_CPUID register.
+//
+//*****************************************************************************
+#define NVIC_CPUID_IMP_M        0xFF000000  // Implementer Code
+#define NVIC_CPUID_IMP_ARM      0x41000000  // ARM
+#define NVIC_CPUID_VAR_M        0x00F00000  // Variant Number
+#define NVIC_CPUID_CON_M        0x000F0000  // Constant
+#define NVIC_CPUID_PARTNO_M     0x0000FFF0  // Part Number
+#define NVIC_CPUID_PARTNO_CM4   0x0000C240  // Cortex-M4 processor
+#define NVIC_CPUID_REV_M        0x0000000F  // Revision Number
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_INT_CTRL register.
+//
+//*****************************************************************************
+#define NVIC_INT_CTRL_NMI_SET   0x80000000  // NMI Set Pending
+#define NVIC_INT_CTRL_PEND_SV   0x10000000  // PendSV Set Pending
+#define NVIC_INT_CTRL_UNPEND_SV 0x08000000  // PendSV Clear Pending
+#define NVIC_INT_CTRL_PENDSTSET 0x04000000  // SysTick Set Pending
+#define NVIC_INT_CTRL_PENDSTCLR 0x02000000  // SysTick Clear Pending
+#define NVIC_INT_CTRL_ISR_PRE   0x00800000  // Debug Interrupt Handling
+#define NVIC_INT_CTRL_ISR_PEND  0x00400000  // Interrupt Pending
+#define NVIC_INT_CTRL_VEC_PEN_M 0x000FF000  // Interrupt Pending Vector Number
+#define NVIC_INT_CTRL_VEC_PEN_NMI                                             \
+                                0x00002000  // NMI
+#define NVIC_INT_CTRL_VEC_PEN_HARD                                            \
+                                0x00003000  // Hard fault
+#define NVIC_INT_CTRL_VEC_PEN_MEM                                             \
+                                0x00004000  // Memory management fault
+#define NVIC_INT_CTRL_VEC_PEN_BUS                                             \
+                                0x00005000  // Bus fault
+#define NVIC_INT_CTRL_VEC_PEN_USG                                             \
+                                0x00006000  // Usage fault
+#define NVIC_INT_CTRL_VEC_PEN_SVC                                             \
+                                0x0000B000  // SVCall
+#define NVIC_INT_CTRL_VEC_PEN_PNDSV                                           \
+                                0x0000E000  // PendSV
+#define NVIC_INT_CTRL_VEC_PEN_TICK                                            \
+                                0x0000F000  // SysTick
+#define NVIC_INT_CTRL_RET_BASE  0x00000800  // Return to Base
+#define NVIC_INT_CTRL_VEC_ACT_M 0x000000FF  // Interrupt Pending Vector Number
+#define NVIC_INT_CTRL_VEC_ACT_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_VTABLE register.
+//
+//*****************************************************************************
+#define NVIC_VTABLE_OFFSET_M    0xFFFFFC00  // Vector Table Offset
+#define NVIC_VTABLE_OFFSET_S    10
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_APINT register.
+//
+//*****************************************************************************
+#define NVIC_APINT_VECTKEY_M    0xFFFF0000  // Register Key
+#define NVIC_APINT_VECTKEY      0x05FA0000  // Vector key
+#define NVIC_APINT_ENDIANESS    0x00008000  // Data Endianess
+#define NVIC_APINT_PRIGROUP_M   0x00000700  // Interrupt Priority Grouping
+#define NVIC_APINT_PRIGROUP_7_1 0x00000000  // Priority group 7.1 split
+#define NVIC_APINT_PRIGROUP_6_2 0x00000100  // Priority group 6.2 split
+#define NVIC_APINT_PRIGROUP_5_3 0x00000200  // Priority group 5.3 split
+#define NVIC_APINT_PRIGROUP_4_4 0x00000300  // Priority group 4.4 split
+#define NVIC_APINT_PRIGROUP_3_5 0x00000400  // Priority group 3.5 split
+#define NVIC_APINT_PRIGROUP_2_6 0x00000500  // Priority group 2.6 split
+#define NVIC_APINT_PRIGROUP_1_7 0x00000600  // Priority group 1.7 split
+#define NVIC_APINT_PRIGROUP_0_8 0x00000700  // Priority group 0.8 split
+#define NVIC_APINT_SYSRESETREQ  0x00000004  // System Reset Request
+#define NVIC_APINT_VECT_CLR_ACT 0x00000002  // Clear Active NMI / Fault
+#define NVIC_APINT_VECT_RESET   0x00000001  // System Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_SYS_CTRL register.
+//
+//*****************************************************************************
+#define NVIC_SYS_CTRL_SEVONPEND 0x00000010  // Wake Up on Pending
+#define NVIC_SYS_CTRL_SLEEPDEEP 0x00000004  // Deep Sleep Enable
+#define NVIC_SYS_CTRL_SLEEPEXIT 0x00000002  // Sleep on ISR Exit
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_CFG_CTRL register.
+//
+//*****************************************************************************
+#define NVIC_CFG_CTRL_STKALIGN  0x00000200  // Stack Alignment on Exception
+                                            // Entry
+#define NVIC_CFG_CTRL_BFHFNMIGN 0x00000100  // Ignore Bus Fault in NMI and
+                                            // Fault
+#define NVIC_CFG_CTRL_DIV0      0x00000010  // Trap on Divide by 0
+#define NVIC_CFG_CTRL_UNALIGNED 0x00000008  // Trap on Unaligned Access
+#define NVIC_CFG_CTRL_MAIN_PEND 0x00000002  // Allow Main Interrupt Trigger
+#define NVIC_CFG_CTRL_BASE_THR  0x00000001  // Thread State Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_SYS_PRI1 register.
+//
+//*****************************************************************************
+#define NVIC_SYS_PRI1_USAGE_M   0x00E00000  // Usage Fault Priority
+#define NVIC_SYS_PRI1_BUS_M     0x0000E000  // Bus Fault Priority
+#define NVIC_SYS_PRI1_MEM_M     0x000000E0  // Memory Management Fault Priority
+#define NVIC_SYS_PRI1_USAGE_S   21
+#define NVIC_SYS_PRI1_BUS_S     13
+#define NVIC_SYS_PRI1_MEM_S     5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_SYS_PRI2 register.
+//
+//*****************************************************************************
+#define NVIC_SYS_PRI2_SVC_M     0xE0000000  // SVCall Priority
+#define NVIC_SYS_PRI2_SVC_S     29
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_SYS_PRI3 register.
+//
+//*****************************************************************************
+#define NVIC_SYS_PRI3_TICK_M    0xE0000000  // SysTick Exception Priority
+#define NVIC_SYS_PRI3_PENDSV_M  0x00E00000  // PendSV Priority
+#define NVIC_SYS_PRI3_DEBUG_M   0x000000E0  // Debug Priority
+#define NVIC_SYS_PRI3_TICK_S    29
+#define NVIC_SYS_PRI3_PENDSV_S  21
+#define NVIC_SYS_PRI3_DEBUG_S   5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_SYS_HND_CTRL
+// register.
+//
+//*****************************************************************************
+#define NVIC_SYS_HND_CTRL_USAGE 0x00040000  // Usage Fault Enable
+#define NVIC_SYS_HND_CTRL_BUS   0x00020000  // Bus Fault Enable
+#define NVIC_SYS_HND_CTRL_MEM   0x00010000  // Memory Management Fault Enable
+#define NVIC_SYS_HND_CTRL_SVC   0x00008000  // SVC Call Pending
+#define NVIC_SYS_HND_CTRL_BUSP  0x00004000  // Bus Fault Pending
+#define NVIC_SYS_HND_CTRL_MEMP  0x00002000  // Memory Management Fault Pending
+#define NVIC_SYS_HND_CTRL_USAGEP                                              \
+                                0x00001000  // Usage Fault Pending
+#define NVIC_SYS_HND_CTRL_TICK  0x00000800  // SysTick Exception Active
+#define NVIC_SYS_HND_CTRL_PNDSV 0x00000400  // PendSV Exception Active
+#define NVIC_SYS_HND_CTRL_MON   0x00000100  // Debug Monitor Active
+#define NVIC_SYS_HND_CTRL_SVCA  0x00000080  // SVC Call Active
+#define NVIC_SYS_HND_CTRL_USGA  0x00000008  // Usage Fault Active
+#define NVIC_SYS_HND_CTRL_BUSA  0x00000002  // Bus Fault Active
+#define NVIC_SYS_HND_CTRL_MEMA  0x00000001  // Memory Management Fault Active
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_FAULT_STAT
+// register.
+//
+//*****************************************************************************
+#define NVIC_FAULT_STAT_DIV0    0x02000000  // Divide-by-Zero Usage Fault
+#define NVIC_FAULT_STAT_UNALIGN 0x01000000  // Unaligned Access Usage Fault
+#define NVIC_FAULT_STAT_NOCP    0x00080000  // No Coprocessor Usage Fault
+#define NVIC_FAULT_STAT_INVPC   0x00040000  // Invalid PC Load Usage Fault
+#define NVIC_FAULT_STAT_INVSTAT 0x00020000  // Invalid State Usage Fault
+#define NVIC_FAULT_STAT_UNDEF   0x00010000  // Undefined Instruction Usage
+                                            // Fault
+#define NVIC_FAULT_STAT_BFARV   0x00008000  // Bus Fault Address Register Valid
+#define NVIC_FAULT_STAT_BLSPERR 0x00002000  // Bus Fault on Floating-Point Lazy
+                                            // State Preservation
+#define NVIC_FAULT_STAT_BSTKE   0x00001000  // Stack Bus Fault
+#define NVIC_FAULT_STAT_BUSTKE  0x00000800  // Unstack Bus Fault
+#define NVIC_FAULT_STAT_IMPRE   0x00000400  // Imprecise Data Bus Error
+#define NVIC_FAULT_STAT_PRECISE 0x00000200  // Precise Data Bus Error
+#define NVIC_FAULT_STAT_IBUS    0x00000100  // Instruction Bus Error
+#define NVIC_FAULT_STAT_MMARV   0x00000080  // Memory Management Fault Address
+                                            // Register Valid
+#define NVIC_FAULT_STAT_MLSPERR 0x00000020  // Memory Management Fault on
+                                            // Floating-Point Lazy State
+                                            // Preservation
+#define NVIC_FAULT_STAT_MSTKE   0x00000010  // Stack Access Violation
+#define NVIC_FAULT_STAT_MUSTKE  0x00000008  // Unstack Access Violation
+#define NVIC_FAULT_STAT_DERR    0x00000002  // Data Access Violation
+#define NVIC_FAULT_STAT_IERR    0x00000001  // Instruction Access Violation
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_HFAULT_STAT
+// register.
+//
+//*****************************************************************************
+#define NVIC_HFAULT_STAT_DBG    0x80000000  // Debug Event
+#define NVIC_HFAULT_STAT_FORCED 0x40000000  // Forced Hard Fault
+#define NVIC_HFAULT_STAT_VECT   0x00000002  // Vector Table Read Fault
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_DEBUG_STAT
+// register.
+//
+//*****************************************************************************
+#define NVIC_DEBUG_STAT_EXTRNL  0x00000010  // EDBGRQ asserted
+#define NVIC_DEBUG_STAT_VCATCH  0x00000008  // Vector catch
+#define NVIC_DEBUG_STAT_DWTTRAP 0x00000004  // DWT match
+#define NVIC_DEBUG_STAT_BKPT    0x00000002  // Breakpoint instruction
+#define NVIC_DEBUG_STAT_HALTED  0x00000001  // Halt request
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_MM_ADDR register.
+//
+//*****************************************************************************
+#define NVIC_MM_ADDR_M          0xFFFFFFFF  // Fault Address
+#define NVIC_MM_ADDR_S          0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_FAULT_ADDR
+// register.
+//
+//*****************************************************************************
+#define NVIC_FAULT_ADDR_M       0xFFFFFFFF  // Fault Address
+#define NVIC_FAULT_ADDR_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_CPAC register.
+//
+//*****************************************************************************
+#define NVIC_CPAC_CP11_M        0x00C00000  // CP11 Coprocessor Access
+                                            // Privilege
+#define NVIC_CPAC_CP11_DIS      0x00000000  // Access Denied
+#define NVIC_CPAC_CP11_PRIV     0x00400000  // Privileged Access Only
+#define NVIC_CPAC_CP11_FULL     0x00C00000  // Full Access
+#define NVIC_CPAC_CP10_M        0x00300000  // CP10 Coprocessor Access
+                                            // Privilege
+#define NVIC_CPAC_CP10_DIS      0x00000000  // Access Denied
+#define NVIC_CPAC_CP10_PRIV     0x00100000  // Privileged Access Only
+#define NVIC_CPAC_CP10_FULL     0x00300000  // Full Access
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_MPU_TYPE register.
+//
+//*****************************************************************************
+#define NVIC_MPU_TYPE_IREGION_M 0x00FF0000  // Number of I Regions
+#define NVIC_MPU_TYPE_DREGION_M 0x0000FF00  // Number of D Regions
+#define NVIC_MPU_TYPE_SEPARATE  0x00000001  // Separate or Unified MPU
+#define NVIC_MPU_TYPE_IREGION_S 16
+#define NVIC_MPU_TYPE_DREGION_S 8
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_MPU_CTRL register.
+//
+//*****************************************************************************
+#define NVIC_MPU_CTRL_PRIVDEFEN 0x00000004  // MPU Default Region
+#define NVIC_MPU_CTRL_HFNMIENA  0x00000002  // MPU Enabled During Faults
+#define NVIC_MPU_CTRL_ENABLE    0x00000001  // MPU Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_MPU_NUMBER
+// register.
+//
+//*****************************************************************************
+#define NVIC_MPU_NUMBER_M       0x00000007  // MPU Region to Access
+#define NVIC_MPU_NUMBER_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_MPU_BASE register.
+//
+//*****************************************************************************
+#define NVIC_MPU_BASE_ADDR_M    0xFFFFFFE0  // Base Address Mask
+#define NVIC_MPU_BASE_VALID     0x00000010  // Region Number Valid
+#define NVIC_MPU_BASE_REGION_M  0x00000007  // Region Number
+#define NVIC_MPU_BASE_ADDR_S    5
+#define NVIC_MPU_BASE_REGION_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_MPU_ATTR register.
+//
+//*****************************************************************************
+#define NVIC_MPU_ATTR_XN        0x10000000  // Instruction Access Disable
+#define NVIC_MPU_ATTR_AP_M      0x07000000  // Access Privilege
+#define NVIC_MPU_ATTR_TEX_M     0x00380000  // Type Extension Mask
+#define NVIC_MPU_ATTR_SHAREABLE 0x00040000  // Shareable
+#define NVIC_MPU_ATTR_CACHEABLE 0x00020000  // Cacheable
+#define NVIC_MPU_ATTR_BUFFRABLE 0x00010000  // Bufferable
+#define NVIC_MPU_ATTR_SRD_M     0x0000FF00  // Subregion Disable Bits
+#define NVIC_MPU_ATTR_SIZE_M    0x0000003E  // Region Size Mask
+#define NVIC_MPU_ATTR_ENABLE    0x00000001  // Region Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_MPU_BASE1 register.
+//
+//*****************************************************************************
+#define NVIC_MPU_BASE1_ADDR_M   0xFFFFFFE0  // Base Address Mask
+#define NVIC_MPU_BASE1_VALID    0x00000010  // Region Number Valid
+#define NVIC_MPU_BASE1_REGION_M 0x00000007  // Region Number
+#define NVIC_MPU_BASE1_ADDR_S   5
+#define NVIC_MPU_BASE1_REGION_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_MPU_ATTR1 register.
+//
+//*****************************************************************************
+#define NVIC_MPU_ATTR1_XN       0x10000000  // Instruction Access Disable
+#define NVIC_MPU_ATTR1_AP_M     0x07000000  // Access Privilege
+#define NVIC_MPU_ATTR1_TEX_M    0x00380000  // Type Extension Mask
+#define NVIC_MPU_ATTR1_SHAREABLE                                              \
+                                0x00040000  // Shareable
+#define NVIC_MPU_ATTR1_CACHEABLE                                              \
+                                0x00020000  // Cacheable
+#define NVIC_MPU_ATTR1_BUFFRABLE                                              \
+                                0x00010000  // Bufferable
+#define NVIC_MPU_ATTR1_SRD_M    0x0000FF00  // Subregion Disable Bits
+#define NVIC_MPU_ATTR1_SIZE_M   0x0000003E  // Region Size Mask
+#define NVIC_MPU_ATTR1_ENABLE   0x00000001  // Region Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_MPU_BASE2 register.
+//
+//*****************************************************************************
+#define NVIC_MPU_BASE2_ADDR_M   0xFFFFFFE0  // Base Address Mask
+#define NVIC_MPU_BASE2_VALID    0x00000010  // Region Number Valid
+#define NVIC_MPU_BASE2_REGION_M 0x00000007  // Region Number
+#define NVIC_MPU_BASE2_ADDR_S   5
+#define NVIC_MPU_BASE2_REGION_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_MPU_ATTR2 register.
+//
+//*****************************************************************************
+#define NVIC_MPU_ATTR2_XN       0x10000000  // Instruction Access Disable
+#define NVIC_MPU_ATTR2_AP_M     0x07000000  // Access Privilege
+#define NVIC_MPU_ATTR2_TEX_M    0x00380000  // Type Extension Mask
+#define NVIC_MPU_ATTR2_SHAREABLE                                              \
+                                0x00040000  // Shareable
+#define NVIC_MPU_ATTR2_CACHEABLE                                              \
+                                0x00020000  // Cacheable
+#define NVIC_MPU_ATTR2_BUFFRABLE                                              \
+                                0x00010000  // Bufferable
+#define NVIC_MPU_ATTR2_SRD_M    0x0000FF00  // Subregion Disable Bits
+#define NVIC_MPU_ATTR2_SIZE_M   0x0000003E  // Region Size Mask
+#define NVIC_MPU_ATTR2_ENABLE   0x00000001  // Region Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_MPU_BASE3 register.
+//
+//*****************************************************************************
+#define NVIC_MPU_BASE3_ADDR_M   0xFFFFFFE0  // Base Address Mask
+#define NVIC_MPU_BASE3_VALID    0x00000010  // Region Number Valid
+#define NVIC_MPU_BASE3_REGION_M 0x00000007  // Region Number
+#define NVIC_MPU_BASE3_ADDR_S   5
+#define NVIC_MPU_BASE3_REGION_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_MPU_ATTR3 register.
+//
+//*****************************************************************************
+#define NVIC_MPU_ATTR3_XN       0x10000000  // Instruction Access Disable
+#define NVIC_MPU_ATTR3_AP_M     0x07000000  // Access Privilege
+#define NVIC_MPU_ATTR3_TEX_M    0x00380000  // Type Extension Mask
+#define NVIC_MPU_ATTR3_SHAREABLE                                              \
+                                0x00040000  // Shareable
+#define NVIC_MPU_ATTR3_CACHEABLE                                              \
+                                0x00020000  // Cacheable
+#define NVIC_MPU_ATTR3_BUFFRABLE                                              \
+                                0x00010000  // Bufferable
+#define NVIC_MPU_ATTR3_SRD_M    0x0000FF00  // Subregion Disable Bits
+#define NVIC_MPU_ATTR3_SIZE_M   0x0000003E  // Region Size Mask
+#define NVIC_MPU_ATTR3_ENABLE   0x00000001  // Region Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_DBG_CTRL register.
+//
+//*****************************************************************************
+#define NVIC_DBG_CTRL_DBGKEY_M  0xFFFF0000  // Debug key mask
+#define NVIC_DBG_CTRL_DBGKEY    0xA05F0000  // Debug key
+#define NVIC_DBG_CTRL_S_RESET_ST                                              \
+                                0x02000000  // Core has reset since last read
+#define NVIC_DBG_CTRL_S_RETIRE_ST                                             \
+                                0x01000000  // Core has executed insruction
+                                            // since last read
+#define NVIC_DBG_CTRL_S_LOCKUP  0x00080000  // Core is locked up
+#define NVIC_DBG_CTRL_S_SLEEP   0x00040000  // Core is sleeping
+#define NVIC_DBG_CTRL_S_HALT    0x00020000  // Core status on halt
+#define NVIC_DBG_CTRL_S_REGRDY  0x00010000  // Register read/write available
+#define NVIC_DBG_CTRL_C_SNAPSTALL                                             \
+                                0x00000020  // Breaks a stalled load/store
+#define NVIC_DBG_CTRL_C_MASKINT 0x00000008  // Mask interrupts when stepping
+#define NVIC_DBG_CTRL_C_STEP    0x00000004  // Step the core
+#define NVIC_DBG_CTRL_C_HALT    0x00000002  // Halt the core
+#define NVIC_DBG_CTRL_C_DEBUGEN 0x00000001  // Enable debug
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_DBG_XFER register.
+//
+//*****************************************************************************
+#define NVIC_DBG_XFER_REG_WNR   0x00010000  // Write or not read
+#define NVIC_DBG_XFER_REG_SEL_M 0x0000001F  // Register
+#define NVIC_DBG_XFER_REG_R0    0x00000000  // Register R0
+#define NVIC_DBG_XFER_REG_R1    0x00000001  // Register R1
+#define NVIC_DBG_XFER_REG_R2    0x00000002  // Register R2
+#define NVIC_DBG_XFER_REG_R3    0x00000003  // Register R3
+#define NVIC_DBG_XFER_REG_R4    0x00000004  // Register R4
+#define NVIC_DBG_XFER_REG_R5    0x00000005  // Register R5
+#define NVIC_DBG_XFER_REG_R6    0x00000006  // Register R6
+#define NVIC_DBG_XFER_REG_R7    0x00000007  // Register R7
+#define NVIC_DBG_XFER_REG_R8    0x00000008  // Register R8
+#define NVIC_DBG_XFER_REG_R9    0x00000009  // Register R9
+#define NVIC_DBG_XFER_REG_R10   0x0000000A  // Register R10
+#define NVIC_DBG_XFER_REG_R11   0x0000000B  // Register R11
+#define NVIC_DBG_XFER_REG_R12   0x0000000C  // Register R12
+#define NVIC_DBG_XFER_REG_R13   0x0000000D  // Register R13
+#define NVIC_DBG_XFER_REG_R14   0x0000000E  // Register R14
+#define NVIC_DBG_XFER_REG_R15   0x0000000F  // Register R15
+#define NVIC_DBG_XFER_REG_FLAGS 0x00000010  // xPSR/Flags register
+#define NVIC_DBG_XFER_REG_MSP   0x00000011  // Main SP
+#define NVIC_DBG_XFER_REG_PSP   0x00000012  // Process SP
+#define NVIC_DBG_XFER_REG_DSP   0x00000013  // Deep SP
+#define NVIC_DBG_XFER_REG_CFBP  0x00000014  // Control/Fault/BasePri/PriMask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_DBG_DATA register.
+//
+//*****************************************************************************
+#define NVIC_DBG_DATA_M         0xFFFFFFFF  // Data temporary cache
+#define NVIC_DBG_DATA_S         0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_DBG_INT register.
+//
+//*****************************************************************************
+#define NVIC_DBG_INT_HARDERR    0x00000400  // Debug trap on hard fault
+#define NVIC_DBG_INT_INTERR     0x00000200  // Debug trap on interrupt errors
+#define NVIC_DBG_INT_BUSERR     0x00000100  // Debug trap on bus error
+#define NVIC_DBG_INT_STATERR    0x00000080  // Debug trap on usage fault state
+#define NVIC_DBG_INT_CHKERR     0x00000040  // Debug trap on usage fault check
+#define NVIC_DBG_INT_NOCPERR    0x00000020  // Debug trap on coprocessor error
+#define NVIC_DBG_INT_MMERR      0x00000010  // Debug trap on mem manage fault
+#define NVIC_DBG_INT_RESET      0x00000008  // Core reset status
+#define NVIC_DBG_INT_RSTPENDCLR 0x00000004  // Clear pending core reset
+#define NVIC_DBG_INT_RSTPENDING 0x00000002  // Core reset is pending
+#define NVIC_DBG_INT_RSTVCATCH  0x00000001  // Reset vector catch
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_SW_TRIG register.
+//
+//*****************************************************************************
+#define NVIC_SW_TRIG_INTID_M    0x000000FF  // Interrupt ID
+#define NVIC_SW_TRIG_INTID_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_FPCC register.
+//
+//*****************************************************************************
+#define NVIC_FPCC_ASPEN         0x80000000  // Automatic State Preservation
+                                            // Enable
+#define NVIC_FPCC_LSPEN         0x40000000  // Lazy State Preservation Enable
+#define NVIC_FPCC_MONRDY        0x00000100  // Monitor Ready
+#define NVIC_FPCC_BFRDY         0x00000040  // Bus Fault Ready
+#define NVIC_FPCC_MMRDY         0x00000020  // Memory Management Fault Ready
+#define NVIC_FPCC_HFRDY         0x00000010  // Hard Fault Ready
+#define NVIC_FPCC_THREAD        0x00000008  // Thread Mode
+#define NVIC_FPCC_USER          0x00000002  // User Privilege Level
+#define NVIC_FPCC_LSPACT        0x00000001  // Lazy State Preservation Active
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_FPCA register.
+//
+//*****************************************************************************
+#define NVIC_FPCA_ADDRESS_M     0xFFFFFFF8  // Address
+#define NVIC_FPCA_ADDRESS_S     3
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_FPDSC register.
+//
+//*****************************************************************************
+#define NVIC_FPDSC_AHP          0x04000000  // AHP Bit Default
+#define NVIC_FPDSC_DN           0x02000000  // DN Bit Default
+#define NVIC_FPDSC_FZ           0x01000000  // FZ Bit Default
+#define NVIC_FPDSC_RMODE_M      0x00C00000  // RMODE Bit Default
+#define NVIC_FPDSC_RMODE_RN     0x00000000  // Round to Nearest (RN) mode
+#define NVIC_FPDSC_RMODE_RP     0x00400000  // Round towards Plus Infinity (RP)
+                                            // mode
+#define NVIC_FPDSC_RMODE_RM     0x00800000  // Round towards Minus Infinity
+                                            // (RM) mode
+#define NVIC_FPDSC_RMODE_RZ     0x00C00000  // Round towards Zero (RZ) mode
+
+//*****************************************************************************
+//
+// The following definitions are deprecated.
+//
+//*****************************************************************************
+#ifndef DEPRECATED
+#define SYSCTL_DID0_CLASS_BLIZZARD                                            \
+                                0x00050000  // Tiva(TM) C Series TM4C123-class
+                                            // microcontrollers
+
+#endif
+
+#endif // __TM4C123GH6PM_H__

+ 13577 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/inc/tm4c123gh6pz.h

@@ -0,0 +1,13577 @@
+//*****************************************************************************
+//
+// tm4c123gh6pz.h - TM4C123GH6PZ Register Definitions
+//
+// Copyright (c) 2013-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Firmware Development Package.
+//
+//*****************************************************************************
+
+#ifndef __TM4C123GH6PZ_H__
+#define __TM4C123GH6PZ_H__
+
+//*****************************************************************************
+//
+// Interrupt assignments
+//
+//*****************************************************************************
+#define INT_GPIOA               16          // GPIO Port A
+#define INT_GPIOB               17          // GPIO Port B
+#define INT_GPIOC               18          // GPIO Port C
+#define INT_GPIOD               19          // GPIO Port D
+#define INT_GPIOE               20          // GPIO Port E
+#define INT_UART0               21          // UART0
+#define INT_UART1               22          // UART1
+#define INT_SSI0                23          // SSI0
+#define INT_I2C0                24          // I2C0
+#define INT_PWM0_FAULT          25          // PWM0 Fault
+#define INT_PWM0_0              26          // PWM0 Generator 0
+#define INT_PWM0_1              27          // PWM0 Generator 1
+#define INT_PWM0_2              28          // PWM0 Generator 2
+#define INT_QEI0                29          // QEI0
+#define INT_ADC0SS0             30          // ADC0 Sequence 0
+#define INT_ADC0SS1             31          // ADC0 Sequence 1
+#define INT_ADC0SS2             32          // ADC0 Sequence 2
+#define INT_ADC0SS3             33          // ADC0 Sequence 3
+#define INT_WATCHDOG            34          // Watchdog Timers 0 and 1
+#define INT_TIMER0A             35          // 16/32-Bit Timer 0A
+#define INT_TIMER0B             36          // 16/32-Bit Timer 0B
+#define INT_TIMER1A             37          // 16/32-Bit Timer 1A
+#define INT_TIMER1B             38          // 16/32-Bit Timer 1B
+#define INT_TIMER2A             39          // 16/32-Bit Timer 2A
+#define INT_TIMER2B             40          // 16/32-Bit Timer 2B
+#define INT_COMP0               41          // Analog Comparator 0
+#define INT_COMP1               42          // Analog Comparator 1
+#define INT_COMP2               43          // Analog Comparator 2
+#define INT_SYSCTL              44          // System Control
+#define INT_FLASH               45          // Flash Memory Control and EEPROM
+                                            // Control
+#define INT_GPIOF               46          // GPIO Port F
+#define INT_GPIOG               47          // GPIO Port G
+#define INT_GPIOH               48          // GPIO Port H
+#define INT_UART2               49          // UART2
+#define INT_SSI1                50          // SSI1
+#define INT_TIMER3A             51          // 16/32-Bit Timer 3A
+#define INT_TIMER3B             52          // Timer 3B
+#define INT_I2C1                53          // I2C1
+#define INT_QEI1                54          // QEI1
+#define INT_CAN0                55          // CAN0
+#define INT_CAN1                56          // CAN1
+#define INT_HIBERNATE           59          // Hibernation Module
+#define INT_USB0                60          // USB
+#define INT_PWM0_3              61          // PWM Generator 3
+#define INT_UDMA                62          // uDMA Software
+#define INT_UDMAERR             63          // uDMA Error
+#define INT_ADC1SS0             64          // ADC1 Sequence 0
+#define INT_ADC1SS1             65          // ADC1 Sequence 1
+#define INT_ADC1SS2             66          // ADC1 Sequence 2
+#define INT_ADC1SS3             67          // ADC1 Sequence 3
+#define INT_GPIOJ               70          // GPIO Port J
+#define INT_GPIOK               71          // GPIO Port K
+#define INT_SSI2                73          // SSI2
+#define INT_SSI3                74          // SSI3
+#define INT_UART3               75          // UART3
+#define INT_UART4               76          // UART4
+#define INT_UART5               77          // UART5
+#define INT_UART6               78          // UART6
+#define INT_UART7               79          // UART7
+#define INT_I2C2                84          // I2C2
+#define INT_I2C3                85          // I2C3
+#define INT_TIMER4A             86          // 16/32-Bit Timer 4A
+#define INT_TIMER4B             87          // 16/32-Bit Timer 4B
+#define INT_TIMER5A             108         // 16/32-Bit Timer 5A
+#define INT_TIMER5B             109         // 16/32-Bit Timer 5B
+#define INT_WTIMER0A            110         // 32/64-Bit Timer 0A
+#define INT_WTIMER0B            111         // 32/64-Bit Timer 0B
+#define INT_WTIMER1A            112         // 32/64-Bit Timer 1A
+#define INT_WTIMER1B            113         // 32/64-Bit Timer 1B
+#define INT_WTIMER2A            114         // 32/64-Bit Timer 2A
+#define INT_WTIMER2B            115         // 32/64-Bit Timer 2B
+#define INT_WTIMER3A            116         // 32/64-Bit Timer 3A
+#define INT_WTIMER3B            117         // 32/64-Bit Timer 3B
+#define INT_WTIMER4A            118         // 32/64-Bit Timer 4A
+#define INT_WTIMER4B            119         // 32/64-Bit Timer 4B
+#define INT_WTIMER5A            120         // 32/64-Bit Timer 5A
+#define INT_WTIMER5B            121         // 32/64-Bit Timer 5B
+#define INT_SYSEXC              122         // System Exception (imprecise)
+#define INT_I2C4                125         // I2C4
+#define INT_I2C5                126         // I2C5
+#define INT_PWM1_0              150         // PWM1 Generator 0
+#define INT_PWM1_1              151         // PWM1 Generator 1
+#define INT_PWM1_2              152         // PWM1 Generator 2
+#define INT_PWM1_3              153         // PWM1 Generator 3
+#define INT_PWM1_FAULT          154         // PWM1 Fault
+
+//*****************************************************************************
+//
+// Watchdog Timer registers (WATCHDOG0)
+//
+//*****************************************************************************
+#define WATCHDOG0_LOAD_R        (*((volatile uint32_t *)0x40000000))
+#define WATCHDOG0_VALUE_R       (*((volatile uint32_t *)0x40000004))
+#define WATCHDOG0_CTL_R         (*((volatile uint32_t *)0x40000008))
+#define WATCHDOG0_ICR_R         (*((volatile uint32_t *)0x4000000C))
+#define WATCHDOG0_RIS_R         (*((volatile uint32_t *)0x40000010))
+#define WATCHDOG0_MIS_R         (*((volatile uint32_t *)0x40000014))
+#define WATCHDOG0_TEST_R        (*((volatile uint32_t *)0x40000418))
+#define WATCHDOG0_LOCK_R        (*((volatile uint32_t *)0x40000C00))
+
+//*****************************************************************************
+//
+// Watchdog Timer registers (WATCHDOG1)
+//
+//*****************************************************************************
+#define WATCHDOG1_LOAD_R        (*((volatile uint32_t *)0x40001000))
+#define WATCHDOG1_VALUE_R       (*((volatile uint32_t *)0x40001004))
+#define WATCHDOG1_CTL_R         (*((volatile uint32_t *)0x40001008))
+#define WATCHDOG1_ICR_R         (*((volatile uint32_t *)0x4000100C))
+#define WATCHDOG1_RIS_R         (*((volatile uint32_t *)0x40001010))
+#define WATCHDOG1_MIS_R         (*((volatile uint32_t *)0x40001014))
+#define WATCHDOG1_TEST_R        (*((volatile uint32_t *)0x40001418))
+#define WATCHDOG1_LOCK_R        (*((volatile uint32_t *)0x40001C00))
+
+//*****************************************************************************
+//
+// GPIO registers (PORTA)
+//
+//*****************************************************************************
+#define GPIO_PORTA_DATA_BITS_R  ((volatile uint32_t *)0x40004000)
+#define GPIO_PORTA_DATA_R       (*((volatile uint32_t *)0x400043FC))
+#define GPIO_PORTA_DIR_R        (*((volatile uint32_t *)0x40004400))
+#define GPIO_PORTA_IS_R         (*((volatile uint32_t *)0x40004404))
+#define GPIO_PORTA_IBE_R        (*((volatile uint32_t *)0x40004408))
+#define GPIO_PORTA_IEV_R        (*((volatile uint32_t *)0x4000440C))
+#define GPIO_PORTA_IM_R         (*((volatile uint32_t *)0x40004410))
+#define GPIO_PORTA_RIS_R        (*((volatile uint32_t *)0x40004414))
+#define GPIO_PORTA_MIS_R        (*((volatile uint32_t *)0x40004418))
+#define GPIO_PORTA_ICR_R        (*((volatile uint32_t *)0x4000441C))
+#define GPIO_PORTA_AFSEL_R      (*((volatile uint32_t *)0x40004420))
+#define GPIO_PORTA_DR2R_R       (*((volatile uint32_t *)0x40004500))
+#define GPIO_PORTA_DR4R_R       (*((volatile uint32_t *)0x40004504))
+#define GPIO_PORTA_DR8R_R       (*((volatile uint32_t *)0x40004508))
+#define GPIO_PORTA_ODR_R        (*((volatile uint32_t *)0x4000450C))
+#define GPIO_PORTA_PUR_R        (*((volatile uint32_t *)0x40004510))
+#define GPIO_PORTA_PDR_R        (*((volatile uint32_t *)0x40004514))
+#define GPIO_PORTA_SLR_R        (*((volatile uint32_t *)0x40004518))
+#define GPIO_PORTA_DEN_R        (*((volatile uint32_t *)0x4000451C))
+#define GPIO_PORTA_LOCK_R       (*((volatile uint32_t *)0x40004520))
+#define GPIO_PORTA_CR_R         (*((volatile uint32_t *)0x40004524))
+#define GPIO_PORTA_AMSEL_R      (*((volatile uint32_t *)0x40004528))
+#define GPIO_PORTA_PCTL_R       (*((volatile uint32_t *)0x4000452C))
+#define GPIO_PORTA_ADCCTL_R     (*((volatile uint32_t *)0x40004530))
+#define GPIO_PORTA_DMACTL_R     (*((volatile uint32_t *)0x40004534))
+
+//*****************************************************************************
+//
+// GPIO registers (PORTB)
+//
+//*****************************************************************************
+#define GPIO_PORTB_DATA_BITS_R  ((volatile uint32_t *)0x40005000)
+#define GPIO_PORTB_DATA_R       (*((volatile uint32_t *)0x400053FC))
+#define GPIO_PORTB_DIR_R        (*((volatile uint32_t *)0x40005400))
+#define GPIO_PORTB_IS_R         (*((volatile uint32_t *)0x40005404))
+#define GPIO_PORTB_IBE_R        (*((volatile uint32_t *)0x40005408))
+#define GPIO_PORTB_IEV_R        (*((volatile uint32_t *)0x4000540C))
+#define GPIO_PORTB_IM_R         (*((volatile uint32_t *)0x40005410))
+#define GPIO_PORTB_RIS_R        (*((volatile uint32_t *)0x40005414))
+#define GPIO_PORTB_MIS_R        (*((volatile uint32_t *)0x40005418))
+#define GPIO_PORTB_ICR_R        (*((volatile uint32_t *)0x4000541C))
+#define GPIO_PORTB_AFSEL_R      (*((volatile uint32_t *)0x40005420))
+#define GPIO_PORTB_DR2R_R       (*((volatile uint32_t *)0x40005500))
+#define GPIO_PORTB_DR4R_R       (*((volatile uint32_t *)0x40005504))
+#define GPIO_PORTB_DR8R_R       (*((volatile uint32_t *)0x40005508))
+#define GPIO_PORTB_ODR_R        (*((volatile uint32_t *)0x4000550C))
+#define GPIO_PORTB_PUR_R        (*((volatile uint32_t *)0x40005510))
+#define GPIO_PORTB_PDR_R        (*((volatile uint32_t *)0x40005514))
+#define GPIO_PORTB_SLR_R        (*((volatile uint32_t *)0x40005518))
+#define GPIO_PORTB_DEN_R        (*((volatile uint32_t *)0x4000551C))
+#define GPIO_PORTB_LOCK_R       (*((volatile uint32_t *)0x40005520))
+#define GPIO_PORTB_CR_R         (*((volatile uint32_t *)0x40005524))
+#define GPIO_PORTB_AMSEL_R      (*((volatile uint32_t *)0x40005528))
+#define GPIO_PORTB_PCTL_R       (*((volatile uint32_t *)0x4000552C))
+#define GPIO_PORTB_ADCCTL_R     (*((volatile uint32_t *)0x40005530))
+#define GPIO_PORTB_DMACTL_R     (*((volatile uint32_t *)0x40005534))
+
+//*****************************************************************************
+//
+// GPIO registers (PORTC)
+//
+//*****************************************************************************
+#define GPIO_PORTC_DATA_BITS_R  ((volatile uint32_t *)0x40006000)
+#define GPIO_PORTC_DATA_R       (*((volatile uint32_t *)0x400063FC))
+#define GPIO_PORTC_DIR_R        (*((volatile uint32_t *)0x40006400))
+#define GPIO_PORTC_IS_R         (*((volatile uint32_t *)0x40006404))
+#define GPIO_PORTC_IBE_R        (*((volatile uint32_t *)0x40006408))
+#define GPIO_PORTC_IEV_R        (*((volatile uint32_t *)0x4000640C))
+#define GPIO_PORTC_IM_R         (*((volatile uint32_t *)0x40006410))
+#define GPIO_PORTC_RIS_R        (*((volatile uint32_t *)0x40006414))
+#define GPIO_PORTC_MIS_R        (*((volatile uint32_t *)0x40006418))
+#define GPIO_PORTC_ICR_R        (*((volatile uint32_t *)0x4000641C))
+#define GPIO_PORTC_AFSEL_R      (*((volatile uint32_t *)0x40006420))
+#define GPIO_PORTC_DR2R_R       (*((volatile uint32_t *)0x40006500))
+#define GPIO_PORTC_DR4R_R       (*((volatile uint32_t *)0x40006504))
+#define GPIO_PORTC_DR8R_R       (*((volatile uint32_t *)0x40006508))
+#define GPIO_PORTC_ODR_R        (*((volatile uint32_t *)0x4000650C))
+#define GPIO_PORTC_PUR_R        (*((volatile uint32_t *)0x40006510))
+#define GPIO_PORTC_PDR_R        (*((volatile uint32_t *)0x40006514))
+#define GPIO_PORTC_SLR_R        (*((volatile uint32_t *)0x40006518))
+#define GPIO_PORTC_DEN_R        (*((volatile uint32_t *)0x4000651C))
+#define GPIO_PORTC_LOCK_R       (*((volatile uint32_t *)0x40006520))
+#define GPIO_PORTC_CR_R         (*((volatile uint32_t *)0x40006524))
+#define GPIO_PORTC_AMSEL_R      (*((volatile uint32_t *)0x40006528))
+#define GPIO_PORTC_PCTL_R       (*((volatile uint32_t *)0x4000652C))
+#define GPIO_PORTC_ADCCTL_R     (*((volatile uint32_t *)0x40006530))
+#define GPIO_PORTC_DMACTL_R     (*((volatile uint32_t *)0x40006534))
+
+//*****************************************************************************
+//
+// GPIO registers (PORTD)
+//
+//*****************************************************************************
+#define GPIO_PORTD_DATA_BITS_R  ((volatile uint32_t *)0x40007000)
+#define GPIO_PORTD_DATA_R       (*((volatile uint32_t *)0x400073FC))
+#define GPIO_PORTD_DIR_R        (*((volatile uint32_t *)0x40007400))
+#define GPIO_PORTD_IS_R         (*((volatile uint32_t *)0x40007404))
+#define GPIO_PORTD_IBE_R        (*((volatile uint32_t *)0x40007408))
+#define GPIO_PORTD_IEV_R        (*((volatile uint32_t *)0x4000740C))
+#define GPIO_PORTD_IM_R         (*((volatile uint32_t *)0x40007410))
+#define GPIO_PORTD_RIS_R        (*((volatile uint32_t *)0x40007414))
+#define GPIO_PORTD_MIS_R        (*((volatile uint32_t *)0x40007418))
+#define GPIO_PORTD_ICR_R        (*((volatile uint32_t *)0x4000741C))
+#define GPIO_PORTD_AFSEL_R      (*((volatile uint32_t *)0x40007420))
+#define GPIO_PORTD_DR2R_R       (*((volatile uint32_t *)0x40007500))
+#define GPIO_PORTD_DR4R_R       (*((volatile uint32_t *)0x40007504))
+#define GPIO_PORTD_DR8R_R       (*((volatile uint32_t *)0x40007508))
+#define GPIO_PORTD_ODR_R        (*((volatile uint32_t *)0x4000750C))
+#define GPIO_PORTD_PUR_R        (*((volatile uint32_t *)0x40007510))
+#define GPIO_PORTD_PDR_R        (*((volatile uint32_t *)0x40007514))
+#define GPIO_PORTD_SLR_R        (*((volatile uint32_t *)0x40007518))
+#define GPIO_PORTD_DEN_R        (*((volatile uint32_t *)0x4000751C))
+#define GPIO_PORTD_LOCK_R       (*((volatile uint32_t *)0x40007520))
+#define GPIO_PORTD_CR_R         (*((volatile uint32_t *)0x40007524))
+#define GPIO_PORTD_AMSEL_R      (*((volatile uint32_t *)0x40007528))
+#define GPIO_PORTD_PCTL_R       (*((volatile uint32_t *)0x4000752C))
+#define GPIO_PORTD_ADCCTL_R     (*((volatile uint32_t *)0x40007530))
+#define GPIO_PORTD_DMACTL_R     (*((volatile uint32_t *)0x40007534))
+
+//*****************************************************************************
+//
+// SSI registers (SSI0)
+//
+//*****************************************************************************
+#define SSI0_CR0_R              (*((volatile uint32_t *)0x40008000))
+#define SSI0_CR1_R              (*((volatile uint32_t *)0x40008004))
+#define SSI0_DR_R               (*((volatile uint32_t *)0x40008008))
+#define SSI0_SR_R               (*((volatile uint32_t *)0x4000800C))
+#define SSI0_CPSR_R             (*((volatile uint32_t *)0x40008010))
+#define SSI0_IM_R               (*((volatile uint32_t *)0x40008014))
+#define SSI0_RIS_R              (*((volatile uint32_t *)0x40008018))
+#define SSI0_MIS_R              (*((volatile uint32_t *)0x4000801C))
+#define SSI0_ICR_R              (*((volatile uint32_t *)0x40008020))
+#define SSI0_DMACTL_R           (*((volatile uint32_t *)0x40008024))
+#define SSI0_CC_R               (*((volatile uint32_t *)0x40008FC8))
+
+//*****************************************************************************
+//
+// SSI registers (SSI1)
+//
+//*****************************************************************************
+#define SSI1_CR0_R              (*((volatile uint32_t *)0x40009000))
+#define SSI1_CR1_R              (*((volatile uint32_t *)0x40009004))
+#define SSI1_DR_R               (*((volatile uint32_t *)0x40009008))
+#define SSI1_SR_R               (*((volatile uint32_t *)0x4000900C))
+#define SSI1_CPSR_R             (*((volatile uint32_t *)0x40009010))
+#define SSI1_IM_R               (*((volatile uint32_t *)0x40009014))
+#define SSI1_RIS_R              (*((volatile uint32_t *)0x40009018))
+#define SSI1_MIS_R              (*((volatile uint32_t *)0x4000901C))
+#define SSI1_ICR_R              (*((volatile uint32_t *)0x40009020))
+#define SSI1_DMACTL_R           (*((volatile uint32_t *)0x40009024))
+#define SSI1_CC_R               (*((volatile uint32_t *)0x40009FC8))
+
+//*****************************************************************************
+//
+// SSI registers (SSI2)
+//
+//*****************************************************************************
+#define SSI2_CR0_R              (*((volatile uint32_t *)0x4000A000))
+#define SSI2_CR1_R              (*((volatile uint32_t *)0x4000A004))
+#define SSI2_DR_R               (*((volatile uint32_t *)0x4000A008))
+#define SSI2_SR_R               (*((volatile uint32_t *)0x4000A00C))
+#define SSI2_CPSR_R             (*((volatile uint32_t *)0x4000A010))
+#define SSI2_IM_R               (*((volatile uint32_t *)0x4000A014))
+#define SSI2_RIS_R              (*((volatile uint32_t *)0x4000A018))
+#define SSI2_MIS_R              (*((volatile uint32_t *)0x4000A01C))
+#define SSI2_ICR_R              (*((volatile uint32_t *)0x4000A020))
+#define SSI2_DMACTL_R           (*((volatile uint32_t *)0x4000A024))
+#define SSI2_CC_R               (*((volatile uint32_t *)0x4000AFC8))
+
+//*****************************************************************************
+//
+// SSI registers (SSI3)
+//
+//*****************************************************************************
+#define SSI3_CR0_R              (*((volatile uint32_t *)0x4000B000))
+#define SSI3_CR1_R              (*((volatile uint32_t *)0x4000B004))
+#define SSI3_DR_R               (*((volatile uint32_t *)0x4000B008))
+#define SSI3_SR_R               (*((volatile uint32_t *)0x4000B00C))
+#define SSI3_CPSR_R             (*((volatile uint32_t *)0x4000B010))
+#define SSI3_IM_R               (*((volatile uint32_t *)0x4000B014))
+#define SSI3_RIS_R              (*((volatile uint32_t *)0x4000B018))
+#define SSI3_MIS_R              (*((volatile uint32_t *)0x4000B01C))
+#define SSI3_ICR_R              (*((volatile uint32_t *)0x4000B020))
+#define SSI3_DMACTL_R           (*((volatile uint32_t *)0x4000B024))
+#define SSI3_CC_R               (*((volatile uint32_t *)0x4000BFC8))
+
+//*****************************************************************************
+//
+// UART registers (UART0)
+//
+//*****************************************************************************
+#define UART0_DR_R              (*((volatile uint32_t *)0x4000C000))
+#define UART0_RSR_R             (*((volatile uint32_t *)0x4000C004))
+#define UART0_ECR_R             (*((volatile uint32_t *)0x4000C004))
+#define UART0_FR_R              (*((volatile uint32_t *)0x4000C018))
+#define UART0_ILPR_R            (*((volatile uint32_t *)0x4000C020))
+#define UART0_IBRD_R            (*((volatile uint32_t *)0x4000C024))
+#define UART0_FBRD_R            (*((volatile uint32_t *)0x4000C028))
+#define UART0_LCRH_R            (*((volatile uint32_t *)0x4000C02C))
+#define UART0_CTL_R             (*((volatile uint32_t *)0x4000C030))
+#define UART0_IFLS_R            (*((volatile uint32_t *)0x4000C034))
+#define UART0_IM_R              (*((volatile uint32_t *)0x4000C038))
+#define UART0_RIS_R             (*((volatile uint32_t *)0x4000C03C))
+#define UART0_MIS_R             (*((volatile uint32_t *)0x4000C040))
+#define UART0_ICR_R             (*((volatile uint32_t *)0x4000C044))
+#define UART0_DMACTL_R          (*((volatile uint32_t *)0x4000C048))
+#define UART0_9BITADDR_R        (*((volatile uint32_t *)0x4000C0A4))
+#define UART0_9BITAMASK_R       (*((volatile uint32_t *)0x4000C0A8))
+#define UART0_PP_R              (*((volatile uint32_t *)0x4000CFC0))
+#define UART0_CC_R              (*((volatile uint32_t *)0x4000CFC8))
+
+//*****************************************************************************
+//
+// UART registers (UART1)
+//
+//*****************************************************************************
+#define UART1_DR_R              (*((volatile uint32_t *)0x4000D000))
+#define UART1_RSR_R             (*((volatile uint32_t *)0x4000D004))
+#define UART1_ECR_R             (*((volatile uint32_t *)0x4000D004))
+#define UART1_FR_R              (*((volatile uint32_t *)0x4000D018))
+#define UART1_ILPR_R            (*((volatile uint32_t *)0x4000D020))
+#define UART1_IBRD_R            (*((volatile uint32_t *)0x4000D024))
+#define UART1_FBRD_R            (*((volatile uint32_t *)0x4000D028))
+#define UART1_LCRH_R            (*((volatile uint32_t *)0x4000D02C))
+#define UART1_CTL_R             (*((volatile uint32_t *)0x4000D030))
+#define UART1_IFLS_R            (*((volatile uint32_t *)0x4000D034))
+#define UART1_IM_R              (*((volatile uint32_t *)0x4000D038))
+#define UART1_RIS_R             (*((volatile uint32_t *)0x4000D03C))
+#define UART1_MIS_R             (*((volatile uint32_t *)0x4000D040))
+#define UART1_ICR_R             (*((volatile uint32_t *)0x4000D044))
+#define UART1_DMACTL_R          (*((volatile uint32_t *)0x4000D048))
+#define UART1_9BITADDR_R        (*((volatile uint32_t *)0x4000D0A4))
+#define UART1_9BITAMASK_R       (*((volatile uint32_t *)0x4000D0A8))
+#define UART1_PP_R              (*((volatile uint32_t *)0x4000DFC0))
+#define UART1_CC_R              (*((volatile uint32_t *)0x4000DFC8))
+
+//*****************************************************************************
+//
+// UART registers (UART2)
+//
+//*****************************************************************************
+#define UART2_DR_R              (*((volatile uint32_t *)0x4000E000))
+#define UART2_RSR_R             (*((volatile uint32_t *)0x4000E004))
+#define UART2_ECR_R             (*((volatile uint32_t *)0x4000E004))
+#define UART2_FR_R              (*((volatile uint32_t *)0x4000E018))
+#define UART2_ILPR_R            (*((volatile uint32_t *)0x4000E020))
+#define UART2_IBRD_R            (*((volatile uint32_t *)0x4000E024))
+#define UART2_FBRD_R            (*((volatile uint32_t *)0x4000E028))
+#define UART2_LCRH_R            (*((volatile uint32_t *)0x4000E02C))
+#define UART2_CTL_R             (*((volatile uint32_t *)0x4000E030))
+#define UART2_IFLS_R            (*((volatile uint32_t *)0x4000E034))
+#define UART2_IM_R              (*((volatile uint32_t *)0x4000E038))
+#define UART2_RIS_R             (*((volatile uint32_t *)0x4000E03C))
+#define UART2_MIS_R             (*((volatile uint32_t *)0x4000E040))
+#define UART2_ICR_R             (*((volatile uint32_t *)0x4000E044))
+#define UART2_DMACTL_R          (*((volatile uint32_t *)0x4000E048))
+#define UART2_9BITADDR_R        (*((volatile uint32_t *)0x4000E0A4))
+#define UART2_9BITAMASK_R       (*((volatile uint32_t *)0x4000E0A8))
+#define UART2_PP_R              (*((volatile uint32_t *)0x4000EFC0))
+#define UART2_CC_R              (*((volatile uint32_t *)0x4000EFC8))
+
+//*****************************************************************************
+//
+// UART registers (UART3)
+//
+//*****************************************************************************
+#define UART3_DR_R              (*((volatile uint32_t *)0x4000F000))
+#define UART3_RSR_R             (*((volatile uint32_t *)0x4000F004))
+#define UART3_ECR_R             (*((volatile uint32_t *)0x4000F004))
+#define UART3_FR_R              (*((volatile uint32_t *)0x4000F018))
+#define UART3_ILPR_R            (*((volatile uint32_t *)0x4000F020))
+#define UART3_IBRD_R            (*((volatile uint32_t *)0x4000F024))
+#define UART3_FBRD_R            (*((volatile uint32_t *)0x4000F028))
+#define UART3_LCRH_R            (*((volatile uint32_t *)0x4000F02C))
+#define UART3_CTL_R             (*((volatile uint32_t *)0x4000F030))
+#define UART3_IFLS_R            (*((volatile uint32_t *)0x4000F034))
+#define UART3_IM_R              (*((volatile uint32_t *)0x4000F038))
+#define UART3_RIS_R             (*((volatile uint32_t *)0x4000F03C))
+#define UART3_MIS_R             (*((volatile uint32_t *)0x4000F040))
+#define UART3_ICR_R             (*((volatile uint32_t *)0x4000F044))
+#define UART3_DMACTL_R          (*((volatile uint32_t *)0x4000F048))
+#define UART3_9BITADDR_R        (*((volatile uint32_t *)0x4000F0A4))
+#define UART3_9BITAMASK_R       (*((volatile uint32_t *)0x4000F0A8))
+#define UART3_PP_R              (*((volatile uint32_t *)0x4000FFC0))
+#define UART3_CC_R              (*((volatile uint32_t *)0x4000FFC8))
+
+//*****************************************************************************
+//
+// UART registers (UART4)
+//
+//*****************************************************************************
+#define UART4_DR_R              (*((volatile uint32_t *)0x40010000))
+#define UART4_RSR_R             (*((volatile uint32_t *)0x40010004))
+#define UART4_ECR_R             (*((volatile uint32_t *)0x40010004))
+#define UART4_FR_R              (*((volatile uint32_t *)0x40010018))
+#define UART4_ILPR_R            (*((volatile uint32_t *)0x40010020))
+#define UART4_IBRD_R            (*((volatile uint32_t *)0x40010024))
+#define UART4_FBRD_R            (*((volatile uint32_t *)0x40010028))
+#define UART4_LCRH_R            (*((volatile uint32_t *)0x4001002C))
+#define UART4_CTL_R             (*((volatile uint32_t *)0x40010030))
+#define UART4_IFLS_R            (*((volatile uint32_t *)0x40010034))
+#define UART4_IM_R              (*((volatile uint32_t *)0x40010038))
+#define UART4_RIS_R             (*((volatile uint32_t *)0x4001003C))
+#define UART4_MIS_R             (*((volatile uint32_t *)0x40010040))
+#define UART4_ICR_R             (*((volatile uint32_t *)0x40010044))
+#define UART4_DMACTL_R          (*((volatile uint32_t *)0x40010048))
+#define UART4_9BITADDR_R        (*((volatile uint32_t *)0x400100A4))
+#define UART4_9BITAMASK_R       (*((volatile uint32_t *)0x400100A8))
+#define UART4_PP_R              (*((volatile uint32_t *)0x40010FC0))
+#define UART4_CC_R              (*((volatile uint32_t *)0x40010FC8))
+
+//*****************************************************************************
+//
+// UART registers (UART5)
+//
+//*****************************************************************************
+#define UART5_DR_R              (*((volatile uint32_t *)0x40011000))
+#define UART5_RSR_R             (*((volatile uint32_t *)0x40011004))
+#define UART5_ECR_R             (*((volatile uint32_t *)0x40011004))
+#define UART5_FR_R              (*((volatile uint32_t *)0x40011018))
+#define UART5_ILPR_R            (*((volatile uint32_t *)0x40011020))
+#define UART5_IBRD_R            (*((volatile uint32_t *)0x40011024))
+#define UART5_FBRD_R            (*((volatile uint32_t *)0x40011028))
+#define UART5_LCRH_R            (*((volatile uint32_t *)0x4001102C))
+#define UART5_CTL_R             (*((volatile uint32_t *)0x40011030))
+#define UART5_IFLS_R            (*((volatile uint32_t *)0x40011034))
+#define UART5_IM_R              (*((volatile uint32_t *)0x40011038))
+#define UART5_RIS_R             (*((volatile uint32_t *)0x4001103C))
+#define UART5_MIS_R             (*((volatile uint32_t *)0x40011040))
+#define UART5_ICR_R             (*((volatile uint32_t *)0x40011044))
+#define UART5_DMACTL_R          (*((volatile uint32_t *)0x40011048))
+#define UART5_9BITADDR_R        (*((volatile uint32_t *)0x400110A4))
+#define UART5_9BITAMASK_R       (*((volatile uint32_t *)0x400110A8))
+#define UART5_PP_R              (*((volatile uint32_t *)0x40011FC0))
+#define UART5_CC_R              (*((volatile uint32_t *)0x40011FC8))
+
+//*****************************************************************************
+//
+// UART registers (UART6)
+//
+//*****************************************************************************
+#define UART6_DR_R              (*((volatile uint32_t *)0x40012000))
+#define UART6_RSR_R             (*((volatile uint32_t *)0x40012004))
+#define UART6_ECR_R             (*((volatile uint32_t *)0x40012004))
+#define UART6_FR_R              (*((volatile uint32_t *)0x40012018))
+#define UART6_ILPR_R            (*((volatile uint32_t *)0x40012020))
+#define UART6_IBRD_R            (*((volatile uint32_t *)0x40012024))
+#define UART6_FBRD_R            (*((volatile uint32_t *)0x40012028))
+#define UART6_LCRH_R            (*((volatile uint32_t *)0x4001202C))
+#define UART6_CTL_R             (*((volatile uint32_t *)0x40012030))
+#define UART6_IFLS_R            (*((volatile uint32_t *)0x40012034))
+#define UART6_IM_R              (*((volatile uint32_t *)0x40012038))
+#define UART6_RIS_R             (*((volatile uint32_t *)0x4001203C))
+#define UART6_MIS_R             (*((volatile uint32_t *)0x40012040))
+#define UART6_ICR_R             (*((volatile uint32_t *)0x40012044))
+#define UART6_DMACTL_R          (*((volatile uint32_t *)0x40012048))
+#define UART6_9BITADDR_R        (*((volatile uint32_t *)0x400120A4))
+#define UART6_9BITAMASK_R       (*((volatile uint32_t *)0x400120A8))
+#define UART6_PP_R              (*((volatile uint32_t *)0x40012FC0))
+#define UART6_CC_R              (*((volatile uint32_t *)0x40012FC8))
+
+//*****************************************************************************
+//
+// UART registers (UART7)
+//
+//*****************************************************************************
+#define UART7_DR_R              (*((volatile uint32_t *)0x40013000))
+#define UART7_RSR_R             (*((volatile uint32_t *)0x40013004))
+#define UART7_ECR_R             (*((volatile uint32_t *)0x40013004))
+#define UART7_FR_R              (*((volatile uint32_t *)0x40013018))
+#define UART7_ILPR_R            (*((volatile uint32_t *)0x40013020))
+#define UART7_IBRD_R            (*((volatile uint32_t *)0x40013024))
+#define UART7_FBRD_R            (*((volatile uint32_t *)0x40013028))
+#define UART7_LCRH_R            (*((volatile uint32_t *)0x4001302C))
+#define UART7_CTL_R             (*((volatile uint32_t *)0x40013030))
+#define UART7_IFLS_R            (*((volatile uint32_t *)0x40013034))
+#define UART7_IM_R              (*((volatile uint32_t *)0x40013038))
+#define UART7_RIS_R             (*((volatile uint32_t *)0x4001303C))
+#define UART7_MIS_R             (*((volatile uint32_t *)0x40013040))
+#define UART7_ICR_R             (*((volatile uint32_t *)0x40013044))
+#define UART7_DMACTL_R          (*((volatile uint32_t *)0x40013048))
+#define UART7_9BITADDR_R        (*((volatile uint32_t *)0x400130A4))
+#define UART7_9BITAMASK_R       (*((volatile uint32_t *)0x400130A8))
+#define UART7_PP_R              (*((volatile uint32_t *)0x40013FC0))
+#define UART7_CC_R              (*((volatile uint32_t *)0x40013FC8))
+
+//*****************************************************************************
+//
+// I2C registers (I2C0)
+//
+//*****************************************************************************
+#define I2C0_MSA_R              (*((volatile uint32_t *)0x40020000))
+#define I2C0_MCS_R              (*((volatile uint32_t *)0x40020004))
+#define I2C0_MDR_R              (*((volatile uint32_t *)0x40020008))
+#define I2C0_MTPR_R             (*((volatile uint32_t *)0x4002000C))
+#define I2C0_MIMR_R             (*((volatile uint32_t *)0x40020010))
+#define I2C0_MRIS_R             (*((volatile uint32_t *)0x40020014))
+#define I2C0_MMIS_R             (*((volatile uint32_t *)0x40020018))
+#define I2C0_MICR_R             (*((volatile uint32_t *)0x4002001C))
+#define I2C0_MCR_R              (*((volatile uint32_t *)0x40020020))
+#define I2C0_MCLKOCNT_R         (*((volatile uint32_t *)0x40020024))
+#define I2C0_MBMON_R            (*((volatile uint32_t *)0x4002002C))
+#define I2C0_MCR2_R             (*((volatile uint32_t *)0x40020038))
+#define I2C0_SOAR_R             (*((volatile uint32_t *)0x40020800))
+#define I2C0_SCSR_R             (*((volatile uint32_t *)0x40020804))
+#define I2C0_SDR_R              (*((volatile uint32_t *)0x40020808))
+#define I2C0_SIMR_R             (*((volatile uint32_t *)0x4002080C))
+#define I2C0_SRIS_R             (*((volatile uint32_t *)0x40020810))
+#define I2C0_SMIS_R             (*((volatile uint32_t *)0x40020814))
+#define I2C0_SICR_R             (*((volatile uint32_t *)0x40020818))
+#define I2C0_SOAR2_R            (*((volatile uint32_t *)0x4002081C))
+#define I2C0_SACKCTL_R          (*((volatile uint32_t *)0x40020820))
+#define I2C0_PP_R               (*((volatile uint32_t *)0x40020FC0))
+#define I2C0_PC_R               (*((volatile uint32_t *)0x40020FC4))
+
+//*****************************************************************************
+//
+// I2C registers (I2C1)
+//
+//*****************************************************************************
+#define I2C1_MSA_R              (*((volatile uint32_t *)0x40021000))
+#define I2C1_MCS_R              (*((volatile uint32_t *)0x40021004))
+#define I2C1_MDR_R              (*((volatile uint32_t *)0x40021008))
+#define I2C1_MTPR_R             (*((volatile uint32_t *)0x4002100C))
+#define I2C1_MIMR_R             (*((volatile uint32_t *)0x40021010))
+#define I2C1_MRIS_R             (*((volatile uint32_t *)0x40021014))
+#define I2C1_MMIS_R             (*((volatile uint32_t *)0x40021018))
+#define I2C1_MICR_R             (*((volatile uint32_t *)0x4002101C))
+#define I2C1_MCR_R              (*((volatile uint32_t *)0x40021020))
+#define I2C1_MCLKOCNT_R         (*((volatile uint32_t *)0x40021024))
+#define I2C1_MBMON_R            (*((volatile uint32_t *)0x4002102C))
+#define I2C1_MCR2_R             (*((volatile uint32_t *)0x40021038))
+#define I2C1_SOAR_R             (*((volatile uint32_t *)0x40021800))
+#define I2C1_SCSR_R             (*((volatile uint32_t *)0x40021804))
+#define I2C1_SDR_R              (*((volatile uint32_t *)0x40021808))
+#define I2C1_SIMR_R             (*((volatile uint32_t *)0x4002180C))
+#define I2C1_SRIS_R             (*((volatile uint32_t *)0x40021810))
+#define I2C1_SMIS_R             (*((volatile uint32_t *)0x40021814))
+#define I2C1_SICR_R             (*((volatile uint32_t *)0x40021818))
+#define I2C1_SOAR2_R            (*((volatile uint32_t *)0x4002181C))
+#define I2C1_SACKCTL_R          (*((volatile uint32_t *)0x40021820))
+#define I2C1_PP_R               (*((volatile uint32_t *)0x40021FC0))
+#define I2C1_PC_R               (*((volatile uint32_t *)0x40021FC4))
+
+//*****************************************************************************
+//
+// I2C registers (I2C2)
+//
+//*****************************************************************************
+#define I2C2_MSA_R              (*((volatile uint32_t *)0x40022000))
+#define I2C2_MCS_R              (*((volatile uint32_t *)0x40022004))
+#define I2C2_MDR_R              (*((volatile uint32_t *)0x40022008))
+#define I2C2_MTPR_R             (*((volatile uint32_t *)0x4002200C))
+#define I2C2_MIMR_R             (*((volatile uint32_t *)0x40022010))
+#define I2C2_MRIS_R             (*((volatile uint32_t *)0x40022014))
+#define I2C2_MMIS_R             (*((volatile uint32_t *)0x40022018))
+#define I2C2_MICR_R             (*((volatile uint32_t *)0x4002201C))
+#define I2C2_MCR_R              (*((volatile uint32_t *)0x40022020))
+#define I2C2_MCLKOCNT_R         (*((volatile uint32_t *)0x40022024))
+#define I2C2_MBMON_R            (*((volatile uint32_t *)0x4002202C))
+#define I2C2_MCR2_R             (*((volatile uint32_t *)0x40022038))
+#define I2C2_SOAR_R             (*((volatile uint32_t *)0x40022800))
+#define I2C2_SCSR_R             (*((volatile uint32_t *)0x40022804))
+#define I2C2_SDR_R              (*((volatile uint32_t *)0x40022808))
+#define I2C2_SIMR_R             (*((volatile uint32_t *)0x4002280C))
+#define I2C2_SRIS_R             (*((volatile uint32_t *)0x40022810))
+#define I2C2_SMIS_R             (*((volatile uint32_t *)0x40022814))
+#define I2C2_SICR_R             (*((volatile uint32_t *)0x40022818))
+#define I2C2_SOAR2_R            (*((volatile uint32_t *)0x4002281C))
+#define I2C2_SACKCTL_R          (*((volatile uint32_t *)0x40022820))
+#define I2C2_PP_R               (*((volatile uint32_t *)0x40022FC0))
+#define I2C2_PC_R               (*((volatile uint32_t *)0x40022FC4))
+
+//*****************************************************************************
+//
+// I2C registers (I2C3)
+//
+//*****************************************************************************
+#define I2C3_MSA_R              (*((volatile uint32_t *)0x40023000))
+#define I2C3_MCS_R              (*((volatile uint32_t *)0x40023004))
+#define I2C3_MDR_R              (*((volatile uint32_t *)0x40023008))
+#define I2C3_MTPR_R             (*((volatile uint32_t *)0x4002300C))
+#define I2C3_MIMR_R             (*((volatile uint32_t *)0x40023010))
+#define I2C3_MRIS_R             (*((volatile uint32_t *)0x40023014))
+#define I2C3_MMIS_R             (*((volatile uint32_t *)0x40023018))
+#define I2C3_MICR_R             (*((volatile uint32_t *)0x4002301C))
+#define I2C3_MCR_R              (*((volatile uint32_t *)0x40023020))
+#define I2C3_MCLKOCNT_R         (*((volatile uint32_t *)0x40023024))
+#define I2C3_MBMON_R            (*((volatile uint32_t *)0x4002302C))
+#define I2C3_MCR2_R             (*((volatile uint32_t *)0x40023038))
+#define I2C3_SOAR_R             (*((volatile uint32_t *)0x40023800))
+#define I2C3_SCSR_R             (*((volatile uint32_t *)0x40023804))
+#define I2C3_SDR_R              (*((volatile uint32_t *)0x40023808))
+#define I2C3_SIMR_R             (*((volatile uint32_t *)0x4002380C))
+#define I2C3_SRIS_R             (*((volatile uint32_t *)0x40023810))
+#define I2C3_SMIS_R             (*((volatile uint32_t *)0x40023814))
+#define I2C3_SICR_R             (*((volatile uint32_t *)0x40023818))
+#define I2C3_SOAR2_R            (*((volatile uint32_t *)0x4002381C))
+#define I2C3_SACKCTL_R          (*((volatile uint32_t *)0x40023820))
+#define I2C3_PP_R               (*((volatile uint32_t *)0x40023FC0))
+#define I2C3_PC_R               (*((volatile uint32_t *)0x40023FC4))
+
+//*****************************************************************************
+//
+// GPIO registers (PORTE)
+//
+//*****************************************************************************
+#define GPIO_PORTE_DATA_BITS_R  ((volatile uint32_t *)0x40024000)
+#define GPIO_PORTE_DATA_R       (*((volatile uint32_t *)0x400243FC))
+#define GPIO_PORTE_DIR_R        (*((volatile uint32_t *)0x40024400))
+#define GPIO_PORTE_IS_R         (*((volatile uint32_t *)0x40024404))
+#define GPIO_PORTE_IBE_R        (*((volatile uint32_t *)0x40024408))
+#define GPIO_PORTE_IEV_R        (*((volatile uint32_t *)0x4002440C))
+#define GPIO_PORTE_IM_R         (*((volatile uint32_t *)0x40024410))
+#define GPIO_PORTE_RIS_R        (*((volatile uint32_t *)0x40024414))
+#define GPIO_PORTE_MIS_R        (*((volatile uint32_t *)0x40024418))
+#define GPIO_PORTE_ICR_R        (*((volatile uint32_t *)0x4002441C))
+#define GPIO_PORTE_AFSEL_R      (*((volatile uint32_t *)0x40024420))
+#define GPIO_PORTE_DR2R_R       (*((volatile uint32_t *)0x40024500))
+#define GPIO_PORTE_DR4R_R       (*((volatile uint32_t *)0x40024504))
+#define GPIO_PORTE_DR8R_R       (*((volatile uint32_t *)0x40024508))
+#define GPIO_PORTE_ODR_R        (*((volatile uint32_t *)0x4002450C))
+#define GPIO_PORTE_PUR_R        (*((volatile uint32_t *)0x40024510))
+#define GPIO_PORTE_PDR_R        (*((volatile uint32_t *)0x40024514))
+#define GPIO_PORTE_SLR_R        (*((volatile uint32_t *)0x40024518))
+#define GPIO_PORTE_DEN_R        (*((volatile uint32_t *)0x4002451C))
+#define GPIO_PORTE_LOCK_R       (*((volatile uint32_t *)0x40024520))
+#define GPIO_PORTE_CR_R         (*((volatile uint32_t *)0x40024524))
+#define GPIO_PORTE_AMSEL_R      (*((volatile uint32_t *)0x40024528))
+#define GPIO_PORTE_PCTL_R       (*((volatile uint32_t *)0x4002452C))
+#define GPIO_PORTE_ADCCTL_R     (*((volatile uint32_t *)0x40024530))
+#define GPIO_PORTE_DMACTL_R     (*((volatile uint32_t *)0x40024534))
+
+//*****************************************************************************
+//
+// GPIO registers (PORTF)
+//
+//*****************************************************************************
+#define GPIO_PORTF_DATA_BITS_R  ((volatile uint32_t *)0x40025000)
+#define GPIO_PORTF_DATA_R       (*((volatile uint32_t *)0x400253FC))
+#define GPIO_PORTF_DIR_R        (*((volatile uint32_t *)0x40025400))
+#define GPIO_PORTF_IS_R         (*((volatile uint32_t *)0x40025404))
+#define GPIO_PORTF_IBE_R        (*((volatile uint32_t *)0x40025408))
+#define GPIO_PORTF_IEV_R        (*((volatile uint32_t *)0x4002540C))
+#define GPIO_PORTF_IM_R         (*((volatile uint32_t *)0x40025410))
+#define GPIO_PORTF_RIS_R        (*((volatile uint32_t *)0x40025414))
+#define GPIO_PORTF_MIS_R        (*((volatile uint32_t *)0x40025418))
+#define GPIO_PORTF_ICR_R        (*((volatile uint32_t *)0x4002541C))
+#define GPIO_PORTF_AFSEL_R      (*((volatile uint32_t *)0x40025420))
+#define GPIO_PORTF_DR2R_R       (*((volatile uint32_t *)0x40025500))
+#define GPIO_PORTF_DR4R_R       (*((volatile uint32_t *)0x40025504))
+#define GPIO_PORTF_DR8R_R       (*((volatile uint32_t *)0x40025508))
+#define GPIO_PORTF_ODR_R        (*((volatile uint32_t *)0x4002550C))
+#define GPIO_PORTF_PUR_R        (*((volatile uint32_t *)0x40025510))
+#define GPIO_PORTF_PDR_R        (*((volatile uint32_t *)0x40025514))
+#define GPIO_PORTF_SLR_R        (*((volatile uint32_t *)0x40025518))
+#define GPIO_PORTF_DEN_R        (*((volatile uint32_t *)0x4002551C))
+#define GPIO_PORTF_LOCK_R       (*((volatile uint32_t *)0x40025520))
+#define GPIO_PORTF_CR_R         (*((volatile uint32_t *)0x40025524))
+#define GPIO_PORTF_AMSEL_R      (*((volatile uint32_t *)0x40025528))
+#define GPIO_PORTF_PCTL_R       (*((volatile uint32_t *)0x4002552C))
+#define GPIO_PORTF_ADCCTL_R     (*((volatile uint32_t *)0x40025530))
+#define GPIO_PORTF_DMACTL_R     (*((volatile uint32_t *)0x40025534))
+
+//*****************************************************************************
+//
+// GPIO registers (PORTG)
+//
+//*****************************************************************************
+#define GPIO_PORTG_DATA_BITS_R  ((volatile uint32_t *)0x40026000)
+#define GPIO_PORTG_DATA_R       (*((volatile uint32_t *)0x400263FC))
+#define GPIO_PORTG_DIR_R        (*((volatile uint32_t *)0x40026400))
+#define GPIO_PORTG_IS_R         (*((volatile uint32_t *)0x40026404))
+#define GPIO_PORTG_IBE_R        (*((volatile uint32_t *)0x40026408))
+#define GPIO_PORTG_IEV_R        (*((volatile uint32_t *)0x4002640C))
+#define GPIO_PORTG_IM_R         (*((volatile uint32_t *)0x40026410))
+#define GPIO_PORTG_RIS_R        (*((volatile uint32_t *)0x40026414))
+#define GPIO_PORTG_MIS_R        (*((volatile uint32_t *)0x40026418))
+#define GPIO_PORTG_ICR_R        (*((volatile uint32_t *)0x4002641C))
+#define GPIO_PORTG_AFSEL_R      (*((volatile uint32_t *)0x40026420))
+#define GPIO_PORTG_DR2R_R       (*((volatile uint32_t *)0x40026500))
+#define GPIO_PORTG_DR4R_R       (*((volatile uint32_t *)0x40026504))
+#define GPIO_PORTG_DR8R_R       (*((volatile uint32_t *)0x40026508))
+#define GPIO_PORTG_ODR_R        (*((volatile uint32_t *)0x4002650C))
+#define GPIO_PORTG_PUR_R        (*((volatile uint32_t *)0x40026510))
+#define GPIO_PORTG_PDR_R        (*((volatile uint32_t *)0x40026514))
+#define GPIO_PORTG_SLR_R        (*((volatile uint32_t *)0x40026518))
+#define GPIO_PORTG_DEN_R        (*((volatile uint32_t *)0x4002651C))
+#define GPIO_PORTG_LOCK_R       (*((volatile uint32_t *)0x40026520))
+#define GPIO_PORTG_CR_R         (*((volatile uint32_t *)0x40026524))
+#define GPIO_PORTG_AMSEL_R      (*((volatile uint32_t *)0x40026528))
+#define GPIO_PORTG_PCTL_R       (*((volatile uint32_t *)0x4002652C))
+#define GPIO_PORTG_ADCCTL_R     (*((volatile uint32_t *)0x40026530))
+#define GPIO_PORTG_DMACTL_R     (*((volatile uint32_t *)0x40026534))
+
+//*****************************************************************************
+//
+// GPIO registers (PORTH)
+//
+//*****************************************************************************
+#define GPIO_PORTH_DATA_BITS_R  ((volatile uint32_t *)0x40027000)
+#define GPIO_PORTH_DATA_R       (*((volatile uint32_t *)0x400273FC))
+#define GPIO_PORTH_DIR_R        (*((volatile uint32_t *)0x40027400))
+#define GPIO_PORTH_IS_R         (*((volatile uint32_t *)0x40027404))
+#define GPIO_PORTH_IBE_R        (*((volatile uint32_t *)0x40027408))
+#define GPIO_PORTH_IEV_R        (*((volatile uint32_t *)0x4002740C))
+#define GPIO_PORTH_IM_R         (*((volatile uint32_t *)0x40027410))
+#define GPIO_PORTH_RIS_R        (*((volatile uint32_t *)0x40027414))
+#define GPIO_PORTH_MIS_R        (*((volatile uint32_t *)0x40027418))
+#define GPIO_PORTH_ICR_R        (*((volatile uint32_t *)0x4002741C))
+#define GPIO_PORTH_AFSEL_R      (*((volatile uint32_t *)0x40027420))
+#define GPIO_PORTH_DR2R_R       (*((volatile uint32_t *)0x40027500))
+#define GPIO_PORTH_DR4R_R       (*((volatile uint32_t *)0x40027504))
+#define GPIO_PORTH_DR8R_R       (*((volatile uint32_t *)0x40027508))
+#define GPIO_PORTH_ODR_R        (*((volatile uint32_t *)0x4002750C))
+#define GPIO_PORTH_PUR_R        (*((volatile uint32_t *)0x40027510))
+#define GPIO_PORTH_PDR_R        (*((volatile uint32_t *)0x40027514))
+#define GPIO_PORTH_SLR_R        (*((volatile uint32_t *)0x40027518))
+#define GPIO_PORTH_DEN_R        (*((volatile uint32_t *)0x4002751C))
+#define GPIO_PORTH_LOCK_R       (*((volatile uint32_t *)0x40027520))
+#define GPIO_PORTH_CR_R         (*((volatile uint32_t *)0x40027524))
+#define GPIO_PORTH_AMSEL_R      (*((volatile uint32_t *)0x40027528))
+#define GPIO_PORTH_PCTL_R       (*((volatile uint32_t *)0x4002752C))
+#define GPIO_PORTH_ADCCTL_R     (*((volatile uint32_t *)0x40027530))
+#define GPIO_PORTH_DMACTL_R     (*((volatile uint32_t *)0x40027534))
+
+//*****************************************************************************
+//
+// PWM registers (PWM0)
+//
+//*****************************************************************************
+#define PWM0_CTL_R              (*((volatile uint32_t *)0x40028000))
+#define PWM0_SYNC_R             (*((volatile uint32_t *)0x40028004))
+#define PWM0_ENABLE_R           (*((volatile uint32_t *)0x40028008))
+#define PWM0_INVERT_R           (*((volatile uint32_t *)0x4002800C))
+#define PWM0_FAULT_R            (*((volatile uint32_t *)0x40028010))
+#define PWM0_INTEN_R            (*((volatile uint32_t *)0x40028014))
+#define PWM0_RIS_R              (*((volatile uint32_t *)0x40028018))
+#define PWM0_ISC_R              (*((volatile uint32_t *)0x4002801C))
+#define PWM0_STATUS_R           (*((volatile uint32_t *)0x40028020))
+#define PWM0_FAULTVAL_R         (*((volatile uint32_t *)0x40028024))
+#define PWM0_ENUPD_R            (*((volatile uint32_t *)0x40028028))
+#define PWM0_0_CTL_R            (*((volatile uint32_t *)0x40028040))
+#define PWM0_0_INTEN_R          (*((volatile uint32_t *)0x40028044))
+#define PWM0_0_RIS_R            (*((volatile uint32_t *)0x40028048))
+#define PWM0_0_ISC_R            (*((volatile uint32_t *)0x4002804C))
+#define PWM0_0_LOAD_R           (*((volatile uint32_t *)0x40028050))
+#define PWM0_0_COUNT_R          (*((volatile uint32_t *)0x40028054))
+#define PWM0_0_CMPA_R           (*((volatile uint32_t *)0x40028058))
+#define PWM0_0_CMPB_R           (*((volatile uint32_t *)0x4002805C))
+#define PWM0_0_GENA_R           (*((volatile uint32_t *)0x40028060))
+#define PWM0_0_GENB_R           (*((volatile uint32_t *)0x40028064))
+#define PWM0_0_DBCTL_R          (*((volatile uint32_t *)0x40028068))
+#define PWM0_0_DBRISE_R         (*((volatile uint32_t *)0x4002806C))
+#define PWM0_0_DBFALL_R         (*((volatile uint32_t *)0x40028070))
+#define PWM0_0_FLTSRC0_R        (*((volatile uint32_t *)0x40028074))
+#define PWM0_0_FLTSRC1_R        (*((volatile uint32_t *)0x40028078))
+#define PWM0_0_MINFLTPER_R      (*((volatile uint32_t *)0x4002807C))
+#define PWM0_1_CTL_R            (*((volatile uint32_t *)0x40028080))
+#define PWM0_1_INTEN_R          (*((volatile uint32_t *)0x40028084))
+#define PWM0_1_RIS_R            (*((volatile uint32_t *)0x40028088))
+#define PWM0_1_ISC_R            (*((volatile uint32_t *)0x4002808C))
+#define PWM0_1_LOAD_R           (*((volatile uint32_t *)0x40028090))
+#define PWM0_1_COUNT_R          (*((volatile uint32_t *)0x40028094))
+#define PWM0_1_CMPA_R           (*((volatile uint32_t *)0x40028098))
+#define PWM0_1_CMPB_R           (*((volatile uint32_t *)0x4002809C))
+#define PWM0_1_GENA_R           (*((volatile uint32_t *)0x400280A0))
+#define PWM0_1_GENB_R           (*((volatile uint32_t *)0x400280A4))
+#define PWM0_1_DBCTL_R          (*((volatile uint32_t *)0x400280A8))
+#define PWM0_1_DBRISE_R         (*((volatile uint32_t *)0x400280AC))
+#define PWM0_1_DBFALL_R         (*((volatile uint32_t *)0x400280B0))
+#define PWM0_1_FLTSRC0_R        (*((volatile uint32_t *)0x400280B4))
+#define PWM0_1_FLTSRC1_R        (*((volatile uint32_t *)0x400280B8))
+#define PWM0_1_MINFLTPER_R      (*((volatile uint32_t *)0x400280BC))
+#define PWM0_2_CTL_R            (*((volatile uint32_t *)0x400280C0))
+#define PWM0_2_INTEN_R          (*((volatile uint32_t *)0x400280C4))
+#define PWM0_2_RIS_R            (*((volatile uint32_t *)0x400280C8))
+#define PWM0_2_ISC_R            (*((volatile uint32_t *)0x400280CC))
+#define PWM0_2_LOAD_R           (*((volatile uint32_t *)0x400280D0))
+#define PWM0_2_COUNT_R          (*((volatile uint32_t *)0x400280D4))
+#define PWM0_2_CMPA_R           (*((volatile uint32_t *)0x400280D8))
+#define PWM0_2_CMPB_R           (*((volatile uint32_t *)0x400280DC))
+#define PWM0_2_GENA_R           (*((volatile uint32_t *)0x400280E0))
+#define PWM0_2_GENB_R           (*((volatile uint32_t *)0x400280E4))
+#define PWM0_2_DBCTL_R          (*((volatile uint32_t *)0x400280E8))
+#define PWM0_2_DBRISE_R         (*((volatile uint32_t *)0x400280EC))
+#define PWM0_2_DBFALL_R         (*((volatile uint32_t *)0x400280F0))
+#define PWM0_2_FLTSRC0_R        (*((volatile uint32_t *)0x400280F4))
+#define PWM0_2_FLTSRC1_R        (*((volatile uint32_t *)0x400280F8))
+#define PWM0_2_MINFLTPER_R      (*((volatile uint32_t *)0x400280FC))
+#define PWM0_3_CTL_R            (*((volatile uint32_t *)0x40028100))
+#define PWM0_3_INTEN_R          (*((volatile uint32_t *)0x40028104))
+#define PWM0_3_RIS_R            (*((volatile uint32_t *)0x40028108))
+#define PWM0_3_ISC_R            (*((volatile uint32_t *)0x4002810C))
+#define PWM0_3_LOAD_R           (*((volatile uint32_t *)0x40028110))
+#define PWM0_3_COUNT_R          (*((volatile uint32_t *)0x40028114))
+#define PWM0_3_CMPA_R           (*((volatile uint32_t *)0x40028118))
+#define PWM0_3_CMPB_R           (*((volatile uint32_t *)0x4002811C))
+#define PWM0_3_GENA_R           (*((volatile uint32_t *)0x40028120))
+#define PWM0_3_GENB_R           (*((volatile uint32_t *)0x40028124))
+#define PWM0_3_DBCTL_R          (*((volatile uint32_t *)0x40028128))
+#define PWM0_3_DBRISE_R         (*((volatile uint32_t *)0x4002812C))
+#define PWM0_3_DBFALL_R         (*((volatile uint32_t *)0x40028130))
+#define PWM0_3_FLTSRC0_R        (*((volatile uint32_t *)0x40028134))
+#define PWM0_3_FLTSRC1_R        (*((volatile uint32_t *)0x40028138))
+#define PWM0_3_MINFLTPER_R      (*((volatile uint32_t *)0x4002813C))
+#define PWM0_0_FLTSEN_R         (*((volatile uint32_t *)0x40028800))
+#define PWM0_0_FLTSTAT0_R       (*((volatile uint32_t *)0x40028804))
+#define PWM0_0_FLTSTAT1_R       (*((volatile uint32_t *)0x40028808))
+#define PWM0_1_FLTSEN_R         (*((volatile uint32_t *)0x40028880))
+#define PWM0_1_FLTSTAT0_R       (*((volatile uint32_t *)0x40028884))
+#define PWM0_1_FLTSTAT1_R       (*((volatile uint32_t *)0x40028888))
+#define PWM0_2_FLTSEN_R         (*((volatile uint32_t *)0x40028900))
+#define PWM0_2_FLTSTAT0_R       (*((volatile uint32_t *)0x40028904))
+#define PWM0_2_FLTSTAT1_R       (*((volatile uint32_t *)0x40028908))
+#define PWM0_3_FLTSEN_R         (*((volatile uint32_t *)0x40028980))
+#define PWM0_3_FLTSTAT0_R       (*((volatile uint32_t *)0x40028984))
+#define PWM0_3_FLTSTAT1_R       (*((volatile uint32_t *)0x40028988))
+#define PWM0_PP_R               (*((volatile uint32_t *)0x40028FC0))
+
+//*****************************************************************************
+//
+// PWM registers (PWM1)
+//
+//*****************************************************************************
+#define PWM1_CTL_R              (*((volatile uint32_t *)0x40029000))
+#define PWM1_SYNC_R             (*((volatile uint32_t *)0x40029004))
+#define PWM1_ENABLE_R           (*((volatile uint32_t *)0x40029008))
+#define PWM1_INVERT_R           (*((volatile uint32_t *)0x4002900C))
+#define PWM1_FAULT_R            (*((volatile uint32_t *)0x40029010))
+#define PWM1_INTEN_R            (*((volatile uint32_t *)0x40029014))
+#define PWM1_RIS_R              (*((volatile uint32_t *)0x40029018))
+#define PWM1_ISC_R              (*((volatile uint32_t *)0x4002901C))
+#define PWM1_STATUS_R           (*((volatile uint32_t *)0x40029020))
+#define PWM1_FAULTVAL_R         (*((volatile uint32_t *)0x40029024))
+#define PWM1_ENUPD_R            (*((volatile uint32_t *)0x40029028))
+#define PWM1_0_CTL_R            (*((volatile uint32_t *)0x40029040))
+#define PWM1_0_INTEN_R          (*((volatile uint32_t *)0x40029044))
+#define PWM1_0_RIS_R            (*((volatile uint32_t *)0x40029048))
+#define PWM1_0_ISC_R            (*((volatile uint32_t *)0x4002904C))
+#define PWM1_0_LOAD_R           (*((volatile uint32_t *)0x40029050))
+#define PWM1_0_COUNT_R          (*((volatile uint32_t *)0x40029054))
+#define PWM1_0_CMPA_R           (*((volatile uint32_t *)0x40029058))
+#define PWM1_0_CMPB_R           (*((volatile uint32_t *)0x4002905C))
+#define PWM1_0_GENA_R           (*((volatile uint32_t *)0x40029060))
+#define PWM1_0_GENB_R           (*((volatile uint32_t *)0x40029064))
+#define PWM1_0_DBCTL_R          (*((volatile uint32_t *)0x40029068))
+#define PWM1_0_DBRISE_R         (*((volatile uint32_t *)0x4002906C))
+#define PWM1_0_DBFALL_R         (*((volatile uint32_t *)0x40029070))
+#define PWM1_0_FLTSRC0_R        (*((volatile uint32_t *)0x40029074))
+#define PWM1_0_FLTSRC1_R        (*((volatile uint32_t *)0x40029078))
+#define PWM1_0_MINFLTPER_R      (*((volatile uint32_t *)0x4002907C))
+#define PWM1_1_CTL_R            (*((volatile uint32_t *)0x40029080))
+#define PWM1_1_INTEN_R          (*((volatile uint32_t *)0x40029084))
+#define PWM1_1_RIS_R            (*((volatile uint32_t *)0x40029088))
+#define PWM1_1_ISC_R            (*((volatile uint32_t *)0x4002908C))
+#define PWM1_1_LOAD_R           (*((volatile uint32_t *)0x40029090))
+#define PWM1_1_COUNT_R          (*((volatile uint32_t *)0x40029094))
+#define PWM1_1_CMPA_R           (*((volatile uint32_t *)0x40029098))
+#define PWM1_1_CMPB_R           (*((volatile uint32_t *)0x4002909C))
+#define PWM1_1_GENA_R           (*((volatile uint32_t *)0x400290A0))
+#define PWM1_1_GENB_R           (*((volatile uint32_t *)0x400290A4))
+#define PWM1_1_DBCTL_R          (*((volatile uint32_t *)0x400290A8))
+#define PWM1_1_DBRISE_R         (*((volatile uint32_t *)0x400290AC))
+#define PWM1_1_DBFALL_R         (*((volatile uint32_t *)0x400290B0))
+#define PWM1_1_FLTSRC0_R        (*((volatile uint32_t *)0x400290B4))
+#define PWM1_1_FLTSRC1_R        (*((volatile uint32_t *)0x400290B8))
+#define PWM1_1_MINFLTPER_R      (*((volatile uint32_t *)0x400290BC))
+#define PWM1_2_CTL_R            (*((volatile uint32_t *)0x400290C0))
+#define PWM1_2_INTEN_R          (*((volatile uint32_t *)0x400290C4))
+#define PWM1_2_RIS_R            (*((volatile uint32_t *)0x400290C8))
+#define PWM1_2_ISC_R            (*((volatile uint32_t *)0x400290CC))
+#define PWM1_2_LOAD_R           (*((volatile uint32_t *)0x400290D0))
+#define PWM1_2_COUNT_R          (*((volatile uint32_t *)0x400290D4))
+#define PWM1_2_CMPA_R           (*((volatile uint32_t *)0x400290D8))
+#define PWM1_2_CMPB_R           (*((volatile uint32_t *)0x400290DC))
+#define PWM1_2_GENA_R           (*((volatile uint32_t *)0x400290E0))
+#define PWM1_2_GENB_R           (*((volatile uint32_t *)0x400290E4))
+#define PWM1_2_DBCTL_R          (*((volatile uint32_t *)0x400290E8))
+#define PWM1_2_DBRISE_R         (*((volatile uint32_t *)0x400290EC))
+#define PWM1_2_DBFALL_R         (*((volatile uint32_t *)0x400290F0))
+#define PWM1_2_FLTSRC0_R        (*((volatile uint32_t *)0x400290F4))
+#define PWM1_2_FLTSRC1_R        (*((volatile uint32_t *)0x400290F8))
+#define PWM1_2_MINFLTPER_R      (*((volatile uint32_t *)0x400290FC))
+#define PWM1_3_CTL_R            (*((volatile uint32_t *)0x40029100))
+#define PWM1_3_INTEN_R          (*((volatile uint32_t *)0x40029104))
+#define PWM1_3_RIS_R            (*((volatile uint32_t *)0x40029108))
+#define PWM1_3_ISC_R            (*((volatile uint32_t *)0x4002910C))
+#define PWM1_3_LOAD_R           (*((volatile uint32_t *)0x40029110))
+#define PWM1_3_COUNT_R          (*((volatile uint32_t *)0x40029114))
+#define PWM1_3_CMPA_R           (*((volatile uint32_t *)0x40029118))
+#define PWM1_3_CMPB_R           (*((volatile uint32_t *)0x4002911C))
+#define PWM1_3_GENA_R           (*((volatile uint32_t *)0x40029120))
+#define PWM1_3_GENB_R           (*((volatile uint32_t *)0x40029124))
+#define PWM1_3_DBCTL_R          (*((volatile uint32_t *)0x40029128))
+#define PWM1_3_DBRISE_R         (*((volatile uint32_t *)0x4002912C))
+#define PWM1_3_DBFALL_R         (*((volatile uint32_t *)0x40029130))
+#define PWM1_3_FLTSRC0_R        (*((volatile uint32_t *)0x40029134))
+#define PWM1_3_FLTSRC1_R        (*((volatile uint32_t *)0x40029138))
+#define PWM1_3_MINFLTPER_R      (*((volatile uint32_t *)0x4002913C))
+#define PWM1_0_FLTSEN_R         (*((volatile uint32_t *)0x40029800))
+#define PWM1_0_FLTSTAT0_R       (*((volatile uint32_t *)0x40029804))
+#define PWM1_0_FLTSTAT1_R       (*((volatile uint32_t *)0x40029808))
+#define PWM1_1_FLTSEN_R         (*((volatile uint32_t *)0x40029880))
+#define PWM1_1_FLTSTAT0_R       (*((volatile uint32_t *)0x40029884))
+#define PWM1_1_FLTSTAT1_R       (*((volatile uint32_t *)0x40029888))
+#define PWM1_2_FLTSEN_R         (*((volatile uint32_t *)0x40029900))
+#define PWM1_2_FLTSTAT0_R       (*((volatile uint32_t *)0x40029904))
+#define PWM1_2_FLTSTAT1_R       (*((volatile uint32_t *)0x40029908))
+#define PWM1_3_FLTSEN_R         (*((volatile uint32_t *)0x40029980))
+#define PWM1_3_FLTSTAT0_R       (*((volatile uint32_t *)0x40029984))
+#define PWM1_3_FLTSTAT1_R       (*((volatile uint32_t *)0x40029988))
+#define PWM1_PP_R               (*((volatile uint32_t *)0x40029FC0))
+
+//*****************************************************************************
+//
+// QEI registers (QEI0)
+//
+//*****************************************************************************
+#define QEI0_CTL_R              (*((volatile uint32_t *)0x4002C000))
+#define QEI0_STAT_R             (*((volatile uint32_t *)0x4002C004))
+#define QEI0_POS_R              (*((volatile uint32_t *)0x4002C008))
+#define QEI0_MAXPOS_R           (*((volatile uint32_t *)0x4002C00C))
+#define QEI0_LOAD_R             (*((volatile uint32_t *)0x4002C010))
+#define QEI0_TIME_R             (*((volatile uint32_t *)0x4002C014))
+#define QEI0_COUNT_R            (*((volatile uint32_t *)0x4002C018))
+#define QEI0_SPEED_R            (*((volatile uint32_t *)0x4002C01C))
+#define QEI0_INTEN_R            (*((volatile uint32_t *)0x4002C020))
+#define QEI0_RIS_R              (*((volatile uint32_t *)0x4002C024))
+#define QEI0_ISC_R              (*((volatile uint32_t *)0x4002C028))
+
+//*****************************************************************************
+//
+// QEI registers (QEI1)
+//
+//*****************************************************************************
+#define QEI1_CTL_R              (*((volatile uint32_t *)0x4002D000))
+#define QEI1_STAT_R             (*((volatile uint32_t *)0x4002D004))
+#define QEI1_POS_R              (*((volatile uint32_t *)0x4002D008))
+#define QEI1_MAXPOS_R           (*((volatile uint32_t *)0x4002D00C))
+#define QEI1_LOAD_R             (*((volatile uint32_t *)0x4002D010))
+#define QEI1_TIME_R             (*((volatile uint32_t *)0x4002D014))
+#define QEI1_COUNT_R            (*((volatile uint32_t *)0x4002D018))
+#define QEI1_SPEED_R            (*((volatile uint32_t *)0x4002D01C))
+#define QEI1_INTEN_R            (*((volatile uint32_t *)0x4002D020))
+#define QEI1_RIS_R              (*((volatile uint32_t *)0x4002D024))
+#define QEI1_ISC_R              (*((volatile uint32_t *)0x4002D028))
+
+//*****************************************************************************
+//
+// Timer registers (TIMER0)
+//
+//*****************************************************************************
+#define TIMER0_CFG_R            (*((volatile uint32_t *)0x40030000))
+#define TIMER0_TAMR_R           (*((volatile uint32_t *)0x40030004))
+#define TIMER0_TBMR_R           (*((volatile uint32_t *)0x40030008))
+#define TIMER0_CTL_R            (*((volatile uint32_t *)0x4003000C))
+#define TIMER0_SYNC_R           (*((volatile uint32_t *)0x40030010))
+#define TIMER0_IMR_R            (*((volatile uint32_t *)0x40030018))
+#define TIMER0_RIS_R            (*((volatile uint32_t *)0x4003001C))
+#define TIMER0_MIS_R            (*((volatile uint32_t *)0x40030020))
+#define TIMER0_ICR_R            (*((volatile uint32_t *)0x40030024))
+#define TIMER0_TAILR_R          (*((volatile uint32_t *)0x40030028))
+#define TIMER0_TBILR_R          (*((volatile uint32_t *)0x4003002C))
+#define TIMER0_TAMATCHR_R       (*((volatile uint32_t *)0x40030030))
+#define TIMER0_TBMATCHR_R       (*((volatile uint32_t *)0x40030034))
+#define TIMER0_TAPR_R           (*((volatile uint32_t *)0x40030038))
+#define TIMER0_TBPR_R           (*((volatile uint32_t *)0x4003003C))
+#define TIMER0_TAPMR_R          (*((volatile uint32_t *)0x40030040))
+#define TIMER0_TBPMR_R          (*((volatile uint32_t *)0x40030044))
+#define TIMER0_TAR_R            (*((volatile uint32_t *)0x40030048))
+#define TIMER0_TBR_R            (*((volatile uint32_t *)0x4003004C))
+#define TIMER0_TAV_R            (*((volatile uint32_t *)0x40030050))
+#define TIMER0_TBV_R            (*((volatile uint32_t *)0x40030054))
+#define TIMER0_RTCPD_R          (*((volatile uint32_t *)0x40030058))
+#define TIMER0_TAPS_R           (*((volatile uint32_t *)0x4003005C))
+#define TIMER0_TBPS_R           (*((volatile uint32_t *)0x40030060))
+#define TIMER0_TAPV_R           (*((volatile uint32_t *)0x40030064))
+#define TIMER0_TBPV_R           (*((volatile uint32_t *)0x40030068))
+#define TIMER0_PP_R             (*((volatile uint32_t *)0x40030FC0))
+
+//*****************************************************************************
+//
+// Timer registers (TIMER1)
+//
+//*****************************************************************************
+#define TIMER1_CFG_R            (*((volatile uint32_t *)0x40031000))
+#define TIMER1_TAMR_R           (*((volatile uint32_t *)0x40031004))
+#define TIMER1_TBMR_R           (*((volatile uint32_t *)0x40031008))
+#define TIMER1_CTL_R            (*((volatile uint32_t *)0x4003100C))
+#define TIMER1_SYNC_R           (*((volatile uint32_t *)0x40031010))
+#define TIMER1_IMR_R            (*((volatile uint32_t *)0x40031018))
+#define TIMER1_RIS_R            (*((volatile uint32_t *)0x4003101C))
+#define TIMER1_MIS_R            (*((volatile uint32_t *)0x40031020))
+#define TIMER1_ICR_R            (*((volatile uint32_t *)0x40031024))
+#define TIMER1_TAILR_R          (*((volatile uint32_t *)0x40031028))
+#define TIMER1_TBILR_R          (*((volatile uint32_t *)0x4003102C))
+#define TIMER1_TAMATCHR_R       (*((volatile uint32_t *)0x40031030))
+#define TIMER1_TBMATCHR_R       (*((volatile uint32_t *)0x40031034))
+#define TIMER1_TAPR_R           (*((volatile uint32_t *)0x40031038))
+#define TIMER1_TBPR_R           (*((volatile uint32_t *)0x4003103C))
+#define TIMER1_TAPMR_R          (*((volatile uint32_t *)0x40031040))
+#define TIMER1_TBPMR_R          (*((volatile uint32_t *)0x40031044))
+#define TIMER1_TAR_R            (*((volatile uint32_t *)0x40031048))
+#define TIMER1_TBR_R            (*((volatile uint32_t *)0x4003104C))
+#define TIMER1_TAV_R            (*((volatile uint32_t *)0x40031050))
+#define TIMER1_TBV_R            (*((volatile uint32_t *)0x40031054))
+#define TIMER1_RTCPD_R          (*((volatile uint32_t *)0x40031058))
+#define TIMER1_TAPS_R           (*((volatile uint32_t *)0x4003105C))
+#define TIMER1_TBPS_R           (*((volatile uint32_t *)0x40031060))
+#define TIMER1_TAPV_R           (*((volatile uint32_t *)0x40031064))
+#define TIMER1_TBPV_R           (*((volatile uint32_t *)0x40031068))
+#define TIMER1_PP_R             (*((volatile uint32_t *)0x40031FC0))
+
+//*****************************************************************************
+//
+// Timer registers (TIMER2)
+//
+//*****************************************************************************
+#define TIMER2_CFG_R            (*((volatile uint32_t *)0x40032000))
+#define TIMER2_TAMR_R           (*((volatile uint32_t *)0x40032004))
+#define TIMER2_TBMR_R           (*((volatile uint32_t *)0x40032008))
+#define TIMER2_CTL_R            (*((volatile uint32_t *)0x4003200C))
+#define TIMER2_SYNC_R           (*((volatile uint32_t *)0x40032010))
+#define TIMER2_IMR_R            (*((volatile uint32_t *)0x40032018))
+#define TIMER2_RIS_R            (*((volatile uint32_t *)0x4003201C))
+#define TIMER2_MIS_R            (*((volatile uint32_t *)0x40032020))
+#define TIMER2_ICR_R            (*((volatile uint32_t *)0x40032024))
+#define TIMER2_TAILR_R          (*((volatile uint32_t *)0x40032028))
+#define TIMER2_TBILR_R          (*((volatile uint32_t *)0x4003202C))
+#define TIMER2_TAMATCHR_R       (*((volatile uint32_t *)0x40032030))
+#define TIMER2_TBMATCHR_R       (*((volatile uint32_t *)0x40032034))
+#define TIMER2_TAPR_R           (*((volatile uint32_t *)0x40032038))
+#define TIMER2_TBPR_R           (*((volatile uint32_t *)0x4003203C))
+#define TIMER2_TAPMR_R          (*((volatile uint32_t *)0x40032040))
+#define TIMER2_TBPMR_R          (*((volatile uint32_t *)0x40032044))
+#define TIMER2_TAR_R            (*((volatile uint32_t *)0x40032048))
+#define TIMER2_TBR_R            (*((volatile uint32_t *)0x4003204C))
+#define TIMER2_TAV_R            (*((volatile uint32_t *)0x40032050))
+#define TIMER2_TBV_R            (*((volatile uint32_t *)0x40032054))
+#define TIMER2_RTCPD_R          (*((volatile uint32_t *)0x40032058))
+#define TIMER2_TAPS_R           (*((volatile uint32_t *)0x4003205C))
+#define TIMER2_TBPS_R           (*((volatile uint32_t *)0x40032060))
+#define TIMER2_TAPV_R           (*((volatile uint32_t *)0x40032064))
+#define TIMER2_TBPV_R           (*((volatile uint32_t *)0x40032068))
+#define TIMER2_PP_R             (*((volatile uint32_t *)0x40032FC0))
+
+//*****************************************************************************
+//
+// Timer registers (TIMER3)
+//
+//*****************************************************************************
+#define TIMER3_CFG_R            (*((volatile uint32_t *)0x40033000))
+#define TIMER3_TAMR_R           (*((volatile uint32_t *)0x40033004))
+#define TIMER3_TBMR_R           (*((volatile uint32_t *)0x40033008))
+#define TIMER3_CTL_R            (*((volatile uint32_t *)0x4003300C))
+#define TIMER3_SYNC_R           (*((volatile uint32_t *)0x40033010))
+#define TIMER3_IMR_R            (*((volatile uint32_t *)0x40033018))
+#define TIMER3_RIS_R            (*((volatile uint32_t *)0x4003301C))
+#define TIMER3_MIS_R            (*((volatile uint32_t *)0x40033020))
+#define TIMER3_ICR_R            (*((volatile uint32_t *)0x40033024))
+#define TIMER3_TAILR_R          (*((volatile uint32_t *)0x40033028))
+#define TIMER3_TBILR_R          (*((volatile uint32_t *)0x4003302C))
+#define TIMER3_TAMATCHR_R       (*((volatile uint32_t *)0x40033030))
+#define TIMER3_TBMATCHR_R       (*((volatile uint32_t *)0x40033034))
+#define TIMER3_TAPR_R           (*((volatile uint32_t *)0x40033038))
+#define TIMER3_TBPR_R           (*((volatile uint32_t *)0x4003303C))
+#define TIMER3_TAPMR_R          (*((volatile uint32_t *)0x40033040))
+#define TIMER3_TBPMR_R          (*((volatile uint32_t *)0x40033044))
+#define TIMER3_TAR_R            (*((volatile uint32_t *)0x40033048))
+#define TIMER3_TBR_R            (*((volatile uint32_t *)0x4003304C))
+#define TIMER3_TAV_R            (*((volatile uint32_t *)0x40033050))
+#define TIMER3_TBV_R            (*((volatile uint32_t *)0x40033054))
+#define TIMER3_RTCPD_R          (*((volatile uint32_t *)0x40033058))
+#define TIMER3_TAPS_R           (*((volatile uint32_t *)0x4003305C))
+#define TIMER3_TBPS_R           (*((volatile uint32_t *)0x40033060))
+#define TIMER3_TAPV_R           (*((volatile uint32_t *)0x40033064))
+#define TIMER3_TBPV_R           (*((volatile uint32_t *)0x40033068))
+#define TIMER3_PP_R             (*((volatile uint32_t *)0x40033FC0))
+
+//*****************************************************************************
+//
+// Timer registers (TIMER4)
+//
+//*****************************************************************************
+#define TIMER4_CFG_R            (*((volatile uint32_t *)0x40034000))
+#define TIMER4_TAMR_R           (*((volatile uint32_t *)0x40034004))
+#define TIMER4_TBMR_R           (*((volatile uint32_t *)0x40034008))
+#define TIMER4_CTL_R            (*((volatile uint32_t *)0x4003400C))
+#define TIMER4_SYNC_R           (*((volatile uint32_t *)0x40034010))
+#define TIMER4_IMR_R            (*((volatile uint32_t *)0x40034018))
+#define TIMER4_RIS_R            (*((volatile uint32_t *)0x4003401C))
+#define TIMER4_MIS_R            (*((volatile uint32_t *)0x40034020))
+#define TIMER4_ICR_R            (*((volatile uint32_t *)0x40034024))
+#define TIMER4_TAILR_R          (*((volatile uint32_t *)0x40034028))
+#define TIMER4_TBILR_R          (*((volatile uint32_t *)0x4003402C))
+#define TIMER4_TAMATCHR_R       (*((volatile uint32_t *)0x40034030))
+#define TIMER4_TBMATCHR_R       (*((volatile uint32_t *)0x40034034))
+#define TIMER4_TAPR_R           (*((volatile uint32_t *)0x40034038))
+#define TIMER4_TBPR_R           (*((volatile uint32_t *)0x4003403C))
+#define TIMER4_TAPMR_R          (*((volatile uint32_t *)0x40034040))
+#define TIMER4_TBPMR_R          (*((volatile uint32_t *)0x40034044))
+#define TIMER4_TAR_R            (*((volatile uint32_t *)0x40034048))
+#define TIMER4_TBR_R            (*((volatile uint32_t *)0x4003404C))
+#define TIMER4_TAV_R            (*((volatile uint32_t *)0x40034050))
+#define TIMER4_TBV_R            (*((volatile uint32_t *)0x40034054))
+#define TIMER4_RTCPD_R          (*((volatile uint32_t *)0x40034058))
+#define TIMER4_TAPS_R           (*((volatile uint32_t *)0x4003405C))
+#define TIMER4_TBPS_R           (*((volatile uint32_t *)0x40034060))
+#define TIMER4_TAPV_R           (*((volatile uint32_t *)0x40034064))
+#define TIMER4_TBPV_R           (*((volatile uint32_t *)0x40034068))
+#define TIMER4_PP_R             (*((volatile uint32_t *)0x40034FC0))
+
+//*****************************************************************************
+//
+// Timer registers (TIMER5)
+//
+//*****************************************************************************
+#define TIMER5_CFG_R            (*((volatile uint32_t *)0x40035000))
+#define TIMER5_TAMR_R           (*((volatile uint32_t *)0x40035004))
+#define TIMER5_TBMR_R           (*((volatile uint32_t *)0x40035008))
+#define TIMER5_CTL_R            (*((volatile uint32_t *)0x4003500C))
+#define TIMER5_SYNC_R           (*((volatile uint32_t *)0x40035010))
+#define TIMER5_IMR_R            (*((volatile uint32_t *)0x40035018))
+#define TIMER5_RIS_R            (*((volatile uint32_t *)0x4003501C))
+#define TIMER5_MIS_R            (*((volatile uint32_t *)0x40035020))
+#define TIMER5_ICR_R            (*((volatile uint32_t *)0x40035024))
+#define TIMER5_TAILR_R          (*((volatile uint32_t *)0x40035028))
+#define TIMER5_TBILR_R          (*((volatile uint32_t *)0x4003502C))
+#define TIMER5_TAMATCHR_R       (*((volatile uint32_t *)0x40035030))
+#define TIMER5_TBMATCHR_R       (*((volatile uint32_t *)0x40035034))
+#define TIMER5_TAPR_R           (*((volatile uint32_t *)0x40035038))
+#define TIMER5_TBPR_R           (*((volatile uint32_t *)0x4003503C))
+#define TIMER5_TAPMR_R          (*((volatile uint32_t *)0x40035040))
+#define TIMER5_TBPMR_R          (*((volatile uint32_t *)0x40035044))
+#define TIMER5_TAR_R            (*((volatile uint32_t *)0x40035048))
+#define TIMER5_TBR_R            (*((volatile uint32_t *)0x4003504C))
+#define TIMER5_TAV_R            (*((volatile uint32_t *)0x40035050))
+#define TIMER5_TBV_R            (*((volatile uint32_t *)0x40035054))
+#define TIMER5_RTCPD_R          (*((volatile uint32_t *)0x40035058))
+#define TIMER5_TAPS_R           (*((volatile uint32_t *)0x4003505C))
+#define TIMER5_TBPS_R           (*((volatile uint32_t *)0x40035060))
+#define TIMER5_TAPV_R           (*((volatile uint32_t *)0x40035064))
+#define TIMER5_TBPV_R           (*((volatile uint32_t *)0x40035068))
+#define TIMER5_PP_R             (*((volatile uint32_t *)0x40035FC0))
+
+//*****************************************************************************
+//
+// Timer registers (WTIMER0)
+//
+//*****************************************************************************
+#define WTIMER0_CFG_R           (*((volatile uint32_t *)0x40036000))
+#define WTIMER0_TAMR_R          (*((volatile uint32_t *)0x40036004))
+#define WTIMER0_TBMR_R          (*((volatile uint32_t *)0x40036008))
+#define WTIMER0_CTL_R           (*((volatile uint32_t *)0x4003600C))
+#define WTIMER0_SYNC_R          (*((volatile uint32_t *)0x40036010))
+#define WTIMER0_IMR_R           (*((volatile uint32_t *)0x40036018))
+#define WTIMER0_RIS_R           (*((volatile uint32_t *)0x4003601C))
+#define WTIMER0_MIS_R           (*((volatile uint32_t *)0x40036020))
+#define WTIMER0_ICR_R           (*((volatile uint32_t *)0x40036024))
+#define WTIMER0_TAILR_R         (*((volatile uint32_t *)0x40036028))
+#define WTIMER0_TBILR_R         (*((volatile uint32_t *)0x4003602C))
+#define WTIMER0_TAMATCHR_R      (*((volatile uint32_t *)0x40036030))
+#define WTIMER0_TBMATCHR_R      (*((volatile uint32_t *)0x40036034))
+#define WTIMER0_TAPR_R          (*((volatile uint32_t *)0x40036038))
+#define WTIMER0_TBPR_R          (*((volatile uint32_t *)0x4003603C))
+#define WTIMER0_TAPMR_R         (*((volatile uint32_t *)0x40036040))
+#define WTIMER0_TBPMR_R         (*((volatile uint32_t *)0x40036044))
+#define WTIMER0_TAR_R           (*((volatile uint32_t *)0x40036048))
+#define WTIMER0_TBR_R           (*((volatile uint32_t *)0x4003604C))
+#define WTIMER0_TAV_R           (*((volatile uint32_t *)0x40036050))
+#define WTIMER0_TBV_R           (*((volatile uint32_t *)0x40036054))
+#define WTIMER0_RTCPD_R         (*((volatile uint32_t *)0x40036058))
+#define WTIMER0_TAPS_R          (*((volatile uint32_t *)0x4003605C))
+#define WTIMER0_TBPS_R          (*((volatile uint32_t *)0x40036060))
+#define WTIMER0_TAPV_R          (*((volatile uint32_t *)0x40036064))
+#define WTIMER0_TBPV_R          (*((volatile uint32_t *)0x40036068))
+#define WTIMER0_PP_R            (*((volatile uint32_t *)0x40036FC0))
+
+//*****************************************************************************
+//
+// Timer registers (WTIMER1)
+//
+//*****************************************************************************
+#define WTIMER1_CFG_R           (*((volatile uint32_t *)0x40037000))
+#define WTIMER1_TAMR_R          (*((volatile uint32_t *)0x40037004))
+#define WTIMER1_TBMR_R          (*((volatile uint32_t *)0x40037008))
+#define WTIMER1_CTL_R           (*((volatile uint32_t *)0x4003700C))
+#define WTIMER1_SYNC_R          (*((volatile uint32_t *)0x40037010))
+#define WTIMER1_IMR_R           (*((volatile uint32_t *)0x40037018))
+#define WTIMER1_RIS_R           (*((volatile uint32_t *)0x4003701C))
+#define WTIMER1_MIS_R           (*((volatile uint32_t *)0x40037020))
+#define WTIMER1_ICR_R           (*((volatile uint32_t *)0x40037024))
+#define WTIMER1_TAILR_R         (*((volatile uint32_t *)0x40037028))
+#define WTIMER1_TBILR_R         (*((volatile uint32_t *)0x4003702C))
+#define WTIMER1_TAMATCHR_R      (*((volatile uint32_t *)0x40037030))
+#define WTIMER1_TBMATCHR_R      (*((volatile uint32_t *)0x40037034))
+#define WTIMER1_TAPR_R          (*((volatile uint32_t *)0x40037038))
+#define WTIMER1_TBPR_R          (*((volatile uint32_t *)0x4003703C))
+#define WTIMER1_TAPMR_R         (*((volatile uint32_t *)0x40037040))
+#define WTIMER1_TBPMR_R         (*((volatile uint32_t *)0x40037044))
+#define WTIMER1_TAR_R           (*((volatile uint32_t *)0x40037048))
+#define WTIMER1_TBR_R           (*((volatile uint32_t *)0x4003704C))
+#define WTIMER1_TAV_R           (*((volatile uint32_t *)0x40037050))
+#define WTIMER1_TBV_R           (*((volatile uint32_t *)0x40037054))
+#define WTIMER1_RTCPD_R         (*((volatile uint32_t *)0x40037058))
+#define WTIMER1_TAPS_R          (*((volatile uint32_t *)0x4003705C))
+#define WTIMER1_TBPS_R          (*((volatile uint32_t *)0x40037060))
+#define WTIMER1_TAPV_R          (*((volatile uint32_t *)0x40037064))
+#define WTIMER1_TBPV_R          (*((volatile uint32_t *)0x40037068))
+#define WTIMER1_PP_R            (*((volatile uint32_t *)0x40037FC0))
+
+//*****************************************************************************
+//
+// ADC registers (ADC0)
+//
+//*****************************************************************************
+#define ADC0_ACTSS_R            (*((volatile uint32_t *)0x40038000))
+#define ADC0_RIS_R              (*((volatile uint32_t *)0x40038004))
+#define ADC0_IM_R               (*((volatile uint32_t *)0x40038008))
+#define ADC0_ISC_R              (*((volatile uint32_t *)0x4003800C))
+#define ADC0_OSTAT_R            (*((volatile uint32_t *)0x40038010))
+#define ADC0_EMUX_R             (*((volatile uint32_t *)0x40038014))
+#define ADC0_USTAT_R            (*((volatile uint32_t *)0x40038018))
+#define ADC0_TSSEL_R            (*((volatile uint32_t *)0x4003801C))
+#define ADC0_SSPRI_R            (*((volatile uint32_t *)0x40038020))
+#define ADC0_SPC_R              (*((volatile uint32_t *)0x40038024))
+#define ADC0_PSSI_R             (*((volatile uint32_t *)0x40038028))
+#define ADC0_SAC_R              (*((volatile uint32_t *)0x40038030))
+#define ADC0_DCISC_R            (*((volatile uint32_t *)0x40038034))
+#define ADC0_CTL_R              (*((volatile uint32_t *)0x40038038))
+#define ADC0_SSMUX0_R           (*((volatile uint32_t *)0x40038040))
+#define ADC0_SSCTL0_R           (*((volatile uint32_t *)0x40038044))
+#define ADC0_SSFIFO0_R          (*((volatile uint32_t *)0x40038048))
+#define ADC0_SSFSTAT0_R         (*((volatile uint32_t *)0x4003804C))
+#define ADC0_SSOP0_R            (*((volatile uint32_t *)0x40038050))
+#define ADC0_SSDC0_R            (*((volatile uint32_t *)0x40038054))
+#define ADC0_SSEMUX0_R          (*((volatile uint32_t *)0x40038058))
+#define ADC0_SSMUX1_R           (*((volatile uint32_t *)0x40038060))
+#define ADC0_SSCTL1_R           (*((volatile uint32_t *)0x40038064))
+#define ADC0_SSFIFO1_R          (*((volatile uint32_t *)0x40038068))
+#define ADC0_SSFSTAT1_R         (*((volatile uint32_t *)0x4003806C))
+#define ADC0_SSOP1_R            (*((volatile uint32_t *)0x40038070))
+#define ADC0_SSDC1_R            (*((volatile uint32_t *)0x40038074))
+#define ADC0_SSEMUX1_R          (*((volatile uint32_t *)0x40038078))
+#define ADC0_SSMUX2_R           (*((volatile uint32_t *)0x40038080))
+#define ADC0_SSCTL2_R           (*((volatile uint32_t *)0x40038084))
+#define ADC0_SSFIFO2_R          (*((volatile uint32_t *)0x40038088))
+#define ADC0_SSFSTAT2_R         (*((volatile uint32_t *)0x4003808C))
+#define ADC0_SSOP2_R            (*((volatile uint32_t *)0x40038090))
+#define ADC0_SSDC2_R            (*((volatile uint32_t *)0x40038094))
+#define ADC0_SSEMUX2_R          (*((volatile uint32_t *)0x40038098))
+#define ADC0_SSMUX3_R           (*((volatile uint32_t *)0x400380A0))
+#define ADC0_SSCTL3_R           (*((volatile uint32_t *)0x400380A4))
+#define ADC0_SSFIFO3_R          (*((volatile uint32_t *)0x400380A8))
+#define ADC0_SSFSTAT3_R         (*((volatile uint32_t *)0x400380AC))
+#define ADC0_SSOP3_R            (*((volatile uint32_t *)0x400380B0))
+#define ADC0_SSDC3_R            (*((volatile uint32_t *)0x400380B4))
+#define ADC0_SSEMUX3_R          (*((volatile uint32_t *)0x400380B8))
+#define ADC0_DCRIC_R            (*((volatile uint32_t *)0x40038D00))
+#define ADC0_DCCTL0_R           (*((volatile uint32_t *)0x40038E00))
+#define ADC0_DCCTL1_R           (*((volatile uint32_t *)0x40038E04))
+#define ADC0_DCCTL2_R           (*((volatile uint32_t *)0x40038E08))
+#define ADC0_DCCTL3_R           (*((volatile uint32_t *)0x40038E0C))
+#define ADC0_DCCTL4_R           (*((volatile uint32_t *)0x40038E10))
+#define ADC0_DCCTL5_R           (*((volatile uint32_t *)0x40038E14))
+#define ADC0_DCCTL6_R           (*((volatile uint32_t *)0x40038E18))
+#define ADC0_DCCTL7_R           (*((volatile uint32_t *)0x40038E1C))
+#define ADC0_DCCMP0_R           (*((volatile uint32_t *)0x40038E40))
+#define ADC0_DCCMP1_R           (*((volatile uint32_t *)0x40038E44))
+#define ADC0_DCCMP2_R           (*((volatile uint32_t *)0x40038E48))
+#define ADC0_DCCMP3_R           (*((volatile uint32_t *)0x40038E4C))
+#define ADC0_DCCMP4_R           (*((volatile uint32_t *)0x40038E50))
+#define ADC0_DCCMP5_R           (*((volatile uint32_t *)0x40038E54))
+#define ADC0_DCCMP6_R           (*((volatile uint32_t *)0x40038E58))
+#define ADC0_DCCMP7_R           (*((volatile uint32_t *)0x40038E5C))
+#define ADC0_PP_R               (*((volatile uint32_t *)0x40038FC0))
+#define ADC0_PC_R               (*((volatile uint32_t *)0x40038FC4))
+#define ADC0_CC_R               (*((volatile uint32_t *)0x40038FC8))
+
+//*****************************************************************************
+//
+// ADC registers (ADC1)
+//
+//*****************************************************************************
+#define ADC1_ACTSS_R            (*((volatile uint32_t *)0x40039000))
+#define ADC1_RIS_R              (*((volatile uint32_t *)0x40039004))
+#define ADC1_IM_R               (*((volatile uint32_t *)0x40039008))
+#define ADC1_ISC_R              (*((volatile uint32_t *)0x4003900C))
+#define ADC1_OSTAT_R            (*((volatile uint32_t *)0x40039010))
+#define ADC1_EMUX_R             (*((volatile uint32_t *)0x40039014))
+#define ADC1_USTAT_R            (*((volatile uint32_t *)0x40039018))
+#define ADC1_TSSEL_R            (*((volatile uint32_t *)0x4003901C))
+#define ADC1_SSPRI_R            (*((volatile uint32_t *)0x40039020))
+#define ADC1_SPC_R              (*((volatile uint32_t *)0x40039024))
+#define ADC1_PSSI_R             (*((volatile uint32_t *)0x40039028))
+#define ADC1_SAC_R              (*((volatile uint32_t *)0x40039030))
+#define ADC1_DCISC_R            (*((volatile uint32_t *)0x40039034))
+#define ADC1_CTL_R              (*((volatile uint32_t *)0x40039038))
+#define ADC1_SSMUX0_R           (*((volatile uint32_t *)0x40039040))
+#define ADC1_SSCTL0_R           (*((volatile uint32_t *)0x40039044))
+#define ADC1_SSFIFO0_R          (*((volatile uint32_t *)0x40039048))
+#define ADC1_SSFSTAT0_R         (*((volatile uint32_t *)0x4003904C))
+#define ADC1_SSOP0_R            (*((volatile uint32_t *)0x40039050))
+#define ADC1_SSDC0_R            (*((volatile uint32_t *)0x40039054))
+#define ADC1_SSEMUX0_R          (*((volatile uint32_t *)0x40039058))
+#define ADC1_SSMUX1_R           (*((volatile uint32_t *)0x40039060))
+#define ADC1_SSCTL1_R           (*((volatile uint32_t *)0x40039064))
+#define ADC1_SSFIFO1_R          (*((volatile uint32_t *)0x40039068))
+#define ADC1_SSFSTAT1_R         (*((volatile uint32_t *)0x4003906C))
+#define ADC1_SSOP1_R            (*((volatile uint32_t *)0x40039070))
+#define ADC1_SSDC1_R            (*((volatile uint32_t *)0x40039074))
+#define ADC1_SSEMUX1_R          (*((volatile uint32_t *)0x40039078))
+#define ADC1_SSMUX2_R           (*((volatile uint32_t *)0x40039080))
+#define ADC1_SSCTL2_R           (*((volatile uint32_t *)0x40039084))
+#define ADC1_SSFIFO2_R          (*((volatile uint32_t *)0x40039088))
+#define ADC1_SSFSTAT2_R         (*((volatile uint32_t *)0x4003908C))
+#define ADC1_SSOP2_R            (*((volatile uint32_t *)0x40039090))
+#define ADC1_SSDC2_R            (*((volatile uint32_t *)0x40039094))
+#define ADC1_SSEMUX2_R          (*((volatile uint32_t *)0x40039098))
+#define ADC1_SSMUX3_R           (*((volatile uint32_t *)0x400390A0))
+#define ADC1_SSCTL3_R           (*((volatile uint32_t *)0x400390A4))
+#define ADC1_SSFIFO3_R          (*((volatile uint32_t *)0x400390A8))
+#define ADC1_SSFSTAT3_R         (*((volatile uint32_t *)0x400390AC))
+#define ADC1_SSOP3_R            (*((volatile uint32_t *)0x400390B0))
+#define ADC1_SSDC3_R            (*((volatile uint32_t *)0x400390B4))
+#define ADC1_SSEMUX3_R          (*((volatile uint32_t *)0x400390B8))
+#define ADC1_DCRIC_R            (*((volatile uint32_t *)0x40039D00))
+#define ADC1_DCCTL0_R           (*((volatile uint32_t *)0x40039E00))
+#define ADC1_DCCTL1_R           (*((volatile uint32_t *)0x40039E04))
+#define ADC1_DCCTL2_R           (*((volatile uint32_t *)0x40039E08))
+#define ADC1_DCCTL3_R           (*((volatile uint32_t *)0x40039E0C))
+#define ADC1_DCCTL4_R           (*((volatile uint32_t *)0x40039E10))
+#define ADC1_DCCTL5_R           (*((volatile uint32_t *)0x40039E14))
+#define ADC1_DCCTL6_R           (*((volatile uint32_t *)0x40039E18))
+#define ADC1_DCCTL7_R           (*((volatile uint32_t *)0x40039E1C))
+#define ADC1_DCCMP0_R           (*((volatile uint32_t *)0x40039E40))
+#define ADC1_DCCMP1_R           (*((volatile uint32_t *)0x40039E44))
+#define ADC1_DCCMP2_R           (*((volatile uint32_t *)0x40039E48))
+#define ADC1_DCCMP3_R           (*((volatile uint32_t *)0x40039E4C))
+#define ADC1_DCCMP4_R           (*((volatile uint32_t *)0x40039E50))
+#define ADC1_DCCMP5_R           (*((volatile uint32_t *)0x40039E54))
+#define ADC1_DCCMP6_R           (*((volatile uint32_t *)0x40039E58))
+#define ADC1_DCCMP7_R           (*((volatile uint32_t *)0x40039E5C))
+#define ADC1_PP_R               (*((volatile uint32_t *)0x40039FC0))
+#define ADC1_PC_R               (*((volatile uint32_t *)0x40039FC4))
+#define ADC1_CC_R               (*((volatile uint32_t *)0x40039FC8))
+
+//*****************************************************************************
+//
+// Comparator registers (COMP)
+//
+//*****************************************************************************
+#define COMP_ACMIS_R            (*((volatile uint32_t *)0x4003C000))
+#define COMP_ACRIS_R            (*((volatile uint32_t *)0x4003C004))
+#define COMP_ACINTEN_R          (*((volatile uint32_t *)0x4003C008))
+#define COMP_ACREFCTL_R         (*((volatile uint32_t *)0x4003C010))
+#define COMP_ACSTAT0_R          (*((volatile uint32_t *)0x4003C020))
+#define COMP_ACCTL0_R           (*((volatile uint32_t *)0x4003C024))
+#define COMP_ACSTAT1_R          (*((volatile uint32_t *)0x4003C040))
+#define COMP_ACCTL1_R           (*((volatile uint32_t *)0x4003C044))
+#define COMP_ACSTAT2_R          (*((volatile uint32_t *)0x4003C060))
+#define COMP_ACCTL2_R           (*((volatile uint32_t *)0x4003C064))
+#define COMP_PP_R               (*((volatile uint32_t *)0x4003CFC0))
+
+//*****************************************************************************
+//
+// GPIO registers (PORTJ)
+//
+//*****************************************************************************
+#define GPIO_PORTJ_DATA_BITS_R  ((volatile uint32_t *)0x4003D000)
+#define GPIO_PORTJ_DATA_R       (*((volatile uint32_t *)0x4003D3FC))
+#define GPIO_PORTJ_DIR_R        (*((volatile uint32_t *)0x4003D400))
+#define GPIO_PORTJ_IS_R         (*((volatile uint32_t *)0x4003D404))
+#define GPIO_PORTJ_IBE_R        (*((volatile uint32_t *)0x4003D408))
+#define GPIO_PORTJ_IEV_R        (*((volatile uint32_t *)0x4003D40C))
+#define GPIO_PORTJ_IM_R         (*((volatile uint32_t *)0x4003D410))
+#define GPIO_PORTJ_RIS_R        (*((volatile uint32_t *)0x4003D414))
+#define GPIO_PORTJ_MIS_R        (*((volatile uint32_t *)0x4003D418))
+#define GPIO_PORTJ_ICR_R        (*((volatile uint32_t *)0x4003D41C))
+#define GPIO_PORTJ_AFSEL_R      (*((volatile uint32_t *)0x4003D420))
+#define GPIO_PORTJ_DR2R_R       (*((volatile uint32_t *)0x4003D500))
+#define GPIO_PORTJ_DR4R_R       (*((volatile uint32_t *)0x4003D504))
+#define GPIO_PORTJ_DR8R_R       (*((volatile uint32_t *)0x4003D508))
+#define GPIO_PORTJ_ODR_R        (*((volatile uint32_t *)0x4003D50C))
+#define GPIO_PORTJ_PUR_R        (*((volatile uint32_t *)0x4003D510))
+#define GPIO_PORTJ_PDR_R        (*((volatile uint32_t *)0x4003D514))
+#define GPIO_PORTJ_SLR_R        (*((volatile uint32_t *)0x4003D518))
+#define GPIO_PORTJ_DEN_R        (*((volatile uint32_t *)0x4003D51C))
+#define GPIO_PORTJ_LOCK_R       (*((volatile uint32_t *)0x4003D520))
+#define GPIO_PORTJ_CR_R         (*((volatile uint32_t *)0x4003D524))
+#define GPIO_PORTJ_AMSEL_R      (*((volatile uint32_t *)0x4003D528))
+#define GPIO_PORTJ_PCTL_R       (*((volatile uint32_t *)0x4003D52C))
+#define GPIO_PORTJ_ADCCTL_R     (*((volatile uint32_t *)0x4003D530))
+#define GPIO_PORTJ_DMACTL_R     (*((volatile uint32_t *)0x4003D534))
+
+//*****************************************************************************
+//
+// CAN registers (CAN0)
+//
+//*****************************************************************************
+#define CAN0_CTL_R              (*((volatile uint32_t *)0x40040000))
+#define CAN0_STS_R              (*((volatile uint32_t *)0x40040004))
+#define CAN0_ERR_R              (*((volatile uint32_t *)0x40040008))
+#define CAN0_BIT_R              (*((volatile uint32_t *)0x4004000C))
+#define CAN0_INT_R              (*((volatile uint32_t *)0x40040010))
+#define CAN0_TST_R              (*((volatile uint32_t *)0x40040014))
+#define CAN0_BRPE_R             (*((volatile uint32_t *)0x40040018))
+#define CAN0_IF1CRQ_R           (*((volatile uint32_t *)0x40040020))
+#define CAN0_IF1CMSK_R          (*((volatile uint32_t *)0x40040024))
+#define CAN0_IF1MSK1_R          (*((volatile uint32_t *)0x40040028))
+#define CAN0_IF1MSK2_R          (*((volatile uint32_t *)0x4004002C))
+#define CAN0_IF1ARB1_R          (*((volatile uint32_t *)0x40040030))
+#define CAN0_IF1ARB2_R          (*((volatile uint32_t *)0x40040034))
+#define CAN0_IF1MCTL_R          (*((volatile uint32_t *)0x40040038))
+#define CAN0_IF1DA1_R           (*((volatile uint32_t *)0x4004003C))
+#define CAN0_IF1DA2_R           (*((volatile uint32_t *)0x40040040))
+#define CAN0_IF1DB1_R           (*((volatile uint32_t *)0x40040044))
+#define CAN0_IF1DB2_R           (*((volatile uint32_t *)0x40040048))
+#define CAN0_IF2CRQ_R           (*((volatile uint32_t *)0x40040080))
+#define CAN0_IF2CMSK_R          (*((volatile uint32_t *)0x40040084))
+#define CAN0_IF2MSK1_R          (*((volatile uint32_t *)0x40040088))
+#define CAN0_IF2MSK2_R          (*((volatile uint32_t *)0x4004008C))
+#define CAN0_IF2ARB1_R          (*((volatile uint32_t *)0x40040090))
+#define CAN0_IF2ARB2_R          (*((volatile uint32_t *)0x40040094))
+#define CAN0_IF2MCTL_R          (*((volatile uint32_t *)0x40040098))
+#define CAN0_IF2DA1_R           (*((volatile uint32_t *)0x4004009C))
+#define CAN0_IF2DA2_R           (*((volatile uint32_t *)0x400400A0))
+#define CAN0_IF2DB1_R           (*((volatile uint32_t *)0x400400A4))
+#define CAN0_IF2DB2_R           (*((volatile uint32_t *)0x400400A8))
+#define CAN0_TXRQ1_R            (*((volatile uint32_t *)0x40040100))
+#define CAN0_TXRQ2_R            (*((volatile uint32_t *)0x40040104))
+#define CAN0_NWDA1_R            (*((volatile uint32_t *)0x40040120))
+#define CAN0_NWDA2_R            (*((volatile uint32_t *)0x40040124))
+#define CAN0_MSG1INT_R          (*((volatile uint32_t *)0x40040140))
+#define CAN0_MSG2INT_R          (*((volatile uint32_t *)0x40040144))
+#define CAN0_MSG1VAL_R          (*((volatile uint32_t *)0x40040160))
+#define CAN0_MSG2VAL_R          (*((volatile uint32_t *)0x40040164))
+
+//*****************************************************************************
+//
+// CAN registers (CAN1)
+//
+//*****************************************************************************
+#define CAN1_CTL_R              (*((volatile uint32_t *)0x40041000))
+#define CAN1_STS_R              (*((volatile uint32_t *)0x40041004))
+#define CAN1_ERR_R              (*((volatile uint32_t *)0x40041008))
+#define CAN1_BIT_R              (*((volatile uint32_t *)0x4004100C))
+#define CAN1_INT_R              (*((volatile uint32_t *)0x40041010))
+#define CAN1_TST_R              (*((volatile uint32_t *)0x40041014))
+#define CAN1_BRPE_R             (*((volatile uint32_t *)0x40041018))
+#define CAN1_IF1CRQ_R           (*((volatile uint32_t *)0x40041020))
+#define CAN1_IF1CMSK_R          (*((volatile uint32_t *)0x40041024))
+#define CAN1_IF1MSK1_R          (*((volatile uint32_t *)0x40041028))
+#define CAN1_IF1MSK2_R          (*((volatile uint32_t *)0x4004102C))
+#define CAN1_IF1ARB1_R          (*((volatile uint32_t *)0x40041030))
+#define CAN1_IF1ARB2_R          (*((volatile uint32_t *)0x40041034))
+#define CAN1_IF1MCTL_R          (*((volatile uint32_t *)0x40041038))
+#define CAN1_IF1DA1_R           (*((volatile uint32_t *)0x4004103C))
+#define CAN1_IF1DA2_R           (*((volatile uint32_t *)0x40041040))
+#define CAN1_IF1DB1_R           (*((volatile uint32_t *)0x40041044))
+#define CAN1_IF1DB2_R           (*((volatile uint32_t *)0x40041048))
+#define CAN1_IF2CRQ_R           (*((volatile uint32_t *)0x40041080))
+#define CAN1_IF2CMSK_R          (*((volatile uint32_t *)0x40041084))
+#define CAN1_IF2MSK1_R          (*((volatile uint32_t *)0x40041088))
+#define CAN1_IF2MSK2_R          (*((volatile uint32_t *)0x4004108C))
+#define CAN1_IF2ARB1_R          (*((volatile uint32_t *)0x40041090))
+#define CAN1_IF2ARB2_R          (*((volatile uint32_t *)0x40041094))
+#define CAN1_IF2MCTL_R          (*((volatile uint32_t *)0x40041098))
+#define CAN1_IF2DA1_R           (*((volatile uint32_t *)0x4004109C))
+#define CAN1_IF2DA2_R           (*((volatile uint32_t *)0x400410A0))
+#define CAN1_IF2DB1_R           (*((volatile uint32_t *)0x400410A4))
+#define CAN1_IF2DB2_R           (*((volatile uint32_t *)0x400410A8))
+#define CAN1_TXRQ1_R            (*((volatile uint32_t *)0x40041100))
+#define CAN1_TXRQ2_R            (*((volatile uint32_t *)0x40041104))
+#define CAN1_NWDA1_R            (*((volatile uint32_t *)0x40041120))
+#define CAN1_NWDA2_R            (*((volatile uint32_t *)0x40041124))
+#define CAN1_MSG1INT_R          (*((volatile uint32_t *)0x40041140))
+#define CAN1_MSG2INT_R          (*((volatile uint32_t *)0x40041144))
+#define CAN1_MSG1VAL_R          (*((volatile uint32_t *)0x40041160))
+#define CAN1_MSG2VAL_R          (*((volatile uint32_t *)0x40041164))
+
+//*****************************************************************************
+//
+// Timer registers (WTIMER2)
+//
+//*****************************************************************************
+#define WTIMER2_CFG_R           (*((volatile uint32_t *)0x4004C000))
+#define WTIMER2_TAMR_R          (*((volatile uint32_t *)0x4004C004))
+#define WTIMER2_TBMR_R          (*((volatile uint32_t *)0x4004C008))
+#define WTIMER2_CTL_R           (*((volatile uint32_t *)0x4004C00C))
+#define WTIMER2_SYNC_R          (*((volatile uint32_t *)0x4004C010))
+#define WTIMER2_IMR_R           (*((volatile uint32_t *)0x4004C018))
+#define WTIMER2_RIS_R           (*((volatile uint32_t *)0x4004C01C))
+#define WTIMER2_MIS_R           (*((volatile uint32_t *)0x4004C020))
+#define WTIMER2_ICR_R           (*((volatile uint32_t *)0x4004C024))
+#define WTIMER2_TAILR_R         (*((volatile uint32_t *)0x4004C028))
+#define WTIMER2_TBILR_R         (*((volatile uint32_t *)0x4004C02C))
+#define WTIMER2_TAMATCHR_R      (*((volatile uint32_t *)0x4004C030))
+#define WTIMER2_TBMATCHR_R      (*((volatile uint32_t *)0x4004C034))
+#define WTIMER2_TAPR_R          (*((volatile uint32_t *)0x4004C038))
+#define WTIMER2_TBPR_R          (*((volatile uint32_t *)0x4004C03C))
+#define WTIMER2_TAPMR_R         (*((volatile uint32_t *)0x4004C040))
+#define WTIMER2_TBPMR_R         (*((volatile uint32_t *)0x4004C044))
+#define WTIMER2_TAR_R           (*((volatile uint32_t *)0x4004C048))
+#define WTIMER2_TBR_R           (*((volatile uint32_t *)0x4004C04C))
+#define WTIMER2_TAV_R           (*((volatile uint32_t *)0x4004C050))
+#define WTIMER2_TBV_R           (*((volatile uint32_t *)0x4004C054))
+#define WTIMER2_RTCPD_R         (*((volatile uint32_t *)0x4004C058))
+#define WTIMER2_TAPS_R          (*((volatile uint32_t *)0x4004C05C))
+#define WTIMER2_TBPS_R          (*((volatile uint32_t *)0x4004C060))
+#define WTIMER2_TAPV_R          (*((volatile uint32_t *)0x4004C064))
+#define WTIMER2_TBPV_R          (*((volatile uint32_t *)0x4004C068))
+#define WTIMER2_PP_R            (*((volatile uint32_t *)0x4004CFC0))
+
+//*****************************************************************************
+//
+// Timer registers (WTIMER3)
+//
+//*****************************************************************************
+#define WTIMER3_CFG_R           (*((volatile uint32_t *)0x4004D000))
+#define WTIMER3_TAMR_R          (*((volatile uint32_t *)0x4004D004))
+#define WTIMER3_TBMR_R          (*((volatile uint32_t *)0x4004D008))
+#define WTIMER3_CTL_R           (*((volatile uint32_t *)0x4004D00C))
+#define WTIMER3_SYNC_R          (*((volatile uint32_t *)0x4004D010))
+#define WTIMER3_IMR_R           (*((volatile uint32_t *)0x4004D018))
+#define WTIMER3_RIS_R           (*((volatile uint32_t *)0x4004D01C))
+#define WTIMER3_MIS_R           (*((volatile uint32_t *)0x4004D020))
+#define WTIMER3_ICR_R           (*((volatile uint32_t *)0x4004D024))
+#define WTIMER3_TAILR_R         (*((volatile uint32_t *)0x4004D028))
+#define WTIMER3_TBILR_R         (*((volatile uint32_t *)0x4004D02C))
+#define WTIMER3_TAMATCHR_R      (*((volatile uint32_t *)0x4004D030))
+#define WTIMER3_TBMATCHR_R      (*((volatile uint32_t *)0x4004D034))
+#define WTIMER3_TAPR_R          (*((volatile uint32_t *)0x4004D038))
+#define WTIMER3_TBPR_R          (*((volatile uint32_t *)0x4004D03C))
+#define WTIMER3_TAPMR_R         (*((volatile uint32_t *)0x4004D040))
+#define WTIMER3_TBPMR_R         (*((volatile uint32_t *)0x4004D044))
+#define WTIMER3_TAR_R           (*((volatile uint32_t *)0x4004D048))
+#define WTIMER3_TBR_R           (*((volatile uint32_t *)0x4004D04C))
+#define WTIMER3_TAV_R           (*((volatile uint32_t *)0x4004D050))
+#define WTIMER3_TBV_R           (*((volatile uint32_t *)0x4004D054))
+#define WTIMER3_RTCPD_R         (*((volatile uint32_t *)0x4004D058))
+#define WTIMER3_TAPS_R          (*((volatile uint32_t *)0x4004D05C))
+#define WTIMER3_TBPS_R          (*((volatile uint32_t *)0x4004D060))
+#define WTIMER3_TAPV_R          (*((volatile uint32_t *)0x4004D064))
+#define WTIMER3_TBPV_R          (*((volatile uint32_t *)0x4004D068))
+#define WTIMER3_PP_R            (*((volatile uint32_t *)0x4004DFC0))
+
+//*****************************************************************************
+//
+// Timer registers (WTIMER4)
+//
+//*****************************************************************************
+#define WTIMER4_CFG_R           (*((volatile uint32_t *)0x4004E000))
+#define WTIMER4_TAMR_R          (*((volatile uint32_t *)0x4004E004))
+#define WTIMER4_TBMR_R          (*((volatile uint32_t *)0x4004E008))
+#define WTIMER4_CTL_R           (*((volatile uint32_t *)0x4004E00C))
+#define WTIMER4_SYNC_R          (*((volatile uint32_t *)0x4004E010))
+#define WTIMER4_IMR_R           (*((volatile uint32_t *)0x4004E018))
+#define WTIMER4_RIS_R           (*((volatile uint32_t *)0x4004E01C))
+#define WTIMER4_MIS_R           (*((volatile uint32_t *)0x4004E020))
+#define WTIMER4_ICR_R           (*((volatile uint32_t *)0x4004E024))
+#define WTIMER4_TAILR_R         (*((volatile uint32_t *)0x4004E028))
+#define WTIMER4_TBILR_R         (*((volatile uint32_t *)0x4004E02C))
+#define WTIMER4_TAMATCHR_R      (*((volatile uint32_t *)0x4004E030))
+#define WTIMER4_TBMATCHR_R      (*((volatile uint32_t *)0x4004E034))
+#define WTIMER4_TAPR_R          (*((volatile uint32_t *)0x4004E038))
+#define WTIMER4_TBPR_R          (*((volatile uint32_t *)0x4004E03C))
+#define WTIMER4_TAPMR_R         (*((volatile uint32_t *)0x4004E040))
+#define WTIMER4_TBPMR_R         (*((volatile uint32_t *)0x4004E044))
+#define WTIMER4_TAR_R           (*((volatile uint32_t *)0x4004E048))
+#define WTIMER4_TBR_R           (*((volatile uint32_t *)0x4004E04C))
+#define WTIMER4_TAV_R           (*((volatile uint32_t *)0x4004E050))
+#define WTIMER4_TBV_R           (*((volatile uint32_t *)0x4004E054))
+#define WTIMER4_RTCPD_R         (*((volatile uint32_t *)0x4004E058))
+#define WTIMER4_TAPS_R          (*((volatile uint32_t *)0x4004E05C))
+#define WTIMER4_TBPS_R          (*((volatile uint32_t *)0x4004E060))
+#define WTIMER4_TAPV_R          (*((volatile uint32_t *)0x4004E064))
+#define WTIMER4_TBPV_R          (*((volatile uint32_t *)0x4004E068))
+#define WTIMER4_PP_R            (*((volatile uint32_t *)0x4004EFC0))
+
+//*****************************************************************************
+//
+// Timer registers (WTIMER5)
+//
+//*****************************************************************************
+#define WTIMER5_CFG_R           (*((volatile uint32_t *)0x4004F000))
+#define WTIMER5_TAMR_R          (*((volatile uint32_t *)0x4004F004))
+#define WTIMER5_TBMR_R          (*((volatile uint32_t *)0x4004F008))
+#define WTIMER5_CTL_R           (*((volatile uint32_t *)0x4004F00C))
+#define WTIMER5_SYNC_R          (*((volatile uint32_t *)0x4004F010))
+#define WTIMER5_IMR_R           (*((volatile uint32_t *)0x4004F018))
+#define WTIMER5_RIS_R           (*((volatile uint32_t *)0x4004F01C))
+#define WTIMER5_MIS_R           (*((volatile uint32_t *)0x4004F020))
+#define WTIMER5_ICR_R           (*((volatile uint32_t *)0x4004F024))
+#define WTIMER5_TAILR_R         (*((volatile uint32_t *)0x4004F028))
+#define WTIMER5_TBILR_R         (*((volatile uint32_t *)0x4004F02C))
+#define WTIMER5_TAMATCHR_R      (*((volatile uint32_t *)0x4004F030))
+#define WTIMER5_TBMATCHR_R      (*((volatile uint32_t *)0x4004F034))
+#define WTIMER5_TAPR_R          (*((volatile uint32_t *)0x4004F038))
+#define WTIMER5_TBPR_R          (*((volatile uint32_t *)0x4004F03C))
+#define WTIMER5_TAPMR_R         (*((volatile uint32_t *)0x4004F040))
+#define WTIMER5_TBPMR_R         (*((volatile uint32_t *)0x4004F044))
+#define WTIMER5_TAR_R           (*((volatile uint32_t *)0x4004F048))
+#define WTIMER5_TBR_R           (*((volatile uint32_t *)0x4004F04C))
+#define WTIMER5_TAV_R           (*((volatile uint32_t *)0x4004F050))
+#define WTIMER5_TBV_R           (*((volatile uint32_t *)0x4004F054))
+#define WTIMER5_RTCPD_R         (*((volatile uint32_t *)0x4004F058))
+#define WTIMER5_TAPS_R          (*((volatile uint32_t *)0x4004F05C))
+#define WTIMER5_TBPS_R          (*((volatile uint32_t *)0x4004F060))
+#define WTIMER5_TAPV_R          (*((volatile uint32_t *)0x4004F064))
+#define WTIMER5_TBPV_R          (*((volatile uint32_t *)0x4004F068))
+#define WTIMER5_PP_R            (*((volatile uint32_t *)0x4004FFC0))
+
+//*****************************************************************************
+//
+// Univeral Serial Bus registers (USB0)
+//
+//*****************************************************************************
+#define USB0_FADDR_R            (*((volatile uint8_t *)0x40050000))
+#define USB0_POWER_R            (*((volatile uint8_t *)0x40050001))
+#define USB0_TXIS_R             (*((volatile uint16_t *)0x40050002))
+#define USB0_RXIS_R             (*((volatile uint16_t *)0x40050004))
+#define USB0_TXIE_R             (*((volatile uint16_t *)0x40050006))
+#define USB0_RXIE_R             (*((volatile uint16_t *)0x40050008))
+#define USB0_IS_R               (*((volatile uint8_t *)0x4005000A))
+#define USB0_IE_R               (*((volatile uint8_t *)0x4005000B))
+#define USB0_FRAME_R            (*((volatile uint16_t *)0x4005000C))
+#define USB0_EPIDX_R            (*((volatile uint8_t *)0x4005000E))
+#define USB0_TEST_R             (*((volatile uint8_t *)0x4005000F))
+#define USB0_FIFO0_R            (*((volatile uint32_t *)0x40050020))
+#define USB0_FIFO1_R            (*((volatile uint32_t *)0x40050024))
+#define USB0_FIFO2_R            (*((volatile uint32_t *)0x40050028))
+#define USB0_FIFO3_R            (*((volatile uint32_t *)0x4005002C))
+#define USB0_FIFO4_R            (*((volatile uint32_t *)0x40050030))
+#define USB0_FIFO5_R            (*((volatile uint32_t *)0x40050034))
+#define USB0_FIFO6_R            (*((volatile uint32_t *)0x40050038))
+#define USB0_FIFO7_R            (*((volatile uint32_t *)0x4005003C))
+#define USB0_DEVCTL_R           (*((volatile uint8_t *)0x40050060))
+#define USB0_TXFIFOSZ_R         (*((volatile uint8_t *)0x40050062))
+#define USB0_RXFIFOSZ_R         (*((volatile uint8_t *)0x40050063))
+#define USB0_TXFIFOADD_R        (*((volatile uint16_t *)0x40050064))
+#define USB0_RXFIFOADD_R        (*((volatile uint16_t *)0x40050066))
+#define USB0_CONTIM_R           (*((volatile uint8_t *)0x4005007A))
+#define USB0_VPLEN_R            (*((volatile uint8_t *)0x4005007B))
+#define USB0_FSEOF_R            (*((volatile uint8_t *)0x4005007D))
+#define USB0_LSEOF_R            (*((volatile uint8_t *)0x4005007E))
+#define USB0_TXFUNCADDR0_R      (*((volatile uint8_t *)0x40050080))
+#define USB0_TXHUBADDR0_R       (*((volatile uint8_t *)0x40050082))
+#define USB0_TXHUBPORT0_R       (*((volatile uint8_t *)0x40050083))
+#define USB0_TXFUNCADDR1_R      (*((volatile uint8_t *)0x40050088))
+#define USB0_TXHUBADDR1_R       (*((volatile uint8_t *)0x4005008A))
+#define USB0_TXHUBPORT1_R       (*((volatile uint8_t *)0x4005008B))
+#define USB0_RXFUNCADDR1_R      (*((volatile uint8_t *)0x4005008C))
+#define USB0_RXHUBADDR1_R       (*((volatile uint8_t *)0x4005008E))
+#define USB0_RXHUBPORT1_R       (*((volatile uint8_t *)0x4005008F))
+#define USB0_TXFUNCADDR2_R      (*((volatile uint8_t *)0x40050090))
+#define USB0_TXHUBADDR2_R       (*((volatile uint8_t *)0x40050092))
+#define USB0_TXHUBPORT2_R       (*((volatile uint8_t *)0x40050093))
+#define USB0_RXFUNCADDR2_R      (*((volatile uint8_t *)0x40050094))
+#define USB0_RXHUBADDR2_R       (*((volatile uint8_t *)0x40050096))
+#define USB0_RXHUBPORT2_R       (*((volatile uint8_t *)0x40050097))
+#define USB0_TXFUNCADDR3_R      (*((volatile uint8_t *)0x40050098))
+#define USB0_TXHUBADDR3_R       (*((volatile uint8_t *)0x4005009A))
+#define USB0_TXHUBPORT3_R       (*((volatile uint8_t *)0x4005009B))
+#define USB0_RXFUNCADDR3_R      (*((volatile uint8_t *)0x4005009C))
+#define USB0_RXHUBADDR3_R       (*((volatile uint8_t *)0x4005009E))
+#define USB0_RXHUBPORT3_R       (*((volatile uint8_t *)0x4005009F))
+#define USB0_TXFUNCADDR4_R      (*((volatile uint8_t *)0x400500A0))
+#define USB0_TXHUBADDR4_R       (*((volatile uint8_t *)0x400500A2))
+#define USB0_TXHUBPORT4_R       (*((volatile uint8_t *)0x400500A3))
+#define USB0_RXFUNCADDR4_R      (*((volatile uint8_t *)0x400500A4))
+#define USB0_RXHUBADDR4_R       (*((volatile uint8_t *)0x400500A6))
+#define USB0_RXHUBPORT4_R       (*((volatile uint8_t *)0x400500A7))
+#define USB0_TXFUNCADDR5_R      (*((volatile uint8_t *)0x400500A8))
+#define USB0_TXHUBADDR5_R       (*((volatile uint8_t *)0x400500AA))
+#define USB0_TXHUBPORT5_R       (*((volatile uint8_t *)0x400500AB))
+#define USB0_RXFUNCADDR5_R      (*((volatile uint8_t *)0x400500AC))
+#define USB0_RXHUBADDR5_R       (*((volatile uint8_t *)0x400500AE))
+#define USB0_RXHUBPORT5_R       (*((volatile uint8_t *)0x400500AF))
+#define USB0_TXFUNCADDR6_R      (*((volatile uint8_t *)0x400500B0))
+#define USB0_TXHUBADDR6_R       (*((volatile uint8_t *)0x400500B2))
+#define USB0_TXHUBPORT6_R       (*((volatile uint8_t *)0x400500B3))
+#define USB0_RXFUNCADDR6_R      (*((volatile uint8_t *)0x400500B4))
+#define USB0_RXHUBADDR6_R       (*((volatile uint8_t *)0x400500B6))
+#define USB0_RXHUBPORT6_R       (*((volatile uint8_t *)0x400500B7))
+#define USB0_TXFUNCADDR7_R      (*((volatile uint8_t *)0x400500B8))
+#define USB0_TXHUBADDR7_R       (*((volatile uint8_t *)0x400500BA))
+#define USB0_TXHUBPORT7_R       (*((volatile uint8_t *)0x400500BB))
+#define USB0_RXFUNCADDR7_R      (*((volatile uint8_t *)0x400500BC))
+#define USB0_RXHUBADDR7_R       (*((volatile uint8_t *)0x400500BE))
+#define USB0_RXHUBPORT7_R       (*((volatile uint8_t *)0x400500BF))
+#define USB0_CSRL0_R            (*((volatile uint8_t *)0x40050102))
+#define USB0_CSRH0_R            (*((volatile uint8_t *)0x40050103))
+#define USB0_COUNT0_R           (*((volatile uint8_t *)0x40050108))
+#define USB0_TYPE0_R            (*((volatile uint8_t *)0x4005010A))
+#define USB0_NAKLMT_R           (*((volatile uint8_t *)0x4005010B))
+#define USB0_TXMAXP1_R          (*((volatile uint16_t *)0x40050110))
+#define USB0_TXCSRL1_R          (*((volatile uint8_t *)0x40050112))
+#define USB0_TXCSRH1_R          (*((volatile uint8_t *)0x40050113))
+#define USB0_RXMAXP1_R          (*((volatile uint16_t *)0x40050114))
+#define USB0_RXCSRL1_R          (*((volatile uint8_t *)0x40050116))
+#define USB0_RXCSRH1_R          (*((volatile uint8_t *)0x40050117))
+#define USB0_RXCOUNT1_R         (*((volatile uint16_t *)0x40050118))
+#define USB0_TXTYPE1_R          (*((volatile uint8_t *)0x4005011A))
+#define USB0_TXINTERVAL1_R      (*((volatile uint8_t *)0x4005011B))
+#define USB0_RXTYPE1_R          (*((volatile uint8_t *)0x4005011C))
+#define USB0_RXINTERVAL1_R      (*((volatile uint8_t *)0x4005011D))
+#define USB0_TXMAXP2_R          (*((volatile uint16_t *)0x40050120))
+#define USB0_TXCSRL2_R          (*((volatile uint8_t *)0x40050122))
+#define USB0_TXCSRH2_R          (*((volatile uint8_t *)0x40050123))
+#define USB0_RXMAXP2_R          (*((volatile uint16_t *)0x40050124))
+#define USB0_RXCSRL2_R          (*((volatile uint8_t *)0x40050126))
+#define USB0_RXCSRH2_R          (*((volatile uint8_t *)0x40050127))
+#define USB0_RXCOUNT2_R         (*((volatile uint16_t *)0x40050128))
+#define USB0_TXTYPE2_R          (*((volatile uint8_t *)0x4005012A))
+#define USB0_TXINTERVAL2_R      (*((volatile uint8_t *)0x4005012B))
+#define USB0_RXTYPE2_R          (*((volatile uint8_t *)0x4005012C))
+#define USB0_RXINTERVAL2_R      (*((volatile uint8_t *)0x4005012D))
+#define USB0_TXMAXP3_R          (*((volatile uint16_t *)0x40050130))
+#define USB0_TXCSRL3_R          (*((volatile uint8_t *)0x40050132))
+#define USB0_TXCSRH3_R          (*((volatile uint8_t *)0x40050133))
+#define USB0_RXMAXP3_R          (*((volatile uint16_t *)0x40050134))
+#define USB0_RXCSRL3_R          (*((volatile uint8_t *)0x40050136))
+#define USB0_RXCSRH3_R          (*((volatile uint8_t *)0x40050137))
+#define USB0_RXCOUNT3_R         (*((volatile uint16_t *)0x40050138))
+#define USB0_TXTYPE3_R          (*((volatile uint8_t *)0x4005013A))
+#define USB0_TXINTERVAL3_R      (*((volatile uint8_t *)0x4005013B))
+#define USB0_RXTYPE3_R          (*((volatile uint8_t *)0x4005013C))
+#define USB0_RXINTERVAL3_R      (*((volatile uint8_t *)0x4005013D))
+#define USB0_TXMAXP4_R          (*((volatile uint16_t *)0x40050140))
+#define USB0_TXCSRL4_R          (*((volatile uint8_t *)0x40050142))
+#define USB0_TXCSRH4_R          (*((volatile uint8_t *)0x40050143))
+#define USB0_RXMAXP4_R          (*((volatile uint16_t *)0x40050144))
+#define USB0_RXCSRL4_R          (*((volatile uint8_t *)0x40050146))
+#define USB0_RXCSRH4_R          (*((volatile uint8_t *)0x40050147))
+#define USB0_RXCOUNT4_R         (*((volatile uint16_t *)0x40050148))
+#define USB0_TXTYPE4_R          (*((volatile uint8_t *)0x4005014A))
+#define USB0_TXINTERVAL4_R      (*((volatile uint8_t *)0x4005014B))
+#define USB0_RXTYPE4_R          (*((volatile uint8_t *)0x4005014C))
+#define USB0_RXINTERVAL4_R      (*((volatile uint8_t *)0x4005014D))
+#define USB0_TXMAXP5_R          (*((volatile uint16_t *)0x40050150))
+#define USB0_TXCSRL5_R          (*((volatile uint8_t *)0x40050152))
+#define USB0_TXCSRH5_R          (*((volatile uint8_t *)0x40050153))
+#define USB0_RXMAXP5_R          (*((volatile uint16_t *)0x40050154))
+#define USB0_RXCSRL5_R          (*((volatile uint8_t *)0x40050156))
+#define USB0_RXCSRH5_R          (*((volatile uint8_t *)0x40050157))
+#define USB0_RXCOUNT5_R         (*((volatile uint16_t *)0x40050158))
+#define USB0_TXTYPE5_R          (*((volatile uint8_t *)0x4005015A))
+#define USB0_TXINTERVAL5_R      (*((volatile uint8_t *)0x4005015B))
+#define USB0_RXTYPE5_R          (*((volatile uint8_t *)0x4005015C))
+#define USB0_RXINTERVAL5_R      (*((volatile uint8_t *)0x4005015D))
+#define USB0_TXMAXP6_R          (*((volatile uint16_t *)0x40050160))
+#define USB0_TXCSRL6_R          (*((volatile uint8_t *)0x40050162))
+#define USB0_TXCSRH6_R          (*((volatile uint8_t *)0x40050163))
+#define USB0_RXMAXP6_R          (*((volatile uint16_t *)0x40050164))
+#define USB0_RXCSRL6_R          (*((volatile uint8_t *)0x40050166))
+#define USB0_RXCSRH6_R          (*((volatile uint8_t *)0x40050167))
+#define USB0_RXCOUNT6_R         (*((volatile uint16_t *)0x40050168))
+#define USB0_TXTYPE6_R          (*((volatile uint8_t *)0x4005016A))
+#define USB0_TXINTERVAL6_R      (*((volatile uint8_t *)0x4005016B))
+#define USB0_RXTYPE6_R          (*((volatile uint8_t *)0x4005016C))
+#define USB0_RXINTERVAL6_R      (*((volatile uint8_t *)0x4005016D))
+#define USB0_TXMAXP7_R          (*((volatile uint16_t *)0x40050170))
+#define USB0_TXCSRL7_R          (*((volatile uint8_t *)0x40050172))
+#define USB0_TXCSRH7_R          (*((volatile uint8_t *)0x40050173))
+#define USB0_RXMAXP7_R          (*((volatile uint16_t *)0x40050174))
+#define USB0_RXCSRL7_R          (*((volatile uint8_t *)0x40050176))
+#define USB0_RXCSRH7_R          (*((volatile uint8_t *)0x40050177))
+#define USB0_RXCOUNT7_R         (*((volatile uint16_t *)0x40050178))
+#define USB0_TXTYPE7_R          (*((volatile uint8_t *)0x4005017A))
+#define USB0_TXINTERVAL7_R      (*((volatile uint8_t *)0x4005017B))
+#define USB0_RXTYPE7_R          (*((volatile uint8_t *)0x4005017C))
+#define USB0_RXINTERVAL7_R      (*((volatile uint8_t *)0x4005017D))
+#define USB0_RQPKTCOUNT1_R      (*((volatile uint16_t *)0x40050304))
+#define USB0_RQPKTCOUNT2_R      (*((volatile uint16_t *)0x40050308))
+#define USB0_RQPKTCOUNT3_R      (*((volatile uint16_t *)0x4005030C))
+#define USB0_RQPKTCOUNT4_R      (*((volatile uint16_t *)0x40050310))
+#define USB0_RQPKTCOUNT5_R      (*((volatile uint16_t *)0x40050314))
+#define USB0_RQPKTCOUNT6_R      (*((volatile uint16_t *)0x40050318))
+#define USB0_RQPKTCOUNT7_R      (*((volatile uint16_t *)0x4005031C))
+#define USB0_RXDPKTBUFDIS_R     (*((volatile uint16_t *)0x40050340))
+#define USB0_TXDPKTBUFDIS_R     (*((volatile uint16_t *)0x40050342))
+#define USB0_EPC_R              (*((volatile uint32_t *)0x40050400))
+#define USB0_EPCRIS_R           (*((volatile uint32_t *)0x40050404))
+#define USB0_EPCIM_R            (*((volatile uint32_t *)0x40050408))
+#define USB0_EPCISC_R           (*((volatile uint32_t *)0x4005040C))
+#define USB0_DRRIS_R            (*((volatile uint32_t *)0x40050410))
+#define USB0_DRIM_R             (*((volatile uint32_t *)0x40050414))
+#define USB0_DRISC_R            (*((volatile uint32_t *)0x40050418))
+#define USB0_GPCS_R             (*((volatile uint32_t *)0x4005041C))
+#define USB0_VDC_R              (*((volatile uint32_t *)0x40050430))
+#define USB0_VDCRIS_R           (*((volatile uint32_t *)0x40050434))
+#define USB0_VDCIM_R            (*((volatile uint32_t *)0x40050438))
+#define USB0_VDCISC_R           (*((volatile uint32_t *)0x4005043C))
+#define USB0_IDVRIS_R           (*((volatile uint32_t *)0x40050444))
+#define USB0_IDVIM_R            (*((volatile uint32_t *)0x40050448))
+#define USB0_IDVISC_R           (*((volatile uint32_t *)0x4005044C))
+#define USB0_DMASEL_R           (*((volatile uint32_t *)0x40050450))
+#define USB0_PP_R               (*((volatile uint32_t *)0x40050FC0))
+
+//*****************************************************************************
+//
+// GPIO registers (PORTA AHB)
+//
+//*****************************************************************************
+#define GPIO_PORTA_AHB_DATA_BITS_R                                            \
+                                ((volatile uint32_t *)0x40058000)
+#define GPIO_PORTA_AHB_DATA_R   (*((volatile uint32_t *)0x400583FC))
+#define GPIO_PORTA_AHB_DIR_R    (*((volatile uint32_t *)0x40058400))
+#define GPIO_PORTA_AHB_IS_R     (*((volatile uint32_t *)0x40058404))
+#define GPIO_PORTA_AHB_IBE_R    (*((volatile uint32_t *)0x40058408))
+#define GPIO_PORTA_AHB_IEV_R    (*((volatile uint32_t *)0x4005840C))
+#define GPIO_PORTA_AHB_IM_R     (*((volatile uint32_t *)0x40058410))
+#define GPIO_PORTA_AHB_RIS_R    (*((volatile uint32_t *)0x40058414))
+#define GPIO_PORTA_AHB_MIS_R    (*((volatile uint32_t *)0x40058418))
+#define GPIO_PORTA_AHB_ICR_R    (*((volatile uint32_t *)0x4005841C))
+#define GPIO_PORTA_AHB_AFSEL_R  (*((volatile uint32_t *)0x40058420))
+#define GPIO_PORTA_AHB_DR2R_R   (*((volatile uint32_t *)0x40058500))
+#define GPIO_PORTA_AHB_DR4R_R   (*((volatile uint32_t *)0x40058504))
+#define GPIO_PORTA_AHB_DR8R_R   (*((volatile uint32_t *)0x40058508))
+#define GPIO_PORTA_AHB_ODR_R    (*((volatile uint32_t *)0x4005850C))
+#define GPIO_PORTA_AHB_PUR_R    (*((volatile uint32_t *)0x40058510))
+#define GPIO_PORTA_AHB_PDR_R    (*((volatile uint32_t *)0x40058514))
+#define GPIO_PORTA_AHB_SLR_R    (*((volatile uint32_t *)0x40058518))
+#define GPIO_PORTA_AHB_DEN_R    (*((volatile uint32_t *)0x4005851C))
+#define GPIO_PORTA_AHB_LOCK_R   (*((volatile uint32_t *)0x40058520))
+#define GPIO_PORTA_AHB_CR_R     (*((volatile uint32_t *)0x40058524))
+#define GPIO_PORTA_AHB_AMSEL_R  (*((volatile uint32_t *)0x40058528))
+#define GPIO_PORTA_AHB_PCTL_R   (*((volatile uint32_t *)0x4005852C))
+#define GPIO_PORTA_AHB_ADCCTL_R (*((volatile uint32_t *)0x40058530))
+#define GPIO_PORTA_AHB_DMACTL_R (*((volatile uint32_t *)0x40058534))
+
+//*****************************************************************************
+//
+// GPIO registers (PORTB AHB)
+//
+//*****************************************************************************
+#define GPIO_PORTB_AHB_DATA_BITS_R                                            \
+                                ((volatile uint32_t *)0x40059000)
+#define GPIO_PORTB_AHB_DATA_R   (*((volatile uint32_t *)0x400593FC))
+#define GPIO_PORTB_AHB_DIR_R    (*((volatile uint32_t *)0x40059400))
+#define GPIO_PORTB_AHB_IS_R     (*((volatile uint32_t *)0x40059404))
+#define GPIO_PORTB_AHB_IBE_R    (*((volatile uint32_t *)0x40059408))
+#define GPIO_PORTB_AHB_IEV_R    (*((volatile uint32_t *)0x4005940C))
+#define GPIO_PORTB_AHB_IM_R     (*((volatile uint32_t *)0x40059410))
+#define GPIO_PORTB_AHB_RIS_R    (*((volatile uint32_t *)0x40059414))
+#define GPIO_PORTB_AHB_MIS_R    (*((volatile uint32_t *)0x40059418))
+#define GPIO_PORTB_AHB_ICR_R    (*((volatile uint32_t *)0x4005941C))
+#define GPIO_PORTB_AHB_AFSEL_R  (*((volatile uint32_t *)0x40059420))
+#define GPIO_PORTB_AHB_DR2R_R   (*((volatile uint32_t *)0x40059500))
+#define GPIO_PORTB_AHB_DR4R_R   (*((volatile uint32_t *)0x40059504))
+#define GPIO_PORTB_AHB_DR8R_R   (*((volatile uint32_t *)0x40059508))
+#define GPIO_PORTB_AHB_ODR_R    (*((volatile uint32_t *)0x4005950C))
+#define GPIO_PORTB_AHB_PUR_R    (*((volatile uint32_t *)0x40059510))
+#define GPIO_PORTB_AHB_PDR_R    (*((volatile uint32_t *)0x40059514))
+#define GPIO_PORTB_AHB_SLR_R    (*((volatile uint32_t *)0x40059518))
+#define GPIO_PORTB_AHB_DEN_R    (*((volatile uint32_t *)0x4005951C))
+#define GPIO_PORTB_AHB_LOCK_R   (*((volatile uint32_t *)0x40059520))
+#define GPIO_PORTB_AHB_CR_R     (*((volatile uint32_t *)0x40059524))
+#define GPIO_PORTB_AHB_AMSEL_R  (*((volatile uint32_t *)0x40059528))
+#define GPIO_PORTB_AHB_PCTL_R   (*((volatile uint32_t *)0x4005952C))
+#define GPIO_PORTB_AHB_ADCCTL_R (*((volatile uint32_t *)0x40059530))
+#define GPIO_PORTB_AHB_DMACTL_R (*((volatile uint32_t *)0x40059534))
+
+//*****************************************************************************
+//
+// GPIO registers (PORTC AHB)
+//
+//*****************************************************************************
+#define GPIO_PORTC_AHB_DATA_BITS_R                                            \
+                                ((volatile uint32_t *)0x4005A000)
+#define GPIO_PORTC_AHB_DATA_R   (*((volatile uint32_t *)0x4005A3FC))
+#define GPIO_PORTC_AHB_DIR_R    (*((volatile uint32_t *)0x4005A400))
+#define GPIO_PORTC_AHB_IS_R     (*((volatile uint32_t *)0x4005A404))
+#define GPIO_PORTC_AHB_IBE_R    (*((volatile uint32_t *)0x4005A408))
+#define GPIO_PORTC_AHB_IEV_R    (*((volatile uint32_t *)0x4005A40C))
+#define GPIO_PORTC_AHB_IM_R     (*((volatile uint32_t *)0x4005A410))
+#define GPIO_PORTC_AHB_RIS_R    (*((volatile uint32_t *)0x4005A414))
+#define GPIO_PORTC_AHB_MIS_R    (*((volatile uint32_t *)0x4005A418))
+#define GPIO_PORTC_AHB_ICR_R    (*((volatile uint32_t *)0x4005A41C))
+#define GPIO_PORTC_AHB_AFSEL_R  (*((volatile uint32_t *)0x4005A420))
+#define GPIO_PORTC_AHB_DR2R_R   (*((volatile uint32_t *)0x4005A500))
+#define GPIO_PORTC_AHB_DR4R_R   (*((volatile uint32_t *)0x4005A504))
+#define GPIO_PORTC_AHB_DR8R_R   (*((volatile uint32_t *)0x4005A508))
+#define GPIO_PORTC_AHB_ODR_R    (*((volatile uint32_t *)0x4005A50C))
+#define GPIO_PORTC_AHB_PUR_R    (*((volatile uint32_t *)0x4005A510))
+#define GPIO_PORTC_AHB_PDR_R    (*((volatile uint32_t *)0x4005A514))
+#define GPIO_PORTC_AHB_SLR_R    (*((volatile uint32_t *)0x4005A518))
+#define GPIO_PORTC_AHB_DEN_R    (*((volatile uint32_t *)0x4005A51C))
+#define GPIO_PORTC_AHB_LOCK_R   (*((volatile uint32_t *)0x4005A520))
+#define GPIO_PORTC_AHB_CR_R     (*((volatile uint32_t *)0x4005A524))
+#define GPIO_PORTC_AHB_AMSEL_R  (*((volatile uint32_t *)0x4005A528))
+#define GPIO_PORTC_AHB_PCTL_R   (*((volatile uint32_t *)0x4005A52C))
+#define GPIO_PORTC_AHB_ADCCTL_R (*((volatile uint32_t *)0x4005A530))
+#define GPIO_PORTC_AHB_DMACTL_R (*((volatile uint32_t *)0x4005A534))
+
+//*****************************************************************************
+//
+// GPIO registers (PORTD AHB)
+//
+//*****************************************************************************
+#define GPIO_PORTD_AHB_DATA_BITS_R                                            \
+                                ((volatile uint32_t *)0x4005B000)
+#define GPIO_PORTD_AHB_DATA_R   (*((volatile uint32_t *)0x4005B3FC))
+#define GPIO_PORTD_AHB_DIR_R    (*((volatile uint32_t *)0x4005B400))
+#define GPIO_PORTD_AHB_IS_R     (*((volatile uint32_t *)0x4005B404))
+#define GPIO_PORTD_AHB_IBE_R    (*((volatile uint32_t *)0x4005B408))
+#define GPIO_PORTD_AHB_IEV_R    (*((volatile uint32_t *)0x4005B40C))
+#define GPIO_PORTD_AHB_IM_R     (*((volatile uint32_t *)0x4005B410))
+#define GPIO_PORTD_AHB_RIS_R    (*((volatile uint32_t *)0x4005B414))
+#define GPIO_PORTD_AHB_MIS_R    (*((volatile uint32_t *)0x4005B418))
+#define GPIO_PORTD_AHB_ICR_R    (*((volatile uint32_t *)0x4005B41C))
+#define GPIO_PORTD_AHB_AFSEL_R  (*((volatile uint32_t *)0x4005B420))
+#define GPIO_PORTD_AHB_DR2R_R   (*((volatile uint32_t *)0x4005B500))
+#define GPIO_PORTD_AHB_DR4R_R   (*((volatile uint32_t *)0x4005B504))
+#define GPIO_PORTD_AHB_DR8R_R   (*((volatile uint32_t *)0x4005B508))
+#define GPIO_PORTD_AHB_ODR_R    (*((volatile uint32_t *)0x4005B50C))
+#define GPIO_PORTD_AHB_PUR_R    (*((volatile uint32_t *)0x4005B510))
+#define GPIO_PORTD_AHB_PDR_R    (*((volatile uint32_t *)0x4005B514))
+#define GPIO_PORTD_AHB_SLR_R    (*((volatile uint32_t *)0x4005B518))
+#define GPIO_PORTD_AHB_DEN_R    (*((volatile uint32_t *)0x4005B51C))
+#define GPIO_PORTD_AHB_LOCK_R   (*((volatile uint32_t *)0x4005B520))
+#define GPIO_PORTD_AHB_CR_R     (*((volatile uint32_t *)0x4005B524))
+#define GPIO_PORTD_AHB_AMSEL_R  (*((volatile uint32_t *)0x4005B528))
+#define GPIO_PORTD_AHB_PCTL_R   (*((volatile uint32_t *)0x4005B52C))
+#define GPIO_PORTD_AHB_ADCCTL_R (*((volatile uint32_t *)0x4005B530))
+#define GPIO_PORTD_AHB_DMACTL_R (*((volatile uint32_t *)0x4005B534))
+
+//*****************************************************************************
+//
+// GPIO registers (PORTE AHB)
+//
+//*****************************************************************************
+#define GPIO_PORTE_AHB_DATA_BITS_R                                            \
+                                ((volatile uint32_t *)0x4005C000)
+#define GPIO_PORTE_AHB_DATA_R   (*((volatile uint32_t *)0x4005C3FC))
+#define GPIO_PORTE_AHB_DIR_R    (*((volatile uint32_t *)0x4005C400))
+#define GPIO_PORTE_AHB_IS_R     (*((volatile uint32_t *)0x4005C404))
+#define GPIO_PORTE_AHB_IBE_R    (*((volatile uint32_t *)0x4005C408))
+#define GPIO_PORTE_AHB_IEV_R    (*((volatile uint32_t *)0x4005C40C))
+#define GPIO_PORTE_AHB_IM_R     (*((volatile uint32_t *)0x4005C410))
+#define GPIO_PORTE_AHB_RIS_R    (*((volatile uint32_t *)0x4005C414))
+#define GPIO_PORTE_AHB_MIS_R    (*((volatile uint32_t *)0x4005C418))
+#define GPIO_PORTE_AHB_ICR_R    (*((volatile uint32_t *)0x4005C41C))
+#define GPIO_PORTE_AHB_AFSEL_R  (*((volatile uint32_t *)0x4005C420))
+#define GPIO_PORTE_AHB_DR2R_R   (*((volatile uint32_t *)0x4005C500))
+#define GPIO_PORTE_AHB_DR4R_R   (*((volatile uint32_t *)0x4005C504))
+#define GPIO_PORTE_AHB_DR8R_R   (*((volatile uint32_t *)0x4005C508))
+#define GPIO_PORTE_AHB_ODR_R    (*((volatile uint32_t *)0x4005C50C))
+#define GPIO_PORTE_AHB_PUR_R    (*((volatile uint32_t *)0x4005C510))
+#define GPIO_PORTE_AHB_PDR_R    (*((volatile uint32_t *)0x4005C514))
+#define GPIO_PORTE_AHB_SLR_R    (*((volatile uint32_t *)0x4005C518))
+#define GPIO_PORTE_AHB_DEN_R    (*((volatile uint32_t *)0x4005C51C))
+#define GPIO_PORTE_AHB_LOCK_R   (*((volatile uint32_t *)0x4005C520))
+#define GPIO_PORTE_AHB_CR_R     (*((volatile uint32_t *)0x4005C524))
+#define GPIO_PORTE_AHB_AMSEL_R  (*((volatile uint32_t *)0x4005C528))
+#define GPIO_PORTE_AHB_PCTL_R   (*((volatile uint32_t *)0x4005C52C))
+#define GPIO_PORTE_AHB_ADCCTL_R (*((volatile uint32_t *)0x4005C530))
+#define GPIO_PORTE_AHB_DMACTL_R (*((volatile uint32_t *)0x4005C534))
+
+//*****************************************************************************
+//
+// GPIO registers (PORTF AHB)
+//
+//*****************************************************************************
+#define GPIO_PORTF_AHB_DATA_BITS_R                                            \
+                                ((volatile uint32_t *)0x4005D000)
+#define GPIO_PORTF_AHB_DATA_R   (*((volatile uint32_t *)0x4005D3FC))
+#define GPIO_PORTF_AHB_DIR_R    (*((volatile uint32_t *)0x4005D400))
+#define GPIO_PORTF_AHB_IS_R     (*((volatile uint32_t *)0x4005D404))
+#define GPIO_PORTF_AHB_IBE_R    (*((volatile uint32_t *)0x4005D408))
+#define GPIO_PORTF_AHB_IEV_R    (*((volatile uint32_t *)0x4005D40C))
+#define GPIO_PORTF_AHB_IM_R     (*((volatile uint32_t *)0x4005D410))
+#define GPIO_PORTF_AHB_RIS_R    (*((volatile uint32_t *)0x4005D414))
+#define GPIO_PORTF_AHB_MIS_R    (*((volatile uint32_t *)0x4005D418))
+#define GPIO_PORTF_AHB_ICR_R    (*((volatile uint32_t *)0x4005D41C))
+#define GPIO_PORTF_AHB_AFSEL_R  (*((volatile uint32_t *)0x4005D420))
+#define GPIO_PORTF_AHB_DR2R_R   (*((volatile uint32_t *)0x4005D500))
+#define GPIO_PORTF_AHB_DR4R_R   (*((volatile uint32_t *)0x4005D504))
+#define GPIO_PORTF_AHB_DR8R_R   (*((volatile uint32_t *)0x4005D508))
+#define GPIO_PORTF_AHB_ODR_R    (*((volatile uint32_t *)0x4005D50C))
+#define GPIO_PORTF_AHB_PUR_R    (*((volatile uint32_t *)0x4005D510))
+#define GPIO_PORTF_AHB_PDR_R    (*((volatile uint32_t *)0x4005D514))
+#define GPIO_PORTF_AHB_SLR_R    (*((volatile uint32_t *)0x4005D518))
+#define GPIO_PORTF_AHB_DEN_R    (*((volatile uint32_t *)0x4005D51C))
+#define GPIO_PORTF_AHB_LOCK_R   (*((volatile uint32_t *)0x4005D520))
+#define GPIO_PORTF_AHB_CR_R     (*((volatile uint32_t *)0x4005D524))
+#define GPIO_PORTF_AHB_AMSEL_R  (*((volatile uint32_t *)0x4005D528))
+#define GPIO_PORTF_AHB_PCTL_R   (*((volatile uint32_t *)0x4005D52C))
+#define GPIO_PORTF_AHB_ADCCTL_R (*((volatile uint32_t *)0x4005D530))
+#define GPIO_PORTF_AHB_DMACTL_R (*((volatile uint32_t *)0x4005D534))
+
+//*****************************************************************************
+//
+// GPIO registers (PORTG AHB)
+//
+//*****************************************************************************
+#define GPIO_PORTG_AHB_DATA_BITS_R                                            \
+                                ((volatile uint32_t *)0x4005E000)
+#define GPIO_PORTG_AHB_DATA_R   (*((volatile uint32_t *)0x4005E3FC))
+#define GPIO_PORTG_AHB_DIR_R    (*((volatile uint32_t *)0x4005E400))
+#define GPIO_PORTG_AHB_IS_R     (*((volatile uint32_t *)0x4005E404))
+#define GPIO_PORTG_AHB_IBE_R    (*((volatile uint32_t *)0x4005E408))
+#define GPIO_PORTG_AHB_IEV_R    (*((volatile uint32_t *)0x4005E40C))
+#define GPIO_PORTG_AHB_IM_R     (*((volatile uint32_t *)0x4005E410))
+#define GPIO_PORTG_AHB_RIS_R    (*((volatile uint32_t *)0x4005E414))
+#define GPIO_PORTG_AHB_MIS_R    (*((volatile uint32_t *)0x4005E418))
+#define GPIO_PORTG_AHB_ICR_R    (*((volatile uint32_t *)0x4005E41C))
+#define GPIO_PORTG_AHB_AFSEL_R  (*((volatile uint32_t *)0x4005E420))
+#define GPIO_PORTG_AHB_DR2R_R   (*((volatile uint32_t *)0x4005E500))
+#define GPIO_PORTG_AHB_DR4R_R   (*((volatile uint32_t *)0x4005E504))
+#define GPIO_PORTG_AHB_DR8R_R   (*((volatile uint32_t *)0x4005E508))
+#define GPIO_PORTG_AHB_ODR_R    (*((volatile uint32_t *)0x4005E50C))
+#define GPIO_PORTG_AHB_PUR_R    (*((volatile uint32_t *)0x4005E510))
+#define GPIO_PORTG_AHB_PDR_R    (*((volatile uint32_t *)0x4005E514))
+#define GPIO_PORTG_AHB_SLR_R    (*((volatile uint32_t *)0x4005E518))
+#define GPIO_PORTG_AHB_DEN_R    (*((volatile uint32_t *)0x4005E51C))
+#define GPIO_PORTG_AHB_LOCK_R   (*((volatile uint32_t *)0x4005E520))
+#define GPIO_PORTG_AHB_CR_R     (*((volatile uint32_t *)0x4005E524))
+#define GPIO_PORTG_AHB_AMSEL_R  (*((volatile uint32_t *)0x4005E528))
+#define GPIO_PORTG_AHB_PCTL_R   (*((volatile uint32_t *)0x4005E52C))
+#define GPIO_PORTG_AHB_ADCCTL_R (*((volatile uint32_t *)0x4005E530))
+#define GPIO_PORTG_AHB_DMACTL_R (*((volatile uint32_t *)0x4005E534))
+
+//*****************************************************************************
+//
+// GPIO registers (PORTH AHB)
+//
+//*****************************************************************************
+#define GPIO_PORTH_AHB_DATA_BITS_R                                            \
+                                ((volatile uint32_t *)0x4005F000)
+#define GPIO_PORTH_AHB_DATA_R   (*((volatile uint32_t *)0x4005F3FC))
+#define GPIO_PORTH_AHB_DIR_R    (*((volatile uint32_t *)0x4005F400))
+#define GPIO_PORTH_AHB_IS_R     (*((volatile uint32_t *)0x4005F404))
+#define GPIO_PORTH_AHB_IBE_R    (*((volatile uint32_t *)0x4005F408))
+#define GPIO_PORTH_AHB_IEV_R    (*((volatile uint32_t *)0x4005F40C))
+#define GPIO_PORTH_AHB_IM_R     (*((volatile uint32_t *)0x4005F410))
+#define GPIO_PORTH_AHB_RIS_R    (*((volatile uint32_t *)0x4005F414))
+#define GPIO_PORTH_AHB_MIS_R    (*((volatile uint32_t *)0x4005F418))
+#define GPIO_PORTH_AHB_ICR_R    (*((volatile uint32_t *)0x4005F41C))
+#define GPIO_PORTH_AHB_AFSEL_R  (*((volatile uint32_t *)0x4005F420))
+#define GPIO_PORTH_AHB_DR2R_R   (*((volatile uint32_t *)0x4005F500))
+#define GPIO_PORTH_AHB_DR4R_R   (*((volatile uint32_t *)0x4005F504))
+#define GPIO_PORTH_AHB_DR8R_R   (*((volatile uint32_t *)0x4005F508))
+#define GPIO_PORTH_AHB_ODR_R    (*((volatile uint32_t *)0x4005F50C))
+#define GPIO_PORTH_AHB_PUR_R    (*((volatile uint32_t *)0x4005F510))
+#define GPIO_PORTH_AHB_PDR_R    (*((volatile uint32_t *)0x4005F514))
+#define GPIO_PORTH_AHB_SLR_R    (*((volatile uint32_t *)0x4005F518))
+#define GPIO_PORTH_AHB_DEN_R    (*((volatile uint32_t *)0x4005F51C))
+#define GPIO_PORTH_AHB_LOCK_R   (*((volatile uint32_t *)0x4005F520))
+#define GPIO_PORTH_AHB_CR_R     (*((volatile uint32_t *)0x4005F524))
+#define GPIO_PORTH_AHB_AMSEL_R  (*((volatile uint32_t *)0x4005F528))
+#define GPIO_PORTH_AHB_PCTL_R   (*((volatile uint32_t *)0x4005F52C))
+#define GPIO_PORTH_AHB_ADCCTL_R (*((volatile uint32_t *)0x4005F530))
+#define GPIO_PORTH_AHB_DMACTL_R (*((volatile uint32_t *)0x4005F534))
+
+//*****************************************************************************
+//
+// GPIO registers (PORTJ AHB)
+//
+//*****************************************************************************
+#define GPIO_PORTJ_AHB_DATA_BITS_R                                            \
+                                ((volatile uint32_t *)0x40060000)
+#define GPIO_PORTJ_AHB_DATA_R   (*((volatile uint32_t *)0x400603FC))
+#define GPIO_PORTJ_AHB_DIR_R    (*((volatile uint32_t *)0x40060400))
+#define GPIO_PORTJ_AHB_IS_R     (*((volatile uint32_t *)0x40060404))
+#define GPIO_PORTJ_AHB_IBE_R    (*((volatile uint32_t *)0x40060408))
+#define GPIO_PORTJ_AHB_IEV_R    (*((volatile uint32_t *)0x4006040C))
+#define GPIO_PORTJ_AHB_IM_R     (*((volatile uint32_t *)0x40060410))
+#define GPIO_PORTJ_AHB_RIS_R    (*((volatile uint32_t *)0x40060414))
+#define GPIO_PORTJ_AHB_MIS_R    (*((volatile uint32_t *)0x40060418))
+#define GPIO_PORTJ_AHB_ICR_R    (*((volatile uint32_t *)0x4006041C))
+#define GPIO_PORTJ_AHB_AFSEL_R  (*((volatile uint32_t *)0x40060420))
+#define GPIO_PORTJ_AHB_DR2R_R   (*((volatile uint32_t *)0x40060500))
+#define GPIO_PORTJ_AHB_DR4R_R   (*((volatile uint32_t *)0x40060504))
+#define GPIO_PORTJ_AHB_DR8R_R   (*((volatile uint32_t *)0x40060508))
+#define GPIO_PORTJ_AHB_ODR_R    (*((volatile uint32_t *)0x4006050C))
+#define GPIO_PORTJ_AHB_PUR_R    (*((volatile uint32_t *)0x40060510))
+#define GPIO_PORTJ_AHB_PDR_R    (*((volatile uint32_t *)0x40060514))
+#define GPIO_PORTJ_AHB_SLR_R    (*((volatile uint32_t *)0x40060518))
+#define GPIO_PORTJ_AHB_DEN_R    (*((volatile uint32_t *)0x4006051C))
+#define GPIO_PORTJ_AHB_LOCK_R   (*((volatile uint32_t *)0x40060520))
+#define GPIO_PORTJ_AHB_CR_R     (*((volatile uint32_t *)0x40060524))
+#define GPIO_PORTJ_AHB_AMSEL_R  (*((volatile uint32_t *)0x40060528))
+#define GPIO_PORTJ_AHB_PCTL_R   (*((volatile uint32_t *)0x4006052C))
+#define GPIO_PORTJ_AHB_ADCCTL_R (*((volatile uint32_t *)0x40060530))
+#define GPIO_PORTJ_AHB_DMACTL_R (*((volatile uint32_t *)0x40060534))
+
+//*****************************************************************************
+//
+// GPIO registers (PORTK)
+//
+//*****************************************************************************
+#define GPIO_PORTK_DATA_BITS_R  ((volatile uint32_t *)0x40061000)
+#define GPIO_PORTK_DATA_R       (*((volatile uint32_t *)0x400613FC))
+#define GPIO_PORTK_DIR_R        (*((volatile uint32_t *)0x40061400))
+#define GPIO_PORTK_IS_R         (*((volatile uint32_t *)0x40061404))
+#define GPIO_PORTK_IBE_R        (*((volatile uint32_t *)0x40061408))
+#define GPIO_PORTK_IEV_R        (*((volatile uint32_t *)0x4006140C))
+#define GPIO_PORTK_IM_R         (*((volatile uint32_t *)0x40061410))
+#define GPIO_PORTK_RIS_R        (*((volatile uint32_t *)0x40061414))
+#define GPIO_PORTK_MIS_R        (*((volatile uint32_t *)0x40061418))
+#define GPIO_PORTK_ICR_R        (*((volatile uint32_t *)0x4006141C))
+#define GPIO_PORTK_AFSEL_R      (*((volatile uint32_t *)0x40061420))
+#define GPIO_PORTK_DR2R_R       (*((volatile uint32_t *)0x40061500))
+#define GPIO_PORTK_DR4R_R       (*((volatile uint32_t *)0x40061504))
+#define GPIO_PORTK_DR8R_R       (*((volatile uint32_t *)0x40061508))
+#define GPIO_PORTK_ODR_R        (*((volatile uint32_t *)0x4006150C))
+#define GPIO_PORTK_PUR_R        (*((volatile uint32_t *)0x40061510))
+#define GPIO_PORTK_PDR_R        (*((volatile uint32_t *)0x40061514))
+#define GPIO_PORTK_SLR_R        (*((volatile uint32_t *)0x40061518))
+#define GPIO_PORTK_DEN_R        (*((volatile uint32_t *)0x4006151C))
+#define GPIO_PORTK_LOCK_R       (*((volatile uint32_t *)0x40061520))
+#define GPIO_PORTK_CR_R         (*((volatile uint32_t *)0x40061524))
+#define GPIO_PORTK_AMSEL_R      (*((volatile uint32_t *)0x40061528))
+#define GPIO_PORTK_PCTL_R       (*((volatile uint32_t *)0x4006152C))
+#define GPIO_PORTK_ADCCTL_R     (*((volatile uint32_t *)0x40061530))
+#define GPIO_PORTK_DMACTL_R     (*((volatile uint32_t *)0x40061534))
+
+//*****************************************************************************
+//
+// EEPROM registers (EEPROM)
+//
+//*****************************************************************************
+#define EEPROM_EESIZE_R         (*((volatile uint32_t *)0x400AF000))
+#define EEPROM_EEBLOCK_R        (*((volatile uint32_t *)0x400AF004))
+#define EEPROM_EEOFFSET_R       (*((volatile uint32_t *)0x400AF008))
+#define EEPROM_EERDWR_R         (*((volatile uint32_t *)0x400AF010))
+#define EEPROM_EERDWRINC_R      (*((volatile uint32_t *)0x400AF014))
+#define EEPROM_EEDONE_R         (*((volatile uint32_t *)0x400AF018))
+#define EEPROM_EESUPP_R         (*((volatile uint32_t *)0x400AF01C))
+#define EEPROM_EEUNLOCK_R       (*((volatile uint32_t *)0x400AF020))
+#define EEPROM_EEPROT_R         (*((volatile uint32_t *)0x400AF030))
+#define EEPROM_EEPASS0_R        (*((volatile uint32_t *)0x400AF034))
+#define EEPROM_EEPASS1_R        (*((volatile uint32_t *)0x400AF038))
+#define EEPROM_EEPASS2_R        (*((volatile uint32_t *)0x400AF03C))
+#define EEPROM_EEINT_R          (*((volatile uint32_t *)0x400AF040))
+#define EEPROM_EEHIDE_R         (*((volatile uint32_t *)0x400AF050))
+#define EEPROM_EEDBGME_R        (*((volatile uint32_t *)0x400AF080))
+#define EEPROM_PP_R             (*((volatile uint32_t *)0x400AFFC0))
+
+//*****************************************************************************
+//
+// I2C registers (I2C4)
+//
+//*****************************************************************************
+#define I2C4_MSA_R              (*((volatile uint32_t *)0x400C0000))
+#define I2C4_MCS_R              (*((volatile uint32_t *)0x400C0004))
+#define I2C4_MDR_R              (*((volatile uint32_t *)0x400C0008))
+#define I2C4_MTPR_R             (*((volatile uint32_t *)0x400C000C))
+#define I2C4_MIMR_R             (*((volatile uint32_t *)0x400C0010))
+#define I2C4_MRIS_R             (*((volatile uint32_t *)0x400C0014))
+#define I2C4_MMIS_R             (*((volatile uint32_t *)0x400C0018))
+#define I2C4_MICR_R             (*((volatile uint32_t *)0x400C001C))
+#define I2C4_MCR_R              (*((volatile uint32_t *)0x400C0020))
+#define I2C4_MCLKOCNT_R         (*((volatile uint32_t *)0x400C0024))
+#define I2C4_MBMON_R            (*((volatile uint32_t *)0x400C002C))
+#define I2C4_MCR2_R             (*((volatile uint32_t *)0x400C0038))
+#define I2C4_SOAR_R             (*((volatile uint32_t *)0x400C0800))
+#define I2C4_SCSR_R             (*((volatile uint32_t *)0x400C0804))
+#define I2C4_SDR_R              (*((volatile uint32_t *)0x400C0808))
+#define I2C4_SIMR_R             (*((volatile uint32_t *)0x400C080C))
+#define I2C4_SRIS_R             (*((volatile uint32_t *)0x400C0810))
+#define I2C4_SMIS_R             (*((volatile uint32_t *)0x400C0814))
+#define I2C4_SICR_R             (*((volatile uint32_t *)0x400C0818))
+#define I2C4_SOAR2_R            (*((volatile uint32_t *)0x400C081C))
+#define I2C4_SACKCTL_R          (*((volatile uint32_t *)0x400C0820))
+#define I2C4_PP_R               (*((volatile uint32_t *)0x400C0FC0))
+#define I2C4_PC_R               (*((volatile uint32_t *)0x400C0FC4))
+
+//*****************************************************************************
+//
+// I2C registers (I2C5)
+//
+//*****************************************************************************
+#define I2C5_MSA_R              (*((volatile uint32_t *)0x400C1000))
+#define I2C5_MCS_R              (*((volatile uint32_t *)0x400C1004))
+#define I2C5_MDR_R              (*((volatile uint32_t *)0x400C1008))
+#define I2C5_MTPR_R             (*((volatile uint32_t *)0x400C100C))
+#define I2C5_MIMR_R             (*((volatile uint32_t *)0x400C1010))
+#define I2C5_MRIS_R             (*((volatile uint32_t *)0x400C1014))
+#define I2C5_MMIS_R             (*((volatile uint32_t *)0x400C1018))
+#define I2C5_MICR_R             (*((volatile uint32_t *)0x400C101C))
+#define I2C5_MCR_R              (*((volatile uint32_t *)0x400C1020))
+#define I2C5_MCLKOCNT_R         (*((volatile uint32_t *)0x400C1024))
+#define I2C5_MBMON_R            (*((volatile uint32_t *)0x400C102C))
+#define I2C5_MCR2_R             (*((volatile uint32_t *)0x400C1038))
+#define I2C5_SOAR_R             (*((volatile uint32_t *)0x400C1800))
+#define I2C5_SCSR_R             (*((volatile uint32_t *)0x400C1804))
+#define I2C5_SDR_R              (*((volatile uint32_t *)0x400C1808))
+#define I2C5_SIMR_R             (*((volatile uint32_t *)0x400C180C))
+#define I2C5_SRIS_R             (*((volatile uint32_t *)0x400C1810))
+#define I2C5_SMIS_R             (*((volatile uint32_t *)0x400C1814))
+#define I2C5_SICR_R             (*((volatile uint32_t *)0x400C1818))
+#define I2C5_SOAR2_R            (*((volatile uint32_t *)0x400C181C))
+#define I2C5_SACKCTL_R          (*((volatile uint32_t *)0x400C1820))
+#define I2C5_PP_R               (*((volatile uint32_t *)0x400C1FC0))
+#define I2C5_PC_R               (*((volatile uint32_t *)0x400C1FC4))
+
+//*****************************************************************************
+//
+// System Exception Module registers (SYSEXC)
+//
+//*****************************************************************************
+#define SYSEXC_RIS_R            (*((volatile uint32_t *)0x400F9000))
+#define SYSEXC_IM_R             (*((volatile uint32_t *)0x400F9004))
+#define SYSEXC_MIS_R            (*((volatile uint32_t *)0x400F9008))
+#define SYSEXC_IC_R             (*((volatile uint32_t *)0x400F900C))
+
+//*****************************************************************************
+//
+// Hibernation module registers (HIB)
+//
+//*****************************************************************************
+#define HIB_RTCC_R              (*((volatile uint32_t *)0x400FC000))
+#define HIB_RTCM0_R             (*((volatile uint32_t *)0x400FC004))
+#define HIB_RTCLD_R             (*((volatile uint32_t *)0x400FC00C))
+#define HIB_CTL_R               (*((volatile uint32_t *)0x400FC010))
+#define HIB_IM_R                (*((volatile uint32_t *)0x400FC014))
+#define HIB_RIS_R               (*((volatile uint32_t *)0x400FC018))
+#define HIB_MIS_R               (*((volatile uint32_t *)0x400FC01C))
+#define HIB_IC_R                (*((volatile uint32_t *)0x400FC020))
+#define HIB_RTCT_R              (*((volatile uint32_t *)0x400FC024))
+#define HIB_RTCSS_R             (*((volatile uint32_t *)0x400FC028))
+#define HIB_DATA_R              (*((volatile uint32_t *)0x400FC030))
+
+//*****************************************************************************
+//
+// FLASH registers (FLASH CTRL)
+//
+//*****************************************************************************
+#define FLASH_FMA_R             (*((volatile uint32_t *)0x400FD000))
+#define FLASH_FMD_R             (*((volatile uint32_t *)0x400FD004))
+#define FLASH_FMC_R             (*((volatile uint32_t *)0x400FD008))
+#define FLASH_FCRIS_R           (*((volatile uint32_t *)0x400FD00C))
+#define FLASH_FCIM_R            (*((volatile uint32_t *)0x400FD010))
+#define FLASH_FCMISC_R          (*((volatile uint32_t *)0x400FD014))
+#define FLASH_FMC2_R            (*((volatile uint32_t *)0x400FD020))
+#define FLASH_FWBVAL_R          (*((volatile uint32_t *)0x400FD030))
+#define FLASH_FWBN_R            (*((volatile uint32_t *)0x400FD100))
+#define FLASH_FSIZE_R           (*((volatile uint32_t *)0x400FDFC0))
+#define FLASH_SSIZE_R           (*((volatile uint32_t *)0x400FDFC4))
+#define FLASH_ROMSWMAP_R        (*((volatile uint32_t *)0x400FDFCC))
+#define FLASH_RMCTL_R           (*((volatile uint32_t *)0x400FE0F0))
+#define FLASH_BOOTCFG_R         (*((volatile uint32_t *)0x400FE1D0))
+#define FLASH_USERREG0_R        (*((volatile uint32_t *)0x400FE1E0))
+#define FLASH_USERREG1_R        (*((volatile uint32_t *)0x400FE1E4))
+#define FLASH_USERREG2_R        (*((volatile uint32_t *)0x400FE1E8))
+#define FLASH_USERREG3_R        (*((volatile uint32_t *)0x400FE1EC))
+#define FLASH_FMPRE0_R          (*((volatile uint32_t *)0x400FE200))
+#define FLASH_FMPRE1_R          (*((volatile uint32_t *)0x400FE204))
+#define FLASH_FMPRE2_R          (*((volatile uint32_t *)0x400FE208))
+#define FLASH_FMPRE3_R          (*((volatile uint32_t *)0x400FE20C))
+#define FLASH_FMPPE0_R          (*((volatile uint32_t *)0x400FE400))
+#define FLASH_FMPPE1_R          (*((volatile uint32_t *)0x400FE404))
+#define FLASH_FMPPE2_R          (*((volatile uint32_t *)0x400FE408))
+#define FLASH_FMPPE3_R          (*((volatile uint32_t *)0x400FE40C))
+
+//*****************************************************************************
+//
+// System Control registers (SYSCTL)
+//
+//*****************************************************************************
+#define SYSCTL_DID0_R           (*((volatile uint32_t *)0x400FE000))
+#define SYSCTL_DID1_R           (*((volatile uint32_t *)0x400FE004))
+#define SYSCTL_DC0_R            (*((volatile uint32_t *)0x400FE008))
+#define SYSCTL_DC1_R            (*((volatile uint32_t *)0x400FE010))
+#define SYSCTL_DC2_R            (*((volatile uint32_t *)0x400FE014))
+#define SYSCTL_DC3_R            (*((volatile uint32_t *)0x400FE018))
+#define SYSCTL_DC4_R            (*((volatile uint32_t *)0x400FE01C))
+#define SYSCTL_DC5_R            (*((volatile uint32_t *)0x400FE020))
+#define SYSCTL_DC6_R            (*((volatile uint32_t *)0x400FE024))
+#define SYSCTL_DC7_R            (*((volatile uint32_t *)0x400FE028))
+#define SYSCTL_DC8_R            (*((volatile uint32_t *)0x400FE02C))
+#define SYSCTL_PBORCTL_R        (*((volatile uint32_t *)0x400FE030))
+#define SYSCTL_SRCR0_R          (*((volatile uint32_t *)0x400FE040))
+#define SYSCTL_SRCR1_R          (*((volatile uint32_t *)0x400FE044))
+#define SYSCTL_SRCR2_R          (*((volatile uint32_t *)0x400FE048))
+#define SYSCTL_RIS_R            (*((volatile uint32_t *)0x400FE050))
+#define SYSCTL_IMC_R            (*((volatile uint32_t *)0x400FE054))
+#define SYSCTL_MISC_R           (*((volatile uint32_t *)0x400FE058))
+#define SYSCTL_RESC_R           (*((volatile uint32_t *)0x400FE05C))
+#define SYSCTL_RCC_R            (*((volatile uint32_t *)0x400FE060))
+#define SYSCTL_GPIOHBCTL_R      (*((volatile uint32_t *)0x400FE06C))
+#define SYSCTL_RCC2_R           (*((volatile uint32_t *)0x400FE070))
+#define SYSCTL_MOSCCTL_R        (*((volatile uint32_t *)0x400FE07C))
+#define SYSCTL_RCGC0_R          (*((volatile uint32_t *)0x400FE100))
+#define SYSCTL_RCGC1_R          (*((volatile uint32_t *)0x400FE104))
+#define SYSCTL_RCGC2_R          (*((volatile uint32_t *)0x400FE108))
+#define SYSCTL_SCGC0_R          (*((volatile uint32_t *)0x400FE110))
+#define SYSCTL_SCGC1_R          (*((volatile uint32_t *)0x400FE114))
+#define SYSCTL_SCGC2_R          (*((volatile uint32_t *)0x400FE118))
+#define SYSCTL_DCGC0_R          (*((volatile uint32_t *)0x400FE120))
+#define SYSCTL_DCGC1_R          (*((volatile uint32_t *)0x400FE124))
+#define SYSCTL_DCGC2_R          (*((volatile uint32_t *)0x400FE128))
+#define SYSCTL_DSLPCLKCFG_R     (*((volatile uint32_t *)0x400FE144))
+#define SYSCTL_SYSPROP_R        (*((volatile uint32_t *)0x400FE14C))
+#define SYSCTL_PIOSCCAL_R       (*((volatile uint32_t *)0x400FE150))
+#define SYSCTL_PIOSCSTAT_R      (*((volatile uint32_t *)0x400FE154))
+#define SYSCTL_PLLFREQ0_R       (*((volatile uint32_t *)0x400FE160))
+#define SYSCTL_PLLFREQ1_R       (*((volatile uint32_t *)0x400FE164))
+#define SYSCTL_PLLSTAT_R        (*((volatile uint32_t *)0x400FE168))
+#define SYSCTL_SLPPWRCFG_R      (*((volatile uint32_t *)0x400FE188))
+#define SYSCTL_DSLPPWRCFG_R     (*((volatile uint32_t *)0x400FE18C))
+#define SYSCTL_DC9_R            (*((volatile uint32_t *)0x400FE190))
+#define SYSCTL_NVMSTAT_R        (*((volatile uint32_t *)0x400FE1A0))
+#define SYSCTL_LDOSPCTL_R       (*((volatile uint32_t *)0x400FE1B4))
+#define SYSCTL_LDODPCTL_R       (*((volatile uint32_t *)0x400FE1BC))
+#define SYSCTL_PPWD_R           (*((volatile uint32_t *)0x400FE300))
+#define SYSCTL_PPTIMER_R        (*((volatile uint32_t *)0x400FE304))
+#define SYSCTL_PPGPIO_R         (*((volatile uint32_t *)0x400FE308))
+#define SYSCTL_PPDMA_R          (*((volatile uint32_t *)0x400FE30C))
+#define SYSCTL_PPHIB_R          (*((volatile uint32_t *)0x400FE314))
+#define SYSCTL_PPUART_R         (*((volatile uint32_t *)0x400FE318))
+#define SYSCTL_PPSSI_R          (*((volatile uint32_t *)0x400FE31C))
+#define SYSCTL_PPI2C_R          (*((volatile uint32_t *)0x400FE320))
+#define SYSCTL_PPUSB_R          (*((volatile uint32_t *)0x400FE328))
+#define SYSCTL_PPCAN_R          (*((volatile uint32_t *)0x400FE334))
+#define SYSCTL_PPADC_R          (*((volatile uint32_t *)0x400FE338))
+#define SYSCTL_PPACMP_R         (*((volatile uint32_t *)0x400FE33C))
+#define SYSCTL_PPPWM_R          (*((volatile uint32_t *)0x400FE340))
+#define SYSCTL_PPQEI_R          (*((volatile uint32_t *)0x400FE344))
+#define SYSCTL_PPEEPROM_R       (*((volatile uint32_t *)0x400FE358))
+#define SYSCTL_PPWTIMER_R       (*((volatile uint32_t *)0x400FE35C))
+#define SYSCTL_SRWD_R           (*((volatile uint32_t *)0x400FE500))
+#define SYSCTL_SRTIMER_R        (*((volatile uint32_t *)0x400FE504))
+#define SYSCTL_SRGPIO_R         (*((volatile uint32_t *)0x400FE508))
+#define SYSCTL_SRDMA_R          (*((volatile uint32_t *)0x400FE50C))
+#define SYSCTL_SRHIB_R          (*((volatile uint32_t *)0x400FE514))
+#define SYSCTL_SRUART_R         (*((volatile uint32_t *)0x400FE518))
+#define SYSCTL_SRSSI_R          (*((volatile uint32_t *)0x400FE51C))
+#define SYSCTL_SRI2C_R          (*((volatile uint32_t *)0x400FE520))
+#define SYSCTL_SRUSB_R          (*((volatile uint32_t *)0x400FE528))
+#define SYSCTL_SRCAN_R          (*((volatile uint32_t *)0x400FE534))
+#define SYSCTL_SRADC_R          (*((volatile uint32_t *)0x400FE538))
+#define SYSCTL_SRACMP_R         (*((volatile uint32_t *)0x400FE53C))
+#define SYSCTL_SRPWM_R          (*((volatile uint32_t *)0x400FE540))
+#define SYSCTL_SRQEI_R          (*((volatile uint32_t *)0x400FE544))
+#define SYSCTL_SREEPROM_R       (*((volatile uint32_t *)0x400FE558))
+#define SYSCTL_SRWTIMER_R       (*((volatile uint32_t *)0x400FE55C))
+#define SYSCTL_RCGCWD_R         (*((volatile uint32_t *)0x400FE600))
+#define SYSCTL_RCGCTIMER_R      (*((volatile uint32_t *)0x400FE604))
+#define SYSCTL_RCGCGPIO_R       (*((volatile uint32_t *)0x400FE608))
+#define SYSCTL_RCGCDMA_R        (*((volatile uint32_t *)0x400FE60C))
+#define SYSCTL_RCGCHIB_R        (*((volatile uint32_t *)0x400FE614))
+#define SYSCTL_RCGCUART_R       (*((volatile uint32_t *)0x400FE618))
+#define SYSCTL_RCGCSSI_R        (*((volatile uint32_t *)0x400FE61C))
+#define SYSCTL_RCGCI2C_R        (*((volatile uint32_t *)0x400FE620))
+#define SYSCTL_RCGCUSB_R        (*((volatile uint32_t *)0x400FE628))
+#define SYSCTL_RCGCCAN_R        (*((volatile uint32_t *)0x400FE634))
+#define SYSCTL_RCGCADC_R        (*((volatile uint32_t *)0x400FE638))
+#define SYSCTL_RCGCACMP_R       (*((volatile uint32_t *)0x400FE63C))
+#define SYSCTL_RCGCPWM_R        (*((volatile uint32_t *)0x400FE640))
+#define SYSCTL_RCGCQEI_R        (*((volatile uint32_t *)0x400FE644))
+#define SYSCTL_RCGCEEPROM_R     (*((volatile uint32_t *)0x400FE658))
+#define SYSCTL_RCGCWTIMER_R     (*((volatile uint32_t *)0x400FE65C))
+#define SYSCTL_SCGCWD_R         (*((volatile uint32_t *)0x400FE700))
+#define SYSCTL_SCGCTIMER_R      (*((volatile uint32_t *)0x400FE704))
+#define SYSCTL_SCGCGPIO_R       (*((volatile uint32_t *)0x400FE708))
+#define SYSCTL_SCGCDMA_R        (*((volatile uint32_t *)0x400FE70C))
+#define SYSCTL_SCGCHIB_R        (*((volatile uint32_t *)0x400FE714))
+#define SYSCTL_SCGCUART_R       (*((volatile uint32_t *)0x400FE718))
+#define SYSCTL_SCGCSSI_R        (*((volatile uint32_t *)0x400FE71C))
+#define SYSCTL_SCGCI2C_R        (*((volatile uint32_t *)0x400FE720))
+#define SYSCTL_SCGCUSB_R        (*((volatile uint32_t *)0x400FE728))
+#define SYSCTL_SCGCCAN_R        (*((volatile uint32_t *)0x400FE734))
+#define SYSCTL_SCGCADC_R        (*((volatile uint32_t *)0x400FE738))
+#define SYSCTL_SCGCACMP_R       (*((volatile uint32_t *)0x400FE73C))
+#define SYSCTL_SCGCPWM_R        (*((volatile uint32_t *)0x400FE740))
+#define SYSCTL_SCGCQEI_R        (*((volatile uint32_t *)0x400FE744))
+#define SYSCTL_SCGCEEPROM_R     (*((volatile uint32_t *)0x400FE758))
+#define SYSCTL_SCGCWTIMER_R     (*((volatile uint32_t *)0x400FE75C))
+#define SYSCTL_DCGCWD_R         (*((volatile uint32_t *)0x400FE800))
+#define SYSCTL_DCGCTIMER_R      (*((volatile uint32_t *)0x400FE804))
+#define SYSCTL_DCGCGPIO_R       (*((volatile uint32_t *)0x400FE808))
+#define SYSCTL_DCGCDMA_R        (*((volatile uint32_t *)0x400FE80C))
+#define SYSCTL_DCGCHIB_R        (*((volatile uint32_t *)0x400FE814))
+#define SYSCTL_DCGCUART_R       (*((volatile uint32_t *)0x400FE818))
+#define SYSCTL_DCGCSSI_R        (*((volatile uint32_t *)0x400FE81C))
+#define SYSCTL_DCGCI2C_R        (*((volatile uint32_t *)0x400FE820))
+#define SYSCTL_DCGCUSB_R        (*((volatile uint32_t *)0x400FE828))
+#define SYSCTL_DCGCCAN_R        (*((volatile uint32_t *)0x400FE834))
+#define SYSCTL_DCGCADC_R        (*((volatile uint32_t *)0x400FE838))
+#define SYSCTL_DCGCACMP_R       (*((volatile uint32_t *)0x400FE83C))
+#define SYSCTL_DCGCPWM_R        (*((volatile uint32_t *)0x400FE840))
+#define SYSCTL_DCGCQEI_R        (*((volatile uint32_t *)0x400FE844))
+#define SYSCTL_DCGCEEPROM_R     (*((volatile uint32_t *)0x400FE858))
+#define SYSCTL_DCGCWTIMER_R     (*((volatile uint32_t *)0x400FE85C))
+#define SYSCTL_PRWD_R           (*((volatile uint32_t *)0x400FEA00))
+#define SYSCTL_PRTIMER_R        (*((volatile uint32_t *)0x400FEA04))
+#define SYSCTL_PRGPIO_R         (*((volatile uint32_t *)0x400FEA08))
+#define SYSCTL_PRDMA_R          (*((volatile uint32_t *)0x400FEA0C))
+#define SYSCTL_PRHIB_R          (*((volatile uint32_t *)0x400FEA14))
+#define SYSCTL_PRUART_R         (*((volatile uint32_t *)0x400FEA18))
+#define SYSCTL_PRSSI_R          (*((volatile uint32_t *)0x400FEA1C))
+#define SYSCTL_PRI2C_R          (*((volatile uint32_t *)0x400FEA20))
+#define SYSCTL_PRUSB_R          (*((volatile uint32_t *)0x400FEA28))
+#define SYSCTL_PRCAN_R          (*((volatile uint32_t *)0x400FEA34))
+#define SYSCTL_PRADC_R          (*((volatile uint32_t *)0x400FEA38))
+#define SYSCTL_PRACMP_R         (*((volatile uint32_t *)0x400FEA3C))
+#define SYSCTL_PRPWM_R          (*((volatile uint32_t *)0x400FEA40))
+#define SYSCTL_PRQEI_R          (*((volatile uint32_t *)0x400FEA44))
+#define SYSCTL_PREEPROM_R       (*((volatile uint32_t *)0x400FEA58))
+#define SYSCTL_PRWTIMER_R       (*((volatile uint32_t *)0x400FEA5C))
+
+//*****************************************************************************
+//
+// Micro Direct Memory Access registers (UDMA)
+//
+//*****************************************************************************
+#define UDMA_STAT_R             (*((volatile uint32_t *)0x400FF000))
+#define UDMA_CFG_R              (*((volatile uint32_t *)0x400FF004))
+#define UDMA_CTLBASE_R          (*((volatile uint32_t *)0x400FF008))
+#define UDMA_ALTBASE_R          (*((volatile uint32_t *)0x400FF00C))
+#define UDMA_WAITSTAT_R         (*((volatile uint32_t *)0x400FF010))
+#define UDMA_SWREQ_R            (*((volatile uint32_t *)0x400FF014))
+#define UDMA_USEBURSTSET_R      (*((volatile uint32_t *)0x400FF018))
+#define UDMA_USEBURSTCLR_R      (*((volatile uint32_t *)0x400FF01C))
+#define UDMA_REQMASKSET_R       (*((volatile uint32_t *)0x400FF020))
+#define UDMA_REQMASKCLR_R       (*((volatile uint32_t *)0x400FF024))
+#define UDMA_ENASET_R           (*((volatile uint32_t *)0x400FF028))
+#define UDMA_ENACLR_R           (*((volatile uint32_t *)0x400FF02C))
+#define UDMA_ALTSET_R           (*((volatile uint32_t *)0x400FF030))
+#define UDMA_ALTCLR_R           (*((volatile uint32_t *)0x400FF034))
+#define UDMA_PRIOSET_R          (*((volatile uint32_t *)0x400FF038))
+#define UDMA_PRIOCLR_R          (*((volatile uint32_t *)0x400FF03C))
+#define UDMA_ERRCLR_R           (*((volatile uint32_t *)0x400FF04C))
+#define UDMA_CHASGN_R           (*((volatile uint32_t *)0x400FF500))
+#define UDMA_CHIS_R             (*((volatile uint32_t *)0x400FF504))
+#define UDMA_CHMAP0_R           (*((volatile uint32_t *)0x400FF510))
+#define UDMA_CHMAP1_R           (*((volatile uint32_t *)0x400FF514))
+#define UDMA_CHMAP2_R           (*((volatile uint32_t *)0x400FF518))
+#define UDMA_CHMAP3_R           (*((volatile uint32_t *)0x400FF51C))
+
+//*****************************************************************************
+//
+// Micro Direct Memory Access (uDMA) offsets (UDMA)
+//
+//*****************************************************************************
+#define UDMA_SRCENDP            0x00000000  // DMA Channel Source Address End
+                                            // Pointer
+#define UDMA_DSTENDP            0x00000004  // DMA Channel Destination Address
+                                            // End Pointer
+#define UDMA_CHCTL              0x00000008  // DMA Channel Control Word
+
+//*****************************************************************************
+//
+// NVIC registers (NVIC)
+//
+//*****************************************************************************
+#define NVIC_ACTLR_R            (*((volatile uint32_t *)0xE000E008))
+#define NVIC_ST_CTRL_R          (*((volatile uint32_t *)0xE000E010))
+#define NVIC_ST_RELOAD_R        (*((volatile uint32_t *)0xE000E014))
+#define NVIC_ST_CURRENT_R       (*((volatile uint32_t *)0xE000E018))
+#define NVIC_EN0_R              (*((volatile uint32_t *)0xE000E100))
+#define NVIC_EN1_R              (*((volatile uint32_t *)0xE000E104))
+#define NVIC_EN2_R              (*((volatile uint32_t *)0xE000E108))
+#define NVIC_EN3_R              (*((volatile uint32_t *)0xE000E10C))
+#define NVIC_EN4_R              (*((volatile uint32_t *)0xE000E110))
+#define NVIC_DIS0_R             (*((volatile uint32_t *)0xE000E180))
+#define NVIC_DIS1_R             (*((volatile uint32_t *)0xE000E184))
+#define NVIC_DIS2_R             (*((volatile uint32_t *)0xE000E188))
+#define NVIC_DIS3_R             (*((volatile uint32_t *)0xE000E18C))
+#define NVIC_DIS4_R             (*((volatile uint32_t *)0xE000E190))
+#define NVIC_PEND0_R            (*((volatile uint32_t *)0xE000E200))
+#define NVIC_PEND1_R            (*((volatile uint32_t *)0xE000E204))
+#define NVIC_PEND2_R            (*((volatile uint32_t *)0xE000E208))
+#define NVIC_PEND3_R            (*((volatile uint32_t *)0xE000E20C))
+#define NVIC_PEND4_R            (*((volatile uint32_t *)0xE000E210))
+#define NVIC_UNPEND0_R          (*((volatile uint32_t *)0xE000E280))
+#define NVIC_UNPEND1_R          (*((volatile uint32_t *)0xE000E284))
+#define NVIC_UNPEND2_R          (*((volatile uint32_t *)0xE000E288))
+#define NVIC_UNPEND3_R          (*((volatile uint32_t *)0xE000E28C))
+#define NVIC_UNPEND4_R          (*((volatile uint32_t *)0xE000E290))
+#define NVIC_ACTIVE0_R          (*((volatile uint32_t *)0xE000E300))
+#define NVIC_ACTIVE1_R          (*((volatile uint32_t *)0xE000E304))
+#define NVIC_ACTIVE2_R          (*((volatile uint32_t *)0xE000E308))
+#define NVIC_ACTIVE3_R          (*((volatile uint32_t *)0xE000E30C))
+#define NVIC_ACTIVE4_R          (*((volatile uint32_t *)0xE000E310))
+#define NVIC_PRI0_R             (*((volatile uint32_t *)0xE000E400))
+#define NVIC_PRI1_R             (*((volatile uint32_t *)0xE000E404))
+#define NVIC_PRI2_R             (*((volatile uint32_t *)0xE000E408))
+#define NVIC_PRI3_R             (*((volatile uint32_t *)0xE000E40C))
+#define NVIC_PRI4_R             (*((volatile uint32_t *)0xE000E410))
+#define NVIC_PRI5_R             (*((volatile uint32_t *)0xE000E414))
+#define NVIC_PRI6_R             (*((volatile uint32_t *)0xE000E418))
+#define NVIC_PRI7_R             (*((volatile uint32_t *)0xE000E41C))
+#define NVIC_PRI8_R             (*((volatile uint32_t *)0xE000E420))
+#define NVIC_PRI9_R             (*((volatile uint32_t *)0xE000E424))
+#define NVIC_PRI10_R            (*((volatile uint32_t *)0xE000E428))
+#define NVIC_PRI11_R            (*((volatile uint32_t *)0xE000E42C))
+#define NVIC_PRI12_R            (*((volatile uint32_t *)0xE000E430))
+#define NVIC_PRI13_R            (*((volatile uint32_t *)0xE000E434))
+#define NVIC_PRI14_R            (*((volatile uint32_t *)0xE000E438))
+#define NVIC_PRI15_R            (*((volatile uint32_t *)0xE000E43C))
+#define NVIC_PRI16_R            (*((volatile uint32_t *)0xE000E440))
+#define NVIC_PRI17_R            (*((volatile uint32_t *)0xE000E444))
+#define NVIC_PRI18_R            (*((volatile uint32_t *)0xE000E448))
+#define NVIC_PRI19_R            (*((volatile uint32_t *)0xE000E44C))
+#define NVIC_PRI20_R            (*((volatile uint32_t *)0xE000E450))
+#define NVIC_PRI21_R            (*((volatile uint32_t *)0xE000E454))
+#define NVIC_PRI22_R            (*((volatile uint32_t *)0xE000E458))
+#define NVIC_PRI23_R            (*((volatile uint32_t *)0xE000E45C))
+#define NVIC_PRI24_R            (*((volatile uint32_t *)0xE000E460))
+#define NVIC_PRI25_R            (*((volatile uint32_t *)0xE000E464))
+#define NVIC_PRI26_R            (*((volatile uint32_t *)0xE000E468))
+#define NVIC_PRI27_R            (*((volatile uint32_t *)0xE000E46C))
+#define NVIC_PRI28_R            (*((volatile uint32_t *)0xE000E470))
+#define NVIC_PRI29_R            (*((volatile uint32_t *)0xE000E474))
+#define NVIC_PRI30_R            (*((volatile uint32_t *)0xE000E478))
+#define NVIC_PRI31_R            (*((volatile uint32_t *)0xE000E47C))
+#define NVIC_PRI32_R            (*((volatile uint32_t *)0xE000E480))
+#define NVIC_PRI33_R            (*((volatile uint32_t *)0xE000E484))
+#define NVIC_PRI34_R            (*((volatile uint32_t *)0xE000E488))
+#define NVIC_CPUID_R            (*((volatile uint32_t *)0xE000ED00))
+#define NVIC_INT_CTRL_R         (*((volatile uint32_t *)0xE000ED04))
+#define NVIC_VTABLE_R           (*((volatile uint32_t *)0xE000ED08))
+#define NVIC_APINT_R            (*((volatile uint32_t *)0xE000ED0C))
+#define NVIC_SYS_CTRL_R         (*((volatile uint32_t *)0xE000ED10))
+#define NVIC_CFG_CTRL_R         (*((volatile uint32_t *)0xE000ED14))
+#define NVIC_SYS_PRI1_R         (*((volatile uint32_t *)0xE000ED18))
+#define NVIC_SYS_PRI2_R         (*((volatile uint32_t *)0xE000ED1C))
+#define NVIC_SYS_PRI3_R         (*((volatile uint32_t *)0xE000ED20))
+#define NVIC_SYS_HND_CTRL_R     (*((volatile uint32_t *)0xE000ED24))
+#define NVIC_FAULT_STAT_R       (*((volatile uint32_t *)0xE000ED28))
+#define NVIC_HFAULT_STAT_R      (*((volatile uint32_t *)0xE000ED2C))
+#define NVIC_DEBUG_STAT_R       (*((volatile uint32_t *)0xE000ED30))
+#define NVIC_MM_ADDR_R          (*((volatile uint32_t *)0xE000ED34))
+#define NVIC_FAULT_ADDR_R       (*((volatile uint32_t *)0xE000ED38))
+#define NVIC_CPAC_R             (*((volatile uint32_t *)0xE000ED88))
+#define NVIC_MPU_TYPE_R         (*((volatile uint32_t *)0xE000ED90))
+#define NVIC_MPU_CTRL_R         (*((volatile uint32_t *)0xE000ED94))
+#define NVIC_MPU_NUMBER_R       (*((volatile uint32_t *)0xE000ED98))
+#define NVIC_MPU_BASE_R         (*((volatile uint32_t *)0xE000ED9C))
+#define NVIC_MPU_ATTR_R         (*((volatile uint32_t *)0xE000EDA0))
+#define NVIC_MPU_BASE1_R        (*((volatile uint32_t *)0xE000EDA4))
+#define NVIC_MPU_ATTR1_R        (*((volatile uint32_t *)0xE000EDA8))
+#define NVIC_MPU_BASE2_R        (*((volatile uint32_t *)0xE000EDAC))
+#define NVIC_MPU_ATTR2_R        (*((volatile uint32_t *)0xE000EDB0))
+#define NVIC_MPU_BASE3_R        (*((volatile uint32_t *)0xE000EDB4))
+#define NVIC_MPU_ATTR3_R        (*((volatile uint32_t *)0xE000EDB8))
+#define NVIC_DBG_CTRL_R         (*((volatile uint32_t *)0xE000EDF0))
+#define NVIC_DBG_XFER_R         (*((volatile uint32_t *)0xE000EDF4))
+#define NVIC_DBG_DATA_R         (*((volatile uint32_t *)0xE000EDF8))
+#define NVIC_DBG_INT_R          (*((volatile uint32_t *)0xE000EDFC))
+#define NVIC_SW_TRIG_R          (*((volatile uint32_t *)0xE000EF00))
+#define NVIC_FPCC_R             (*((volatile uint32_t *)0xE000EF34))
+#define NVIC_FPCA_R             (*((volatile uint32_t *)0xE000EF38))
+#define NVIC_FPDSC_R            (*((volatile uint32_t *)0xE000EF3C))
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the WDT_O_LOAD register.
+//
+//*****************************************************************************
+#define WDT_LOAD_M              0xFFFFFFFF  // Watchdog Load Value
+#define WDT_LOAD_S              0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the WDT_O_VALUE register.
+//
+//*****************************************************************************
+#define WDT_VALUE_M             0xFFFFFFFF  // Watchdog Value
+#define WDT_VALUE_S             0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the WDT_O_CTL register.
+//
+//*****************************************************************************
+#define WDT_CTL_WRC             0x80000000  // Write Complete
+#define WDT_CTL_INTTYPE         0x00000004  // Watchdog Interrupt Type
+#define WDT_CTL_RESEN           0x00000002  // Watchdog Reset Enable
+#define WDT_CTL_INTEN           0x00000001  // Watchdog Interrupt Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the WDT_O_ICR register.
+//
+//*****************************************************************************
+#define WDT_ICR_M               0xFFFFFFFF  // Watchdog Interrupt Clear
+#define WDT_ICR_S               0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the WDT_O_RIS register.
+//
+//*****************************************************************************
+#define WDT_RIS_WDTRIS          0x00000001  // Watchdog Raw Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the WDT_O_MIS register.
+//
+//*****************************************************************************
+#define WDT_MIS_WDTMIS          0x00000001  // Watchdog Masked Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the WDT_O_TEST register.
+//
+//*****************************************************************************
+#define WDT_TEST_STALL          0x00000100  // Watchdog Stall Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the WDT_O_LOCK register.
+//
+//*****************************************************************************
+#define WDT_LOCK_M              0xFFFFFFFF  // Watchdog Lock
+#define WDT_LOCK_UNLOCKED       0x00000000  // Unlocked
+#define WDT_LOCK_LOCKED         0x00000001  // Locked
+#define WDT_LOCK_UNLOCK         0x1ACCE551  // Unlocks the watchdog timer
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_IM register.
+//
+//*****************************************************************************
+#define GPIO_IM_GPIO_M          0x000000FF  // GPIO Interrupt Mask Enable
+#define GPIO_IM_GPIO_S          0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_RIS register.
+//
+//*****************************************************************************
+#define GPIO_RIS_GPIO_M         0x000000FF  // GPIO Interrupt Raw Status
+#define GPIO_RIS_GPIO_S         0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_MIS register.
+//
+//*****************************************************************************
+#define GPIO_MIS_GPIO_M         0x000000FF  // GPIO Masked Interrupt Status
+#define GPIO_MIS_GPIO_S         0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_ICR register.
+//
+//*****************************************************************************
+#define GPIO_ICR_GPIO_M         0x000000FF  // GPIO Interrupt Clear
+#define GPIO_ICR_GPIO_S         0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_LOCK register.
+//
+//*****************************************************************************
+#define GPIO_LOCK_M             0xFFFFFFFF  // GPIO Lock
+#define GPIO_LOCK_UNLOCKED      0x00000000  // The GPIOCR register is unlocked
+                                            // and may be modified
+#define GPIO_LOCK_LOCKED        0x00000001  // The GPIOCR register is locked
+                                            // and may not be modified
+#define GPIO_LOCK_KEY           0x4C4F434B  // Unlocks the GPIO_CR register
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_PCTL register for
+// port A.
+//
+//*****************************************************************************
+#define GPIO_PCTL_PA7_M         0xF0000000  // PA7 Mask
+#define GPIO_PCTL_PA7_I2C1SDA   0x30000000  // I2C1SDA on PA7
+#define GPIO_PCTL_PA7_M1PWM3    0x50000000  // M1PWM3 on PA7
+#define GPIO_PCTL_PA6_M         0x0F000000  // PA6 Mask
+#define GPIO_PCTL_PA6_I2C1SCL   0x03000000  // I2C1SCL on PA6
+#define GPIO_PCTL_PA6_M1PWM2    0x05000000  // M1PWM2 on PA6
+#define GPIO_PCTL_PA5_M         0x00F00000  // PA5 Mask
+#define GPIO_PCTL_PA5_SSI0TX    0x00200000  // SSI0TX on PA5
+#define GPIO_PCTL_PA4_M         0x000F0000  // PA4 Mask
+#define GPIO_PCTL_PA4_SSI0RX    0x00020000  // SSI0RX on PA4
+#define GPIO_PCTL_PA3_M         0x0000F000  // PA3 Mask
+#define GPIO_PCTL_PA3_SSI0FSS   0x00002000  // SSI0FSS on PA3
+#define GPIO_PCTL_PA2_M         0x00000F00  // PA2 Mask
+#define GPIO_PCTL_PA2_SSI0CLK   0x00000200  // SSI0CLK on PA2
+#define GPIO_PCTL_PA1_M         0x000000F0  // PA1 Mask
+#define GPIO_PCTL_PA1_U0TX      0x00000010  // U0TX on PA1
+#define GPIO_PCTL_PA1_CAN1TX    0x00000080  // CAN1TX on PA1
+#define GPIO_PCTL_PA0_M         0x0000000F  // PA0 Mask
+#define GPIO_PCTL_PA0_U0RX      0x00000001  // U0RX on PA0
+#define GPIO_PCTL_PA0_CAN1RX    0x00000008  // CAN1RX on PA0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_PCTL register for
+// port B.
+//
+//*****************************************************************************
+#define GPIO_PCTL_PB5_M         0x00F00000  // PB5 Mask
+#define GPIO_PCTL_PB5_SSI2FSS   0x00200000  // SSI2FSS on PB5
+#define GPIO_PCTL_PB5_M0PWM3    0x00400000  // M0PWM3 on PB5
+#define GPIO_PCTL_PB5_T1CCP1    0x00700000  // T1CCP1 on PB5
+#define GPIO_PCTL_PB5_CAN0TX    0x00800000  // CAN0TX on PB5
+#define GPIO_PCTL_PB4_M         0x000F0000  // PB4 Mask
+#define GPIO_PCTL_PB4_SSI2CLK   0x00020000  // SSI2CLK on PB4
+#define GPIO_PCTL_PB4_M0PWM2    0x00040000  // M0PWM2 on PB4
+#define GPIO_PCTL_PB4_T1CCP0    0x00070000  // T1CCP0 on PB4
+#define GPIO_PCTL_PB4_CAN0RX    0x00080000  // CAN0RX on PB4
+#define GPIO_PCTL_PB3_M         0x0000F000  // PB3 Mask
+#define GPIO_PCTL_PB3_I2C0SDA   0x00003000  // I2C0SDA on PB3
+#define GPIO_PCTL_PB3_T3CCP1    0x00007000  // T3CCP1 on PB3
+#define GPIO_PCTL_PB2_M         0x00000F00  // PB2 Mask
+#define GPIO_PCTL_PB2_I2C0SCL   0x00000300  // I2C0SCL on PB2
+#define GPIO_PCTL_PB2_T3CCP0    0x00000700  // T3CCP0 on PB2
+#define GPIO_PCTL_PB1_M         0x000000F0  // PB1 Mask
+#define GPIO_PCTL_PB1_USB0VBUS  0x00000000  // USB0VBUS on PB1
+#define GPIO_PCTL_PB1_U1TX      0x00000010  // U1TX on PB1
+#define GPIO_PCTL_PB1_T2CCP1    0x00000070  // T2CCP1 on PB1
+#define GPIO_PCTL_PB0_M         0x0000000F  // PB0 Mask
+#define GPIO_PCTL_PB0_USB0ID    0x00000000  // USB0ID on PB0
+#define GPIO_PCTL_PB0_U1RX      0x00000001  // U1RX on PB0
+#define GPIO_PCTL_PB0_T2CCP0    0x00000007  // T2CCP0 on PB0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_PCTL register for
+// port C.
+//
+//*****************************************************************************
+#define GPIO_PCTL_PC7_M         0xF0000000  // PC7 Mask
+#define GPIO_PCTL_PC7_U3TX      0x10000000  // U3TX on PC7
+#define GPIO_PCTL_PC7_WT1CCP1   0x70000000  // WT1CCP1 on PC7
+#define GPIO_PCTL_PC7_USB0PFLT  0x80000000  // USB0PFLT on PC7
+#define GPIO_PCTL_PC6_M         0x0F000000  // PC6 Mask
+#define GPIO_PCTL_PC6_U3RX      0x01000000  // U3RX on PC6
+#define GPIO_PCTL_PC6_PHB1      0x06000000  // PHB1 on PC6
+#define GPIO_PCTL_PC6_WT1CCP0   0x07000000  // WT1CCP0 on PC6
+#define GPIO_PCTL_PC6_USB0EPEN  0x08000000  // USB0EPEN on PC6
+#define GPIO_PCTL_PC5_M         0x00F00000  // PC5 Mask
+#define GPIO_PCTL_PC5_U4TX      0x00100000  // U4TX on PC5
+#define GPIO_PCTL_PC5_U1TX      0x00200000  // U1TX on PC5
+#define GPIO_PCTL_PC5_M0PWM7    0x00400000  // M0PWM7 on PC5
+#define GPIO_PCTL_PC5_PHA1      0x00600000  // PHA1 on PC5
+#define GPIO_PCTL_PC5_WT0CCP1   0x00700000  // WT0CCP1 on PC5
+#define GPIO_PCTL_PC5_U1CTS     0x00800000  // U1CTS on PC5
+#define GPIO_PCTL_PC4_M         0x000F0000  // PC4 Mask
+#define GPIO_PCTL_PC4_U4RX      0x00010000  // U4RX on PC4
+#define GPIO_PCTL_PC4_U1RX      0x00020000  // U1RX on PC4
+#define GPIO_PCTL_PC4_M0PWM6    0x00040000  // M0PWM6 on PC4
+#define GPIO_PCTL_PC4_IDX1      0x00060000  // IDX1 on PC4
+#define GPIO_PCTL_PC4_WT0CCP0   0x00070000  // WT0CCP0 on PC4
+#define GPIO_PCTL_PC4_U1RTS     0x00080000  // U1RTS on PC4
+#define GPIO_PCTL_PC3_M         0x0000F000  // PC3 Mask
+#define GPIO_PCTL_PC3_TDO       0x00001000  // TDO on PC3
+#define GPIO_PCTL_PC3_T5CCP1    0x00007000  // T5CCP1 on PC3
+#define GPIO_PCTL_PC2_M         0x00000F00  // PC2 Mask
+#define GPIO_PCTL_PC2_TDI       0x00000100  // TDI on PC2
+#define GPIO_PCTL_PC2_T5CCP0    0x00000700  // T5CCP0 on PC2
+#define GPIO_PCTL_PC1_M         0x000000F0  // PC1 Mask
+#define GPIO_PCTL_PC1_TMS       0x00000010  // TMS on PC1
+#define GPIO_PCTL_PC1_T4CCP1    0x00000070  // T4CCP1 on PC1
+#define GPIO_PCTL_PC0_M         0x0000000F  // PC0 Mask
+#define GPIO_PCTL_PC0_TCK       0x00000001  // TCK on PC0
+#define GPIO_PCTL_PC0_T4CCP0    0x00000007  // T4CCP0 on PC0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_PCTL register for
+// port D.
+//
+//*****************************************************************************
+#define GPIO_PCTL_PD7_M         0xF0000000  // PD7 Mask
+#define GPIO_PCTL_PD7_AIN4      0x00000000  // AIN4 on PD7
+#define GPIO_PCTL_PD7_U2TX      0x10000000  // U2TX on PD7
+#define GPIO_PCTL_PD7_M0FAULT1  0x40000000  // M0FAULT1 on PD7
+#define GPIO_PCTL_PD7_PHB0      0x60000000  // PHB0 on PD7
+#define GPIO_PCTL_PD7_WT5CCP1   0x70000000  // WT5CCP1 on PD7
+#define GPIO_PCTL_PD7_NMI       0x80000000  // NMI on PD7
+#define GPIO_PCTL_PD6_M         0x0F000000  // PD6 Mask
+#define GPIO_PCTL_PD6_AIN5      0x00000000  // AIN5 on PD6
+#define GPIO_PCTL_PD6_U2RX      0x01000000  // U2RX on PD6
+#define GPIO_PCTL_PD6_M0FAULT0  0x04000000  // M0FAULT0 on PD6
+#define GPIO_PCTL_PD6_PHA0      0x06000000  // PHA0 on PD6
+#define GPIO_PCTL_PD6_WT5CCP0   0x07000000  // WT5CCP0 on PD6
+#define GPIO_PCTL_PD5_M         0x00F00000  // PD5 Mask
+#define GPIO_PCTL_PD5_U6TX      0x00100000  // U6TX on PD5
+#define GPIO_PCTL_PD5_WT4CCP1   0x00700000  // WT4CCP1 on PD5
+#define GPIO_PCTL_PD4_M         0x000F0000  // PD4 Mask
+#define GPIO_PCTL_PD4_AIN7      0x00000000  // AIN7 on PD4
+#define GPIO_PCTL_PD4_U6RX      0x00010000  // U6RX on PD4
+#define GPIO_PCTL_PD4_WT4CCP0   0x00070000  // WT4CCP0 on PD4
+#define GPIO_PCTL_PD3_M         0x0000F000  // PD3 Mask
+#define GPIO_PCTL_PD3_AIN12     0x00000000  // AIN12 on PD3
+#define GPIO_PCTL_PD3_SSI3TX    0x00001000  // SSI3TX on PD3
+#define GPIO_PCTL_PD3_SSI1TX    0x00002000  // SSI1TX on PD3
+#define GPIO_PCTL_PD3_IDX0      0x00006000  // IDX0 on PD3
+#define GPIO_PCTL_PD3_WT3CCP1   0x00007000  // WT3CCP1 on PD3
+#define GPIO_PCTL_PD3_USB0PFLT  0x00008000  // USB0PFLT on PD3
+#define GPIO_PCTL_PD2_M         0x00000F00  // PD2 Mask
+#define GPIO_PCTL_PD2_AIN13     0x00000000  // AIN13 on PD2
+#define GPIO_PCTL_PD2_SSI3RX    0x00000100  // SSI3RX on PD2
+#define GPIO_PCTL_PD2_SSI1RX    0x00000200  // SSI1RX on PD2
+#define GPIO_PCTL_PD2_M0FAULT0  0x00000400  // M0FAULT0 on PD2
+#define GPIO_PCTL_PD2_WT3CCP0   0x00000700  // WT3CCP0 on PD2
+#define GPIO_PCTL_PD2_USB0EPEN  0x00000800  // USB0EPEN on PD2
+#define GPIO_PCTL_PD1_M         0x000000F0  // PD1 Mask
+#define GPIO_PCTL_PD1_AIN14     0x00000000  // AIN14 on PD1
+#define GPIO_PCTL_PD1_SSI3FSS   0x00000010  // SSI3FSS on PD1
+#define GPIO_PCTL_PD1_SSI1FSS   0x00000020  // SSI1FSS on PD1
+#define GPIO_PCTL_PD1_I2C3SDA   0x00000030  // I2C3SDA on PD1
+#define GPIO_PCTL_PD1_M0PWM7    0x00000040  // M0PWM7 on PD1
+#define GPIO_PCTL_PD1_M1PWM1    0x00000050  // M1PWM1 on PD1
+#define GPIO_PCTL_PD1_WT2CCP1   0x00000070  // WT2CCP1 on PD1
+#define GPIO_PCTL_PD0_M         0x0000000F  // PD0 Mask
+#define GPIO_PCTL_PD0_AIN15     0x00000000  // AIN15 on PD0
+#define GPIO_PCTL_PD0_SSI3CLK   0x00000001  // SSI3CLK on PD0
+#define GPIO_PCTL_PD0_SSI1CLK   0x00000002  // SSI1CLK on PD0
+#define GPIO_PCTL_PD0_I2C3SCL   0x00000003  // I2C3SCL on PD0
+#define GPIO_PCTL_PD0_M0PWM6    0x00000004  // M0PWM6 on PD0
+#define GPIO_PCTL_PD0_M1PWM0    0x00000005  // M1PWM0 on PD0
+#define GPIO_PCTL_PD0_WT2CCP0   0x00000007  // WT2CCP0 on PD0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_PCTL register for
+// port E.
+//
+//*****************************************************************************
+#define GPIO_PCTL_PE7_M         0xF0000000  // PE7 Mask
+#define GPIO_PCTL_PE7_AIN20     0x00000000  // AIN20 on PE7
+#define GPIO_PCTL_PE7_U1RI      0x10000000  // U1RI on PE7
+#define GPIO_PCTL_PE7_CAN1TX    0x80000000  // CAN1TX on PE7
+#define GPIO_PCTL_PE6_M         0x0F000000  // PE6 Mask
+#define GPIO_PCTL_PE6_AIN21     0x00000000  // AIN21 on PE6
+#define GPIO_PCTL_PE6_CAN1RX    0x08000000  // CAN1RX on PE6
+#define GPIO_PCTL_PE5_M         0x00F00000  // PE5 Mask
+#define GPIO_PCTL_PE5_AIN8      0x00000000  // AIN8 on PE5
+#define GPIO_PCTL_PE5_U5TX      0x00100000  // U5TX on PE5
+#define GPIO_PCTL_PE5_I2C2SDA   0x00300000  // I2C2SDA on PE5
+#define GPIO_PCTL_PE5_M0PWM5    0x00400000  // M0PWM5 on PE5
+#define GPIO_PCTL_PE5_M1PWM3    0x00500000  // M1PWM3 on PE5
+#define GPIO_PCTL_PE5_CAN0TX    0x00800000  // CAN0TX on PE5
+#define GPIO_PCTL_PE4_M         0x000F0000  // PE4 Mask
+#define GPIO_PCTL_PE4_AIN9      0x00000000  // AIN9 on PE4
+#define GPIO_PCTL_PE4_U5RX      0x00010000  // U5RX on PE4
+#define GPIO_PCTL_PE4_I2C2SCL   0x00030000  // I2C2SCL on PE4
+#define GPIO_PCTL_PE4_M0PWM4    0x00040000  // M0PWM4 on PE4
+#define GPIO_PCTL_PE4_M1PWM2    0x00050000  // M1PWM2 on PE4
+#define GPIO_PCTL_PE4_CAN0RX    0x00080000  // CAN0RX on PE4
+#define GPIO_PCTL_PE3_M         0x0000F000  // PE3 Mask
+#define GPIO_PCTL_PE3_AIN0      0x00000000  // AIN0 on PE3
+#define GPIO_PCTL_PE2_M         0x00000F00  // PE2 Mask
+#define GPIO_PCTL_PE2_AIN1      0x00000000  // AIN1 on PE2
+#define GPIO_PCTL_PE1_M         0x000000F0  // PE1 Mask
+#define GPIO_PCTL_PE1_AIN2      0x00000000  // AIN2 on PE1
+#define GPIO_PCTL_PE1_U7TX      0x00000010  // U7TX on PE1
+#define GPIO_PCTL_PE0_M         0x0000000F  // PE0 Mask
+#define GPIO_PCTL_PE0_AIN3      0x00000000  // AIN3 on PE0
+#define GPIO_PCTL_PE0_U7RX      0x00000001  // U7RX on PE0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_PCTL register for
+// port F.
+//
+//*****************************************************************************
+#define GPIO_PCTL_PF7_M         0xF0000000  // PF7 Mask
+#define GPIO_PCTL_PF7_I2C2SDA   0x30000000  // I2C2SDA on PF7
+#define GPIO_PCTL_PF7_M1FAULT0  0x50000000  // M1FAULT0 on PF7
+#define GPIO_PCTL_PF7_T3CCP1    0x70000000  // T3CCP1 on PF7
+#define GPIO_PCTL_PF6_M         0x0F000000  // PF6 Mask
+#define GPIO_PCTL_PF6_I2C2SCL   0x03000000  // I2C2SCL on PF6
+#define GPIO_PCTL_PF6_T3CCP0    0x07000000  // T3CCP0 on PF6
+#define GPIO_PCTL_PF5_M         0x00F00000  // PF5 Mask
+#define GPIO_PCTL_PF5_M0FAULT3  0x00400000  // M0FAULT3 on PF5
+#define GPIO_PCTL_PF5_T2CCP1    0x00700000  // T2CCP1 on PF5
+#define GPIO_PCTL_PF5_USB0PFLT  0x00800000  // USB0PFLT on PF5
+#define GPIO_PCTL_PF4_M         0x000F0000  // PF4 Mask
+#define GPIO_PCTL_PF4_U1DTR     0x00010000  // U1DTR on PF4
+#define GPIO_PCTL_PF4_M0FAULT2  0x00040000  // M0FAULT2 on PF4
+#define GPIO_PCTL_PF4_M1FAULT0  0x00050000  // M1FAULT0 on PF4
+#define GPIO_PCTL_PF4_IDX0      0x00060000  // IDX0 on PF4
+#define GPIO_PCTL_PF4_T2CCP0    0x00070000  // T2CCP0 on PF4
+#define GPIO_PCTL_PF4_USB0EPEN  0x00080000  // USB0EPEN on PF4
+#define GPIO_PCTL_PF4_TRD3      0x000E0000  // TRD3 on PF4
+#define GPIO_PCTL_PF3_M         0x0000F000  // PF3 Mask
+#define GPIO_PCTL_PF3_U1DSR     0x00001000  // U1DSR on PF3
+#define GPIO_PCTL_PF3_SSI1FSS   0x00002000  // SSI1FSS on PF3
+#define GPIO_PCTL_PF3_CAN0TX    0x00003000  // CAN0TX on PF3
+#define GPIO_PCTL_PF3_M0FAULT1  0x00004000  // M0FAULT1 on PF3
+#define GPIO_PCTL_PF3_M1PWM7    0x00005000  // M1PWM7 on PF3
+#define GPIO_PCTL_PF3_T1CCP1    0x00007000  // T1CCP1 on PF3
+#define GPIO_PCTL_PF3_TRCLK     0x0000E000  // TRCLK on PF3
+#define GPIO_PCTL_PF2_M         0x00000F00  // PF2 Mask
+#define GPIO_PCTL_PF2_U1DCD     0x00000100  // U1DCD on PF2
+#define GPIO_PCTL_PF2_SSI1CLK   0x00000200  // SSI1CLK on PF2
+#define GPIO_PCTL_PF2_M0FAULT0  0x00000400  // M0FAULT0 on PF2
+#define GPIO_PCTL_PF2_M1PWM6    0x00000500  // M1PWM6 on PF2
+#define GPIO_PCTL_PF2_T1CCP0    0x00000700  // T1CCP0 on PF2
+#define GPIO_PCTL_PF2_C2O       0x00000900  // C2O on PF2
+#define GPIO_PCTL_PF2_TRD0      0x00000E00  // TRD0 on PF2
+#define GPIO_PCTL_PF1_M         0x000000F0  // PF1 Mask
+#define GPIO_PCTL_PF1_U1CTS     0x00000010  // U1CTS on PF1
+#define GPIO_PCTL_PF1_SSI1TX    0x00000020  // SSI1TX on PF1
+#define GPIO_PCTL_PF1_M1PWM5    0x00000050  // M1PWM5 on PF1
+#define GPIO_PCTL_PF1_PHB0      0x00000060  // PHB0 on PF1
+#define GPIO_PCTL_PF1_T0CCP1    0x00000070  // T0CCP1 on PF1
+#define GPIO_PCTL_PF1_C1O       0x00000090  // C1O on PF1
+#define GPIO_PCTL_PF1_TRD1      0x000000E0  // TRD1 on PF1
+#define GPIO_PCTL_PF0_M         0x0000000F  // PF0 Mask
+#define GPIO_PCTL_PF0_U1RTS     0x00000001  // U1RTS on PF0
+#define GPIO_PCTL_PF0_SSI1RX    0x00000002  // SSI1RX on PF0
+#define GPIO_PCTL_PF0_CAN0RX    0x00000003  // CAN0RX on PF0
+#define GPIO_PCTL_PF0_M1PWM4    0x00000005  // M1PWM4 on PF0
+#define GPIO_PCTL_PF0_PHA0      0x00000006  // PHA0 on PF0
+#define GPIO_PCTL_PF0_T0CCP0    0x00000007  // T0CCP0 on PF0
+#define GPIO_PCTL_PF0_NMI       0x00000008  // NMI on PF0
+#define GPIO_PCTL_PF0_C0O       0x00000009  // C0O on PF0
+#define GPIO_PCTL_PF0_TRD2      0x0000000E  // TRD2 on PF0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_PCTL register for
+// port G.
+//
+//*****************************************************************************
+#define GPIO_PCTL_PG7_M         0xF0000000  // PG7 Mask
+#define GPIO_PCTL_PG7_C2M       0x00000000  // C2- on PG7
+#define GPIO_PCTL_PG7_I2C5SDA   0x30000000  // I2C5SDA on PG7
+#define GPIO_PCTL_PG7_M0PWM7    0x40000000  // M0PWM7 on PG7
+#define GPIO_PCTL_PG7_IDX1      0x50000000  // IDX1 on PG7
+#define GPIO_PCTL_PG7_WT1CCP1   0x70000000  // WT1CCP1 on PG7
+#define GPIO_PCTL_PG6_M         0x0F000000  // PG6 Mask
+#define GPIO_PCTL_PG6_C2P       0x00000000  // C2+ on PG6
+#define GPIO_PCTL_PG6_I2C5SCL   0x03000000  // I2C5SCL on PG6
+#define GPIO_PCTL_PG6_M0PWM6    0x04000000  // M0PWM6 on PG6
+#define GPIO_PCTL_PG6_WT1CCP0   0x07000000  // WT1CCP0 on PG6
+#define GPIO_PCTL_PG5_M         0x00F00000  // PG5 Mask
+#define GPIO_PCTL_PG5_U2TX      0x00100000  // U2TX on PG5
+#define GPIO_PCTL_PG5_I2C1SDA   0x00300000  // I2C1SDA on PG5
+#define GPIO_PCTL_PG5_M0PWM5    0x00400000  // M0PWM5 on PG5
+#define GPIO_PCTL_PG5_M1PWM3    0x00500000  // M1PWM3 on PG5
+#define GPIO_PCTL_PG5_IDX1      0x00600000  // IDX1 on PG5
+#define GPIO_PCTL_PG5_WT0CCP1   0x00700000  // WT0CCP1 on PG5
+#define GPIO_PCTL_PG5_USB0PFLT  0x00800000  // USB0PFLT on PG5
+#define GPIO_PCTL_PG4_M         0x000F0000  // PG4 Mask
+#define GPIO_PCTL_PG4_U2RX      0x00010000  // U2RX on PG4
+#define GPIO_PCTL_PG4_I2C1SCL   0x00030000  // I2C1SCL on PG4
+#define GPIO_PCTL_PG4_M0PWM4    0x00040000  // M0PWM4 on PG4
+#define GPIO_PCTL_PG4_M1PWM2    0x00050000  // M1PWM2 on PG4
+#define GPIO_PCTL_PG4_PHB1      0x00060000  // PHB1 on PG4
+#define GPIO_PCTL_PG4_WT0CCP0   0x00070000  // WT0CCP0 on PG4
+#define GPIO_PCTL_PG4_USB0EPEN  0x00080000  // USB0EPEN on PG4
+#define GPIO_PCTL_PG3_M         0x0000F000  // PG3 Mask
+#define GPIO_PCTL_PG3_I2C4SDA   0x00003000  // I2C4SDA on PG3
+#define GPIO_PCTL_PG3_M0FAULT2  0x00004000  // M0FAULT2 on PG3
+#define GPIO_PCTL_PG3_M1PWM1    0x00005000  // M1PWM1 on PG3
+#define GPIO_PCTL_PG3_PHA1      0x00006000  // PHA1 on PG3
+#define GPIO_PCTL_PG3_T5CCP1    0x00007000  // T5CCP1 on PG3
+#define GPIO_PCTL_PG2_M         0x00000F00  // PG2 Mask
+#define GPIO_PCTL_PG2_I2C4SCL   0x00000300  // I2C4SCL on PG2
+#define GPIO_PCTL_PG2_M0FAULT1  0x00000400  // M0FAULT1 on PG2
+#define GPIO_PCTL_PG2_M1PWM0    0x00000500  // M1PWM0 on PG2
+#define GPIO_PCTL_PG2_T5CCP0    0x00000700  // T5CCP0 on PG2
+#define GPIO_PCTL_PG1_M         0x000000F0  // PG1 Mask
+#define GPIO_PCTL_PG1_I2C3SDA   0x00000030  // I2C3SDA on PG1
+#define GPIO_PCTL_PG1_M1FAULT2  0x00000050  // M1FAULT2 on PG1
+#define GPIO_PCTL_PG1_PHB1      0x00000060  // PHB1 on PG1
+#define GPIO_PCTL_PG1_T4CCP1    0x00000070  // T4CCP1 on PG1
+#define GPIO_PCTL_PG0_M         0x0000000F  // PG0 Mask
+#define GPIO_PCTL_PG0_I2C3SCL   0x00000003  // I2C3SCL on PG0
+#define GPIO_PCTL_PG0_M1FAULT1  0x00000005  // M1FAULT1 on PG0
+#define GPIO_PCTL_PG0_PHA1      0x00000006  // PHA1 on PG0
+#define GPIO_PCTL_PG0_T4CCP0    0x00000007  // T4CCP0 on PG0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_PCTL register for
+// port H.
+//
+//*****************************************************************************
+#define GPIO_PCTL_PH7_M         0xF0000000  // PH7 Mask
+#define GPIO_PCTL_PH7_SSI2TX    0x20000000  // SSI2TX on PH7
+#define GPIO_PCTL_PH7_M0PWM7    0x40000000  // M0PWM7 on PH7
+#define GPIO_PCTL_PH7_WT4CCP1   0x70000000  // WT4CCP1 on PH7
+#define GPIO_PCTL_PH6_M         0x0F000000  // PH6 Mask
+#define GPIO_PCTL_PH6_SSI2RX    0x02000000  // SSI2RX on PH6
+#define GPIO_PCTL_PH6_M0PWM6    0x04000000  // M0PWM6 on PH6
+#define GPIO_PCTL_PH6_WT4CCP0   0x07000000  // WT4CCP0 on PH6
+#define GPIO_PCTL_PH5_M         0x00F00000  // PH5 Mask
+#define GPIO_PCTL_PH5_SSI2FSS   0x00200000  // SSI2FSS on PH5
+#define GPIO_PCTL_PH5_M0PWM5    0x00400000  // M0PWM5 on PH5
+#define GPIO_PCTL_PH5_PHB0      0x00500000  // PHB0 on PH5
+#define GPIO_PCTL_PH5_WT3CCP1   0x00700000  // WT3CCP1 on PH5
+#define GPIO_PCTL_PH4_M         0x000F0000  // PH4 Mask
+#define GPIO_PCTL_PH4_SSI2CLK   0x00020000  // SSI2CLK on PH4
+#define GPIO_PCTL_PH4_M0PWM4    0x00040000  // M0PWM4 on PH4
+#define GPIO_PCTL_PH4_PHA0      0x00050000  // PHA0 on PH4
+#define GPIO_PCTL_PH4_WT3CCP0   0x00070000  // WT3CCP0 on PH4
+#define GPIO_PCTL_PH3_M         0x0000F000  // PH3 Mask
+#define GPIO_PCTL_PH3_AIN19     0x00000000  // AIN19 on PH3
+#define GPIO_PCTL_PH3_SSI3TX    0x00002000  // SSI3TX on PH3
+#define GPIO_PCTL_PH3_M0PWM3    0x00004000  // M0PWM3 on PH3
+#define GPIO_PCTL_PH3_M0FAULT3  0x00006000  // M0FAULT3 on PH3
+#define GPIO_PCTL_PH3_WT5CCP1   0x00007000  // WT5CCP1 on PH3
+#define GPIO_PCTL_PH2_M         0x00000F00  // PH2 Mask
+#define GPIO_PCTL_PH2_AIN18     0x00000000  // AIN18 on PH2
+#define GPIO_PCTL_PH2_SSI3RX    0x00000200  // SSI3RX on PH2
+#define GPIO_PCTL_PH2_M0PWM2    0x00000400  // M0PWM2 on PH2
+#define GPIO_PCTL_PH2_M0FAULT2  0x00000600  // M0FAULT2 on PH2
+#define GPIO_PCTL_PH2_WT5CCP0   0x00000700  // WT5CCP0 on PH2
+#define GPIO_PCTL_PH1_M         0x000000F0  // PH1 Mask
+#define GPIO_PCTL_PH1_AIN17     0x00000000  // AIN17 on PH1
+#define GPIO_PCTL_PH1_SSI3FSS   0x00000020  // SSI3FSS on PH1
+#define GPIO_PCTL_PH1_M0PWM1    0x00000040  // M0PWM1 on PH1
+#define GPIO_PCTL_PH1_IDX0      0x00000050  // IDX0 on PH1
+#define GPIO_PCTL_PH1_M0FAULT1  0x00000060  // M0FAULT1 on PH1
+#define GPIO_PCTL_PH1_WT2CCP1   0x00000070  // WT2CCP1 on PH1
+#define GPIO_PCTL_PH0_M         0x0000000F  // PH0 Mask
+#define GPIO_PCTL_PH0_AIN16     0x00000000  // AIN16 on PH0
+#define GPIO_PCTL_PH0_SSI3CLK   0x00000002  // SSI3CLK on PH0
+#define GPIO_PCTL_PH0_M0PWM0    0x00000004  // M0PWM0 on PH0
+#define GPIO_PCTL_PH0_M0FAULT0  0x00000006  // M0FAULT0 on PH0
+#define GPIO_PCTL_PH0_WT2CCP0   0x00000007  // WT2CCP0 on PH0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_PCTL register for
+// port J.
+//
+//*****************************************************************************
+#define GPIO_PCTL_PJ2_M         0x00000F00  // PJ2 Mask
+#define GPIO_PCTL_PJ2_U5RX      0x00000100  // U5RX on PJ2
+#define GPIO_PCTL_PJ2_IDX0      0x00000500  // IDX0 on PJ2
+#define GPIO_PCTL_PJ2_T2CCP0    0x00000700  // T2CCP0 on PJ2
+#define GPIO_PCTL_PJ1_M         0x000000F0  // PJ1 Mask
+#define GPIO_PCTL_PJ1_USB0DP    0x00000000  // USB0DP on PJ1
+#define GPIO_PCTL_PJ1_U4TX      0x00000010  // U4TX on PJ1
+#define GPIO_PCTL_PJ1_T1CCP1    0x00000070  // T1CCP1 on PJ1
+#define GPIO_PCTL_PJ0_M         0x0000000F  // PJ0 Mask
+#define GPIO_PCTL_PJ0_USB0DM    0x00000000  // USB0DM on PJ0
+#define GPIO_PCTL_PJ0_U4RX      0x00000001  // U4RX on PJ0
+#define GPIO_PCTL_PJ0_T1CCP0    0x00000007  // T1CCP0 on PJ0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_PCTL register for
+// port K.
+//
+//*****************************************************************************
+#define GPIO_PCTL_PK3_M         0x0000F000  // PK3 Mask
+#define GPIO_PCTL_PK3_SSI3TX    0x00002000  // SSI3TX on PK3
+#define GPIO_PCTL_PK3_M1FAULT3  0x00006000  // M1FAULT3 on PK3
+#define GPIO_PCTL_PK2_M         0x00000F00  // PK2 Mask
+#define GPIO_PCTL_PK2_SSI3RX    0x00000200  // SSI3RX on PK2
+#define GPIO_PCTL_PK2_M1FAULT2  0x00000600  // M1FAULT2 on PK2
+#define GPIO_PCTL_PK1_M         0x000000F0  // PK1 Mask
+#define GPIO_PCTL_PK1_SSI3FSS   0x00000020  // SSI3FSS on PK1
+#define GPIO_PCTL_PK1_M1FAULT1  0x00000060  // M1FAULT1 on PK1
+#define GPIO_PCTL_PK0_M         0x0000000F  // PK0 Mask
+#define GPIO_PCTL_PK0_SSI3CLK   0x00000002  // SSI3CLK on PK0
+#define GPIO_PCTL_PK0_M1FAULT0  0x00000006  // M1FAULT0 on PK0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SSI_O_CR0 register.
+//
+//*****************************************************************************
+#define SSI_CR0_SCR_M           0x0000FF00  // SSI Serial Clock Rate
+#define SSI_CR0_SPH             0x00000080  // SSI Serial Clock Phase
+#define SSI_CR0_SPO             0x00000040  // SSI Serial Clock Polarity
+#define SSI_CR0_FRF_M           0x00000030  // SSI Frame Format Select
+#define SSI_CR0_FRF_MOTO        0x00000000  // Freescale SPI Frame Format
+#define SSI_CR0_FRF_TI          0x00000010  // Synchronous Serial Frame Format
+#define SSI_CR0_FRF_NMW         0x00000020  // MICROWIRE Frame Format
+#define SSI_CR0_DSS_M           0x0000000F  // SSI Data Size Select
+#define SSI_CR0_DSS_4           0x00000003  // 4-bit data
+#define SSI_CR0_DSS_5           0x00000004  // 5-bit data
+#define SSI_CR0_DSS_6           0x00000005  // 6-bit data
+#define SSI_CR0_DSS_7           0x00000006  // 7-bit data
+#define SSI_CR0_DSS_8           0x00000007  // 8-bit data
+#define SSI_CR0_DSS_9           0x00000008  // 9-bit data
+#define SSI_CR0_DSS_10          0x00000009  // 10-bit data
+#define SSI_CR0_DSS_11          0x0000000A  // 11-bit data
+#define SSI_CR0_DSS_12          0x0000000B  // 12-bit data
+#define SSI_CR0_DSS_13          0x0000000C  // 13-bit data
+#define SSI_CR0_DSS_14          0x0000000D  // 14-bit data
+#define SSI_CR0_DSS_15          0x0000000E  // 15-bit data
+#define SSI_CR0_DSS_16          0x0000000F  // 16-bit data
+#define SSI_CR0_SCR_S           8
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SSI_O_CR1 register.
+//
+//*****************************************************************************
+#define SSI_CR1_EOT             0x00000010  // End of Transmission
+#define SSI_CR1_MS              0x00000004  // SSI Master/Slave Select
+#define SSI_CR1_SSE             0x00000002  // SSI Synchronous Serial Port
+                                            // Enable
+#define SSI_CR1_LBM             0x00000001  // SSI Loopback Mode
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SSI_O_DR register.
+//
+//*****************************************************************************
+#define SSI_DR_DATA_M           0x0000FFFF  // SSI Receive/Transmit Data
+#define SSI_DR_DATA_S           0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SSI_O_SR register.
+//
+//*****************************************************************************
+#define SSI_SR_BSY              0x00000010  // SSI Busy Bit
+#define SSI_SR_RFF              0x00000008  // SSI Receive FIFO Full
+#define SSI_SR_RNE              0x00000004  // SSI Receive FIFO Not Empty
+#define SSI_SR_TNF              0x00000002  // SSI Transmit FIFO Not Full
+#define SSI_SR_TFE              0x00000001  // SSI Transmit FIFO Empty
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SSI_O_CPSR register.
+//
+//*****************************************************************************
+#define SSI_CPSR_CPSDVSR_M      0x000000FF  // SSI Clock Prescale Divisor
+#define SSI_CPSR_CPSDVSR_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SSI_O_IM register.
+//
+//*****************************************************************************
+#define SSI_IM_TXIM             0x00000008  // SSI Transmit FIFO Interrupt Mask
+#define SSI_IM_RXIM             0x00000004  // SSI Receive FIFO Interrupt Mask
+#define SSI_IM_RTIM             0x00000002  // SSI Receive Time-Out Interrupt
+                                            // Mask
+#define SSI_IM_RORIM            0x00000001  // SSI Receive Overrun Interrupt
+                                            // Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SSI_O_RIS register.
+//
+//*****************************************************************************
+#define SSI_RIS_TXRIS           0x00000008  // SSI Transmit FIFO Raw Interrupt
+                                            // Status
+#define SSI_RIS_RXRIS           0x00000004  // SSI Receive FIFO Raw Interrupt
+                                            // Status
+#define SSI_RIS_RTRIS           0x00000002  // SSI Receive Time-Out Raw
+                                            // Interrupt Status
+#define SSI_RIS_RORRIS          0x00000001  // SSI Receive Overrun Raw
+                                            // Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SSI_O_MIS register.
+//
+//*****************************************************************************
+#define SSI_MIS_TXMIS           0x00000008  // SSI Transmit FIFO Masked
+                                            // Interrupt Status
+#define SSI_MIS_RXMIS           0x00000004  // SSI Receive FIFO Masked
+                                            // Interrupt Status
+#define SSI_MIS_RTMIS           0x00000002  // SSI Receive Time-Out Masked
+                                            // Interrupt Status
+#define SSI_MIS_RORMIS          0x00000001  // SSI Receive Overrun Masked
+                                            // Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SSI_O_ICR register.
+//
+//*****************************************************************************
+#define SSI_ICR_RTIC            0x00000002  // SSI Receive Time-Out Interrupt
+                                            // Clear
+#define SSI_ICR_RORIC           0x00000001  // SSI Receive Overrun Interrupt
+                                            // Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SSI_O_DMACTL register.
+//
+//*****************************************************************************
+#define SSI_DMACTL_TXDMAE       0x00000002  // Transmit DMA Enable
+#define SSI_DMACTL_RXDMAE       0x00000001  // Receive DMA Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SSI_O_CC register.
+//
+//*****************************************************************************
+#define SSI_CC_CS_M             0x0000000F  // SSI Baud Clock Source
+#define SSI_CC_CS_SYSPLL        0x00000000  // System clock (based on clock
+                                            // source and divisor factor)
+#define SSI_CC_CS_PIOSC         0x00000005  // PIOSC
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_DR register.
+//
+//*****************************************************************************
+#define UART_DR_OE              0x00000800  // UART Overrun Error
+#define UART_DR_BE              0x00000400  // UART Break Error
+#define UART_DR_PE              0x00000200  // UART Parity Error
+#define UART_DR_FE              0x00000100  // UART Framing Error
+#define UART_DR_DATA_M          0x000000FF  // Data Transmitted or Received
+#define UART_DR_DATA_S          0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_RSR register.
+//
+//*****************************************************************************
+#define UART_RSR_OE             0x00000008  // UART Overrun Error
+#define UART_RSR_BE             0x00000004  // UART Break Error
+#define UART_RSR_PE             0x00000002  // UART Parity Error
+#define UART_RSR_FE             0x00000001  // UART Framing Error
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_ECR register.
+//
+//*****************************************************************************
+#define UART_ECR_DATA_M         0x000000FF  // Error Clear
+#define UART_ECR_DATA_S         0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_FR register.
+//
+//*****************************************************************************
+#define UART_FR_RI              0x00000100  // Ring Indicator
+#define UART_FR_TXFE            0x00000080  // UART Transmit FIFO Empty
+#define UART_FR_RXFF            0x00000040  // UART Receive FIFO Full
+#define UART_FR_TXFF            0x00000020  // UART Transmit FIFO Full
+#define UART_FR_RXFE            0x00000010  // UART Receive FIFO Empty
+#define UART_FR_BUSY            0x00000008  // UART Busy
+#define UART_FR_DCD             0x00000004  // Data Carrier Detect
+#define UART_FR_DSR             0x00000002  // Data Set Ready
+#define UART_FR_CTS             0x00000001  // Clear To Send
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_ILPR register.
+//
+//*****************************************************************************
+#define UART_ILPR_ILPDVSR_M     0x000000FF  // IrDA Low-Power Divisor
+#define UART_ILPR_ILPDVSR_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_IBRD register.
+//
+//*****************************************************************************
+#define UART_IBRD_DIVINT_M      0x0000FFFF  // Integer Baud-Rate Divisor
+#define UART_IBRD_DIVINT_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_FBRD register.
+//
+//*****************************************************************************
+#define UART_FBRD_DIVFRAC_M     0x0000003F  // Fractional Baud-Rate Divisor
+#define UART_FBRD_DIVFRAC_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_LCRH register.
+//
+//*****************************************************************************
+#define UART_LCRH_SPS           0x00000080  // UART Stick Parity Select
+#define UART_LCRH_WLEN_M        0x00000060  // UART Word Length
+#define UART_LCRH_WLEN_5        0x00000000  // 5 bits (default)
+#define UART_LCRH_WLEN_6        0x00000020  // 6 bits
+#define UART_LCRH_WLEN_7        0x00000040  // 7 bits
+#define UART_LCRH_WLEN_8        0x00000060  // 8 bits
+#define UART_LCRH_FEN           0x00000010  // UART Enable FIFOs
+#define UART_LCRH_STP2          0x00000008  // UART Two Stop Bits Select
+#define UART_LCRH_EPS           0x00000004  // UART Even Parity Select
+#define UART_LCRH_PEN           0x00000002  // UART Parity Enable
+#define UART_LCRH_BRK           0x00000001  // UART Send Break
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_CTL register.
+//
+//*****************************************************************************
+#define UART_CTL_CTSEN          0x00008000  // Enable Clear To Send
+#define UART_CTL_RTSEN          0x00004000  // Enable Request to Send
+#define UART_CTL_RTS            0x00000800  // Request to Send
+#define UART_CTL_DTR            0x00000400  // Data Terminal Ready
+#define UART_CTL_RXE            0x00000200  // UART Receive Enable
+#define UART_CTL_TXE            0x00000100  // UART Transmit Enable
+#define UART_CTL_LBE            0x00000080  // UART Loop Back Enable
+#define UART_CTL_HSE            0x00000020  // High-Speed Enable
+#define UART_CTL_EOT            0x00000010  // End of Transmission
+#define UART_CTL_SMART          0x00000008  // ISO 7816 Smart Card Support
+#define UART_CTL_SIRLP          0x00000004  // UART SIR Low-Power Mode
+#define UART_CTL_SIREN          0x00000002  // UART SIR Enable
+#define UART_CTL_UARTEN         0x00000001  // UART Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_IFLS register.
+//
+//*****************************************************************************
+#define UART_IFLS_RX_M          0x00000038  // UART Receive Interrupt FIFO
+                                            // Level Select
+#define UART_IFLS_RX1_8         0x00000000  // RX FIFO >= 1/8 full
+#define UART_IFLS_RX2_8         0x00000008  // RX FIFO >= 1/4 full
+#define UART_IFLS_RX4_8         0x00000010  // RX FIFO >= 1/2 full (default)
+#define UART_IFLS_RX6_8         0x00000018  // RX FIFO >= 3/4 full
+#define UART_IFLS_RX7_8         0x00000020  // RX FIFO >= 7/8 full
+#define UART_IFLS_TX_M          0x00000007  // UART Transmit Interrupt FIFO
+                                            // Level Select
+#define UART_IFLS_TX1_8         0x00000000  // TX FIFO <= 1/8 full
+#define UART_IFLS_TX2_8         0x00000001  // TX FIFO <= 1/4 full
+#define UART_IFLS_TX4_8         0x00000002  // TX FIFO <= 1/2 full (default)
+#define UART_IFLS_TX6_8         0x00000003  // TX FIFO <= 3/4 full
+#define UART_IFLS_TX7_8         0x00000004  // TX FIFO <= 7/8 full
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_IM register.
+//
+//*****************************************************************************
+#define UART_IM_9BITIM          0x00001000  // 9-Bit Mode Interrupt Mask
+#define UART_IM_OEIM            0x00000400  // UART Overrun Error Interrupt
+                                            // Mask
+#define UART_IM_BEIM            0x00000200  // UART Break Error Interrupt Mask
+#define UART_IM_PEIM            0x00000100  // UART Parity Error Interrupt Mask
+#define UART_IM_FEIM            0x00000080  // UART Framing Error Interrupt
+                                            // Mask
+#define UART_IM_RTIM            0x00000040  // UART Receive Time-Out Interrupt
+                                            // Mask
+#define UART_IM_TXIM            0x00000020  // UART Transmit Interrupt Mask
+#define UART_IM_RXIM            0x00000010  // UART Receive Interrupt Mask
+#define UART_IM_DSRMIM          0x00000008  // UART Data Set Ready Modem
+                                            // Interrupt Mask
+#define UART_IM_DCDMIM          0x00000004  // UART Data Carrier Detect Modem
+                                            // Interrupt Mask
+#define UART_IM_CTSMIM          0x00000002  // UART Clear to Send Modem
+                                            // Interrupt Mask
+#define UART_IM_RIMIM           0x00000001  // UART Ring Indicator Modem
+                                            // Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_RIS register.
+//
+//*****************************************************************************
+#define UART_RIS_9BITRIS        0x00001000  // 9-Bit Mode Raw Interrupt Status
+#define UART_RIS_OERIS          0x00000400  // UART Overrun Error Raw Interrupt
+                                            // Status
+#define UART_RIS_BERIS          0x00000200  // UART Break Error Raw Interrupt
+                                            // Status
+#define UART_RIS_PERIS          0x00000100  // UART Parity Error Raw Interrupt
+                                            // Status
+#define UART_RIS_FERIS          0x00000080  // UART Framing Error Raw Interrupt
+                                            // Status
+#define UART_RIS_RTRIS          0x00000040  // UART Receive Time-Out Raw
+                                            // Interrupt Status
+#define UART_RIS_TXRIS          0x00000020  // UART Transmit Raw Interrupt
+                                            // Status
+#define UART_RIS_RXRIS          0x00000010  // UART Receive Raw Interrupt
+                                            // Status
+#define UART_RIS_DSRRIS         0x00000008  // UART Data Set Ready Modem Raw
+                                            // Interrupt Status
+#define UART_RIS_DCDRIS         0x00000004  // UART Data Carrier Detect Modem
+                                            // Raw Interrupt Status
+#define UART_RIS_CTSRIS         0x00000002  // UART Clear to Send Modem Raw
+                                            // Interrupt Status
+#define UART_RIS_RIRIS          0x00000001  // UART Ring Indicator Modem Raw
+                                            // Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_MIS register.
+//
+//*****************************************************************************
+#define UART_MIS_9BITMIS        0x00001000  // 9-Bit Mode Masked Interrupt
+                                            // Status
+#define UART_MIS_OEMIS          0x00000400  // UART Overrun Error Masked
+                                            // Interrupt Status
+#define UART_MIS_BEMIS          0x00000200  // UART Break Error Masked
+                                            // Interrupt Status
+#define UART_MIS_PEMIS          0x00000100  // UART Parity Error Masked
+                                            // Interrupt Status
+#define UART_MIS_FEMIS          0x00000080  // UART Framing Error Masked
+                                            // Interrupt Status
+#define UART_MIS_RTMIS          0x00000040  // UART Receive Time-Out Masked
+                                            // Interrupt Status
+#define UART_MIS_TXMIS          0x00000020  // UART Transmit Masked Interrupt
+                                            // Status
+#define UART_MIS_RXMIS          0x00000010  // UART Receive Masked Interrupt
+                                            // Status
+#define UART_MIS_DSRMIS         0x00000008  // UART Data Set Ready Modem Masked
+                                            // Interrupt Status
+#define UART_MIS_DCDMIS         0x00000004  // UART Data Carrier Detect Modem
+                                            // Masked Interrupt Status
+#define UART_MIS_CTSMIS         0x00000002  // UART Clear to Send Modem Masked
+                                            // Interrupt Status
+#define UART_MIS_RIMIS          0x00000001  // UART Ring Indicator Modem Masked
+                                            // Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_ICR register.
+//
+//*****************************************************************************
+#define UART_ICR_9BITIC         0x00001000  // 9-Bit Mode Interrupt Clear
+#define UART_ICR_OEIC           0x00000400  // Overrun Error Interrupt Clear
+#define UART_ICR_BEIC           0x00000200  // Break Error Interrupt Clear
+#define UART_ICR_PEIC           0x00000100  // Parity Error Interrupt Clear
+#define UART_ICR_FEIC           0x00000080  // Framing Error Interrupt Clear
+#define UART_ICR_RTIC           0x00000040  // Receive Time-Out Interrupt Clear
+#define UART_ICR_TXIC           0x00000020  // Transmit Interrupt Clear
+#define UART_ICR_RXIC           0x00000010  // Receive Interrupt Clear
+#define UART_ICR_DSRMIC         0x00000008  // UART Data Set Ready Modem
+                                            // Interrupt Clear
+#define UART_ICR_DCDMIC         0x00000004  // UART Data Carrier Detect Modem
+                                            // Interrupt Clear
+#define UART_ICR_CTSMIC         0x00000002  // UART Clear to Send Modem
+                                            // Interrupt Clear
+#define UART_ICR_RIMIC          0x00000001  // UART Ring Indicator Modem
+                                            // Interrupt Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_DMACTL register.
+//
+//*****************************************************************************
+#define UART_DMACTL_DMAERR      0x00000004  // DMA on Error
+#define UART_DMACTL_TXDMAE      0x00000002  // Transmit DMA Enable
+#define UART_DMACTL_RXDMAE      0x00000001  // Receive DMA Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_9BITADDR
+// register.
+//
+//*****************************************************************************
+#define UART_9BITADDR_9BITEN    0x00008000  // Enable 9-Bit Mode
+#define UART_9BITADDR_ADDR_M    0x000000FF  // Self Address for 9-Bit Mode
+#define UART_9BITADDR_ADDR_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_9BITAMASK
+// register.
+//
+//*****************************************************************************
+#define UART_9BITAMASK_MASK_M   0x000000FF  // Self Address Mask for 9-Bit Mode
+#define UART_9BITAMASK_MASK_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_PP register.
+//
+//*****************************************************************************
+#define UART_PP_NB              0x00000002  // 9-Bit Support
+#define UART_PP_SC              0x00000001  // Smart Card Support
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UART_O_CC register.
+//
+//*****************************************************************************
+#define UART_CC_CS_M            0x0000000F  // UART Baud Clock Source
+#define UART_CC_CS_SYSCLK       0x00000000  // System clock (based on clock
+                                            // source and divisor factor)
+#define UART_CC_CS_PIOSC        0x00000005  // PIOSC
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MSA register.
+//
+//*****************************************************************************
+#define I2C_MSA_SA_M            0x000000FE  // I2C Slave Address
+#define I2C_MSA_RS              0x00000001  // Receive not send
+#define I2C_MSA_SA_S            1
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MCS register.
+//
+//*****************************************************************************
+#define I2C_MCS_CLKTO           0x00000080  // Clock Timeout Error
+#define I2C_MCS_BUSBSY          0x00000040  // Bus Busy
+#define I2C_MCS_IDLE            0x00000020  // I2C Idle
+#define I2C_MCS_ARBLST          0x00000010  // Arbitration Lost
+#define I2C_MCS_HS              0x00000010  // High-Speed Enable
+#define I2C_MCS_ACK             0x00000008  // Data Acknowledge Enable
+#define I2C_MCS_DATACK          0x00000008  // Acknowledge Data
+#define I2C_MCS_ADRACK          0x00000004  // Acknowledge Address
+#define I2C_MCS_STOP            0x00000004  // Generate STOP
+#define I2C_MCS_ERROR           0x00000002  // Error
+#define I2C_MCS_START           0x00000002  // Generate START
+#define I2C_MCS_RUN             0x00000001  // I2C Master Enable
+#define I2C_MCS_BUSY            0x00000001  // I2C Busy
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MDR register.
+//
+//*****************************************************************************
+#define I2C_MDR_DATA_M          0x000000FF  // This byte contains the data
+                                            // transferred during a transaction
+#define I2C_MDR_DATA_S          0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MTPR register.
+//
+//*****************************************************************************
+#define I2C_MTPR_HS             0x00000080  // High-Speed Enable
+#define I2C_MTPR_TPR_M          0x0000007F  // Timer Period
+#define I2C_MTPR_TPR_S          0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MIMR register.
+//
+//*****************************************************************************
+#define I2C_MIMR_CLKIM          0x00000002  // Clock Timeout Interrupt Mask
+#define I2C_MIMR_IM             0x00000001  // Master Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MRIS register.
+//
+//*****************************************************************************
+#define I2C_MRIS_CLKRIS         0x00000002  // Clock Timeout Raw Interrupt
+                                            // Status
+#define I2C_MRIS_RIS            0x00000001  // Master Raw Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MMIS register.
+//
+//*****************************************************************************
+#define I2C_MMIS_CLKMIS         0x00000002  // Clock Timeout Masked Interrupt
+                                            // Status
+#define I2C_MMIS_MIS            0x00000001  // Masked Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MICR register.
+//
+//*****************************************************************************
+#define I2C_MICR_CLKIC          0x00000002  // Clock Timeout Interrupt Clear
+#define I2C_MICR_IC             0x00000001  // Master Interrupt Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MCR register.
+//
+//*****************************************************************************
+#define I2C_MCR_GFE             0x00000040  // I2C Glitch Filter Enable
+#define I2C_MCR_SFE             0x00000020  // I2C Slave Function Enable
+#define I2C_MCR_MFE             0x00000010  // I2C Master Function Enable
+#define I2C_MCR_LPBK            0x00000001  // I2C Loopback
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MCLKOCNT register.
+//
+//*****************************************************************************
+#define I2C_MCLKOCNT_CNTL_M     0x000000FF  // I2C Master Count
+#define I2C_MCLKOCNT_CNTL_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MBMON register.
+//
+//*****************************************************************************
+#define I2C_MBMON_SDA           0x00000002  // I2C SDA Status
+#define I2C_MBMON_SCL           0x00000001  // I2C SCL Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_MCR2 register.
+//
+//*****************************************************************************
+#define I2C_MCR2_GFPW_M         0x00000070  // I2C Glitch Filter Pulse Width
+#define I2C_MCR2_GFPW_BYPASS    0x00000000  // Bypass
+#define I2C_MCR2_GFPW_1         0x00000010  // 1 clock
+#define I2C_MCR2_GFPW_2         0x00000020  // 2 clocks
+#define I2C_MCR2_GFPW_3         0x00000030  // 3 clocks
+#define I2C_MCR2_GFPW_4         0x00000040  // 4 clocks
+#define I2C_MCR2_GFPW_8         0x00000050  // 8 clocks
+#define I2C_MCR2_GFPW_16        0x00000060  // 16 clocks
+#define I2C_MCR2_GFPW_31        0x00000070  // 31 clocks
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_SOAR register.
+//
+//*****************************************************************************
+#define I2C_SOAR_OAR_M          0x0000007F  // I2C Slave Own Address
+#define I2C_SOAR_OAR_S          0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_SCSR register.
+//
+//*****************************************************************************
+#define I2C_SCSR_OAR2SEL        0x00000008  // OAR2 Address Matched
+#define I2C_SCSR_FBR            0x00000004  // First Byte Received
+#define I2C_SCSR_TREQ           0x00000002  // Transmit Request
+#define I2C_SCSR_DA             0x00000001  // Device Active
+#define I2C_SCSR_RREQ           0x00000001  // Receive Request
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_SDR register.
+//
+//*****************************************************************************
+#define I2C_SDR_DATA_M          0x000000FF  // Data for Transfer
+#define I2C_SDR_DATA_S          0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_SIMR register.
+//
+//*****************************************************************************
+#define I2C_SIMR_STOPIM         0x00000004  // Stop Condition Interrupt Mask
+#define I2C_SIMR_STARTIM        0x00000002  // Start Condition Interrupt Mask
+#define I2C_SIMR_DATAIM         0x00000001  // Data Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_SRIS register.
+//
+//*****************************************************************************
+#define I2C_SRIS_STOPRIS        0x00000004  // Stop Condition Raw Interrupt
+                                            // Status
+#define I2C_SRIS_STARTRIS       0x00000002  // Start Condition Raw Interrupt
+                                            // Status
+#define I2C_SRIS_DATARIS        0x00000001  // Data Raw Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_SMIS register.
+//
+//*****************************************************************************
+#define I2C_SMIS_STOPMIS        0x00000004  // Stop Condition Masked Interrupt
+                                            // Status
+#define I2C_SMIS_STARTMIS       0x00000002  // Start Condition Masked Interrupt
+                                            // Status
+#define I2C_SMIS_DATAMIS        0x00000001  // Data Masked Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_SICR register.
+//
+//*****************************************************************************
+#define I2C_SICR_STOPIC         0x00000004  // Stop Condition Interrupt Clear
+#define I2C_SICR_STARTIC        0x00000002  // Start Condition Interrupt Clear
+#define I2C_SICR_DATAIC         0x00000001  // Data Interrupt Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_SOAR2 register.
+//
+//*****************************************************************************
+#define I2C_SOAR2_OAR2EN        0x00000080  // I2C Slave Own Address 2 Enable
+#define I2C_SOAR2_OAR2_M        0x0000007F  // I2C Slave Own Address 2
+#define I2C_SOAR2_OAR2_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_SACKCTL register.
+//
+//*****************************************************************************
+#define I2C_SACKCTL_ACKOVAL     0x00000002  // I2C Slave ACK Override Value
+#define I2C_SACKCTL_ACKOEN      0x00000001  // I2C Slave ACK Override Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_PP register.
+//
+//*****************************************************************************
+#define I2C_PP_HS               0x00000001  // High-Speed Capable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the I2C_O_PC register.
+//
+//*****************************************************************************
+#define I2C_PC_HS               0x00000001  // High-Speed Capable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_CTL register.
+//
+//*****************************************************************************
+#define PWM_CTL_GLOBALSYNC3     0x00000008  // Update PWM Generator 3
+#define PWM_CTL_GLOBALSYNC2     0x00000004  // Update PWM Generator 2
+#define PWM_CTL_GLOBALSYNC1     0x00000002  // Update PWM Generator 1
+#define PWM_CTL_GLOBALSYNC0     0x00000001  // Update PWM Generator 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_SYNC register.
+//
+//*****************************************************************************
+#define PWM_SYNC_SYNC3          0x00000008  // Reset Generator 3 Counter
+#define PWM_SYNC_SYNC2          0x00000004  // Reset Generator 2 Counter
+#define PWM_SYNC_SYNC1          0x00000002  // Reset Generator 1 Counter
+#define PWM_SYNC_SYNC0          0x00000001  // Reset Generator 0 Counter
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_ENABLE register.
+//
+//*****************************************************************************
+#define PWM_ENABLE_PWM7EN       0x00000080  // MnPWM7 Output Enable
+#define PWM_ENABLE_PWM6EN       0x00000040  // MnPWM6 Output Enable
+#define PWM_ENABLE_PWM5EN       0x00000020  // MnPWM5 Output Enable
+#define PWM_ENABLE_PWM4EN       0x00000010  // MnPWM4 Output Enable
+#define PWM_ENABLE_PWM3EN       0x00000008  // MnPWM3 Output Enable
+#define PWM_ENABLE_PWM2EN       0x00000004  // MnPWM2 Output Enable
+#define PWM_ENABLE_PWM1EN       0x00000002  // MnPWM1 Output Enable
+#define PWM_ENABLE_PWM0EN       0x00000001  // MnPWM0 Output Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_INVERT register.
+//
+//*****************************************************************************
+#define PWM_INVERT_PWM7INV      0x00000080  // Invert MnPWM7 Signal
+#define PWM_INVERT_PWM6INV      0x00000040  // Invert MnPWM6 Signal
+#define PWM_INVERT_PWM5INV      0x00000020  // Invert MnPWM5 Signal
+#define PWM_INVERT_PWM4INV      0x00000010  // Invert MnPWM4 Signal
+#define PWM_INVERT_PWM3INV      0x00000008  // Invert MnPWM3 Signal
+#define PWM_INVERT_PWM2INV      0x00000004  // Invert MnPWM2 Signal
+#define PWM_INVERT_PWM1INV      0x00000002  // Invert MnPWM1 Signal
+#define PWM_INVERT_PWM0INV      0x00000001  // Invert MnPWM0 Signal
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_FAULT register.
+//
+//*****************************************************************************
+#define PWM_FAULT_FAULT7        0x00000080  // MnPWM7 Fault
+#define PWM_FAULT_FAULT6        0x00000040  // MnPWM6 Fault
+#define PWM_FAULT_FAULT5        0x00000020  // MnPWM5 Fault
+#define PWM_FAULT_FAULT4        0x00000010  // MnPWM4 Fault
+#define PWM_FAULT_FAULT3        0x00000008  // MnPWM3 Fault
+#define PWM_FAULT_FAULT2        0x00000004  // MnPWM2 Fault
+#define PWM_FAULT_FAULT1        0x00000002  // MnPWM1 Fault
+#define PWM_FAULT_FAULT0        0x00000001  // MnPWM0 Fault
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_INTEN register.
+//
+//*****************************************************************************
+#define PWM_INTEN_INTFAULT3     0x00080000  // Interrupt Fault 3
+#define PWM_INTEN_INTFAULT2     0x00040000  // Interrupt Fault 2
+#define PWM_INTEN_INTFAULT1     0x00020000  // Interrupt Fault 1
+#define PWM_INTEN_INTFAULT0     0x00010000  // Interrupt Fault 0
+#define PWM_INTEN_INTPWM3       0x00000008  // PWM3 Interrupt Enable
+#define PWM_INTEN_INTPWM2       0x00000004  // PWM2 Interrupt Enable
+#define PWM_INTEN_INTPWM1       0x00000002  // PWM1 Interrupt Enable
+#define PWM_INTEN_INTPWM0       0x00000001  // PWM0 Interrupt Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_RIS register.
+//
+//*****************************************************************************
+#define PWM_RIS_INTFAULT3       0x00080000  // Interrupt Fault PWM 3
+#define PWM_RIS_INTFAULT2       0x00040000  // Interrupt Fault PWM 2
+#define PWM_RIS_INTFAULT1       0x00020000  // Interrupt Fault PWM 1
+#define PWM_RIS_INTFAULT0       0x00010000  // Interrupt Fault PWM 0
+#define PWM_RIS_INTPWM3         0x00000008  // PWM3 Interrupt Asserted
+#define PWM_RIS_INTPWM2         0x00000004  // PWM2 Interrupt Asserted
+#define PWM_RIS_INTPWM1         0x00000002  // PWM1 Interrupt Asserted
+#define PWM_RIS_INTPWM0         0x00000001  // PWM0 Interrupt Asserted
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_ISC register.
+//
+//*****************************************************************************
+#define PWM_ISC_INTFAULT3       0x00080000  // FAULT3 Interrupt Asserted
+#define PWM_ISC_INTFAULT2       0x00040000  // FAULT2 Interrupt Asserted
+#define PWM_ISC_INTFAULT1       0x00020000  // FAULT1 Interrupt Asserted
+#define PWM_ISC_INTFAULT0       0x00010000  // FAULT0 Interrupt Asserted
+#define PWM_ISC_INTPWM3         0x00000008  // PWM3 Interrupt Status
+#define PWM_ISC_INTPWM2         0x00000004  // PWM2 Interrupt Status
+#define PWM_ISC_INTPWM1         0x00000002  // PWM1 Interrupt Status
+#define PWM_ISC_INTPWM0         0x00000001  // PWM0 Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_STATUS register.
+//
+//*****************************************************************************
+#define PWM_STATUS_FAULT3       0x00000008  // Generator 3 Fault Status
+#define PWM_STATUS_FAULT2       0x00000004  // Generator 2 Fault Status
+#define PWM_STATUS_FAULT1       0x00000002  // Generator 1 Fault Status
+#define PWM_STATUS_FAULT0       0x00000001  // Generator 0 Fault Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_FAULTVAL register.
+//
+//*****************************************************************************
+#define PWM_FAULTVAL_PWM7       0x00000080  // MnPWM7 Fault Value
+#define PWM_FAULTVAL_PWM6       0x00000040  // MnPWM6 Fault Value
+#define PWM_FAULTVAL_PWM5       0x00000020  // MnPWM5 Fault Value
+#define PWM_FAULTVAL_PWM4       0x00000010  // MnPWM4 Fault Value
+#define PWM_FAULTVAL_PWM3       0x00000008  // MnPWM3 Fault Value
+#define PWM_FAULTVAL_PWM2       0x00000004  // MnPWM2 Fault Value
+#define PWM_FAULTVAL_PWM1       0x00000002  // MnPWM1 Fault Value
+#define PWM_FAULTVAL_PWM0       0x00000001  // MnPWM0 Fault Value
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_ENUPD register.
+//
+//*****************************************************************************
+#define PWM_ENUPD_ENUPD7_M      0x0000C000  // MnPWM7 Enable Update Mode
+#define PWM_ENUPD_ENUPD7_IMM    0x00000000  // Immediate
+#define PWM_ENUPD_ENUPD7_LSYNC  0x00008000  // Locally Synchronized
+#define PWM_ENUPD_ENUPD7_GSYNC  0x0000C000  // Globally Synchronized
+#define PWM_ENUPD_ENUPD6_M      0x00003000  // MnPWM6 Enable Update Mode
+#define PWM_ENUPD_ENUPD6_IMM    0x00000000  // Immediate
+#define PWM_ENUPD_ENUPD6_LSYNC  0x00002000  // Locally Synchronized
+#define PWM_ENUPD_ENUPD6_GSYNC  0x00003000  // Globally Synchronized
+#define PWM_ENUPD_ENUPD5_M      0x00000C00  // MnPWM5 Enable Update Mode
+#define PWM_ENUPD_ENUPD5_IMM    0x00000000  // Immediate
+#define PWM_ENUPD_ENUPD5_LSYNC  0x00000800  // Locally Synchronized
+#define PWM_ENUPD_ENUPD5_GSYNC  0x00000C00  // Globally Synchronized
+#define PWM_ENUPD_ENUPD4_M      0x00000300  // MnPWM4 Enable Update Mode
+#define PWM_ENUPD_ENUPD4_IMM    0x00000000  // Immediate
+#define PWM_ENUPD_ENUPD4_LSYNC  0x00000200  // Locally Synchronized
+#define PWM_ENUPD_ENUPD4_GSYNC  0x00000300  // Globally Synchronized
+#define PWM_ENUPD_ENUPD3_M      0x000000C0  // MnPWM3 Enable Update Mode
+#define PWM_ENUPD_ENUPD3_IMM    0x00000000  // Immediate
+#define PWM_ENUPD_ENUPD3_LSYNC  0x00000080  // Locally Synchronized
+#define PWM_ENUPD_ENUPD3_GSYNC  0x000000C0  // Globally Synchronized
+#define PWM_ENUPD_ENUPD2_M      0x00000030  // MnPWM2 Enable Update Mode
+#define PWM_ENUPD_ENUPD2_IMM    0x00000000  // Immediate
+#define PWM_ENUPD_ENUPD2_LSYNC  0x00000020  // Locally Synchronized
+#define PWM_ENUPD_ENUPD2_GSYNC  0x00000030  // Globally Synchronized
+#define PWM_ENUPD_ENUPD1_M      0x0000000C  // MnPWM1 Enable Update Mode
+#define PWM_ENUPD_ENUPD1_IMM    0x00000000  // Immediate
+#define PWM_ENUPD_ENUPD1_LSYNC  0x00000008  // Locally Synchronized
+#define PWM_ENUPD_ENUPD1_GSYNC  0x0000000C  // Globally Synchronized
+#define PWM_ENUPD_ENUPD0_M      0x00000003  // MnPWM0 Enable Update Mode
+#define PWM_ENUPD_ENUPD0_IMM    0x00000000  // Immediate
+#define PWM_ENUPD_ENUPD0_LSYNC  0x00000002  // Locally Synchronized
+#define PWM_ENUPD_ENUPD0_GSYNC  0x00000003  // Globally Synchronized
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_CTL register.
+//
+//*****************************************************************************
+#define PWM_0_CTL_LATCH         0x00040000  // Latch Fault Input
+#define PWM_0_CTL_MINFLTPER     0x00020000  // Minimum Fault Period
+#define PWM_0_CTL_FLTSRC        0x00010000  // Fault Condition Source
+#define PWM_0_CTL_DBFALLUPD_M   0x0000C000  // PWMnDBFALL Update Mode
+#define PWM_0_CTL_DBFALLUPD_I   0x00000000  // Immediate
+#define PWM_0_CTL_DBFALLUPD_LS  0x00008000  // Locally Synchronized
+#define PWM_0_CTL_DBFALLUPD_GS  0x0000C000  // Globally Synchronized
+#define PWM_0_CTL_DBRISEUPD_M   0x00003000  // PWMnDBRISE Update Mode
+#define PWM_0_CTL_DBRISEUPD_I   0x00000000  // Immediate
+#define PWM_0_CTL_DBRISEUPD_LS  0x00002000  // Locally Synchronized
+#define PWM_0_CTL_DBRISEUPD_GS  0x00003000  // Globally Synchronized
+#define PWM_0_CTL_DBCTLUPD_M    0x00000C00  // PWMnDBCTL Update Mode
+#define PWM_0_CTL_DBCTLUPD_I    0x00000000  // Immediate
+#define PWM_0_CTL_DBCTLUPD_LS   0x00000800  // Locally Synchronized
+#define PWM_0_CTL_DBCTLUPD_GS   0x00000C00  // Globally Synchronized
+#define PWM_0_CTL_GENBUPD_M     0x00000300  // PWMnGENB Update Mode
+#define PWM_0_CTL_GENBUPD_I     0x00000000  // Immediate
+#define PWM_0_CTL_GENBUPD_LS    0x00000200  // Locally Synchronized
+#define PWM_0_CTL_GENBUPD_GS    0x00000300  // Globally Synchronized
+#define PWM_0_CTL_GENAUPD_M     0x000000C0  // PWMnGENA Update Mode
+#define PWM_0_CTL_GENAUPD_I     0x00000000  // Immediate
+#define PWM_0_CTL_GENAUPD_LS    0x00000080  // Locally Synchronized
+#define PWM_0_CTL_GENAUPD_GS    0x000000C0  // Globally Synchronized
+#define PWM_0_CTL_CMPBUPD       0x00000020  // Comparator B Update Mode
+#define PWM_0_CTL_CMPAUPD       0x00000010  // Comparator A Update Mode
+#define PWM_0_CTL_LOADUPD       0x00000008  // Load Register Update Mode
+#define PWM_0_CTL_DEBUG         0x00000004  // Debug Mode
+#define PWM_0_CTL_MODE          0x00000002  // Counter Mode
+#define PWM_0_CTL_ENABLE        0x00000001  // PWM Block Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_INTEN register.
+//
+//*****************************************************************************
+#define PWM_0_INTEN_TRCMPBD     0x00002000  // Trigger for Counter=PWMnCMPB
+                                            // Down
+#define PWM_0_INTEN_TRCMPBU     0x00001000  // Trigger for Counter=PWMnCMPB Up
+#define PWM_0_INTEN_TRCMPAD     0x00000800  // Trigger for Counter=PWMnCMPA
+                                            // Down
+#define PWM_0_INTEN_TRCMPAU     0x00000400  // Trigger for Counter=PWMnCMPA Up
+#define PWM_0_INTEN_TRCNTLOAD   0x00000200  // Trigger for Counter=PWMnLOAD
+#define PWM_0_INTEN_TRCNTZERO   0x00000100  // Trigger for Counter=0
+#define PWM_0_INTEN_INTCMPBD    0x00000020  // Interrupt for Counter=PWMnCMPB
+                                            // Down
+#define PWM_0_INTEN_INTCMPBU    0x00000010  // Interrupt for Counter=PWMnCMPB
+                                            // Up
+#define PWM_0_INTEN_INTCMPAD    0x00000008  // Interrupt for Counter=PWMnCMPA
+                                            // Down
+#define PWM_0_INTEN_INTCMPAU    0x00000004  // Interrupt for Counter=PWMnCMPA
+                                            // Up
+#define PWM_0_INTEN_INTCNTLOAD  0x00000002  // Interrupt for Counter=PWMnLOAD
+#define PWM_0_INTEN_INTCNTZERO  0x00000001  // Interrupt for Counter=0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_RIS register.
+//
+//*****************************************************************************
+#define PWM_0_RIS_INTCMPBD      0x00000020  // Comparator B Down Interrupt
+                                            // Status
+#define PWM_0_RIS_INTCMPBU      0x00000010  // Comparator B Up Interrupt Status
+#define PWM_0_RIS_INTCMPAD      0x00000008  // Comparator A Down Interrupt
+                                            // Status
+#define PWM_0_RIS_INTCMPAU      0x00000004  // Comparator A Up Interrupt Status
+#define PWM_0_RIS_INTCNTLOAD    0x00000002  // Counter=Load Interrupt Status
+#define PWM_0_RIS_INTCNTZERO    0x00000001  // Counter=0 Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_ISC register.
+//
+//*****************************************************************************
+#define PWM_0_ISC_INTCMPBD      0x00000020  // Comparator B Down Interrupt
+#define PWM_0_ISC_INTCMPBU      0x00000010  // Comparator B Up Interrupt
+#define PWM_0_ISC_INTCMPAD      0x00000008  // Comparator A Down Interrupt
+#define PWM_0_ISC_INTCMPAU      0x00000004  // Comparator A Up Interrupt
+#define PWM_0_ISC_INTCNTLOAD    0x00000002  // Counter=Load Interrupt
+#define PWM_0_ISC_INTCNTZERO    0x00000001  // Counter=0 Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_LOAD register.
+//
+//*****************************************************************************
+#define PWM_0_LOAD_M            0x0000FFFF  // Counter Load Value
+#define PWM_0_LOAD_S            0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_COUNT register.
+//
+//*****************************************************************************
+#define PWM_0_COUNT_M           0x0000FFFF  // Counter Value
+#define PWM_0_COUNT_S           0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_CMPA register.
+//
+//*****************************************************************************
+#define PWM_0_CMPA_M            0x0000FFFF  // Comparator A Value
+#define PWM_0_CMPA_S            0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_CMPB register.
+//
+//*****************************************************************************
+#define PWM_0_CMPB_M            0x0000FFFF  // Comparator B Value
+#define PWM_0_CMPB_S            0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_GENA register.
+//
+//*****************************************************************************
+#define PWM_0_GENA_ACTCMPBD_M   0x00000C00  // Action for Comparator B Down
+#define PWM_0_GENA_ACTCMPBD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_0_GENA_ACTCMPBD_INV 0x00000400  // Invert pwmA
+#define PWM_0_GENA_ACTCMPBD_ZERO                                              \
+                                0x00000800  // Drive pwmA Low
+#define PWM_0_GENA_ACTCMPBD_ONE 0x00000C00  // Drive pwmA High
+#define PWM_0_GENA_ACTCMPBU_M   0x00000300  // Action for Comparator B Up
+#define PWM_0_GENA_ACTCMPBU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_0_GENA_ACTCMPBU_INV 0x00000100  // Invert pwmA
+#define PWM_0_GENA_ACTCMPBU_ZERO                                              \
+                                0x00000200  // Drive pwmA Low
+#define PWM_0_GENA_ACTCMPBU_ONE 0x00000300  // Drive pwmA High
+#define PWM_0_GENA_ACTCMPAD_M   0x000000C0  // Action for Comparator A Down
+#define PWM_0_GENA_ACTCMPAD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_0_GENA_ACTCMPAD_INV 0x00000040  // Invert pwmA
+#define PWM_0_GENA_ACTCMPAD_ZERO                                              \
+                                0x00000080  // Drive pwmA Low
+#define PWM_0_GENA_ACTCMPAD_ONE 0x000000C0  // Drive pwmA High
+#define PWM_0_GENA_ACTCMPAU_M   0x00000030  // Action for Comparator A Up
+#define PWM_0_GENA_ACTCMPAU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_0_GENA_ACTCMPAU_INV 0x00000010  // Invert pwmA
+#define PWM_0_GENA_ACTCMPAU_ZERO                                              \
+                                0x00000020  // Drive pwmA Low
+#define PWM_0_GENA_ACTCMPAU_ONE 0x00000030  // Drive pwmA High
+#define PWM_0_GENA_ACTLOAD_M    0x0000000C  // Action for Counter=LOAD
+#define PWM_0_GENA_ACTLOAD_NONE 0x00000000  // Do nothing
+#define PWM_0_GENA_ACTLOAD_INV  0x00000004  // Invert pwmA
+#define PWM_0_GENA_ACTLOAD_ZERO 0x00000008  // Drive pwmA Low
+#define PWM_0_GENA_ACTLOAD_ONE  0x0000000C  // Drive pwmA High
+#define PWM_0_GENA_ACTZERO_M    0x00000003  // Action for Counter=0
+#define PWM_0_GENA_ACTZERO_NONE 0x00000000  // Do nothing
+#define PWM_0_GENA_ACTZERO_INV  0x00000001  // Invert pwmA
+#define PWM_0_GENA_ACTZERO_ZERO 0x00000002  // Drive pwmA Low
+#define PWM_0_GENA_ACTZERO_ONE  0x00000003  // Drive pwmA High
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_GENB register.
+//
+//*****************************************************************************
+#define PWM_0_GENB_ACTCMPBD_M   0x00000C00  // Action for Comparator B Down
+#define PWM_0_GENB_ACTCMPBD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_0_GENB_ACTCMPBD_INV 0x00000400  // Invert pwmB
+#define PWM_0_GENB_ACTCMPBD_ZERO                                              \
+                                0x00000800  // Drive pwmB Low
+#define PWM_0_GENB_ACTCMPBD_ONE 0x00000C00  // Drive pwmB High
+#define PWM_0_GENB_ACTCMPBU_M   0x00000300  // Action for Comparator B Up
+#define PWM_0_GENB_ACTCMPBU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_0_GENB_ACTCMPBU_INV 0x00000100  // Invert pwmB
+#define PWM_0_GENB_ACTCMPBU_ZERO                                              \
+                                0x00000200  // Drive pwmB Low
+#define PWM_0_GENB_ACTCMPBU_ONE 0x00000300  // Drive pwmB High
+#define PWM_0_GENB_ACTCMPAD_M   0x000000C0  // Action for Comparator A Down
+#define PWM_0_GENB_ACTCMPAD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_0_GENB_ACTCMPAD_INV 0x00000040  // Invert pwmB
+#define PWM_0_GENB_ACTCMPAD_ZERO                                              \
+                                0x00000080  // Drive pwmB Low
+#define PWM_0_GENB_ACTCMPAD_ONE 0x000000C0  // Drive pwmB High
+#define PWM_0_GENB_ACTCMPAU_M   0x00000030  // Action for Comparator A Up
+#define PWM_0_GENB_ACTCMPAU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_0_GENB_ACTCMPAU_INV 0x00000010  // Invert pwmB
+#define PWM_0_GENB_ACTCMPAU_ZERO                                              \
+                                0x00000020  // Drive pwmB Low
+#define PWM_0_GENB_ACTCMPAU_ONE 0x00000030  // Drive pwmB High
+#define PWM_0_GENB_ACTLOAD_M    0x0000000C  // Action for Counter=LOAD
+#define PWM_0_GENB_ACTLOAD_NONE 0x00000000  // Do nothing
+#define PWM_0_GENB_ACTLOAD_INV  0x00000004  // Invert pwmB
+#define PWM_0_GENB_ACTLOAD_ZERO 0x00000008  // Drive pwmB Low
+#define PWM_0_GENB_ACTLOAD_ONE  0x0000000C  // Drive pwmB High
+#define PWM_0_GENB_ACTZERO_M    0x00000003  // Action for Counter=0
+#define PWM_0_GENB_ACTZERO_NONE 0x00000000  // Do nothing
+#define PWM_0_GENB_ACTZERO_INV  0x00000001  // Invert pwmB
+#define PWM_0_GENB_ACTZERO_ZERO 0x00000002  // Drive pwmB Low
+#define PWM_0_GENB_ACTZERO_ONE  0x00000003  // Drive pwmB High
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_DBCTL register.
+//
+//*****************************************************************************
+#define PWM_0_DBCTL_ENABLE      0x00000001  // Dead-Band Generator Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_DBRISE register.
+//
+//*****************************************************************************
+#define PWM_0_DBRISE_DELAY_M    0x00000FFF  // Dead-Band Rise Delay
+#define PWM_0_DBRISE_DELAY_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_DBFALL register.
+//
+//*****************************************************************************
+#define PWM_0_DBFALL_DELAY_M    0x00000FFF  // Dead-Band Fall Delay
+#define PWM_0_DBFALL_DELAY_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_FLTSRC0
+// register.
+//
+//*****************************************************************************
+#define PWM_0_FLTSRC0_FAULT3    0x00000008  // Fault3 Input
+#define PWM_0_FLTSRC0_FAULT2    0x00000004  // Fault2 Input
+#define PWM_0_FLTSRC0_FAULT1    0x00000002  // Fault1 Input
+#define PWM_0_FLTSRC0_FAULT0    0x00000001  // Fault0 Input
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_FLTSRC1
+// register.
+//
+//*****************************************************************************
+#define PWM_0_FLTSRC1_DCMP7     0x00000080  // Digital Comparator 7
+#define PWM_0_FLTSRC1_DCMP6     0x00000040  // Digital Comparator 6
+#define PWM_0_FLTSRC1_DCMP5     0x00000020  // Digital Comparator 5
+#define PWM_0_FLTSRC1_DCMP4     0x00000010  // Digital Comparator 4
+#define PWM_0_FLTSRC1_DCMP3     0x00000008  // Digital Comparator 3
+#define PWM_0_FLTSRC1_DCMP2     0x00000004  // Digital Comparator 2
+#define PWM_0_FLTSRC1_DCMP1     0x00000002  // Digital Comparator 1
+#define PWM_0_FLTSRC1_DCMP0     0x00000001  // Digital Comparator 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_MINFLTPER
+// register.
+//
+//*****************************************************************************
+#define PWM_0_MINFLTPER_M       0x0000FFFF  // Minimum Fault Period
+#define PWM_0_MINFLTPER_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_CTL register.
+//
+//*****************************************************************************
+#define PWM_1_CTL_LATCH         0x00040000  // Latch Fault Input
+#define PWM_1_CTL_MINFLTPER     0x00020000  // Minimum Fault Period
+#define PWM_1_CTL_FLTSRC        0x00010000  // Fault Condition Source
+#define PWM_1_CTL_DBFALLUPD_M   0x0000C000  // PWMnDBFALL Update Mode
+#define PWM_1_CTL_DBFALLUPD_I   0x00000000  // Immediate
+#define PWM_1_CTL_DBFALLUPD_LS  0x00008000  // Locally Synchronized
+#define PWM_1_CTL_DBFALLUPD_GS  0x0000C000  // Globally Synchronized
+#define PWM_1_CTL_DBRISEUPD_M   0x00003000  // PWMnDBRISE Update Mode
+#define PWM_1_CTL_DBRISEUPD_I   0x00000000  // Immediate
+#define PWM_1_CTL_DBRISEUPD_LS  0x00002000  // Locally Synchronized
+#define PWM_1_CTL_DBRISEUPD_GS  0x00003000  // Globally Synchronized
+#define PWM_1_CTL_DBCTLUPD_M    0x00000C00  // PWMnDBCTL Update Mode
+#define PWM_1_CTL_DBCTLUPD_I    0x00000000  // Immediate
+#define PWM_1_CTL_DBCTLUPD_LS   0x00000800  // Locally Synchronized
+#define PWM_1_CTL_DBCTLUPD_GS   0x00000C00  // Globally Synchronized
+#define PWM_1_CTL_GENBUPD_M     0x00000300  // PWMnGENB Update Mode
+#define PWM_1_CTL_GENBUPD_I     0x00000000  // Immediate
+#define PWM_1_CTL_GENBUPD_LS    0x00000200  // Locally Synchronized
+#define PWM_1_CTL_GENBUPD_GS    0x00000300  // Globally Synchronized
+#define PWM_1_CTL_GENAUPD_M     0x000000C0  // PWMnGENA Update Mode
+#define PWM_1_CTL_GENAUPD_I     0x00000000  // Immediate
+#define PWM_1_CTL_GENAUPD_LS    0x00000080  // Locally Synchronized
+#define PWM_1_CTL_GENAUPD_GS    0x000000C0  // Globally Synchronized
+#define PWM_1_CTL_CMPBUPD       0x00000020  // Comparator B Update Mode
+#define PWM_1_CTL_CMPAUPD       0x00000010  // Comparator A Update Mode
+#define PWM_1_CTL_LOADUPD       0x00000008  // Load Register Update Mode
+#define PWM_1_CTL_DEBUG         0x00000004  // Debug Mode
+#define PWM_1_CTL_MODE          0x00000002  // Counter Mode
+#define PWM_1_CTL_ENABLE        0x00000001  // PWM Block Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_INTEN register.
+//
+//*****************************************************************************
+#define PWM_1_INTEN_TRCMPBD     0x00002000  // Trigger for Counter=PWMnCMPB
+                                            // Down
+#define PWM_1_INTEN_TRCMPBU     0x00001000  // Trigger for Counter=PWMnCMPB Up
+#define PWM_1_INTEN_TRCMPAD     0x00000800  // Trigger for Counter=PWMnCMPA
+                                            // Down
+#define PWM_1_INTEN_TRCMPAU     0x00000400  // Trigger for Counter=PWMnCMPA Up
+#define PWM_1_INTEN_TRCNTLOAD   0x00000200  // Trigger for Counter=PWMnLOAD
+#define PWM_1_INTEN_TRCNTZERO   0x00000100  // Trigger for Counter=0
+#define PWM_1_INTEN_INTCMPBD    0x00000020  // Interrupt for Counter=PWMnCMPB
+                                            // Down
+#define PWM_1_INTEN_INTCMPBU    0x00000010  // Interrupt for Counter=PWMnCMPB
+                                            // Up
+#define PWM_1_INTEN_INTCMPAD    0x00000008  // Interrupt for Counter=PWMnCMPA
+                                            // Down
+#define PWM_1_INTEN_INTCMPAU    0x00000004  // Interrupt for Counter=PWMnCMPA
+                                            // Up
+#define PWM_1_INTEN_INTCNTLOAD  0x00000002  // Interrupt for Counter=PWMnLOAD
+#define PWM_1_INTEN_INTCNTZERO  0x00000001  // Interrupt for Counter=0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_RIS register.
+//
+//*****************************************************************************
+#define PWM_1_RIS_INTCMPBD      0x00000020  // Comparator B Down Interrupt
+                                            // Status
+#define PWM_1_RIS_INTCMPBU      0x00000010  // Comparator B Up Interrupt Status
+#define PWM_1_RIS_INTCMPAD      0x00000008  // Comparator A Down Interrupt
+                                            // Status
+#define PWM_1_RIS_INTCMPAU      0x00000004  // Comparator A Up Interrupt Status
+#define PWM_1_RIS_INTCNTLOAD    0x00000002  // Counter=Load Interrupt Status
+#define PWM_1_RIS_INTCNTZERO    0x00000001  // Counter=0 Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_ISC register.
+//
+//*****************************************************************************
+#define PWM_1_ISC_INTCMPBD      0x00000020  // Comparator B Down Interrupt
+#define PWM_1_ISC_INTCMPBU      0x00000010  // Comparator B Up Interrupt
+#define PWM_1_ISC_INTCMPAD      0x00000008  // Comparator A Down Interrupt
+#define PWM_1_ISC_INTCMPAU      0x00000004  // Comparator A Up Interrupt
+#define PWM_1_ISC_INTCNTLOAD    0x00000002  // Counter=Load Interrupt
+#define PWM_1_ISC_INTCNTZERO    0x00000001  // Counter=0 Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_LOAD register.
+//
+//*****************************************************************************
+#define PWM_1_LOAD_LOAD_M       0x0000FFFF  // Counter Load Value
+#define PWM_1_LOAD_LOAD_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_COUNT register.
+//
+//*****************************************************************************
+#define PWM_1_COUNT_COUNT_M     0x0000FFFF  // Counter Value
+#define PWM_1_COUNT_COUNT_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_CMPA register.
+//
+//*****************************************************************************
+#define PWM_1_CMPA_COMPA_M      0x0000FFFF  // Comparator A Value
+#define PWM_1_CMPA_COMPA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_CMPB register.
+//
+//*****************************************************************************
+#define PWM_1_CMPB_COMPB_M      0x0000FFFF  // Comparator B Value
+#define PWM_1_CMPB_COMPB_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_GENA register.
+//
+//*****************************************************************************
+#define PWM_1_GENA_ACTCMPBD_M   0x00000C00  // Action for Comparator B Down
+#define PWM_1_GENA_ACTCMPBD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_1_GENA_ACTCMPBD_INV 0x00000400  // Invert pwmA
+#define PWM_1_GENA_ACTCMPBD_ZERO                                              \
+                                0x00000800  // Drive pwmA Low
+#define PWM_1_GENA_ACTCMPBD_ONE 0x00000C00  // Drive pwmA High
+#define PWM_1_GENA_ACTCMPBU_M   0x00000300  // Action for Comparator B Up
+#define PWM_1_GENA_ACTCMPBU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_1_GENA_ACTCMPBU_INV 0x00000100  // Invert pwmA
+#define PWM_1_GENA_ACTCMPBU_ZERO                                              \
+                                0x00000200  // Drive pwmA Low
+#define PWM_1_GENA_ACTCMPBU_ONE 0x00000300  // Drive pwmA High
+#define PWM_1_GENA_ACTCMPAD_M   0x000000C0  // Action for Comparator A Down
+#define PWM_1_GENA_ACTCMPAD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_1_GENA_ACTCMPAD_INV 0x00000040  // Invert pwmA
+#define PWM_1_GENA_ACTCMPAD_ZERO                                              \
+                                0x00000080  // Drive pwmA Low
+#define PWM_1_GENA_ACTCMPAD_ONE 0x000000C0  // Drive pwmA High
+#define PWM_1_GENA_ACTCMPAU_M   0x00000030  // Action for Comparator A Up
+#define PWM_1_GENA_ACTCMPAU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_1_GENA_ACTCMPAU_INV 0x00000010  // Invert pwmA
+#define PWM_1_GENA_ACTCMPAU_ZERO                                              \
+                                0x00000020  // Drive pwmA Low
+#define PWM_1_GENA_ACTCMPAU_ONE 0x00000030  // Drive pwmA High
+#define PWM_1_GENA_ACTLOAD_M    0x0000000C  // Action for Counter=LOAD
+#define PWM_1_GENA_ACTLOAD_NONE 0x00000000  // Do nothing
+#define PWM_1_GENA_ACTLOAD_INV  0x00000004  // Invert pwmA
+#define PWM_1_GENA_ACTLOAD_ZERO 0x00000008  // Drive pwmA Low
+#define PWM_1_GENA_ACTLOAD_ONE  0x0000000C  // Drive pwmA High
+#define PWM_1_GENA_ACTZERO_M    0x00000003  // Action for Counter=0
+#define PWM_1_GENA_ACTZERO_NONE 0x00000000  // Do nothing
+#define PWM_1_GENA_ACTZERO_INV  0x00000001  // Invert pwmA
+#define PWM_1_GENA_ACTZERO_ZERO 0x00000002  // Drive pwmA Low
+#define PWM_1_GENA_ACTZERO_ONE  0x00000003  // Drive pwmA High
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_GENB register.
+//
+//*****************************************************************************
+#define PWM_1_GENB_ACTCMPBD_M   0x00000C00  // Action for Comparator B Down
+#define PWM_1_GENB_ACTCMPBD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_1_GENB_ACTCMPBD_INV 0x00000400  // Invert pwmB
+#define PWM_1_GENB_ACTCMPBD_ZERO                                              \
+                                0x00000800  // Drive pwmB Low
+#define PWM_1_GENB_ACTCMPBD_ONE 0x00000C00  // Drive pwmB High
+#define PWM_1_GENB_ACTCMPBU_M   0x00000300  // Action for Comparator B Up
+#define PWM_1_GENB_ACTCMPBU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_1_GENB_ACTCMPBU_INV 0x00000100  // Invert pwmB
+#define PWM_1_GENB_ACTCMPBU_ZERO                                              \
+                                0x00000200  // Drive pwmB Low
+#define PWM_1_GENB_ACTCMPBU_ONE 0x00000300  // Drive pwmB High
+#define PWM_1_GENB_ACTCMPAD_M   0x000000C0  // Action for Comparator A Down
+#define PWM_1_GENB_ACTCMPAD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_1_GENB_ACTCMPAD_INV 0x00000040  // Invert pwmB
+#define PWM_1_GENB_ACTCMPAD_ZERO                                              \
+                                0x00000080  // Drive pwmB Low
+#define PWM_1_GENB_ACTCMPAD_ONE 0x000000C0  // Drive pwmB High
+#define PWM_1_GENB_ACTCMPAU_M   0x00000030  // Action for Comparator A Up
+#define PWM_1_GENB_ACTCMPAU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_1_GENB_ACTCMPAU_INV 0x00000010  // Invert pwmB
+#define PWM_1_GENB_ACTCMPAU_ZERO                                              \
+                                0x00000020  // Drive pwmB Low
+#define PWM_1_GENB_ACTCMPAU_ONE 0x00000030  // Drive pwmB High
+#define PWM_1_GENB_ACTLOAD_M    0x0000000C  // Action for Counter=LOAD
+#define PWM_1_GENB_ACTLOAD_NONE 0x00000000  // Do nothing
+#define PWM_1_GENB_ACTLOAD_INV  0x00000004  // Invert pwmB
+#define PWM_1_GENB_ACTLOAD_ZERO 0x00000008  // Drive pwmB Low
+#define PWM_1_GENB_ACTLOAD_ONE  0x0000000C  // Drive pwmB High
+#define PWM_1_GENB_ACTZERO_M    0x00000003  // Action for Counter=0
+#define PWM_1_GENB_ACTZERO_NONE 0x00000000  // Do nothing
+#define PWM_1_GENB_ACTZERO_INV  0x00000001  // Invert pwmB
+#define PWM_1_GENB_ACTZERO_ZERO 0x00000002  // Drive pwmB Low
+#define PWM_1_GENB_ACTZERO_ONE  0x00000003  // Drive pwmB High
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_DBCTL register.
+//
+//*****************************************************************************
+#define PWM_1_DBCTL_ENABLE      0x00000001  // Dead-Band Generator Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_DBRISE register.
+//
+//*****************************************************************************
+#define PWM_1_DBRISE_RISEDELAY_M                                              \
+                                0x00000FFF  // Dead-Band Rise Delay
+#define PWM_1_DBRISE_RISEDELAY_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_DBFALL register.
+//
+//*****************************************************************************
+#define PWM_1_DBFALL_FALLDELAY_M                                              \
+                                0x00000FFF  // Dead-Band Fall Delay
+#define PWM_1_DBFALL_FALLDELAY_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_FLTSRC0
+// register.
+//
+//*****************************************************************************
+#define PWM_1_FLTSRC0_FAULT3    0x00000008  // Fault3 Input
+#define PWM_1_FLTSRC0_FAULT2    0x00000004  // Fault2 Input
+#define PWM_1_FLTSRC0_FAULT1    0x00000002  // Fault1 Input
+#define PWM_1_FLTSRC0_FAULT0    0x00000001  // Fault0 Input
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_FLTSRC1
+// register.
+//
+//*****************************************************************************
+#define PWM_1_FLTSRC1_DCMP7     0x00000080  // Digital Comparator 7
+#define PWM_1_FLTSRC1_DCMP6     0x00000040  // Digital Comparator 6
+#define PWM_1_FLTSRC1_DCMP5     0x00000020  // Digital Comparator 5
+#define PWM_1_FLTSRC1_DCMP4     0x00000010  // Digital Comparator 4
+#define PWM_1_FLTSRC1_DCMP3     0x00000008  // Digital Comparator 3
+#define PWM_1_FLTSRC1_DCMP2     0x00000004  // Digital Comparator 2
+#define PWM_1_FLTSRC1_DCMP1     0x00000002  // Digital Comparator 1
+#define PWM_1_FLTSRC1_DCMP0     0x00000001  // Digital Comparator 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_MINFLTPER
+// register.
+//
+//*****************************************************************************
+#define PWM_1_MINFLTPER_MFP_M   0x0000FFFF  // Minimum Fault Period
+#define PWM_1_MINFLTPER_MFP_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_CTL register.
+//
+//*****************************************************************************
+#define PWM_2_CTL_LATCH         0x00040000  // Latch Fault Input
+#define PWM_2_CTL_MINFLTPER     0x00020000  // Minimum Fault Period
+#define PWM_2_CTL_FLTSRC        0x00010000  // Fault Condition Source
+#define PWM_2_CTL_DBFALLUPD_M   0x0000C000  // PWMnDBFALL Update Mode
+#define PWM_2_CTL_DBFALLUPD_I   0x00000000  // Immediate
+#define PWM_2_CTL_DBFALLUPD_LS  0x00008000  // Locally Synchronized
+#define PWM_2_CTL_DBFALLUPD_GS  0x0000C000  // Globally Synchronized
+#define PWM_2_CTL_DBRISEUPD_M   0x00003000  // PWMnDBRISE Update Mode
+#define PWM_2_CTL_DBRISEUPD_I   0x00000000  // Immediate
+#define PWM_2_CTL_DBRISEUPD_LS  0x00002000  // Locally Synchronized
+#define PWM_2_CTL_DBRISEUPD_GS  0x00003000  // Globally Synchronized
+#define PWM_2_CTL_DBCTLUPD_M    0x00000C00  // PWMnDBCTL Update Mode
+#define PWM_2_CTL_DBCTLUPD_I    0x00000000  // Immediate
+#define PWM_2_CTL_DBCTLUPD_LS   0x00000800  // Locally Synchronized
+#define PWM_2_CTL_DBCTLUPD_GS   0x00000C00  // Globally Synchronized
+#define PWM_2_CTL_GENBUPD_M     0x00000300  // PWMnGENB Update Mode
+#define PWM_2_CTL_GENBUPD_I     0x00000000  // Immediate
+#define PWM_2_CTL_GENBUPD_LS    0x00000200  // Locally Synchronized
+#define PWM_2_CTL_GENBUPD_GS    0x00000300  // Globally Synchronized
+#define PWM_2_CTL_GENAUPD_M     0x000000C0  // PWMnGENA Update Mode
+#define PWM_2_CTL_GENAUPD_I     0x00000000  // Immediate
+#define PWM_2_CTL_GENAUPD_LS    0x00000080  // Locally Synchronized
+#define PWM_2_CTL_GENAUPD_GS    0x000000C0  // Globally Synchronized
+#define PWM_2_CTL_CMPBUPD       0x00000020  // Comparator B Update Mode
+#define PWM_2_CTL_CMPAUPD       0x00000010  // Comparator A Update Mode
+#define PWM_2_CTL_LOADUPD       0x00000008  // Load Register Update Mode
+#define PWM_2_CTL_DEBUG         0x00000004  // Debug Mode
+#define PWM_2_CTL_MODE          0x00000002  // Counter Mode
+#define PWM_2_CTL_ENABLE        0x00000001  // PWM Block Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_INTEN register.
+//
+//*****************************************************************************
+#define PWM_2_INTEN_TRCMPBD     0x00002000  // Trigger for Counter=PWMnCMPB
+                                            // Down
+#define PWM_2_INTEN_TRCMPBU     0x00001000  // Trigger for Counter=PWMnCMPB Up
+#define PWM_2_INTEN_TRCMPAD     0x00000800  // Trigger for Counter=PWMnCMPA
+                                            // Down
+#define PWM_2_INTEN_TRCMPAU     0x00000400  // Trigger for Counter=PWMnCMPA Up
+#define PWM_2_INTEN_TRCNTLOAD   0x00000200  // Trigger for Counter=PWMnLOAD
+#define PWM_2_INTEN_TRCNTZERO   0x00000100  // Trigger for Counter=0
+#define PWM_2_INTEN_INTCMPBD    0x00000020  // Interrupt for Counter=PWMnCMPB
+                                            // Down
+#define PWM_2_INTEN_INTCMPBU    0x00000010  // Interrupt for Counter=PWMnCMPB
+                                            // Up
+#define PWM_2_INTEN_INTCMPAD    0x00000008  // Interrupt for Counter=PWMnCMPA
+                                            // Down
+#define PWM_2_INTEN_INTCMPAU    0x00000004  // Interrupt for Counter=PWMnCMPA
+                                            // Up
+#define PWM_2_INTEN_INTCNTLOAD  0x00000002  // Interrupt for Counter=PWMnLOAD
+#define PWM_2_INTEN_INTCNTZERO  0x00000001  // Interrupt for Counter=0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_RIS register.
+//
+//*****************************************************************************
+#define PWM_2_RIS_INTCMPBD      0x00000020  // Comparator B Down Interrupt
+                                            // Status
+#define PWM_2_RIS_INTCMPBU      0x00000010  // Comparator B Up Interrupt Status
+#define PWM_2_RIS_INTCMPAD      0x00000008  // Comparator A Down Interrupt
+                                            // Status
+#define PWM_2_RIS_INTCMPAU      0x00000004  // Comparator A Up Interrupt Status
+#define PWM_2_RIS_INTCNTLOAD    0x00000002  // Counter=Load Interrupt Status
+#define PWM_2_RIS_INTCNTZERO    0x00000001  // Counter=0 Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_ISC register.
+//
+//*****************************************************************************
+#define PWM_2_ISC_INTCMPBD      0x00000020  // Comparator B Down Interrupt
+#define PWM_2_ISC_INTCMPBU      0x00000010  // Comparator B Up Interrupt
+#define PWM_2_ISC_INTCMPAD      0x00000008  // Comparator A Down Interrupt
+#define PWM_2_ISC_INTCMPAU      0x00000004  // Comparator A Up Interrupt
+#define PWM_2_ISC_INTCNTLOAD    0x00000002  // Counter=Load Interrupt
+#define PWM_2_ISC_INTCNTZERO    0x00000001  // Counter=0 Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_LOAD register.
+//
+//*****************************************************************************
+#define PWM_2_LOAD_LOAD_M       0x0000FFFF  // Counter Load Value
+#define PWM_2_LOAD_LOAD_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_COUNT register.
+//
+//*****************************************************************************
+#define PWM_2_COUNT_COUNT_M     0x0000FFFF  // Counter Value
+#define PWM_2_COUNT_COUNT_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_CMPA register.
+//
+//*****************************************************************************
+#define PWM_2_CMPA_COMPA_M      0x0000FFFF  // Comparator A Value
+#define PWM_2_CMPA_COMPA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_CMPB register.
+//
+//*****************************************************************************
+#define PWM_2_CMPB_COMPB_M      0x0000FFFF  // Comparator B Value
+#define PWM_2_CMPB_COMPB_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_GENA register.
+//
+//*****************************************************************************
+#define PWM_2_GENA_ACTCMPBD_M   0x00000C00  // Action for Comparator B Down
+#define PWM_2_GENA_ACTCMPBD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_2_GENA_ACTCMPBD_INV 0x00000400  // Invert pwmA
+#define PWM_2_GENA_ACTCMPBD_ZERO                                              \
+                                0x00000800  // Drive pwmA Low
+#define PWM_2_GENA_ACTCMPBD_ONE 0x00000C00  // Drive pwmA High
+#define PWM_2_GENA_ACTCMPBU_M   0x00000300  // Action for Comparator B Up
+#define PWM_2_GENA_ACTCMPBU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_2_GENA_ACTCMPBU_INV 0x00000100  // Invert pwmA
+#define PWM_2_GENA_ACTCMPBU_ZERO                                              \
+                                0x00000200  // Drive pwmA Low
+#define PWM_2_GENA_ACTCMPBU_ONE 0x00000300  // Drive pwmA High
+#define PWM_2_GENA_ACTCMPAD_M   0x000000C0  // Action for Comparator A Down
+#define PWM_2_GENA_ACTCMPAD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_2_GENA_ACTCMPAD_INV 0x00000040  // Invert pwmA
+#define PWM_2_GENA_ACTCMPAD_ZERO                                              \
+                                0x00000080  // Drive pwmA Low
+#define PWM_2_GENA_ACTCMPAD_ONE 0x000000C0  // Drive pwmA High
+#define PWM_2_GENA_ACTCMPAU_M   0x00000030  // Action for Comparator A Up
+#define PWM_2_GENA_ACTCMPAU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_2_GENA_ACTCMPAU_INV 0x00000010  // Invert pwmA
+#define PWM_2_GENA_ACTCMPAU_ZERO                                              \
+                                0x00000020  // Drive pwmA Low
+#define PWM_2_GENA_ACTCMPAU_ONE 0x00000030  // Drive pwmA High
+#define PWM_2_GENA_ACTLOAD_M    0x0000000C  // Action for Counter=LOAD
+#define PWM_2_GENA_ACTLOAD_NONE 0x00000000  // Do nothing
+#define PWM_2_GENA_ACTLOAD_INV  0x00000004  // Invert pwmA
+#define PWM_2_GENA_ACTLOAD_ZERO 0x00000008  // Drive pwmA Low
+#define PWM_2_GENA_ACTLOAD_ONE  0x0000000C  // Drive pwmA High
+#define PWM_2_GENA_ACTZERO_M    0x00000003  // Action for Counter=0
+#define PWM_2_GENA_ACTZERO_NONE 0x00000000  // Do nothing
+#define PWM_2_GENA_ACTZERO_INV  0x00000001  // Invert pwmA
+#define PWM_2_GENA_ACTZERO_ZERO 0x00000002  // Drive pwmA Low
+#define PWM_2_GENA_ACTZERO_ONE  0x00000003  // Drive pwmA High
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_GENB register.
+//
+//*****************************************************************************
+#define PWM_2_GENB_ACTCMPBD_M   0x00000C00  // Action for Comparator B Down
+#define PWM_2_GENB_ACTCMPBD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_2_GENB_ACTCMPBD_INV 0x00000400  // Invert pwmB
+#define PWM_2_GENB_ACTCMPBD_ZERO                                              \
+                                0x00000800  // Drive pwmB Low
+#define PWM_2_GENB_ACTCMPBD_ONE 0x00000C00  // Drive pwmB High
+#define PWM_2_GENB_ACTCMPBU_M   0x00000300  // Action for Comparator B Up
+#define PWM_2_GENB_ACTCMPBU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_2_GENB_ACTCMPBU_INV 0x00000100  // Invert pwmB
+#define PWM_2_GENB_ACTCMPBU_ZERO                                              \
+                                0x00000200  // Drive pwmB Low
+#define PWM_2_GENB_ACTCMPBU_ONE 0x00000300  // Drive pwmB High
+#define PWM_2_GENB_ACTCMPAD_M   0x000000C0  // Action for Comparator A Down
+#define PWM_2_GENB_ACTCMPAD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_2_GENB_ACTCMPAD_INV 0x00000040  // Invert pwmB
+#define PWM_2_GENB_ACTCMPAD_ZERO                                              \
+                                0x00000080  // Drive pwmB Low
+#define PWM_2_GENB_ACTCMPAD_ONE 0x000000C0  // Drive pwmB High
+#define PWM_2_GENB_ACTCMPAU_M   0x00000030  // Action for Comparator A Up
+#define PWM_2_GENB_ACTCMPAU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_2_GENB_ACTCMPAU_INV 0x00000010  // Invert pwmB
+#define PWM_2_GENB_ACTCMPAU_ZERO                                              \
+                                0x00000020  // Drive pwmB Low
+#define PWM_2_GENB_ACTCMPAU_ONE 0x00000030  // Drive pwmB High
+#define PWM_2_GENB_ACTLOAD_M    0x0000000C  // Action for Counter=LOAD
+#define PWM_2_GENB_ACTLOAD_NONE 0x00000000  // Do nothing
+#define PWM_2_GENB_ACTLOAD_INV  0x00000004  // Invert pwmB
+#define PWM_2_GENB_ACTLOAD_ZERO 0x00000008  // Drive pwmB Low
+#define PWM_2_GENB_ACTLOAD_ONE  0x0000000C  // Drive pwmB High
+#define PWM_2_GENB_ACTZERO_M    0x00000003  // Action for Counter=0
+#define PWM_2_GENB_ACTZERO_NONE 0x00000000  // Do nothing
+#define PWM_2_GENB_ACTZERO_INV  0x00000001  // Invert pwmB
+#define PWM_2_GENB_ACTZERO_ZERO 0x00000002  // Drive pwmB Low
+#define PWM_2_GENB_ACTZERO_ONE  0x00000003  // Drive pwmB High
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_DBCTL register.
+//
+//*****************************************************************************
+#define PWM_2_DBCTL_ENABLE      0x00000001  // Dead-Band Generator Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_DBRISE register.
+//
+//*****************************************************************************
+#define PWM_2_DBRISE_RISEDELAY_M                                              \
+                                0x00000FFF  // Dead-Band Rise Delay
+#define PWM_2_DBRISE_RISEDELAY_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_DBFALL register.
+//
+//*****************************************************************************
+#define PWM_2_DBFALL_FALLDELAY_M                                              \
+                                0x00000FFF  // Dead-Band Fall Delay
+#define PWM_2_DBFALL_FALLDELAY_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_FLTSRC0
+// register.
+//
+//*****************************************************************************
+#define PWM_2_FLTSRC0_FAULT3    0x00000008  // Fault3 Input
+#define PWM_2_FLTSRC0_FAULT2    0x00000004  // Fault2 Input
+#define PWM_2_FLTSRC0_FAULT1    0x00000002  // Fault1 Input
+#define PWM_2_FLTSRC0_FAULT0    0x00000001  // Fault0 Input
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_FLTSRC1
+// register.
+//
+//*****************************************************************************
+#define PWM_2_FLTSRC1_DCMP7     0x00000080  // Digital Comparator 7
+#define PWM_2_FLTSRC1_DCMP6     0x00000040  // Digital Comparator 6
+#define PWM_2_FLTSRC1_DCMP5     0x00000020  // Digital Comparator 5
+#define PWM_2_FLTSRC1_DCMP4     0x00000010  // Digital Comparator 4
+#define PWM_2_FLTSRC1_DCMP3     0x00000008  // Digital Comparator 3
+#define PWM_2_FLTSRC1_DCMP2     0x00000004  // Digital Comparator 2
+#define PWM_2_FLTSRC1_DCMP1     0x00000002  // Digital Comparator 1
+#define PWM_2_FLTSRC1_DCMP0     0x00000001  // Digital Comparator 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_MINFLTPER
+// register.
+//
+//*****************************************************************************
+#define PWM_2_MINFLTPER_MFP_M   0x0000FFFF  // Minimum Fault Period
+#define PWM_2_MINFLTPER_MFP_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_CTL register.
+//
+//*****************************************************************************
+#define PWM_3_CTL_LATCH         0x00040000  // Latch Fault Input
+#define PWM_3_CTL_MINFLTPER     0x00020000  // Minimum Fault Period
+#define PWM_3_CTL_FLTSRC        0x00010000  // Fault Condition Source
+#define PWM_3_CTL_DBFALLUPD_M   0x0000C000  // PWMnDBFALL Update Mode
+#define PWM_3_CTL_DBFALLUPD_I   0x00000000  // Immediate
+#define PWM_3_CTL_DBFALLUPD_LS  0x00008000  // Locally Synchronized
+#define PWM_3_CTL_DBFALLUPD_GS  0x0000C000  // Globally Synchronized
+#define PWM_3_CTL_DBRISEUPD_M   0x00003000  // PWMnDBRISE Update Mode
+#define PWM_3_CTL_DBRISEUPD_I   0x00000000  // Immediate
+#define PWM_3_CTL_DBRISEUPD_LS  0x00002000  // Locally Synchronized
+#define PWM_3_CTL_DBRISEUPD_GS  0x00003000  // Globally Synchronized
+#define PWM_3_CTL_DBCTLUPD_M    0x00000C00  // PWMnDBCTL Update Mode
+#define PWM_3_CTL_DBCTLUPD_I    0x00000000  // Immediate
+#define PWM_3_CTL_DBCTLUPD_LS   0x00000800  // Locally Synchronized
+#define PWM_3_CTL_DBCTLUPD_GS   0x00000C00  // Globally Synchronized
+#define PWM_3_CTL_GENBUPD_M     0x00000300  // PWMnGENB Update Mode
+#define PWM_3_CTL_GENBUPD_I     0x00000000  // Immediate
+#define PWM_3_CTL_GENBUPD_LS    0x00000200  // Locally Synchronized
+#define PWM_3_CTL_GENBUPD_GS    0x00000300  // Globally Synchronized
+#define PWM_3_CTL_GENAUPD_M     0x000000C0  // PWMnGENA Update Mode
+#define PWM_3_CTL_GENAUPD_I     0x00000000  // Immediate
+#define PWM_3_CTL_GENAUPD_LS    0x00000080  // Locally Synchronized
+#define PWM_3_CTL_GENAUPD_GS    0x000000C0  // Globally Synchronized
+#define PWM_3_CTL_CMPBUPD       0x00000020  // Comparator B Update Mode
+#define PWM_3_CTL_CMPAUPD       0x00000010  // Comparator A Update Mode
+#define PWM_3_CTL_LOADUPD       0x00000008  // Load Register Update Mode
+#define PWM_3_CTL_DEBUG         0x00000004  // Debug Mode
+#define PWM_3_CTL_MODE          0x00000002  // Counter Mode
+#define PWM_3_CTL_ENABLE        0x00000001  // PWM Block Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_INTEN register.
+//
+//*****************************************************************************
+#define PWM_3_INTEN_TRCMPBD     0x00002000  // Trigger for Counter=PWMnCMPB
+                                            // Down
+#define PWM_3_INTEN_TRCMPBU     0x00001000  // Trigger for Counter=PWMnCMPB Up
+#define PWM_3_INTEN_TRCMPAD     0x00000800  // Trigger for Counter=PWMnCMPA
+                                            // Down
+#define PWM_3_INTEN_TRCMPAU     0x00000400  // Trigger for Counter=PWMnCMPA Up
+#define PWM_3_INTEN_TRCNTLOAD   0x00000200  // Trigger for Counter=PWMnLOAD
+#define PWM_3_INTEN_TRCNTZERO   0x00000100  // Trigger for Counter=0
+#define PWM_3_INTEN_INTCMPBD    0x00000020  // Interrupt for Counter=PWMnCMPB
+                                            // Down
+#define PWM_3_INTEN_INTCMPBU    0x00000010  // Interrupt for Counter=PWMnCMPB
+                                            // Up
+#define PWM_3_INTEN_INTCMPAD    0x00000008  // Interrupt for Counter=PWMnCMPA
+                                            // Down
+#define PWM_3_INTEN_INTCMPAU    0x00000004  // Interrupt for Counter=PWMnCMPA
+                                            // Up
+#define PWM_3_INTEN_INTCNTLOAD  0x00000002  // Interrupt for Counter=PWMnLOAD
+#define PWM_3_INTEN_INTCNTZERO  0x00000001  // Interrupt for Counter=0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_RIS register.
+//
+//*****************************************************************************
+#define PWM_3_RIS_INTCMPBD      0x00000020  // Comparator B Down Interrupt
+                                            // Status
+#define PWM_3_RIS_INTCMPBU      0x00000010  // Comparator B Up Interrupt Status
+#define PWM_3_RIS_INTCMPAD      0x00000008  // Comparator A Down Interrupt
+                                            // Status
+#define PWM_3_RIS_INTCMPAU      0x00000004  // Comparator A Up Interrupt Status
+#define PWM_3_RIS_INTCNTLOAD    0x00000002  // Counter=Load Interrupt Status
+#define PWM_3_RIS_INTCNTZERO    0x00000001  // Counter=0 Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_ISC register.
+//
+//*****************************************************************************
+#define PWM_3_ISC_INTCMPBD      0x00000020  // Comparator B Down Interrupt
+#define PWM_3_ISC_INTCMPBU      0x00000010  // Comparator B Up Interrupt
+#define PWM_3_ISC_INTCMPAD      0x00000008  // Comparator A Down Interrupt
+#define PWM_3_ISC_INTCMPAU      0x00000004  // Comparator A Up Interrupt
+#define PWM_3_ISC_INTCNTLOAD    0x00000002  // Counter=Load Interrupt
+#define PWM_3_ISC_INTCNTZERO    0x00000001  // Counter=0 Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_LOAD register.
+//
+//*****************************************************************************
+#define PWM_3_LOAD_LOAD_M       0x0000FFFF  // Counter Load Value
+#define PWM_3_LOAD_LOAD_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_COUNT register.
+//
+//*****************************************************************************
+#define PWM_3_COUNT_COUNT_M     0x0000FFFF  // Counter Value
+#define PWM_3_COUNT_COUNT_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_CMPA register.
+//
+//*****************************************************************************
+#define PWM_3_CMPA_COMPA_M      0x0000FFFF  // Comparator A Value
+#define PWM_3_CMPA_COMPA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_CMPB register.
+//
+//*****************************************************************************
+#define PWM_3_CMPB_COMPB_M      0x0000FFFF  // Comparator B Value
+#define PWM_3_CMPB_COMPB_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_GENA register.
+//
+//*****************************************************************************
+#define PWM_3_GENA_ACTCMPBD_M   0x00000C00  // Action for Comparator B Down
+#define PWM_3_GENA_ACTCMPBD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_3_GENA_ACTCMPBD_INV 0x00000400  // Invert pwmA
+#define PWM_3_GENA_ACTCMPBD_ZERO                                              \
+                                0x00000800  // Drive pwmA Low
+#define PWM_3_GENA_ACTCMPBD_ONE 0x00000C00  // Drive pwmA High
+#define PWM_3_GENA_ACTCMPBU_M   0x00000300  // Action for Comparator B Up
+#define PWM_3_GENA_ACTCMPBU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_3_GENA_ACTCMPBU_INV 0x00000100  // Invert pwmA
+#define PWM_3_GENA_ACTCMPBU_ZERO                                              \
+                                0x00000200  // Drive pwmA Low
+#define PWM_3_GENA_ACTCMPBU_ONE 0x00000300  // Drive pwmA High
+#define PWM_3_GENA_ACTCMPAD_M   0x000000C0  // Action for Comparator A Down
+#define PWM_3_GENA_ACTCMPAD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_3_GENA_ACTCMPAD_INV 0x00000040  // Invert pwmA
+#define PWM_3_GENA_ACTCMPAD_ZERO                                              \
+                                0x00000080  // Drive pwmA Low
+#define PWM_3_GENA_ACTCMPAD_ONE 0x000000C0  // Drive pwmA High
+#define PWM_3_GENA_ACTCMPAU_M   0x00000030  // Action for Comparator A Up
+#define PWM_3_GENA_ACTCMPAU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_3_GENA_ACTCMPAU_INV 0x00000010  // Invert pwmA
+#define PWM_3_GENA_ACTCMPAU_ZERO                                              \
+                                0x00000020  // Drive pwmA Low
+#define PWM_3_GENA_ACTCMPAU_ONE 0x00000030  // Drive pwmA High
+#define PWM_3_GENA_ACTLOAD_M    0x0000000C  // Action for Counter=LOAD
+#define PWM_3_GENA_ACTLOAD_NONE 0x00000000  // Do nothing
+#define PWM_3_GENA_ACTLOAD_INV  0x00000004  // Invert pwmA
+#define PWM_3_GENA_ACTLOAD_ZERO 0x00000008  // Drive pwmA Low
+#define PWM_3_GENA_ACTLOAD_ONE  0x0000000C  // Drive pwmA High
+#define PWM_3_GENA_ACTZERO_M    0x00000003  // Action for Counter=0
+#define PWM_3_GENA_ACTZERO_NONE 0x00000000  // Do nothing
+#define PWM_3_GENA_ACTZERO_INV  0x00000001  // Invert pwmA
+#define PWM_3_GENA_ACTZERO_ZERO 0x00000002  // Drive pwmA Low
+#define PWM_3_GENA_ACTZERO_ONE  0x00000003  // Drive pwmA High
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_GENB register.
+//
+//*****************************************************************************
+#define PWM_3_GENB_ACTCMPBD_M   0x00000C00  // Action for Comparator B Down
+#define PWM_3_GENB_ACTCMPBD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_3_GENB_ACTCMPBD_INV 0x00000400  // Invert pwmB
+#define PWM_3_GENB_ACTCMPBD_ZERO                                              \
+                                0x00000800  // Drive pwmB Low
+#define PWM_3_GENB_ACTCMPBD_ONE 0x00000C00  // Drive pwmB High
+#define PWM_3_GENB_ACTCMPBU_M   0x00000300  // Action for Comparator B Up
+#define PWM_3_GENB_ACTCMPBU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_3_GENB_ACTCMPBU_INV 0x00000100  // Invert pwmB
+#define PWM_3_GENB_ACTCMPBU_ZERO                                              \
+                                0x00000200  // Drive pwmB Low
+#define PWM_3_GENB_ACTCMPBU_ONE 0x00000300  // Drive pwmB High
+#define PWM_3_GENB_ACTCMPAD_M   0x000000C0  // Action for Comparator A Down
+#define PWM_3_GENB_ACTCMPAD_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_3_GENB_ACTCMPAD_INV 0x00000040  // Invert pwmB
+#define PWM_3_GENB_ACTCMPAD_ZERO                                              \
+                                0x00000080  // Drive pwmB Low
+#define PWM_3_GENB_ACTCMPAD_ONE 0x000000C0  // Drive pwmB High
+#define PWM_3_GENB_ACTCMPAU_M   0x00000030  // Action for Comparator A Up
+#define PWM_3_GENB_ACTCMPAU_NONE                                              \
+                                0x00000000  // Do nothing
+#define PWM_3_GENB_ACTCMPAU_INV 0x00000010  // Invert pwmB
+#define PWM_3_GENB_ACTCMPAU_ZERO                                              \
+                                0x00000020  // Drive pwmB Low
+#define PWM_3_GENB_ACTCMPAU_ONE 0x00000030  // Drive pwmB High
+#define PWM_3_GENB_ACTLOAD_M    0x0000000C  // Action for Counter=LOAD
+#define PWM_3_GENB_ACTLOAD_NONE 0x00000000  // Do nothing
+#define PWM_3_GENB_ACTLOAD_INV  0x00000004  // Invert pwmB
+#define PWM_3_GENB_ACTLOAD_ZERO 0x00000008  // Drive pwmB Low
+#define PWM_3_GENB_ACTLOAD_ONE  0x0000000C  // Drive pwmB High
+#define PWM_3_GENB_ACTZERO_M    0x00000003  // Action for Counter=0
+#define PWM_3_GENB_ACTZERO_NONE 0x00000000  // Do nothing
+#define PWM_3_GENB_ACTZERO_INV  0x00000001  // Invert pwmB
+#define PWM_3_GENB_ACTZERO_ZERO 0x00000002  // Drive pwmB Low
+#define PWM_3_GENB_ACTZERO_ONE  0x00000003  // Drive pwmB High
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_DBCTL register.
+//
+//*****************************************************************************
+#define PWM_3_DBCTL_ENABLE      0x00000001  // Dead-Band Generator Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_DBRISE register.
+//
+//*****************************************************************************
+#define PWM_3_DBRISE_RISEDELAY_M                                              \
+                                0x00000FFF  // Dead-Band Rise Delay
+#define PWM_3_DBRISE_RISEDELAY_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_DBFALL register.
+//
+//*****************************************************************************
+#define PWM_3_DBFALL_FALLDELAY_M                                              \
+                                0x00000FFF  // Dead-Band Fall Delay
+#define PWM_3_DBFALL_FALLDELAY_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_FLTSRC0
+// register.
+//
+//*****************************************************************************
+#define PWM_3_FLTSRC0_FAULT3    0x00000008  // Fault3 Input
+#define PWM_3_FLTSRC0_FAULT2    0x00000004  // Fault2 Input
+#define PWM_3_FLTSRC0_FAULT1    0x00000002  // Fault1 Input
+#define PWM_3_FLTSRC0_FAULT0    0x00000001  // Fault0 Input
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_FLTSRC1
+// register.
+//
+//*****************************************************************************
+#define PWM_3_FLTSRC1_DCMP7     0x00000080  // Digital Comparator 7
+#define PWM_3_FLTSRC1_DCMP6     0x00000040  // Digital Comparator 6
+#define PWM_3_FLTSRC1_DCMP5     0x00000020  // Digital Comparator 5
+#define PWM_3_FLTSRC1_DCMP4     0x00000010  // Digital Comparator 4
+#define PWM_3_FLTSRC1_DCMP3     0x00000008  // Digital Comparator 3
+#define PWM_3_FLTSRC1_DCMP2     0x00000004  // Digital Comparator 2
+#define PWM_3_FLTSRC1_DCMP1     0x00000002  // Digital Comparator 1
+#define PWM_3_FLTSRC1_DCMP0     0x00000001  // Digital Comparator 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_MINFLTPER
+// register.
+//
+//*****************************************************************************
+#define PWM_3_MINFLTPER_MFP_M   0x0000FFFF  // Minimum Fault Period
+#define PWM_3_MINFLTPER_MFP_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_FLTSEN register.
+//
+//*****************************************************************************
+#define PWM_0_FLTSEN_FAULT3     0x00000008  // Fault3 Sense
+#define PWM_0_FLTSEN_FAULT2     0x00000004  // Fault2 Sense
+#define PWM_0_FLTSEN_FAULT1     0x00000002  // Fault1 Sense
+#define PWM_0_FLTSEN_FAULT0     0x00000001  // Fault0 Sense
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_FLTSTAT0
+// register.
+//
+//*****************************************************************************
+#define PWM_0_FLTSTAT0_FAULT3   0x00000008  // Fault Input 3
+#define PWM_0_FLTSTAT0_FAULT2   0x00000004  // Fault Input 2
+#define PWM_0_FLTSTAT0_FAULT1   0x00000002  // Fault Input 1
+#define PWM_0_FLTSTAT0_FAULT0   0x00000001  // Fault Input 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_0_FLTSTAT1
+// register.
+//
+//*****************************************************************************
+#define PWM_0_FLTSTAT1_DCMP7    0x00000080  // Digital Comparator 7 Trigger
+#define PWM_0_FLTSTAT1_DCMP6    0x00000040  // Digital Comparator 6 Trigger
+#define PWM_0_FLTSTAT1_DCMP5    0x00000020  // Digital Comparator 5 Trigger
+#define PWM_0_FLTSTAT1_DCMP4    0x00000010  // Digital Comparator 4 Trigger
+#define PWM_0_FLTSTAT1_DCMP3    0x00000008  // Digital Comparator 3 Trigger
+#define PWM_0_FLTSTAT1_DCMP2    0x00000004  // Digital Comparator 2 Trigger
+#define PWM_0_FLTSTAT1_DCMP1    0x00000002  // Digital Comparator 1 Trigger
+#define PWM_0_FLTSTAT1_DCMP0    0x00000001  // Digital Comparator 0 Trigger
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_FLTSEN register.
+//
+//*****************************************************************************
+#define PWM_1_FLTSEN_FAULT3     0x00000008  // Fault3 Sense
+#define PWM_1_FLTSEN_FAULT2     0x00000004  // Fault2 Sense
+#define PWM_1_FLTSEN_FAULT1     0x00000002  // Fault1 Sense
+#define PWM_1_FLTSEN_FAULT0     0x00000001  // Fault0 Sense
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_FLTSTAT0
+// register.
+//
+//*****************************************************************************
+#define PWM_1_FLTSTAT0_FAULT3   0x00000008  // Fault Input 3
+#define PWM_1_FLTSTAT0_FAULT2   0x00000004  // Fault Input 2
+#define PWM_1_FLTSTAT0_FAULT1   0x00000002  // Fault Input 1
+#define PWM_1_FLTSTAT0_FAULT0   0x00000001  // Fault Input 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_1_FLTSTAT1
+// register.
+//
+//*****************************************************************************
+#define PWM_1_FLTSTAT1_DCMP7    0x00000080  // Digital Comparator 7 Trigger
+#define PWM_1_FLTSTAT1_DCMP6    0x00000040  // Digital Comparator 6 Trigger
+#define PWM_1_FLTSTAT1_DCMP5    0x00000020  // Digital Comparator 5 Trigger
+#define PWM_1_FLTSTAT1_DCMP4    0x00000010  // Digital Comparator 4 Trigger
+#define PWM_1_FLTSTAT1_DCMP3    0x00000008  // Digital Comparator 3 Trigger
+#define PWM_1_FLTSTAT1_DCMP2    0x00000004  // Digital Comparator 2 Trigger
+#define PWM_1_FLTSTAT1_DCMP1    0x00000002  // Digital Comparator 1 Trigger
+#define PWM_1_FLTSTAT1_DCMP0    0x00000001  // Digital Comparator 0 Trigger
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_FLTSEN register.
+//
+//*****************************************************************************
+#define PWM_2_FLTSEN_FAULT3     0x00000008  // Fault3 Sense
+#define PWM_2_FLTSEN_FAULT2     0x00000004  // Fault2 Sense
+#define PWM_2_FLTSEN_FAULT1     0x00000002  // Fault1 Sense
+#define PWM_2_FLTSEN_FAULT0     0x00000001  // Fault0 Sense
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_FLTSTAT0
+// register.
+//
+//*****************************************************************************
+#define PWM_2_FLTSTAT0_FAULT3   0x00000008  // Fault Input 3
+#define PWM_2_FLTSTAT0_FAULT2   0x00000004  // Fault Input 2
+#define PWM_2_FLTSTAT0_FAULT1   0x00000002  // Fault Input 1
+#define PWM_2_FLTSTAT0_FAULT0   0x00000001  // Fault Input 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_2_FLTSTAT1
+// register.
+//
+//*****************************************************************************
+#define PWM_2_FLTSTAT1_DCMP7    0x00000080  // Digital Comparator 7 Trigger
+#define PWM_2_FLTSTAT1_DCMP6    0x00000040  // Digital Comparator 6 Trigger
+#define PWM_2_FLTSTAT1_DCMP5    0x00000020  // Digital Comparator 5 Trigger
+#define PWM_2_FLTSTAT1_DCMP4    0x00000010  // Digital Comparator 4 Trigger
+#define PWM_2_FLTSTAT1_DCMP3    0x00000008  // Digital Comparator 3 Trigger
+#define PWM_2_FLTSTAT1_DCMP2    0x00000004  // Digital Comparator 2 Trigger
+#define PWM_2_FLTSTAT1_DCMP1    0x00000002  // Digital Comparator 1 Trigger
+#define PWM_2_FLTSTAT1_DCMP0    0x00000001  // Digital Comparator 0 Trigger
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_FLTSEN register.
+//
+//*****************************************************************************
+#define PWM_3_FLTSEN_FAULT3     0x00000008  // Fault3 Sense
+#define PWM_3_FLTSEN_FAULT2     0x00000004  // Fault2 Sense
+#define PWM_3_FLTSEN_FAULT1     0x00000002  // Fault1 Sense
+#define PWM_3_FLTSEN_FAULT0     0x00000001  // Fault0 Sense
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_FLTSTAT0
+// register.
+//
+//*****************************************************************************
+#define PWM_3_FLTSTAT0_FAULT3   0x00000008  // Fault Input 3
+#define PWM_3_FLTSTAT0_FAULT2   0x00000004  // Fault Input 2
+#define PWM_3_FLTSTAT0_FAULT1   0x00000002  // Fault Input 1
+#define PWM_3_FLTSTAT0_FAULT0   0x00000001  // Fault Input 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_3_FLTSTAT1
+// register.
+//
+//*****************************************************************************
+#define PWM_3_FLTSTAT1_DCMP7    0x00000080  // Digital Comparator 7 Trigger
+#define PWM_3_FLTSTAT1_DCMP6    0x00000040  // Digital Comparator 6 Trigger
+#define PWM_3_FLTSTAT1_DCMP5    0x00000020  // Digital Comparator 5 Trigger
+#define PWM_3_FLTSTAT1_DCMP4    0x00000010  // Digital Comparator 4 Trigger
+#define PWM_3_FLTSTAT1_DCMP3    0x00000008  // Digital Comparator 3 Trigger
+#define PWM_3_FLTSTAT1_DCMP2    0x00000004  // Digital Comparator 2 Trigger
+#define PWM_3_FLTSTAT1_DCMP1    0x00000002  // Digital Comparator 1 Trigger
+#define PWM_3_FLTSTAT1_DCMP0    0x00000001  // Digital Comparator 0 Trigger
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the PWM_O_PP register.
+//
+//*****************************************************************************
+#define PWM_PP_ONE              0x00000400  // One-Shot Mode
+#define PWM_PP_EFAULT           0x00000200  // Extended Fault
+#define PWM_PP_ESYNC            0x00000100  // Extended Synchronization
+#define PWM_PP_FCNT_M           0x000000F0  // Fault Inputs (per PWM unit)
+#define PWM_PP_GCNT_M           0x0000000F  // Generators
+#define PWM_PP_FCNT_S           4
+#define PWM_PP_GCNT_S           0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the QEI_O_CTL register.
+//
+//*****************************************************************************
+#define QEI_CTL_FILTCNT_M       0x000F0000  // Input Filter Prescale Count
+#define QEI_CTL_FILTEN          0x00002000  // Enable Input Filter
+#define QEI_CTL_STALLEN         0x00001000  // Stall QEI
+#define QEI_CTL_INVI            0x00000800  // Invert Index Pulse
+#define QEI_CTL_INVB            0x00000400  // Invert PhB
+#define QEI_CTL_INVA            0x00000200  // Invert PhA
+#define QEI_CTL_VELDIV_M        0x000001C0  // Predivide Velocity
+#define QEI_CTL_VELDIV_1        0x00000000  // QEI clock /1
+#define QEI_CTL_VELDIV_2        0x00000040  // QEI clock /2
+#define QEI_CTL_VELDIV_4        0x00000080  // QEI clock /4
+#define QEI_CTL_VELDIV_8        0x000000C0  // QEI clock /8
+#define QEI_CTL_VELDIV_16       0x00000100  // QEI clock /16
+#define QEI_CTL_VELDIV_32       0x00000140  // QEI clock /32
+#define QEI_CTL_VELDIV_64       0x00000180  // QEI clock /64
+#define QEI_CTL_VELDIV_128      0x000001C0  // QEI clock /128
+#define QEI_CTL_VELEN           0x00000020  // Capture Velocity
+#define QEI_CTL_RESMODE         0x00000010  // Reset Mode
+#define QEI_CTL_CAPMODE         0x00000008  // Capture Mode
+#define QEI_CTL_SIGMODE         0x00000004  // Signal Mode
+#define QEI_CTL_SWAP            0x00000002  // Swap Signals
+#define QEI_CTL_ENABLE          0x00000001  // Enable QEI
+#define QEI_CTL_FILTCNT_S       16
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the QEI_O_STAT register.
+//
+//*****************************************************************************
+#define QEI_STAT_DIRECTION      0x00000002  // Direction of Rotation
+#define QEI_STAT_ERROR          0x00000001  // Error Detected
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the QEI_O_POS register.
+//
+//*****************************************************************************
+#define QEI_POS_M               0xFFFFFFFF  // Current Position Integrator
+                                            // Value
+#define QEI_POS_S               0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the QEI_O_MAXPOS register.
+//
+//*****************************************************************************
+#define QEI_MAXPOS_M            0xFFFFFFFF  // Maximum Position Integrator
+                                            // Value
+#define QEI_MAXPOS_S            0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the QEI_O_LOAD register.
+//
+//*****************************************************************************
+#define QEI_LOAD_M              0xFFFFFFFF  // Velocity Timer Load Value
+#define QEI_LOAD_S              0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the QEI_O_TIME register.
+//
+//*****************************************************************************
+#define QEI_TIME_M              0xFFFFFFFF  // Velocity Timer Current Value
+#define QEI_TIME_S              0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the QEI_O_COUNT register.
+//
+//*****************************************************************************
+#define QEI_COUNT_M             0xFFFFFFFF  // Velocity Pulse Count
+#define QEI_COUNT_S             0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the QEI_O_SPEED register.
+//
+//*****************************************************************************
+#define QEI_SPEED_M             0xFFFFFFFF  // Velocity
+#define QEI_SPEED_S             0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the QEI_O_INTEN register.
+//
+//*****************************************************************************
+#define QEI_INTEN_ERROR         0x00000008  // Phase Error Interrupt Enable
+#define QEI_INTEN_DIR           0x00000004  // Direction Change Interrupt
+                                            // Enable
+#define QEI_INTEN_TIMER         0x00000002  // Timer Expires Interrupt Enable
+#define QEI_INTEN_INDEX         0x00000001  // Index Pulse Detected Interrupt
+                                            // Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the QEI_O_RIS register.
+//
+//*****************************************************************************
+#define QEI_RIS_ERROR           0x00000008  // Phase Error Detected
+#define QEI_RIS_DIR             0x00000004  // Direction Change Detected
+#define QEI_RIS_TIMER           0x00000002  // Velocity Timer Expired
+#define QEI_RIS_INDEX           0x00000001  // Index Pulse Asserted
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the QEI_O_ISC register.
+//
+//*****************************************************************************
+#define QEI_ISC_ERROR           0x00000008  // Phase Error Interrupt
+#define QEI_ISC_DIR             0x00000004  // Direction Change Interrupt
+#define QEI_ISC_TIMER           0x00000002  // Velocity Timer Expired Interrupt
+#define QEI_ISC_INDEX           0x00000001  // Index Pulse Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_CFG register.
+//
+//*****************************************************************************
+#define TIMER_CFG_M             0x00000007  // GPTM Configuration
+#define TIMER_CFG_32_BIT_TIMER  0x00000000  // For a 16/32-bit timer, this
+                                            // value selects the 32-bit timer
+                                            // configuration
+#define TIMER_CFG_32_BIT_RTC    0x00000001  // For a 16/32-bit timer, this
+                                            // value selects the 32-bit
+                                            // real-time clock (RTC) counter
+                                            // configuration
+#define TIMER_CFG_16_BIT        0x00000004  // For a 16/32-bit timer, this
+                                            // value selects the 16-bit timer
+                                            // configuration
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TAMR register.
+//
+//*****************************************************************************
+#define TIMER_TAMR_TAPLO        0x00000800  // GPTM Timer A PWM Legacy
+                                            // Operation
+#define TIMER_TAMR_TAMRSU       0x00000400  // GPTM Timer A Match Register
+                                            // Update
+#define TIMER_TAMR_TAPWMIE      0x00000200  // GPTM Timer A PWM Interrupt
+                                            // Enable
+#define TIMER_TAMR_TAILD        0x00000100  // GPTM Timer A Interval Load Write
+#define TIMER_TAMR_TASNAPS      0x00000080  // GPTM Timer A Snap-Shot Mode
+#define TIMER_TAMR_TAWOT        0x00000040  // GPTM Timer A Wait-on-Trigger
+#define TIMER_TAMR_TAMIE        0x00000020  // GPTM Timer A Match Interrupt
+                                            // Enable
+#define TIMER_TAMR_TACDIR       0x00000010  // GPTM Timer A Count Direction
+#define TIMER_TAMR_TAAMS        0x00000008  // GPTM Timer A Alternate Mode
+                                            // Select
+#define TIMER_TAMR_TACMR        0x00000004  // GPTM Timer A Capture Mode
+#define TIMER_TAMR_TAMR_M       0x00000003  // GPTM Timer A Mode
+#define TIMER_TAMR_TAMR_1_SHOT  0x00000001  // One-Shot Timer mode
+#define TIMER_TAMR_TAMR_PERIOD  0x00000002  // Periodic Timer mode
+#define TIMER_TAMR_TAMR_CAP     0x00000003  // Capture mode
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TBMR register.
+//
+//*****************************************************************************
+#define TIMER_TBMR_TBPLO        0x00000800  // GPTM Timer B PWM Legacy
+                                            // Operation
+#define TIMER_TBMR_TBMRSU       0x00000400  // GPTM Timer B Match Register
+                                            // Update
+#define TIMER_TBMR_TBPWMIE      0x00000200  // GPTM Timer B PWM Interrupt
+                                            // Enable
+#define TIMER_TBMR_TBILD        0x00000100  // GPTM Timer B Interval Load Write
+#define TIMER_TBMR_TBSNAPS      0x00000080  // GPTM Timer B Snap-Shot Mode
+#define TIMER_TBMR_TBWOT        0x00000040  // GPTM Timer B Wait-on-Trigger
+#define TIMER_TBMR_TBMIE        0x00000020  // GPTM Timer B Match Interrupt
+                                            // Enable
+#define TIMER_TBMR_TBCDIR       0x00000010  // GPTM Timer B Count Direction
+#define TIMER_TBMR_TBAMS        0x00000008  // GPTM Timer B Alternate Mode
+                                            // Select
+#define TIMER_TBMR_TBCMR        0x00000004  // GPTM Timer B Capture Mode
+#define TIMER_TBMR_TBMR_M       0x00000003  // GPTM Timer B Mode
+#define TIMER_TBMR_TBMR_1_SHOT  0x00000001  // One-Shot Timer mode
+#define TIMER_TBMR_TBMR_PERIOD  0x00000002  // Periodic Timer mode
+#define TIMER_TBMR_TBMR_CAP     0x00000003  // Capture mode
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_CTL register.
+//
+//*****************************************************************************
+#define TIMER_CTL_TBPWML        0x00004000  // GPTM Timer B PWM Output Level
+#define TIMER_CTL_TBOTE         0x00002000  // GPTM Timer B Output Trigger
+                                            // Enable
+#define TIMER_CTL_TBEVENT_M     0x00000C00  // GPTM Timer B Event Mode
+#define TIMER_CTL_TBEVENT_POS   0x00000000  // Positive edge
+#define TIMER_CTL_TBEVENT_NEG   0x00000400  // Negative edge
+#define TIMER_CTL_TBEVENT_BOTH  0x00000C00  // Both edges
+#define TIMER_CTL_TBSTALL       0x00000200  // GPTM Timer B Stall Enable
+#define TIMER_CTL_TBEN          0x00000100  // GPTM Timer B Enable
+#define TIMER_CTL_TAPWML        0x00000040  // GPTM Timer A PWM Output Level
+#define TIMER_CTL_TAOTE         0x00000020  // GPTM Timer A Output Trigger
+                                            // Enable
+#define TIMER_CTL_RTCEN         0x00000010  // GPTM RTC Stall Enable
+#define TIMER_CTL_TAEVENT_M     0x0000000C  // GPTM Timer A Event Mode
+#define TIMER_CTL_TAEVENT_POS   0x00000000  // Positive edge
+#define TIMER_CTL_TAEVENT_NEG   0x00000004  // Negative edge
+#define TIMER_CTL_TAEVENT_BOTH  0x0000000C  // Both edges
+#define TIMER_CTL_TASTALL       0x00000002  // GPTM Timer A Stall Enable
+#define TIMER_CTL_TAEN          0x00000001  // GPTM Timer A Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_SYNC register.
+//
+//*****************************************************************************
+#define TIMER_SYNC_SYNCWT5_M    0x00C00000  // Synchronize GPTM 32/64-Bit Timer
+                                            // 5
+#define TIMER_SYNC_SYNCWT5_NONE 0x00000000  // GPTM 32/64-Bit Timer 5 is not
+                                            // affected
+#define TIMER_SYNC_SYNCWT5_TA   0x00400000  // A timeout event for Timer A of
+                                            // GPTM 32/64-Bit Timer 5 is
+                                            // triggered
+#define TIMER_SYNC_SYNCWT5_TB   0x00800000  // A timeout event for Timer B of
+                                            // GPTM 32/64-Bit Timer 5 is
+                                            // triggered
+#define TIMER_SYNC_SYNCWT5_TATB 0x00C00000  // A timeout event for both Timer A
+                                            // and Timer B of GPTM 32/64-Bit
+                                            // Timer 5 is triggered
+#define TIMER_SYNC_SYNCWT4_M    0x00300000  // Synchronize GPTM 32/64-Bit Timer
+                                            // 4
+#define TIMER_SYNC_SYNCWT4_NONE 0x00000000  // GPTM 32/64-Bit Timer 4 is not
+                                            // affected
+#define TIMER_SYNC_SYNCWT4_TA   0x00100000  // A timeout event for Timer A of
+                                            // GPTM 32/64-Bit Timer 4 is
+                                            // triggered
+#define TIMER_SYNC_SYNCWT4_TB   0x00200000  // A timeout event for Timer B of
+                                            // GPTM 32/64-Bit Timer 4 is
+                                            // triggered
+#define TIMER_SYNC_SYNCWT4_TATB 0x00300000  // A timeout event for both Timer A
+                                            // and Timer B of GPTM 32/64-Bit
+                                            // Timer 4 is triggered
+#define TIMER_SYNC_SYNCWT3_M    0x000C0000  // Synchronize GPTM 32/64-Bit Timer
+                                            // 3
+#define TIMER_SYNC_SYNCWT3_NONE 0x00000000  // GPTM 32/64-Bit Timer 3 is not
+                                            // affected
+#define TIMER_SYNC_SYNCWT3_TA   0x00040000  // A timeout event for Timer A of
+                                            // GPTM 32/64-Bit Timer 3 is
+                                            // triggered
+#define TIMER_SYNC_SYNCWT3_TB   0x00080000  // A timeout event for Timer B of
+                                            // GPTM 32/64-Bit Timer 3 is
+                                            // triggered
+#define TIMER_SYNC_SYNCWT3_TATB 0x000C0000  // A timeout event for both Timer A
+                                            // and Timer B of GPTM 32/64-Bit
+                                            // Timer 3 is triggered
+#define TIMER_SYNC_SYNCWT2_M    0x00030000  // Synchronize GPTM 32/64-Bit Timer
+                                            // 2
+#define TIMER_SYNC_SYNCWT2_NONE 0x00000000  // GPTM 32/64-Bit Timer 2 is not
+                                            // affected
+#define TIMER_SYNC_SYNCWT2_TA   0x00010000  // A timeout event for Timer A of
+                                            // GPTM 32/64-Bit Timer 2 is
+                                            // triggered
+#define TIMER_SYNC_SYNCWT2_TB   0x00020000  // A timeout event for Timer B of
+                                            // GPTM 32/64-Bit Timer 2 is
+                                            // triggered
+#define TIMER_SYNC_SYNCWT2_TATB 0x00030000  // A timeout event for both Timer A
+                                            // and Timer B of GPTM 32/64-Bit
+                                            // Timer 2 is triggered
+#define TIMER_SYNC_SYNCWT1_M    0x0000C000  // Synchronize GPTM 32/64-Bit Timer
+                                            // 1
+#define TIMER_SYNC_SYNCWT1_NONE 0x00000000  // GPTM 32/64-Bit Timer 1 is not
+                                            // affected
+#define TIMER_SYNC_SYNCWT1_TA   0x00004000  // A timeout event for Timer A of
+                                            // GPTM 32/64-Bit Timer 1 is
+                                            // triggered
+#define TIMER_SYNC_SYNCWT1_TB   0x00008000  // A timeout event for Timer B of
+                                            // GPTM 32/64-Bit Timer 1 is
+                                            // triggered
+#define TIMER_SYNC_SYNCWT1_TATB 0x0000C000  // A timeout event for both Timer A
+                                            // and Timer B of GPTM 32/64-Bit
+                                            // Timer 1 is triggered
+#define TIMER_SYNC_SYNCWT0_M    0x00003000  // Synchronize GPTM 32/64-Bit Timer
+                                            // 0
+#define TIMER_SYNC_SYNCWT0_NONE 0x00000000  // GPTM 32/64-Bit Timer 0 is not
+                                            // affected
+#define TIMER_SYNC_SYNCWT0_TA   0x00001000  // A timeout event for Timer A of
+                                            // GPTM 32/64-Bit Timer 0 is
+                                            // triggered
+#define TIMER_SYNC_SYNCWT0_TB   0x00002000  // A timeout event for Timer B of
+                                            // GPTM 32/64-Bit Timer 0 is
+                                            // triggered
+#define TIMER_SYNC_SYNCWT0_TATB 0x00003000  // A timeout event for both Timer A
+                                            // and Timer B of GPTM 32/64-Bit
+                                            // Timer 0 is triggered
+#define TIMER_SYNC_SYNCT5_M     0x00000C00  // Synchronize GPTM Timer 5
+#define TIMER_SYNC_SYNCT5_NONE  0x00000000  // GPTM5 is not affected
+#define TIMER_SYNC_SYNCT5_TA    0x00000400  // A timeout event for Timer A of
+                                            // GPTM5 is triggered
+#define TIMER_SYNC_SYNCT5_TB    0x00000800  // A timeout event for Timer B of
+                                            // GPTM5 is triggered
+#define TIMER_SYNC_SYNCT5_TATB  0x00000C00  // A timeout event for both Timer A
+                                            // and Timer B of GPTM5 is
+                                            // triggered
+#define TIMER_SYNC_SYNCT4_M     0x00000300  // Synchronize GPTM Timer 4
+#define TIMER_SYNC_SYNCT4_NONE  0x00000000  // GPTM4 is not affected
+#define TIMER_SYNC_SYNCT4_TA    0x00000100  // A timeout event for Timer A of
+                                            // GPTM4 is triggered
+#define TIMER_SYNC_SYNCT4_TB    0x00000200  // A timeout event for Timer B of
+                                            // GPTM4 is triggered
+#define TIMER_SYNC_SYNCT4_TATB  0x00000300  // A timeout event for both Timer A
+                                            // and Timer B of GPTM4 is
+                                            // triggered
+#define TIMER_SYNC_SYNCT3_M     0x000000C0  // Synchronize GPTM Timer 3
+#define TIMER_SYNC_SYNCT3_NONE  0x00000000  // GPTM3 is not affected
+#define TIMER_SYNC_SYNCT3_TA    0x00000040  // A timeout event for Timer A of
+                                            // GPTM3 is triggered
+#define TIMER_SYNC_SYNCT3_TB    0x00000080  // A timeout event for Timer B of
+                                            // GPTM3 is triggered
+#define TIMER_SYNC_SYNCT3_TATB  0x000000C0  // A timeout event for both Timer A
+                                            // and Timer B of GPTM3 is
+                                            // triggered
+#define TIMER_SYNC_SYNCT2_M     0x00000030  // Synchronize GPTM Timer 2
+#define TIMER_SYNC_SYNCT2_NONE  0x00000000  // GPTM2 is not affected
+#define TIMER_SYNC_SYNCT2_TA    0x00000010  // A timeout event for Timer A of
+                                            // GPTM2 is triggered
+#define TIMER_SYNC_SYNCT2_TB    0x00000020  // A timeout event for Timer B of
+                                            // GPTM2 is triggered
+#define TIMER_SYNC_SYNCT2_TATB  0x00000030  // A timeout event for both Timer A
+                                            // and Timer B of GPTM2 is
+                                            // triggered
+#define TIMER_SYNC_SYNCT1_M     0x0000000C  // Synchronize GPTM Timer 1
+#define TIMER_SYNC_SYNCT1_NONE  0x00000000  // GPTM1 is not affected
+#define TIMER_SYNC_SYNCT1_TA    0x00000004  // A timeout event for Timer A of
+                                            // GPTM1 is triggered
+#define TIMER_SYNC_SYNCT1_TB    0x00000008  // A timeout event for Timer B of
+                                            // GPTM1 is triggered
+#define TIMER_SYNC_SYNCT1_TATB  0x0000000C  // A timeout event for both Timer A
+                                            // and Timer B of GPTM1 is
+                                            // triggered
+#define TIMER_SYNC_SYNCT0_M     0x00000003  // Synchronize GPTM Timer 0
+#define TIMER_SYNC_SYNCT0_NONE  0x00000000  // GPTM0 is not affected
+#define TIMER_SYNC_SYNCT0_TA    0x00000001  // A timeout event for Timer A of
+                                            // GPTM0 is triggered
+#define TIMER_SYNC_SYNCT0_TB    0x00000002  // A timeout event for Timer B of
+                                            // GPTM0 is triggered
+#define TIMER_SYNC_SYNCT0_TATB  0x00000003  // A timeout event for both Timer A
+                                            // and Timer B of GPTM0 is
+                                            // triggered
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_IMR register.
+//
+//*****************************************************************************
+#define TIMER_IMR_WUEIM         0x00010000  // 32/64-Bit Wide GPTM Write Update
+                                            // Error Interrupt Mask
+#define TIMER_IMR_TBMIM         0x00000800  // GPTM Timer B Match Interrupt
+                                            // Mask
+#define TIMER_IMR_CBEIM         0x00000400  // GPTM Timer B Capture Mode Event
+                                            // Interrupt Mask
+#define TIMER_IMR_CBMIM         0x00000200  // GPTM Timer B Capture Mode Match
+                                            // Interrupt Mask
+#define TIMER_IMR_TBTOIM        0x00000100  // GPTM Timer B Time-Out Interrupt
+                                            // Mask
+#define TIMER_IMR_TAMIM         0x00000010  // GPTM Timer A Match Interrupt
+                                            // Mask
+#define TIMER_IMR_RTCIM         0x00000008  // GPTM RTC Interrupt Mask
+#define TIMER_IMR_CAEIM         0x00000004  // GPTM Timer A Capture Mode Event
+                                            // Interrupt Mask
+#define TIMER_IMR_CAMIM         0x00000002  // GPTM Timer A Capture Mode Match
+                                            // Interrupt Mask
+#define TIMER_IMR_TATOIM        0x00000001  // GPTM Timer A Time-Out Interrupt
+                                            // Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_RIS register.
+//
+//*****************************************************************************
+#define TIMER_RIS_WUERIS        0x00010000  // 32/64-Bit Wide GPTM Write Update
+                                            // Error Raw Interrupt Status
+#define TIMER_RIS_TBMRIS        0x00000800  // GPTM Timer B Match Raw Interrupt
+#define TIMER_RIS_CBERIS        0x00000400  // GPTM Timer B Capture Mode Event
+                                            // Raw Interrupt
+#define TIMER_RIS_CBMRIS        0x00000200  // GPTM Timer B Capture Mode Match
+                                            // Raw Interrupt
+#define TIMER_RIS_TBTORIS       0x00000100  // GPTM Timer B Time-Out Raw
+                                            // Interrupt
+#define TIMER_RIS_TAMRIS        0x00000010  // GPTM Timer A Match Raw Interrupt
+#define TIMER_RIS_RTCRIS        0x00000008  // GPTM RTC Raw Interrupt
+#define TIMER_RIS_CAERIS        0x00000004  // GPTM Timer A Capture Mode Event
+                                            // Raw Interrupt
+#define TIMER_RIS_CAMRIS        0x00000002  // GPTM Timer A Capture Mode Match
+                                            // Raw Interrupt
+#define TIMER_RIS_TATORIS       0x00000001  // GPTM Timer A Time-Out Raw
+                                            // Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_MIS register.
+//
+//*****************************************************************************
+#define TIMER_MIS_WUEMIS        0x00010000  // 32/64-Bit Wide GPTM Write Update
+                                            // Error Masked Interrupt Status
+#define TIMER_MIS_TBMMIS        0x00000800  // GPTM Timer B Match Masked
+                                            // Interrupt
+#define TIMER_MIS_CBEMIS        0x00000400  // GPTM Timer B Capture Mode Event
+                                            // Masked Interrupt
+#define TIMER_MIS_CBMMIS        0x00000200  // GPTM Timer B Capture Mode Match
+                                            // Masked Interrupt
+#define TIMER_MIS_TBTOMIS       0x00000100  // GPTM Timer B Time-Out Masked
+                                            // Interrupt
+#define TIMER_MIS_TAMMIS        0x00000010  // GPTM Timer A Match Masked
+                                            // Interrupt
+#define TIMER_MIS_RTCMIS        0x00000008  // GPTM RTC Masked Interrupt
+#define TIMER_MIS_CAEMIS        0x00000004  // GPTM Timer A Capture Mode Event
+                                            // Masked Interrupt
+#define TIMER_MIS_CAMMIS        0x00000002  // GPTM Timer A Capture Mode Match
+                                            // Masked Interrupt
+#define TIMER_MIS_TATOMIS       0x00000001  // GPTM Timer A Time-Out Masked
+                                            // Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_ICR register.
+//
+//*****************************************************************************
+#define TIMER_ICR_WUECINT       0x00010000  // 32/64-Bit Wide GPTM Write Update
+                                            // Error Interrupt Clear
+#define TIMER_ICR_TBMCINT       0x00000800  // GPTM Timer B Match Interrupt
+                                            // Clear
+#define TIMER_ICR_CBECINT       0x00000400  // GPTM Timer B Capture Mode Event
+                                            // Interrupt Clear
+#define TIMER_ICR_CBMCINT       0x00000200  // GPTM Timer B Capture Mode Match
+                                            // Interrupt Clear
+#define TIMER_ICR_TBTOCINT      0x00000100  // GPTM Timer B Time-Out Interrupt
+                                            // Clear
+#define TIMER_ICR_TAMCINT       0x00000010  // GPTM Timer A Match Interrupt
+                                            // Clear
+#define TIMER_ICR_RTCCINT       0x00000008  // GPTM RTC Interrupt Clear
+#define TIMER_ICR_CAECINT       0x00000004  // GPTM Timer A Capture Mode Event
+                                            // Interrupt Clear
+#define TIMER_ICR_CAMCINT       0x00000002  // GPTM Timer A Capture Mode Match
+                                            // Interrupt Clear
+#define TIMER_ICR_TATOCINT      0x00000001  // GPTM Timer A Time-Out Raw
+                                            // Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TAILR register.
+//
+//*****************************************************************************
+#define TIMER_TAILR_M           0xFFFFFFFF  // GPTM Timer A Interval Load
+                                            // Register
+#define TIMER_TAILR_S           0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TBILR register.
+//
+//*****************************************************************************
+#define TIMER_TBILR_M           0xFFFFFFFF  // GPTM Timer B Interval Load
+                                            // Register
+#define TIMER_TBILR_S           0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TAMATCHR
+// register.
+//
+//*****************************************************************************
+#define TIMER_TAMATCHR_TAMR_M   0xFFFFFFFF  // GPTM Timer A Match Register
+#define TIMER_TAMATCHR_TAMR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TBMATCHR
+// register.
+//
+//*****************************************************************************
+#define TIMER_TBMATCHR_TBMR_M   0xFFFFFFFF  // GPTM Timer B Match Register
+#define TIMER_TBMATCHR_TBMR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TAPR register.
+//
+//*****************************************************************************
+#define TIMER_TAPR_TAPSRH_M     0x0000FF00  // GPTM Timer A Prescale High Byte
+#define TIMER_TAPR_TAPSR_M      0x000000FF  // GPTM Timer A Prescale
+#define TIMER_TAPR_TAPSRH_S     8
+#define TIMER_TAPR_TAPSR_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TBPR register.
+//
+//*****************************************************************************
+#define TIMER_TBPR_TBPSRH_M     0x0000FF00  // GPTM Timer B Prescale High Byte
+#define TIMER_TBPR_TBPSR_M      0x000000FF  // GPTM Timer B Prescale
+#define TIMER_TBPR_TBPSRH_S     8
+#define TIMER_TBPR_TBPSR_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TAPMR register.
+//
+//*****************************************************************************
+#define TIMER_TAPMR_TAPSMRH_M   0x0000FF00  // GPTM Timer A Prescale Match High
+                                            // Byte
+#define TIMER_TAPMR_TAPSMR_M    0x000000FF  // GPTM TimerA Prescale Match
+#define TIMER_TAPMR_TAPSMRH_S   8
+#define TIMER_TAPMR_TAPSMR_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TBPMR register.
+//
+//*****************************************************************************
+#define TIMER_TBPMR_TBPSMRH_M   0x0000FF00  // GPTM Timer B Prescale Match High
+                                            // Byte
+#define TIMER_TBPMR_TBPSMR_M    0x000000FF  // GPTM TimerB Prescale Match
+#define TIMER_TBPMR_TBPSMRH_S   8
+#define TIMER_TBPMR_TBPSMR_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TAR register.
+//
+//*****************************************************************************
+#define TIMER_TAR_M             0xFFFFFFFF  // GPTM Timer A Register
+#define TIMER_TAR_S             0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TBR register.
+//
+//*****************************************************************************
+#define TIMER_TBR_M             0xFFFFFFFF  // GPTM Timer B Register
+#define TIMER_TBR_S             0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TAV register.
+//
+//*****************************************************************************
+#define TIMER_TAV_M             0xFFFFFFFF  // GPTM Timer A Value
+#define TIMER_TAV_S             0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TBV register.
+//
+//*****************************************************************************
+#define TIMER_TBV_M             0xFFFFFFFF  // GPTM Timer B Value
+#define TIMER_TBV_S             0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_RTCPD register.
+//
+//*****************************************************************************
+#define TIMER_RTCPD_RTCPD_M     0x0000FFFF  // RTC Predivide Counter Value
+#define TIMER_RTCPD_RTCPD_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TAPS register.
+//
+//*****************************************************************************
+#define TIMER_TAPS_PSS_M        0x0000FFFF  // GPTM Timer A Prescaler Snapshot
+#define TIMER_TAPS_PSS_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TBPS register.
+//
+//*****************************************************************************
+#define TIMER_TBPS_PSS_M        0x0000FFFF  // GPTM Timer A Prescaler Value
+#define TIMER_TBPS_PSS_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TAPV register.
+//
+//*****************************************************************************
+#define TIMER_TAPV_PSV_M        0x0000FFFF  // GPTM Timer A Prescaler Value
+#define TIMER_TAPV_PSV_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_TBPV register.
+//
+//*****************************************************************************
+#define TIMER_TBPV_PSV_M        0x0000FFFF  // GPTM Timer B Prescaler Value
+#define TIMER_TBPV_PSV_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the TIMER_O_PP register.
+//
+//*****************************************************************************
+#define TIMER_PP_SIZE_M         0x0000000F  // Count Size
+#define TIMER_PP_SIZE_16        0x00000000  // Timer A and Timer B counters are
+                                            // 16 bits each with an 8-bit
+                                            // prescale counter
+#define TIMER_PP_SIZE_32        0x00000001  // Timer A and Timer B counters are
+                                            // 32 bits each with a 16-bit
+                                            // prescale counter
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_ACTSS register.
+//
+//*****************************************************************************
+#define ADC_ACTSS_BUSY          0x00010000  // ADC Busy
+#define ADC_ACTSS_ASEN3         0x00000008  // ADC SS3 Enable
+#define ADC_ACTSS_ASEN2         0x00000004  // ADC SS2 Enable
+#define ADC_ACTSS_ASEN1         0x00000002  // ADC SS1 Enable
+#define ADC_ACTSS_ASEN0         0x00000001  // ADC SS0 Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_RIS register.
+//
+//*****************************************************************************
+#define ADC_RIS_INRDC           0x00010000  // Digital Comparator Raw Interrupt
+                                            // Status
+#define ADC_RIS_INR3            0x00000008  // SS3 Raw Interrupt Status
+#define ADC_RIS_INR2            0x00000004  // SS2 Raw Interrupt Status
+#define ADC_RIS_INR1            0x00000002  // SS1 Raw Interrupt Status
+#define ADC_RIS_INR0            0x00000001  // SS0 Raw Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_IM register.
+//
+//*****************************************************************************
+#define ADC_IM_DCONSS3          0x00080000  // Digital Comparator Interrupt on
+                                            // SS3
+#define ADC_IM_DCONSS2          0x00040000  // Digital Comparator Interrupt on
+                                            // SS2
+#define ADC_IM_DCONSS1          0x00020000  // Digital Comparator Interrupt on
+                                            // SS1
+#define ADC_IM_DCONSS0          0x00010000  // Digital Comparator Interrupt on
+                                            // SS0
+#define ADC_IM_MASK3            0x00000008  // SS3 Interrupt Mask
+#define ADC_IM_MASK2            0x00000004  // SS2 Interrupt Mask
+#define ADC_IM_MASK1            0x00000002  // SS1 Interrupt Mask
+#define ADC_IM_MASK0            0x00000001  // SS0 Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_ISC register.
+//
+//*****************************************************************************
+#define ADC_ISC_DCINSS3         0x00080000  // Digital Comparator Interrupt
+                                            // Status on SS3
+#define ADC_ISC_DCINSS2         0x00040000  // Digital Comparator Interrupt
+                                            // Status on SS2
+#define ADC_ISC_DCINSS1         0x00020000  // Digital Comparator Interrupt
+                                            // Status on SS1
+#define ADC_ISC_DCINSS0         0x00010000  // Digital Comparator Interrupt
+                                            // Status on SS0
+#define ADC_ISC_IN3             0x00000008  // SS3 Interrupt Status and Clear
+#define ADC_ISC_IN2             0x00000004  // SS2 Interrupt Status and Clear
+#define ADC_ISC_IN1             0x00000002  // SS1 Interrupt Status and Clear
+#define ADC_ISC_IN0             0x00000001  // SS0 Interrupt Status and Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_OSTAT register.
+//
+//*****************************************************************************
+#define ADC_OSTAT_OV3           0x00000008  // SS3 FIFO Overflow
+#define ADC_OSTAT_OV2           0x00000004  // SS2 FIFO Overflow
+#define ADC_OSTAT_OV1           0x00000002  // SS1 FIFO Overflow
+#define ADC_OSTAT_OV0           0x00000001  // SS0 FIFO Overflow
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_EMUX register.
+//
+//*****************************************************************************
+#define ADC_EMUX_EM3_M          0x0000F000  // SS3 Trigger Select
+#define ADC_EMUX_EM3_PROCESSOR  0x00000000  // Processor (default)
+#define ADC_EMUX_EM3_COMP0      0x00001000  // Analog Comparator 0
+#define ADC_EMUX_EM3_COMP1      0x00002000  // Analog Comparator 1
+#define ADC_EMUX_EM3_COMP2      0x00003000  // Analog Comparator 2
+#define ADC_EMUX_EM3_EXTERNAL   0x00004000  // External (GPIO Pins)
+#define ADC_EMUX_EM3_TIMER      0x00005000  // Timer
+#define ADC_EMUX_EM3_PWM0       0x00006000  // PWM generator 0
+#define ADC_EMUX_EM3_PWM1       0x00007000  // PWM generator 1
+#define ADC_EMUX_EM3_PWM2       0x00008000  // PWM generator 2
+#define ADC_EMUX_EM3_PWM3       0x00009000  // PWM generator 3
+#define ADC_EMUX_EM3_ALWAYS     0x0000F000  // Always (continuously sample)
+#define ADC_EMUX_EM2_M          0x00000F00  // SS2 Trigger Select
+#define ADC_EMUX_EM2_PROCESSOR  0x00000000  // Processor (default)
+#define ADC_EMUX_EM2_COMP0      0x00000100  // Analog Comparator 0
+#define ADC_EMUX_EM2_COMP1      0x00000200  // Analog Comparator 1
+#define ADC_EMUX_EM2_COMP2      0x00000300  // Analog Comparator 2
+#define ADC_EMUX_EM2_EXTERNAL   0x00000400  // External (GPIO Pins)
+#define ADC_EMUX_EM2_TIMER      0x00000500  // Timer
+#define ADC_EMUX_EM2_PWM0       0x00000600  // PWM generator 0
+#define ADC_EMUX_EM2_PWM1       0x00000700  // PWM generator 1
+#define ADC_EMUX_EM2_PWM2       0x00000800  // PWM generator 2
+#define ADC_EMUX_EM2_PWM3       0x00000900  // PWM generator 3
+#define ADC_EMUX_EM2_ALWAYS     0x00000F00  // Always (continuously sample)
+#define ADC_EMUX_EM1_M          0x000000F0  // SS1 Trigger Select
+#define ADC_EMUX_EM1_PROCESSOR  0x00000000  // Processor (default)
+#define ADC_EMUX_EM1_COMP0      0x00000010  // Analog Comparator 0
+#define ADC_EMUX_EM1_COMP1      0x00000020  // Analog Comparator 1
+#define ADC_EMUX_EM1_COMP2      0x00000030  // Analog Comparator 2
+#define ADC_EMUX_EM1_EXTERNAL   0x00000040  // External (GPIO Pins)
+#define ADC_EMUX_EM1_TIMER      0x00000050  // Timer
+#define ADC_EMUX_EM1_PWM0       0x00000060  // PWM generator 0
+#define ADC_EMUX_EM1_PWM1       0x00000070  // PWM generator 1
+#define ADC_EMUX_EM1_PWM2       0x00000080  // PWM generator 2
+#define ADC_EMUX_EM1_PWM3       0x00000090  // PWM generator 3
+#define ADC_EMUX_EM1_ALWAYS     0x000000F0  // Always (continuously sample)
+#define ADC_EMUX_EM0_M          0x0000000F  // SS0 Trigger Select
+#define ADC_EMUX_EM0_PROCESSOR  0x00000000  // Processor (default)
+#define ADC_EMUX_EM0_COMP0      0x00000001  // Analog Comparator 0
+#define ADC_EMUX_EM0_COMP1      0x00000002  // Analog Comparator 1
+#define ADC_EMUX_EM0_COMP2      0x00000003  // Analog Comparator 2
+#define ADC_EMUX_EM0_EXTERNAL   0x00000004  // External (GPIO Pins)
+#define ADC_EMUX_EM0_TIMER      0x00000005  // Timer
+#define ADC_EMUX_EM0_PWM0       0x00000006  // PWM generator 0
+#define ADC_EMUX_EM0_PWM1       0x00000007  // PWM generator 1
+#define ADC_EMUX_EM0_PWM2       0x00000008  // PWM generator 2
+#define ADC_EMUX_EM0_PWM3       0x00000009  // PWM generator 3
+#define ADC_EMUX_EM0_ALWAYS     0x0000000F  // Always (continuously sample)
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_USTAT register.
+//
+//*****************************************************************************
+#define ADC_USTAT_UV3           0x00000008  // SS3 FIFO Underflow
+#define ADC_USTAT_UV2           0x00000004  // SS2 FIFO Underflow
+#define ADC_USTAT_UV1           0x00000002  // SS1 FIFO Underflow
+#define ADC_USTAT_UV0           0x00000001  // SS0 FIFO Underflow
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_TSSEL register.
+//
+//*****************************************************************************
+#define ADC_TSSEL_PS3_M         0x30000000  // Generator 3 PWM Module Trigger
+                                            // Select
+#define ADC_TSSEL_PS3_0         0x00000000  // Use Generator 3 (and its
+                                            // trigger) in PWM module 0
+#define ADC_TSSEL_PS3_1         0x10000000  // Use Generator 3 (and its
+                                            // trigger) in PWM module 1
+#define ADC_TSSEL_PS2_M         0x00300000  // Generator 2 PWM Module Trigger
+                                            // Select
+#define ADC_TSSEL_PS2_0         0x00000000  // Use Generator 2 (and its
+                                            // trigger) in PWM module 0
+#define ADC_TSSEL_PS2_1         0x00100000  // Use Generator 2 (and its
+                                            // trigger) in PWM module 1
+#define ADC_TSSEL_PS1_M         0x00003000  // Generator 1 PWM Module Trigger
+                                            // Select
+#define ADC_TSSEL_PS1_0         0x00000000  // Use Generator 1 (and its
+                                            // trigger) in PWM module 0
+#define ADC_TSSEL_PS1_1         0x00001000  // Use Generator 1 (and its
+                                            // trigger) in PWM module 1
+#define ADC_TSSEL_PS0_M         0x00000030  // Generator 0 PWM Module Trigger
+                                            // Select
+#define ADC_TSSEL_PS0_0         0x00000000  // Use Generator 0 (and its
+                                            // trigger) in PWM module 0
+#define ADC_TSSEL_PS0_1         0x00000010  // Use Generator 0 (and its
+                                            // trigger) in PWM module 1
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSPRI register.
+//
+//*****************************************************************************
+#define ADC_SSPRI_SS3_M         0x00003000  // SS3 Priority
+#define ADC_SSPRI_SS2_M         0x00000300  // SS2 Priority
+#define ADC_SSPRI_SS1_M         0x00000030  // SS1 Priority
+#define ADC_SSPRI_SS0_M         0x00000003  // SS0 Priority
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SPC register.
+//
+//*****************************************************************************
+#define ADC_SPC_PHASE_M         0x0000000F  // Phase Difference
+#define ADC_SPC_PHASE_0         0x00000000  // ADC sample lags by 0.0
+#define ADC_SPC_PHASE_22_5      0x00000001  // ADC sample lags by 22.5
+#define ADC_SPC_PHASE_45        0x00000002  // ADC sample lags by 45.0
+#define ADC_SPC_PHASE_67_5      0x00000003  // ADC sample lags by 67.5
+#define ADC_SPC_PHASE_90        0x00000004  // ADC sample lags by 90.0
+#define ADC_SPC_PHASE_112_5     0x00000005  // ADC sample lags by 112.5
+#define ADC_SPC_PHASE_135       0x00000006  // ADC sample lags by 135.0
+#define ADC_SPC_PHASE_157_5     0x00000007  // ADC sample lags by 157.5
+#define ADC_SPC_PHASE_180       0x00000008  // ADC sample lags by 180.0
+#define ADC_SPC_PHASE_202_5     0x00000009  // ADC sample lags by 202.5
+#define ADC_SPC_PHASE_225       0x0000000A  // ADC sample lags by 225.0
+#define ADC_SPC_PHASE_247_5     0x0000000B  // ADC sample lags by 247.5
+#define ADC_SPC_PHASE_270       0x0000000C  // ADC sample lags by 270.0
+#define ADC_SPC_PHASE_292_5     0x0000000D  // ADC sample lags by 292.5
+#define ADC_SPC_PHASE_315       0x0000000E  // ADC sample lags by 315.0
+#define ADC_SPC_PHASE_337_5     0x0000000F  // ADC sample lags by 337.5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_PSSI register.
+//
+//*****************************************************************************
+#define ADC_PSSI_GSYNC          0x80000000  // Global Synchronize
+#define ADC_PSSI_SYNCWAIT       0x08000000  // Synchronize Wait
+#define ADC_PSSI_SS3            0x00000008  // SS3 Initiate
+#define ADC_PSSI_SS2            0x00000004  // SS2 Initiate
+#define ADC_PSSI_SS1            0x00000002  // SS1 Initiate
+#define ADC_PSSI_SS0            0x00000001  // SS0 Initiate
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SAC register.
+//
+//*****************************************************************************
+#define ADC_SAC_AVG_M           0x00000007  // Hardware Averaging Control
+#define ADC_SAC_AVG_OFF         0x00000000  // No hardware oversampling
+#define ADC_SAC_AVG_2X          0x00000001  // 2x hardware oversampling
+#define ADC_SAC_AVG_4X          0x00000002  // 4x hardware oversampling
+#define ADC_SAC_AVG_8X          0x00000003  // 8x hardware oversampling
+#define ADC_SAC_AVG_16X         0x00000004  // 16x hardware oversampling
+#define ADC_SAC_AVG_32X         0x00000005  // 32x hardware oversampling
+#define ADC_SAC_AVG_64X         0x00000006  // 64x hardware oversampling
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCISC register.
+//
+//*****************************************************************************
+#define ADC_DCISC_DCINT7        0x00000080  // Digital Comparator 7 Interrupt
+                                            // Status and Clear
+#define ADC_DCISC_DCINT6        0x00000040  // Digital Comparator 6 Interrupt
+                                            // Status and Clear
+#define ADC_DCISC_DCINT5        0x00000020  // Digital Comparator 5 Interrupt
+                                            // Status and Clear
+#define ADC_DCISC_DCINT4        0x00000010  // Digital Comparator 4 Interrupt
+                                            // Status and Clear
+#define ADC_DCISC_DCINT3        0x00000008  // Digital Comparator 3 Interrupt
+                                            // Status and Clear
+#define ADC_DCISC_DCINT2        0x00000004  // Digital Comparator 2 Interrupt
+                                            // Status and Clear
+#define ADC_DCISC_DCINT1        0x00000002  // Digital Comparator 1 Interrupt
+                                            // Status and Clear
+#define ADC_DCISC_DCINT0        0x00000001  // Digital Comparator 0 Interrupt
+                                            // Status and Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_CTL register.
+//
+//*****************************************************************************
+#define ADC_CTL_VREF_M          0x00000001  // Voltage Reference Select
+#define ADC_CTL_VREF_INTERNAL   0x00000000  // VDDA and GNDA are the voltage
+                                            // references
+#define ADC_CTL_VREF_EXT_3V     0x00000001  // The external VREFA+ and VREFA-
+                                            // inputs are the voltage
+                                            // references
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSMUX0 register.
+//
+//*****************************************************************************
+#define ADC_SSMUX0_MUX7_M       0xF0000000  // 8th Sample Input Select
+#define ADC_SSMUX0_MUX6_M       0x0F000000  // 7th Sample Input Select
+#define ADC_SSMUX0_MUX5_M       0x00F00000  // 6th Sample Input Select
+#define ADC_SSMUX0_MUX4_M       0x000F0000  // 5th Sample Input Select
+#define ADC_SSMUX0_MUX3_M       0x0000F000  // 4th Sample Input Select
+#define ADC_SSMUX0_MUX2_M       0x00000F00  // 3rd Sample Input Select
+#define ADC_SSMUX0_MUX1_M       0x000000F0  // 2nd Sample Input Select
+#define ADC_SSMUX0_MUX0_M       0x0000000F  // 1st Sample Input Select
+#define ADC_SSMUX0_MUX7_S       28
+#define ADC_SSMUX0_MUX6_S       24
+#define ADC_SSMUX0_MUX5_S       20
+#define ADC_SSMUX0_MUX4_S       16
+#define ADC_SSMUX0_MUX3_S       12
+#define ADC_SSMUX0_MUX2_S       8
+#define ADC_SSMUX0_MUX1_S       4
+#define ADC_SSMUX0_MUX0_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSCTL0 register.
+//
+//*****************************************************************************
+#define ADC_SSCTL0_TS7          0x80000000  // 8th Sample Temp Sensor Select
+#define ADC_SSCTL0_IE7          0x40000000  // 8th Sample Interrupt Enable
+#define ADC_SSCTL0_END7         0x20000000  // 8th Sample is End of Sequence
+#define ADC_SSCTL0_D7           0x10000000  // 8th Sample Differential Input
+                                            // Select
+#define ADC_SSCTL0_TS6          0x08000000  // 7th Sample Temp Sensor Select
+#define ADC_SSCTL0_IE6          0x04000000  // 7th Sample Interrupt Enable
+#define ADC_SSCTL0_END6         0x02000000  // 7th Sample is End of Sequence
+#define ADC_SSCTL0_D6           0x01000000  // 7th Sample Differential Input
+                                            // Select
+#define ADC_SSCTL0_TS5          0x00800000  // 6th Sample Temp Sensor Select
+#define ADC_SSCTL0_IE5          0x00400000  // 6th Sample Interrupt Enable
+#define ADC_SSCTL0_END5         0x00200000  // 6th Sample is End of Sequence
+#define ADC_SSCTL0_D5           0x00100000  // 6th Sample Differential Input
+                                            // Select
+#define ADC_SSCTL0_TS4          0x00080000  // 5th Sample Temp Sensor Select
+#define ADC_SSCTL0_IE4          0x00040000  // 5th Sample Interrupt Enable
+#define ADC_SSCTL0_END4         0x00020000  // 5th Sample is End of Sequence
+#define ADC_SSCTL0_D4           0x00010000  // 5th Sample Differential Input
+                                            // Select
+#define ADC_SSCTL0_TS3          0x00008000  // 4th Sample Temp Sensor Select
+#define ADC_SSCTL0_IE3          0x00004000  // 4th Sample Interrupt Enable
+#define ADC_SSCTL0_END3         0x00002000  // 4th Sample is End of Sequence
+#define ADC_SSCTL0_D3           0x00001000  // 4th Sample Differential Input
+                                            // Select
+#define ADC_SSCTL0_TS2          0x00000800  // 3rd Sample Temp Sensor Select
+#define ADC_SSCTL0_IE2          0x00000400  // 3rd Sample Interrupt Enable
+#define ADC_SSCTL0_END2         0x00000200  // 3rd Sample is End of Sequence
+#define ADC_SSCTL0_D2           0x00000100  // 3rd Sample Differential Input
+                                            // Select
+#define ADC_SSCTL0_TS1          0x00000080  // 2nd Sample Temp Sensor Select
+#define ADC_SSCTL0_IE1          0x00000040  // 2nd Sample Interrupt Enable
+#define ADC_SSCTL0_END1         0x00000020  // 2nd Sample is End of Sequence
+#define ADC_SSCTL0_D1           0x00000010  // 2nd Sample Differential Input
+                                            // Select
+#define ADC_SSCTL0_TS0          0x00000008  // 1st Sample Temp Sensor Select
+#define ADC_SSCTL0_IE0          0x00000004  // 1st Sample Interrupt Enable
+#define ADC_SSCTL0_END0         0x00000002  // 1st Sample is End of Sequence
+#define ADC_SSCTL0_D0           0x00000001  // 1st Sample Differential Input
+                                            // Select
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSFIFO0 register.
+//
+//*****************************************************************************
+#define ADC_SSFIFO0_DATA_M      0x00000FFF  // Conversion Result Data
+#define ADC_SSFIFO0_DATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSFSTAT0 register.
+//
+//*****************************************************************************
+#define ADC_SSFSTAT0_FULL       0x00001000  // FIFO Full
+#define ADC_SSFSTAT0_EMPTY      0x00000100  // FIFO Empty
+#define ADC_SSFSTAT0_HPTR_M     0x000000F0  // FIFO Head Pointer
+#define ADC_SSFSTAT0_TPTR_M     0x0000000F  // FIFO Tail Pointer
+#define ADC_SSFSTAT0_HPTR_S     4
+#define ADC_SSFSTAT0_TPTR_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSOP0 register.
+//
+//*****************************************************************************
+#define ADC_SSOP0_S7DCOP        0x10000000  // Sample 7 Digital Comparator
+                                            // Operation
+#define ADC_SSOP0_S6DCOP        0x01000000  // Sample 6 Digital Comparator
+                                            // Operation
+#define ADC_SSOP0_S5DCOP        0x00100000  // Sample 5 Digital Comparator
+                                            // Operation
+#define ADC_SSOP0_S4DCOP        0x00010000  // Sample 4 Digital Comparator
+                                            // Operation
+#define ADC_SSOP0_S3DCOP        0x00001000  // Sample 3 Digital Comparator
+                                            // Operation
+#define ADC_SSOP0_S2DCOP        0x00000100  // Sample 2 Digital Comparator
+                                            // Operation
+#define ADC_SSOP0_S1DCOP        0x00000010  // Sample 1 Digital Comparator
+                                            // Operation
+#define ADC_SSOP0_S0DCOP        0x00000001  // Sample 0 Digital Comparator
+                                            // Operation
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSDC0 register.
+//
+//*****************************************************************************
+#define ADC_SSDC0_S7DCSEL_M     0xF0000000  // Sample 7 Digital Comparator
+                                            // Select
+#define ADC_SSDC0_S6DCSEL_M     0x0F000000  // Sample 6 Digital Comparator
+                                            // Select
+#define ADC_SSDC0_S5DCSEL_M     0x00F00000  // Sample 5 Digital Comparator
+                                            // Select
+#define ADC_SSDC0_S4DCSEL_M     0x000F0000  // Sample 4 Digital Comparator
+                                            // Select
+#define ADC_SSDC0_S3DCSEL_M     0x0000F000  // Sample 3 Digital Comparator
+                                            // Select
+#define ADC_SSDC0_S2DCSEL_M     0x00000F00  // Sample 2 Digital Comparator
+                                            // Select
+#define ADC_SSDC0_S1DCSEL_M     0x000000F0  // Sample 1 Digital Comparator
+                                            // Select
+#define ADC_SSDC0_S0DCSEL_M     0x0000000F  // Sample 0 Digital Comparator
+                                            // Select
+#define ADC_SSDC0_S6DCSEL_S     24
+#define ADC_SSDC0_S5DCSEL_S     20
+#define ADC_SSDC0_S4DCSEL_S     16
+#define ADC_SSDC0_S3DCSEL_S     12
+#define ADC_SSDC0_S2DCSEL_S     8
+#define ADC_SSDC0_S1DCSEL_S     4
+#define ADC_SSDC0_S0DCSEL_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSEMUX0 register.
+//
+//*****************************************************************************
+#define ADC_SSEMUX0_EMUX7       0x10000000  // 8th Sample Input Select (Upper
+                                            // Bit)
+#define ADC_SSEMUX0_EMUX6       0x01000000  // 7th Sample Input Select (Upper
+                                            // Bit)
+#define ADC_SSEMUX0_EMUX5       0x00100000  // 6th Sample Input Select (Upper
+                                            // Bit)
+#define ADC_SSEMUX0_EMUX4       0x00010000  // 5th Sample Input Select (Upper
+                                            // Bit)
+#define ADC_SSEMUX0_EMUX3       0x00001000  // 4th Sample Input Select (Upper
+                                            // Bit)
+#define ADC_SSEMUX0_EMUX2       0x00000100  // 3rd Sample Input Select (Upper
+                                            // Bit)
+#define ADC_SSEMUX0_EMUX1       0x00000010  // 2th Sample Input Select (Upper
+                                            // Bit)
+#define ADC_SSEMUX0_EMUX0       0x00000001  // 1st Sample Input Select (Upper
+                                            // Bit)
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSMUX1 register.
+//
+//*****************************************************************************
+#define ADC_SSMUX1_MUX3_M       0x0000F000  // 4th Sample Input Select
+#define ADC_SSMUX1_MUX2_M       0x00000F00  // 3rd Sample Input Select
+#define ADC_SSMUX1_MUX1_M       0x000000F0  // 2nd Sample Input Select
+#define ADC_SSMUX1_MUX0_M       0x0000000F  // 1st Sample Input Select
+#define ADC_SSMUX1_MUX3_S       12
+#define ADC_SSMUX1_MUX2_S       8
+#define ADC_SSMUX1_MUX1_S       4
+#define ADC_SSMUX1_MUX0_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSCTL1 register.
+//
+//*****************************************************************************
+#define ADC_SSCTL1_TS3          0x00008000  // 4th Sample Temp Sensor Select
+#define ADC_SSCTL1_IE3          0x00004000  // 4th Sample Interrupt Enable
+#define ADC_SSCTL1_END3         0x00002000  // 4th Sample is End of Sequence
+#define ADC_SSCTL1_D3           0x00001000  // 4th Sample Differential Input
+                                            // Select
+#define ADC_SSCTL1_TS2          0x00000800  // 3rd Sample Temp Sensor Select
+#define ADC_SSCTL1_IE2          0x00000400  // 3rd Sample Interrupt Enable
+#define ADC_SSCTL1_END2         0x00000200  // 3rd Sample is End of Sequence
+#define ADC_SSCTL1_D2           0x00000100  // 3rd Sample Differential Input
+                                            // Select
+#define ADC_SSCTL1_TS1          0x00000080  // 2nd Sample Temp Sensor Select
+#define ADC_SSCTL1_IE1          0x00000040  // 2nd Sample Interrupt Enable
+#define ADC_SSCTL1_END1         0x00000020  // 2nd Sample is End of Sequence
+#define ADC_SSCTL1_D1           0x00000010  // 2nd Sample Differential Input
+                                            // Select
+#define ADC_SSCTL1_TS0          0x00000008  // 1st Sample Temp Sensor Select
+#define ADC_SSCTL1_IE0          0x00000004  // 1st Sample Interrupt Enable
+#define ADC_SSCTL1_END0         0x00000002  // 1st Sample is End of Sequence
+#define ADC_SSCTL1_D0           0x00000001  // 1st Sample Differential Input
+                                            // Select
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSFIFO1 register.
+//
+//*****************************************************************************
+#define ADC_SSFIFO1_DATA_M      0x00000FFF  // Conversion Result Data
+#define ADC_SSFIFO1_DATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSFSTAT1 register.
+//
+//*****************************************************************************
+#define ADC_SSFSTAT1_FULL       0x00001000  // FIFO Full
+#define ADC_SSFSTAT1_EMPTY      0x00000100  // FIFO Empty
+#define ADC_SSFSTAT1_HPTR_M     0x000000F0  // FIFO Head Pointer
+#define ADC_SSFSTAT1_TPTR_M     0x0000000F  // FIFO Tail Pointer
+#define ADC_SSFSTAT1_HPTR_S     4
+#define ADC_SSFSTAT1_TPTR_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSOP1 register.
+//
+//*****************************************************************************
+#define ADC_SSOP1_S3DCOP        0x00001000  // Sample 3 Digital Comparator
+                                            // Operation
+#define ADC_SSOP1_S2DCOP        0x00000100  // Sample 2 Digital Comparator
+                                            // Operation
+#define ADC_SSOP1_S1DCOP        0x00000010  // Sample 1 Digital Comparator
+                                            // Operation
+#define ADC_SSOP1_S0DCOP        0x00000001  // Sample 0 Digital Comparator
+                                            // Operation
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSDC1 register.
+//
+//*****************************************************************************
+#define ADC_SSDC1_S3DCSEL_M     0x0000F000  // Sample 3 Digital Comparator
+                                            // Select
+#define ADC_SSDC1_S2DCSEL_M     0x00000F00  // Sample 2 Digital Comparator
+                                            // Select
+#define ADC_SSDC1_S1DCSEL_M     0x000000F0  // Sample 1 Digital Comparator
+                                            // Select
+#define ADC_SSDC1_S0DCSEL_M     0x0000000F  // Sample 0 Digital Comparator
+                                            // Select
+#define ADC_SSDC1_S2DCSEL_S     8
+#define ADC_SSDC1_S1DCSEL_S     4
+#define ADC_SSDC1_S0DCSEL_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSEMUX1 register.
+//
+//*****************************************************************************
+#define ADC_SSEMUX1_EMUX3       0x00001000  // 4th Sample Input Select (Upper
+                                            // Bit)
+#define ADC_SSEMUX1_EMUX2       0x00000100  // 3rd Sample Input Select (Upper
+                                            // Bit)
+#define ADC_SSEMUX1_EMUX1       0x00000010  // 2th Sample Input Select (Upper
+                                            // Bit)
+#define ADC_SSEMUX1_EMUX0       0x00000001  // 1st Sample Input Select (Upper
+                                            // Bit)
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSMUX2 register.
+//
+//*****************************************************************************
+#define ADC_SSMUX2_MUX3_M       0x0000F000  // 4th Sample Input Select
+#define ADC_SSMUX2_MUX2_M       0x00000F00  // 3rd Sample Input Select
+#define ADC_SSMUX2_MUX1_M       0x000000F0  // 2nd Sample Input Select
+#define ADC_SSMUX2_MUX0_M       0x0000000F  // 1st Sample Input Select
+#define ADC_SSMUX2_MUX3_S       12
+#define ADC_SSMUX2_MUX2_S       8
+#define ADC_SSMUX2_MUX1_S       4
+#define ADC_SSMUX2_MUX0_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSCTL2 register.
+//
+//*****************************************************************************
+#define ADC_SSCTL2_TS3          0x00008000  // 4th Sample Temp Sensor Select
+#define ADC_SSCTL2_IE3          0x00004000  // 4th Sample Interrupt Enable
+#define ADC_SSCTL2_END3         0x00002000  // 4th Sample is End of Sequence
+#define ADC_SSCTL2_D3           0x00001000  // 4th Sample Differential Input
+                                            // Select
+#define ADC_SSCTL2_TS2          0x00000800  // 3rd Sample Temp Sensor Select
+#define ADC_SSCTL2_IE2          0x00000400  // 3rd Sample Interrupt Enable
+#define ADC_SSCTL2_END2         0x00000200  // 3rd Sample is End of Sequence
+#define ADC_SSCTL2_D2           0x00000100  // 3rd Sample Differential Input
+                                            // Select
+#define ADC_SSCTL2_TS1          0x00000080  // 2nd Sample Temp Sensor Select
+#define ADC_SSCTL2_IE1          0x00000040  // 2nd Sample Interrupt Enable
+#define ADC_SSCTL2_END1         0x00000020  // 2nd Sample is End of Sequence
+#define ADC_SSCTL2_D1           0x00000010  // 2nd Sample Differential Input
+                                            // Select
+#define ADC_SSCTL2_TS0          0x00000008  // 1st Sample Temp Sensor Select
+#define ADC_SSCTL2_IE0          0x00000004  // 1st Sample Interrupt Enable
+#define ADC_SSCTL2_END0         0x00000002  // 1st Sample is End of Sequence
+#define ADC_SSCTL2_D0           0x00000001  // 1st Sample Differential Input
+                                            // Select
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSFIFO2 register.
+//
+//*****************************************************************************
+#define ADC_SSFIFO2_DATA_M      0x00000FFF  // Conversion Result Data
+#define ADC_SSFIFO2_DATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSFSTAT2 register.
+//
+//*****************************************************************************
+#define ADC_SSFSTAT2_FULL       0x00001000  // FIFO Full
+#define ADC_SSFSTAT2_EMPTY      0x00000100  // FIFO Empty
+#define ADC_SSFSTAT2_HPTR_M     0x000000F0  // FIFO Head Pointer
+#define ADC_SSFSTAT2_TPTR_M     0x0000000F  // FIFO Tail Pointer
+#define ADC_SSFSTAT2_HPTR_S     4
+#define ADC_SSFSTAT2_TPTR_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSOP2 register.
+//
+//*****************************************************************************
+#define ADC_SSOP2_S3DCOP        0x00001000  // Sample 3 Digital Comparator
+                                            // Operation
+#define ADC_SSOP2_S2DCOP        0x00000100  // Sample 2 Digital Comparator
+                                            // Operation
+#define ADC_SSOP2_S1DCOP        0x00000010  // Sample 1 Digital Comparator
+                                            // Operation
+#define ADC_SSOP2_S0DCOP        0x00000001  // Sample 0 Digital Comparator
+                                            // Operation
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSDC2 register.
+//
+//*****************************************************************************
+#define ADC_SSDC2_S3DCSEL_M     0x0000F000  // Sample 3 Digital Comparator
+                                            // Select
+#define ADC_SSDC2_S2DCSEL_M     0x00000F00  // Sample 2 Digital Comparator
+                                            // Select
+#define ADC_SSDC2_S1DCSEL_M     0x000000F0  // Sample 1 Digital Comparator
+                                            // Select
+#define ADC_SSDC2_S0DCSEL_M     0x0000000F  // Sample 0 Digital Comparator
+                                            // Select
+#define ADC_SSDC2_S2DCSEL_S     8
+#define ADC_SSDC2_S1DCSEL_S     4
+#define ADC_SSDC2_S0DCSEL_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSEMUX2 register.
+//
+//*****************************************************************************
+#define ADC_SSEMUX2_EMUX3       0x00001000  // 4th Sample Input Select (Upper
+                                            // Bit)
+#define ADC_SSEMUX2_EMUX2       0x00000100  // 3rd Sample Input Select (Upper
+                                            // Bit)
+#define ADC_SSEMUX2_EMUX1       0x00000010  // 2th Sample Input Select (Upper
+                                            // Bit)
+#define ADC_SSEMUX2_EMUX0       0x00000001  // 1st Sample Input Select (Upper
+                                            // Bit)
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSMUX3 register.
+//
+//*****************************************************************************
+#define ADC_SSMUX3_MUX0_M       0x0000000F  // 1st Sample Input Select
+#define ADC_SSMUX3_MUX0_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSCTL3 register.
+//
+//*****************************************************************************
+#define ADC_SSCTL3_TS0          0x00000008  // 1st Sample Temp Sensor Select
+#define ADC_SSCTL3_IE0          0x00000004  // Sample Interrupt Enable
+#define ADC_SSCTL3_END0         0x00000002  // End of Sequence
+#define ADC_SSCTL3_D0           0x00000001  // Sample Differential Input Select
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSFIFO3 register.
+//
+//*****************************************************************************
+#define ADC_SSFIFO3_DATA_M      0x00000FFF  // Conversion Result Data
+#define ADC_SSFIFO3_DATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSFSTAT3 register.
+//
+//*****************************************************************************
+#define ADC_SSFSTAT3_FULL       0x00001000  // FIFO Full
+#define ADC_SSFSTAT3_EMPTY      0x00000100  // FIFO Empty
+#define ADC_SSFSTAT3_HPTR_M     0x000000F0  // FIFO Head Pointer
+#define ADC_SSFSTAT3_TPTR_M     0x0000000F  // FIFO Tail Pointer
+#define ADC_SSFSTAT3_HPTR_S     4
+#define ADC_SSFSTAT3_TPTR_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSOP3 register.
+//
+//*****************************************************************************
+#define ADC_SSOP3_S0DCOP        0x00000001  // Sample 0 Digital Comparator
+                                            // Operation
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSDC3 register.
+//
+//*****************************************************************************
+#define ADC_SSDC3_S0DCSEL_M     0x0000000F  // Sample 0 Digital Comparator
+                                            // Select
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_SSEMUX3 register.
+//
+//*****************************************************************************
+#define ADC_SSEMUX3_EMUX0       0x00000001  // 1st Sample Input Select (Upper
+                                            // Bit)
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCRIC register.
+//
+//*****************************************************************************
+#define ADC_DCRIC_DCTRIG7       0x00800000  // Digital Comparator Trigger 7
+#define ADC_DCRIC_DCTRIG6       0x00400000  // Digital Comparator Trigger 6
+#define ADC_DCRIC_DCTRIG5       0x00200000  // Digital Comparator Trigger 5
+#define ADC_DCRIC_DCTRIG4       0x00100000  // Digital Comparator Trigger 4
+#define ADC_DCRIC_DCTRIG3       0x00080000  // Digital Comparator Trigger 3
+#define ADC_DCRIC_DCTRIG2       0x00040000  // Digital Comparator Trigger 2
+#define ADC_DCRIC_DCTRIG1       0x00020000  // Digital Comparator Trigger 1
+#define ADC_DCRIC_DCTRIG0       0x00010000  // Digital Comparator Trigger 0
+#define ADC_DCRIC_DCINT7        0x00000080  // Digital Comparator Interrupt 7
+#define ADC_DCRIC_DCINT6        0x00000040  // Digital Comparator Interrupt 6
+#define ADC_DCRIC_DCINT5        0x00000020  // Digital Comparator Interrupt 5
+#define ADC_DCRIC_DCINT4        0x00000010  // Digital Comparator Interrupt 4
+#define ADC_DCRIC_DCINT3        0x00000008  // Digital Comparator Interrupt 3
+#define ADC_DCRIC_DCINT2        0x00000004  // Digital Comparator Interrupt 2
+#define ADC_DCRIC_DCINT1        0x00000002  // Digital Comparator Interrupt 1
+#define ADC_DCRIC_DCINT0        0x00000001  // Digital Comparator Interrupt 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCTL0 register.
+//
+//*****************************************************************************
+#define ADC_DCCTL0_CTE          0x00001000  // Comparison Trigger Enable
+#define ADC_DCCTL0_CTC_M        0x00000C00  // Comparison Trigger Condition
+#define ADC_DCCTL0_CTC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL0_CTC_MID      0x00000400  // Mid Band
+#define ADC_DCCTL0_CTC_HIGH     0x00000C00  // High Band
+#define ADC_DCCTL0_CTM_M        0x00000300  // Comparison Trigger Mode
+#define ADC_DCCTL0_CTM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL0_CTM_ONCE     0x00000100  // Once
+#define ADC_DCCTL0_CTM_HALWAYS  0x00000200  // Hysteresis Always
+#define ADC_DCCTL0_CTM_HONCE    0x00000300  // Hysteresis Once
+#define ADC_DCCTL0_CIE          0x00000010  // Comparison Interrupt Enable
+#define ADC_DCCTL0_CIC_M        0x0000000C  // Comparison Interrupt Condition
+#define ADC_DCCTL0_CIC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL0_CIC_MID      0x00000004  // Mid Band
+#define ADC_DCCTL0_CIC_HIGH     0x0000000C  // High Band
+#define ADC_DCCTL0_CIM_M        0x00000003  // Comparison Interrupt Mode
+#define ADC_DCCTL0_CIM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL0_CIM_ONCE     0x00000001  // Once
+#define ADC_DCCTL0_CIM_HALWAYS  0x00000002  // Hysteresis Always
+#define ADC_DCCTL0_CIM_HONCE    0x00000003  // Hysteresis Once
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCTL1 register.
+//
+//*****************************************************************************
+#define ADC_DCCTL1_CTE          0x00001000  // Comparison Trigger Enable
+#define ADC_DCCTL1_CTC_M        0x00000C00  // Comparison Trigger Condition
+#define ADC_DCCTL1_CTC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL1_CTC_MID      0x00000400  // Mid Band
+#define ADC_DCCTL1_CTC_HIGH     0x00000C00  // High Band
+#define ADC_DCCTL1_CTM_M        0x00000300  // Comparison Trigger Mode
+#define ADC_DCCTL1_CTM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL1_CTM_ONCE     0x00000100  // Once
+#define ADC_DCCTL1_CTM_HALWAYS  0x00000200  // Hysteresis Always
+#define ADC_DCCTL1_CTM_HONCE    0x00000300  // Hysteresis Once
+#define ADC_DCCTL1_CIE          0x00000010  // Comparison Interrupt Enable
+#define ADC_DCCTL1_CIC_M        0x0000000C  // Comparison Interrupt Condition
+#define ADC_DCCTL1_CIC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL1_CIC_MID      0x00000004  // Mid Band
+#define ADC_DCCTL1_CIC_HIGH     0x0000000C  // High Band
+#define ADC_DCCTL1_CIM_M        0x00000003  // Comparison Interrupt Mode
+#define ADC_DCCTL1_CIM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL1_CIM_ONCE     0x00000001  // Once
+#define ADC_DCCTL1_CIM_HALWAYS  0x00000002  // Hysteresis Always
+#define ADC_DCCTL1_CIM_HONCE    0x00000003  // Hysteresis Once
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCTL2 register.
+//
+//*****************************************************************************
+#define ADC_DCCTL2_CTE          0x00001000  // Comparison Trigger Enable
+#define ADC_DCCTL2_CTC_M        0x00000C00  // Comparison Trigger Condition
+#define ADC_DCCTL2_CTC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL2_CTC_MID      0x00000400  // Mid Band
+#define ADC_DCCTL2_CTC_HIGH     0x00000C00  // High Band
+#define ADC_DCCTL2_CTM_M        0x00000300  // Comparison Trigger Mode
+#define ADC_DCCTL2_CTM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL2_CTM_ONCE     0x00000100  // Once
+#define ADC_DCCTL2_CTM_HALWAYS  0x00000200  // Hysteresis Always
+#define ADC_DCCTL2_CTM_HONCE    0x00000300  // Hysteresis Once
+#define ADC_DCCTL2_CIE          0x00000010  // Comparison Interrupt Enable
+#define ADC_DCCTL2_CIC_M        0x0000000C  // Comparison Interrupt Condition
+#define ADC_DCCTL2_CIC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL2_CIC_MID      0x00000004  // Mid Band
+#define ADC_DCCTL2_CIC_HIGH     0x0000000C  // High Band
+#define ADC_DCCTL2_CIM_M        0x00000003  // Comparison Interrupt Mode
+#define ADC_DCCTL2_CIM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL2_CIM_ONCE     0x00000001  // Once
+#define ADC_DCCTL2_CIM_HALWAYS  0x00000002  // Hysteresis Always
+#define ADC_DCCTL2_CIM_HONCE    0x00000003  // Hysteresis Once
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCTL3 register.
+//
+//*****************************************************************************
+#define ADC_DCCTL3_CTE          0x00001000  // Comparison Trigger Enable
+#define ADC_DCCTL3_CTC_M        0x00000C00  // Comparison Trigger Condition
+#define ADC_DCCTL3_CTC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL3_CTC_MID      0x00000400  // Mid Band
+#define ADC_DCCTL3_CTC_HIGH     0x00000C00  // High Band
+#define ADC_DCCTL3_CTM_M        0x00000300  // Comparison Trigger Mode
+#define ADC_DCCTL3_CTM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL3_CTM_ONCE     0x00000100  // Once
+#define ADC_DCCTL3_CTM_HALWAYS  0x00000200  // Hysteresis Always
+#define ADC_DCCTL3_CTM_HONCE    0x00000300  // Hysteresis Once
+#define ADC_DCCTL3_CIE          0x00000010  // Comparison Interrupt Enable
+#define ADC_DCCTL3_CIC_M        0x0000000C  // Comparison Interrupt Condition
+#define ADC_DCCTL3_CIC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL3_CIC_MID      0x00000004  // Mid Band
+#define ADC_DCCTL3_CIC_HIGH     0x0000000C  // High Band
+#define ADC_DCCTL3_CIM_M        0x00000003  // Comparison Interrupt Mode
+#define ADC_DCCTL3_CIM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL3_CIM_ONCE     0x00000001  // Once
+#define ADC_DCCTL3_CIM_HALWAYS  0x00000002  // Hysteresis Always
+#define ADC_DCCTL3_CIM_HONCE    0x00000003  // Hysteresis Once
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCTL4 register.
+//
+//*****************************************************************************
+#define ADC_DCCTL4_CTE          0x00001000  // Comparison Trigger Enable
+#define ADC_DCCTL4_CTC_M        0x00000C00  // Comparison Trigger Condition
+#define ADC_DCCTL4_CTC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL4_CTC_MID      0x00000400  // Mid Band
+#define ADC_DCCTL4_CTC_HIGH     0x00000C00  // High Band
+#define ADC_DCCTL4_CTM_M        0x00000300  // Comparison Trigger Mode
+#define ADC_DCCTL4_CTM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL4_CTM_ONCE     0x00000100  // Once
+#define ADC_DCCTL4_CTM_HALWAYS  0x00000200  // Hysteresis Always
+#define ADC_DCCTL4_CTM_HONCE    0x00000300  // Hysteresis Once
+#define ADC_DCCTL4_CIE          0x00000010  // Comparison Interrupt Enable
+#define ADC_DCCTL4_CIC_M        0x0000000C  // Comparison Interrupt Condition
+#define ADC_DCCTL4_CIC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL4_CIC_MID      0x00000004  // Mid Band
+#define ADC_DCCTL4_CIC_HIGH     0x0000000C  // High Band
+#define ADC_DCCTL4_CIM_M        0x00000003  // Comparison Interrupt Mode
+#define ADC_DCCTL4_CIM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL4_CIM_ONCE     0x00000001  // Once
+#define ADC_DCCTL4_CIM_HALWAYS  0x00000002  // Hysteresis Always
+#define ADC_DCCTL4_CIM_HONCE    0x00000003  // Hysteresis Once
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCTL5 register.
+//
+//*****************************************************************************
+#define ADC_DCCTL5_CTE          0x00001000  // Comparison Trigger Enable
+#define ADC_DCCTL5_CTC_M        0x00000C00  // Comparison Trigger Condition
+#define ADC_DCCTL5_CTC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL5_CTC_MID      0x00000400  // Mid Band
+#define ADC_DCCTL5_CTC_HIGH     0x00000C00  // High Band
+#define ADC_DCCTL5_CTM_M        0x00000300  // Comparison Trigger Mode
+#define ADC_DCCTL5_CTM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL5_CTM_ONCE     0x00000100  // Once
+#define ADC_DCCTL5_CTM_HALWAYS  0x00000200  // Hysteresis Always
+#define ADC_DCCTL5_CTM_HONCE    0x00000300  // Hysteresis Once
+#define ADC_DCCTL5_CIE          0x00000010  // Comparison Interrupt Enable
+#define ADC_DCCTL5_CIC_M        0x0000000C  // Comparison Interrupt Condition
+#define ADC_DCCTL5_CIC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL5_CIC_MID      0x00000004  // Mid Band
+#define ADC_DCCTL5_CIC_HIGH     0x0000000C  // High Band
+#define ADC_DCCTL5_CIM_M        0x00000003  // Comparison Interrupt Mode
+#define ADC_DCCTL5_CIM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL5_CIM_ONCE     0x00000001  // Once
+#define ADC_DCCTL5_CIM_HALWAYS  0x00000002  // Hysteresis Always
+#define ADC_DCCTL5_CIM_HONCE    0x00000003  // Hysteresis Once
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCTL6 register.
+//
+//*****************************************************************************
+#define ADC_DCCTL6_CTE          0x00001000  // Comparison Trigger Enable
+#define ADC_DCCTL6_CTC_M        0x00000C00  // Comparison Trigger Condition
+#define ADC_DCCTL6_CTC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL6_CTC_MID      0x00000400  // Mid Band
+#define ADC_DCCTL6_CTC_HIGH     0x00000C00  // High Band
+#define ADC_DCCTL6_CTM_M        0x00000300  // Comparison Trigger Mode
+#define ADC_DCCTL6_CTM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL6_CTM_ONCE     0x00000100  // Once
+#define ADC_DCCTL6_CTM_HALWAYS  0x00000200  // Hysteresis Always
+#define ADC_DCCTL6_CTM_HONCE    0x00000300  // Hysteresis Once
+#define ADC_DCCTL6_CIE          0x00000010  // Comparison Interrupt Enable
+#define ADC_DCCTL6_CIC_M        0x0000000C  // Comparison Interrupt Condition
+#define ADC_DCCTL6_CIC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL6_CIC_MID      0x00000004  // Mid Band
+#define ADC_DCCTL6_CIC_HIGH     0x0000000C  // High Band
+#define ADC_DCCTL6_CIM_M        0x00000003  // Comparison Interrupt Mode
+#define ADC_DCCTL6_CIM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL6_CIM_ONCE     0x00000001  // Once
+#define ADC_DCCTL6_CIM_HALWAYS  0x00000002  // Hysteresis Always
+#define ADC_DCCTL6_CIM_HONCE    0x00000003  // Hysteresis Once
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCTL7 register.
+//
+//*****************************************************************************
+#define ADC_DCCTL7_CTE          0x00001000  // Comparison Trigger Enable
+#define ADC_DCCTL7_CTC_M        0x00000C00  // Comparison Trigger Condition
+#define ADC_DCCTL7_CTC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL7_CTC_MID      0x00000400  // Mid Band
+#define ADC_DCCTL7_CTC_HIGH     0x00000C00  // High Band
+#define ADC_DCCTL7_CTM_M        0x00000300  // Comparison Trigger Mode
+#define ADC_DCCTL7_CTM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL7_CTM_ONCE     0x00000100  // Once
+#define ADC_DCCTL7_CTM_HALWAYS  0x00000200  // Hysteresis Always
+#define ADC_DCCTL7_CTM_HONCE    0x00000300  // Hysteresis Once
+#define ADC_DCCTL7_CIE          0x00000010  // Comparison Interrupt Enable
+#define ADC_DCCTL7_CIC_M        0x0000000C  // Comparison Interrupt Condition
+#define ADC_DCCTL7_CIC_LOW      0x00000000  // Low Band
+#define ADC_DCCTL7_CIC_MID      0x00000004  // Mid Band
+#define ADC_DCCTL7_CIC_HIGH     0x0000000C  // High Band
+#define ADC_DCCTL7_CIM_M        0x00000003  // Comparison Interrupt Mode
+#define ADC_DCCTL7_CIM_ALWAYS   0x00000000  // Always
+#define ADC_DCCTL7_CIM_ONCE     0x00000001  // Once
+#define ADC_DCCTL7_CIM_HALWAYS  0x00000002  // Hysteresis Always
+#define ADC_DCCTL7_CIM_HONCE    0x00000003  // Hysteresis Once
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCMP0 register.
+//
+//*****************************************************************************
+#define ADC_DCCMP0_COMP1_M      0x0FFF0000  // Compare 1
+#define ADC_DCCMP0_COMP0_M      0x00000FFF  // Compare 0
+#define ADC_DCCMP0_COMP1_S      16
+#define ADC_DCCMP0_COMP0_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCMP1 register.
+//
+//*****************************************************************************
+#define ADC_DCCMP1_COMP1_M      0x0FFF0000  // Compare 1
+#define ADC_DCCMP1_COMP0_M      0x00000FFF  // Compare 0
+#define ADC_DCCMP1_COMP1_S      16
+#define ADC_DCCMP1_COMP0_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCMP2 register.
+//
+//*****************************************************************************
+#define ADC_DCCMP2_COMP1_M      0x0FFF0000  // Compare 1
+#define ADC_DCCMP2_COMP0_M      0x00000FFF  // Compare 0
+#define ADC_DCCMP2_COMP1_S      16
+#define ADC_DCCMP2_COMP0_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCMP3 register.
+//
+//*****************************************************************************
+#define ADC_DCCMP3_COMP1_M      0x0FFF0000  // Compare 1
+#define ADC_DCCMP3_COMP0_M      0x00000FFF  // Compare 0
+#define ADC_DCCMP3_COMP1_S      16
+#define ADC_DCCMP3_COMP0_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCMP4 register.
+//
+//*****************************************************************************
+#define ADC_DCCMP4_COMP1_M      0x0FFF0000  // Compare 1
+#define ADC_DCCMP4_COMP0_M      0x00000FFF  // Compare 0
+#define ADC_DCCMP4_COMP1_S      16
+#define ADC_DCCMP4_COMP0_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCMP5 register.
+//
+//*****************************************************************************
+#define ADC_DCCMP5_COMP1_M      0x0FFF0000  // Compare 1
+#define ADC_DCCMP5_COMP0_M      0x00000FFF  // Compare 0
+#define ADC_DCCMP5_COMP1_S      16
+#define ADC_DCCMP5_COMP0_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCMP6 register.
+//
+//*****************************************************************************
+#define ADC_DCCMP6_COMP1_M      0x0FFF0000  // Compare 1
+#define ADC_DCCMP6_COMP0_M      0x00000FFF  // Compare 0
+#define ADC_DCCMP6_COMP1_S      16
+#define ADC_DCCMP6_COMP0_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_DCCMP7 register.
+//
+//*****************************************************************************
+#define ADC_DCCMP7_COMP1_M      0x0FFF0000  // Compare 1
+#define ADC_DCCMP7_COMP0_M      0x00000FFF  // Compare 0
+#define ADC_DCCMP7_COMP1_S      16
+#define ADC_DCCMP7_COMP0_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_PP register.
+//
+//*****************************************************************************
+#define ADC_PP_TS               0x00800000  // Temperature Sensor
+#define ADC_PP_RSL_M            0x007C0000  // Resolution
+#define ADC_PP_TYPE_M           0x00030000  // ADC Architecture
+#define ADC_PP_TYPE_SAR         0x00000000  // SAR
+#define ADC_PP_DC_M             0x0000FC00  // Digital Comparator Count
+#define ADC_PP_CH_M             0x000003F0  // ADC Channel Count
+#define ADC_PP_MSR_M            0x0000000F  // Maximum ADC Sample Rate
+#define ADC_PP_MSR_125K         0x00000001  // 125 ksps
+#define ADC_PP_MSR_250K         0x00000003  // 250 ksps
+#define ADC_PP_MSR_500K         0x00000005  // 500 ksps
+#define ADC_PP_MSR_1M           0x00000007  // 1 Msps
+#define ADC_PP_RSL_S            18
+#define ADC_PP_DC_S             10
+#define ADC_PP_CH_S             4
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_PC register.
+//
+//*****************************************************************************
+#define ADC_PC_SR_M             0x0000000F  // ADC Sample Rate
+#define ADC_PC_SR_125K          0x00000001  // 125 ksps
+#define ADC_PC_SR_250K          0x00000003  // 250 ksps
+#define ADC_PC_SR_500K          0x00000005  // 500 ksps
+#define ADC_PC_SR_1M            0x00000007  // 1 Msps
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the ADC_O_CC register.
+//
+//*****************************************************************************
+#define ADC_CC_CS_M             0x0000000F  // ADC Clock Source
+#define ADC_CC_CS_SYSPLL        0x00000000  // PLL VCO divided by CLKDIV
+#define ADC_CC_CS_PIOSC         0x00000001  // PIOSC
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the COMP_O_ACMIS register.
+//
+//*****************************************************************************
+#define COMP_ACMIS_IN2          0x00000004  // Comparator 2 Masked Interrupt
+                                            // Status
+#define COMP_ACMIS_IN1          0x00000002  // Comparator 1 Masked Interrupt
+                                            // Status
+#define COMP_ACMIS_IN0          0x00000001  // Comparator 0 Masked Interrupt
+                                            // Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the COMP_O_ACRIS register.
+//
+//*****************************************************************************
+#define COMP_ACRIS_IN2          0x00000004  // Comparator 2 Interrupt Status
+#define COMP_ACRIS_IN1          0x00000002  // Comparator 1 Interrupt Status
+#define COMP_ACRIS_IN0          0x00000001  // Comparator 0 Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the COMP_O_ACINTEN register.
+//
+//*****************************************************************************
+#define COMP_ACINTEN_IN2        0x00000004  // Comparator 2 Interrupt Enable
+#define COMP_ACINTEN_IN1        0x00000002  // Comparator 1 Interrupt Enable
+#define COMP_ACINTEN_IN0        0x00000001  // Comparator 0 Interrupt Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the COMP_O_ACREFCTL
+// register.
+//
+//*****************************************************************************
+#define COMP_ACREFCTL_EN        0x00000200  // Resistor Ladder Enable
+#define COMP_ACREFCTL_RNG       0x00000100  // Resistor Ladder Range
+#define COMP_ACREFCTL_VREF_M    0x0000000F  // Resistor Ladder Voltage Ref
+#define COMP_ACREFCTL_VREF_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the COMP_O_ACSTAT0 register.
+//
+//*****************************************************************************
+#define COMP_ACSTAT0_OVAL       0x00000002  // Comparator Output Value
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the COMP_O_ACCTL0 register.
+//
+//*****************************************************************************
+#define COMP_ACCTL0_TOEN        0x00000800  // Trigger Output Enable
+#define COMP_ACCTL0_ASRCP_M     0x00000600  // Analog Source Positive
+#define COMP_ACCTL0_ASRCP_PIN   0x00000000  // Pin value of Cn+
+#define COMP_ACCTL0_ASRCP_PIN0  0x00000200  // Pin value of C0+
+#define COMP_ACCTL0_ASRCP_REF   0x00000400  // Internal voltage reference
+#define COMP_ACCTL0_TSLVAL      0x00000080  // Trigger Sense Level Value
+#define COMP_ACCTL0_TSEN_M      0x00000060  // Trigger Sense
+#define COMP_ACCTL0_TSEN_LEVEL  0x00000000  // Level sense, see TSLVAL
+#define COMP_ACCTL0_TSEN_FALL   0x00000020  // Falling edge
+#define COMP_ACCTL0_TSEN_RISE   0x00000040  // Rising edge
+#define COMP_ACCTL0_TSEN_BOTH   0x00000060  // Either edge
+#define COMP_ACCTL0_ISLVAL      0x00000010  // Interrupt Sense Level Value
+#define COMP_ACCTL0_ISEN_M      0x0000000C  // Interrupt Sense
+#define COMP_ACCTL0_ISEN_LEVEL  0x00000000  // Level sense, see ISLVAL
+#define COMP_ACCTL0_ISEN_FALL   0x00000004  // Falling edge
+#define COMP_ACCTL0_ISEN_RISE   0x00000008  // Rising edge
+#define COMP_ACCTL0_ISEN_BOTH   0x0000000C  // Either edge
+#define COMP_ACCTL0_CINV        0x00000002  // Comparator Output Invert
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the COMP_O_ACSTAT1 register.
+//
+//*****************************************************************************
+#define COMP_ACSTAT1_OVAL       0x00000002  // Comparator Output Value
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the COMP_O_ACCTL1 register.
+//
+//*****************************************************************************
+#define COMP_ACCTL1_TOEN        0x00000800  // Trigger Output Enable
+#define COMP_ACCTL1_ASRCP_M     0x00000600  // Analog Source Positive
+#define COMP_ACCTL1_ASRCP_PIN   0x00000000  // Pin value of Cn+
+#define COMP_ACCTL1_ASRCP_PIN0  0x00000200  // Pin value of C0+
+#define COMP_ACCTL1_ASRCP_REF   0x00000400  // Internal voltage reference
+#define COMP_ACCTL1_TSLVAL      0x00000080  // Trigger Sense Level Value
+#define COMP_ACCTL1_TSEN_M      0x00000060  // Trigger Sense
+#define COMP_ACCTL1_TSEN_LEVEL  0x00000000  // Level sense, see TSLVAL
+#define COMP_ACCTL1_TSEN_FALL   0x00000020  // Falling edge
+#define COMP_ACCTL1_TSEN_RISE   0x00000040  // Rising edge
+#define COMP_ACCTL1_TSEN_BOTH   0x00000060  // Either edge
+#define COMP_ACCTL1_ISLVAL      0x00000010  // Interrupt Sense Level Value
+#define COMP_ACCTL1_ISEN_M      0x0000000C  // Interrupt Sense
+#define COMP_ACCTL1_ISEN_LEVEL  0x00000000  // Level sense, see ISLVAL
+#define COMP_ACCTL1_ISEN_FALL   0x00000004  // Falling edge
+#define COMP_ACCTL1_ISEN_RISE   0x00000008  // Rising edge
+#define COMP_ACCTL1_ISEN_BOTH   0x0000000C  // Either edge
+#define COMP_ACCTL1_CINV        0x00000002  // Comparator Output Invert
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the COMP_O_ACSTAT2 register.
+//
+//*****************************************************************************
+#define COMP_ACSTAT2_OVAL       0x00000002  // Comparator Output Value
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the COMP_O_ACCTL2 register.
+//
+//*****************************************************************************
+#define COMP_ACCTL2_TOEN        0x00000800  // Trigger Output Enable
+#define COMP_ACCTL2_ASRCP_M     0x00000600  // Analog Source Positive
+#define COMP_ACCTL2_ASRCP_PIN   0x00000000  // Pin value of Cn+
+#define COMP_ACCTL2_ASRCP_PIN0  0x00000200  // Pin value of C0+
+#define COMP_ACCTL2_ASRCP_REF   0x00000400  // Internal voltage reference
+#define COMP_ACCTL2_TSLVAL      0x00000080  // Trigger Sense Level Value
+#define COMP_ACCTL2_TSEN_M      0x00000060  // Trigger Sense
+#define COMP_ACCTL2_TSEN_LEVEL  0x00000000  // Level sense, see TSLVAL
+#define COMP_ACCTL2_TSEN_FALL   0x00000020  // Falling edge
+#define COMP_ACCTL2_TSEN_RISE   0x00000040  // Rising edge
+#define COMP_ACCTL2_TSEN_BOTH   0x00000060  // Either edge
+#define COMP_ACCTL2_ISLVAL      0x00000010  // Interrupt Sense Level Value
+#define COMP_ACCTL2_ISEN_M      0x0000000C  // Interrupt Sense
+#define COMP_ACCTL2_ISEN_LEVEL  0x00000000  // Level sense, see ISLVAL
+#define COMP_ACCTL2_ISEN_FALL   0x00000004  // Falling edge
+#define COMP_ACCTL2_ISEN_RISE   0x00000008  // Rising edge
+#define COMP_ACCTL2_ISEN_BOTH   0x0000000C  // Either edge
+#define COMP_ACCTL2_CINV        0x00000002  // Comparator Output Invert
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the COMP_O_PP register.
+//
+//*****************************************************************************
+#define COMP_PP_C2O             0x00040000  // Comparator Output 2 Present
+#define COMP_PP_C1O             0x00020000  // Comparator Output 1 Present
+#define COMP_PP_C0O             0x00010000  // Comparator Output 0 Present
+#define COMP_PP_CMP2            0x00000004  // Comparator 2 Present
+#define COMP_PP_CMP1            0x00000002  // Comparator 1 Present
+#define COMP_PP_CMP0            0x00000001  // Comparator 0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_CTL register.
+//
+//*****************************************************************************
+#define CAN_CTL_TEST            0x00000080  // Test Mode Enable
+#define CAN_CTL_CCE             0x00000040  // Configuration Change Enable
+#define CAN_CTL_DAR             0x00000020  // Disable Automatic-Retransmission
+#define CAN_CTL_EIE             0x00000008  // Error Interrupt Enable
+#define CAN_CTL_SIE             0x00000004  // Status Interrupt Enable
+#define CAN_CTL_IE              0x00000002  // CAN Interrupt Enable
+#define CAN_CTL_INIT            0x00000001  // Initialization
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_STS register.
+//
+//*****************************************************************************
+#define CAN_STS_BOFF            0x00000080  // Bus-Off Status
+#define CAN_STS_EWARN           0x00000040  // Warning Status
+#define CAN_STS_EPASS           0x00000020  // Error Passive
+#define CAN_STS_RXOK            0x00000010  // Received a Message Successfully
+#define CAN_STS_TXOK            0x00000008  // Transmitted a Message
+                                            // Successfully
+#define CAN_STS_LEC_M           0x00000007  // Last Error Code
+#define CAN_STS_LEC_NONE        0x00000000  // No Error
+#define CAN_STS_LEC_STUFF       0x00000001  // Stuff Error
+#define CAN_STS_LEC_FORM        0x00000002  // Format Error
+#define CAN_STS_LEC_ACK         0x00000003  // ACK Error
+#define CAN_STS_LEC_BIT1        0x00000004  // Bit 1 Error
+#define CAN_STS_LEC_BIT0        0x00000005  // Bit 0 Error
+#define CAN_STS_LEC_CRC         0x00000006  // CRC Error
+#define CAN_STS_LEC_NOEVENT     0x00000007  // No Event
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_ERR register.
+//
+//*****************************************************************************
+#define CAN_ERR_RP              0x00008000  // Received Error Passive
+#define CAN_ERR_REC_M           0x00007F00  // Receive Error Counter
+#define CAN_ERR_TEC_M           0x000000FF  // Transmit Error Counter
+#define CAN_ERR_REC_S           8
+#define CAN_ERR_TEC_S           0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_BIT register.
+//
+//*****************************************************************************
+#define CAN_BIT_TSEG2_M         0x00007000  // Time Segment after Sample Point
+#define CAN_BIT_TSEG1_M         0x00000F00  // Time Segment Before Sample Point
+#define CAN_BIT_SJW_M           0x000000C0  // (Re)Synchronization Jump Width
+#define CAN_BIT_BRP_M           0x0000003F  // Baud Rate Prescaler
+#define CAN_BIT_TSEG2_S         12
+#define CAN_BIT_TSEG1_S         8
+#define CAN_BIT_SJW_S           6
+#define CAN_BIT_BRP_S           0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_INT register.
+//
+//*****************************************************************************
+#define CAN_INT_INTID_M         0x0000FFFF  // Interrupt Identifier
+#define CAN_INT_INTID_NONE      0x00000000  // No interrupt pending
+#define CAN_INT_INTID_STATUS    0x00008000  // Status Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_TST register.
+//
+//*****************************************************************************
+#define CAN_TST_RX              0x00000080  // Receive Observation
+#define CAN_TST_TX_M            0x00000060  // Transmit Control
+#define CAN_TST_TX_CANCTL       0x00000000  // CAN Module Control
+#define CAN_TST_TX_SAMPLE       0x00000020  // Sample Point
+#define CAN_TST_TX_DOMINANT     0x00000040  // Driven Low
+#define CAN_TST_TX_RECESSIVE    0x00000060  // Driven High
+#define CAN_TST_LBACK           0x00000010  // Loopback Mode
+#define CAN_TST_SILENT          0x00000008  // Silent Mode
+#define CAN_TST_BASIC           0x00000004  // Basic Mode
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_BRPE register.
+//
+//*****************************************************************************
+#define CAN_BRPE_BRPE_M         0x0000000F  // Baud Rate Prescaler Extension
+#define CAN_BRPE_BRPE_S         0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF1CRQ register.
+//
+//*****************************************************************************
+#define CAN_IF1CRQ_BUSY         0x00008000  // Busy Flag
+#define CAN_IF1CRQ_MNUM_M       0x0000003F  // Message Number
+#define CAN_IF1CRQ_MNUM_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF1CMSK register.
+//
+//*****************************************************************************
+#define CAN_IF1CMSK_WRNRD       0x00000080  // Write, Not Read
+#define CAN_IF1CMSK_MASK        0x00000040  // Access Mask Bits
+#define CAN_IF1CMSK_ARB         0x00000020  // Access Arbitration Bits
+#define CAN_IF1CMSK_CONTROL     0x00000010  // Access Control Bits
+#define CAN_IF1CMSK_CLRINTPND   0x00000008  // Clear Interrupt Pending Bit
+#define CAN_IF1CMSK_NEWDAT      0x00000004  // Access New Data
+#define CAN_IF1CMSK_TXRQST      0x00000004  // Access Transmission Request
+#define CAN_IF1CMSK_DATAA       0x00000002  // Access Data Byte 0 to 3
+#define CAN_IF1CMSK_DATAB       0x00000001  // Access Data Byte 4 to 7
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF1MSK1 register.
+//
+//*****************************************************************************
+#define CAN_IF1MSK1_IDMSK_M     0x0000FFFF  // Identifier Mask
+#define CAN_IF1MSK1_IDMSK_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF1MSK2 register.
+//
+//*****************************************************************************
+#define CAN_IF1MSK2_MXTD        0x00008000  // Mask Extended Identifier
+#define CAN_IF1MSK2_MDIR        0x00004000  // Mask Message Direction
+#define CAN_IF1MSK2_IDMSK_M     0x00001FFF  // Identifier Mask
+#define CAN_IF1MSK2_IDMSK_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF1ARB1 register.
+//
+//*****************************************************************************
+#define CAN_IF1ARB1_ID_M        0x0000FFFF  // Message Identifier
+#define CAN_IF1ARB1_ID_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF1ARB2 register.
+//
+//*****************************************************************************
+#define CAN_IF1ARB2_MSGVAL      0x00008000  // Message Valid
+#define CAN_IF1ARB2_XTD         0x00004000  // Extended Identifier
+#define CAN_IF1ARB2_DIR         0x00002000  // Message Direction
+#define CAN_IF1ARB2_ID_M        0x00001FFF  // Message Identifier
+#define CAN_IF1ARB2_ID_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF1MCTL register.
+//
+//*****************************************************************************
+#define CAN_IF1MCTL_NEWDAT      0x00008000  // New Data
+#define CAN_IF1MCTL_MSGLST      0x00004000  // Message Lost
+#define CAN_IF1MCTL_INTPND      0x00002000  // Interrupt Pending
+#define CAN_IF1MCTL_UMASK       0x00001000  // Use Acceptance Mask
+#define CAN_IF1MCTL_TXIE        0x00000800  // Transmit Interrupt Enable
+#define CAN_IF1MCTL_RXIE        0x00000400  // Receive Interrupt Enable
+#define CAN_IF1MCTL_RMTEN       0x00000200  // Remote Enable
+#define CAN_IF1MCTL_TXRQST      0x00000100  // Transmit Request
+#define CAN_IF1MCTL_EOB         0x00000080  // End of Buffer
+#define CAN_IF1MCTL_DLC_M       0x0000000F  // Data Length Code
+#define CAN_IF1MCTL_DLC_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF1DA1 register.
+//
+//*****************************************************************************
+#define CAN_IF1DA1_DATA_M       0x0000FFFF  // Data
+#define CAN_IF1DA1_DATA_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF1DA2 register.
+//
+//*****************************************************************************
+#define CAN_IF1DA2_DATA_M       0x0000FFFF  // Data
+#define CAN_IF1DA2_DATA_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF1DB1 register.
+//
+//*****************************************************************************
+#define CAN_IF1DB1_DATA_M       0x0000FFFF  // Data
+#define CAN_IF1DB1_DATA_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF1DB2 register.
+//
+//*****************************************************************************
+#define CAN_IF1DB2_DATA_M       0x0000FFFF  // Data
+#define CAN_IF1DB2_DATA_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF2CRQ register.
+//
+//*****************************************************************************
+#define CAN_IF2CRQ_BUSY         0x00008000  // Busy Flag
+#define CAN_IF2CRQ_MNUM_M       0x0000003F  // Message Number
+#define CAN_IF2CRQ_MNUM_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF2CMSK register.
+//
+//*****************************************************************************
+#define CAN_IF2CMSK_WRNRD       0x00000080  // Write, Not Read
+#define CAN_IF2CMSK_MASK        0x00000040  // Access Mask Bits
+#define CAN_IF2CMSK_ARB         0x00000020  // Access Arbitration Bits
+#define CAN_IF2CMSK_CONTROL     0x00000010  // Access Control Bits
+#define CAN_IF2CMSK_CLRINTPND   0x00000008  // Clear Interrupt Pending Bit
+#define CAN_IF2CMSK_NEWDAT      0x00000004  // Access New Data
+#define CAN_IF2CMSK_TXRQST      0x00000004  // Access Transmission Request
+#define CAN_IF2CMSK_DATAA       0x00000002  // Access Data Byte 0 to 3
+#define CAN_IF2CMSK_DATAB       0x00000001  // Access Data Byte 4 to 7
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF2MSK1 register.
+//
+//*****************************************************************************
+#define CAN_IF2MSK1_IDMSK_M     0x0000FFFF  // Identifier Mask
+#define CAN_IF2MSK1_IDMSK_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF2MSK2 register.
+//
+//*****************************************************************************
+#define CAN_IF2MSK2_MXTD        0x00008000  // Mask Extended Identifier
+#define CAN_IF2MSK2_MDIR        0x00004000  // Mask Message Direction
+#define CAN_IF2MSK2_IDMSK_M     0x00001FFF  // Identifier Mask
+#define CAN_IF2MSK2_IDMSK_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF2ARB1 register.
+//
+//*****************************************************************************
+#define CAN_IF2ARB1_ID_M        0x0000FFFF  // Message Identifier
+#define CAN_IF2ARB1_ID_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF2ARB2 register.
+//
+//*****************************************************************************
+#define CAN_IF2ARB2_MSGVAL      0x00008000  // Message Valid
+#define CAN_IF2ARB2_XTD         0x00004000  // Extended Identifier
+#define CAN_IF2ARB2_DIR         0x00002000  // Message Direction
+#define CAN_IF2ARB2_ID_M        0x00001FFF  // Message Identifier
+#define CAN_IF2ARB2_ID_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF2MCTL register.
+//
+//*****************************************************************************
+#define CAN_IF2MCTL_NEWDAT      0x00008000  // New Data
+#define CAN_IF2MCTL_MSGLST      0x00004000  // Message Lost
+#define CAN_IF2MCTL_INTPND      0x00002000  // Interrupt Pending
+#define CAN_IF2MCTL_UMASK       0x00001000  // Use Acceptance Mask
+#define CAN_IF2MCTL_TXIE        0x00000800  // Transmit Interrupt Enable
+#define CAN_IF2MCTL_RXIE        0x00000400  // Receive Interrupt Enable
+#define CAN_IF2MCTL_RMTEN       0x00000200  // Remote Enable
+#define CAN_IF2MCTL_TXRQST      0x00000100  // Transmit Request
+#define CAN_IF2MCTL_EOB         0x00000080  // End of Buffer
+#define CAN_IF2MCTL_DLC_M       0x0000000F  // Data Length Code
+#define CAN_IF2MCTL_DLC_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF2DA1 register.
+//
+//*****************************************************************************
+#define CAN_IF2DA1_DATA_M       0x0000FFFF  // Data
+#define CAN_IF2DA1_DATA_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF2DA2 register.
+//
+//*****************************************************************************
+#define CAN_IF2DA2_DATA_M       0x0000FFFF  // Data
+#define CAN_IF2DA2_DATA_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF2DB1 register.
+//
+//*****************************************************************************
+#define CAN_IF2DB1_DATA_M       0x0000FFFF  // Data
+#define CAN_IF2DB1_DATA_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_IF2DB2 register.
+//
+//*****************************************************************************
+#define CAN_IF2DB2_DATA_M       0x0000FFFF  // Data
+#define CAN_IF2DB2_DATA_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_TXRQ1 register.
+//
+//*****************************************************************************
+#define CAN_TXRQ1_TXRQST_M      0x0000FFFF  // Transmission Request Bits
+#define CAN_TXRQ1_TXRQST_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_TXRQ2 register.
+//
+//*****************************************************************************
+#define CAN_TXRQ2_TXRQST_M      0x0000FFFF  // Transmission Request Bits
+#define CAN_TXRQ2_TXRQST_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_NWDA1 register.
+//
+//*****************************************************************************
+#define CAN_NWDA1_NEWDAT_M      0x0000FFFF  // New Data Bits
+#define CAN_NWDA1_NEWDAT_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_NWDA2 register.
+//
+//*****************************************************************************
+#define CAN_NWDA2_NEWDAT_M      0x0000FFFF  // New Data Bits
+#define CAN_NWDA2_NEWDAT_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_MSG1INT register.
+//
+//*****************************************************************************
+#define CAN_MSG1INT_INTPND_M    0x0000FFFF  // Interrupt Pending Bits
+#define CAN_MSG1INT_INTPND_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_MSG2INT register.
+//
+//*****************************************************************************
+#define CAN_MSG2INT_INTPND_M    0x0000FFFF  // Interrupt Pending Bits
+#define CAN_MSG2INT_INTPND_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_MSG1VAL register.
+//
+//*****************************************************************************
+#define CAN_MSG1VAL_MSGVAL_M    0x0000FFFF  // Message Valid Bits
+#define CAN_MSG1VAL_MSGVAL_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the CAN_O_MSG2VAL register.
+//
+//*****************************************************************************
+#define CAN_MSG2VAL_MSGVAL_M    0x0000FFFF  // Message Valid Bits
+#define CAN_MSG2VAL_MSGVAL_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_FADDR register.
+//
+//*****************************************************************************
+#define USB_FADDR_M             0x0000007F  // Function Address
+#define USB_FADDR_S             0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_POWER register.
+//
+//*****************************************************************************
+#define USB_POWER_ISOUP         0x00000080  // Isochronous Update
+#define USB_POWER_SOFTCONN      0x00000040  // Soft Connect/Disconnect
+#define USB_POWER_RESET         0x00000008  // RESET Signaling
+#define USB_POWER_RESUME        0x00000004  // RESUME Signaling
+#define USB_POWER_SUSPEND       0x00000002  // SUSPEND Mode
+#define USB_POWER_PWRDNPHY      0x00000001  // Power Down PHY
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXIS register.
+//
+//*****************************************************************************
+#define USB_TXIS_EP7            0x00000080  // TX Endpoint 7 Interrupt
+#define USB_TXIS_EP6            0x00000040  // TX Endpoint 6 Interrupt
+#define USB_TXIS_EP5            0x00000020  // TX Endpoint 5 Interrupt
+#define USB_TXIS_EP4            0x00000010  // TX Endpoint 4 Interrupt
+#define USB_TXIS_EP3            0x00000008  // TX Endpoint 3 Interrupt
+#define USB_TXIS_EP2            0x00000004  // TX Endpoint 2 Interrupt
+#define USB_TXIS_EP1            0x00000002  // TX Endpoint 1 Interrupt
+#define USB_TXIS_EP0            0x00000001  // TX and RX Endpoint 0 Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXIS register.
+//
+//*****************************************************************************
+#define USB_RXIS_EP7            0x00000080  // RX Endpoint 7 Interrupt
+#define USB_RXIS_EP6            0x00000040  // RX Endpoint 6 Interrupt
+#define USB_RXIS_EP5            0x00000020  // RX Endpoint 5 Interrupt
+#define USB_RXIS_EP4            0x00000010  // RX Endpoint 4 Interrupt
+#define USB_RXIS_EP3            0x00000008  // RX Endpoint 3 Interrupt
+#define USB_RXIS_EP2            0x00000004  // RX Endpoint 2 Interrupt
+#define USB_RXIS_EP1            0x00000002  // RX Endpoint 1 Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXIE register.
+//
+//*****************************************************************************
+#define USB_TXIE_EP7            0x00000080  // TX Endpoint 7 Interrupt Enable
+#define USB_TXIE_EP6            0x00000040  // TX Endpoint 6 Interrupt Enable
+#define USB_TXIE_EP5            0x00000020  // TX Endpoint 5 Interrupt Enable
+#define USB_TXIE_EP4            0x00000010  // TX Endpoint 4 Interrupt Enable
+#define USB_TXIE_EP3            0x00000008  // TX Endpoint 3 Interrupt Enable
+#define USB_TXIE_EP2            0x00000004  // TX Endpoint 2 Interrupt Enable
+#define USB_TXIE_EP1            0x00000002  // TX Endpoint 1 Interrupt Enable
+#define USB_TXIE_EP0            0x00000001  // TX and RX Endpoint 0 Interrupt
+                                            // Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXIE register.
+//
+//*****************************************************************************
+#define USB_RXIE_EP7            0x00000080  // RX Endpoint 7 Interrupt Enable
+#define USB_RXIE_EP6            0x00000040  // RX Endpoint 6 Interrupt Enable
+#define USB_RXIE_EP5            0x00000020  // RX Endpoint 5 Interrupt Enable
+#define USB_RXIE_EP4            0x00000010  // RX Endpoint 4 Interrupt Enable
+#define USB_RXIE_EP3            0x00000008  // RX Endpoint 3 Interrupt Enable
+#define USB_RXIE_EP2            0x00000004  // RX Endpoint 2 Interrupt Enable
+#define USB_RXIE_EP1            0x00000002  // RX Endpoint 1 Interrupt Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_IS register.
+//
+//*****************************************************************************
+#define USB_IS_VBUSERR          0x00000080  // VBUS Error (OTG only)
+#define USB_IS_SESREQ           0x00000040  // SESSION REQUEST (OTG only)
+#define USB_IS_DISCON           0x00000020  // Session Disconnect (OTG only)
+#define USB_IS_CONN             0x00000010  // Session Connect
+#define USB_IS_SOF              0x00000008  // Start of Frame
+#define USB_IS_BABBLE           0x00000004  // Babble Detected
+#define USB_IS_RESET            0x00000004  // RESET Signaling Detected
+#define USB_IS_RESUME           0x00000002  // RESUME Signaling Detected
+#define USB_IS_SUSPEND          0x00000001  // SUSPEND Signaling Detected
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_IE register.
+//
+//*****************************************************************************
+#define USB_IE_VBUSERR          0x00000080  // Enable VBUS Error Interrupt (OTG
+                                            // only)
+#define USB_IE_SESREQ           0x00000040  // Enable Session Request (OTG
+                                            // only)
+#define USB_IE_DISCON           0x00000020  // Enable Disconnect Interrupt
+#define USB_IE_CONN             0x00000010  // Enable Connect Interrupt
+#define USB_IE_SOF              0x00000008  // Enable Start-of-Frame Interrupt
+#define USB_IE_BABBLE           0x00000004  // Enable Babble Interrupt
+#define USB_IE_RESET            0x00000004  // Enable RESET Interrupt
+#define USB_IE_RESUME           0x00000002  // Enable RESUME Interrupt
+#define USB_IE_SUSPND           0x00000001  // Enable SUSPEND Interrupt
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_FRAME register.
+//
+//*****************************************************************************
+#define USB_FRAME_M             0x000007FF  // Frame Number
+#define USB_FRAME_S             0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_EPIDX register.
+//
+//*****************************************************************************
+#define USB_EPIDX_EPIDX_M       0x0000000F  // Endpoint Index
+#define USB_EPIDX_EPIDX_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TEST register.
+//
+//*****************************************************************************
+#define USB_TEST_FORCEH         0x00000080  // Force Host Mode
+#define USB_TEST_FIFOACC        0x00000040  // FIFO Access
+#define USB_TEST_FORCEFS        0x00000020  // Force Full-Speed Mode
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_FIFO0 register.
+//
+//*****************************************************************************
+#define USB_FIFO0_EPDATA_M      0xFFFFFFFF  // Endpoint Data
+#define USB_FIFO0_EPDATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_FIFO1 register.
+//
+//*****************************************************************************
+#define USB_FIFO1_EPDATA_M      0xFFFFFFFF  // Endpoint Data
+#define USB_FIFO1_EPDATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_FIFO2 register.
+//
+//*****************************************************************************
+#define USB_FIFO2_EPDATA_M      0xFFFFFFFF  // Endpoint Data
+#define USB_FIFO2_EPDATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_FIFO3 register.
+//
+//*****************************************************************************
+#define USB_FIFO3_EPDATA_M      0xFFFFFFFF  // Endpoint Data
+#define USB_FIFO3_EPDATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_FIFO4 register.
+//
+//*****************************************************************************
+#define USB_FIFO4_EPDATA_M      0xFFFFFFFF  // Endpoint Data
+#define USB_FIFO4_EPDATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_FIFO5 register.
+//
+//*****************************************************************************
+#define USB_FIFO5_EPDATA_M      0xFFFFFFFF  // Endpoint Data
+#define USB_FIFO5_EPDATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_FIFO6 register.
+//
+//*****************************************************************************
+#define USB_FIFO6_EPDATA_M      0xFFFFFFFF  // Endpoint Data
+#define USB_FIFO6_EPDATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_FIFO7 register.
+//
+//*****************************************************************************
+#define USB_FIFO7_EPDATA_M      0xFFFFFFFF  // Endpoint Data
+#define USB_FIFO7_EPDATA_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DEVCTL register.
+//
+//*****************************************************************************
+#define USB_DEVCTL_DEV          0x00000080  // Device Mode (OTG only)
+#define USB_DEVCTL_FSDEV        0x00000040  // Full-Speed Device Detected
+#define USB_DEVCTL_LSDEV        0x00000020  // Low-Speed Device Detected
+#define USB_DEVCTL_VBUS_M       0x00000018  // VBUS Level (OTG only)
+#define USB_DEVCTL_VBUS_NONE    0x00000000  // Below SessionEnd
+#define USB_DEVCTL_VBUS_SEND    0x00000008  // Above SessionEnd, below AValid
+#define USB_DEVCTL_VBUS_AVALID  0x00000010  // Above AValid, below VBUSValid
+#define USB_DEVCTL_VBUS_VALID   0x00000018  // Above VBUSValid
+#define USB_DEVCTL_HOST         0x00000004  // Host Mode
+#define USB_DEVCTL_HOSTREQ      0x00000002  // Host Request (OTG only)
+#define USB_DEVCTL_SESSION      0x00000001  // Session Start/End (OTG only)
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXFIFOSZ register.
+//
+//*****************************************************************************
+#define USB_TXFIFOSZ_DPB        0x00000010  // Double Packet Buffer Support
+#define USB_TXFIFOSZ_SIZE_M     0x0000000F  // Max Packet Size
+#define USB_TXFIFOSZ_SIZE_8     0x00000000  // 8
+#define USB_TXFIFOSZ_SIZE_16    0x00000001  // 16
+#define USB_TXFIFOSZ_SIZE_32    0x00000002  // 32
+#define USB_TXFIFOSZ_SIZE_64    0x00000003  // 64
+#define USB_TXFIFOSZ_SIZE_128   0x00000004  // 128
+#define USB_TXFIFOSZ_SIZE_256   0x00000005  // 256
+#define USB_TXFIFOSZ_SIZE_512   0x00000006  // 512
+#define USB_TXFIFOSZ_SIZE_1024  0x00000007  // 1024
+#define USB_TXFIFOSZ_SIZE_2048  0x00000008  // 2048
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXFIFOSZ register.
+//
+//*****************************************************************************
+#define USB_RXFIFOSZ_DPB        0x00000010  // Double Packet Buffer Support
+#define USB_RXFIFOSZ_SIZE_M     0x0000000F  // Max Packet Size
+#define USB_RXFIFOSZ_SIZE_8     0x00000000  // 8
+#define USB_RXFIFOSZ_SIZE_16    0x00000001  // 16
+#define USB_RXFIFOSZ_SIZE_32    0x00000002  // 32
+#define USB_RXFIFOSZ_SIZE_64    0x00000003  // 64
+#define USB_RXFIFOSZ_SIZE_128   0x00000004  // 128
+#define USB_RXFIFOSZ_SIZE_256   0x00000005  // 256
+#define USB_RXFIFOSZ_SIZE_512   0x00000006  // 512
+#define USB_RXFIFOSZ_SIZE_1024  0x00000007  // 1024
+#define USB_RXFIFOSZ_SIZE_2048  0x00000008  // 2048
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXFIFOADD
+// register.
+//
+//*****************************************************************************
+#define USB_TXFIFOADD_ADDR_M    0x000001FF  // Transmit/Receive Start Address
+#define USB_TXFIFOADD_ADDR_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXFIFOADD
+// register.
+//
+//*****************************************************************************
+#define USB_RXFIFOADD_ADDR_M    0x000001FF  // Transmit/Receive Start Address
+#define USB_RXFIFOADD_ADDR_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_CONTIM register.
+//
+//*****************************************************************************
+#define USB_CONTIM_WTCON_M      0x000000F0  // Connect Wait
+#define USB_CONTIM_WTID_M       0x0000000F  // Wait ID
+#define USB_CONTIM_WTCON_S      4
+#define USB_CONTIM_WTID_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_VPLEN register.
+//
+//*****************************************************************************
+#define USB_VPLEN_VPLEN_M       0x000000FF  // VBUS Pulse Length
+#define USB_VPLEN_VPLEN_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_FSEOF register.
+//
+//*****************************************************************************
+#define USB_FSEOF_FSEOFG_M      0x000000FF  // Full-Speed End-of-Frame Gap
+#define USB_FSEOF_FSEOFG_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_LSEOF register.
+//
+//*****************************************************************************
+#define USB_LSEOF_LSEOFG_M      0x000000FF  // Low-Speed End-of-Frame Gap
+#define USB_LSEOF_LSEOFG_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXFUNCADDR0
+// register.
+//
+//*****************************************************************************
+#define USB_TXFUNCADDR0_ADDR_M  0x0000007F  // Device Address
+#define USB_TXFUNCADDR0_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBADDR0
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBADDR0_ADDR_M   0x0000007F  // Hub Address
+#define USB_TXHUBADDR0_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBPORT0
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBPORT0_PORT_M   0x0000007F  // Hub Port
+#define USB_TXHUBPORT0_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXFUNCADDR1
+// register.
+//
+//*****************************************************************************
+#define USB_TXFUNCADDR1_ADDR_M  0x0000007F  // Device Address
+#define USB_TXFUNCADDR1_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBADDR1
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBADDR1_ADDR_M   0x0000007F  // Hub Address
+#define USB_TXHUBADDR1_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBPORT1
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBPORT1_PORT_M   0x0000007F  // Hub Port
+#define USB_TXHUBPORT1_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXFUNCADDR1
+// register.
+//
+//*****************************************************************************
+#define USB_RXFUNCADDR1_ADDR_M  0x0000007F  // Device Address
+#define USB_RXFUNCADDR1_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBADDR1
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBADDR1_ADDR_M   0x0000007F  // Hub Address
+#define USB_RXHUBADDR1_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBPORT1
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBPORT1_PORT_M   0x0000007F  // Hub Port
+#define USB_RXHUBPORT1_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXFUNCADDR2
+// register.
+//
+//*****************************************************************************
+#define USB_TXFUNCADDR2_ADDR_M  0x0000007F  // Device Address
+#define USB_TXFUNCADDR2_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBADDR2
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBADDR2_ADDR_M   0x0000007F  // Hub Address
+#define USB_TXHUBADDR2_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBPORT2
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBPORT2_PORT_M   0x0000007F  // Hub Port
+#define USB_TXHUBPORT2_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXFUNCADDR2
+// register.
+//
+//*****************************************************************************
+#define USB_RXFUNCADDR2_ADDR_M  0x0000007F  // Device Address
+#define USB_RXFUNCADDR2_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBADDR2
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBADDR2_ADDR_M   0x0000007F  // Hub Address
+#define USB_RXHUBADDR2_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBPORT2
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBPORT2_PORT_M   0x0000007F  // Hub Port
+#define USB_RXHUBPORT2_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXFUNCADDR3
+// register.
+//
+//*****************************************************************************
+#define USB_TXFUNCADDR3_ADDR_M  0x0000007F  // Device Address
+#define USB_TXFUNCADDR3_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBADDR3
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBADDR3_ADDR_M   0x0000007F  // Hub Address
+#define USB_TXHUBADDR3_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBPORT3
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBPORT3_PORT_M   0x0000007F  // Hub Port
+#define USB_TXHUBPORT3_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXFUNCADDR3
+// register.
+//
+//*****************************************************************************
+#define USB_RXFUNCADDR3_ADDR_M  0x0000007F  // Device Address
+#define USB_RXFUNCADDR3_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBADDR3
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBADDR3_ADDR_M   0x0000007F  // Hub Address
+#define USB_RXHUBADDR3_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBPORT3
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBPORT3_PORT_M   0x0000007F  // Hub Port
+#define USB_RXHUBPORT3_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXFUNCADDR4
+// register.
+//
+//*****************************************************************************
+#define USB_TXFUNCADDR4_ADDR_M  0x0000007F  // Device Address
+#define USB_TXFUNCADDR4_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBADDR4
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBADDR4_ADDR_M   0x0000007F  // Hub Address
+#define USB_TXHUBADDR4_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBPORT4
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBPORT4_PORT_M   0x0000007F  // Hub Port
+#define USB_TXHUBPORT4_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXFUNCADDR4
+// register.
+//
+//*****************************************************************************
+#define USB_RXFUNCADDR4_ADDR_M  0x0000007F  // Device Address
+#define USB_RXFUNCADDR4_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBADDR4
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBADDR4_ADDR_M   0x0000007F  // Hub Address
+#define USB_RXHUBADDR4_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBPORT4
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBPORT4_PORT_M   0x0000007F  // Hub Port
+#define USB_RXHUBPORT4_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXFUNCADDR5
+// register.
+//
+//*****************************************************************************
+#define USB_TXFUNCADDR5_ADDR_M  0x0000007F  // Device Address
+#define USB_TXFUNCADDR5_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBADDR5
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBADDR5_ADDR_M   0x0000007F  // Hub Address
+#define USB_TXHUBADDR5_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBPORT5
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBPORT5_PORT_M   0x0000007F  // Hub Port
+#define USB_TXHUBPORT5_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXFUNCADDR5
+// register.
+//
+//*****************************************************************************
+#define USB_RXFUNCADDR5_ADDR_M  0x0000007F  // Device Address
+#define USB_RXFUNCADDR5_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBADDR5
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBADDR5_ADDR_M   0x0000007F  // Hub Address
+#define USB_RXHUBADDR5_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBPORT5
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBPORT5_PORT_M   0x0000007F  // Hub Port
+#define USB_RXHUBPORT5_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXFUNCADDR6
+// register.
+//
+//*****************************************************************************
+#define USB_TXFUNCADDR6_ADDR_M  0x0000007F  // Device Address
+#define USB_TXFUNCADDR6_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBADDR6
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBADDR6_ADDR_M   0x0000007F  // Hub Address
+#define USB_TXHUBADDR6_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBPORT6
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBPORT6_PORT_M   0x0000007F  // Hub Port
+#define USB_TXHUBPORT6_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXFUNCADDR6
+// register.
+//
+//*****************************************************************************
+#define USB_RXFUNCADDR6_ADDR_M  0x0000007F  // Device Address
+#define USB_RXFUNCADDR6_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBADDR6
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBADDR6_ADDR_M   0x0000007F  // Hub Address
+#define USB_RXHUBADDR6_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBPORT6
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBPORT6_PORT_M   0x0000007F  // Hub Port
+#define USB_RXHUBPORT6_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXFUNCADDR7
+// register.
+//
+//*****************************************************************************
+#define USB_TXFUNCADDR7_ADDR_M  0x0000007F  // Device Address
+#define USB_TXFUNCADDR7_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBADDR7
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBADDR7_ADDR_M   0x0000007F  // Hub Address
+#define USB_TXHUBADDR7_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXHUBPORT7
+// register.
+//
+//*****************************************************************************
+#define USB_TXHUBPORT7_PORT_M   0x0000007F  // Hub Port
+#define USB_TXHUBPORT7_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXFUNCADDR7
+// register.
+//
+//*****************************************************************************
+#define USB_RXFUNCADDR7_ADDR_M  0x0000007F  // Device Address
+#define USB_RXFUNCADDR7_ADDR_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBADDR7
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBADDR7_ADDR_M   0x0000007F  // Hub Address
+#define USB_RXHUBADDR7_ADDR_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXHUBPORT7
+// register.
+//
+//*****************************************************************************
+#define USB_RXHUBPORT7_PORT_M   0x0000007F  // Hub Port
+#define USB_RXHUBPORT7_PORT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_CSRL0 register.
+//
+//*****************************************************************************
+#define USB_CSRL0_NAKTO         0x00000080  // NAK Timeout
+#define USB_CSRL0_SETENDC       0x00000080  // Setup End Clear
+#define USB_CSRL0_STATUS        0x00000040  // STATUS Packet
+#define USB_CSRL0_RXRDYC        0x00000040  // RXRDY Clear
+#define USB_CSRL0_REQPKT        0x00000020  // Request Packet
+#define USB_CSRL0_STALL         0x00000020  // Send Stall
+#define USB_CSRL0_SETEND        0x00000010  // Setup End
+#define USB_CSRL0_ERROR         0x00000010  // Error
+#define USB_CSRL0_DATAEND       0x00000008  // Data End
+#define USB_CSRL0_SETUP         0x00000008  // Setup Packet
+#define USB_CSRL0_STALLED       0x00000004  // Endpoint Stalled
+#define USB_CSRL0_TXRDY         0x00000002  // Transmit Packet Ready
+#define USB_CSRL0_RXRDY         0x00000001  // Receive Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_CSRH0 register.
+//
+//*****************************************************************************
+#define USB_CSRH0_DTWE          0x00000004  // Data Toggle Write Enable
+#define USB_CSRH0_DT            0x00000002  // Data Toggle
+#define USB_CSRH0_FLUSH         0x00000001  // Flush FIFO
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_COUNT0 register.
+//
+//*****************************************************************************
+#define USB_COUNT0_COUNT_M      0x0000007F  // FIFO Count
+#define USB_COUNT0_COUNT_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TYPE0 register.
+//
+//*****************************************************************************
+#define USB_TYPE0_SPEED_M       0x000000C0  // Operating Speed
+#define USB_TYPE0_SPEED_FULL    0x00000080  // Full
+#define USB_TYPE0_SPEED_LOW     0x000000C0  // Low
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_NAKLMT register.
+//
+//*****************************************************************************
+#define USB_NAKLMT_NAKLMT_M     0x0000001F  // EP0 NAK Limit
+#define USB_NAKLMT_NAKLMT_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXMAXP1 register.
+//
+//*****************************************************************************
+#define USB_TXMAXP1_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_TXMAXP1_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRL1 register.
+//
+//*****************************************************************************
+#define USB_TXCSRL1_NAKTO       0x00000080  // NAK Timeout
+#define USB_TXCSRL1_CLRDT       0x00000040  // Clear Data Toggle
+#define USB_TXCSRL1_STALLED     0x00000020  // Endpoint Stalled
+#define USB_TXCSRL1_STALL       0x00000010  // Send STALL
+#define USB_TXCSRL1_SETUP       0x00000010  // Setup Packet
+#define USB_TXCSRL1_FLUSH       0x00000008  // Flush FIFO
+#define USB_TXCSRL1_ERROR       0x00000004  // Error
+#define USB_TXCSRL1_UNDRN       0x00000004  // Underrun
+#define USB_TXCSRL1_FIFONE      0x00000002  // FIFO Not Empty
+#define USB_TXCSRL1_TXRDY       0x00000001  // Transmit Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRH1 register.
+//
+//*****************************************************************************
+#define USB_TXCSRH1_AUTOSET     0x00000080  // Auto Set
+#define USB_TXCSRH1_ISO         0x00000040  // Isochronous Transfers
+#define USB_TXCSRH1_MODE        0x00000020  // Mode
+#define USB_TXCSRH1_DMAEN       0x00000010  // DMA Request Enable
+#define USB_TXCSRH1_FDT         0x00000008  // Force Data Toggle
+#define USB_TXCSRH1_DMAMOD      0x00000004  // DMA Request Mode
+#define USB_TXCSRH1_DTWE        0x00000002  // Data Toggle Write Enable
+#define USB_TXCSRH1_DT          0x00000001  // Data Toggle
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXMAXP1 register.
+//
+//*****************************************************************************
+#define USB_RXMAXP1_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_RXMAXP1_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRL1 register.
+//
+//*****************************************************************************
+#define USB_RXCSRL1_CLRDT       0x00000080  // Clear Data Toggle
+#define USB_RXCSRL1_STALLED     0x00000040  // Endpoint Stalled
+#define USB_RXCSRL1_STALL       0x00000020  // Send STALL
+#define USB_RXCSRL1_REQPKT      0x00000020  // Request Packet
+#define USB_RXCSRL1_FLUSH       0x00000010  // Flush FIFO
+#define USB_RXCSRL1_DATAERR     0x00000008  // Data Error
+#define USB_RXCSRL1_NAKTO       0x00000008  // NAK Timeout
+#define USB_RXCSRL1_OVER        0x00000004  // Overrun
+#define USB_RXCSRL1_ERROR       0x00000004  // Error
+#define USB_RXCSRL1_FULL        0x00000002  // FIFO Full
+#define USB_RXCSRL1_RXRDY       0x00000001  // Receive Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRH1 register.
+//
+//*****************************************************************************
+#define USB_RXCSRH1_AUTOCL      0x00000080  // Auto Clear
+#define USB_RXCSRH1_AUTORQ      0x00000040  // Auto Request
+#define USB_RXCSRH1_ISO         0x00000040  // Isochronous Transfers
+#define USB_RXCSRH1_DMAEN       0x00000020  // DMA Request Enable
+#define USB_RXCSRH1_DISNYET     0x00000010  // Disable NYET
+#define USB_RXCSRH1_PIDERR      0x00000010  // PID Error
+#define USB_RXCSRH1_DMAMOD      0x00000008  // DMA Request Mode
+#define USB_RXCSRH1_DTWE        0x00000004  // Data Toggle Write Enable
+#define USB_RXCSRH1_DT          0x00000002  // Data Toggle
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCOUNT1 register.
+//
+//*****************************************************************************
+#define USB_RXCOUNT1_COUNT_M    0x00001FFF  // Receive Packet Count
+#define USB_RXCOUNT1_COUNT_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXTYPE1 register.
+//
+//*****************************************************************************
+#define USB_TXTYPE1_SPEED_M     0x000000C0  // Operating Speed
+#define USB_TXTYPE1_SPEED_DFLT  0x00000000  // Default
+#define USB_TXTYPE1_SPEED_FULL  0x00000080  // Full
+#define USB_TXTYPE1_SPEED_LOW   0x000000C0  // Low
+#define USB_TXTYPE1_PROTO_M     0x00000030  // Protocol
+#define USB_TXTYPE1_PROTO_CTRL  0x00000000  // Control
+#define USB_TXTYPE1_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_TXTYPE1_PROTO_BULK  0x00000020  // Bulk
+#define USB_TXTYPE1_PROTO_INT   0x00000030  // Interrupt
+#define USB_TXTYPE1_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_TXTYPE1_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXINTERVAL1
+// register.
+//
+//*****************************************************************************
+#define USB_TXINTERVAL1_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_TXINTERVAL1_TXPOLL_M                                              \
+                                0x000000FF  // TX Polling
+#define USB_TXINTERVAL1_TXPOLL_S                                              \
+                                0
+#define USB_TXINTERVAL1_NAKLMT_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXTYPE1 register.
+//
+//*****************************************************************************
+#define USB_RXTYPE1_SPEED_M     0x000000C0  // Operating Speed
+#define USB_RXTYPE1_SPEED_DFLT  0x00000000  // Default
+#define USB_RXTYPE1_SPEED_FULL  0x00000080  // Full
+#define USB_RXTYPE1_SPEED_LOW   0x000000C0  // Low
+#define USB_RXTYPE1_PROTO_M     0x00000030  // Protocol
+#define USB_RXTYPE1_PROTO_CTRL  0x00000000  // Control
+#define USB_RXTYPE1_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_RXTYPE1_PROTO_BULK  0x00000020  // Bulk
+#define USB_RXTYPE1_PROTO_INT   0x00000030  // Interrupt
+#define USB_RXTYPE1_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_RXTYPE1_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXINTERVAL1
+// register.
+//
+//*****************************************************************************
+#define USB_RXINTERVAL1_TXPOLL_M                                              \
+                                0x000000FF  // RX Polling
+#define USB_RXINTERVAL1_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_RXINTERVAL1_TXPOLL_S                                              \
+                                0
+#define USB_RXINTERVAL1_NAKLMT_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXMAXP2 register.
+//
+//*****************************************************************************
+#define USB_TXMAXP2_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_TXMAXP2_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRL2 register.
+//
+//*****************************************************************************
+#define USB_TXCSRL2_NAKTO       0x00000080  // NAK Timeout
+#define USB_TXCSRL2_CLRDT       0x00000040  // Clear Data Toggle
+#define USB_TXCSRL2_STALLED     0x00000020  // Endpoint Stalled
+#define USB_TXCSRL2_SETUP       0x00000010  // Setup Packet
+#define USB_TXCSRL2_STALL       0x00000010  // Send STALL
+#define USB_TXCSRL2_FLUSH       0x00000008  // Flush FIFO
+#define USB_TXCSRL2_ERROR       0x00000004  // Error
+#define USB_TXCSRL2_UNDRN       0x00000004  // Underrun
+#define USB_TXCSRL2_FIFONE      0x00000002  // FIFO Not Empty
+#define USB_TXCSRL2_TXRDY       0x00000001  // Transmit Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRH2 register.
+//
+//*****************************************************************************
+#define USB_TXCSRH2_AUTOSET     0x00000080  // Auto Set
+#define USB_TXCSRH2_ISO         0x00000040  // Isochronous Transfers
+#define USB_TXCSRH2_MODE        0x00000020  // Mode
+#define USB_TXCSRH2_DMAEN       0x00000010  // DMA Request Enable
+#define USB_TXCSRH2_FDT         0x00000008  // Force Data Toggle
+#define USB_TXCSRH2_DMAMOD      0x00000004  // DMA Request Mode
+#define USB_TXCSRH2_DTWE        0x00000002  // Data Toggle Write Enable
+#define USB_TXCSRH2_DT          0x00000001  // Data Toggle
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXMAXP2 register.
+//
+//*****************************************************************************
+#define USB_RXMAXP2_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_RXMAXP2_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRL2 register.
+//
+//*****************************************************************************
+#define USB_RXCSRL2_CLRDT       0x00000080  // Clear Data Toggle
+#define USB_RXCSRL2_STALLED     0x00000040  // Endpoint Stalled
+#define USB_RXCSRL2_REQPKT      0x00000020  // Request Packet
+#define USB_RXCSRL2_STALL       0x00000020  // Send STALL
+#define USB_RXCSRL2_FLUSH       0x00000010  // Flush FIFO
+#define USB_RXCSRL2_DATAERR     0x00000008  // Data Error
+#define USB_RXCSRL2_NAKTO       0x00000008  // NAK Timeout
+#define USB_RXCSRL2_ERROR       0x00000004  // Error
+#define USB_RXCSRL2_OVER        0x00000004  // Overrun
+#define USB_RXCSRL2_FULL        0x00000002  // FIFO Full
+#define USB_RXCSRL2_RXRDY       0x00000001  // Receive Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRH2 register.
+//
+//*****************************************************************************
+#define USB_RXCSRH2_AUTOCL      0x00000080  // Auto Clear
+#define USB_RXCSRH2_AUTORQ      0x00000040  // Auto Request
+#define USB_RXCSRH2_ISO         0x00000040  // Isochronous Transfers
+#define USB_RXCSRH2_DMAEN       0x00000020  // DMA Request Enable
+#define USB_RXCSRH2_DISNYET     0x00000010  // Disable NYET
+#define USB_RXCSRH2_PIDERR      0x00000010  // PID Error
+#define USB_RXCSRH2_DMAMOD      0x00000008  // DMA Request Mode
+#define USB_RXCSRH2_DTWE        0x00000004  // Data Toggle Write Enable
+#define USB_RXCSRH2_DT          0x00000002  // Data Toggle
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCOUNT2 register.
+//
+//*****************************************************************************
+#define USB_RXCOUNT2_COUNT_M    0x00001FFF  // Receive Packet Count
+#define USB_RXCOUNT2_COUNT_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXTYPE2 register.
+//
+//*****************************************************************************
+#define USB_TXTYPE2_SPEED_M     0x000000C0  // Operating Speed
+#define USB_TXTYPE2_SPEED_DFLT  0x00000000  // Default
+#define USB_TXTYPE2_SPEED_FULL  0x00000080  // Full
+#define USB_TXTYPE2_SPEED_LOW   0x000000C0  // Low
+#define USB_TXTYPE2_PROTO_M     0x00000030  // Protocol
+#define USB_TXTYPE2_PROTO_CTRL  0x00000000  // Control
+#define USB_TXTYPE2_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_TXTYPE2_PROTO_BULK  0x00000020  // Bulk
+#define USB_TXTYPE2_PROTO_INT   0x00000030  // Interrupt
+#define USB_TXTYPE2_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_TXTYPE2_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXINTERVAL2
+// register.
+//
+//*****************************************************************************
+#define USB_TXINTERVAL2_TXPOLL_M                                              \
+                                0x000000FF  // TX Polling
+#define USB_TXINTERVAL2_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_TXINTERVAL2_NAKLMT_S                                              \
+                                0
+#define USB_TXINTERVAL2_TXPOLL_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXTYPE2 register.
+//
+//*****************************************************************************
+#define USB_RXTYPE2_SPEED_M     0x000000C0  // Operating Speed
+#define USB_RXTYPE2_SPEED_DFLT  0x00000000  // Default
+#define USB_RXTYPE2_SPEED_FULL  0x00000080  // Full
+#define USB_RXTYPE2_SPEED_LOW   0x000000C0  // Low
+#define USB_RXTYPE2_PROTO_M     0x00000030  // Protocol
+#define USB_RXTYPE2_PROTO_CTRL  0x00000000  // Control
+#define USB_RXTYPE2_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_RXTYPE2_PROTO_BULK  0x00000020  // Bulk
+#define USB_RXTYPE2_PROTO_INT   0x00000030  // Interrupt
+#define USB_RXTYPE2_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_RXTYPE2_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXINTERVAL2
+// register.
+//
+//*****************************************************************************
+#define USB_RXINTERVAL2_TXPOLL_M                                              \
+                                0x000000FF  // RX Polling
+#define USB_RXINTERVAL2_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_RXINTERVAL2_TXPOLL_S                                              \
+                                0
+#define USB_RXINTERVAL2_NAKLMT_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXMAXP3 register.
+//
+//*****************************************************************************
+#define USB_TXMAXP3_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_TXMAXP3_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRL3 register.
+//
+//*****************************************************************************
+#define USB_TXCSRL3_NAKTO       0x00000080  // NAK Timeout
+#define USB_TXCSRL3_CLRDT       0x00000040  // Clear Data Toggle
+#define USB_TXCSRL3_STALLED     0x00000020  // Endpoint Stalled
+#define USB_TXCSRL3_SETUP       0x00000010  // Setup Packet
+#define USB_TXCSRL3_STALL       0x00000010  // Send STALL
+#define USB_TXCSRL3_FLUSH       0x00000008  // Flush FIFO
+#define USB_TXCSRL3_ERROR       0x00000004  // Error
+#define USB_TXCSRL3_UNDRN       0x00000004  // Underrun
+#define USB_TXCSRL3_FIFONE      0x00000002  // FIFO Not Empty
+#define USB_TXCSRL3_TXRDY       0x00000001  // Transmit Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRH3 register.
+//
+//*****************************************************************************
+#define USB_TXCSRH3_AUTOSET     0x00000080  // Auto Set
+#define USB_TXCSRH3_ISO         0x00000040  // Isochronous Transfers
+#define USB_TXCSRH3_MODE        0x00000020  // Mode
+#define USB_TXCSRH3_DMAEN       0x00000010  // DMA Request Enable
+#define USB_TXCSRH3_FDT         0x00000008  // Force Data Toggle
+#define USB_TXCSRH3_DMAMOD      0x00000004  // DMA Request Mode
+#define USB_TXCSRH3_DTWE        0x00000002  // Data Toggle Write Enable
+#define USB_TXCSRH3_DT          0x00000001  // Data Toggle
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXMAXP3 register.
+//
+//*****************************************************************************
+#define USB_RXMAXP3_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_RXMAXP3_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRL3 register.
+//
+//*****************************************************************************
+#define USB_RXCSRL3_CLRDT       0x00000080  // Clear Data Toggle
+#define USB_RXCSRL3_STALLED     0x00000040  // Endpoint Stalled
+#define USB_RXCSRL3_STALL       0x00000020  // Send STALL
+#define USB_RXCSRL3_REQPKT      0x00000020  // Request Packet
+#define USB_RXCSRL3_FLUSH       0x00000010  // Flush FIFO
+#define USB_RXCSRL3_DATAERR     0x00000008  // Data Error
+#define USB_RXCSRL3_NAKTO       0x00000008  // NAK Timeout
+#define USB_RXCSRL3_ERROR       0x00000004  // Error
+#define USB_RXCSRL3_OVER        0x00000004  // Overrun
+#define USB_RXCSRL3_FULL        0x00000002  // FIFO Full
+#define USB_RXCSRL3_RXRDY       0x00000001  // Receive Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRH3 register.
+//
+//*****************************************************************************
+#define USB_RXCSRH3_AUTOCL      0x00000080  // Auto Clear
+#define USB_RXCSRH3_AUTORQ      0x00000040  // Auto Request
+#define USB_RXCSRH3_ISO         0x00000040  // Isochronous Transfers
+#define USB_RXCSRH3_DMAEN       0x00000020  // DMA Request Enable
+#define USB_RXCSRH3_DISNYET     0x00000010  // Disable NYET
+#define USB_RXCSRH3_PIDERR      0x00000010  // PID Error
+#define USB_RXCSRH3_DMAMOD      0x00000008  // DMA Request Mode
+#define USB_RXCSRH3_DTWE        0x00000004  // Data Toggle Write Enable
+#define USB_RXCSRH3_DT          0x00000002  // Data Toggle
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCOUNT3 register.
+//
+//*****************************************************************************
+#define USB_RXCOUNT3_COUNT_M    0x00001FFF  // Receive Packet Count
+#define USB_RXCOUNT3_COUNT_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXTYPE3 register.
+//
+//*****************************************************************************
+#define USB_TXTYPE3_SPEED_M     0x000000C0  // Operating Speed
+#define USB_TXTYPE3_SPEED_DFLT  0x00000000  // Default
+#define USB_TXTYPE3_SPEED_FULL  0x00000080  // Full
+#define USB_TXTYPE3_SPEED_LOW   0x000000C0  // Low
+#define USB_TXTYPE3_PROTO_M     0x00000030  // Protocol
+#define USB_TXTYPE3_PROTO_CTRL  0x00000000  // Control
+#define USB_TXTYPE3_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_TXTYPE3_PROTO_BULK  0x00000020  // Bulk
+#define USB_TXTYPE3_PROTO_INT   0x00000030  // Interrupt
+#define USB_TXTYPE3_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_TXTYPE3_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXINTERVAL3
+// register.
+//
+//*****************************************************************************
+#define USB_TXINTERVAL3_TXPOLL_M                                              \
+                                0x000000FF  // TX Polling
+#define USB_TXINTERVAL3_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_TXINTERVAL3_TXPOLL_S                                              \
+                                0
+#define USB_TXINTERVAL3_NAKLMT_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXTYPE3 register.
+//
+//*****************************************************************************
+#define USB_RXTYPE3_SPEED_M     0x000000C0  // Operating Speed
+#define USB_RXTYPE3_SPEED_DFLT  0x00000000  // Default
+#define USB_RXTYPE3_SPEED_FULL  0x00000080  // Full
+#define USB_RXTYPE3_SPEED_LOW   0x000000C0  // Low
+#define USB_RXTYPE3_PROTO_M     0x00000030  // Protocol
+#define USB_RXTYPE3_PROTO_CTRL  0x00000000  // Control
+#define USB_RXTYPE3_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_RXTYPE3_PROTO_BULK  0x00000020  // Bulk
+#define USB_RXTYPE3_PROTO_INT   0x00000030  // Interrupt
+#define USB_RXTYPE3_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_RXTYPE3_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXINTERVAL3
+// register.
+//
+//*****************************************************************************
+#define USB_RXINTERVAL3_TXPOLL_M                                              \
+                                0x000000FF  // RX Polling
+#define USB_RXINTERVAL3_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_RXINTERVAL3_TXPOLL_S                                              \
+                                0
+#define USB_RXINTERVAL3_NAKLMT_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXMAXP4 register.
+//
+//*****************************************************************************
+#define USB_TXMAXP4_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_TXMAXP4_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRL4 register.
+//
+//*****************************************************************************
+#define USB_TXCSRL4_NAKTO       0x00000080  // NAK Timeout
+#define USB_TXCSRL4_CLRDT       0x00000040  // Clear Data Toggle
+#define USB_TXCSRL4_STALLED     0x00000020  // Endpoint Stalled
+#define USB_TXCSRL4_SETUP       0x00000010  // Setup Packet
+#define USB_TXCSRL4_STALL       0x00000010  // Send STALL
+#define USB_TXCSRL4_FLUSH       0x00000008  // Flush FIFO
+#define USB_TXCSRL4_ERROR       0x00000004  // Error
+#define USB_TXCSRL4_UNDRN       0x00000004  // Underrun
+#define USB_TXCSRL4_FIFONE      0x00000002  // FIFO Not Empty
+#define USB_TXCSRL4_TXRDY       0x00000001  // Transmit Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRH4 register.
+//
+//*****************************************************************************
+#define USB_TXCSRH4_AUTOSET     0x00000080  // Auto Set
+#define USB_TXCSRH4_ISO         0x00000040  // Isochronous Transfers
+#define USB_TXCSRH4_MODE        0x00000020  // Mode
+#define USB_TXCSRH4_DMAEN       0x00000010  // DMA Request Enable
+#define USB_TXCSRH4_FDT         0x00000008  // Force Data Toggle
+#define USB_TXCSRH4_DMAMOD      0x00000004  // DMA Request Mode
+#define USB_TXCSRH4_DTWE        0x00000002  // Data Toggle Write Enable
+#define USB_TXCSRH4_DT          0x00000001  // Data Toggle
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXMAXP4 register.
+//
+//*****************************************************************************
+#define USB_RXMAXP4_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_RXMAXP4_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRL4 register.
+//
+//*****************************************************************************
+#define USB_RXCSRL4_CLRDT       0x00000080  // Clear Data Toggle
+#define USB_RXCSRL4_STALLED     0x00000040  // Endpoint Stalled
+#define USB_RXCSRL4_STALL       0x00000020  // Send STALL
+#define USB_RXCSRL4_REQPKT      0x00000020  // Request Packet
+#define USB_RXCSRL4_FLUSH       0x00000010  // Flush FIFO
+#define USB_RXCSRL4_NAKTO       0x00000008  // NAK Timeout
+#define USB_RXCSRL4_DATAERR     0x00000008  // Data Error
+#define USB_RXCSRL4_OVER        0x00000004  // Overrun
+#define USB_RXCSRL4_ERROR       0x00000004  // Error
+#define USB_RXCSRL4_FULL        0x00000002  // FIFO Full
+#define USB_RXCSRL4_RXRDY       0x00000001  // Receive Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRH4 register.
+//
+//*****************************************************************************
+#define USB_RXCSRH4_AUTOCL      0x00000080  // Auto Clear
+#define USB_RXCSRH4_AUTORQ      0x00000040  // Auto Request
+#define USB_RXCSRH4_ISO         0x00000040  // Isochronous Transfers
+#define USB_RXCSRH4_DMAEN       0x00000020  // DMA Request Enable
+#define USB_RXCSRH4_DISNYET     0x00000010  // Disable NYET
+#define USB_RXCSRH4_PIDERR      0x00000010  // PID Error
+#define USB_RXCSRH4_DMAMOD      0x00000008  // DMA Request Mode
+#define USB_RXCSRH4_DTWE        0x00000004  // Data Toggle Write Enable
+#define USB_RXCSRH4_DT          0x00000002  // Data Toggle
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCOUNT4 register.
+//
+//*****************************************************************************
+#define USB_RXCOUNT4_COUNT_M    0x00001FFF  // Receive Packet Count
+#define USB_RXCOUNT4_COUNT_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXTYPE4 register.
+//
+//*****************************************************************************
+#define USB_TXTYPE4_SPEED_M     0x000000C0  // Operating Speed
+#define USB_TXTYPE4_SPEED_DFLT  0x00000000  // Default
+#define USB_TXTYPE4_SPEED_FULL  0x00000080  // Full
+#define USB_TXTYPE4_SPEED_LOW   0x000000C0  // Low
+#define USB_TXTYPE4_PROTO_M     0x00000030  // Protocol
+#define USB_TXTYPE4_PROTO_CTRL  0x00000000  // Control
+#define USB_TXTYPE4_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_TXTYPE4_PROTO_BULK  0x00000020  // Bulk
+#define USB_TXTYPE4_PROTO_INT   0x00000030  // Interrupt
+#define USB_TXTYPE4_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_TXTYPE4_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXINTERVAL4
+// register.
+//
+//*****************************************************************************
+#define USB_TXINTERVAL4_TXPOLL_M                                              \
+                                0x000000FF  // TX Polling
+#define USB_TXINTERVAL4_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_TXINTERVAL4_NAKLMT_S                                              \
+                                0
+#define USB_TXINTERVAL4_TXPOLL_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXTYPE4 register.
+//
+//*****************************************************************************
+#define USB_RXTYPE4_SPEED_M     0x000000C0  // Operating Speed
+#define USB_RXTYPE4_SPEED_DFLT  0x00000000  // Default
+#define USB_RXTYPE4_SPEED_FULL  0x00000080  // Full
+#define USB_RXTYPE4_SPEED_LOW   0x000000C0  // Low
+#define USB_RXTYPE4_PROTO_M     0x00000030  // Protocol
+#define USB_RXTYPE4_PROTO_CTRL  0x00000000  // Control
+#define USB_RXTYPE4_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_RXTYPE4_PROTO_BULK  0x00000020  // Bulk
+#define USB_RXTYPE4_PROTO_INT   0x00000030  // Interrupt
+#define USB_RXTYPE4_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_RXTYPE4_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXINTERVAL4
+// register.
+//
+//*****************************************************************************
+#define USB_RXINTERVAL4_TXPOLL_M                                              \
+                                0x000000FF  // RX Polling
+#define USB_RXINTERVAL4_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_RXINTERVAL4_NAKLMT_S                                              \
+                                0
+#define USB_RXINTERVAL4_TXPOLL_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXMAXP5 register.
+//
+//*****************************************************************************
+#define USB_TXMAXP5_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_TXMAXP5_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRL5 register.
+//
+//*****************************************************************************
+#define USB_TXCSRL5_NAKTO       0x00000080  // NAK Timeout
+#define USB_TXCSRL5_CLRDT       0x00000040  // Clear Data Toggle
+#define USB_TXCSRL5_STALLED     0x00000020  // Endpoint Stalled
+#define USB_TXCSRL5_SETUP       0x00000010  // Setup Packet
+#define USB_TXCSRL5_STALL       0x00000010  // Send STALL
+#define USB_TXCSRL5_FLUSH       0x00000008  // Flush FIFO
+#define USB_TXCSRL5_ERROR       0x00000004  // Error
+#define USB_TXCSRL5_UNDRN       0x00000004  // Underrun
+#define USB_TXCSRL5_FIFONE      0x00000002  // FIFO Not Empty
+#define USB_TXCSRL5_TXRDY       0x00000001  // Transmit Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRH5 register.
+//
+//*****************************************************************************
+#define USB_TXCSRH5_AUTOSET     0x00000080  // Auto Set
+#define USB_TXCSRH5_ISO         0x00000040  // Isochronous Transfers
+#define USB_TXCSRH5_MODE        0x00000020  // Mode
+#define USB_TXCSRH5_DMAEN       0x00000010  // DMA Request Enable
+#define USB_TXCSRH5_FDT         0x00000008  // Force Data Toggle
+#define USB_TXCSRH5_DMAMOD      0x00000004  // DMA Request Mode
+#define USB_TXCSRH5_DTWE        0x00000002  // Data Toggle Write Enable
+#define USB_TXCSRH5_DT          0x00000001  // Data Toggle
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXMAXP5 register.
+//
+//*****************************************************************************
+#define USB_RXMAXP5_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_RXMAXP5_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRL5 register.
+//
+//*****************************************************************************
+#define USB_RXCSRL5_CLRDT       0x00000080  // Clear Data Toggle
+#define USB_RXCSRL5_STALLED     0x00000040  // Endpoint Stalled
+#define USB_RXCSRL5_STALL       0x00000020  // Send STALL
+#define USB_RXCSRL5_REQPKT      0x00000020  // Request Packet
+#define USB_RXCSRL5_FLUSH       0x00000010  // Flush FIFO
+#define USB_RXCSRL5_NAKTO       0x00000008  // NAK Timeout
+#define USB_RXCSRL5_DATAERR     0x00000008  // Data Error
+#define USB_RXCSRL5_ERROR       0x00000004  // Error
+#define USB_RXCSRL5_OVER        0x00000004  // Overrun
+#define USB_RXCSRL5_FULL        0x00000002  // FIFO Full
+#define USB_RXCSRL5_RXRDY       0x00000001  // Receive Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRH5 register.
+//
+//*****************************************************************************
+#define USB_RXCSRH5_AUTOCL      0x00000080  // Auto Clear
+#define USB_RXCSRH5_AUTORQ      0x00000040  // Auto Request
+#define USB_RXCSRH5_ISO         0x00000040  // Isochronous Transfers
+#define USB_RXCSRH5_DMAEN       0x00000020  // DMA Request Enable
+#define USB_RXCSRH5_DISNYET     0x00000010  // Disable NYET
+#define USB_RXCSRH5_PIDERR      0x00000010  // PID Error
+#define USB_RXCSRH5_DMAMOD      0x00000008  // DMA Request Mode
+#define USB_RXCSRH5_DTWE        0x00000004  // Data Toggle Write Enable
+#define USB_RXCSRH5_DT          0x00000002  // Data Toggle
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCOUNT5 register.
+//
+//*****************************************************************************
+#define USB_RXCOUNT5_COUNT_M    0x00001FFF  // Receive Packet Count
+#define USB_RXCOUNT5_COUNT_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXTYPE5 register.
+//
+//*****************************************************************************
+#define USB_TXTYPE5_SPEED_M     0x000000C0  // Operating Speed
+#define USB_TXTYPE5_SPEED_DFLT  0x00000000  // Default
+#define USB_TXTYPE5_SPEED_FULL  0x00000080  // Full
+#define USB_TXTYPE5_SPEED_LOW   0x000000C0  // Low
+#define USB_TXTYPE5_PROTO_M     0x00000030  // Protocol
+#define USB_TXTYPE5_PROTO_CTRL  0x00000000  // Control
+#define USB_TXTYPE5_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_TXTYPE5_PROTO_BULK  0x00000020  // Bulk
+#define USB_TXTYPE5_PROTO_INT   0x00000030  // Interrupt
+#define USB_TXTYPE5_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_TXTYPE5_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXINTERVAL5
+// register.
+//
+//*****************************************************************************
+#define USB_TXINTERVAL5_TXPOLL_M                                              \
+                                0x000000FF  // TX Polling
+#define USB_TXINTERVAL5_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_TXINTERVAL5_NAKLMT_S                                              \
+                                0
+#define USB_TXINTERVAL5_TXPOLL_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXTYPE5 register.
+//
+//*****************************************************************************
+#define USB_RXTYPE5_SPEED_M     0x000000C0  // Operating Speed
+#define USB_RXTYPE5_SPEED_DFLT  0x00000000  // Default
+#define USB_RXTYPE5_SPEED_FULL  0x00000080  // Full
+#define USB_RXTYPE5_SPEED_LOW   0x000000C0  // Low
+#define USB_RXTYPE5_PROTO_M     0x00000030  // Protocol
+#define USB_RXTYPE5_PROTO_CTRL  0x00000000  // Control
+#define USB_RXTYPE5_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_RXTYPE5_PROTO_BULK  0x00000020  // Bulk
+#define USB_RXTYPE5_PROTO_INT   0x00000030  // Interrupt
+#define USB_RXTYPE5_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_RXTYPE5_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXINTERVAL5
+// register.
+//
+//*****************************************************************************
+#define USB_RXINTERVAL5_TXPOLL_M                                              \
+                                0x000000FF  // RX Polling
+#define USB_RXINTERVAL5_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_RXINTERVAL5_TXPOLL_S                                              \
+                                0
+#define USB_RXINTERVAL5_NAKLMT_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXMAXP6 register.
+//
+//*****************************************************************************
+#define USB_TXMAXP6_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_TXMAXP6_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRL6 register.
+//
+//*****************************************************************************
+#define USB_TXCSRL6_NAKTO       0x00000080  // NAK Timeout
+#define USB_TXCSRL6_CLRDT       0x00000040  // Clear Data Toggle
+#define USB_TXCSRL6_STALLED     0x00000020  // Endpoint Stalled
+#define USB_TXCSRL6_STALL       0x00000010  // Send STALL
+#define USB_TXCSRL6_SETUP       0x00000010  // Setup Packet
+#define USB_TXCSRL6_FLUSH       0x00000008  // Flush FIFO
+#define USB_TXCSRL6_ERROR       0x00000004  // Error
+#define USB_TXCSRL6_UNDRN       0x00000004  // Underrun
+#define USB_TXCSRL6_FIFONE      0x00000002  // FIFO Not Empty
+#define USB_TXCSRL6_TXRDY       0x00000001  // Transmit Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRH6 register.
+//
+//*****************************************************************************
+#define USB_TXCSRH6_AUTOSET     0x00000080  // Auto Set
+#define USB_TXCSRH6_ISO         0x00000040  // Isochronous Transfers
+#define USB_TXCSRH6_MODE        0x00000020  // Mode
+#define USB_TXCSRH6_DMAEN       0x00000010  // DMA Request Enable
+#define USB_TXCSRH6_FDT         0x00000008  // Force Data Toggle
+#define USB_TXCSRH6_DMAMOD      0x00000004  // DMA Request Mode
+#define USB_TXCSRH6_DTWE        0x00000002  // Data Toggle Write Enable
+#define USB_TXCSRH6_DT          0x00000001  // Data Toggle
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXMAXP6 register.
+//
+//*****************************************************************************
+#define USB_RXMAXP6_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_RXMAXP6_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRL6 register.
+//
+//*****************************************************************************
+#define USB_RXCSRL6_CLRDT       0x00000080  // Clear Data Toggle
+#define USB_RXCSRL6_STALLED     0x00000040  // Endpoint Stalled
+#define USB_RXCSRL6_REQPKT      0x00000020  // Request Packet
+#define USB_RXCSRL6_STALL       0x00000020  // Send STALL
+#define USB_RXCSRL6_FLUSH       0x00000010  // Flush FIFO
+#define USB_RXCSRL6_NAKTO       0x00000008  // NAK Timeout
+#define USB_RXCSRL6_DATAERR     0x00000008  // Data Error
+#define USB_RXCSRL6_ERROR       0x00000004  // Error
+#define USB_RXCSRL6_OVER        0x00000004  // Overrun
+#define USB_RXCSRL6_FULL        0x00000002  // FIFO Full
+#define USB_RXCSRL6_RXRDY       0x00000001  // Receive Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRH6 register.
+//
+//*****************************************************************************
+#define USB_RXCSRH6_AUTOCL      0x00000080  // Auto Clear
+#define USB_RXCSRH6_AUTORQ      0x00000040  // Auto Request
+#define USB_RXCSRH6_ISO         0x00000040  // Isochronous Transfers
+#define USB_RXCSRH6_DMAEN       0x00000020  // DMA Request Enable
+#define USB_RXCSRH6_DISNYET     0x00000010  // Disable NYET
+#define USB_RXCSRH6_PIDERR      0x00000010  // PID Error
+#define USB_RXCSRH6_DMAMOD      0x00000008  // DMA Request Mode
+#define USB_RXCSRH6_DTWE        0x00000004  // Data Toggle Write Enable
+#define USB_RXCSRH6_DT          0x00000002  // Data Toggle
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCOUNT6 register.
+//
+//*****************************************************************************
+#define USB_RXCOUNT6_COUNT_M    0x00001FFF  // Receive Packet Count
+#define USB_RXCOUNT6_COUNT_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXTYPE6 register.
+//
+//*****************************************************************************
+#define USB_TXTYPE6_SPEED_M     0x000000C0  // Operating Speed
+#define USB_TXTYPE6_SPEED_DFLT  0x00000000  // Default
+#define USB_TXTYPE6_SPEED_FULL  0x00000080  // Full
+#define USB_TXTYPE6_SPEED_LOW   0x000000C0  // Low
+#define USB_TXTYPE6_PROTO_M     0x00000030  // Protocol
+#define USB_TXTYPE6_PROTO_CTRL  0x00000000  // Control
+#define USB_TXTYPE6_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_TXTYPE6_PROTO_BULK  0x00000020  // Bulk
+#define USB_TXTYPE6_PROTO_INT   0x00000030  // Interrupt
+#define USB_TXTYPE6_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_TXTYPE6_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXINTERVAL6
+// register.
+//
+//*****************************************************************************
+#define USB_TXINTERVAL6_TXPOLL_M                                              \
+                                0x000000FF  // TX Polling
+#define USB_TXINTERVAL6_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_TXINTERVAL6_TXPOLL_S                                              \
+                                0
+#define USB_TXINTERVAL6_NAKLMT_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXTYPE6 register.
+//
+//*****************************************************************************
+#define USB_RXTYPE6_SPEED_M     0x000000C0  // Operating Speed
+#define USB_RXTYPE6_SPEED_DFLT  0x00000000  // Default
+#define USB_RXTYPE6_SPEED_FULL  0x00000080  // Full
+#define USB_RXTYPE6_SPEED_LOW   0x000000C0  // Low
+#define USB_RXTYPE6_PROTO_M     0x00000030  // Protocol
+#define USB_RXTYPE6_PROTO_CTRL  0x00000000  // Control
+#define USB_RXTYPE6_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_RXTYPE6_PROTO_BULK  0x00000020  // Bulk
+#define USB_RXTYPE6_PROTO_INT   0x00000030  // Interrupt
+#define USB_RXTYPE6_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_RXTYPE6_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXINTERVAL6
+// register.
+//
+//*****************************************************************************
+#define USB_RXINTERVAL6_TXPOLL_M                                              \
+                                0x000000FF  // RX Polling
+#define USB_RXINTERVAL6_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_RXINTERVAL6_NAKLMT_S                                              \
+                                0
+#define USB_RXINTERVAL6_TXPOLL_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXMAXP7 register.
+//
+//*****************************************************************************
+#define USB_TXMAXP7_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_TXMAXP7_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRL7 register.
+//
+//*****************************************************************************
+#define USB_TXCSRL7_NAKTO       0x00000080  // NAK Timeout
+#define USB_TXCSRL7_CLRDT       0x00000040  // Clear Data Toggle
+#define USB_TXCSRL7_STALLED     0x00000020  // Endpoint Stalled
+#define USB_TXCSRL7_STALL       0x00000010  // Send STALL
+#define USB_TXCSRL7_SETUP       0x00000010  // Setup Packet
+#define USB_TXCSRL7_FLUSH       0x00000008  // Flush FIFO
+#define USB_TXCSRL7_ERROR       0x00000004  // Error
+#define USB_TXCSRL7_UNDRN       0x00000004  // Underrun
+#define USB_TXCSRL7_FIFONE      0x00000002  // FIFO Not Empty
+#define USB_TXCSRL7_TXRDY       0x00000001  // Transmit Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXCSRH7 register.
+//
+//*****************************************************************************
+#define USB_TXCSRH7_AUTOSET     0x00000080  // Auto Set
+#define USB_TXCSRH7_ISO         0x00000040  // Isochronous Transfers
+#define USB_TXCSRH7_MODE        0x00000020  // Mode
+#define USB_TXCSRH7_DMAEN       0x00000010  // DMA Request Enable
+#define USB_TXCSRH7_FDT         0x00000008  // Force Data Toggle
+#define USB_TXCSRH7_DMAMOD      0x00000004  // DMA Request Mode
+#define USB_TXCSRH7_DTWE        0x00000002  // Data Toggle Write Enable
+#define USB_TXCSRH7_DT          0x00000001  // Data Toggle
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXMAXP7 register.
+//
+//*****************************************************************************
+#define USB_RXMAXP7_MAXLOAD_M   0x000007FF  // Maximum Payload
+#define USB_RXMAXP7_MAXLOAD_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRL7 register.
+//
+//*****************************************************************************
+#define USB_RXCSRL7_CLRDT       0x00000080  // Clear Data Toggle
+#define USB_RXCSRL7_STALLED     0x00000040  // Endpoint Stalled
+#define USB_RXCSRL7_REQPKT      0x00000020  // Request Packet
+#define USB_RXCSRL7_STALL       0x00000020  // Send STALL
+#define USB_RXCSRL7_FLUSH       0x00000010  // Flush FIFO
+#define USB_RXCSRL7_DATAERR     0x00000008  // Data Error
+#define USB_RXCSRL7_NAKTO       0x00000008  // NAK Timeout
+#define USB_RXCSRL7_ERROR       0x00000004  // Error
+#define USB_RXCSRL7_OVER        0x00000004  // Overrun
+#define USB_RXCSRL7_FULL        0x00000002  // FIFO Full
+#define USB_RXCSRL7_RXRDY       0x00000001  // Receive Packet Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCSRH7 register.
+//
+//*****************************************************************************
+#define USB_RXCSRH7_AUTOCL      0x00000080  // Auto Clear
+#define USB_RXCSRH7_ISO         0x00000040  // Isochronous Transfers
+#define USB_RXCSRH7_AUTORQ      0x00000040  // Auto Request
+#define USB_RXCSRH7_DMAEN       0x00000020  // DMA Request Enable
+#define USB_RXCSRH7_PIDERR      0x00000010  // PID Error
+#define USB_RXCSRH7_DISNYET     0x00000010  // Disable NYET
+#define USB_RXCSRH7_DMAMOD      0x00000008  // DMA Request Mode
+#define USB_RXCSRH7_DTWE        0x00000004  // Data Toggle Write Enable
+#define USB_RXCSRH7_DT          0x00000002  // Data Toggle
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXCOUNT7 register.
+//
+//*****************************************************************************
+#define USB_RXCOUNT7_COUNT_M    0x00001FFF  // Receive Packet Count
+#define USB_RXCOUNT7_COUNT_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXTYPE7 register.
+//
+//*****************************************************************************
+#define USB_TXTYPE7_SPEED_M     0x000000C0  // Operating Speed
+#define USB_TXTYPE7_SPEED_DFLT  0x00000000  // Default
+#define USB_TXTYPE7_SPEED_FULL  0x00000080  // Full
+#define USB_TXTYPE7_SPEED_LOW   0x000000C0  // Low
+#define USB_TXTYPE7_PROTO_M     0x00000030  // Protocol
+#define USB_TXTYPE7_PROTO_CTRL  0x00000000  // Control
+#define USB_TXTYPE7_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_TXTYPE7_PROTO_BULK  0x00000020  // Bulk
+#define USB_TXTYPE7_PROTO_INT   0x00000030  // Interrupt
+#define USB_TXTYPE7_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_TXTYPE7_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXINTERVAL7
+// register.
+//
+//*****************************************************************************
+#define USB_TXINTERVAL7_TXPOLL_M                                              \
+                                0x000000FF  // TX Polling
+#define USB_TXINTERVAL7_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_TXINTERVAL7_NAKLMT_S                                              \
+                                0
+#define USB_TXINTERVAL7_TXPOLL_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXTYPE7 register.
+//
+//*****************************************************************************
+#define USB_RXTYPE7_SPEED_M     0x000000C0  // Operating Speed
+#define USB_RXTYPE7_SPEED_DFLT  0x00000000  // Default
+#define USB_RXTYPE7_SPEED_FULL  0x00000080  // Full
+#define USB_RXTYPE7_SPEED_LOW   0x000000C0  // Low
+#define USB_RXTYPE7_PROTO_M     0x00000030  // Protocol
+#define USB_RXTYPE7_PROTO_CTRL  0x00000000  // Control
+#define USB_RXTYPE7_PROTO_ISOC  0x00000010  // Isochronous
+#define USB_RXTYPE7_PROTO_BULK  0x00000020  // Bulk
+#define USB_RXTYPE7_PROTO_INT   0x00000030  // Interrupt
+#define USB_RXTYPE7_TEP_M       0x0000000F  // Target Endpoint Number
+#define USB_RXTYPE7_TEP_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXINTERVAL7
+// register.
+//
+//*****************************************************************************
+#define USB_RXINTERVAL7_TXPOLL_M                                              \
+                                0x000000FF  // RX Polling
+#define USB_RXINTERVAL7_NAKLMT_M                                              \
+                                0x000000FF  // NAK Limit
+#define USB_RXINTERVAL7_NAKLMT_S                                              \
+                                0
+#define USB_RXINTERVAL7_TXPOLL_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RQPKTCOUNT1
+// register.
+//
+//*****************************************************************************
+#define USB_RQPKTCOUNT1_M       0x0000FFFF  // Block Transfer Packet Count
+#define USB_RQPKTCOUNT1_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RQPKTCOUNT2
+// register.
+//
+//*****************************************************************************
+#define USB_RQPKTCOUNT2_M       0x0000FFFF  // Block Transfer Packet Count
+#define USB_RQPKTCOUNT2_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RQPKTCOUNT3
+// register.
+//
+//*****************************************************************************
+#define USB_RQPKTCOUNT3_M       0x0000FFFF  // Block Transfer Packet Count
+#define USB_RQPKTCOUNT3_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RQPKTCOUNT4
+// register.
+//
+//*****************************************************************************
+#define USB_RQPKTCOUNT4_COUNT_M 0x0000FFFF  // Block Transfer Packet Count
+#define USB_RQPKTCOUNT4_COUNT_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RQPKTCOUNT5
+// register.
+//
+//*****************************************************************************
+#define USB_RQPKTCOUNT5_COUNT_M 0x0000FFFF  // Block Transfer Packet Count
+#define USB_RQPKTCOUNT5_COUNT_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RQPKTCOUNT6
+// register.
+//
+//*****************************************************************************
+#define USB_RQPKTCOUNT6_COUNT_M 0x0000FFFF  // Block Transfer Packet Count
+#define USB_RQPKTCOUNT6_COUNT_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RQPKTCOUNT7
+// register.
+//
+//*****************************************************************************
+#define USB_RQPKTCOUNT7_COUNT_M 0x0000FFFF  // Block Transfer Packet Count
+#define USB_RQPKTCOUNT7_COUNT_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_RXDPKTBUFDIS
+// register.
+//
+//*****************************************************************************
+#define USB_RXDPKTBUFDIS_EP7    0x00000080  // EP7 RX Double-Packet Buffer
+                                            // Disable
+#define USB_RXDPKTBUFDIS_EP6    0x00000040  // EP6 RX Double-Packet Buffer
+                                            // Disable
+#define USB_RXDPKTBUFDIS_EP5    0x00000020  // EP5 RX Double-Packet Buffer
+                                            // Disable
+#define USB_RXDPKTBUFDIS_EP4    0x00000010  // EP4 RX Double-Packet Buffer
+                                            // Disable
+#define USB_RXDPKTBUFDIS_EP3    0x00000008  // EP3 RX Double-Packet Buffer
+                                            // Disable
+#define USB_RXDPKTBUFDIS_EP2    0x00000004  // EP2 RX Double-Packet Buffer
+                                            // Disable
+#define USB_RXDPKTBUFDIS_EP1    0x00000002  // EP1 RX Double-Packet Buffer
+                                            // Disable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_TXDPKTBUFDIS
+// register.
+//
+//*****************************************************************************
+#define USB_TXDPKTBUFDIS_EP7    0x00000080  // EP7 TX Double-Packet Buffer
+                                            // Disable
+#define USB_TXDPKTBUFDIS_EP6    0x00000040  // EP6 TX Double-Packet Buffer
+                                            // Disable
+#define USB_TXDPKTBUFDIS_EP5    0x00000020  // EP5 TX Double-Packet Buffer
+                                            // Disable
+#define USB_TXDPKTBUFDIS_EP4    0x00000010  // EP4 TX Double-Packet Buffer
+                                            // Disable
+#define USB_TXDPKTBUFDIS_EP3    0x00000008  // EP3 TX Double-Packet Buffer
+                                            // Disable
+#define USB_TXDPKTBUFDIS_EP2    0x00000004  // EP2 TX Double-Packet Buffer
+                                            // Disable
+#define USB_TXDPKTBUFDIS_EP1    0x00000002  // EP1 TX Double-Packet Buffer
+                                            // Disable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_EPC register.
+//
+//*****************************************************************************
+#define USB_EPC_PFLTACT_M       0x00000300  // Power Fault Action
+#define USB_EPC_PFLTACT_UNCHG   0x00000000  // Unchanged
+#define USB_EPC_PFLTACT_TRIS    0x00000100  // Tristate
+#define USB_EPC_PFLTACT_LOW     0x00000200  // Low
+#define USB_EPC_PFLTACT_HIGH    0x00000300  // High
+#define USB_EPC_PFLTAEN         0x00000040  // Power Fault Action Enable
+#define USB_EPC_PFLTSEN_HIGH    0x00000020  // Power Fault Sense
+#define USB_EPC_PFLTEN          0x00000010  // Power Fault Input Enable
+#define USB_EPC_EPENDE          0x00000004  // EPEN Drive Enable
+#define USB_EPC_EPEN_M          0x00000003  // External Power Supply Enable
+                                            // Configuration
+#define USB_EPC_EPEN_LOW        0x00000000  // Power Enable Active Low
+#define USB_EPC_EPEN_HIGH       0x00000001  // Power Enable Active High
+#define USB_EPC_EPEN_VBLOW      0x00000002  // Power Enable High if VBUS Low
+                                            // (OTG only)
+#define USB_EPC_EPEN_VBHIGH     0x00000003  // Power Enable High if VBUS High
+                                            // (OTG only)
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_EPCRIS register.
+//
+//*****************************************************************************
+#define USB_EPCRIS_PF           0x00000001  // USB Power Fault Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_EPCIM register.
+//
+//*****************************************************************************
+#define USB_EPCIM_PF            0x00000001  // USB Power Fault Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_EPCISC register.
+//
+//*****************************************************************************
+#define USB_EPCISC_PF           0x00000001  // USB Power Fault Interrupt Status
+                                            // and Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DRRIS register.
+//
+//*****************************************************************************
+#define USB_DRRIS_RESUME        0x00000001  // RESUME Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DRIM register.
+//
+//*****************************************************************************
+#define USB_DRIM_RESUME         0x00000001  // RESUME Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DRISC register.
+//
+//*****************************************************************************
+#define USB_DRISC_RESUME        0x00000001  // RESUME Interrupt Status and
+                                            // Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_GPCS register.
+//
+//*****************************************************************************
+#define USB_GPCS_DEVMODOTG      0x00000002  // Enable Device Mode
+#define USB_GPCS_DEVMOD         0x00000001  // Device Mode
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_VDC register.
+//
+//*****************************************************************************
+#define USB_VDC_VBDEN           0x00000001  // VBUS Droop Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_VDCRIS register.
+//
+//*****************************************************************************
+#define USB_VDCRIS_VD           0x00000001  // VBUS Droop Raw Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_VDCIM register.
+//
+//*****************************************************************************
+#define USB_VDCIM_VD            0x00000001  // VBUS Droop Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_VDCISC register.
+//
+//*****************************************************************************
+#define USB_VDCISC_VD           0x00000001  // VBUS Droop Interrupt Status and
+                                            // Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_IDVRIS register.
+//
+//*****************************************************************************
+#define USB_IDVRIS_ID           0x00000001  // ID Valid Detect Raw Interrupt
+                                            // Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_IDVIM register.
+//
+//*****************************************************************************
+#define USB_IDVIM_ID            0x00000001  // ID Valid Detect Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_IDVISC register.
+//
+//*****************************************************************************
+#define USB_IDVISC_ID           0x00000001  // ID Valid Detect Interrupt Status
+                                            // and Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_DMASEL register.
+//
+//*****************************************************************************
+#define USB_DMASEL_DMACTX_M     0x00F00000  // DMA C TX Select
+#define USB_DMASEL_DMACRX_M     0x000F0000  // DMA C RX Select
+#define USB_DMASEL_DMABTX_M     0x0000F000  // DMA B TX Select
+#define USB_DMASEL_DMABRX_M     0x00000F00  // DMA B RX Select
+#define USB_DMASEL_DMAATX_M     0x000000F0  // DMA A TX Select
+#define USB_DMASEL_DMAARX_M     0x0000000F  // DMA A RX Select
+#define USB_DMASEL_DMACTX_S     20
+#define USB_DMASEL_DMACRX_S     16
+#define USB_DMASEL_DMABTX_S     12
+#define USB_DMASEL_DMABRX_S     8
+#define USB_DMASEL_DMAATX_S     4
+#define USB_DMASEL_DMAARX_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the USB_O_PP register.
+//
+//*****************************************************************************
+#define USB_PP_ECNT_M           0x0000FF00  // Endpoint Count
+#define USB_PP_USB_M            0x000000C0  // USB Capability
+#define USB_PP_USB_DEVICE       0x00000040  // DEVICE
+#define USB_PP_USB_HOSTDEVICE   0x00000080  // HOST
+#define USB_PP_USB_OTG          0x000000C0  // OTG
+#define USB_PP_PHY              0x00000010  // PHY Present
+#define USB_PP_TYPE_M           0x0000000F  // Controller Type
+#define USB_PP_TYPE_0           0x00000000  // The first-generation USB
+                                            // controller
+#define USB_PP_ECNT_S           8
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EESIZE register.
+//
+//*****************************************************************************
+#define EEPROM_EESIZE_BLKCNT_M  0x07FF0000  // Number of 16-Word Blocks
+#define EEPROM_EESIZE_WORDCNT_M 0x0000FFFF  // Number of 32-Bit Words
+#define EEPROM_EESIZE_BLKCNT_S  16
+#define EEPROM_EESIZE_WORDCNT_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EEBLOCK register.
+//
+//*****************************************************************************
+#define EEPROM_EEBLOCK_BLOCK_M  0x0000FFFF  // Current Block
+#define EEPROM_EEBLOCK_BLOCK_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EEOFFSET
+// register.
+//
+//*****************************************************************************
+#define EEPROM_EEOFFSET_OFFSET_M                                              \
+                                0x0000000F  // Current Address Offset
+#define EEPROM_EEOFFSET_OFFSET_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EERDWR register.
+//
+//*****************************************************************************
+#define EEPROM_EERDWR_VALUE_M   0xFFFFFFFF  // EEPROM Read or Write Data
+#define EEPROM_EERDWR_VALUE_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EERDWRINC
+// register.
+//
+//*****************************************************************************
+#define EEPROM_EERDWRINC_VALUE_M                                              \
+                                0xFFFFFFFF  // EEPROM Read or Write Data with
+                                            // Increment
+#define EEPROM_EERDWRINC_VALUE_S                                              \
+                                0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EEDONE register.
+//
+//*****************************************************************************
+#define EEPROM_EEDONE_WRBUSY    0x00000020  // Write Busy
+#define EEPROM_EEDONE_NOPERM    0x00000010  // Write Without Permission
+#define EEPROM_EEDONE_WKCOPY    0x00000008  // Working on a Copy
+#define EEPROM_EEDONE_WKERASE   0x00000004  // Working on an Erase
+#define EEPROM_EEDONE_WORKING   0x00000001  // EEPROM Working
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EESUPP register.
+//
+//*****************************************************************************
+#define EEPROM_EESUPP_PRETRY    0x00000008  // Programming Must Be Retried
+#define EEPROM_EESUPP_ERETRY    0x00000004  // Erase Must Be Retried
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EEUNLOCK
+// register.
+//
+//*****************************************************************************
+#define EEPROM_EEUNLOCK_UNLOCK_M                                              \
+                                0xFFFFFFFF  // EEPROM Unlock
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EEPROT register.
+//
+//*****************************************************************************
+#define EEPROM_EEPROT_ACC       0x00000008  // Access Control
+#define EEPROM_EEPROT_PROT_M    0x00000007  // Protection Control
+#define EEPROM_EEPROT_PROT_RWNPW                                              \
+                                0x00000000  // This setting is the default. If
+                                            // there is no password, the block
+                                            // is not protected and is readable
+                                            // and writable
+#define EEPROM_EEPROT_PROT_RWPW 0x00000001  // If there is a password, the
+                                            // block is readable or writable
+                                            // only when unlocked
+#define EEPROM_EEPROT_PROT_RONPW                                              \
+                                0x00000002  // If there is no password, the
+                                            // block is readable, not writable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EEPASS0 register.
+//
+//*****************************************************************************
+#define EEPROM_EEPASS0_PASS_M   0xFFFFFFFF  // Password
+#define EEPROM_EEPASS0_PASS_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EEPASS1 register.
+//
+//*****************************************************************************
+#define EEPROM_EEPASS1_PASS_M   0xFFFFFFFF  // Password
+#define EEPROM_EEPASS1_PASS_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EEPASS2 register.
+//
+//*****************************************************************************
+#define EEPROM_EEPASS2_PASS_M   0xFFFFFFFF  // Password
+#define EEPROM_EEPASS2_PASS_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EEINT register.
+//
+//*****************************************************************************
+#define EEPROM_EEINT_INT        0x00000001  // Interrupt Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EEHIDE register.
+//
+//*****************************************************************************
+#define EEPROM_EEHIDE_HN_M      0xFFFFFFFE  // Hide Block
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_EEDBGME register.
+//
+//*****************************************************************************
+#define EEPROM_EEDBGME_KEY_M    0xFFFF0000  // Erase Key
+#define EEPROM_EEDBGME_ME       0x00000001  // Mass Erase
+#define EEPROM_EEDBGME_KEY_S    16
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the EEPROM_PP register.
+//
+//*****************************************************************************
+#define EEPROM_PP_SIZE_M        0x0000001F  // EEPROM Size
+#define EEPROM_PP_SIZE_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSEXC_RIS register.
+//
+//*****************************************************************************
+#define SYSEXC_RIS_FPIXCRIS     0x00000020  // Floating-Point Inexact Exception
+                                            // Raw Interrupt Status
+#define SYSEXC_RIS_FPOFCRIS     0x00000010  // Floating-Point Overflow
+                                            // Exception Raw Interrupt Status
+#define SYSEXC_RIS_FPUFCRIS     0x00000008  // Floating-Point Underflow
+                                            // Exception Raw Interrupt Status
+#define SYSEXC_RIS_FPIOCRIS     0x00000004  // Floating-Point Invalid Operation
+                                            // Raw Interrupt Status
+#define SYSEXC_RIS_FPDZCRIS     0x00000002  // Floating-Point Divide By 0
+                                            // Exception Raw Interrupt Status
+#define SYSEXC_RIS_FPIDCRIS     0x00000001  // Floating-Point Input Denormal
+                                            // Exception Raw Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSEXC_IM register.
+//
+//*****************************************************************************
+#define SYSEXC_IM_FPIXCIM       0x00000020  // Floating-Point Inexact Exception
+                                            // Interrupt Mask
+#define SYSEXC_IM_FPOFCIM       0x00000010  // Floating-Point Overflow
+                                            // Exception Interrupt Mask
+#define SYSEXC_IM_FPUFCIM       0x00000008  // Floating-Point Underflow
+                                            // Exception Interrupt Mask
+#define SYSEXC_IM_FPIOCIM       0x00000004  // Floating-Point Invalid Operation
+                                            // Interrupt Mask
+#define SYSEXC_IM_FPDZCIM       0x00000002  // Floating-Point Divide By 0
+                                            // Exception Interrupt Mask
+#define SYSEXC_IM_FPIDCIM       0x00000001  // Floating-Point Input Denormal
+                                            // Exception Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSEXC_MIS register.
+//
+//*****************************************************************************
+#define SYSEXC_MIS_FPIXCMIS     0x00000020  // Floating-Point Inexact Exception
+                                            // Masked Interrupt Status
+#define SYSEXC_MIS_FPOFCMIS     0x00000010  // Floating-Point Overflow
+                                            // Exception Masked Interrupt
+                                            // Status
+#define SYSEXC_MIS_FPUFCMIS     0x00000008  // Floating-Point Underflow
+                                            // Exception Masked Interrupt
+                                            // Status
+#define SYSEXC_MIS_FPIOCMIS     0x00000004  // Floating-Point Invalid Operation
+                                            // Masked Interrupt Status
+#define SYSEXC_MIS_FPDZCMIS     0x00000002  // Floating-Point Divide By 0
+                                            // Exception Masked Interrupt
+                                            // Status
+#define SYSEXC_MIS_FPIDCMIS     0x00000001  // Floating-Point Input Denormal
+                                            // Exception Masked Interrupt
+                                            // Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSEXC_IC register.
+//
+//*****************************************************************************
+#define SYSEXC_IC_FPIXCIC       0x00000020  // Floating-Point Inexact Exception
+                                            // Interrupt Clear
+#define SYSEXC_IC_FPOFCIC       0x00000010  // Floating-Point Overflow
+                                            // Exception Interrupt Clear
+#define SYSEXC_IC_FPUFCIC       0x00000008  // Floating-Point Underflow
+                                            // Exception Interrupt Clear
+#define SYSEXC_IC_FPIOCIC       0x00000004  // Floating-Point Invalid Operation
+                                            // Interrupt Clear
+#define SYSEXC_IC_FPDZCIC       0x00000002  // Floating-Point Divide By 0
+                                            // Exception Interrupt Clear
+#define SYSEXC_IC_FPIDCIC       0x00000001  // Floating-Point Input Denormal
+                                            // Exception Interrupt Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_RTCC register.
+//
+//*****************************************************************************
+#define HIB_RTCC_M              0xFFFFFFFF  // RTC Counter
+#define HIB_RTCC_S              0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_RTCM0 register.
+//
+//*****************************************************************************
+#define HIB_RTCM0_M             0xFFFFFFFF  // RTC Match 0
+#define HIB_RTCM0_S             0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_RTCLD register.
+//
+//*****************************************************************************
+#define HIB_RTCLD_M             0xFFFFFFFF  // RTC Load
+#define HIB_RTCLD_S             0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_CTL register.
+//
+//*****************************************************************************
+#define HIB_CTL_WRC             0x80000000  // Write Complete/Capable
+#define HIB_CTL_OSCDRV          0x00020000  // Oscillator Drive Capability
+#define HIB_CTL_OSCBYP          0x00010000  // Oscillator Bypass
+#define HIB_CTL_VBATSEL_M       0x00006000  // Select for Low-Battery
+                                            // Comparator
+#define HIB_CTL_VBATSEL_1_9V    0x00000000  // 1.9 Volts
+#define HIB_CTL_VBATSEL_2_1V    0x00002000  // 2.1 Volts (default)
+#define HIB_CTL_VBATSEL_2_3V    0x00004000  // 2.3 Volts
+#define HIB_CTL_VBATSEL_2_5V    0x00006000  // 2.5 Volts
+#define HIB_CTL_BATCHK          0x00000400  // Check Battery Status
+#define HIB_CTL_BATWKEN         0x00000200  // Wake on Low Battery
+#define HIB_CTL_VDD3ON          0x00000100  // VDD Powered
+#define HIB_CTL_VABORT          0x00000080  // Power Cut Abort Enable
+#define HIB_CTL_CLK32EN         0x00000040  // Clocking Enable
+#define HIB_CTL_PINWEN          0x00000010  // External Wake Pin Enable
+#define HIB_CTL_RTCWEN          0x00000008  // RTC Wake-up Enable
+#define HIB_CTL_HIBREQ          0x00000002  // Hibernation Request
+#define HIB_CTL_RTCEN           0x00000001  // RTC Timer Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_IM register.
+//
+//*****************************************************************************
+#define HIB_IM_WC               0x00000010  // External Write Complete/Capable
+                                            // Interrupt Mask
+#define HIB_IM_EXTW             0x00000008  // External Wake-Up Interrupt Mask
+#define HIB_IM_LOWBAT           0x00000004  // Low Battery Voltage Interrupt
+                                            // Mask
+#define HIB_IM_RTCALT0          0x00000001  // RTC Alert 0 Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_RIS register.
+//
+//*****************************************************************************
+#define HIB_RIS_WC              0x00000010  // Write Complete/Capable Raw
+                                            // Interrupt Status
+#define HIB_RIS_EXTW            0x00000008  // External Wake-Up Raw Interrupt
+                                            // Status
+#define HIB_RIS_LOWBAT          0x00000004  // Low Battery Voltage Raw
+                                            // Interrupt Status
+#define HIB_RIS_RTCALT0         0x00000001  // RTC Alert 0 Raw Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_MIS register.
+//
+//*****************************************************************************
+#define HIB_MIS_WC              0x00000010  // Write Complete/Capable Masked
+                                            // Interrupt Status
+#define HIB_MIS_EXTW            0x00000008  // External Wake-Up Masked
+                                            // Interrupt Status
+#define HIB_MIS_LOWBAT          0x00000004  // Low Battery Voltage Masked
+                                            // Interrupt Status
+#define HIB_MIS_RTCALT0         0x00000001  // RTC Alert 0 Masked Interrupt
+                                            // Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_IC register.
+//
+//*****************************************************************************
+#define HIB_IC_WC               0x00000010  // Write Complete/Capable Interrupt
+                                            // Clear
+#define HIB_IC_EXTW             0x00000008  // External Wake-Up Interrupt Clear
+#define HIB_IC_LOWBAT           0x00000004  // Low Battery Voltage Interrupt
+                                            // Clear
+#define HIB_IC_RTCALT0          0x00000001  // RTC Alert0 Masked Interrupt
+                                            // Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_RTCT register.
+//
+//*****************************************************************************
+#define HIB_RTCT_TRIM_M         0x0000FFFF  // RTC Trim Value
+#define HIB_RTCT_TRIM_S         0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_RTCSS register.
+//
+//*****************************************************************************
+#define HIB_RTCSS_RTCSSM_M      0x7FFF0000  // RTC Sub Seconds Match
+#define HIB_RTCSS_RTCSSC_M      0x00007FFF  // RTC Sub Seconds Count
+#define HIB_RTCSS_RTCSSM_S      16
+#define HIB_RTCSS_RTCSSC_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the HIB_DATA register.
+//
+//*****************************************************************************
+#define HIB_DATA_RTD_M          0xFFFFFFFF  // Hibernation Module NV Data
+#define HIB_DATA_RTD_S          0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FMA register.
+//
+//*****************************************************************************
+#define FLASH_FMA_OFFSET_M      0x0003FFFF  // Address Offset
+#define FLASH_FMA_OFFSET_S      0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FMD register.
+//
+//*****************************************************************************
+#define FLASH_FMD_DATA_M        0xFFFFFFFF  // Data Value
+#define FLASH_FMD_DATA_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FMC register.
+//
+//*****************************************************************************
+#define FLASH_FMC_WRKEY         0xA4420000  // FLASH write key
+#define FLASH_FMC_COMT          0x00000008  // Commit Register Value
+#define FLASH_FMC_MERASE        0x00000004  // Mass Erase Flash Memory
+#define FLASH_FMC_ERASE         0x00000002  // Erase a Page of Flash Memory
+#define FLASH_FMC_WRITE         0x00000001  // Write a Word into Flash Memory
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FCRIS register.
+//
+//*****************************************************************************
+#define FLASH_FCRIS_PROGRIS     0x00002000  // Program Verify Error Raw
+                                            // Interrupt Status
+#define FLASH_FCRIS_ERRIS       0x00000800  // Erase Verify Error Raw Interrupt
+                                            // Status
+#define FLASH_FCRIS_INVDRIS     0x00000400  // Invalid Data Raw Interrupt
+                                            // Status
+#define FLASH_FCRIS_VOLTRIS     0x00000200  // Pump Voltage Raw Interrupt
+                                            // Status
+#define FLASH_FCRIS_ERIS        0x00000004  // EEPROM Raw Interrupt Status
+#define FLASH_FCRIS_PRIS        0x00000002  // Programming Raw Interrupt Status
+#define FLASH_FCRIS_ARIS        0x00000001  // Access Raw Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FCIM register.
+//
+//*****************************************************************************
+#define FLASH_FCIM_PROGMASK     0x00002000  // PROGVER Interrupt Mask
+#define FLASH_FCIM_ERMASK       0x00000800  // ERVER Interrupt Mask
+#define FLASH_FCIM_INVDMASK     0x00000400  // Invalid Data Interrupt Mask
+#define FLASH_FCIM_VOLTMASK     0x00000200  // VOLT Interrupt Mask
+#define FLASH_FCIM_EMASK        0x00000004  // EEPROM Interrupt Mask
+#define FLASH_FCIM_PMASK        0x00000002  // Programming Interrupt Mask
+#define FLASH_FCIM_AMASK        0x00000001  // Access Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FCMISC register.
+//
+//*****************************************************************************
+#define FLASH_FCMISC_PROGMISC   0x00002000  // PROGVER Masked Interrupt Status
+                                            // and Clear
+#define FLASH_FCMISC_ERMISC     0x00000800  // ERVER Masked Interrupt Status
+                                            // and Clear
+#define FLASH_FCMISC_INVDMISC   0x00000400  // Invalid Data Masked Interrupt
+                                            // Status and Clear
+#define FLASH_FCMISC_VOLTMISC   0x00000200  // VOLT Masked Interrupt Status and
+                                            // Clear
+#define FLASH_FCMISC_EMISC      0x00000004  // EEPROM Masked Interrupt Status
+                                            // and Clear
+#define FLASH_FCMISC_PMISC      0x00000002  // Programming Masked Interrupt
+                                            // Status and Clear
+#define FLASH_FCMISC_AMISC      0x00000001  // Access Masked Interrupt Status
+                                            // and Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FMC2 register.
+//
+//*****************************************************************************
+#define FLASH_FMC2_WRBUF        0x00000001  // Buffered Flash Memory Write
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FWBVAL register.
+//
+//*****************************************************************************
+#define FLASH_FWBVAL_FWB_M      0xFFFFFFFF  // Flash Memory Write Buffer
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FWBN register.
+//
+//*****************************************************************************
+#define FLASH_FWBN_DATA_M       0xFFFFFFFF  // Data
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_FSIZE register.
+//
+//*****************************************************************************
+#define FLASH_FSIZE_SIZE_M      0x0000FFFF  // Flash Size
+#define FLASH_FSIZE_SIZE_256KB  0x0000007F  // 256 KB of Flash
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_SSIZE register.
+//
+//*****************************************************************************
+#define FLASH_SSIZE_SIZE_M      0x0000FFFF  // SRAM Size
+#define FLASH_SSIZE_SIZE_32KB   0x0000007F  // 32 KB of SRAM
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_ROMSWMAP register.
+//
+//*****************************************************************************
+#define FLASH_ROMSWMAP_SAFERTOS 0x00000001  // SafeRTOS Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_RMCTL register.
+//
+//*****************************************************************************
+#define FLASH_RMCTL_BA          0x00000001  // Boot Alias
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_BOOTCFG register.
+//
+//*****************************************************************************
+#define FLASH_BOOTCFG_NW        0x80000000  // Not Written
+#define FLASH_BOOTCFG_PORT_M    0x0000E000  // Boot GPIO Port
+#define FLASH_BOOTCFG_PORT_A    0x00000000  // Port A
+#define FLASH_BOOTCFG_PORT_B    0x00002000  // Port B
+#define FLASH_BOOTCFG_PORT_C    0x00004000  // Port C
+#define FLASH_BOOTCFG_PORT_D    0x00006000  // Port D
+#define FLASH_BOOTCFG_PORT_E    0x00008000  // Port E
+#define FLASH_BOOTCFG_PORT_F    0x0000A000  // Port F
+#define FLASH_BOOTCFG_PORT_G    0x0000C000  // Port G
+#define FLASH_BOOTCFG_PORT_H    0x0000E000  // Port H
+#define FLASH_BOOTCFG_PIN_M     0x00001C00  // Boot GPIO Pin
+#define FLASH_BOOTCFG_PIN_0     0x00000000  // Pin 0
+#define FLASH_BOOTCFG_PIN_1     0x00000400  // Pin 1
+#define FLASH_BOOTCFG_PIN_2     0x00000800  // Pin 2
+#define FLASH_BOOTCFG_PIN_3     0x00000C00  // Pin 3
+#define FLASH_BOOTCFG_PIN_4     0x00001000  // Pin 4
+#define FLASH_BOOTCFG_PIN_5     0x00001400  // Pin 5
+#define FLASH_BOOTCFG_PIN_6     0x00001800  // Pin 6
+#define FLASH_BOOTCFG_PIN_7     0x00001C00  // Pin 7
+#define FLASH_BOOTCFG_POL       0x00000200  // Boot GPIO Polarity
+#define FLASH_BOOTCFG_EN        0x00000100  // Boot GPIO Enable
+#define FLASH_BOOTCFG_KEY       0x00000010  // KEY Select
+#define FLASH_BOOTCFG_DBG1      0x00000002  // Debug Control 1
+#define FLASH_BOOTCFG_DBG0      0x00000001  // Debug Control 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_USERREG0 register.
+//
+//*****************************************************************************
+#define FLASH_USERREG0_DATA_M   0xFFFFFFFF  // User Data
+#define FLASH_USERREG0_DATA_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_USERREG1 register.
+//
+//*****************************************************************************
+#define FLASH_USERREG1_DATA_M   0xFFFFFFFF  // User Data
+#define FLASH_USERREG1_DATA_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_USERREG2 register.
+//
+//*****************************************************************************
+#define FLASH_USERREG2_DATA_M   0xFFFFFFFF  // User Data
+#define FLASH_USERREG2_DATA_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the FLASH_USERREG3 register.
+//
+//*****************************************************************************
+#define FLASH_USERREG3_DATA_M   0xFFFFFFFF  // User Data
+#define FLASH_USERREG3_DATA_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DID0 register.
+//
+//*****************************************************************************
+#define SYSCTL_DID0_VER_M       0x70000000  // DID0 Version
+#define SYSCTL_DID0_VER_1       0x10000000  // Second version of the DID0
+                                            // register format.
+#define SYSCTL_DID0_CLASS_M     0x00FF0000  // Device Class
+#define SYSCTL_DID0_CLASS_TM4C123                                             \
+                                0x00050000  // Tiva TM4C123x and TM4E123x
+                                            // microcontrollers
+#define SYSCTL_DID0_MAJ_M       0x0000FF00  // Major Revision
+#define SYSCTL_DID0_MAJ_REVA    0x00000000  // Revision A (initial device)
+#define SYSCTL_DID0_MAJ_REVB    0x00000100  // Revision B (first base layer
+                                            // revision)
+#define SYSCTL_DID0_MAJ_REVC    0x00000200  // Revision C (second base layer
+                                            // revision)
+#define SYSCTL_DID0_MIN_M       0x000000FF  // Minor Revision
+#define SYSCTL_DID0_MIN_0       0x00000000  // Initial device, or a major
+                                            // revision update
+#define SYSCTL_DID0_MIN_1       0x00000001  // First metal layer change
+#define SYSCTL_DID0_MIN_2       0x00000002  // Second metal layer change
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DID1 register.
+//
+//*****************************************************************************
+#define SYSCTL_DID1_VER_M       0xF0000000  // DID1 Version
+#define SYSCTL_DID1_VER_1       0x10000000  // fury_ib
+#define SYSCTL_DID1_FAM_M       0x0F000000  // Family
+#define SYSCTL_DID1_FAM_TIVA    0x00000000  // Tiva family of microcontollers
+#define SYSCTL_DID1_PRTNO_M     0x00FF0000  // Part Number
+#define SYSCTL_DID1_PRTNO_TM4C123GH6PZ                                        \
+                                0x00C10000  // TM4C123GH6PZ
+#define SYSCTL_DID1_PINCNT_M    0x0000E000  // Package Pin Count
+#define SYSCTL_DID1_PINCNT_100  0x00004000  // 100-pin LQFP package
+#define SYSCTL_DID1_PINCNT_64   0x00006000  // 64-pin LQFP package
+#define SYSCTL_DID1_PINCNT_144  0x00008000  // 144-pin LQFP package
+#define SYSCTL_DID1_PINCNT_157  0x0000A000  // 157-pin BGA package
+#define SYSCTL_DID1_PINCNT_128  0x0000C000  // 128-pin TQFP package
+#define SYSCTL_DID1_TEMP_M      0x000000E0  // Temperature Range
+#define SYSCTL_DID1_TEMP_I      0x00000020  // Industrial temperature range
+#define SYSCTL_DID1_TEMP_E      0x00000040  // Extended temperature range
+#define SYSCTL_DID1_TEMP_IE     0x00000060  // Available in both industrial
+                                            // temperature range (-40C to 85C)
+                                            // and extended temperature range
+                                            // (-40C to 105C) devices. See
+#define SYSCTL_DID1_PKG_M       0x00000018  // Package Type
+#define SYSCTL_DID1_PKG_QFP     0x00000008  // QFP package
+#define SYSCTL_DID1_PKG_BGA     0x00000010  // BGA package
+#define SYSCTL_DID1_ROHS        0x00000004  // RoHS-Compliance
+#define SYSCTL_DID1_QUAL_M      0x00000003  // Qualification Status
+#define SYSCTL_DID1_QUAL_ES     0x00000000  // Engineering Sample (unqualified)
+#define SYSCTL_DID1_QUAL_PP     0x00000001  // Pilot Production (unqualified)
+#define SYSCTL_DID1_QUAL_FQ     0x00000002  // Fully Qualified
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DC0 register.
+//
+//*****************************************************************************
+#define SYSCTL_DC0_SRAMSZ_M     0xFFFF0000  // SRAM Size
+#define SYSCTL_DC0_SRAMSZ_2KB   0x00070000  // 2 KB of SRAM
+#define SYSCTL_DC0_SRAMSZ_4KB   0x000F0000  // 4 KB of SRAM
+#define SYSCTL_DC0_SRAMSZ_6KB   0x00170000  // 6 KB of SRAM
+#define SYSCTL_DC0_SRAMSZ_8KB   0x001F0000  // 8 KB of SRAM
+#define SYSCTL_DC0_SRAMSZ_12KB  0x002F0000  // 12 KB of SRAM
+#define SYSCTL_DC0_SRAMSZ_16KB  0x003F0000  // 16 KB of SRAM
+#define SYSCTL_DC0_SRAMSZ_20KB  0x004F0000  // 20 KB of SRAM
+#define SYSCTL_DC0_SRAMSZ_24KB  0x005F0000  // 24 KB of SRAM
+#define SYSCTL_DC0_SRAMSZ_32KB  0x007F0000  // 32 KB of SRAM
+#define SYSCTL_DC0_FLASHSZ_M    0x0000FFFF  // Flash Size
+#define SYSCTL_DC0_FLASHSZ_8KB  0x00000003  // 8 KB of Flash
+#define SYSCTL_DC0_FLASHSZ_16KB 0x00000007  // 16 KB of Flash
+#define SYSCTL_DC0_FLASHSZ_32KB 0x0000000F  // 32 KB of Flash
+#define SYSCTL_DC0_FLASHSZ_64KB 0x0000001F  // 64 KB of Flash
+#define SYSCTL_DC0_FLASHSZ_96KB 0x0000002F  // 96 KB of Flash
+#define SYSCTL_DC0_FLASHSZ_128K 0x0000003F  // 128 KB of Flash
+#define SYSCTL_DC0_FLASHSZ_192K 0x0000005F  // 192 KB of Flash
+#define SYSCTL_DC0_FLASHSZ_256K 0x0000007F  // 256 KB of Flash
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DC1 register.
+//
+//*****************************************************************************
+#define SYSCTL_DC1_WDT1         0x10000000  // Watchdog Timer1 Present
+#define SYSCTL_DC1_CAN1         0x02000000  // CAN Module 1 Present
+#define SYSCTL_DC1_CAN0         0x01000000  // CAN Module 0 Present
+#define SYSCTL_DC1_PWM1         0x00200000  // PWM Module 1 Present
+#define SYSCTL_DC1_PWM0         0x00100000  // PWM Module 0 Present
+#define SYSCTL_DC1_ADC1         0x00020000  // ADC Module 1 Present
+#define SYSCTL_DC1_ADC0         0x00010000  // ADC Module 0 Present
+#define SYSCTL_DC1_MINSYSDIV_M  0x0000F000  // System Clock Divider
+#define SYSCTL_DC1_MINSYSDIV_80 0x00002000  // Specifies an 80-MHz CPU clock
+                                            // with a PLL divider of 2.5
+#define SYSCTL_DC1_MINSYSDIV_50 0x00003000  // Specifies a 50-MHz CPU clock
+                                            // with a PLL divider of 4
+#define SYSCTL_DC1_MINSYSDIV_40 0x00004000  // Specifies a 40-MHz CPU clock
+                                            // with a PLL divider of 5
+#define SYSCTL_DC1_MINSYSDIV_25 0x00007000  // Specifies a 25-MHz clock with a
+                                            // PLL divider of 8
+#define SYSCTL_DC1_MINSYSDIV_20 0x00009000  // Specifies a 20-MHz clock with a
+                                            // PLL divider of 10
+#define SYSCTL_DC1_ADC1SPD_M    0x00000C00  // Max ADC1 Speed
+#define SYSCTL_DC1_ADC1SPD_125K 0x00000000  // 125K samples/second
+#define SYSCTL_DC1_ADC1SPD_250K 0x00000400  // 250K samples/second
+#define SYSCTL_DC1_ADC1SPD_500K 0x00000800  // 500K samples/second
+#define SYSCTL_DC1_ADC1SPD_1M   0x00000C00  // 1M samples/second
+#define SYSCTL_DC1_ADC0SPD_M    0x00000300  // Max ADC0 Speed
+#define SYSCTL_DC1_ADC0SPD_125K 0x00000000  // 125K samples/second
+#define SYSCTL_DC1_ADC0SPD_250K 0x00000100  // 250K samples/second
+#define SYSCTL_DC1_ADC0SPD_500K 0x00000200  // 500K samples/second
+#define SYSCTL_DC1_ADC0SPD_1M   0x00000300  // 1M samples/second
+#define SYSCTL_DC1_MPU          0x00000080  // MPU Present
+#define SYSCTL_DC1_HIB          0x00000040  // Hibernation Module Present
+#define SYSCTL_DC1_TEMP         0x00000020  // Temp Sensor Present
+#define SYSCTL_DC1_PLL          0x00000010  // PLL Present
+#define SYSCTL_DC1_WDT0         0x00000008  // Watchdog Timer 0 Present
+#define SYSCTL_DC1_SWO          0x00000004  // SWO Trace Port Present
+#define SYSCTL_DC1_SWD          0x00000002  // SWD Present
+#define SYSCTL_DC1_JTAG         0x00000001  // JTAG Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DC2 register.
+//
+//*****************************************************************************
+#define SYSCTL_DC2_EPI0         0x40000000  // EPI Module 0 Present
+#define SYSCTL_DC2_I2S0         0x10000000  // I2S Module 0 Present
+#define SYSCTL_DC2_COMP2        0x04000000  // Analog Comparator 2 Present
+#define SYSCTL_DC2_COMP1        0x02000000  // Analog Comparator 1 Present
+#define SYSCTL_DC2_COMP0        0x01000000  // Analog Comparator 0 Present
+#define SYSCTL_DC2_TIMER3       0x00080000  // Timer Module 3 Present
+#define SYSCTL_DC2_TIMER2       0x00040000  // Timer Module 2 Present
+#define SYSCTL_DC2_TIMER1       0x00020000  // Timer Module 1 Present
+#define SYSCTL_DC2_TIMER0       0x00010000  // Timer Module 0 Present
+#define SYSCTL_DC2_I2C1HS       0x00008000  // I2C Module 1 Speed
+#define SYSCTL_DC2_I2C1         0x00004000  // I2C Module 1 Present
+#define SYSCTL_DC2_I2C0HS       0x00002000  // I2C Module 0 Speed
+#define SYSCTL_DC2_I2C0         0x00001000  // I2C Module 0 Present
+#define SYSCTL_DC2_QEI1         0x00000200  // QEI Module 1 Present
+#define SYSCTL_DC2_QEI0         0x00000100  // QEI Module 0 Present
+#define SYSCTL_DC2_SSI1         0x00000020  // SSI Module 1 Present
+#define SYSCTL_DC2_SSI0         0x00000010  // SSI Module 0 Present
+#define SYSCTL_DC2_UART2        0x00000004  // UART Module 2 Present
+#define SYSCTL_DC2_UART1        0x00000002  // UART Module 1 Present
+#define SYSCTL_DC2_UART0        0x00000001  // UART Module 0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DC3 register.
+//
+//*****************************************************************************
+#define SYSCTL_DC3_32KHZ        0x80000000  // 32KHz Input Clock Available
+#define SYSCTL_DC3_CCP5         0x20000000  // T2CCP1 Pin Present
+#define SYSCTL_DC3_CCP4         0x10000000  // T2CCP0 Pin Present
+#define SYSCTL_DC3_CCP3         0x08000000  // T1CCP1 Pin Present
+#define SYSCTL_DC3_CCP2         0x04000000  // T1CCP0 Pin Present
+#define SYSCTL_DC3_CCP1         0x02000000  // T0CCP1 Pin Present
+#define SYSCTL_DC3_CCP0         0x01000000  // T0CCP0 Pin Present
+#define SYSCTL_DC3_ADC0AIN7     0x00800000  // ADC Module 0 AIN7 Pin Present
+#define SYSCTL_DC3_ADC0AIN6     0x00400000  // ADC Module 0 AIN6 Pin Present
+#define SYSCTL_DC3_ADC0AIN5     0x00200000  // ADC Module 0 AIN5 Pin Present
+#define SYSCTL_DC3_ADC0AIN4     0x00100000  // ADC Module 0 AIN4 Pin Present
+#define SYSCTL_DC3_ADC0AIN3     0x00080000  // ADC Module 0 AIN3 Pin Present
+#define SYSCTL_DC3_ADC0AIN2     0x00040000  // ADC Module 0 AIN2 Pin Present
+#define SYSCTL_DC3_ADC0AIN1     0x00020000  // ADC Module 0 AIN1 Pin Present
+#define SYSCTL_DC3_ADC0AIN0     0x00010000  // ADC Module 0 AIN0 Pin Present
+#define SYSCTL_DC3_PWMFAULT     0x00008000  // PWM Fault Pin Present
+#define SYSCTL_DC3_C2O          0x00004000  // C2o Pin Present
+#define SYSCTL_DC3_C2PLUS       0x00002000  // C2+ Pin Present
+#define SYSCTL_DC3_C2MINUS      0x00001000  // C2- Pin Present
+#define SYSCTL_DC3_C1O          0x00000800  // C1o Pin Present
+#define SYSCTL_DC3_C1PLUS       0x00000400  // C1+ Pin Present
+#define SYSCTL_DC3_C1MINUS      0x00000200  // C1- Pin Present
+#define SYSCTL_DC3_C0O          0x00000100  // C0o Pin Present
+#define SYSCTL_DC3_C0PLUS       0x00000080  // C0+ Pin Present
+#define SYSCTL_DC3_C0MINUS      0x00000040  // C0- Pin Present
+#define SYSCTL_DC3_PWM5         0x00000020  // PWM5 Pin Present
+#define SYSCTL_DC3_PWM4         0x00000010  // PWM4 Pin Present
+#define SYSCTL_DC3_PWM3         0x00000008  // PWM3 Pin Present
+#define SYSCTL_DC3_PWM2         0x00000004  // PWM2 Pin Present
+#define SYSCTL_DC3_PWM1         0x00000002  // PWM1 Pin Present
+#define SYSCTL_DC3_PWM0         0x00000001  // PWM0 Pin Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DC4 register.
+//
+//*****************************************************************************
+#define SYSCTL_DC4_EPHY0        0x40000000  // Ethernet PHY Layer 0 Present
+#define SYSCTL_DC4_EMAC0        0x10000000  // Ethernet MAC Layer 0 Present
+#define SYSCTL_DC4_E1588        0x01000000  // 1588 Capable
+#define SYSCTL_DC4_PICAL        0x00040000  // PIOSC Calibrate
+#define SYSCTL_DC4_CCP7         0x00008000  // T3CCP1 Pin Present
+#define SYSCTL_DC4_CCP6         0x00004000  // T3CCP0 Pin Present
+#define SYSCTL_DC4_UDMA         0x00002000  // Micro-DMA Module Present
+#define SYSCTL_DC4_ROM          0x00001000  // Internal Code ROM Present
+#define SYSCTL_DC4_GPIOJ        0x00000100  // GPIO Port J Present
+#define SYSCTL_DC4_GPIOH        0x00000080  // GPIO Port H Present
+#define SYSCTL_DC4_GPIOG        0x00000040  // GPIO Port G Present
+#define SYSCTL_DC4_GPIOF        0x00000020  // GPIO Port F Present
+#define SYSCTL_DC4_GPIOE        0x00000010  // GPIO Port E Present
+#define SYSCTL_DC4_GPIOD        0x00000008  // GPIO Port D Present
+#define SYSCTL_DC4_GPIOC        0x00000004  // GPIO Port C Present
+#define SYSCTL_DC4_GPIOB        0x00000002  // GPIO Port B Present
+#define SYSCTL_DC4_GPIOA        0x00000001  // GPIO Port A Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DC5 register.
+//
+//*****************************************************************************
+#define SYSCTL_DC5_PWMFAULT3    0x08000000  // PWM Fault 3 Pin Present
+#define SYSCTL_DC5_PWMFAULT2    0x04000000  // PWM Fault 2 Pin Present
+#define SYSCTL_DC5_PWMFAULT1    0x02000000  // PWM Fault 1 Pin Present
+#define SYSCTL_DC5_PWMFAULT0    0x01000000  // PWM Fault 0 Pin Present
+#define SYSCTL_DC5_PWMEFLT      0x00200000  // PWM Extended Fault Active
+#define SYSCTL_DC5_PWMESYNC     0x00100000  // PWM Extended SYNC Active
+#define SYSCTL_DC5_PWM7         0x00000080  // PWM7 Pin Present
+#define SYSCTL_DC5_PWM6         0x00000040  // PWM6 Pin Present
+#define SYSCTL_DC5_PWM5         0x00000020  // PWM5 Pin Present
+#define SYSCTL_DC5_PWM4         0x00000010  // PWM4 Pin Present
+#define SYSCTL_DC5_PWM3         0x00000008  // PWM3 Pin Present
+#define SYSCTL_DC5_PWM2         0x00000004  // PWM2 Pin Present
+#define SYSCTL_DC5_PWM1         0x00000002  // PWM1 Pin Present
+#define SYSCTL_DC5_PWM0         0x00000001  // PWM0 Pin Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DC6 register.
+//
+//*****************************************************************************
+#define SYSCTL_DC6_USB0PHY      0x00000010  // USB Module 0 PHY Present
+#define SYSCTL_DC6_USB0_M       0x00000003  // USB Module 0 Present
+#define SYSCTL_DC6_USB0_DEV     0x00000001  // USB0 is Device Only
+#define SYSCTL_DC6_USB0_HOSTDEV 0x00000002  // USB is Device or Host
+#define SYSCTL_DC6_USB0_OTG     0x00000003  // USB0 is OTG
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DC7 register.
+//
+//*****************************************************************************
+#define SYSCTL_DC7_DMACH30      0x40000000  // DMA Channel 30
+#define SYSCTL_DC7_DMACH29      0x20000000  // DMA Channel 29
+#define SYSCTL_DC7_DMACH28      0x10000000  // DMA Channel 28
+#define SYSCTL_DC7_DMACH27      0x08000000  // DMA Channel 27
+#define SYSCTL_DC7_DMACH26      0x04000000  // DMA Channel 26
+#define SYSCTL_DC7_DMACH25      0x02000000  // DMA Channel 25
+#define SYSCTL_DC7_DMACH24      0x01000000  // DMA Channel 24
+#define SYSCTL_DC7_DMACH23      0x00800000  // DMA Channel 23
+#define SYSCTL_DC7_DMACH22      0x00400000  // DMA Channel 22
+#define SYSCTL_DC7_DMACH21      0x00200000  // DMA Channel 21
+#define SYSCTL_DC7_DMACH20      0x00100000  // DMA Channel 20
+#define SYSCTL_DC7_DMACH19      0x00080000  // DMA Channel 19
+#define SYSCTL_DC7_DMACH18      0x00040000  // DMA Channel 18
+#define SYSCTL_DC7_DMACH17      0x00020000  // DMA Channel 17
+#define SYSCTL_DC7_DMACH16      0x00010000  // DMA Channel 16
+#define SYSCTL_DC7_DMACH15      0x00008000  // DMA Channel 15
+#define SYSCTL_DC7_DMACH14      0x00004000  // DMA Channel 14
+#define SYSCTL_DC7_DMACH13      0x00002000  // DMA Channel 13
+#define SYSCTL_DC7_DMACH12      0x00001000  // DMA Channel 12
+#define SYSCTL_DC7_DMACH11      0x00000800  // DMA Channel 11
+#define SYSCTL_DC7_DMACH10      0x00000400  // DMA Channel 10
+#define SYSCTL_DC7_DMACH9       0x00000200  // DMA Channel 9
+#define SYSCTL_DC7_DMACH8       0x00000100  // DMA Channel 8
+#define SYSCTL_DC7_DMACH7       0x00000080  // DMA Channel 7
+#define SYSCTL_DC7_DMACH6       0x00000040  // DMA Channel 6
+#define SYSCTL_DC7_DMACH5       0x00000020  // DMA Channel 5
+#define SYSCTL_DC7_DMACH4       0x00000010  // DMA Channel 4
+#define SYSCTL_DC7_DMACH3       0x00000008  // DMA Channel 3
+#define SYSCTL_DC7_DMACH2       0x00000004  // DMA Channel 2
+#define SYSCTL_DC7_DMACH1       0x00000002  // DMA Channel 1
+#define SYSCTL_DC7_DMACH0       0x00000001  // DMA Channel 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DC8 register.
+//
+//*****************************************************************************
+#define SYSCTL_DC8_ADC1AIN15    0x80000000  // ADC Module 1 AIN15 Pin Present
+#define SYSCTL_DC8_ADC1AIN14    0x40000000  // ADC Module 1 AIN14 Pin Present
+#define SYSCTL_DC8_ADC1AIN13    0x20000000  // ADC Module 1 AIN13 Pin Present
+#define SYSCTL_DC8_ADC1AIN12    0x10000000  // ADC Module 1 AIN12 Pin Present
+#define SYSCTL_DC8_ADC1AIN11    0x08000000  // ADC Module 1 AIN11 Pin Present
+#define SYSCTL_DC8_ADC1AIN10    0x04000000  // ADC Module 1 AIN10 Pin Present
+#define SYSCTL_DC8_ADC1AIN9     0x02000000  // ADC Module 1 AIN9 Pin Present
+#define SYSCTL_DC8_ADC1AIN8     0x01000000  // ADC Module 1 AIN8 Pin Present
+#define SYSCTL_DC8_ADC1AIN7     0x00800000  // ADC Module 1 AIN7 Pin Present
+#define SYSCTL_DC8_ADC1AIN6     0x00400000  // ADC Module 1 AIN6 Pin Present
+#define SYSCTL_DC8_ADC1AIN5     0x00200000  // ADC Module 1 AIN5 Pin Present
+#define SYSCTL_DC8_ADC1AIN4     0x00100000  // ADC Module 1 AIN4 Pin Present
+#define SYSCTL_DC8_ADC1AIN3     0x00080000  // ADC Module 1 AIN3 Pin Present
+#define SYSCTL_DC8_ADC1AIN2     0x00040000  // ADC Module 1 AIN2 Pin Present
+#define SYSCTL_DC8_ADC1AIN1     0x00020000  // ADC Module 1 AIN1 Pin Present
+#define SYSCTL_DC8_ADC1AIN0     0x00010000  // ADC Module 1 AIN0 Pin Present
+#define SYSCTL_DC8_ADC0AIN15    0x00008000  // ADC Module 0 AIN15 Pin Present
+#define SYSCTL_DC8_ADC0AIN14    0x00004000  // ADC Module 0 AIN14 Pin Present
+#define SYSCTL_DC8_ADC0AIN13    0x00002000  // ADC Module 0 AIN13 Pin Present
+#define SYSCTL_DC8_ADC0AIN12    0x00001000  // ADC Module 0 AIN12 Pin Present
+#define SYSCTL_DC8_ADC0AIN11    0x00000800  // ADC Module 0 AIN11 Pin Present
+#define SYSCTL_DC8_ADC0AIN10    0x00000400  // ADC Module 0 AIN10 Pin Present
+#define SYSCTL_DC8_ADC0AIN9     0x00000200  // ADC Module 0 AIN9 Pin Present
+#define SYSCTL_DC8_ADC0AIN8     0x00000100  // ADC Module 0 AIN8 Pin Present
+#define SYSCTL_DC8_ADC0AIN7     0x00000080  // ADC Module 0 AIN7 Pin Present
+#define SYSCTL_DC8_ADC0AIN6     0x00000040  // ADC Module 0 AIN6 Pin Present
+#define SYSCTL_DC8_ADC0AIN5     0x00000020  // ADC Module 0 AIN5 Pin Present
+#define SYSCTL_DC8_ADC0AIN4     0x00000010  // ADC Module 0 AIN4 Pin Present
+#define SYSCTL_DC8_ADC0AIN3     0x00000008  // ADC Module 0 AIN3 Pin Present
+#define SYSCTL_DC8_ADC0AIN2     0x00000004  // ADC Module 0 AIN2 Pin Present
+#define SYSCTL_DC8_ADC0AIN1     0x00000002  // ADC Module 0 AIN1 Pin Present
+#define SYSCTL_DC8_ADC0AIN0     0x00000001  // ADC Module 0 AIN0 Pin Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PBORCTL register.
+//
+//*****************************************************************************
+#define SYSCTL_PBORCTL_BOR0     0x00000004  // VDD under BOR0 Event Action
+#define SYSCTL_PBORCTL_BOR1     0x00000002  // VDD under BOR1 Event Action
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRCR0 register.
+//
+//*****************************************************************************
+#define SYSCTL_SRCR0_WDT1       0x10000000  // WDT1 Reset Control
+#define SYSCTL_SRCR0_CAN1       0x02000000  // CAN1 Reset Control
+#define SYSCTL_SRCR0_CAN0       0x01000000  // CAN0 Reset Control
+#define SYSCTL_SRCR0_PWM0       0x00100000  // PWM Reset Control
+#define SYSCTL_SRCR0_ADC1       0x00020000  // ADC1 Reset Control
+#define SYSCTL_SRCR0_ADC0       0x00010000  // ADC0 Reset Control
+#define SYSCTL_SRCR0_HIB        0x00000040  // HIB Reset Control
+#define SYSCTL_SRCR0_WDT0       0x00000008  // WDT0 Reset Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRCR1 register.
+//
+//*****************************************************************************
+#define SYSCTL_SRCR1_COMP2      0x04000000  // Analog Comp 2 Reset Control
+#define SYSCTL_SRCR1_COMP1      0x02000000  // Analog Comp 1 Reset Control
+#define SYSCTL_SRCR1_COMP0      0x01000000  // Analog Comp 0 Reset Control
+#define SYSCTL_SRCR1_TIMER3     0x00080000  // Timer 3 Reset Control
+#define SYSCTL_SRCR1_TIMER2     0x00040000  // Timer 2 Reset Control
+#define SYSCTL_SRCR1_TIMER1     0x00020000  // Timer 1 Reset Control
+#define SYSCTL_SRCR1_TIMER0     0x00010000  // Timer 0 Reset Control
+#define SYSCTL_SRCR1_I2C1       0x00004000  // I2C1 Reset Control
+#define SYSCTL_SRCR1_I2C0       0x00001000  // I2C0 Reset Control
+#define SYSCTL_SRCR1_QEI1       0x00000200  // QEI1 Reset Control
+#define SYSCTL_SRCR1_QEI0       0x00000100  // QEI0 Reset Control
+#define SYSCTL_SRCR1_SSI1       0x00000020  // SSI1 Reset Control
+#define SYSCTL_SRCR1_SSI0       0x00000010  // SSI0 Reset Control
+#define SYSCTL_SRCR1_UART2      0x00000004  // UART2 Reset Control
+#define SYSCTL_SRCR1_UART1      0x00000002  // UART1 Reset Control
+#define SYSCTL_SRCR1_UART0      0x00000001  // UART0 Reset Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRCR2 register.
+//
+//*****************************************************************************
+#define SYSCTL_SRCR2_USB0       0x00010000  // USB0 Reset Control
+#define SYSCTL_SRCR2_UDMA       0x00002000  // Micro-DMA Reset Control
+#define SYSCTL_SRCR2_GPIOJ      0x00000100  // Port J Reset Control
+#define SYSCTL_SRCR2_GPIOH      0x00000080  // Port H Reset Control
+#define SYSCTL_SRCR2_GPIOG      0x00000040  // Port G Reset Control
+#define SYSCTL_SRCR2_GPIOF      0x00000020  // Port F Reset Control
+#define SYSCTL_SRCR2_GPIOE      0x00000010  // Port E Reset Control
+#define SYSCTL_SRCR2_GPIOD      0x00000008  // Port D Reset Control
+#define SYSCTL_SRCR2_GPIOC      0x00000004  // Port C Reset Control
+#define SYSCTL_SRCR2_GPIOB      0x00000002  // Port B Reset Control
+#define SYSCTL_SRCR2_GPIOA      0x00000001  // Port A Reset Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RIS register.
+//
+//*****************************************************************************
+#define SYSCTL_RIS_BOR0RIS      0x00000800  // VDD under BOR0 Raw Interrupt
+                                            // Status
+#define SYSCTL_RIS_VDDARIS      0x00000400  // VDDA Power OK Event Raw
+                                            // Interrupt Status
+#define SYSCTL_RIS_MOSCPUPRIS   0x00000100  // MOSC Power Up Raw Interrupt
+                                            // Status
+#define SYSCTL_RIS_USBPLLLRIS   0x00000080  // USB PLL Lock Raw Interrupt
+                                            // Status
+#define SYSCTL_RIS_PLLLRIS      0x00000040  // PLL Lock Raw Interrupt Status
+#define SYSCTL_RIS_MOFRIS       0x00000008  // Main Oscillator Failure Raw
+                                            // Interrupt Status
+#define SYSCTL_RIS_BOR1RIS      0x00000002  // VDD under BOR1 Raw Interrupt
+                                            // Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_IMC register.
+//
+//*****************************************************************************
+#define SYSCTL_IMC_BOR0IM       0x00000800  // VDD under BOR0 Interrupt Mask
+#define SYSCTL_IMC_VDDAIM       0x00000400  // VDDA Power OK Interrupt Mask
+#define SYSCTL_IMC_MOSCPUPIM    0x00000100  // MOSC Power Up Interrupt Mask
+#define SYSCTL_IMC_USBPLLLIM    0x00000080  // USB PLL Lock Interrupt Mask
+#define SYSCTL_IMC_PLLLIM       0x00000040  // PLL Lock Interrupt Mask
+#define SYSCTL_IMC_MOFIM        0x00000008  // Main Oscillator Failure
+                                            // Interrupt Mask
+#define SYSCTL_IMC_BOR1IM       0x00000002  // VDD under BOR1 Interrupt Mask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_MISC register.
+//
+//*****************************************************************************
+#define SYSCTL_MISC_BOR0MIS     0x00000800  // VDD under BOR0 Masked Interrupt
+                                            // Status
+#define SYSCTL_MISC_VDDAMIS     0x00000400  // VDDA Power OK Masked Interrupt
+                                            // Status
+#define SYSCTL_MISC_MOSCPUPMIS  0x00000100  // MOSC Power Up Masked Interrupt
+                                            // Status
+#define SYSCTL_MISC_USBPLLLMIS  0x00000080  // USB PLL Lock Masked Interrupt
+                                            // Status
+#define SYSCTL_MISC_PLLLMIS     0x00000040  // PLL Lock Masked Interrupt Status
+#define SYSCTL_MISC_MOFMIS      0x00000008  // Main Oscillator Failure Masked
+                                            // Interrupt Status
+#define SYSCTL_MISC_BOR1MIS     0x00000002  // VDD under BOR1 Masked Interrupt
+                                            // Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RESC register.
+//
+//*****************************************************************************
+#define SYSCTL_RESC_MOSCFAIL    0x00010000  // MOSC Failure Reset
+#define SYSCTL_RESC_WDT1        0x00000020  // Watchdog Timer 1 Reset
+#define SYSCTL_RESC_SW          0x00000010  // Software Reset
+#define SYSCTL_RESC_WDT0        0x00000008  // Watchdog Timer 0 Reset
+#define SYSCTL_RESC_BOR         0x00000004  // Brown-Out Reset
+#define SYSCTL_RESC_POR         0x00000002  // Power-On Reset
+#define SYSCTL_RESC_EXT         0x00000001  // External Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCC register.
+//
+//*****************************************************************************
+#define SYSCTL_RCC_ACG          0x08000000  // Auto Clock Gating
+#define SYSCTL_RCC_SYSDIV_M     0x07800000  // System Clock Divisor
+#define SYSCTL_RCC_USESYSDIV    0x00400000  // Enable System Clock Divider
+#define SYSCTL_RCC_USEPWMDIV    0x00100000  // Enable PWM Clock Divisor
+#define SYSCTL_RCC_PWMDIV_M     0x000E0000  // PWM Unit Clock Divisor
+#define SYSCTL_RCC_PWMDIV_2     0x00000000  // PWM clock /2
+#define SYSCTL_RCC_PWMDIV_4     0x00020000  // PWM clock /4
+#define SYSCTL_RCC_PWMDIV_8     0x00040000  // PWM clock /8
+#define SYSCTL_RCC_PWMDIV_16    0x00060000  // PWM clock /16
+#define SYSCTL_RCC_PWMDIV_32    0x00080000  // PWM clock /32
+#define SYSCTL_RCC_PWMDIV_64    0x000A0000  // PWM clock /64
+#define SYSCTL_RCC_PWRDN        0x00002000  // PLL Power Down
+#define SYSCTL_RCC_BYPASS       0x00000800  // PLL Bypass
+#define SYSCTL_RCC_XTAL_M       0x000007C0  // Crystal Value
+#define SYSCTL_RCC_XTAL_4MHZ    0x00000180  // 4 MHz
+#define SYSCTL_RCC_XTAL_4_09MHZ 0x000001C0  // 4.096 MHz
+#define SYSCTL_RCC_XTAL_4_91MHZ 0x00000200  // 4.9152 MHz
+#define SYSCTL_RCC_XTAL_5MHZ    0x00000240  // 5 MHz
+#define SYSCTL_RCC_XTAL_5_12MHZ 0x00000280  // 5.12 MHz
+#define SYSCTL_RCC_XTAL_6MHZ    0x000002C0  // 6 MHz
+#define SYSCTL_RCC_XTAL_6_14MHZ 0x00000300  // 6.144 MHz
+#define SYSCTL_RCC_XTAL_7_37MHZ 0x00000340  // 7.3728 MHz
+#define SYSCTL_RCC_XTAL_8MHZ    0x00000380  // 8 MHz
+#define SYSCTL_RCC_XTAL_8_19MHZ 0x000003C0  // 8.192 MHz
+#define SYSCTL_RCC_XTAL_10MHZ   0x00000400  // 10 MHz
+#define SYSCTL_RCC_XTAL_12MHZ   0x00000440  // 12 MHz
+#define SYSCTL_RCC_XTAL_12_2MHZ 0x00000480  // 12.288 MHz
+#define SYSCTL_RCC_XTAL_13_5MHZ 0x000004C0  // 13.56 MHz
+#define SYSCTL_RCC_XTAL_14_3MHZ 0x00000500  // 14.31818 MHz
+#define SYSCTL_RCC_XTAL_16MHZ   0x00000540  // 16 MHz
+#define SYSCTL_RCC_XTAL_16_3MHZ 0x00000580  // 16.384 MHz
+#define SYSCTL_RCC_XTAL_18MHZ   0x000005C0  // 18.0 MHz (USB)
+#define SYSCTL_RCC_XTAL_20MHZ   0x00000600  // 20.0 MHz (USB)
+#define SYSCTL_RCC_XTAL_24MHZ   0x00000640  // 24.0 MHz (USB)
+#define SYSCTL_RCC_XTAL_25MHZ   0x00000680  // 25.0 MHz (USB)
+#define SYSCTL_RCC_OSCSRC_M     0x00000030  // Oscillator Source
+#define SYSCTL_RCC_OSCSRC_MAIN  0x00000000  // MOSC
+#define SYSCTL_RCC_OSCSRC_INT   0x00000010  // IOSC
+#define SYSCTL_RCC_OSCSRC_INT4  0x00000020  // IOSC/4
+#define SYSCTL_RCC_OSCSRC_30    0x00000030  // LFIOSC
+#define SYSCTL_RCC_MOSCDIS      0x00000001  // Main Oscillator Disable
+#define SYSCTL_RCC_SYSDIV_S     23
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_GPIOHBCTL
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_GPIOHBCTL_PORTJ  0x00000100  // Port J Advanced High-Performance
+                                            // Bus
+#define SYSCTL_GPIOHBCTL_PORTH  0x00000080  // Port H Advanced High-Performance
+                                            // Bus
+#define SYSCTL_GPIOHBCTL_PORTG  0x00000040  // Port G Advanced High-Performance
+                                            // Bus
+#define SYSCTL_GPIOHBCTL_PORTF  0x00000020  // Port F Advanced High-Performance
+                                            // Bus
+#define SYSCTL_GPIOHBCTL_PORTE  0x00000010  // Port E Advanced High-Performance
+                                            // Bus
+#define SYSCTL_GPIOHBCTL_PORTD  0x00000008  // Port D Advanced High-Performance
+                                            // Bus
+#define SYSCTL_GPIOHBCTL_PORTC  0x00000004  // Port C Advanced High-Performance
+                                            // Bus
+#define SYSCTL_GPIOHBCTL_PORTB  0x00000002  // Port B Advanced High-Performance
+                                            // Bus
+#define SYSCTL_GPIOHBCTL_PORTA  0x00000001  // Port A Advanced High-Performance
+                                            // Bus
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCC2 register.
+//
+//*****************************************************************************
+#define SYSCTL_RCC2_USERCC2     0x80000000  // Use RCC2
+#define SYSCTL_RCC2_DIV400      0x40000000  // Divide PLL as 400 MHz vs. 200
+                                            // MHz
+#define SYSCTL_RCC2_SYSDIV2_M   0x1F800000  // System Clock Divisor 2
+#define SYSCTL_RCC2_SYSDIV2LSB  0x00400000  // Additional LSB for SYSDIV2
+#define SYSCTL_RCC2_USBPWRDN    0x00004000  // Power-Down USB PLL
+#define SYSCTL_RCC2_PWRDN2      0x00002000  // Power-Down PLL 2
+#define SYSCTL_RCC2_BYPASS2     0x00000800  // PLL Bypass 2
+#define SYSCTL_RCC2_OSCSRC2_M   0x00000070  // Oscillator Source 2
+#define SYSCTL_RCC2_OSCSRC2_MO  0x00000000  // MOSC
+#define SYSCTL_RCC2_OSCSRC2_IO  0x00000010  // PIOSC
+#define SYSCTL_RCC2_OSCSRC2_IO4 0x00000020  // PIOSC/4
+#define SYSCTL_RCC2_OSCSRC2_30  0x00000030  // LFIOSC
+#define SYSCTL_RCC2_OSCSRC2_32  0x00000070  // 32.768 kHz
+#define SYSCTL_RCC2_SYSDIV2_S   23
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_MOSCCTL register.
+//
+//*****************************************************************************
+#define SYSCTL_MOSCCTL_NOXTAL   0x00000004  // No Crystal Connected
+#define SYSCTL_MOSCCTL_MOSCIM   0x00000002  // MOSC Failure Action
+#define SYSCTL_MOSCCTL_CVAL     0x00000001  // Clock Validation for MOSC
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGC0 register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGC0_WDT1       0x10000000  // WDT1 Clock Gating Control
+#define SYSCTL_RCGC0_CAN1       0x02000000  // CAN1 Clock Gating Control
+#define SYSCTL_RCGC0_CAN0       0x01000000  // CAN0 Clock Gating Control
+#define SYSCTL_RCGC0_PWM0       0x00100000  // PWM Clock Gating Control
+#define SYSCTL_RCGC0_ADC1       0x00020000  // ADC1 Clock Gating Control
+#define SYSCTL_RCGC0_ADC0       0x00010000  // ADC0 Clock Gating Control
+#define SYSCTL_RCGC0_ADC1SPD_M  0x00000C00  // ADC1 Sample Speed
+#define SYSCTL_RCGC0_ADC1SPD_125K                                             \
+                                0x00000000  // 125K samples/second
+#define SYSCTL_RCGC0_ADC1SPD_250K                                             \
+                                0x00000400  // 250K samples/second
+#define SYSCTL_RCGC0_ADC1SPD_500K                                             \
+                                0x00000800  // 500K samples/second
+#define SYSCTL_RCGC0_ADC1SPD_1M 0x00000C00  // 1M samples/second
+#define SYSCTL_RCGC0_ADC0SPD_M  0x00000300  // ADC0 Sample Speed
+#define SYSCTL_RCGC0_ADC0SPD_125K                                             \
+                                0x00000000  // 125K samples/second
+#define SYSCTL_RCGC0_ADC0SPD_250K                                             \
+                                0x00000100  // 250K samples/second
+#define SYSCTL_RCGC0_ADC0SPD_500K                                             \
+                                0x00000200  // 500K samples/second
+#define SYSCTL_RCGC0_ADC0SPD_1M 0x00000300  // 1M samples/second
+#define SYSCTL_RCGC0_HIB        0x00000040  // HIB Clock Gating Control
+#define SYSCTL_RCGC0_WDT0       0x00000008  // WDT0 Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGC1 register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGC1_COMP2      0x04000000  // Analog Comparator 2 Clock Gating
+#define SYSCTL_RCGC1_COMP1      0x02000000  // Analog Comparator 1 Clock Gating
+#define SYSCTL_RCGC1_COMP0      0x01000000  // Analog Comparator 0 Clock Gating
+#define SYSCTL_RCGC1_TIMER3     0x00080000  // Timer 3 Clock Gating Control
+#define SYSCTL_RCGC1_TIMER2     0x00040000  // Timer 2 Clock Gating Control
+#define SYSCTL_RCGC1_TIMER1     0x00020000  // Timer 1 Clock Gating Control
+#define SYSCTL_RCGC1_TIMER0     0x00010000  // Timer 0 Clock Gating Control
+#define SYSCTL_RCGC1_I2C1       0x00004000  // I2C1 Clock Gating Control
+#define SYSCTL_RCGC1_I2C0       0x00001000  // I2C0 Clock Gating Control
+#define SYSCTL_RCGC1_QEI1       0x00000200  // QEI1 Clock Gating Control
+#define SYSCTL_RCGC1_QEI0       0x00000100  // QEI0 Clock Gating Control
+#define SYSCTL_RCGC1_SSI1       0x00000020  // SSI1 Clock Gating Control
+#define SYSCTL_RCGC1_SSI0       0x00000010  // SSI0 Clock Gating Control
+#define SYSCTL_RCGC1_UART2      0x00000004  // UART2 Clock Gating Control
+#define SYSCTL_RCGC1_UART1      0x00000002  // UART1 Clock Gating Control
+#define SYSCTL_RCGC1_UART0      0x00000001  // UART0 Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGC2 register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGC2_USB0       0x00010000  // USB0 Clock Gating Control
+#define SYSCTL_RCGC2_UDMA       0x00002000  // Micro-DMA Clock Gating Control
+#define SYSCTL_RCGC2_GPIOJ      0x00000100  // Port J Clock Gating Control
+#define SYSCTL_RCGC2_GPIOH      0x00000080  // Port H Clock Gating Control
+#define SYSCTL_RCGC2_GPIOG      0x00000040  // Port G Clock Gating Control
+#define SYSCTL_RCGC2_GPIOF      0x00000020  // Port F Clock Gating Control
+#define SYSCTL_RCGC2_GPIOE      0x00000010  // Port E Clock Gating Control
+#define SYSCTL_RCGC2_GPIOD      0x00000008  // Port D Clock Gating Control
+#define SYSCTL_RCGC2_GPIOC      0x00000004  // Port C Clock Gating Control
+#define SYSCTL_RCGC2_GPIOB      0x00000002  // Port B Clock Gating Control
+#define SYSCTL_RCGC2_GPIOA      0x00000001  // Port A Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGC0 register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGC0_WDT1       0x10000000  // WDT1 Clock Gating Control
+#define SYSCTL_SCGC0_CAN1       0x02000000  // CAN1 Clock Gating Control
+#define SYSCTL_SCGC0_CAN0       0x01000000  // CAN0 Clock Gating Control
+#define SYSCTL_SCGC0_PWM0       0x00100000  // PWM Clock Gating Control
+#define SYSCTL_SCGC0_ADC1       0x00020000  // ADC1 Clock Gating Control
+#define SYSCTL_SCGC0_ADC0       0x00010000  // ADC0 Clock Gating Control
+#define SYSCTL_SCGC0_HIB        0x00000040  // HIB Clock Gating Control
+#define SYSCTL_SCGC0_WDT0       0x00000008  // WDT0 Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGC1 register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGC1_COMP2      0x04000000  // Analog Comparator 2 Clock Gating
+#define SYSCTL_SCGC1_COMP1      0x02000000  // Analog Comparator 1 Clock Gating
+#define SYSCTL_SCGC1_COMP0      0x01000000  // Analog Comparator 0 Clock Gating
+#define SYSCTL_SCGC1_TIMER3     0x00080000  // Timer 3 Clock Gating Control
+#define SYSCTL_SCGC1_TIMER2     0x00040000  // Timer 2 Clock Gating Control
+#define SYSCTL_SCGC1_TIMER1     0x00020000  // Timer 1 Clock Gating Control
+#define SYSCTL_SCGC1_TIMER0     0x00010000  // Timer 0 Clock Gating Control
+#define SYSCTL_SCGC1_I2C1       0x00004000  // I2C1 Clock Gating Control
+#define SYSCTL_SCGC1_I2C0       0x00001000  // I2C0 Clock Gating Control
+#define SYSCTL_SCGC1_QEI1       0x00000200  // QEI1 Clock Gating Control
+#define SYSCTL_SCGC1_QEI0       0x00000100  // QEI0 Clock Gating Control
+#define SYSCTL_SCGC1_SSI1       0x00000020  // SSI1 Clock Gating Control
+#define SYSCTL_SCGC1_SSI0       0x00000010  // SSI0 Clock Gating Control
+#define SYSCTL_SCGC1_UART2      0x00000004  // UART2 Clock Gating Control
+#define SYSCTL_SCGC1_UART1      0x00000002  // UART1 Clock Gating Control
+#define SYSCTL_SCGC1_UART0      0x00000001  // UART0 Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGC2 register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGC2_USB0       0x00010000  // USB0 Clock Gating Control
+#define SYSCTL_SCGC2_UDMA       0x00002000  // Micro-DMA Clock Gating Control
+#define SYSCTL_SCGC2_GPIOJ      0x00000100  // Port J Clock Gating Control
+#define SYSCTL_SCGC2_GPIOH      0x00000080  // Port H Clock Gating Control
+#define SYSCTL_SCGC2_GPIOG      0x00000040  // Port G Clock Gating Control
+#define SYSCTL_SCGC2_GPIOF      0x00000020  // Port F Clock Gating Control
+#define SYSCTL_SCGC2_GPIOE      0x00000010  // Port E Clock Gating Control
+#define SYSCTL_SCGC2_GPIOD      0x00000008  // Port D Clock Gating Control
+#define SYSCTL_SCGC2_GPIOC      0x00000004  // Port C Clock Gating Control
+#define SYSCTL_SCGC2_GPIOB      0x00000002  // Port B Clock Gating Control
+#define SYSCTL_SCGC2_GPIOA      0x00000001  // Port A Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGC0 register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGC0_WDT1       0x10000000  // WDT1 Clock Gating Control
+#define SYSCTL_DCGC0_CAN1       0x02000000  // CAN1 Clock Gating Control
+#define SYSCTL_DCGC0_CAN0       0x01000000  // CAN0 Clock Gating Control
+#define SYSCTL_DCGC0_PWM0       0x00100000  // PWM Clock Gating Control
+#define SYSCTL_DCGC0_ADC1       0x00020000  // ADC1 Clock Gating Control
+#define SYSCTL_DCGC0_ADC0       0x00010000  // ADC0 Clock Gating Control
+#define SYSCTL_DCGC0_HIB        0x00000040  // HIB Clock Gating Control
+#define SYSCTL_DCGC0_WDT0       0x00000008  // WDT0 Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGC1 register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGC1_COMP2      0x04000000  // Analog Comparator 2 Clock Gating
+#define SYSCTL_DCGC1_COMP1      0x02000000  // Analog Comparator 1 Clock Gating
+#define SYSCTL_DCGC1_COMP0      0x01000000  // Analog Comparator 0 Clock Gating
+#define SYSCTL_DCGC1_TIMER3     0x00080000  // Timer 3 Clock Gating Control
+#define SYSCTL_DCGC1_TIMER2     0x00040000  // Timer 2 Clock Gating Control
+#define SYSCTL_DCGC1_TIMER1     0x00020000  // Timer 1 Clock Gating Control
+#define SYSCTL_DCGC1_TIMER0     0x00010000  // Timer 0 Clock Gating Control
+#define SYSCTL_DCGC1_I2C1       0x00004000  // I2C1 Clock Gating Control
+#define SYSCTL_DCGC1_I2C0       0x00001000  // I2C0 Clock Gating Control
+#define SYSCTL_DCGC1_QEI1       0x00000200  // QEI1 Clock Gating Control
+#define SYSCTL_DCGC1_QEI0       0x00000100  // QEI0 Clock Gating Control
+#define SYSCTL_DCGC1_SSI1       0x00000020  // SSI1 Clock Gating Control
+#define SYSCTL_DCGC1_SSI0       0x00000010  // SSI0 Clock Gating Control
+#define SYSCTL_DCGC1_UART2      0x00000004  // UART2 Clock Gating Control
+#define SYSCTL_DCGC1_UART1      0x00000002  // UART1 Clock Gating Control
+#define SYSCTL_DCGC1_UART0      0x00000001  // UART0 Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGC2 register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGC2_USB0       0x00010000  // USB0 Clock Gating Control
+#define SYSCTL_DCGC2_UDMA       0x00002000  // Micro-DMA Clock Gating Control
+#define SYSCTL_DCGC2_GPIOJ      0x00000100  // Port J Clock Gating Control
+#define SYSCTL_DCGC2_GPIOH      0x00000080  // Port H Clock Gating Control
+#define SYSCTL_DCGC2_GPIOG      0x00000040  // Port G Clock Gating Control
+#define SYSCTL_DCGC2_GPIOF      0x00000020  // Port F Clock Gating Control
+#define SYSCTL_DCGC2_GPIOE      0x00000010  // Port E Clock Gating Control
+#define SYSCTL_DCGC2_GPIOD      0x00000008  // Port D Clock Gating Control
+#define SYSCTL_DCGC2_GPIOC      0x00000004  // Port C Clock Gating Control
+#define SYSCTL_DCGC2_GPIOB      0x00000002  // Port B Clock Gating Control
+#define SYSCTL_DCGC2_GPIOA      0x00000001  // Port A Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DSLPCLKCFG
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_DSLPCLKCFG_D_M   0x1F800000  // Divider Field Override
+#define SYSCTL_DSLPCLKCFG_O_M   0x00000070  // Clock Source
+#define SYSCTL_DSLPCLKCFG_O_IGN 0x00000000  // MOSC
+#define SYSCTL_DSLPCLKCFG_O_IO  0x00000010  // PIOSC
+#define SYSCTL_DSLPCLKCFG_O_30  0x00000030  // LFIOSC
+#define SYSCTL_DSLPCLKCFG_O_32  0x00000070  // 32.768 kHz
+#define SYSCTL_DSLPCLKCFG_PIOSCPD                                             \
+                                0x00000002  // PIOSC Power Down Request
+#define SYSCTL_DSLPCLKCFG_D_S   23
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SYSPROP register.
+//
+//*****************************************************************************
+#define SYSCTL_SYSPROP_FPU      0x00000001  // FPU Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PIOSCCAL
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_PIOSCCAL_UTEN    0x80000000  // Use User Trim Value
+#define SYSCTL_PIOSCCAL_CAL     0x00000200  // Start Calibration
+#define SYSCTL_PIOSCCAL_UPDATE  0x00000100  // Update Trim
+#define SYSCTL_PIOSCCAL_UT_M    0x0000007F  // User Trim Value
+#define SYSCTL_PIOSCCAL_UT_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PIOSCSTAT
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_PIOSCSTAT_DT_M   0x007F0000  // Default Trim Value
+#define SYSCTL_PIOSCSTAT_CR_M   0x00000300  // Calibration Result
+#define SYSCTL_PIOSCSTAT_CRNONE 0x00000000  // Calibration has not been
+                                            // attempted
+#define SYSCTL_PIOSCSTAT_CRPASS 0x00000100  // The last calibration operation
+                                            // completed to meet 1% accuracy
+#define SYSCTL_PIOSCSTAT_CRFAIL 0x00000200  // The last calibration operation
+                                            // failed to meet 1% accuracy
+#define SYSCTL_PIOSCSTAT_CT_M   0x0000007F  // Calibration Trim Value
+#define SYSCTL_PIOSCSTAT_DT_S   16
+#define SYSCTL_PIOSCSTAT_CT_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PLLFREQ0
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_PLLFREQ0_MFRAC_M 0x000FFC00  // PLL M Fractional Value
+#define SYSCTL_PLLFREQ0_MINT_M  0x000003FF  // PLL M Integer Value
+#define SYSCTL_PLLFREQ0_MFRAC_S 10
+#define SYSCTL_PLLFREQ0_MINT_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PLLFREQ1
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_PLLFREQ1_Q_M     0x00001F00  // PLL Q Value
+#define SYSCTL_PLLFREQ1_N_M     0x0000001F  // PLL N Value
+#define SYSCTL_PLLFREQ1_Q_S     8
+#define SYSCTL_PLLFREQ1_N_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PLLSTAT register.
+//
+//*****************************************************************************
+#define SYSCTL_PLLSTAT_LOCK     0x00000001  // PLL Lock
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SLPPWRCFG
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_SLPPWRCFG_FLASHPM_M                                            \
+                                0x00000030  // Flash Power Modes
+#define SYSCTL_SLPPWRCFG_FLASHPM_NRM                                          \
+                                0x00000000  // Active Mode
+#define SYSCTL_SLPPWRCFG_FLASHPM_SLP                                          \
+                                0x00000020  // Low Power Mode
+#define SYSCTL_SLPPWRCFG_SRAMPM_M                                             \
+                                0x00000003  // SRAM Power Modes
+#define SYSCTL_SLPPWRCFG_SRAMPM_NRM                                           \
+                                0x00000000  // Active Mode
+#define SYSCTL_SLPPWRCFG_SRAMPM_SBY                                           \
+                                0x00000001  // Standby Mode
+#define SYSCTL_SLPPWRCFG_SRAMPM_LP                                            \
+                                0x00000003  // Low Power Mode
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DSLPPWRCFG
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_DSLPPWRCFG_FLASHPM_M                                           \
+                                0x00000030  // Flash Power Modes
+#define SYSCTL_DSLPPWRCFG_FLASHPM_NRM                                         \
+                                0x00000000  // Active Mode
+#define SYSCTL_DSLPPWRCFG_FLASHPM_SLP                                         \
+                                0x00000020  // Low Power Mode
+#define SYSCTL_DSLPPWRCFG_SRAMPM_M                                            \
+                                0x00000003  // SRAM Power Modes
+#define SYSCTL_DSLPPWRCFG_SRAMPM_NRM                                          \
+                                0x00000000  // Active Mode
+#define SYSCTL_DSLPPWRCFG_SRAMPM_SBY                                          \
+                                0x00000001  // Standby Mode
+#define SYSCTL_DSLPPWRCFG_SRAMPM_LP                                           \
+                                0x00000003  // Low Power Mode
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DC9 register.
+//
+//*****************************************************************************
+#define SYSCTL_DC9_ADC1DC7      0x00800000  // ADC1 DC7 Present
+#define SYSCTL_DC9_ADC1DC6      0x00400000  // ADC1 DC6 Present
+#define SYSCTL_DC9_ADC1DC5      0x00200000  // ADC1 DC5 Present
+#define SYSCTL_DC9_ADC1DC4      0x00100000  // ADC1 DC4 Present
+#define SYSCTL_DC9_ADC1DC3      0x00080000  // ADC1 DC3 Present
+#define SYSCTL_DC9_ADC1DC2      0x00040000  // ADC1 DC2 Present
+#define SYSCTL_DC9_ADC1DC1      0x00020000  // ADC1 DC1 Present
+#define SYSCTL_DC9_ADC1DC0      0x00010000  // ADC1 DC0 Present
+#define SYSCTL_DC9_ADC0DC7      0x00000080  // ADC0 DC7 Present
+#define SYSCTL_DC9_ADC0DC6      0x00000040  // ADC0 DC6 Present
+#define SYSCTL_DC9_ADC0DC5      0x00000020  // ADC0 DC5 Present
+#define SYSCTL_DC9_ADC0DC4      0x00000010  // ADC0 DC4 Present
+#define SYSCTL_DC9_ADC0DC3      0x00000008  // ADC0 DC3 Present
+#define SYSCTL_DC9_ADC0DC2      0x00000004  // ADC0 DC2 Present
+#define SYSCTL_DC9_ADC0DC1      0x00000002  // ADC0 DC1 Present
+#define SYSCTL_DC9_ADC0DC0      0x00000001  // ADC0 DC0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_NVMSTAT register.
+//
+//*****************************************************************************
+#define SYSCTL_NVMSTAT_FWB      0x00000001  // 32 Word Flash Write Buffer
+                                            // Available
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_LDOSPCTL
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_LDOSPCTL_VADJEN  0x80000000  // Voltage Adjust Enable
+#define SYSCTL_LDOSPCTL_VLDO_M  0x000000FF  // LDO Output Voltage
+#define SYSCTL_LDOSPCTL_VLDO_0_90V                                            \
+                                0x00000012  // 0.90 V
+#define SYSCTL_LDOSPCTL_VLDO_0_95V                                            \
+                                0x00000013  // 0.95 V
+#define SYSCTL_LDOSPCTL_VLDO_1_00V                                            \
+                                0x00000014  // 1.00 V
+#define SYSCTL_LDOSPCTL_VLDO_1_05V                                            \
+                                0x00000015  // 1.05 V
+#define SYSCTL_LDOSPCTL_VLDO_1_10V                                            \
+                                0x00000016  // 1.10 V
+#define SYSCTL_LDOSPCTL_VLDO_1_15V                                            \
+                                0x00000017  // 1.15 V
+#define SYSCTL_LDOSPCTL_VLDO_1_20V                                            \
+                                0x00000018  // 1.20 V
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_LDODPCTL
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_LDODPCTL_VADJEN  0x80000000  // Voltage Adjust Enable
+#define SYSCTL_LDODPCTL_VLDO_M  0x000000FF  // LDO Output Voltage
+#define SYSCTL_LDODPCTL_VLDO_0_90V                                            \
+                                0x00000012  // 0.90 V
+#define SYSCTL_LDODPCTL_VLDO_0_95V                                            \
+                                0x00000013  // 0.95 V
+#define SYSCTL_LDODPCTL_VLDO_1_00V                                            \
+                                0x00000014  // 1.00 V
+#define SYSCTL_LDODPCTL_VLDO_1_05V                                            \
+                                0x00000015  // 1.05 V
+#define SYSCTL_LDODPCTL_VLDO_1_10V                                            \
+                                0x00000016  // 1.10 V
+#define SYSCTL_LDODPCTL_VLDO_1_15V                                            \
+                                0x00000017  // 1.15 V
+#define SYSCTL_LDODPCTL_VLDO_1_20V                                            \
+                                0x00000018  // 1.20 V
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPWD register.
+//
+//*****************************************************************************
+#define SYSCTL_PPWD_P1          0x00000002  // Watchdog Timer 1 Present
+#define SYSCTL_PPWD_P0          0x00000001  // Watchdog Timer 0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPTIMER register.
+//
+//*****************************************************************************
+#define SYSCTL_PPTIMER_P5       0x00000020  // 16/32-Bit General-Purpose Timer
+                                            // 5 Present
+#define SYSCTL_PPTIMER_P4       0x00000010  // 16/32-Bit General-Purpose Timer
+                                            // 4 Present
+#define SYSCTL_PPTIMER_P3       0x00000008  // 16/32-Bit General-Purpose Timer
+                                            // 3 Present
+#define SYSCTL_PPTIMER_P2       0x00000004  // 16/32-Bit General-Purpose Timer
+                                            // 2 Present
+#define SYSCTL_PPTIMER_P1       0x00000002  // 16/32-Bit General-Purpose Timer
+                                            // 1 Present
+#define SYSCTL_PPTIMER_P0       0x00000001  // 16/32-Bit General-Purpose Timer
+                                            // 0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPGPIO register.
+//
+//*****************************************************************************
+#define SYSCTL_PPGPIO_P14       0x00004000  // GPIO Port Q Present
+#define SYSCTL_PPGPIO_P13       0x00002000  // GPIO Port P Present
+#define SYSCTL_PPGPIO_P12       0x00001000  // GPIO Port N Present
+#define SYSCTL_PPGPIO_P11       0x00000800  // GPIO Port M Present
+#define SYSCTL_PPGPIO_P10       0x00000400  // GPIO Port L Present
+#define SYSCTL_PPGPIO_P9        0x00000200  // GPIO Port K Present
+#define SYSCTL_PPGPIO_P8        0x00000100  // GPIO Port J Present
+#define SYSCTL_PPGPIO_P7        0x00000080  // GPIO Port H Present
+#define SYSCTL_PPGPIO_P6        0x00000040  // GPIO Port G Present
+#define SYSCTL_PPGPIO_P5        0x00000020  // GPIO Port F Present
+#define SYSCTL_PPGPIO_P4        0x00000010  // GPIO Port E Present
+#define SYSCTL_PPGPIO_P3        0x00000008  // GPIO Port D Present
+#define SYSCTL_PPGPIO_P2        0x00000004  // GPIO Port C Present
+#define SYSCTL_PPGPIO_P1        0x00000002  // GPIO Port B Present
+#define SYSCTL_PPGPIO_P0        0x00000001  // GPIO Port A Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPDMA register.
+//
+//*****************************************************************************
+#define SYSCTL_PPDMA_P0         0x00000001  // uDMA Module Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPHIB register.
+//
+//*****************************************************************************
+#define SYSCTL_PPHIB_P0         0x00000001  // Hibernation Module Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPUART register.
+//
+//*****************************************************************************
+#define SYSCTL_PPUART_P7        0x00000080  // UART Module 7 Present
+#define SYSCTL_PPUART_P6        0x00000040  // UART Module 6 Present
+#define SYSCTL_PPUART_P5        0x00000020  // UART Module 5 Present
+#define SYSCTL_PPUART_P4        0x00000010  // UART Module 4 Present
+#define SYSCTL_PPUART_P3        0x00000008  // UART Module 3 Present
+#define SYSCTL_PPUART_P2        0x00000004  // UART Module 2 Present
+#define SYSCTL_PPUART_P1        0x00000002  // UART Module 1 Present
+#define SYSCTL_PPUART_P0        0x00000001  // UART Module 0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPSSI register.
+//
+//*****************************************************************************
+#define SYSCTL_PPSSI_P3         0x00000008  // SSI Module 3 Present
+#define SYSCTL_PPSSI_P2         0x00000004  // SSI Module 2 Present
+#define SYSCTL_PPSSI_P1         0x00000002  // SSI Module 1 Present
+#define SYSCTL_PPSSI_P0         0x00000001  // SSI Module 0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPI2C register.
+//
+//*****************************************************************************
+#define SYSCTL_PPI2C_P5         0x00000020  // I2C Module 5 Present
+#define SYSCTL_PPI2C_P4         0x00000010  // I2C Module 4 Present
+#define SYSCTL_PPI2C_P3         0x00000008  // I2C Module 3 Present
+#define SYSCTL_PPI2C_P2         0x00000004  // I2C Module 2 Present
+#define SYSCTL_PPI2C_P1         0x00000002  // I2C Module 1 Present
+#define SYSCTL_PPI2C_P0         0x00000001  // I2C Module 0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPUSB register.
+//
+//*****************************************************************************
+#define SYSCTL_PPUSB_P0         0x00000001  // USB Module Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPCAN register.
+//
+//*****************************************************************************
+#define SYSCTL_PPCAN_P1         0x00000002  // CAN Module 1 Present
+#define SYSCTL_PPCAN_P0         0x00000001  // CAN Module 0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPADC register.
+//
+//*****************************************************************************
+#define SYSCTL_PPADC_P1         0x00000002  // ADC Module 1 Present
+#define SYSCTL_PPADC_P0         0x00000001  // ADC Module 0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPACMP register.
+//
+//*****************************************************************************
+#define SYSCTL_PPACMP_P0        0x00000001  // Analog Comparator Module Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPPWM register.
+//
+//*****************************************************************************
+#define SYSCTL_PPPWM_P1         0x00000002  // PWM Module 1 Present
+#define SYSCTL_PPPWM_P0         0x00000001  // PWM Module 0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPQEI register.
+//
+//*****************************************************************************
+#define SYSCTL_PPQEI_P1         0x00000002  // QEI Module 1 Present
+#define SYSCTL_PPQEI_P0         0x00000001  // QEI Module 0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPEEPROM
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_PPEEPROM_P0      0x00000001  // EEPROM Module Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PPWTIMER
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_PPWTIMER_P5      0x00000020  // 32/64-Bit Wide General-Purpose
+                                            // Timer 5 Present
+#define SYSCTL_PPWTIMER_P4      0x00000010  // 32/64-Bit Wide General-Purpose
+                                            // Timer 4 Present
+#define SYSCTL_PPWTIMER_P3      0x00000008  // 32/64-Bit Wide General-Purpose
+                                            // Timer 3 Present
+#define SYSCTL_PPWTIMER_P2      0x00000004  // 32/64-Bit Wide General-Purpose
+                                            // Timer 2 Present
+#define SYSCTL_PPWTIMER_P1      0x00000002  // 32/64-Bit Wide General-Purpose
+                                            // Timer 1 Present
+#define SYSCTL_PPWTIMER_P0      0x00000001  // 32/64-Bit Wide General-Purpose
+                                            // Timer 0 Present
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRWD register.
+//
+//*****************************************************************************
+#define SYSCTL_SRWD_R1          0x00000002  // Watchdog Timer 1 Software Reset
+#define SYSCTL_SRWD_R0          0x00000001  // Watchdog Timer 0 Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRTIMER register.
+//
+//*****************************************************************************
+#define SYSCTL_SRTIMER_R5       0x00000020  // 16/32-Bit General-Purpose Timer
+                                            // 5 Software Reset
+#define SYSCTL_SRTIMER_R4       0x00000010  // 16/32-Bit General-Purpose Timer
+                                            // 4 Software Reset
+#define SYSCTL_SRTIMER_R3       0x00000008  // 16/32-Bit General-Purpose Timer
+                                            // 3 Software Reset
+#define SYSCTL_SRTIMER_R2       0x00000004  // 16/32-Bit General-Purpose Timer
+                                            // 2 Software Reset
+#define SYSCTL_SRTIMER_R1       0x00000002  // 16/32-Bit General-Purpose Timer
+                                            // 1 Software Reset
+#define SYSCTL_SRTIMER_R0       0x00000001  // 16/32-Bit General-Purpose Timer
+                                            // 0 Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRGPIO register.
+//
+//*****************************************************************************
+#define SYSCTL_SRGPIO_R9        0x00000200  // GPIO Port K Software Reset
+#define SYSCTL_SRGPIO_R8        0x00000100  // GPIO Port J Software Reset
+#define SYSCTL_SRGPIO_R7        0x00000080  // GPIO Port H Software Reset
+#define SYSCTL_SRGPIO_R6        0x00000040  // GPIO Port G Software Reset
+#define SYSCTL_SRGPIO_R5        0x00000020  // GPIO Port F Software Reset
+#define SYSCTL_SRGPIO_R4        0x00000010  // GPIO Port E Software Reset
+#define SYSCTL_SRGPIO_R3        0x00000008  // GPIO Port D Software Reset
+#define SYSCTL_SRGPIO_R2        0x00000004  // GPIO Port C Software Reset
+#define SYSCTL_SRGPIO_R1        0x00000002  // GPIO Port B Software Reset
+#define SYSCTL_SRGPIO_R0        0x00000001  // GPIO Port A Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRDMA register.
+//
+//*****************************************************************************
+#define SYSCTL_SRDMA_R0         0x00000001  // uDMA Module Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRHIB register.
+//
+//*****************************************************************************
+#define SYSCTL_SRHIB_R0         0x00000001  // Hibernation Module Software
+                                            // Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRUART register.
+//
+//*****************************************************************************
+#define SYSCTL_SRUART_R7        0x00000080  // UART Module 7 Software Reset
+#define SYSCTL_SRUART_R6        0x00000040  // UART Module 6 Software Reset
+#define SYSCTL_SRUART_R5        0x00000020  // UART Module 5 Software Reset
+#define SYSCTL_SRUART_R4        0x00000010  // UART Module 4 Software Reset
+#define SYSCTL_SRUART_R3        0x00000008  // UART Module 3 Software Reset
+#define SYSCTL_SRUART_R2        0x00000004  // UART Module 2 Software Reset
+#define SYSCTL_SRUART_R1        0x00000002  // UART Module 1 Software Reset
+#define SYSCTL_SRUART_R0        0x00000001  // UART Module 0 Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRSSI register.
+//
+//*****************************************************************************
+#define SYSCTL_SRSSI_R3         0x00000008  // SSI Module 3 Software Reset
+#define SYSCTL_SRSSI_R2         0x00000004  // SSI Module 2 Software Reset
+#define SYSCTL_SRSSI_R1         0x00000002  // SSI Module 1 Software Reset
+#define SYSCTL_SRSSI_R0         0x00000001  // SSI Module 0 Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRI2C register.
+//
+//*****************************************************************************
+#define SYSCTL_SRI2C_R5         0x00000020  // I2C Module 5 Software Reset
+#define SYSCTL_SRI2C_R4         0x00000010  // I2C Module 4 Software Reset
+#define SYSCTL_SRI2C_R3         0x00000008  // I2C Module 3 Software Reset
+#define SYSCTL_SRI2C_R2         0x00000004  // I2C Module 2 Software Reset
+#define SYSCTL_SRI2C_R1         0x00000002  // I2C Module 1 Software Reset
+#define SYSCTL_SRI2C_R0         0x00000001  // I2C Module 0 Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRUSB register.
+//
+//*****************************************************************************
+#define SYSCTL_SRUSB_R0         0x00000001  // USB Module Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRCAN register.
+//
+//*****************************************************************************
+#define SYSCTL_SRCAN_R1         0x00000002  // CAN Module 1 Software Reset
+#define SYSCTL_SRCAN_R0         0x00000001  // CAN Module 0 Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRADC register.
+//
+//*****************************************************************************
+#define SYSCTL_SRADC_R1         0x00000002  // ADC Module 1 Software Reset
+#define SYSCTL_SRADC_R0         0x00000001  // ADC Module 0 Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRACMP register.
+//
+//*****************************************************************************
+#define SYSCTL_SRACMP_R0        0x00000001  // Analog Comparator Module 0
+                                            // Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRPWM register.
+//
+//*****************************************************************************
+#define SYSCTL_SRPWM_R1         0x00000002  // PWM Module 1 Software Reset
+#define SYSCTL_SRPWM_R0         0x00000001  // PWM Module 0 Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRQEI register.
+//
+//*****************************************************************************
+#define SYSCTL_SRQEI_R1         0x00000002  // QEI Module 1 Software Reset
+#define SYSCTL_SRQEI_R0         0x00000001  // QEI Module 0 Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SREEPROM
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_SREEPROM_R0      0x00000001  // EEPROM Module Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SRWTIMER
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_SRWTIMER_R5      0x00000020  // 32/64-Bit Wide General-Purpose
+                                            // Timer 5 Software Reset
+#define SYSCTL_SRWTIMER_R4      0x00000010  // 32/64-Bit Wide General-Purpose
+                                            // Timer 4 Software Reset
+#define SYSCTL_SRWTIMER_R3      0x00000008  // 32/64-Bit Wide General-Purpose
+                                            // Timer 3 Software Reset
+#define SYSCTL_SRWTIMER_R2      0x00000004  // 32/64-Bit Wide General-Purpose
+                                            // Timer 2 Software Reset
+#define SYSCTL_SRWTIMER_R1      0x00000002  // 32/64-Bit Wide General-Purpose
+                                            // Timer 1 Software Reset
+#define SYSCTL_SRWTIMER_R0      0x00000001  // 32/64-Bit Wide General-Purpose
+                                            // Timer 0 Software Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCWD register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCWD_R1        0x00000002  // Watchdog Timer 1 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCWD_R0        0x00000001  // Watchdog Timer 0 Run Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCTIMER
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCTIMER_R5     0x00000020  // 16/32-Bit General-Purpose Timer
+                                            // 5 Run Mode Clock Gating Control
+#define SYSCTL_RCGCTIMER_R4     0x00000010  // 16/32-Bit General-Purpose Timer
+                                            // 4 Run Mode Clock Gating Control
+#define SYSCTL_RCGCTIMER_R3     0x00000008  // 16/32-Bit General-Purpose Timer
+                                            // 3 Run Mode Clock Gating Control
+#define SYSCTL_RCGCTIMER_R2     0x00000004  // 16/32-Bit General-Purpose Timer
+                                            // 2 Run Mode Clock Gating Control
+#define SYSCTL_RCGCTIMER_R1     0x00000002  // 16/32-Bit General-Purpose Timer
+                                            // 1 Run Mode Clock Gating Control
+#define SYSCTL_RCGCTIMER_R0     0x00000001  // 16/32-Bit General-Purpose Timer
+                                            // 0 Run Mode Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCGPIO
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCGPIO_R9      0x00000200  // GPIO Port K Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCGPIO_R8      0x00000100  // GPIO Port J Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCGPIO_R7      0x00000080  // GPIO Port H Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCGPIO_R6      0x00000040  // GPIO Port G Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCGPIO_R5      0x00000020  // GPIO Port F Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCGPIO_R4      0x00000010  // GPIO Port E Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCGPIO_R3      0x00000008  // GPIO Port D Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCGPIO_R2      0x00000004  // GPIO Port C Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCGPIO_R1      0x00000002  // GPIO Port B Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCGPIO_R0      0x00000001  // GPIO Port A Run Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCDMA register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCDMA_R0       0x00000001  // uDMA Module Run Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCHIB register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCHIB_R0       0x00000001  // Hibernation Module Run Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCUART
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCUART_R7      0x00000080  // UART Module 7 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCUART_R6      0x00000040  // UART Module 6 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCUART_R5      0x00000020  // UART Module 5 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCUART_R4      0x00000010  // UART Module 4 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCUART_R3      0x00000008  // UART Module 3 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCUART_R2      0x00000004  // UART Module 2 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCUART_R1      0x00000002  // UART Module 1 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCUART_R0      0x00000001  // UART Module 0 Run Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCSSI register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCSSI_R3       0x00000008  // SSI Module 3 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCSSI_R2       0x00000004  // SSI Module 2 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCSSI_R1       0x00000002  // SSI Module 1 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCSSI_R0       0x00000001  // SSI Module 0 Run Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCI2C register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCI2C_R5       0x00000020  // I2C Module 5 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCI2C_R4       0x00000010  // I2C Module 4 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCI2C_R3       0x00000008  // I2C Module 3 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCI2C_R2       0x00000004  // I2C Module 2 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCI2C_R1       0x00000002  // I2C Module 1 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCI2C_R0       0x00000001  // I2C Module 0 Run Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCUSB register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCUSB_R0       0x00000001  // USB Module Run Mode Clock Gating
+                                            // Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCCAN register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCCAN_R1       0x00000002  // CAN Module 1 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCCAN_R0       0x00000001  // CAN Module 0 Run Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCADC register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCADC_R1       0x00000002  // ADC Module 1 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCADC_R0       0x00000001  // ADC Module 0 Run Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCACMP
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCACMP_R0      0x00000001  // Analog Comparator Module 0 Run
+                                            // Mode Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCPWM register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCPWM_R1       0x00000002  // PWM Module 1 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCPWM_R0       0x00000001  // PWM Module 0 Run Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCQEI register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCQEI_R1       0x00000002  // QEI Module 1 Run Mode Clock
+                                            // Gating Control
+#define SYSCTL_RCGCQEI_R0       0x00000001  // QEI Module 0 Run Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCEEPROM
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCEEPROM_R0    0x00000001  // EEPROM Module Run Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_RCGCWTIMER
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_RCGCWTIMER_R5    0x00000020  // 32/64-Bit Wide General-Purpose
+                                            // Timer 5 Run Mode Clock Gating
+                                            // Control
+#define SYSCTL_RCGCWTIMER_R4    0x00000010  // 32/64-Bit Wide General-Purpose
+                                            // Timer 4 Run Mode Clock Gating
+                                            // Control
+#define SYSCTL_RCGCWTIMER_R3    0x00000008  // 32/64-Bit Wide General-Purpose
+                                            // Timer 3 Run Mode Clock Gating
+                                            // Control
+#define SYSCTL_RCGCWTIMER_R2    0x00000004  // 32/64-Bit Wide General-Purpose
+                                            // Timer 2 Run Mode Clock Gating
+                                            // Control
+#define SYSCTL_RCGCWTIMER_R1    0x00000002  // 32/64-Bit Wide General-Purpose
+                                            // Timer 1 Run Mode Clock Gating
+                                            // Control
+#define SYSCTL_RCGCWTIMER_R0    0x00000001  // 32/64-Bit Wide General-Purpose
+                                            // Timer 0 Run Mode Clock Gating
+                                            // Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCWD register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCWD_S1        0x00000002  // Watchdog Timer 1 Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_SCGCWD_S0        0x00000001  // Watchdog Timer 0 Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCTIMER
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCTIMER_S5     0x00000020  // 16/32-Bit General-Purpose Timer
+                                            // 5 Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_SCGCTIMER_S4     0x00000010  // 16/32-Bit General-Purpose Timer
+                                            // 4 Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_SCGCTIMER_S3     0x00000008  // 16/32-Bit General-Purpose Timer
+                                            // 3 Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_SCGCTIMER_S2     0x00000004  // 16/32-Bit General-Purpose Timer
+                                            // 2 Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_SCGCTIMER_S1     0x00000002  // 16/32-Bit General-Purpose Timer
+                                            // 1 Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_SCGCTIMER_S0     0x00000001  // 16/32-Bit General-Purpose Timer
+                                            // 0 Sleep Mode Clock Gating
+                                            // Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCGPIO
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCGPIO_S9      0x00000200  // GPIO Port K Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCGPIO_S8      0x00000100  // GPIO Port J Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCGPIO_S7      0x00000080  // GPIO Port H Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCGPIO_S6      0x00000040  // GPIO Port G Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCGPIO_S5      0x00000020  // GPIO Port F Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCGPIO_S4      0x00000010  // GPIO Port E Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCGPIO_S3      0x00000008  // GPIO Port D Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCGPIO_S2      0x00000004  // GPIO Port C Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCGPIO_S1      0x00000002  // GPIO Port B Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCGPIO_S0      0x00000001  // GPIO Port A Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCDMA register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCDMA_S0       0x00000001  // uDMA Module Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCHIB register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCHIB_S0       0x00000001  // Hibernation Module Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCUART
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCUART_S7      0x00000080  // UART Module 7 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCUART_S6      0x00000040  // UART Module 6 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCUART_S5      0x00000020  // UART Module 5 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCUART_S4      0x00000010  // UART Module 4 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCUART_S3      0x00000008  // UART Module 3 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCUART_S2      0x00000004  // UART Module 2 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCUART_S1      0x00000002  // UART Module 1 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCUART_S0      0x00000001  // UART Module 0 Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCSSI register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCSSI_S3       0x00000008  // SSI Module 3 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCSSI_S2       0x00000004  // SSI Module 2 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCSSI_S1       0x00000002  // SSI Module 1 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCSSI_S0       0x00000001  // SSI Module 0 Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCI2C register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCI2C_S5       0x00000020  // I2C Module 5 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCI2C_S4       0x00000010  // I2C Module 4 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCI2C_S3       0x00000008  // I2C Module 3 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCI2C_S2       0x00000004  // I2C Module 2 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCI2C_S1       0x00000002  // I2C Module 1 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCI2C_S0       0x00000001  // I2C Module 0 Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCUSB register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCUSB_S0       0x00000001  // USB Module Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCCAN register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCCAN_S1       0x00000002  // CAN Module 1 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCCAN_S0       0x00000001  // CAN Module 0 Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCADC register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCADC_S1       0x00000002  // ADC Module 1 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCADC_S0       0x00000001  // ADC Module 0 Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCACMP
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCACMP_S0      0x00000001  // Analog Comparator Module 0 Sleep
+                                            // Mode Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCPWM register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCPWM_S1       0x00000002  // PWM Module 1 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCPWM_S0       0x00000001  // PWM Module 0 Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCQEI register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCQEI_S1       0x00000002  // QEI Module 1 Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_SCGCQEI_S0       0x00000001  // QEI Module 0 Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCEEPROM
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCEEPROM_S0    0x00000001  // EEPROM Module Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_SCGCWTIMER
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_SCGCWTIMER_S5    0x00000020  // 32/64-Bit Wide General-Purpose
+                                            // Timer 5 Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_SCGCWTIMER_S4    0x00000010  // 32/64-Bit Wide General-Purpose
+                                            // Timer 4 Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_SCGCWTIMER_S3    0x00000008  // 32/64-Bit Wide General-Purpose
+                                            // Timer 3 Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_SCGCWTIMER_S2    0x00000004  // 32/64-Bit Wide General-Purpose
+                                            // Timer 2 Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_SCGCWTIMER_S1    0x00000002  // 32/64-Bit Wide General-Purpose
+                                            // Timer 1 Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_SCGCWTIMER_S0    0x00000001  // 32/64-Bit Wide General-Purpose
+                                            // Timer 0 Sleep Mode Clock Gating
+                                            // Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCWD register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCWD_D1        0x00000002  // Watchdog Timer 1 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCWD_D0        0x00000001  // Watchdog Timer 0 Deep-Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCTIMER
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCTIMER_D5     0x00000020  // 16/32-Bit General-Purpose Timer
+                                            // 5 Deep-Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_DCGCTIMER_D4     0x00000010  // 16/32-Bit General-Purpose Timer
+                                            // 4 Deep-Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_DCGCTIMER_D3     0x00000008  // 16/32-Bit General-Purpose Timer
+                                            // 3 Deep-Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_DCGCTIMER_D2     0x00000004  // 16/32-Bit General-Purpose Timer
+                                            // 2 Deep-Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_DCGCTIMER_D1     0x00000002  // 16/32-Bit General-Purpose Timer
+                                            // 1 Deep-Sleep Mode Clock Gating
+                                            // Control
+#define SYSCTL_DCGCTIMER_D0     0x00000001  // 16/32-Bit General-Purpose Timer
+                                            // 0 Deep-Sleep Mode Clock Gating
+                                            // Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCGPIO
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCGPIO_D9      0x00000200  // GPIO Port K Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCGPIO_D8      0x00000100  // GPIO Port J Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCGPIO_D7      0x00000080  // GPIO Port H Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCGPIO_D6      0x00000040  // GPIO Port G Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCGPIO_D5      0x00000020  // GPIO Port F Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCGPIO_D4      0x00000010  // GPIO Port E Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCGPIO_D3      0x00000008  // GPIO Port D Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCGPIO_D2      0x00000004  // GPIO Port C Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCGPIO_D1      0x00000002  // GPIO Port B Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCGPIO_D0      0x00000001  // GPIO Port A Deep-Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCDMA register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCDMA_D0       0x00000001  // uDMA Module Deep-Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCHIB register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCHIB_D0       0x00000001  // Hibernation Module Deep-Sleep
+                                            // Mode Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCUART
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCUART_D7      0x00000080  // UART Module 7 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCUART_D6      0x00000040  // UART Module 6 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCUART_D5      0x00000020  // UART Module 5 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCUART_D4      0x00000010  // UART Module 4 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCUART_D3      0x00000008  // UART Module 3 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCUART_D2      0x00000004  // UART Module 2 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCUART_D1      0x00000002  // UART Module 1 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCUART_D0      0x00000001  // UART Module 0 Deep-Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCSSI register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCSSI_D3       0x00000008  // SSI Module 3 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCSSI_D2       0x00000004  // SSI Module 2 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCSSI_D1       0x00000002  // SSI Module 1 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCSSI_D0       0x00000001  // SSI Module 0 Deep-Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCI2C register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCI2C_D5       0x00000020  // I2C Module 5 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCI2C_D4       0x00000010  // I2C Module 4 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCI2C_D3       0x00000008  // I2C Module 3 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCI2C_D2       0x00000004  // I2C Module 2 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCI2C_D1       0x00000002  // I2C Module 1 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCI2C_D0       0x00000001  // I2C Module 0 Deep-Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCUSB register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCUSB_D0       0x00000001  // USB Module Deep-Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCCAN register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCCAN_D1       0x00000002  // CAN Module 1 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCCAN_D0       0x00000001  // CAN Module 0 Deep-Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCADC register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCADC_D1       0x00000002  // ADC Module 1 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCADC_D0       0x00000001  // ADC Module 0 Deep-Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCACMP
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCACMP_D0      0x00000001  // Analog Comparator Module 0
+                                            // Deep-Sleep Mode Clock Gating
+                                            // Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCPWM register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCPWM_D1       0x00000002  // PWM Module 1 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCPWM_D0       0x00000001  // PWM Module 0 Deep-Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCQEI register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCQEI_D1       0x00000002  // QEI Module 1 Deep-Sleep Mode
+                                            // Clock Gating Control
+#define SYSCTL_DCGCQEI_D0       0x00000001  // QEI Module 0 Deep-Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCEEPROM
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCEEPROM_D0    0x00000001  // EEPROM Module Deep-Sleep Mode
+                                            // Clock Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_DCGCWTIMER
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_DCGCWTIMER_D5    0x00000020  // 32/64-Bit Wide General-Purpose
+                                            // Timer 5 Deep-Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_DCGCWTIMER_D4    0x00000010  // 32/64-Bit Wide General-Purpose
+                                            // Timer 4 Deep-Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_DCGCWTIMER_D3    0x00000008  // 32/64-Bit Wide General-Purpose
+                                            // Timer 3 Deep-Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_DCGCWTIMER_D2    0x00000004  // 32/64-Bit Wide General-Purpose
+                                            // Timer 2 Deep-Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_DCGCWTIMER_D1    0x00000002  // 32/64-Bit Wide General-Purpose
+                                            // Timer 1 Deep-Sleep Mode Clock
+                                            // Gating Control
+#define SYSCTL_DCGCWTIMER_D0    0x00000001  // 32/64-Bit Wide General-Purpose
+                                            // Timer 0 Deep-Sleep Mode Clock
+                                            // Gating Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRWD register.
+//
+//*****************************************************************************
+#define SYSCTL_PRWD_R1          0x00000002  // Watchdog Timer 1 Peripheral
+                                            // Ready
+#define SYSCTL_PRWD_R0          0x00000001  // Watchdog Timer 0 Peripheral
+                                            // Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRTIMER register.
+//
+//*****************************************************************************
+#define SYSCTL_PRTIMER_R5       0x00000020  // 16/32-Bit General-Purpose Timer
+                                            // 5 Peripheral Ready
+#define SYSCTL_PRTIMER_R4       0x00000010  // 16/32-Bit General-Purpose Timer
+                                            // 4 Peripheral Ready
+#define SYSCTL_PRTIMER_R3       0x00000008  // 16/32-Bit General-Purpose Timer
+                                            // 3 Peripheral Ready
+#define SYSCTL_PRTIMER_R2       0x00000004  // 16/32-Bit General-Purpose Timer
+                                            // 2 Peripheral Ready
+#define SYSCTL_PRTIMER_R1       0x00000002  // 16/32-Bit General-Purpose Timer
+                                            // 1 Peripheral Ready
+#define SYSCTL_PRTIMER_R0       0x00000001  // 16/32-Bit General-Purpose Timer
+                                            // 0 Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRGPIO register.
+//
+//*****************************************************************************
+#define SYSCTL_PRGPIO_R9        0x00000200  // GPIO Port K Peripheral Ready
+#define SYSCTL_PRGPIO_R8        0x00000100  // GPIO Port J Peripheral Ready
+#define SYSCTL_PRGPIO_R7        0x00000080  // GPIO Port H Peripheral Ready
+#define SYSCTL_PRGPIO_R6        0x00000040  // GPIO Port G Peripheral Ready
+#define SYSCTL_PRGPIO_R5        0x00000020  // GPIO Port F Peripheral Ready
+#define SYSCTL_PRGPIO_R4        0x00000010  // GPIO Port E Peripheral Ready
+#define SYSCTL_PRGPIO_R3        0x00000008  // GPIO Port D Peripheral Ready
+#define SYSCTL_PRGPIO_R2        0x00000004  // GPIO Port C Peripheral Ready
+#define SYSCTL_PRGPIO_R1        0x00000002  // GPIO Port B Peripheral Ready
+#define SYSCTL_PRGPIO_R0        0x00000001  // GPIO Port A Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRDMA register.
+//
+//*****************************************************************************
+#define SYSCTL_PRDMA_R0         0x00000001  // uDMA Module Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRHIB register.
+//
+//*****************************************************************************
+#define SYSCTL_PRHIB_R0         0x00000001  // Hibernation Module Peripheral
+                                            // Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRUART register.
+//
+//*****************************************************************************
+#define SYSCTL_PRUART_R7        0x00000080  // UART Module 7 Peripheral Ready
+#define SYSCTL_PRUART_R6        0x00000040  // UART Module 6 Peripheral Ready
+#define SYSCTL_PRUART_R5        0x00000020  // UART Module 5 Peripheral Ready
+#define SYSCTL_PRUART_R4        0x00000010  // UART Module 4 Peripheral Ready
+#define SYSCTL_PRUART_R3        0x00000008  // UART Module 3 Peripheral Ready
+#define SYSCTL_PRUART_R2        0x00000004  // UART Module 2 Peripheral Ready
+#define SYSCTL_PRUART_R1        0x00000002  // UART Module 1 Peripheral Ready
+#define SYSCTL_PRUART_R0        0x00000001  // UART Module 0 Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRSSI register.
+//
+//*****************************************************************************
+#define SYSCTL_PRSSI_R3         0x00000008  // SSI Module 3 Peripheral Ready
+#define SYSCTL_PRSSI_R2         0x00000004  // SSI Module 2 Peripheral Ready
+#define SYSCTL_PRSSI_R1         0x00000002  // SSI Module 1 Peripheral Ready
+#define SYSCTL_PRSSI_R0         0x00000001  // SSI Module 0 Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRI2C register.
+//
+//*****************************************************************************
+#define SYSCTL_PRI2C_R5         0x00000020  // I2C Module 5 Peripheral Ready
+#define SYSCTL_PRI2C_R4         0x00000010  // I2C Module 4 Peripheral Ready
+#define SYSCTL_PRI2C_R3         0x00000008  // I2C Module 3 Peripheral Ready
+#define SYSCTL_PRI2C_R2         0x00000004  // I2C Module 2 Peripheral Ready
+#define SYSCTL_PRI2C_R1         0x00000002  // I2C Module 1 Peripheral Ready
+#define SYSCTL_PRI2C_R0         0x00000001  // I2C Module 0 Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRUSB register.
+//
+//*****************************************************************************
+#define SYSCTL_PRUSB_R0         0x00000001  // USB Module Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRCAN register.
+//
+//*****************************************************************************
+#define SYSCTL_PRCAN_R1         0x00000002  // CAN Module 1 Peripheral Ready
+#define SYSCTL_PRCAN_R0         0x00000001  // CAN Module 0 Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRADC register.
+//
+//*****************************************************************************
+#define SYSCTL_PRADC_R1         0x00000002  // ADC Module 1 Peripheral Ready
+#define SYSCTL_PRADC_R0         0x00000001  // ADC Module 0 Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRACMP register.
+//
+//*****************************************************************************
+#define SYSCTL_PRACMP_R0        0x00000001  // Analog Comparator Module 0
+                                            // Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRPWM register.
+//
+//*****************************************************************************
+#define SYSCTL_PRPWM_R1         0x00000002  // PWM Module 1 Peripheral Ready
+#define SYSCTL_PRPWM_R0         0x00000001  // PWM Module 0 Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRQEI register.
+//
+//*****************************************************************************
+#define SYSCTL_PRQEI_R1         0x00000002  // QEI Module 1 Peripheral Ready
+#define SYSCTL_PRQEI_R0         0x00000001  // QEI Module 0 Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PREEPROM
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_PREEPROM_R0      0x00000001  // EEPROM Module Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the SYSCTL_PRWTIMER
+// register.
+//
+//*****************************************************************************
+#define SYSCTL_PRWTIMER_R5      0x00000020  // 32/64-Bit Wide General-Purpose
+                                            // Timer 5 Peripheral Ready
+#define SYSCTL_PRWTIMER_R4      0x00000010  // 32/64-Bit Wide General-Purpose
+                                            // Timer 4 Peripheral Ready
+#define SYSCTL_PRWTIMER_R3      0x00000008  // 32/64-Bit Wide General-Purpose
+                                            // Timer 3 Peripheral Ready
+#define SYSCTL_PRWTIMER_R2      0x00000004  // 32/64-Bit Wide General-Purpose
+                                            // Timer 2 Peripheral Ready
+#define SYSCTL_PRWTIMER_R1      0x00000002  // 32/64-Bit Wide General-Purpose
+                                            // Timer 1 Peripheral Ready
+#define SYSCTL_PRWTIMER_R0      0x00000001  // 32/64-Bit Wide General-Purpose
+                                            // Timer 0 Peripheral Ready
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_STAT register.
+//
+//*****************************************************************************
+#define UDMA_STAT_DMACHANS_M    0x001F0000  // Available uDMA Channels Minus 1
+#define UDMA_STAT_STATE_M       0x000000F0  // Control State Machine Status
+#define UDMA_STAT_STATE_IDLE    0x00000000  // Idle
+#define UDMA_STAT_STATE_RD_CTRL 0x00000010  // Reading channel controller data
+#define UDMA_STAT_STATE_RD_SRCENDP                                            \
+                                0x00000020  // Reading source end pointer
+#define UDMA_STAT_STATE_RD_DSTENDP                                            \
+                                0x00000030  // Reading destination end pointer
+#define UDMA_STAT_STATE_RD_SRCDAT                                             \
+                                0x00000040  // Reading source data
+#define UDMA_STAT_STATE_WR_DSTDAT                                             \
+                                0x00000050  // Writing destination data
+#define UDMA_STAT_STATE_WAIT    0x00000060  // Waiting for uDMA request to
+                                            // clear
+#define UDMA_STAT_STATE_WR_CTRL 0x00000070  // Writing channel controller data
+#define UDMA_STAT_STATE_STALL   0x00000080  // Stalled
+#define UDMA_STAT_STATE_DONE    0x00000090  // Done
+#define UDMA_STAT_STATE_UNDEF   0x000000A0  // Undefined
+#define UDMA_STAT_MASTEN        0x00000001  // Master Enable Status
+#define UDMA_STAT_DMACHANS_S    16
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_CFG register.
+//
+//*****************************************************************************
+#define UDMA_CFG_MASTEN         0x00000001  // Controller Master Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_CTLBASE register.
+//
+//*****************************************************************************
+#define UDMA_CTLBASE_ADDR_M     0xFFFFFC00  // Channel Control Base Address
+#define UDMA_CTLBASE_ADDR_S     10
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_ALTBASE register.
+//
+//*****************************************************************************
+#define UDMA_ALTBASE_ADDR_M     0xFFFFFFFF  // Alternate Channel Address
+                                            // Pointer
+#define UDMA_ALTBASE_ADDR_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_WAITSTAT register.
+//
+//*****************************************************************************
+#define UDMA_WAITSTAT_WAITREQ_M 0xFFFFFFFF  // Channel [n] Wait Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_SWREQ register.
+//
+//*****************************************************************************
+#define UDMA_SWREQ_M            0xFFFFFFFF  // Channel [n] Software Request
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_USEBURSTSET
+// register.
+//
+//*****************************************************************************
+#define UDMA_USEBURSTSET_SET_M  0xFFFFFFFF  // Channel [n] Useburst Set
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_USEBURSTCLR
+// register.
+//
+//*****************************************************************************
+#define UDMA_USEBURSTCLR_CLR_M  0xFFFFFFFF  // Channel [n] Useburst Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_REQMASKSET
+// register.
+//
+//*****************************************************************************
+#define UDMA_REQMASKSET_SET_M   0xFFFFFFFF  // Channel [n] Request Mask Set
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_REQMASKCLR
+// register.
+//
+//*****************************************************************************
+#define UDMA_REQMASKCLR_CLR_M   0xFFFFFFFF  // Channel [n] Request Mask Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_ENASET register.
+//
+//*****************************************************************************
+#define UDMA_ENASET_SET_M       0xFFFFFFFF  // Channel [n] Enable Set
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_ENACLR register.
+//
+//*****************************************************************************
+#define UDMA_ENACLR_CLR_M       0xFFFFFFFF  // Clear Channel [n] Enable Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_ALTSET register.
+//
+//*****************************************************************************
+#define UDMA_ALTSET_SET_M       0xFFFFFFFF  // Channel [n] Alternate Set
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_ALTCLR register.
+//
+//*****************************************************************************
+#define UDMA_ALTCLR_CLR_M       0xFFFFFFFF  // Channel [n] Alternate Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_PRIOSET register.
+//
+//*****************************************************************************
+#define UDMA_PRIOSET_SET_M      0xFFFFFFFF  // Channel [n] Priority Set
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_PRIOCLR register.
+//
+//*****************************************************************************
+#define UDMA_PRIOCLR_CLR_M      0xFFFFFFFF  // Channel [n] Priority Clear
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_ERRCLR register.
+//
+//*****************************************************************************
+#define UDMA_ERRCLR_ERRCLR      0x00000001  // uDMA Bus Error Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_CHASGN register.
+//
+//*****************************************************************************
+#define UDMA_CHASGN_M           0xFFFFFFFF  // Channel [n] Assignment Select
+#define UDMA_CHASGN_PRIMARY     0x00000000  // Use the primary channel
+                                            // assignment
+#define UDMA_CHASGN_SECONDARY   0x00000001  // Use the secondary channel
+                                            // assignment
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_CHIS register.
+//
+//*****************************************************************************
+#define UDMA_CHIS_M             0xFFFFFFFF  // Channel [n] Interrupt Status
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_CHMAP0 register.
+//
+//*****************************************************************************
+#define UDMA_CHMAP0_CH7SEL_M    0xF0000000  // uDMA Channel 7 Source Select
+#define UDMA_CHMAP0_CH6SEL_M    0x0F000000  // uDMA Channel 6 Source Select
+#define UDMA_CHMAP0_CH5SEL_M    0x00F00000  // uDMA Channel 5 Source Select
+#define UDMA_CHMAP0_CH4SEL_M    0x000F0000  // uDMA Channel 4 Source Select
+#define UDMA_CHMAP0_CH3SEL_M    0x0000F000  // uDMA Channel 3 Source Select
+#define UDMA_CHMAP0_CH2SEL_M    0x00000F00  // uDMA Channel 2 Source Select
+#define UDMA_CHMAP0_CH1SEL_M    0x000000F0  // uDMA Channel 1 Source Select
+#define UDMA_CHMAP0_CH0SEL_M    0x0000000F  // uDMA Channel 0 Source Select
+#define UDMA_CHMAP0_CH7SEL_S    28
+#define UDMA_CHMAP0_CH6SEL_S    24
+#define UDMA_CHMAP0_CH5SEL_S    20
+#define UDMA_CHMAP0_CH4SEL_S    16
+#define UDMA_CHMAP0_CH3SEL_S    12
+#define UDMA_CHMAP0_CH2SEL_S    8
+#define UDMA_CHMAP0_CH1SEL_S    4
+#define UDMA_CHMAP0_CH0SEL_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_CHMAP1 register.
+//
+//*****************************************************************************
+#define UDMA_CHMAP1_CH15SEL_M   0xF0000000  // uDMA Channel 15 Source Select
+#define UDMA_CHMAP1_CH14SEL_M   0x0F000000  // uDMA Channel 14 Source Select
+#define UDMA_CHMAP1_CH13SEL_M   0x00F00000  // uDMA Channel 13 Source Select
+#define UDMA_CHMAP1_CH12SEL_M   0x000F0000  // uDMA Channel 12 Source Select
+#define UDMA_CHMAP1_CH11SEL_M   0x0000F000  // uDMA Channel 11 Source Select
+#define UDMA_CHMAP1_CH10SEL_M   0x00000F00  // uDMA Channel 10 Source Select
+#define UDMA_CHMAP1_CH9SEL_M    0x000000F0  // uDMA Channel 9 Source Select
+#define UDMA_CHMAP1_CH8SEL_M    0x0000000F  // uDMA Channel 8 Source Select
+#define UDMA_CHMAP1_CH15SEL_S   28
+#define UDMA_CHMAP1_CH14SEL_S   24
+#define UDMA_CHMAP1_CH13SEL_S   20
+#define UDMA_CHMAP1_CH12SEL_S   16
+#define UDMA_CHMAP1_CH11SEL_S   12
+#define UDMA_CHMAP1_CH10SEL_S   8
+#define UDMA_CHMAP1_CH9SEL_S    4
+#define UDMA_CHMAP1_CH8SEL_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_CHMAP2 register.
+//
+//*****************************************************************************
+#define UDMA_CHMAP2_CH23SEL_M   0xF0000000  // uDMA Channel 23 Source Select
+#define UDMA_CHMAP2_CH22SEL_M   0x0F000000  // uDMA Channel 22 Source Select
+#define UDMA_CHMAP2_CH21SEL_M   0x00F00000  // uDMA Channel 21 Source Select
+#define UDMA_CHMAP2_CH20SEL_M   0x000F0000  // uDMA Channel 20 Source Select
+#define UDMA_CHMAP2_CH19SEL_M   0x0000F000  // uDMA Channel 19 Source Select
+#define UDMA_CHMAP2_CH18SEL_M   0x00000F00  // uDMA Channel 18 Source Select
+#define UDMA_CHMAP2_CH17SEL_M   0x000000F0  // uDMA Channel 17 Source Select
+#define UDMA_CHMAP2_CH16SEL_M   0x0000000F  // uDMA Channel 16 Source Select
+#define UDMA_CHMAP2_CH23SEL_S   28
+#define UDMA_CHMAP2_CH22SEL_S   24
+#define UDMA_CHMAP2_CH21SEL_S   20
+#define UDMA_CHMAP2_CH20SEL_S   16
+#define UDMA_CHMAP2_CH19SEL_S   12
+#define UDMA_CHMAP2_CH18SEL_S   8
+#define UDMA_CHMAP2_CH17SEL_S   4
+#define UDMA_CHMAP2_CH16SEL_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_CHMAP3 register.
+//
+//*****************************************************************************
+#define UDMA_CHMAP3_CH31SEL_M   0xF0000000  // uDMA Channel 31 Source Select
+#define UDMA_CHMAP3_CH30SEL_M   0x0F000000  // uDMA Channel 30 Source Select
+#define UDMA_CHMAP3_CH29SEL_M   0x00F00000  // uDMA Channel 29 Source Select
+#define UDMA_CHMAP3_CH28SEL_M   0x000F0000  // uDMA Channel 28 Source Select
+#define UDMA_CHMAP3_CH27SEL_M   0x0000F000  // uDMA Channel 27 Source Select
+#define UDMA_CHMAP3_CH26SEL_M   0x00000F00  // uDMA Channel 26 Source Select
+#define UDMA_CHMAP3_CH25SEL_M   0x000000F0  // uDMA Channel 25 Source Select
+#define UDMA_CHMAP3_CH24SEL_M   0x0000000F  // uDMA Channel 24 Source Select
+#define UDMA_CHMAP3_CH31SEL_S   28
+#define UDMA_CHMAP3_CH30SEL_S   24
+#define UDMA_CHMAP3_CH29SEL_S   20
+#define UDMA_CHMAP3_CH28SEL_S   16
+#define UDMA_CHMAP3_CH27SEL_S   12
+#define UDMA_CHMAP3_CH26SEL_S   8
+#define UDMA_CHMAP3_CH25SEL_S   4
+#define UDMA_CHMAP3_CH24SEL_S   0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_O_SRCENDP register.
+//
+//*****************************************************************************
+#define UDMA_SRCENDP_ADDR_M     0xFFFFFFFF  // Source Address End Pointer
+#define UDMA_SRCENDP_ADDR_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_O_DSTENDP register.
+//
+//*****************************************************************************
+#define UDMA_DSTENDP_ADDR_M     0xFFFFFFFF  // Destination Address End Pointer
+#define UDMA_DSTENDP_ADDR_S     0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the UDMA_O_CHCTL register.
+//
+//*****************************************************************************
+#define UDMA_CHCTL_DSTINC_M     0xC0000000  // Destination Address Increment
+#define UDMA_CHCTL_DSTINC_8     0x00000000  // Byte
+#define UDMA_CHCTL_DSTINC_16    0x40000000  // Half-word
+#define UDMA_CHCTL_DSTINC_32    0x80000000  // Word
+#define UDMA_CHCTL_DSTINC_NONE  0xC0000000  // No increment
+#define UDMA_CHCTL_DSTSIZE_M    0x30000000  // Destination Data Size
+#define UDMA_CHCTL_DSTSIZE_8    0x00000000  // Byte
+#define UDMA_CHCTL_DSTSIZE_16   0x10000000  // Half-word
+#define UDMA_CHCTL_DSTSIZE_32   0x20000000  // Word
+#define UDMA_CHCTL_SRCINC_M     0x0C000000  // Source Address Increment
+#define UDMA_CHCTL_SRCINC_8     0x00000000  // Byte
+#define UDMA_CHCTL_SRCINC_16    0x04000000  // Half-word
+#define UDMA_CHCTL_SRCINC_32    0x08000000  // Word
+#define UDMA_CHCTL_SRCINC_NONE  0x0C000000  // No increment
+#define UDMA_CHCTL_SRCSIZE_M    0x03000000  // Source Data Size
+#define UDMA_CHCTL_SRCSIZE_8    0x00000000  // Byte
+#define UDMA_CHCTL_SRCSIZE_16   0x01000000  // Half-word
+#define UDMA_CHCTL_SRCSIZE_32   0x02000000  // Word
+#define UDMA_CHCTL_ARBSIZE_M    0x0003C000  // Arbitration Size
+#define UDMA_CHCTL_ARBSIZE_1    0x00000000  // 1 Transfer
+#define UDMA_CHCTL_ARBSIZE_2    0x00004000  // 2 Transfers
+#define UDMA_CHCTL_ARBSIZE_4    0x00008000  // 4 Transfers
+#define UDMA_CHCTL_ARBSIZE_8    0x0000C000  // 8 Transfers
+#define UDMA_CHCTL_ARBSIZE_16   0x00010000  // 16 Transfers
+#define UDMA_CHCTL_ARBSIZE_32   0x00014000  // 32 Transfers
+#define UDMA_CHCTL_ARBSIZE_64   0x00018000  // 64 Transfers
+#define UDMA_CHCTL_ARBSIZE_128  0x0001C000  // 128 Transfers
+#define UDMA_CHCTL_ARBSIZE_256  0x00020000  // 256 Transfers
+#define UDMA_CHCTL_ARBSIZE_512  0x00024000  // 512 Transfers
+#define UDMA_CHCTL_ARBSIZE_1024 0x00028000  // 1024 Transfers
+#define UDMA_CHCTL_XFERSIZE_M   0x00003FF0  // Transfer Size (minus 1)
+#define UDMA_CHCTL_NXTUSEBURST  0x00000008  // Next Useburst
+#define UDMA_CHCTL_XFERMODE_M   0x00000007  // uDMA Transfer Mode
+#define UDMA_CHCTL_XFERMODE_STOP                                              \
+                                0x00000000  // Stop
+#define UDMA_CHCTL_XFERMODE_BASIC                                             \
+                                0x00000001  // Basic
+#define UDMA_CHCTL_XFERMODE_AUTO                                              \
+                                0x00000002  // Auto-Request
+#define UDMA_CHCTL_XFERMODE_PINGPONG                                          \
+                                0x00000003  // Ping-Pong
+#define UDMA_CHCTL_XFERMODE_MEM_SG                                            \
+                                0x00000004  // Memory Scatter-Gather
+#define UDMA_CHCTL_XFERMODE_MEM_SGA                                           \
+                                0x00000005  // Alternate Memory Scatter-Gather
+#define UDMA_CHCTL_XFERMODE_PER_SG                                            \
+                                0x00000006  // Peripheral Scatter-Gather
+#define UDMA_CHCTL_XFERMODE_PER_SGA                                           \
+                                0x00000007  // Alternate Peripheral
+                                            // Scatter-Gather
+#define UDMA_CHCTL_XFERSIZE_S   4
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_ACTLR register.
+//
+//*****************************************************************************
+#define NVIC_ACTLR_DISOOFP      0x00000200  // Disable Out-Of-Order Floating
+                                            // Point
+#define NVIC_ACTLR_DISFPCA      0x00000100  // Disable CONTROL
+#define NVIC_ACTLR_DISFOLD      0x00000004  // Disable IT Folding
+#define NVIC_ACTLR_DISWBUF      0x00000002  // Disable Write Buffer
+#define NVIC_ACTLR_DISMCYC      0x00000001  // Disable Interrupts of Multiple
+                                            // Cycle Instructions
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_ST_CTRL register.
+//
+//*****************************************************************************
+#define NVIC_ST_CTRL_COUNT      0x00010000  // Count Flag
+#define NVIC_ST_CTRL_CLK_SRC    0x00000004  // Clock Source
+#define NVIC_ST_CTRL_INTEN      0x00000002  // Interrupt Enable
+#define NVIC_ST_CTRL_ENABLE     0x00000001  // Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_ST_RELOAD register.
+//
+//*****************************************************************************
+#define NVIC_ST_RELOAD_M        0x00FFFFFF  // Reload Value
+#define NVIC_ST_RELOAD_S        0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_ST_CURRENT
+// register.
+//
+//*****************************************************************************
+#define NVIC_ST_CURRENT_M       0x00FFFFFF  // Current Value
+#define NVIC_ST_CURRENT_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_EN0 register.
+//
+//*****************************************************************************
+#define NVIC_EN0_INT_M          0xFFFFFFFF  // Interrupt Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_EN1 register.
+//
+//*****************************************************************************
+#define NVIC_EN1_INT_M          0xFFFFFFFF  // Interrupt Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_EN2 register.
+//
+//*****************************************************************************
+#define NVIC_EN2_INT_M          0xFFFFFFFF  // Interrupt Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_EN3 register.
+//
+//*****************************************************************************
+#define NVIC_EN3_INT_M          0xFFFFFFFF  // Interrupt Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_EN4 register.
+//
+//*****************************************************************************
+#define NVIC_EN4_INT_M          0x000007FF  // Interrupt Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_DIS0 register.
+//
+//*****************************************************************************
+#define NVIC_DIS0_INT_M         0xFFFFFFFF  // Interrupt Disable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_DIS1 register.
+//
+//*****************************************************************************
+#define NVIC_DIS1_INT_M         0xFFFFFFFF  // Interrupt Disable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_DIS2 register.
+//
+//*****************************************************************************
+#define NVIC_DIS2_INT_M         0xFFFFFFFF  // Interrupt Disable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_DIS3 register.
+//
+//*****************************************************************************
+#define NVIC_DIS3_INT_M         0xFFFFFFFF  // Interrupt Disable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_DIS4 register.
+//
+//*****************************************************************************
+#define NVIC_DIS4_INT_M         0x000007FF  // Interrupt Disable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PEND0 register.
+//
+//*****************************************************************************
+#define NVIC_PEND0_INT_M        0xFFFFFFFF  // Interrupt Set Pending
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PEND1 register.
+//
+//*****************************************************************************
+#define NVIC_PEND1_INT_M        0xFFFFFFFF  // Interrupt Set Pending
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PEND2 register.
+//
+//*****************************************************************************
+#define NVIC_PEND2_INT_M        0xFFFFFFFF  // Interrupt Set Pending
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PEND3 register.
+//
+//*****************************************************************************
+#define NVIC_PEND3_INT_M        0xFFFFFFFF  // Interrupt Set Pending
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PEND4 register.
+//
+//*****************************************************************************
+#define NVIC_PEND4_INT_M        0x000007FF  // Interrupt Set Pending
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_UNPEND0 register.
+//
+//*****************************************************************************
+#define NVIC_UNPEND0_INT_M      0xFFFFFFFF  // Interrupt Clear Pending
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_UNPEND1 register.
+//
+//*****************************************************************************
+#define NVIC_UNPEND1_INT_M      0xFFFFFFFF  // Interrupt Clear Pending
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_UNPEND2 register.
+//
+//*****************************************************************************
+#define NVIC_UNPEND2_INT_M      0xFFFFFFFF  // Interrupt Clear Pending
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_UNPEND3 register.
+//
+//*****************************************************************************
+#define NVIC_UNPEND3_INT_M      0xFFFFFFFF  // Interrupt Clear Pending
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_UNPEND4 register.
+//
+//*****************************************************************************
+#define NVIC_UNPEND4_INT_M      0x000007FF  // Interrupt Clear Pending
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_ACTIVE0 register.
+//
+//*****************************************************************************
+#define NVIC_ACTIVE0_INT_M      0xFFFFFFFF  // Interrupt Active
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_ACTIVE1 register.
+//
+//*****************************************************************************
+#define NVIC_ACTIVE1_INT_M      0xFFFFFFFF  // Interrupt Active
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_ACTIVE2 register.
+//
+//*****************************************************************************
+#define NVIC_ACTIVE2_INT_M      0xFFFFFFFF  // Interrupt Active
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_ACTIVE3 register.
+//
+//*****************************************************************************
+#define NVIC_ACTIVE3_INT_M      0xFFFFFFFF  // Interrupt Active
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_ACTIVE4 register.
+//
+//*****************************************************************************
+#define NVIC_ACTIVE4_INT_M      0x000007FF  // Interrupt Active
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI0 register.
+//
+//*****************************************************************************
+#define NVIC_PRI0_INT3_M        0xE0000000  // Interrupt 3 Priority Mask
+#define NVIC_PRI0_INT2_M        0x00E00000  // Interrupt 2 Priority Mask
+#define NVIC_PRI0_INT1_M        0x0000E000  // Interrupt 1 Priority Mask
+#define NVIC_PRI0_INT0_M        0x000000E0  // Interrupt 0 Priority Mask
+#define NVIC_PRI0_INT3_S        29
+#define NVIC_PRI0_INT2_S        21
+#define NVIC_PRI0_INT1_S        13
+#define NVIC_PRI0_INT0_S        5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI1 register.
+//
+//*****************************************************************************
+#define NVIC_PRI1_INT7_M        0xE0000000  // Interrupt 7 Priority Mask
+#define NVIC_PRI1_INT6_M        0x00E00000  // Interrupt 6 Priority Mask
+#define NVIC_PRI1_INT5_M        0x0000E000  // Interrupt 5 Priority Mask
+#define NVIC_PRI1_INT4_M        0x000000E0  // Interrupt 4 Priority Mask
+#define NVIC_PRI1_INT7_S        29
+#define NVIC_PRI1_INT6_S        21
+#define NVIC_PRI1_INT5_S        13
+#define NVIC_PRI1_INT4_S        5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI2 register.
+//
+//*****************************************************************************
+#define NVIC_PRI2_INT11_M       0xE0000000  // Interrupt 11 Priority Mask
+#define NVIC_PRI2_INT10_M       0x00E00000  // Interrupt 10 Priority Mask
+#define NVIC_PRI2_INT9_M        0x0000E000  // Interrupt 9 Priority Mask
+#define NVIC_PRI2_INT8_M        0x000000E0  // Interrupt 8 Priority Mask
+#define NVIC_PRI2_INT11_S       29
+#define NVIC_PRI2_INT10_S       21
+#define NVIC_PRI2_INT9_S        13
+#define NVIC_PRI2_INT8_S        5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI3 register.
+//
+//*****************************************************************************
+#define NVIC_PRI3_INT15_M       0xE0000000  // Interrupt 15 Priority Mask
+#define NVIC_PRI3_INT14_M       0x00E00000  // Interrupt 14 Priority Mask
+#define NVIC_PRI3_INT13_M       0x0000E000  // Interrupt 13 Priority Mask
+#define NVIC_PRI3_INT12_M       0x000000E0  // Interrupt 12 Priority Mask
+#define NVIC_PRI3_INT15_S       29
+#define NVIC_PRI3_INT14_S       21
+#define NVIC_PRI3_INT13_S       13
+#define NVIC_PRI3_INT12_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI4 register.
+//
+//*****************************************************************************
+#define NVIC_PRI4_INT19_M       0xE0000000  // Interrupt 19 Priority Mask
+#define NVIC_PRI4_INT18_M       0x00E00000  // Interrupt 18 Priority Mask
+#define NVIC_PRI4_INT17_M       0x0000E000  // Interrupt 17 Priority Mask
+#define NVIC_PRI4_INT16_M       0x000000E0  // Interrupt 16 Priority Mask
+#define NVIC_PRI4_INT19_S       29
+#define NVIC_PRI4_INT18_S       21
+#define NVIC_PRI4_INT17_S       13
+#define NVIC_PRI4_INT16_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI5 register.
+//
+//*****************************************************************************
+#define NVIC_PRI5_INT23_M       0xE0000000  // Interrupt 23 Priority Mask
+#define NVIC_PRI5_INT22_M       0x00E00000  // Interrupt 22 Priority Mask
+#define NVIC_PRI5_INT21_M       0x0000E000  // Interrupt 21 Priority Mask
+#define NVIC_PRI5_INT20_M       0x000000E0  // Interrupt 20 Priority Mask
+#define NVIC_PRI5_INT23_S       29
+#define NVIC_PRI5_INT22_S       21
+#define NVIC_PRI5_INT21_S       13
+#define NVIC_PRI5_INT20_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI6 register.
+//
+//*****************************************************************************
+#define NVIC_PRI6_INT27_M       0xE0000000  // Interrupt 27 Priority Mask
+#define NVIC_PRI6_INT26_M       0x00E00000  // Interrupt 26 Priority Mask
+#define NVIC_PRI6_INT25_M       0x0000E000  // Interrupt 25 Priority Mask
+#define NVIC_PRI6_INT24_M       0x000000E0  // Interrupt 24 Priority Mask
+#define NVIC_PRI6_INT27_S       29
+#define NVIC_PRI6_INT26_S       21
+#define NVIC_PRI6_INT25_S       13
+#define NVIC_PRI6_INT24_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI7 register.
+//
+//*****************************************************************************
+#define NVIC_PRI7_INT31_M       0xE0000000  // Interrupt 31 Priority Mask
+#define NVIC_PRI7_INT30_M       0x00E00000  // Interrupt 30 Priority Mask
+#define NVIC_PRI7_INT29_M       0x0000E000  // Interrupt 29 Priority Mask
+#define NVIC_PRI7_INT28_M       0x000000E0  // Interrupt 28 Priority Mask
+#define NVIC_PRI7_INT31_S       29
+#define NVIC_PRI7_INT30_S       21
+#define NVIC_PRI7_INT29_S       13
+#define NVIC_PRI7_INT28_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI8 register.
+//
+//*****************************************************************************
+#define NVIC_PRI8_INT35_M       0xE0000000  // Interrupt 35 Priority Mask
+#define NVIC_PRI8_INT34_M       0x00E00000  // Interrupt 34 Priority Mask
+#define NVIC_PRI8_INT33_M       0x0000E000  // Interrupt 33 Priority Mask
+#define NVIC_PRI8_INT32_M       0x000000E0  // Interrupt 32 Priority Mask
+#define NVIC_PRI8_INT35_S       29
+#define NVIC_PRI8_INT34_S       21
+#define NVIC_PRI8_INT33_S       13
+#define NVIC_PRI8_INT32_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI9 register.
+//
+//*****************************************************************************
+#define NVIC_PRI9_INT39_M       0xE0000000  // Interrupt 39 Priority Mask
+#define NVIC_PRI9_INT38_M       0x00E00000  // Interrupt 38 Priority Mask
+#define NVIC_PRI9_INT37_M       0x0000E000  // Interrupt 37 Priority Mask
+#define NVIC_PRI9_INT36_M       0x000000E0  // Interrupt 36 Priority Mask
+#define NVIC_PRI9_INT39_S       29
+#define NVIC_PRI9_INT38_S       21
+#define NVIC_PRI9_INT37_S       13
+#define NVIC_PRI9_INT36_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI10 register.
+//
+//*****************************************************************************
+#define NVIC_PRI10_INT43_M      0xE0000000  // Interrupt 43 Priority Mask
+#define NVIC_PRI10_INT42_M      0x00E00000  // Interrupt 42 Priority Mask
+#define NVIC_PRI10_INT41_M      0x0000E000  // Interrupt 41 Priority Mask
+#define NVIC_PRI10_INT40_M      0x000000E0  // Interrupt 40 Priority Mask
+#define NVIC_PRI10_INT43_S      29
+#define NVIC_PRI10_INT42_S      21
+#define NVIC_PRI10_INT41_S      13
+#define NVIC_PRI10_INT40_S      5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI11 register.
+//
+//*****************************************************************************
+#define NVIC_PRI11_INT47_M      0xE0000000  // Interrupt 47 Priority Mask
+#define NVIC_PRI11_INT46_M      0x00E00000  // Interrupt 46 Priority Mask
+#define NVIC_PRI11_INT45_M      0x0000E000  // Interrupt 45 Priority Mask
+#define NVIC_PRI11_INT44_M      0x000000E0  // Interrupt 44 Priority Mask
+#define NVIC_PRI11_INT47_S      29
+#define NVIC_PRI11_INT46_S      21
+#define NVIC_PRI11_INT45_S      13
+#define NVIC_PRI11_INT44_S      5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI12 register.
+//
+//*****************************************************************************
+#define NVIC_PRI12_INT51_M      0xE0000000  // Interrupt 51 Priority Mask
+#define NVIC_PRI12_INT50_M      0x00E00000  // Interrupt 50 Priority Mask
+#define NVIC_PRI12_INT49_M      0x0000E000  // Interrupt 49 Priority Mask
+#define NVIC_PRI12_INT48_M      0x000000E0  // Interrupt 48 Priority Mask
+#define NVIC_PRI12_INT51_S      29
+#define NVIC_PRI12_INT50_S      21
+#define NVIC_PRI12_INT49_S      13
+#define NVIC_PRI12_INT48_S      5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI13 register.
+//
+//*****************************************************************************
+#define NVIC_PRI13_INT55_M      0xE0000000  // Interrupt 55 Priority Mask
+#define NVIC_PRI13_INT54_M      0x00E00000  // Interrupt 54 Priority Mask
+#define NVIC_PRI13_INT53_M      0x0000E000  // Interrupt 53 Priority Mask
+#define NVIC_PRI13_INT52_M      0x000000E0  // Interrupt 52 Priority Mask
+#define NVIC_PRI13_INT55_S      29
+#define NVIC_PRI13_INT54_S      21
+#define NVIC_PRI13_INT53_S      13
+#define NVIC_PRI13_INT52_S      5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI14 register.
+//
+//*****************************************************************************
+#define NVIC_PRI14_INTD_M       0xE0000000  // Interrupt 59 Priority Mask
+#define NVIC_PRI14_INTC_M       0x00E00000  // Interrupt 58 Priority Mask
+#define NVIC_PRI14_INTB_M       0x0000E000  // Interrupt 57 Priority Mask
+#define NVIC_PRI14_INTA_M       0x000000E0  // Interrupt 56 Priority Mask
+#define NVIC_PRI14_INTD_S       29
+#define NVIC_PRI14_INTC_S       21
+#define NVIC_PRI14_INTB_S       13
+#define NVIC_PRI14_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI15 register.
+//
+//*****************************************************************************
+#define NVIC_PRI15_INTD_M       0xE0000000  // Interrupt 63 Priority Mask
+#define NVIC_PRI15_INTC_M       0x00E00000  // Interrupt 62 Priority Mask
+#define NVIC_PRI15_INTB_M       0x0000E000  // Interrupt 61 Priority Mask
+#define NVIC_PRI15_INTA_M       0x000000E0  // Interrupt 60 Priority Mask
+#define NVIC_PRI15_INTD_S       29
+#define NVIC_PRI15_INTC_S       21
+#define NVIC_PRI15_INTB_S       13
+#define NVIC_PRI15_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI16 register.
+//
+//*****************************************************************************
+#define NVIC_PRI16_INTD_M       0xE0000000  // Interrupt 67 Priority Mask
+#define NVIC_PRI16_INTC_M       0x00E00000  // Interrupt 66 Priority Mask
+#define NVIC_PRI16_INTB_M       0x0000E000  // Interrupt 65 Priority Mask
+#define NVIC_PRI16_INTA_M       0x000000E0  // Interrupt 64 Priority Mask
+#define NVIC_PRI16_INTD_S       29
+#define NVIC_PRI16_INTC_S       21
+#define NVIC_PRI16_INTB_S       13
+#define NVIC_PRI16_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI17 register.
+//
+//*****************************************************************************
+#define NVIC_PRI17_INTD_M       0xE0000000  // Interrupt 71 Priority Mask
+#define NVIC_PRI17_INTC_M       0x00E00000  // Interrupt 70 Priority Mask
+#define NVIC_PRI17_INTB_M       0x0000E000  // Interrupt 69 Priority Mask
+#define NVIC_PRI17_INTA_M       0x000000E0  // Interrupt 68 Priority Mask
+#define NVIC_PRI17_INTD_S       29
+#define NVIC_PRI17_INTC_S       21
+#define NVIC_PRI17_INTB_S       13
+#define NVIC_PRI17_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI18 register.
+//
+//*****************************************************************************
+#define NVIC_PRI18_INTD_M       0xE0000000  // Interrupt 75 Priority Mask
+#define NVIC_PRI18_INTC_M       0x00E00000  // Interrupt 74 Priority Mask
+#define NVIC_PRI18_INTB_M       0x0000E000  // Interrupt 73 Priority Mask
+#define NVIC_PRI18_INTA_M       0x000000E0  // Interrupt 72 Priority Mask
+#define NVIC_PRI18_INTD_S       29
+#define NVIC_PRI18_INTC_S       21
+#define NVIC_PRI18_INTB_S       13
+#define NVIC_PRI18_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI19 register.
+//
+//*****************************************************************************
+#define NVIC_PRI19_INTD_M       0xE0000000  // Interrupt 79 Priority Mask
+#define NVIC_PRI19_INTC_M       0x00E00000  // Interrupt 78 Priority Mask
+#define NVIC_PRI19_INTB_M       0x0000E000  // Interrupt 77 Priority Mask
+#define NVIC_PRI19_INTA_M       0x000000E0  // Interrupt 76 Priority Mask
+#define NVIC_PRI19_INTD_S       29
+#define NVIC_PRI19_INTC_S       21
+#define NVIC_PRI19_INTB_S       13
+#define NVIC_PRI19_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI20 register.
+//
+//*****************************************************************************
+#define NVIC_PRI20_INTD_M       0xE0000000  // Interrupt 83 Priority Mask
+#define NVIC_PRI20_INTC_M       0x00E00000  // Interrupt 82 Priority Mask
+#define NVIC_PRI20_INTB_M       0x0000E000  // Interrupt 81 Priority Mask
+#define NVIC_PRI20_INTA_M       0x000000E0  // Interrupt 80 Priority Mask
+#define NVIC_PRI20_INTD_S       29
+#define NVIC_PRI20_INTC_S       21
+#define NVIC_PRI20_INTB_S       13
+#define NVIC_PRI20_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI21 register.
+//
+//*****************************************************************************
+#define NVIC_PRI21_INTD_M       0xE0000000  // Interrupt 87 Priority Mask
+#define NVIC_PRI21_INTC_M       0x00E00000  // Interrupt 86 Priority Mask
+#define NVIC_PRI21_INTB_M       0x0000E000  // Interrupt 85 Priority Mask
+#define NVIC_PRI21_INTA_M       0x000000E0  // Interrupt 84 Priority Mask
+#define NVIC_PRI21_INTD_S       29
+#define NVIC_PRI21_INTC_S       21
+#define NVIC_PRI21_INTB_S       13
+#define NVIC_PRI21_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI22 register.
+//
+//*****************************************************************************
+#define NVIC_PRI22_INTD_M       0xE0000000  // Interrupt 91 Priority Mask
+#define NVIC_PRI22_INTC_M       0x00E00000  // Interrupt 90 Priority Mask
+#define NVIC_PRI22_INTB_M       0x0000E000  // Interrupt 89 Priority Mask
+#define NVIC_PRI22_INTA_M       0x000000E0  // Interrupt 88 Priority Mask
+#define NVIC_PRI22_INTD_S       29
+#define NVIC_PRI22_INTC_S       21
+#define NVIC_PRI22_INTB_S       13
+#define NVIC_PRI22_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI23 register.
+//
+//*****************************************************************************
+#define NVIC_PRI23_INTD_M       0xE0000000  // Interrupt 95 Priority Mask
+#define NVIC_PRI23_INTC_M       0x00E00000  // Interrupt 94 Priority Mask
+#define NVIC_PRI23_INTB_M       0x0000E000  // Interrupt 93 Priority Mask
+#define NVIC_PRI23_INTA_M       0x000000E0  // Interrupt 92 Priority Mask
+#define NVIC_PRI23_INTD_S       29
+#define NVIC_PRI23_INTC_S       21
+#define NVIC_PRI23_INTB_S       13
+#define NVIC_PRI23_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI24 register.
+//
+//*****************************************************************************
+#define NVIC_PRI24_INTD_M       0xE0000000  // Interrupt 99 Priority Mask
+#define NVIC_PRI24_INTC_M       0x00E00000  // Interrupt 98 Priority Mask
+#define NVIC_PRI24_INTB_M       0x0000E000  // Interrupt 97 Priority Mask
+#define NVIC_PRI24_INTA_M       0x000000E0  // Interrupt 96 Priority Mask
+#define NVIC_PRI24_INTD_S       29
+#define NVIC_PRI24_INTC_S       21
+#define NVIC_PRI24_INTB_S       13
+#define NVIC_PRI24_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI25 register.
+//
+//*****************************************************************************
+#define NVIC_PRI25_INTD_M       0xE0000000  // Interrupt 103 Priority Mask
+#define NVIC_PRI25_INTC_M       0x00E00000  // Interrupt 102 Priority Mask
+#define NVIC_PRI25_INTB_M       0x0000E000  // Interrupt 101 Priority Mask
+#define NVIC_PRI25_INTA_M       0x000000E0  // Interrupt 100 Priority Mask
+#define NVIC_PRI25_INTD_S       29
+#define NVIC_PRI25_INTC_S       21
+#define NVIC_PRI25_INTB_S       13
+#define NVIC_PRI25_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI26 register.
+//
+//*****************************************************************************
+#define NVIC_PRI26_INTD_M       0xE0000000  // Interrupt 107 Priority Mask
+#define NVIC_PRI26_INTC_M       0x00E00000  // Interrupt 106 Priority Mask
+#define NVIC_PRI26_INTB_M       0x0000E000  // Interrupt 105 Priority Mask
+#define NVIC_PRI26_INTA_M       0x000000E0  // Interrupt 104 Priority Mask
+#define NVIC_PRI26_INTD_S       29
+#define NVIC_PRI26_INTC_S       21
+#define NVIC_PRI26_INTB_S       13
+#define NVIC_PRI26_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI27 register.
+//
+//*****************************************************************************
+#define NVIC_PRI27_INTD_M       0xE0000000  // Interrupt 111 Priority Mask
+#define NVIC_PRI27_INTC_M       0x00E00000  // Interrupt 110 Priority Mask
+#define NVIC_PRI27_INTB_M       0x0000E000  // Interrupt 109 Priority Mask
+#define NVIC_PRI27_INTA_M       0x000000E0  // Interrupt 108 Priority Mask
+#define NVIC_PRI27_INTD_S       29
+#define NVIC_PRI27_INTC_S       21
+#define NVIC_PRI27_INTB_S       13
+#define NVIC_PRI27_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI28 register.
+//
+//*****************************************************************************
+#define NVIC_PRI28_INTD_M       0xE0000000  // Interrupt 115 Priority Mask
+#define NVIC_PRI28_INTC_M       0x00E00000  // Interrupt 114 Priority Mask
+#define NVIC_PRI28_INTB_M       0x0000E000  // Interrupt 113 Priority Mask
+#define NVIC_PRI28_INTA_M       0x000000E0  // Interrupt 112 Priority Mask
+#define NVIC_PRI28_INTD_S       29
+#define NVIC_PRI28_INTC_S       21
+#define NVIC_PRI28_INTB_S       13
+#define NVIC_PRI28_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI29 register.
+//
+//*****************************************************************************
+#define NVIC_PRI29_INTD_M       0xE0000000  // Interrupt 119 Priority Mask
+#define NVIC_PRI29_INTC_M       0x00E00000  // Interrupt 118 Priority Mask
+#define NVIC_PRI29_INTB_M       0x0000E000  // Interrupt 117 Priority Mask
+#define NVIC_PRI29_INTA_M       0x000000E0  // Interrupt 116 Priority Mask
+#define NVIC_PRI29_INTD_S       29
+#define NVIC_PRI29_INTC_S       21
+#define NVIC_PRI29_INTB_S       13
+#define NVIC_PRI29_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI30 register.
+//
+//*****************************************************************************
+#define NVIC_PRI30_INTD_M       0xE0000000  // Interrupt 123 Priority Mask
+#define NVIC_PRI30_INTC_M       0x00E00000  // Interrupt 122 Priority Mask
+#define NVIC_PRI30_INTB_M       0x0000E000  // Interrupt 121 Priority Mask
+#define NVIC_PRI30_INTA_M       0x000000E0  // Interrupt 120 Priority Mask
+#define NVIC_PRI30_INTD_S       29
+#define NVIC_PRI30_INTC_S       21
+#define NVIC_PRI30_INTB_S       13
+#define NVIC_PRI30_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI31 register.
+//
+//*****************************************************************************
+#define NVIC_PRI31_INTD_M       0xE0000000  // Interrupt 127 Priority Mask
+#define NVIC_PRI31_INTC_M       0x00E00000  // Interrupt 126 Priority Mask
+#define NVIC_PRI31_INTB_M       0x0000E000  // Interrupt 125 Priority Mask
+#define NVIC_PRI31_INTA_M       0x000000E0  // Interrupt 124 Priority Mask
+#define NVIC_PRI31_INTD_S       29
+#define NVIC_PRI31_INTC_S       21
+#define NVIC_PRI31_INTB_S       13
+#define NVIC_PRI31_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI32 register.
+//
+//*****************************************************************************
+#define NVIC_PRI32_INTD_M       0xE0000000  // Interrupt 131 Priority Mask
+#define NVIC_PRI32_INTC_M       0x00E00000  // Interrupt 130 Priority Mask
+#define NVIC_PRI32_INTB_M       0x0000E000  // Interrupt 129 Priority Mask
+#define NVIC_PRI32_INTA_M       0x000000E0  // Interrupt 128 Priority Mask
+#define NVIC_PRI32_INTD_S       29
+#define NVIC_PRI32_INTC_S       21
+#define NVIC_PRI32_INTB_S       13
+#define NVIC_PRI32_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI33 register.
+//
+//*****************************************************************************
+#define NVIC_PRI33_INTD_M       0xE0000000  // Interrupt Priority for Interrupt
+                                            // [4n+3]
+#define NVIC_PRI33_INTC_M       0x00E00000  // Interrupt Priority for Interrupt
+                                            // [4n+2]
+#define NVIC_PRI33_INTB_M       0x0000E000  // Interrupt Priority for Interrupt
+                                            // [4n+1]
+#define NVIC_PRI33_INTA_M       0x000000E0  // Interrupt Priority for Interrupt
+                                            // [4n]
+#define NVIC_PRI33_INTD_S       29
+#define NVIC_PRI33_INTC_S       21
+#define NVIC_PRI33_INTB_S       13
+#define NVIC_PRI33_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_PRI34 register.
+//
+//*****************************************************************************
+#define NVIC_PRI34_INTD_M       0xE0000000  // Interrupt Priority for Interrupt
+                                            // [4n+3]
+#define NVIC_PRI34_INTC_M       0x00E00000  // Interrupt Priority for Interrupt
+                                            // [4n+2]
+#define NVIC_PRI34_INTB_M       0x0000E000  // Interrupt Priority for Interrupt
+                                            // [4n+1]
+#define NVIC_PRI34_INTA_M       0x000000E0  // Interrupt Priority for Interrupt
+                                            // [4n]
+#define NVIC_PRI34_INTD_S       29
+#define NVIC_PRI34_INTC_S       21
+#define NVIC_PRI34_INTB_S       13
+#define NVIC_PRI34_INTA_S       5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_CPUID register.
+//
+//*****************************************************************************
+#define NVIC_CPUID_IMP_M        0xFF000000  // Implementer Code
+#define NVIC_CPUID_IMP_ARM      0x41000000  // ARM
+#define NVIC_CPUID_VAR_M        0x00F00000  // Variant Number
+#define NVIC_CPUID_CON_M        0x000F0000  // Constant
+#define NVIC_CPUID_PARTNO_M     0x0000FFF0  // Part Number
+#define NVIC_CPUID_PARTNO_CM4   0x0000C240  // Cortex-M4 processor
+#define NVIC_CPUID_REV_M        0x0000000F  // Revision Number
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_INT_CTRL register.
+//
+//*****************************************************************************
+#define NVIC_INT_CTRL_NMI_SET   0x80000000  // NMI Set Pending
+#define NVIC_INT_CTRL_PEND_SV   0x10000000  // PendSV Set Pending
+#define NVIC_INT_CTRL_UNPEND_SV 0x08000000  // PendSV Clear Pending
+#define NVIC_INT_CTRL_PENDSTSET 0x04000000  // SysTick Set Pending
+#define NVIC_INT_CTRL_PENDSTCLR 0x02000000  // SysTick Clear Pending
+#define NVIC_INT_CTRL_ISR_PRE   0x00800000  // Debug Interrupt Handling
+#define NVIC_INT_CTRL_ISR_PEND  0x00400000  // Interrupt Pending
+#define NVIC_INT_CTRL_VEC_PEN_M 0x000FF000  // Interrupt Pending Vector Number
+#define NVIC_INT_CTRL_VEC_PEN_NMI                                             \
+                                0x00002000  // NMI
+#define NVIC_INT_CTRL_VEC_PEN_HARD                                            \
+                                0x00003000  // Hard fault
+#define NVIC_INT_CTRL_VEC_PEN_MEM                                             \
+                                0x00004000  // Memory management fault
+#define NVIC_INT_CTRL_VEC_PEN_BUS                                             \
+                                0x00005000  // Bus fault
+#define NVIC_INT_CTRL_VEC_PEN_USG                                             \
+                                0x00006000  // Usage fault
+#define NVIC_INT_CTRL_VEC_PEN_SVC                                             \
+                                0x0000B000  // SVCall
+#define NVIC_INT_CTRL_VEC_PEN_PNDSV                                           \
+                                0x0000E000  // PendSV
+#define NVIC_INT_CTRL_VEC_PEN_TICK                                            \
+                                0x0000F000  // SysTick
+#define NVIC_INT_CTRL_RET_BASE  0x00000800  // Return to Base
+#define NVIC_INT_CTRL_VEC_ACT_M 0x000000FF  // Interrupt Pending Vector Number
+#define NVIC_INT_CTRL_VEC_ACT_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_VTABLE register.
+//
+//*****************************************************************************
+#define NVIC_VTABLE_OFFSET_M    0xFFFFFC00  // Vector Table Offset
+#define NVIC_VTABLE_OFFSET_S    10
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_APINT register.
+//
+//*****************************************************************************
+#define NVIC_APINT_VECTKEY_M    0xFFFF0000  // Register Key
+#define NVIC_APINT_VECTKEY      0x05FA0000  // Vector key
+#define NVIC_APINT_ENDIANESS    0x00008000  // Data Endianess
+#define NVIC_APINT_PRIGROUP_M   0x00000700  // Interrupt Priority Grouping
+#define NVIC_APINT_PRIGROUP_7_1 0x00000000  // Priority group 7.1 split
+#define NVIC_APINT_PRIGROUP_6_2 0x00000100  // Priority group 6.2 split
+#define NVIC_APINT_PRIGROUP_5_3 0x00000200  // Priority group 5.3 split
+#define NVIC_APINT_PRIGROUP_4_4 0x00000300  // Priority group 4.4 split
+#define NVIC_APINT_PRIGROUP_3_5 0x00000400  // Priority group 3.5 split
+#define NVIC_APINT_PRIGROUP_2_6 0x00000500  // Priority group 2.6 split
+#define NVIC_APINT_PRIGROUP_1_7 0x00000600  // Priority group 1.7 split
+#define NVIC_APINT_PRIGROUP_0_8 0x00000700  // Priority group 0.8 split
+#define NVIC_APINT_SYSRESETREQ  0x00000004  // System Reset Request
+#define NVIC_APINT_VECT_CLR_ACT 0x00000002  // Clear Active NMI / Fault
+#define NVIC_APINT_VECT_RESET   0x00000001  // System Reset
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_SYS_CTRL register.
+//
+//*****************************************************************************
+#define NVIC_SYS_CTRL_SEVONPEND 0x00000010  // Wake Up on Pending
+#define NVIC_SYS_CTRL_SLEEPDEEP 0x00000004  // Deep Sleep Enable
+#define NVIC_SYS_CTRL_SLEEPEXIT 0x00000002  // Sleep on ISR Exit
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_CFG_CTRL register.
+//
+//*****************************************************************************
+#define NVIC_CFG_CTRL_STKALIGN  0x00000200  // Stack Alignment on Exception
+                                            // Entry
+#define NVIC_CFG_CTRL_BFHFNMIGN 0x00000100  // Ignore Bus Fault in NMI and
+                                            // Fault
+#define NVIC_CFG_CTRL_DIV0      0x00000010  // Trap on Divide by 0
+#define NVIC_CFG_CTRL_UNALIGNED 0x00000008  // Trap on Unaligned Access
+#define NVIC_CFG_CTRL_MAIN_PEND 0x00000002  // Allow Main Interrupt Trigger
+#define NVIC_CFG_CTRL_BASE_THR  0x00000001  // Thread State Control
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_SYS_PRI1 register.
+//
+//*****************************************************************************
+#define NVIC_SYS_PRI1_USAGE_M   0x00E00000  // Usage Fault Priority
+#define NVIC_SYS_PRI1_BUS_M     0x0000E000  // Bus Fault Priority
+#define NVIC_SYS_PRI1_MEM_M     0x000000E0  // Memory Management Fault Priority
+#define NVIC_SYS_PRI1_USAGE_S   21
+#define NVIC_SYS_PRI1_BUS_S     13
+#define NVIC_SYS_PRI1_MEM_S     5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_SYS_PRI2 register.
+//
+//*****************************************************************************
+#define NVIC_SYS_PRI2_SVC_M     0xE0000000  // SVCall Priority
+#define NVIC_SYS_PRI2_SVC_S     29
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_SYS_PRI3 register.
+//
+//*****************************************************************************
+#define NVIC_SYS_PRI3_TICK_M    0xE0000000  // SysTick Exception Priority
+#define NVIC_SYS_PRI3_PENDSV_M  0x00E00000  // PendSV Priority
+#define NVIC_SYS_PRI3_DEBUG_M   0x000000E0  // Debug Priority
+#define NVIC_SYS_PRI3_TICK_S    29
+#define NVIC_SYS_PRI3_PENDSV_S  21
+#define NVIC_SYS_PRI3_DEBUG_S   5
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_SYS_HND_CTRL
+// register.
+//
+//*****************************************************************************
+#define NVIC_SYS_HND_CTRL_USAGE 0x00040000  // Usage Fault Enable
+#define NVIC_SYS_HND_CTRL_BUS   0x00020000  // Bus Fault Enable
+#define NVIC_SYS_HND_CTRL_MEM   0x00010000  // Memory Management Fault Enable
+#define NVIC_SYS_HND_CTRL_SVC   0x00008000  // SVC Call Pending
+#define NVIC_SYS_HND_CTRL_BUSP  0x00004000  // Bus Fault Pending
+#define NVIC_SYS_HND_CTRL_MEMP  0x00002000  // Memory Management Fault Pending
+#define NVIC_SYS_HND_CTRL_USAGEP                                              \
+                                0x00001000  // Usage Fault Pending
+#define NVIC_SYS_HND_CTRL_TICK  0x00000800  // SysTick Exception Active
+#define NVIC_SYS_HND_CTRL_PNDSV 0x00000400  // PendSV Exception Active
+#define NVIC_SYS_HND_CTRL_MON   0x00000100  // Debug Monitor Active
+#define NVIC_SYS_HND_CTRL_SVCA  0x00000080  // SVC Call Active
+#define NVIC_SYS_HND_CTRL_USGA  0x00000008  // Usage Fault Active
+#define NVIC_SYS_HND_CTRL_BUSA  0x00000002  // Bus Fault Active
+#define NVIC_SYS_HND_CTRL_MEMA  0x00000001  // Memory Management Fault Active
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_FAULT_STAT
+// register.
+//
+//*****************************************************************************
+#define NVIC_FAULT_STAT_DIV0    0x02000000  // Divide-by-Zero Usage Fault
+#define NVIC_FAULT_STAT_UNALIGN 0x01000000  // Unaligned Access Usage Fault
+#define NVIC_FAULT_STAT_NOCP    0x00080000  // No Coprocessor Usage Fault
+#define NVIC_FAULT_STAT_INVPC   0x00040000  // Invalid PC Load Usage Fault
+#define NVIC_FAULT_STAT_INVSTAT 0x00020000  // Invalid State Usage Fault
+#define NVIC_FAULT_STAT_UNDEF   0x00010000  // Undefined Instruction Usage
+                                            // Fault
+#define NVIC_FAULT_STAT_BFARV   0x00008000  // Bus Fault Address Register Valid
+#define NVIC_FAULT_STAT_BLSPERR 0x00002000  // Bus Fault on Floating-Point Lazy
+                                            // State Preservation
+#define NVIC_FAULT_STAT_BSTKE   0x00001000  // Stack Bus Fault
+#define NVIC_FAULT_STAT_BUSTKE  0x00000800  // Unstack Bus Fault
+#define NVIC_FAULT_STAT_IMPRE   0x00000400  // Imprecise Data Bus Error
+#define NVIC_FAULT_STAT_PRECISE 0x00000200  // Precise Data Bus Error
+#define NVIC_FAULT_STAT_IBUS    0x00000100  // Instruction Bus Error
+#define NVIC_FAULT_STAT_MMARV   0x00000080  // Memory Management Fault Address
+                                            // Register Valid
+#define NVIC_FAULT_STAT_MLSPERR 0x00000020  // Memory Management Fault on
+                                            // Floating-Point Lazy State
+                                            // Preservation
+#define NVIC_FAULT_STAT_MSTKE   0x00000010  // Stack Access Violation
+#define NVIC_FAULT_STAT_MUSTKE  0x00000008  // Unstack Access Violation
+#define NVIC_FAULT_STAT_DERR    0x00000002  // Data Access Violation
+#define NVIC_FAULT_STAT_IERR    0x00000001  // Instruction Access Violation
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_HFAULT_STAT
+// register.
+//
+//*****************************************************************************
+#define NVIC_HFAULT_STAT_DBG    0x80000000  // Debug Event
+#define NVIC_HFAULT_STAT_FORCED 0x40000000  // Forced Hard Fault
+#define NVIC_HFAULT_STAT_VECT   0x00000002  // Vector Table Read Fault
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_DEBUG_STAT
+// register.
+//
+//*****************************************************************************
+#define NVIC_DEBUG_STAT_EXTRNL  0x00000010  // EDBGRQ asserted
+#define NVIC_DEBUG_STAT_VCATCH  0x00000008  // Vector catch
+#define NVIC_DEBUG_STAT_DWTTRAP 0x00000004  // DWT match
+#define NVIC_DEBUG_STAT_BKPT    0x00000002  // Breakpoint instruction
+#define NVIC_DEBUG_STAT_HALTED  0x00000001  // Halt request
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_MM_ADDR register.
+//
+//*****************************************************************************
+#define NVIC_MM_ADDR_M          0xFFFFFFFF  // Fault Address
+#define NVIC_MM_ADDR_S          0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_FAULT_ADDR
+// register.
+//
+//*****************************************************************************
+#define NVIC_FAULT_ADDR_M       0xFFFFFFFF  // Fault Address
+#define NVIC_FAULT_ADDR_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_CPAC register.
+//
+//*****************************************************************************
+#define NVIC_CPAC_CP11_M        0x00C00000  // CP11 Coprocessor Access
+                                            // Privilege
+#define NVIC_CPAC_CP11_DIS      0x00000000  // Access Denied
+#define NVIC_CPAC_CP11_PRIV     0x00400000  // Privileged Access Only
+#define NVIC_CPAC_CP11_FULL     0x00C00000  // Full Access
+#define NVIC_CPAC_CP10_M        0x00300000  // CP10 Coprocessor Access
+                                            // Privilege
+#define NVIC_CPAC_CP10_DIS      0x00000000  // Access Denied
+#define NVIC_CPAC_CP10_PRIV     0x00100000  // Privileged Access Only
+#define NVIC_CPAC_CP10_FULL     0x00300000  // Full Access
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_MPU_TYPE register.
+//
+//*****************************************************************************
+#define NVIC_MPU_TYPE_IREGION_M 0x00FF0000  // Number of I Regions
+#define NVIC_MPU_TYPE_DREGION_M 0x0000FF00  // Number of D Regions
+#define NVIC_MPU_TYPE_SEPARATE  0x00000001  // Separate or Unified MPU
+#define NVIC_MPU_TYPE_IREGION_S 16
+#define NVIC_MPU_TYPE_DREGION_S 8
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_MPU_CTRL register.
+//
+//*****************************************************************************
+#define NVIC_MPU_CTRL_PRIVDEFEN 0x00000004  // MPU Default Region
+#define NVIC_MPU_CTRL_HFNMIENA  0x00000002  // MPU Enabled During Faults
+#define NVIC_MPU_CTRL_ENABLE    0x00000001  // MPU Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_MPU_NUMBER
+// register.
+//
+//*****************************************************************************
+#define NVIC_MPU_NUMBER_M       0x00000007  // MPU Region to Access
+#define NVIC_MPU_NUMBER_S       0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_MPU_BASE register.
+//
+//*****************************************************************************
+#define NVIC_MPU_BASE_ADDR_M    0xFFFFFFE0  // Base Address Mask
+#define NVIC_MPU_BASE_VALID     0x00000010  // Region Number Valid
+#define NVIC_MPU_BASE_REGION_M  0x00000007  // Region Number
+#define NVIC_MPU_BASE_ADDR_S    5
+#define NVIC_MPU_BASE_REGION_S  0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_MPU_ATTR register.
+//
+//*****************************************************************************
+#define NVIC_MPU_ATTR_XN        0x10000000  // Instruction Access Disable
+#define NVIC_MPU_ATTR_AP_M      0x07000000  // Access Privilege
+#define NVIC_MPU_ATTR_TEX_M     0x00380000  // Type Extension Mask
+#define NVIC_MPU_ATTR_SHAREABLE 0x00040000  // Shareable
+#define NVIC_MPU_ATTR_CACHEABLE 0x00020000  // Cacheable
+#define NVIC_MPU_ATTR_BUFFRABLE 0x00010000  // Bufferable
+#define NVIC_MPU_ATTR_SRD_M     0x0000FF00  // Subregion Disable Bits
+#define NVIC_MPU_ATTR_SIZE_M    0x0000003E  // Region Size Mask
+#define NVIC_MPU_ATTR_ENABLE    0x00000001  // Region Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_MPU_BASE1 register.
+//
+//*****************************************************************************
+#define NVIC_MPU_BASE1_ADDR_M   0xFFFFFFE0  // Base Address Mask
+#define NVIC_MPU_BASE1_VALID    0x00000010  // Region Number Valid
+#define NVIC_MPU_BASE1_REGION_M 0x00000007  // Region Number
+#define NVIC_MPU_BASE1_ADDR_S   5
+#define NVIC_MPU_BASE1_REGION_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_MPU_ATTR1 register.
+//
+//*****************************************************************************
+#define NVIC_MPU_ATTR1_XN       0x10000000  // Instruction Access Disable
+#define NVIC_MPU_ATTR1_AP_M     0x07000000  // Access Privilege
+#define NVIC_MPU_ATTR1_TEX_M    0x00380000  // Type Extension Mask
+#define NVIC_MPU_ATTR1_SHAREABLE                                              \
+                                0x00040000  // Shareable
+#define NVIC_MPU_ATTR1_CACHEABLE                                              \
+                                0x00020000  // Cacheable
+#define NVIC_MPU_ATTR1_BUFFRABLE                                              \
+                                0x00010000  // Bufferable
+#define NVIC_MPU_ATTR1_SRD_M    0x0000FF00  // Subregion Disable Bits
+#define NVIC_MPU_ATTR1_SIZE_M   0x0000003E  // Region Size Mask
+#define NVIC_MPU_ATTR1_ENABLE   0x00000001  // Region Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_MPU_BASE2 register.
+//
+//*****************************************************************************
+#define NVIC_MPU_BASE2_ADDR_M   0xFFFFFFE0  // Base Address Mask
+#define NVIC_MPU_BASE2_VALID    0x00000010  // Region Number Valid
+#define NVIC_MPU_BASE2_REGION_M 0x00000007  // Region Number
+#define NVIC_MPU_BASE2_ADDR_S   5
+#define NVIC_MPU_BASE2_REGION_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_MPU_ATTR2 register.
+//
+//*****************************************************************************
+#define NVIC_MPU_ATTR2_XN       0x10000000  // Instruction Access Disable
+#define NVIC_MPU_ATTR2_AP_M     0x07000000  // Access Privilege
+#define NVIC_MPU_ATTR2_TEX_M    0x00380000  // Type Extension Mask
+#define NVIC_MPU_ATTR2_SHAREABLE                                              \
+                                0x00040000  // Shareable
+#define NVIC_MPU_ATTR2_CACHEABLE                                              \
+                                0x00020000  // Cacheable
+#define NVIC_MPU_ATTR2_BUFFRABLE                                              \
+                                0x00010000  // Bufferable
+#define NVIC_MPU_ATTR2_SRD_M    0x0000FF00  // Subregion Disable Bits
+#define NVIC_MPU_ATTR2_SIZE_M   0x0000003E  // Region Size Mask
+#define NVIC_MPU_ATTR2_ENABLE   0x00000001  // Region Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_MPU_BASE3 register.
+//
+//*****************************************************************************
+#define NVIC_MPU_BASE3_ADDR_M   0xFFFFFFE0  // Base Address Mask
+#define NVIC_MPU_BASE3_VALID    0x00000010  // Region Number Valid
+#define NVIC_MPU_BASE3_REGION_M 0x00000007  // Region Number
+#define NVIC_MPU_BASE3_ADDR_S   5
+#define NVIC_MPU_BASE3_REGION_S 0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_MPU_ATTR3 register.
+//
+//*****************************************************************************
+#define NVIC_MPU_ATTR3_XN       0x10000000  // Instruction Access Disable
+#define NVIC_MPU_ATTR3_AP_M     0x07000000  // Access Privilege
+#define NVIC_MPU_ATTR3_TEX_M    0x00380000  // Type Extension Mask
+#define NVIC_MPU_ATTR3_SHAREABLE                                              \
+                                0x00040000  // Shareable
+#define NVIC_MPU_ATTR3_CACHEABLE                                              \
+                                0x00020000  // Cacheable
+#define NVIC_MPU_ATTR3_BUFFRABLE                                              \
+                                0x00010000  // Bufferable
+#define NVIC_MPU_ATTR3_SRD_M    0x0000FF00  // Subregion Disable Bits
+#define NVIC_MPU_ATTR3_SIZE_M   0x0000003E  // Region Size Mask
+#define NVIC_MPU_ATTR3_ENABLE   0x00000001  // Region Enable
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_DBG_CTRL register.
+//
+//*****************************************************************************
+#define NVIC_DBG_CTRL_DBGKEY_M  0xFFFF0000  // Debug key mask
+#define NVIC_DBG_CTRL_DBGKEY    0xA05F0000  // Debug key
+#define NVIC_DBG_CTRL_S_RESET_ST                                              \
+                                0x02000000  // Core has reset since last read
+#define NVIC_DBG_CTRL_S_RETIRE_ST                                             \
+                                0x01000000  // Core has executed insruction
+                                            // since last read
+#define NVIC_DBG_CTRL_S_LOCKUP  0x00080000  // Core is locked up
+#define NVIC_DBG_CTRL_S_SLEEP   0x00040000  // Core is sleeping
+#define NVIC_DBG_CTRL_S_HALT    0x00020000  // Core status on halt
+#define NVIC_DBG_CTRL_S_REGRDY  0x00010000  // Register read/write available
+#define NVIC_DBG_CTRL_C_SNAPSTALL                                             \
+                                0x00000020  // Breaks a stalled load/store
+#define NVIC_DBG_CTRL_C_MASKINT 0x00000008  // Mask interrupts when stepping
+#define NVIC_DBG_CTRL_C_STEP    0x00000004  // Step the core
+#define NVIC_DBG_CTRL_C_HALT    0x00000002  // Halt the core
+#define NVIC_DBG_CTRL_C_DEBUGEN 0x00000001  // Enable debug
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_DBG_XFER register.
+//
+//*****************************************************************************
+#define NVIC_DBG_XFER_REG_WNR   0x00010000  // Write or not read
+#define NVIC_DBG_XFER_REG_SEL_M 0x0000001F  // Register
+#define NVIC_DBG_XFER_REG_R0    0x00000000  // Register R0
+#define NVIC_DBG_XFER_REG_R1    0x00000001  // Register R1
+#define NVIC_DBG_XFER_REG_R2    0x00000002  // Register R2
+#define NVIC_DBG_XFER_REG_R3    0x00000003  // Register R3
+#define NVIC_DBG_XFER_REG_R4    0x00000004  // Register R4
+#define NVIC_DBG_XFER_REG_R5    0x00000005  // Register R5
+#define NVIC_DBG_XFER_REG_R6    0x00000006  // Register R6
+#define NVIC_DBG_XFER_REG_R7    0x00000007  // Register R7
+#define NVIC_DBG_XFER_REG_R8    0x00000008  // Register R8
+#define NVIC_DBG_XFER_REG_R9    0x00000009  // Register R9
+#define NVIC_DBG_XFER_REG_R10   0x0000000A  // Register R10
+#define NVIC_DBG_XFER_REG_R11   0x0000000B  // Register R11
+#define NVIC_DBG_XFER_REG_R12   0x0000000C  // Register R12
+#define NVIC_DBG_XFER_REG_R13   0x0000000D  // Register R13
+#define NVIC_DBG_XFER_REG_R14   0x0000000E  // Register R14
+#define NVIC_DBG_XFER_REG_R15   0x0000000F  // Register R15
+#define NVIC_DBG_XFER_REG_FLAGS 0x00000010  // xPSR/Flags register
+#define NVIC_DBG_XFER_REG_MSP   0x00000011  // Main SP
+#define NVIC_DBG_XFER_REG_PSP   0x00000012  // Process SP
+#define NVIC_DBG_XFER_REG_DSP   0x00000013  // Deep SP
+#define NVIC_DBG_XFER_REG_CFBP  0x00000014  // Control/Fault/BasePri/PriMask
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_DBG_DATA register.
+//
+//*****************************************************************************
+#define NVIC_DBG_DATA_M         0xFFFFFFFF  // Data temporary cache
+#define NVIC_DBG_DATA_S         0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_DBG_INT register.
+//
+//*****************************************************************************
+#define NVIC_DBG_INT_HARDERR    0x00000400  // Debug trap on hard fault
+#define NVIC_DBG_INT_INTERR     0x00000200  // Debug trap on interrupt errors
+#define NVIC_DBG_INT_BUSERR     0x00000100  // Debug trap on bus error
+#define NVIC_DBG_INT_STATERR    0x00000080  // Debug trap on usage fault state
+#define NVIC_DBG_INT_CHKERR     0x00000040  // Debug trap on usage fault check
+#define NVIC_DBG_INT_NOCPERR    0x00000020  // Debug trap on coprocessor error
+#define NVIC_DBG_INT_MMERR      0x00000010  // Debug trap on mem manage fault
+#define NVIC_DBG_INT_RESET      0x00000008  // Core reset status
+#define NVIC_DBG_INT_RSTPENDCLR 0x00000004  // Clear pending core reset
+#define NVIC_DBG_INT_RSTPENDING 0x00000002  // Core reset is pending
+#define NVIC_DBG_INT_RSTVCATCH  0x00000001  // Reset vector catch
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_SW_TRIG register.
+//
+//*****************************************************************************
+#define NVIC_SW_TRIG_INTID_M    0x000000FF  // Interrupt ID
+#define NVIC_SW_TRIG_INTID_S    0
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_FPCC register.
+//
+//*****************************************************************************
+#define NVIC_FPCC_ASPEN         0x80000000  // Automatic State Preservation
+                                            // Enable
+#define NVIC_FPCC_LSPEN         0x40000000  // Lazy State Preservation Enable
+#define NVIC_FPCC_MONRDY        0x00000100  // Monitor Ready
+#define NVIC_FPCC_BFRDY         0x00000040  // Bus Fault Ready
+#define NVIC_FPCC_MMRDY         0x00000020  // Memory Management Fault Ready
+#define NVIC_FPCC_HFRDY         0x00000010  // Hard Fault Ready
+#define NVIC_FPCC_THREAD        0x00000008  // Thread Mode
+#define NVIC_FPCC_USER          0x00000002  // User Privilege Level
+#define NVIC_FPCC_LSPACT        0x00000001  // Lazy State Preservation Active
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_FPCA register.
+//
+//*****************************************************************************
+#define NVIC_FPCA_ADDRESS_M     0xFFFFFFF8  // Address
+#define NVIC_FPCA_ADDRESS_S     3
+
+//*****************************************************************************
+//
+// The following are defines for the bit fields in the NVIC_FPDSC register.
+//
+//*****************************************************************************
+#define NVIC_FPDSC_AHP          0x04000000  // AHP Bit Default
+#define NVIC_FPDSC_DN           0x02000000  // DN Bit Default
+#define NVIC_FPDSC_FZ           0x01000000  // FZ Bit Default
+#define NVIC_FPDSC_RMODE_M      0x00C00000  // RMODE Bit Default
+#define NVIC_FPDSC_RMODE_RN     0x00000000  // Round to Nearest (RN) mode
+#define NVIC_FPDSC_RMODE_RP     0x00400000  // Round towards Plus Infinity (RP)
+                                            // mode
+#define NVIC_FPDSC_RMODE_RM     0x00800000  // Round towards Minus Infinity
+                                            // (RM) mode
+#define NVIC_FPDSC_RMODE_RZ     0x00C00000  // Round towards Zero (RZ) mode
+
+//*****************************************************************************
+//
+// The following definitions are deprecated.
+//
+//*****************************************************************************
+#ifndef DEPRECATED
+#define SYSCTL_DID0_CLASS_BLIZZARD                                            \
+                                0x00050000  // Tiva(TM) C Series TM4C123-class
+                                            // microcontrollers
+
+#endif
+
+#endif // __TM4C123GH6PZ_H__

+ 94 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/interrupt.h

@@ -0,0 +1,94 @@
+//*****************************************************************************
+//
+// interrupt.h - Prototypes for the NVIC Interrupt Controller Driver.
+//
+// Copyright (c) 2005-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Peripheral Driver Library.
+//
+//*****************************************************************************
+
+#ifndef __DRIVERLIB_INTERRUPT_H__
+#define __DRIVERLIB_INTERRUPT_H__
+
+//*****************************************************************************
+//
+// If building with a C++ compiler, make all of the definitions in this header
+// have a C binding.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+//*****************************************************************************
+//
+// Macro to generate an interrupt priority mask based on the number of bits
+// of priority supported by the hardware.
+//
+//*****************************************************************************
+#define INT_PRIORITY_MASK       ((0xFF << (8 - NUM_PRIORITY_BITS)) & 0xFF)
+
+//*****************************************************************************
+//
+// Prototypes for the APIs.
+//
+//*****************************************************************************
+extern bool IntMasterEnable(void);
+extern bool IntMasterDisable(void);
+extern void IntRegister(uint32_t ui32Interrupt, void (*pfnHandler)(void));
+extern void IntUnregister(uint32_t ui32Interrupt);
+extern void IntPriorityGroupingSet(uint32_t ui32Bits);
+extern uint32_t IntPriorityGroupingGet(void);
+extern void IntPrioritySet(uint32_t ui32Interrupt,
+                           uint8_t ui8Priority);
+extern int32_t IntPriorityGet(uint32_t ui32Interrupt);
+extern void IntEnable(uint32_t ui32Interrupt);
+extern void IntDisable(uint32_t ui32Interrupt);
+extern uint32_t IntIsEnabled(uint32_t ui32Interrupt);
+extern void IntPendSet(uint32_t ui32Interrupt);
+extern void IntPendClear(uint32_t ui32Interrupt);
+extern void IntPriorityMaskSet(uint32_t ui32PriorityMask);
+extern uint32_t IntPriorityMaskGet(void);
+extern void IntTrigger(uint32_t ui32Interrupt);
+
+//*****************************************************************************
+//
+// Mark the end of the C bindings section for C++ compilers.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __DRIVERLIB_INTERRUPT_H__

+ 487 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/lcd.h

@@ -0,0 +1,487 @@
+//*****************************************************************************
+//
+// lcd.h - Defines and Macros for the LCD Controller module.
+//
+// Copyright (c) 2012-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Peripheral Driver Library.
+//
+//*****************************************************************************
+
+#ifndef __DRIVERLIB_LCD_H__
+#define __DRIVERLIB_LCD_H__
+
+//*****************************************************************************
+//
+//! \addtogroup lcd_api
+//! @{
+//
+//*****************************************************************************
+
+//*****************************************************************************
+//
+// If building with a C++ compiler, make all of the definitions in this header
+// have a C binding.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+//*****************************************************************************
+//
+//! This macro can be used to convert a 24-bit RGB color value as used by the
+//! TivaWare Graphics Library into a 12-bit LCD controller color palette
+//! entry.
+//
+//*****************************************************************************
+#define PAL_FROM_RGB(ui32RGBColor) (((ui32RGBColor & 0xF0) >> 4) |            \
+                                    ((ui32RGBColor & 0xF000) >> 8) |          \
+                                    ((ui32RGBColor & 0xF00000) >> 12))
+
+//*****************************************************************************
+//
+//! This macro can be used to convert from time in microseconds to periods of
+//! the supplied clock in Hertz as required when setting up the LIDD and raster
+//! timing structures.  The calculation will round such that the number of
+//! cycles returned represents no longer a time than specified in the
+//! ui32Time_uS parameter.  Values of ui32Time_uS less than or equal to
+//! 4294967uS (4.29 seconds) are supported by the macro.  Larger values will
+//! cause arithmetic overflow and yield incorrect values.  It is further
+//! assumed that ui32ClockFreq is a non-zero multiple of 1000000 (1MHz).
+//
+//*****************************************************************************
+#define CYCLES_FROM_TIME_US(ui32ClockFreq, ui32Time_uS)                       \
+    (((ui32Time_uS) == 0) ? 0 :                                               \
+    (((ui32ClockFreq) / 1000000) * ((((ui32Time_uS) * 1000) - 1) / 1000)) + 1)
+
+//*****************************************************************************
+//
+//! This macro can be used to convert from time in nanoseconds to periods of
+//! the supplied clock in Hertz as required when setting up the LIDD and raster
+//! timing structures.  The calculation will round such that the number of
+//! cycles returned represents no longer a time than specified in the
+//! ui32Time_nS parameter.  Values of ui32Time_nS less than or equal to
+//! 35791394 (35.79 milliseconds) are supported by the macro.  Larger values
+//! will cause arithmetic overflow and yield incorrect values.  It is further
+//! assumed that ui32ClockFreq is a non-zero multiple of 1000000 (1MHz).
+//
+//*****************************************************************************
+#define CYCLES_FROM_TIME_NS(ui32ClockFreq, ui32Time_nS)                       \
+    (((ui32Time_nS) == 0) ? 0 :                                               \
+    ((((((ui32ClockFreq) / 1000000) * ((ui32Time_nS) - 1)) / 1000)) + 1))
+
+//*****************************************************************************
+//
+//! A structure containing timing parameters for the LIDD (LCD Interface
+//! Display Driver) interface.  This is used with the LCDIDDTimingSet function.
+//
+//*****************************************************************************
+typedef struct
+{
+    //
+    //! Write Strobe Set-Up cycles.  When performing a write access, this
+    //! field defines the number of MCLK cycles that Data Bus/Pad Output
+    //! Enable, ALE, the Direction bit, and Chip Select have to be ready before
+    //! the Write Strobe is asserted.  Valid values are from 0 to 31.
+    //
+    uint8_t ui8WSSetup;
+
+    //
+    //! Write Strobe Duration cycles.  Field value defines the number of MCLK
+    //! cycles for which the Write Strobe is held active when performing a
+    //! write access.  Valid values are from 1 to 63.
+    //
+    uint8_t ui8WSDuration;
+
+    //
+    //! Write Strobe Hold cycles.  Field value defines the number of MCLK
+    //! cycles for which Data Bus/Pad Output Enable, ALE, the Direction bit,
+    //! and Chip Select are held after the Write Strobe is deasserted when
+    //! performing a write access.  Valid values are from 1 to 15.
+    //
+    uint8_t ui8WSHold;
+
+    //
+    //! Read Strobe Set-Up cycles.  When performing a read access, this field
+    //! defines the number of MCLK cycles that Data Bus/Pad Output Enable, ALE,
+    //! the Direction bit, and Chip Select have to be ready before the Read
+    //! Strobe is asserted.  Valid values are from 0 to 31.
+    //
+    uint8_t ui8RSSetup;
+
+    //
+    //! Read Strobe Duration cycles.  Field value defines the number of MCLK
+    //! cycles for which the Read Strobe is held active when performing a read
+    //! access.  Valid values are from 1 to 63.
+    //
+    uint8_t ui8RSDuration;
+
+    //
+    //! Read Strobe Hold cycles.  Field value defines the number of MCLK cycles
+    //! for which Data Bus/Pad Output Enable, ALE, the Direction bit, and Chip
+    //! Select are held after the Read Strobe is deasserted when performing a
+    //! read access.  Valid values are from 1 to 15.
+    //
+    uint8_t ui8RSHold;
+
+    //
+    //! Field value defines the number of MCLK cycles between the end of one
+    //! device access and the start of another device access using the same
+    //! Chip Select unless the two accesses are both Reads.  In this case,
+    //! this delay is not incurred.  Valid vales are from 1 to 4.
+    //
+    uint8_t ui8DelayCycles;
+}
+tLCDIDDTiming;
+
+//
+// Values which can be ORed together within the ui32Flags field of the
+// tLCDRasterTiming structure.
+//
+#define RASTER_TIMING_SYNCS_OPPOSITE_PIXCLK                                   \
+                                0x00000000
+#define RASTER_TIMING_SYNCS_ON_RISING_PIXCLK                                  \
+                                0x02000000
+#define RASTER_TIMING_SYNCS_ON_FALLING_PIXCLK                                 \
+                                0x03000000
+#define RASTER_TIMING_ACTIVE_HIGH_OE                                          \
+                                0x00000000
+#define RASTER_TIMING_ACTIVE_LOW_OE                                           \
+                                0x00800000
+#define RASTER_TIMING_ACTIVE_HIGH_PIXCLK                                      \
+                                0x00000000
+#define RASTER_TIMING_ACTIVE_LOW_PIXCLK                                       \
+                                0x00400000
+#define RASTER_TIMING_ACTIVE_HIGH_HSYNC                                       \
+                                0x00000000
+#define RASTER_TIMING_ACTIVE_LOW_HSYNC                                        \
+                                0x00200000
+#define RASTER_TIMING_ACTIVE_HIGH_VSYNC                                       \
+                                0x00000000
+#define RASTER_TIMING_ACTIVE_LOW_VSYNC                                        \
+                                0x00100000
+
+//
+//! A structure containing timing parameters for the raster interface.  This is
+//! used with the LCDRasterTimingSet function.
+//
+typedef struct
+{
+    //
+    //! Flags configuring the polarity and active edges of the various signals
+    //! in the raster interface.  This field is comprised of a logical OR of
+    //! the labels with prefix  ``RASTER_TIMING_''.
+    //
+    uint32_t ui32Flags;
+
+    //
+    //! The number of pixels contained within each line on the LCD display.
+    //! Valid values are multiple of 16 less than or equal to 2048.
+    //
+    uint16_t ui16PanelWidth;
+
+    //
+    //! The number of lines on the LCD display.  Valid values are from 1 to
+    //! 2048.
+    //
+    uint16_t ui16PanelHeight;
+
+    //
+    //! A value from 1 to 1024 that specifies the number of pixel clock periods
+    //! to add to the end of each line after active video has ended.
+    //
+    uint16_t ui16HFrontPorch;
+
+    //
+    //! A value from 1 to 1024 that specifies the number of pixel clock periods
+    //! to add to the beginning of a line before active video is asserted.
+    //
+    uint16_t ui16HBackPorch;
+
+    //
+    //! A value from 1 to 1024 that specifies the number of pixel clock periods
+    //! to pulse the line clock at the end of each line.
+    //
+    uint16_t ui16HSyncWidth;
+
+    //
+    //! A value from 0 to 255 that specifies the number of line clock periods
+    //! to add to the end of each frame after the last active line.
+    //
+    uint8_t ui8VFrontPorch;
+
+    //
+    //! A value from 0 to 255 that specifies the number of line clock periods
+    //! to add to the beginning of a frame before the first active line is
+    //! output to the display.
+    //
+    uint8_t ui8VBackPorch;
+
+    //
+    //! In active mode, a value from 1 to 64 that specifies the number of
+    //! line clock periods to set the lcd_fp pin active at the end of each
+    //! frame after the vertical front porch period elapses.  The number of
+    //! The frame clock is used as the VSYNC signal in active mode.
+    //!
+    //! In passive mode, a value from 1 to 64 that specifies the number of
+    //! extra line clock periods to insert after the vertical front porch
+    //! period has elapsed.  Note that the width of lcd_fp is not affected by
+    //! this value in passive mode.
+    //
+    uint8_t ui8VSyncWidth;
+
+    //
+    //! A value from 0 to 255 that specifies the number of line clocks to
+    //! count before transitioning the AC Bias pin.  This pin is used to
+    //! periodically invert the polarity of the power supply to prevent DC
+    //! charge build-up within the display.
+    //
+    uint8_t ui8ACBiasLineCount;
+}
+tLCDRasterTiming;
+
+//*****************************************************************************
+//
+// Possible values for the ui8Mode parameter to LCDModeSet().  The label
+// LCD_MODE_AUTO_UFLOW_RESTART may be ORed with either of the other two.
+//
+//*****************************************************************************
+#define LCD_MODE_LIDD           ((uint8_t)0x00)
+#define LCD_MODE_RASTER         ((uint8_t)0x01)
+#define LCD_MODE_AUTO_UFLOW_RESTART                                           \
+                                ((uint8_t)0x02)
+
+//*****************************************************************************
+//
+// Values used to construct the ui32Config parameter to LCDIDDConfigSet().
+//
+//*****************************************************************************
+#define LIDD_CONFIG_SYNC_MPU68  0x00000000
+#define LIDD_CONFIG_ASYNC_MPU68 0x00000001
+#define LIDD_CONFIG_SYNC_MPU80  0x00000002
+#define LIDD_CONFIG_ASYNC_MPU80 0x00000003
+#define LIDD_CONFIG_ASYNC_HITACHI                                             \
+                                0x00000004
+#define LIDD_CONFIG_INVERT_ALE  0x00000008
+#define LIDD_CONFIG_INVERT_RS_EN                                              \
+                                0x00000010
+#define LIDD_CONFIG_INVERT_WS_DIR                                             \
+                                0x00000020
+#define LIDD_CONFIG_INVERT_CS0  0x00000040
+#define LIDD_CONFIG_INVERT_CS1  0x00000080
+
+//*****************************************************************************
+//
+// Values used to construct the ui32Config parameter to
+// LCDRasterConfigSet().  Valid parameters contain one of the RASTER_FMT_xxx
+// labels optionally ORed with the other flags.  Only one of
+// RASTER_LOAD_DATA_ONLY and RASTER_LOAD_PALETTE_ONLY may be specified (if
+// neither is specified, the controller will load both palette and data when
+// scanning out the frame buffer).
+//
+//*****************************************************************************
+#define RASTER_FMT_ACTIVE_24BPP_PACKED                                        \
+                                0x02000080
+#define RASTER_FMT_ACTIVE_24BPP_UNPACKED                                      \
+                                0x06000080
+#define RASTER_FMT_ACTIVE_PALETTIZED_12BIT                                    \
+                                0x00000080
+#define RASTER_FMT_ACTIVE_PALETTIZED_16BIT                                    \
+                                0x00800080
+#define RASTER_FMT_PASSIVE_MONO_4PIX                                          \
+                                0x00000002
+#define RASTER_FMT_PASSIVE_MONO_8PIX                                          \
+                                0x00000202
+#define RASTER_FMT_PASSIVE_PALETTIZED                                         \
+                                0x00000000
+#define RASTER_FMT_PASSIVE_COLOR_12BIT                                        \
+                                0x00000000
+#define RASTER_FMT_PASSIVE_COLOR_16BIT                                        \
+                                0x01000000
+#define RASTER_ACTVID_DURING_BLANK                                            \
+                                0x08000000
+#define RASTER_NIBBLE_MODE_ENABLED                                            \
+                                0x00400000
+#define RASTER_LOAD_DATA_ONLY   0x00200000
+#define RASTER_LOAD_PALETTE_ONLY                                              \
+                                0x00100000
+#define RASTER_READ_ORDER_REVERSED                                            \
+                                0x00000100
+
+//*****************************************************************************
+//
+// Interrupt sources for the LCD controller.  These may be ORed together and
+// passed to LCDIntEnable(), LCDIntDisable() and LCDIntClear().  They are also
+// returned by LCDIntStatus().
+//
+//*****************************************************************************
+#define LCD_INT_DMA_DONE        0x00000001
+#define LCD_INT_RASTER_FRAME_DONE                                             \
+                                0x00000002
+#define LCD_INT_SYNC_LOST       0x00000004
+#define LCD_INT_AC_BIAS_CNT     0x00000008
+#define LCD_INT_UNDERFLOW       0x00000020
+#define LCD_INT_PAL_LOAD        0x00000040
+#define LCD_INT_EOF0            0x00000100
+#define LCD_INT_EOF1            0x00000200
+
+//*****************************************************************************
+//
+// Configuration values used with LCDDMAConfigSet().
+//
+//*****************************************************************************
+#define LCD_DMA_FIFORDY_8_WORDS 0x00000000
+#define LCD_DMA_FIFORDY_16_WORDS                                              \
+                                0x00000100
+#define LCD_DMA_FIFORDY_32_WORDS                                              \
+                                0x00000200
+#define LCD_DMA_FIFORDY_64_WORDS                                              \
+                                0x00000300
+#define LCD_DMA_FIFORDY_128_WORDS                                             \
+                                0x00000400
+#define LCD_DMA_FIFORDY_256_WORDS                                             \
+                                0x00000500
+#define LCD_DMA_FIFORDY_512_WORDS                                             \
+                                0x00000600
+#define LCD_DMA_BURST_1         0x00000010
+#define LCD_DMA_BURST_2         0x00000010
+#define LCD_DMA_BURST_4         0x00000020
+#define LCD_DMA_BURST_8         0x00000030
+#define LCD_DMA_BURST_16        0x00000040
+#define LCD_DMA_BYTE_ORDER_0123 0x00000000
+#define LCD_DMA_BYTE_ORDER_1023 0x00000008
+#define LCD_DMA_BYTE_ORDER_3210 0x00000002
+#define LCD_DMA_BYTE_ORDER_2301 0x0000000A
+#define LCD_DMA_PING_PONG       0x00000001
+
+//*****************************************************************************
+//
+// Type values used with LCDRasterPaletteSet().
+//
+//*****************************************************************************
+#define LCD_PALETTE_TYPE_1BPP   0x00000000
+#define LCD_PALETTE_TYPE_2BPP   0x00001000
+#define LCD_PALETTE_TYPE_4BPP   0x00002000
+#define LCD_PALETTE_TYPE_8BPP   0x00003000
+#define LCD_PALETTE_TYPE_DIRECT 0x00004000
+#define LCD_PALETTE_SRC_24BIT   0x80000000
+
+//*****************************************************************************
+//
+// Flags used in the ui32Clocks parameter to LCDClockReset().
+//
+//*****************************************************************************
+#define LCD_CLOCK_MAIN          0x00000008
+#define LCD_CLOCK_DMA           0x00000004
+#define LCD_CLOCK_LIDD          0x00000002
+#define LCD_CLOCK_CORE          0x00000001
+
+//*****************************************************************************
+//
+// Flags used in with LCDSubPanelConfigSet().
+//
+//*****************************************************************************
+#define LCD_SUBPANEL_AT_TOP     0x20000000
+#define LCD_SUBPANEL_AT_BOTTOM  0x00000000
+
+//*****************************************************************************
+//
+// Close the Doxygen group.
+//! @}
+//
+//*****************************************************************************
+
+//*****************************************************************************
+//
+// Function Prototypes.
+//
+//*****************************************************************************
+extern uint32_t LCDModeSet(uint32_t ui32Base, uint8_t ui8Mode,
+                           uint32_t ui32PixClk, uint32_t ui32SysClk);
+extern void LCDClockReset(uint32_t ui32Base, uint32_t ui32Clocks);
+extern void LCDIDDConfigSet(uint32_t ui32Base, uint32_t ui32Config);
+extern void LCDIDDTimingSet(uint32_t ui32Base, uint32_t ui32CS,
+                            const tLCDIDDTiming *pTiming);
+extern void LCDIDDDMADisable(uint32_t ui32Base);
+extern void LCDIDDCommandWrite(uint32_t ui32Base, uint32_t ui32CS,
+                               uint16_t ui16Cmd);
+extern void LCDIDDDataWrite(uint32_t ui32Base, uint32_t ui32CS,
+                            uint16_t ui16Data);
+extern void LCDIDDIndexedWrite(uint32_t ui32Base, uint32_t ui32CS,
+                               uint16_t ui16Addr, uint16_t ui16Data);
+extern uint16_t LCDIDDStatusRead(uint32_t ui32Base, uint32_t ui32CS);
+extern uint16_t LCDIDDDataRead(uint32_t ui32Base, uint32_t ui32CS);
+extern uint16_t LCDIDDIndexedRead(uint32_t ui32Base, uint32_t ui32CS,
+                                  uint16_t ui16Addr);
+extern void LCDIDDDMAWrite(uint32_t ui32Base, uint32_t ui32CS,
+                           const uint32_t *pui32Data, uint32_t ui32Count);
+extern void LCDRasterConfigSet(uint32_t ui32Base, uint32_t ui32Config,
+                               uint8_t ui8PalLoadDelay);
+extern void LCDRasterTimingSet(uint32_t ui32Base,
+                               const tLCDRasterTiming *pTiming);
+extern void LCDRasterACBiasIntCountSet(uint32_t ui32Base, uint8_t ui8Count);
+extern void LCDRasterEnable(uint32_t ui32Base);
+extern bool LCDRasterEnabled(uint32_t ui32Base);
+extern void LCDRasterDisable(uint32_t ui32Base);
+extern void LCDRasterSubPanelConfigSet(uint32_t ui32Base, uint32_t ui32Flags,
+                                       uint32_t ui32BottomLines,
+                                       uint32_t ui32DefaultPixel);
+extern void LCDRasterSubPanelEnable(uint32_t ui32Base);
+extern void LCDRasterSubPanelDisable(uint32_t ui32Base);
+extern void LCDDMAConfigSet(uint32_t ui32Base, uint32_t ui32Config);
+extern void LCDRasterPaletteSet(uint32_t ui32Base, uint32_t ui32Type,
+                                uint32_t *pui32PalAddr,
+                                const uint32_t *pui32SrcColors,
+                                uint32_t ui32Start,
+                                uint32_t ui32Count);
+extern void LCDRasterFrameBufferSet(uint32_t ui32Base, uint8_t ui8Buffer,
+                                    uint32_t *pui32Addr,
+                                    uint32_t ui32NumBytes);
+extern void LCDIntEnable(uint32_t ui32Base, uint32_t ui32IntFlags);
+extern void LCDIntDisable(uint32_t ui32Base, uint32_t ui32IntFlags);
+extern uint32_t LCDIntStatus(uint32_t ui32Base, bool bMasked);
+extern void LCDIntClear(uint32_t ui32Base, uint32_t ui32IntFlags);
+extern void LCDIntRegister(uint32_t ui32Base, void (*pfnHandler)(void));
+extern void LCDIntUnregister(uint32_t ui32Base);
+
+//*****************************************************************************
+//
+// Mark the end of the C bindings section for C++ compilers.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __DRIVERLIB_LCD_H__

+ 162 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/mpu.h

@@ -0,0 +1,162 @@
+//*****************************************************************************
+//
+// mpu.h - Defines and Macros for the memory protection unit.
+//
+// Copyright (c) 2005-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Peripheral Driver Library.
+//
+//*****************************************************************************
+
+#ifndef __DRIVERLIB_MPU_H__
+#define __DRIVERLIB_MPU_H__
+
+//*****************************************************************************
+//
+// If building with a C++ compiler, make all of the definitions in this header
+// have a C binding.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+//*****************************************************************************
+//
+// Flags that can be passed to MPUEnable.
+//
+//*****************************************************************************
+#define MPU_CONFIG_PRIV_DEFAULT     4
+#define MPU_CONFIG_HARDFLT_NMI      2
+#define MPU_CONFIG_NONE             0
+
+//*****************************************************************************
+//
+// Flags for the region size to be passed to MPURegionSet.
+//
+//*****************************************************************************
+#define MPU_RGN_SIZE_32B            (4 << 1)
+#define MPU_RGN_SIZE_64B            (5 << 1)
+#define MPU_RGN_SIZE_128B           (6 << 1)
+#define MPU_RGN_SIZE_256B           (7 << 1)
+#define MPU_RGN_SIZE_512B           (8 << 1)
+
+#define MPU_RGN_SIZE_1K             (9 << 1)
+#define MPU_RGN_SIZE_2K             (10 << 1)
+#define MPU_RGN_SIZE_4K             (11 << 1)
+#define MPU_RGN_SIZE_8K             (12 << 1)
+#define MPU_RGN_SIZE_16K            (13 << 1)
+#define MPU_RGN_SIZE_32K            (14 << 1)
+#define MPU_RGN_SIZE_64K            (15 << 1)
+#define MPU_RGN_SIZE_128K           (16 << 1)
+#define MPU_RGN_SIZE_256K           (17 << 1)
+#define MPU_RGN_SIZE_512K           (18 << 1)
+
+#define MPU_RGN_SIZE_1M             (19 << 1)
+#define MPU_RGN_SIZE_2M             (20 << 1)
+#define MPU_RGN_SIZE_4M             (21 << 1)
+#define MPU_RGN_SIZE_8M             (22 << 1)
+#define MPU_RGN_SIZE_16M            (23 << 1)
+#define MPU_RGN_SIZE_32M            (24 << 1)
+#define MPU_RGN_SIZE_64M            (25 << 1)
+#define MPU_RGN_SIZE_128M           (26 << 1)
+#define MPU_RGN_SIZE_256M           (27 << 1)
+#define MPU_RGN_SIZE_512M           (28 << 1)
+
+#define MPU_RGN_SIZE_1G             (29 << 1)
+#define MPU_RGN_SIZE_2G             (30 << 1)
+#define MPU_RGN_SIZE_4G             (31 << 1)
+
+//*****************************************************************************
+//
+// Flags for the permissions to be passed to MPURegionSet.
+//
+//*****************************************************************************
+#define MPU_RGN_PERM_EXEC           0x00000000
+#define MPU_RGN_PERM_NOEXEC         0x10000000
+#define MPU_RGN_PERM_PRV_NO_USR_NO  0x00000000
+#define MPU_RGN_PERM_PRV_RW_USR_NO  0x01000000
+#define MPU_RGN_PERM_PRV_RW_USR_RO  0x02000000
+#define MPU_RGN_PERM_PRV_RW_USR_RW  0x03000000
+#define MPU_RGN_PERM_PRV_RO_USR_NO  0x05000000
+#define MPU_RGN_PERM_PRV_RO_USR_RO  0x06000000
+
+//*****************************************************************************
+//
+// Flags for the sub-region to be passed to MPURegionSet.
+//
+//*****************************************************************************
+#define MPU_SUB_RGN_DISABLE_0       0x00000100
+#define MPU_SUB_RGN_DISABLE_1       0x00000200
+#define MPU_SUB_RGN_DISABLE_2       0x00000400
+#define MPU_SUB_RGN_DISABLE_3       0x00000800
+#define MPU_SUB_RGN_DISABLE_4       0x00001000
+#define MPU_SUB_RGN_DISABLE_5       0x00002000
+#define MPU_SUB_RGN_DISABLE_6       0x00004000
+#define MPU_SUB_RGN_DISABLE_7       0x00008000
+
+//*****************************************************************************
+//
+// Flags to enable or disable a region, to be passed to MPURegionSet.
+//
+//*****************************************************************************
+#define MPU_RGN_ENABLE              1
+#define MPU_RGN_DISABLE             0
+
+//*****************************************************************************
+//
+// API Function prototypes
+//
+//*****************************************************************************
+extern void MPUEnable(uint32_t ui32MPUConfig);
+extern void MPUDisable(void);
+extern uint32_t MPURegionCountGet(void);
+extern void MPURegionEnable(uint32_t ui32Region);
+extern void MPURegionDisable(uint32_t ui32Region);
+extern void MPURegionSet(uint32_t ui32Region, uint32_t ui32Addr,
+                         uint32_t ui32Flags);
+extern void MPURegionGet(uint32_t ui32Region, uint32_t *pui32Addr,
+                         uint32_t *pui32Flags);
+extern void MPUIntRegister(void (*pfnHandler)(void));
+extern void MPUIntUnregister(void);
+
+//*****************************************************************************
+//
+// Mark the end of the C bindings section for C++ compilers.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __DRIVERLIB_MPU_H__

+ 307 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/onewire.h

@@ -0,0 +1,307 @@
+//*****************************************************************************
+//
+// onewire.h - Prototypes for the OneWire Driver.
+//
+// Copyright (c) 2012-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Peripheral Driver Library.
+//
+//*****************************************************************************
+
+#ifndef __DRIVERLIB_ONEWIRE_H__
+#define __DRIVERLIB_ONEWIRE_H__
+
+//*****************************************************************************
+//
+//! \addtogroup onewire_api
+//! @{
+//
+//*****************************************************************************
+
+//*****************************************************************************
+//
+// If building with a C++ compiler, make all of the definitions in this header
+// have a C binding.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+//*****************************************************************************
+//
+// Defines used in the OneWireInit() function call.
+//
+//*****************************************************************************
+
+//
+// This define is used in initialization to request standard speed bus
+// timings.  This is the default.
+//
+#define ONEWIRE_INIT_SPD_STD    0x00000000
+
+//
+// This define is used in initialization to request overdrive speed bus
+// timings.
+//
+#define ONEWIRE_INIT_SPD_OD     0x00000020
+
+//
+// This define is used in initialization to request standard read sampling
+// timing (2us for ONEWIRE_INIT_SPD_OD and 16us for ONEWIRE_INIT_SPD_STD).
+// This is the default.
+//
+#define ONEWIRE_INIT_READ_STD   0x00000000
+
+//
+// This define is used in initialization to request late read sampling
+// timing (7us for ONEWIRE_INIT_SPD_OD and 50us for ONEWIRE_INIT_SPD_STD).
+//
+#define ONEWIRE_INIT_READ_LATE  0x00000040
+
+//
+// This define is used in initialization to request a standard
+// Answer-to-Reset (presence detect) monitor.  This is the default.
+//
+#define ONEWIRE_INIT_ATR        0x00000000
+
+//
+// This define is used in initialization to request no Answer-to-Reset
+// (presence detect) monitor.  The module will delay operations after a bus
+// reset for the expected presence detect period in this case.
+//
+#define ONEWIRE_INIT_NO_ATR     0x00000080
+
+//
+// This define is used in initialization to request standard signal polarity
+// on the 1-Wire bus (pin is driven low to drive bus low).  This is the
+// default.
+//
+#define ONEWIRE_INIT_STD_POL    0x00000000
+
+//
+// This define is used in initialization to request alternate signal polarity
+// on the 1-Wire bus (pin is driven high to drive bus low).
+//
+#define ONEWIRE_INIT_ALT_POL    0x40000000
+
+//
+// This define is used in initialization to request normal 1-Wire operational
+// mode.  This is the default.
+//
+#define ONEWIRE_INIT_1_WIRE_CFG 0x00000000
+
+//
+// This define is used in initialization to request a 2 pin operational
+// mode where one pin is used exclusively for TX operations and the other
+// for RX.
+//
+#define ONEWIRE_INIT_2_WIRE_CFG 0x80000000
+
+//*****************************************************************************
+//
+// Defines for bus status conditions.  These values can be returned by
+// OneWireBusStatus().
+//
+//*****************************************************************************
+
+//
+// This will be set if the bus is busy handling a Read, Write or
+// Reset activity.
+//
+#define ONEWIRE_BUS_STATUS_BUSY 0x00000100
+
+//
+// This will be set if the module did not detect any slave presence pulses
+// after a bus reset.
+//
+#define ONEWIRE_BUS_STATUS_NO_SLAVE                                           \
+                                0x00000200
+
+//
+// This will be set if the bus is being held low outside of a normal Read,
+// Write or Reset activity.
+//
+#define ONEWIRE_BUS_STATUS_STUCK                                              \
+                                0x00000400
+
+//*****************************************************************************
+//
+// OneWire operation modes used with OneWireTransaction().
+//
+//*****************************************************************************
+
+//
+// This mode flag indicates a single reset should be issued prior to a write
+// and/or read operation.
+//
+#define ONEWIRE_OP_RESET        0x00000001
+
+//
+// This mode flag indicates a read operation.
+//
+#define ONEWIRE_OP_READ         0x00000002
+
+//
+// This mode flag indicates a write operation.
+//
+#define ONEWIRE_OP_WRITE        0x00000004
+
+//*****************************************************************************
+//
+// OneWire DMA used with OneWireDMAEnable().
+//
+//*****************************************************************************
+
+//
+// This indicates the DMA should issue a 1-Wire bus reset before starting.
+//
+#define ONEWIRE_DMA_BUS_RESET   0x00000001
+
+//
+// The DMA operation will be a single Read after each module transaction.
+//
+#define ONEWIRE_DMA_OP_READ     0x00000002
+
+//
+// The DMA will write values to the 1-Wire interface as each previous DMA
+// write operation completes.
+//
+#define ONEWIRE_DMA_OP_MULTI_WRITE                                            \
+                                0x00000004
+
+//
+// The DMA will read values from the 1-Wire interface as each previous DMA
+// read operation completes.
+//
+#define ONEWIRE_DMA_OP_MULTI_READ                                             \
+                                0x00000006
+
+//
+// This Scatter Gather DMA mode is paired with ONEWIRE_DMA_OP_READ to instruct
+// the 1-Wire DMA to initiate an operation at the start of and then on each
+// transition completion thereafter.
+//
+#define ONEWIRE_DMA_MODE_SG     0x00000008
+
+//
+// DMA expects a Read/Write bus operation size of 8 bits.  This should match
+// the uDMA channel setup.
+//
+#define ONEWIRE_DMA_OP_SZ_8     0x00000000
+
+//
+// DMA expects a Read/Write bus operation size of 16 bits.  This should match
+// the uDMA channel setup.
+//
+#define ONEWIRE_DMA_OP_SZ_16    0x00000800
+
+//
+// DMA expects a Read/Write bus operation size of 32 bits.  This should match
+// the uDMA channel setup.
+//
+#define ONEWIRE_DMA_OP_SZ_32    0x00001800
+
+//*****************************************************************************
+//
+// OneWire interrupt defines.  Use in calls to OneWireIntEnable(),
+// OneWireIntDisable(), OneWireIntClear() and returned by OneWireIntStatus().
+//
+//*****************************************************************************
+
+//
+// This interrupt indicates a bus reset has just completed.
+//
+#define ONEWIRE_INT_RESET_DONE  0x00000001
+
+//
+// The interrupt indicates a Read or Write master initiated operation
+// has just completed.
+//
+#define ONEWIRE_INT_OP_DONE     0x00000002
+
+//
+// This interrupt indicates that no presence detect was signaled by a slave
+// on the bus after a reset.
+//
+#define ONEWIRE_INT_NO_SLAVE    0x00000004
+
+//
+// This interrupt indicates the bus is being held low outside of normal
+// operations.
+//
+#define ONEWIRE_INT_STUCK       0x00000008
+
+//
+// This interrupt indicates a OneWire DMA operation has completed.
+//
+#define ONEWIRE_INT_DMA_DONE    0x00000010
+
+//*****************************************************************************
+//
+// Close the Doxygen group.
+//! @}
+//
+//*****************************************************************************
+
+//*****************************************************************************
+//
+// Prototypes for the APIs.
+//
+//*****************************************************************************
+extern void OneWireBusReset(uint32_t ui32Base);
+extern uint32_t OneWireBusStatus(uint32_t ui32Base);
+extern void OneWireDataGet(uint32_t u3i2Base, uint32_t *pui32Data);
+extern bool OneWireDataGetNonBlocking(uint32_t ui32Base, uint32_t *pui32Data);
+extern void OneWireDMADisable(uint32_t ui32Base, uint32_t ui32DMAFlags);
+extern void OneWireDMAEnable(uint32_t ui32Base, uint32_t ui32DMAFlags);
+extern void OneWireInit(uint32_t ui32Base, uint32_t ui32InitFlags);
+extern void OneWireIntClear(uint32_t ui32Base, uint32_t ui32IntFlags);
+extern void OneWireIntDisable(uint32_t ui32Base, uint32_t ui32IntFlags);
+extern void OneWireIntEnable(uint32_t ui32Base, uint32_t ui32IntFlags);
+extern void OneWireIntRegister(uint32_t ui32Base, void (*pfnHandler)(void));
+extern void OneWireIntUnregister(uint32_t ui32Base);
+extern uint32_t OneWireIntStatus(uint32_t ui32Base, bool bMasked);
+extern void OneWireTransaction(uint32_t ui32Base, uint32_t ui32OpFlags,
+                               uint32_t ui32Data, uint32_t ui32BitCnt);
+
+//*****************************************************************************
+//
+// Mark the end of the C bindings section for C++ compilers.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __DRIVERLIB_ONEWIRE_H__

+ 20953 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/pin_map.h

@@ -0,0 +1,20953 @@
+//*****************************************************************************
+//
+// pin_map.h - Mapping of peripherals to pins for all parts.
+//
+// Copyright (c) 2007-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Peripheral Driver Library.
+//
+//*****************************************************************************
+
+#ifndef __DRIVERLIB_PIN_MAP_H__
+#define __DRIVERLIB_PIN_MAP_H__
+
+//*****************************************************************************
+//
+// TM4C1230C3PM Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1230C3PM
+
+#define GPIO_PA0_U0RX           0x00000001
+
+#define GPIO_PA1_U0TX           0x00000401
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PB6_SSI2RX         0x00011802
+#define GPIO_PB6_I2C5SCL        0x00011803
+#define GPIO_PB6_T0CCP0         0x00011807
+
+#define GPIO_PB7_SSI2TX         0x00011C02
+#define GPIO_PB7_I2C5SDA        0x00011C03
+#define GPIO_PB7_T0CCP1         0x00011C07
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_WT1CCP0        0x00021807
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_WT3CCP0        0x00030807
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_WT3CCP1        0x00030C07
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_T2CCP0         0x00051007
+
+#define GPIO_PG0_I2C3SCL        0x00060003
+#define GPIO_PG0_T4CCP0         0x00060007
+
+#define GPIO_PG1_I2C3SDA        0x00060403
+#define GPIO_PG1_T4CCP1         0x00060407
+
+#define GPIO_PG2_I2C4SCL        0x00060803
+#define GPIO_PG2_T5CCP0         0x00060807
+
+#define GPIO_PG3_I2C4SDA        0x00060C03
+#define GPIO_PG3_T5CCP1         0x00060C07
+
+#define GPIO_PG4_U2RX           0x00061001
+#define GPIO_PG4_I2C1SCL        0x00061003
+#define GPIO_PG4_WT0CCP0        0x00061007
+
+#define GPIO_PG5_U2TX           0x00061401
+#define GPIO_PG5_I2C1SDA        0x00061403
+#define GPIO_PG5_WT0CCP1        0x00061407
+
+#endif // PART_TM4C1230C3PM
+
+//*****************************************************************************
+//
+// TM4C1230D5PM Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1230D5PM
+
+#define GPIO_PA0_U0RX           0x00000001
+
+#define GPIO_PA1_U0TX           0x00000401
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PB6_SSI2RX         0x00011802
+#define GPIO_PB6_I2C5SCL        0x00011803
+#define GPIO_PB6_T0CCP0         0x00011807
+
+#define GPIO_PB7_SSI2TX         0x00011C02
+#define GPIO_PB7_I2C5SDA        0x00011C03
+#define GPIO_PB7_T0CCP1         0x00011C07
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_WT1CCP0        0x00021807
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_WT3CCP0        0x00030807
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_WT3CCP1        0x00030C07
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_T2CCP0         0x00051007
+
+#define GPIO_PG0_I2C3SCL        0x00060003
+#define GPIO_PG0_T4CCP0         0x00060007
+
+#define GPIO_PG1_I2C3SDA        0x00060403
+#define GPIO_PG1_T4CCP1         0x00060407
+
+#define GPIO_PG2_I2C4SCL        0x00060803
+#define GPIO_PG2_T5CCP0         0x00060807
+
+#define GPIO_PG3_I2C4SDA        0x00060C03
+#define GPIO_PG3_T5CCP1         0x00060C07
+
+#define GPIO_PG4_U2RX           0x00061001
+#define GPIO_PG4_I2C1SCL        0x00061003
+#define GPIO_PG4_WT0CCP0        0x00061007
+
+#define GPIO_PG5_U2TX           0x00061401
+#define GPIO_PG5_I2C1SDA        0x00061403
+#define GPIO_PG5_WT0CCP1        0x00061407
+
+#endif // PART_TM4C1230D5PM
+
+//*****************************************************************************
+//
+// TM4C1230E6PM Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1230E6PM
+
+#define GPIO_PA0_U0RX           0x00000001
+
+#define GPIO_PA1_U0TX           0x00000401
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PB6_SSI2RX         0x00011802
+#define GPIO_PB6_I2C5SCL        0x00011803
+#define GPIO_PB6_T0CCP0         0x00011807
+
+#define GPIO_PB7_SSI2TX         0x00011C02
+#define GPIO_PB7_I2C5SDA        0x00011C03
+#define GPIO_PB7_T0CCP1         0x00011C07
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_WT1CCP0        0x00021807
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_WT3CCP0        0x00030807
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_WT3CCP1        0x00030C07
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_T2CCP0         0x00051007
+
+#define GPIO_PG0_I2C3SCL        0x00060003
+#define GPIO_PG0_T4CCP0         0x00060007
+
+#define GPIO_PG1_I2C3SDA        0x00060403
+#define GPIO_PG1_T4CCP1         0x00060407
+
+#define GPIO_PG2_I2C4SCL        0x00060803
+#define GPIO_PG2_T5CCP0         0x00060807
+
+#define GPIO_PG3_I2C4SDA        0x00060C03
+#define GPIO_PG3_T5CCP1         0x00060C07
+
+#define GPIO_PG4_U2RX           0x00061001
+#define GPIO_PG4_I2C1SCL        0x00061003
+#define GPIO_PG4_WT0CCP0        0x00061007
+
+#define GPIO_PG5_U2TX           0x00061401
+#define GPIO_PG5_I2C1SDA        0x00061403
+#define GPIO_PG5_WT0CCP1        0x00061407
+
+#endif // PART_TM4C1230E6PM
+
+//*****************************************************************************
+//
+// TM4C1230H6PM Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1230H6PM
+
+#define GPIO_PA0_U0RX           0x00000001
+
+#define GPIO_PA1_U0TX           0x00000401
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PB6_SSI2RX         0x00011802
+#define GPIO_PB6_I2C5SCL        0x00011803
+#define GPIO_PB6_T0CCP0         0x00011807
+
+#define GPIO_PB7_SSI2TX         0x00011C02
+#define GPIO_PB7_I2C5SDA        0x00011C03
+#define GPIO_PB7_T0CCP1         0x00011C07
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_WT1CCP0        0x00021807
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_WT3CCP0        0x00030807
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_WT3CCP1        0x00030C07
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_T2CCP0         0x00051007
+
+#define GPIO_PG0_I2C3SCL        0x00060003
+#define GPIO_PG0_T4CCP0         0x00060007
+
+#define GPIO_PG1_I2C3SDA        0x00060403
+#define GPIO_PG1_T4CCP1         0x00060407
+
+#define GPIO_PG2_I2C4SCL        0x00060803
+#define GPIO_PG2_T5CCP0         0x00060807
+
+#define GPIO_PG3_I2C4SDA        0x00060C03
+#define GPIO_PG3_T5CCP1         0x00060C07
+
+#define GPIO_PG4_U2RX           0x00061001
+#define GPIO_PG4_I2C1SCL        0x00061003
+#define GPIO_PG4_WT0CCP0        0x00061007
+
+#define GPIO_PG5_U2TX           0x00061401
+#define GPIO_PG5_I2C1SDA        0x00061403
+#define GPIO_PG5_WT0CCP1        0x00061407
+
+#endif // PART_TM4C1230H6PM
+
+//*****************************************************************************
+//
+// TM4C1231C3PM Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1231C3PM
+
+#define GPIO_PA0_U0RX           0x00000001
+
+#define GPIO_PA1_U0TX           0x00000401
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PB6_SSI2RX         0x00011802
+#define GPIO_PB6_T0CCP0         0x00011807
+
+#define GPIO_PB7_SSI2TX         0x00011C02
+#define GPIO_PB7_T0CCP1         0x00011C07
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_WT1CCP0        0x00021807
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_WT3CCP0        0x00030807
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_WT3CCP1        0x00030C07
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_T2CCP0         0x00051007
+
+#endif // PART_TM4C1231C3PM
+
+//*****************************************************************************
+//
+// TM4C1231D5PM Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1231D5PM
+
+#define GPIO_PA0_U0RX           0x00000001
+
+#define GPIO_PA1_U0TX           0x00000401
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PB6_SSI2RX         0x00011802
+#define GPIO_PB6_T0CCP0         0x00011807
+
+#define GPIO_PB7_SSI2TX         0x00011C02
+#define GPIO_PB7_T0CCP1         0x00011C07
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_WT1CCP0        0x00021807
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_WT3CCP0        0x00030807
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_WT3CCP1        0x00030C07
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_T2CCP0         0x00051007
+
+#endif // PART_TM4C1231D5PM
+
+//*****************************************************************************
+//
+// TM4C1231D5PZ Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1231D5PZ
+
+#define GPIO_PA0_U0RX           0x00000001
+
+#define GPIO_PA1_U0TX           0x00000401
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_WT1CCP0        0x00021807
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_WT3CCP0        0x00030807
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_WT3CCP1        0x00030C07
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PE7_U1RI           0x00041C01
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+#define GPIO_PF0_TRD2           0x0005000E
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_U1DCD          0x00050801
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_C2O            0x00050809
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_U1DSR          0x00050C01
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_U1DTR          0x00051001
+#define GPIO_PF4_T2CCP0         0x00051007
+#define GPIO_PF4_TRD3           0x0005100E
+
+#define GPIO_PF5_T2CCP1         0x00051407
+
+#define GPIO_PF6_I2C2SCL        0x00051803
+#define GPIO_PF6_T3CCP0         0x00051807
+
+#define GPIO_PF7_I2C2SDA        0x00051C03
+#define GPIO_PF7_T3CCP1         0x00051C07
+
+#define GPIO_PG0_I2C3SCL        0x00060003
+#define GPIO_PG0_T4CCP0         0x00060007
+
+#define GPIO_PG1_I2C3SDA        0x00060403
+#define GPIO_PG1_T4CCP1         0x00060407
+
+#define GPIO_PG2_I2C4SCL        0x00060803
+#define GPIO_PG2_T5CCP0         0x00060807
+
+#define GPIO_PG3_I2C4SDA        0x00060C03
+#define GPIO_PG3_T5CCP1         0x00060C07
+
+#define GPIO_PG4_U2RX           0x00061001
+#define GPIO_PG4_I2C1SCL        0x00061003
+#define GPIO_PG4_WT0CCP0        0x00061007
+
+#define GPIO_PG5_U2TX           0x00061401
+#define GPIO_PG5_I2C1SDA        0x00061403
+#define GPIO_PG5_WT0CCP1        0x00061407
+
+#define GPIO_PG6_I2C5SCL        0x00061803
+#define GPIO_PG6_WT1CCP0        0x00061807
+
+#define GPIO_PG7_I2C5SDA        0x00061C03
+#define GPIO_PG7_WT1CCP1        0x00061C07
+
+#define GPIO_PH0_SSI3CLK        0x00070002
+#define GPIO_PH0_WT2CCP0        0x00070007
+
+#define GPIO_PH1_SSI3FSS        0x00070402
+#define GPIO_PH1_WT2CCP1        0x00070407
+
+#define GPIO_PH2_SSI3RX         0x00070802
+#define GPIO_PH2_WT5CCP0        0x00070807
+
+#define GPIO_PH3_SSI3TX         0x00070C02
+#define GPIO_PH3_WT5CCP1        0x00070C07
+
+#define GPIO_PH4_SSI2CLK        0x00071002
+#define GPIO_PH4_WT3CCP0        0x00071007
+
+#define GPIO_PH5_SSI2FSS        0x00071402
+#define GPIO_PH5_WT3CCP1        0x00071407
+
+#define GPIO_PH6_SSI2RX         0x00071802
+#define GPIO_PH6_WT4CCP0        0x00071807
+
+#define GPIO_PH7_SSI2TX         0x00071C02
+#define GPIO_PH7_WT4CCP1        0x00071C07
+
+#define GPIO_PJ0_U4RX           0x00080001
+#define GPIO_PJ0_T1CCP0         0x00080007
+
+#define GPIO_PJ1_U4TX           0x00080401
+#define GPIO_PJ1_T1CCP1         0x00080407
+
+#define GPIO_PJ2_U5RX           0x00080801
+#define GPIO_PJ2_T2CCP0         0x00080807
+
+#define GPIO_PK0_SSI3CLK        0x00090002
+
+#define GPIO_PK1_SSI3FSS        0x00090402
+
+#define GPIO_PK2_SSI3RX         0x00090802
+
+#define GPIO_PK3_SSI3TX         0x00090C02
+
+#endif // PART_TM4C1231D5PZ
+
+//*****************************************************************************
+//
+// TM4C1231E6PM Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1231E6PM
+
+#define GPIO_PA0_U0RX           0x00000001
+
+#define GPIO_PA1_U0TX           0x00000401
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PB6_SSI2RX         0x00011802
+#define GPIO_PB6_T0CCP0         0x00011807
+
+#define GPIO_PB7_SSI2TX         0x00011C02
+#define GPIO_PB7_T0CCP1         0x00011C07
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_WT1CCP0        0x00021807
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_WT3CCP0        0x00030807
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_WT3CCP1        0x00030C07
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_T2CCP0         0x00051007
+
+#endif // PART_TM4C1231E6PM
+
+//*****************************************************************************
+//
+// TM4C1231E6PZ Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1231E6PZ
+
+#define GPIO_PA0_U0RX           0x00000001
+
+#define GPIO_PA1_U0TX           0x00000401
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_WT1CCP0        0x00021807
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_WT3CCP0        0x00030807
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_WT3CCP1        0x00030C07
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PE7_U1RI           0x00041C01
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+#define GPIO_PF0_TRD2           0x0005000E
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_U1DCD          0x00050801
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_C2O            0x00050809
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_U1DSR          0x00050C01
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_U1DTR          0x00051001
+#define GPIO_PF4_T2CCP0         0x00051007
+#define GPIO_PF4_TRD3           0x0005100E
+
+#define GPIO_PF5_T2CCP1         0x00051407
+
+#define GPIO_PF6_I2C2SCL        0x00051803
+#define GPIO_PF6_T3CCP0         0x00051807
+
+#define GPIO_PF7_I2C2SDA        0x00051C03
+#define GPIO_PF7_T3CCP1         0x00051C07
+
+#define GPIO_PG0_I2C3SCL        0x00060003
+#define GPIO_PG0_T4CCP0         0x00060007
+
+#define GPIO_PG1_I2C3SDA        0x00060403
+#define GPIO_PG1_T4CCP1         0x00060407
+
+#define GPIO_PG2_I2C4SCL        0x00060803
+#define GPIO_PG2_T5CCP0         0x00060807
+
+#define GPIO_PG3_I2C4SDA        0x00060C03
+#define GPIO_PG3_T5CCP1         0x00060C07
+
+#define GPIO_PG4_U2RX           0x00061001
+#define GPIO_PG4_I2C1SCL        0x00061003
+#define GPIO_PG4_WT0CCP0        0x00061007
+
+#define GPIO_PG5_U2TX           0x00061401
+#define GPIO_PG5_I2C1SDA        0x00061403
+#define GPIO_PG5_WT0CCP1        0x00061407
+
+#define GPIO_PG6_I2C5SCL        0x00061803
+#define GPIO_PG6_WT1CCP0        0x00061807
+
+#define GPIO_PG7_I2C5SDA        0x00061C03
+#define GPIO_PG7_WT1CCP1        0x00061C07
+
+#define GPIO_PH0_SSI3CLK        0x00070002
+#define GPIO_PH0_WT2CCP0        0x00070007
+
+#define GPIO_PH1_SSI3FSS        0x00070402
+#define GPIO_PH1_WT2CCP1        0x00070407
+
+#define GPIO_PH2_SSI3RX         0x00070802
+#define GPIO_PH2_WT5CCP0        0x00070807
+
+#define GPIO_PH3_SSI3TX         0x00070C02
+#define GPIO_PH3_WT5CCP1        0x00070C07
+
+#define GPIO_PH4_SSI2CLK        0x00071002
+#define GPIO_PH4_WT3CCP0        0x00071007
+
+#define GPIO_PH5_SSI2FSS        0x00071402
+#define GPIO_PH5_WT3CCP1        0x00071407
+
+#define GPIO_PH6_SSI2RX         0x00071802
+#define GPIO_PH6_WT4CCP0        0x00071807
+
+#define GPIO_PH7_SSI2TX         0x00071C02
+#define GPIO_PH7_WT4CCP1        0x00071C07
+
+#define GPIO_PJ0_U4RX           0x00080001
+#define GPIO_PJ0_T1CCP0         0x00080007
+
+#define GPIO_PJ1_U4TX           0x00080401
+#define GPIO_PJ1_T1CCP1         0x00080407
+
+#define GPIO_PJ2_U5RX           0x00080801
+#define GPIO_PJ2_T2CCP0         0x00080807
+
+#define GPIO_PK0_SSI3CLK        0x00090002
+
+#define GPIO_PK1_SSI3FSS        0x00090402
+
+#define GPIO_PK2_SSI3RX         0x00090802
+
+#define GPIO_PK3_SSI3TX         0x00090C02
+
+#endif // PART_TM4C1231E6PZ
+
+//*****************************************************************************
+//
+// TM4C1231H6PM Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1231H6PM
+
+#define GPIO_PA0_U0RX           0x00000001
+
+#define GPIO_PA1_U0TX           0x00000401
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PB6_SSI2RX         0x00011802
+#define GPIO_PB6_T0CCP0         0x00011807
+
+#define GPIO_PB7_SSI2TX         0x00011C02
+#define GPIO_PB7_T0CCP1         0x00011C07
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_WT1CCP0        0x00021807
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_WT3CCP0        0x00030807
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_WT3CCP1        0x00030C07
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_T2CCP0         0x00051007
+
+#endif // PART_TM4C1231H6PM
+
+//*****************************************************************************
+//
+// TM4C1231H6PZ Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1231H6PZ
+
+#define GPIO_PA0_U0RX           0x00000001
+
+#define GPIO_PA1_U0TX           0x00000401
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_WT1CCP0        0x00021807
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_WT3CCP0        0x00030807
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_WT3CCP1        0x00030C07
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PE7_U1RI           0x00041C01
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+#define GPIO_PF0_TRD2           0x0005000E
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_U1DCD          0x00050801
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_C2O            0x00050809
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_U1DSR          0x00050C01
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_U1DTR          0x00051001
+#define GPIO_PF4_T2CCP0         0x00051007
+#define GPIO_PF4_TRD3           0x0005100E
+
+#define GPIO_PF5_T2CCP1         0x00051407
+
+#define GPIO_PF6_I2C2SCL        0x00051803
+#define GPIO_PF6_T3CCP0         0x00051807
+
+#define GPIO_PF7_I2C2SDA        0x00051C03
+#define GPIO_PF7_T3CCP1         0x00051C07
+
+#define GPIO_PG0_I2C3SCL        0x00060003
+#define GPIO_PG0_T4CCP0         0x00060007
+
+#define GPIO_PG1_I2C3SDA        0x00060403
+#define GPIO_PG1_T4CCP1         0x00060407
+
+#define GPIO_PG2_I2C4SCL        0x00060803
+#define GPIO_PG2_T5CCP0         0x00060807
+
+#define GPIO_PG3_I2C4SDA        0x00060C03
+#define GPIO_PG3_T5CCP1         0x00060C07
+
+#define GPIO_PG4_U2RX           0x00061001
+#define GPIO_PG4_I2C1SCL        0x00061003
+#define GPIO_PG4_WT0CCP0        0x00061007
+
+#define GPIO_PG5_U2TX           0x00061401
+#define GPIO_PG5_I2C1SDA        0x00061403
+#define GPIO_PG5_WT0CCP1        0x00061407
+
+#define GPIO_PG6_I2C5SCL        0x00061803
+#define GPIO_PG6_WT1CCP0        0x00061807
+
+#define GPIO_PG7_I2C5SDA        0x00061C03
+#define GPIO_PG7_WT1CCP1        0x00061C07
+
+#define GPIO_PH0_SSI3CLK        0x00070002
+#define GPIO_PH0_WT2CCP0        0x00070007
+
+#define GPIO_PH1_SSI3FSS        0x00070402
+#define GPIO_PH1_WT2CCP1        0x00070407
+
+#define GPIO_PH2_SSI3RX         0x00070802
+#define GPIO_PH2_WT5CCP0        0x00070807
+
+#define GPIO_PH3_SSI3TX         0x00070C02
+#define GPIO_PH3_WT5CCP1        0x00070C07
+
+#define GPIO_PH4_SSI2CLK        0x00071002
+#define GPIO_PH4_WT3CCP0        0x00071007
+
+#define GPIO_PH5_SSI2FSS        0x00071402
+#define GPIO_PH5_WT3CCP1        0x00071407
+
+#define GPIO_PH6_SSI2RX         0x00071802
+#define GPIO_PH6_WT4CCP0        0x00071807
+
+#define GPIO_PH7_SSI2TX         0x00071C02
+#define GPIO_PH7_WT4CCP1        0x00071C07
+
+#define GPIO_PJ0_U4RX           0x00080001
+#define GPIO_PJ0_T1CCP0         0x00080007
+
+#define GPIO_PJ1_U4TX           0x00080401
+#define GPIO_PJ1_T1CCP1         0x00080407
+
+#define GPIO_PJ2_U5RX           0x00080801
+#define GPIO_PJ2_T2CCP0         0x00080807
+
+#define GPIO_PK0_SSI3CLK        0x00090002
+
+#define GPIO_PK1_SSI3FSS        0x00090402
+
+#define GPIO_PK2_SSI3RX         0x00090802
+
+#define GPIO_PK3_SSI3TX         0x00090C02
+
+#endif // PART_TM4C1231H6PZ
+
+//*****************************************************************************
+//
+// TM4C1232C3PM Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1232C3PM
+
+#define GPIO_PA0_U0RX           0x00000001
+
+#define GPIO_PA1_U0TX           0x00000401
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PB6_SSI2RX         0x00011802
+#define GPIO_PB6_I2C5SCL        0x00011803
+#define GPIO_PB6_T0CCP0         0x00011807
+
+#define GPIO_PB7_SSI2TX         0x00011C02
+#define GPIO_PB7_I2C5SDA        0x00011C03
+#define GPIO_PB7_T0CCP1         0x00011C07
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_WT1CCP0        0x00021807
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_WT3CCP0        0x00030807
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_WT3CCP1        0x00030C07
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_T2CCP0         0x00051007
+
+#define GPIO_PG0_I2C3SCL        0x00060003
+#define GPIO_PG0_T4CCP0         0x00060007
+
+#define GPIO_PG1_I2C3SDA        0x00060403
+#define GPIO_PG1_T4CCP1         0x00060407
+
+#define GPIO_PG2_I2C4SCL        0x00060803
+#define GPIO_PG2_T5CCP0         0x00060807
+
+#define GPIO_PG3_I2C4SDA        0x00060C03
+#define GPIO_PG3_T5CCP1         0x00060C07
+
+#define GPIO_PG4_U2RX           0x00061001
+#define GPIO_PG4_I2C1SCL        0x00061003
+#define GPIO_PG4_WT0CCP0        0x00061007
+
+#define GPIO_PG5_U2TX           0x00061401
+#define GPIO_PG5_I2C1SDA        0x00061403
+#define GPIO_PG5_WT0CCP1        0x00061407
+
+#endif // PART_TM4C1232C3PM
+
+//*****************************************************************************
+//
+// TM4C1232D5PM Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1232D5PM
+
+#define GPIO_PA0_U0RX           0x00000001
+
+#define GPIO_PA1_U0TX           0x00000401
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PB6_SSI2RX         0x00011802
+#define GPIO_PB6_I2C5SCL        0x00011803
+#define GPIO_PB6_T0CCP0         0x00011807
+
+#define GPIO_PB7_SSI2TX         0x00011C02
+#define GPIO_PB7_I2C5SDA        0x00011C03
+#define GPIO_PB7_T0CCP1         0x00011C07
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_WT1CCP0        0x00021807
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_WT3CCP0        0x00030807
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_WT3CCP1        0x00030C07
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_T2CCP0         0x00051007
+
+#define GPIO_PG0_I2C3SCL        0x00060003
+#define GPIO_PG0_T4CCP0         0x00060007
+
+#define GPIO_PG1_I2C3SDA        0x00060403
+#define GPIO_PG1_T4CCP1         0x00060407
+
+#define GPIO_PG2_I2C4SCL        0x00060803
+#define GPIO_PG2_T5CCP0         0x00060807
+
+#define GPIO_PG3_I2C4SDA        0x00060C03
+#define GPIO_PG3_T5CCP1         0x00060C07
+
+#define GPIO_PG4_U2RX           0x00061001
+#define GPIO_PG4_I2C1SCL        0x00061003
+#define GPIO_PG4_WT0CCP0        0x00061007
+
+#define GPIO_PG5_U2TX           0x00061401
+#define GPIO_PG5_I2C1SDA        0x00061403
+#define GPIO_PG5_WT0CCP1        0x00061407
+
+#endif // PART_TM4C1232D5PM
+
+//*****************************************************************************
+//
+// TM4C1232E6PM Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1232E6PM
+
+#define GPIO_PA0_U0RX           0x00000001
+
+#define GPIO_PA1_U0TX           0x00000401
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PB6_SSI2RX         0x00011802
+#define GPIO_PB6_I2C5SCL        0x00011803
+#define GPIO_PB6_T0CCP0         0x00011807
+
+#define GPIO_PB7_SSI2TX         0x00011C02
+#define GPIO_PB7_I2C5SDA        0x00011C03
+#define GPIO_PB7_T0CCP1         0x00011C07
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_WT1CCP0        0x00021807
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_WT3CCP0        0x00030807
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_WT3CCP1        0x00030C07
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_T2CCP0         0x00051007
+
+#define GPIO_PG0_I2C3SCL        0x00060003
+#define GPIO_PG0_T4CCP0         0x00060007
+
+#define GPIO_PG1_I2C3SDA        0x00060403
+#define GPIO_PG1_T4CCP1         0x00060407
+
+#define GPIO_PG2_I2C4SCL        0x00060803
+#define GPIO_PG2_T5CCP0         0x00060807
+
+#define GPIO_PG3_I2C4SDA        0x00060C03
+#define GPIO_PG3_T5CCP1         0x00060C07
+
+#define GPIO_PG4_U2RX           0x00061001
+#define GPIO_PG4_I2C1SCL        0x00061003
+#define GPIO_PG4_WT0CCP0        0x00061007
+
+#define GPIO_PG5_U2TX           0x00061401
+#define GPIO_PG5_I2C1SDA        0x00061403
+#define GPIO_PG5_WT0CCP1        0x00061407
+
+#endif // PART_TM4C1232E6PM
+
+//*****************************************************************************
+//
+// TM4C1232H6PM Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1232H6PM
+
+#define GPIO_PA0_U0RX           0x00000001
+
+#define GPIO_PA1_U0TX           0x00000401
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PB6_SSI2RX         0x00011802
+#define GPIO_PB6_I2C5SCL        0x00011803
+#define GPIO_PB6_T0CCP0         0x00011807
+
+#define GPIO_PB7_SSI2TX         0x00011C02
+#define GPIO_PB7_I2C5SDA        0x00011C03
+#define GPIO_PB7_T0CCP1         0x00011C07
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_WT1CCP0        0x00021807
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_WT3CCP0        0x00030807
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_WT3CCP1        0x00030C07
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_T2CCP0         0x00051007
+
+#define GPIO_PG0_I2C3SCL        0x00060003
+#define GPIO_PG0_T4CCP0         0x00060007
+
+#define GPIO_PG1_I2C3SDA        0x00060403
+#define GPIO_PG1_T4CCP1         0x00060407
+
+#define GPIO_PG2_I2C4SCL        0x00060803
+#define GPIO_PG2_T5CCP0         0x00060807
+
+#define GPIO_PG3_I2C4SDA        0x00060C03
+#define GPIO_PG3_T5CCP1         0x00060C07
+
+#define GPIO_PG4_U2RX           0x00061001
+#define GPIO_PG4_I2C1SCL        0x00061003
+#define GPIO_PG4_WT0CCP0        0x00061007
+
+#define GPIO_PG5_U2TX           0x00061401
+#define GPIO_PG5_I2C1SDA        0x00061403
+#define GPIO_PG5_WT0CCP1        0x00061407
+
+#endif // PART_TM4C1232H6PM
+
+//*****************************************************************************
+//
+// TM4C1233C3PM Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1233C3PM
+
+#define GPIO_PA0_U0RX           0x00000001
+
+#define GPIO_PA1_U0TX           0x00000401
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PB6_SSI2RX         0x00011802
+#define GPIO_PB6_T0CCP0         0x00011807
+
+#define GPIO_PB7_SSI2TX         0x00011C02
+#define GPIO_PB7_T0CCP1         0x00011C07
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_WT1CCP0        0x00021807
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_WT3CCP0        0x00030807
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_WT3CCP1        0x00030C07
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_T2CCP0         0x00051007
+
+#endif // PART_TM4C1233C3PM
+
+//*****************************************************************************
+//
+// TM4C1233D5PM Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1233D5PM
+
+#define GPIO_PA0_U0RX           0x00000001
+
+#define GPIO_PA1_U0TX           0x00000401
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PB6_SSI2RX         0x00011802
+#define GPIO_PB6_T0CCP0         0x00011807
+
+#define GPIO_PB7_SSI2TX         0x00011C02
+#define GPIO_PB7_T0CCP1         0x00011C07
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_WT1CCP0        0x00021807
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_WT3CCP0        0x00030807
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_WT3CCP1        0x00030C07
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_T2CCP0         0x00051007
+
+#endif // PART_TM4C1233D5PM
+
+//*****************************************************************************
+//
+// TM4C1233D5PZ Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1233D5PZ
+
+#define GPIO_PA0_U0RX           0x00000001
+
+#define GPIO_PA1_U0TX           0x00000401
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_WT1CCP0        0x00021807
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_WT3CCP0        0x00030807
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_WT3CCP1        0x00030C07
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PE7_U1RI           0x00041C01
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+#define GPIO_PF0_TRD2           0x0005000E
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_U1DCD          0x00050801
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_C2O            0x00050809
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_U1DSR          0x00050C01
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_U1DTR          0x00051001
+#define GPIO_PF4_T2CCP0         0x00051007
+#define GPIO_PF4_TRD3           0x0005100E
+
+#define GPIO_PF5_T2CCP1         0x00051407
+
+#define GPIO_PF6_I2C2SCL        0x00051803
+#define GPIO_PF6_T3CCP0         0x00051807
+
+#define GPIO_PF7_I2C2SDA        0x00051C03
+#define GPIO_PF7_T3CCP1         0x00051C07
+
+#define GPIO_PG0_I2C3SCL        0x00060003
+#define GPIO_PG0_T4CCP0         0x00060007
+
+#define GPIO_PG1_I2C3SDA        0x00060403
+#define GPIO_PG1_T4CCP1         0x00060407
+
+#define GPIO_PG2_I2C4SCL        0x00060803
+#define GPIO_PG2_T5CCP0         0x00060807
+
+#define GPIO_PG3_I2C4SDA        0x00060C03
+#define GPIO_PG3_T5CCP1         0x00060C07
+
+#define GPIO_PG4_U2RX           0x00061001
+#define GPIO_PG4_I2C1SCL        0x00061003
+#define GPIO_PG4_WT0CCP0        0x00061007
+
+#define GPIO_PG5_U2TX           0x00061401
+#define GPIO_PG5_I2C1SDA        0x00061403
+#define GPIO_PG5_WT0CCP1        0x00061407
+
+#define GPIO_PG6_I2C5SCL        0x00061803
+#define GPIO_PG6_WT1CCP0        0x00061807
+
+#define GPIO_PG7_I2C5SDA        0x00061C03
+#define GPIO_PG7_WT1CCP1        0x00061C07
+
+#define GPIO_PH0_SSI3CLK        0x00070002
+#define GPIO_PH0_WT2CCP0        0x00070007
+
+#define GPIO_PH1_SSI3FSS        0x00070402
+#define GPIO_PH1_WT2CCP1        0x00070407
+
+#define GPIO_PH2_SSI3RX         0x00070802
+#define GPIO_PH2_WT5CCP0        0x00070807
+
+#define GPIO_PH3_SSI3TX         0x00070C02
+#define GPIO_PH3_WT5CCP1        0x00070C07
+
+#define GPIO_PH4_SSI2CLK        0x00071002
+#define GPIO_PH4_WT3CCP0        0x00071007
+
+#define GPIO_PH5_SSI2FSS        0x00071402
+#define GPIO_PH5_WT3CCP1        0x00071407
+
+#define GPIO_PH6_SSI2RX         0x00071802
+#define GPIO_PH6_WT4CCP0        0x00071807
+
+#define GPIO_PH7_SSI2TX         0x00071C02
+#define GPIO_PH7_WT4CCP1        0x00071C07
+
+#define GPIO_PJ0_U4RX           0x00080001
+#define GPIO_PJ0_T1CCP0         0x00080007
+
+#define GPIO_PJ1_U4TX           0x00080401
+#define GPIO_PJ1_T1CCP1         0x00080407
+
+#define GPIO_PJ2_U5RX           0x00080801
+#define GPIO_PJ2_T2CCP0         0x00080807
+
+#define GPIO_PK0_SSI3CLK        0x00090002
+
+#define GPIO_PK1_SSI3FSS        0x00090402
+
+#define GPIO_PK2_SSI3RX         0x00090802
+
+#define GPIO_PK3_SSI3TX         0x00090C02
+
+#endif // PART_TM4C1233D5PZ
+
+//*****************************************************************************
+//
+// TM4C1233E6PM Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1233E6PM
+
+#define GPIO_PA0_U0RX           0x00000001
+
+#define GPIO_PA1_U0TX           0x00000401
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PB6_SSI2RX         0x00011802
+#define GPIO_PB6_T0CCP0         0x00011807
+
+#define GPIO_PB7_SSI2TX         0x00011C02
+#define GPIO_PB7_T0CCP1         0x00011C07
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_WT1CCP0        0x00021807
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_WT3CCP0        0x00030807
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_WT3CCP1        0x00030C07
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_T2CCP0         0x00051007
+
+#endif // PART_TM4C1233E6PM
+
+//*****************************************************************************
+//
+// TM4C1233E6PZ Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1233E6PZ
+
+#define GPIO_PA0_U0RX           0x00000001
+
+#define GPIO_PA1_U0TX           0x00000401
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_WT1CCP0        0x00021807
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_WT3CCP0        0x00030807
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_WT3CCP1        0x00030C07
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PE7_U1RI           0x00041C01
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+#define GPIO_PF0_TRD2           0x0005000E
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_U1DCD          0x00050801
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_C2O            0x00050809
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_U1DSR          0x00050C01
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_U1DTR          0x00051001
+#define GPIO_PF4_T2CCP0         0x00051007
+#define GPIO_PF4_TRD3           0x0005100E
+
+#define GPIO_PF5_T2CCP1         0x00051407
+
+#define GPIO_PF6_I2C2SCL        0x00051803
+#define GPIO_PF6_T3CCP0         0x00051807
+
+#define GPIO_PF7_I2C2SDA        0x00051C03
+#define GPIO_PF7_T3CCP1         0x00051C07
+
+#define GPIO_PG0_I2C3SCL        0x00060003
+#define GPIO_PG0_T4CCP0         0x00060007
+
+#define GPIO_PG1_I2C3SDA        0x00060403
+#define GPIO_PG1_T4CCP1         0x00060407
+
+#define GPIO_PG2_I2C4SCL        0x00060803
+#define GPIO_PG2_T5CCP0         0x00060807
+
+#define GPIO_PG3_I2C4SDA        0x00060C03
+#define GPIO_PG3_T5CCP1         0x00060C07
+
+#define GPIO_PG4_U2RX           0x00061001
+#define GPIO_PG4_I2C1SCL        0x00061003
+#define GPIO_PG4_WT0CCP0        0x00061007
+
+#define GPIO_PG5_U2TX           0x00061401
+#define GPIO_PG5_I2C1SDA        0x00061403
+#define GPIO_PG5_WT0CCP1        0x00061407
+
+#define GPIO_PG6_I2C5SCL        0x00061803
+#define GPIO_PG6_WT1CCP0        0x00061807
+
+#define GPIO_PG7_I2C5SDA        0x00061C03
+#define GPIO_PG7_WT1CCP1        0x00061C07
+
+#define GPIO_PH0_SSI3CLK        0x00070002
+#define GPIO_PH0_WT2CCP0        0x00070007
+
+#define GPIO_PH1_SSI3FSS        0x00070402
+#define GPIO_PH1_WT2CCP1        0x00070407
+
+#define GPIO_PH2_SSI3RX         0x00070802
+#define GPIO_PH2_WT5CCP0        0x00070807
+
+#define GPIO_PH3_SSI3TX         0x00070C02
+#define GPIO_PH3_WT5CCP1        0x00070C07
+
+#define GPIO_PH4_SSI2CLK        0x00071002
+#define GPIO_PH4_WT3CCP0        0x00071007
+
+#define GPIO_PH5_SSI2FSS        0x00071402
+#define GPIO_PH5_WT3CCP1        0x00071407
+
+#define GPIO_PH6_SSI2RX         0x00071802
+#define GPIO_PH6_WT4CCP0        0x00071807
+
+#define GPIO_PH7_SSI2TX         0x00071C02
+#define GPIO_PH7_WT4CCP1        0x00071C07
+
+#define GPIO_PJ0_U4RX           0x00080001
+#define GPIO_PJ0_T1CCP0         0x00080007
+
+#define GPIO_PJ1_U4TX           0x00080401
+#define GPIO_PJ1_T1CCP1         0x00080407
+
+#define GPIO_PJ2_U5RX           0x00080801
+#define GPIO_PJ2_T2CCP0         0x00080807
+
+#define GPIO_PK0_SSI3CLK        0x00090002
+
+#define GPIO_PK1_SSI3FSS        0x00090402
+
+#define GPIO_PK2_SSI3RX         0x00090802
+
+#define GPIO_PK3_SSI3TX         0x00090C02
+
+#endif // PART_TM4C1233E6PZ
+
+//*****************************************************************************
+//
+// TM4C1233H6PM Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1233H6PM
+
+#define GPIO_PA0_U0RX           0x00000001
+
+#define GPIO_PA1_U0TX           0x00000401
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PB6_SSI2RX         0x00011802
+#define GPIO_PB6_T0CCP0         0x00011807
+
+#define GPIO_PB7_SSI2TX         0x00011C02
+#define GPIO_PB7_T0CCP1         0x00011C07
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_WT1CCP0        0x00021807
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_WT3CCP0        0x00030807
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_WT3CCP1        0x00030C07
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_T2CCP0         0x00051007
+
+#endif // PART_TM4C1233H6PM
+
+//*****************************************************************************
+//
+// TM4C1233H6PZ Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1233H6PZ
+
+#define GPIO_PA0_U0RX           0x00000001
+
+#define GPIO_PA1_U0TX           0x00000401
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_WT1CCP0        0x00021807
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_WT3CCP0        0x00030807
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_WT3CCP1        0x00030C07
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PE7_U1RI           0x00041C01
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+#define GPIO_PF0_TRD2           0x0005000E
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_U1DCD          0x00050801
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_C2O            0x00050809
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_U1DSR          0x00050C01
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_U1DTR          0x00051001
+#define GPIO_PF4_T2CCP0         0x00051007
+#define GPIO_PF4_TRD3           0x0005100E
+
+#define GPIO_PF5_T2CCP1         0x00051407
+
+#define GPIO_PF6_I2C2SCL        0x00051803
+#define GPIO_PF6_T3CCP0         0x00051807
+
+#define GPIO_PF7_I2C2SDA        0x00051C03
+#define GPIO_PF7_T3CCP1         0x00051C07
+
+#define GPIO_PG0_I2C3SCL        0x00060003
+#define GPIO_PG0_T4CCP0         0x00060007
+
+#define GPIO_PG1_I2C3SDA        0x00060403
+#define GPIO_PG1_T4CCP1         0x00060407
+
+#define GPIO_PG2_I2C4SCL        0x00060803
+#define GPIO_PG2_T5CCP0         0x00060807
+
+#define GPIO_PG3_I2C4SDA        0x00060C03
+#define GPIO_PG3_T5CCP1         0x00060C07
+
+#define GPIO_PG4_U2RX           0x00061001
+#define GPIO_PG4_I2C1SCL        0x00061003
+#define GPIO_PG4_WT0CCP0        0x00061007
+
+#define GPIO_PG5_U2TX           0x00061401
+#define GPIO_PG5_I2C1SDA        0x00061403
+#define GPIO_PG5_WT0CCP1        0x00061407
+
+#define GPIO_PG6_I2C5SCL        0x00061803
+#define GPIO_PG6_WT1CCP0        0x00061807
+
+#define GPIO_PG7_I2C5SDA        0x00061C03
+#define GPIO_PG7_WT1CCP1        0x00061C07
+
+#define GPIO_PH0_SSI3CLK        0x00070002
+#define GPIO_PH0_WT2CCP0        0x00070007
+
+#define GPIO_PH1_SSI3FSS        0x00070402
+#define GPIO_PH1_WT2CCP1        0x00070407
+
+#define GPIO_PH2_SSI3RX         0x00070802
+#define GPIO_PH2_WT5CCP0        0x00070807
+
+#define GPIO_PH3_SSI3TX         0x00070C02
+#define GPIO_PH3_WT5CCP1        0x00070C07
+
+#define GPIO_PH4_SSI2CLK        0x00071002
+#define GPIO_PH4_WT3CCP0        0x00071007
+
+#define GPIO_PH5_SSI2FSS        0x00071402
+#define GPIO_PH5_WT3CCP1        0x00071407
+
+#define GPIO_PH6_SSI2RX         0x00071802
+#define GPIO_PH6_WT4CCP0        0x00071807
+
+#define GPIO_PH7_SSI2TX         0x00071C02
+#define GPIO_PH7_WT4CCP1        0x00071C07
+
+#define GPIO_PJ0_U4RX           0x00080001
+#define GPIO_PJ0_T1CCP0         0x00080007
+
+#define GPIO_PJ1_U4TX           0x00080401
+#define GPIO_PJ1_T1CCP1         0x00080407
+
+#define GPIO_PJ2_U5RX           0x00080801
+#define GPIO_PJ2_T2CCP0         0x00080807
+
+#define GPIO_PK0_SSI3CLK        0x00090002
+
+#define GPIO_PK1_SSI3FSS        0x00090402
+
+#define GPIO_PK2_SSI3RX         0x00090802
+
+#define GPIO_PK3_SSI3TX         0x00090C02
+
+#endif // PART_TM4C1233H6PZ
+
+//*****************************************************************************
+//
+// TM4C1236D5PM Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1236D5PM
+
+#define GPIO_PA0_U0RX           0x00000001
+
+#define GPIO_PA1_U0TX           0x00000401
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PB6_SSI2RX         0x00011802
+#define GPIO_PB6_I2C5SCL        0x00011803
+#define GPIO_PB6_T0CCP0         0x00011807
+
+#define GPIO_PB7_SSI2TX         0x00011C02
+#define GPIO_PB7_I2C5SDA        0x00011C03
+#define GPIO_PB7_T0CCP1         0x00011C07
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_WT1CCP0        0x00021807
+#define GPIO_PC6_USB0EPEN       0x00021808
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+#define GPIO_PC7_USB0PFLT       0x00021C08
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_WT3CCP0        0x00030807
+#define GPIO_PD2_USB0EPEN       0x00030808
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_WT3CCP1        0x00030C07
+#define GPIO_PD3_USB0PFLT       0x00030C08
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_T2CCP0         0x00051007
+#define GPIO_PF4_USB0EPEN       0x00051008
+
+#define GPIO_PG0_I2C3SCL        0x00060003
+#define GPIO_PG0_T4CCP0         0x00060007
+
+#define GPIO_PG1_I2C3SDA        0x00060403
+#define GPIO_PG1_T4CCP1         0x00060407
+
+#define GPIO_PG2_I2C4SCL        0x00060803
+#define GPIO_PG2_T5CCP0         0x00060807
+
+#define GPIO_PG3_I2C4SDA        0x00060C03
+#define GPIO_PG3_T5CCP1         0x00060C07
+
+#define GPIO_PG4_U2RX           0x00061001
+#define GPIO_PG4_I2C1SCL        0x00061003
+#define GPIO_PG4_WT0CCP0        0x00061007
+#define GPIO_PG4_USB0EPEN       0x00061008
+
+#define GPIO_PG5_U2TX           0x00061401
+#define GPIO_PG5_I2C1SDA        0x00061403
+#define GPIO_PG5_WT0CCP1        0x00061407
+#define GPIO_PG5_USB0PFLT       0x00061408
+
+#endif // PART_TM4C1236D5PM
+
+//*****************************************************************************
+//
+// TM4C1236E6PM Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1236E6PM
+
+#define GPIO_PA0_U0RX           0x00000001
+
+#define GPIO_PA1_U0TX           0x00000401
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PB6_SSI2RX         0x00011802
+#define GPIO_PB6_I2C5SCL        0x00011803
+#define GPIO_PB6_T0CCP0         0x00011807
+
+#define GPIO_PB7_SSI2TX         0x00011C02
+#define GPIO_PB7_I2C5SDA        0x00011C03
+#define GPIO_PB7_T0CCP1         0x00011C07
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_WT1CCP0        0x00021807
+#define GPIO_PC6_USB0EPEN       0x00021808
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+#define GPIO_PC7_USB0PFLT       0x00021C08
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_WT3CCP0        0x00030807
+#define GPIO_PD2_USB0EPEN       0x00030808
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_WT3CCP1        0x00030C07
+#define GPIO_PD3_USB0PFLT       0x00030C08
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_T2CCP0         0x00051007
+#define GPIO_PF4_USB0EPEN       0x00051008
+
+#define GPIO_PG0_I2C3SCL        0x00060003
+#define GPIO_PG0_T4CCP0         0x00060007
+
+#define GPIO_PG1_I2C3SDA        0x00060403
+#define GPIO_PG1_T4CCP1         0x00060407
+
+#define GPIO_PG2_I2C4SCL        0x00060803
+#define GPIO_PG2_T5CCP0         0x00060807
+
+#define GPIO_PG3_I2C4SDA        0x00060C03
+#define GPIO_PG3_T5CCP1         0x00060C07
+
+#define GPIO_PG4_U2RX           0x00061001
+#define GPIO_PG4_I2C1SCL        0x00061003
+#define GPIO_PG4_WT0CCP0        0x00061007
+#define GPIO_PG4_USB0EPEN       0x00061008
+
+#define GPIO_PG5_U2TX           0x00061401
+#define GPIO_PG5_I2C1SDA        0x00061403
+#define GPIO_PG5_WT0CCP1        0x00061407
+#define GPIO_PG5_USB0PFLT       0x00061408
+
+#endif // PART_TM4C1236E6PM
+
+//*****************************************************************************
+//
+// TM4C1236H6PM Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1236H6PM
+
+#define GPIO_PA0_U0RX           0x00000001
+
+#define GPIO_PA1_U0TX           0x00000401
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PB6_SSI2RX         0x00011802
+#define GPIO_PB6_I2C5SCL        0x00011803
+#define GPIO_PB6_T0CCP0         0x00011807
+
+#define GPIO_PB7_SSI2TX         0x00011C02
+#define GPIO_PB7_I2C5SDA        0x00011C03
+#define GPIO_PB7_T0CCP1         0x00011C07
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_WT1CCP0        0x00021807
+#define GPIO_PC6_USB0EPEN       0x00021808
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+#define GPIO_PC7_USB0PFLT       0x00021C08
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_WT3CCP0        0x00030807
+#define GPIO_PD2_USB0EPEN       0x00030808
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_WT3CCP1        0x00030C07
+#define GPIO_PD3_USB0PFLT       0x00030C08
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_T2CCP0         0x00051007
+#define GPIO_PF4_USB0EPEN       0x00051008
+
+#define GPIO_PG0_I2C3SCL        0x00060003
+#define GPIO_PG0_T4CCP0         0x00060007
+
+#define GPIO_PG1_I2C3SDA        0x00060403
+#define GPIO_PG1_T4CCP1         0x00060407
+
+#define GPIO_PG2_I2C4SCL        0x00060803
+#define GPIO_PG2_T5CCP0         0x00060807
+
+#define GPIO_PG3_I2C4SDA        0x00060C03
+#define GPIO_PG3_T5CCP1         0x00060C07
+
+#define GPIO_PG4_U2RX           0x00061001
+#define GPIO_PG4_I2C1SCL        0x00061003
+#define GPIO_PG4_WT0CCP0        0x00061007
+#define GPIO_PG4_USB0EPEN       0x00061008
+
+#define GPIO_PG5_U2TX           0x00061401
+#define GPIO_PG5_I2C1SDA        0x00061403
+#define GPIO_PG5_WT0CCP1        0x00061407
+#define GPIO_PG5_USB0PFLT       0x00061408
+
+#endif // PART_TM4C1236H6PM
+
+//*****************************************************************************
+//
+// TM4C1237D5PM Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1237D5PM
+
+#define GPIO_PA0_U0RX           0x00000001
+
+#define GPIO_PA1_U0TX           0x00000401
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PB6_SSI2RX         0x00011802
+#define GPIO_PB6_T0CCP0         0x00011807
+
+#define GPIO_PB7_SSI2TX         0x00011C02
+#define GPIO_PB7_T0CCP1         0x00011C07
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_WT1CCP0        0x00021807
+#define GPIO_PC6_USB0EPEN       0x00021808
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+#define GPIO_PC7_USB0PFLT       0x00021C08
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_WT3CCP0        0x00030807
+#define GPIO_PD2_USB0EPEN       0x00030808
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_WT3CCP1        0x00030C07
+#define GPIO_PD3_USB0PFLT       0x00030C08
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_T2CCP0         0x00051007
+#define GPIO_PF4_USB0EPEN       0x00051008
+
+#endif // PART_TM4C1237D5PM
+
+//*****************************************************************************
+//
+// TM4C1237D5PZ Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1237D5PZ
+
+#define GPIO_PA0_U0RX           0x00000001
+
+#define GPIO_PA1_U0TX           0x00000401
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_WT1CCP0        0x00021807
+#define GPIO_PC6_USB0EPEN       0x00021808
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+#define GPIO_PC7_USB0PFLT       0x00021C08
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_WT3CCP0        0x00030807
+#define GPIO_PD2_USB0EPEN       0x00030808
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_WT3CCP1        0x00030C07
+#define GPIO_PD3_USB0PFLT       0x00030C08
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PE7_U1RI           0x00041C01
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+#define GPIO_PF0_TRD2           0x0005000E
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_U1DCD          0x00050801
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_C2O            0x00050809
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_U1DSR          0x00050C01
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_U1DTR          0x00051001
+#define GPIO_PF4_T2CCP0         0x00051007
+#define GPIO_PF4_USB0EPEN       0x00051008
+#define GPIO_PF4_TRD3           0x0005100E
+
+#define GPIO_PF5_T2CCP1         0x00051407
+#define GPIO_PF5_USB0PFLT       0x00051408
+
+#define GPIO_PF6_I2C2SCL        0x00051803
+#define GPIO_PF6_T3CCP0         0x00051807
+
+#define GPIO_PF7_I2C2SDA        0x00051C03
+#define GPIO_PF7_T3CCP1         0x00051C07
+
+#define GPIO_PG0_I2C3SCL        0x00060003
+#define GPIO_PG0_T4CCP0         0x00060007
+
+#define GPIO_PG1_I2C3SDA        0x00060403
+#define GPIO_PG1_T4CCP1         0x00060407
+
+#define GPIO_PG2_I2C4SCL        0x00060803
+#define GPIO_PG2_T5CCP0         0x00060807
+
+#define GPIO_PG3_I2C4SDA        0x00060C03
+#define GPIO_PG3_T5CCP1         0x00060C07
+
+#define GPIO_PG4_U2RX           0x00061001
+#define GPIO_PG4_I2C1SCL        0x00061003
+#define GPIO_PG4_WT0CCP0        0x00061007
+#define GPIO_PG4_USB0EPEN       0x00061008
+
+#define GPIO_PG5_U2TX           0x00061401
+#define GPIO_PG5_I2C1SDA        0x00061403
+#define GPIO_PG5_WT0CCP1        0x00061407
+#define GPIO_PG5_USB0PFLT       0x00061408
+
+#define GPIO_PG6_I2C5SCL        0x00061803
+#define GPIO_PG6_WT1CCP0        0x00061807
+
+#define GPIO_PG7_I2C5SDA        0x00061C03
+#define GPIO_PG7_WT1CCP1        0x00061C07
+
+#define GPIO_PH0_SSI3CLK        0x00070002
+#define GPIO_PH0_WT2CCP0        0x00070007
+
+#define GPIO_PH1_SSI3FSS        0x00070402
+#define GPIO_PH1_WT2CCP1        0x00070407
+
+#define GPIO_PH2_SSI3RX         0x00070802
+#define GPIO_PH2_WT5CCP0        0x00070807
+
+#define GPIO_PH3_SSI3TX         0x00070C02
+#define GPIO_PH3_WT5CCP1        0x00070C07
+
+#define GPIO_PH4_SSI2CLK        0x00071002
+#define GPIO_PH4_WT3CCP0        0x00071007
+
+#define GPIO_PH5_SSI2FSS        0x00071402
+#define GPIO_PH5_WT3CCP1        0x00071407
+
+#define GPIO_PH6_SSI2RX         0x00071802
+#define GPIO_PH6_WT4CCP0        0x00071807
+
+#define GPIO_PH7_SSI2TX         0x00071C02
+#define GPIO_PH7_WT4CCP1        0x00071C07
+
+#define GPIO_PJ0_U4RX           0x00080001
+#define GPIO_PJ0_T1CCP0         0x00080007
+
+#define GPIO_PJ1_U4TX           0x00080401
+#define GPIO_PJ1_T1CCP1         0x00080407
+
+#define GPIO_PJ2_U5RX           0x00080801
+#define GPIO_PJ2_T2CCP0         0x00080807
+
+#define GPIO_PK0_SSI3CLK        0x00090002
+
+#define GPIO_PK1_SSI3FSS        0x00090402
+
+#define GPIO_PK2_SSI3RX         0x00090802
+
+#define GPIO_PK3_SSI3TX         0x00090C02
+
+#endif // PART_TM4C1237D5PZ
+
+//*****************************************************************************
+//
+// TM4C1237E6PM Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1237E6PM
+
+#define GPIO_PA0_U0RX           0x00000001
+
+#define GPIO_PA1_U0TX           0x00000401
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PB6_SSI2RX         0x00011802
+#define GPIO_PB6_T0CCP0         0x00011807
+
+#define GPIO_PB7_SSI2TX         0x00011C02
+#define GPIO_PB7_T0CCP1         0x00011C07
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_WT1CCP0        0x00021807
+#define GPIO_PC6_USB0EPEN       0x00021808
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+#define GPIO_PC7_USB0PFLT       0x00021C08
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_WT3CCP0        0x00030807
+#define GPIO_PD2_USB0EPEN       0x00030808
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_WT3CCP1        0x00030C07
+#define GPIO_PD3_USB0PFLT       0x00030C08
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_T2CCP0         0x00051007
+#define GPIO_PF4_USB0EPEN       0x00051008
+
+#endif // PART_TM4C1237E6PM
+
+//*****************************************************************************
+//
+// TM4C1237E6PZ Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1237E6PZ
+
+#define GPIO_PA0_U0RX           0x00000001
+
+#define GPIO_PA1_U0TX           0x00000401
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_WT1CCP0        0x00021807
+#define GPIO_PC6_USB0EPEN       0x00021808
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+#define GPIO_PC7_USB0PFLT       0x00021C08
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_WT3CCP0        0x00030807
+#define GPIO_PD2_USB0EPEN       0x00030808
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_WT3CCP1        0x00030C07
+#define GPIO_PD3_USB0PFLT       0x00030C08
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PE7_U1RI           0x00041C01
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+#define GPIO_PF0_TRD2           0x0005000E
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_U1DCD          0x00050801
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_C2O            0x00050809
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_U1DSR          0x00050C01
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_U1DTR          0x00051001
+#define GPIO_PF4_T2CCP0         0x00051007
+#define GPIO_PF4_USB0EPEN       0x00051008
+#define GPIO_PF4_TRD3           0x0005100E
+
+#define GPIO_PF5_T2CCP1         0x00051407
+#define GPIO_PF5_USB0PFLT       0x00051408
+
+#define GPIO_PF6_I2C2SCL        0x00051803
+#define GPIO_PF6_T3CCP0         0x00051807
+
+#define GPIO_PF7_I2C2SDA        0x00051C03
+#define GPIO_PF7_T3CCP1         0x00051C07
+
+#define GPIO_PG0_I2C3SCL        0x00060003
+#define GPIO_PG0_T4CCP0         0x00060007
+
+#define GPIO_PG1_I2C3SDA        0x00060403
+#define GPIO_PG1_T4CCP1         0x00060407
+
+#define GPIO_PG2_I2C4SCL        0x00060803
+#define GPIO_PG2_T5CCP0         0x00060807
+
+#define GPIO_PG3_I2C4SDA        0x00060C03
+#define GPIO_PG3_T5CCP1         0x00060C07
+
+#define GPIO_PG4_U2RX           0x00061001
+#define GPIO_PG4_I2C1SCL        0x00061003
+#define GPIO_PG4_WT0CCP0        0x00061007
+#define GPIO_PG4_USB0EPEN       0x00061008
+
+#define GPIO_PG5_U2TX           0x00061401
+#define GPIO_PG5_I2C1SDA        0x00061403
+#define GPIO_PG5_WT0CCP1        0x00061407
+#define GPIO_PG5_USB0PFLT       0x00061408
+
+#define GPIO_PG6_I2C5SCL        0x00061803
+#define GPIO_PG6_WT1CCP0        0x00061807
+
+#define GPIO_PG7_I2C5SDA        0x00061C03
+#define GPIO_PG7_WT1CCP1        0x00061C07
+
+#define GPIO_PH0_SSI3CLK        0x00070002
+#define GPIO_PH0_WT2CCP0        0x00070007
+
+#define GPIO_PH1_SSI3FSS        0x00070402
+#define GPIO_PH1_WT2CCP1        0x00070407
+
+#define GPIO_PH2_SSI3RX         0x00070802
+#define GPIO_PH2_WT5CCP0        0x00070807
+
+#define GPIO_PH3_SSI3TX         0x00070C02
+#define GPIO_PH3_WT5CCP1        0x00070C07
+
+#define GPIO_PH4_SSI2CLK        0x00071002
+#define GPIO_PH4_WT3CCP0        0x00071007
+
+#define GPIO_PH5_SSI2FSS        0x00071402
+#define GPIO_PH5_WT3CCP1        0x00071407
+
+#define GPIO_PH6_SSI2RX         0x00071802
+#define GPIO_PH6_WT4CCP0        0x00071807
+
+#define GPIO_PH7_SSI2TX         0x00071C02
+#define GPIO_PH7_WT4CCP1        0x00071C07
+
+#define GPIO_PJ0_U4RX           0x00080001
+#define GPIO_PJ0_T1CCP0         0x00080007
+
+#define GPIO_PJ1_U4TX           0x00080401
+#define GPIO_PJ1_T1CCP1         0x00080407
+
+#define GPIO_PJ2_U5RX           0x00080801
+#define GPIO_PJ2_T2CCP0         0x00080807
+
+#define GPIO_PK0_SSI3CLK        0x00090002
+
+#define GPIO_PK1_SSI3FSS        0x00090402
+
+#define GPIO_PK2_SSI3RX         0x00090802
+
+#define GPIO_PK3_SSI3TX         0x00090C02
+
+#endif // PART_TM4C1237E6PZ
+
+//*****************************************************************************
+//
+// TM4C1237H6PM Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1237H6PM
+
+#define GPIO_PA0_U0RX           0x00000001
+
+#define GPIO_PA1_U0TX           0x00000401
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PB6_SSI2RX         0x00011802
+#define GPIO_PB6_T0CCP0         0x00011807
+
+#define GPIO_PB7_SSI2TX         0x00011C02
+#define GPIO_PB7_T0CCP1         0x00011C07
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_WT1CCP0        0x00021807
+#define GPIO_PC6_USB0EPEN       0x00021808
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+#define GPIO_PC7_USB0PFLT       0x00021C08
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_WT3CCP0        0x00030807
+#define GPIO_PD2_USB0EPEN       0x00030808
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_WT3CCP1        0x00030C07
+#define GPIO_PD3_USB0PFLT       0x00030C08
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_T2CCP0         0x00051007
+#define GPIO_PF4_USB0EPEN       0x00051008
+
+#endif // PART_TM4C1237H6PM
+
+//*****************************************************************************
+//
+// TM4C1237H6PZ Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1237H6PZ
+
+#define GPIO_PA0_U0RX           0x00000001
+
+#define GPIO_PA1_U0TX           0x00000401
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_WT1CCP0        0x00021807
+#define GPIO_PC6_USB0EPEN       0x00021808
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+#define GPIO_PC7_USB0PFLT       0x00021C08
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_WT3CCP0        0x00030807
+#define GPIO_PD2_USB0EPEN       0x00030808
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_WT3CCP1        0x00030C07
+#define GPIO_PD3_USB0PFLT       0x00030C08
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PE7_U1RI           0x00041C01
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+#define GPIO_PF0_TRD2           0x0005000E
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_U1DCD          0x00050801
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_C2O            0x00050809
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_U1DSR          0x00050C01
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_U1DTR          0x00051001
+#define GPIO_PF4_T2CCP0         0x00051007
+#define GPIO_PF4_USB0EPEN       0x00051008
+#define GPIO_PF4_TRD3           0x0005100E
+
+#define GPIO_PF5_T2CCP1         0x00051407
+#define GPIO_PF5_USB0PFLT       0x00051408
+
+#define GPIO_PF6_I2C2SCL        0x00051803
+#define GPIO_PF6_T3CCP0         0x00051807
+
+#define GPIO_PF7_I2C2SDA        0x00051C03
+#define GPIO_PF7_T3CCP1         0x00051C07
+
+#define GPIO_PG0_I2C3SCL        0x00060003
+#define GPIO_PG0_T4CCP0         0x00060007
+
+#define GPIO_PG1_I2C3SDA        0x00060403
+#define GPIO_PG1_T4CCP1         0x00060407
+
+#define GPIO_PG2_I2C4SCL        0x00060803
+#define GPIO_PG2_T5CCP0         0x00060807
+
+#define GPIO_PG3_I2C4SDA        0x00060C03
+#define GPIO_PG3_T5CCP1         0x00060C07
+
+#define GPIO_PG4_U2RX           0x00061001
+#define GPIO_PG4_I2C1SCL        0x00061003
+#define GPIO_PG4_WT0CCP0        0x00061007
+#define GPIO_PG4_USB0EPEN       0x00061008
+
+#define GPIO_PG5_U2TX           0x00061401
+#define GPIO_PG5_I2C1SDA        0x00061403
+#define GPIO_PG5_WT0CCP1        0x00061407
+#define GPIO_PG5_USB0PFLT       0x00061408
+
+#define GPIO_PG6_I2C5SCL        0x00061803
+#define GPIO_PG6_WT1CCP0        0x00061807
+
+#define GPIO_PG7_I2C5SDA        0x00061C03
+#define GPIO_PG7_WT1CCP1        0x00061C07
+
+#define GPIO_PH0_SSI3CLK        0x00070002
+#define GPIO_PH0_WT2CCP0        0x00070007
+
+#define GPIO_PH1_SSI3FSS        0x00070402
+#define GPIO_PH1_WT2CCP1        0x00070407
+
+#define GPIO_PH2_SSI3RX         0x00070802
+#define GPIO_PH2_WT5CCP0        0x00070807
+
+#define GPIO_PH3_SSI3TX         0x00070C02
+#define GPIO_PH3_WT5CCP1        0x00070C07
+
+#define GPIO_PH4_SSI2CLK        0x00071002
+#define GPIO_PH4_WT3CCP0        0x00071007
+
+#define GPIO_PH5_SSI2FSS        0x00071402
+#define GPIO_PH5_WT3CCP1        0x00071407
+
+#define GPIO_PH6_SSI2RX         0x00071802
+#define GPIO_PH6_WT4CCP0        0x00071807
+
+#define GPIO_PH7_SSI2TX         0x00071C02
+#define GPIO_PH7_WT4CCP1        0x00071C07
+
+#define GPIO_PJ0_U4RX           0x00080001
+#define GPIO_PJ0_T1CCP0         0x00080007
+
+#define GPIO_PJ1_U4TX           0x00080401
+#define GPIO_PJ1_T1CCP1         0x00080407
+
+#define GPIO_PJ2_U5RX           0x00080801
+#define GPIO_PJ2_T2CCP0         0x00080807
+
+#define GPIO_PK0_SSI3CLK        0x00090002
+
+#define GPIO_PK1_SSI3FSS        0x00090402
+
+#define GPIO_PK2_SSI3RX         0x00090802
+
+#define GPIO_PK3_SSI3TX         0x00090C02
+
+#endif // PART_TM4C1237H6PZ
+
+//*****************************************************************************
+//
+// TM4C123AE6PM Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C123AE6PM
+
+#define GPIO_PA0_U0RX           0x00000001
+#define GPIO_PA0_CAN1RX         0x00000008
+
+#define GPIO_PA1_U0TX           0x00000401
+#define GPIO_PA1_CAN1TX         0x00000408
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+#define GPIO_PA6_M1PWM2         0x00001805
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+#define GPIO_PA7_M1PWM3         0x00001C05
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_M0PWM2         0x00011004
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_M0PWM3         0x00011404
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PB6_SSI2RX         0x00011802
+#define GPIO_PB6_I2C5SCL        0x00011803
+#define GPIO_PB6_M0PWM0         0x00011804
+#define GPIO_PB6_T0CCP0         0x00011807
+
+#define GPIO_PB7_SSI2TX         0x00011C02
+#define GPIO_PB7_I2C5SDA        0x00011C03
+#define GPIO_PB7_M0PWM1         0x00011C04
+#define GPIO_PB7_T0CCP1         0x00011C07
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_M0PWM6         0x00021004
+#define GPIO_PC4_IDX1           0x00021006
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_M0PWM7         0x00021404
+#define GPIO_PC5_PHA1           0x00021406
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_PHB1           0x00021806
+#define GPIO_PC6_WT1CCP0        0x00021807
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_M0PWM6         0x00030004
+#define GPIO_PD0_M1PWM0         0x00030005
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_M0PWM7         0x00030404
+#define GPIO_PD1_M1PWM1         0x00030405
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_M0FAULT0       0x00030804
+#define GPIO_PD2_WT3CCP0        0x00030807
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_IDX0           0x00030C06
+#define GPIO_PD3_WT3CCP1        0x00030C07
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_M0FAULT0       0x00031804
+#define GPIO_PD6_PHA0           0x00031806
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_M0FAULT1       0x00031C04
+#define GPIO_PD7_PHB0           0x00031C06
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_M0PWM4         0x00041004
+#define GPIO_PE4_M1PWM2         0x00041005
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_M0PWM5         0x00041404
+#define GPIO_PE5_M1PWM3         0x00041405
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_M1PWM4         0x00050005
+#define GPIO_PF0_PHA0           0x00050006
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_M1PWM5         0x00050405
+#define GPIO_PF1_PHB0           0x00050406
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_M0FAULT0       0x00050804
+#define GPIO_PF2_M1PWM6         0x00050805
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_M0FAULT1       0x00050C04
+#define GPIO_PF3_M1PWM7         0x00050C05
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_M0FAULT2       0x00051004
+#define GPIO_PF4_M1FAULT0       0x00051005
+#define GPIO_PF4_IDX0           0x00051006
+#define GPIO_PF4_T2CCP0         0x00051007
+
+#define GPIO_PG0_I2C3SCL        0x00060003
+#define GPIO_PG0_M1FAULT1       0x00060005
+#define GPIO_PG0_PHA1           0x00060006
+#define GPIO_PG0_T4CCP0         0x00060007
+
+#define GPIO_PG1_I2C3SDA        0x00060403
+#define GPIO_PG1_M1FAULT2       0x00060405
+#define GPIO_PG1_PHB1           0x00060406
+#define GPIO_PG1_T4CCP1         0x00060407
+
+#define GPIO_PG2_I2C4SCL        0x00060803
+#define GPIO_PG2_M0FAULT1       0x00060804
+#define GPIO_PG2_M1PWM0         0x00060805
+#define GPIO_PG2_T5CCP0         0x00060807
+
+#define GPIO_PG3_I2C4SDA        0x00060C03
+#define GPIO_PG3_M0FAULT2       0x00060C04
+#define GPIO_PG3_M1PWM1         0x00060C05
+#define GPIO_PG3_PHA1           0x00060C06
+#define GPIO_PG3_T5CCP1         0x00060C07
+
+#define GPIO_PG4_U2RX           0x00061001
+#define GPIO_PG4_I2C1SCL        0x00061003
+#define GPIO_PG4_M0PWM4         0x00061004
+#define GPIO_PG4_M1PWM2         0x00061005
+#define GPIO_PG4_PHB1           0x00061006
+#define GPIO_PG4_WT0CCP0        0x00061007
+
+#define GPIO_PG5_U2TX           0x00061401
+#define GPIO_PG5_I2C1SDA        0x00061403
+#define GPIO_PG5_M0PWM5         0x00061404
+#define GPIO_PG5_M1PWM3         0x00061405
+#define GPIO_PG5_IDX1           0x00061406
+#define GPIO_PG5_WT0CCP1        0x00061407
+
+#endif // PART_TM4C123AE6PM
+
+//*****************************************************************************
+//
+// TM4C123AH6PM Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C123AH6PM
+
+#define GPIO_PA0_U0RX           0x00000001
+#define GPIO_PA0_CAN1RX         0x00000008
+
+#define GPIO_PA1_U0TX           0x00000401
+#define GPIO_PA1_CAN1TX         0x00000408
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+#define GPIO_PA6_M1PWM2         0x00001805
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+#define GPIO_PA7_M1PWM3         0x00001C05
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_M0PWM2         0x00011004
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_M0PWM3         0x00011404
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PB6_SSI2RX         0x00011802
+#define GPIO_PB6_I2C5SCL        0x00011803
+#define GPIO_PB6_M0PWM0         0x00011804
+#define GPIO_PB6_T0CCP0         0x00011807
+
+#define GPIO_PB7_SSI2TX         0x00011C02
+#define GPIO_PB7_I2C5SDA        0x00011C03
+#define GPIO_PB7_M0PWM1         0x00011C04
+#define GPIO_PB7_T0CCP1         0x00011C07
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_M0PWM6         0x00021004
+#define GPIO_PC4_IDX1           0x00021006
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_M0PWM7         0x00021404
+#define GPIO_PC5_PHA1           0x00021406
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_PHB1           0x00021806
+#define GPIO_PC6_WT1CCP0        0x00021807
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_M0PWM6         0x00030004
+#define GPIO_PD0_M1PWM0         0x00030005
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_M0PWM7         0x00030404
+#define GPIO_PD1_M1PWM1         0x00030405
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_M0FAULT0       0x00030804
+#define GPIO_PD2_WT3CCP0        0x00030807
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_IDX0           0x00030C06
+#define GPIO_PD3_WT3CCP1        0x00030C07
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_M0FAULT0       0x00031804
+#define GPIO_PD6_PHA0           0x00031806
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_M0FAULT1       0x00031C04
+#define GPIO_PD7_PHB0           0x00031C06
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_M0PWM4         0x00041004
+#define GPIO_PE4_M1PWM2         0x00041005
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_M0PWM5         0x00041404
+#define GPIO_PE5_M1PWM3         0x00041405
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_M1PWM4         0x00050005
+#define GPIO_PF0_PHA0           0x00050006
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_M1PWM5         0x00050405
+#define GPIO_PF1_PHB0           0x00050406
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_M0FAULT0       0x00050804
+#define GPIO_PF2_M1PWM6         0x00050805
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_M0FAULT1       0x00050C04
+#define GPIO_PF3_M1PWM7         0x00050C05
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_M0FAULT2       0x00051004
+#define GPIO_PF4_M1FAULT0       0x00051005
+#define GPIO_PF4_IDX0           0x00051006
+#define GPIO_PF4_T2CCP0         0x00051007
+
+#define GPIO_PG0_I2C3SCL        0x00060003
+#define GPIO_PG0_M1FAULT1       0x00060005
+#define GPIO_PG0_PHA1           0x00060006
+#define GPIO_PG0_T4CCP0         0x00060007
+
+#define GPIO_PG1_I2C3SDA        0x00060403
+#define GPIO_PG1_M1FAULT2       0x00060405
+#define GPIO_PG1_PHB1           0x00060406
+#define GPIO_PG1_T4CCP1         0x00060407
+
+#define GPIO_PG2_I2C4SCL        0x00060803
+#define GPIO_PG2_M0FAULT1       0x00060804
+#define GPIO_PG2_M1PWM0         0x00060805
+#define GPIO_PG2_T5CCP0         0x00060807
+
+#define GPIO_PG3_I2C4SDA        0x00060C03
+#define GPIO_PG3_M0FAULT2       0x00060C04
+#define GPIO_PG3_M1PWM1         0x00060C05
+#define GPIO_PG3_PHA1           0x00060C06
+#define GPIO_PG3_T5CCP1         0x00060C07
+
+#define GPIO_PG4_U2RX           0x00061001
+#define GPIO_PG4_I2C1SCL        0x00061003
+#define GPIO_PG4_M0PWM4         0x00061004
+#define GPIO_PG4_M1PWM2         0x00061005
+#define GPIO_PG4_PHB1           0x00061006
+#define GPIO_PG4_WT0CCP0        0x00061007
+
+#define GPIO_PG5_U2TX           0x00061401
+#define GPIO_PG5_I2C1SDA        0x00061403
+#define GPIO_PG5_M0PWM5         0x00061404
+#define GPIO_PG5_M1PWM3         0x00061405
+#define GPIO_PG5_IDX1           0x00061406
+#define GPIO_PG5_WT0CCP1        0x00061407
+
+#endif // PART_TM4C123AH6PM
+
+//*****************************************************************************
+//
+// TM4C123BE6PM Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C123BE6PM
+
+#define GPIO_PA0_U0RX           0x00000001
+#define GPIO_PA0_CAN1RX         0x00000008
+
+#define GPIO_PA1_U0TX           0x00000401
+#define GPIO_PA1_CAN1TX         0x00000408
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+#define GPIO_PA6_M1PWM2         0x00001805
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+#define GPIO_PA7_M1PWM3         0x00001C05
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_M0PWM2         0x00011004
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_M0PWM3         0x00011404
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PB6_SSI2RX         0x00011802
+#define GPIO_PB6_M0PWM0         0x00011804
+#define GPIO_PB6_T0CCP0         0x00011807
+
+#define GPIO_PB7_SSI2TX         0x00011C02
+#define GPIO_PB7_M0PWM1         0x00011C04
+#define GPIO_PB7_T0CCP1         0x00011C07
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_M0PWM6         0x00021004
+#define GPIO_PC4_IDX1           0x00021006
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_M0PWM7         0x00021404
+#define GPIO_PC5_PHA1           0x00021406
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_PHB1           0x00021806
+#define GPIO_PC6_WT1CCP0        0x00021807
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_M0PWM6         0x00030004
+#define GPIO_PD0_M1PWM0         0x00030005
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_M0PWM7         0x00030404
+#define GPIO_PD1_M1PWM1         0x00030405
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_M0FAULT0       0x00030804
+#define GPIO_PD2_WT3CCP0        0x00030807
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_IDX0           0x00030C06
+#define GPIO_PD3_WT3CCP1        0x00030C07
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_M0FAULT0       0x00031804
+#define GPIO_PD6_PHA0           0x00031806
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_PHB0           0x00031C06
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_M0PWM4         0x00041004
+#define GPIO_PE4_M1PWM2         0x00041005
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_M0PWM5         0x00041404
+#define GPIO_PE5_M1PWM3         0x00041405
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_M1PWM4         0x00050005
+#define GPIO_PF0_PHA0           0x00050006
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_M1PWM5         0x00050405
+#define GPIO_PF1_PHB0           0x00050406
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_M0FAULT0       0x00050804
+#define GPIO_PF2_M1PWM6         0x00050805
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_M1PWM7         0x00050C05
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_M1FAULT0       0x00051005
+#define GPIO_PF4_IDX0           0x00051006
+#define GPIO_PF4_T2CCP0         0x00051007
+
+#endif // PART_TM4C123BE6PM
+
+//*****************************************************************************
+//
+// TM4C123BE6PZ Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C123BE6PZ
+
+#define GPIO_PA0_U0RX           0x00000001
+#define GPIO_PA0_CAN1RX         0x00000008
+
+#define GPIO_PA1_U0TX           0x00000401
+#define GPIO_PA1_CAN1TX         0x00000408
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+#define GPIO_PA6_M1PWM2         0x00001805
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+#define GPIO_PA7_M1PWM3         0x00001C05
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_M0PWM2         0x00011004
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_M0PWM3         0x00011404
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_M0PWM6         0x00021004
+#define GPIO_PC4_IDX1           0x00021006
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_M0PWM7         0x00021404
+#define GPIO_PC5_PHA1           0x00021406
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_PHB1           0x00021806
+#define GPIO_PC6_WT1CCP0        0x00021807
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_M0PWM6         0x00030004
+#define GPIO_PD0_M1PWM0         0x00030005
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_M0PWM7         0x00030404
+#define GPIO_PD1_M1PWM1         0x00030405
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_M0FAULT0       0x00030804
+#define GPIO_PD2_WT3CCP0        0x00030807
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_IDX0           0x00030C06
+#define GPIO_PD3_WT3CCP1        0x00030C07
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_M0FAULT0       0x00031804
+#define GPIO_PD6_PHA0           0x00031806
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_M0FAULT1       0x00031C04
+#define GPIO_PD7_PHB0           0x00031C06
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_M0PWM4         0x00041004
+#define GPIO_PE4_M1PWM2         0x00041005
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_M0PWM5         0x00041404
+#define GPIO_PE5_M1PWM3         0x00041405
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PE6_CAN1RX         0x00041808
+
+#define GPIO_PE7_U1RI           0x00041C01
+#define GPIO_PE7_CAN1TX         0x00041C08
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_M1PWM4         0x00050005
+#define GPIO_PF0_PHA0           0x00050006
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+#define GPIO_PF0_TRD2           0x0005000E
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_M1PWM5         0x00050405
+#define GPIO_PF1_PHB0           0x00050406
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_U1DCD          0x00050801
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_M0FAULT0       0x00050804
+#define GPIO_PF2_M1PWM6         0x00050805
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_C2O            0x00050809
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_U1DSR          0x00050C01
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_M0FAULT1       0x00050C04
+#define GPIO_PF3_M1PWM7         0x00050C05
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_U1DTR          0x00051001
+#define GPIO_PF4_M0FAULT2       0x00051004
+#define GPIO_PF4_M1FAULT0       0x00051005
+#define GPIO_PF4_IDX0           0x00051006
+#define GPIO_PF4_T2CCP0         0x00051007
+#define GPIO_PF4_TRD3           0x0005100E
+
+#define GPIO_PF5_M0FAULT3       0x00051404
+#define GPIO_PF5_T2CCP1         0x00051407
+
+#define GPIO_PF6_I2C2SCL        0x00051803
+#define GPIO_PF6_T3CCP0         0x00051807
+
+#define GPIO_PF7_I2C2SDA        0x00051C03
+#define GPIO_PF7_M1FAULT0       0x00051C05
+#define GPIO_PF7_T3CCP1         0x00051C07
+
+#define GPIO_PG0_I2C3SCL        0x00060003
+#define GPIO_PG0_M1FAULT1       0x00060005
+#define GPIO_PG0_PHA1           0x00060006
+#define GPIO_PG0_T4CCP0         0x00060007
+
+#define GPIO_PG1_I2C3SDA        0x00060403
+#define GPIO_PG1_M1FAULT2       0x00060405
+#define GPIO_PG1_PHB1           0x00060406
+#define GPIO_PG1_T4CCP1         0x00060407
+
+#define GPIO_PG2_I2C4SCL        0x00060803
+#define GPIO_PG2_M0FAULT1       0x00060804
+#define GPIO_PG2_M1PWM0         0x00060805
+#define GPIO_PG2_T5CCP0         0x00060807
+
+#define GPIO_PG3_I2C4SDA        0x00060C03
+#define GPIO_PG3_M0FAULT2       0x00060C04
+#define GPIO_PG3_M1PWM1         0x00060C05
+#define GPIO_PG3_PHA1           0x00060C06
+#define GPIO_PG3_T5CCP1         0x00060C07
+
+#define GPIO_PG4_U2RX           0x00061001
+#define GPIO_PG4_I2C1SCL        0x00061003
+#define GPIO_PG4_M0PWM4         0x00061004
+#define GPIO_PG4_M1PWM2         0x00061005
+#define GPIO_PG4_PHB1           0x00061006
+#define GPIO_PG4_WT0CCP0        0x00061007
+
+#define GPIO_PG5_U2TX           0x00061401
+#define GPIO_PG5_I2C1SDA        0x00061403
+#define GPIO_PG5_M0PWM5         0x00061404
+#define GPIO_PG5_M1PWM3         0x00061405
+#define GPIO_PG5_IDX1           0x00061406
+#define GPIO_PG5_WT0CCP1        0x00061407
+
+#define GPIO_PG6_I2C5SCL        0x00061803
+#define GPIO_PG6_M0PWM6         0x00061804
+#define GPIO_PG6_WT1CCP0        0x00061807
+
+#define GPIO_PG7_I2C5SDA        0x00061C03
+#define GPIO_PG7_M0PWM7         0x00061C04
+#define GPIO_PG7_IDX1           0x00061C05
+#define GPIO_PG7_WT1CCP1        0x00061C07
+
+#define GPIO_PH0_SSI3CLK        0x00070002
+#define GPIO_PH0_M0PWM0         0x00070004
+#define GPIO_PH0_M0FAULT0       0x00070006
+#define GPIO_PH0_WT2CCP0        0x00070007
+
+#define GPIO_PH1_SSI3FSS        0x00070402
+#define GPIO_PH1_M0PWM1         0x00070404
+#define GPIO_PH1_IDX0           0x00070405
+#define GPIO_PH1_M0FAULT1       0x00070406
+#define GPIO_PH1_WT2CCP1        0x00070407
+
+#define GPIO_PH2_SSI3RX         0x00070802
+#define GPIO_PH2_M0PWM2         0x00070804
+#define GPIO_PH2_M0FAULT2       0x00070806
+#define GPIO_PH2_WT5CCP0        0x00070807
+
+#define GPIO_PH3_SSI3TX         0x00070C02
+#define GPIO_PH3_M0PWM3         0x00070C04
+#define GPIO_PH3_M0FAULT3       0x00070C06
+#define GPIO_PH3_WT5CCP1        0x00070C07
+
+#define GPIO_PH4_SSI2CLK        0x00071002
+#define GPIO_PH4_M0PWM4         0x00071004
+#define GPIO_PH4_PHA0           0x00071005
+#define GPIO_PH4_WT3CCP0        0x00071007
+
+#define GPIO_PH5_SSI2FSS        0x00071402
+#define GPIO_PH5_M0PWM5         0x00071404
+#define GPIO_PH5_PHB0           0x00071405
+#define GPIO_PH5_WT3CCP1        0x00071407
+
+#define GPIO_PH6_SSI2RX         0x00071802
+#define GPIO_PH6_M0PWM6         0x00071804
+#define GPIO_PH6_WT4CCP0        0x00071807
+
+#define GPIO_PH7_SSI2TX         0x00071C02
+#define GPIO_PH7_M0PWM7         0x00071C04
+#define GPIO_PH7_WT4CCP1        0x00071C07
+
+#define GPIO_PJ0_U4RX           0x00080001
+#define GPIO_PJ0_T1CCP0         0x00080007
+
+#define GPIO_PJ1_U4TX           0x00080401
+#define GPIO_PJ1_T1CCP1         0x00080407
+
+#define GPIO_PJ2_U5RX           0x00080801
+#define GPIO_PJ2_IDX0           0x00080805
+#define GPIO_PJ2_T2CCP0         0x00080807
+
+#define GPIO_PK0_SSI3CLK        0x00090002
+#define GPIO_PK0_M1FAULT0       0x00090006
+
+#define GPIO_PK1_SSI3FSS        0x00090402
+#define GPIO_PK1_M1FAULT1       0x00090406
+
+#define GPIO_PK2_SSI3RX         0x00090802
+#define GPIO_PK2_M1FAULT2       0x00090806
+
+#define GPIO_PK3_SSI3TX         0x00090C02
+#define GPIO_PK3_M1FAULT3       0x00090C06
+
+#endif // PART_TM4C123BE6PZ
+
+//*****************************************************************************
+//
+// TM4C123BH6PM Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C123BH6PM
+
+#define GPIO_PA0_U0RX           0x00000001
+#define GPIO_PA0_CAN1RX         0x00000008
+
+#define GPIO_PA1_U0TX           0x00000401
+#define GPIO_PA1_CAN1TX         0x00000408
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+#define GPIO_PA6_M1PWM2         0x00001805
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+#define GPIO_PA7_M1PWM3         0x00001C05
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_M0PWM2         0x00011004
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_M0PWM3         0x00011404
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PB6_SSI2RX         0x00011802
+#define GPIO_PB6_M0PWM0         0x00011804
+#define GPIO_PB6_T0CCP0         0x00011807
+
+#define GPIO_PB7_SSI2TX         0x00011C02
+#define GPIO_PB7_M0PWM1         0x00011C04
+#define GPIO_PB7_T0CCP1         0x00011C07
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_M0PWM6         0x00021004
+#define GPIO_PC4_IDX1           0x00021006
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_M0PWM7         0x00021404
+#define GPIO_PC5_PHA1           0x00021406
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_PHB1           0x00021806
+#define GPIO_PC6_WT1CCP0        0x00021807
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_M0PWM6         0x00030004
+#define GPIO_PD0_M1PWM0         0x00030005
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_M0PWM7         0x00030404
+#define GPIO_PD1_M1PWM1         0x00030405
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_M0FAULT0       0x00030804
+#define GPIO_PD2_WT3CCP0        0x00030807
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_IDX0           0x00030C06
+#define GPIO_PD3_WT3CCP1        0x00030C07
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_M0FAULT0       0x00031804
+#define GPIO_PD6_PHA0           0x00031806
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_PHB0           0x00031C06
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_M0PWM4         0x00041004
+#define GPIO_PE4_M1PWM2         0x00041005
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_M0PWM5         0x00041404
+#define GPIO_PE5_M1PWM3         0x00041405
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_M1PWM4         0x00050005
+#define GPIO_PF0_PHA0           0x00050006
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_M1PWM5         0x00050405
+#define GPIO_PF1_PHB0           0x00050406
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_M0FAULT0       0x00050804
+#define GPIO_PF2_M1PWM6         0x00050805
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_M1PWM7         0x00050C05
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_M1FAULT0       0x00051005
+#define GPIO_PF4_IDX0           0x00051006
+#define GPIO_PF4_T2CCP0         0x00051007
+
+#endif // PART_TM4C123BH6PM
+
+//*****************************************************************************
+//
+// TM4C123BH6PZ Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C123BH6PZ
+
+#define GPIO_PA0_U0RX           0x00000001
+#define GPIO_PA0_CAN1RX         0x00000008
+
+#define GPIO_PA1_U0TX           0x00000401
+#define GPIO_PA1_CAN1TX         0x00000408
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+#define GPIO_PA6_M1PWM2         0x00001805
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+#define GPIO_PA7_M1PWM3         0x00001C05
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_M0PWM2         0x00011004
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_M0PWM3         0x00011404
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_M0PWM6         0x00021004
+#define GPIO_PC4_IDX1           0x00021006
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_M0PWM7         0x00021404
+#define GPIO_PC5_PHA1           0x00021406
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_PHB1           0x00021806
+#define GPIO_PC6_WT1CCP0        0x00021807
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_M0PWM6         0x00030004
+#define GPIO_PD0_M1PWM0         0x00030005
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_M0PWM7         0x00030404
+#define GPIO_PD1_M1PWM1         0x00030405
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_M0FAULT0       0x00030804
+#define GPIO_PD2_WT3CCP0        0x00030807
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_IDX0           0x00030C06
+#define GPIO_PD3_WT3CCP1        0x00030C07
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_M0FAULT0       0x00031804
+#define GPIO_PD6_PHA0           0x00031806
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_M0FAULT1       0x00031C04
+#define GPIO_PD7_PHB0           0x00031C06
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_M0PWM4         0x00041004
+#define GPIO_PE4_M1PWM2         0x00041005
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_M0PWM5         0x00041404
+#define GPIO_PE5_M1PWM3         0x00041405
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PE6_CAN1RX         0x00041808
+
+#define GPIO_PE7_U1RI           0x00041C01
+#define GPIO_PE7_CAN1TX         0x00041C08
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_M1PWM4         0x00050005
+#define GPIO_PF0_PHA0           0x00050006
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+#define GPIO_PF0_TRD2           0x0005000E
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_M1PWM5         0x00050405
+#define GPIO_PF1_PHB0           0x00050406
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_U1DCD          0x00050801
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_M0FAULT0       0x00050804
+#define GPIO_PF2_M1PWM6         0x00050805
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_C2O            0x00050809
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_U1DSR          0x00050C01
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_M0FAULT1       0x00050C04
+#define GPIO_PF3_M1PWM7         0x00050C05
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_U1DTR          0x00051001
+#define GPIO_PF4_M0FAULT2       0x00051004
+#define GPIO_PF4_M1FAULT0       0x00051005
+#define GPIO_PF4_IDX0           0x00051006
+#define GPIO_PF4_T2CCP0         0x00051007
+#define GPIO_PF4_TRD3           0x0005100E
+
+#define GPIO_PF5_M0FAULT3       0x00051404
+#define GPIO_PF5_T2CCP1         0x00051407
+
+#define GPIO_PF6_I2C2SCL        0x00051803
+#define GPIO_PF6_T3CCP0         0x00051807
+
+#define GPIO_PF7_I2C2SDA        0x00051C03
+#define GPIO_PF7_M1FAULT0       0x00051C05
+#define GPIO_PF7_T3CCP1         0x00051C07
+
+#define GPIO_PG0_I2C3SCL        0x00060003
+#define GPIO_PG0_M1FAULT1       0x00060005
+#define GPIO_PG0_PHA1           0x00060006
+#define GPIO_PG0_T4CCP0         0x00060007
+
+#define GPIO_PG1_I2C3SDA        0x00060403
+#define GPIO_PG1_M1FAULT2       0x00060405
+#define GPIO_PG1_PHB1           0x00060406
+#define GPIO_PG1_T4CCP1         0x00060407
+
+#define GPIO_PG2_I2C4SCL        0x00060803
+#define GPIO_PG2_M0FAULT1       0x00060804
+#define GPIO_PG2_M1PWM0         0x00060805
+#define GPIO_PG2_T5CCP0         0x00060807
+
+#define GPIO_PG3_I2C4SDA        0x00060C03
+#define GPIO_PG3_M0FAULT2       0x00060C04
+#define GPIO_PG3_M1PWM1         0x00060C05
+#define GPIO_PG3_PHA1           0x00060C06
+#define GPIO_PG3_T5CCP1         0x00060C07
+
+#define GPIO_PG4_U2RX           0x00061001
+#define GPIO_PG4_I2C1SCL        0x00061003
+#define GPIO_PG4_M0PWM4         0x00061004
+#define GPIO_PG4_M1PWM2         0x00061005
+#define GPIO_PG4_PHB1           0x00061006
+#define GPIO_PG4_WT0CCP0        0x00061007
+
+#define GPIO_PG5_U2TX           0x00061401
+#define GPIO_PG5_I2C1SDA        0x00061403
+#define GPIO_PG5_M0PWM5         0x00061404
+#define GPIO_PG5_M1PWM3         0x00061405
+#define GPIO_PG5_IDX1           0x00061406
+#define GPIO_PG5_WT0CCP1        0x00061407
+
+#define GPIO_PG6_I2C5SCL        0x00061803
+#define GPIO_PG6_M0PWM6         0x00061804
+#define GPIO_PG6_WT1CCP0        0x00061807
+
+#define GPIO_PG7_I2C5SDA        0x00061C03
+#define GPIO_PG7_M0PWM7         0x00061C04
+#define GPIO_PG7_IDX1           0x00061C05
+#define GPIO_PG7_WT1CCP1        0x00061C07
+
+#define GPIO_PH0_SSI3CLK        0x00070002
+#define GPIO_PH0_M0PWM0         0x00070004
+#define GPIO_PH0_M0FAULT0       0x00070006
+#define GPIO_PH0_WT2CCP0        0x00070007
+
+#define GPIO_PH1_SSI3FSS        0x00070402
+#define GPIO_PH1_M0PWM1         0x00070404
+#define GPIO_PH1_IDX0           0x00070405
+#define GPIO_PH1_M0FAULT1       0x00070406
+#define GPIO_PH1_WT2CCP1        0x00070407
+
+#define GPIO_PH2_SSI3RX         0x00070802
+#define GPIO_PH2_M0PWM2         0x00070804
+#define GPIO_PH2_M0FAULT2       0x00070806
+#define GPIO_PH2_WT5CCP0        0x00070807
+
+#define GPIO_PH3_SSI3TX         0x00070C02
+#define GPIO_PH3_M0PWM3         0x00070C04
+#define GPIO_PH3_M0FAULT3       0x00070C06
+#define GPIO_PH3_WT5CCP1        0x00070C07
+
+#define GPIO_PH4_SSI2CLK        0x00071002
+#define GPIO_PH4_M0PWM4         0x00071004
+#define GPIO_PH4_PHA0           0x00071005
+#define GPIO_PH4_WT3CCP0        0x00071007
+
+#define GPIO_PH5_SSI2FSS        0x00071402
+#define GPIO_PH5_M0PWM5         0x00071404
+#define GPIO_PH5_PHB0           0x00071405
+#define GPIO_PH5_WT3CCP1        0x00071407
+
+#define GPIO_PH6_SSI2RX         0x00071802
+#define GPIO_PH6_M0PWM6         0x00071804
+#define GPIO_PH6_WT4CCP0        0x00071807
+
+#define GPIO_PH7_SSI2TX         0x00071C02
+#define GPIO_PH7_M0PWM7         0x00071C04
+#define GPIO_PH7_WT4CCP1        0x00071C07
+
+#define GPIO_PJ0_U4RX           0x00080001
+#define GPIO_PJ0_T1CCP0         0x00080007
+
+#define GPIO_PJ1_U4TX           0x00080401
+#define GPIO_PJ1_T1CCP1         0x00080407
+
+#define GPIO_PJ2_U5RX           0x00080801
+#define GPIO_PJ2_IDX0           0x00080805
+#define GPIO_PJ2_T2CCP0         0x00080807
+
+#define GPIO_PK0_SSI3CLK        0x00090002
+#define GPIO_PK0_M1FAULT0       0x00090006
+
+#define GPIO_PK1_SSI3FSS        0x00090402
+#define GPIO_PK1_M1FAULT1       0x00090406
+
+#define GPIO_PK2_SSI3RX         0x00090802
+#define GPIO_PK2_M1FAULT2       0x00090806
+
+#define GPIO_PK3_SSI3TX         0x00090C02
+#define GPIO_PK3_M1FAULT3       0x00090C06
+
+#endif // PART_TM4C123BH6PZ
+
+//*****************************************************************************
+//
+// TM4C123FE6PM Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C123FE6PM
+
+#define GPIO_PA0_U0RX           0x00000001
+#define GPIO_PA0_CAN1RX         0x00000008
+
+#define GPIO_PA1_U0TX           0x00000401
+#define GPIO_PA1_CAN1TX         0x00000408
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+#define GPIO_PA6_M1PWM2         0x00001805
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+#define GPIO_PA7_M1PWM3         0x00001C05
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_M0PWM2         0x00011004
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_M0PWM3         0x00011404
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PB6_SSI2RX         0x00011802
+#define GPIO_PB6_I2C5SCL        0x00011803
+#define GPIO_PB6_M0PWM0         0x00011804
+#define GPIO_PB6_T0CCP0         0x00011807
+
+#define GPIO_PB7_SSI2TX         0x00011C02
+#define GPIO_PB7_I2C5SDA        0x00011C03
+#define GPIO_PB7_M0PWM1         0x00011C04
+#define GPIO_PB7_T0CCP1         0x00011C07
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_M0PWM6         0x00021004
+#define GPIO_PC4_IDX1           0x00021006
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_M0PWM7         0x00021404
+#define GPIO_PC5_PHA1           0x00021406
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_PHB1           0x00021806
+#define GPIO_PC6_WT1CCP0        0x00021807
+#define GPIO_PC6_USB0EPEN       0x00021808
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+#define GPIO_PC7_USB0PFLT       0x00021C08
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_M0PWM6         0x00030004
+#define GPIO_PD0_M1PWM0         0x00030005
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_M0PWM7         0x00030404
+#define GPIO_PD1_M1PWM1         0x00030405
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_M0FAULT0       0x00030804
+#define GPIO_PD2_WT3CCP0        0x00030807
+#define GPIO_PD2_USB0EPEN       0x00030808
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_IDX0           0x00030C06
+#define GPIO_PD3_WT3CCP1        0x00030C07
+#define GPIO_PD3_USB0PFLT       0x00030C08
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_M0FAULT0       0x00031804
+#define GPIO_PD6_PHA0           0x00031806
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_M0FAULT1       0x00031C04
+#define GPIO_PD7_PHB0           0x00031C06
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_M0PWM4         0x00041004
+#define GPIO_PE4_M1PWM2         0x00041005
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_M0PWM5         0x00041404
+#define GPIO_PE5_M1PWM3         0x00041405
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_M1PWM4         0x00050005
+#define GPIO_PF0_PHA0           0x00050006
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_M1PWM5         0x00050405
+#define GPIO_PF1_PHB0           0x00050406
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_M0FAULT0       0x00050804
+#define GPIO_PF2_M1PWM6         0x00050805
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_M0FAULT1       0x00050C04
+#define GPIO_PF3_M1PWM7         0x00050C05
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_M0FAULT2       0x00051004
+#define GPIO_PF4_M1FAULT0       0x00051005
+#define GPIO_PF4_IDX0           0x00051006
+#define GPIO_PF4_T2CCP0         0x00051007
+#define GPIO_PF4_USB0EPEN       0x00051008
+
+#define GPIO_PG0_I2C3SCL        0x00060003
+#define GPIO_PG0_M1FAULT1       0x00060005
+#define GPIO_PG0_PHA1           0x00060006
+#define GPIO_PG0_T4CCP0         0x00060007
+
+#define GPIO_PG1_I2C3SDA        0x00060403
+#define GPIO_PG1_M1FAULT2       0x00060405
+#define GPIO_PG1_PHB1           0x00060406
+#define GPIO_PG1_T4CCP1         0x00060407
+
+#define GPIO_PG2_I2C4SCL        0x00060803
+#define GPIO_PG2_M0FAULT1       0x00060804
+#define GPIO_PG2_M1PWM0         0x00060805
+#define GPIO_PG2_T5CCP0         0x00060807
+
+#define GPIO_PG3_I2C4SDA        0x00060C03
+#define GPIO_PG3_M0FAULT2       0x00060C04
+#define GPIO_PG3_M1PWM1         0x00060C05
+#define GPIO_PG3_PHA1           0x00060C06
+#define GPIO_PG3_T5CCP1         0x00060C07
+
+#define GPIO_PG4_U2RX           0x00061001
+#define GPIO_PG4_I2C1SCL        0x00061003
+#define GPIO_PG4_M0PWM4         0x00061004
+#define GPIO_PG4_M1PWM2         0x00061005
+#define GPIO_PG4_PHB1           0x00061006
+#define GPIO_PG4_WT0CCP0        0x00061007
+#define GPIO_PG4_USB0EPEN       0x00061008
+
+#define GPIO_PG5_U2TX           0x00061401
+#define GPIO_PG5_I2C1SDA        0x00061403
+#define GPIO_PG5_M0PWM5         0x00061404
+#define GPIO_PG5_M1PWM3         0x00061405
+#define GPIO_PG5_IDX1           0x00061406
+#define GPIO_PG5_WT0CCP1        0x00061407
+#define GPIO_PG5_USB0PFLT       0x00061408
+
+#endif // PART_TM4C123FE6PM
+
+//*****************************************************************************
+//
+// TM4C123FH6PM Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C123FH6PM
+
+#define GPIO_PA0_U0RX           0x00000001
+#define GPIO_PA0_CAN1RX         0x00000008
+
+#define GPIO_PA1_U0TX           0x00000401
+#define GPIO_PA1_CAN1TX         0x00000408
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+#define GPIO_PA6_M1PWM2         0x00001805
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+#define GPIO_PA7_M1PWM3         0x00001C05
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_M0PWM2         0x00011004
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_M0PWM3         0x00011404
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PB6_SSI2RX         0x00011802
+#define GPIO_PB6_I2C5SCL        0x00011803
+#define GPIO_PB6_M0PWM0         0x00011804
+#define GPIO_PB6_T0CCP0         0x00011807
+
+#define GPIO_PB7_SSI2TX         0x00011C02
+#define GPIO_PB7_I2C5SDA        0x00011C03
+#define GPIO_PB7_M0PWM1         0x00011C04
+#define GPIO_PB7_T0CCP1         0x00011C07
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_M0PWM6         0x00021004
+#define GPIO_PC4_IDX1           0x00021006
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_M0PWM7         0x00021404
+#define GPIO_PC5_PHA1           0x00021406
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_PHB1           0x00021806
+#define GPIO_PC6_WT1CCP0        0x00021807
+#define GPIO_PC6_USB0EPEN       0x00021808
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+#define GPIO_PC7_USB0PFLT       0x00021C08
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_M0PWM6         0x00030004
+#define GPIO_PD0_M1PWM0         0x00030005
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_M0PWM7         0x00030404
+#define GPIO_PD1_M1PWM1         0x00030405
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_M0FAULT0       0x00030804
+#define GPIO_PD2_WT3CCP0        0x00030807
+#define GPIO_PD2_USB0EPEN       0x00030808
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_IDX0           0x00030C06
+#define GPIO_PD3_WT3CCP1        0x00030C07
+#define GPIO_PD3_USB0PFLT       0x00030C08
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_M0FAULT0       0x00031804
+#define GPIO_PD6_PHA0           0x00031806
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_M0FAULT1       0x00031C04
+#define GPIO_PD7_PHB0           0x00031C06
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_M0PWM4         0x00041004
+#define GPIO_PE4_M1PWM2         0x00041005
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_M0PWM5         0x00041404
+#define GPIO_PE5_M1PWM3         0x00041405
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_M1PWM4         0x00050005
+#define GPIO_PF0_PHA0           0x00050006
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_M1PWM5         0x00050405
+#define GPIO_PF1_PHB0           0x00050406
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_M0FAULT0       0x00050804
+#define GPIO_PF2_M1PWM6         0x00050805
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_M0FAULT1       0x00050C04
+#define GPIO_PF3_M1PWM7         0x00050C05
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_M0FAULT2       0x00051004
+#define GPIO_PF4_M1FAULT0       0x00051005
+#define GPIO_PF4_IDX0           0x00051006
+#define GPIO_PF4_T2CCP0         0x00051007
+#define GPIO_PF4_USB0EPEN       0x00051008
+
+#define GPIO_PG0_I2C3SCL        0x00060003
+#define GPIO_PG0_M1FAULT1       0x00060005
+#define GPIO_PG0_PHA1           0x00060006
+#define GPIO_PG0_T4CCP0         0x00060007
+
+#define GPIO_PG1_I2C3SDA        0x00060403
+#define GPIO_PG1_M1FAULT2       0x00060405
+#define GPIO_PG1_PHB1           0x00060406
+#define GPIO_PG1_T4CCP1         0x00060407
+
+#define GPIO_PG2_I2C4SCL        0x00060803
+#define GPIO_PG2_M0FAULT1       0x00060804
+#define GPIO_PG2_M1PWM0         0x00060805
+#define GPIO_PG2_T5CCP0         0x00060807
+
+#define GPIO_PG3_I2C4SDA        0x00060C03
+#define GPIO_PG3_M0FAULT2       0x00060C04
+#define GPIO_PG3_M1PWM1         0x00060C05
+#define GPIO_PG3_PHA1           0x00060C06
+#define GPIO_PG3_T5CCP1         0x00060C07
+
+#define GPIO_PG4_U2RX           0x00061001
+#define GPIO_PG4_I2C1SCL        0x00061003
+#define GPIO_PG4_M0PWM4         0x00061004
+#define GPIO_PG4_M1PWM2         0x00061005
+#define GPIO_PG4_PHB1           0x00061006
+#define GPIO_PG4_WT0CCP0        0x00061007
+#define GPIO_PG4_USB0EPEN       0x00061008
+
+#define GPIO_PG5_U2TX           0x00061401
+#define GPIO_PG5_I2C1SDA        0x00061403
+#define GPIO_PG5_M0PWM5         0x00061404
+#define GPIO_PG5_M1PWM3         0x00061405
+#define GPIO_PG5_IDX1           0x00061406
+#define GPIO_PG5_WT0CCP1        0x00061407
+#define GPIO_PG5_USB0PFLT       0x00061408
+
+#endif // PART_TM4C123FH6PM
+
+//*****************************************************************************
+//
+// TM4C123GE6PM Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C123GE6PM
+
+#define GPIO_PA0_U0RX           0x00000001
+#define GPIO_PA0_CAN1RX         0x00000008
+
+#define GPIO_PA1_U0TX           0x00000401
+#define GPIO_PA1_CAN1TX         0x00000408
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+#define GPIO_PA6_M1PWM2         0x00001805
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+#define GPIO_PA7_M1PWM3         0x00001C05
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_M0PWM2         0x00011004
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_M0PWM3         0x00011404
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PB6_SSI2RX         0x00011802
+#define GPIO_PB6_M0PWM0         0x00011804
+#define GPIO_PB6_T0CCP0         0x00011807
+
+#define GPIO_PB7_SSI2TX         0x00011C02
+#define GPIO_PB7_M0PWM1         0x00011C04
+#define GPIO_PB7_T0CCP1         0x00011C07
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_M0PWM6         0x00021004
+#define GPIO_PC4_IDX1           0x00021006
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_M0PWM7         0x00021404
+#define GPIO_PC5_PHA1           0x00021406
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_PHB1           0x00021806
+#define GPIO_PC6_WT1CCP0        0x00021807
+#define GPIO_PC6_USB0EPEN       0x00021808
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+#define GPIO_PC7_USB0PFLT       0x00021C08
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_M0PWM6         0x00030004
+#define GPIO_PD0_M1PWM0         0x00030005
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_M0PWM7         0x00030404
+#define GPIO_PD1_M1PWM1         0x00030405
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_M0FAULT0       0x00030804
+#define GPIO_PD2_WT3CCP0        0x00030807
+#define GPIO_PD2_USB0EPEN       0x00030808
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_IDX0           0x00030C06
+#define GPIO_PD3_WT3CCP1        0x00030C07
+#define GPIO_PD3_USB0PFLT       0x00030C08
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_M0FAULT0       0x00031804
+#define GPIO_PD6_PHA0           0x00031806
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_PHB0           0x00031C06
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_M0PWM4         0x00041004
+#define GPIO_PE4_M1PWM2         0x00041005
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_M0PWM5         0x00041404
+#define GPIO_PE5_M1PWM3         0x00041405
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_M1PWM4         0x00050005
+#define GPIO_PF0_PHA0           0x00050006
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_M1PWM5         0x00050405
+#define GPIO_PF1_PHB0           0x00050406
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_M0FAULT0       0x00050804
+#define GPIO_PF2_M1PWM6         0x00050805
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_M1PWM7         0x00050C05
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_M1FAULT0       0x00051005
+#define GPIO_PF4_IDX0           0x00051006
+#define GPIO_PF4_T2CCP0         0x00051007
+#define GPIO_PF4_USB0EPEN       0x00051008
+
+#endif // PART_TM4C123GE6PM
+
+//*****************************************************************************
+//
+// TM4C123GE6PZ Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C123GE6PZ
+
+#define GPIO_PA0_U0RX           0x00000001
+#define GPIO_PA0_CAN1RX         0x00000008
+
+#define GPIO_PA1_U0TX           0x00000401
+#define GPIO_PA1_CAN1TX         0x00000408
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+#define GPIO_PA6_M1PWM2         0x00001805
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+#define GPIO_PA7_M1PWM3         0x00001C05
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_M0PWM2         0x00011004
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_M0PWM3         0x00011404
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_M0PWM6         0x00021004
+#define GPIO_PC4_IDX1           0x00021006
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_M0PWM7         0x00021404
+#define GPIO_PC5_PHA1           0x00021406
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_PHB1           0x00021806
+#define GPIO_PC6_WT1CCP0        0x00021807
+#define GPIO_PC6_USB0EPEN       0x00021808
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+#define GPIO_PC7_USB0PFLT       0x00021C08
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_M0PWM6         0x00030004
+#define GPIO_PD0_M1PWM0         0x00030005
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_M0PWM7         0x00030404
+#define GPIO_PD1_M1PWM1         0x00030405
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_M0FAULT0       0x00030804
+#define GPIO_PD2_WT3CCP0        0x00030807
+#define GPIO_PD2_USB0EPEN       0x00030808
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_IDX0           0x00030C06
+#define GPIO_PD3_WT3CCP1        0x00030C07
+#define GPIO_PD3_USB0PFLT       0x00030C08
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_M0FAULT0       0x00031804
+#define GPIO_PD6_PHA0           0x00031806
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_M0FAULT1       0x00031C04
+#define GPIO_PD7_PHB0           0x00031C06
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_M0PWM4         0x00041004
+#define GPIO_PE4_M1PWM2         0x00041005
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_M0PWM5         0x00041404
+#define GPIO_PE5_M1PWM3         0x00041405
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PE6_CAN1RX         0x00041808
+
+#define GPIO_PE7_U1RI           0x00041C01
+#define GPIO_PE7_CAN1TX         0x00041C08
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_M1PWM4         0x00050005
+#define GPIO_PF0_PHA0           0x00050006
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+#define GPIO_PF0_TRD2           0x0005000E
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_M1PWM5         0x00050405
+#define GPIO_PF1_PHB0           0x00050406
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_U1DCD          0x00050801
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_M0FAULT0       0x00050804
+#define GPIO_PF2_M1PWM6         0x00050805
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_C2O            0x00050809
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_U1DSR          0x00050C01
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_M0FAULT1       0x00050C04
+#define GPIO_PF3_M1PWM7         0x00050C05
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_U1DTR          0x00051001
+#define GPIO_PF4_M0FAULT2       0x00051004
+#define GPIO_PF4_M1FAULT0       0x00051005
+#define GPIO_PF4_IDX0           0x00051006
+#define GPIO_PF4_T2CCP0         0x00051007
+#define GPIO_PF4_USB0EPEN       0x00051008
+#define GPIO_PF4_TRD3           0x0005100E
+
+#define GPIO_PF5_M0FAULT3       0x00051404
+#define GPIO_PF5_T2CCP1         0x00051407
+#define GPIO_PF5_USB0PFLT       0x00051408
+
+#define GPIO_PF6_I2C2SCL        0x00051803
+#define GPIO_PF6_T3CCP0         0x00051807
+
+#define GPIO_PF7_I2C2SDA        0x00051C03
+#define GPIO_PF7_M1FAULT0       0x00051C05
+#define GPIO_PF7_T3CCP1         0x00051C07
+
+#define GPIO_PG0_I2C3SCL        0x00060003
+#define GPIO_PG0_M1FAULT1       0x00060005
+#define GPIO_PG0_PHA1           0x00060006
+#define GPIO_PG0_T4CCP0         0x00060007
+
+#define GPIO_PG1_I2C3SDA        0x00060403
+#define GPIO_PG1_M1FAULT2       0x00060405
+#define GPIO_PG1_PHB1           0x00060406
+#define GPIO_PG1_T4CCP1         0x00060407
+
+#define GPIO_PG2_I2C4SCL        0x00060803
+#define GPIO_PG2_M0FAULT1       0x00060804
+#define GPIO_PG2_M1PWM0         0x00060805
+#define GPIO_PG2_T5CCP0         0x00060807
+
+#define GPIO_PG3_I2C4SDA        0x00060C03
+#define GPIO_PG3_M0FAULT2       0x00060C04
+#define GPIO_PG3_M1PWM1         0x00060C05
+#define GPIO_PG3_PHA1           0x00060C06
+#define GPIO_PG3_T5CCP1         0x00060C07
+
+#define GPIO_PG4_U2RX           0x00061001
+#define GPIO_PG4_I2C1SCL        0x00061003
+#define GPIO_PG4_M0PWM4         0x00061004
+#define GPIO_PG4_M1PWM2         0x00061005
+#define GPIO_PG4_PHB1           0x00061006
+#define GPIO_PG4_WT0CCP0        0x00061007
+#define GPIO_PG4_USB0EPEN       0x00061008
+
+#define GPIO_PG5_U2TX           0x00061401
+#define GPIO_PG5_I2C1SDA        0x00061403
+#define GPIO_PG5_M0PWM5         0x00061404
+#define GPIO_PG5_M1PWM3         0x00061405
+#define GPIO_PG5_IDX1           0x00061406
+#define GPIO_PG5_WT0CCP1        0x00061407
+#define GPIO_PG5_USB0PFLT       0x00061408
+
+#define GPIO_PG6_I2C5SCL        0x00061803
+#define GPIO_PG6_M0PWM6         0x00061804
+#define GPIO_PG6_WT1CCP0        0x00061807
+
+#define GPIO_PG7_I2C5SDA        0x00061C03
+#define GPIO_PG7_M0PWM7         0x00061C04
+#define GPIO_PG7_IDX1           0x00061C05
+#define GPIO_PG7_WT1CCP1        0x00061C07
+
+#define GPIO_PH0_SSI3CLK        0x00070002
+#define GPIO_PH0_M0PWM0         0x00070004
+#define GPIO_PH0_M0FAULT0       0x00070006
+#define GPIO_PH0_WT2CCP0        0x00070007
+
+#define GPIO_PH1_SSI3FSS        0x00070402
+#define GPIO_PH1_M0PWM1         0x00070404
+#define GPIO_PH1_IDX0           0x00070405
+#define GPIO_PH1_M0FAULT1       0x00070406
+#define GPIO_PH1_WT2CCP1        0x00070407
+
+#define GPIO_PH2_SSI3RX         0x00070802
+#define GPIO_PH2_M0PWM2         0x00070804
+#define GPIO_PH2_M0FAULT2       0x00070806
+#define GPIO_PH2_WT5CCP0        0x00070807
+
+#define GPIO_PH3_SSI3TX         0x00070C02
+#define GPIO_PH3_M0PWM3         0x00070C04
+#define GPIO_PH3_M0FAULT3       0x00070C06
+#define GPIO_PH3_WT5CCP1        0x00070C07
+
+#define GPIO_PH4_SSI2CLK        0x00071002
+#define GPIO_PH4_M0PWM4         0x00071004
+#define GPIO_PH4_PHA0           0x00071005
+#define GPIO_PH4_WT3CCP0        0x00071007
+
+#define GPIO_PH5_SSI2FSS        0x00071402
+#define GPIO_PH5_M0PWM5         0x00071404
+#define GPIO_PH5_PHB0           0x00071405
+#define GPIO_PH5_WT3CCP1        0x00071407
+
+#define GPIO_PH6_SSI2RX         0x00071802
+#define GPIO_PH6_M0PWM6         0x00071804
+#define GPIO_PH6_WT4CCP0        0x00071807
+
+#define GPIO_PH7_SSI2TX         0x00071C02
+#define GPIO_PH7_M0PWM7         0x00071C04
+#define GPIO_PH7_WT4CCP1        0x00071C07
+
+#define GPIO_PJ0_U4RX           0x00080001
+#define GPIO_PJ0_T1CCP0         0x00080007
+
+#define GPIO_PJ1_U4TX           0x00080401
+#define GPIO_PJ1_T1CCP1         0x00080407
+
+#define GPIO_PJ2_U5RX           0x00080801
+#define GPIO_PJ2_IDX0           0x00080805
+#define GPIO_PJ2_T2CCP0         0x00080807
+
+#define GPIO_PK0_SSI3CLK        0x00090002
+#define GPIO_PK0_M1FAULT0       0x00090006
+
+#define GPIO_PK1_SSI3FSS        0x00090402
+#define GPIO_PK1_M1FAULT1       0x00090406
+
+#define GPIO_PK2_SSI3RX         0x00090802
+#define GPIO_PK2_M1FAULT2       0x00090806
+
+#define GPIO_PK3_SSI3TX         0x00090C02
+#define GPIO_PK3_M1FAULT3       0x00090C06
+
+#endif // PART_TM4C123GE6PZ
+
+//*****************************************************************************
+//
+// TM4C123GH6PM Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C123GH6PM
+
+#define GPIO_PA0_U0RX           0x00000001
+#define GPIO_PA0_CAN1RX         0x00000008
+
+#define GPIO_PA1_U0TX           0x00000401
+#define GPIO_PA1_CAN1TX         0x00000408
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+#define GPIO_PA6_M1PWM2         0x00001805
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+#define GPIO_PA7_M1PWM3         0x00001C05
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_M0PWM2         0x00011004
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_M0PWM3         0x00011404
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PB6_SSI2RX         0x00011802
+#define GPIO_PB6_M0PWM0         0x00011804
+#define GPIO_PB6_T0CCP0         0x00011807
+
+#define GPIO_PB7_SSI2TX         0x00011C02
+#define GPIO_PB7_M0PWM1         0x00011C04
+#define GPIO_PB7_T0CCP1         0x00011C07
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_M0PWM6         0x00021004
+#define GPIO_PC4_IDX1           0x00021006
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_M0PWM7         0x00021404
+#define GPIO_PC5_PHA1           0x00021406
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_PHB1           0x00021806
+#define GPIO_PC6_WT1CCP0        0x00021807
+#define GPIO_PC6_USB0EPEN       0x00021808
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+#define GPIO_PC7_USB0PFLT       0x00021C08
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_M0PWM6         0x00030004
+#define GPIO_PD0_M1PWM0         0x00030005
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_M0PWM7         0x00030404
+#define GPIO_PD1_M1PWM1         0x00030405
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_M0FAULT0       0x00030804
+#define GPIO_PD2_WT3CCP0        0x00030807
+#define GPIO_PD2_USB0EPEN       0x00030808
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_IDX0           0x00030C06
+#define GPIO_PD3_WT3CCP1        0x00030C07
+#define GPIO_PD3_USB0PFLT       0x00030C08
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_M0FAULT0       0x00031804
+#define GPIO_PD6_PHA0           0x00031806
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_PHB0           0x00031C06
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_M0PWM4         0x00041004
+#define GPIO_PE4_M1PWM2         0x00041005
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_M0PWM5         0x00041404
+#define GPIO_PE5_M1PWM3         0x00041405
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_M1PWM4         0x00050005
+#define GPIO_PF0_PHA0           0x00050006
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_M1PWM5         0x00050405
+#define GPIO_PF1_PHB0           0x00050406
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_M0FAULT0       0x00050804
+#define GPIO_PF2_M1PWM6         0x00050805
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_M1PWM7         0x00050C05
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_M1FAULT0       0x00051005
+#define GPIO_PF4_IDX0           0x00051006
+#define GPIO_PF4_T2CCP0         0x00051007
+#define GPIO_PF4_USB0EPEN       0x00051008
+
+#endif // PART_TM4C123GH6PM
+
+//*****************************************************************************
+//
+// TM4C123GH6PZ Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C123GH6PZ
+
+#define GPIO_PA0_U0RX           0x00000001
+#define GPIO_PA0_CAN1RX         0x00000008
+
+#define GPIO_PA1_U0TX           0x00000401
+#define GPIO_PA1_CAN1TX         0x00000408
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+#define GPIO_PA6_M1PWM2         0x00001805
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+#define GPIO_PA7_M1PWM3         0x00001C05
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_M0PWM2         0x00011004
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_M0PWM3         0x00011404
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_M0PWM6         0x00021004
+#define GPIO_PC4_IDX1           0x00021006
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_M0PWM7         0x00021404
+#define GPIO_PC5_PHA1           0x00021406
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_PHB1           0x00021806
+#define GPIO_PC6_WT1CCP0        0x00021807
+#define GPIO_PC6_USB0EPEN       0x00021808
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+#define GPIO_PC7_USB0PFLT       0x00021C08
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_M0PWM6         0x00030004
+#define GPIO_PD0_M1PWM0         0x00030005
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_M0PWM7         0x00030404
+#define GPIO_PD1_M1PWM1         0x00030405
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_M0FAULT0       0x00030804
+#define GPIO_PD2_WT3CCP0        0x00030807
+#define GPIO_PD2_USB0EPEN       0x00030808
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_IDX0           0x00030C06
+#define GPIO_PD3_WT3CCP1        0x00030C07
+#define GPIO_PD3_USB0PFLT       0x00030C08
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_M0FAULT0       0x00031804
+#define GPIO_PD6_PHA0           0x00031806
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_M0FAULT1       0x00031C04
+#define GPIO_PD7_PHB0           0x00031C06
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_M0PWM4         0x00041004
+#define GPIO_PE4_M1PWM2         0x00041005
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_M0PWM5         0x00041404
+#define GPIO_PE5_M1PWM3         0x00041405
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PE6_CAN1RX         0x00041808
+
+#define GPIO_PE7_U1RI           0x00041C01
+#define GPIO_PE7_CAN1TX         0x00041C08
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_M1PWM4         0x00050005
+#define GPIO_PF0_PHA0           0x00050006
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+#define GPIO_PF0_TRD2           0x0005000E
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_M1PWM5         0x00050405
+#define GPIO_PF1_PHB0           0x00050406
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_U1DCD          0x00050801
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_M0FAULT0       0x00050804
+#define GPIO_PF2_M1PWM6         0x00050805
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_C2O            0x00050809
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_U1DSR          0x00050C01
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_M0FAULT1       0x00050C04
+#define GPIO_PF3_M1PWM7         0x00050C05
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_U1DTR          0x00051001
+#define GPIO_PF4_M0FAULT2       0x00051004
+#define GPIO_PF4_M1FAULT0       0x00051005
+#define GPIO_PF4_IDX0           0x00051006
+#define GPIO_PF4_T2CCP0         0x00051007
+#define GPIO_PF4_USB0EPEN       0x00051008
+#define GPIO_PF4_TRD3           0x0005100E
+
+#define GPIO_PF5_M0FAULT3       0x00051404
+#define GPIO_PF5_T2CCP1         0x00051407
+#define GPIO_PF5_USB0PFLT       0x00051408
+
+#define GPIO_PF6_I2C2SCL        0x00051803
+#define GPIO_PF6_T3CCP0         0x00051807
+
+#define GPIO_PF7_I2C2SDA        0x00051C03
+#define GPIO_PF7_M1FAULT0       0x00051C05
+#define GPIO_PF7_T3CCP1         0x00051C07
+
+#define GPIO_PG0_I2C3SCL        0x00060003
+#define GPIO_PG0_M1FAULT1       0x00060005
+#define GPIO_PG0_PHA1           0x00060006
+#define GPIO_PG0_T4CCP0         0x00060007
+
+#define GPIO_PG1_I2C3SDA        0x00060403
+#define GPIO_PG1_M1FAULT2       0x00060405
+#define GPIO_PG1_PHB1           0x00060406
+#define GPIO_PG1_T4CCP1         0x00060407
+
+#define GPIO_PG2_I2C4SCL        0x00060803
+#define GPIO_PG2_M0FAULT1       0x00060804
+#define GPIO_PG2_M1PWM0         0x00060805
+#define GPIO_PG2_T5CCP0         0x00060807
+
+#define GPIO_PG3_I2C4SDA        0x00060C03
+#define GPIO_PG3_M0FAULT2       0x00060C04
+#define GPIO_PG3_M1PWM1         0x00060C05
+#define GPIO_PG3_PHA1           0x00060C06
+#define GPIO_PG3_T5CCP1         0x00060C07
+
+#define GPIO_PG4_U2RX           0x00061001
+#define GPIO_PG4_I2C1SCL        0x00061003
+#define GPIO_PG4_M0PWM4         0x00061004
+#define GPIO_PG4_M1PWM2         0x00061005
+#define GPIO_PG4_PHB1           0x00061006
+#define GPIO_PG4_WT0CCP0        0x00061007
+#define GPIO_PG4_USB0EPEN       0x00061008
+
+#define GPIO_PG5_U2TX           0x00061401
+#define GPIO_PG5_I2C1SDA        0x00061403
+#define GPIO_PG5_M0PWM5         0x00061404
+#define GPIO_PG5_M1PWM3         0x00061405
+#define GPIO_PG5_IDX1           0x00061406
+#define GPIO_PG5_WT0CCP1        0x00061407
+#define GPIO_PG5_USB0PFLT       0x00061408
+
+#define GPIO_PG6_I2C5SCL        0x00061803
+#define GPIO_PG6_M0PWM6         0x00061804
+#define GPIO_PG6_WT1CCP0        0x00061807
+
+#define GPIO_PG7_I2C5SDA        0x00061C03
+#define GPIO_PG7_M0PWM7         0x00061C04
+#define GPIO_PG7_IDX1           0x00061C05
+#define GPIO_PG7_WT1CCP1        0x00061C07
+
+#define GPIO_PH0_SSI3CLK        0x00070002
+#define GPIO_PH0_M0PWM0         0x00070004
+#define GPIO_PH0_M0FAULT0       0x00070006
+#define GPIO_PH0_WT2CCP0        0x00070007
+
+#define GPIO_PH1_SSI3FSS        0x00070402
+#define GPIO_PH1_M0PWM1         0x00070404
+#define GPIO_PH1_IDX0           0x00070405
+#define GPIO_PH1_M0FAULT1       0x00070406
+#define GPIO_PH1_WT2CCP1        0x00070407
+
+#define GPIO_PH2_SSI3RX         0x00070802
+#define GPIO_PH2_M0PWM2         0x00070804
+#define GPIO_PH2_M0FAULT2       0x00070806
+#define GPIO_PH2_WT5CCP0        0x00070807
+
+#define GPIO_PH3_SSI3TX         0x00070C02
+#define GPIO_PH3_M0PWM3         0x00070C04
+#define GPIO_PH3_M0FAULT3       0x00070C06
+#define GPIO_PH3_WT5CCP1        0x00070C07
+
+#define GPIO_PH4_SSI2CLK        0x00071002
+#define GPIO_PH4_M0PWM4         0x00071004
+#define GPIO_PH4_PHA0           0x00071005
+#define GPIO_PH4_WT3CCP0        0x00071007
+
+#define GPIO_PH5_SSI2FSS        0x00071402
+#define GPIO_PH5_M0PWM5         0x00071404
+#define GPIO_PH5_PHB0           0x00071405
+#define GPIO_PH5_WT3CCP1        0x00071407
+
+#define GPIO_PH6_SSI2RX         0x00071802
+#define GPIO_PH6_M0PWM6         0x00071804
+#define GPIO_PH6_WT4CCP0        0x00071807
+
+#define GPIO_PH7_SSI2TX         0x00071C02
+#define GPIO_PH7_M0PWM7         0x00071C04
+#define GPIO_PH7_WT4CCP1        0x00071C07
+
+#define GPIO_PJ0_U4RX           0x00080001
+#define GPIO_PJ0_T1CCP0         0x00080007
+
+#define GPIO_PJ1_U4TX           0x00080401
+#define GPIO_PJ1_T1CCP1         0x00080407
+
+#define GPIO_PJ2_U5RX           0x00080801
+#define GPIO_PJ2_IDX0           0x00080805
+#define GPIO_PJ2_T2CCP0         0x00080807
+
+#define GPIO_PK0_SSI3CLK        0x00090002
+#define GPIO_PK0_M1FAULT0       0x00090006
+
+#define GPIO_PK1_SSI3FSS        0x00090402
+#define GPIO_PK1_M1FAULT1       0x00090406
+
+#define GPIO_PK2_SSI3RX         0x00090802
+#define GPIO_PK2_M1FAULT2       0x00090806
+
+#define GPIO_PK3_SSI3TX         0x00090C02
+#define GPIO_PK3_M1FAULT3       0x00090C06
+
+#endif // PART_TM4C123GH6PZ
+
+//*****************************************************************************
+//
+// TM4C1231H6PGE Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1231H6PGE
+
+#define GPIO_PA0_U0RX           0x00000001
+
+#define GPIO_PA1_U0TX           0x00000401
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_WT1CCP0        0x00021807
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_WT3CCP0        0x00030807
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_WT3CCP1        0x00030C07
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PE7_U1RI           0x00041C01
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+#define GPIO_PF0_TRD2           0x0005000E
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_U1DCD          0x00050801
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_C2O            0x00050809
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_U1DSR          0x00050C01
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_U1DTR          0x00051001
+#define GPIO_PF4_T2CCP0         0x00051007
+#define GPIO_PF4_TRD3           0x0005100E
+
+#define GPIO_PF5_T2CCP1         0x00051407
+
+#define GPIO_PF6_I2C2SCL        0x00051803
+#define GPIO_PF6_T3CCP0         0x00051807
+
+#define GPIO_PF7_I2C2SDA        0x00051C03
+#define GPIO_PF7_T3CCP1         0x00051C07
+
+#define GPIO_PG0_I2C3SCL        0x00060003
+#define GPIO_PG0_T4CCP0         0x00060007
+
+#define GPIO_PG1_I2C3SDA        0x00060403
+#define GPIO_PG1_T4CCP1         0x00060407
+
+#define GPIO_PG2_I2C4SCL        0x00060803
+#define GPIO_PG2_T5CCP0         0x00060807
+
+#define GPIO_PG3_I2C4SDA        0x00060C03
+#define GPIO_PG3_T5CCP1         0x00060C07
+
+#define GPIO_PG4_U2RX           0x00061001
+#define GPIO_PG4_I2C1SCL        0x00061003
+#define GPIO_PG4_WT0CCP0        0x00061007
+
+#define GPIO_PG5_U2TX           0x00061401
+#define GPIO_PG5_I2C1SDA        0x00061403
+#define GPIO_PG5_WT0CCP1        0x00061407
+
+#define GPIO_PG6_I2C5SCL        0x00061803
+#define GPIO_PG6_WT1CCP0        0x00061807
+
+#define GPIO_PG7_I2C5SDA        0x00061C03
+#define GPIO_PG7_WT1CCP1        0x00061C07
+
+#define GPIO_PH0_SSI3CLK        0x00070002
+#define GPIO_PH0_WT2CCP0        0x00070007
+
+#define GPIO_PH1_SSI3FSS        0x00070402
+#define GPIO_PH1_WT2CCP1        0x00070407
+
+#define GPIO_PH2_SSI3RX         0x00070802
+#define GPIO_PH2_WT5CCP0        0x00070807
+
+#define GPIO_PH3_SSI3TX         0x00070C02
+#define GPIO_PH3_WT5CCP1        0x00070C07
+
+#define GPIO_PH4_SSI2CLK        0x00071002
+#define GPIO_PH4_WT3CCP0        0x00071007
+
+#define GPIO_PH5_SSI2FSS        0x00071402
+#define GPIO_PH5_WT3CCP1        0x00071407
+
+#define GPIO_PH6_SSI2RX         0x00071802
+#define GPIO_PH6_WT4CCP0        0x00071807
+
+#define GPIO_PH7_SSI2TX         0x00071C02
+#define GPIO_PH7_WT4CCP1        0x00071C07
+
+#define GPIO_PJ0_U4RX           0x00080001
+#define GPIO_PJ0_T1CCP0         0x00080007
+
+#define GPIO_PJ1_U4TX           0x00080401
+#define GPIO_PJ1_T1CCP1         0x00080407
+
+#define GPIO_PJ2_U5RX           0x00080801
+#define GPIO_PJ2_T2CCP0         0x00080807
+
+#define GPIO_PJ3_U5TX           0x00080C01
+#define GPIO_PJ3_T2CCP1         0x00080C07
+
+#define GPIO_PJ4_U6RX           0x00081001
+#define GPIO_PJ4_T3CCP0         0x00081007
+
+#define GPIO_PJ5_U6TX           0x00081401
+#define GPIO_PJ5_T3CCP1         0x00081407
+
+#define GPIO_PK0_SSI3CLK        0x00090002
+
+#define GPIO_PK1_SSI3FSS        0x00090402
+
+#define GPIO_PK2_SSI3RX         0x00090802
+
+#define GPIO_PK3_SSI3TX         0x00090C02
+
+#define GPIO_PK4_U7RX           0x00091001
+#define GPIO_PK4_RTCCLK         0x00091007
+#define GPIO_PK4_C0O            0x00091008
+
+#define GPIO_PK5_U7TX           0x00091401
+#define GPIO_PK5_C1O            0x00091408
+
+#define GPIO_PK6_WT1CCP0        0x00091807
+#define GPIO_PK6_C2O            0x00091808
+
+#define GPIO_PK7_WT1CCP1        0x00091C07
+
+#define GPIO_PL0_T0CCP0         0x000A0007
+#define GPIO_PL0_WT0CCP0        0x000A0008
+
+#define GPIO_PL1_T0CCP1         0x000A0407
+#define GPIO_PL1_WT0CCP1        0x000A0408
+
+#define GPIO_PL2_T1CCP0         0x000A0807
+#define GPIO_PL2_WT1CCP0        0x000A0808
+
+#define GPIO_PL3_T1CCP1         0x000A0C07
+#define GPIO_PL3_WT1CCP1        0x000A0C08
+
+#define GPIO_PL4_T2CCP0         0x000A1007
+#define GPIO_PL4_WT2CCP0        0x000A1008
+
+#define GPIO_PL5_T2CCP1         0x000A1407
+#define GPIO_PL5_WT2CCP1        0x000A1408
+
+#define GPIO_PL6_T3CCP0         0x000A1807
+#define GPIO_PL6_WT3CCP0        0x000A1808
+
+#define GPIO_PL7_T3CCP1         0x000A1C07
+#define GPIO_PL7_WT3CCP1        0x000A1C08
+
+#define GPIO_PM0_T4CCP0         0x000B0007
+#define GPIO_PM0_WT4CCP0        0x000B0008
+
+#define GPIO_PM1_T4CCP1         0x000B0407
+#define GPIO_PM1_WT4CCP1        0x000B0408
+
+#define GPIO_PM2_T5CCP0         0x000B0807
+#define GPIO_PM2_WT5CCP0        0x000B0808
+
+#define GPIO_PM3_T5CCP1         0x000B0C07
+#define GPIO_PM3_WT5CCP1        0x000B0C08
+
+#define GPIO_PM6_WT0CCP0        0x000B1807
+
+#define GPIO_PM7_WT0CCP1        0x000B1C07
+
+#define GPIO_PN0_CAN0RX         0x000C0001
+
+#define GPIO_PN1_CAN0TX         0x000C0401
+
+#define GPIO_PN2_WT2CCP0        0x000C0807
+
+#define GPIO_PN3_WT2CCP1        0x000C0C07
+
+#define GPIO_PN4_WT3CCP0        0x000C1007
+
+#define GPIO_PN5_WT3CCP1        0x000C1407
+
+#define GPIO_PN6_WT4CCP0        0x000C1807
+
+#define GPIO_PN7_WT4CCP1        0x000C1C07
+
+#define GPIO_PP0_T4CCP0         0x000D0007
+
+#define GPIO_PP1_T4CCP1         0x000D0407
+
+#define GPIO_PP2_T5CCP0         0x000D0807
+
+#endif // PART_TM4C1231H6PGE
+
+//*****************************************************************************
+//
+// TM4C1233H6PGE Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1233H6PGE
+
+#define GPIO_PA0_U0RX           0x00000001
+
+#define GPIO_PA1_U0TX           0x00000401
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_WT1CCP0        0x00021807
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_WT3CCP0        0x00030807
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_WT3CCP1        0x00030C07
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PE7_U1RI           0x00041C01
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+#define GPIO_PF0_TRD2           0x0005000E
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_U1DCD          0x00050801
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_C2O            0x00050809
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_U1DSR          0x00050C01
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_U1DTR          0x00051001
+#define GPIO_PF4_T2CCP0         0x00051007
+#define GPIO_PF4_TRD3           0x0005100E
+
+#define GPIO_PF5_T2CCP1         0x00051407
+
+#define GPIO_PF6_I2C2SCL        0x00051803
+#define GPIO_PF6_T3CCP0         0x00051807
+
+#define GPIO_PF7_I2C2SDA        0x00051C03
+#define GPIO_PF7_T3CCP1         0x00051C07
+
+#define GPIO_PG0_I2C3SCL        0x00060003
+#define GPIO_PG0_T4CCP0         0x00060007
+
+#define GPIO_PG1_I2C3SDA        0x00060403
+#define GPIO_PG1_T4CCP1         0x00060407
+
+#define GPIO_PG2_I2C4SCL        0x00060803
+#define GPIO_PG2_T5CCP0         0x00060807
+
+#define GPIO_PG3_I2C4SDA        0x00060C03
+#define GPIO_PG3_T5CCP1         0x00060C07
+
+#define GPIO_PG4_U2RX           0x00061001
+#define GPIO_PG4_I2C1SCL        0x00061003
+#define GPIO_PG4_WT0CCP0        0x00061007
+
+#define GPIO_PG5_U2TX           0x00061401
+#define GPIO_PG5_I2C1SDA        0x00061403
+#define GPIO_PG5_WT0CCP1        0x00061407
+
+#define GPIO_PG6_I2C5SCL        0x00061803
+#define GPIO_PG6_WT1CCP0        0x00061807
+
+#define GPIO_PG7_I2C5SDA        0x00061C03
+#define GPIO_PG7_WT1CCP1        0x00061C07
+
+#define GPIO_PH0_SSI3CLK        0x00070002
+#define GPIO_PH0_WT2CCP0        0x00070007
+
+#define GPIO_PH1_SSI3FSS        0x00070402
+#define GPIO_PH1_WT2CCP1        0x00070407
+
+#define GPIO_PH2_SSI3RX         0x00070802
+#define GPIO_PH2_WT5CCP0        0x00070807
+
+#define GPIO_PH3_SSI3TX         0x00070C02
+#define GPIO_PH3_WT5CCP1        0x00070C07
+
+#define GPIO_PH4_SSI2CLK        0x00071002
+#define GPIO_PH4_WT3CCP0        0x00071007
+
+#define GPIO_PH5_SSI2FSS        0x00071402
+#define GPIO_PH5_WT3CCP1        0x00071407
+
+#define GPIO_PH6_SSI2RX         0x00071802
+#define GPIO_PH6_WT4CCP0        0x00071807
+
+#define GPIO_PH7_SSI2TX         0x00071C02
+#define GPIO_PH7_WT4CCP1        0x00071C07
+
+#define GPIO_PJ0_U4RX           0x00080001
+#define GPIO_PJ0_T1CCP0         0x00080007
+
+#define GPIO_PJ1_U4TX           0x00080401
+#define GPIO_PJ1_T1CCP1         0x00080407
+
+#define GPIO_PJ2_U5RX           0x00080801
+#define GPIO_PJ2_T2CCP0         0x00080807
+
+#define GPIO_PJ3_U5TX           0x00080C01
+#define GPIO_PJ3_T2CCP1         0x00080C07
+
+#define GPIO_PJ4_U6RX           0x00081001
+#define GPIO_PJ4_T3CCP0         0x00081007
+
+#define GPIO_PJ5_U6TX           0x00081401
+#define GPIO_PJ5_T3CCP1         0x00081407
+
+#define GPIO_PK0_SSI3CLK        0x00090002
+
+#define GPIO_PK1_SSI3FSS        0x00090402
+
+#define GPIO_PK2_SSI3RX         0x00090802
+
+#define GPIO_PK3_SSI3TX         0x00090C02
+
+#define GPIO_PK4_U7RX           0x00091001
+#define GPIO_PK4_RTCCLK         0x00091007
+#define GPIO_PK4_C0O            0x00091008
+
+#define GPIO_PK5_U7TX           0x00091401
+#define GPIO_PK5_C1O            0x00091408
+
+#define GPIO_PK6_WT1CCP0        0x00091807
+#define GPIO_PK6_C2O            0x00091808
+
+#define GPIO_PK7_WT1CCP1        0x00091C07
+
+#define GPIO_PL0_T0CCP0         0x000A0007
+#define GPIO_PL0_WT0CCP0        0x000A0008
+
+#define GPIO_PL1_T0CCP1         0x000A0407
+#define GPIO_PL1_WT0CCP1        0x000A0408
+
+#define GPIO_PL2_T1CCP0         0x000A0807
+#define GPIO_PL2_WT1CCP0        0x000A0808
+
+#define GPIO_PL3_T1CCP1         0x000A0C07
+#define GPIO_PL3_WT1CCP1        0x000A0C08
+
+#define GPIO_PL4_T2CCP0         0x000A1007
+#define GPIO_PL4_WT2CCP0        0x000A1008
+
+#define GPIO_PL5_T2CCP1         0x000A1407
+#define GPIO_PL5_WT2CCP1        0x000A1408
+
+#define GPIO_PL6_T3CCP0         0x000A1807
+#define GPIO_PL6_WT3CCP0        0x000A1808
+
+#define GPIO_PL7_T3CCP1         0x000A1C07
+#define GPIO_PL7_WT3CCP1        0x000A1C08
+
+#define GPIO_PM0_T4CCP0         0x000B0007
+#define GPIO_PM0_WT4CCP0        0x000B0008
+
+#define GPIO_PM1_T4CCP1         0x000B0407
+#define GPIO_PM1_WT4CCP1        0x000B0408
+
+#define GPIO_PM2_T5CCP0         0x000B0807
+#define GPIO_PM2_WT5CCP0        0x000B0808
+
+#define GPIO_PM3_T5CCP1         0x000B0C07
+#define GPIO_PM3_WT5CCP1        0x000B0C08
+
+#define GPIO_PM6_WT0CCP0        0x000B1807
+
+#define GPIO_PM7_WT0CCP1        0x000B1C07
+
+#define GPIO_PN0_CAN0RX         0x000C0001
+
+#define GPIO_PN1_CAN0TX         0x000C0401
+
+#define GPIO_PN2_WT2CCP0        0x000C0807
+
+#define GPIO_PN3_WT2CCP1        0x000C0C07
+
+#define GPIO_PN4_WT3CCP0        0x000C1007
+
+#define GPIO_PN5_WT3CCP1        0x000C1407
+
+#define GPIO_PN6_WT4CCP0        0x000C1807
+
+#define GPIO_PN7_WT4CCP1        0x000C1C07
+
+#define GPIO_PP0_T4CCP0         0x000D0007
+
+#define GPIO_PP1_T4CCP1         0x000D0407
+
+#define GPIO_PP2_T5CCP0         0x000D0807
+
+#endif // PART_TM4C1233H6PGE
+
+//*****************************************************************************
+//
+// TM4C1237H6PGE Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1237H6PGE
+
+#define GPIO_PA0_U0RX           0x00000001
+
+#define GPIO_PA1_U0TX           0x00000401
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_WT1CCP0        0x00021807
+#define GPIO_PC6_USB0EPEN       0x00021808
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+#define GPIO_PC7_USB0PFLT       0x00021C08
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_WT3CCP0        0x00030807
+#define GPIO_PD2_USB0EPEN       0x00030808
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_WT3CCP1        0x00030C07
+#define GPIO_PD3_USB0PFLT       0x00030C08
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PE7_U1RI           0x00041C01
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+#define GPIO_PF0_TRD2           0x0005000E
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_U1DCD          0x00050801
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_C2O            0x00050809
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_U1DSR          0x00050C01
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_U1DTR          0x00051001
+#define GPIO_PF4_T2CCP0         0x00051007
+#define GPIO_PF4_USB0EPEN       0x00051008
+#define GPIO_PF4_TRD3           0x0005100E
+
+#define GPIO_PF5_T2CCP1         0x00051407
+#define GPIO_PF5_USB0PFLT       0x00051408
+
+#define GPIO_PF6_I2C2SCL        0x00051803
+#define GPIO_PF6_T3CCP0         0x00051807
+
+#define GPIO_PF7_I2C2SDA        0x00051C03
+#define GPIO_PF7_T3CCP1         0x00051C07
+
+#define GPIO_PG0_I2C3SCL        0x00060003
+#define GPIO_PG0_T4CCP0         0x00060007
+
+#define GPIO_PG1_I2C3SDA        0x00060403
+#define GPIO_PG1_T4CCP1         0x00060407
+
+#define GPIO_PG2_I2C4SCL        0x00060803
+#define GPIO_PG2_T5CCP0         0x00060807
+
+#define GPIO_PG3_I2C4SDA        0x00060C03
+#define GPIO_PG3_T5CCP1         0x00060C07
+
+#define GPIO_PG4_U2RX           0x00061001
+#define GPIO_PG4_I2C1SCL        0x00061003
+#define GPIO_PG4_WT0CCP0        0x00061007
+#define GPIO_PG4_USB0EPEN       0x00061008
+
+#define GPIO_PG5_U2TX           0x00061401
+#define GPIO_PG5_I2C1SDA        0x00061403
+#define GPIO_PG5_WT0CCP1        0x00061407
+#define GPIO_PG5_USB0PFLT       0x00061408
+
+#define GPIO_PG6_I2C5SCL        0x00061803
+#define GPIO_PG6_WT1CCP0        0x00061807
+
+#define GPIO_PG7_I2C5SDA        0x00061C03
+#define GPIO_PG7_WT1CCP1        0x00061C07
+
+#define GPIO_PH0_SSI3CLK        0x00070002
+#define GPIO_PH0_WT2CCP0        0x00070007
+
+#define GPIO_PH1_SSI3FSS        0x00070402
+#define GPIO_PH1_WT2CCP1        0x00070407
+
+#define GPIO_PH2_SSI3RX         0x00070802
+#define GPIO_PH2_WT5CCP0        0x00070807
+
+#define GPIO_PH3_SSI3TX         0x00070C02
+#define GPIO_PH3_WT5CCP1        0x00070C07
+
+#define GPIO_PH4_SSI2CLK        0x00071002
+#define GPIO_PH4_WT3CCP0        0x00071007
+
+#define GPIO_PH5_SSI2FSS        0x00071402
+#define GPIO_PH5_WT3CCP1        0x00071407
+
+#define GPIO_PH6_SSI2RX         0x00071802
+#define GPIO_PH6_WT4CCP0        0x00071807
+
+#define GPIO_PH7_SSI2TX         0x00071C02
+#define GPIO_PH7_WT4CCP1        0x00071C07
+
+#define GPIO_PJ0_U4RX           0x00080001
+#define GPIO_PJ0_T1CCP0         0x00080007
+
+#define GPIO_PJ1_U4TX           0x00080401
+#define GPIO_PJ1_T1CCP1         0x00080407
+
+#define GPIO_PJ2_U5RX           0x00080801
+#define GPIO_PJ2_T2CCP0         0x00080807
+
+#define GPIO_PJ3_U5TX           0x00080C01
+#define GPIO_PJ3_T2CCP1         0x00080C07
+
+#define GPIO_PJ4_U6RX           0x00081001
+#define GPIO_PJ4_T3CCP0         0x00081007
+
+#define GPIO_PJ5_U6TX           0x00081401
+#define GPIO_PJ5_T3CCP1         0x00081407
+
+#define GPIO_PK0_SSI3CLK        0x00090002
+
+#define GPIO_PK1_SSI3FSS        0x00090402
+
+#define GPIO_PK2_SSI3RX         0x00090802
+
+#define GPIO_PK3_SSI3TX         0x00090C02
+
+#define GPIO_PK4_U7RX           0x00091001
+#define GPIO_PK4_RTCCLK         0x00091007
+#define GPIO_PK4_C0O            0x00091008
+
+#define GPIO_PK5_U7TX           0x00091401
+#define GPIO_PK5_C1O            0x00091408
+
+#define GPIO_PK6_WT1CCP0        0x00091807
+#define GPIO_PK6_C2O            0x00091808
+
+#define GPIO_PK7_WT1CCP1        0x00091C07
+
+#define GPIO_PL0_T0CCP0         0x000A0007
+#define GPIO_PL0_WT0CCP0        0x000A0008
+
+#define GPIO_PL1_T0CCP1         0x000A0407
+#define GPIO_PL1_WT0CCP1        0x000A0408
+
+#define GPIO_PL2_T1CCP0         0x000A0807
+#define GPIO_PL2_WT1CCP0        0x000A0808
+
+#define GPIO_PL3_T1CCP1         0x000A0C07
+#define GPIO_PL3_WT1CCP1        0x000A0C08
+
+#define GPIO_PL4_T2CCP0         0x000A1007
+#define GPIO_PL4_WT2CCP0        0x000A1008
+
+#define GPIO_PL5_T2CCP1         0x000A1407
+#define GPIO_PL5_WT2CCP1        0x000A1408
+
+#define GPIO_PL6_T3CCP0         0x000A1807
+#define GPIO_PL6_WT3CCP0        0x000A1808
+
+#define GPIO_PL7_T3CCP1         0x000A1C07
+#define GPIO_PL7_WT3CCP1        0x000A1C08
+
+#define GPIO_PM0_T4CCP0         0x000B0007
+#define GPIO_PM0_WT4CCP0        0x000B0008
+
+#define GPIO_PM1_T4CCP1         0x000B0407
+#define GPIO_PM1_WT4CCP1        0x000B0408
+
+#define GPIO_PM2_T5CCP0         0x000B0807
+#define GPIO_PM2_WT5CCP0        0x000B0808
+
+#define GPIO_PM3_T5CCP1         0x000B0C07
+#define GPIO_PM3_WT5CCP1        0x000B0C08
+
+#define GPIO_PM6_WT0CCP0        0x000B1807
+
+#define GPIO_PM7_WT0CCP1        0x000B1C07
+
+#define GPIO_PN0_CAN0RX         0x000C0001
+
+#define GPIO_PN1_CAN0TX         0x000C0401
+
+#define GPIO_PN2_WT2CCP0        0x000C0807
+
+#define GPIO_PN3_WT2CCP1        0x000C0C07
+
+#define GPIO_PN4_WT3CCP0        0x000C1007
+
+#define GPIO_PN5_WT3CCP1        0x000C1407
+
+#define GPIO_PN6_WT4CCP0        0x000C1807
+
+#define GPIO_PN7_WT4CCP1        0x000C1C07
+
+#define GPIO_PP0_T4CCP0         0x000D0007
+
+#define GPIO_PP1_T4CCP1         0x000D0407
+
+#define GPIO_PP2_T5CCP0         0x000D0807
+
+#endif // PART_TM4C1237H6PGE
+
+//*****************************************************************************
+//
+// TM4C123BH6PGE Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C123BH6PGE
+
+#define GPIO_PA0_U0RX           0x00000001
+#define GPIO_PA0_CAN1RX         0x00000008
+
+#define GPIO_PA1_U0TX           0x00000401
+#define GPIO_PA1_CAN1TX         0x00000408
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+#define GPIO_PA6_M1PWM2         0x00001805
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+#define GPIO_PA7_M1PWM3         0x00001C05
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_M0PWM2         0x00011004
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_M0PWM3         0x00011404
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_M0PWM6         0x00021004
+#define GPIO_PC4_IDX1           0x00021006
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_M0PWM7         0x00021404
+#define GPIO_PC5_PHA1           0x00021406
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_PHB1           0x00021806
+#define GPIO_PC6_WT1CCP0        0x00021807
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_M0PWM6         0x00030004
+#define GPIO_PD0_M1PWM0         0x00030005
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_M0PWM7         0x00030404
+#define GPIO_PD1_M1PWM1         0x00030405
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_M0FAULT0       0x00030804
+#define GPIO_PD2_WT3CCP0        0x00030807
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_IDX0           0x00030C06
+#define GPIO_PD3_WT3CCP1        0x00030C07
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_M0FAULT0       0x00031804
+#define GPIO_PD6_PHA0           0x00031806
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_M0FAULT1       0x00031C04
+#define GPIO_PD7_PHB0           0x00031C06
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_M0PWM4         0x00041004
+#define GPIO_PE4_M1PWM2         0x00041005
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_M0PWM5         0x00041404
+#define GPIO_PE5_M1PWM3         0x00041405
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PE6_CAN1RX         0x00041808
+
+#define GPIO_PE7_U1RI           0x00041C01
+#define GPIO_PE7_CAN1TX         0x00041C08
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_M1PWM4         0x00050005
+#define GPIO_PF0_PHA0           0x00050006
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+#define GPIO_PF0_TRD2           0x0005000E
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_M1PWM5         0x00050405
+#define GPIO_PF1_PHB0           0x00050406
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_U1DCD          0x00050801
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_M0FAULT0       0x00050804
+#define GPIO_PF2_M1PWM6         0x00050805
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_C2O            0x00050809
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_U1DSR          0x00050C01
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_M0FAULT1       0x00050C04
+#define GPIO_PF3_M1PWM7         0x00050C05
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_U1DTR          0x00051001
+#define GPIO_PF4_M0FAULT2       0x00051004
+#define GPIO_PF4_M1FAULT0       0x00051005
+#define GPIO_PF4_IDX0           0x00051006
+#define GPIO_PF4_T2CCP0         0x00051007
+#define GPIO_PF4_TRD3           0x0005100E
+
+#define GPIO_PF5_M0FAULT3       0x00051404
+#define GPIO_PF5_T2CCP1         0x00051407
+
+#define GPIO_PF6_I2C2SCL        0x00051803
+#define GPIO_PF6_T3CCP0         0x00051807
+
+#define GPIO_PF7_I2C2SDA        0x00051C03
+#define GPIO_PF7_M1FAULT0       0x00051C05
+#define GPIO_PF7_T3CCP1         0x00051C07
+
+#define GPIO_PG0_I2C3SCL        0x00060003
+#define GPIO_PG0_M1FAULT1       0x00060005
+#define GPIO_PG0_PHA1           0x00060006
+#define GPIO_PG0_T4CCP0         0x00060007
+
+#define GPIO_PG1_I2C3SDA        0x00060403
+#define GPIO_PG1_M1FAULT2       0x00060405
+#define GPIO_PG1_PHB1           0x00060406
+#define GPIO_PG1_T4CCP1         0x00060407
+
+#define GPIO_PG2_I2C4SCL        0x00060803
+#define GPIO_PG2_M0FAULT1       0x00060804
+#define GPIO_PG2_M1PWM0         0x00060805
+#define GPIO_PG2_T5CCP0         0x00060807
+
+#define GPIO_PG3_I2C4SDA        0x00060C03
+#define GPIO_PG3_M0FAULT2       0x00060C04
+#define GPIO_PG3_M1PWM1         0x00060C05
+#define GPIO_PG3_PHA1           0x00060C06
+#define GPIO_PG3_T5CCP1         0x00060C07
+
+#define GPIO_PG4_U2RX           0x00061001
+#define GPIO_PG4_I2C1SCL        0x00061003
+#define GPIO_PG4_M0PWM4         0x00061004
+#define GPIO_PG4_M1PWM2         0x00061005
+#define GPIO_PG4_PHB1           0x00061006
+#define GPIO_PG4_WT0CCP0        0x00061007
+
+#define GPIO_PG5_U2TX           0x00061401
+#define GPIO_PG5_I2C1SDA        0x00061403
+#define GPIO_PG5_M0PWM5         0x00061404
+#define GPIO_PG5_M1PWM3         0x00061405
+#define GPIO_PG5_IDX1           0x00061406
+#define GPIO_PG5_WT0CCP1        0x00061407
+
+#define GPIO_PG6_I2C5SCL        0x00061803
+#define GPIO_PG6_M0PWM6         0x00061804
+#define GPIO_PG6_WT1CCP0        0x00061807
+
+#define GPIO_PG7_I2C5SDA        0x00061C03
+#define GPIO_PG7_M0PWM7         0x00061C04
+#define GPIO_PG7_IDX1           0x00061C05
+#define GPIO_PG7_WT1CCP1        0x00061C07
+
+#define GPIO_PH0_SSI3CLK        0x00070002
+#define GPIO_PH0_M0PWM0         0x00070004
+#define GPIO_PH0_M0FAULT0       0x00070006
+#define GPIO_PH0_WT2CCP0        0x00070007
+
+#define GPIO_PH1_SSI3FSS        0x00070402
+#define GPIO_PH1_M0PWM1         0x00070404
+#define GPIO_PH1_IDX0           0x00070405
+#define GPIO_PH1_M0FAULT1       0x00070406
+#define GPIO_PH1_WT2CCP1        0x00070407
+
+#define GPIO_PH2_SSI3RX         0x00070802
+#define GPIO_PH2_M0PWM2         0x00070804
+#define GPIO_PH2_M0FAULT2       0x00070806
+#define GPIO_PH2_WT5CCP0        0x00070807
+
+#define GPIO_PH3_SSI3TX         0x00070C02
+#define GPIO_PH3_M0PWM3         0x00070C04
+#define GPIO_PH3_M0FAULT3       0x00070C06
+#define GPIO_PH3_WT5CCP1        0x00070C07
+
+#define GPIO_PH4_SSI2CLK        0x00071002
+#define GPIO_PH4_M0PWM4         0x00071004
+#define GPIO_PH4_PHA0           0x00071005
+#define GPIO_PH4_WT3CCP0        0x00071007
+
+#define GPIO_PH5_SSI2FSS        0x00071402
+#define GPIO_PH5_M0PWM5         0x00071404
+#define GPIO_PH5_PHB0           0x00071405
+#define GPIO_PH5_WT3CCP1        0x00071407
+
+#define GPIO_PH6_SSI2RX         0x00071802
+#define GPIO_PH6_M0PWM6         0x00071804
+#define GPIO_PH6_WT4CCP0        0x00071807
+
+#define GPIO_PH7_SSI2TX         0x00071C02
+#define GPIO_PH7_M0PWM7         0x00071C04
+#define GPIO_PH7_WT4CCP1        0x00071C07
+
+#define GPIO_PJ0_U4RX           0x00080001
+#define GPIO_PJ0_T1CCP0         0x00080007
+
+#define GPIO_PJ1_U4TX           0x00080401
+#define GPIO_PJ1_T1CCP1         0x00080407
+
+#define GPIO_PJ2_U5RX           0x00080801
+#define GPIO_PJ2_IDX0           0x00080805
+#define GPIO_PJ2_T2CCP0         0x00080807
+
+#define GPIO_PJ3_U5TX           0x00080C01
+#define GPIO_PJ3_T2CCP1         0x00080C07
+
+#define GPIO_PJ4_U6RX           0x00081001
+#define GPIO_PJ4_T3CCP0         0x00081007
+
+#define GPIO_PJ5_U6TX           0x00081401
+#define GPIO_PJ5_T3CCP1         0x00081407
+
+#define GPIO_PK0_SSI3CLK        0x00090002
+#define GPIO_PK0_M1FAULT0       0x00090006
+
+#define GPIO_PK1_SSI3FSS        0x00090402
+#define GPIO_PK1_M1FAULT1       0x00090406
+
+#define GPIO_PK2_SSI3RX         0x00090802
+#define GPIO_PK2_M1FAULT2       0x00090806
+
+#define GPIO_PK3_SSI3TX         0x00090C02
+#define GPIO_PK3_M1FAULT3       0x00090C06
+
+#define GPIO_PK4_U7RX           0x00091001
+#define GPIO_PK4_M0FAULT0       0x00091006
+#define GPIO_PK4_RTCCLK         0x00091007
+#define GPIO_PK4_C0O            0x00091008
+
+#define GPIO_PK5_U7TX           0x00091401
+#define GPIO_PK5_M0FAULT1       0x00091406
+#define GPIO_PK5_C1O            0x00091408
+
+#define GPIO_PK6_M0FAULT2       0x00091806
+#define GPIO_PK6_WT1CCP0        0x00091807
+#define GPIO_PK6_C2O            0x00091808
+
+#define GPIO_PK7_M0FAULT3       0x00091C06
+#define GPIO_PK7_WT1CCP1        0x00091C07
+
+#define GPIO_PL0_T0CCP0         0x000A0007
+#define GPIO_PL0_WT0CCP0        0x000A0008
+
+#define GPIO_PL1_T0CCP1         0x000A0407
+#define GPIO_PL1_WT0CCP1        0x000A0408
+
+#define GPIO_PL2_T1CCP0         0x000A0807
+#define GPIO_PL2_WT1CCP0        0x000A0808
+
+#define GPIO_PL3_T1CCP1         0x000A0C07
+#define GPIO_PL3_WT1CCP1        0x000A0C08
+
+#define GPIO_PL4_T2CCP0         0x000A1007
+#define GPIO_PL4_WT2CCP0        0x000A1008
+
+#define GPIO_PL5_T2CCP1         0x000A1407
+#define GPIO_PL5_WT2CCP1        0x000A1408
+
+#define GPIO_PL6_T3CCP0         0x000A1807
+#define GPIO_PL6_WT3CCP0        0x000A1808
+
+#define GPIO_PL7_T3CCP1         0x000A1C07
+#define GPIO_PL7_WT3CCP1        0x000A1C08
+
+#define GPIO_PM0_T4CCP0         0x000B0007
+#define GPIO_PM0_WT4CCP0        0x000B0008
+
+#define GPIO_PM1_T4CCP1         0x000B0407
+#define GPIO_PM1_WT4CCP1        0x000B0408
+
+#define GPIO_PM2_T5CCP0         0x000B0807
+#define GPIO_PM2_WT5CCP0        0x000B0808
+
+#define GPIO_PM3_T5CCP1         0x000B0C07
+#define GPIO_PM3_WT5CCP1        0x000B0C08
+
+#define GPIO_PM6_M0PWM4         0x000B1802
+#define GPIO_PM6_WT0CCP0        0x000B1807
+
+#define GPIO_PM7_M0PWM5         0x000B1C02
+#define GPIO_PM7_WT0CCP1        0x000B1C07
+
+#define GPIO_PN0_CAN0RX         0x000C0001
+
+#define GPIO_PN1_CAN0TX         0x000C0401
+
+#define GPIO_PN2_M0PWM6         0x000C0802
+#define GPIO_PN2_WT2CCP0        0x000C0807
+
+#define GPIO_PN3_M0PWM7         0x000C0C02
+#define GPIO_PN3_WT2CCP1        0x000C0C07
+
+#define GPIO_PN4_M1PWM4         0x000C1002
+#define GPIO_PN4_WT3CCP0        0x000C1007
+
+#define GPIO_PN5_M1PWM5         0x000C1402
+#define GPIO_PN5_WT3CCP1        0x000C1407
+
+#define GPIO_PN6_M1PWM6         0x000C1802
+#define GPIO_PN6_WT4CCP0        0x000C1807
+
+#define GPIO_PN7_M1PWM7         0x000C1C02
+#define GPIO_PN7_WT4CCP1        0x000C1C07
+
+#define GPIO_PP0_M0PWM0         0x000D0001
+#define GPIO_PP0_T4CCP0         0x000D0007
+
+#define GPIO_PP1_M0PWM1         0x000D0401
+#define GPIO_PP1_T4CCP1         0x000D0407
+
+#define GPIO_PP2_M0PWM2         0x000D0801
+#define GPIO_PP2_T5CCP0         0x000D0807
+
+#endif // PART_TM4C123BH6PGE
+
+//*****************************************************************************
+//
+// TM4C123BH6ZRB Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C123BH6ZRB
+
+#define GPIO_PA0_U0RX           0x00000001
+#define GPIO_PA0_CAN1RX         0x00000008
+
+#define GPIO_PA1_U0TX           0x00000401
+#define GPIO_PA1_CAN1TX         0x00000408
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+#define GPIO_PA6_M1PWM2         0x00001805
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+#define GPIO_PA7_M1PWM3         0x00001C05
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_M0PWM2         0x00011004
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_M0PWM3         0x00011404
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PB6_SSI2RX         0x00011802
+#define GPIO_PB6_I2C5SCL        0x00011803
+#define GPIO_PB6_M0PWM0         0x00011804
+#define GPIO_PB6_T0CCP0         0x00011807
+
+#define GPIO_PB7_SSI2TX         0x00011C02
+#define GPIO_PB7_I2C5SDA        0x00011C03
+#define GPIO_PB7_M0PWM1         0x00011C04
+#define GPIO_PB7_T0CCP1         0x00011C07
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_M0PWM6         0x00021004
+#define GPIO_PC4_IDX1           0x00021006
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_M0PWM7         0x00021404
+#define GPIO_PC5_PHA1           0x00021406
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_PHB1           0x00021806
+#define GPIO_PC6_WT1CCP0        0x00021807
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_M0PWM6         0x00030004
+#define GPIO_PD0_M1PWM0         0x00030005
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_M0PWM7         0x00030404
+#define GPIO_PD1_M1PWM1         0x00030405
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_M0FAULT0       0x00030804
+#define GPIO_PD2_WT3CCP0        0x00030807
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_IDX0           0x00030C06
+#define GPIO_PD3_WT3CCP1        0x00030C07
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_M0FAULT0       0x00031804
+#define GPIO_PD6_PHA0           0x00031806
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_M0FAULT1       0x00031C04
+#define GPIO_PD7_PHB0           0x00031C06
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_M0PWM4         0x00041004
+#define GPIO_PE4_M1PWM2         0x00041005
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_M0PWM5         0x00041404
+#define GPIO_PE5_M1PWM3         0x00041405
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PE6_CAN1RX         0x00041808
+
+#define GPIO_PE7_U1RI           0x00041C01
+#define GPIO_PE7_CAN1TX         0x00041C08
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_M1PWM4         0x00050005
+#define GPIO_PF0_PHA0           0x00050006
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+#define GPIO_PF0_TRD2           0x0005000E
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_M1PWM5         0x00050405
+#define GPIO_PF1_PHB0           0x00050406
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_U1DCD          0x00050801
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_M0FAULT0       0x00050804
+#define GPIO_PF2_M1PWM6         0x00050805
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_C2O            0x00050809
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_U1DSR          0x00050C01
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_M0FAULT1       0x00050C04
+#define GPIO_PF3_M1PWM7         0x00050C05
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_U1DTR          0x00051001
+#define GPIO_PF4_M0FAULT2       0x00051004
+#define GPIO_PF4_M1FAULT0       0x00051005
+#define GPIO_PF4_IDX0           0x00051006
+#define GPIO_PF4_T2CCP0         0x00051007
+#define GPIO_PF4_TRD3           0x0005100E
+
+#define GPIO_PF5_M0FAULT3       0x00051404
+#define GPIO_PF5_T2CCP1         0x00051407
+
+#define GPIO_PF6_I2C2SCL        0x00051803
+#define GPIO_PF6_T3CCP0         0x00051807
+
+#define GPIO_PF7_I2C2SDA        0x00051C03
+#define GPIO_PF7_M1FAULT0       0x00051C05
+#define GPIO_PF7_T3CCP1         0x00051C07
+
+#define GPIO_PG0_I2C3SCL        0x00060003
+#define GPIO_PG0_M1FAULT1       0x00060005
+#define GPIO_PG0_PHA1           0x00060006
+#define GPIO_PG0_T4CCP0         0x00060007
+
+#define GPIO_PG1_I2C3SDA        0x00060403
+#define GPIO_PG1_M1FAULT2       0x00060405
+#define GPIO_PG1_PHB1           0x00060406
+#define GPIO_PG1_T4CCP1         0x00060407
+
+#define GPIO_PG2_I2C4SCL        0x00060803
+#define GPIO_PG2_M0FAULT1       0x00060804
+#define GPIO_PG2_M1PWM0         0x00060805
+#define GPIO_PG2_T5CCP0         0x00060807
+
+#define GPIO_PG3_I2C4SDA        0x00060C03
+#define GPIO_PG3_M0FAULT2       0x00060C04
+#define GPIO_PG3_M1PWM1         0x00060C05
+#define GPIO_PG3_PHA1           0x00060C06
+#define GPIO_PG3_T5CCP1         0x00060C07
+
+#define GPIO_PG4_U2RX           0x00061001
+#define GPIO_PG4_I2C1SCL        0x00061003
+#define GPIO_PG4_M0PWM4         0x00061004
+#define GPIO_PG4_M1PWM2         0x00061005
+#define GPIO_PG4_PHB1           0x00061006
+#define GPIO_PG4_WT0CCP0        0x00061007
+
+#define GPIO_PG5_U2TX           0x00061401
+#define GPIO_PG5_I2C1SDA        0x00061403
+#define GPIO_PG5_M0PWM5         0x00061404
+#define GPIO_PG5_M1PWM3         0x00061405
+#define GPIO_PG5_IDX1           0x00061406
+#define GPIO_PG5_WT0CCP1        0x00061407
+
+#define GPIO_PG6_I2C5SCL        0x00061803
+#define GPIO_PG6_M0PWM6         0x00061804
+#define GPIO_PG6_WT1CCP0        0x00061807
+
+#define GPIO_PG7_I2C5SDA        0x00061C03
+#define GPIO_PG7_M0PWM7         0x00061C04
+#define GPIO_PG7_IDX1           0x00061C05
+#define GPIO_PG7_WT1CCP1        0x00061C07
+
+#define GPIO_PH0_SSI3CLK        0x00070002
+#define GPIO_PH0_M0PWM0         0x00070004
+#define GPIO_PH0_M0FAULT0       0x00070006
+#define GPIO_PH0_WT2CCP0        0x00070007
+
+#define GPIO_PH1_SSI3FSS        0x00070402
+#define GPIO_PH1_M0PWM1         0x00070404
+#define GPIO_PH1_IDX0           0x00070405
+#define GPIO_PH1_M0FAULT1       0x00070406
+#define GPIO_PH1_WT2CCP1        0x00070407
+
+#define GPIO_PH2_SSI3RX         0x00070802
+#define GPIO_PH2_M0PWM2         0x00070804
+#define GPIO_PH2_M0FAULT2       0x00070806
+#define GPIO_PH2_WT5CCP0        0x00070807
+
+#define GPIO_PH3_SSI3TX         0x00070C02
+#define GPIO_PH3_M0PWM3         0x00070C04
+#define GPIO_PH3_M0FAULT3       0x00070C06
+#define GPIO_PH3_WT5CCP1        0x00070C07
+
+#define GPIO_PH4_SSI2CLK        0x00071002
+#define GPIO_PH4_M0PWM4         0x00071004
+#define GPIO_PH4_PHA0           0x00071005
+#define GPIO_PH4_WT3CCP0        0x00071007
+
+#define GPIO_PH5_SSI2FSS        0x00071402
+#define GPIO_PH5_M0PWM5         0x00071404
+#define GPIO_PH5_PHB0           0x00071405
+#define GPIO_PH5_WT3CCP1        0x00071407
+
+#define GPIO_PH6_SSI2RX         0x00071802
+#define GPIO_PH6_M0PWM6         0x00071804
+#define GPIO_PH6_WT4CCP0        0x00071807
+
+#define GPIO_PH7_SSI2TX         0x00071C02
+#define GPIO_PH7_M0PWM7         0x00071C04
+#define GPIO_PH7_WT4CCP1        0x00071C07
+
+#define GPIO_PJ0_U4RX           0x00080001
+#define GPIO_PJ0_T1CCP0         0x00080007
+
+#define GPIO_PJ1_U4TX           0x00080401
+#define GPIO_PJ1_T1CCP1         0x00080407
+
+#define GPIO_PJ2_U5RX           0x00080801
+#define GPIO_PJ2_IDX0           0x00080805
+#define GPIO_PJ2_T2CCP0         0x00080807
+
+#define GPIO_PJ3_U5TX           0x00080C01
+#define GPIO_PJ3_T2CCP1         0x00080C07
+
+#define GPIO_PJ4_U6RX           0x00081001
+#define GPIO_PJ4_T3CCP0         0x00081007
+
+#define GPIO_PJ5_U6TX           0x00081401
+#define GPIO_PJ5_T3CCP1         0x00081407
+
+#define GPIO_PK0_SSI3CLK        0x00090002
+#define GPIO_PK0_M1FAULT0       0x00090006
+
+#define GPIO_PK1_SSI3FSS        0x00090402
+#define GPIO_PK1_M1FAULT1       0x00090406
+
+#define GPIO_PK2_SSI3RX         0x00090802
+#define GPIO_PK2_M1FAULT2       0x00090806
+
+#define GPIO_PK3_SSI3TX         0x00090C02
+#define GPIO_PK3_M1FAULT3       0x00090C06
+
+#define GPIO_PK4_U7RX           0x00091001
+#define GPIO_PK4_M0FAULT0       0x00091006
+#define GPIO_PK4_RTCCLK         0x00091007
+#define GPIO_PK4_C0O            0x00091008
+
+#define GPIO_PK5_U7TX           0x00091401
+#define GPIO_PK5_M0FAULT1       0x00091406
+#define GPIO_PK5_C1O            0x00091408
+
+#define GPIO_PK6_M0FAULT2       0x00091806
+#define GPIO_PK6_WT1CCP0        0x00091807
+#define GPIO_PK6_C2O            0x00091808
+
+#define GPIO_PK7_M0FAULT3       0x00091C06
+#define GPIO_PK7_WT1CCP1        0x00091C07
+
+#define GPIO_PL0_T0CCP0         0x000A0007
+#define GPIO_PL0_WT0CCP0        0x000A0008
+
+#define GPIO_PL1_T0CCP1         0x000A0407
+#define GPIO_PL1_WT0CCP1        0x000A0408
+
+#define GPIO_PL2_T1CCP0         0x000A0807
+#define GPIO_PL2_WT1CCP0        0x000A0808
+
+#define GPIO_PL3_T1CCP1         0x000A0C07
+#define GPIO_PL3_WT1CCP1        0x000A0C08
+
+#define GPIO_PL4_T2CCP0         0x000A1007
+#define GPIO_PL4_WT2CCP0        0x000A1008
+
+#define GPIO_PL5_T2CCP1         0x000A1407
+#define GPIO_PL5_WT2CCP1        0x000A1408
+
+#define GPIO_PL6_T3CCP0         0x000A1807
+#define GPIO_PL6_WT3CCP0        0x000A1808
+
+#define GPIO_PL7_T3CCP1         0x000A1C07
+#define GPIO_PL7_WT3CCP1        0x000A1C08
+
+#define GPIO_PM0_T4CCP0         0x000B0007
+#define GPIO_PM0_WT4CCP0        0x000B0008
+
+#define GPIO_PM1_T4CCP1         0x000B0407
+#define GPIO_PM1_WT4CCP1        0x000B0408
+
+#define GPIO_PM2_T5CCP0         0x000B0807
+#define GPIO_PM2_WT5CCP0        0x000B0808
+
+#define GPIO_PM3_T5CCP1         0x000B0C07
+#define GPIO_PM3_WT5CCP1        0x000B0C08
+
+#define GPIO_PM6_M0PWM4         0x000B1802
+#define GPIO_PM6_WT0CCP0        0x000B1807
+
+#define GPIO_PM7_M0PWM5         0x000B1C02
+#define GPIO_PM7_WT0CCP1        0x000B1C07
+
+#define GPIO_PN0_CAN0RX         0x000C0001
+
+#define GPIO_PN1_CAN0TX         0x000C0401
+
+#define GPIO_PN2_M0PWM6         0x000C0802
+#define GPIO_PN2_WT2CCP0        0x000C0807
+
+#define GPIO_PN3_M0PWM7         0x000C0C02
+#define GPIO_PN3_WT2CCP1        0x000C0C07
+
+#define GPIO_PN4_M1PWM4         0x000C1002
+#define GPIO_PN4_WT3CCP0        0x000C1007
+
+#define GPIO_PN5_M1PWM5         0x000C1402
+#define GPIO_PN5_WT3CCP1        0x000C1407
+
+#define GPIO_PN6_M1PWM6         0x000C1802
+#define GPIO_PN6_WT4CCP0        0x000C1807
+
+#define GPIO_PN7_M1PWM7         0x000C1C02
+#define GPIO_PN7_WT4CCP1        0x000C1C07
+
+#define GPIO_PP0_M0PWM0         0x000D0001
+#define GPIO_PP0_T4CCP0         0x000D0007
+
+#define GPIO_PP1_M0PWM1         0x000D0401
+#define GPIO_PP1_T4CCP1         0x000D0407
+
+#define GPIO_PP2_M0PWM2         0x000D0801
+#define GPIO_PP2_T5CCP0         0x000D0807
+
+#define GPIO_PP3_M0PWM3         0x000D0C01
+#define GPIO_PP3_T5CCP1         0x000D0C07
+
+#define GPIO_PP4_M0PWM4         0x000D1001
+#define GPIO_PP4_WT0CCP0        0x000D1007
+
+#define GPIO_PP5_M0PWM5         0x000D1401
+#define GPIO_PP5_WT0CCP1        0x000D1407
+
+#define GPIO_PP6_M0PWM6         0x000D1801
+#define GPIO_PP6_WT1CCP0        0x000D1807
+
+#define GPIO_PP7_M0PWM7         0x000D1C01
+#define GPIO_PP7_WT1CCP1        0x000D1C07
+
+#define GPIO_PQ0_M1PWM0         0x000E0001
+#define GPIO_PQ0_WT2CCP0        0x000E0007
+
+#define GPIO_PQ1_M1PWM1         0x000E0401
+#define GPIO_PQ1_WT2CCP1        0x000E0407
+
+#define GPIO_PQ2_M1PWM2         0x000E0801
+#define GPIO_PQ2_WT3CCP0        0x000E0807
+
+#define GPIO_PQ3_M1PWM3         0x000E0C01
+#define GPIO_PQ3_WT3CCP1        0x000E0C07
+
+#define GPIO_PQ4_M1PWM4         0x000E1001
+#define GPIO_PQ4_WT4CCP0        0x000E1007
+
+#define GPIO_PQ5_M1PWM5         0x000E1401
+#define GPIO_PQ5_WT4CCP1        0x000E1407
+
+#define GPIO_PQ6_M1PWM6         0x000E1801
+#define GPIO_PQ6_WT5CCP0        0x000E1807
+
+#define GPIO_PQ7_M1PWM7         0x000E1C01
+#define GPIO_PQ7_WT5CCP1        0x000E1C07
+
+#endif // PART_TM4C123BH6ZRB
+
+//*****************************************************************************
+//
+// TM4C123GH6PGE Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C123GH6PGE
+
+#define GPIO_PA0_U0RX           0x00000001
+#define GPIO_PA0_CAN1RX         0x00000008
+
+#define GPIO_PA1_U0TX           0x00000401
+#define GPIO_PA1_CAN1TX         0x00000408
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+#define GPIO_PA6_M1PWM2         0x00001805
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+#define GPIO_PA7_M1PWM3         0x00001C05
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_M0PWM2         0x00011004
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_M0PWM3         0x00011404
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_M0PWM6         0x00021004
+#define GPIO_PC4_IDX1           0x00021006
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_M0PWM7         0x00021404
+#define GPIO_PC5_PHA1           0x00021406
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_PHB1           0x00021806
+#define GPIO_PC6_WT1CCP0        0x00021807
+#define GPIO_PC6_USB0EPEN       0x00021808
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+#define GPIO_PC7_USB0PFLT       0x00021C08
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_M0PWM6         0x00030004
+#define GPIO_PD0_M1PWM0         0x00030005
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_M0PWM7         0x00030404
+#define GPIO_PD1_M1PWM1         0x00030405
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_M0FAULT0       0x00030804
+#define GPIO_PD2_WT3CCP0        0x00030807
+#define GPIO_PD2_USB0EPEN       0x00030808
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_IDX0           0x00030C06
+#define GPIO_PD3_WT3CCP1        0x00030C07
+#define GPIO_PD3_USB0PFLT       0x00030C08
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_M0FAULT0       0x00031804
+#define GPIO_PD6_PHA0           0x00031806
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_M0FAULT1       0x00031C04
+#define GPIO_PD7_PHB0           0x00031C06
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_M0PWM4         0x00041004
+#define GPIO_PE4_M1PWM2         0x00041005
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_M0PWM5         0x00041404
+#define GPIO_PE5_M1PWM3         0x00041405
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PE6_CAN1RX         0x00041808
+
+#define GPIO_PE7_U1RI           0x00041C01
+#define GPIO_PE7_CAN1TX         0x00041C08
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_M1PWM4         0x00050005
+#define GPIO_PF0_PHA0           0x00050006
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+#define GPIO_PF0_TRD2           0x0005000E
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_M1PWM5         0x00050405
+#define GPIO_PF1_PHB0           0x00050406
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_U1DCD          0x00050801
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_M0FAULT0       0x00050804
+#define GPIO_PF2_M1PWM6         0x00050805
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_C2O            0x00050809
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_U1DSR          0x00050C01
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_M0FAULT1       0x00050C04
+#define GPIO_PF3_M1PWM7         0x00050C05
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_U1DTR          0x00051001
+#define GPIO_PF4_M0FAULT2       0x00051004
+#define GPIO_PF4_M1FAULT0       0x00051005
+#define GPIO_PF4_IDX0           0x00051006
+#define GPIO_PF4_T2CCP0         0x00051007
+#define GPIO_PF4_USB0EPEN       0x00051008
+#define GPIO_PF4_TRD3           0x0005100E
+
+#define GPIO_PF5_M0FAULT3       0x00051404
+#define GPIO_PF5_T2CCP1         0x00051407
+#define GPIO_PF5_USB0PFLT       0x00051408
+
+#define GPIO_PF6_I2C2SCL        0x00051803
+#define GPIO_PF6_T3CCP0         0x00051807
+
+#define GPIO_PF7_I2C2SDA        0x00051C03
+#define GPIO_PF7_M1FAULT0       0x00051C05
+#define GPIO_PF7_T3CCP1         0x00051C07
+
+#define GPIO_PG0_I2C3SCL        0x00060003
+#define GPIO_PG0_M1FAULT1       0x00060005
+#define GPIO_PG0_PHA1           0x00060006
+#define GPIO_PG0_T4CCP0         0x00060007
+
+#define GPIO_PG1_I2C3SDA        0x00060403
+#define GPIO_PG1_M1FAULT2       0x00060405
+#define GPIO_PG1_PHB1           0x00060406
+#define GPIO_PG1_T4CCP1         0x00060407
+
+#define GPIO_PG2_I2C4SCL        0x00060803
+#define GPIO_PG2_M0FAULT1       0x00060804
+#define GPIO_PG2_M1PWM0         0x00060805
+#define GPIO_PG2_T5CCP0         0x00060807
+
+#define GPIO_PG3_I2C4SDA        0x00060C03
+#define GPIO_PG3_M0FAULT2       0x00060C04
+#define GPIO_PG3_M1PWM1         0x00060C05
+#define GPIO_PG3_PHA1           0x00060C06
+#define GPIO_PG3_T5CCP1         0x00060C07
+
+#define GPIO_PG4_U2RX           0x00061001
+#define GPIO_PG4_I2C1SCL        0x00061003
+#define GPIO_PG4_M0PWM4         0x00061004
+#define GPIO_PG4_M1PWM2         0x00061005
+#define GPIO_PG4_PHB1           0x00061006
+#define GPIO_PG4_WT0CCP0        0x00061007
+#define GPIO_PG4_USB0EPEN       0x00061008
+
+#define GPIO_PG5_U2TX           0x00061401
+#define GPIO_PG5_I2C1SDA        0x00061403
+#define GPIO_PG5_M0PWM5         0x00061404
+#define GPIO_PG5_M1PWM3         0x00061405
+#define GPIO_PG5_IDX1           0x00061406
+#define GPIO_PG5_WT0CCP1        0x00061407
+#define GPIO_PG5_USB0PFLT       0x00061408
+
+#define GPIO_PG6_I2C5SCL        0x00061803
+#define GPIO_PG6_M0PWM6         0x00061804
+#define GPIO_PG6_WT1CCP0        0x00061807
+
+#define GPIO_PG7_I2C5SDA        0x00061C03
+#define GPIO_PG7_M0PWM7         0x00061C04
+#define GPIO_PG7_IDX1           0x00061C05
+#define GPIO_PG7_WT1CCP1        0x00061C07
+
+#define GPIO_PH0_SSI3CLK        0x00070002
+#define GPIO_PH0_M0PWM0         0x00070004
+#define GPIO_PH0_M0FAULT0       0x00070006
+#define GPIO_PH0_WT2CCP0        0x00070007
+
+#define GPIO_PH1_SSI3FSS        0x00070402
+#define GPIO_PH1_M0PWM1         0x00070404
+#define GPIO_PH1_IDX0           0x00070405
+#define GPIO_PH1_M0FAULT1       0x00070406
+#define GPIO_PH1_WT2CCP1        0x00070407
+
+#define GPIO_PH2_SSI3RX         0x00070802
+#define GPIO_PH2_M0PWM2         0x00070804
+#define GPIO_PH2_M0FAULT2       0x00070806
+#define GPIO_PH2_WT5CCP0        0x00070807
+
+#define GPIO_PH3_SSI3TX         0x00070C02
+#define GPIO_PH3_M0PWM3         0x00070C04
+#define GPIO_PH3_M0FAULT3       0x00070C06
+#define GPIO_PH3_WT5CCP1        0x00070C07
+
+#define GPIO_PH4_SSI2CLK        0x00071002
+#define GPIO_PH4_M0PWM4         0x00071004
+#define GPIO_PH4_PHA0           0x00071005
+#define GPIO_PH4_WT3CCP0        0x00071007
+
+#define GPIO_PH5_SSI2FSS        0x00071402
+#define GPIO_PH5_M0PWM5         0x00071404
+#define GPIO_PH5_PHB0           0x00071405
+#define GPIO_PH5_WT3CCP1        0x00071407
+
+#define GPIO_PH6_SSI2RX         0x00071802
+#define GPIO_PH6_M0PWM6         0x00071804
+#define GPIO_PH6_WT4CCP0        0x00071807
+
+#define GPIO_PH7_SSI2TX         0x00071C02
+#define GPIO_PH7_M0PWM7         0x00071C04
+#define GPIO_PH7_WT4CCP1        0x00071C07
+
+#define GPIO_PJ0_U4RX           0x00080001
+#define GPIO_PJ0_T1CCP0         0x00080007
+
+#define GPIO_PJ1_U4TX           0x00080401
+#define GPIO_PJ1_T1CCP1         0x00080407
+
+#define GPIO_PJ2_U5RX           0x00080801
+#define GPIO_PJ2_IDX0           0x00080805
+#define GPIO_PJ2_T2CCP0         0x00080807
+
+#define GPIO_PJ3_U5TX           0x00080C01
+#define GPIO_PJ3_T2CCP1         0x00080C07
+
+#define GPIO_PJ4_U6RX           0x00081001
+#define GPIO_PJ4_T3CCP0         0x00081007
+
+#define GPIO_PJ5_U6TX           0x00081401
+#define GPIO_PJ5_T3CCP1         0x00081407
+
+#define GPIO_PK0_SSI3CLK        0x00090002
+#define GPIO_PK0_M1FAULT0       0x00090006
+
+#define GPIO_PK1_SSI3FSS        0x00090402
+#define GPIO_PK1_M1FAULT1       0x00090406
+
+#define GPIO_PK2_SSI3RX         0x00090802
+#define GPIO_PK2_M1FAULT2       0x00090806
+
+#define GPIO_PK3_SSI3TX         0x00090C02
+#define GPIO_PK3_M1FAULT3       0x00090C06
+
+#define GPIO_PK4_U7RX           0x00091001
+#define GPIO_PK4_M0FAULT0       0x00091006
+#define GPIO_PK4_RTCCLK         0x00091007
+#define GPIO_PK4_C0O            0x00091008
+
+#define GPIO_PK5_U7TX           0x00091401
+#define GPIO_PK5_M0FAULT1       0x00091406
+#define GPIO_PK5_C1O            0x00091408
+
+#define GPIO_PK6_M0FAULT2       0x00091806
+#define GPIO_PK6_WT1CCP0        0x00091807
+#define GPIO_PK6_C2O            0x00091808
+
+#define GPIO_PK7_M0FAULT3       0x00091C06
+#define GPIO_PK7_WT1CCP1        0x00091C07
+
+#define GPIO_PL0_T0CCP0         0x000A0007
+#define GPIO_PL0_WT0CCP0        0x000A0008
+
+#define GPIO_PL1_T0CCP1         0x000A0407
+#define GPIO_PL1_WT0CCP1        0x000A0408
+
+#define GPIO_PL2_T1CCP0         0x000A0807
+#define GPIO_PL2_WT1CCP0        0x000A0808
+
+#define GPIO_PL3_T1CCP1         0x000A0C07
+#define GPIO_PL3_WT1CCP1        0x000A0C08
+
+#define GPIO_PL4_T2CCP0         0x000A1007
+#define GPIO_PL4_WT2CCP0        0x000A1008
+
+#define GPIO_PL5_T2CCP1         0x000A1407
+#define GPIO_PL5_WT2CCP1        0x000A1408
+
+#define GPIO_PL6_T3CCP0         0x000A1807
+#define GPIO_PL6_WT3CCP0        0x000A1808
+
+#define GPIO_PL7_T3CCP1         0x000A1C07
+#define GPIO_PL7_WT3CCP1        0x000A1C08
+
+#define GPIO_PM0_T4CCP0         0x000B0007
+#define GPIO_PM0_WT4CCP0        0x000B0008
+
+#define GPIO_PM1_T4CCP1         0x000B0407
+#define GPIO_PM1_WT4CCP1        0x000B0408
+
+#define GPIO_PM2_T5CCP0         0x000B0807
+#define GPIO_PM2_WT5CCP0        0x000B0808
+
+#define GPIO_PM3_T5CCP1         0x000B0C07
+#define GPIO_PM3_WT5CCP1        0x000B0C08
+
+#define GPIO_PM6_M0PWM4         0x000B1802
+#define GPIO_PM6_WT0CCP0        0x000B1807
+
+#define GPIO_PM7_M0PWM5         0x000B1C02
+#define GPIO_PM7_WT0CCP1        0x000B1C07
+
+#define GPIO_PN0_CAN0RX         0x000C0001
+
+#define GPIO_PN1_CAN0TX         0x000C0401
+
+#define GPIO_PN2_M0PWM6         0x000C0802
+#define GPIO_PN2_WT2CCP0        0x000C0807
+
+#define GPIO_PN3_M0PWM7         0x000C0C02
+#define GPIO_PN3_WT2CCP1        0x000C0C07
+
+#define GPIO_PN4_M1PWM4         0x000C1002
+#define GPIO_PN4_WT3CCP0        0x000C1007
+
+#define GPIO_PN5_M1PWM5         0x000C1402
+#define GPIO_PN5_WT3CCP1        0x000C1407
+
+#define GPIO_PN6_M1PWM6         0x000C1802
+#define GPIO_PN6_WT4CCP0        0x000C1807
+
+#define GPIO_PN7_M1PWM7         0x000C1C02
+#define GPIO_PN7_WT4CCP1        0x000C1C07
+
+#define GPIO_PP0_M0PWM0         0x000D0001
+#define GPIO_PP0_T4CCP0         0x000D0007
+
+#define GPIO_PP1_M0PWM1         0x000D0401
+#define GPIO_PP1_T4CCP1         0x000D0407
+
+#define GPIO_PP2_M0PWM2         0x000D0801
+#define GPIO_PP2_T5CCP0         0x000D0807
+
+#endif // PART_TM4C123GH6PGE
+
+//*****************************************************************************
+//
+// TM4C123GH6ZRB Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C123GH6ZRB
+
+#define GPIO_PA0_U0RX           0x00000001
+#define GPIO_PA0_CAN1RX         0x00000008
+
+#define GPIO_PA1_U0TX           0x00000401
+#define GPIO_PA1_CAN1TX         0x00000408
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+#define GPIO_PA6_M1PWM2         0x00001805
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+#define GPIO_PA7_M1PWM3         0x00001C05
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_M0PWM2         0x00011004
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_M0PWM3         0x00011404
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PB6_SSI2RX         0x00011802
+#define GPIO_PB6_I2C5SCL        0x00011803
+#define GPIO_PB6_M0PWM0         0x00011804
+#define GPIO_PB6_T0CCP0         0x00011807
+
+#define GPIO_PB7_SSI2TX         0x00011C02
+#define GPIO_PB7_I2C5SDA        0x00011C03
+#define GPIO_PB7_M0PWM1         0x00011C04
+#define GPIO_PB7_T0CCP1         0x00011C07
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_M0PWM6         0x00021004
+#define GPIO_PC4_IDX1           0x00021006
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_M0PWM7         0x00021404
+#define GPIO_PC5_PHA1           0x00021406
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_PHB1           0x00021806
+#define GPIO_PC6_WT1CCP0        0x00021807
+#define GPIO_PC6_USB0EPEN       0x00021808
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+#define GPIO_PC7_USB0PFLT       0x00021C08
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_M0PWM6         0x00030004
+#define GPIO_PD0_M1PWM0         0x00030005
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_M0PWM7         0x00030404
+#define GPIO_PD1_M1PWM1         0x00030405
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_M0FAULT0       0x00030804
+#define GPIO_PD2_WT3CCP0        0x00030807
+#define GPIO_PD2_USB0EPEN       0x00030808
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_IDX0           0x00030C06
+#define GPIO_PD3_WT3CCP1        0x00030C07
+#define GPIO_PD3_USB0PFLT       0x00030C08
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_M0FAULT0       0x00031804
+#define GPIO_PD6_PHA0           0x00031806
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_M0FAULT1       0x00031C04
+#define GPIO_PD7_PHB0           0x00031C06
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_M0PWM4         0x00041004
+#define GPIO_PE4_M1PWM2         0x00041005
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_M0PWM5         0x00041404
+#define GPIO_PE5_M1PWM3         0x00041405
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PE6_CAN1RX         0x00041808
+
+#define GPIO_PE7_U1RI           0x00041C01
+#define GPIO_PE7_CAN1TX         0x00041C08
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_M1PWM4         0x00050005
+#define GPIO_PF0_PHA0           0x00050006
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+#define GPIO_PF0_TRD2           0x0005000E
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_M1PWM5         0x00050405
+#define GPIO_PF1_PHB0           0x00050406
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_U1DCD          0x00050801
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_M0FAULT0       0x00050804
+#define GPIO_PF2_M1PWM6         0x00050805
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_C2O            0x00050809
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_U1DSR          0x00050C01
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_M0FAULT1       0x00050C04
+#define GPIO_PF3_M1PWM7         0x00050C05
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_U1DTR          0x00051001
+#define GPIO_PF4_M0FAULT2       0x00051004
+#define GPIO_PF4_M1FAULT0       0x00051005
+#define GPIO_PF4_IDX0           0x00051006
+#define GPIO_PF4_T2CCP0         0x00051007
+#define GPIO_PF4_USB0EPEN       0x00051008
+#define GPIO_PF4_TRD3           0x0005100E
+
+#define GPIO_PF5_M0FAULT3       0x00051404
+#define GPIO_PF5_T2CCP1         0x00051407
+#define GPIO_PF5_USB0PFLT       0x00051408
+
+#define GPIO_PF6_I2C2SCL        0x00051803
+#define GPIO_PF6_T3CCP0         0x00051807
+
+#define GPIO_PF7_I2C2SDA        0x00051C03
+#define GPIO_PF7_M1FAULT0       0x00051C05
+#define GPIO_PF7_T3CCP1         0x00051C07
+
+#define GPIO_PG0_I2C3SCL        0x00060003
+#define GPIO_PG0_M1FAULT1       0x00060005
+#define GPIO_PG0_PHA1           0x00060006
+#define GPIO_PG0_T4CCP0         0x00060007
+
+#define GPIO_PG1_I2C3SDA        0x00060403
+#define GPIO_PG1_M1FAULT2       0x00060405
+#define GPIO_PG1_PHB1           0x00060406
+#define GPIO_PG1_T4CCP1         0x00060407
+
+#define GPIO_PG2_I2C4SCL        0x00060803
+#define GPIO_PG2_M0FAULT1       0x00060804
+#define GPIO_PG2_M1PWM0         0x00060805
+#define GPIO_PG2_T5CCP0         0x00060807
+
+#define GPIO_PG3_I2C4SDA        0x00060C03
+#define GPIO_PG3_M0FAULT2       0x00060C04
+#define GPIO_PG3_M1PWM1         0x00060C05
+#define GPIO_PG3_PHA1           0x00060C06
+#define GPIO_PG3_T5CCP1         0x00060C07
+
+#define GPIO_PG4_U2RX           0x00061001
+#define GPIO_PG4_I2C1SCL        0x00061003
+#define GPIO_PG4_M0PWM4         0x00061004
+#define GPIO_PG4_M1PWM2         0x00061005
+#define GPIO_PG4_PHB1           0x00061006
+#define GPIO_PG4_WT0CCP0        0x00061007
+#define GPIO_PG4_USB0EPEN       0x00061008
+
+#define GPIO_PG5_U2TX           0x00061401
+#define GPIO_PG5_I2C1SDA        0x00061403
+#define GPIO_PG5_M0PWM5         0x00061404
+#define GPIO_PG5_M1PWM3         0x00061405
+#define GPIO_PG5_IDX1           0x00061406
+#define GPIO_PG5_WT0CCP1        0x00061407
+#define GPIO_PG5_USB0PFLT       0x00061408
+
+#define GPIO_PG6_I2C5SCL        0x00061803
+#define GPIO_PG6_M0PWM6         0x00061804
+#define GPIO_PG6_WT1CCP0        0x00061807
+
+#define GPIO_PG7_I2C5SDA        0x00061C03
+#define GPIO_PG7_M0PWM7         0x00061C04
+#define GPIO_PG7_IDX1           0x00061C05
+#define GPIO_PG7_WT1CCP1        0x00061C07
+
+#define GPIO_PH0_SSI3CLK        0x00070002
+#define GPIO_PH0_M0PWM0         0x00070004
+#define GPIO_PH0_M0FAULT0       0x00070006
+#define GPIO_PH0_WT2CCP0        0x00070007
+
+#define GPIO_PH1_SSI3FSS        0x00070402
+#define GPIO_PH1_M0PWM1         0x00070404
+#define GPIO_PH1_IDX0           0x00070405
+#define GPIO_PH1_M0FAULT1       0x00070406
+#define GPIO_PH1_WT2CCP1        0x00070407
+
+#define GPIO_PH2_SSI3RX         0x00070802
+#define GPIO_PH2_M0PWM2         0x00070804
+#define GPIO_PH2_M0FAULT2       0x00070806
+#define GPIO_PH2_WT5CCP0        0x00070807
+
+#define GPIO_PH3_SSI3TX         0x00070C02
+#define GPIO_PH3_M0PWM3         0x00070C04
+#define GPIO_PH3_M0FAULT3       0x00070C06
+#define GPIO_PH3_WT5CCP1        0x00070C07
+
+#define GPIO_PH4_SSI2CLK        0x00071002
+#define GPIO_PH4_M0PWM4         0x00071004
+#define GPIO_PH4_PHA0           0x00071005
+#define GPIO_PH4_WT3CCP0        0x00071007
+
+#define GPIO_PH5_SSI2FSS        0x00071402
+#define GPIO_PH5_M0PWM5         0x00071404
+#define GPIO_PH5_PHB0           0x00071405
+#define GPIO_PH5_WT3CCP1        0x00071407
+
+#define GPIO_PH6_SSI2RX         0x00071802
+#define GPIO_PH6_M0PWM6         0x00071804
+#define GPIO_PH6_WT4CCP0        0x00071807
+
+#define GPIO_PH7_SSI2TX         0x00071C02
+#define GPIO_PH7_M0PWM7         0x00071C04
+#define GPIO_PH7_WT4CCP1        0x00071C07
+
+#define GPIO_PJ0_U4RX           0x00080001
+#define GPIO_PJ0_T1CCP0         0x00080007
+
+#define GPIO_PJ1_U4TX           0x00080401
+#define GPIO_PJ1_T1CCP1         0x00080407
+
+#define GPIO_PJ2_U5RX           0x00080801
+#define GPIO_PJ2_IDX0           0x00080805
+#define GPIO_PJ2_T2CCP0         0x00080807
+
+#define GPIO_PJ3_U5TX           0x00080C01
+#define GPIO_PJ3_T2CCP1         0x00080C07
+
+#define GPIO_PJ4_U6RX           0x00081001
+#define GPIO_PJ4_T3CCP0         0x00081007
+
+#define GPIO_PJ5_U6TX           0x00081401
+#define GPIO_PJ5_T3CCP1         0x00081407
+
+#define GPIO_PK0_SSI3CLK        0x00090002
+#define GPIO_PK0_M1FAULT0       0x00090006
+
+#define GPIO_PK1_SSI3FSS        0x00090402
+#define GPIO_PK1_M1FAULT1       0x00090406
+
+#define GPIO_PK2_SSI3RX         0x00090802
+#define GPIO_PK2_M1FAULT2       0x00090806
+
+#define GPIO_PK3_SSI3TX         0x00090C02
+#define GPIO_PK3_M1FAULT3       0x00090C06
+
+#define GPIO_PK4_U7RX           0x00091001
+#define GPIO_PK4_M0FAULT0       0x00091006
+#define GPIO_PK4_RTCCLK         0x00091007
+#define GPIO_PK4_C0O            0x00091008
+
+#define GPIO_PK5_U7TX           0x00091401
+#define GPIO_PK5_M0FAULT1       0x00091406
+#define GPIO_PK5_C1O            0x00091408
+
+#define GPIO_PK6_M0FAULT2       0x00091806
+#define GPIO_PK6_WT1CCP0        0x00091807
+#define GPIO_PK6_C2O            0x00091808
+
+#define GPIO_PK7_M0FAULT3       0x00091C06
+#define GPIO_PK7_WT1CCP1        0x00091C07
+
+#define GPIO_PL0_T0CCP0         0x000A0007
+#define GPIO_PL0_WT0CCP0        0x000A0008
+
+#define GPIO_PL1_T0CCP1         0x000A0407
+#define GPIO_PL1_WT0CCP1        0x000A0408
+
+#define GPIO_PL2_T1CCP0         0x000A0807
+#define GPIO_PL2_WT1CCP0        0x000A0808
+
+#define GPIO_PL3_T1CCP1         0x000A0C07
+#define GPIO_PL3_WT1CCP1        0x000A0C08
+
+#define GPIO_PL4_T2CCP0         0x000A1007
+#define GPIO_PL4_WT2CCP0        0x000A1008
+
+#define GPIO_PL5_T2CCP1         0x000A1407
+#define GPIO_PL5_WT2CCP1        0x000A1408
+
+#define GPIO_PL6_T3CCP0         0x000A1807
+#define GPIO_PL6_WT3CCP0        0x000A1808
+
+#define GPIO_PL7_T3CCP1         0x000A1C07
+#define GPIO_PL7_WT3CCP1        0x000A1C08
+
+#define GPIO_PM0_T4CCP0         0x000B0007
+#define GPIO_PM0_WT4CCP0        0x000B0008
+
+#define GPIO_PM1_T4CCP1         0x000B0407
+#define GPIO_PM1_WT4CCP1        0x000B0408
+
+#define GPIO_PM2_T5CCP0         0x000B0807
+#define GPIO_PM2_WT5CCP0        0x000B0808
+
+#define GPIO_PM3_T5CCP1         0x000B0C07
+#define GPIO_PM3_WT5CCP1        0x000B0C08
+
+#define GPIO_PM6_M0PWM4         0x000B1802
+#define GPIO_PM6_WT0CCP0        0x000B1807
+
+#define GPIO_PM7_M0PWM5         0x000B1C02
+#define GPIO_PM7_WT0CCP1        0x000B1C07
+
+#define GPIO_PN0_CAN0RX         0x000C0001
+
+#define GPIO_PN1_CAN0TX         0x000C0401
+
+#define GPIO_PN2_M0PWM6         0x000C0802
+#define GPIO_PN2_WT2CCP0        0x000C0807
+
+#define GPIO_PN3_M0PWM7         0x000C0C02
+#define GPIO_PN3_WT2CCP1        0x000C0C07
+
+#define GPIO_PN4_M1PWM4         0x000C1002
+#define GPIO_PN4_WT3CCP0        0x000C1007
+
+#define GPIO_PN5_M1PWM5         0x000C1402
+#define GPIO_PN5_WT3CCP1        0x000C1407
+
+#define GPIO_PN6_M1PWM6         0x000C1802
+#define GPIO_PN6_WT4CCP0        0x000C1807
+
+#define GPIO_PN7_M1PWM7         0x000C1C02
+#define GPIO_PN7_WT4CCP1        0x000C1C07
+
+#define GPIO_PP0_M0PWM0         0x000D0001
+#define GPIO_PP0_T4CCP0         0x000D0007
+
+#define GPIO_PP1_M0PWM1         0x000D0401
+#define GPIO_PP1_T4CCP1         0x000D0407
+
+#define GPIO_PP2_M0PWM2         0x000D0801
+#define GPIO_PP2_T5CCP0         0x000D0807
+
+#define GPIO_PP3_M0PWM3         0x000D0C01
+#define GPIO_PP3_T5CCP1         0x000D0C07
+
+#define GPIO_PP4_M0PWM4         0x000D1001
+#define GPIO_PP4_WT0CCP0        0x000D1007
+
+#define GPIO_PP5_M0PWM5         0x000D1401
+#define GPIO_PP5_WT0CCP1        0x000D1407
+
+#define GPIO_PP6_M0PWM6         0x000D1801
+#define GPIO_PP6_WT1CCP0        0x000D1807
+
+#define GPIO_PP7_M0PWM7         0x000D1C01
+#define GPIO_PP7_WT1CCP1        0x000D1C07
+
+#define GPIO_PQ0_M1PWM0         0x000E0001
+#define GPIO_PQ0_WT2CCP0        0x000E0007
+
+#define GPIO_PQ1_M1PWM1         0x000E0401
+#define GPIO_PQ1_WT2CCP1        0x000E0407
+
+#define GPIO_PQ2_M1PWM2         0x000E0801
+#define GPIO_PQ2_WT3CCP0        0x000E0807
+
+#define GPIO_PQ3_M1PWM3         0x000E0C01
+#define GPIO_PQ3_WT3CCP1        0x000E0C07
+
+#define GPIO_PQ4_M1PWM4         0x000E1001
+#define GPIO_PQ4_WT4CCP0        0x000E1007
+
+#define GPIO_PQ5_M1PWM5         0x000E1401
+#define GPIO_PQ5_WT4CCP1        0x000E1407
+
+#define GPIO_PQ6_M1PWM6         0x000E1801
+#define GPIO_PQ6_WT5CCP0        0x000E1807
+
+#define GPIO_PQ7_M1PWM7         0x000E1C01
+#define GPIO_PQ7_WT5CCP1        0x000E1C07
+
+#endif // PART_TM4C123GH6ZRB
+
+//*****************************************************************************
+//
+// TM4C123GH6ZXR Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C123GH6ZXR
+
+#define GPIO_PA0_U0RX           0x00000001
+#define GPIO_PA0_CAN1RX         0x00000008
+
+#define GPIO_PA1_U0TX           0x00000401
+#define GPIO_PA1_CAN1TX         0x00000408
+
+#define GPIO_PA2_SSI0CLK        0x00000802
+
+#define GPIO_PA3_SSI0FSS        0x00000C02
+
+#define GPIO_PA4_SSI0RX         0x00001002
+
+#define GPIO_PA5_SSI0TX         0x00001402
+
+#define GPIO_PA6_I2C1SCL        0x00001803
+#define GPIO_PA6_M1PWM2         0x00001805
+
+#define GPIO_PA7_I2C1SDA        0x00001C03
+#define GPIO_PA7_M1PWM3         0x00001C05
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_T2CCP0         0x00010007
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_T2CCP1         0x00010407
+
+#define GPIO_PB2_I2C0SCL        0x00010803
+#define GPIO_PB2_T3CCP0         0x00010807
+
+#define GPIO_PB3_I2C0SDA        0x00010C03
+#define GPIO_PB3_T3CCP1         0x00010C07
+
+#define GPIO_PB4_SSI2CLK        0x00011002
+#define GPIO_PB4_M0PWM2         0x00011004
+#define GPIO_PB4_T1CCP0         0x00011007
+#define GPIO_PB4_CAN0RX         0x00011008
+
+#define GPIO_PB5_SSI2FSS        0x00011402
+#define GPIO_PB5_M0PWM3         0x00011404
+#define GPIO_PB5_T1CCP1         0x00011407
+#define GPIO_PB5_CAN0TX         0x00011408
+
+#define GPIO_PB6_SSI2RX         0x00011802
+#define GPIO_PB6_I2C5SCL        0x00011803
+#define GPIO_PB6_M0PWM0         0x00011804
+#define GPIO_PB6_T0CCP0         0x00011807
+
+#define GPIO_PB7_SSI2TX         0x00011C02
+#define GPIO_PB7_I2C5SDA        0x00011C03
+#define GPIO_PB7_M0PWM1         0x00011C04
+#define GPIO_PB7_T0CCP1         0x00011C07
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+#define GPIO_PC0_T4CCP0         0x00020007
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+#define GPIO_PC1_T4CCP1         0x00020407
+
+#define GPIO_PC2_TDI            0x00020801
+#define GPIO_PC2_T5CCP0         0x00020807
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+#define GPIO_PC3_T5CCP1         0x00020C07
+
+#define GPIO_PC4_U4RX           0x00021001
+#define GPIO_PC4_U1RX           0x00021002
+#define GPIO_PC4_M0PWM6         0x00021004
+#define GPIO_PC4_IDX1           0x00021006
+#define GPIO_PC4_WT0CCP0        0x00021007
+#define GPIO_PC4_U1RTS          0x00021008
+
+#define GPIO_PC5_U4TX           0x00021401
+#define GPIO_PC5_U1TX           0x00021402
+#define GPIO_PC5_M0PWM7         0x00021404
+#define GPIO_PC5_PHA1           0x00021406
+#define GPIO_PC5_WT0CCP1        0x00021407
+#define GPIO_PC5_U1CTS          0x00021408
+
+#define GPIO_PC6_U3RX           0x00021801
+#define GPIO_PC6_PHB1           0x00021806
+#define GPIO_PC6_WT1CCP0        0x00021807
+#define GPIO_PC6_USB0EPEN       0x00021808
+
+#define GPIO_PC7_U3TX           0x00021C01
+#define GPIO_PC7_WT1CCP1        0x00021C07
+#define GPIO_PC7_USB0PFLT       0x00021C08
+
+#define GPIO_PD0_SSI3CLK        0x00030001
+#define GPIO_PD0_SSI1CLK        0x00030002
+#define GPIO_PD0_I2C3SCL        0x00030003
+#define GPIO_PD0_M0PWM6         0x00030004
+#define GPIO_PD0_M1PWM0         0x00030005
+#define GPIO_PD0_WT2CCP0        0x00030007
+
+#define GPIO_PD1_SSI3FSS        0x00030401
+#define GPIO_PD1_SSI1FSS        0x00030402
+#define GPIO_PD1_I2C3SDA        0x00030403
+#define GPIO_PD1_M0PWM7         0x00030404
+#define GPIO_PD1_M1PWM1         0x00030405
+#define GPIO_PD1_WT2CCP1        0x00030407
+
+#define GPIO_PD2_SSI3RX         0x00030801
+#define GPIO_PD2_SSI1RX         0x00030802
+#define GPIO_PD2_M0FAULT0       0x00030804
+#define GPIO_PD2_WT3CCP0        0x00030807
+#define GPIO_PD2_USB0EPEN       0x00030808
+
+#define GPIO_PD3_SSI3TX         0x00030C01
+#define GPIO_PD3_SSI1TX         0x00030C02
+#define GPIO_PD3_IDX0           0x00030C06
+#define GPIO_PD3_WT3CCP1        0x00030C07
+#define GPIO_PD3_USB0PFLT       0x00030C08
+
+#define GPIO_PD4_U6RX           0x00031001
+#define GPIO_PD4_WT4CCP0        0x00031007
+
+#define GPIO_PD5_U6TX           0x00031401
+#define GPIO_PD5_WT4CCP1        0x00031407
+
+#define GPIO_PD6_U2RX           0x00031801
+#define GPIO_PD6_M0FAULT0       0x00031804
+#define GPIO_PD6_PHA0           0x00031806
+#define GPIO_PD6_WT5CCP0        0x00031807
+
+#define GPIO_PD7_U2TX           0x00031C01
+#define GPIO_PD7_M0FAULT1       0x00031C04
+#define GPIO_PD7_PHB0           0x00031C06
+#define GPIO_PD7_WT5CCP1        0x00031C07
+#define GPIO_PD7_NMI            0x00031C08
+
+#define GPIO_PE0_U7RX           0x00040001
+
+#define GPIO_PE1_U7TX           0x00040401
+
+#define GPIO_PE4_U5RX           0x00041001
+#define GPIO_PE4_I2C2SCL        0x00041003
+#define GPIO_PE4_M0PWM4         0x00041004
+#define GPIO_PE4_M1PWM2         0x00041005
+#define GPIO_PE4_CAN0RX         0x00041008
+
+#define GPIO_PE5_U5TX           0x00041401
+#define GPIO_PE5_I2C2SDA        0x00041403
+#define GPIO_PE5_M0PWM5         0x00041404
+#define GPIO_PE5_M1PWM3         0x00041405
+#define GPIO_PE5_CAN0TX         0x00041408
+
+#define GPIO_PE6_CAN1RX         0x00041808
+
+#define GPIO_PE7_U1RI           0x00041C01
+#define GPIO_PE7_CAN1TX         0x00041C08
+
+#define GPIO_PF0_U1RTS          0x00050001
+#define GPIO_PF0_SSI1RX         0x00050002
+#define GPIO_PF0_CAN0RX         0x00050003
+#define GPIO_PF0_M1PWM4         0x00050005
+#define GPIO_PF0_PHA0           0x00050006
+#define GPIO_PF0_T0CCP0         0x00050007
+#define GPIO_PF0_NMI            0x00050008
+#define GPIO_PF0_C0O            0x00050009
+#define GPIO_PF0_TRD2           0x0005000E
+
+#define GPIO_PF1_U1CTS          0x00050401
+#define GPIO_PF1_SSI1TX         0x00050402
+#define GPIO_PF1_M1PWM5         0x00050405
+#define GPIO_PF1_PHB0           0x00050406
+#define GPIO_PF1_T0CCP1         0x00050407
+#define GPIO_PF1_C1O            0x00050409
+#define GPIO_PF1_TRD1           0x0005040E
+
+#define GPIO_PF2_U1DCD          0x00050801
+#define GPIO_PF2_SSI1CLK        0x00050802
+#define GPIO_PF2_M0FAULT0       0x00050804
+#define GPIO_PF2_M1PWM6         0x00050805
+#define GPIO_PF2_T1CCP0         0x00050807
+#define GPIO_PF2_C2O            0x00050809
+#define GPIO_PF2_TRD0           0x0005080E
+
+#define GPIO_PF3_U1DSR          0x00050C01
+#define GPIO_PF3_SSI1FSS        0x00050C02
+#define GPIO_PF3_CAN0TX         0x00050C03
+#define GPIO_PF3_M0FAULT1       0x00050C04
+#define GPIO_PF3_M1PWM7         0x00050C05
+#define GPIO_PF3_T1CCP1         0x00050C07
+#define GPIO_PF3_TRCLK          0x00050C0E
+
+#define GPIO_PF4_U1DTR          0x00051001
+#define GPIO_PF4_M0FAULT2       0x00051004
+#define GPIO_PF4_M1FAULT0       0x00051005
+#define GPIO_PF4_IDX0           0x00051006
+#define GPIO_PF4_T2CCP0         0x00051007
+#define GPIO_PF4_USB0EPEN       0x00051008
+#define GPIO_PF4_TRD3           0x0005100E
+
+#define GPIO_PF5_M0FAULT3       0x00051404
+#define GPIO_PF5_T2CCP1         0x00051407
+#define GPIO_PF5_USB0PFLT       0x00051408
+
+#define GPIO_PF6_I2C2SCL        0x00051803
+#define GPIO_PF6_T3CCP0         0x00051807
+
+#define GPIO_PF7_I2C2SDA        0x00051C03
+#define GPIO_PF7_M1FAULT0       0x00051C05
+#define GPIO_PF7_T3CCP1         0x00051C07
+
+#define GPIO_PG0_I2C3SCL        0x00060003
+#define GPIO_PG0_M1FAULT1       0x00060005
+#define GPIO_PG0_PHA1           0x00060006
+#define GPIO_PG0_T4CCP0         0x00060007
+
+#define GPIO_PG1_I2C3SDA        0x00060403
+#define GPIO_PG1_M1FAULT2       0x00060405
+#define GPIO_PG1_PHB1           0x00060406
+#define GPIO_PG1_T4CCP1         0x00060407
+
+#define GPIO_PG2_I2C4SCL        0x00060803
+#define GPIO_PG2_M0FAULT1       0x00060804
+#define GPIO_PG2_M1PWM0         0x00060805
+#define GPIO_PG2_T5CCP0         0x00060807
+
+#define GPIO_PG3_I2C4SDA        0x00060C03
+#define GPIO_PG3_M0FAULT2       0x00060C04
+#define GPIO_PG3_M1PWM1         0x00060C05
+#define GPIO_PG3_PHA1           0x00060C06
+#define GPIO_PG3_T5CCP1         0x00060C07
+
+#define GPIO_PG4_U2RX           0x00061001
+#define GPIO_PG4_I2C1SCL        0x00061003
+#define GPIO_PG4_M0PWM4         0x00061004
+#define GPIO_PG4_M1PWM2         0x00061005
+#define GPIO_PG4_PHB1           0x00061006
+#define GPIO_PG4_WT0CCP0        0x00061007
+#define GPIO_PG4_USB0EPEN       0x00061008
+
+#define GPIO_PG5_U2TX           0x00061401
+#define GPIO_PG5_I2C1SDA        0x00061403
+#define GPIO_PG5_M0PWM5         0x00061404
+#define GPIO_PG5_M1PWM3         0x00061405
+#define GPIO_PG5_IDX1           0x00061406
+#define GPIO_PG5_WT0CCP1        0x00061407
+#define GPIO_PG5_USB0PFLT       0x00061408
+
+#define GPIO_PG6_I2C5SCL        0x00061803
+#define GPIO_PG6_M0PWM6         0x00061804
+#define GPIO_PG6_WT1CCP0        0x00061807
+
+#define GPIO_PG7_I2C5SDA        0x00061C03
+#define GPIO_PG7_M0PWM7         0x00061C04
+#define GPIO_PG7_IDX1           0x00061C05
+#define GPIO_PG7_WT1CCP1        0x00061C07
+
+#define GPIO_PH0_SSI3CLK        0x00070002
+#define GPIO_PH0_M0PWM0         0x00070004
+#define GPIO_PH0_M0FAULT0       0x00070006
+#define GPIO_PH0_WT2CCP0        0x00070007
+
+#define GPIO_PH1_SSI3FSS        0x00070402
+#define GPIO_PH1_M0PWM1         0x00070404
+#define GPIO_PH1_IDX0           0x00070405
+#define GPIO_PH1_M0FAULT1       0x00070406
+#define GPIO_PH1_WT2CCP1        0x00070407
+
+#define GPIO_PH2_SSI3RX         0x00070802
+#define GPIO_PH2_M0PWM2         0x00070804
+#define GPIO_PH2_M0FAULT2       0x00070806
+#define GPIO_PH2_WT5CCP0        0x00070807
+
+#define GPIO_PH3_SSI3TX         0x00070C02
+#define GPIO_PH3_M0PWM3         0x00070C04
+#define GPIO_PH3_M0FAULT3       0x00070C06
+#define GPIO_PH3_WT5CCP1        0x00070C07
+
+#define GPIO_PH4_SSI2CLK        0x00071002
+#define GPIO_PH4_M0PWM4         0x00071004
+#define GPIO_PH4_PHA0           0x00071005
+#define GPIO_PH4_WT3CCP0        0x00071007
+
+#define GPIO_PH5_SSI2FSS        0x00071402
+#define GPIO_PH5_M0PWM5         0x00071404
+#define GPIO_PH5_PHB0           0x00071405
+#define GPIO_PH5_WT3CCP1        0x00071407
+
+#define GPIO_PH6_SSI2RX         0x00071802
+#define GPIO_PH6_M0PWM6         0x00071804
+#define GPIO_PH6_WT4CCP0        0x00071807
+
+#define GPIO_PH7_SSI2TX         0x00071C02
+#define GPIO_PH7_M0PWM7         0x00071C04
+#define GPIO_PH7_WT4CCP1        0x00071C07
+
+#define GPIO_PJ0_U4RX           0x00080001
+#define GPIO_PJ0_T1CCP0         0x00080007
+
+#define GPIO_PJ1_U4TX           0x00080401
+#define GPIO_PJ1_T1CCP1         0x00080407
+
+#define GPIO_PJ2_U5RX           0x00080801
+#define GPIO_PJ2_IDX0           0x00080805
+#define GPIO_PJ2_T2CCP0         0x00080807
+
+#define GPIO_PJ3_U5TX           0x00080C01
+#define GPIO_PJ3_T2CCP1         0x00080C07
+
+#define GPIO_PJ4_U6RX           0x00081001
+#define GPIO_PJ4_T3CCP0         0x00081007
+
+#define GPIO_PJ5_U6TX           0x00081401
+#define GPIO_PJ5_T3CCP1         0x00081407
+
+#define GPIO_PK0_SSI3CLK        0x00090002
+#define GPIO_PK0_M1FAULT0       0x00090006
+
+#define GPIO_PK1_SSI3FSS        0x00090402
+#define GPIO_PK1_M1FAULT1       0x00090406
+
+#define GPIO_PK2_SSI3RX         0x00090802
+#define GPIO_PK2_M1FAULT2       0x00090806
+
+#define GPIO_PK3_SSI3TX         0x00090C02
+#define GPIO_PK3_M1FAULT3       0x00090C06
+
+#define GPIO_PK4_U7RX           0x00091001
+#define GPIO_PK4_M0FAULT0       0x00091006
+#define GPIO_PK4_RTCCLK         0x00091007
+#define GPIO_PK4_C0O            0x00091008
+
+#define GPIO_PK5_U7TX           0x00091401
+#define GPIO_PK5_M0FAULT1       0x00091406
+#define GPIO_PK5_C1O            0x00091408
+
+#define GPIO_PK6_M0FAULT2       0x00091806
+#define GPIO_PK6_WT1CCP0        0x00091807
+#define GPIO_PK6_C2O            0x00091808
+
+#define GPIO_PK7_M0FAULT3       0x00091C06
+#define GPIO_PK7_WT1CCP1        0x00091C07
+
+#define GPIO_PL0_T0CCP0         0x000A0007
+#define GPIO_PL0_WT0CCP0        0x000A0008
+
+#define GPIO_PL1_T0CCP1         0x000A0407
+#define GPIO_PL1_WT0CCP1        0x000A0408
+
+#define GPIO_PL2_T1CCP0         0x000A0807
+#define GPIO_PL2_WT1CCP0        0x000A0808
+
+#define GPIO_PL3_T1CCP1         0x000A0C07
+#define GPIO_PL3_WT1CCP1        0x000A0C08
+
+#define GPIO_PL4_T2CCP0         0x000A1007
+#define GPIO_PL4_WT2CCP0        0x000A1008
+
+#define GPIO_PL5_T2CCP1         0x000A1407
+#define GPIO_PL5_WT2CCP1        0x000A1408
+
+#define GPIO_PL6_T3CCP0         0x000A1807
+#define GPIO_PL6_WT3CCP0        0x000A1808
+
+#define GPIO_PL7_T3CCP1         0x000A1C07
+#define GPIO_PL7_WT3CCP1        0x000A1C08
+
+#define GPIO_PM0_T4CCP0         0x000B0007
+#define GPIO_PM0_WT4CCP0        0x000B0008
+
+#define GPIO_PM1_T4CCP1         0x000B0407
+#define GPIO_PM1_WT4CCP1        0x000B0408
+
+#define GPIO_PM2_T5CCP0         0x000B0807
+#define GPIO_PM2_WT5CCP0        0x000B0808
+
+#define GPIO_PM3_T5CCP1         0x000B0C07
+#define GPIO_PM3_WT5CCP1        0x000B0C08
+
+#define GPIO_PM6_M0PWM4         0x000B1802
+#define GPIO_PM6_WT0CCP0        0x000B1807
+
+#define GPIO_PM7_M0PWM5         0x000B1C02
+#define GPIO_PM7_WT0CCP1        0x000B1C07
+
+#define GPIO_PN0_CAN0RX         0x000C0001
+
+#define GPIO_PN1_CAN0TX         0x000C0401
+
+#define GPIO_PN2_M0PWM6         0x000C0802
+#define GPIO_PN2_WT2CCP0        0x000C0807
+
+#define GPIO_PN3_M0PWM7         0x000C0C02
+#define GPIO_PN3_WT2CCP1        0x000C0C07
+
+#define GPIO_PN4_M1PWM4         0x000C1002
+#define GPIO_PN4_WT3CCP0        0x000C1007
+
+#define GPIO_PN5_M1PWM5         0x000C1402
+#define GPIO_PN5_WT3CCP1        0x000C1407
+
+#define GPIO_PN6_M1PWM6         0x000C1802
+#define GPIO_PN6_WT4CCP0        0x000C1807
+
+#define GPIO_PN7_M1PWM7         0x000C1C02
+#define GPIO_PN7_WT4CCP1        0x000C1C07
+
+#define GPIO_PP0_M0PWM0         0x000D0001
+#define GPIO_PP0_T4CCP0         0x000D0007
+
+#define GPIO_PP1_M0PWM1         0x000D0401
+#define GPIO_PP1_T4CCP1         0x000D0407
+
+#define GPIO_PP2_M0PWM2         0x000D0801
+#define GPIO_PP2_T5CCP0         0x000D0807
+
+#define GPIO_PP3_M0PWM3         0x000D0C01
+#define GPIO_PP3_T5CCP1         0x000D0C07
+
+#define GPIO_PP4_M0PWM4         0x000D1001
+#define GPIO_PP4_WT0CCP0        0x000D1007
+
+#define GPIO_PP5_M0PWM5         0x000D1401
+#define GPIO_PP5_WT0CCP1        0x000D1407
+
+#define GPIO_PP6_M0PWM6         0x000D1801
+#define GPIO_PP6_WT1CCP0        0x000D1807
+
+#define GPIO_PP7_M0PWM7         0x000D1C01
+#define GPIO_PP7_WT1CCP1        0x000D1C07
+
+#define GPIO_PQ0_M1PWM0         0x000E0001
+#define GPIO_PQ0_WT2CCP0        0x000E0007
+
+#define GPIO_PQ1_M1PWM1         0x000E0401
+#define GPIO_PQ1_WT2CCP1        0x000E0407
+
+#define GPIO_PQ2_M1PWM2         0x000E0801
+#define GPIO_PQ2_WT3CCP0        0x000E0807
+
+#define GPIO_PQ3_M1PWM3         0x000E0C01
+#define GPIO_PQ3_WT3CCP1        0x000E0C07
+
+#define GPIO_PQ4_M1PWM4         0x000E1001
+#define GPIO_PQ4_WT4CCP0        0x000E1007
+
+#define GPIO_PQ5_M1PWM5         0x000E1401
+#define GPIO_PQ5_WT4CCP1        0x000E1407
+
+#define GPIO_PQ6_M1PWM6         0x000E1801
+#define GPIO_PQ6_WT5CCP0        0x000E1807
+
+#define GPIO_PQ7_M1PWM7         0x000E1C01
+#define GPIO_PQ7_WT5CCP1        0x000E1C07
+
+#endif // PART_TM4C123GH6ZXR
+
+//*****************************************************************************
+//
+// TM4C1290NCPDT Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1290NCPDT
+
+#define GPIO_PA0_U0RX           0x00000001
+#define GPIO_PA0_I2C9SCL        0x00000002
+#define GPIO_PA0_T0CCP0         0x00000003
+#define GPIO_PA0_CAN0RX         0x00000007
+
+#define GPIO_PA1_U0TX           0x00000401
+#define GPIO_PA1_I2C9SDA        0x00000402
+#define GPIO_PA1_T0CCP1         0x00000403
+#define GPIO_PA1_CAN0TX         0x00000407
+
+#define GPIO_PA2_U4RX           0x00000801
+#define GPIO_PA2_I2C8SCL        0x00000802
+#define GPIO_PA2_T1CCP0         0x00000803
+#define GPIO_PA2_SSI0CLK        0x0000080F
+
+#define GPIO_PA3_U4TX           0x00000C01
+#define GPIO_PA3_I2C8SDA        0x00000C02
+#define GPIO_PA3_T1CCP1         0x00000C03
+#define GPIO_PA3_SSI0FSS        0x00000C0F
+
+#define GPIO_PA4_U3RX           0x00001001
+#define GPIO_PA4_T2CCP0         0x00001003
+#define GPIO_PA4_I2C7SCL        0x00001002
+#define GPIO_PA4_SSI0XDAT0      0x0000100F
+
+#define GPIO_PA5_U3TX           0x00001401
+#define GPIO_PA5_T2CCP1         0x00001403
+#define GPIO_PA5_I2C7SDA        0x00001402
+#define GPIO_PA5_SSI0XDAT1      0x0000140F
+
+#define GPIO_PA6_U2RX           0x00001801
+#define GPIO_PA6_I2C6SCL        0x00001802
+#define GPIO_PA6_T3CCP0         0x00001803
+#define GPIO_PA6_USB0EPEN       0x00001805
+#define GPIO_PA6_SSI0XDAT2      0x0000180D
+#define GPIO_PA6_EPI0S8         0x0000180F
+
+#define GPIO_PA7_U2TX           0x00001C01
+#define GPIO_PA7_I2C6SDA        0x00001C02
+#define GPIO_PA7_T3CCP1         0x00001C03
+#define GPIO_PA7_USB0PFLT       0x00001C05
+#define GPIO_PA7_USB0EPEN       0x00001C0B
+#define GPIO_PA7_SSI0XDAT3      0x00001C0D
+#define GPIO_PA7_EPI0S9         0x00001C0F
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_I2C5SCL        0x00010002
+#define GPIO_PB0_CAN1RX         0x00010007
+#define GPIO_PB0_T4CCP0         0x00010003
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_I2C5SDA        0x00010402
+#define GPIO_PB1_CAN1TX         0x00010407
+#define GPIO_PB1_T4CCP1         0x00010403
+
+#define GPIO_PB2_T5CCP0         0x00010803
+#define GPIO_PB2_I2C0SCL        0x00010802
+#define GPIO_PB2_USB0STP        0x0001080E
+#define GPIO_PB2_EPI0S27        0x0001080F
+
+#define GPIO_PB3_I2C0SDA        0x00010C02
+#define GPIO_PB3_T5CCP1         0x00010C03
+#define GPIO_PB3_USB0CLK        0x00010C0E
+#define GPIO_PB3_EPI0S28        0x00010C0F
+
+#define GPIO_PB4_U0CTS          0x00011001
+#define GPIO_PB4_I2C5SCL        0x00011002
+#define GPIO_PB4_SSI1FSS        0x0001100F
+
+#define GPIO_PB5_U0RTS          0x00011401
+#define GPIO_PB5_I2C5SDA        0x00011402
+#define GPIO_PB5_SSI1CLK        0x0001140F
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+
+#define GPIO_PC2_TDI            0x00020801
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+
+#define GPIO_PC4_U7RX           0x00021001
+#define GPIO_PC4_EPI0S7         0x0002100F
+
+#define GPIO_PC5_U7TX           0x00021401
+#define GPIO_PC5_RTCCLK         0x00021407
+#define GPIO_PC5_EPI0S6         0x0002140F
+
+#define GPIO_PC6_U5RX           0x00021801
+#define GPIO_PC6_EPI0S5         0x0002180F
+
+#define GPIO_PC7_U5TX           0x00021C01
+#define GPIO_PC7_EPI0S4         0x00021C0F
+
+#define GPIO_PD0_I2C7SCL        0x00030002
+#define GPIO_PD0_T0CCP0         0x00030003
+#define GPIO_PD0_C0O            0x00030005
+#define GPIO_PD0_SSI2XDAT1      0x0003000F
+
+#define GPIO_PD1_I2C7SDA        0x00030402
+#define GPIO_PD1_T0CCP1         0x00030403
+#define GPIO_PD1_C1O            0x00030405
+#define GPIO_PD1_SSI2XDAT0      0x0003040F
+
+#define GPIO_PD2_I2C8SCL        0x00030802
+#define GPIO_PD2_T1CCP0         0x00030803
+#define GPIO_PD2_C2O            0x00030805
+#define GPIO_PD2_SSI2FSS        0x0003080F
+
+#define GPIO_PD3_I2C8SDA        0x00030C02
+#define GPIO_PD3_T1CCP1         0x00030C03
+#define GPIO_PD3_SSI2CLK        0x00030C0F
+
+#define GPIO_PD4_U2RX           0x00031001
+#define GPIO_PD4_T3CCP0         0x00031003
+#define GPIO_PD4_SSI1XDAT2      0x0003100F
+
+#define GPIO_PD5_U2TX           0x00031401
+#define GPIO_PD5_T3CCP1         0x00031403
+#define GPIO_PD5_SSI1XDAT3      0x0003140F
+
+#define GPIO_PD6_U2RTS          0x00031801
+#define GPIO_PD6_T4CCP0         0x00031803
+#define GPIO_PD6_USB0EPEN       0x00031805
+#define GPIO_PD6_SSI2XDAT3      0x0003180F
+
+#define GPIO_PD7_U2CTS          0x00031C01
+#define GPIO_PD7_T4CCP1         0x00031C03
+#define GPIO_PD7_USB0PFLT       0x00031C05
+#define GPIO_PD7_NMI            0x00031C08
+#define GPIO_PD7_SSI2XDAT2      0x00031C0F
+
+#define GPIO_PE0_U1RTS          0x00040001
+
+#define GPIO_PE1_U1DSR          0x00040401
+
+#define GPIO_PE2_U1DCD          0x00040801
+
+#define GPIO_PE3_U1DTR          0x00040C01
+
+#define GPIO_PE4_U1RI           0x00041001
+#define GPIO_PE4_SSI1XDAT0      0x0004100F
+
+#define GPIO_PE5_SSI1XDAT1      0x0004140F
+
+#define GPIO_PF0_M0PWM0         0x00050006
+#define GPIO_PF0_SSI3XDAT1      0x0005000E
+#define GPIO_PF0_TRD2           0x0005000F
+
+#define GPIO_PF1_M0PWM1         0x00050406
+#define GPIO_PF1_SSI3XDAT0      0x0005040E
+#define GPIO_PF1_TRD1           0x0005040F
+
+#define GPIO_PF2_M0PWM2         0x00050806
+#define GPIO_PF2_SSI3FSS        0x0005080E
+#define GPIO_PF2_TRD0           0x0005080F
+
+#define GPIO_PF3_M0PWM3         0x00050C06
+#define GPIO_PF3_SSI3CLK        0x00050C0E
+#define GPIO_PF3_TRCLK          0x00050C0F
+
+#define GPIO_PF4_M0FAULT0       0x00051006
+#define GPIO_PF4_SSI3XDAT2      0x0005100E
+#define GPIO_PF4_TRD3           0x0005100F
+
+#define GPIO_PG0_I2C1SCL        0x00060002
+#define GPIO_PG0_M0PWM4         0x00060006
+#define GPIO_PG0_EPI0S11        0x0006000F
+
+#define GPIO_PG1_I2C1SDA        0x00060402
+#define GPIO_PG1_M0PWM5         0x00060406
+#define GPIO_PG1_EPI0S10        0x0006040F
+
+#define GPIO_PG2_I2C2SCL        0x00060802
+#define GPIO_PG2_SSI2XDAT3      0x0006080F
+
+#define GPIO_PG3_I2C2SDA        0x00060C02
+#define GPIO_PG3_SSI2XDAT2      0x00060C0F
+
+#define GPIO_PG4_U0CTS          0x00061001
+#define GPIO_PG4_I2C3SCL        0x00061002
+#define GPIO_PG4_SSI2XDAT1      0x0006100F
+
+#define GPIO_PG5_U0RTS          0x00061401
+#define GPIO_PG5_I2C3SDA        0x00061402
+#define GPIO_PG5_SSI2XDAT0      0x0006140F
+
+#define GPIO_PG6_I2C4SCL        0x00061802
+#define GPIO_PG6_SSI2FSS        0x0006180F
+
+#define GPIO_PG7_I2C4SDA        0x00061C02
+#define GPIO_PG7_SSI2CLK        0x00061C0F
+
+#define GPIO_PH0_U0RTS          0x00070001
+#define GPIO_PH0_EPI0S0         0x0007000F
+
+#define GPIO_PH1_U0CTS          0x00070401
+#define GPIO_PH1_EPI0S1         0x0007040F
+
+#define GPIO_PH2_U0DCD          0x00070801
+#define GPIO_PH2_EPI0S2         0x0007080F
+
+#define GPIO_PH3_U0DSR          0x00070C01
+#define GPIO_PH3_EPI0S3         0x00070C0F
+
+#define GPIO_PJ0_U3RX           0x00080001
+
+#define GPIO_PJ1_U3TX           0x00080401
+
+#define GPIO_PK0_U4RX           0x00090001
+#define GPIO_PK0_EPI0S0         0x0009000F
+
+#define GPIO_PK1_U4TX           0x00090401
+#define GPIO_PK1_EPI0S1         0x0009040F
+
+#define GPIO_PK2_U4RTS          0x00090801
+#define GPIO_PK2_EPI0S2         0x0009080F
+
+#define GPIO_PK3_U4CTS          0x00090C01
+#define GPIO_PK3_EPI0S3         0x00090C0F
+
+#define GPIO_PK4_I2C3SCL        0x00091002
+#define GPIO_PK4_M0PWM6         0x00091006
+#define GPIO_PK4_EPI0S32        0x0009100F
+
+#define GPIO_PK5_I2C3SDA        0x00091402
+#define GPIO_PK5_M0PWM7         0x00091406
+#define GPIO_PK5_EPI0S31        0x0009140F
+
+#define GPIO_PK6_I2C4SCL        0x00091802
+#define GPIO_PK6_M0FAULT1       0x00091806
+#define GPIO_PK6_EPI0S25        0x0009180F
+
+#define GPIO_PK7_U0RI           0x00091C01
+#define GPIO_PK7_I2C4SDA        0x00091C02
+#define GPIO_PK7_RTCCLK         0x00091C05
+#define GPIO_PK7_M0FAULT2       0x00091C06
+#define GPIO_PK7_EPI0S24        0x00091C0F
+
+#define GPIO_PL0_I2C2SDA        0x000A0002
+#define GPIO_PL0_M0FAULT3       0x000A0006
+#define GPIO_PL0_USB0D0         0x000A000E
+#define GPIO_PL0_EPI0S16        0x000A000F
+
+#define GPIO_PL1_I2C2SCL        0x000A0402
+#define GPIO_PL1_PHA0           0x000A0406
+#define GPIO_PL1_USB0D1         0x000A040E
+#define GPIO_PL1_EPI0S17        0x000A040F
+
+#define GPIO_PL2_C0O            0x000A0805
+#define GPIO_PL2_PHB0           0x000A0806
+#define GPIO_PL2_USB0D2         0x000A080E
+#define GPIO_PL2_EPI0S18        0x000A080F
+
+#define GPIO_PL3_C1O            0x000A0C05
+#define GPIO_PL3_IDX0           0x000A0C06
+#define GPIO_PL3_USB0D3         0x000A0C0E
+#define GPIO_PL3_EPI0S19        0x000A0C0F
+
+#define GPIO_PL4_T0CCP0         0x000A1003
+#define GPIO_PL4_USB0D4         0x000A100E
+#define GPIO_PL4_EPI0S26        0x000A100F
+
+#define GPIO_PL5_T0CCP1         0x000A1403
+#define GPIO_PL5_EPI0S33        0x000A140F
+#define GPIO_PL5_USB0D5         0x000A140E
+
+#define GPIO_PL6_T1CCP0         0x000A1803
+
+#define GPIO_PL7_T1CCP1         0x000A1C03
+
+#define GPIO_PM0_T2CCP0         0x000B0003
+#define GPIO_PM0_EPI0S15        0x000B000F
+
+#define GPIO_PM1_T2CCP1         0x000B0403
+#define GPIO_PM1_EPI0S14        0x000B040F
+
+#define GPIO_PM2_T3CCP0         0x000B0803
+#define GPIO_PM2_EPI0S13        0x000B080F
+
+#define GPIO_PM3_T3CCP1         0x000B0C03
+#define GPIO_PM3_EPI0S12        0x000B0C0F
+
+#define GPIO_PM4_U0CTS          0x000B1001
+#define GPIO_PM4_T4CCP0         0x000B1003
+
+#define GPIO_PM5_U0DCD          0x000B1401
+#define GPIO_PM5_T4CCP1         0x000B1403
+
+#define GPIO_PM6_U0DSR          0x000B1801
+#define GPIO_PM6_T5CCP0         0x000B1803
+
+#define GPIO_PM7_U0RI           0x000B1C01
+#define GPIO_PM7_T5CCP1         0x000B1C03
+
+#define GPIO_PN0_U1RTS          0x000C0001
+
+#define GPIO_PN1_U1CTS          0x000C0401
+
+#define GPIO_PN2_U1DCD          0x000C0801
+#define GPIO_PN2_U2RTS          0x000C0802
+#define GPIO_PN2_EPI0S29        0x000C080F
+
+#define GPIO_PN3_U1DSR          0x000C0C01
+#define GPIO_PN3_U2CTS          0x000C0C02
+#define GPIO_PN3_EPI0S30        0x000C0C0F
+
+#define GPIO_PN4_U1DTR          0x000C1001
+#define GPIO_PN4_U3RTS          0x000C1002
+#define GPIO_PN4_I2C2SDA        0x000C1003
+#define GPIO_PN4_EPI0S34        0x000C100F
+
+#define GPIO_PN5_U1RI           0x000C1401
+#define GPIO_PN5_U3CTS          0x000C1402
+#define GPIO_PN5_I2C2SCL        0x000C1403
+#define GPIO_PN5_EPI0S35        0x000C140F
+
+#define GPIO_PP0_U6RX           0x000D0001
+#define GPIO_PP0_SSI3XDAT2      0x000D000F
+
+#define GPIO_PP1_U6TX           0x000D0401
+#define GPIO_PP1_SSI3XDAT3      0x000D040F
+
+#define GPIO_PP2_U0DTR          0x000D0801
+#define GPIO_PP2_USB0NXT        0x000D080E
+#define GPIO_PP2_EPI0S29        0x000D080F
+
+#define GPIO_PP3_U1CTS          0x000D0C01
+#define GPIO_PP3_U0DCD          0x000D0C02
+#define GPIO_PP3_RTCCLK         0x000D0C07
+#define GPIO_PP3_USB0DIR        0x000D0C0E
+#define GPIO_PP3_EPI0S30        0x000D0C0F
+
+#define GPIO_PP4_U3RTS          0x000D1001
+#define GPIO_PP4_U0DSR          0x000D1002
+#define GPIO_PP4_USB0D7         0x000D100E
+
+#define GPIO_PP5_U3CTS          0x000D1401
+#define GPIO_PP5_I2C2SCL        0x000D1402
+#define GPIO_PP5_USB0D6         0x000D140E
+
+#define GPIO_PQ0_SSI3CLK        0x000E000E
+#define GPIO_PQ0_EPI0S20        0x000E000F
+
+#define GPIO_PQ1_SSI3FSS        0x000E040E
+#define GPIO_PQ1_EPI0S21        0x000E040F
+
+#define GPIO_PQ2_SSI3XDAT0      0x000E080E
+#define GPIO_PQ2_EPI0S22        0x000E080F
+
+#define GPIO_PQ3_SSI3XDAT1      0x000E0C0E
+#define GPIO_PQ3_EPI0S23        0x000E0C0F
+
+#define GPIO_PQ4_U1RX           0x000E1001
+#define GPIO_PQ4_DIVSCLK        0x000E1007
+
+#define GPIO_PQ5_U1TX           0x000E1401
+
+#define GPIO_PQ6_U1DTR          0x000E1801
+
+#endif // PART_TM4C1290NCPDT
+
+//*****************************************************************************
+//
+// TM4C1290NCZAD Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1290NCZAD
+
+#define GPIO_PA0_U0RX           0x00000001
+#define GPIO_PA0_I2C9SCL        0x00000002
+#define GPIO_PA0_T0CCP0         0x00000003
+#define GPIO_PA0_CAN0RX         0x00000007
+
+#define GPIO_PA1_U0TX           0x00000401
+#define GPIO_PA1_I2C9SDA        0x00000402
+#define GPIO_PA1_T0CCP1         0x00000403
+#define GPIO_PA1_CAN0TX         0x00000407
+
+#define GPIO_PA2_U4RX           0x00000801
+#define GPIO_PA2_I2C8SCL        0x00000802
+#define GPIO_PA2_T1CCP0         0x00000803
+#define GPIO_PA2_SSI0CLK        0x0000080F
+
+#define GPIO_PA3_U4TX           0x00000C01
+#define GPIO_PA3_I2C8SDA        0x00000C02
+#define GPIO_PA3_T1CCP1         0x00000C03
+#define GPIO_PA3_SSI0FSS        0x00000C0F
+
+#define GPIO_PA4_U3RX           0x00001001
+#define GPIO_PA4_T2CCP0         0x00001003
+#define GPIO_PA4_I2C7SCL        0x00001002
+#define GPIO_PA4_SSI0XDAT0      0x0000100F
+
+#define GPIO_PA5_U3TX           0x00001401
+#define GPIO_PA5_T2CCP1         0x00001403
+#define GPIO_PA5_I2C7SDA        0x00001402
+#define GPIO_PA5_SSI0XDAT1      0x0000140F
+
+#define GPIO_PA6_U2RX           0x00001801
+#define GPIO_PA6_I2C6SCL        0x00001802
+#define GPIO_PA6_T3CCP0         0x00001803
+#define GPIO_PA6_USB0EPEN       0x00001805
+#define GPIO_PA6_SSI0XDAT2      0x0000180D
+#define GPIO_PA6_EPI0S8         0x0000180F
+
+#define GPIO_PA7_U2TX           0x00001C01
+#define GPIO_PA7_I2C6SDA        0x00001C02
+#define GPIO_PA7_T3CCP1         0x00001C03
+#define GPIO_PA7_USB0PFLT       0x00001C05
+#define GPIO_PA7_USB0EPEN       0x00001C0B
+#define GPIO_PA7_SSI0XDAT3      0x00001C0D
+#define GPIO_PA7_EPI0S9         0x00001C0F
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_I2C5SCL        0x00010002
+#define GPIO_PB0_CAN1RX         0x00010007
+#define GPIO_PB0_T4CCP0         0x00010003
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_I2C5SDA        0x00010402
+#define GPIO_PB1_CAN1TX         0x00010407
+#define GPIO_PB1_T4CCP1         0x00010403
+
+#define GPIO_PB2_T5CCP0         0x00010803
+#define GPIO_PB2_I2C0SCL        0x00010802
+#define GPIO_PB2_USB0STP        0x0001080E
+#define GPIO_PB2_EPI0S27        0x0001080F
+
+#define GPIO_PB3_I2C0SDA        0x00010C02
+#define GPIO_PB3_T5CCP1         0x00010C03
+#define GPIO_PB3_USB0CLK        0x00010C0E
+#define GPIO_PB3_EPI0S28        0x00010C0F
+
+#define GPIO_PB4_U0CTS          0x00011001
+#define GPIO_PB4_I2C5SCL        0x00011002
+#define GPIO_PB4_SSI1FSS        0x0001100F
+
+#define GPIO_PB5_U0RTS          0x00011401
+#define GPIO_PB5_I2C5SDA        0x00011402
+#define GPIO_PB5_SSI1CLK        0x0001140F
+
+#define GPIO_PB6_I2C6SCL        0x00011802
+#define GPIO_PB6_T6CCP0         0x00011803
+
+#define GPIO_PB7_I2C6SDA        0x00011C02
+#define GPIO_PB7_T6CCP1         0x00011C03
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+
+#define GPIO_PC2_TDI            0x00020801
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+
+#define GPIO_PC4_U7RX           0x00021001
+#define GPIO_PC4_T7CCP0         0x00021003
+#define GPIO_PC4_EPI0S7         0x0002100F
+
+#define GPIO_PC5_U7TX           0x00021401
+#define GPIO_PC5_T7CCP1         0x00021403
+#define GPIO_PC5_RTCCLK         0x00021407
+#define GPIO_PC5_EPI0S6         0x0002140F
+
+#define GPIO_PC6_U5RX           0x00021801
+#define GPIO_PC6_EPI0S5         0x0002180F
+
+#define GPIO_PC7_U5TX           0x00021C01
+#define GPIO_PC7_EPI0S4         0x00021C0F
+
+#define GPIO_PD0_I2C7SCL        0x00030002
+#define GPIO_PD0_T0CCP0         0x00030003
+#define GPIO_PD0_C0O            0x00030005
+#define GPIO_PD0_SSI2XDAT1      0x0003000F
+
+#define GPIO_PD1_I2C7SDA        0x00030402
+#define GPIO_PD1_T0CCP1         0x00030403
+#define GPIO_PD1_C1O            0x00030405
+#define GPIO_PD1_SSI2XDAT0      0x0003040F
+
+#define GPIO_PD2_I2C8SCL        0x00030802
+#define GPIO_PD2_T1CCP0         0x00030803
+#define GPIO_PD2_C2O            0x00030805
+#define GPIO_PD2_SSI2FSS        0x0003080F
+
+#define GPIO_PD3_I2C8SDA        0x00030C02
+#define GPIO_PD3_T1CCP1         0x00030C03
+#define GPIO_PD3_SSI2CLK        0x00030C0F
+
+#define GPIO_PD4_U2RX           0x00031001
+#define GPIO_PD4_T3CCP0         0x00031003
+#define GPIO_PD4_SSI1XDAT2      0x0003100F
+
+#define GPIO_PD5_U2TX           0x00031401
+#define GPIO_PD5_T3CCP1         0x00031403
+#define GPIO_PD5_SSI1XDAT3      0x0003140F
+
+#define GPIO_PD6_U2RTS          0x00031801
+#define GPIO_PD6_T4CCP0         0x00031803
+#define GPIO_PD6_USB0EPEN       0x00031805
+#define GPIO_PD6_SSI2XDAT3      0x0003180F
+
+#define GPIO_PD7_U2CTS          0x00031C01
+#define GPIO_PD7_T4CCP1         0x00031C03
+#define GPIO_PD7_USB0PFLT       0x00031C05
+#define GPIO_PD7_NMI            0x00031C08
+#define GPIO_PD7_SSI2XDAT2      0x00031C0F
+
+#define GPIO_PE0_U1RTS          0x00040001
+
+#define GPIO_PE1_U1DSR          0x00040401
+
+#define GPIO_PE2_U1DCD          0x00040801
+
+#define GPIO_PE3_U1DTR          0x00040C01
+
+#define GPIO_PE4_U1RI           0x00041001
+#define GPIO_PE4_SSI1XDAT0      0x0004100F
+
+#define GPIO_PE5_SSI1XDAT1      0x0004140F
+
+#define GPIO_PE6_U0CTS          0x00041801
+#define GPIO_PE6_I2C9SCL        0x00041802
+
+#define GPIO_PE7_U0RTS          0x00041C01
+#define GPIO_PE7_I2C9SDA        0x00041C02
+#define GPIO_PE7_NMI            0x00041C08
+
+#define GPIO_PF0_M0PWM0         0x00050006
+#define GPIO_PF0_SSI3XDAT1      0x0005000E
+#define GPIO_PF0_TRD2           0x0005000F
+
+#define GPIO_PF1_M0PWM1         0x00050406
+#define GPIO_PF1_SSI3XDAT0      0x0005040E
+#define GPIO_PF1_TRD1           0x0005040F
+
+#define GPIO_PF2_M0PWM2         0x00050806
+#define GPIO_PF2_SSI3FSS        0x0005080E
+#define GPIO_PF2_TRD0           0x0005080F
+
+#define GPIO_PF3_M0PWM3         0x00050C06
+#define GPIO_PF3_SSI3CLK        0x00050C0E
+#define GPIO_PF3_TRCLK          0x00050C0F
+
+#define GPIO_PF4_M0FAULT0       0x00051006
+#define GPIO_PF4_SSI3XDAT2      0x0005100E
+#define GPIO_PF4_TRD3           0x0005100F
+
+#define GPIO_PF5_SSI3XDAT3      0x0005140E
+
+#define GPIO_PG0_I2C1SCL        0x00060002
+#define GPIO_PG0_M0PWM4         0x00060006
+#define GPIO_PG0_EPI0S11        0x0006000F
+
+#define GPIO_PG1_I2C1SDA        0x00060402
+#define GPIO_PG1_M0PWM5         0x00060406
+#define GPIO_PG1_EPI0S10        0x0006040F
+
+#define GPIO_PG2_I2C2SCL        0x00060802
+#define GPIO_PG2_SSI2XDAT3      0x0006080F
+
+#define GPIO_PG3_I2C2SDA        0x00060C02
+#define GPIO_PG3_SSI2XDAT2      0x00060C0F
+
+#define GPIO_PG4_U0CTS          0x00061001
+#define GPIO_PG4_I2C3SCL        0x00061002
+#define GPIO_PG4_SSI2XDAT1      0x0006100F
+
+#define GPIO_PG5_U0RTS          0x00061401
+#define GPIO_PG5_I2C3SDA        0x00061402
+#define GPIO_PG5_SSI2XDAT0      0x0006140F
+
+#define GPIO_PG6_I2C4SCL        0x00061802
+#define GPIO_PG6_SSI2FSS        0x0006180F
+
+#define GPIO_PG7_I2C4SDA        0x00061C02
+#define GPIO_PG7_SSI2CLK        0x00061C0F
+
+#define GPIO_PH0_U0RTS          0x00070001
+#define GPIO_PH0_EPI0S0         0x0007000F
+
+#define GPIO_PH1_U0CTS          0x00070401
+#define GPIO_PH1_EPI0S1         0x0007040F
+
+#define GPIO_PH2_U0DCD          0x00070801
+#define GPIO_PH2_EPI0S2         0x0007080F
+
+#define GPIO_PH3_U0DSR          0x00070C01
+#define GPIO_PH3_EPI0S3         0x00070C0F
+
+#define GPIO_PH4_U0DTR          0x00071001
+
+#define GPIO_PH5_U0RI           0x00071401
+
+#define GPIO_PH6_U5RX           0x00071801
+#define GPIO_PH6_U7RX           0x00071802
+
+#define GPIO_PH7_U5TX           0x00071C01
+#define GPIO_PH7_U7TX           0x00071C02
+
+#define GPIO_PJ0_U3RX           0x00080001
+
+#define GPIO_PJ1_U3TX           0x00080401
+
+#define GPIO_PJ2_U2RTS          0x00080801
+
+#define GPIO_PJ3_U2CTS          0x00080C01
+
+#define GPIO_PJ4_U3RTS          0x00081001
+
+#define GPIO_PJ5_U3CTS          0x00081401
+
+#define GPIO_PJ6_U4RTS          0x00081801
+
+#define GPIO_PJ7_U4CTS          0x00081C01
+
+#define GPIO_PK0_U4RX           0x00090001
+#define GPIO_PK0_EPI0S0         0x0009000F
+
+#define GPIO_PK1_U4TX           0x00090401
+#define GPIO_PK1_EPI0S1         0x0009040F
+
+#define GPIO_PK2_U4RTS          0x00090801
+#define GPIO_PK2_EPI0S2         0x0009080F
+
+#define GPIO_PK3_U4CTS          0x00090C01
+#define GPIO_PK3_EPI0S3         0x00090C0F
+
+#define GPIO_PK4_I2C3SCL        0x00091002
+#define GPIO_PK4_M0PWM6         0x00091006
+#define GPIO_PK4_EPI0S32        0x0009100F
+
+#define GPIO_PK5_I2C3SDA        0x00091402
+#define GPIO_PK5_M0PWM7         0x00091406
+#define GPIO_PK5_EPI0S31        0x0009140F
+
+#define GPIO_PK6_I2C4SCL        0x00091802
+#define GPIO_PK6_M0FAULT1       0x00091806
+#define GPIO_PK6_EPI0S25        0x0009180F
+
+#define GPIO_PK7_U0RI           0x00091C01
+#define GPIO_PK7_I2C4SDA        0x00091C02
+#define GPIO_PK7_RTCCLK         0x00091C05
+#define GPIO_PK7_M0FAULT2       0x00091C06
+#define GPIO_PK7_EPI0S24        0x00091C0F
+
+#define GPIO_PL0_I2C2SDA        0x000A0002
+#define GPIO_PL0_M0FAULT3       0x000A0006
+#define GPIO_PL0_USB0D0         0x000A000E
+#define GPIO_PL0_EPI0S16        0x000A000F
+
+#define GPIO_PL1_I2C2SCL        0x000A0402
+#define GPIO_PL1_PHA0           0x000A0406
+#define GPIO_PL1_USB0D1         0x000A040E
+#define GPIO_PL1_EPI0S17        0x000A040F
+
+#define GPIO_PL2_C0O            0x000A0805
+#define GPIO_PL2_PHB0           0x000A0806
+#define GPIO_PL2_USB0D2         0x000A080E
+#define GPIO_PL2_EPI0S18        0x000A080F
+
+#define GPIO_PL3_C1O            0x000A0C05
+#define GPIO_PL3_IDX0           0x000A0C06
+#define GPIO_PL3_USB0D3         0x000A0C0E
+#define GPIO_PL3_EPI0S19        0x000A0C0F
+
+#define GPIO_PL4_T0CCP0         0x000A1003
+#define GPIO_PL4_USB0D4         0x000A100E
+#define GPIO_PL4_EPI0S26        0x000A100F
+
+#define GPIO_PL5_T0CCP1         0x000A1403
+#define GPIO_PL5_EPI0S33        0x000A140F
+#define GPIO_PL5_USB0D5         0x000A140E
+
+#define GPIO_PL6_T1CCP0         0x000A1803
+
+#define GPIO_PL7_T1CCP1         0x000A1C03
+
+#define GPIO_PM0_T2CCP0         0x000B0003
+#define GPIO_PM0_EPI0S15        0x000B000F
+
+#define GPIO_PM1_T2CCP1         0x000B0403
+#define GPIO_PM1_EPI0S14        0x000B040F
+
+#define GPIO_PM2_T3CCP0         0x000B0803
+#define GPIO_PM2_EPI0S13        0x000B080F
+
+#define GPIO_PM3_T3CCP1         0x000B0C03
+#define GPIO_PM3_EPI0S12        0x000B0C0F
+
+#define GPIO_PM4_U0CTS          0x000B1001
+#define GPIO_PM4_T4CCP0         0x000B1003
+
+#define GPIO_PM5_U0DCD          0x000B1401
+#define GPIO_PM5_T4CCP1         0x000B1403
+
+#define GPIO_PM6_U0DSR          0x000B1801
+#define GPIO_PM6_T5CCP0         0x000B1803
+
+#define GPIO_PM7_U0RI           0x000B1C01
+#define GPIO_PM7_T5CCP1         0x000B1C03
+
+#define GPIO_PN0_U1RTS          0x000C0001
+
+#define GPIO_PN1_U1CTS          0x000C0401
+
+#define GPIO_PN2_U1DCD          0x000C0801
+#define GPIO_PN2_U2RTS          0x000C0802
+#define GPIO_PN2_EPI0S29        0x000C080F
+
+#define GPIO_PN3_U1DSR          0x000C0C01
+#define GPIO_PN3_U2CTS          0x000C0C02
+#define GPIO_PN3_EPI0S30        0x000C0C0F
+
+#define GPIO_PN4_U1DTR          0x000C1001
+#define GPIO_PN4_U3RTS          0x000C1002
+#define GPIO_PN4_I2C2SDA        0x000C1003
+#define GPIO_PN4_EPI0S34        0x000C100F
+
+#define GPIO_PN5_U1RI           0x000C1401
+#define GPIO_PN5_U3CTS          0x000C1402
+#define GPIO_PN5_I2C2SCL        0x000C1403
+#define GPIO_PN5_EPI0S35        0x000C140F
+
+#define GPIO_PN6_U4RTS          0x000C1802
+
+#define GPIO_PN7_U1RTS          0x000C1C01
+#define GPIO_PN7_U4CTS          0x000C1C02
+
+#define GPIO_PP0_U6RX           0x000D0001
+#define GPIO_PP0_T6CCP0         0x000D0005
+#define GPIO_PP0_SSI3XDAT2      0x000D000F
+
+#define GPIO_PP1_U6TX           0x000D0401
+#define GPIO_PP1_T6CCP1         0x000D0405
+#define GPIO_PP1_SSI3XDAT3      0x000D040F
+
+#define GPIO_PP2_U0DTR          0x000D0801
+#define GPIO_PP2_USB0NXT        0x000D080E
+#define GPIO_PP2_EPI0S29        0x000D080F
+
+#define GPIO_PP3_U1CTS          0x000D0C01
+#define GPIO_PP3_U0DCD          0x000D0C02
+#define GPIO_PP3_RTCCLK         0x000D0C07
+#define GPIO_PP3_USB0DIR        0x000D0C0E
+#define GPIO_PP3_EPI0S30        0x000D0C0F
+
+#define GPIO_PP4_U3RTS          0x000D1001
+#define GPIO_PP4_U0DSR          0x000D1002
+#define GPIO_PP4_USB0D7         0x000D100E
+
+#define GPIO_PP5_U3CTS          0x000D1401
+#define GPIO_PP5_I2C2SCL        0x000D1402
+#define GPIO_PP5_USB0D6         0x000D140E
+
+#define GPIO_PP6_U1DCD          0x000D1801
+#define GPIO_PP6_I2C2SDA        0x000D1802
+
+#define GPIO_PQ0_T6CCP0         0x000E0003
+#define GPIO_PQ0_SSI3CLK        0x000E000E
+#define GPIO_PQ0_EPI0S20        0x000E000F
+
+#define GPIO_PQ1_T6CCP1         0x000E0403
+#define GPIO_PQ1_SSI3FSS        0x000E040E
+#define GPIO_PQ1_EPI0S21        0x000E040F
+
+#define GPIO_PQ2_T7CCP0         0x000E0803
+#define GPIO_PQ2_SSI3XDAT0      0x000E080E
+#define GPIO_PQ2_EPI0S22        0x000E080F
+
+#define GPIO_PQ3_T7CCP1         0x000E0C03
+#define GPIO_PQ3_SSI3XDAT1      0x000E0C0E
+#define GPIO_PQ3_EPI0S23        0x000E0C0F
+
+#define GPIO_PQ4_U1RX           0x000E1001
+#define GPIO_PQ4_DIVSCLK        0x000E1007
+
+#define GPIO_PQ5_U1TX           0x000E1401
+
+#define GPIO_PQ6_U1DTR          0x000E1801
+
+#define GPIO_PQ7_U1RI           0x000E1C01
+
+#define GPIO_PR0_U4TX           0x000F0001
+#define GPIO_PR0_I2C1SCL        0x000F0002
+#define GPIO_PR0_M0PWM0         0x000F0006
+
+#define GPIO_PR1_U4RX           0x000F0401
+#define GPIO_PR1_I2C1SDA        0x000F0402
+#define GPIO_PR1_M0PWM1         0x000F0406
+
+#define GPIO_PR2_I2C2SCL        0x000F0802
+#define GPIO_PR2_M0PWM2         0x000F0806
+
+#define GPIO_PR3_I2C2SDA        0x000F0C02
+#define GPIO_PR3_M0PWM3         0x000F0C06
+
+#define GPIO_PR4_I2C3SCL        0x000F1002
+#define GPIO_PR4_T0CCP0         0x000F1003
+#define GPIO_PR4_M0PWM4         0x000F1006
+
+#define GPIO_PR5_U1RX           0x000F1401
+#define GPIO_PR5_I2C3SDA        0x000F1402
+#define GPIO_PR5_T0CCP1         0x000F1403
+#define GPIO_PR5_M0PWM5         0x000F1406
+
+#define GPIO_PR6_U1TX           0x000F1801
+#define GPIO_PR6_I2C4SCL        0x000F1802
+#define GPIO_PR6_T1CCP0         0x000F1803
+#define GPIO_PR6_M0PWM6         0x000F1806
+
+#define GPIO_PR7_I2C4SDA        0x000F1C02
+#define GPIO_PR7_T1CCP1         0x000F1C03
+#define GPIO_PR7_M0PWM7         0x000F1C06
+
+#define GPIO_PS0_T2CCP0         0x00100003
+#define GPIO_PS0_M0FAULT0       0x00100006
+
+#define GPIO_PS1_T2CCP1         0x00100403
+#define GPIO_PS1_M0FAULT1       0x00100406
+
+#define GPIO_PS2_U1DSR          0x00100801
+#define GPIO_PS2_T3CCP0         0x00100803
+#define GPIO_PS2_M0FAULT2       0x00100806
+
+#define GPIO_PS3_T3CCP1         0x00100C03
+#define GPIO_PS3_M0FAULT3       0x00100C06
+
+#define GPIO_PS4_T4CCP0         0x00101003
+#define GPIO_PS4_PHA0           0x00101006
+
+#define GPIO_PS5_T4CCP1         0x00101403
+#define GPIO_PS5_PHB0           0x00101406
+
+#define GPIO_PS6_T5CCP0         0x00101803
+#define GPIO_PS6_IDX0           0x00101806
+
+#define GPIO_PS7_T5CCP1         0x00101C03
+
+#define GPIO_PT0_T6CCP0         0x00110003
+#define GPIO_PT0_CAN0RX         0x00110007
+
+#define GPIO_PT1_T6CCP1         0x00110403
+#define GPIO_PT1_CAN0TX         0x00110407
+
+#define GPIO_PT2_T7CCP0         0x00110803
+#define GPIO_PT2_CAN1RX         0x00110807
+
+#define GPIO_PT3_T7CCP1         0x00110C03
+#define GPIO_PT3_CAN1TX         0x00110C07
+
+#endif // PART_TM4C1290NCZAD
+
+//*****************************************************************************
+//
+// TM4C1292NCPDT Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1292NCPDT
+
+#define GPIO_PA0_U0RX           0x00000001
+#define GPIO_PA0_I2C9SCL        0x00000002
+#define GPIO_PA0_T0CCP0         0x00000003
+#define GPIO_PA0_CAN0RX         0x00000007
+
+#define GPIO_PA1_U0TX           0x00000401
+#define GPIO_PA1_I2C9SDA        0x00000402
+#define GPIO_PA1_T0CCP1         0x00000403
+#define GPIO_PA1_CAN0TX         0x00000407
+
+#define GPIO_PA2_U4RX           0x00000801
+#define GPIO_PA2_I2C8SCL        0x00000802
+#define GPIO_PA2_T1CCP0         0x00000803
+#define GPIO_PA2_SSI0CLK        0x0000080F
+
+#define GPIO_PA3_U4TX           0x00000C01
+#define GPIO_PA3_I2C8SDA        0x00000C02
+#define GPIO_PA3_T1CCP1         0x00000C03
+#define GPIO_PA3_SSI0FSS        0x00000C0F
+
+#define GPIO_PA4_U3RX           0x00001001
+#define GPIO_PA4_T2CCP0         0x00001003
+#define GPIO_PA4_I2C7SCL        0x00001002
+#define GPIO_PA4_SSI0XDAT0      0x0000100F
+
+#define GPIO_PA5_U3TX           0x00001401
+#define GPIO_PA5_T2CCP1         0x00001403
+#define GPIO_PA5_I2C7SDA        0x00001402
+#define GPIO_PA5_SSI0XDAT1      0x0000140F
+
+#define GPIO_PA6_U2RX           0x00001801
+#define GPIO_PA6_I2C6SCL        0x00001802
+#define GPIO_PA6_T3CCP0         0x00001803
+#define GPIO_PA6_USB0EPEN       0x00001805
+#define GPIO_PA6_SSI0XDAT2      0x0000180D
+#define GPIO_PA6_EN0RXCK        0x0000180E
+#define GPIO_PA6_EPI0S8         0x0000180F
+
+#define GPIO_PA7_U2TX           0x00001C01
+#define GPIO_PA7_I2C6SDA        0x00001C02
+#define GPIO_PA7_T3CCP1         0x00001C03
+#define GPIO_PA7_USB0PFLT       0x00001C05
+#define GPIO_PA7_USB0EPEN       0x00001C0B
+#define GPIO_PA7_SSI0XDAT3      0x00001C0D
+#define GPIO_PA7_EPI0S9         0x00001C0F
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_I2C5SCL        0x00010002
+#define GPIO_PB0_CAN1RX         0x00010007
+#define GPIO_PB0_T4CCP0         0x00010003
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_I2C5SDA        0x00010402
+#define GPIO_PB1_CAN1TX         0x00010407
+#define GPIO_PB1_T4CCP1         0x00010403
+
+#define GPIO_PB2_T5CCP0         0x00010803
+#define GPIO_PB2_I2C0SCL        0x00010802
+#define GPIO_PB2_EN0MDC         0x00010805
+#define GPIO_PB2_USB0STP        0x0001080E
+#define GPIO_PB2_EPI0S27        0x0001080F
+
+#define GPIO_PB3_I2C0SDA        0x00010C02
+#define GPIO_PB3_T5CCP1         0x00010C03
+#define GPIO_PB3_EN0MDIO        0x00010C05
+#define GPIO_PB3_USB0CLK        0x00010C0E
+#define GPIO_PB3_EPI0S28        0x00010C0F
+
+#define GPIO_PB4_U0CTS          0x00011001
+#define GPIO_PB4_I2C5SCL        0x00011002
+#define GPIO_PB4_SSI1FSS        0x0001100F
+
+#define GPIO_PB5_U0RTS          0x00011401
+#define GPIO_PB5_I2C5SDA        0x00011402
+#define GPIO_PB5_SSI1CLK        0x0001140F
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+
+#define GPIO_PC2_TDI            0x00020801
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+
+#define GPIO_PC4_U7RX           0x00021001
+#define GPIO_PC4_EPI0S7         0x0002100F
+
+#define GPIO_PC5_U7TX           0x00021401
+#define GPIO_PC5_RTCCLK         0x00021407
+#define GPIO_PC5_EPI0S6         0x0002140F
+
+#define GPIO_PC6_U5RX           0x00021801
+#define GPIO_PC6_EPI0S5         0x0002180F
+
+#define GPIO_PC7_U5TX           0x00021C01
+#define GPIO_PC7_EPI0S4         0x00021C0F
+
+#define GPIO_PD0_I2C7SCL        0x00030002
+#define GPIO_PD0_T0CCP0         0x00030003
+#define GPIO_PD0_C0O            0x00030005
+#define GPIO_PD0_SSI2XDAT1      0x0003000F
+
+#define GPIO_PD1_I2C7SDA        0x00030402
+#define GPIO_PD1_T0CCP1         0x00030403
+#define GPIO_PD1_C1O            0x00030405
+#define GPIO_PD1_SSI2XDAT0      0x0003040F
+
+#define GPIO_PD2_I2C8SCL        0x00030802
+#define GPIO_PD2_T1CCP0         0x00030803
+#define GPIO_PD2_C2O            0x00030805
+#define GPIO_PD2_SSI2FSS        0x0003080F
+
+#define GPIO_PD3_I2C8SDA        0x00030C02
+#define GPIO_PD3_T1CCP1         0x00030C03
+#define GPIO_PD3_SSI2CLK        0x00030C0F
+
+#define GPIO_PD4_U2RX           0x00031001
+#define GPIO_PD4_T3CCP0         0x00031003
+#define GPIO_PD4_SSI1XDAT2      0x0003100F
+
+#define GPIO_PD5_U2TX           0x00031401
+#define GPIO_PD5_T3CCP1         0x00031403
+#define GPIO_PD5_SSI1XDAT3      0x0003140F
+
+#define GPIO_PD6_U2RTS          0x00031801
+#define GPIO_PD6_T4CCP0         0x00031803
+#define GPIO_PD6_USB0EPEN       0x00031805
+#define GPIO_PD6_SSI2XDAT3      0x0003180F
+
+#define GPIO_PD7_U2CTS          0x00031C01
+#define GPIO_PD7_T4CCP1         0x00031C03
+#define GPIO_PD7_USB0PFLT       0x00031C05
+#define GPIO_PD7_NMI            0x00031C08
+#define GPIO_PD7_SSI2XDAT2      0x00031C0F
+
+#define GPIO_PE0_U1RTS          0x00040001
+
+#define GPIO_PE1_U1DSR          0x00040401
+
+#define GPIO_PE2_U1DCD          0x00040801
+
+#define GPIO_PE3_U1DTR          0x00040C01
+
+#define GPIO_PE4_U1RI           0x00041001
+#define GPIO_PE4_SSI1XDAT0      0x0004100F
+
+#define GPIO_PE5_SSI1XDAT1      0x0004140F
+
+#define GPIO_PF0_M0PWM0         0x00050006
+#define GPIO_PF0_SSI3XDAT1      0x0005000E
+#define GPIO_PF0_TRD2           0x0005000F
+
+#define GPIO_PF1_M0PWM1         0x00050406
+#define GPIO_PF1_SSI3XDAT0      0x0005040E
+#define GPIO_PF1_TRD1           0x0005040F
+
+#define GPIO_PF2_EN0MDC         0x00050805
+#define GPIO_PF2_M0PWM2         0x00050806
+#define GPIO_PF2_SSI3FSS        0x0005080E
+#define GPIO_PF2_TRD0           0x0005080F
+
+#define GPIO_PF3_EN0MDIO        0x00050C05
+#define GPIO_PF3_M0PWM3         0x00050C06
+#define GPIO_PF3_SSI3CLK        0x00050C0E
+#define GPIO_PF3_TRCLK          0x00050C0F
+
+#define GPIO_PF4_M0FAULT0       0x00051006
+#define GPIO_PF4_SSI3XDAT2      0x0005100E
+#define GPIO_PF4_TRD3           0x0005100F
+
+#define GPIO_PG0_I2C1SCL        0x00060002
+#define GPIO_PG0_M0PWM4         0x00060006
+#define GPIO_PG0_EPI0S11        0x0006000F
+
+#define GPIO_PG1_I2C1SDA        0x00060402
+#define GPIO_PG1_M0PWM5         0x00060406
+#define GPIO_PG1_EPI0S10        0x0006040F
+
+#define GPIO_PG2_I2C2SCL        0x00060802
+#define GPIO_PG2_EN0TXCK        0x0006080E
+#define GPIO_PG2_SSI2XDAT3      0x0006080F
+
+#define GPIO_PG3_I2C2SDA        0x00060C02
+#define GPIO_PG3_EN0TXEN        0x00060C0E
+#define GPIO_PG3_SSI2XDAT2      0x00060C0F
+
+#define GPIO_PG4_U0CTS          0x00061001
+#define GPIO_PG4_I2C3SCL        0x00061002
+#define GPIO_PG4_EN0TXD0        0x0006100E
+#define GPIO_PG4_SSI2XDAT1      0x0006100F
+
+#define GPIO_PG5_U0RTS          0x00061401
+#define GPIO_PG5_I2C3SDA        0x00061402
+#define GPIO_PG5_EN0TXD1        0x0006140E
+#define GPIO_PG5_SSI2XDAT0      0x0006140F
+
+#define GPIO_PG6_I2C4SCL        0x00061802
+#define GPIO_PG6_EN0RXER        0x0006180E
+#define GPIO_PG6_SSI2FSS        0x0006180F
+
+#define GPIO_PG7_I2C4SDA        0x00061C02
+#define GPIO_PG7_EN0RXDV        0x00061C0E
+#define GPIO_PG7_SSI2CLK        0x00061C0F
+
+#define GPIO_PH0_U0RTS          0x00070001
+#define GPIO_PH0_EPI0S0         0x0007000F
+
+#define GPIO_PH1_U0CTS          0x00070401
+#define GPIO_PH1_EPI0S1         0x0007040F
+
+#define GPIO_PH2_U0DCD          0x00070801
+#define GPIO_PH2_EPI0S2         0x0007080F
+
+#define GPIO_PH3_U0DSR          0x00070C01
+#define GPIO_PH3_EPI0S3         0x00070C0F
+
+#define GPIO_PJ0_U3RX           0x00080001
+
+#define GPIO_PJ1_U3TX           0x00080401
+
+#define GPIO_PK0_U4RX           0x00090001
+#define GPIO_PK0_EPI0S0         0x0009000F
+
+#define GPIO_PK1_U4TX           0x00090401
+#define GPIO_PK1_EPI0S1         0x0009040F
+
+#define GPIO_PK2_U4RTS          0x00090801
+#define GPIO_PK2_EPI0S2         0x0009080F
+
+#define GPIO_PK3_U4CTS          0x00090C01
+#define GPIO_PK3_EPI0S3         0x00090C0F
+
+#define GPIO_PK4_I2C3SCL        0x00091002
+#define GPIO_PK4_M0PWM6         0x00091006
+#define GPIO_PK4_EN0INTRN       0x00091007
+#define GPIO_PK4_EN0RXD3        0x0009100E
+#define GPIO_PK4_EPI0S32        0x0009100F
+
+#define GPIO_PK5_I2C3SDA        0x00091402
+#define GPIO_PK5_M0PWM7         0x00091406
+#define GPIO_PK5_EN0RXD2        0x0009140E
+#define GPIO_PK5_EPI0S31        0x0009140F
+
+#define GPIO_PK6_I2C4SCL        0x00091802
+#define GPIO_PK6_M0FAULT1       0x00091806
+#define GPIO_PK6_EN0TXD2        0x0009180E
+#define GPIO_PK6_EPI0S25        0x0009180F
+
+#define GPIO_PK7_U0RI           0x00091C01
+#define GPIO_PK7_I2C4SDA        0x00091C02
+#define GPIO_PK7_RTCCLK         0x00091C05
+#define GPIO_PK7_M0FAULT2       0x00091C06
+#define GPIO_PK7_EN0TXD3        0x00091C0E
+#define GPIO_PK7_EPI0S24        0x00091C0F
+
+#define GPIO_PL0_I2C2SDA        0x000A0002
+#define GPIO_PL0_M0FAULT3       0x000A0006
+#define GPIO_PL0_USB0D0         0x000A000E
+#define GPIO_PL0_EPI0S16        0x000A000F
+
+#define GPIO_PL1_I2C2SCL        0x000A0402
+#define GPIO_PL1_PHA0           0x000A0406
+#define GPIO_PL1_USB0D1         0x000A040E
+#define GPIO_PL1_EPI0S17        0x000A040F
+
+#define GPIO_PL2_C0O            0x000A0805
+#define GPIO_PL2_PHB0           0x000A0806
+#define GPIO_PL2_USB0D2         0x000A080E
+#define GPIO_PL2_EPI0S18        0x000A080F
+
+#define GPIO_PL3_C1O            0x000A0C05
+#define GPIO_PL3_IDX0           0x000A0C06
+#define GPIO_PL3_USB0D3         0x000A0C0E
+#define GPIO_PL3_EPI0S19        0x000A0C0F
+
+#define GPIO_PL4_T0CCP0         0x000A1003
+#define GPIO_PL4_USB0D4         0x000A100E
+#define GPIO_PL4_EPI0S26        0x000A100F
+
+#define GPIO_PL5_T0CCP1         0x000A1403
+#define GPIO_PL5_EPI0S33        0x000A140F
+#define GPIO_PL5_USB0D5         0x000A140E
+
+#define GPIO_PL6_T1CCP0         0x000A1803
+
+#define GPIO_PL7_T1CCP1         0x000A1C03
+
+#define GPIO_PM0_T2CCP0         0x000B0003
+#define GPIO_PM0_EPI0S15        0x000B000F
+
+#define GPIO_PM1_T2CCP1         0x000B0403
+#define GPIO_PM1_EPI0S14        0x000B040F
+
+#define GPIO_PM2_T3CCP0         0x000B0803
+#define GPIO_PM2_EPI0S13        0x000B080F
+
+#define GPIO_PM3_T3CCP1         0x000B0C03
+#define GPIO_PM3_EPI0S12        0x000B0C0F
+
+#define GPIO_PM4_U0CTS          0x000B1001
+#define GPIO_PM4_T4CCP0         0x000B1003
+#define GPIO_PM4_EN0RREF_CLK    0x000B100E
+
+#define GPIO_PM5_U0DCD          0x000B1401
+#define GPIO_PM5_T4CCP1         0x000B1403
+
+#define GPIO_PM6_U0DSR          0x000B1801
+#define GPIO_PM6_T5CCP0         0x000B1803
+#define GPIO_PM6_EN0CRS         0x000B180E
+
+#define GPIO_PM7_U0RI           0x000B1C01
+#define GPIO_PM7_T5CCP1         0x000B1C03
+#define GPIO_PM7_EN0COL         0x000B1C0E
+
+#define GPIO_PN0_U1RTS          0x000C0001
+
+#define GPIO_PN1_U1CTS          0x000C0401
+
+#define GPIO_PN2_U1DCD          0x000C0801
+#define GPIO_PN2_U2RTS          0x000C0802
+#define GPIO_PN2_EPI0S29        0x000C080F
+
+#define GPIO_PN3_U1DSR          0x000C0C01
+#define GPIO_PN3_U2CTS          0x000C0C02
+#define GPIO_PN3_EPI0S30        0x000C0C0F
+
+#define GPIO_PN4_U1DTR          0x000C1001
+#define GPIO_PN4_U3RTS          0x000C1002
+#define GPIO_PN4_I2C2SDA        0x000C1003
+#define GPIO_PN4_EPI0S34        0x000C100F
+
+#define GPIO_PN5_U1RI           0x000C1401
+#define GPIO_PN5_U3CTS          0x000C1402
+#define GPIO_PN5_I2C2SCL        0x000C1403
+#define GPIO_PN5_EPI0S35        0x000C140F
+
+#define GPIO_PP0_U6RX           0x000D0001
+#define GPIO_PP0_EN0INTRN       0x000D0007
+#define GPIO_PP0_SSI3XDAT2      0x000D000F
+
+#define GPIO_PP1_U6TX           0x000D0401
+#define GPIO_PP1_SSI3XDAT3      0x000D040F
+
+#define GPIO_PP2_U0DTR          0x000D0801
+#define GPIO_PP2_USB0NXT        0x000D080E
+#define GPIO_PP2_EPI0S29        0x000D080F
+
+#define GPIO_PP3_U1CTS          0x000D0C01
+#define GPIO_PP3_U0DCD          0x000D0C02
+#define GPIO_PP3_RTCCLK         0x000D0C07
+#define GPIO_PP3_USB0DIR        0x000D0C0E
+#define GPIO_PP3_EPI0S30        0x000D0C0F
+
+#define GPIO_PP4_U3RTS          0x000D1001
+#define GPIO_PP4_U0DSR          0x000D1002
+#define GPIO_PP4_USB0D7         0x000D100E
+
+#define GPIO_PP5_U3CTS          0x000D1401
+#define GPIO_PP5_I2C2SCL        0x000D1402
+#define GPIO_PP5_USB0D6         0x000D140E
+
+#define GPIO_PQ0_SSI3CLK        0x000E000E
+#define GPIO_PQ0_EPI0S20        0x000E000F
+
+#define GPIO_PQ1_SSI3FSS        0x000E040E
+#define GPIO_PQ1_EPI0S21        0x000E040F
+
+#define GPIO_PQ2_SSI3XDAT0      0x000E080E
+#define GPIO_PQ2_EPI0S22        0x000E080F
+
+#define GPIO_PQ3_SSI3XDAT1      0x000E0C0E
+#define GPIO_PQ3_EPI0S23        0x000E0C0F
+
+#define GPIO_PQ4_U1RX           0x000E1001
+#define GPIO_PQ4_DIVSCLK        0x000E1007
+
+#define GPIO_PQ5_U1TX           0x000E1401
+#define GPIO_PQ5_EN0RXD0        0x000E140E
+
+#define GPIO_PQ6_U1DTR          0x000E1801
+#define GPIO_PQ6_EN0RXD1        0x000E180E
+
+#endif // PART_TM4C1292NCPDT
+
+//*****************************************************************************
+//
+// TM4C1292NCZAD Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1292NCZAD
+
+#define GPIO_PA0_U0RX           0x00000001
+#define GPIO_PA0_I2C9SCL        0x00000002
+#define GPIO_PA0_T0CCP0         0x00000003
+#define GPIO_PA0_CAN0RX         0x00000007
+
+#define GPIO_PA1_U0TX           0x00000401
+#define GPIO_PA1_I2C9SDA        0x00000402
+#define GPIO_PA1_T0CCP1         0x00000403
+#define GPIO_PA1_CAN0TX         0x00000407
+
+#define GPIO_PA2_U4RX           0x00000801
+#define GPIO_PA2_I2C8SCL        0x00000802
+#define GPIO_PA2_T1CCP0         0x00000803
+#define GPIO_PA2_SSI0CLK        0x0000080F
+
+#define GPIO_PA3_U4TX           0x00000C01
+#define GPIO_PA3_I2C8SDA        0x00000C02
+#define GPIO_PA3_T1CCP1         0x00000C03
+#define GPIO_PA3_SSI0FSS        0x00000C0F
+
+#define GPIO_PA4_U3RX           0x00001001
+#define GPIO_PA4_T2CCP0         0x00001003
+#define GPIO_PA4_I2C7SCL        0x00001002
+#define GPIO_PA4_SSI0XDAT0      0x0000100F
+
+#define GPIO_PA5_U3TX           0x00001401
+#define GPIO_PA5_T2CCP1         0x00001403
+#define GPIO_PA5_I2C7SDA        0x00001402
+#define GPIO_PA5_SSI0XDAT1      0x0000140F
+
+#define GPIO_PA6_U2RX           0x00001801
+#define GPIO_PA6_I2C6SCL        0x00001802
+#define GPIO_PA6_T3CCP0         0x00001803
+#define GPIO_PA6_USB0EPEN       0x00001805
+#define GPIO_PA6_SSI0XDAT2      0x0000180D
+#define GPIO_PA6_EN0RXCK        0x0000180E
+#define GPIO_PA6_EPI0S8         0x0000180F
+
+#define GPIO_PA7_U2TX           0x00001C01
+#define GPIO_PA7_I2C6SDA        0x00001C02
+#define GPIO_PA7_T3CCP1         0x00001C03
+#define GPIO_PA7_USB0PFLT       0x00001C05
+#define GPIO_PA7_USB0EPEN       0x00001C0B
+#define GPIO_PA7_SSI0XDAT3      0x00001C0D
+#define GPIO_PA7_EPI0S9         0x00001C0F
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_I2C5SCL        0x00010002
+#define GPIO_PB0_CAN1RX         0x00010007
+#define GPIO_PB0_T4CCP0         0x00010003
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_I2C5SDA        0x00010402
+#define GPIO_PB1_CAN1TX         0x00010407
+#define GPIO_PB1_T4CCP1         0x00010403
+
+#define GPIO_PB2_T5CCP0         0x00010803
+#define GPIO_PB2_I2C0SCL        0x00010802
+#define GPIO_PB2_EN0MDC         0x00010805
+#define GPIO_PB2_USB0STP        0x0001080E
+#define GPIO_PB2_EPI0S27        0x0001080F
+
+#define GPIO_PB3_I2C0SDA        0x00010C02
+#define GPIO_PB3_T5CCP1         0x00010C03
+#define GPIO_PB3_EN0MDIO        0x00010C05
+#define GPIO_PB3_USB0CLK        0x00010C0E
+#define GPIO_PB3_EPI0S28        0x00010C0F
+
+#define GPIO_PB4_U0CTS          0x00011001
+#define GPIO_PB4_I2C5SCL        0x00011002
+#define GPIO_PB4_SSI1FSS        0x0001100F
+
+#define GPIO_PB5_U0RTS          0x00011401
+#define GPIO_PB5_I2C5SDA        0x00011402
+#define GPIO_PB5_SSI1CLK        0x0001140F
+
+#define GPIO_PB6_I2C6SCL        0x00011802
+#define GPIO_PB6_T6CCP0         0x00011803
+
+#define GPIO_PB7_I2C6SDA        0x00011C02
+#define GPIO_PB7_T6CCP1         0x00011C03
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+
+#define GPIO_PC2_TDI            0x00020801
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+
+#define GPIO_PC4_U7RX           0x00021001
+#define GPIO_PC4_T7CCP0         0x00021003
+#define GPIO_PC4_EPI0S7         0x0002100F
+
+#define GPIO_PC5_U7TX           0x00021401
+#define GPIO_PC5_T7CCP1         0x00021403
+#define GPIO_PC5_RTCCLK         0x00021407
+#define GPIO_PC5_EPI0S6         0x0002140F
+
+#define GPIO_PC6_U5RX           0x00021801
+#define GPIO_PC6_EPI0S5         0x0002180F
+
+#define GPIO_PC7_U5TX           0x00021C01
+#define GPIO_PC7_EPI0S4         0x00021C0F
+
+#define GPIO_PD0_I2C7SCL        0x00030002
+#define GPIO_PD0_T0CCP0         0x00030003
+#define GPIO_PD0_C0O            0x00030005
+#define GPIO_PD0_SSI2XDAT1      0x0003000F
+
+#define GPIO_PD1_I2C7SDA        0x00030402
+#define GPIO_PD1_T0CCP1         0x00030403
+#define GPIO_PD1_C1O            0x00030405
+#define GPIO_PD1_SSI2XDAT0      0x0003040F
+
+#define GPIO_PD2_I2C8SCL        0x00030802
+#define GPIO_PD2_T1CCP0         0x00030803
+#define GPIO_PD2_C2O            0x00030805
+#define GPIO_PD2_SSI2FSS        0x0003080F
+
+#define GPIO_PD3_I2C8SDA        0x00030C02
+#define GPIO_PD3_T1CCP1         0x00030C03
+#define GPIO_PD3_SSI2CLK        0x00030C0F
+
+#define GPIO_PD4_U2RX           0x00031001
+#define GPIO_PD4_T3CCP0         0x00031003
+#define GPIO_PD4_SSI1XDAT2      0x0003100F
+
+#define GPIO_PD5_U2TX           0x00031401
+#define GPIO_PD5_T3CCP1         0x00031403
+#define GPIO_PD5_SSI1XDAT3      0x0003140F
+
+#define GPIO_PD6_U2RTS          0x00031801
+#define GPIO_PD6_T4CCP0         0x00031803
+#define GPIO_PD6_USB0EPEN       0x00031805
+#define GPIO_PD6_SSI2XDAT3      0x0003180F
+
+#define GPIO_PD7_U2CTS          0x00031C01
+#define GPIO_PD7_T4CCP1         0x00031C03
+#define GPIO_PD7_USB0PFLT       0x00031C05
+#define GPIO_PD7_NMI            0x00031C08
+#define GPIO_PD7_SSI2XDAT2      0x00031C0F
+
+#define GPIO_PE0_U1RTS          0x00040001
+
+#define GPIO_PE1_U1DSR          0x00040401
+
+#define GPIO_PE2_U1DCD          0x00040801
+
+#define GPIO_PE3_U1DTR          0x00040C01
+
+#define GPIO_PE4_U1RI           0x00041001
+#define GPIO_PE4_SSI1XDAT0      0x0004100F
+
+#define GPIO_PE5_SSI1XDAT1      0x0004140F
+
+#define GPIO_PE6_U0CTS          0x00041801
+#define GPIO_PE6_I2C9SCL        0x00041802
+
+#define GPIO_PE7_U0RTS          0x00041C01
+#define GPIO_PE7_I2C9SDA        0x00041C02
+#define GPIO_PE7_NMI            0x00041C08
+
+#define GPIO_PF0_M0PWM0         0x00050006
+#define GPIO_PF0_SSI3XDAT1      0x0005000E
+#define GPIO_PF0_TRD2           0x0005000F
+
+#define GPIO_PF1_M0PWM1         0x00050406
+#define GPIO_PF1_SSI3XDAT0      0x0005040E
+#define GPIO_PF1_TRD1           0x0005040F
+
+#define GPIO_PF2_EN0MDC         0x00050805
+#define GPIO_PF2_M0PWM2         0x00050806
+#define GPIO_PF2_SSI3FSS        0x0005080E
+#define GPIO_PF2_TRD0           0x0005080F
+
+#define GPIO_PF3_EN0MDIO        0x00050C05
+#define GPIO_PF3_M0PWM3         0x00050C06
+#define GPIO_PF3_SSI3CLK        0x00050C0E
+#define GPIO_PF3_TRCLK          0x00050C0F
+
+#define GPIO_PF4_M0FAULT0       0x00051006
+#define GPIO_PF4_SSI3XDAT2      0x0005100E
+#define GPIO_PF4_TRD3           0x0005100F
+
+#define GPIO_PF5_SSI3XDAT3      0x0005140E
+
+#define GPIO_PG0_I2C1SCL        0x00060002
+#define GPIO_PG0_M0PWM4         0x00060006
+#define GPIO_PG0_EPI0S11        0x0006000F
+
+#define GPIO_PG1_I2C1SDA        0x00060402
+#define GPIO_PG1_M0PWM5         0x00060406
+#define GPIO_PG1_EPI0S10        0x0006040F
+
+#define GPIO_PG2_I2C2SCL        0x00060802
+#define GPIO_PG2_EN0TXCK        0x0006080E
+#define GPIO_PG2_SSI2XDAT3      0x0006080F
+
+#define GPIO_PG3_I2C2SDA        0x00060C02
+#define GPIO_PG3_EN0TXEN        0x00060C0E
+#define GPIO_PG3_SSI2XDAT2      0x00060C0F
+
+#define GPIO_PG4_U0CTS          0x00061001
+#define GPIO_PG4_I2C3SCL        0x00061002
+#define GPIO_PG4_EN0TXD0        0x0006100E
+#define GPIO_PG4_SSI2XDAT1      0x0006100F
+
+#define GPIO_PG5_U0RTS          0x00061401
+#define GPIO_PG5_I2C3SDA        0x00061402
+#define GPIO_PG5_EN0TXD1        0x0006140E
+#define GPIO_PG5_SSI2XDAT0      0x0006140F
+
+#define GPIO_PG6_I2C4SCL        0x00061802
+#define GPIO_PG6_EN0RXER        0x0006180E
+#define GPIO_PG6_SSI2FSS        0x0006180F
+
+#define GPIO_PG7_I2C4SDA        0x00061C02
+#define GPIO_PG7_EN0RXDV        0x00061C0E
+#define GPIO_PG7_SSI2CLK        0x00061C0F
+
+#define GPIO_PH0_U0RTS          0x00070001
+#define GPIO_PH0_EPI0S0         0x0007000F
+
+#define GPIO_PH1_U0CTS          0x00070401
+#define GPIO_PH1_EPI0S1         0x0007040F
+
+#define GPIO_PH2_U0DCD          0x00070801
+#define GPIO_PH2_EPI0S2         0x0007080F
+
+#define GPIO_PH3_U0DSR          0x00070C01
+#define GPIO_PH3_EPI0S3         0x00070C0F
+
+#define GPIO_PH4_U0DTR          0x00071001
+
+#define GPIO_PH5_U0RI           0x00071401
+
+#define GPIO_PH6_U5RX           0x00071801
+#define GPIO_PH6_U7RX           0x00071802
+
+#define GPIO_PH7_U5TX           0x00071C01
+#define GPIO_PH7_U7TX           0x00071C02
+
+#define GPIO_PJ0_U3RX           0x00080001
+
+#define GPIO_PJ1_U3TX           0x00080401
+
+#define GPIO_PJ2_U2RTS          0x00080801
+
+#define GPIO_PJ3_U2CTS          0x00080C01
+
+#define GPIO_PJ4_U3RTS          0x00081001
+
+#define GPIO_PJ5_U3CTS          0x00081401
+
+#define GPIO_PJ6_U4RTS          0x00081801
+
+#define GPIO_PJ7_U4CTS          0x00081C01
+
+#define GPIO_PK0_U4RX           0x00090001
+#define GPIO_PK0_EPI0S0         0x0009000F
+
+#define GPIO_PK1_U4TX           0x00090401
+#define GPIO_PK1_EPI0S1         0x0009040F
+
+#define GPIO_PK2_U4RTS          0x00090801
+#define GPIO_PK2_EPI0S2         0x0009080F
+
+#define GPIO_PK3_U4CTS          0x00090C01
+#define GPIO_PK3_EPI0S3         0x00090C0F
+
+#define GPIO_PK4_I2C3SCL        0x00091002
+#define GPIO_PK4_M0PWM6         0x00091006
+#define GPIO_PK4_EN0INTRN       0x00091007
+#define GPIO_PK4_EN0RXD3        0x0009100E
+#define GPIO_PK4_EPI0S32        0x0009100F
+
+#define GPIO_PK5_I2C3SDA        0x00091402
+#define GPIO_PK5_M0PWM7         0x00091406
+#define GPIO_PK5_EN0RXD2        0x0009140E
+#define GPIO_PK5_EPI0S31        0x0009140F
+
+#define GPIO_PK6_I2C4SCL        0x00091802
+#define GPIO_PK6_M0FAULT1       0x00091806
+#define GPIO_PK6_EN0TXD2        0x0009180E
+#define GPIO_PK6_EPI0S25        0x0009180F
+
+#define GPIO_PK7_U0RI           0x00091C01
+#define GPIO_PK7_I2C4SDA        0x00091C02
+#define GPIO_PK7_RTCCLK         0x00091C05
+#define GPIO_PK7_M0FAULT2       0x00091C06
+#define GPIO_PK7_EN0TXD3        0x00091C0E
+#define GPIO_PK7_EPI0S24        0x00091C0F
+
+#define GPIO_PL0_I2C2SDA        0x000A0002
+#define GPIO_PL0_M0FAULT3       0x000A0006
+#define GPIO_PL0_USB0D0         0x000A000E
+#define GPIO_PL0_EPI0S16        0x000A000F
+
+#define GPIO_PL1_I2C2SCL        0x000A0402
+#define GPIO_PL1_PHA0           0x000A0406
+#define GPIO_PL1_USB0D1         0x000A040E
+#define GPIO_PL1_EPI0S17        0x000A040F
+
+#define GPIO_PL2_C0O            0x000A0805
+#define GPIO_PL2_PHB0           0x000A0806
+#define GPIO_PL2_USB0D2         0x000A080E
+#define GPIO_PL2_EPI0S18        0x000A080F
+
+#define GPIO_PL3_C1O            0x000A0C05
+#define GPIO_PL3_IDX0           0x000A0C06
+#define GPIO_PL3_USB0D3         0x000A0C0E
+#define GPIO_PL3_EPI0S19        0x000A0C0F
+
+#define GPIO_PL4_T0CCP0         0x000A1003
+#define GPIO_PL4_USB0D4         0x000A100E
+#define GPIO_PL4_EPI0S26        0x000A100F
+
+#define GPIO_PL5_T0CCP1         0x000A1403
+#define GPIO_PL5_EPI0S33        0x000A140F
+#define GPIO_PL5_USB0D5         0x000A140E
+
+#define GPIO_PL6_T1CCP0         0x000A1803
+
+#define GPIO_PL7_T1CCP1         0x000A1C03
+
+#define GPIO_PM0_T2CCP0         0x000B0003
+#define GPIO_PM0_EPI0S15        0x000B000F
+
+#define GPIO_PM1_T2CCP1         0x000B0403
+#define GPIO_PM1_EPI0S14        0x000B040F
+
+#define GPIO_PM2_T3CCP0         0x000B0803
+#define GPIO_PM2_EPI0S13        0x000B080F
+
+#define GPIO_PM3_T3CCP1         0x000B0C03
+#define GPIO_PM3_EPI0S12        0x000B0C0F
+
+#define GPIO_PM4_U0CTS          0x000B1001
+#define GPIO_PM4_T4CCP0         0x000B1003
+#define GPIO_PM4_EN0RREF_CLK    0x000B100E
+
+#define GPIO_PM5_U0DCD          0x000B1401
+#define GPIO_PM5_T4CCP1         0x000B1403
+
+#define GPIO_PM6_U0DSR          0x000B1801
+#define GPIO_PM6_T5CCP0         0x000B1803
+#define GPIO_PM6_EN0CRS         0x000B180E
+
+#define GPIO_PM7_U0RI           0x000B1C01
+#define GPIO_PM7_T5CCP1         0x000B1C03
+#define GPIO_PM7_EN0COL         0x000B1C0E
+
+#define GPIO_PN0_U1RTS          0x000C0001
+
+#define GPIO_PN1_U1CTS          0x000C0401
+
+#define GPIO_PN2_U1DCD          0x000C0801
+#define GPIO_PN2_U2RTS          0x000C0802
+#define GPIO_PN2_EPI0S29        0x000C080F
+
+#define GPIO_PN3_U1DSR          0x000C0C01
+#define GPIO_PN3_U2CTS          0x000C0C02
+#define GPIO_PN3_EPI0S30        0x000C0C0F
+
+#define GPIO_PN4_U1DTR          0x000C1001
+#define GPIO_PN4_U3RTS          0x000C1002
+#define GPIO_PN4_I2C2SDA        0x000C1003
+#define GPIO_PN4_EPI0S34        0x000C100F
+
+#define GPIO_PN5_U1RI           0x000C1401
+#define GPIO_PN5_U3CTS          0x000C1402
+#define GPIO_PN5_I2C2SCL        0x000C1403
+#define GPIO_PN5_EPI0S35        0x000C140F
+
+#define GPIO_PN6_U4RTS          0x000C1802
+#define GPIO_PN6_EN0TXER        0x000C180E
+
+#define GPIO_PN7_U1RTS          0x000C1C01
+#define GPIO_PN7_U4CTS          0x000C1C02
+
+#define GPIO_PP0_U6RX           0x000D0001
+#define GPIO_PP0_T6CCP0         0x000D0005
+#define GPIO_PP0_EN0INTRN       0x000D0007
+#define GPIO_PP0_SSI3XDAT2      0x000D000F
+
+#define GPIO_PP1_U6TX           0x000D0401
+#define GPIO_PP1_T6CCP1         0x000D0405
+#define GPIO_PP1_SSI3XDAT3      0x000D040F
+
+#define GPIO_PP2_U0DTR          0x000D0801
+#define GPIO_PP2_USB0NXT        0x000D080E
+#define GPIO_PP2_EPI0S29        0x000D080F
+
+#define GPIO_PP3_U1CTS          0x000D0C01
+#define GPIO_PP3_U0DCD          0x000D0C02
+#define GPIO_PP3_RTCCLK         0x000D0C07
+#define GPIO_PP3_USB0DIR        0x000D0C0E
+#define GPIO_PP3_EPI0S30        0x000D0C0F
+
+#define GPIO_PP4_U3RTS          0x000D1001
+#define GPIO_PP4_U0DSR          0x000D1002
+#define GPIO_PP4_USB0D7         0x000D100E
+
+#define GPIO_PP5_U3CTS          0x000D1401
+#define GPIO_PP5_I2C2SCL        0x000D1402
+#define GPIO_PP5_USB0D6         0x000D140E
+
+#define GPIO_PP6_U1DCD          0x000D1801
+#define GPIO_PP6_I2C2SDA        0x000D1802
+
+#define GPIO_PQ0_T6CCP0         0x000E0003
+#define GPIO_PQ0_SSI3CLK        0x000E000E
+#define GPIO_PQ0_EPI0S20        0x000E000F
+
+#define GPIO_PQ1_T6CCP1         0x000E0403
+#define GPIO_PQ1_SSI3FSS        0x000E040E
+#define GPIO_PQ1_EPI0S21        0x000E040F
+
+#define GPIO_PQ2_T7CCP0         0x000E0803
+#define GPIO_PQ2_SSI3XDAT0      0x000E080E
+#define GPIO_PQ2_EPI0S22        0x000E080F
+
+#define GPIO_PQ3_T7CCP1         0x000E0C03
+#define GPIO_PQ3_SSI3XDAT1      0x000E0C0E
+#define GPIO_PQ3_EPI0S23        0x000E0C0F
+
+#define GPIO_PQ4_U1RX           0x000E1001
+#define GPIO_PQ4_DIVSCLK        0x000E1007
+
+#define GPIO_PQ5_U1TX           0x000E1401
+#define GPIO_PQ5_EN0RXD0        0x000E140E
+
+#define GPIO_PQ6_U1DTR          0x000E1801
+#define GPIO_PQ6_EN0RXD1        0x000E180E
+
+#define GPIO_PQ7_U1RI           0x000E1C01
+
+#define GPIO_PR0_U4TX           0x000F0001
+#define GPIO_PR0_I2C1SCL        0x000F0002
+#define GPIO_PR0_M0PWM0         0x000F0006
+
+#define GPIO_PR1_U4RX           0x000F0401
+#define GPIO_PR1_I2C1SDA        0x000F0402
+#define GPIO_PR1_M0PWM1         0x000F0406
+
+#define GPIO_PR2_I2C2SCL        0x000F0802
+#define GPIO_PR2_M0PWM2         0x000F0806
+
+#define GPIO_PR3_I2C2SDA        0x000F0C02
+#define GPIO_PR3_M0PWM3         0x000F0C06
+
+#define GPIO_PR4_I2C3SCL        0x000F1002
+#define GPIO_PR4_T0CCP0         0x000F1003
+#define GPIO_PR4_M0PWM4         0x000F1006
+
+#define GPIO_PR5_U1RX           0x000F1401
+#define GPIO_PR5_I2C3SDA        0x000F1402
+#define GPIO_PR5_T0CCP1         0x000F1403
+#define GPIO_PR5_M0PWM5         0x000F1406
+
+#define GPIO_PR6_U1TX           0x000F1801
+#define GPIO_PR6_I2C4SCL        0x000F1802
+#define GPIO_PR6_T1CCP0         0x000F1803
+#define GPIO_PR6_M0PWM6         0x000F1806
+
+#define GPIO_PR7_I2C4SDA        0x000F1C02
+#define GPIO_PR7_T1CCP1         0x000F1C03
+#define GPIO_PR7_M0PWM7         0x000F1C06
+#define GPIO_PR7_EN0TXEN        0x000F1C0E
+
+#define GPIO_PS0_T2CCP0         0x00100003
+#define GPIO_PS0_M0FAULT0       0x00100006
+
+#define GPIO_PS1_T2CCP1         0x00100403
+#define GPIO_PS1_M0FAULT1       0x00100406
+
+#define GPIO_PS2_U1DSR          0x00100801
+#define GPIO_PS2_T3CCP0         0x00100803
+#define GPIO_PS2_M0FAULT2       0x00100806
+
+#define GPIO_PS3_T3CCP1         0x00100C03
+#define GPIO_PS3_M0FAULT3       0x00100C06
+
+#define GPIO_PS4_T4CCP0         0x00101003
+#define GPIO_PS4_PHA0           0x00101006
+#define GPIO_PS4_EN0TXD0        0x0010100E
+
+#define GPIO_PS5_T4CCP1         0x00101403
+#define GPIO_PS5_PHB0           0x00101406
+#define GPIO_PS5_EN0TXD1        0x0010140E
+
+#define GPIO_PS6_T5CCP0         0x00101803
+#define GPIO_PS6_IDX0           0x00101806
+#define GPIO_PS6_EN0RXER        0x0010180E
+
+#define GPIO_PS7_T5CCP1         0x00101C03
+#define GPIO_PS7_EN0RXDV        0x00101C0E
+
+#define GPIO_PT0_T6CCP0         0x00110003
+#define GPIO_PT0_CAN0RX         0x00110007
+#define GPIO_PT0_EN0RXD0        0x0011000E
+
+#define GPIO_PT1_T6CCP1         0x00110403
+#define GPIO_PT1_CAN0TX         0x00110407
+#define GPIO_PT1_EN0RXD1        0x0011040E
+
+#define GPIO_PT2_T7CCP0         0x00110803
+#define GPIO_PT2_CAN1RX         0x00110807
+
+#define GPIO_PT3_T7CCP1         0x00110C03
+#define GPIO_PT3_CAN1TX         0x00110C07
+
+#endif // PART_TM4C1292NCZAD
+
+//*****************************************************************************
+//
+// TM4C1294KCPDT Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1294KCPDT
+
+#define GPIO_PA0_U0RX           0x00000001
+#define GPIO_PA0_I2C9SCL        0x00000002
+#define GPIO_PA0_T0CCP0         0x00000003
+#define GPIO_PA0_CAN0RX         0x00000007
+
+#define GPIO_PA1_U0TX           0x00000401
+#define GPIO_PA1_I2C9SDA        0x00000402
+#define GPIO_PA1_T0CCP1         0x00000403
+#define GPIO_PA1_CAN0TX         0x00000407
+
+#define GPIO_PA2_U4RX           0x00000801
+#define GPIO_PA2_I2C8SCL        0x00000802
+#define GPIO_PA2_T1CCP0         0x00000803
+#define GPIO_PA2_SSI0CLK        0x0000080F
+
+#define GPIO_PA3_U4TX           0x00000C01
+#define GPIO_PA3_I2C8SDA        0x00000C02
+#define GPIO_PA3_T1CCP1         0x00000C03
+#define GPIO_PA3_SSI0FSS        0x00000C0F
+
+#define GPIO_PA4_U3RX           0x00001001
+#define GPIO_PA4_T2CCP0         0x00001003
+#define GPIO_PA4_I2C7SCL        0x00001002
+#define GPIO_PA4_SSI0XDAT0      0x0000100F
+
+#define GPIO_PA5_U3TX           0x00001401
+#define GPIO_PA5_T2CCP1         0x00001403
+#define GPIO_PA5_I2C7SDA        0x00001402
+#define GPIO_PA5_SSI0XDAT1      0x0000140F
+
+#define GPIO_PA6_U2RX           0x00001801
+#define GPIO_PA6_I2C6SCL        0x00001802
+#define GPIO_PA6_T3CCP0         0x00001803
+#define GPIO_PA6_USB0EPEN       0x00001805
+#define GPIO_PA6_SSI0XDAT2      0x0000180D
+#define GPIO_PA6_EPI0S8         0x0000180F
+
+#define GPIO_PA7_U2TX           0x00001C01
+#define GPIO_PA7_I2C6SDA        0x00001C02
+#define GPIO_PA7_T3CCP1         0x00001C03
+#define GPIO_PA7_USB0PFLT       0x00001C05
+#define GPIO_PA7_USB0EPEN       0x00001C0B
+#define GPIO_PA7_SSI0XDAT3      0x00001C0D
+#define GPIO_PA7_EPI0S9         0x00001C0F
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_I2C5SCL        0x00010002
+#define GPIO_PB0_CAN1RX         0x00010007
+#define GPIO_PB0_T4CCP0         0x00010003
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_I2C5SDA        0x00010402
+#define GPIO_PB1_CAN1TX         0x00010407
+#define GPIO_PB1_T4CCP1         0x00010403
+
+#define GPIO_PB2_T5CCP0         0x00010803
+#define GPIO_PB2_I2C0SCL        0x00010802
+#define GPIO_PB2_USB0STP        0x0001080E
+#define GPIO_PB2_EPI0S27        0x0001080F
+
+#define GPIO_PB3_I2C0SDA        0x00010C02
+#define GPIO_PB3_T5CCP1         0x00010C03
+#define GPIO_PB3_USB0CLK        0x00010C0E
+#define GPIO_PB3_EPI0S28        0x00010C0F
+
+#define GPIO_PB4_U0CTS          0x00011001
+#define GPIO_PB4_I2C5SCL        0x00011002
+#define GPIO_PB4_SSI1FSS        0x0001100F
+
+#define GPIO_PB5_U0RTS          0x00011401
+#define GPIO_PB5_I2C5SDA        0x00011402
+#define GPIO_PB5_SSI1CLK        0x0001140F
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+
+#define GPIO_PC2_TDI            0x00020801
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+
+#define GPIO_PC4_U7RX           0x00021001
+#define GPIO_PC4_EPI0S7         0x0002100F
+
+#define GPIO_PC5_U7TX           0x00021401
+#define GPIO_PC5_RTCCLK         0x00021407
+#define GPIO_PC5_EPI0S6         0x0002140F
+
+#define GPIO_PC6_U5RX           0x00021801
+#define GPIO_PC6_EPI0S5         0x0002180F
+
+#define GPIO_PC7_U5TX           0x00021C01
+#define GPIO_PC7_EPI0S4         0x00021C0F
+
+#define GPIO_PD0_I2C7SCL        0x00030002
+#define GPIO_PD0_T0CCP0         0x00030003
+#define GPIO_PD0_C0O            0x00030005
+#define GPIO_PD0_SSI2XDAT1      0x0003000F
+
+#define GPIO_PD1_I2C7SDA        0x00030402
+#define GPIO_PD1_T0CCP1         0x00030403
+#define GPIO_PD1_C1O            0x00030405
+#define GPIO_PD1_SSI2XDAT0      0x0003040F
+
+#define GPIO_PD2_I2C8SCL        0x00030802
+#define GPIO_PD2_T1CCP0         0x00030803
+#define GPIO_PD2_C2O            0x00030805
+#define GPIO_PD2_SSI2FSS        0x0003080F
+
+#define GPIO_PD3_I2C8SDA        0x00030C02
+#define GPIO_PD3_T1CCP1         0x00030C03
+#define GPIO_PD3_SSI2CLK        0x00030C0F
+
+#define GPIO_PD4_U2RX           0x00031001
+#define GPIO_PD4_T3CCP0         0x00031003
+#define GPIO_PD4_SSI1XDAT2      0x0003100F
+
+#define GPIO_PD5_U2TX           0x00031401
+#define GPIO_PD5_T3CCP1         0x00031403
+#define GPIO_PD5_SSI1XDAT3      0x0003140F
+
+#define GPIO_PD6_U2RTS          0x00031801
+#define GPIO_PD6_T4CCP0         0x00031803
+#define GPIO_PD6_USB0EPEN       0x00031805
+#define GPIO_PD6_SSI2XDAT3      0x0003180F
+
+#define GPIO_PD7_U2CTS          0x00031C01
+#define GPIO_PD7_T4CCP1         0x00031C03
+#define GPIO_PD7_USB0PFLT       0x00031C05
+#define GPIO_PD7_NMI            0x00031C08
+#define GPIO_PD7_SSI2XDAT2      0x00031C0F
+
+#define GPIO_PE0_U1RTS          0x00040001
+
+#define GPIO_PE1_U1DSR          0x00040401
+
+#define GPIO_PE2_U1DCD          0x00040801
+
+#define GPIO_PE3_U1DTR          0x00040C01
+
+#define GPIO_PE4_U1RI           0x00041001
+#define GPIO_PE4_SSI1XDAT0      0x0004100F
+
+#define GPIO_PE5_SSI1XDAT1      0x0004140F
+
+#define GPIO_PF0_EN0LED0        0x00050005
+#define GPIO_PF0_M0PWM0         0x00050006
+#define GPIO_PF0_SSI3XDAT1      0x0005000E
+#define GPIO_PF0_TRD2           0x0005000F
+
+#define GPIO_PF1_EN0LED2        0x00050405
+#define GPIO_PF1_M0PWM1         0x00050406
+#define GPIO_PF1_SSI3XDAT0      0x0005040E
+#define GPIO_PF1_TRD1           0x0005040F
+
+#define GPIO_PF2_M0PWM2         0x00050806
+#define GPIO_PF2_SSI3FSS        0x0005080E
+#define GPIO_PF2_TRD0           0x0005080F
+
+#define GPIO_PF3_M0PWM3         0x00050C06
+#define GPIO_PF3_SSI3CLK        0x00050C0E
+#define GPIO_PF3_TRCLK          0x00050C0F
+
+#define GPIO_PF4_EN0LED1        0x00051005
+#define GPIO_PF4_M0FAULT0       0x00051006
+#define GPIO_PF4_SSI3XDAT2      0x0005100E
+#define GPIO_PF4_TRD3           0x0005100F
+
+#define GPIO_PG0_I2C1SCL        0x00060002
+#define GPIO_PG0_EN0PPS         0x00060005
+#define GPIO_PG0_M0PWM4         0x00060006
+#define GPIO_PG0_EPI0S11        0x0006000F
+
+#define GPIO_PG1_I2C1SDA        0x00060402
+#define GPIO_PG1_M0PWM5         0x00060406
+#define GPIO_PG1_EPI0S10        0x0006040F
+
+#define GPIO_PH0_U0RTS          0x00070001
+#define GPIO_PH0_EPI0S0         0x0007000F
+
+#define GPIO_PH1_U0CTS          0x00070401
+#define GPIO_PH1_EPI0S1         0x0007040F
+
+#define GPIO_PH2_U0DCD          0x00070801
+#define GPIO_PH2_EPI0S2         0x0007080F
+
+#define GPIO_PH3_U0DSR          0x00070C01
+#define GPIO_PH3_EPI0S3         0x00070C0F
+
+#define GPIO_PJ0_U3RX           0x00080001
+#define GPIO_PJ0_EN0PPS         0x00080005
+
+#define GPIO_PJ1_U3TX           0x00080401
+
+#define GPIO_PK0_U4RX           0x00090001
+#define GPIO_PK0_EPI0S0         0x0009000F
+
+#define GPIO_PK1_U4TX           0x00090401
+#define GPIO_PK1_EPI0S1         0x0009040F
+
+#define GPIO_PK2_U4RTS          0x00090801
+#define GPIO_PK2_EPI0S2         0x0009080F
+
+#define GPIO_PK3_U4CTS          0x00090C01
+#define GPIO_PK3_EPI0S3         0x00090C0F
+
+#define GPIO_PK4_I2C3SCL        0x00091002
+#define GPIO_PK4_EN0LED0        0x00091005
+#define GPIO_PK4_M0PWM6         0x00091006
+#define GPIO_PK4_EPI0S32        0x0009100F
+
+#define GPIO_PK5_I2C3SDA        0x00091402
+#define GPIO_PK5_EN0LED2        0x00091405
+#define GPIO_PK5_M0PWM7         0x00091406
+#define GPIO_PK5_EPI0S31        0x0009140F
+
+#define GPIO_PK6_I2C4SCL        0x00091802
+#define GPIO_PK6_EN0LED1        0x00091805
+#define GPIO_PK6_M0FAULT1       0x00091806
+#define GPIO_PK6_EPI0S25        0x0009180F
+
+#define GPIO_PK7_U0RI           0x00091C01
+#define GPIO_PK7_I2C4SDA        0x00091C02
+#define GPIO_PK7_RTCCLK         0x00091C05
+#define GPIO_PK7_M0FAULT2       0x00091C06
+#define GPIO_PK7_EPI0S24        0x00091C0F
+
+#define GPIO_PL0_I2C2SDA        0x000A0002
+#define GPIO_PL0_M0FAULT3       0x000A0006
+#define GPIO_PL0_USB0D0         0x000A000E
+#define GPIO_PL0_EPI0S16        0x000A000F
+
+#define GPIO_PL1_I2C2SCL        0x000A0402
+#define GPIO_PL1_PHA0           0x000A0406
+#define GPIO_PL1_USB0D1         0x000A040E
+#define GPIO_PL1_EPI0S17        0x000A040F
+
+#define GPIO_PL2_C0O            0x000A0805
+#define GPIO_PL2_PHB0           0x000A0806
+#define GPIO_PL2_USB0D2         0x000A080E
+#define GPIO_PL2_EPI0S18        0x000A080F
+
+#define GPIO_PL3_C1O            0x000A0C05
+#define GPIO_PL3_IDX0           0x000A0C06
+#define GPIO_PL3_USB0D3         0x000A0C0E
+#define GPIO_PL3_EPI0S19        0x000A0C0F
+
+#define GPIO_PL4_T0CCP0         0x000A1003
+#define GPIO_PL4_USB0D4         0x000A100E
+#define GPIO_PL4_EPI0S26        0x000A100F
+
+#define GPIO_PL5_T0CCP1         0x000A1403
+#define GPIO_PL5_EPI0S33        0x000A140F
+#define GPIO_PL5_USB0D5         0x000A140E
+
+#define GPIO_PL6_T1CCP0         0x000A1803
+
+#define GPIO_PL7_T1CCP1         0x000A1C03
+
+#define GPIO_PM0_T2CCP0         0x000B0003
+#define GPIO_PM0_EPI0S15        0x000B000F
+
+#define GPIO_PM1_T2CCP1         0x000B0403
+#define GPIO_PM1_EPI0S14        0x000B040F
+
+#define GPIO_PM2_T3CCP0         0x000B0803
+#define GPIO_PM2_EPI0S13        0x000B080F
+
+#define GPIO_PM3_T3CCP1         0x000B0C03
+#define GPIO_PM3_EPI0S12        0x000B0C0F
+
+#define GPIO_PM4_U0CTS          0x000B1001
+#define GPIO_PM4_T4CCP0         0x000B1003
+
+#define GPIO_PM5_U0DCD          0x000B1401
+#define GPIO_PM5_T4CCP1         0x000B1403
+
+#define GPIO_PM6_U0DSR          0x000B1801
+#define GPIO_PM6_T5CCP0         0x000B1803
+
+#define GPIO_PM7_U0RI           0x000B1C01
+#define GPIO_PM7_T5CCP1         0x000B1C03
+
+#define GPIO_PN0_U1RTS          0x000C0001
+
+#define GPIO_PN1_U1CTS          0x000C0401
+
+#define GPIO_PN2_U1DCD          0x000C0801
+#define GPIO_PN2_U2RTS          0x000C0802
+#define GPIO_PN2_EPI0S29        0x000C080F
+
+#define GPIO_PN3_U1DSR          0x000C0C01
+#define GPIO_PN3_U2CTS          0x000C0C02
+#define GPIO_PN3_EPI0S30        0x000C0C0F
+
+#define GPIO_PN4_U1DTR          0x000C1001
+#define GPIO_PN4_U3RTS          0x000C1002
+#define GPIO_PN4_I2C2SDA        0x000C1003
+#define GPIO_PN4_EPI0S34        0x000C100F
+
+#define GPIO_PN5_U1RI           0x000C1401
+#define GPIO_PN5_U3CTS          0x000C1402
+#define GPIO_PN5_I2C2SCL        0x000C1403
+#define GPIO_PN5_EPI0S35        0x000C140F
+
+#define GPIO_PP0_U6RX           0x000D0001
+#define GPIO_PP0_SSI3XDAT2      0x000D000F
+
+#define GPIO_PP1_U6TX           0x000D0401
+#define GPIO_PP1_SSI3XDAT3      0x000D040F
+
+#define GPIO_PP2_U0DTR          0x000D0801
+#define GPIO_PP2_USB0NXT        0x000D080E
+#define GPIO_PP2_EPI0S29        0x000D080F
+
+#define GPIO_PP3_U1CTS          0x000D0C01
+#define GPIO_PP3_U0DCD          0x000D0C02
+#define GPIO_PP3_RTCCLK         0x000D0C07
+#define GPIO_PP3_USB0DIR        0x000D0C0E
+#define GPIO_PP3_EPI0S30        0x000D0C0F
+
+#define GPIO_PP4_U3RTS          0x000D1001
+#define GPIO_PP4_U0DSR          0x000D1002
+#define GPIO_PP4_USB0D7         0x000D100E
+
+#define GPIO_PP5_U3CTS          0x000D1401
+#define GPIO_PP5_I2C2SCL        0x000D1402
+#define GPIO_PP5_USB0D6         0x000D140E
+
+#define GPIO_PQ0_SSI3CLK        0x000E000E
+#define GPIO_PQ0_EPI0S20        0x000E000F
+
+#define GPIO_PQ1_SSI3FSS        0x000E040E
+#define GPIO_PQ1_EPI0S21        0x000E040F
+
+#define GPIO_PQ2_SSI3XDAT0      0x000E080E
+#define GPIO_PQ2_EPI0S22        0x000E080F
+
+#define GPIO_PQ3_SSI3XDAT1      0x000E0C0E
+#define GPIO_PQ3_EPI0S23        0x000E0C0F
+
+#define GPIO_PQ4_U1RX           0x000E1001
+#define GPIO_PQ4_DIVSCLK        0x000E1007
+
+#endif // PART_TM4C1294KCPDT
+
+//*****************************************************************************
+//
+// TM4C1294NCPDT Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1294NCPDT
+
+#define GPIO_PA0_U0RX           0x00000001
+#define GPIO_PA0_I2C9SCL        0x00000002
+#define GPIO_PA0_T0CCP0         0x00000003
+#define GPIO_PA0_CAN0RX         0x00000007
+
+#define GPIO_PA1_U0TX           0x00000401
+#define GPIO_PA1_I2C9SDA        0x00000402
+#define GPIO_PA1_T0CCP1         0x00000403
+#define GPIO_PA1_CAN0TX         0x00000407
+
+#define GPIO_PA2_U4RX           0x00000801
+#define GPIO_PA2_I2C8SCL        0x00000802
+#define GPIO_PA2_T1CCP0         0x00000803
+#define GPIO_PA2_SSI0CLK        0x0000080F
+
+#define GPIO_PA3_U4TX           0x00000C01
+#define GPIO_PA3_I2C8SDA        0x00000C02
+#define GPIO_PA3_T1CCP1         0x00000C03
+#define GPIO_PA3_SSI0FSS        0x00000C0F
+
+#define GPIO_PA4_U3RX           0x00001001
+#define GPIO_PA4_T2CCP0         0x00001003
+#define GPIO_PA4_I2C7SCL        0x00001002
+#define GPIO_PA4_SSI0XDAT0      0x0000100F
+
+#define GPIO_PA5_U3TX           0x00001401
+#define GPIO_PA5_T2CCP1         0x00001403
+#define GPIO_PA5_I2C7SDA        0x00001402
+#define GPIO_PA5_SSI0XDAT1      0x0000140F
+
+#define GPIO_PA6_U2RX           0x00001801
+#define GPIO_PA6_I2C6SCL        0x00001802
+#define GPIO_PA6_T3CCP0         0x00001803
+#define GPIO_PA6_USB0EPEN       0x00001805
+#define GPIO_PA6_SSI0XDAT2      0x0000180D
+#define GPIO_PA6_EPI0S8         0x0000180F
+
+#define GPIO_PA7_U2TX           0x00001C01
+#define GPIO_PA7_I2C6SDA        0x00001C02
+#define GPIO_PA7_T3CCP1         0x00001C03
+#define GPIO_PA7_USB0PFLT       0x00001C05
+#define GPIO_PA7_USB0EPEN       0x00001C0B
+#define GPIO_PA7_SSI0XDAT3      0x00001C0D
+#define GPIO_PA7_EPI0S9         0x00001C0F
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_I2C5SCL        0x00010002
+#define GPIO_PB0_CAN1RX         0x00010007
+#define GPIO_PB0_T4CCP0         0x00010003
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_I2C5SDA        0x00010402
+#define GPIO_PB1_CAN1TX         0x00010407
+#define GPIO_PB1_T4CCP1         0x00010403
+
+#define GPIO_PB2_T5CCP0         0x00010803
+#define GPIO_PB2_I2C0SCL        0x00010802
+#define GPIO_PB2_USB0STP        0x0001080E
+#define GPIO_PB2_EPI0S27        0x0001080F
+
+#define GPIO_PB3_I2C0SDA        0x00010C02
+#define GPIO_PB3_T5CCP1         0x00010C03
+#define GPIO_PB3_USB0CLK        0x00010C0E
+#define GPIO_PB3_EPI0S28        0x00010C0F
+
+#define GPIO_PB4_U0CTS          0x00011001
+#define GPIO_PB4_I2C5SCL        0x00011002
+#define GPIO_PB4_SSI1FSS        0x0001100F
+
+#define GPIO_PB5_U0RTS          0x00011401
+#define GPIO_PB5_I2C5SDA        0x00011402
+#define GPIO_PB5_SSI1CLK        0x0001140F
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+
+#define GPIO_PC2_TDI            0x00020801
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+
+#define GPIO_PC4_U7RX           0x00021001
+#define GPIO_PC4_EPI0S7         0x0002100F
+
+#define GPIO_PC5_U7TX           0x00021401
+#define GPIO_PC5_RTCCLK         0x00021407
+#define GPIO_PC5_EPI0S6         0x0002140F
+
+#define GPIO_PC6_U5RX           0x00021801
+#define GPIO_PC6_EPI0S5         0x0002180F
+
+#define GPIO_PC7_U5TX           0x00021C01
+#define GPIO_PC7_EPI0S4         0x00021C0F
+
+#define GPIO_PD0_I2C7SCL        0x00030002
+#define GPIO_PD0_T0CCP0         0x00030003
+#define GPIO_PD0_C0O            0x00030005
+#define GPIO_PD0_SSI2XDAT1      0x0003000F
+
+#define GPIO_PD1_I2C7SDA        0x00030402
+#define GPIO_PD1_T0CCP1         0x00030403
+#define GPIO_PD1_C1O            0x00030405
+#define GPIO_PD1_SSI2XDAT0      0x0003040F
+
+#define GPIO_PD2_I2C8SCL        0x00030802
+#define GPIO_PD2_T1CCP0         0x00030803
+#define GPIO_PD2_C2O            0x00030805
+#define GPIO_PD2_SSI2FSS        0x0003080F
+
+#define GPIO_PD3_I2C8SDA        0x00030C02
+#define GPIO_PD3_T1CCP1         0x00030C03
+#define GPIO_PD3_SSI2CLK        0x00030C0F
+
+#define GPIO_PD4_U2RX           0x00031001
+#define GPIO_PD4_T3CCP0         0x00031003
+#define GPIO_PD4_SSI1XDAT2      0x0003100F
+
+#define GPIO_PD5_U2TX           0x00031401
+#define GPIO_PD5_T3CCP1         0x00031403
+#define GPIO_PD5_SSI1XDAT3      0x0003140F
+
+#define GPIO_PD6_U2RTS          0x00031801
+#define GPIO_PD6_T4CCP0         0x00031803
+#define GPIO_PD6_USB0EPEN       0x00031805
+#define GPIO_PD6_SSI2XDAT3      0x0003180F
+
+#define GPIO_PD7_U2CTS          0x00031C01
+#define GPIO_PD7_T4CCP1         0x00031C03
+#define GPIO_PD7_USB0PFLT       0x00031C05
+#define GPIO_PD7_NMI            0x00031C08
+#define GPIO_PD7_SSI2XDAT2      0x00031C0F
+
+#define GPIO_PE0_U1RTS          0x00040001
+
+#define GPIO_PE1_U1DSR          0x00040401
+
+#define GPIO_PE2_U1DCD          0x00040801
+
+#define GPIO_PE3_U1DTR          0x00040C01
+
+#define GPIO_PE4_U1RI           0x00041001
+#define GPIO_PE4_SSI1XDAT0      0x0004100F
+
+#define GPIO_PE5_SSI1XDAT1      0x0004140F
+
+#define GPIO_PF0_EN0LED0        0x00050005
+#define GPIO_PF0_M0PWM0         0x00050006
+#define GPIO_PF0_SSI3XDAT1      0x0005000E
+#define GPIO_PF0_TRD2           0x0005000F
+
+#define GPIO_PF1_EN0LED2        0x00050405
+#define GPIO_PF1_M0PWM1         0x00050406
+#define GPIO_PF1_SSI3XDAT0      0x0005040E
+#define GPIO_PF1_TRD1           0x0005040F
+
+#define GPIO_PF2_M0PWM2         0x00050806
+#define GPIO_PF2_SSI3FSS        0x0005080E
+#define GPIO_PF2_TRD0           0x0005080F
+
+#define GPIO_PF3_M0PWM3         0x00050C06
+#define GPIO_PF3_SSI3CLK        0x00050C0E
+#define GPIO_PF3_TRCLK          0x00050C0F
+
+#define GPIO_PF4_EN0LED1        0x00051005
+#define GPIO_PF4_M0FAULT0       0x00051006
+#define GPIO_PF4_SSI3XDAT2      0x0005100E
+#define GPIO_PF4_TRD3           0x0005100F
+
+#define GPIO_PG0_I2C1SCL        0x00060002
+#define GPIO_PG0_EN0PPS         0x00060005
+#define GPIO_PG0_M0PWM4         0x00060006
+#define GPIO_PG0_EPI0S11        0x0006000F
+
+#define GPIO_PG1_I2C1SDA        0x00060402
+#define GPIO_PG1_M0PWM5         0x00060406
+#define GPIO_PG1_EPI0S10        0x0006040F
+
+#define GPIO_PH0_U0RTS          0x00070001
+#define GPIO_PH0_EPI0S0         0x0007000F
+
+#define GPIO_PH1_U0CTS          0x00070401
+#define GPIO_PH1_EPI0S1         0x0007040F
+
+#define GPIO_PH2_U0DCD          0x00070801
+#define GPIO_PH2_EPI0S2         0x0007080F
+
+#define GPIO_PH3_U0DSR          0x00070C01
+#define GPIO_PH3_EPI0S3         0x00070C0F
+
+#define GPIO_PJ0_U3RX           0x00080001
+#define GPIO_PJ0_EN0PPS         0x00080005
+
+#define GPIO_PJ1_U3TX           0x00080401
+
+#define GPIO_PK0_U4RX           0x00090001
+#define GPIO_PK0_EPI0S0         0x0009000F
+
+#define GPIO_PK1_U4TX           0x00090401
+#define GPIO_PK1_EPI0S1         0x0009040F
+
+#define GPIO_PK2_U4RTS          0x00090801
+#define GPIO_PK2_EPI0S2         0x0009080F
+
+#define GPIO_PK3_U4CTS          0x00090C01
+#define GPIO_PK3_EPI0S3         0x00090C0F
+
+#define GPIO_PK4_I2C3SCL        0x00091002
+#define GPIO_PK4_EN0LED0        0x00091005
+#define GPIO_PK4_M0PWM6         0x00091006
+#define GPIO_PK4_EPI0S32        0x0009100F
+
+#define GPIO_PK5_I2C3SDA        0x00091402
+#define GPIO_PK5_EN0LED2        0x00091405
+#define GPIO_PK5_M0PWM7         0x00091406
+#define GPIO_PK5_EPI0S31        0x0009140F
+
+#define GPIO_PK6_I2C4SCL        0x00091802
+#define GPIO_PK6_EN0LED1        0x00091805
+#define GPIO_PK6_M0FAULT1       0x00091806
+#define GPIO_PK6_EPI0S25        0x0009180F
+
+#define GPIO_PK7_U0RI           0x00091C01
+#define GPIO_PK7_I2C4SDA        0x00091C02
+#define GPIO_PK7_RTCCLK         0x00091C05
+#define GPIO_PK7_M0FAULT2       0x00091C06
+#define GPIO_PK7_EPI0S24        0x00091C0F
+
+#define GPIO_PL0_I2C2SDA        0x000A0002
+#define GPIO_PL0_M0FAULT3       0x000A0006
+#define GPIO_PL0_USB0D0         0x000A000E
+#define GPIO_PL0_EPI0S16        0x000A000F
+
+#define GPIO_PL1_I2C2SCL        0x000A0402
+#define GPIO_PL1_PHA0           0x000A0406
+#define GPIO_PL1_USB0D1         0x000A040E
+#define GPIO_PL1_EPI0S17        0x000A040F
+
+#define GPIO_PL2_C0O            0x000A0805
+#define GPIO_PL2_PHB0           0x000A0806
+#define GPIO_PL2_USB0D2         0x000A080E
+#define GPIO_PL2_EPI0S18        0x000A080F
+
+#define GPIO_PL3_C1O            0x000A0C05
+#define GPIO_PL3_IDX0           0x000A0C06
+#define GPIO_PL3_USB0D3         0x000A0C0E
+#define GPIO_PL3_EPI0S19        0x000A0C0F
+
+#define GPIO_PL4_T0CCP0         0x000A1003
+#define GPIO_PL4_USB0D4         0x000A100E
+#define GPIO_PL4_EPI0S26        0x000A100F
+
+#define GPIO_PL5_T0CCP1         0x000A1403
+#define GPIO_PL5_EPI0S33        0x000A140F
+#define GPIO_PL5_USB0D5         0x000A140E
+
+#define GPIO_PL6_T1CCP0         0x000A1803
+
+#define GPIO_PL7_T1CCP1         0x000A1C03
+
+#define GPIO_PM0_T2CCP0         0x000B0003
+#define GPIO_PM0_EPI0S15        0x000B000F
+
+#define GPIO_PM1_T2CCP1         0x000B0403
+#define GPIO_PM1_EPI0S14        0x000B040F
+
+#define GPIO_PM2_T3CCP0         0x000B0803
+#define GPIO_PM2_EPI0S13        0x000B080F
+
+#define GPIO_PM3_T3CCP1         0x000B0C03
+#define GPIO_PM3_EPI0S12        0x000B0C0F
+
+#define GPIO_PM4_U0CTS          0x000B1001
+#define GPIO_PM4_T4CCP0         0x000B1003
+
+#define GPIO_PM5_U0DCD          0x000B1401
+#define GPIO_PM5_T4CCP1         0x000B1403
+
+#define GPIO_PM6_U0DSR          0x000B1801
+#define GPIO_PM6_T5CCP0         0x000B1803
+
+#define GPIO_PM7_U0RI           0x000B1C01
+#define GPIO_PM7_T5CCP1         0x000B1C03
+
+#define GPIO_PN0_U1RTS          0x000C0001
+
+#define GPIO_PN1_U1CTS          0x000C0401
+
+#define GPIO_PN2_U1DCD          0x000C0801
+#define GPIO_PN2_U2RTS          0x000C0802
+#define GPIO_PN2_EPI0S29        0x000C080F
+
+#define GPIO_PN3_U1DSR          0x000C0C01
+#define GPIO_PN3_U2CTS          0x000C0C02
+#define GPIO_PN3_EPI0S30        0x000C0C0F
+
+#define GPIO_PN4_U1DTR          0x000C1001
+#define GPIO_PN4_U3RTS          0x000C1002
+#define GPIO_PN4_I2C2SDA        0x000C1003
+#define GPIO_PN4_EPI0S34        0x000C100F
+
+#define GPIO_PN5_U1RI           0x000C1401
+#define GPIO_PN5_U3CTS          0x000C1402
+#define GPIO_PN5_I2C2SCL        0x000C1403
+#define GPIO_PN5_EPI0S35        0x000C140F
+
+#define GPIO_PP0_U6RX           0x000D0001
+#define GPIO_PP0_SSI3XDAT2      0x000D000F
+
+#define GPIO_PP1_U6TX           0x000D0401
+#define GPIO_PP1_SSI3XDAT3      0x000D040F
+
+#define GPIO_PP2_U0DTR          0x000D0801
+#define GPIO_PP2_USB0NXT        0x000D080E
+#define GPIO_PP2_EPI0S29        0x000D080F
+
+#define GPIO_PP3_U1CTS          0x000D0C01
+#define GPIO_PP3_U0DCD          0x000D0C02
+#define GPIO_PP3_RTCCLK         0x000D0C07
+#define GPIO_PP3_USB0DIR        0x000D0C0E
+#define GPIO_PP3_EPI0S30        0x000D0C0F
+
+#define GPIO_PP4_U3RTS          0x000D1001
+#define GPIO_PP4_U0DSR          0x000D1002
+#define GPIO_PP4_USB0D7         0x000D100E
+
+#define GPIO_PP5_U3CTS          0x000D1401
+#define GPIO_PP5_I2C2SCL        0x000D1402
+#define GPIO_PP5_USB0D6         0x000D140E
+
+#define GPIO_PQ0_SSI3CLK        0x000E000E
+#define GPIO_PQ0_EPI0S20        0x000E000F
+
+#define GPIO_PQ1_SSI3FSS        0x000E040E
+#define GPIO_PQ1_EPI0S21        0x000E040F
+
+#define GPIO_PQ2_SSI3XDAT0      0x000E080E
+#define GPIO_PQ2_EPI0S22        0x000E080F
+
+#define GPIO_PQ3_SSI3XDAT1      0x000E0C0E
+#define GPIO_PQ3_EPI0S23        0x000E0C0F
+
+#define GPIO_PQ4_U1RX           0x000E1001
+#define GPIO_PQ4_DIVSCLK        0x000E1007
+
+#endif // PART_TM4C1294NCPDT
+
+//*****************************************************************************
+//
+// TM4C1294NCZAD Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1294NCZAD
+
+#define GPIO_PA0_U0RX           0x00000001
+#define GPIO_PA0_I2C9SCL        0x00000002
+#define GPIO_PA0_T0CCP0         0x00000003
+#define GPIO_PA0_CAN0RX         0x00000007
+
+#define GPIO_PA1_U0TX           0x00000401
+#define GPIO_PA1_I2C9SDA        0x00000402
+#define GPIO_PA1_T0CCP1         0x00000403
+#define GPIO_PA1_CAN0TX         0x00000407
+
+#define GPIO_PA2_U4RX           0x00000801
+#define GPIO_PA2_I2C8SCL        0x00000802
+#define GPIO_PA2_T1CCP0         0x00000803
+#define GPIO_PA2_SSI0CLK        0x0000080F
+
+#define GPIO_PA3_U4TX           0x00000C01
+#define GPIO_PA3_I2C8SDA        0x00000C02
+#define GPIO_PA3_T1CCP1         0x00000C03
+#define GPIO_PA3_SSI0FSS        0x00000C0F
+
+#define GPIO_PA4_U3RX           0x00001001
+#define GPIO_PA4_T2CCP0         0x00001003
+#define GPIO_PA4_I2C7SCL        0x00001002
+#define GPIO_PA4_SSI0XDAT0      0x0000100F
+
+#define GPIO_PA5_U3TX           0x00001401
+#define GPIO_PA5_T2CCP1         0x00001403
+#define GPIO_PA5_I2C7SDA        0x00001402
+#define GPIO_PA5_SSI0XDAT1      0x0000140F
+
+#define GPIO_PA6_U2RX           0x00001801
+#define GPIO_PA6_I2C6SCL        0x00001802
+#define GPIO_PA6_T3CCP0         0x00001803
+#define GPIO_PA6_USB0EPEN       0x00001805
+#define GPIO_PA6_SSI0XDAT2      0x0000180D
+#define GPIO_PA6_EPI0S8         0x0000180F
+
+#define GPIO_PA7_U2TX           0x00001C01
+#define GPIO_PA7_I2C6SDA        0x00001C02
+#define GPIO_PA7_T3CCP1         0x00001C03
+#define GPIO_PA7_USB0PFLT       0x00001C05
+#define GPIO_PA7_USB0EPEN       0x00001C0B
+#define GPIO_PA7_SSI0XDAT3      0x00001C0D
+#define GPIO_PA7_EPI0S9         0x00001C0F
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_I2C5SCL        0x00010002
+#define GPIO_PB0_CAN1RX         0x00010007
+#define GPIO_PB0_T4CCP0         0x00010003
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_I2C5SDA        0x00010402
+#define GPIO_PB1_CAN1TX         0x00010407
+#define GPIO_PB1_T4CCP1         0x00010403
+
+#define GPIO_PB2_T5CCP0         0x00010803
+#define GPIO_PB2_I2C0SCL        0x00010802
+#define GPIO_PB2_USB0STP        0x0001080E
+#define GPIO_PB2_EPI0S27        0x0001080F
+
+#define GPIO_PB3_I2C0SDA        0x00010C02
+#define GPIO_PB3_T5CCP1         0x00010C03
+#define GPIO_PB3_USB0CLK        0x00010C0E
+#define GPIO_PB3_EPI0S28        0x00010C0F
+
+#define GPIO_PB4_U0CTS          0x00011001
+#define GPIO_PB4_I2C5SCL        0x00011002
+#define GPIO_PB4_SSI1FSS        0x0001100F
+
+#define GPIO_PB5_U0RTS          0x00011401
+#define GPIO_PB5_I2C5SDA        0x00011402
+#define GPIO_PB5_SSI1CLK        0x0001140F
+
+#define GPIO_PB6_I2C6SCL        0x00011802
+#define GPIO_PB6_T6CCP0         0x00011803
+
+#define GPIO_PB7_I2C6SDA        0x00011C02
+#define GPIO_PB7_T6CCP1         0x00011C03
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+
+#define GPIO_PC2_TDI            0x00020801
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+
+#define GPIO_PC4_U7RX           0x00021001
+#define GPIO_PC4_T7CCP0         0x00021003
+#define GPIO_PC4_EPI0S7         0x0002100F
+
+#define GPIO_PC5_U7TX           0x00021401
+#define GPIO_PC5_T7CCP1         0x00021403
+#define GPIO_PC5_RTCCLK         0x00021407
+#define GPIO_PC5_EPI0S6         0x0002140F
+
+#define GPIO_PC6_U5RX           0x00021801
+#define GPIO_PC6_EPI0S5         0x0002180F
+
+#define GPIO_PC7_U5TX           0x00021C01
+#define GPIO_PC7_EPI0S4         0x00021C0F
+
+#define GPIO_PD0_I2C7SCL        0x00030002
+#define GPIO_PD0_T0CCP0         0x00030003
+#define GPIO_PD0_C0O            0x00030005
+#define GPIO_PD0_SSI2XDAT1      0x0003000F
+
+#define GPIO_PD1_I2C7SDA        0x00030402
+#define GPIO_PD1_T0CCP1         0x00030403
+#define GPIO_PD1_C1O            0x00030405
+#define GPIO_PD1_SSI2XDAT0      0x0003040F
+
+#define GPIO_PD2_I2C8SCL        0x00030802
+#define GPIO_PD2_T1CCP0         0x00030803
+#define GPIO_PD2_C2O            0x00030805
+#define GPIO_PD2_SSI2FSS        0x0003080F
+
+#define GPIO_PD3_I2C8SDA        0x00030C02
+#define GPIO_PD3_T1CCP1         0x00030C03
+#define GPIO_PD3_SSI2CLK        0x00030C0F
+
+#define GPIO_PD4_U2RX           0x00031001
+#define GPIO_PD4_T3CCP0         0x00031003
+#define GPIO_PD4_SSI1XDAT2      0x0003100F
+
+#define GPIO_PD5_U2TX           0x00031401
+#define GPIO_PD5_T3CCP1         0x00031403
+#define GPIO_PD5_SSI1XDAT3      0x0003140F
+
+#define GPIO_PD6_U2RTS          0x00031801
+#define GPIO_PD6_T4CCP0         0x00031803
+#define GPIO_PD6_USB0EPEN       0x00031805
+#define GPIO_PD6_SSI2XDAT3      0x0003180F
+
+#define GPIO_PD7_U2CTS          0x00031C01
+#define GPIO_PD7_T4CCP1         0x00031C03
+#define GPIO_PD7_USB0PFLT       0x00031C05
+#define GPIO_PD7_NMI            0x00031C08
+#define GPIO_PD7_SSI2XDAT2      0x00031C0F
+
+#define GPIO_PE0_U1RTS          0x00040001
+
+#define GPIO_PE1_U1DSR          0x00040401
+
+#define GPIO_PE2_U1DCD          0x00040801
+
+#define GPIO_PE3_U1DTR          0x00040C01
+
+#define GPIO_PE4_U1RI           0x00041001
+#define GPIO_PE4_SSI1XDAT0      0x0004100F
+
+#define GPIO_PE5_SSI1XDAT1      0x0004140F
+
+#define GPIO_PE6_U0CTS          0x00041801
+#define GPIO_PE6_I2C9SCL        0x00041802
+
+#define GPIO_PE7_U0RTS          0x00041C01
+#define GPIO_PE7_I2C9SDA        0x00041C02
+#define GPIO_PE7_NMI            0x00041C08
+
+#define GPIO_PF0_EN0LED0        0x00050005
+#define GPIO_PF0_M0PWM0         0x00050006
+#define GPIO_PF0_SSI3XDAT1      0x0005000E
+#define GPIO_PF0_TRD2           0x0005000F
+
+#define GPIO_PF1_EN0LED2        0x00050405
+#define GPIO_PF1_M0PWM1         0x00050406
+#define GPIO_PF1_SSI3XDAT0      0x0005040E
+#define GPIO_PF1_TRD1           0x0005040F
+
+#define GPIO_PF2_M0PWM2         0x00050806
+#define GPIO_PF2_SSI3FSS        0x0005080E
+#define GPIO_PF2_TRD0           0x0005080F
+
+#define GPIO_PF3_M0PWM3         0x00050C06
+#define GPIO_PF3_SSI3CLK        0x00050C0E
+#define GPIO_PF3_TRCLK          0x00050C0F
+
+#define GPIO_PF4_EN0LED1        0x00051005
+#define GPIO_PF4_M0FAULT0       0x00051006
+#define GPIO_PF4_SSI3XDAT2      0x0005100E
+#define GPIO_PF4_TRD3           0x0005100F
+
+#define GPIO_PF5_SSI3XDAT3      0x0005140E
+
+#define GPIO_PG0_I2C1SCL        0x00060002
+#define GPIO_PG0_EN0PPS         0x00060005
+#define GPIO_PG0_M0PWM4         0x00060006
+#define GPIO_PG0_EPI0S11        0x0006000F
+
+#define GPIO_PG1_I2C1SDA        0x00060402
+#define GPIO_PG1_M0PWM5         0x00060406
+#define GPIO_PG1_EPI0S10        0x0006040F
+
+#define GPIO_PG2_I2C2SCL        0x00060802
+#define GPIO_PG2_SSI2XDAT3      0x0006080F
+
+#define GPIO_PG3_I2C2SDA        0x00060C02
+#define GPIO_PG3_SSI2XDAT2      0x00060C0F
+
+#define GPIO_PG4_U0CTS          0x00061001
+#define GPIO_PG4_I2C3SCL        0x00061002
+#define GPIO_PG4_SSI2XDAT1      0x0006100F
+
+#define GPIO_PG5_U0RTS          0x00061401
+#define GPIO_PG5_I2C3SDA        0x00061402
+#define GPIO_PG5_SSI2XDAT0      0x0006140F
+
+#define GPIO_PG6_I2C4SCL        0x00061802
+#define GPIO_PG6_SSI2FSS        0x0006180F
+
+#define GPIO_PG7_I2C4SDA        0x00061C02
+#define GPIO_PG7_SSI2CLK        0x00061C0F
+
+#define GPIO_PH0_U0RTS          0x00070001
+#define GPIO_PH0_EPI0S0         0x0007000F
+
+#define GPIO_PH1_U0CTS          0x00070401
+#define GPIO_PH1_EPI0S1         0x0007040F
+
+#define GPIO_PH2_U0DCD          0x00070801
+#define GPIO_PH2_EPI0S2         0x0007080F
+
+#define GPIO_PH3_U0DSR          0x00070C01
+#define GPIO_PH3_EPI0S3         0x00070C0F
+
+#define GPIO_PH4_U0DTR          0x00071001
+
+#define GPIO_PH5_U0RI           0x00071401
+#define GPIO_PH5_EN0PPS         0x00071405
+
+#define GPIO_PH6_U5RX           0x00071801
+#define GPIO_PH6_U7RX           0x00071802
+
+#define GPIO_PH7_U5TX           0x00071C01
+#define GPIO_PH7_U7TX           0x00071C02
+
+#define GPIO_PJ0_U3RX           0x00080001
+#define GPIO_PJ0_EN0PPS         0x00080005
+
+#define GPIO_PJ1_U3TX           0x00080401
+
+#define GPIO_PJ2_U2RTS          0x00080801
+
+#define GPIO_PJ3_U2CTS          0x00080C01
+
+#define GPIO_PJ4_U3RTS          0x00081001
+
+#define GPIO_PJ5_U3CTS          0x00081401
+
+#define GPIO_PJ6_U4RTS          0x00081801
+
+#define GPIO_PJ7_U4CTS          0x00081C01
+
+#define GPIO_PK0_U4RX           0x00090001
+#define GPIO_PK0_EPI0S0         0x0009000F
+
+#define GPIO_PK1_U4TX           0x00090401
+#define GPIO_PK1_EPI0S1         0x0009040F
+
+#define GPIO_PK2_U4RTS          0x00090801
+#define GPIO_PK2_EPI0S2         0x0009080F
+
+#define GPIO_PK3_U4CTS          0x00090C01
+#define GPIO_PK3_EPI0S3         0x00090C0F
+
+#define GPIO_PK4_I2C3SCL        0x00091002
+#define GPIO_PK4_EN0LED0        0x00091005
+#define GPIO_PK4_M0PWM6         0x00091006
+#define GPIO_PK4_EPI0S32        0x0009100F
+
+#define GPIO_PK5_I2C3SDA        0x00091402
+#define GPIO_PK5_EN0LED2        0x00091405
+#define GPIO_PK5_M0PWM7         0x00091406
+#define GPIO_PK5_EPI0S31        0x0009140F
+
+#define GPIO_PK6_I2C4SCL        0x00091802
+#define GPIO_PK6_EN0LED1        0x00091805
+#define GPIO_PK6_M0FAULT1       0x00091806
+#define GPIO_PK6_EPI0S25        0x0009180F
+
+#define GPIO_PK7_U0RI           0x00091C01
+#define GPIO_PK7_I2C4SDA        0x00091C02
+#define GPIO_PK7_RTCCLK         0x00091C05
+#define GPIO_PK7_M0FAULT2       0x00091C06
+#define GPIO_PK7_EPI0S24        0x00091C0F
+
+#define GPIO_PL0_I2C2SDA        0x000A0002
+#define GPIO_PL0_M0FAULT3       0x000A0006
+#define GPIO_PL0_USB0D0         0x000A000E
+#define GPIO_PL0_EPI0S16        0x000A000F
+
+#define GPIO_PL1_I2C2SCL        0x000A0402
+#define GPIO_PL1_PHA0           0x000A0406
+#define GPIO_PL1_USB0D1         0x000A040E
+#define GPIO_PL1_EPI0S17        0x000A040F
+
+#define GPIO_PL2_C0O            0x000A0805
+#define GPIO_PL2_PHB0           0x000A0806
+#define GPIO_PL2_USB0D2         0x000A080E
+#define GPIO_PL2_EPI0S18        0x000A080F
+
+#define GPIO_PL3_C1O            0x000A0C05
+#define GPIO_PL3_IDX0           0x000A0C06
+#define GPIO_PL3_USB0D3         0x000A0C0E
+#define GPIO_PL3_EPI0S19        0x000A0C0F
+
+#define GPIO_PL4_T0CCP0         0x000A1003
+#define GPIO_PL4_USB0D4         0x000A100E
+#define GPIO_PL4_EPI0S26        0x000A100F
+
+#define GPIO_PL5_T0CCP1         0x000A1403
+#define GPIO_PL5_EPI0S33        0x000A140F
+#define GPIO_PL5_USB0D5         0x000A140E
+
+#define GPIO_PL6_T1CCP0         0x000A1803
+
+#define GPIO_PL7_T1CCP1         0x000A1C03
+
+#define GPIO_PM0_T2CCP0         0x000B0003
+#define GPIO_PM0_EPI0S15        0x000B000F
+
+#define GPIO_PM1_T2CCP1         0x000B0403
+#define GPIO_PM1_EPI0S14        0x000B040F
+
+#define GPIO_PM2_T3CCP0         0x000B0803
+#define GPIO_PM2_EPI0S13        0x000B080F
+
+#define GPIO_PM3_T3CCP1         0x000B0C03
+#define GPIO_PM3_EPI0S12        0x000B0C0F
+
+#define GPIO_PM4_U0CTS          0x000B1001
+#define GPIO_PM4_T4CCP0         0x000B1003
+
+#define GPIO_PM5_U0DCD          0x000B1401
+#define GPIO_PM5_T4CCP1         0x000B1403
+
+#define GPIO_PM6_U0DSR          0x000B1801
+#define GPIO_PM6_T5CCP0         0x000B1803
+
+#define GPIO_PM7_U0RI           0x000B1C01
+#define GPIO_PM7_T5CCP1         0x000B1C03
+
+#define GPIO_PN0_U1RTS          0x000C0001
+
+#define GPIO_PN1_U1CTS          0x000C0401
+
+#define GPIO_PN2_U1DCD          0x000C0801
+#define GPIO_PN2_U2RTS          0x000C0802
+#define GPIO_PN2_EPI0S29        0x000C080F
+
+#define GPIO_PN3_U1DSR          0x000C0C01
+#define GPIO_PN3_U2CTS          0x000C0C02
+#define GPIO_PN3_EPI0S30        0x000C0C0F
+
+#define GPIO_PN4_U1DTR          0x000C1001
+#define GPIO_PN4_U3RTS          0x000C1002
+#define GPIO_PN4_I2C2SDA        0x000C1003
+#define GPIO_PN4_EPI0S34        0x000C100F
+
+#define GPIO_PN5_U1RI           0x000C1401
+#define GPIO_PN5_U3CTS          0x000C1402
+#define GPIO_PN5_I2C2SCL        0x000C1403
+#define GPIO_PN5_EPI0S35        0x000C140F
+
+#define GPIO_PN6_U4RTS          0x000C1802
+
+#define GPIO_PN7_U1RTS          0x000C1C01
+#define GPIO_PN7_U4CTS          0x000C1C02
+
+#define GPIO_PP0_U6RX           0x000D0001
+#define GPIO_PP0_T6CCP0         0x000D0005
+#define GPIO_PP0_SSI3XDAT2      0x000D000F
+
+#define GPIO_PP1_U6TX           0x000D0401
+#define GPIO_PP1_T6CCP1         0x000D0405
+#define GPIO_PP1_SSI3XDAT3      0x000D040F
+
+#define GPIO_PP2_U0DTR          0x000D0801
+#define GPIO_PP2_USB0NXT        0x000D080E
+#define GPIO_PP2_EPI0S29        0x000D080F
+
+#define GPIO_PP3_U1CTS          0x000D0C01
+#define GPIO_PP3_U0DCD          0x000D0C02
+#define GPIO_PP3_RTCCLK         0x000D0C07
+#define GPIO_PP3_USB0DIR        0x000D0C0E
+#define GPIO_PP3_EPI0S30        0x000D0C0F
+
+#define GPIO_PP4_U3RTS          0x000D1001
+#define GPIO_PP4_U0DSR          0x000D1002
+#define GPIO_PP4_USB0D7         0x000D100E
+
+#define GPIO_PP5_U3CTS          0x000D1401
+#define GPIO_PP5_I2C2SCL        0x000D1402
+#define GPIO_PP5_USB0D6         0x000D140E
+
+#define GPIO_PP6_U1DCD          0x000D1801
+#define GPIO_PP6_I2C2SDA        0x000D1802
+
+#define GPIO_PQ0_T6CCP0         0x000E0003
+#define GPIO_PQ0_SSI3CLK        0x000E000E
+#define GPIO_PQ0_EPI0S20        0x000E000F
+
+#define GPIO_PQ1_T6CCP1         0x000E0403
+#define GPIO_PQ1_SSI3FSS        0x000E040E
+#define GPIO_PQ1_EPI0S21        0x000E040F
+
+#define GPIO_PQ2_T7CCP0         0x000E0803
+#define GPIO_PQ2_SSI3XDAT0      0x000E080E
+#define GPIO_PQ2_EPI0S22        0x000E080F
+
+#define GPIO_PQ3_T7CCP1         0x000E0C03
+#define GPIO_PQ3_SSI3XDAT1      0x000E0C0E
+#define GPIO_PQ3_EPI0S23        0x000E0C0F
+
+#define GPIO_PQ4_U1RX           0x000E1001
+#define GPIO_PQ4_DIVSCLK        0x000E1007
+
+#define GPIO_PQ5_U1TX           0x000E1401
+
+#define GPIO_PQ6_U1DTR          0x000E1801
+
+#define GPIO_PQ7_U1RI           0x000E1C01
+
+#define GPIO_PR0_U4TX           0x000F0001
+#define GPIO_PR0_I2C1SCL        0x000F0002
+#define GPIO_PR0_M0PWM0         0x000F0006
+
+#define GPIO_PR1_U4RX           0x000F0401
+#define GPIO_PR1_I2C1SDA        0x000F0402
+#define GPIO_PR1_M0PWM1         0x000F0406
+
+#define GPIO_PR2_I2C2SCL        0x000F0802
+#define GPIO_PR2_M0PWM2         0x000F0806
+
+#define GPIO_PR3_I2C2SDA        0x000F0C02
+#define GPIO_PR3_M0PWM3         0x000F0C06
+
+#define GPIO_PR4_I2C3SCL        0x000F1002
+#define GPIO_PR4_T0CCP0         0x000F1003
+#define GPIO_PR4_M0PWM4         0x000F1006
+
+#define GPIO_PR5_U1RX           0x000F1401
+#define GPIO_PR5_I2C3SDA        0x000F1402
+#define GPIO_PR5_T0CCP1         0x000F1403
+#define GPIO_PR5_M0PWM5         0x000F1406
+
+#define GPIO_PR6_U1TX           0x000F1801
+#define GPIO_PR6_I2C4SCL        0x000F1802
+#define GPIO_PR6_T1CCP0         0x000F1803
+#define GPIO_PR6_M0PWM6         0x000F1806
+
+#define GPIO_PR7_I2C4SDA        0x000F1C02
+#define GPIO_PR7_T1CCP1         0x000F1C03
+#define GPIO_PR7_M0PWM7         0x000F1C06
+
+#define GPIO_PS0_T2CCP0         0x00100003
+#define GPIO_PS0_M0FAULT0       0x00100006
+
+#define GPIO_PS1_T2CCP1         0x00100403
+#define GPIO_PS1_M0FAULT1       0x00100406
+
+#define GPIO_PS2_U1DSR          0x00100801
+#define GPIO_PS2_T3CCP0         0x00100803
+#define GPIO_PS2_M0FAULT2       0x00100806
+
+#define GPIO_PS3_T3CCP1         0x00100C03
+#define GPIO_PS3_M0FAULT3       0x00100C06
+
+#define GPIO_PS4_T4CCP0         0x00101003
+#define GPIO_PS4_PHA0           0x00101006
+
+#define GPIO_PS5_T4CCP1         0x00101403
+#define GPIO_PS5_PHB0           0x00101406
+
+#define GPIO_PS6_T5CCP0         0x00101803
+#define GPIO_PS6_IDX0           0x00101806
+
+#define GPIO_PS7_T5CCP1         0x00101C03
+
+#define GPIO_PT0_T6CCP0         0x00110003
+#define GPIO_PT0_CAN0RX         0x00110007
+
+#define GPIO_PT1_T6CCP1         0x00110403
+#define GPIO_PT1_CAN0TX         0x00110407
+
+#define GPIO_PT2_T7CCP0         0x00110803
+#define GPIO_PT2_CAN1RX         0x00110807
+
+#define GPIO_PT3_T7CCP1         0x00110C03
+#define GPIO_PT3_CAN1TX         0x00110C07
+
+#endif // PART_TM4C1294NCZAD
+
+//*****************************************************************************
+//
+// TM4C1297NCZAD Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1297NCZAD
+
+#define GPIO_PA0_U0RX           0x00000001
+#define GPIO_PA0_I2C9SCL        0x00000002
+#define GPIO_PA0_T0CCP0         0x00000003
+#define GPIO_PA0_CAN0RX         0x00000007
+
+#define GPIO_PA1_U0TX           0x00000401
+#define GPIO_PA1_I2C9SDA        0x00000402
+#define GPIO_PA1_T0CCP1         0x00000403
+#define GPIO_PA1_CAN0TX         0x00000407
+
+#define GPIO_PA2_U4RX           0x00000801
+#define GPIO_PA2_I2C8SCL        0x00000802
+#define GPIO_PA2_T1CCP0         0x00000803
+#define GPIO_PA2_SSI0CLK        0x0000080F
+
+#define GPIO_PA3_U4TX           0x00000C01
+#define GPIO_PA3_I2C8SDA        0x00000C02
+#define GPIO_PA3_T1CCP1         0x00000C03
+#define GPIO_PA3_SSI0FSS        0x00000C0F
+
+#define GPIO_PA4_U3RX           0x00001001
+#define GPIO_PA4_T2CCP0         0x00001003
+#define GPIO_PA4_I2C7SCL        0x00001002
+#define GPIO_PA4_SSI0XDAT0      0x0000100F
+
+#define GPIO_PA5_U3TX           0x00001401
+#define GPIO_PA5_T2CCP1         0x00001403
+#define GPIO_PA5_I2C7SDA        0x00001402
+#define GPIO_PA5_SSI0XDAT1      0x0000140F
+
+#define GPIO_PA6_U2RX           0x00001801
+#define GPIO_PA6_I2C6SCL        0x00001802
+#define GPIO_PA6_T3CCP0         0x00001803
+#define GPIO_PA6_USB0EPEN       0x00001805
+#define GPIO_PA6_SSI0XDAT2      0x0000180D
+#define GPIO_PA6_EPI0S8         0x0000180F
+
+#define GPIO_PA7_U2TX           0x00001C01
+#define GPIO_PA7_I2C6SDA        0x00001C02
+#define GPIO_PA7_T3CCP1         0x00001C03
+#define GPIO_PA7_USB0PFLT       0x00001C05
+#define GPIO_PA7_USB0EPEN       0x00001C0B
+#define GPIO_PA7_SSI0XDAT3      0x00001C0D
+#define GPIO_PA7_EPI0S9         0x00001C0F
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_I2C5SCL        0x00010002
+#define GPIO_PB0_CAN1RX         0x00010007
+#define GPIO_PB0_T4CCP0         0x00010003
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_I2C5SDA        0x00010402
+#define GPIO_PB1_CAN1TX         0x00010407
+#define GPIO_PB1_T4CCP1         0x00010403
+
+#define GPIO_PB2_T5CCP0         0x00010803
+#define GPIO_PB2_I2C0SCL        0x00010802
+#define GPIO_PB2_USB0STP        0x0001080E
+#define GPIO_PB2_EPI0S27        0x0001080F
+
+#define GPIO_PB3_I2C0SDA        0x00010C02
+#define GPIO_PB3_T5CCP1         0x00010C03
+#define GPIO_PB3_USB0CLK        0x00010C0E
+#define GPIO_PB3_EPI0S28        0x00010C0F
+
+#define GPIO_PB4_U0CTS          0x00011001
+#define GPIO_PB4_I2C5SCL        0x00011002
+#define GPIO_PB4_SSI1FSS        0x0001100F
+
+#define GPIO_PB5_U0RTS          0x00011401
+#define GPIO_PB5_I2C5SDA        0x00011402
+#define GPIO_PB5_SSI1CLK        0x0001140F
+
+#define GPIO_PB6_I2C6SCL        0x00011802
+#define GPIO_PB6_T6CCP0         0x00011803
+
+#define GPIO_PB7_I2C6SDA        0x00011C02
+#define GPIO_PB7_T6CCP1         0x00011C03
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+
+#define GPIO_PC2_TDI            0x00020801
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+
+#define GPIO_PC4_U7RX           0x00021001
+#define GPIO_PC4_T7CCP0         0x00021003
+#define GPIO_PC4_EPI0S7         0x0002100F
+
+#define GPIO_PC5_U7TX           0x00021401
+#define GPIO_PC5_T7CCP1         0x00021403
+#define GPIO_PC5_RTCCLK         0x00021407
+#define GPIO_PC5_EPI0S6         0x0002140F
+
+#define GPIO_PC6_U5RX           0x00021801
+#define GPIO_PC6_EPI0S5         0x0002180F
+
+#define GPIO_PC7_U5TX           0x00021C01
+#define GPIO_PC7_EPI0S4         0x00021C0F
+
+#define GPIO_PD0_I2C7SCL        0x00030002
+#define GPIO_PD0_T0CCP0         0x00030003
+#define GPIO_PD0_C0O            0x00030005
+#define GPIO_PD0_SSI2XDAT1      0x0003000F
+
+#define GPIO_PD1_I2C7SDA        0x00030402
+#define GPIO_PD1_T0CCP1         0x00030403
+#define GPIO_PD1_C1O            0x00030405
+#define GPIO_PD1_SSI2XDAT0      0x0003040F
+
+#define GPIO_PD2_I2C8SCL        0x00030802
+#define GPIO_PD2_T1CCP0         0x00030803
+#define GPIO_PD2_C2O            0x00030805
+#define GPIO_PD2_SSI2FSS        0x0003080F
+
+#define GPIO_PD3_I2C8SDA        0x00030C02
+#define GPIO_PD3_T1CCP1         0x00030C03
+#define GPIO_PD3_SSI2CLK        0x00030C0F
+
+#define GPIO_PD4_U2RX           0x00031001
+#define GPIO_PD4_T3CCP0         0x00031003
+#define GPIO_PD4_SSI1XDAT2      0x0003100F
+
+#define GPIO_PD5_U2TX           0x00031401
+#define GPIO_PD5_T3CCP1         0x00031403
+#define GPIO_PD5_SSI1XDAT3      0x0003140F
+
+#define GPIO_PD6_U2RTS          0x00031801
+#define GPIO_PD6_T4CCP0         0x00031803
+#define GPIO_PD6_USB0EPEN       0x00031805
+#define GPIO_PD6_SSI2XDAT3      0x0003180F
+
+#define GPIO_PD7_U2CTS          0x00031C01
+#define GPIO_PD7_T4CCP1         0x00031C03
+#define GPIO_PD7_USB0PFLT       0x00031C05
+#define GPIO_PD7_NMI            0x00031C08
+#define GPIO_PD7_SSI2XDAT2      0x00031C0F
+
+#define GPIO_PE0_U1RTS          0x00040001
+
+#define GPIO_PE1_U1DSR          0x00040401
+
+#define GPIO_PE2_U1DCD          0x00040801
+
+#define GPIO_PE3_U1DTR          0x00040C01
+
+#define GPIO_PE4_U1RI           0x00041001
+#define GPIO_PE4_SSI1XDAT0      0x0004100F
+
+#define GPIO_PE5_SSI1XDAT1      0x0004140F
+
+#define GPIO_PE6_U0CTS          0x00041801
+#define GPIO_PE6_I2C9SCL        0x00041802
+
+#define GPIO_PE7_U0RTS          0x00041C01
+#define GPIO_PE7_I2C9SDA        0x00041C02
+#define GPIO_PE7_NMI            0x00041C08
+
+#define GPIO_PF0_M0PWM0         0x00050006
+#define GPIO_PF0_SSI3XDAT1      0x0005000E
+#define GPIO_PF0_TRD2           0x0005000F
+
+#define GPIO_PF1_M0PWM1         0x00050406
+#define GPIO_PF1_SSI3XDAT0      0x0005040E
+#define GPIO_PF1_TRD1           0x0005040F
+
+#define GPIO_PF2_M0PWM2         0x00050806
+#define GPIO_PF2_SSI3FSS        0x0005080E
+#define GPIO_PF2_TRD0           0x0005080F
+
+#define GPIO_PF3_M0PWM3         0x00050C06
+#define GPIO_PF3_SSI3CLK        0x00050C0E
+#define GPIO_PF3_TRCLK          0x00050C0F
+
+#define GPIO_PF4_M0FAULT0       0x00051006
+#define GPIO_PF4_SSI3XDAT2      0x0005100E
+#define GPIO_PF4_TRD3           0x0005100F
+
+#define GPIO_PF5_SSI3XDAT3      0x0005140E
+
+#define GPIO_PF6_LCDMCLK        0x0005180F
+
+#define GPIO_PF7_LCDDATA02      0x00051C0F
+
+#define GPIO_PG0_I2C1SCL        0x00060002
+#define GPIO_PG0_M0PWM4         0x00060006
+#define GPIO_PG0_EPI0S11        0x0006000F
+
+#define GPIO_PG1_I2C1SDA        0x00060402
+#define GPIO_PG1_M0PWM5         0x00060406
+#define GPIO_PG1_EPI0S10        0x0006040F
+
+#define GPIO_PG2_I2C2SCL        0x00060802
+#define GPIO_PG2_SSI2XDAT3      0x0006080F
+
+#define GPIO_PG3_I2C2SDA        0x00060C02
+#define GPIO_PG3_SSI2XDAT2      0x00060C0F
+
+#define GPIO_PG4_U0CTS          0x00061001
+#define GPIO_PG4_I2C3SCL        0x00061002
+#define GPIO_PG4_SSI2XDAT1      0x0006100F
+
+#define GPIO_PG5_U0RTS          0x00061401
+#define GPIO_PG5_I2C3SDA        0x00061402
+#define GPIO_PG5_SSI2XDAT0      0x0006140F
+
+#define GPIO_PG6_I2C4SCL        0x00061802
+#define GPIO_PG6_SSI2FSS        0x0006180F
+
+#define GPIO_PG7_I2C4SDA        0x00061C02
+#define GPIO_PG7_SSI2CLK        0x00061C0F
+
+#define GPIO_PH0_U0RTS          0x00070001
+#define GPIO_PH0_EPI0S0         0x0007000F
+
+#define GPIO_PH1_U0CTS          0x00070401
+#define GPIO_PH1_EPI0S1         0x0007040F
+
+#define GPIO_PH2_U0DCD          0x00070801
+#define GPIO_PH2_EPI0S2         0x0007080F
+
+#define GPIO_PH3_U0DSR          0x00070C01
+#define GPIO_PH3_EPI0S3         0x00070C0F
+
+#define GPIO_PH4_U0DTR          0x00071001
+
+#define GPIO_PH5_U0RI           0x00071401
+
+#define GPIO_PH6_U5RX           0x00071801
+#define GPIO_PH6_U7RX           0x00071802
+
+#define GPIO_PH7_U5TX           0x00071C01
+#define GPIO_PH7_U7TX           0x00071C02
+
+#define GPIO_PJ0_U3RX           0x00080001
+
+#define GPIO_PJ1_U3TX           0x00080401
+
+#define GPIO_PJ2_U2RTS          0x00080801
+#define GPIO_PJ2_LCDDATA14      0x0008080F
+
+#define GPIO_PJ3_U2CTS          0x00080C01
+#define GPIO_PJ3_LCDDATA15      0x00080C0F
+
+#define GPIO_PJ4_U3RTS          0x00081001
+#define GPIO_PJ4_LCDDATA16      0x0008100F
+
+#define GPIO_PJ5_U3CTS          0x00081401
+#define GPIO_PJ5_LCDDATA17      0x0008140F
+
+#define GPIO_PJ6_U4RTS          0x00081801
+#define GPIO_PJ6_LCDAC          0x0008180F
+
+#define GPIO_PJ7_U4CTS          0x00081C01
+
+#define GPIO_PK0_U4RX           0x00090001
+#define GPIO_PK0_EPI0S0         0x0009000F
+
+#define GPIO_PK1_U4TX           0x00090401
+#define GPIO_PK1_EPI0S1         0x0009040F
+
+#define GPIO_PK2_U4RTS          0x00090801
+#define GPIO_PK2_EPI0S2         0x0009080F
+
+#define GPIO_PK3_U4CTS          0x00090C01
+#define GPIO_PK3_EPI0S3         0x00090C0F
+
+#define GPIO_PK4_I2C3SCL        0x00091002
+#define GPIO_PK4_M0PWM6         0x00091006
+#define GPIO_PK4_EPI0S32        0x0009100F
+
+#define GPIO_PK5_I2C3SDA        0x00091402
+#define GPIO_PK5_M0PWM7         0x00091406
+#define GPIO_PK5_EPI0S31        0x0009140F
+
+#define GPIO_PK6_I2C4SCL        0x00091802
+#define GPIO_PK6_M0FAULT1       0x00091806
+#define GPIO_PK6_EPI0S25        0x0009180F
+
+#define GPIO_PK7_U0RI           0x00091C01
+#define GPIO_PK7_I2C4SDA        0x00091C02
+#define GPIO_PK7_RTCCLK         0x00091C05
+#define GPIO_PK7_M0FAULT2       0x00091C06
+#define GPIO_PK7_EPI0S24        0x00091C0F
+
+#define GPIO_PL0_I2C2SDA        0x000A0002
+#define GPIO_PL0_M0FAULT3       0x000A0006
+#define GPIO_PL0_USB0D0         0x000A000E
+#define GPIO_PL0_EPI0S16        0x000A000F
+
+#define GPIO_PL1_I2C2SCL        0x000A0402
+#define GPIO_PL1_PHA0           0x000A0406
+#define GPIO_PL1_USB0D1         0x000A040E
+#define GPIO_PL1_EPI0S17        0x000A040F
+
+#define GPIO_PL2_C0O            0x000A0805
+#define GPIO_PL2_PHB0           0x000A0806
+#define GPIO_PL2_USB0D2         0x000A080E
+#define GPIO_PL2_EPI0S18        0x000A080F
+
+#define GPIO_PL3_C1O            0x000A0C05
+#define GPIO_PL3_IDX0           0x000A0C06
+#define GPIO_PL3_USB0D3         0x000A0C0E
+#define GPIO_PL3_EPI0S19        0x000A0C0F
+
+#define GPIO_PL4_T0CCP0         0x000A1003
+#define GPIO_PL4_USB0D4         0x000A100E
+#define GPIO_PL4_EPI0S26        0x000A100F
+
+#define GPIO_PL5_T0CCP1         0x000A1403
+#define GPIO_PL5_EPI0S33        0x000A140F
+#define GPIO_PL5_USB0D5         0x000A140E
+
+#define GPIO_PL6_T1CCP0         0x000A1803
+
+#define GPIO_PL7_T1CCP1         0x000A1C03
+
+#define GPIO_PM0_T2CCP0         0x000B0003
+#define GPIO_PM0_EPI0S15        0x000B000F
+
+#define GPIO_PM1_T2CCP1         0x000B0403
+#define GPIO_PM1_EPI0S14        0x000B040F
+
+#define GPIO_PM2_T3CCP0         0x000B0803
+#define GPIO_PM2_EPI0S13        0x000B080F
+
+#define GPIO_PM3_T3CCP1         0x000B0C03
+#define GPIO_PM3_EPI0S12        0x000B0C0F
+
+#define GPIO_PM4_U0CTS          0x000B1001
+#define GPIO_PM4_T4CCP0         0x000B1003
+
+#define GPIO_PM5_U0DCD          0x000B1401
+#define GPIO_PM5_T4CCP1         0x000B1403
+
+#define GPIO_PM6_U0DSR          0x000B1801
+#define GPIO_PM6_T5CCP0         0x000B1803
+
+#define GPIO_PM7_U0RI           0x000B1C01
+#define GPIO_PM7_T5CCP1         0x000B1C03
+
+#define GPIO_PN0_U1RTS          0x000C0001
+
+#define GPIO_PN1_U1CTS          0x000C0401
+
+#define GPIO_PN2_U1DCD          0x000C0801
+#define GPIO_PN2_U2RTS          0x000C0802
+#define GPIO_PN2_EPI0S29        0x000C080F
+
+#define GPIO_PN3_U1DSR          0x000C0C01
+#define GPIO_PN3_U2CTS          0x000C0C02
+#define GPIO_PN3_EPI0S30        0x000C0C0F
+
+#define GPIO_PN4_U1DTR          0x000C1001
+#define GPIO_PN4_U3RTS          0x000C1002
+#define GPIO_PN4_I2C2SDA        0x000C1003
+#define GPIO_PN4_EPI0S34        0x000C100F
+
+#define GPIO_PN5_U1RI           0x000C1401
+#define GPIO_PN5_U3CTS          0x000C1402
+#define GPIO_PN5_I2C2SCL        0x000C1403
+#define GPIO_PN5_EPI0S35        0x000C140F
+
+#define GPIO_PN6_U4RTS          0x000C1802
+#define GPIO_PN6_LCDDATA13      0x000C180F
+
+#define GPIO_PN7_U1RTS          0x000C1C01
+#define GPIO_PN7_U4CTS          0x000C1C02
+#define GPIO_PN7_LCDDATA12      0x000C1C0F
+
+#define GPIO_PP0_U6RX           0x000D0001
+#define GPIO_PP0_T6CCP0         0x000D0005
+#define GPIO_PP0_SSI3XDAT2      0x000D000F
+
+#define GPIO_PP1_U6TX           0x000D0401
+#define GPIO_PP1_T6CCP1         0x000D0405
+#define GPIO_PP1_SSI3XDAT3      0x000D040F
+
+#define GPIO_PP2_U0DTR          0x000D0801
+#define GPIO_PP2_USB0NXT        0x000D080E
+#define GPIO_PP2_EPI0S29        0x000D080F
+
+#define GPIO_PP3_U1CTS          0x000D0C01
+#define GPIO_PP3_U0DCD          0x000D0C02
+#define GPIO_PP3_RTCCLK         0x000D0C07
+#define GPIO_PP3_USB0DIR        0x000D0C0E
+#define GPIO_PP3_EPI0S30        0x000D0C0F
+
+#define GPIO_PP4_U3RTS          0x000D1001
+#define GPIO_PP4_U0DSR          0x000D1002
+#define GPIO_PP4_USB0D7         0x000D100E
+
+#define GPIO_PP5_U3CTS          0x000D1401
+#define GPIO_PP5_I2C2SCL        0x000D1402
+#define GPIO_PP5_USB0D6         0x000D140E
+
+#define GPIO_PP6_U1DCD          0x000D1801
+#define GPIO_PP6_I2C2SDA        0x000D1802
+
+#define GPIO_PQ0_T6CCP0         0x000E0003
+#define GPIO_PQ0_SSI3CLK        0x000E000E
+#define GPIO_PQ0_EPI0S20        0x000E000F
+
+#define GPIO_PQ1_T6CCP1         0x000E0403
+#define GPIO_PQ1_SSI3FSS        0x000E040E
+#define GPIO_PQ1_EPI0S21        0x000E040F
+
+#define GPIO_PQ2_T7CCP0         0x000E0803
+#define GPIO_PQ2_SSI3XDAT0      0x000E080E
+#define GPIO_PQ2_EPI0S22        0x000E080F
+
+#define GPIO_PQ3_T7CCP1         0x000E0C03
+#define GPIO_PQ3_SSI3XDAT1      0x000E0C0E
+#define GPIO_PQ3_EPI0S23        0x000E0C0F
+
+#define GPIO_PQ4_U1RX           0x000E1001
+#define GPIO_PQ4_DIVSCLK        0x000E1007
+
+#define GPIO_PQ5_U1TX           0x000E1401
+
+#define GPIO_PQ6_U1DTR          0x000E1801
+
+#define GPIO_PQ7_U1RI           0x000E1C01
+
+#define GPIO_PR0_U4TX           0x000F0001
+#define GPIO_PR0_I2C1SCL        0x000F0002
+#define GPIO_PR0_M0PWM0         0x000F0006
+#define GPIO_PR0_LCDCP          0x000F000F
+
+#define GPIO_PR1_U4RX           0x000F0401
+#define GPIO_PR1_I2C1SDA        0x000F0402
+#define GPIO_PR1_M0PWM1         0x000F0406
+#define GPIO_PR1_LCDFP          0x000F040F
+
+#define GPIO_PR2_I2C2SCL        0x000F0802
+#define GPIO_PR2_M0PWM2         0x000F0806
+#define GPIO_PR2_LCDLP          0x000F080F
+
+#define GPIO_PR3_I2C2SDA        0x000F0C02
+#define GPIO_PR3_M0PWM3         0x000F0C06
+#define GPIO_PR3_LCDDATA03      0x000F0C0F
+
+#define GPIO_PR4_I2C3SCL        0x000F1002
+#define GPIO_PR4_T0CCP0         0x000F1003
+#define GPIO_PR4_M0PWM4         0x000F1006
+#define GPIO_PR4_LCDDATA00      0x000F100F
+
+#define GPIO_PR5_U1RX           0x000F1401
+#define GPIO_PR5_I2C3SDA        0x000F1402
+#define GPIO_PR5_T0CCP1         0x000F1403
+#define GPIO_PR5_M0PWM5         0x000F1406
+#define GPIO_PR5_LCDDATA01      0x000F140F
+
+#define GPIO_PR6_U1TX           0x000F1801
+#define GPIO_PR6_I2C4SCL        0x000F1802
+#define GPIO_PR6_T1CCP0         0x000F1803
+#define GPIO_PR6_M0PWM6         0x000F1806
+#define GPIO_PR6_LCDDATA04      0x000F180F
+
+#define GPIO_PR7_I2C4SDA        0x000F1C02
+#define GPIO_PR7_T1CCP1         0x000F1C03
+#define GPIO_PR7_M0PWM7         0x000F1C06
+#define GPIO_PR7_LCDDATA05      0x000F1C0F
+
+#define GPIO_PS0_T2CCP0         0x00100003
+#define GPIO_PS0_M0FAULT0       0x00100006
+#define GPIO_PS0_LCDDATA20      0x0010000F
+
+#define GPIO_PS1_T2CCP1         0x00100403
+#define GPIO_PS1_M0FAULT1       0x00100406
+#define GPIO_PS1_LCDDATA21      0x0010040F
+
+#define GPIO_PS2_U1DSR          0x00100801
+#define GPIO_PS2_T3CCP0         0x00100803
+#define GPIO_PS2_M0FAULT2       0x00100806
+#define GPIO_PS2_LCDDATA22      0x0010080F
+
+#define GPIO_PS3_T3CCP1         0x00100C03
+#define GPIO_PS3_M0FAULT3       0x00100C06
+#define GPIO_PS3_LCDDATA23      0x00100C0F
+
+#define GPIO_PS4_T4CCP0         0x00101003
+#define GPIO_PS4_PHA0           0x00101006
+#define GPIO_PS4_LCDDATA06      0x0010100F
+
+#define GPIO_PS5_T4CCP1         0x00101403
+#define GPIO_PS5_PHB0           0x00101406
+#define GPIO_PS5_LCDDATA07      0x0010140F
+
+#define GPIO_PS6_T5CCP0         0x00101803
+#define GPIO_PS6_IDX0           0x00101806
+#define GPIO_PS6_LCDDATA08      0x0010180F
+
+#define GPIO_PS7_T5CCP1         0x00101C03
+#define GPIO_PS7_LCDDATA09      0x00101C0F
+
+#define GPIO_PT0_T6CCP0         0x00110003
+#define GPIO_PT0_CAN0RX         0x00110007
+#define GPIO_PT0_LCDDATA10      0x0011000F
+
+#define GPIO_PT1_T6CCP1         0x00110403
+#define GPIO_PT1_CAN0TX         0x00110407
+#define GPIO_PT1_LCDDATA11      0x0011040F
+
+#define GPIO_PT2_T7CCP0         0x00110803
+#define GPIO_PT2_CAN1RX         0x00110807
+#define GPIO_PT2_LCDDATA18      0x0011080F
+
+#define GPIO_PT3_T7CCP1         0x00110C03
+#define GPIO_PT3_CAN1TX         0x00110C07
+#define GPIO_PT3_LCDDATA19      0x00110C0F
+
+#endif // PART_TM4C1297NCZAD
+
+//*****************************************************************************
+//
+// TM4C1299KCZAD Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1299KCZAD
+
+#define GPIO_PA0_U0RX           0x00000001
+#define GPIO_PA0_I2C9SCL        0x00000002
+#define GPIO_PA0_T0CCP0         0x00000003
+#define GPIO_PA0_CAN0RX         0x00000007
+
+#define GPIO_PA1_U0TX           0x00000401
+#define GPIO_PA1_I2C9SDA        0x00000402
+#define GPIO_PA1_T0CCP1         0x00000403
+#define GPIO_PA1_CAN0TX         0x00000407
+
+#define GPIO_PA2_U4RX           0x00000801
+#define GPIO_PA2_I2C8SCL        0x00000802
+#define GPIO_PA2_T1CCP0         0x00000803
+#define GPIO_PA2_SSI0CLK        0x0000080F
+
+#define GPIO_PA3_U4TX           0x00000C01
+#define GPIO_PA3_I2C8SDA        0x00000C02
+#define GPIO_PA3_T1CCP1         0x00000C03
+#define GPIO_PA3_SSI0FSS        0x00000C0F
+
+#define GPIO_PA4_U3RX           0x00001001
+#define GPIO_PA4_T2CCP0         0x00001003
+#define GPIO_PA4_I2C7SCL        0x00001002
+#define GPIO_PA4_SSI0XDAT0      0x0000100F
+
+#define GPIO_PA5_U3TX           0x00001401
+#define GPIO_PA5_T2CCP1         0x00001403
+#define GPIO_PA5_I2C7SDA        0x00001402
+#define GPIO_PA5_SSI0XDAT1      0x0000140F
+
+#define GPIO_PA6_U2RX           0x00001801
+#define GPIO_PA6_I2C6SCL        0x00001802
+#define GPIO_PA6_T3CCP0         0x00001803
+#define GPIO_PA6_USB0EPEN       0x00001805
+#define GPIO_PA6_SSI0XDAT2      0x0000180D
+#define GPIO_PA6_EPI0S8         0x0000180F
+
+#define GPIO_PA7_U2TX           0x00001C01
+#define GPIO_PA7_I2C6SDA        0x00001C02
+#define GPIO_PA7_T3CCP1         0x00001C03
+#define GPIO_PA7_USB0PFLT       0x00001C05
+#define GPIO_PA7_USB0EPEN       0x00001C0B
+#define GPIO_PA7_SSI0XDAT3      0x00001C0D
+#define GPIO_PA7_EPI0S9         0x00001C0F
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_I2C5SCL        0x00010002
+#define GPIO_PB0_CAN1RX         0x00010007
+#define GPIO_PB0_T4CCP0         0x00010003
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_I2C5SDA        0x00010402
+#define GPIO_PB1_CAN1TX         0x00010407
+#define GPIO_PB1_T4CCP1         0x00010403
+
+#define GPIO_PB2_T5CCP0         0x00010803
+#define GPIO_PB2_I2C0SCL        0x00010802
+#define GPIO_PB2_USB0STP        0x0001080E
+#define GPIO_PB2_EPI0S27        0x0001080F
+
+#define GPIO_PB3_I2C0SDA        0x00010C02
+#define GPIO_PB3_T5CCP1         0x00010C03
+#define GPIO_PB3_USB0CLK        0x00010C0E
+#define GPIO_PB3_EPI0S28        0x00010C0F
+
+#define GPIO_PB4_U0CTS          0x00011001
+#define GPIO_PB4_I2C5SCL        0x00011002
+#define GPIO_PB4_SSI1FSS        0x0001100F
+
+#define GPIO_PB5_U0RTS          0x00011401
+#define GPIO_PB5_I2C5SDA        0x00011402
+#define GPIO_PB5_SSI1CLK        0x0001140F
+
+#define GPIO_PB6_I2C6SCL        0x00011802
+#define GPIO_PB6_T6CCP0         0x00011803
+
+#define GPIO_PB7_I2C6SDA        0x00011C02
+#define GPIO_PB7_T6CCP1         0x00011C03
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+
+#define GPIO_PC2_TDI            0x00020801
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+
+#define GPIO_PC4_U7RX           0x00021001
+#define GPIO_PC4_T7CCP0         0x00021003
+#define GPIO_PC4_EPI0S7         0x0002100F
+
+#define GPIO_PC5_U7TX           0x00021401
+#define GPIO_PC5_T7CCP1         0x00021403
+#define GPIO_PC5_RTCCLK         0x00021407
+#define GPIO_PC5_EPI0S6         0x0002140F
+
+#define GPIO_PC6_U5RX           0x00021801
+#define GPIO_PC6_EPI0S5         0x0002180F
+
+#define GPIO_PC7_U5TX           0x00021C01
+#define GPIO_PC7_EPI0S4         0x00021C0F
+
+#define GPIO_PD0_I2C7SCL        0x00030002
+#define GPIO_PD0_T0CCP0         0x00030003
+#define GPIO_PD0_C0O            0x00030005
+#define GPIO_PD0_SSI2XDAT1      0x0003000F
+
+#define GPIO_PD1_I2C7SDA        0x00030402
+#define GPIO_PD1_T0CCP1         0x00030403
+#define GPIO_PD1_C1O            0x00030405
+#define GPIO_PD1_SSI2XDAT0      0x0003040F
+
+#define GPIO_PD2_I2C8SCL        0x00030802
+#define GPIO_PD2_T1CCP0         0x00030803
+#define GPIO_PD2_C2O            0x00030805
+#define GPIO_PD2_SSI2FSS        0x0003080F
+
+#define GPIO_PD3_I2C8SDA        0x00030C02
+#define GPIO_PD3_T1CCP1         0x00030C03
+#define GPIO_PD3_SSI2CLK        0x00030C0F
+
+#define GPIO_PD4_U2RX           0x00031001
+#define GPIO_PD4_T3CCP0         0x00031003
+#define GPIO_PD4_SSI1XDAT2      0x0003100F
+
+#define GPIO_PD5_U2TX           0x00031401
+#define GPIO_PD5_T3CCP1         0x00031403
+#define GPIO_PD5_SSI1XDAT3      0x0003140F
+
+#define GPIO_PD6_U2RTS          0x00031801
+#define GPIO_PD6_T4CCP0         0x00031803
+#define GPIO_PD6_USB0EPEN       0x00031805
+#define GPIO_PD6_SSI2XDAT3      0x0003180F
+
+#define GPIO_PD7_U2CTS          0x00031C01
+#define GPIO_PD7_T4CCP1         0x00031C03
+#define GPIO_PD7_USB0PFLT       0x00031C05
+#define GPIO_PD7_NMI            0x00031C08
+#define GPIO_PD7_SSI2XDAT2      0x00031C0F
+
+#define GPIO_PE0_U1RTS          0x00040001
+
+#define GPIO_PE1_U1DSR          0x00040401
+
+#define GPIO_PE2_U1DCD          0x00040801
+
+#define GPIO_PE3_U1DTR          0x00040C01
+
+#define GPIO_PE4_U1RI           0x00041001
+#define GPIO_PE4_SSI1XDAT0      0x0004100F
+
+#define GPIO_PE5_SSI1XDAT1      0x0004140F
+
+#define GPIO_PE6_U0CTS          0x00041801
+#define GPIO_PE6_I2C9SCL        0x00041802
+
+#define GPIO_PE7_U0RTS          0x00041C01
+#define GPIO_PE7_I2C9SDA        0x00041C02
+#define GPIO_PE7_NMI            0x00041C08
+
+#define GPIO_PF0_EN0LED0        0x00050005
+#define GPIO_PF0_M0PWM0         0x00050006
+#define GPIO_PF0_SSI3XDAT1      0x0005000E
+#define GPIO_PF0_TRD2           0x0005000F
+
+#define GPIO_PF1_EN0LED2        0x00050405
+#define GPIO_PF1_M0PWM1         0x00050406
+#define GPIO_PF1_SSI3XDAT0      0x0005040E
+#define GPIO_PF1_TRD1           0x0005040F
+
+#define GPIO_PF2_M0PWM2         0x00050806
+#define GPIO_PF2_SSI3FSS        0x0005080E
+#define GPIO_PF2_TRD0           0x0005080F
+
+#define GPIO_PF3_M0PWM3         0x00050C06
+#define GPIO_PF3_SSI3CLK        0x00050C0E
+#define GPIO_PF3_TRCLK          0x00050C0F
+
+#define GPIO_PF4_EN0LED1        0x00051005
+#define GPIO_PF4_M0FAULT0       0x00051006
+#define GPIO_PF4_SSI3XDAT2      0x0005100E
+#define GPIO_PF4_TRD3           0x0005100F
+
+#define GPIO_PF5_SSI3XDAT3      0x0005140E
+
+#define GPIO_PF6_LCDMCLK        0x0005180F
+
+#define GPIO_PF7_LCDDATA02      0x00051C0F
+
+#define GPIO_PG0_I2C1SCL        0x00060002
+#define GPIO_PG0_EN0PPS         0x00060005
+#define GPIO_PG0_M0PWM4         0x00060006
+#define GPIO_PG0_EPI0S11        0x0006000F
+
+#define GPIO_PG1_I2C1SDA        0x00060402
+#define GPIO_PG1_M0PWM5         0x00060406
+#define GPIO_PG1_EPI0S10        0x0006040F
+
+#define GPIO_PG2_I2C2SCL        0x00060802
+#define GPIO_PG2_SSI2XDAT3      0x0006080F
+
+#define GPIO_PG3_I2C2SDA        0x00060C02
+#define GPIO_PG3_SSI2XDAT2      0x00060C0F
+
+#define GPIO_PG4_U0CTS          0x00061001
+#define GPIO_PG4_I2C3SCL        0x00061002
+#define GPIO_PG4_SSI2XDAT1      0x0006100F
+
+#define GPIO_PG5_U0RTS          0x00061401
+#define GPIO_PG5_I2C3SDA        0x00061402
+#define GPIO_PG5_SSI2XDAT0      0x0006140F
+
+#define GPIO_PG6_I2C4SCL        0x00061802
+#define GPIO_PG6_SSI2FSS        0x0006180F
+
+#define GPIO_PG7_I2C4SDA        0x00061C02
+#define GPIO_PG7_SSI2CLK        0x00061C0F
+
+#define GPIO_PH0_U0RTS          0x00070001
+#define GPIO_PH0_EPI0S0         0x0007000F
+
+#define GPIO_PH1_U0CTS          0x00070401
+#define GPIO_PH1_EPI0S1         0x0007040F
+
+#define GPIO_PH2_U0DCD          0x00070801
+#define GPIO_PH2_EPI0S2         0x0007080F
+
+#define GPIO_PH3_U0DSR          0x00070C01
+#define GPIO_PH3_EPI0S3         0x00070C0F
+
+#define GPIO_PH4_U0DTR          0x00071001
+
+#define GPIO_PH5_U0RI           0x00071401
+#define GPIO_PH5_EN0PPS         0x00071405
+
+#define GPIO_PH6_U5RX           0x00071801
+#define GPIO_PH6_U7RX           0x00071802
+
+#define GPIO_PH7_U5TX           0x00071C01
+#define GPIO_PH7_U7TX           0x00071C02
+
+#define GPIO_PJ0_U3RX           0x00080001
+#define GPIO_PJ0_EN0PPS         0x00080005
+
+#define GPIO_PJ1_U3TX           0x00080401
+
+#define GPIO_PJ2_U2RTS          0x00080801
+#define GPIO_PJ2_LCDDATA14      0x0008080F
+
+#define GPIO_PJ3_U2CTS          0x00080C01
+#define GPIO_PJ3_LCDDATA15      0x00080C0F
+
+#define GPIO_PJ4_U3RTS          0x00081001
+#define GPIO_PJ4_LCDDATA16      0x0008100F
+
+#define GPIO_PJ5_U3CTS          0x00081401
+#define GPIO_PJ5_LCDDATA17      0x0008140F
+
+#define GPIO_PJ6_U4RTS          0x00081801
+#define GPIO_PJ6_LCDAC          0x0008180F
+
+#define GPIO_PJ7_U4CTS          0x00081C01
+
+#define GPIO_PK0_U4RX           0x00090001
+#define GPIO_PK0_EPI0S0         0x0009000F
+
+#define GPIO_PK1_U4TX           0x00090401
+#define GPIO_PK1_EPI0S1         0x0009040F
+
+#define GPIO_PK2_U4RTS          0x00090801
+#define GPIO_PK2_EPI0S2         0x0009080F
+
+#define GPIO_PK3_U4CTS          0x00090C01
+#define GPIO_PK3_EPI0S3         0x00090C0F
+
+#define GPIO_PK4_I2C3SCL        0x00091002
+#define GPIO_PK4_EN0LED0        0x00091005
+#define GPIO_PK4_M0PWM6         0x00091006
+#define GPIO_PK4_EPI0S32        0x0009100F
+
+#define GPIO_PK5_I2C3SDA        0x00091402
+#define GPIO_PK5_EN0LED2        0x00091405
+#define GPIO_PK5_M0PWM7         0x00091406
+#define GPIO_PK5_EPI0S31        0x0009140F
+
+#define GPIO_PK6_I2C4SCL        0x00091802
+#define GPIO_PK6_EN0LED1        0x00091805
+#define GPIO_PK6_M0FAULT1       0x00091806
+#define GPIO_PK6_EPI0S25        0x0009180F
+
+#define GPIO_PK7_U0RI           0x00091C01
+#define GPIO_PK7_I2C4SDA        0x00091C02
+#define GPIO_PK7_RTCCLK         0x00091C05
+#define GPIO_PK7_M0FAULT2       0x00091C06
+#define GPIO_PK7_EPI0S24        0x00091C0F
+
+#define GPIO_PL0_I2C2SDA        0x000A0002
+#define GPIO_PL0_M0FAULT3       0x000A0006
+#define GPIO_PL0_USB0D0         0x000A000E
+#define GPIO_PL0_EPI0S16        0x000A000F
+
+#define GPIO_PL1_I2C2SCL        0x000A0402
+#define GPIO_PL1_PHA0           0x000A0406
+#define GPIO_PL1_USB0D1         0x000A040E
+#define GPIO_PL1_EPI0S17        0x000A040F
+
+#define GPIO_PL2_C0O            0x000A0805
+#define GPIO_PL2_PHB0           0x000A0806
+#define GPIO_PL2_USB0D2         0x000A080E
+#define GPIO_PL2_EPI0S18        0x000A080F
+
+#define GPIO_PL3_C1O            0x000A0C05
+#define GPIO_PL3_IDX0           0x000A0C06
+#define GPIO_PL3_USB0D3         0x000A0C0E
+#define GPIO_PL3_EPI0S19        0x000A0C0F
+
+#define GPIO_PL4_T0CCP0         0x000A1003
+#define GPIO_PL4_USB0D4         0x000A100E
+#define GPIO_PL4_EPI0S26        0x000A100F
+
+#define GPIO_PL5_T0CCP1         0x000A1403
+#define GPIO_PL5_EPI0S33        0x000A140F
+#define GPIO_PL5_USB0D5         0x000A140E
+
+#define GPIO_PL6_T1CCP0         0x000A1803
+
+#define GPIO_PL7_T1CCP1         0x000A1C03
+
+#define GPIO_PM0_T2CCP0         0x000B0003
+#define GPIO_PM0_EPI0S15        0x000B000F
+
+#define GPIO_PM1_T2CCP1         0x000B0403
+#define GPIO_PM1_EPI0S14        0x000B040F
+
+#define GPIO_PM2_T3CCP0         0x000B0803
+#define GPIO_PM2_EPI0S13        0x000B080F
+
+#define GPIO_PM3_T3CCP1         0x000B0C03
+#define GPIO_PM3_EPI0S12        0x000B0C0F
+
+#define GPIO_PM4_U0CTS          0x000B1001
+#define GPIO_PM4_T4CCP0         0x000B1003
+
+#define GPIO_PM5_U0DCD          0x000B1401
+#define GPIO_PM5_T4CCP1         0x000B1403
+
+#define GPIO_PM6_U0DSR          0x000B1801
+#define GPIO_PM6_T5CCP0         0x000B1803
+
+#define GPIO_PM7_U0RI           0x000B1C01
+#define GPIO_PM7_T5CCP1         0x000B1C03
+
+#define GPIO_PN0_U1RTS          0x000C0001
+
+#define GPIO_PN1_U1CTS          0x000C0401
+
+#define GPIO_PN2_U1DCD          0x000C0801
+#define GPIO_PN2_U2RTS          0x000C0802
+#define GPIO_PN2_EPI0S29        0x000C080F
+
+#define GPIO_PN3_U1DSR          0x000C0C01
+#define GPIO_PN3_U2CTS          0x000C0C02
+#define GPIO_PN3_EPI0S30        0x000C0C0F
+
+#define GPIO_PN4_U1DTR          0x000C1001
+#define GPIO_PN4_U3RTS          0x000C1002
+#define GPIO_PN4_I2C2SDA        0x000C1003
+#define GPIO_PN4_EPI0S34        0x000C100F
+
+#define GPIO_PN5_U1RI           0x000C1401
+#define GPIO_PN5_U3CTS          0x000C1402
+#define GPIO_PN5_I2C2SCL        0x000C1403
+#define GPIO_PN5_EPI0S35        0x000C140F
+
+#define GPIO_PN6_U4RTS          0x000C1802
+#define GPIO_PN6_LCDDATA13      0x000C180F
+
+#define GPIO_PN7_U1RTS          0x000C1C01
+#define GPIO_PN7_U4CTS          0x000C1C02
+#define GPIO_PN7_LCDDATA12      0x000C1C0F
+
+#define GPIO_PP0_U6RX           0x000D0001
+#define GPIO_PP0_T6CCP0         0x000D0005
+#define GPIO_PP0_SSI3XDAT2      0x000D000F
+
+#define GPIO_PP1_U6TX           0x000D0401
+#define GPIO_PP1_T6CCP1         0x000D0405
+#define GPIO_PP1_SSI3XDAT3      0x000D040F
+
+#define GPIO_PP2_U0DTR          0x000D0801
+#define GPIO_PP2_USB0NXT        0x000D080E
+#define GPIO_PP2_EPI0S29        0x000D080F
+
+#define GPIO_PP3_U1CTS          0x000D0C01
+#define GPIO_PP3_U0DCD          0x000D0C02
+#define GPIO_PP3_RTCCLK         0x000D0C07
+#define GPIO_PP3_USB0DIR        0x000D0C0E
+#define GPIO_PP3_EPI0S30        0x000D0C0F
+
+#define GPIO_PP4_U3RTS          0x000D1001
+#define GPIO_PP4_U0DSR          0x000D1002
+#define GPIO_PP4_USB0D7         0x000D100E
+
+#define GPIO_PP5_U3CTS          0x000D1401
+#define GPIO_PP5_I2C2SCL        0x000D1402
+#define GPIO_PP5_USB0D6         0x000D140E
+
+#define GPIO_PP6_U1DCD          0x000D1801
+#define GPIO_PP6_I2C2SDA        0x000D1802
+
+#define GPIO_PQ0_T6CCP0         0x000E0003
+#define GPIO_PQ0_SSI3CLK        0x000E000E
+#define GPIO_PQ0_EPI0S20        0x000E000F
+
+#define GPIO_PQ1_T6CCP1         0x000E0403
+#define GPIO_PQ1_SSI3FSS        0x000E040E
+#define GPIO_PQ1_EPI0S21        0x000E040F
+
+#define GPIO_PQ2_T7CCP0         0x000E0803
+#define GPIO_PQ2_SSI3XDAT0      0x000E080E
+#define GPIO_PQ2_EPI0S22        0x000E080F
+
+#define GPIO_PQ3_T7CCP1         0x000E0C03
+#define GPIO_PQ3_SSI3XDAT1      0x000E0C0E
+#define GPIO_PQ3_EPI0S23        0x000E0C0F
+
+#define GPIO_PQ4_U1RX           0x000E1001
+#define GPIO_PQ4_DIVSCLK        0x000E1007
+
+#define GPIO_PQ5_U1TX           0x000E1401
+
+#define GPIO_PQ6_U1DTR          0x000E1801
+
+#define GPIO_PQ7_U1RI           0x000E1C01
+
+#define GPIO_PR0_U4TX           0x000F0001
+#define GPIO_PR0_I2C1SCL        0x000F0002
+#define GPIO_PR0_M0PWM0         0x000F0006
+#define GPIO_PR0_LCDCP          0x000F000F
+
+#define GPIO_PR1_U4RX           0x000F0401
+#define GPIO_PR1_I2C1SDA        0x000F0402
+#define GPIO_PR1_M0PWM1         0x000F0406
+#define GPIO_PR1_LCDFP          0x000F040F
+
+#define GPIO_PR2_I2C2SCL        0x000F0802
+#define GPIO_PR2_M0PWM2         0x000F0806
+#define GPIO_PR2_LCDLP          0x000F080F
+
+#define GPIO_PR3_I2C2SDA        0x000F0C02
+#define GPIO_PR3_M0PWM3         0x000F0C06
+#define GPIO_PR3_LCDDATA03      0x000F0C0F
+
+#define GPIO_PR4_I2C3SCL        0x000F1002
+#define GPIO_PR4_T0CCP0         0x000F1003
+#define GPIO_PR4_M0PWM4         0x000F1006
+#define GPIO_PR4_LCDDATA00      0x000F100F
+
+#define GPIO_PR5_U1RX           0x000F1401
+#define GPIO_PR5_I2C3SDA        0x000F1402
+#define GPIO_PR5_T0CCP1         0x000F1403
+#define GPIO_PR5_M0PWM5         0x000F1406
+#define GPIO_PR5_LCDDATA01      0x000F140F
+
+#define GPIO_PR6_U1TX           0x000F1801
+#define GPIO_PR6_I2C4SCL        0x000F1802
+#define GPIO_PR6_T1CCP0         0x000F1803
+#define GPIO_PR6_M0PWM6         0x000F1806
+#define GPIO_PR6_LCDDATA04      0x000F180F
+
+#define GPIO_PR7_I2C4SDA        0x000F1C02
+#define GPIO_PR7_T1CCP1         0x000F1C03
+#define GPIO_PR7_M0PWM7         0x000F1C06
+#define GPIO_PR7_LCDDATA05      0x000F1C0F
+
+#define GPIO_PS0_T2CCP0         0x00100003
+#define GPIO_PS0_M0FAULT0       0x00100006
+#define GPIO_PS0_LCDDATA20      0x0010000F
+
+#define GPIO_PS1_T2CCP1         0x00100403
+#define GPIO_PS1_M0FAULT1       0x00100406
+#define GPIO_PS1_LCDDATA21      0x0010040F
+
+#define GPIO_PS2_U1DSR          0x00100801
+#define GPIO_PS2_T3CCP0         0x00100803
+#define GPIO_PS2_M0FAULT2       0x00100806
+#define GPIO_PS2_LCDDATA22      0x0010080F
+
+#define GPIO_PS3_T3CCP1         0x00100C03
+#define GPIO_PS3_M0FAULT3       0x00100C06
+#define GPIO_PS3_LCDDATA23      0x00100C0F
+
+#define GPIO_PS4_T4CCP0         0x00101003
+#define GPIO_PS4_PHA0           0x00101006
+#define GPIO_PS4_LCDDATA06      0x0010100F
+
+#define GPIO_PS5_T4CCP1         0x00101403
+#define GPIO_PS5_PHB0           0x00101406
+#define GPIO_PS5_LCDDATA07      0x0010140F
+
+#define GPIO_PS6_T5CCP0         0x00101803
+#define GPIO_PS6_IDX0           0x00101806
+#define GPIO_PS6_LCDDATA08      0x0010180F
+
+#define GPIO_PS7_T5CCP1         0x00101C03
+#define GPIO_PS7_LCDDATA09      0x00101C0F
+
+#define GPIO_PT0_T6CCP0         0x00110003
+#define GPIO_PT0_CAN0RX         0x00110007
+#define GPIO_PT0_LCDDATA10      0x0011000F
+
+#define GPIO_PT1_T6CCP1         0x00110403
+#define GPIO_PT1_CAN0TX         0x00110407
+#define GPIO_PT1_LCDDATA11      0x0011040F
+
+#define GPIO_PT2_T7CCP0         0x00110803
+#define GPIO_PT2_CAN1RX         0x00110807
+#define GPIO_PT2_LCDDATA18      0x0011080F
+
+#define GPIO_PT3_T7CCP1         0x00110C03
+#define GPIO_PT3_CAN1TX         0x00110C07
+#define GPIO_PT3_LCDDATA19      0x00110C0F
+
+#endif // PART_TM4C1299KCZAD
+
+//*****************************************************************************
+//
+// TM4C1299NCZAD Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C1299NCZAD
+
+#define GPIO_PA0_U0RX           0x00000001
+#define GPIO_PA0_I2C9SCL        0x00000002
+#define GPIO_PA0_T0CCP0         0x00000003
+#define GPIO_PA0_CAN0RX         0x00000007
+
+#define GPIO_PA1_U0TX           0x00000401
+#define GPIO_PA1_I2C9SDA        0x00000402
+#define GPIO_PA1_T0CCP1         0x00000403
+#define GPIO_PA1_CAN0TX         0x00000407
+
+#define GPIO_PA2_U4RX           0x00000801
+#define GPIO_PA2_I2C8SCL        0x00000802
+#define GPIO_PA2_T1CCP0         0x00000803
+#define GPIO_PA2_SSI0CLK        0x0000080F
+
+#define GPIO_PA3_U4TX           0x00000C01
+#define GPIO_PA3_I2C8SDA        0x00000C02
+#define GPIO_PA3_T1CCP1         0x00000C03
+#define GPIO_PA3_SSI0FSS        0x00000C0F
+
+#define GPIO_PA4_U3RX           0x00001001
+#define GPIO_PA4_T2CCP0         0x00001003
+#define GPIO_PA4_I2C7SCL        0x00001002
+#define GPIO_PA4_SSI0XDAT0      0x0000100F
+
+#define GPIO_PA5_U3TX           0x00001401
+#define GPIO_PA5_T2CCP1         0x00001403
+#define GPIO_PA5_I2C7SDA        0x00001402
+#define GPIO_PA5_SSI0XDAT1      0x0000140F
+
+#define GPIO_PA6_U2RX           0x00001801
+#define GPIO_PA6_I2C6SCL        0x00001802
+#define GPIO_PA6_T3CCP0         0x00001803
+#define GPIO_PA6_USB0EPEN       0x00001805
+#define GPIO_PA6_SSI0XDAT2      0x0000180D
+#define GPIO_PA6_EPI0S8         0x0000180F
+
+#define GPIO_PA7_U2TX           0x00001C01
+#define GPIO_PA7_I2C6SDA        0x00001C02
+#define GPIO_PA7_T3CCP1         0x00001C03
+#define GPIO_PA7_USB0PFLT       0x00001C05
+#define GPIO_PA7_USB0EPEN       0x00001C0B
+#define GPIO_PA7_SSI0XDAT3      0x00001C0D
+#define GPIO_PA7_EPI0S9         0x00001C0F
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_I2C5SCL        0x00010002
+#define GPIO_PB0_CAN1RX         0x00010007
+#define GPIO_PB0_T4CCP0         0x00010003
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_I2C5SDA        0x00010402
+#define GPIO_PB1_CAN1TX         0x00010407
+#define GPIO_PB1_T4CCP1         0x00010403
+
+#define GPIO_PB2_T5CCP0         0x00010803
+#define GPIO_PB2_I2C0SCL        0x00010802
+#define GPIO_PB2_USB0STP        0x0001080E
+#define GPIO_PB2_EPI0S27        0x0001080F
+
+#define GPIO_PB3_I2C0SDA        0x00010C02
+#define GPIO_PB3_T5CCP1         0x00010C03
+#define GPIO_PB3_USB0CLK        0x00010C0E
+#define GPIO_PB3_EPI0S28        0x00010C0F
+
+#define GPIO_PB4_U0CTS          0x00011001
+#define GPIO_PB4_I2C5SCL        0x00011002
+#define GPIO_PB4_SSI1FSS        0x0001100F
+
+#define GPIO_PB5_U0RTS          0x00011401
+#define GPIO_PB5_I2C5SDA        0x00011402
+#define GPIO_PB5_SSI1CLK        0x0001140F
+
+#define GPIO_PB6_I2C6SCL        0x00011802
+#define GPIO_PB6_T6CCP0         0x00011803
+
+#define GPIO_PB7_I2C6SDA        0x00011C02
+#define GPIO_PB7_T6CCP1         0x00011C03
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+
+#define GPIO_PC2_TDI            0x00020801
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+
+#define GPIO_PC4_U7RX           0x00021001
+#define GPIO_PC4_T7CCP0         0x00021003
+#define GPIO_PC4_EPI0S7         0x0002100F
+
+#define GPIO_PC5_U7TX           0x00021401
+#define GPIO_PC5_T7CCP1         0x00021403
+#define GPIO_PC5_RTCCLK         0x00021407
+#define GPIO_PC5_EPI0S6         0x0002140F
+
+#define GPIO_PC6_U5RX           0x00021801
+#define GPIO_PC6_EPI0S5         0x0002180F
+
+#define GPIO_PC7_U5TX           0x00021C01
+#define GPIO_PC7_EPI0S4         0x00021C0F
+
+#define GPIO_PD0_I2C7SCL        0x00030002
+#define GPIO_PD0_T0CCP0         0x00030003
+#define GPIO_PD0_C0O            0x00030005
+#define GPIO_PD0_SSI2XDAT1      0x0003000F
+
+#define GPIO_PD1_I2C7SDA        0x00030402
+#define GPIO_PD1_T0CCP1         0x00030403
+#define GPIO_PD1_C1O            0x00030405
+#define GPIO_PD1_SSI2XDAT0      0x0003040F
+
+#define GPIO_PD2_I2C8SCL        0x00030802
+#define GPIO_PD2_T1CCP0         0x00030803
+#define GPIO_PD2_C2O            0x00030805
+#define GPIO_PD2_SSI2FSS        0x0003080F
+
+#define GPIO_PD3_I2C8SDA        0x00030C02
+#define GPIO_PD3_T1CCP1         0x00030C03
+#define GPIO_PD3_SSI2CLK        0x00030C0F
+
+#define GPIO_PD4_U2RX           0x00031001
+#define GPIO_PD4_T3CCP0         0x00031003
+#define GPIO_PD4_SSI1XDAT2      0x0003100F
+
+#define GPIO_PD5_U2TX           0x00031401
+#define GPIO_PD5_T3CCP1         0x00031403
+#define GPIO_PD5_SSI1XDAT3      0x0003140F
+
+#define GPIO_PD6_U2RTS          0x00031801
+#define GPIO_PD6_T4CCP0         0x00031803
+#define GPIO_PD6_USB0EPEN       0x00031805
+#define GPIO_PD6_SSI2XDAT3      0x0003180F
+
+#define GPIO_PD7_U2CTS          0x00031C01
+#define GPIO_PD7_T4CCP1         0x00031C03
+#define GPIO_PD7_USB0PFLT       0x00031C05
+#define GPIO_PD7_NMI            0x00031C08
+#define GPIO_PD7_SSI2XDAT2      0x00031C0F
+
+#define GPIO_PE0_U1RTS          0x00040001
+
+#define GPIO_PE1_U1DSR          0x00040401
+
+#define GPIO_PE2_U1DCD          0x00040801
+
+#define GPIO_PE3_U1DTR          0x00040C01
+
+#define GPIO_PE4_U1RI           0x00041001
+#define GPIO_PE4_SSI1XDAT0      0x0004100F
+
+#define GPIO_PE5_SSI1XDAT1      0x0004140F
+
+#define GPIO_PE6_U0CTS          0x00041801
+#define GPIO_PE6_I2C9SCL        0x00041802
+
+#define GPIO_PE7_U0RTS          0x00041C01
+#define GPIO_PE7_I2C9SDA        0x00041C02
+#define GPIO_PE7_NMI            0x00041C08
+
+#define GPIO_PF0_EN0LED0        0x00050005
+#define GPIO_PF0_M0PWM0         0x00050006
+#define GPIO_PF0_SSI3XDAT1      0x0005000E
+#define GPIO_PF0_TRD2           0x0005000F
+
+#define GPIO_PF1_EN0LED2        0x00050405
+#define GPIO_PF1_M0PWM1         0x00050406
+#define GPIO_PF1_SSI3XDAT0      0x0005040E
+#define GPIO_PF1_TRD1           0x0005040F
+
+#define GPIO_PF2_M0PWM2         0x00050806
+#define GPIO_PF2_SSI3FSS        0x0005080E
+#define GPIO_PF2_TRD0           0x0005080F
+
+#define GPIO_PF3_M0PWM3         0x00050C06
+#define GPIO_PF3_SSI3CLK        0x00050C0E
+#define GPIO_PF3_TRCLK          0x00050C0F
+
+#define GPIO_PF4_EN0LED1        0x00051005
+#define GPIO_PF4_M0FAULT0       0x00051006
+#define GPIO_PF4_SSI3XDAT2      0x0005100E
+#define GPIO_PF4_TRD3           0x0005100F
+
+#define GPIO_PF5_SSI3XDAT3      0x0005140E
+
+#define GPIO_PF6_LCDMCLK        0x0005180F
+
+#define GPIO_PF7_LCDDATA02      0x00051C0F
+
+#define GPIO_PG0_I2C1SCL        0x00060002
+#define GPIO_PG0_EN0PPS         0x00060005
+#define GPIO_PG0_M0PWM4         0x00060006
+#define GPIO_PG0_EPI0S11        0x0006000F
+
+#define GPIO_PG1_I2C1SDA        0x00060402
+#define GPIO_PG1_M0PWM5         0x00060406
+#define GPIO_PG1_EPI0S10        0x0006040F
+
+#define GPIO_PG2_I2C2SCL        0x00060802
+#define GPIO_PG2_SSI2XDAT3      0x0006080F
+
+#define GPIO_PG3_I2C2SDA        0x00060C02
+#define GPIO_PG3_SSI2XDAT2      0x00060C0F
+
+#define GPIO_PG4_U0CTS          0x00061001
+#define GPIO_PG4_I2C3SCL        0x00061002
+#define GPIO_PG4_SSI2XDAT1      0x0006100F
+
+#define GPIO_PG5_U0RTS          0x00061401
+#define GPIO_PG5_I2C3SDA        0x00061402
+#define GPIO_PG5_SSI2XDAT0      0x0006140F
+
+#define GPIO_PG6_I2C4SCL        0x00061802
+#define GPIO_PG6_SSI2FSS        0x0006180F
+
+#define GPIO_PG7_I2C4SDA        0x00061C02
+#define GPIO_PG7_SSI2CLK        0x00061C0F
+
+#define GPIO_PH0_U0RTS          0x00070001
+#define GPIO_PH0_EPI0S0         0x0007000F
+
+#define GPIO_PH1_U0CTS          0x00070401
+#define GPIO_PH1_EPI0S1         0x0007040F
+
+#define GPIO_PH2_U0DCD          0x00070801
+#define GPIO_PH2_EPI0S2         0x0007080F
+
+#define GPIO_PH3_U0DSR          0x00070C01
+#define GPIO_PH3_EPI0S3         0x00070C0F
+
+#define GPIO_PH4_U0DTR          0x00071001
+
+#define GPIO_PH5_U0RI           0x00071401
+#define GPIO_PH5_EN0PPS         0x00071405
+
+#define GPIO_PH6_U5RX           0x00071801
+#define GPIO_PH6_U7RX           0x00071802
+
+#define GPIO_PH7_U5TX           0x00071C01
+#define GPIO_PH7_U7TX           0x00071C02
+
+#define GPIO_PJ0_U3RX           0x00080001
+#define GPIO_PJ0_EN0PPS         0x00080005
+
+#define GPIO_PJ1_U3TX           0x00080401
+
+#define GPIO_PJ2_U2RTS          0x00080801
+#define GPIO_PJ2_LCDDATA14      0x0008080F
+
+#define GPIO_PJ3_U2CTS          0x00080C01
+#define GPIO_PJ3_LCDDATA15      0x00080C0F
+
+#define GPIO_PJ4_U3RTS          0x00081001
+#define GPIO_PJ4_LCDDATA16      0x0008100F
+
+#define GPIO_PJ5_U3CTS          0x00081401
+#define GPIO_PJ5_LCDDATA17      0x0008140F
+
+#define GPIO_PJ6_U4RTS          0x00081801
+#define GPIO_PJ6_LCDAC          0x0008180F
+
+#define GPIO_PJ7_U4CTS          0x00081C01
+
+#define GPIO_PK0_U4RX           0x00090001
+#define GPIO_PK0_EPI0S0         0x0009000F
+
+#define GPIO_PK1_U4TX           0x00090401
+#define GPIO_PK1_EPI0S1         0x0009040F
+
+#define GPIO_PK2_U4RTS          0x00090801
+#define GPIO_PK2_EPI0S2         0x0009080F
+
+#define GPIO_PK3_U4CTS          0x00090C01
+#define GPIO_PK3_EPI0S3         0x00090C0F
+
+#define GPIO_PK4_I2C3SCL        0x00091002
+#define GPIO_PK4_EN0LED0        0x00091005
+#define GPIO_PK4_M0PWM6         0x00091006
+#define GPIO_PK4_EPI0S32        0x0009100F
+
+#define GPIO_PK5_I2C3SDA        0x00091402
+#define GPIO_PK5_EN0LED2        0x00091405
+#define GPIO_PK5_M0PWM7         0x00091406
+#define GPIO_PK5_EPI0S31        0x0009140F
+
+#define GPIO_PK6_I2C4SCL        0x00091802
+#define GPIO_PK6_EN0LED1        0x00091805
+#define GPIO_PK6_M0FAULT1       0x00091806
+#define GPIO_PK6_EPI0S25        0x0009180F
+
+#define GPIO_PK7_U0RI           0x00091C01
+#define GPIO_PK7_I2C4SDA        0x00091C02
+#define GPIO_PK7_RTCCLK         0x00091C05
+#define GPIO_PK7_M0FAULT2       0x00091C06
+#define GPIO_PK7_EPI0S24        0x00091C0F
+
+#define GPIO_PL0_I2C2SDA        0x000A0002
+#define GPIO_PL0_M0FAULT3       0x000A0006
+#define GPIO_PL0_USB0D0         0x000A000E
+#define GPIO_PL0_EPI0S16        0x000A000F
+
+#define GPIO_PL1_I2C2SCL        0x000A0402
+#define GPIO_PL1_PHA0           0x000A0406
+#define GPIO_PL1_USB0D1         0x000A040E
+#define GPIO_PL1_EPI0S17        0x000A040F
+
+#define GPIO_PL2_C0O            0x000A0805
+#define GPIO_PL2_PHB0           0x000A0806
+#define GPIO_PL2_USB0D2         0x000A080E
+#define GPIO_PL2_EPI0S18        0x000A080F
+
+#define GPIO_PL3_C1O            0x000A0C05
+#define GPIO_PL3_IDX0           0x000A0C06
+#define GPIO_PL3_USB0D3         0x000A0C0E
+#define GPIO_PL3_EPI0S19        0x000A0C0F
+
+#define GPIO_PL4_T0CCP0         0x000A1003
+#define GPIO_PL4_USB0D4         0x000A100E
+#define GPIO_PL4_EPI0S26        0x000A100F
+
+#define GPIO_PL5_T0CCP1         0x000A1403
+#define GPIO_PL5_EPI0S33        0x000A140F
+#define GPIO_PL5_USB0D5         0x000A140E
+
+#define GPIO_PL6_T1CCP0         0x000A1803
+
+#define GPIO_PL7_T1CCP1         0x000A1C03
+
+#define GPIO_PM0_T2CCP0         0x000B0003
+#define GPIO_PM0_EPI0S15        0x000B000F
+
+#define GPIO_PM1_T2CCP1         0x000B0403
+#define GPIO_PM1_EPI0S14        0x000B040F
+
+#define GPIO_PM2_T3CCP0         0x000B0803
+#define GPIO_PM2_EPI0S13        0x000B080F
+
+#define GPIO_PM3_T3CCP1         0x000B0C03
+#define GPIO_PM3_EPI0S12        0x000B0C0F
+
+#define GPIO_PM4_U0CTS          0x000B1001
+#define GPIO_PM4_T4CCP0         0x000B1003
+
+#define GPIO_PM5_U0DCD          0x000B1401
+#define GPIO_PM5_T4CCP1         0x000B1403
+
+#define GPIO_PM6_U0DSR          0x000B1801
+#define GPIO_PM6_T5CCP0         0x000B1803
+
+#define GPIO_PM7_U0RI           0x000B1C01
+#define GPIO_PM7_T5CCP1         0x000B1C03
+
+#define GPIO_PN0_U1RTS          0x000C0001
+
+#define GPIO_PN1_U1CTS          0x000C0401
+
+#define GPIO_PN2_U1DCD          0x000C0801
+#define GPIO_PN2_U2RTS          0x000C0802
+#define GPIO_PN2_EPI0S29        0x000C080F
+
+#define GPIO_PN3_U1DSR          0x000C0C01
+#define GPIO_PN3_U2CTS          0x000C0C02
+#define GPIO_PN3_EPI0S30        0x000C0C0F
+
+#define GPIO_PN4_U1DTR          0x000C1001
+#define GPIO_PN4_U3RTS          0x000C1002
+#define GPIO_PN4_I2C2SDA        0x000C1003
+#define GPIO_PN4_EPI0S34        0x000C100F
+
+#define GPIO_PN5_U1RI           0x000C1401
+#define GPIO_PN5_U3CTS          0x000C1402
+#define GPIO_PN5_I2C2SCL        0x000C1403
+#define GPIO_PN5_EPI0S35        0x000C140F
+
+#define GPIO_PN6_U4RTS          0x000C1802
+#define GPIO_PN6_LCDDATA13      0x000C180F
+
+#define GPIO_PN7_U1RTS          0x000C1C01
+#define GPIO_PN7_U4CTS          0x000C1C02
+#define GPIO_PN7_LCDDATA12      0x000C1C0F
+
+#define GPIO_PP0_U6RX           0x000D0001
+#define GPIO_PP0_T6CCP0         0x000D0005
+#define GPIO_PP0_SSI3XDAT2      0x000D000F
+
+#define GPIO_PP1_U6TX           0x000D0401
+#define GPIO_PP1_T6CCP1         0x000D0405
+#define GPIO_PP1_SSI3XDAT3      0x000D040F
+
+#define GPIO_PP2_U0DTR          0x000D0801
+#define GPIO_PP2_USB0NXT        0x000D080E
+#define GPIO_PP2_EPI0S29        0x000D080F
+
+#define GPIO_PP3_U1CTS          0x000D0C01
+#define GPIO_PP3_U0DCD          0x000D0C02
+#define GPIO_PP3_RTCCLK         0x000D0C07
+#define GPIO_PP3_USB0DIR        0x000D0C0E
+#define GPIO_PP3_EPI0S30        0x000D0C0F
+
+#define GPIO_PP4_U3RTS          0x000D1001
+#define GPIO_PP4_U0DSR          0x000D1002
+#define GPIO_PP4_USB0D7         0x000D100E
+
+#define GPIO_PP5_U3CTS          0x000D1401
+#define GPIO_PP5_I2C2SCL        0x000D1402
+#define GPIO_PP5_USB0D6         0x000D140E
+
+#define GPIO_PP6_U1DCD          0x000D1801
+#define GPIO_PP6_I2C2SDA        0x000D1802
+
+#define GPIO_PQ0_T6CCP0         0x000E0003
+#define GPIO_PQ0_SSI3CLK        0x000E000E
+#define GPIO_PQ0_EPI0S20        0x000E000F
+
+#define GPIO_PQ1_T6CCP1         0x000E0403
+#define GPIO_PQ1_SSI3FSS        0x000E040E
+#define GPIO_PQ1_EPI0S21        0x000E040F
+
+#define GPIO_PQ2_T7CCP0         0x000E0803
+#define GPIO_PQ2_SSI3XDAT0      0x000E080E
+#define GPIO_PQ2_EPI0S22        0x000E080F
+
+#define GPIO_PQ3_T7CCP1         0x000E0C03
+#define GPIO_PQ3_SSI3XDAT1      0x000E0C0E
+#define GPIO_PQ3_EPI0S23        0x000E0C0F
+
+#define GPIO_PQ4_U1RX           0x000E1001
+#define GPIO_PQ4_DIVSCLK        0x000E1007
+
+#define GPIO_PQ5_U1TX           0x000E1401
+
+#define GPIO_PQ6_U1DTR          0x000E1801
+
+#define GPIO_PQ7_U1RI           0x000E1C01
+
+#define GPIO_PR0_U4TX           0x000F0001
+#define GPIO_PR0_I2C1SCL        0x000F0002
+#define GPIO_PR0_M0PWM0         0x000F0006
+#define GPIO_PR0_LCDCP          0x000F000F
+
+#define GPIO_PR1_U4RX           0x000F0401
+#define GPIO_PR1_I2C1SDA        0x000F0402
+#define GPIO_PR1_M0PWM1         0x000F0406
+#define GPIO_PR1_LCDFP          0x000F040F
+
+#define GPIO_PR2_I2C2SCL        0x000F0802
+#define GPIO_PR2_M0PWM2         0x000F0806
+#define GPIO_PR2_LCDLP          0x000F080F
+
+#define GPIO_PR3_I2C2SDA        0x000F0C02
+#define GPIO_PR3_M0PWM3         0x000F0C06
+#define GPIO_PR3_LCDDATA03      0x000F0C0F
+
+#define GPIO_PR4_I2C3SCL        0x000F1002
+#define GPIO_PR4_T0CCP0         0x000F1003
+#define GPIO_PR4_M0PWM4         0x000F1006
+#define GPIO_PR4_LCDDATA00      0x000F100F
+
+#define GPIO_PR5_U1RX           0x000F1401
+#define GPIO_PR5_I2C3SDA        0x000F1402
+#define GPIO_PR5_T0CCP1         0x000F1403
+#define GPIO_PR5_M0PWM5         0x000F1406
+#define GPIO_PR5_LCDDATA01      0x000F140F
+
+#define GPIO_PR6_U1TX           0x000F1801
+#define GPIO_PR6_I2C4SCL        0x000F1802
+#define GPIO_PR6_T1CCP0         0x000F1803
+#define GPIO_PR6_M0PWM6         0x000F1806
+#define GPIO_PR6_LCDDATA04      0x000F180F
+
+#define GPIO_PR7_I2C4SDA        0x000F1C02
+#define GPIO_PR7_T1CCP1         0x000F1C03
+#define GPIO_PR7_M0PWM7         0x000F1C06
+#define GPIO_PR7_LCDDATA05      0x000F1C0F
+
+#define GPIO_PS0_T2CCP0         0x00100003
+#define GPIO_PS0_M0FAULT0       0x00100006
+#define GPIO_PS0_LCDDATA20      0x0010000F
+
+#define GPIO_PS1_T2CCP1         0x00100403
+#define GPIO_PS1_M0FAULT1       0x00100406
+#define GPIO_PS1_LCDDATA21      0x0010040F
+
+#define GPIO_PS2_U1DSR          0x00100801
+#define GPIO_PS2_T3CCP0         0x00100803
+#define GPIO_PS2_M0FAULT2       0x00100806
+#define GPIO_PS2_LCDDATA22      0x0010080F
+
+#define GPIO_PS3_T3CCP1         0x00100C03
+#define GPIO_PS3_M0FAULT3       0x00100C06
+#define GPIO_PS3_LCDDATA23      0x00100C0F
+
+#define GPIO_PS4_T4CCP0         0x00101003
+#define GPIO_PS4_PHA0           0x00101006
+#define GPIO_PS4_LCDDATA06      0x0010100F
+
+#define GPIO_PS5_T4CCP1         0x00101403
+#define GPIO_PS5_PHB0           0x00101406
+#define GPIO_PS5_LCDDATA07      0x0010140F
+
+#define GPIO_PS6_T5CCP0         0x00101803
+#define GPIO_PS6_IDX0           0x00101806
+#define GPIO_PS6_LCDDATA08      0x0010180F
+
+#define GPIO_PS7_T5CCP1         0x00101C03
+#define GPIO_PS7_LCDDATA09      0x00101C0F
+
+#define GPIO_PT0_T6CCP0         0x00110003
+#define GPIO_PT0_CAN0RX         0x00110007
+#define GPIO_PT0_LCDDATA10      0x0011000F
+
+#define GPIO_PT1_T6CCP1         0x00110403
+#define GPIO_PT1_CAN0TX         0x00110407
+#define GPIO_PT1_LCDDATA11      0x0011040F
+
+#define GPIO_PT2_T7CCP0         0x00110803
+#define GPIO_PT2_CAN1RX         0x00110807
+#define GPIO_PT2_LCDDATA18      0x0011080F
+
+#define GPIO_PT3_T7CCP1         0x00110C03
+#define GPIO_PT3_CAN1TX         0x00110C07
+#define GPIO_PT3_LCDDATA19      0x00110C0F
+
+#endif // PART_TM4C1299NCZAD
+
+//*****************************************************************************
+//
+// TM4C129CNCPDT Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C129CNCPDT
+
+#define GPIO_PA0_U0RX           0x00000001
+#define GPIO_PA0_I2C9SCL        0x00000002
+#define GPIO_PA0_T0CCP0         0x00000003
+#define GPIO_PA0_CAN0RX         0x00000007
+
+#define GPIO_PA1_U0TX           0x00000401
+#define GPIO_PA1_I2C9SDA        0x00000402
+#define GPIO_PA1_T0CCP1         0x00000403
+#define GPIO_PA1_CAN0TX         0x00000407
+
+#define GPIO_PA2_U4RX           0x00000801
+#define GPIO_PA2_I2C8SCL        0x00000802
+#define GPIO_PA2_T1CCP0         0x00000803
+#define GPIO_PA2_SSI0CLK        0x0000080F
+
+#define GPIO_PA3_U4TX           0x00000C01
+#define GPIO_PA3_I2C8SDA        0x00000C02
+#define GPIO_PA3_T1CCP1         0x00000C03
+#define GPIO_PA3_SSI0FSS        0x00000C0F
+
+#define GPIO_PA4_U3RX           0x00001001
+#define GPIO_PA4_T2CCP0         0x00001003
+#define GPIO_PA4_I2C7SCL        0x00001002
+#define GPIO_PA4_SSI0XDAT0      0x0000100F
+
+#define GPIO_PA5_U3TX           0x00001401
+#define GPIO_PA5_T2CCP1         0x00001403
+#define GPIO_PA5_I2C7SDA        0x00001402
+#define GPIO_PA5_SSI0XDAT1      0x0000140F
+
+#define GPIO_PA6_U2RX           0x00001801
+#define GPIO_PA6_I2C6SCL        0x00001802
+#define GPIO_PA6_T3CCP0         0x00001803
+#define GPIO_PA6_USB0EPEN       0x00001805
+#define GPIO_PA6_SSI0XDAT2      0x0000180D
+#define GPIO_PA6_EPI0S8         0x0000180F
+
+#define GPIO_PA7_U2TX           0x00001C01
+#define GPIO_PA7_I2C6SDA        0x00001C02
+#define GPIO_PA7_T3CCP1         0x00001C03
+#define GPIO_PA7_USB0PFLT       0x00001C05
+#define GPIO_PA7_USB0EPEN       0x00001C0B
+#define GPIO_PA7_SSI0XDAT3      0x00001C0D
+#define GPIO_PA7_EPI0S9         0x00001C0F
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_I2C5SCL        0x00010002
+#define GPIO_PB0_CAN1RX         0x00010007
+#define GPIO_PB0_T4CCP0         0x00010003
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_I2C5SDA        0x00010402
+#define GPIO_PB1_CAN1TX         0x00010407
+#define GPIO_PB1_T4CCP1         0x00010403
+
+#define GPIO_PB2_T5CCP0         0x00010803
+#define GPIO_PB2_I2C0SCL        0x00010802
+#define GPIO_PB2_USB0STP        0x0001080E
+#define GPIO_PB2_EPI0S27        0x0001080F
+
+#define GPIO_PB3_I2C0SDA        0x00010C02
+#define GPIO_PB3_T5CCP1         0x00010C03
+#define GPIO_PB3_USB0CLK        0x00010C0E
+#define GPIO_PB3_EPI0S28        0x00010C0F
+
+#define GPIO_PB4_U0CTS          0x00011001
+#define GPIO_PB4_I2C5SCL        0x00011002
+#define GPIO_PB4_SSI1FSS        0x0001100F
+
+#define GPIO_PB5_U0RTS          0x00011401
+#define GPIO_PB5_I2C5SDA        0x00011402
+#define GPIO_PB5_SSI1CLK        0x0001140F
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+
+#define GPIO_PC2_TDI            0x00020801
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+
+#define GPIO_PC4_U7RX           0x00021001
+#define GPIO_PC4_EPI0S7         0x0002100F
+
+#define GPIO_PC5_U7TX           0x00021401
+#define GPIO_PC5_RTCCLK         0x00021407
+#define GPIO_PC5_EPI0S6         0x0002140F
+
+#define GPIO_PC6_U5RX           0x00021801
+#define GPIO_PC6_EPI0S5         0x0002180F
+
+#define GPIO_PC7_U5TX           0x00021C01
+#define GPIO_PC7_EPI0S4         0x00021C0F
+
+#define GPIO_PD0_I2C7SCL        0x00030002
+#define GPIO_PD0_T0CCP0         0x00030003
+#define GPIO_PD0_C0O            0x00030005
+#define GPIO_PD0_SSI2XDAT1      0x0003000F
+
+#define GPIO_PD1_I2C7SDA        0x00030402
+#define GPIO_PD1_T0CCP1         0x00030403
+#define GPIO_PD1_C1O            0x00030405
+#define GPIO_PD1_SSI2XDAT0      0x0003040F
+
+#define GPIO_PD2_I2C8SCL        0x00030802
+#define GPIO_PD2_T1CCP0         0x00030803
+#define GPIO_PD2_C2O            0x00030805
+#define GPIO_PD2_SSI2FSS        0x0003080F
+
+#define GPIO_PD3_I2C8SDA        0x00030C02
+#define GPIO_PD3_T1CCP1         0x00030C03
+#define GPIO_PD3_SSI2CLK        0x00030C0F
+
+#define GPIO_PD4_U2RX           0x00031001
+#define GPIO_PD4_T3CCP0         0x00031003
+#define GPIO_PD4_SSI1XDAT2      0x0003100F
+
+#define GPIO_PD5_U2TX           0x00031401
+#define GPIO_PD5_T3CCP1         0x00031403
+#define GPIO_PD5_SSI1XDAT3      0x0003140F
+
+#define GPIO_PD6_U2RTS          0x00031801
+#define GPIO_PD6_T4CCP0         0x00031803
+#define GPIO_PD6_USB0EPEN       0x00031805
+#define GPIO_PD6_SSI2XDAT3      0x0003180F
+
+#define GPIO_PD7_U2CTS          0x00031C01
+#define GPIO_PD7_T4CCP1         0x00031C03
+#define GPIO_PD7_USB0PFLT       0x00031C05
+#define GPIO_PD7_NMI            0x00031C08
+#define GPIO_PD7_SSI2XDAT2      0x00031C0F
+
+#define GPIO_PE0_U1RTS          0x00040001
+
+#define GPIO_PE1_U1DSR          0x00040401
+
+#define GPIO_PE2_U1DCD          0x00040801
+
+#define GPIO_PE3_U1DTR          0x00040C01
+
+#define GPIO_PE4_U1RI           0x00041001
+#define GPIO_PE4_SSI1XDAT0      0x0004100F
+
+#define GPIO_PE5_SSI1XDAT1      0x0004140F
+
+#define GPIO_PF0_M0PWM0         0x00050006
+#define GPIO_PF0_SSI3XDAT1      0x0005000E
+#define GPIO_PF0_TRD2           0x0005000F
+
+#define GPIO_PF1_M0PWM1         0x00050406
+#define GPIO_PF1_SSI3XDAT0      0x0005040E
+#define GPIO_PF1_TRD1           0x0005040F
+
+#define GPIO_PF2_M0PWM2         0x00050806
+#define GPIO_PF2_SSI3FSS        0x0005080E
+#define GPIO_PF2_TRD0           0x0005080F
+
+#define GPIO_PF3_M0PWM3         0x00050C06
+#define GPIO_PF3_SSI3CLK        0x00050C0E
+#define GPIO_PF3_TRCLK          0x00050C0F
+
+#define GPIO_PF4_M0FAULT0       0x00051006
+#define GPIO_PF4_SSI3XDAT2      0x0005100E
+#define GPIO_PF4_TRD3           0x0005100F
+
+#define GPIO_PG0_I2C1SCL        0x00060002
+#define GPIO_PG0_M0PWM4         0x00060006
+#define GPIO_PG0_EPI0S11        0x0006000F
+
+#define GPIO_PG1_I2C1SDA        0x00060402
+#define GPIO_PG1_M0PWM5         0x00060406
+#define GPIO_PG1_EPI0S10        0x0006040F
+
+#define GPIO_PG2_I2C2SCL        0x00060802
+#define GPIO_PG2_SSI2XDAT3      0x0006080F
+
+#define GPIO_PG3_I2C2SDA        0x00060C02
+#define GPIO_PG3_SSI2XDAT2      0x00060C0F
+
+#define GPIO_PG4_U0CTS          0x00061001
+#define GPIO_PG4_I2C3SCL        0x00061002
+#define GPIO_PG4_SSI2XDAT1      0x0006100F
+
+#define GPIO_PG5_U0RTS          0x00061401
+#define GPIO_PG5_I2C3SDA        0x00061402
+#define GPIO_PG5_SSI2XDAT0      0x0006140F
+
+#define GPIO_PG6_I2C4SCL        0x00061802
+#define GPIO_PG6_SSI2FSS        0x0006180F
+
+#define GPIO_PG7_I2C4SDA        0x00061C02
+#define GPIO_PG7_SSI2CLK        0x00061C0F
+
+#define GPIO_PH0_U0RTS          0x00070001
+#define GPIO_PH0_EPI0S0         0x0007000F
+
+#define GPIO_PH1_U0CTS          0x00070401
+#define GPIO_PH1_EPI0S1         0x0007040F
+
+#define GPIO_PH2_U0DCD          0x00070801
+#define GPIO_PH2_EPI0S2         0x0007080F
+
+#define GPIO_PH3_U0DSR          0x00070C01
+#define GPIO_PH3_EPI0S3         0x00070C0F
+
+#define GPIO_PJ0_U3RX           0x00080001
+
+#define GPIO_PJ1_U3TX           0x00080401
+
+#define GPIO_PK0_U4RX           0x00090001
+#define GPIO_PK0_EPI0S0         0x0009000F
+
+#define GPIO_PK1_U4TX           0x00090401
+#define GPIO_PK1_EPI0S1         0x0009040F
+
+#define GPIO_PK2_U4RTS          0x00090801
+#define GPIO_PK2_EPI0S2         0x0009080F
+
+#define GPIO_PK3_U4CTS          0x00090C01
+#define GPIO_PK3_EPI0S3         0x00090C0F
+
+#define GPIO_PK4_I2C3SCL        0x00091002
+#define GPIO_PK4_M0PWM6         0x00091006
+#define GPIO_PK4_EPI0S32        0x0009100F
+
+#define GPIO_PK5_I2C3SDA        0x00091402
+#define GPIO_PK5_M0PWM7         0x00091406
+#define GPIO_PK5_EPI0S31        0x0009140F
+
+#define GPIO_PK6_I2C4SCL        0x00091802
+#define GPIO_PK6_M0FAULT1       0x00091806
+#define GPIO_PK6_EPI0S25        0x0009180F
+
+#define GPIO_PK7_U0RI           0x00091C01
+#define GPIO_PK7_I2C4SDA        0x00091C02
+#define GPIO_PK7_RTCCLK         0x00091C05
+#define GPIO_PK7_M0FAULT2       0x00091C06
+#define GPIO_PK7_EPI0S24        0x00091C0F
+
+#define GPIO_PL0_I2C2SDA        0x000A0002
+#define GPIO_PL0_M0FAULT3       0x000A0006
+#define GPIO_PL0_USB0D0         0x000A000E
+#define GPIO_PL0_EPI0S16        0x000A000F
+
+#define GPIO_PL1_I2C2SCL        0x000A0402
+#define GPIO_PL1_PHA0           0x000A0406
+#define GPIO_PL1_USB0D1         0x000A040E
+#define GPIO_PL1_EPI0S17        0x000A040F
+
+#define GPIO_PL2_C0O            0x000A0805
+#define GPIO_PL2_PHB0           0x000A0806
+#define GPIO_PL2_USB0D2         0x000A080E
+#define GPIO_PL2_EPI0S18        0x000A080F
+
+#define GPIO_PL3_C1O            0x000A0C05
+#define GPIO_PL3_IDX0           0x000A0C06
+#define GPIO_PL3_USB0D3         0x000A0C0E
+#define GPIO_PL3_EPI0S19        0x000A0C0F
+
+#define GPIO_PL4_T0CCP0         0x000A1003
+#define GPIO_PL4_USB0D4         0x000A100E
+#define GPIO_PL4_EPI0S26        0x000A100F
+
+#define GPIO_PL5_T0CCP1         0x000A1403
+#define GPIO_PL5_EPI0S33        0x000A140F
+#define GPIO_PL5_USB0D5         0x000A140E
+
+#define GPIO_PL6_T1CCP0         0x000A1803
+
+#define GPIO_PL7_T1CCP1         0x000A1C03
+
+#define GPIO_PM0_T2CCP0         0x000B0003
+#define GPIO_PM0_EPI0S15        0x000B000F
+
+#define GPIO_PM1_T2CCP1         0x000B0403
+#define GPIO_PM1_EPI0S14        0x000B040F
+
+#define GPIO_PM2_T3CCP0         0x000B0803
+#define GPIO_PM2_EPI0S13        0x000B080F
+
+#define GPIO_PM3_T3CCP1         0x000B0C03
+#define GPIO_PM3_EPI0S12        0x000B0C0F
+
+#define GPIO_PM4_U0CTS          0x000B1001
+#define GPIO_PM4_T4CCP0         0x000B1003
+
+#define GPIO_PM5_U0DCD          0x000B1401
+#define GPIO_PM5_T4CCP1         0x000B1403
+
+#define GPIO_PM6_U0DSR          0x000B1801
+#define GPIO_PM6_T5CCP0         0x000B1803
+
+#define GPIO_PM7_U0RI           0x000B1C01
+#define GPIO_PM7_T5CCP1         0x000B1C03
+
+#define GPIO_PN0_U1RTS          0x000C0001
+
+#define GPIO_PN1_U1CTS          0x000C0401
+
+#define GPIO_PN2_U1DCD          0x000C0801
+#define GPIO_PN2_U2RTS          0x000C0802
+#define GPIO_PN2_EPI0S29        0x000C080F
+
+#define GPIO_PN3_U1DSR          0x000C0C01
+#define GPIO_PN3_U2CTS          0x000C0C02
+#define GPIO_PN3_EPI0S30        0x000C0C0F
+
+#define GPIO_PN4_U1DTR          0x000C1001
+#define GPIO_PN4_U3RTS          0x000C1002
+#define GPIO_PN4_I2C2SDA        0x000C1003
+#define GPIO_PN4_EPI0S34        0x000C100F
+
+#define GPIO_PN5_U1RI           0x000C1401
+#define GPIO_PN5_U3CTS          0x000C1402
+#define GPIO_PN5_I2C2SCL        0x000C1403
+#define GPIO_PN5_EPI0S35        0x000C140F
+
+#define GPIO_PP0_U6RX           0x000D0001
+#define GPIO_PP0_SSI3XDAT2      0x000D000F
+
+#define GPIO_PP1_U6TX           0x000D0401
+#define GPIO_PP1_SSI3XDAT3      0x000D040F
+
+#define GPIO_PP2_U0DTR          0x000D0801
+#define GPIO_PP2_USB0NXT        0x000D080E
+#define GPIO_PP2_EPI0S29        0x000D080F
+
+#define GPIO_PP3_U1CTS          0x000D0C01
+#define GPIO_PP3_U0DCD          0x000D0C02
+#define GPIO_PP3_RTCCLK         0x000D0C07
+#define GPIO_PP3_USB0DIR        0x000D0C0E
+#define GPIO_PP3_EPI0S30        0x000D0C0F
+
+#define GPIO_PP4_U3RTS          0x000D1001
+#define GPIO_PP4_U0DSR          0x000D1002
+#define GPIO_PP4_USB0D7         0x000D100E
+
+#define GPIO_PP5_U3CTS          0x000D1401
+#define GPIO_PP5_I2C2SCL        0x000D1402
+#define GPIO_PP5_USB0D6         0x000D140E
+
+#define GPIO_PQ0_SSI3CLK        0x000E000E
+#define GPIO_PQ0_EPI0S20        0x000E000F
+
+#define GPIO_PQ1_SSI3FSS        0x000E040E
+#define GPIO_PQ1_EPI0S21        0x000E040F
+
+#define GPIO_PQ2_SSI3XDAT0      0x000E080E
+#define GPIO_PQ2_EPI0S22        0x000E080F
+
+#define GPIO_PQ3_SSI3XDAT1      0x000E0C0E
+#define GPIO_PQ3_EPI0S23        0x000E0C0F
+
+#define GPIO_PQ4_U1RX           0x000E1001
+#define GPIO_PQ4_DIVSCLK        0x000E1007
+
+#define GPIO_PQ5_U1TX           0x000E1401
+
+#define GPIO_PQ6_U1DTR          0x000E1801
+
+#endif // PART_TM4C129CNCPDT
+
+//*****************************************************************************
+//
+// TM4C129CNCZAD Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C129CNCZAD
+
+#define GPIO_PA0_U0RX           0x00000001
+#define GPIO_PA0_I2C9SCL        0x00000002
+#define GPIO_PA0_T0CCP0         0x00000003
+#define GPIO_PA0_CAN0RX         0x00000007
+
+#define GPIO_PA1_U0TX           0x00000401
+#define GPIO_PA1_I2C9SDA        0x00000402
+#define GPIO_PA1_T0CCP1         0x00000403
+#define GPIO_PA1_CAN0TX         0x00000407
+
+#define GPIO_PA2_U4RX           0x00000801
+#define GPIO_PA2_I2C8SCL        0x00000802
+#define GPIO_PA2_T1CCP0         0x00000803
+#define GPIO_PA2_SSI0CLK        0x0000080F
+
+#define GPIO_PA3_U4TX           0x00000C01
+#define GPIO_PA3_I2C8SDA        0x00000C02
+#define GPIO_PA3_T1CCP1         0x00000C03
+#define GPIO_PA3_SSI0FSS        0x00000C0F
+
+#define GPIO_PA4_U3RX           0x00001001
+#define GPIO_PA4_T2CCP0         0x00001003
+#define GPIO_PA4_I2C7SCL        0x00001002
+#define GPIO_PA4_SSI0XDAT0      0x0000100F
+
+#define GPIO_PA5_U3TX           0x00001401
+#define GPIO_PA5_T2CCP1         0x00001403
+#define GPIO_PA5_I2C7SDA        0x00001402
+#define GPIO_PA5_SSI0XDAT1      0x0000140F
+
+#define GPIO_PA6_U2RX           0x00001801
+#define GPIO_PA6_I2C6SCL        0x00001802
+#define GPIO_PA6_T3CCP0         0x00001803
+#define GPIO_PA6_USB0EPEN       0x00001805
+#define GPIO_PA6_SSI0XDAT2      0x0000180D
+#define GPIO_PA6_EPI0S8         0x0000180F
+
+#define GPIO_PA7_U2TX           0x00001C01
+#define GPIO_PA7_I2C6SDA        0x00001C02
+#define GPIO_PA7_T3CCP1         0x00001C03
+#define GPIO_PA7_USB0PFLT       0x00001C05
+#define GPIO_PA7_USB0EPEN       0x00001C0B
+#define GPIO_PA7_SSI0XDAT3      0x00001C0D
+#define GPIO_PA7_EPI0S9         0x00001C0F
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_I2C5SCL        0x00010002
+#define GPIO_PB0_CAN1RX         0x00010007
+#define GPIO_PB0_T4CCP0         0x00010003
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_I2C5SDA        0x00010402
+#define GPIO_PB1_CAN1TX         0x00010407
+#define GPIO_PB1_T4CCP1         0x00010403
+
+#define GPIO_PB2_T5CCP0         0x00010803
+#define GPIO_PB2_I2C0SCL        0x00010802
+#define GPIO_PB2_USB0STP        0x0001080E
+#define GPIO_PB2_EPI0S27        0x0001080F
+
+#define GPIO_PB3_I2C0SDA        0x00010C02
+#define GPIO_PB3_T5CCP1         0x00010C03
+#define GPIO_PB3_USB0CLK        0x00010C0E
+#define GPIO_PB3_EPI0S28        0x00010C0F
+
+#define GPIO_PB4_U0CTS          0x00011001
+#define GPIO_PB4_I2C5SCL        0x00011002
+#define GPIO_PB4_SSI1FSS        0x0001100F
+
+#define GPIO_PB5_U0RTS          0x00011401
+#define GPIO_PB5_I2C5SDA        0x00011402
+#define GPIO_PB5_SSI1CLK        0x0001140F
+
+#define GPIO_PB6_I2C6SCL        0x00011802
+#define GPIO_PB6_T6CCP0         0x00011803
+
+#define GPIO_PB7_I2C6SDA        0x00011C02
+#define GPIO_PB7_T6CCP1         0x00011C03
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+
+#define GPIO_PC2_TDI            0x00020801
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+
+#define GPIO_PC4_U7RX           0x00021001
+#define GPIO_PC4_T7CCP0         0x00021003
+#define GPIO_PC4_EPI0S7         0x0002100F
+
+#define GPIO_PC5_U7TX           0x00021401
+#define GPIO_PC5_T7CCP1         0x00021403
+#define GPIO_PC5_RTCCLK         0x00021407
+#define GPIO_PC5_EPI0S6         0x0002140F
+
+#define GPIO_PC6_U5RX           0x00021801
+#define GPIO_PC6_EPI0S5         0x0002180F
+
+#define GPIO_PC7_U5TX           0x00021C01
+#define GPIO_PC7_EPI0S4         0x00021C0F
+
+#define GPIO_PD0_I2C7SCL        0x00030002
+#define GPIO_PD0_T0CCP0         0x00030003
+#define GPIO_PD0_C0O            0x00030005
+#define GPIO_PD0_SSI2XDAT1      0x0003000F
+
+#define GPIO_PD1_I2C7SDA        0x00030402
+#define GPIO_PD1_T0CCP1         0x00030403
+#define GPIO_PD1_C1O            0x00030405
+#define GPIO_PD1_SSI2XDAT0      0x0003040F
+
+#define GPIO_PD2_I2C8SCL        0x00030802
+#define GPIO_PD2_T1CCP0         0x00030803
+#define GPIO_PD2_C2O            0x00030805
+#define GPIO_PD2_SSI2FSS        0x0003080F
+
+#define GPIO_PD3_I2C8SDA        0x00030C02
+#define GPIO_PD3_T1CCP1         0x00030C03
+#define GPIO_PD3_SSI2CLK        0x00030C0F
+
+#define GPIO_PD4_U2RX           0x00031001
+#define GPIO_PD4_T3CCP0         0x00031003
+#define GPIO_PD4_SSI1XDAT2      0x0003100F
+
+#define GPIO_PD5_U2TX           0x00031401
+#define GPIO_PD5_T3CCP1         0x00031403
+#define GPIO_PD5_SSI1XDAT3      0x0003140F
+
+#define GPIO_PD6_U2RTS          0x00031801
+#define GPIO_PD6_T4CCP0         0x00031803
+#define GPIO_PD6_USB0EPEN       0x00031805
+#define GPIO_PD6_SSI2XDAT3      0x0003180F
+
+#define GPIO_PD7_U2CTS          0x00031C01
+#define GPIO_PD7_T4CCP1         0x00031C03
+#define GPIO_PD7_USB0PFLT       0x00031C05
+#define GPIO_PD7_NMI            0x00031C08
+#define GPIO_PD7_SSI2XDAT2      0x00031C0F
+
+#define GPIO_PE0_U1RTS          0x00040001
+
+#define GPIO_PE1_U1DSR          0x00040401
+
+#define GPIO_PE2_U1DCD          0x00040801
+
+#define GPIO_PE3_U1DTR          0x00040C01
+
+#define GPIO_PE4_U1RI           0x00041001
+#define GPIO_PE4_SSI1XDAT0      0x0004100F
+
+#define GPIO_PE5_SSI1XDAT1      0x0004140F
+
+#define GPIO_PE6_U0CTS          0x00041801
+#define GPIO_PE6_I2C9SCL        0x00041802
+
+#define GPIO_PE7_U0RTS          0x00041C01
+#define GPIO_PE7_I2C9SDA        0x00041C02
+#define GPIO_PE7_NMI            0x00041C08
+
+#define GPIO_PF0_M0PWM0         0x00050006
+#define GPIO_PF0_SSI3XDAT1      0x0005000E
+#define GPIO_PF0_TRD2           0x0005000F
+
+#define GPIO_PF1_M0PWM1         0x00050406
+#define GPIO_PF1_SSI3XDAT0      0x0005040E
+#define GPIO_PF1_TRD1           0x0005040F
+
+#define GPIO_PF2_M0PWM2         0x00050806
+#define GPIO_PF2_SSI3FSS        0x0005080E
+#define GPIO_PF2_TRD0           0x0005080F
+
+#define GPIO_PF3_M0PWM3         0x00050C06
+#define GPIO_PF3_SSI3CLK        0x00050C0E
+#define GPIO_PF3_TRCLK          0x00050C0F
+
+#define GPIO_PF4_M0FAULT0       0x00051006
+#define GPIO_PF4_SSI3XDAT2      0x0005100E
+#define GPIO_PF4_TRD3           0x0005100F
+
+#define GPIO_PF5_SSI3XDAT3      0x0005140E
+
+#define GPIO_PG0_I2C1SCL        0x00060002
+#define GPIO_PG0_M0PWM4         0x00060006
+#define GPIO_PG0_EPI0S11        0x0006000F
+
+#define GPIO_PG1_I2C1SDA        0x00060402
+#define GPIO_PG1_M0PWM5         0x00060406
+#define GPIO_PG1_EPI0S10        0x0006040F
+
+#define GPIO_PG2_I2C2SCL        0x00060802
+#define GPIO_PG2_SSI2XDAT3      0x0006080F
+
+#define GPIO_PG3_I2C2SDA        0x00060C02
+#define GPIO_PG3_SSI2XDAT2      0x00060C0F
+
+#define GPIO_PG4_U0CTS          0x00061001
+#define GPIO_PG4_I2C3SCL        0x00061002
+#define GPIO_PG4_SSI2XDAT1      0x0006100F
+
+#define GPIO_PG5_U0RTS          0x00061401
+#define GPIO_PG5_I2C3SDA        0x00061402
+#define GPIO_PG5_SSI2XDAT0      0x0006140F
+
+#define GPIO_PG6_I2C4SCL        0x00061802
+#define GPIO_PG6_SSI2FSS        0x0006180F
+
+#define GPIO_PG7_I2C4SDA        0x00061C02
+#define GPIO_PG7_SSI2CLK        0x00061C0F
+
+#define GPIO_PH0_U0RTS          0x00070001
+#define GPIO_PH0_EPI0S0         0x0007000F
+
+#define GPIO_PH1_U0CTS          0x00070401
+#define GPIO_PH1_EPI0S1         0x0007040F
+
+#define GPIO_PH2_U0DCD          0x00070801
+#define GPIO_PH2_EPI0S2         0x0007080F
+
+#define GPIO_PH3_U0DSR          0x00070C01
+#define GPIO_PH3_EPI0S3         0x00070C0F
+
+#define GPIO_PH4_U0DTR          0x00071001
+
+#define GPIO_PH5_U0RI           0x00071401
+
+#define GPIO_PH6_U5RX           0x00071801
+#define GPIO_PH6_U7RX           0x00071802
+
+#define GPIO_PH7_U5TX           0x00071C01
+#define GPIO_PH7_U7TX           0x00071C02
+
+#define GPIO_PJ0_U3RX           0x00080001
+
+#define GPIO_PJ1_U3TX           0x00080401
+
+#define GPIO_PJ2_U2RTS          0x00080801
+
+#define GPIO_PJ3_U2CTS          0x00080C01
+
+#define GPIO_PJ4_U3RTS          0x00081001
+
+#define GPIO_PJ5_U3CTS          0x00081401
+
+#define GPIO_PJ6_U4RTS          0x00081801
+
+#define GPIO_PJ7_U4CTS          0x00081C01
+
+#define GPIO_PK0_U4RX           0x00090001
+#define GPIO_PK0_EPI0S0         0x0009000F
+
+#define GPIO_PK1_U4TX           0x00090401
+#define GPIO_PK1_EPI0S1         0x0009040F
+
+#define GPIO_PK2_U4RTS          0x00090801
+#define GPIO_PK2_EPI0S2         0x0009080F
+
+#define GPIO_PK3_U4CTS          0x00090C01
+#define GPIO_PK3_EPI0S3         0x00090C0F
+
+#define GPIO_PK4_I2C3SCL        0x00091002
+#define GPIO_PK4_M0PWM6         0x00091006
+#define GPIO_PK4_EPI0S32        0x0009100F
+
+#define GPIO_PK5_I2C3SDA        0x00091402
+#define GPIO_PK5_M0PWM7         0x00091406
+#define GPIO_PK5_EPI0S31        0x0009140F
+
+#define GPIO_PK6_I2C4SCL        0x00091802
+#define GPIO_PK6_M0FAULT1       0x00091806
+#define GPIO_PK6_EPI0S25        0x0009180F
+
+#define GPIO_PK7_U0RI           0x00091C01
+#define GPIO_PK7_I2C4SDA        0x00091C02
+#define GPIO_PK7_RTCCLK         0x00091C05
+#define GPIO_PK7_M0FAULT2       0x00091C06
+#define GPIO_PK7_EPI0S24        0x00091C0F
+
+#define GPIO_PL0_I2C2SDA        0x000A0002
+#define GPIO_PL0_M0FAULT3       0x000A0006
+#define GPIO_PL0_USB0D0         0x000A000E
+#define GPIO_PL0_EPI0S16        0x000A000F
+
+#define GPIO_PL1_I2C2SCL        0x000A0402
+#define GPIO_PL1_PHA0           0x000A0406
+#define GPIO_PL1_USB0D1         0x000A040E
+#define GPIO_PL1_EPI0S17        0x000A040F
+
+#define GPIO_PL2_C0O            0x000A0805
+#define GPIO_PL2_PHB0           0x000A0806
+#define GPIO_PL2_USB0D2         0x000A080E
+#define GPIO_PL2_EPI0S18        0x000A080F
+
+#define GPIO_PL3_C1O            0x000A0C05
+#define GPIO_PL3_IDX0           0x000A0C06
+#define GPIO_PL3_USB0D3         0x000A0C0E
+#define GPIO_PL3_EPI0S19        0x000A0C0F
+
+#define GPIO_PL4_T0CCP0         0x000A1003
+#define GPIO_PL4_USB0D4         0x000A100E
+#define GPIO_PL4_EPI0S26        0x000A100F
+
+#define GPIO_PL5_T0CCP1         0x000A1403
+#define GPIO_PL5_EPI0S33        0x000A140F
+#define GPIO_PL5_USB0D5         0x000A140E
+
+#define GPIO_PL6_T1CCP0         0x000A1803
+
+#define GPIO_PL7_T1CCP1         0x000A1C03
+
+#define GPIO_PM0_T2CCP0         0x000B0003
+#define GPIO_PM0_EPI0S15        0x000B000F
+
+#define GPIO_PM1_T2CCP1         0x000B0403
+#define GPIO_PM1_EPI0S14        0x000B040F
+
+#define GPIO_PM2_T3CCP0         0x000B0803
+#define GPIO_PM2_EPI0S13        0x000B080F
+
+#define GPIO_PM3_T3CCP1         0x000B0C03
+#define GPIO_PM3_EPI0S12        0x000B0C0F
+
+#define GPIO_PM4_U0CTS          0x000B1001
+#define GPIO_PM4_T4CCP0         0x000B1003
+
+#define GPIO_PM5_U0DCD          0x000B1401
+#define GPIO_PM5_T4CCP1         0x000B1403
+
+#define GPIO_PM6_U0DSR          0x000B1801
+#define GPIO_PM6_T5CCP0         0x000B1803
+
+#define GPIO_PM7_U0RI           0x000B1C01
+#define GPIO_PM7_T5CCP1         0x000B1C03
+
+#define GPIO_PN0_U1RTS          0x000C0001
+
+#define GPIO_PN1_U1CTS          0x000C0401
+
+#define GPIO_PN2_U1DCD          0x000C0801
+#define GPIO_PN2_U2RTS          0x000C0802
+#define GPIO_PN2_EPI0S29        0x000C080F
+
+#define GPIO_PN3_U1DSR          0x000C0C01
+#define GPIO_PN3_U2CTS          0x000C0C02
+#define GPIO_PN3_EPI0S30        0x000C0C0F
+
+#define GPIO_PN4_U1DTR          0x000C1001
+#define GPIO_PN4_U3RTS          0x000C1002
+#define GPIO_PN4_I2C2SDA        0x000C1003
+#define GPIO_PN4_EPI0S34        0x000C100F
+
+#define GPIO_PN5_U1RI           0x000C1401
+#define GPIO_PN5_U3CTS          0x000C1402
+#define GPIO_PN5_I2C2SCL        0x000C1403
+#define GPIO_PN5_EPI0S35        0x000C140F
+
+#define GPIO_PN6_U4RTS          0x000C1802
+
+#define GPIO_PN7_U1RTS          0x000C1C01
+#define GPIO_PN7_U4CTS          0x000C1C02
+
+#define GPIO_PP0_U6RX           0x000D0001
+#define GPIO_PP0_T6CCP0         0x000D0005
+#define GPIO_PP0_SSI3XDAT2      0x000D000F
+
+#define GPIO_PP1_U6TX           0x000D0401
+#define GPIO_PP1_T6CCP1         0x000D0405
+#define GPIO_PP1_SSI3XDAT3      0x000D040F
+
+#define GPIO_PP2_U0DTR          0x000D0801
+#define GPIO_PP2_USB0NXT        0x000D080E
+#define GPIO_PP2_EPI0S29        0x000D080F
+
+#define GPIO_PP3_U1CTS          0x000D0C01
+#define GPIO_PP3_U0DCD          0x000D0C02
+#define GPIO_PP3_RTCCLK         0x000D0C07
+#define GPIO_PP3_USB0DIR        0x000D0C0E
+#define GPIO_PP3_EPI0S30        0x000D0C0F
+
+#define GPIO_PP4_U3RTS          0x000D1001
+#define GPIO_PP4_U0DSR          0x000D1002
+#define GPIO_PP4_USB0D7         0x000D100E
+
+#define GPIO_PP5_U3CTS          0x000D1401
+#define GPIO_PP5_I2C2SCL        0x000D1402
+#define GPIO_PP5_USB0D6         0x000D140E
+
+#define GPIO_PP6_U1DCD          0x000D1801
+#define GPIO_PP6_I2C2SDA        0x000D1802
+
+#define GPIO_PQ0_T6CCP0         0x000E0003
+#define GPIO_PQ0_SSI3CLK        0x000E000E
+#define GPIO_PQ0_EPI0S20        0x000E000F
+
+#define GPIO_PQ1_T6CCP1         0x000E0403
+#define GPIO_PQ1_SSI3FSS        0x000E040E
+#define GPIO_PQ1_EPI0S21        0x000E040F
+
+#define GPIO_PQ2_T7CCP0         0x000E0803
+#define GPIO_PQ2_SSI3XDAT0      0x000E080E
+#define GPIO_PQ2_EPI0S22        0x000E080F
+
+#define GPIO_PQ3_T7CCP1         0x000E0C03
+#define GPIO_PQ3_SSI3XDAT1      0x000E0C0E
+#define GPIO_PQ3_EPI0S23        0x000E0C0F
+
+#define GPIO_PQ4_U1RX           0x000E1001
+#define GPIO_PQ4_DIVSCLK        0x000E1007
+
+#define GPIO_PQ5_U1TX           0x000E1401
+
+#define GPIO_PQ6_U1DTR          0x000E1801
+
+#define GPIO_PQ7_U1RI           0x000E1C01
+
+#define GPIO_PR0_U4TX           0x000F0001
+#define GPIO_PR0_I2C1SCL        0x000F0002
+#define GPIO_PR0_M0PWM0         0x000F0006
+
+#define GPIO_PR1_U4RX           0x000F0401
+#define GPIO_PR1_I2C1SDA        0x000F0402
+#define GPIO_PR1_M0PWM1         0x000F0406
+
+#define GPIO_PR2_I2C2SCL        0x000F0802
+#define GPIO_PR2_M0PWM2         0x000F0806
+
+#define GPIO_PR3_I2C2SDA        0x000F0C02
+#define GPIO_PR3_M0PWM3         0x000F0C06
+
+#define GPIO_PR4_I2C3SCL        0x000F1002
+#define GPIO_PR4_T0CCP0         0x000F1003
+#define GPIO_PR4_M0PWM4         0x000F1006
+
+#define GPIO_PR5_U1RX           0x000F1401
+#define GPIO_PR5_I2C3SDA        0x000F1402
+#define GPIO_PR5_T0CCP1         0x000F1403
+#define GPIO_PR5_M0PWM5         0x000F1406
+
+#define GPIO_PR6_U1TX           0x000F1801
+#define GPIO_PR6_I2C4SCL        0x000F1802
+#define GPIO_PR6_T1CCP0         0x000F1803
+#define GPIO_PR6_M0PWM6         0x000F1806
+
+#define GPIO_PR7_I2C4SDA        0x000F1C02
+#define GPIO_PR7_T1CCP1         0x000F1C03
+#define GPIO_PR7_M0PWM7         0x000F1C06
+
+#define GPIO_PS0_T2CCP0         0x00100003
+#define GPIO_PS0_M0FAULT0       0x00100006
+
+#define GPIO_PS1_T2CCP1         0x00100403
+#define GPIO_PS1_M0FAULT1       0x00100406
+
+#define GPIO_PS2_U1DSR          0x00100801
+#define GPIO_PS2_T3CCP0         0x00100803
+#define GPIO_PS2_M0FAULT2       0x00100806
+
+#define GPIO_PS3_T3CCP1         0x00100C03
+#define GPIO_PS3_M0FAULT3       0x00100C06
+
+#define GPIO_PS4_T4CCP0         0x00101003
+#define GPIO_PS4_PHA0           0x00101006
+
+#define GPIO_PS5_T4CCP1         0x00101403
+#define GPIO_PS5_PHB0           0x00101406
+
+#define GPIO_PS6_T5CCP0         0x00101803
+#define GPIO_PS6_IDX0           0x00101806
+
+#define GPIO_PS7_T5CCP1         0x00101C03
+
+#define GPIO_PT0_T6CCP0         0x00110003
+#define GPIO_PT0_CAN0RX         0x00110007
+
+#define GPIO_PT1_T6CCP1         0x00110403
+#define GPIO_PT1_CAN0TX         0x00110407
+
+#define GPIO_PT2_T7CCP0         0x00110803
+#define GPIO_PT2_CAN1RX         0x00110807
+
+#define GPIO_PT3_T7CCP1         0x00110C03
+#define GPIO_PT3_CAN1TX         0x00110C07
+
+#endif // PART_TM4C129CNCZAD
+
+//*****************************************************************************
+//
+// TM4C129DNCPDT Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C129DNCPDT
+
+#define GPIO_PA0_U0RX           0x00000001
+#define GPIO_PA0_I2C9SCL        0x00000002
+#define GPIO_PA0_T0CCP0         0x00000003
+#define GPIO_PA0_CAN0RX         0x00000007
+
+#define GPIO_PA1_U0TX           0x00000401
+#define GPIO_PA1_I2C9SDA        0x00000402
+#define GPIO_PA1_T0CCP1         0x00000403
+#define GPIO_PA1_CAN0TX         0x00000407
+
+#define GPIO_PA2_U4RX           0x00000801
+#define GPIO_PA2_I2C8SCL        0x00000802
+#define GPIO_PA2_T1CCP0         0x00000803
+#define GPIO_PA2_SSI0CLK        0x0000080F
+
+#define GPIO_PA3_U4TX           0x00000C01
+#define GPIO_PA3_I2C8SDA        0x00000C02
+#define GPIO_PA3_T1CCP1         0x00000C03
+#define GPIO_PA3_SSI0FSS        0x00000C0F
+
+#define GPIO_PA4_U3RX           0x00001001
+#define GPIO_PA4_T2CCP0         0x00001003
+#define GPIO_PA4_I2C7SCL        0x00001002
+#define GPIO_PA4_SSI0XDAT0      0x0000100F
+
+#define GPIO_PA5_U3TX           0x00001401
+#define GPIO_PA5_T2CCP1         0x00001403
+#define GPIO_PA5_I2C7SDA        0x00001402
+#define GPIO_PA5_SSI0XDAT1      0x0000140F
+
+#define GPIO_PA6_U2RX           0x00001801
+#define GPIO_PA6_I2C6SCL        0x00001802
+#define GPIO_PA6_T3CCP0         0x00001803
+#define GPIO_PA6_USB0EPEN       0x00001805
+#define GPIO_PA6_SSI0XDAT2      0x0000180D
+#define GPIO_PA6_EN0RXCK        0x0000180E
+#define GPIO_PA6_EPI0S8         0x0000180F
+
+#define GPIO_PA7_U2TX           0x00001C01
+#define GPIO_PA7_I2C6SDA        0x00001C02
+#define GPIO_PA7_T3CCP1         0x00001C03
+#define GPIO_PA7_USB0PFLT       0x00001C05
+#define GPIO_PA7_USB0EPEN       0x00001C0B
+#define GPIO_PA7_SSI0XDAT3      0x00001C0D
+#define GPIO_PA7_EPI0S9         0x00001C0F
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_I2C5SCL        0x00010002
+#define GPIO_PB0_CAN1RX         0x00010007
+#define GPIO_PB0_T4CCP0         0x00010003
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_I2C5SDA        0x00010402
+#define GPIO_PB1_CAN1TX         0x00010407
+#define GPIO_PB1_T4CCP1         0x00010403
+
+#define GPIO_PB2_T5CCP0         0x00010803
+#define GPIO_PB2_I2C0SCL        0x00010802
+#define GPIO_PB2_EN0MDC         0x00010805
+#define GPIO_PB2_USB0STP        0x0001080E
+#define GPIO_PB2_EPI0S27        0x0001080F
+
+#define GPIO_PB3_I2C0SDA        0x00010C02
+#define GPIO_PB3_T5CCP1         0x00010C03
+#define GPIO_PB3_EN0MDIO        0x00010C05
+#define GPIO_PB3_USB0CLK        0x00010C0E
+#define GPIO_PB3_EPI0S28        0x00010C0F
+
+#define GPIO_PB4_U0CTS          0x00011001
+#define GPIO_PB4_I2C5SCL        0x00011002
+#define GPIO_PB4_SSI1FSS        0x0001100F
+
+#define GPIO_PB5_U0RTS          0x00011401
+#define GPIO_PB5_I2C5SDA        0x00011402
+#define GPIO_PB5_SSI1CLK        0x0001140F
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+
+#define GPIO_PC2_TDI            0x00020801
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+
+#define GPIO_PC4_U7RX           0x00021001
+#define GPIO_PC4_EPI0S7         0x0002100F
+
+#define GPIO_PC5_U7TX           0x00021401
+#define GPIO_PC5_RTCCLK         0x00021407
+#define GPIO_PC5_EPI0S6         0x0002140F
+
+#define GPIO_PC6_U5RX           0x00021801
+#define GPIO_PC6_EPI0S5         0x0002180F
+
+#define GPIO_PC7_U5TX           0x00021C01
+#define GPIO_PC7_EPI0S4         0x00021C0F
+
+#define GPIO_PD0_I2C7SCL        0x00030002
+#define GPIO_PD0_T0CCP0         0x00030003
+#define GPIO_PD0_C0O            0x00030005
+#define GPIO_PD0_SSI2XDAT1      0x0003000F
+
+#define GPIO_PD1_I2C7SDA        0x00030402
+#define GPIO_PD1_T0CCP1         0x00030403
+#define GPIO_PD1_C1O            0x00030405
+#define GPIO_PD1_SSI2XDAT0      0x0003040F
+
+#define GPIO_PD2_I2C8SCL        0x00030802
+#define GPIO_PD2_T1CCP0         0x00030803
+#define GPIO_PD2_C2O            0x00030805
+#define GPIO_PD2_SSI2FSS        0x0003080F
+
+#define GPIO_PD3_I2C8SDA        0x00030C02
+#define GPIO_PD3_T1CCP1         0x00030C03
+#define GPIO_PD3_SSI2CLK        0x00030C0F
+
+#define GPIO_PD4_U2RX           0x00031001
+#define GPIO_PD4_T3CCP0         0x00031003
+#define GPIO_PD4_SSI1XDAT2      0x0003100F
+
+#define GPIO_PD5_U2TX           0x00031401
+#define GPIO_PD5_T3CCP1         0x00031403
+#define GPIO_PD5_SSI1XDAT3      0x0003140F
+
+#define GPIO_PD6_U2RTS          0x00031801
+#define GPIO_PD6_T4CCP0         0x00031803
+#define GPIO_PD6_USB0EPEN       0x00031805
+#define GPIO_PD6_SSI2XDAT3      0x0003180F
+
+#define GPIO_PD7_U2CTS          0x00031C01
+#define GPIO_PD7_T4CCP1         0x00031C03
+#define GPIO_PD7_USB0PFLT       0x00031C05
+#define GPIO_PD7_NMI            0x00031C08
+#define GPIO_PD7_SSI2XDAT2      0x00031C0F
+
+#define GPIO_PE0_U1RTS          0x00040001
+
+#define GPIO_PE1_U1DSR          0x00040401
+
+#define GPIO_PE2_U1DCD          0x00040801
+
+#define GPIO_PE3_U1DTR          0x00040C01
+
+#define GPIO_PE4_U1RI           0x00041001
+#define GPIO_PE4_SSI1XDAT0      0x0004100F
+
+#define GPIO_PE5_SSI1XDAT1      0x0004140F
+
+#define GPIO_PF0_M0PWM0         0x00050006
+#define GPIO_PF0_SSI3XDAT1      0x0005000E
+#define GPIO_PF0_TRD2           0x0005000F
+
+#define GPIO_PF1_M0PWM1         0x00050406
+#define GPIO_PF1_SSI3XDAT0      0x0005040E
+#define GPIO_PF1_TRD1           0x0005040F
+
+#define GPIO_PF2_EN0MDC         0x00050805
+#define GPIO_PF2_M0PWM2         0x00050806
+#define GPIO_PF2_SSI3FSS        0x0005080E
+#define GPIO_PF2_TRD0           0x0005080F
+
+#define GPIO_PF3_EN0MDIO        0x00050C05
+#define GPIO_PF3_M0PWM3         0x00050C06
+#define GPIO_PF3_SSI3CLK        0x00050C0E
+#define GPIO_PF3_TRCLK          0x00050C0F
+
+#define GPIO_PF4_M0FAULT0       0x00051006
+#define GPIO_PF4_SSI3XDAT2      0x0005100E
+#define GPIO_PF4_TRD3           0x0005100F
+
+#define GPIO_PG0_I2C1SCL        0x00060002
+#define GPIO_PG0_M0PWM4         0x00060006
+#define GPIO_PG0_EPI0S11        0x0006000F
+
+#define GPIO_PG1_I2C1SDA        0x00060402
+#define GPIO_PG1_M0PWM5         0x00060406
+#define GPIO_PG1_EPI0S10        0x0006040F
+
+#define GPIO_PG2_I2C2SCL        0x00060802
+#define GPIO_PG2_EN0TXCK        0x0006080E
+#define GPIO_PG2_SSI2XDAT3      0x0006080F
+
+#define GPIO_PG3_I2C2SDA        0x00060C02
+#define GPIO_PG3_EN0TXEN        0x00060C0E
+#define GPIO_PG3_SSI2XDAT2      0x00060C0F
+
+#define GPIO_PG4_U0CTS          0x00061001
+#define GPIO_PG4_I2C3SCL        0x00061002
+#define GPIO_PG4_EN0TXD0        0x0006100E
+#define GPIO_PG4_SSI2XDAT1      0x0006100F
+
+#define GPIO_PG5_U0RTS          0x00061401
+#define GPIO_PG5_I2C3SDA        0x00061402
+#define GPIO_PG5_EN0TXD1        0x0006140E
+#define GPIO_PG5_SSI2XDAT0      0x0006140F
+
+#define GPIO_PG6_I2C4SCL        0x00061802
+#define GPIO_PG6_EN0RXER        0x0006180E
+#define GPIO_PG6_SSI2FSS        0x0006180F
+
+#define GPIO_PG7_I2C4SDA        0x00061C02
+#define GPIO_PG7_EN0RXDV        0x00061C0E
+#define GPIO_PG7_SSI2CLK        0x00061C0F
+
+#define GPIO_PH0_U0RTS          0x00070001
+#define GPIO_PH0_EPI0S0         0x0007000F
+
+#define GPIO_PH1_U0CTS          0x00070401
+#define GPIO_PH1_EPI0S1         0x0007040F
+
+#define GPIO_PH2_U0DCD          0x00070801
+#define GPIO_PH2_EPI0S2         0x0007080F
+
+#define GPIO_PH3_U0DSR          0x00070C01
+#define GPIO_PH3_EPI0S3         0x00070C0F
+
+#define GPIO_PJ0_U3RX           0x00080001
+
+#define GPIO_PJ1_U3TX           0x00080401
+
+#define GPIO_PK0_U4RX           0x00090001
+#define GPIO_PK0_EPI0S0         0x0009000F
+
+#define GPIO_PK1_U4TX           0x00090401
+#define GPIO_PK1_EPI0S1         0x0009040F
+
+#define GPIO_PK2_U4RTS          0x00090801
+#define GPIO_PK2_EPI0S2         0x0009080F
+
+#define GPIO_PK3_U4CTS          0x00090C01
+#define GPIO_PK3_EPI0S3         0x00090C0F
+
+#define GPIO_PK4_I2C3SCL        0x00091002
+#define GPIO_PK4_M0PWM6         0x00091006
+#define GPIO_PK4_EN0INTRN       0x00091007
+#define GPIO_PK4_EN0RXD3        0x0009100E
+#define GPIO_PK4_EPI0S32        0x0009100F
+
+#define GPIO_PK5_I2C3SDA        0x00091402
+#define GPIO_PK5_M0PWM7         0x00091406
+#define GPIO_PK5_EN0RXD2        0x0009140E
+#define GPIO_PK5_EPI0S31        0x0009140F
+
+#define GPIO_PK6_I2C4SCL        0x00091802
+#define GPIO_PK6_M0FAULT1       0x00091806
+#define GPIO_PK6_EN0TXD2        0x0009180E
+#define GPIO_PK6_EPI0S25        0x0009180F
+
+#define GPIO_PK7_U0RI           0x00091C01
+#define GPIO_PK7_I2C4SDA        0x00091C02
+#define GPIO_PK7_RTCCLK         0x00091C05
+#define GPIO_PK7_M0FAULT2       0x00091C06
+#define GPIO_PK7_EN0TXD3        0x00091C0E
+#define GPIO_PK7_EPI0S24        0x00091C0F
+
+#define GPIO_PL0_I2C2SDA        0x000A0002
+#define GPIO_PL0_M0FAULT3       0x000A0006
+#define GPIO_PL0_USB0D0         0x000A000E
+#define GPIO_PL0_EPI0S16        0x000A000F
+
+#define GPIO_PL1_I2C2SCL        0x000A0402
+#define GPIO_PL1_PHA0           0x000A0406
+#define GPIO_PL1_USB0D1         0x000A040E
+#define GPIO_PL1_EPI0S17        0x000A040F
+
+#define GPIO_PL2_C0O            0x000A0805
+#define GPIO_PL2_PHB0           0x000A0806
+#define GPIO_PL2_USB0D2         0x000A080E
+#define GPIO_PL2_EPI0S18        0x000A080F
+
+#define GPIO_PL3_C1O            0x000A0C05
+#define GPIO_PL3_IDX0           0x000A0C06
+#define GPIO_PL3_USB0D3         0x000A0C0E
+#define GPIO_PL3_EPI0S19        0x000A0C0F
+
+#define GPIO_PL4_T0CCP0         0x000A1003
+#define GPIO_PL4_USB0D4         0x000A100E
+#define GPIO_PL4_EPI0S26        0x000A100F
+
+#define GPIO_PL5_T0CCP1         0x000A1403
+#define GPIO_PL5_EPI0S33        0x000A140F
+#define GPIO_PL5_USB0D5         0x000A140E
+
+#define GPIO_PL6_T1CCP0         0x000A1803
+
+#define GPIO_PL7_T1CCP1         0x000A1C03
+
+#define GPIO_PM0_T2CCP0         0x000B0003
+#define GPIO_PM0_EPI0S15        0x000B000F
+
+#define GPIO_PM1_T2CCP1         0x000B0403
+#define GPIO_PM1_EPI0S14        0x000B040F
+
+#define GPIO_PM2_T3CCP0         0x000B0803
+#define GPIO_PM2_EPI0S13        0x000B080F
+
+#define GPIO_PM3_T3CCP1         0x000B0C03
+#define GPIO_PM3_EPI0S12        0x000B0C0F
+
+#define GPIO_PM4_U0CTS          0x000B1001
+#define GPIO_PM4_T4CCP0         0x000B1003
+#define GPIO_PM4_EN0RREF_CLK    0x000B100E
+
+#define GPIO_PM5_U0DCD          0x000B1401
+#define GPIO_PM5_T4CCP1         0x000B1403
+
+#define GPIO_PM6_U0DSR          0x000B1801
+#define GPIO_PM6_T5CCP0         0x000B1803
+#define GPIO_PM6_EN0CRS         0x000B180E
+
+#define GPIO_PM7_U0RI           0x000B1C01
+#define GPIO_PM7_T5CCP1         0x000B1C03
+#define GPIO_PM7_EN0COL         0x000B1C0E
+
+#define GPIO_PN0_U1RTS          0x000C0001
+
+#define GPIO_PN1_U1CTS          0x000C0401
+
+#define GPIO_PN2_U1DCD          0x000C0801
+#define GPIO_PN2_U2RTS          0x000C0802
+#define GPIO_PN2_EPI0S29        0x000C080F
+
+#define GPIO_PN3_U1DSR          0x000C0C01
+#define GPIO_PN3_U2CTS          0x000C0C02
+#define GPIO_PN3_EPI0S30        0x000C0C0F
+
+#define GPIO_PN4_U1DTR          0x000C1001
+#define GPIO_PN4_U3RTS          0x000C1002
+#define GPIO_PN4_I2C2SDA        0x000C1003
+#define GPIO_PN4_EPI0S34        0x000C100F
+
+#define GPIO_PN5_U1RI           0x000C1401
+#define GPIO_PN5_U3CTS          0x000C1402
+#define GPIO_PN5_I2C2SCL        0x000C1403
+#define GPIO_PN5_EPI0S35        0x000C140F
+
+#define GPIO_PP0_U6RX           0x000D0001
+#define GPIO_PP0_EN0INTRN       0x000D0007
+#define GPIO_PP0_SSI3XDAT2      0x000D000F
+
+#define GPIO_PP1_U6TX           0x000D0401
+#define GPIO_PP1_SSI3XDAT3      0x000D040F
+
+#define GPIO_PP2_U0DTR          0x000D0801
+#define GPIO_PP2_USB0NXT        0x000D080E
+#define GPIO_PP2_EPI0S29        0x000D080F
+
+#define GPIO_PP3_U1CTS          0x000D0C01
+#define GPIO_PP3_U0DCD          0x000D0C02
+#define GPIO_PP3_RTCCLK         0x000D0C07
+#define GPIO_PP3_USB0DIR        0x000D0C0E
+#define GPIO_PP3_EPI0S30        0x000D0C0F
+
+#define GPIO_PP4_U3RTS          0x000D1001
+#define GPIO_PP4_U0DSR          0x000D1002
+#define GPIO_PP4_USB0D7         0x000D100E
+
+#define GPIO_PP5_U3CTS          0x000D1401
+#define GPIO_PP5_I2C2SCL        0x000D1402
+#define GPIO_PP5_USB0D6         0x000D140E
+
+#define GPIO_PQ0_SSI3CLK        0x000E000E
+#define GPIO_PQ0_EPI0S20        0x000E000F
+
+#define GPIO_PQ1_SSI3FSS        0x000E040E
+#define GPIO_PQ1_EPI0S21        0x000E040F
+
+#define GPIO_PQ2_SSI3XDAT0      0x000E080E
+#define GPIO_PQ2_EPI0S22        0x000E080F
+
+#define GPIO_PQ3_SSI3XDAT1      0x000E0C0E
+#define GPIO_PQ3_EPI0S23        0x000E0C0F
+
+#define GPIO_PQ4_U1RX           0x000E1001
+#define GPIO_PQ4_DIVSCLK        0x000E1007
+
+#define GPIO_PQ5_U1TX           0x000E1401
+#define GPIO_PQ5_EN0RXD0        0x000E140E
+
+#define GPIO_PQ6_U1DTR          0x000E1801
+#define GPIO_PQ6_EN0RXD1        0x000E180E
+
+#endif // PART_TM4C129DNCPDT
+
+//*****************************************************************************
+//
+// TM4C129DNCZAD Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C129DNCZAD
+
+#define GPIO_PA0_U0RX           0x00000001
+#define GPIO_PA0_I2C9SCL        0x00000002
+#define GPIO_PA0_T0CCP0         0x00000003
+#define GPIO_PA0_CAN0RX         0x00000007
+
+#define GPIO_PA1_U0TX           0x00000401
+#define GPIO_PA1_I2C9SDA        0x00000402
+#define GPIO_PA1_T0CCP1         0x00000403
+#define GPIO_PA1_CAN0TX         0x00000407
+
+#define GPIO_PA2_U4RX           0x00000801
+#define GPIO_PA2_I2C8SCL        0x00000802
+#define GPIO_PA2_T1CCP0         0x00000803
+#define GPIO_PA2_SSI0CLK        0x0000080F
+
+#define GPIO_PA3_U4TX           0x00000C01
+#define GPIO_PA3_I2C8SDA        0x00000C02
+#define GPIO_PA3_T1CCP1         0x00000C03
+#define GPIO_PA3_SSI0FSS        0x00000C0F
+
+#define GPIO_PA4_U3RX           0x00001001
+#define GPIO_PA4_T2CCP0         0x00001003
+#define GPIO_PA4_I2C7SCL        0x00001002
+#define GPIO_PA4_SSI0XDAT0      0x0000100F
+
+#define GPIO_PA5_U3TX           0x00001401
+#define GPIO_PA5_T2CCP1         0x00001403
+#define GPIO_PA5_I2C7SDA        0x00001402
+#define GPIO_PA5_SSI0XDAT1      0x0000140F
+
+#define GPIO_PA6_U2RX           0x00001801
+#define GPIO_PA6_I2C6SCL        0x00001802
+#define GPIO_PA6_T3CCP0         0x00001803
+#define GPIO_PA6_USB0EPEN       0x00001805
+#define GPIO_PA6_SSI0XDAT2      0x0000180D
+#define GPIO_PA6_EN0RXCK        0x0000180E
+#define GPIO_PA6_EPI0S8         0x0000180F
+
+#define GPIO_PA7_U2TX           0x00001C01
+#define GPIO_PA7_I2C6SDA        0x00001C02
+#define GPIO_PA7_T3CCP1         0x00001C03
+#define GPIO_PA7_USB0PFLT       0x00001C05
+#define GPIO_PA7_USB0EPEN       0x00001C0B
+#define GPIO_PA7_SSI0XDAT3      0x00001C0D
+#define GPIO_PA7_EPI0S9         0x00001C0F
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_I2C5SCL        0x00010002
+#define GPIO_PB0_CAN1RX         0x00010007
+#define GPIO_PB0_T4CCP0         0x00010003
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_I2C5SDA        0x00010402
+#define GPIO_PB1_CAN1TX         0x00010407
+#define GPIO_PB1_T4CCP1         0x00010403
+
+#define GPIO_PB2_T5CCP0         0x00010803
+#define GPIO_PB2_I2C0SCL        0x00010802
+#define GPIO_PB2_EN0MDC         0x00010805
+#define GPIO_PB2_USB0STP        0x0001080E
+#define GPIO_PB2_EPI0S27        0x0001080F
+
+#define GPIO_PB3_I2C0SDA        0x00010C02
+#define GPIO_PB3_T5CCP1         0x00010C03
+#define GPIO_PB3_EN0MDIO        0x00010C05
+#define GPIO_PB3_USB0CLK        0x00010C0E
+#define GPIO_PB3_EPI0S28        0x00010C0F
+
+#define GPIO_PB4_U0CTS          0x00011001
+#define GPIO_PB4_I2C5SCL        0x00011002
+#define GPIO_PB4_SSI1FSS        0x0001100F
+
+#define GPIO_PB5_U0RTS          0x00011401
+#define GPIO_PB5_I2C5SDA        0x00011402
+#define GPIO_PB5_SSI1CLK        0x0001140F
+
+#define GPIO_PB6_I2C6SCL        0x00011802
+#define GPIO_PB6_T6CCP0         0x00011803
+
+#define GPIO_PB7_I2C6SDA        0x00011C02
+#define GPIO_PB7_T6CCP1         0x00011C03
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+
+#define GPIO_PC2_TDI            0x00020801
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+
+#define GPIO_PC4_U7RX           0x00021001
+#define GPIO_PC4_T7CCP0         0x00021003
+#define GPIO_PC4_EPI0S7         0x0002100F
+
+#define GPIO_PC5_U7TX           0x00021401
+#define GPIO_PC5_T7CCP1         0x00021403
+#define GPIO_PC5_RTCCLK         0x00021407
+#define GPIO_PC5_EPI0S6         0x0002140F
+
+#define GPIO_PC6_U5RX           0x00021801
+#define GPIO_PC6_EPI0S5         0x0002180F
+
+#define GPIO_PC7_U5TX           0x00021C01
+#define GPIO_PC7_EPI0S4         0x00021C0F
+
+#define GPIO_PD0_I2C7SCL        0x00030002
+#define GPIO_PD0_T0CCP0         0x00030003
+#define GPIO_PD0_C0O            0x00030005
+#define GPIO_PD0_SSI2XDAT1      0x0003000F
+
+#define GPIO_PD1_I2C7SDA        0x00030402
+#define GPIO_PD1_T0CCP1         0x00030403
+#define GPIO_PD1_C1O            0x00030405
+#define GPIO_PD1_SSI2XDAT0      0x0003040F
+
+#define GPIO_PD2_I2C8SCL        0x00030802
+#define GPIO_PD2_T1CCP0         0x00030803
+#define GPIO_PD2_C2O            0x00030805
+#define GPIO_PD2_SSI2FSS        0x0003080F
+
+#define GPIO_PD3_I2C8SDA        0x00030C02
+#define GPIO_PD3_T1CCP1         0x00030C03
+#define GPIO_PD3_SSI2CLK        0x00030C0F
+
+#define GPIO_PD4_U2RX           0x00031001
+#define GPIO_PD4_T3CCP0         0x00031003
+#define GPIO_PD4_SSI1XDAT2      0x0003100F
+
+#define GPIO_PD5_U2TX           0x00031401
+#define GPIO_PD5_T3CCP1         0x00031403
+#define GPIO_PD5_SSI1XDAT3      0x0003140F
+
+#define GPIO_PD6_U2RTS          0x00031801
+#define GPIO_PD6_T4CCP0         0x00031803
+#define GPIO_PD6_USB0EPEN       0x00031805
+#define GPIO_PD6_SSI2XDAT3      0x0003180F
+
+#define GPIO_PD7_U2CTS          0x00031C01
+#define GPIO_PD7_T4CCP1         0x00031C03
+#define GPIO_PD7_USB0PFLT       0x00031C05
+#define GPIO_PD7_NMI            0x00031C08
+#define GPIO_PD7_SSI2XDAT2      0x00031C0F
+
+#define GPIO_PE0_U1RTS          0x00040001
+
+#define GPIO_PE1_U1DSR          0x00040401
+
+#define GPIO_PE2_U1DCD          0x00040801
+
+#define GPIO_PE3_U1DTR          0x00040C01
+
+#define GPIO_PE4_U1RI           0x00041001
+#define GPIO_PE4_SSI1XDAT0      0x0004100F
+
+#define GPIO_PE5_SSI1XDAT1      0x0004140F
+
+#define GPIO_PE6_U0CTS          0x00041801
+#define GPIO_PE6_I2C9SCL        0x00041802
+
+#define GPIO_PE7_U0RTS          0x00041C01
+#define GPIO_PE7_I2C9SDA        0x00041C02
+#define GPIO_PE7_NMI            0x00041C08
+
+#define GPIO_PF0_M0PWM0         0x00050006
+#define GPIO_PF0_SSI3XDAT1      0x0005000E
+#define GPIO_PF0_TRD2           0x0005000F
+
+#define GPIO_PF1_M0PWM1         0x00050406
+#define GPIO_PF1_SSI3XDAT0      0x0005040E
+#define GPIO_PF1_TRD1           0x0005040F
+
+#define GPIO_PF2_EN0MDC         0x00050805
+#define GPIO_PF2_M0PWM2         0x00050806
+#define GPIO_PF2_SSI3FSS        0x0005080E
+#define GPIO_PF2_TRD0           0x0005080F
+
+#define GPIO_PF3_EN0MDIO        0x00050C05
+#define GPIO_PF3_M0PWM3         0x00050C06
+#define GPIO_PF3_SSI3CLK        0x00050C0E
+#define GPIO_PF3_TRCLK          0x00050C0F
+
+#define GPIO_PF4_M0FAULT0       0x00051006
+#define GPIO_PF4_SSI3XDAT2      0x0005100E
+#define GPIO_PF4_TRD3           0x0005100F
+
+#define GPIO_PF5_SSI3XDAT3      0x0005140E
+
+#define GPIO_PG0_I2C1SCL        0x00060002
+#define GPIO_PG0_M0PWM4         0x00060006
+#define GPIO_PG0_EPI0S11        0x0006000F
+
+#define GPIO_PG1_I2C1SDA        0x00060402
+#define GPIO_PG1_M0PWM5         0x00060406
+#define GPIO_PG1_EPI0S10        0x0006040F
+
+#define GPIO_PG2_I2C2SCL        0x00060802
+#define GPIO_PG2_EN0TXCK        0x0006080E
+#define GPIO_PG2_SSI2XDAT3      0x0006080F
+
+#define GPIO_PG3_I2C2SDA        0x00060C02
+#define GPIO_PG3_EN0TXEN        0x00060C0E
+#define GPIO_PG3_SSI2XDAT2      0x00060C0F
+
+#define GPIO_PG4_U0CTS          0x00061001
+#define GPIO_PG4_I2C3SCL        0x00061002
+#define GPIO_PG4_EN0TXD0        0x0006100E
+#define GPIO_PG4_SSI2XDAT1      0x0006100F
+
+#define GPIO_PG5_U0RTS          0x00061401
+#define GPIO_PG5_I2C3SDA        0x00061402
+#define GPIO_PG5_EN0TXD1        0x0006140E
+#define GPIO_PG5_SSI2XDAT0      0x0006140F
+
+#define GPIO_PG6_I2C4SCL        0x00061802
+#define GPIO_PG6_EN0RXER        0x0006180E
+#define GPIO_PG6_SSI2FSS        0x0006180F
+
+#define GPIO_PG7_I2C4SDA        0x00061C02
+#define GPIO_PG7_EN0RXDV        0x00061C0E
+#define GPIO_PG7_SSI2CLK        0x00061C0F
+
+#define GPIO_PH0_U0RTS          0x00070001
+#define GPIO_PH0_EPI0S0         0x0007000F
+
+#define GPIO_PH1_U0CTS          0x00070401
+#define GPIO_PH1_EPI0S1         0x0007040F
+
+#define GPIO_PH2_U0DCD          0x00070801
+#define GPIO_PH2_EPI0S2         0x0007080F
+
+#define GPIO_PH3_U0DSR          0x00070C01
+#define GPIO_PH3_EPI0S3         0x00070C0F
+
+#define GPIO_PH4_U0DTR          0x00071001
+
+#define GPIO_PH5_U0RI           0x00071401
+
+#define GPIO_PH6_U5RX           0x00071801
+#define GPIO_PH6_U7RX           0x00071802
+
+#define GPIO_PH7_U5TX           0x00071C01
+#define GPIO_PH7_U7TX           0x00071C02
+
+#define GPIO_PJ0_U3RX           0x00080001
+
+#define GPIO_PJ1_U3TX           0x00080401
+
+#define GPIO_PJ2_U2RTS          0x00080801
+
+#define GPIO_PJ3_U2CTS          0x00080C01
+
+#define GPIO_PJ4_U3RTS          0x00081001
+
+#define GPIO_PJ5_U3CTS          0x00081401
+
+#define GPIO_PJ6_U4RTS          0x00081801
+
+#define GPIO_PJ7_U4CTS          0x00081C01
+
+#define GPIO_PK0_U4RX           0x00090001
+#define GPIO_PK0_EPI0S0         0x0009000F
+
+#define GPIO_PK1_U4TX           0x00090401
+#define GPIO_PK1_EPI0S1         0x0009040F
+
+#define GPIO_PK2_U4RTS          0x00090801
+#define GPIO_PK2_EPI0S2         0x0009080F
+
+#define GPIO_PK3_U4CTS          0x00090C01
+#define GPIO_PK3_EPI0S3         0x00090C0F
+
+#define GPIO_PK4_I2C3SCL        0x00091002
+#define GPIO_PK4_M0PWM6         0x00091006
+#define GPIO_PK4_EN0INTRN       0x00091007
+#define GPIO_PK4_EN0RXD3        0x0009100E
+#define GPIO_PK4_EPI0S32        0x0009100F
+
+#define GPIO_PK5_I2C3SDA        0x00091402
+#define GPIO_PK5_M0PWM7         0x00091406
+#define GPIO_PK5_EN0RXD2        0x0009140E
+#define GPIO_PK5_EPI0S31        0x0009140F
+
+#define GPIO_PK6_I2C4SCL        0x00091802
+#define GPIO_PK6_M0FAULT1       0x00091806
+#define GPIO_PK6_EN0TXD2        0x0009180E
+#define GPIO_PK6_EPI0S25        0x0009180F
+
+#define GPIO_PK7_U0RI           0x00091C01
+#define GPIO_PK7_I2C4SDA        0x00091C02
+#define GPIO_PK7_RTCCLK         0x00091C05
+#define GPIO_PK7_M0FAULT2       0x00091C06
+#define GPIO_PK7_EN0TXD3        0x00091C0E
+#define GPIO_PK7_EPI0S24        0x00091C0F
+
+#define GPIO_PL0_I2C2SDA        0x000A0002
+#define GPIO_PL0_M0FAULT3       0x000A0006
+#define GPIO_PL0_USB0D0         0x000A000E
+#define GPIO_PL0_EPI0S16        0x000A000F
+
+#define GPIO_PL1_I2C2SCL        0x000A0402
+#define GPIO_PL1_PHA0           0x000A0406
+#define GPIO_PL1_USB0D1         0x000A040E
+#define GPIO_PL1_EPI0S17        0x000A040F
+
+#define GPIO_PL2_C0O            0x000A0805
+#define GPIO_PL2_PHB0           0x000A0806
+#define GPIO_PL2_USB0D2         0x000A080E
+#define GPIO_PL2_EPI0S18        0x000A080F
+
+#define GPIO_PL3_C1O            0x000A0C05
+#define GPIO_PL3_IDX0           0x000A0C06
+#define GPIO_PL3_USB0D3         0x000A0C0E
+#define GPIO_PL3_EPI0S19        0x000A0C0F
+
+#define GPIO_PL4_T0CCP0         0x000A1003
+#define GPIO_PL4_USB0D4         0x000A100E
+#define GPIO_PL4_EPI0S26        0x000A100F
+
+#define GPIO_PL5_T0CCP1         0x000A1403
+#define GPIO_PL5_EPI0S33        0x000A140F
+#define GPIO_PL5_USB0D5         0x000A140E
+
+#define GPIO_PL6_T1CCP0         0x000A1803
+
+#define GPIO_PL7_T1CCP1         0x000A1C03
+
+#define GPIO_PM0_T2CCP0         0x000B0003
+#define GPIO_PM0_EPI0S15        0x000B000F
+
+#define GPIO_PM1_T2CCP1         0x000B0403
+#define GPIO_PM1_EPI0S14        0x000B040F
+
+#define GPIO_PM2_T3CCP0         0x000B0803
+#define GPIO_PM2_EPI0S13        0x000B080F
+
+#define GPIO_PM3_T3CCP1         0x000B0C03
+#define GPIO_PM3_EPI0S12        0x000B0C0F
+
+#define GPIO_PM4_U0CTS          0x000B1001
+#define GPIO_PM4_T4CCP0         0x000B1003
+#define GPIO_PM4_EN0RREF_CLK    0x000B100E
+
+#define GPIO_PM5_U0DCD          0x000B1401
+#define GPIO_PM5_T4CCP1         0x000B1403
+
+#define GPIO_PM6_U0DSR          0x000B1801
+#define GPIO_PM6_T5CCP0         0x000B1803
+#define GPIO_PM6_EN0CRS         0x000B180E
+
+#define GPIO_PM7_U0RI           0x000B1C01
+#define GPIO_PM7_T5CCP1         0x000B1C03
+#define GPIO_PM7_EN0COL         0x000B1C0E
+
+#define GPIO_PN0_U1RTS          0x000C0001
+
+#define GPIO_PN1_U1CTS          0x000C0401
+
+#define GPIO_PN2_U1DCD          0x000C0801
+#define GPIO_PN2_U2RTS          0x000C0802
+#define GPIO_PN2_EPI0S29        0x000C080F
+
+#define GPIO_PN3_U1DSR          0x000C0C01
+#define GPIO_PN3_U2CTS          0x000C0C02
+#define GPIO_PN3_EPI0S30        0x000C0C0F
+
+#define GPIO_PN4_U1DTR          0x000C1001
+#define GPIO_PN4_U3RTS          0x000C1002
+#define GPIO_PN4_I2C2SDA        0x000C1003
+#define GPIO_PN4_EPI0S34        0x000C100F
+
+#define GPIO_PN5_U1RI           0x000C1401
+#define GPIO_PN5_U3CTS          0x000C1402
+#define GPIO_PN5_I2C2SCL        0x000C1403
+#define GPIO_PN5_EPI0S35        0x000C140F
+
+#define GPIO_PN6_U4RTS          0x000C1802
+#define GPIO_PN6_EN0TXER        0x000C180E
+
+#define GPIO_PN7_U1RTS          0x000C1C01
+#define GPIO_PN7_U4CTS          0x000C1C02
+
+#define GPIO_PP0_U6RX           0x000D0001
+#define GPIO_PP0_T6CCP0         0x000D0005
+#define GPIO_PP0_EN0INTRN       0x000D0007
+#define GPIO_PP0_SSI3XDAT2      0x000D000F
+
+#define GPIO_PP1_U6TX           0x000D0401
+#define GPIO_PP1_T6CCP1         0x000D0405
+#define GPIO_PP1_SSI3XDAT3      0x000D040F
+
+#define GPIO_PP2_U0DTR          0x000D0801
+#define GPIO_PP2_USB0NXT        0x000D080E
+#define GPIO_PP2_EPI0S29        0x000D080F
+
+#define GPIO_PP3_U1CTS          0x000D0C01
+#define GPIO_PP3_U0DCD          0x000D0C02
+#define GPIO_PP3_RTCCLK         0x000D0C07
+#define GPIO_PP3_USB0DIR        0x000D0C0E
+#define GPIO_PP3_EPI0S30        0x000D0C0F
+
+#define GPIO_PP4_U3RTS          0x000D1001
+#define GPIO_PP4_U0DSR          0x000D1002
+#define GPIO_PP4_USB0D7         0x000D100E
+
+#define GPIO_PP5_U3CTS          0x000D1401
+#define GPIO_PP5_I2C2SCL        0x000D1402
+#define GPIO_PP5_USB0D6         0x000D140E
+
+#define GPIO_PP6_U1DCD          0x000D1801
+#define GPIO_PP6_I2C2SDA        0x000D1802
+
+#define GPIO_PQ0_T6CCP0         0x000E0003
+#define GPIO_PQ0_SSI3CLK        0x000E000E
+#define GPIO_PQ0_EPI0S20        0x000E000F
+
+#define GPIO_PQ1_T6CCP1         0x000E0403
+#define GPIO_PQ1_SSI3FSS        0x000E040E
+#define GPIO_PQ1_EPI0S21        0x000E040F
+
+#define GPIO_PQ2_T7CCP0         0x000E0803
+#define GPIO_PQ2_SSI3XDAT0      0x000E080E
+#define GPIO_PQ2_EPI0S22        0x000E080F
+
+#define GPIO_PQ3_T7CCP1         0x000E0C03
+#define GPIO_PQ3_SSI3XDAT1      0x000E0C0E
+#define GPIO_PQ3_EPI0S23        0x000E0C0F
+
+#define GPIO_PQ4_U1RX           0x000E1001
+#define GPIO_PQ4_DIVSCLK        0x000E1007
+
+#define GPIO_PQ5_U1TX           0x000E1401
+#define GPIO_PQ5_EN0RXD0        0x000E140E
+
+#define GPIO_PQ6_U1DTR          0x000E1801
+#define GPIO_PQ6_EN0RXD1        0x000E180E
+
+#define GPIO_PQ7_U1RI           0x000E1C01
+
+#define GPIO_PR0_U4TX           0x000F0001
+#define GPIO_PR0_I2C1SCL        0x000F0002
+#define GPIO_PR0_M0PWM0         0x000F0006
+
+#define GPIO_PR1_U4RX           0x000F0401
+#define GPIO_PR1_I2C1SDA        0x000F0402
+#define GPIO_PR1_M0PWM1         0x000F0406
+
+#define GPIO_PR2_I2C2SCL        0x000F0802
+#define GPIO_PR2_M0PWM2         0x000F0806
+
+#define GPIO_PR3_I2C2SDA        0x000F0C02
+#define GPIO_PR3_M0PWM3         0x000F0C06
+
+#define GPIO_PR4_I2C3SCL        0x000F1002
+#define GPIO_PR4_T0CCP0         0x000F1003
+#define GPIO_PR4_M0PWM4         0x000F1006
+
+#define GPIO_PR5_U1RX           0x000F1401
+#define GPIO_PR5_I2C3SDA        0x000F1402
+#define GPIO_PR5_T0CCP1         0x000F1403
+#define GPIO_PR5_M0PWM5         0x000F1406
+
+#define GPIO_PR6_U1TX           0x000F1801
+#define GPIO_PR6_I2C4SCL        0x000F1802
+#define GPIO_PR6_T1CCP0         0x000F1803
+#define GPIO_PR6_M0PWM6         0x000F1806
+
+#define GPIO_PR7_I2C4SDA        0x000F1C02
+#define GPIO_PR7_T1CCP1         0x000F1C03
+#define GPIO_PR7_M0PWM7         0x000F1C06
+#define GPIO_PR7_EN0TXEN        0x000F1C0E
+
+#define GPIO_PS0_T2CCP0         0x00100003
+#define GPIO_PS0_M0FAULT0       0x00100006
+
+#define GPIO_PS1_T2CCP1         0x00100403
+#define GPIO_PS1_M0FAULT1       0x00100406
+
+#define GPIO_PS2_U1DSR          0x00100801
+#define GPIO_PS2_T3CCP0         0x00100803
+#define GPIO_PS2_M0FAULT2       0x00100806
+
+#define GPIO_PS3_T3CCP1         0x00100C03
+#define GPIO_PS3_M0FAULT3       0x00100C06
+
+#define GPIO_PS4_T4CCP0         0x00101003
+#define GPIO_PS4_PHA0           0x00101006
+#define GPIO_PS4_EN0TXD0        0x0010100E
+
+#define GPIO_PS5_T4CCP1         0x00101403
+#define GPIO_PS5_PHB0           0x00101406
+#define GPIO_PS5_EN0TXD1        0x0010140E
+
+#define GPIO_PS6_T5CCP0         0x00101803
+#define GPIO_PS6_IDX0           0x00101806
+#define GPIO_PS6_EN0RXER        0x0010180E
+
+#define GPIO_PS7_T5CCP1         0x00101C03
+#define GPIO_PS7_EN0RXDV        0x00101C0E
+
+#define GPIO_PT0_T6CCP0         0x00110003
+#define GPIO_PT0_CAN0RX         0x00110007
+#define GPIO_PT0_EN0RXD0        0x0011000E
+
+#define GPIO_PT1_T6CCP1         0x00110403
+#define GPIO_PT1_CAN0TX         0x00110407
+#define GPIO_PT1_EN0RXD1        0x0011040E
+
+#define GPIO_PT2_T7CCP0         0x00110803
+#define GPIO_PT2_CAN1RX         0x00110807
+
+#define GPIO_PT3_T7CCP1         0x00110C03
+#define GPIO_PT3_CAN1TX         0x00110C07
+
+#endif // PART_TM4C129DNCZAD
+
+//*****************************************************************************
+//
+// TM4C129EKCPDT Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C129EKCPDT
+
+#define GPIO_PA0_U0RX           0x00000001
+#define GPIO_PA0_I2C9SCL        0x00000002
+#define GPIO_PA0_T0CCP0         0x00000003
+#define GPIO_PA0_CAN0RX         0x00000007
+
+#define GPIO_PA1_U0TX           0x00000401
+#define GPIO_PA1_I2C9SDA        0x00000402
+#define GPIO_PA1_T0CCP1         0x00000403
+#define GPIO_PA1_CAN0TX         0x00000407
+
+#define GPIO_PA2_U4RX           0x00000801
+#define GPIO_PA2_I2C8SCL        0x00000802
+#define GPIO_PA2_T1CCP0         0x00000803
+#define GPIO_PA2_SSI0CLK        0x0000080F
+
+#define GPIO_PA3_U4TX           0x00000C01
+#define GPIO_PA3_I2C8SDA        0x00000C02
+#define GPIO_PA3_T1CCP1         0x00000C03
+#define GPIO_PA3_SSI0FSS        0x00000C0F
+
+#define GPIO_PA4_U3RX           0x00001001
+#define GPIO_PA4_T2CCP0         0x00001003
+#define GPIO_PA4_I2C7SCL        0x00001002
+#define GPIO_PA4_SSI0XDAT0      0x0000100F
+
+#define GPIO_PA5_U3TX           0x00001401
+#define GPIO_PA5_T2CCP1         0x00001403
+#define GPIO_PA5_I2C7SDA        0x00001402
+#define GPIO_PA5_SSI0XDAT1      0x0000140F
+
+#define GPIO_PA6_U2RX           0x00001801
+#define GPIO_PA6_I2C6SCL        0x00001802
+#define GPIO_PA6_T3CCP0         0x00001803
+#define GPIO_PA6_USB0EPEN       0x00001805
+#define GPIO_PA6_SSI0XDAT2      0x0000180D
+#define GPIO_PA6_EPI0S8         0x0000180F
+
+#define GPIO_PA7_U2TX           0x00001C01
+#define GPIO_PA7_I2C6SDA        0x00001C02
+#define GPIO_PA7_T3CCP1         0x00001C03
+#define GPIO_PA7_USB0PFLT       0x00001C05
+#define GPIO_PA7_USB0EPEN       0x00001C0B
+#define GPIO_PA7_SSI0XDAT3      0x00001C0D
+#define GPIO_PA7_EPI0S9         0x00001C0F
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_I2C5SCL        0x00010002
+#define GPIO_PB0_CAN1RX         0x00010007
+#define GPIO_PB0_T4CCP0         0x00010003
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_I2C5SDA        0x00010402
+#define GPIO_PB1_CAN1TX         0x00010407
+#define GPIO_PB1_T4CCP1         0x00010403
+
+#define GPIO_PB2_T5CCP0         0x00010803
+#define GPIO_PB2_I2C0SCL        0x00010802
+#define GPIO_PB2_USB0STP        0x0001080E
+#define GPIO_PB2_EPI0S27        0x0001080F
+
+#define GPIO_PB3_I2C0SDA        0x00010C02
+#define GPIO_PB3_T5CCP1         0x00010C03
+#define GPIO_PB3_USB0CLK        0x00010C0E
+#define GPIO_PB3_EPI0S28        0x00010C0F
+
+#define GPIO_PB4_U0CTS          0x00011001
+#define GPIO_PB4_I2C5SCL        0x00011002
+#define GPIO_PB4_SSI1FSS        0x0001100F
+
+#define GPIO_PB5_U0RTS          0x00011401
+#define GPIO_PB5_I2C5SDA        0x00011402
+#define GPIO_PB5_SSI1CLK        0x0001140F
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+
+#define GPIO_PC2_TDI            0x00020801
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+
+#define GPIO_PC4_U7RX           0x00021001
+#define GPIO_PC4_EPI0S7         0x0002100F
+
+#define GPIO_PC5_U7TX           0x00021401
+#define GPIO_PC5_RTCCLK         0x00021407
+#define GPIO_PC5_EPI0S6         0x0002140F
+
+#define GPIO_PC6_U5RX           0x00021801
+#define GPIO_PC6_EPI0S5         0x0002180F
+
+#define GPIO_PC7_U5TX           0x00021C01
+#define GPIO_PC7_EPI0S4         0x00021C0F
+
+#define GPIO_PD0_I2C7SCL        0x00030002
+#define GPIO_PD0_T0CCP0         0x00030003
+#define GPIO_PD0_C0O            0x00030005
+#define GPIO_PD0_SSI2XDAT1      0x0003000F
+
+#define GPIO_PD1_I2C7SDA        0x00030402
+#define GPIO_PD1_T0CCP1         0x00030403
+#define GPIO_PD1_C1O            0x00030405
+#define GPIO_PD1_SSI2XDAT0      0x0003040F
+
+#define GPIO_PD2_I2C8SCL        0x00030802
+#define GPIO_PD2_T1CCP0         0x00030803
+#define GPIO_PD2_C2O            0x00030805
+#define GPIO_PD2_SSI2FSS        0x0003080F
+
+#define GPIO_PD3_I2C8SDA        0x00030C02
+#define GPIO_PD3_T1CCP1         0x00030C03
+#define GPIO_PD3_SSI2CLK        0x00030C0F
+
+#define GPIO_PD4_U2RX           0x00031001
+#define GPIO_PD4_T3CCP0         0x00031003
+#define GPIO_PD4_SSI1XDAT2      0x0003100F
+
+#define GPIO_PD5_U2TX           0x00031401
+#define GPIO_PD5_T3CCP1         0x00031403
+#define GPIO_PD5_SSI1XDAT3      0x0003140F
+
+#define GPIO_PD6_U2RTS          0x00031801
+#define GPIO_PD6_T4CCP0         0x00031803
+#define GPIO_PD6_USB0EPEN       0x00031805
+#define GPIO_PD6_SSI2XDAT3      0x0003180F
+
+#define GPIO_PD7_U2CTS          0x00031C01
+#define GPIO_PD7_T4CCP1         0x00031C03
+#define GPIO_PD7_USB0PFLT       0x00031C05
+#define GPIO_PD7_NMI            0x00031C08
+#define GPIO_PD7_SSI2XDAT2      0x00031C0F
+
+#define GPIO_PE0_U1RTS          0x00040001
+
+#define GPIO_PE1_U1DSR          0x00040401
+
+#define GPIO_PE2_U1DCD          0x00040801
+
+#define GPIO_PE3_U1DTR          0x00040C01
+
+#define GPIO_PE4_U1RI           0x00041001
+#define GPIO_PE4_SSI1XDAT0      0x0004100F
+
+#define GPIO_PE5_SSI1XDAT1      0x0004140F
+
+#define GPIO_PF0_EN0LED0        0x00050005
+#define GPIO_PF0_M0PWM0         0x00050006
+#define GPIO_PF0_SSI3XDAT1      0x0005000E
+#define GPIO_PF0_TRD2           0x0005000F
+
+#define GPIO_PF1_EN0LED2        0x00050405
+#define GPIO_PF1_M0PWM1         0x00050406
+#define GPIO_PF1_SSI3XDAT0      0x0005040E
+#define GPIO_PF1_TRD1           0x0005040F
+
+#define GPIO_PF2_M0PWM2         0x00050806
+#define GPIO_PF2_SSI3FSS        0x0005080E
+#define GPIO_PF2_TRD0           0x0005080F
+
+#define GPIO_PF3_M0PWM3         0x00050C06
+#define GPIO_PF3_SSI3CLK        0x00050C0E
+#define GPIO_PF3_TRCLK          0x00050C0F
+
+#define GPIO_PF4_EN0LED1        0x00051005
+#define GPIO_PF4_M0FAULT0       0x00051006
+#define GPIO_PF4_SSI3XDAT2      0x0005100E
+#define GPIO_PF4_TRD3           0x0005100F
+
+#define GPIO_PG0_I2C1SCL        0x00060002
+#define GPIO_PG0_EN0PPS         0x00060005
+#define GPIO_PG0_M0PWM4         0x00060006
+#define GPIO_PG0_EPI0S11        0x0006000F
+
+#define GPIO_PG1_I2C1SDA        0x00060402
+#define GPIO_PG1_M0PWM5         0x00060406
+#define GPIO_PG1_EPI0S10        0x0006040F
+
+#define GPIO_PH0_U0RTS          0x00070001
+#define GPIO_PH0_EPI0S0         0x0007000F
+
+#define GPIO_PH1_U0CTS          0x00070401
+#define GPIO_PH1_EPI0S1         0x0007040F
+
+#define GPIO_PH2_U0DCD          0x00070801
+#define GPIO_PH2_EPI0S2         0x0007080F
+
+#define GPIO_PH3_U0DSR          0x00070C01
+#define GPIO_PH3_EPI0S3         0x00070C0F
+
+#define GPIO_PJ0_U3RX           0x00080001
+#define GPIO_PJ0_EN0PPS         0x00080005
+
+#define GPIO_PJ1_U3TX           0x00080401
+
+#define GPIO_PK0_U4RX           0x00090001
+#define GPIO_PK0_EPI0S0         0x0009000F
+
+#define GPIO_PK1_U4TX           0x00090401
+#define GPIO_PK1_EPI0S1         0x0009040F
+
+#define GPIO_PK2_U4RTS          0x00090801
+#define GPIO_PK2_EPI0S2         0x0009080F
+
+#define GPIO_PK3_U4CTS          0x00090C01
+#define GPIO_PK3_EPI0S3         0x00090C0F
+
+#define GPIO_PK4_I2C3SCL        0x00091002
+#define GPIO_PK4_EN0LED0        0x00091005
+#define GPIO_PK4_M0PWM6         0x00091006
+#define GPIO_PK4_EPI0S32        0x0009100F
+
+#define GPIO_PK5_I2C3SDA        0x00091402
+#define GPIO_PK5_EN0LED2        0x00091405
+#define GPIO_PK5_M0PWM7         0x00091406
+#define GPIO_PK5_EPI0S31        0x0009140F
+
+#define GPIO_PK6_I2C4SCL        0x00091802
+#define GPIO_PK6_EN0LED1        0x00091805
+#define GPIO_PK6_M0FAULT1       0x00091806
+#define GPIO_PK6_EPI0S25        0x0009180F
+
+#define GPIO_PK7_U0RI           0x00091C01
+#define GPIO_PK7_I2C4SDA        0x00091C02
+#define GPIO_PK7_RTCCLK         0x00091C05
+#define GPIO_PK7_M0FAULT2       0x00091C06
+#define GPIO_PK7_EPI0S24        0x00091C0F
+
+#define GPIO_PL0_I2C2SDA        0x000A0002
+#define GPIO_PL0_M0FAULT3       0x000A0006
+#define GPIO_PL0_USB0D0         0x000A000E
+#define GPIO_PL0_EPI0S16        0x000A000F
+
+#define GPIO_PL1_I2C2SCL        0x000A0402
+#define GPIO_PL1_PHA0           0x000A0406
+#define GPIO_PL1_USB0D1         0x000A040E
+#define GPIO_PL1_EPI0S17        0x000A040F
+
+#define GPIO_PL2_C0O            0x000A0805
+#define GPIO_PL2_PHB0           0x000A0806
+#define GPIO_PL2_USB0D2         0x000A080E
+#define GPIO_PL2_EPI0S18        0x000A080F
+
+#define GPIO_PL3_C1O            0x000A0C05
+#define GPIO_PL3_IDX0           0x000A0C06
+#define GPIO_PL3_USB0D3         0x000A0C0E
+#define GPIO_PL3_EPI0S19        0x000A0C0F
+
+#define GPIO_PL4_T0CCP0         0x000A1003
+#define GPIO_PL4_USB0D4         0x000A100E
+#define GPIO_PL4_EPI0S26        0x000A100F
+
+#define GPIO_PL5_T0CCP1         0x000A1403
+#define GPIO_PL5_EPI0S33        0x000A140F
+#define GPIO_PL5_USB0D5         0x000A140E
+
+#define GPIO_PL6_T1CCP0         0x000A1803
+
+#define GPIO_PL7_T1CCP1         0x000A1C03
+
+#define GPIO_PM0_T2CCP0         0x000B0003
+#define GPIO_PM0_EPI0S15        0x000B000F
+
+#define GPIO_PM1_T2CCP1         0x000B0403
+#define GPIO_PM1_EPI0S14        0x000B040F
+
+#define GPIO_PM2_T3CCP0         0x000B0803
+#define GPIO_PM2_EPI0S13        0x000B080F
+
+#define GPIO_PM3_T3CCP1         0x000B0C03
+#define GPIO_PM3_EPI0S12        0x000B0C0F
+
+#define GPIO_PM4_U0CTS          0x000B1001
+#define GPIO_PM4_T4CCP0         0x000B1003
+
+#define GPIO_PM5_U0DCD          0x000B1401
+#define GPIO_PM5_T4CCP1         0x000B1403
+
+#define GPIO_PM6_U0DSR          0x000B1801
+#define GPIO_PM6_T5CCP0         0x000B1803
+
+#define GPIO_PM7_U0RI           0x000B1C01
+#define GPIO_PM7_T5CCP1         0x000B1C03
+
+#define GPIO_PN0_U1RTS          0x000C0001
+
+#define GPIO_PN1_U1CTS          0x000C0401
+
+#define GPIO_PN2_U1DCD          0x000C0801
+#define GPIO_PN2_U2RTS          0x000C0802
+#define GPIO_PN2_EPI0S29        0x000C080F
+
+#define GPIO_PN3_U1DSR          0x000C0C01
+#define GPIO_PN3_U2CTS          0x000C0C02
+#define GPIO_PN3_EPI0S30        0x000C0C0F
+
+#define GPIO_PN4_U1DTR          0x000C1001
+#define GPIO_PN4_U3RTS          0x000C1002
+#define GPIO_PN4_I2C2SDA        0x000C1003
+#define GPIO_PN4_EPI0S34        0x000C100F
+
+#define GPIO_PN5_U1RI           0x000C1401
+#define GPIO_PN5_U3CTS          0x000C1402
+#define GPIO_PN5_I2C2SCL        0x000C1403
+#define GPIO_PN5_EPI0S35        0x000C140F
+
+#define GPIO_PP0_U6RX           0x000D0001
+#define GPIO_PP0_SSI3XDAT2      0x000D000F
+
+#define GPIO_PP1_U6TX           0x000D0401
+#define GPIO_PP1_SSI3XDAT3      0x000D040F
+
+#define GPIO_PP2_U0DTR          0x000D0801
+#define GPIO_PP2_USB0NXT        0x000D080E
+#define GPIO_PP2_EPI0S29        0x000D080F
+
+#define GPIO_PP3_U1CTS          0x000D0C01
+#define GPIO_PP3_U0DCD          0x000D0C02
+#define GPIO_PP3_RTCCLK         0x000D0C07
+#define GPIO_PP3_USB0DIR        0x000D0C0E
+#define GPIO_PP3_EPI0S30        0x000D0C0F
+
+#define GPIO_PP4_U3RTS          0x000D1001
+#define GPIO_PP4_U0DSR          0x000D1002
+#define GPIO_PP4_USB0D7         0x000D100E
+
+#define GPIO_PP5_U3CTS          0x000D1401
+#define GPIO_PP5_I2C2SCL        0x000D1402
+#define GPIO_PP5_USB0D6         0x000D140E
+
+#define GPIO_PQ0_SSI3CLK        0x000E000E
+#define GPIO_PQ0_EPI0S20        0x000E000F
+
+#define GPIO_PQ1_SSI3FSS        0x000E040E
+#define GPIO_PQ1_EPI0S21        0x000E040F
+
+#define GPIO_PQ2_SSI3XDAT0      0x000E080E
+#define GPIO_PQ2_EPI0S22        0x000E080F
+
+#define GPIO_PQ3_SSI3XDAT1      0x000E0C0E
+#define GPIO_PQ3_EPI0S23        0x000E0C0F
+
+#define GPIO_PQ4_U1RX           0x000E1001
+#define GPIO_PQ4_DIVSCLK        0x000E1007
+
+#endif // PART_TM4C129EKCPDT
+
+//*****************************************************************************
+//
+// TM4C129ENCPDT Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C129ENCPDT
+
+#define GPIO_PA0_U0RX           0x00000001
+#define GPIO_PA0_I2C9SCL        0x00000002
+#define GPIO_PA0_T0CCP0         0x00000003
+#define GPIO_PA0_CAN0RX         0x00000007
+
+#define GPIO_PA1_U0TX           0x00000401
+#define GPIO_PA1_I2C9SDA        0x00000402
+#define GPIO_PA1_T0CCP1         0x00000403
+#define GPIO_PA1_CAN0TX         0x00000407
+
+#define GPIO_PA2_U4RX           0x00000801
+#define GPIO_PA2_I2C8SCL        0x00000802
+#define GPIO_PA2_T1CCP0         0x00000803
+#define GPIO_PA2_SSI0CLK        0x0000080F
+
+#define GPIO_PA3_U4TX           0x00000C01
+#define GPIO_PA3_I2C8SDA        0x00000C02
+#define GPIO_PA3_T1CCP1         0x00000C03
+#define GPIO_PA3_SSI0FSS        0x00000C0F
+
+#define GPIO_PA4_U3RX           0x00001001
+#define GPIO_PA4_T2CCP0         0x00001003
+#define GPIO_PA4_I2C7SCL        0x00001002
+#define GPIO_PA4_SSI0XDAT0      0x0000100F
+
+#define GPIO_PA5_U3TX           0x00001401
+#define GPIO_PA5_T2CCP1         0x00001403
+#define GPIO_PA5_I2C7SDA        0x00001402
+#define GPIO_PA5_SSI0XDAT1      0x0000140F
+
+#define GPIO_PA6_U2RX           0x00001801
+#define GPIO_PA6_I2C6SCL        0x00001802
+#define GPIO_PA6_T3CCP0         0x00001803
+#define GPIO_PA6_USB0EPEN       0x00001805
+#define GPIO_PA6_SSI0XDAT2      0x0000180D
+#define GPIO_PA6_EPI0S8         0x0000180F
+
+#define GPIO_PA7_U2TX           0x00001C01
+#define GPIO_PA7_I2C6SDA        0x00001C02
+#define GPIO_PA7_T3CCP1         0x00001C03
+#define GPIO_PA7_USB0PFLT       0x00001C05
+#define GPIO_PA7_USB0EPEN       0x00001C0B
+#define GPIO_PA7_SSI0XDAT3      0x00001C0D
+#define GPIO_PA7_EPI0S9         0x00001C0F
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_I2C5SCL        0x00010002
+#define GPIO_PB0_CAN1RX         0x00010007
+#define GPIO_PB0_T4CCP0         0x00010003
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_I2C5SDA        0x00010402
+#define GPIO_PB1_CAN1TX         0x00010407
+#define GPIO_PB1_T4CCP1         0x00010403
+
+#define GPIO_PB2_T5CCP0         0x00010803
+#define GPIO_PB2_I2C0SCL        0x00010802
+#define GPIO_PB2_USB0STP        0x0001080E
+#define GPIO_PB2_EPI0S27        0x0001080F
+
+#define GPIO_PB3_I2C0SDA        0x00010C02
+#define GPIO_PB3_T5CCP1         0x00010C03
+#define GPIO_PB3_USB0CLK        0x00010C0E
+#define GPIO_PB3_EPI0S28        0x00010C0F
+
+#define GPIO_PB4_U0CTS          0x00011001
+#define GPIO_PB4_I2C5SCL        0x00011002
+#define GPIO_PB4_SSI1FSS        0x0001100F
+
+#define GPIO_PB5_U0RTS          0x00011401
+#define GPIO_PB5_I2C5SDA        0x00011402
+#define GPIO_PB5_SSI1CLK        0x0001140F
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+
+#define GPIO_PC2_TDI            0x00020801
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+
+#define GPIO_PC4_U7RX           0x00021001
+#define GPIO_PC4_EPI0S7         0x0002100F
+
+#define GPIO_PC5_U7TX           0x00021401
+#define GPIO_PC5_RTCCLK         0x00021407
+#define GPIO_PC5_EPI0S6         0x0002140F
+
+#define GPIO_PC6_U5RX           0x00021801
+#define GPIO_PC6_EPI0S5         0x0002180F
+
+#define GPIO_PC7_U5TX           0x00021C01
+#define GPIO_PC7_EPI0S4         0x00021C0F
+
+#define GPIO_PD0_I2C7SCL        0x00030002
+#define GPIO_PD0_T0CCP0         0x00030003
+#define GPIO_PD0_C0O            0x00030005
+#define GPIO_PD0_SSI2XDAT1      0x0003000F
+
+#define GPIO_PD1_I2C7SDA        0x00030402
+#define GPIO_PD1_T0CCP1         0x00030403
+#define GPIO_PD1_C1O            0x00030405
+#define GPIO_PD1_SSI2XDAT0      0x0003040F
+
+#define GPIO_PD2_I2C8SCL        0x00030802
+#define GPIO_PD2_T1CCP0         0x00030803
+#define GPIO_PD2_C2O            0x00030805
+#define GPIO_PD2_SSI2FSS        0x0003080F
+
+#define GPIO_PD3_I2C8SDA        0x00030C02
+#define GPIO_PD3_T1CCP1         0x00030C03
+#define GPIO_PD3_SSI2CLK        0x00030C0F
+
+#define GPIO_PD4_U2RX           0x00031001
+#define GPIO_PD4_T3CCP0         0x00031003
+#define GPIO_PD4_SSI1XDAT2      0x0003100F
+
+#define GPIO_PD5_U2TX           0x00031401
+#define GPIO_PD5_T3CCP1         0x00031403
+#define GPIO_PD5_SSI1XDAT3      0x0003140F
+
+#define GPIO_PD6_U2RTS          0x00031801
+#define GPIO_PD6_T4CCP0         0x00031803
+#define GPIO_PD6_USB0EPEN       0x00031805
+#define GPIO_PD6_SSI2XDAT3      0x0003180F
+
+#define GPIO_PD7_U2CTS          0x00031C01
+#define GPIO_PD7_T4CCP1         0x00031C03
+#define GPIO_PD7_USB0PFLT       0x00031C05
+#define GPIO_PD7_NMI            0x00031C08
+#define GPIO_PD7_SSI2XDAT2      0x00031C0F
+
+#define GPIO_PE0_U1RTS          0x00040001
+
+#define GPIO_PE1_U1DSR          0x00040401
+
+#define GPIO_PE2_U1DCD          0x00040801
+
+#define GPIO_PE3_U1DTR          0x00040C01
+
+#define GPIO_PE4_U1RI           0x00041001
+#define GPIO_PE4_SSI1XDAT0      0x0004100F
+
+#define GPIO_PE5_SSI1XDAT1      0x0004140F
+
+#define GPIO_PF0_EN0LED0        0x00050005
+#define GPIO_PF0_M0PWM0         0x00050006
+#define GPIO_PF0_SSI3XDAT1      0x0005000E
+#define GPIO_PF0_TRD2           0x0005000F
+
+#define GPIO_PF1_EN0LED2        0x00050405
+#define GPIO_PF1_M0PWM1         0x00050406
+#define GPIO_PF1_SSI3XDAT0      0x0005040E
+#define GPIO_PF1_TRD1           0x0005040F
+
+#define GPIO_PF2_M0PWM2         0x00050806
+#define GPIO_PF2_SSI3FSS        0x0005080E
+#define GPIO_PF2_TRD0           0x0005080F
+
+#define GPIO_PF3_M0PWM3         0x00050C06
+#define GPIO_PF3_SSI3CLK        0x00050C0E
+#define GPIO_PF3_TRCLK          0x00050C0F
+
+#define GPIO_PF4_EN0LED1        0x00051005
+#define GPIO_PF4_M0FAULT0       0x00051006
+#define GPIO_PF4_SSI3XDAT2      0x0005100E
+#define GPIO_PF4_TRD3           0x0005100F
+
+#define GPIO_PG0_I2C1SCL        0x00060002
+#define GPIO_PG0_EN0PPS         0x00060005
+#define GPIO_PG0_M0PWM4         0x00060006
+#define GPIO_PG0_EPI0S11        0x0006000F
+
+#define GPIO_PG1_I2C1SDA        0x00060402
+#define GPIO_PG1_M0PWM5         0x00060406
+#define GPIO_PG1_EPI0S10        0x0006040F
+
+#define GPIO_PH0_U0RTS          0x00070001
+#define GPIO_PH0_EPI0S0         0x0007000F
+
+#define GPIO_PH1_U0CTS          0x00070401
+#define GPIO_PH1_EPI0S1         0x0007040F
+
+#define GPIO_PH2_U0DCD          0x00070801
+#define GPIO_PH2_EPI0S2         0x0007080F
+
+#define GPIO_PH3_U0DSR          0x00070C01
+#define GPIO_PH3_EPI0S3         0x00070C0F
+
+#define GPIO_PJ0_U3RX           0x00080001
+#define GPIO_PJ0_EN0PPS         0x00080005
+
+#define GPIO_PJ1_U3TX           0x00080401
+
+#define GPIO_PK0_U4RX           0x00090001
+#define GPIO_PK0_EPI0S0         0x0009000F
+
+#define GPIO_PK1_U4TX           0x00090401
+#define GPIO_PK1_EPI0S1         0x0009040F
+
+#define GPIO_PK2_U4RTS          0x00090801
+#define GPIO_PK2_EPI0S2         0x0009080F
+
+#define GPIO_PK3_U4CTS          0x00090C01
+#define GPIO_PK3_EPI0S3         0x00090C0F
+
+#define GPIO_PK4_I2C3SCL        0x00091002
+#define GPIO_PK4_EN0LED0        0x00091005
+#define GPIO_PK4_M0PWM6         0x00091006
+#define GPIO_PK4_EPI0S32        0x0009100F
+
+#define GPIO_PK5_I2C3SDA        0x00091402
+#define GPIO_PK5_EN0LED2        0x00091405
+#define GPIO_PK5_M0PWM7         0x00091406
+#define GPIO_PK5_EPI0S31        0x0009140F
+
+#define GPIO_PK6_I2C4SCL        0x00091802
+#define GPIO_PK6_EN0LED1        0x00091805
+#define GPIO_PK6_M0FAULT1       0x00091806
+#define GPIO_PK6_EPI0S25        0x0009180F
+
+#define GPIO_PK7_U0RI           0x00091C01
+#define GPIO_PK7_I2C4SDA        0x00091C02
+#define GPIO_PK7_RTCCLK         0x00091C05
+#define GPIO_PK7_M0FAULT2       0x00091C06
+#define GPIO_PK7_EPI0S24        0x00091C0F
+
+#define GPIO_PL0_I2C2SDA        0x000A0002
+#define GPIO_PL0_M0FAULT3       0x000A0006
+#define GPIO_PL0_USB0D0         0x000A000E
+#define GPIO_PL0_EPI0S16        0x000A000F
+
+#define GPIO_PL1_I2C2SCL        0x000A0402
+#define GPIO_PL1_PHA0           0x000A0406
+#define GPIO_PL1_USB0D1         0x000A040E
+#define GPIO_PL1_EPI0S17        0x000A040F
+
+#define GPIO_PL2_C0O            0x000A0805
+#define GPIO_PL2_PHB0           0x000A0806
+#define GPIO_PL2_USB0D2         0x000A080E
+#define GPIO_PL2_EPI0S18        0x000A080F
+
+#define GPIO_PL3_C1O            0x000A0C05
+#define GPIO_PL3_IDX0           0x000A0C06
+#define GPIO_PL3_USB0D3         0x000A0C0E
+#define GPIO_PL3_EPI0S19        0x000A0C0F
+
+#define GPIO_PL4_T0CCP0         0x000A1003
+#define GPIO_PL4_USB0D4         0x000A100E
+#define GPIO_PL4_EPI0S26        0x000A100F
+
+#define GPIO_PL5_T0CCP1         0x000A1403
+#define GPIO_PL5_EPI0S33        0x000A140F
+#define GPIO_PL5_USB0D5         0x000A140E
+
+#define GPIO_PL6_T1CCP0         0x000A1803
+
+#define GPIO_PL7_T1CCP1         0x000A1C03
+
+#define GPIO_PM0_T2CCP0         0x000B0003
+#define GPIO_PM0_EPI0S15        0x000B000F
+
+#define GPIO_PM1_T2CCP1         0x000B0403
+#define GPIO_PM1_EPI0S14        0x000B040F
+
+#define GPIO_PM2_T3CCP0         0x000B0803
+#define GPIO_PM2_EPI0S13        0x000B080F
+
+#define GPIO_PM3_T3CCP1         0x000B0C03
+#define GPIO_PM3_EPI0S12        0x000B0C0F
+
+#define GPIO_PM4_U0CTS          0x000B1001
+#define GPIO_PM4_T4CCP0         0x000B1003
+
+#define GPIO_PM5_U0DCD          0x000B1401
+#define GPIO_PM5_T4CCP1         0x000B1403
+
+#define GPIO_PM6_U0DSR          0x000B1801
+#define GPIO_PM6_T5CCP0         0x000B1803
+
+#define GPIO_PM7_U0RI           0x000B1C01
+#define GPIO_PM7_T5CCP1         0x000B1C03
+
+#define GPIO_PN0_U1RTS          0x000C0001
+
+#define GPIO_PN1_U1CTS          0x000C0401
+
+#define GPIO_PN2_U1DCD          0x000C0801
+#define GPIO_PN2_U2RTS          0x000C0802
+#define GPIO_PN2_EPI0S29        0x000C080F
+
+#define GPIO_PN3_U1DSR          0x000C0C01
+#define GPIO_PN3_U2CTS          0x000C0C02
+#define GPIO_PN3_EPI0S30        0x000C0C0F
+
+#define GPIO_PN4_U1DTR          0x000C1001
+#define GPIO_PN4_U3RTS          0x000C1002
+#define GPIO_PN4_I2C2SDA        0x000C1003
+#define GPIO_PN4_EPI0S34        0x000C100F
+
+#define GPIO_PN5_U1RI           0x000C1401
+#define GPIO_PN5_U3CTS          0x000C1402
+#define GPIO_PN5_I2C2SCL        0x000C1403
+#define GPIO_PN5_EPI0S35        0x000C140F
+
+#define GPIO_PP0_U6RX           0x000D0001
+#define GPIO_PP0_SSI3XDAT2      0x000D000F
+
+#define GPIO_PP1_U6TX           0x000D0401
+#define GPIO_PP1_SSI3XDAT3      0x000D040F
+
+#define GPIO_PP2_U0DTR          0x000D0801
+#define GPIO_PP2_USB0NXT        0x000D080E
+#define GPIO_PP2_EPI0S29        0x000D080F
+
+#define GPIO_PP3_U1CTS          0x000D0C01
+#define GPIO_PP3_U0DCD          0x000D0C02
+#define GPIO_PP3_RTCCLK         0x000D0C07
+#define GPIO_PP3_USB0DIR        0x000D0C0E
+#define GPIO_PP3_EPI0S30        0x000D0C0F
+
+#define GPIO_PP4_U3RTS          0x000D1001
+#define GPIO_PP4_U0DSR          0x000D1002
+#define GPIO_PP4_USB0D7         0x000D100E
+
+#define GPIO_PP5_U3CTS          0x000D1401
+#define GPIO_PP5_I2C2SCL        0x000D1402
+#define GPIO_PP5_USB0D6         0x000D140E
+
+#define GPIO_PQ0_SSI3CLK        0x000E000E
+#define GPIO_PQ0_EPI0S20        0x000E000F
+
+#define GPIO_PQ1_SSI3FSS        0x000E040E
+#define GPIO_PQ1_EPI0S21        0x000E040F
+
+#define GPIO_PQ2_SSI3XDAT0      0x000E080E
+#define GPIO_PQ2_EPI0S22        0x000E080F
+
+#define GPIO_PQ3_SSI3XDAT1      0x000E0C0E
+#define GPIO_PQ3_EPI0S23        0x000E0C0F
+
+#define GPIO_PQ4_U1RX           0x000E1001
+#define GPIO_PQ4_DIVSCLK        0x000E1007
+
+#endif // PART_TM4C129ENCPDT
+
+//*****************************************************************************
+//
+// TM4C129ENCZAD Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C129ENCZAD
+
+#define GPIO_PA0_U0RX           0x00000001
+#define GPIO_PA0_I2C9SCL        0x00000002
+#define GPIO_PA0_T0CCP0         0x00000003
+#define GPIO_PA0_CAN0RX         0x00000007
+
+#define GPIO_PA1_U0TX           0x00000401
+#define GPIO_PA1_I2C9SDA        0x00000402
+#define GPIO_PA1_T0CCP1         0x00000403
+#define GPIO_PA1_CAN0TX         0x00000407
+
+#define GPIO_PA2_U4RX           0x00000801
+#define GPIO_PA2_I2C8SCL        0x00000802
+#define GPIO_PA2_T1CCP0         0x00000803
+#define GPIO_PA2_SSI0CLK        0x0000080F
+
+#define GPIO_PA3_U4TX           0x00000C01
+#define GPIO_PA3_I2C8SDA        0x00000C02
+#define GPIO_PA3_T1CCP1         0x00000C03
+#define GPIO_PA3_SSI0FSS        0x00000C0F
+
+#define GPIO_PA4_U3RX           0x00001001
+#define GPIO_PA4_T2CCP0         0x00001003
+#define GPIO_PA4_I2C7SCL        0x00001002
+#define GPIO_PA4_SSI0XDAT0      0x0000100F
+
+#define GPIO_PA5_U3TX           0x00001401
+#define GPIO_PA5_T2CCP1         0x00001403
+#define GPIO_PA5_I2C7SDA        0x00001402
+#define GPIO_PA5_SSI0XDAT1      0x0000140F
+
+#define GPIO_PA6_U2RX           0x00001801
+#define GPIO_PA6_I2C6SCL        0x00001802
+#define GPIO_PA6_T3CCP0         0x00001803
+#define GPIO_PA6_USB0EPEN       0x00001805
+#define GPIO_PA6_SSI0XDAT2      0x0000180D
+#define GPIO_PA6_EPI0S8         0x0000180F
+
+#define GPIO_PA7_U2TX           0x00001C01
+#define GPIO_PA7_I2C6SDA        0x00001C02
+#define GPIO_PA7_T3CCP1         0x00001C03
+#define GPIO_PA7_USB0PFLT       0x00001C05
+#define GPIO_PA7_USB0EPEN       0x00001C0B
+#define GPIO_PA7_SSI0XDAT3      0x00001C0D
+#define GPIO_PA7_EPI0S9         0x00001C0F
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_I2C5SCL        0x00010002
+#define GPIO_PB0_CAN1RX         0x00010007
+#define GPIO_PB0_T4CCP0         0x00010003
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_I2C5SDA        0x00010402
+#define GPIO_PB1_CAN1TX         0x00010407
+#define GPIO_PB1_T4CCP1         0x00010403
+
+#define GPIO_PB2_T5CCP0         0x00010803
+#define GPIO_PB2_I2C0SCL        0x00010802
+#define GPIO_PB2_USB0STP        0x0001080E
+#define GPIO_PB2_EPI0S27        0x0001080F
+
+#define GPIO_PB3_I2C0SDA        0x00010C02
+#define GPIO_PB3_T5CCP1         0x00010C03
+#define GPIO_PB3_USB0CLK        0x00010C0E
+#define GPIO_PB3_EPI0S28        0x00010C0F
+
+#define GPIO_PB4_U0CTS          0x00011001
+#define GPIO_PB4_I2C5SCL        0x00011002
+#define GPIO_PB4_SSI1FSS        0x0001100F
+
+#define GPIO_PB5_U0RTS          0x00011401
+#define GPIO_PB5_I2C5SDA        0x00011402
+#define GPIO_PB5_SSI1CLK        0x0001140F
+
+#define GPIO_PB6_I2C6SCL        0x00011802
+#define GPIO_PB6_T6CCP0         0x00011803
+
+#define GPIO_PB7_I2C6SDA        0x00011C02
+#define GPIO_PB7_T6CCP1         0x00011C03
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+
+#define GPIO_PC2_TDI            0x00020801
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+
+#define GPIO_PC4_U7RX           0x00021001
+#define GPIO_PC4_T7CCP0         0x00021003
+#define GPIO_PC4_EPI0S7         0x0002100F
+
+#define GPIO_PC5_U7TX           0x00021401
+#define GPIO_PC5_T7CCP1         0x00021403
+#define GPIO_PC5_RTCCLK         0x00021407
+#define GPIO_PC5_EPI0S6         0x0002140F
+
+#define GPIO_PC6_U5RX           0x00021801
+#define GPIO_PC6_EPI0S5         0x0002180F
+
+#define GPIO_PC7_U5TX           0x00021C01
+#define GPIO_PC7_EPI0S4         0x00021C0F
+
+#define GPIO_PD0_I2C7SCL        0x00030002
+#define GPIO_PD0_T0CCP0         0x00030003
+#define GPIO_PD0_C0O            0x00030005
+#define GPIO_PD0_SSI2XDAT1      0x0003000F
+
+#define GPIO_PD1_I2C7SDA        0x00030402
+#define GPIO_PD1_T0CCP1         0x00030403
+#define GPIO_PD1_C1O            0x00030405
+#define GPIO_PD1_SSI2XDAT0      0x0003040F
+
+#define GPIO_PD2_I2C8SCL        0x00030802
+#define GPIO_PD2_T1CCP0         0x00030803
+#define GPIO_PD2_C2O            0x00030805
+#define GPIO_PD2_SSI2FSS        0x0003080F
+
+#define GPIO_PD3_I2C8SDA        0x00030C02
+#define GPIO_PD3_T1CCP1         0x00030C03
+#define GPIO_PD3_SSI2CLK        0x00030C0F
+
+#define GPIO_PD4_U2RX           0x00031001
+#define GPIO_PD4_T3CCP0         0x00031003
+#define GPIO_PD4_SSI1XDAT2      0x0003100F
+
+#define GPIO_PD5_U2TX           0x00031401
+#define GPIO_PD5_T3CCP1         0x00031403
+#define GPIO_PD5_SSI1XDAT3      0x0003140F
+
+#define GPIO_PD6_U2RTS          0x00031801
+#define GPIO_PD6_T4CCP0         0x00031803
+#define GPIO_PD6_USB0EPEN       0x00031805
+#define GPIO_PD6_SSI2XDAT3      0x0003180F
+
+#define GPIO_PD7_U2CTS          0x00031C01
+#define GPIO_PD7_T4CCP1         0x00031C03
+#define GPIO_PD7_USB0PFLT       0x00031C05
+#define GPIO_PD7_NMI            0x00031C08
+#define GPIO_PD7_SSI2XDAT2      0x00031C0F
+
+#define GPIO_PE0_U1RTS          0x00040001
+
+#define GPIO_PE1_U1DSR          0x00040401
+
+#define GPIO_PE2_U1DCD          0x00040801
+
+#define GPIO_PE3_U1DTR          0x00040C01
+
+#define GPIO_PE4_U1RI           0x00041001
+#define GPIO_PE4_SSI1XDAT0      0x0004100F
+
+#define GPIO_PE5_SSI1XDAT1      0x0004140F
+
+#define GPIO_PE6_U0CTS          0x00041801
+#define GPIO_PE6_I2C9SCL        0x00041802
+
+#define GPIO_PE7_U0RTS          0x00041C01
+#define GPIO_PE7_I2C9SDA        0x00041C02
+#define GPIO_PE7_NMI            0x00041C08
+
+#define GPIO_PF0_EN0LED0        0x00050005
+#define GPIO_PF0_M0PWM0         0x00050006
+#define GPIO_PF0_SSI3XDAT1      0x0005000E
+#define GPIO_PF0_TRD2           0x0005000F
+
+#define GPIO_PF1_EN0LED2        0x00050405
+#define GPIO_PF1_M0PWM1         0x00050406
+#define GPIO_PF1_SSI3XDAT0      0x0005040E
+#define GPIO_PF1_TRD1           0x0005040F
+
+#define GPIO_PF2_M0PWM2         0x00050806
+#define GPIO_PF2_SSI3FSS        0x0005080E
+#define GPIO_PF2_TRD0           0x0005080F
+
+#define GPIO_PF3_M0PWM3         0x00050C06
+#define GPIO_PF3_SSI3CLK        0x00050C0E
+#define GPIO_PF3_TRCLK          0x00050C0F
+
+#define GPIO_PF4_EN0LED1        0x00051005
+#define GPIO_PF4_M0FAULT0       0x00051006
+#define GPIO_PF4_SSI3XDAT2      0x0005100E
+#define GPIO_PF4_TRD3           0x0005100F
+
+#define GPIO_PF5_SSI3XDAT3      0x0005140E
+
+#define GPIO_PG0_I2C1SCL        0x00060002
+#define GPIO_PG0_EN0PPS         0x00060005
+#define GPIO_PG0_M0PWM4         0x00060006
+#define GPIO_PG0_EPI0S11        0x0006000F
+
+#define GPIO_PG1_I2C1SDA        0x00060402
+#define GPIO_PG1_M0PWM5         0x00060406
+#define GPIO_PG1_EPI0S10        0x0006040F
+
+#define GPIO_PG2_I2C2SCL        0x00060802
+#define GPIO_PG2_SSI2XDAT3      0x0006080F
+
+#define GPIO_PG3_I2C2SDA        0x00060C02
+#define GPIO_PG3_SSI2XDAT2      0x00060C0F
+
+#define GPIO_PG4_U0CTS          0x00061001
+#define GPIO_PG4_I2C3SCL        0x00061002
+#define GPIO_PG4_SSI2XDAT1      0x0006100F
+
+#define GPIO_PG5_U0RTS          0x00061401
+#define GPIO_PG5_I2C3SDA        0x00061402
+#define GPIO_PG5_SSI2XDAT0      0x0006140F
+
+#define GPIO_PG6_I2C4SCL        0x00061802
+#define GPIO_PG6_SSI2FSS        0x0006180F
+
+#define GPIO_PG7_I2C4SDA        0x00061C02
+#define GPIO_PG7_SSI2CLK        0x00061C0F
+
+#define GPIO_PH0_U0RTS          0x00070001
+#define GPIO_PH0_EPI0S0         0x0007000F
+
+#define GPIO_PH1_U0CTS          0x00070401
+#define GPIO_PH1_EPI0S1         0x0007040F
+
+#define GPIO_PH2_U0DCD          0x00070801
+#define GPIO_PH2_EPI0S2         0x0007080F
+
+#define GPIO_PH3_U0DSR          0x00070C01
+#define GPIO_PH3_EPI0S3         0x00070C0F
+
+#define GPIO_PH4_U0DTR          0x00071001
+
+#define GPIO_PH5_U0RI           0x00071401
+#define GPIO_PH5_EN0PPS         0x00071405
+
+#define GPIO_PH6_U5RX           0x00071801
+#define GPIO_PH6_U7RX           0x00071802
+
+#define GPIO_PH7_U5TX           0x00071C01
+#define GPIO_PH7_U7TX           0x00071C02
+
+#define GPIO_PJ0_U3RX           0x00080001
+#define GPIO_PJ0_EN0PPS         0x00080005
+
+#define GPIO_PJ1_U3TX           0x00080401
+
+#define GPIO_PJ2_U2RTS          0x00080801
+
+#define GPIO_PJ3_U2CTS          0x00080C01
+
+#define GPIO_PJ4_U3RTS          0x00081001
+
+#define GPIO_PJ5_U3CTS          0x00081401
+
+#define GPIO_PJ6_U4RTS          0x00081801
+
+#define GPIO_PJ7_U4CTS          0x00081C01
+
+#define GPIO_PK0_U4RX           0x00090001
+#define GPIO_PK0_EPI0S0         0x0009000F
+
+#define GPIO_PK1_U4TX           0x00090401
+#define GPIO_PK1_EPI0S1         0x0009040F
+
+#define GPIO_PK2_U4RTS          0x00090801
+#define GPIO_PK2_EPI0S2         0x0009080F
+
+#define GPIO_PK3_U4CTS          0x00090C01
+#define GPIO_PK3_EPI0S3         0x00090C0F
+
+#define GPIO_PK4_I2C3SCL        0x00091002
+#define GPIO_PK4_EN0LED0        0x00091005
+#define GPIO_PK4_M0PWM6         0x00091006
+#define GPIO_PK4_EPI0S32        0x0009100F
+
+#define GPIO_PK5_I2C3SDA        0x00091402
+#define GPIO_PK5_EN0LED2        0x00091405
+#define GPIO_PK5_M0PWM7         0x00091406
+#define GPIO_PK5_EPI0S31        0x0009140F
+
+#define GPIO_PK6_I2C4SCL        0x00091802
+#define GPIO_PK6_EN0LED1        0x00091805
+#define GPIO_PK6_M0FAULT1       0x00091806
+#define GPIO_PK6_EPI0S25        0x0009180F
+
+#define GPIO_PK7_U0RI           0x00091C01
+#define GPIO_PK7_I2C4SDA        0x00091C02
+#define GPIO_PK7_RTCCLK         0x00091C05
+#define GPIO_PK7_M0FAULT2       0x00091C06
+#define GPIO_PK7_EPI0S24        0x00091C0F
+
+#define GPIO_PL0_I2C2SDA        0x000A0002
+#define GPIO_PL0_M0FAULT3       0x000A0006
+#define GPIO_PL0_USB0D0         0x000A000E
+#define GPIO_PL0_EPI0S16        0x000A000F
+
+#define GPIO_PL1_I2C2SCL        0x000A0402
+#define GPIO_PL1_PHA0           0x000A0406
+#define GPIO_PL1_USB0D1         0x000A040E
+#define GPIO_PL1_EPI0S17        0x000A040F
+
+#define GPIO_PL2_C0O            0x000A0805
+#define GPIO_PL2_PHB0           0x000A0806
+#define GPIO_PL2_USB0D2         0x000A080E
+#define GPIO_PL2_EPI0S18        0x000A080F
+
+#define GPIO_PL3_C1O            0x000A0C05
+#define GPIO_PL3_IDX0           0x000A0C06
+#define GPIO_PL3_USB0D3         0x000A0C0E
+#define GPIO_PL3_EPI0S19        0x000A0C0F
+
+#define GPIO_PL4_T0CCP0         0x000A1003
+#define GPIO_PL4_USB0D4         0x000A100E
+#define GPIO_PL4_EPI0S26        0x000A100F
+
+#define GPIO_PL5_T0CCP1         0x000A1403
+#define GPIO_PL5_EPI0S33        0x000A140F
+#define GPIO_PL5_USB0D5         0x000A140E
+
+#define GPIO_PL6_T1CCP0         0x000A1803
+
+#define GPIO_PL7_T1CCP1         0x000A1C03
+
+#define GPIO_PM0_T2CCP0         0x000B0003
+#define GPIO_PM0_EPI0S15        0x000B000F
+
+#define GPIO_PM1_T2CCP1         0x000B0403
+#define GPIO_PM1_EPI0S14        0x000B040F
+
+#define GPIO_PM2_T3CCP0         0x000B0803
+#define GPIO_PM2_EPI0S13        0x000B080F
+
+#define GPIO_PM3_T3CCP1         0x000B0C03
+#define GPIO_PM3_EPI0S12        0x000B0C0F
+
+#define GPIO_PM4_U0CTS          0x000B1001
+#define GPIO_PM4_T4CCP0         0x000B1003
+
+#define GPIO_PM5_U0DCD          0x000B1401
+#define GPIO_PM5_T4CCP1         0x000B1403
+
+#define GPIO_PM6_U0DSR          0x000B1801
+#define GPIO_PM6_T5CCP0         0x000B1803
+
+#define GPIO_PM7_U0RI           0x000B1C01
+#define GPIO_PM7_T5CCP1         0x000B1C03
+
+#define GPIO_PN0_U1RTS          0x000C0001
+
+#define GPIO_PN1_U1CTS          0x000C0401
+
+#define GPIO_PN2_U1DCD          0x000C0801
+#define GPIO_PN2_U2RTS          0x000C0802
+#define GPIO_PN2_EPI0S29        0x000C080F
+
+#define GPIO_PN3_U1DSR          0x000C0C01
+#define GPIO_PN3_U2CTS          0x000C0C02
+#define GPIO_PN3_EPI0S30        0x000C0C0F
+
+#define GPIO_PN4_U1DTR          0x000C1001
+#define GPIO_PN4_U3RTS          0x000C1002
+#define GPIO_PN4_I2C2SDA        0x000C1003
+#define GPIO_PN4_EPI0S34        0x000C100F
+
+#define GPIO_PN5_U1RI           0x000C1401
+#define GPIO_PN5_U3CTS          0x000C1402
+#define GPIO_PN5_I2C2SCL        0x000C1403
+#define GPIO_PN5_EPI0S35        0x000C140F
+
+#define GPIO_PN6_U4RTS          0x000C1802
+
+#define GPIO_PN7_U1RTS          0x000C1C01
+#define GPIO_PN7_U4CTS          0x000C1C02
+
+#define GPIO_PP0_U6RX           0x000D0001
+#define GPIO_PP0_T6CCP0         0x000D0005
+#define GPIO_PP0_SSI3XDAT2      0x000D000F
+
+#define GPIO_PP1_U6TX           0x000D0401
+#define GPIO_PP1_T6CCP1         0x000D0405
+#define GPIO_PP1_SSI3XDAT3      0x000D040F
+
+#define GPIO_PP2_U0DTR          0x000D0801
+#define GPIO_PP2_USB0NXT        0x000D080E
+#define GPIO_PP2_EPI0S29        0x000D080F
+
+#define GPIO_PP3_U1CTS          0x000D0C01
+#define GPIO_PP3_U0DCD          0x000D0C02
+#define GPIO_PP3_RTCCLK         0x000D0C07
+#define GPIO_PP3_USB0DIR        0x000D0C0E
+#define GPIO_PP3_EPI0S30        0x000D0C0F
+
+#define GPIO_PP4_U3RTS          0x000D1001
+#define GPIO_PP4_U0DSR          0x000D1002
+#define GPIO_PP4_USB0D7         0x000D100E
+
+#define GPIO_PP5_U3CTS          0x000D1401
+#define GPIO_PP5_I2C2SCL        0x000D1402
+#define GPIO_PP5_USB0D6         0x000D140E
+
+#define GPIO_PP6_U1DCD          0x000D1801
+#define GPIO_PP6_I2C2SDA        0x000D1802
+
+#define GPIO_PQ0_T6CCP0         0x000E0003
+#define GPIO_PQ0_SSI3CLK        0x000E000E
+#define GPIO_PQ0_EPI0S20        0x000E000F
+
+#define GPIO_PQ1_T6CCP1         0x000E0403
+#define GPIO_PQ1_SSI3FSS        0x000E040E
+#define GPIO_PQ1_EPI0S21        0x000E040F
+
+#define GPIO_PQ2_T7CCP0         0x000E0803
+#define GPIO_PQ2_SSI3XDAT0      0x000E080E
+#define GPIO_PQ2_EPI0S22        0x000E080F
+
+#define GPIO_PQ3_T7CCP1         0x000E0C03
+#define GPIO_PQ3_SSI3XDAT1      0x000E0C0E
+#define GPIO_PQ3_EPI0S23        0x000E0C0F
+
+#define GPIO_PQ4_U1RX           0x000E1001
+#define GPIO_PQ4_DIVSCLK        0x000E1007
+
+#define GPIO_PQ5_U1TX           0x000E1401
+
+#define GPIO_PQ6_U1DTR          0x000E1801
+
+#define GPIO_PQ7_U1RI           0x000E1C01
+
+#define GPIO_PR0_U4TX           0x000F0001
+#define GPIO_PR0_I2C1SCL        0x000F0002
+#define GPIO_PR0_M0PWM0         0x000F0006
+
+#define GPIO_PR1_U4RX           0x000F0401
+#define GPIO_PR1_I2C1SDA        0x000F0402
+#define GPIO_PR1_M0PWM1         0x000F0406
+
+#define GPIO_PR2_I2C2SCL        0x000F0802
+#define GPIO_PR2_M0PWM2         0x000F0806
+
+#define GPIO_PR3_I2C2SDA        0x000F0C02
+#define GPIO_PR3_M0PWM3         0x000F0C06
+
+#define GPIO_PR4_I2C3SCL        0x000F1002
+#define GPIO_PR4_T0CCP0         0x000F1003
+#define GPIO_PR4_M0PWM4         0x000F1006
+
+#define GPIO_PR5_U1RX           0x000F1401
+#define GPIO_PR5_I2C3SDA        0x000F1402
+#define GPIO_PR5_T0CCP1         0x000F1403
+#define GPIO_PR5_M0PWM5         0x000F1406
+
+#define GPIO_PR6_U1TX           0x000F1801
+#define GPIO_PR6_I2C4SCL        0x000F1802
+#define GPIO_PR6_T1CCP0         0x000F1803
+#define GPIO_PR6_M0PWM6         0x000F1806
+
+#define GPIO_PR7_I2C4SDA        0x000F1C02
+#define GPIO_PR7_T1CCP1         0x000F1C03
+#define GPIO_PR7_M0PWM7         0x000F1C06
+
+#define GPIO_PS0_T2CCP0         0x00100003
+#define GPIO_PS0_M0FAULT0       0x00100006
+
+#define GPIO_PS1_T2CCP1         0x00100403
+#define GPIO_PS1_M0FAULT1       0x00100406
+
+#define GPIO_PS2_U1DSR          0x00100801
+#define GPIO_PS2_T3CCP0         0x00100803
+#define GPIO_PS2_M0FAULT2       0x00100806
+
+#define GPIO_PS3_T3CCP1         0x00100C03
+#define GPIO_PS3_M0FAULT3       0x00100C06
+
+#define GPIO_PS4_T4CCP0         0x00101003
+#define GPIO_PS4_PHA0           0x00101006
+
+#define GPIO_PS5_T4CCP1         0x00101403
+#define GPIO_PS5_PHB0           0x00101406
+
+#define GPIO_PS6_T5CCP0         0x00101803
+#define GPIO_PS6_IDX0           0x00101806
+
+#define GPIO_PS7_T5CCP1         0x00101C03
+
+#define GPIO_PT0_T6CCP0         0x00110003
+#define GPIO_PT0_CAN0RX         0x00110007
+
+#define GPIO_PT1_T6CCP1         0x00110403
+#define GPIO_PT1_CAN0TX         0x00110407
+
+#define GPIO_PT2_T7CCP0         0x00110803
+#define GPIO_PT2_CAN1RX         0x00110807
+
+#define GPIO_PT3_T7CCP1         0x00110C03
+#define GPIO_PT3_CAN1TX         0x00110C07
+
+#endif // PART_TM4C129ENCZAD
+
+//*****************************************************************************
+//
+// TM4C129LNCZAD Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C129LNCZAD
+
+#define GPIO_PA0_U0RX           0x00000001
+#define GPIO_PA0_I2C9SCL        0x00000002
+#define GPIO_PA0_T0CCP0         0x00000003
+#define GPIO_PA0_CAN0RX         0x00000007
+
+#define GPIO_PA1_U0TX           0x00000401
+#define GPIO_PA1_I2C9SDA        0x00000402
+#define GPIO_PA1_T0CCP1         0x00000403
+#define GPIO_PA1_CAN0TX         0x00000407
+
+#define GPIO_PA2_U4RX           0x00000801
+#define GPIO_PA2_I2C8SCL        0x00000802
+#define GPIO_PA2_T1CCP0         0x00000803
+#define GPIO_PA2_SSI0CLK        0x0000080F
+
+#define GPIO_PA3_U4TX           0x00000C01
+#define GPIO_PA3_I2C8SDA        0x00000C02
+#define GPIO_PA3_T1CCP1         0x00000C03
+#define GPIO_PA3_SSI0FSS        0x00000C0F
+
+#define GPIO_PA4_U3RX           0x00001001
+#define GPIO_PA4_T2CCP0         0x00001003
+#define GPIO_PA4_I2C7SCL        0x00001002
+#define GPIO_PA4_SSI0XDAT0      0x0000100F
+
+#define GPIO_PA5_U3TX           0x00001401
+#define GPIO_PA5_T2CCP1         0x00001403
+#define GPIO_PA5_I2C7SDA        0x00001402
+#define GPIO_PA5_SSI0XDAT1      0x0000140F
+
+#define GPIO_PA6_U2RX           0x00001801
+#define GPIO_PA6_I2C6SCL        0x00001802
+#define GPIO_PA6_T3CCP0         0x00001803
+#define GPIO_PA6_USB0EPEN       0x00001805
+#define GPIO_PA6_SSI0XDAT2      0x0000180D
+#define GPIO_PA6_EPI0S8         0x0000180F
+
+#define GPIO_PA7_U2TX           0x00001C01
+#define GPIO_PA7_I2C6SDA        0x00001C02
+#define GPIO_PA7_T3CCP1         0x00001C03
+#define GPIO_PA7_USB0PFLT       0x00001C05
+#define GPIO_PA7_USB0EPEN       0x00001C0B
+#define GPIO_PA7_SSI0XDAT3      0x00001C0D
+#define GPIO_PA7_EPI0S9         0x00001C0F
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_I2C5SCL        0x00010002
+#define GPIO_PB0_CAN1RX         0x00010007
+#define GPIO_PB0_T4CCP0         0x00010003
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_I2C5SDA        0x00010402
+#define GPIO_PB1_CAN1TX         0x00010407
+#define GPIO_PB1_T4CCP1         0x00010403
+
+#define GPIO_PB2_T5CCP0         0x00010803
+#define GPIO_PB2_I2C0SCL        0x00010802
+#define GPIO_PB2_USB0STP        0x0001080E
+#define GPIO_PB2_EPI0S27        0x0001080F
+
+#define GPIO_PB3_I2C0SDA        0x00010C02
+#define GPIO_PB3_T5CCP1         0x00010C03
+#define GPIO_PB3_USB0CLK        0x00010C0E
+#define GPIO_PB3_EPI0S28        0x00010C0F
+
+#define GPIO_PB4_U0CTS          0x00011001
+#define GPIO_PB4_I2C5SCL        0x00011002
+#define GPIO_PB4_SSI1FSS        0x0001100F
+
+#define GPIO_PB5_U0RTS          0x00011401
+#define GPIO_PB5_I2C5SDA        0x00011402
+#define GPIO_PB5_SSI1CLK        0x0001140F
+
+#define GPIO_PB6_I2C6SCL        0x00011802
+#define GPIO_PB6_T6CCP0         0x00011803
+
+#define GPIO_PB7_I2C6SDA        0x00011C02
+#define GPIO_PB7_T6CCP1         0x00011C03
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+
+#define GPIO_PC2_TDI            0x00020801
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+
+#define GPIO_PC4_U7RX           0x00021001
+#define GPIO_PC4_T7CCP0         0x00021003
+#define GPIO_PC4_EPI0S7         0x0002100F
+
+#define GPIO_PC5_U7TX           0x00021401
+#define GPIO_PC5_T7CCP1         0x00021403
+#define GPIO_PC5_RTCCLK         0x00021407
+#define GPIO_PC5_EPI0S6         0x0002140F
+
+#define GPIO_PC6_U5RX           0x00021801
+#define GPIO_PC6_EPI0S5         0x0002180F
+
+#define GPIO_PC7_U5TX           0x00021C01
+#define GPIO_PC7_EPI0S4         0x00021C0F
+
+#define GPIO_PD0_I2C7SCL        0x00030002
+#define GPIO_PD0_T0CCP0         0x00030003
+#define GPIO_PD0_C0O            0x00030005
+#define GPIO_PD0_SSI2XDAT1      0x0003000F
+
+#define GPIO_PD1_I2C7SDA        0x00030402
+#define GPIO_PD1_T0CCP1         0x00030403
+#define GPIO_PD1_C1O            0x00030405
+#define GPIO_PD1_SSI2XDAT0      0x0003040F
+
+#define GPIO_PD2_I2C8SCL        0x00030802
+#define GPIO_PD2_T1CCP0         0x00030803
+#define GPIO_PD2_C2O            0x00030805
+#define GPIO_PD2_SSI2FSS        0x0003080F
+
+#define GPIO_PD3_I2C8SDA        0x00030C02
+#define GPIO_PD3_T1CCP1         0x00030C03
+#define GPIO_PD3_SSI2CLK        0x00030C0F
+
+#define GPIO_PD4_U2RX           0x00031001
+#define GPIO_PD4_T3CCP0         0x00031003
+#define GPIO_PD4_SSI1XDAT2      0x0003100F
+
+#define GPIO_PD5_U2TX           0x00031401
+#define GPIO_PD5_T3CCP1         0x00031403
+#define GPIO_PD5_SSI1XDAT3      0x0003140F
+
+#define GPIO_PD6_U2RTS          0x00031801
+#define GPIO_PD6_T4CCP0         0x00031803
+#define GPIO_PD6_USB0EPEN       0x00031805
+#define GPIO_PD6_SSI2XDAT3      0x0003180F
+
+#define GPIO_PD7_U2CTS          0x00031C01
+#define GPIO_PD7_T4CCP1         0x00031C03
+#define GPIO_PD7_USB0PFLT       0x00031C05
+#define GPIO_PD7_NMI            0x00031C08
+#define GPIO_PD7_SSI2XDAT2      0x00031C0F
+
+#define GPIO_PE0_U1RTS          0x00040001
+
+#define GPIO_PE1_U1DSR          0x00040401
+
+#define GPIO_PE2_U1DCD          0x00040801
+
+#define GPIO_PE3_U1DTR          0x00040C01
+
+#define GPIO_PE4_U1RI           0x00041001
+#define GPIO_PE4_SSI1XDAT0      0x0004100F
+
+#define GPIO_PE5_SSI1XDAT1      0x0004140F
+
+#define GPIO_PE6_U0CTS          0x00041801
+#define GPIO_PE6_I2C9SCL        0x00041802
+
+#define GPIO_PE7_U0RTS          0x00041C01
+#define GPIO_PE7_I2C9SDA        0x00041C02
+#define GPIO_PE7_NMI            0x00041C08
+
+#define GPIO_PF0_EN0LED0        0x00050005
+#define GPIO_PF0_M0PWM0         0x00050006
+#define GPIO_PF0_SSI3XDAT1      0x0005000E
+#define GPIO_PF0_TRD2           0x0005000F
+
+#define GPIO_PF1_EN0LED2        0x00050405
+#define GPIO_PF1_M0PWM1         0x00050406
+#define GPIO_PF1_SSI3XDAT0      0x0005040E
+#define GPIO_PF1_TRD1           0x0005040F
+
+#define GPIO_PF2_M0PWM2         0x00050806
+#define GPIO_PF2_SSI3FSS        0x0005080E
+#define GPIO_PF2_TRD0           0x0005080F
+
+#define GPIO_PF3_M0PWM3         0x00050C06
+#define GPIO_PF3_SSI3CLK        0x00050C0E
+#define GPIO_PF3_TRCLK          0x00050C0F
+
+#define GPIO_PF4_EN0LED1        0x00051005
+#define GPIO_PF4_M0FAULT0       0x00051006
+#define GPIO_PF4_SSI3XDAT2      0x0005100E
+#define GPIO_PF4_TRD3           0x0005100F
+
+#define GPIO_PF5_SSI3XDAT3      0x0005140E
+
+#define GPIO_PF6_LCDMCLK        0x0005180F
+
+#define GPIO_PF7_LCDDATA02      0x00051C0F
+
+#define GPIO_PG0_I2C1SCL        0x00060002
+#define GPIO_PG0_EN0PPS         0x00060005
+#define GPIO_PG0_M0PWM4         0x00060006
+#define GPIO_PG0_EPI0S11        0x0006000F
+
+#define GPIO_PG1_I2C1SDA        0x00060402
+#define GPIO_PG1_M0PWM5         0x00060406
+#define GPIO_PG1_EPI0S10        0x0006040F
+
+#define GPIO_PG2_I2C2SCL        0x00060802
+#define GPIO_PG2_SSI2XDAT3      0x0006080F
+
+#define GPIO_PG3_I2C2SDA        0x00060C02
+#define GPIO_PG3_SSI2XDAT2      0x00060C0F
+
+#define GPIO_PG4_U0CTS          0x00061001
+#define GPIO_PG4_I2C3SCL        0x00061002
+#define GPIO_PG4_SSI2XDAT1      0x0006100F
+
+#define GPIO_PG5_U0RTS          0x00061401
+#define GPIO_PG5_I2C3SDA        0x00061402
+#define GPIO_PG5_SSI2XDAT0      0x0006140F
+
+#define GPIO_PG6_I2C4SCL        0x00061802
+#define GPIO_PG6_SSI2FSS        0x0006180F
+
+#define GPIO_PG7_I2C4SDA        0x00061C02
+#define GPIO_PG7_SSI2CLK        0x00061C0F
+
+#define GPIO_PH0_U0RTS          0x00070001
+#define GPIO_PH0_EPI0S0         0x0007000F
+
+#define GPIO_PH1_U0CTS          0x00070401
+#define GPIO_PH1_EPI0S1         0x0007040F
+
+#define GPIO_PH2_U0DCD          0x00070801
+#define GPIO_PH2_EPI0S2         0x0007080F
+
+#define GPIO_PH3_U0DSR          0x00070C01
+#define GPIO_PH3_EPI0S3         0x00070C0F
+
+#define GPIO_PH4_U0DTR          0x00071001
+
+#define GPIO_PH5_U0RI           0x00071401
+#define GPIO_PH5_EN0PPS         0x00071405
+
+#define GPIO_PH6_U5RX           0x00071801
+#define GPIO_PH6_U7RX           0x00071802
+
+#define GPIO_PH7_U5TX           0x00071C01
+#define GPIO_PH7_U7TX           0x00071C02
+
+#define GPIO_PJ0_U3RX           0x00080001
+#define GPIO_PJ0_EN0PPS         0x00080005
+
+#define GPIO_PJ1_U3TX           0x00080401
+
+#define GPIO_PJ2_U2RTS          0x00080801
+#define GPIO_PJ2_LCDDATA14      0x0008080F
+
+#define GPIO_PJ3_U2CTS          0x00080C01
+#define GPIO_PJ3_LCDDATA15      0x00080C0F
+
+#define GPIO_PJ4_U3RTS          0x00081001
+#define GPIO_PJ4_LCDDATA16      0x0008100F
+
+#define GPIO_PJ5_U3CTS          0x00081401
+#define GPIO_PJ5_LCDDATA17      0x0008140F
+
+#define GPIO_PJ6_U4RTS          0x00081801
+#define GPIO_PJ6_LCDAC          0x0008180F
+
+#define GPIO_PJ7_U4CTS          0x00081C01
+
+#define GPIO_PK0_U4RX           0x00090001
+#define GPIO_PK0_EPI0S0         0x0009000F
+
+#define GPIO_PK1_U4TX           0x00090401
+#define GPIO_PK1_EPI0S1         0x0009040F
+
+#define GPIO_PK2_U4RTS          0x00090801
+#define GPIO_PK2_EPI0S2         0x0009080F
+
+#define GPIO_PK3_U4CTS          0x00090C01
+#define GPIO_PK3_EPI0S3         0x00090C0F
+
+#define GPIO_PK4_I2C3SCL        0x00091002
+#define GPIO_PK4_EN0LED0        0x00091005
+#define GPIO_PK4_M0PWM6         0x00091006
+#define GPIO_PK4_EPI0S32        0x0009100F
+
+#define GPIO_PK5_I2C3SDA        0x00091402
+#define GPIO_PK5_EN0LED2        0x00091405
+#define GPIO_PK5_M0PWM7         0x00091406
+#define GPIO_PK5_EPI0S31        0x0009140F
+
+#define GPIO_PK6_I2C4SCL        0x00091802
+#define GPIO_PK6_EN0LED1        0x00091805
+#define GPIO_PK6_M0FAULT1       0x00091806
+#define GPIO_PK6_EPI0S25        0x0009180F
+
+#define GPIO_PK7_U0RI           0x00091C01
+#define GPIO_PK7_I2C4SDA        0x00091C02
+#define GPIO_PK7_RTCCLK         0x00091C05
+#define GPIO_PK7_M0FAULT2       0x00091C06
+#define GPIO_PK7_EPI0S24        0x00091C0F
+
+#define GPIO_PL0_I2C2SDA        0x000A0002
+#define GPIO_PL0_M0FAULT3       0x000A0006
+#define GPIO_PL0_USB0D0         0x000A000E
+#define GPIO_PL0_EPI0S16        0x000A000F
+
+#define GPIO_PL1_I2C2SCL        0x000A0402
+#define GPIO_PL1_PHA0           0x000A0406
+#define GPIO_PL1_USB0D1         0x000A040E
+#define GPIO_PL1_EPI0S17        0x000A040F
+
+#define GPIO_PL2_C0O            0x000A0805
+#define GPIO_PL2_PHB0           0x000A0806
+#define GPIO_PL2_USB0D2         0x000A080E
+#define GPIO_PL2_EPI0S18        0x000A080F
+
+#define GPIO_PL3_C1O            0x000A0C05
+#define GPIO_PL3_IDX0           0x000A0C06
+#define GPIO_PL3_USB0D3         0x000A0C0E
+#define GPIO_PL3_EPI0S19        0x000A0C0F
+
+#define GPIO_PL4_T0CCP0         0x000A1003
+#define GPIO_PL4_USB0D4         0x000A100E
+#define GPIO_PL4_EPI0S26        0x000A100F
+
+#define GPIO_PL5_T0CCP1         0x000A1403
+#define GPIO_PL5_EPI0S33        0x000A140F
+#define GPIO_PL5_USB0D5         0x000A140E
+
+#define GPIO_PL6_T1CCP0         0x000A1803
+
+#define GPIO_PL7_T1CCP1         0x000A1C03
+
+#define GPIO_PM0_T2CCP0         0x000B0003
+#define GPIO_PM0_EPI0S15        0x000B000F
+
+#define GPIO_PM1_T2CCP1         0x000B0403
+#define GPIO_PM1_EPI0S14        0x000B040F
+
+#define GPIO_PM2_T3CCP0         0x000B0803
+#define GPIO_PM2_EPI0S13        0x000B080F
+
+#define GPIO_PM3_T3CCP1         0x000B0C03
+#define GPIO_PM3_EPI0S12        0x000B0C0F
+
+#define GPIO_PM4_U0CTS          0x000B1001
+#define GPIO_PM4_T4CCP0         0x000B1003
+
+#define GPIO_PM5_U0DCD          0x000B1401
+#define GPIO_PM5_T4CCP1         0x000B1403
+
+#define GPIO_PM6_U0DSR          0x000B1801
+#define GPIO_PM6_T5CCP0         0x000B1803
+
+#define GPIO_PM7_U0RI           0x000B1C01
+#define GPIO_PM7_T5CCP1         0x000B1C03
+
+#define GPIO_PN0_U1RTS          0x000C0001
+
+#define GPIO_PN1_U1CTS          0x000C0401
+
+#define GPIO_PN2_U1DCD          0x000C0801
+#define GPIO_PN2_U2RTS          0x000C0802
+#define GPIO_PN2_EPI0S29        0x000C080F
+
+#define GPIO_PN3_U1DSR          0x000C0C01
+#define GPIO_PN3_U2CTS          0x000C0C02
+#define GPIO_PN3_EPI0S30        0x000C0C0F
+
+#define GPIO_PN4_U1DTR          0x000C1001
+#define GPIO_PN4_U3RTS          0x000C1002
+#define GPIO_PN4_I2C2SDA        0x000C1003
+#define GPIO_PN4_EPI0S34        0x000C100F
+
+#define GPIO_PN5_U1RI           0x000C1401
+#define GPIO_PN5_U3CTS          0x000C1402
+#define GPIO_PN5_I2C2SCL        0x000C1403
+#define GPIO_PN5_EPI0S35        0x000C140F
+
+#define GPIO_PN6_U4RTS          0x000C1802
+#define GPIO_PN6_LCDDATA13      0x000C180F
+
+#define GPIO_PN7_U1RTS          0x000C1C01
+#define GPIO_PN7_U4CTS          0x000C1C02
+#define GPIO_PN7_LCDDATA12      0x000C1C0F
+
+#define GPIO_PP0_U6RX           0x000D0001
+#define GPIO_PP0_T6CCP0         0x000D0005
+#define GPIO_PP0_SSI3XDAT2      0x000D000F
+
+#define GPIO_PP1_U6TX           0x000D0401
+#define GPIO_PP1_T6CCP1         0x000D0405
+#define GPIO_PP1_SSI3XDAT3      0x000D040F
+
+#define GPIO_PP2_U0DTR          0x000D0801
+#define GPIO_PP2_USB0NXT        0x000D080E
+#define GPIO_PP2_EPI0S29        0x000D080F
+
+#define GPIO_PP3_U1CTS          0x000D0C01
+#define GPIO_PP3_U0DCD          0x000D0C02
+#define GPIO_PP3_RTCCLK         0x000D0C07
+#define GPIO_PP3_USB0DIR        0x000D0C0E
+#define GPIO_PP3_EPI0S30        0x000D0C0F
+
+#define GPIO_PP4_U3RTS          0x000D1001
+#define GPIO_PP4_U0DSR          0x000D1002
+#define GPIO_PP4_USB0D7         0x000D100E
+
+#define GPIO_PP5_U3CTS          0x000D1401
+#define GPIO_PP5_I2C2SCL        0x000D1402
+#define GPIO_PP5_USB0D6         0x000D140E
+
+#define GPIO_PP6_U1DCD          0x000D1801
+#define GPIO_PP6_I2C2SDA        0x000D1802
+
+#define GPIO_PQ0_T6CCP0         0x000E0003
+#define GPIO_PQ0_SSI3CLK        0x000E000E
+#define GPIO_PQ0_EPI0S20        0x000E000F
+
+#define GPIO_PQ1_T6CCP1         0x000E0403
+#define GPIO_PQ1_SSI3FSS        0x000E040E
+#define GPIO_PQ1_EPI0S21        0x000E040F
+
+#define GPIO_PQ2_T7CCP0         0x000E0803
+#define GPIO_PQ2_SSI3XDAT0      0x000E080E
+#define GPIO_PQ2_EPI0S22        0x000E080F
+
+#define GPIO_PQ3_T7CCP1         0x000E0C03
+#define GPIO_PQ3_SSI3XDAT1      0x000E0C0E
+#define GPIO_PQ3_EPI0S23        0x000E0C0F
+
+#define GPIO_PQ4_U1RX           0x000E1001
+#define GPIO_PQ4_DIVSCLK        0x000E1007
+
+#define GPIO_PQ5_U1TX           0x000E1401
+
+#define GPIO_PQ6_U1DTR          0x000E1801
+
+#define GPIO_PQ7_U1RI           0x000E1C01
+
+#define GPIO_PR0_U4TX           0x000F0001
+#define GPIO_PR0_I2C1SCL        0x000F0002
+#define GPIO_PR0_M0PWM0         0x000F0006
+#define GPIO_PR0_LCDCP          0x000F000F
+
+#define GPIO_PR1_U4RX           0x000F0401
+#define GPIO_PR1_I2C1SDA        0x000F0402
+#define GPIO_PR1_M0PWM1         0x000F0406
+#define GPIO_PR1_LCDFP          0x000F040F
+
+#define GPIO_PR2_I2C2SCL        0x000F0802
+#define GPIO_PR2_M0PWM2         0x000F0806
+#define GPIO_PR2_LCDLP          0x000F080F
+
+#define GPIO_PR3_I2C2SDA        0x000F0C02
+#define GPIO_PR3_M0PWM3         0x000F0C06
+#define GPIO_PR3_LCDDATA03      0x000F0C0F
+
+#define GPIO_PR4_I2C3SCL        0x000F1002
+#define GPIO_PR4_T0CCP0         0x000F1003
+#define GPIO_PR4_M0PWM4         0x000F1006
+#define GPIO_PR4_LCDDATA00      0x000F100F
+
+#define GPIO_PR5_U1RX           0x000F1401
+#define GPIO_PR5_I2C3SDA        0x000F1402
+#define GPIO_PR5_T0CCP1         0x000F1403
+#define GPIO_PR5_M0PWM5         0x000F1406
+#define GPIO_PR5_LCDDATA01      0x000F140F
+
+#define GPIO_PR6_U1TX           0x000F1801
+#define GPIO_PR6_I2C4SCL        0x000F1802
+#define GPIO_PR6_T1CCP0         0x000F1803
+#define GPIO_PR6_M0PWM6         0x000F1806
+#define GPIO_PR6_LCDDATA04      0x000F180F
+
+#define GPIO_PR7_I2C4SDA        0x000F1C02
+#define GPIO_PR7_T1CCP1         0x000F1C03
+#define GPIO_PR7_M0PWM7         0x000F1C06
+#define GPIO_PR7_LCDDATA05      0x000F1C0F
+
+#define GPIO_PS0_T2CCP0         0x00100003
+#define GPIO_PS0_M0FAULT0       0x00100006
+#define GPIO_PS0_LCDDATA20      0x0010000F
+
+#define GPIO_PS1_T2CCP1         0x00100403
+#define GPIO_PS1_M0FAULT1       0x00100406
+#define GPIO_PS1_LCDDATA21      0x0010040F
+
+#define GPIO_PS2_U1DSR          0x00100801
+#define GPIO_PS2_T3CCP0         0x00100803
+#define GPIO_PS2_M0FAULT2       0x00100806
+#define GPIO_PS2_LCDDATA22      0x0010080F
+
+#define GPIO_PS3_T3CCP1         0x00100C03
+#define GPIO_PS3_M0FAULT3       0x00100C06
+#define GPIO_PS3_LCDDATA23      0x00100C0F
+
+#define GPIO_PS4_T4CCP0         0x00101003
+#define GPIO_PS4_PHA0           0x00101006
+#define GPIO_PS4_LCDDATA06      0x0010100F
+
+#define GPIO_PS5_T4CCP1         0x00101403
+#define GPIO_PS5_PHB0           0x00101406
+#define GPIO_PS5_LCDDATA07      0x0010140F
+
+#define GPIO_PS6_T5CCP0         0x00101803
+#define GPIO_PS6_IDX0           0x00101806
+#define GPIO_PS6_LCDDATA08      0x0010180F
+
+#define GPIO_PS7_T5CCP1         0x00101C03
+#define GPIO_PS7_LCDDATA09      0x00101C0F
+
+#define GPIO_PT0_T6CCP0         0x00110003
+#define GPIO_PT0_CAN0RX         0x00110007
+#define GPIO_PT0_LCDDATA10      0x0011000F
+
+#define GPIO_PT1_T6CCP1         0x00110403
+#define GPIO_PT1_CAN0TX         0x00110407
+#define GPIO_PT1_LCDDATA11      0x0011040F
+
+#define GPIO_PT2_T7CCP0         0x00110803
+#define GPIO_PT2_CAN1RX         0x00110807
+#define GPIO_PT2_LCDDATA18      0x0011080F
+
+#define GPIO_PT3_T7CCP1         0x00110C03
+#define GPIO_PT3_CAN1TX         0x00110C07
+#define GPIO_PT3_LCDDATA19      0x00110C0F
+
+#endif // PART_TM4C129LNCZAD
+
+//*****************************************************************************
+//
+// TM4C129XKCZAD Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C129XKCZAD
+
+#define GPIO_PA0_U0RX           0x00000001
+#define GPIO_PA0_I2C9SCL        0x00000002
+#define GPIO_PA0_T0CCP0         0x00000003
+#define GPIO_PA0_CAN0RX         0x00000007
+
+#define GPIO_PA1_U0TX           0x00000401
+#define GPIO_PA1_I2C9SDA        0x00000402
+#define GPIO_PA1_T0CCP1         0x00000403
+#define GPIO_PA1_CAN0TX         0x00000407
+
+#define GPIO_PA2_U4RX           0x00000801
+#define GPIO_PA2_I2C8SCL        0x00000802
+#define GPIO_PA2_T1CCP0         0x00000803
+#define GPIO_PA2_SSI0CLK        0x0000080F
+
+#define GPIO_PA3_U4TX           0x00000C01
+#define GPIO_PA3_I2C8SDA        0x00000C02
+#define GPIO_PA3_T1CCP1         0x00000C03
+#define GPIO_PA3_SSI0FSS        0x00000C0F
+
+#define GPIO_PA4_U3RX           0x00001001
+#define GPIO_PA4_T2CCP0         0x00001003
+#define GPIO_PA4_I2C7SCL        0x00001002
+#define GPIO_PA4_SSI0XDAT0      0x0000100F
+
+#define GPIO_PA5_U3TX           0x00001401
+#define GPIO_PA5_T2CCP1         0x00001403
+#define GPIO_PA5_I2C7SDA        0x00001402
+#define GPIO_PA5_SSI0XDAT1      0x0000140F
+
+#define GPIO_PA6_U2RX           0x00001801
+#define GPIO_PA6_I2C6SCL        0x00001802
+#define GPIO_PA6_T3CCP0         0x00001803
+#define GPIO_PA6_USB0EPEN       0x00001805
+#define GPIO_PA6_SSI0XDAT2      0x0000180D
+#define GPIO_PA6_EN0RXCK        0x0000180E
+#define GPIO_PA6_EPI0S8         0x0000180F
+
+#define GPIO_PA7_U2TX           0x00001C01
+#define GPIO_PA7_I2C6SDA        0x00001C02
+#define GPIO_PA7_T3CCP1         0x00001C03
+#define GPIO_PA7_USB0PFLT       0x00001C05
+#define GPIO_PA7_USB0EPEN       0x00001C0B
+#define GPIO_PA7_SSI0XDAT3      0x00001C0D
+#define GPIO_PA7_EPI0S9         0x00001C0F
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_I2C5SCL        0x00010002
+#define GPIO_PB0_CAN1RX         0x00010007
+#define GPIO_PB0_T4CCP0         0x00010003
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_I2C5SDA        0x00010402
+#define GPIO_PB1_CAN1TX         0x00010407
+#define GPIO_PB1_T4CCP1         0x00010403
+
+#define GPIO_PB2_T5CCP0         0x00010803
+#define GPIO_PB2_I2C0SCL        0x00010802
+#define GPIO_PB2_EN0MDC         0x00010805
+#define GPIO_PB2_USB0STP        0x0001080E
+#define GPIO_PB2_EPI0S27        0x0001080F
+
+#define GPIO_PB3_I2C0SDA        0x00010C02
+#define GPIO_PB3_T5CCP1         0x00010C03
+#define GPIO_PB3_EN0MDIO        0x00010C05
+#define GPIO_PB3_USB0CLK        0x00010C0E
+#define GPIO_PB3_EPI0S28        0x00010C0F
+
+#define GPIO_PB4_U0CTS          0x00011001
+#define GPIO_PB4_I2C5SCL        0x00011002
+#define GPIO_PB4_SSI1FSS        0x0001100F
+
+#define GPIO_PB5_U0RTS          0x00011401
+#define GPIO_PB5_I2C5SDA        0x00011402
+#define GPIO_PB5_SSI1CLK        0x0001140F
+
+#define GPIO_PB6_I2C6SCL        0x00011802
+#define GPIO_PB6_T6CCP0         0x00011803
+
+#define GPIO_PB7_I2C6SDA        0x00011C02
+#define GPIO_PB7_T6CCP1         0x00011C03
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+
+#define GPIO_PC2_TDI            0x00020801
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+
+#define GPIO_PC4_U7RX           0x00021001
+#define GPIO_PC4_T7CCP0         0x00021003
+#define GPIO_PC4_EPI0S7         0x0002100F
+
+#define GPIO_PC5_U7TX           0x00021401
+#define GPIO_PC5_T7CCP1         0x00021403
+#define GPIO_PC5_RTCCLK         0x00021407
+#define GPIO_PC5_EPI0S6         0x0002140F
+
+#define GPIO_PC6_U5RX           0x00021801
+#define GPIO_PC6_EPI0S5         0x0002180F
+
+#define GPIO_PC7_U5TX           0x00021C01
+#define GPIO_PC7_EPI0S4         0x00021C0F
+
+#define GPIO_PD0_I2C7SCL        0x00030002
+#define GPIO_PD0_T0CCP0         0x00030003
+#define GPIO_PD0_C0O            0x00030005
+#define GPIO_PD0_SSI2XDAT1      0x0003000F
+
+#define GPIO_PD1_I2C7SDA        0x00030402
+#define GPIO_PD1_T0CCP1         0x00030403
+#define GPIO_PD1_C1O            0x00030405
+#define GPIO_PD1_SSI2XDAT0      0x0003040F
+
+#define GPIO_PD2_I2C8SCL        0x00030802
+#define GPIO_PD2_T1CCP0         0x00030803
+#define GPIO_PD2_C2O            0x00030805
+#define GPIO_PD2_SSI2FSS        0x0003080F
+
+#define GPIO_PD3_I2C8SDA        0x00030C02
+#define GPIO_PD3_T1CCP1         0x00030C03
+#define GPIO_PD3_SSI2CLK        0x00030C0F
+
+#define GPIO_PD4_U2RX           0x00031001
+#define GPIO_PD4_T3CCP0         0x00031003
+#define GPIO_PD4_SSI1XDAT2      0x0003100F
+
+#define GPIO_PD5_U2TX           0x00031401
+#define GPIO_PD5_T3CCP1         0x00031403
+#define GPIO_PD5_SSI1XDAT3      0x0003140F
+
+#define GPIO_PD6_U2RTS          0x00031801
+#define GPIO_PD6_T4CCP0         0x00031803
+#define GPIO_PD6_USB0EPEN       0x00031805
+#define GPIO_PD6_SSI2XDAT3      0x0003180F
+
+#define GPIO_PD7_U2CTS          0x00031C01
+#define GPIO_PD7_T4CCP1         0x00031C03
+#define GPIO_PD7_USB0PFLT       0x00031C05
+#define GPIO_PD7_NMI            0x00031C08
+#define GPIO_PD7_SSI2XDAT2      0x00031C0F
+
+#define GPIO_PE0_U1RTS          0x00040001
+
+#define GPIO_PE1_U1DSR          0x00040401
+
+#define GPIO_PE2_U1DCD          0x00040801
+
+#define GPIO_PE3_U1DTR          0x00040C01
+#define GPIO_PE3_OWIRE          0x00040C05
+
+#define GPIO_PE4_U1RI           0x00041001
+#define GPIO_PE4_SSI1XDAT0      0x0004100F
+
+#define GPIO_PE5_SSI1XDAT1      0x0004140F
+
+#define GPIO_PE6_U0CTS          0x00041801
+#define GPIO_PE6_I2C9SCL        0x00041802
+
+#define GPIO_PE7_U0RTS          0x00041C01
+#define GPIO_PE7_I2C9SDA        0x00041C02
+#define GPIO_PE7_NMI            0x00041C08
+
+#define GPIO_PF0_EN0LED0        0x00050005
+#define GPIO_PF0_M0PWM0         0x00050006
+#define GPIO_PF0_SSI3XDAT1      0x0005000E
+#define GPIO_PF0_TRD2           0x0005000F
+
+#define GPIO_PF1_EN0LED2        0x00050405
+#define GPIO_PF1_M0PWM1         0x00050406
+#define GPIO_PF1_SSI3XDAT0      0x0005040E
+#define GPIO_PF1_TRD1           0x0005040F
+
+#define GPIO_PF2_EN0MDC         0x00050805
+#define GPIO_PF2_M0PWM2         0x00050806
+#define GPIO_PF2_SSI3FSS        0x0005080E
+#define GPIO_PF2_TRD0           0x0005080F
+
+#define GPIO_PF3_EN0MDIO        0x00050C05
+#define GPIO_PF3_M0PWM3         0x00050C06
+#define GPIO_PF3_SSI3CLK        0x00050C0E
+#define GPIO_PF3_TRCLK          0x00050C0F
+
+#define GPIO_PF4_EN0LED1        0x00051005
+#define GPIO_PF4_M0FAULT0       0x00051006
+#define GPIO_PF4_SSI3XDAT2      0x0005100E
+#define GPIO_PF4_TRD3           0x0005100F
+
+#define GPIO_PF5_SSI3XDAT3      0x0005140E
+
+#define GPIO_PF6_LCDMCLK        0x0005180F
+
+#define GPIO_PF7_LCDDATA02      0x00051C0F
+
+#define GPIO_PG0_I2C1SCL        0x00060002
+#define GPIO_PG0_EN0PPS         0x00060005
+#define GPIO_PG0_M0PWM4         0x00060006
+#define GPIO_PG0_EPI0S11        0x0006000F
+
+#define GPIO_PG1_I2C1SDA        0x00060402
+#define GPIO_PG1_M0PWM5         0x00060406
+#define GPIO_PG1_EPI0S10        0x0006040F
+
+#define GPIO_PG2_I2C2SCL        0x00060802
+#define GPIO_PG2_EN0TXCK        0x0006080E
+#define GPIO_PG2_SSI2XDAT3      0x0006080F
+
+#define GPIO_PG3_I2C2SDA        0x00060C02
+#define GPIO_PG3_EN0TXEN        0x00060C0E
+#define GPIO_PG3_SSI2XDAT2      0x00060C0F
+
+#define GPIO_PG4_U0CTS          0x00061001
+#define GPIO_PG4_I2C3SCL        0x00061002
+#define GPIO_PG4_OWIRE          0x00061005
+#define GPIO_PG4_EN0TXD0        0x0006100E
+#define GPIO_PG4_SSI2XDAT1      0x0006100F
+
+#define GPIO_PG5_U0RTS          0x00061401
+#define GPIO_PG5_I2C3SDA        0x00061402
+#define GPIO_PG5_OWALT          0x00061405
+#define GPIO_PG5_EN0TXD1        0x0006140E
+#define GPIO_PG5_SSI2XDAT0      0x0006140F
+
+#define GPIO_PG6_I2C4SCL        0x00061802
+#define GPIO_PG6_OWIRE          0x00061805
+#define GPIO_PG6_EN0RXER        0x0006180E
+#define GPIO_PG6_SSI2FSS        0x0006180F
+
+#define GPIO_PG7_I2C4SDA        0x00061C02
+#define GPIO_PG7_OWIRE          0x00061C05
+#define GPIO_PG7_EN0RXDV        0x00061C0E
+#define GPIO_PG7_SSI2CLK        0x00061C0F
+
+#define GPIO_PH0_U0RTS          0x00070001
+#define GPIO_PH0_EPI0S0         0x0007000F
+
+#define GPIO_PH1_U0CTS          0x00070401
+#define GPIO_PH1_EPI0S1         0x0007040F
+
+#define GPIO_PH2_U0DCD          0x00070801
+#define GPIO_PH2_EPI0S2         0x0007080F
+
+#define GPIO_PH3_U0DSR          0x00070C01
+#define GPIO_PH3_EPI0S3         0x00070C0F
+
+#define GPIO_PH4_U0DTR          0x00071001
+
+#define GPIO_PH5_U0RI           0x00071401
+#define GPIO_PH5_EN0PPS         0x00071405
+
+#define GPIO_PH6_U5RX           0x00071801
+#define GPIO_PH6_U7RX           0x00071802
+
+#define GPIO_PH7_U5TX           0x00071C01
+#define GPIO_PH7_U7TX           0x00071C02
+
+#define GPIO_PJ0_U3RX           0x00080001
+#define GPIO_PJ0_EN0PPS         0x00080005
+
+#define GPIO_PJ1_U3TX           0x00080401
+
+#define GPIO_PJ2_U2RTS          0x00080801
+#define GPIO_PJ2_LCDDATA14      0x0008080F
+
+#define GPIO_PJ3_U2CTS          0x00080C01
+#define GPIO_PJ3_LCDDATA15      0x00080C0F
+
+#define GPIO_PJ4_U3RTS          0x00081001
+#define GPIO_PJ4_LCDDATA16      0x0008100F
+
+#define GPIO_PJ5_U3CTS          0x00081401
+#define GPIO_PJ5_LCDDATA17      0x0008140F
+
+#define GPIO_PJ6_U4RTS          0x00081801
+#define GPIO_PJ6_LCDAC          0x0008180F
+
+#define GPIO_PJ7_U4CTS          0x00081C01
+
+#define GPIO_PK0_U4RX           0x00090001
+#define GPIO_PK0_EPI0S0         0x0009000F
+
+#define GPIO_PK1_U4TX           0x00090401
+#define GPIO_PK1_EPI0S1         0x0009040F
+
+#define GPIO_PK2_U4RTS          0x00090801
+#define GPIO_PK2_EPI0S2         0x0009080F
+
+#define GPIO_PK3_U4CTS          0x00090C01
+#define GPIO_PK3_EPI0S3         0x00090C0F
+
+#define GPIO_PK4_I2C3SCL        0x00091002
+#define GPIO_PK4_EN0LED0        0x00091005
+#define GPIO_PK4_M0PWM6         0x00091006
+#define GPIO_PK4_EN0INTRN       0x00091007
+#define GPIO_PK4_EN0RXD3        0x0009100E
+#define GPIO_PK4_EPI0S32        0x0009100F
+
+#define GPIO_PK5_I2C3SDA        0x00091402
+#define GPIO_PK5_EN0LED2        0x00091405
+#define GPIO_PK5_M0PWM7         0x00091406
+#define GPIO_PK5_EN0RXD2        0x0009140E
+#define GPIO_PK5_EPI0S31        0x0009140F
+
+#define GPIO_PK6_I2C4SCL        0x00091802
+#define GPIO_PK6_EN0LED1        0x00091805
+#define GPIO_PK6_M0FAULT1       0x00091806
+#define GPIO_PK6_EN0TXD2        0x0009180E
+#define GPIO_PK6_EPI0S25        0x0009180F
+
+#define GPIO_PK7_U0RI           0x00091C01
+#define GPIO_PK7_I2C4SDA        0x00091C02
+#define GPIO_PK7_RTCCLK         0x00091C05
+#define GPIO_PK7_M0FAULT2       0x00091C06
+#define GPIO_PK7_EN0TXD3        0x00091C0E
+#define GPIO_PK7_EPI0S24        0x00091C0F
+
+#define GPIO_PL0_I2C2SDA        0x000A0002
+#define GPIO_PL0_M0FAULT3       0x000A0006
+#define GPIO_PL0_USB0D0         0x000A000E
+#define GPIO_PL0_EPI0S16        0x000A000F
+
+#define GPIO_PL1_I2C2SCL        0x000A0402
+#define GPIO_PL1_PHA0           0x000A0406
+#define GPIO_PL1_USB0D1         0x000A040E
+#define GPIO_PL1_EPI0S17        0x000A040F
+
+#define GPIO_PL2_C0O            0x000A0805
+#define GPIO_PL2_PHB0           0x000A0806
+#define GPIO_PL2_USB0D2         0x000A080E
+#define GPIO_PL2_EPI0S18        0x000A080F
+
+#define GPIO_PL3_C1O            0x000A0C05
+#define GPIO_PL3_IDX0           0x000A0C06
+#define GPIO_PL3_USB0D3         0x000A0C0E
+#define GPIO_PL3_EPI0S19        0x000A0C0F
+
+#define GPIO_PL4_T0CCP0         0x000A1003
+#define GPIO_PL4_USB0D4         0x000A100E
+#define GPIO_PL4_EPI0S26        0x000A100F
+
+#define GPIO_PL5_T0CCP1         0x000A1403
+#define GPIO_PL5_EPI0S33        0x000A140F
+#define GPIO_PL5_USB0D5         0x000A140E
+
+#define GPIO_PL6_T1CCP0         0x000A1803
+
+#define GPIO_PL7_T1CCP1         0x000A1C03
+
+#define GPIO_PM0_T2CCP0         0x000B0003
+#define GPIO_PM0_EPI0S15        0x000B000F
+
+#define GPIO_PM1_T2CCP1         0x000B0403
+#define GPIO_PM1_EPI0S14        0x000B040F
+
+#define GPIO_PM2_T3CCP0         0x000B0803
+#define GPIO_PM2_EPI0S13        0x000B080F
+
+#define GPIO_PM3_T3CCP1         0x000B0C03
+#define GPIO_PM3_EPI0S12        0x000B0C0F
+
+#define GPIO_PM4_U0CTS          0x000B1001
+#define GPIO_PM4_T4CCP0         0x000B1003
+#define GPIO_PM4_EN0RREF_CLK    0x000B100E
+
+#define GPIO_PM5_U0DCD          0x000B1401
+#define GPIO_PM5_T4CCP1         0x000B1403
+
+#define GPIO_PM6_U0DSR          0x000B1801
+#define GPIO_PM6_T5CCP0         0x000B1803
+#define GPIO_PM6_EN0CRS         0x000B180E
+
+#define GPIO_PM7_U0RI           0x000B1C01
+#define GPIO_PM7_T5CCP1         0x000B1C03
+#define GPIO_PM7_EN0COL         0x000B1C0E
+
+#define GPIO_PN0_U1RTS          0x000C0001
+
+#define GPIO_PN1_U1CTS          0x000C0401
+
+#define GPIO_PN2_U1DCD          0x000C0801
+#define GPIO_PN2_U2RTS          0x000C0802
+#define GPIO_PN2_EPI0S29        0x000C080F
+
+#define GPIO_PN3_U1DSR          0x000C0C01
+#define GPIO_PN3_U2CTS          0x000C0C02
+#define GPIO_PN3_EPI0S30        0x000C0C0F
+
+#define GPIO_PN4_U1DTR          0x000C1001
+#define GPIO_PN4_U3RTS          0x000C1002
+#define GPIO_PN4_I2C2SDA        0x000C1003
+#define GPIO_PN4_EPI0S34        0x000C100F
+
+#define GPIO_PN5_U1RI           0x000C1401
+#define GPIO_PN5_U3CTS          0x000C1402
+#define GPIO_PN5_I2C2SCL        0x000C1403
+#define GPIO_PN5_EPI0S35        0x000C140F
+
+#define GPIO_PN6_U4RTS          0x000C1802
+#define GPIO_PN6_EN0TXER        0x000C180E
+#define GPIO_PN6_LCDDATA13      0x000C180F
+
+#define GPIO_PN7_U1RTS          0x000C1C01
+#define GPIO_PN7_U4CTS          0x000C1C02
+#define GPIO_PN7_LCDDATA12      0x000C1C0F
+
+#define GPIO_PP0_U6RX           0x000D0001
+#define GPIO_PP0_T6CCP0         0x000D0005
+#define GPIO_PP0_EN0INTRN       0x000D0007
+#define GPIO_PP0_SSI3XDAT2      0x000D000F
+
+#define GPIO_PP1_U6TX           0x000D0401
+#define GPIO_PP1_T6CCP1         0x000D0405
+#define GPIO_PP1_SSI3XDAT3      0x000D040F
+
+#define GPIO_PP2_U0DTR          0x000D0801
+#define GPIO_PP2_USB0NXT        0x000D080E
+#define GPIO_PP2_EPI0S29        0x000D080F
+
+#define GPIO_PP3_U1CTS          0x000D0C01
+#define GPIO_PP3_U0DCD          0x000D0C02
+#define GPIO_PP3_RTCCLK         0x000D0C07
+#define GPIO_PP3_USB0DIR        0x000D0C0E
+#define GPIO_PP3_EPI0S30        0x000D0C0F
+
+#define GPIO_PP4_U3RTS          0x000D1001
+#define GPIO_PP4_U0DSR          0x000D1002
+#define GPIO_PP4_OWIRE          0x000D1004
+#define GPIO_PP4_USB0D7         0x000D100E
+
+#define GPIO_PP5_U3CTS          0x000D1401
+#define GPIO_PP5_I2C2SCL        0x000D1402
+#define GPIO_PP5_OWALT          0x000D1404
+#define GPIO_PP5_USB0D6         0x000D140E
+
+#define GPIO_PP6_U1DCD          0x000D1801
+#define GPIO_PP6_I2C2SDA        0x000D1802
+
+#define GPIO_PP7_OWIRE          0x000D1C05
+
+#define GPIO_PQ0_T6CCP0         0x000E0003
+#define GPIO_PQ0_SSI3CLK        0x000E000E
+#define GPIO_PQ0_EPI0S20        0x000E000F
+
+#define GPIO_PQ1_T6CCP1         0x000E0403
+#define GPIO_PQ1_SSI3FSS        0x000E040E
+#define GPIO_PQ1_EPI0S21        0x000E040F
+
+#define GPIO_PQ2_T7CCP0         0x000E0803
+#define GPIO_PQ2_SSI3XDAT0      0x000E080E
+#define GPIO_PQ2_EPI0S22        0x000E080F
+
+#define GPIO_PQ3_T7CCP1         0x000E0C03
+#define GPIO_PQ3_SSI3XDAT1      0x000E0C0E
+#define GPIO_PQ3_EPI0S23        0x000E0C0F
+
+#define GPIO_PQ4_U1RX           0x000E1001
+#define GPIO_PQ4_DIVSCLK        0x000E1007
+
+#define GPIO_PQ5_U1TX           0x000E1401
+#define GPIO_PQ5_EN0RXD0        0x000E140E
+
+#define GPIO_PQ6_U1DTR          0x000E1801
+#define GPIO_PQ6_EN0RXD1        0x000E180E
+
+#define GPIO_PQ7_U1RI           0x000E1C01
+
+#define GPIO_PR0_U4TX           0x000F0001
+#define GPIO_PR0_I2C1SCL        0x000F0002
+#define GPIO_PR0_M0PWM0         0x000F0006
+#define GPIO_PR0_LCDCP          0x000F000F
+
+#define GPIO_PR1_U4RX           0x000F0401
+#define GPIO_PR1_I2C1SDA        0x000F0402
+#define GPIO_PR1_M0PWM1         0x000F0406
+#define GPIO_PR1_LCDFP          0x000F040F
+
+#define GPIO_PR2_I2C2SCL        0x000F0802
+#define GPIO_PR2_M0PWM2         0x000F0806
+#define GPIO_PR2_LCDLP          0x000F080F
+
+#define GPIO_PR3_I2C2SDA        0x000F0C02
+#define GPIO_PR3_M0PWM3         0x000F0C06
+#define GPIO_PR3_LCDDATA03      0x000F0C0F
+
+#define GPIO_PR4_I2C3SCL        0x000F1002
+#define GPIO_PR4_T0CCP0         0x000F1003
+#define GPIO_PR4_M0PWM4         0x000F1006
+#define GPIO_PR4_LCDDATA00      0x000F100F
+
+#define GPIO_PR5_U1RX           0x000F1401
+#define GPIO_PR5_I2C3SDA        0x000F1402
+#define GPIO_PR5_T0CCP1         0x000F1403
+#define GPIO_PR5_M0PWM5         0x000F1406
+#define GPIO_PR5_LCDDATA01      0x000F140F
+
+#define GPIO_PR6_U1TX           0x000F1801
+#define GPIO_PR6_I2C4SCL        0x000F1802
+#define GPIO_PR6_T1CCP0         0x000F1803
+#define GPIO_PR6_M0PWM6         0x000F1806
+#define GPIO_PR6_LCDDATA04      0x000F180F
+
+#define GPIO_PR7_I2C4SDA        0x000F1C02
+#define GPIO_PR7_T1CCP1         0x000F1C03
+#define GPIO_PR7_M0PWM7         0x000F1C06
+#define GPIO_PR7_EN0TXEN        0x000F1C0E
+#define GPIO_PR7_LCDDATA05      0x000F1C0F
+
+#define GPIO_PS0_T2CCP0         0x00100003
+#define GPIO_PS0_M0FAULT0       0x00100006
+#define GPIO_PS0_LCDDATA20      0x0010000F
+
+#define GPIO_PS1_T2CCP1         0x00100403
+#define GPIO_PS1_M0FAULT1       0x00100406
+#define GPIO_PS1_LCDDATA21      0x0010040F
+
+#define GPIO_PS2_U1DSR          0x00100801
+#define GPIO_PS2_T3CCP0         0x00100803
+#define GPIO_PS2_M0FAULT2       0x00100806
+#define GPIO_PS2_LCDDATA22      0x0010080F
+
+#define GPIO_PS3_T3CCP1         0x00100C03
+#define GPIO_PS3_M0FAULT3       0x00100C06
+#define GPIO_PS3_LCDDATA23      0x00100C0F
+
+#define GPIO_PS4_T4CCP0         0x00101003
+#define GPIO_PS4_PHA0           0x00101006
+#define GPIO_PS4_EN0TXD0        0x0010100E
+#define GPIO_PS4_LCDDATA06      0x0010100F
+
+#define GPIO_PS5_T4CCP1         0x00101403
+#define GPIO_PS5_PHB0           0x00101406
+#define GPIO_PS5_EN0TXD1        0x0010140E
+#define GPIO_PS5_LCDDATA07      0x0010140F
+
+#define GPIO_PS6_T5CCP0         0x00101803
+#define GPIO_PS6_IDX0           0x00101806
+#define GPIO_PS6_EN0RXER        0x0010180E
+#define GPIO_PS6_LCDDATA08      0x0010180F
+
+#define GPIO_PS7_T5CCP1         0x00101C03
+#define GPIO_PS7_EN0RXDV        0x00101C0E
+#define GPIO_PS7_LCDDATA09      0x00101C0F
+
+#define GPIO_PT0_T6CCP0         0x00110003
+#define GPIO_PT0_CAN0RX         0x00110007
+#define GPIO_PT0_EN0RXD0        0x0011000E
+#define GPIO_PT0_LCDDATA10      0x0011000F
+
+#define GPIO_PT1_T6CCP1         0x00110403
+#define GPIO_PT1_CAN0TX         0x00110407
+#define GPIO_PT1_EN0RXD1        0x0011040E
+#define GPIO_PT1_LCDDATA11      0x0011040F
+
+#define GPIO_PT2_T7CCP0         0x00110803
+#define GPIO_PT2_CAN1RX         0x00110807
+#define GPIO_PT2_LCDDATA18      0x0011080F
+
+#define GPIO_PT3_T7CCP1         0x00110C03
+#define GPIO_PT3_CAN1TX         0x00110C07
+#define GPIO_PT3_LCDDATA19      0x00110C0F
+
+#endif // PART_TM4C129XKCZAD
+
+//*****************************************************************************
+//
+// TM4C129XNCZAD Port/Pin Mapping Definitions
+//
+//*****************************************************************************
+#ifdef PART_TM4C129XNCZAD
+
+#define GPIO_PA0_U0RX           0x00000001
+#define GPIO_PA0_I2C9SCL        0x00000002
+#define GPIO_PA0_T0CCP0         0x00000003
+#define GPIO_PA0_CAN0RX         0x00000007
+
+#define GPIO_PA1_U0TX           0x00000401
+#define GPIO_PA1_I2C9SDA        0x00000402
+#define GPIO_PA1_T0CCP1         0x00000403
+#define GPIO_PA1_CAN0TX         0x00000407
+
+#define GPIO_PA2_U4RX           0x00000801
+#define GPIO_PA2_I2C8SCL        0x00000802
+#define GPIO_PA2_T1CCP0         0x00000803
+#define GPIO_PA2_SSI0CLK        0x0000080F
+
+#define GPIO_PA3_U4TX           0x00000C01
+#define GPIO_PA3_I2C8SDA        0x00000C02
+#define GPIO_PA3_T1CCP1         0x00000C03
+#define GPIO_PA3_SSI0FSS        0x00000C0F
+
+#define GPIO_PA4_U3RX           0x00001001
+#define GPIO_PA4_T2CCP0         0x00001003
+#define GPIO_PA4_I2C7SCL        0x00001002
+#define GPIO_PA4_SSI0XDAT0      0x0000100F
+
+#define GPIO_PA5_U3TX           0x00001401
+#define GPIO_PA5_T2CCP1         0x00001403
+#define GPIO_PA5_I2C7SDA        0x00001402
+#define GPIO_PA5_SSI0XDAT1      0x0000140F
+
+#define GPIO_PA6_U2RX           0x00001801
+#define GPIO_PA6_I2C6SCL        0x00001802
+#define GPIO_PA6_T3CCP0         0x00001803
+#define GPIO_PA6_USB0EPEN       0x00001805
+#define GPIO_PA6_SSI0XDAT2      0x0000180D
+#define GPIO_PA6_EN0RXCK        0x0000180E
+#define GPIO_PA6_EPI0S8         0x0000180F
+
+#define GPIO_PA7_U2TX           0x00001C01
+#define GPIO_PA7_I2C6SDA        0x00001C02
+#define GPIO_PA7_T3CCP1         0x00001C03
+#define GPIO_PA7_USB0PFLT       0x00001C05
+#define GPIO_PA7_USB0EPEN       0x00001C0B
+#define GPIO_PA7_SSI0XDAT3      0x00001C0D
+#define GPIO_PA7_EPI0S9         0x00001C0F
+
+#define GPIO_PB0_U1RX           0x00010001
+#define GPIO_PB0_I2C5SCL        0x00010002
+#define GPIO_PB0_CAN1RX         0x00010007
+#define GPIO_PB0_T4CCP0         0x00010003
+
+#define GPIO_PB1_U1TX           0x00010401
+#define GPIO_PB1_I2C5SDA        0x00010402
+#define GPIO_PB1_CAN1TX         0x00010407
+#define GPIO_PB1_T4CCP1         0x00010403
+
+#define GPIO_PB2_T5CCP0         0x00010803
+#define GPIO_PB2_I2C0SCL        0x00010802
+#define GPIO_PB2_EN0MDC         0x00010805
+#define GPIO_PB2_USB0STP        0x0001080E
+#define GPIO_PB2_EPI0S27        0x0001080F
+
+#define GPIO_PB3_I2C0SDA        0x00010C02
+#define GPIO_PB3_T5CCP1         0x00010C03
+#define GPIO_PB3_EN0MDIO        0x00010C05
+#define GPIO_PB3_USB0CLK        0x00010C0E
+#define GPIO_PB3_EPI0S28        0x00010C0F
+
+#define GPIO_PB4_U0CTS          0x00011001
+#define GPIO_PB4_I2C5SCL        0x00011002
+#define GPIO_PB4_SSI1FSS        0x0001100F
+
+#define GPIO_PB5_U0RTS          0x00011401
+#define GPIO_PB5_I2C5SDA        0x00011402
+#define GPIO_PB5_SSI1CLK        0x0001140F
+
+#define GPIO_PB6_I2C6SCL        0x00011802
+#define GPIO_PB6_T6CCP0         0x00011803
+
+#define GPIO_PB7_I2C6SDA        0x00011C02
+#define GPIO_PB7_T6CCP1         0x00011C03
+
+#define GPIO_PC0_TCK            0x00020001
+#define GPIO_PC0_SWCLK          0x00020001
+
+#define GPIO_PC1_TMS            0x00020401
+#define GPIO_PC1_SWDIO          0x00020401
+
+#define GPIO_PC2_TDI            0x00020801
+
+#define GPIO_PC3_SWO            0x00020C01
+#define GPIO_PC3_TDO            0x00020C01
+
+#define GPIO_PC4_U7RX           0x00021001
+#define GPIO_PC4_T7CCP0         0x00021003
+#define GPIO_PC4_EPI0S7         0x0002100F
+
+#define GPIO_PC5_U7TX           0x00021401
+#define GPIO_PC5_T7CCP1         0x00021403
+#define GPIO_PC5_RTCCLK         0x00021407
+#define GPIO_PC5_EPI0S6         0x0002140F
+
+#define GPIO_PC6_U5RX           0x00021801
+#define GPIO_PC6_EPI0S5         0x0002180F
+
+#define GPIO_PC7_U5TX           0x00021C01
+#define GPIO_PC7_EPI0S4         0x00021C0F
+
+#define GPIO_PD0_I2C7SCL        0x00030002
+#define GPIO_PD0_T0CCP0         0x00030003
+#define GPIO_PD0_C0O            0x00030005
+#define GPIO_PD0_SSI2XDAT1      0x0003000F
+
+#define GPIO_PD1_I2C7SDA        0x00030402
+#define GPIO_PD1_T0CCP1         0x00030403
+#define GPIO_PD1_C1O            0x00030405
+#define GPIO_PD1_SSI2XDAT0      0x0003040F
+
+#define GPIO_PD2_I2C8SCL        0x00030802
+#define GPIO_PD2_T1CCP0         0x00030803
+#define GPIO_PD2_C2O            0x00030805
+#define GPIO_PD2_SSI2FSS        0x0003080F
+
+#define GPIO_PD3_I2C8SDA        0x00030C02
+#define GPIO_PD3_T1CCP1         0x00030C03
+#define GPIO_PD3_SSI2CLK        0x00030C0F
+
+#define GPIO_PD4_U2RX           0x00031001
+#define GPIO_PD4_T3CCP0         0x00031003
+#define GPIO_PD4_SSI1XDAT2      0x0003100F
+
+#define GPIO_PD5_U2TX           0x00031401
+#define GPIO_PD5_T3CCP1         0x00031403
+#define GPIO_PD5_SSI1XDAT3      0x0003140F
+
+#define GPIO_PD6_U2RTS          0x00031801
+#define GPIO_PD6_T4CCP0         0x00031803
+#define GPIO_PD6_USB0EPEN       0x00031805
+#define GPIO_PD6_SSI2XDAT3      0x0003180F
+
+#define GPIO_PD7_U2CTS          0x00031C01
+#define GPIO_PD7_T4CCP1         0x00031C03
+#define GPIO_PD7_USB0PFLT       0x00031C05
+#define GPIO_PD7_NMI            0x00031C08
+#define GPIO_PD7_SSI2XDAT2      0x00031C0F
+
+#define GPIO_PE0_U1RTS          0x00040001
+
+#define GPIO_PE1_U1DSR          0x00040401
+
+#define GPIO_PE2_U1DCD          0x00040801
+
+#define GPIO_PE3_U1DTR          0x00040C01
+#define GPIO_PE3_OWIRE          0x00040C05
+
+#define GPIO_PE4_U1RI           0x00041001
+#define GPIO_PE4_SSI1XDAT0      0x0004100F
+
+#define GPIO_PE5_SSI1XDAT1      0x0004140F
+
+#define GPIO_PE6_U0CTS          0x00041801
+#define GPIO_PE6_I2C9SCL        0x00041802
+
+#define GPIO_PE7_U0RTS          0x00041C01
+#define GPIO_PE7_I2C9SDA        0x00041C02
+#define GPIO_PE7_NMI            0x00041C08
+
+#define GPIO_PF0_EN0LED0        0x00050005
+#define GPIO_PF0_M0PWM0         0x00050006
+#define GPIO_PF0_SSI3XDAT1      0x0005000E
+#define GPIO_PF0_TRD2           0x0005000F
+
+#define GPIO_PF1_EN0LED2        0x00050405
+#define GPIO_PF1_M0PWM1         0x00050406
+#define GPIO_PF1_SSI3XDAT0      0x0005040E
+#define GPIO_PF1_TRD1           0x0005040F
+
+#define GPIO_PF2_EN0MDC         0x00050805
+#define GPIO_PF2_M0PWM2         0x00050806
+#define GPIO_PF2_SSI3FSS        0x0005080E
+#define GPIO_PF2_TRD0           0x0005080F
+
+#define GPIO_PF3_EN0MDIO        0x00050C05
+#define GPIO_PF3_M0PWM3         0x00050C06
+#define GPIO_PF3_SSI3CLK        0x00050C0E
+#define GPIO_PF3_TRCLK          0x00050C0F
+
+#define GPIO_PF4_EN0LED1        0x00051005
+#define GPIO_PF4_M0FAULT0       0x00051006
+#define GPIO_PF4_SSI3XDAT2      0x0005100E
+#define GPIO_PF4_TRD3           0x0005100F
+
+#define GPIO_PF5_SSI3XDAT3      0x0005140E
+
+#define GPIO_PF6_LCDMCLK        0x0005180F
+
+#define GPIO_PF7_LCDDATA02      0x00051C0F
+
+#define GPIO_PG0_I2C1SCL        0x00060002
+#define GPIO_PG0_EN0PPS         0x00060005
+#define GPIO_PG0_M0PWM4         0x00060006
+#define GPIO_PG0_EPI0S11        0x0006000F
+
+#define GPIO_PG1_I2C1SDA        0x00060402
+#define GPIO_PG1_M0PWM5         0x00060406
+#define GPIO_PG1_EPI0S10        0x0006040F
+
+#define GPIO_PG2_I2C2SCL        0x00060802
+#define GPIO_PG2_EN0TXCK        0x0006080E
+#define GPIO_PG2_SSI2XDAT3      0x0006080F
+
+#define GPIO_PG3_I2C2SDA        0x00060C02
+#define GPIO_PG3_EN0TXEN        0x00060C0E
+#define GPIO_PG3_SSI2XDAT2      0x00060C0F
+
+#define GPIO_PG4_U0CTS          0x00061001
+#define GPIO_PG4_I2C3SCL        0x00061002
+#define GPIO_PG4_OWIRE          0x00061005
+#define GPIO_PG4_EN0TXD0        0x0006100E
+#define GPIO_PG4_SSI2XDAT1      0x0006100F
+
+#define GPIO_PG5_U0RTS          0x00061401
+#define GPIO_PG5_I2C3SDA        0x00061402
+#define GPIO_PG5_OWALT          0x00061405
+#define GPIO_PG5_EN0TXD1        0x0006140E
+#define GPIO_PG5_SSI2XDAT0      0x0006140F
+
+#define GPIO_PG6_I2C4SCL        0x00061802
+#define GPIO_PG6_OWIRE          0x00061805
+#define GPIO_PG6_EN0RXER        0x0006180E
+#define GPIO_PG6_SSI2FSS        0x0006180F
+
+#define GPIO_PG7_I2C4SDA        0x00061C02
+#define GPIO_PG7_OWIRE          0x00061C05
+#define GPIO_PG7_EN0RXDV        0x00061C0E
+#define GPIO_PG7_SSI2CLK        0x00061C0F
+
+#define GPIO_PH0_U0RTS          0x00070001
+#define GPIO_PH0_EPI0S0         0x0007000F
+
+#define GPIO_PH1_U0CTS          0x00070401
+#define GPIO_PH1_EPI0S1         0x0007040F
+
+#define GPIO_PH2_U0DCD          0x00070801
+#define GPIO_PH2_EPI0S2         0x0007080F
+
+#define GPIO_PH3_U0DSR          0x00070C01
+#define GPIO_PH3_EPI0S3         0x00070C0F
+
+#define GPIO_PH4_U0DTR          0x00071001
+
+#define GPIO_PH5_U0RI           0x00071401
+#define GPIO_PH5_EN0PPS         0x00071405
+
+#define GPIO_PH6_U5RX           0x00071801
+#define GPIO_PH6_U7RX           0x00071802
+
+#define GPIO_PH7_U5TX           0x00071C01
+#define GPIO_PH7_U7TX           0x00071C02
+
+#define GPIO_PJ0_U3RX           0x00080001
+#define GPIO_PJ0_EN0PPS         0x00080005
+
+#define GPIO_PJ1_U3TX           0x00080401
+
+#define GPIO_PJ2_U2RTS          0x00080801
+#define GPIO_PJ2_LCDDATA14      0x0008080F
+
+#define GPIO_PJ3_U2CTS          0x00080C01
+#define GPIO_PJ3_LCDDATA15      0x00080C0F
+
+#define GPIO_PJ4_U3RTS          0x00081001
+#define GPIO_PJ4_LCDDATA16      0x0008100F
+
+#define GPIO_PJ5_U3CTS          0x00081401
+#define GPIO_PJ5_LCDDATA17      0x0008140F
+
+#define GPIO_PJ6_U4RTS          0x00081801
+#define GPIO_PJ6_LCDAC          0x0008180F
+
+#define GPIO_PJ7_U4CTS          0x00081C01
+
+#define GPIO_PK0_U4RX           0x00090001
+#define GPIO_PK0_EPI0S0         0x0009000F
+
+#define GPIO_PK1_U4TX           0x00090401
+#define GPIO_PK1_EPI0S1         0x0009040F
+
+#define GPIO_PK2_U4RTS          0x00090801
+#define GPIO_PK2_EPI0S2         0x0009080F
+
+#define GPIO_PK3_U4CTS          0x00090C01
+#define GPIO_PK3_EPI0S3         0x00090C0F
+
+#define GPIO_PK4_I2C3SCL        0x00091002
+#define GPIO_PK4_EN0LED0        0x00091005
+#define GPIO_PK4_M0PWM6         0x00091006
+#define GPIO_PK4_EN0INTRN       0x00091007
+#define GPIO_PK4_EN0RXD3        0x0009100E
+#define GPIO_PK4_EPI0S32        0x0009100F
+
+#define GPIO_PK5_I2C3SDA        0x00091402
+#define GPIO_PK5_EN0LED2        0x00091405
+#define GPIO_PK5_M0PWM7         0x00091406
+#define GPIO_PK5_EN0RXD2        0x0009140E
+#define GPIO_PK5_EPI0S31        0x0009140F
+
+#define GPIO_PK6_I2C4SCL        0x00091802
+#define GPIO_PK6_EN0LED1        0x00091805
+#define GPIO_PK6_M0FAULT1       0x00091806
+#define GPIO_PK6_EN0TXD2        0x0009180E
+#define GPIO_PK6_EPI0S25        0x0009180F
+
+#define GPIO_PK7_U0RI           0x00091C01
+#define GPIO_PK7_I2C4SDA        0x00091C02
+#define GPIO_PK7_RTCCLK         0x00091C05
+#define GPIO_PK7_M0FAULT2       0x00091C06
+#define GPIO_PK7_EN0TXD3        0x00091C0E
+#define GPIO_PK7_EPI0S24        0x00091C0F
+
+#define GPIO_PL0_I2C2SDA        0x000A0002
+#define GPIO_PL0_M0FAULT3       0x000A0006
+#define GPIO_PL0_USB0D0         0x000A000E
+#define GPIO_PL0_EPI0S16        0x000A000F
+
+#define GPIO_PL1_I2C2SCL        0x000A0402
+#define GPIO_PL1_PHA0           0x000A0406
+#define GPIO_PL1_USB0D1         0x000A040E
+#define GPIO_PL1_EPI0S17        0x000A040F
+
+#define GPIO_PL2_C0O            0x000A0805
+#define GPIO_PL2_PHB0           0x000A0806
+#define GPIO_PL2_USB0D2         0x000A080E
+#define GPIO_PL2_EPI0S18        0x000A080F
+
+#define GPIO_PL3_C1O            0x000A0C05
+#define GPIO_PL3_IDX0           0x000A0C06
+#define GPIO_PL3_USB0D3         0x000A0C0E
+#define GPIO_PL3_EPI0S19        0x000A0C0F
+
+#define GPIO_PL4_T0CCP0         0x000A1003
+#define GPIO_PL4_USB0D4         0x000A100E
+#define GPIO_PL4_EPI0S26        0x000A100F
+
+#define GPIO_PL5_T0CCP1         0x000A1403
+#define GPIO_PL5_EPI0S33        0x000A140F
+#define GPIO_PL5_USB0D5         0x000A140E
+
+#define GPIO_PL6_T1CCP0         0x000A1803
+
+#define GPIO_PL7_T1CCP1         0x000A1C03
+
+#define GPIO_PM0_T2CCP0         0x000B0003
+#define GPIO_PM0_EPI0S15        0x000B000F
+
+#define GPIO_PM1_T2CCP1         0x000B0403
+#define GPIO_PM1_EPI0S14        0x000B040F
+
+#define GPIO_PM2_T3CCP0         0x000B0803
+#define GPIO_PM2_EPI0S13        0x000B080F
+
+#define GPIO_PM3_T3CCP1         0x000B0C03
+#define GPIO_PM3_EPI0S12        0x000B0C0F
+
+#define GPIO_PM4_U0CTS          0x000B1001
+#define GPIO_PM4_T4CCP0         0x000B1003
+#define GPIO_PM4_EN0RREF_CLK    0x000B100E
+
+#define GPIO_PM5_U0DCD          0x000B1401
+#define GPIO_PM5_T4CCP1         0x000B1403
+
+#define GPIO_PM6_U0DSR          0x000B1801
+#define GPIO_PM6_T5CCP0         0x000B1803
+#define GPIO_PM6_EN0CRS         0x000B180E
+
+#define GPIO_PM7_U0RI           0x000B1C01
+#define GPIO_PM7_T5CCP1         0x000B1C03
+#define GPIO_PM7_EN0COL         0x000B1C0E
+
+#define GPIO_PN0_U1RTS          0x000C0001
+
+#define GPIO_PN1_U1CTS          0x000C0401
+
+#define GPIO_PN2_U1DCD          0x000C0801
+#define GPIO_PN2_U2RTS          0x000C0802
+#define GPIO_PN2_EPI0S29        0x000C080F
+
+#define GPIO_PN3_U1DSR          0x000C0C01
+#define GPIO_PN3_U2CTS          0x000C0C02
+#define GPIO_PN3_EPI0S30        0x000C0C0F
+
+#define GPIO_PN4_U1DTR          0x000C1001
+#define GPIO_PN4_U3RTS          0x000C1002
+#define GPIO_PN4_I2C2SDA        0x000C1003
+#define GPIO_PN4_EPI0S34        0x000C100F
+
+#define GPIO_PN5_U1RI           0x000C1401
+#define GPIO_PN5_U3CTS          0x000C1402
+#define GPIO_PN5_I2C2SCL        0x000C1403
+#define GPIO_PN5_EPI0S35        0x000C140F
+
+#define GPIO_PN6_U4RTS          0x000C1802
+#define GPIO_PN6_EN0TXER        0x000C180E
+#define GPIO_PN6_LCDDATA13      0x000C180F
+
+#define GPIO_PN7_U1RTS          0x000C1C01
+#define GPIO_PN7_U4CTS          0x000C1C02
+#define GPIO_PN7_LCDDATA12      0x000C1C0F
+
+#define GPIO_PP0_U6RX           0x000D0001
+#define GPIO_PP0_T6CCP0         0x000D0005
+#define GPIO_PP0_EN0INTRN       0x000D0007
+#define GPIO_PP0_SSI3XDAT2      0x000D000F
+
+#define GPIO_PP1_U6TX           0x000D0401
+#define GPIO_PP1_T6CCP1         0x000D0405
+#define GPIO_PP1_SSI3XDAT3      0x000D040F
+
+#define GPIO_PP2_U0DTR          0x000D0801
+#define GPIO_PP2_USB0NXT        0x000D080E
+#define GPIO_PP2_EPI0S29        0x000D080F
+
+#define GPIO_PP3_U1CTS          0x000D0C01
+#define GPIO_PP3_U0DCD          0x000D0C02
+#define GPIO_PP3_RTCCLK         0x000D0C07
+#define GPIO_PP3_USB0DIR        0x000D0C0E
+#define GPIO_PP3_EPI0S30        0x000D0C0F
+
+#define GPIO_PP4_U3RTS          0x000D1001
+#define GPIO_PP4_U0DSR          0x000D1002
+#define GPIO_PP4_OWIRE          0x000D1004
+#define GPIO_PP4_USB0D7         0x000D100E
+
+#define GPIO_PP5_U3CTS          0x000D1401
+#define GPIO_PP5_I2C2SCL        0x000D1402
+#define GPIO_PP5_OWALT          0x000D1404
+#define GPIO_PP5_USB0D6         0x000D140E
+
+#define GPIO_PP6_U1DCD          0x000D1801
+#define GPIO_PP6_I2C2SDA        0x000D1802
+
+#define GPIO_PP7_OWIRE          0x000D1C05
+
+#define GPIO_PQ0_T6CCP0         0x000E0003
+#define GPIO_PQ0_SSI3CLK        0x000E000E
+#define GPIO_PQ0_EPI0S20        0x000E000F
+
+#define GPIO_PQ1_T6CCP1         0x000E0403
+#define GPIO_PQ1_SSI3FSS        0x000E040E
+#define GPIO_PQ1_EPI0S21        0x000E040F
+
+#define GPIO_PQ2_T7CCP0         0x000E0803
+#define GPIO_PQ2_SSI3XDAT0      0x000E080E
+#define GPIO_PQ2_EPI0S22        0x000E080F
+
+#define GPIO_PQ3_T7CCP1         0x000E0C03
+#define GPIO_PQ3_SSI3XDAT1      0x000E0C0E
+#define GPIO_PQ3_EPI0S23        0x000E0C0F
+
+#define GPIO_PQ4_U1RX           0x000E1001
+#define GPIO_PQ4_DIVSCLK        0x000E1007
+
+#define GPIO_PQ5_U1TX           0x000E1401
+#define GPIO_PQ5_EN0RXD0        0x000E140E
+
+#define GPIO_PQ6_U1DTR          0x000E1801
+#define GPIO_PQ6_EN0RXD1        0x000E180E
+
+#define GPIO_PQ7_U1RI           0x000E1C01
+
+#define GPIO_PR0_U4TX           0x000F0001
+#define GPIO_PR0_I2C1SCL        0x000F0002
+#define GPIO_PR0_M0PWM0         0x000F0006
+#define GPIO_PR0_LCDCP          0x000F000F
+
+#define GPIO_PR1_U4RX           0x000F0401
+#define GPIO_PR1_I2C1SDA        0x000F0402
+#define GPIO_PR1_M0PWM1         0x000F0406
+#define GPIO_PR1_LCDFP          0x000F040F
+
+#define GPIO_PR2_I2C2SCL        0x000F0802
+#define GPIO_PR2_M0PWM2         0x000F0806
+#define GPIO_PR2_LCDLP          0x000F080F
+
+#define GPIO_PR3_I2C2SDA        0x000F0C02
+#define GPIO_PR3_M0PWM3         0x000F0C06
+#define GPIO_PR3_LCDDATA03      0x000F0C0F
+
+#define GPIO_PR4_I2C3SCL        0x000F1002
+#define GPIO_PR4_T0CCP0         0x000F1003
+#define GPIO_PR4_M0PWM4         0x000F1006
+#define GPIO_PR4_LCDDATA00      0x000F100F
+
+#define GPIO_PR5_U1RX           0x000F1401
+#define GPIO_PR5_I2C3SDA        0x000F1402
+#define GPIO_PR5_T0CCP1         0x000F1403
+#define GPIO_PR5_M0PWM5         0x000F1406
+#define GPIO_PR5_LCDDATA01      0x000F140F
+
+#define GPIO_PR6_U1TX           0x000F1801
+#define GPIO_PR6_I2C4SCL        0x000F1802
+#define GPIO_PR6_T1CCP0         0x000F1803
+#define GPIO_PR6_M0PWM6         0x000F1806
+#define GPIO_PR6_LCDDATA04      0x000F180F
+
+#define GPIO_PR7_I2C4SDA        0x000F1C02
+#define GPIO_PR7_T1CCP1         0x000F1C03
+#define GPIO_PR7_M0PWM7         0x000F1C06
+#define GPIO_PR7_EN0TXEN        0x000F1C0E
+#define GPIO_PR7_LCDDATA05      0x000F1C0F
+
+#define GPIO_PS0_T2CCP0         0x00100003
+#define GPIO_PS0_M0FAULT0       0x00100006
+#define GPIO_PS0_LCDDATA20      0x0010000F
+
+#define GPIO_PS1_T2CCP1         0x00100403
+#define GPIO_PS1_M0FAULT1       0x00100406
+#define GPIO_PS1_LCDDATA21      0x0010040F
+
+#define GPIO_PS2_U1DSR          0x00100801
+#define GPIO_PS2_T3CCP0         0x00100803
+#define GPIO_PS2_M0FAULT2       0x00100806
+#define GPIO_PS2_LCDDATA22      0x0010080F
+
+#define GPIO_PS3_T3CCP1         0x00100C03
+#define GPIO_PS3_M0FAULT3       0x00100C06
+#define GPIO_PS3_LCDDATA23      0x00100C0F
+
+#define GPIO_PS4_T4CCP0         0x00101003
+#define GPIO_PS4_PHA0           0x00101006
+#define GPIO_PS4_EN0TXD0        0x0010100E
+#define GPIO_PS4_LCDDATA06      0x0010100F
+
+#define GPIO_PS5_T4CCP1         0x00101403
+#define GPIO_PS5_PHB0           0x00101406
+#define GPIO_PS5_EN0TXD1        0x0010140E
+#define GPIO_PS5_LCDDATA07      0x0010140F
+
+#define GPIO_PS6_T5CCP0         0x00101803
+#define GPIO_PS6_IDX0           0x00101806
+#define GPIO_PS6_EN0RXER        0x0010180E
+#define GPIO_PS6_LCDDATA08      0x0010180F
+
+#define GPIO_PS7_T5CCP1         0x00101C03
+#define GPIO_PS7_EN0RXDV        0x00101C0E
+#define GPIO_PS7_LCDDATA09      0x00101C0F
+
+#define GPIO_PT0_T6CCP0         0x00110003
+#define GPIO_PT0_CAN0RX         0x00110007
+#define GPIO_PT0_EN0RXD0        0x0011000E
+#define GPIO_PT0_LCDDATA10      0x0011000F
+
+#define GPIO_PT1_T6CCP1         0x00110403
+#define GPIO_PT1_CAN0TX         0x00110407
+#define GPIO_PT1_EN0RXD1        0x0011040E
+#define GPIO_PT1_LCDDATA11      0x0011040F
+
+#define GPIO_PT2_T7CCP0         0x00110803
+#define GPIO_PT2_CAN1RX         0x00110807
+#define GPIO_PT2_LCDDATA18      0x0011080F
+
+#define GPIO_PT3_T7CCP1         0x00110C03
+#define GPIO_PT3_CAN1TX         0x00110C07
+#define GPIO_PT3_LCDDATA19      0x00110C0F
+
+#endif // PART_TM4C129XNCZAD
+
+#endif // __DRIVERLIB_PIN_MAP_H__

+ 326 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/pwm.h

@@ -0,0 +1,326 @@
+//*****************************************************************************
+//
+// pwm.h - API function protoypes for Pulse Width Modulation (PWM) ports
+//
+// Copyright (c) 2005-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Peripheral Driver Library.
+//
+//*****************************************************************************
+
+#ifndef __DRIVERLIB_PWM_H__
+#define __DRIVERLIB_PWM_H__
+
+//*****************************************************************************
+//
+// If building with a C++ compiler, make all of the definitions in this header
+// have a C binding.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+//*****************************************************************************
+//
+// The following defines are passed to PWMGenConfigure() as the ui32Config
+// parameter and specify the configuration of the PWM generator.
+//
+//*****************************************************************************
+#define PWM_GEN_MODE_DOWN       0x00000000  // Down count mode
+#define PWM_GEN_MODE_UP_DOWN    0x00000002  // Up/Down count mode
+#define PWM_GEN_MODE_SYNC       0x00000038  // Synchronous updates
+#define PWM_GEN_MODE_NO_SYNC    0x00000000  // Immediate updates
+#define PWM_GEN_MODE_DBG_RUN    0x00000004  // Continue running in debug mode
+#define PWM_GEN_MODE_DBG_STOP   0x00000000  // Stop running in debug mode
+#define PWM_GEN_MODE_FAULT_LATCHED \
+                                0x00040000  // Fault is latched
+#define PWM_GEN_MODE_FAULT_UNLATCHED \
+                                0x00000000  // Fault is not latched
+#define PWM_GEN_MODE_FAULT_MINPER \
+                                0x00020000  // Enable min fault period
+#define PWM_GEN_MODE_FAULT_NO_MINPER \
+                                0x00000000  // Disable min fault period
+#define PWM_GEN_MODE_FAULT_EXT  0x00010000  // Enable extended fault support
+#define PWM_GEN_MODE_FAULT_LEGACY \
+                                0x00000000  // Disable extended fault support
+#define PWM_GEN_MODE_DB_NO_SYNC 0x00000000  // Deadband updates occur
+                                            // immediately
+#define PWM_GEN_MODE_DB_SYNC_LOCAL \
+                                0x0000A800  // Deadband updates locally
+                                            // synchronized
+#define PWM_GEN_MODE_DB_SYNC_GLOBAL \
+                                0x0000FC00  // Deadband updates globally
+                                            // synchronized
+#define PWM_GEN_MODE_GEN_NO_SYNC \
+                                0x00000000  // Generator mode updates occur
+                                            // immediately
+#define PWM_GEN_MODE_GEN_SYNC_LOCAL \
+                                0x00000280  // Generator mode updates locally
+                                            // synchronized
+#define PWM_GEN_MODE_GEN_SYNC_GLOBAL \
+                                0x000003C0  // Generator mode updates globally
+                                            // synchronized
+
+//*****************************************************************************
+//
+// Defines for enabling, disabling, and clearing PWM generator interrupts and
+// triggers.
+//
+//*****************************************************************************
+#define PWM_INT_CNT_ZERO        0x00000001  // Int if COUNT = 0
+#define PWM_INT_CNT_LOAD        0x00000002  // Int if COUNT = LOAD
+#define PWM_INT_CNT_AU          0x00000004  // Int if COUNT = CMPA U
+#define PWM_INT_CNT_AD          0x00000008  // Int if COUNT = CMPA D
+#define PWM_INT_CNT_BU          0x00000010  // Int if COUNT = CMPA U
+#define PWM_INT_CNT_BD          0x00000020  // Int if COUNT = CMPA D
+#define PWM_TR_CNT_ZERO         0x00000100  // Trig if COUNT = 0
+#define PWM_TR_CNT_LOAD         0x00000200  // Trig if COUNT = LOAD
+#define PWM_TR_CNT_AU           0x00000400  // Trig if COUNT = CMPA U
+#define PWM_TR_CNT_AD           0x00000800  // Trig if COUNT = CMPA D
+#define PWM_TR_CNT_BU           0x00001000  // Trig if COUNT = CMPA U
+#define PWM_TR_CNT_BD           0x00002000  // Trig if COUNT = CMPA D
+
+//*****************************************************************************
+//
+// Defines for enabling, disabling, and clearing PWM interrupts.
+//
+//*****************************************************************************
+#define PWM_INT_GEN_0           0x00000001  // Generator 0 interrupt
+#define PWM_INT_GEN_1           0x00000002  // Generator 1 interrupt
+#define PWM_INT_GEN_2           0x00000004  // Generator 2 interrupt
+#define PWM_INT_GEN_3           0x00000008  // Generator 3 interrupt
+#define PWM_INT_FAULT0          0x00010000  // Fault0 interrupt
+#define PWM_INT_FAULT1          0x00020000  // Fault1 interrupt
+#define PWM_INT_FAULT2          0x00040000  // Fault2 interrupt
+#define PWM_INT_FAULT3          0x00080000  // Fault3 interrupt
+#define PWM_INT_FAULT_M         0x000F0000  // Fault interrupt source mask
+
+//*****************************************************************************
+//
+// Defines to identify the generators within a module.
+//
+//*****************************************************************************
+#define PWM_GEN_0               0x00000040  // Offset address of Gen0
+#define PWM_GEN_1               0x00000080  // Offset address of Gen1
+#define PWM_GEN_2               0x000000C0  // Offset address of Gen2
+#define PWM_GEN_3               0x00000100  // Offset address of Gen3
+
+#define PWM_GEN_0_BIT           0x00000001  // Bit-wise ID for Gen0
+#define PWM_GEN_1_BIT           0x00000002  // Bit-wise ID for Gen1
+#define PWM_GEN_2_BIT           0x00000004  // Bit-wise ID for Gen2
+#define PWM_GEN_3_BIT           0x00000008  // Bit-wise ID for Gen3
+
+#define PWM_GEN_EXT_0           0x00000800  // Offset of Gen0 ext address range
+#define PWM_GEN_EXT_1           0x00000880  // Offset of Gen1 ext address range
+#define PWM_GEN_EXT_2           0x00000900  // Offset of Gen2 ext address range
+#define PWM_GEN_EXT_3           0x00000980  // Offset of Gen3 ext address range
+
+//*****************************************************************************
+//
+// Defines to identify the outputs within a module.
+//
+//*****************************************************************************
+#define PWM_OUT_0               0x00000040  // Encoded offset address of PWM0
+#define PWM_OUT_1               0x00000041  // Encoded offset address of PWM1
+#define PWM_OUT_2               0x00000082  // Encoded offset address of PWM2
+#define PWM_OUT_3               0x00000083  // Encoded offset address of PWM3
+#define PWM_OUT_4               0x000000C4  // Encoded offset address of PWM4
+#define PWM_OUT_5               0x000000C5  // Encoded offset address of PWM5
+#define PWM_OUT_6               0x00000106  // Encoded offset address of PWM6
+#define PWM_OUT_7               0x00000107  // Encoded offset address of PWM7
+
+#define PWM_OUT_0_BIT           0x00000001  // Bit-wise ID for PWM0
+#define PWM_OUT_1_BIT           0x00000002  // Bit-wise ID for PWM1
+#define PWM_OUT_2_BIT           0x00000004  // Bit-wise ID for PWM2
+#define PWM_OUT_3_BIT           0x00000008  // Bit-wise ID for PWM3
+#define PWM_OUT_4_BIT           0x00000010  // Bit-wise ID for PWM4
+#define PWM_OUT_5_BIT           0x00000020  // Bit-wise ID for PWM5
+#define PWM_OUT_6_BIT           0x00000040  // Bit-wise ID for PWM6
+#define PWM_OUT_7_BIT           0x00000080  // Bit-wise ID for PWM7
+
+//*****************************************************************************
+//
+// Defines to identify each of the possible fault trigger conditions in
+// PWM_FAULT_GROUP_0.
+//
+//*****************************************************************************
+#define PWM_FAULT_GROUP_0       0
+
+#define PWM_FAULT_FAULT0        0x00000001
+#define PWM_FAULT_FAULT1        0x00000002
+#define PWM_FAULT_FAULT2        0x00000004
+#define PWM_FAULT_FAULT3        0x00000008
+#define PWM_FAULT_ACMP0         0x00010000
+#define PWM_FAULT_ACMP1         0x00020000
+#define PWM_FAULT_ACMP2         0x00040000
+
+//*****************************************************************************
+//
+// Defines to identify each of the possible fault trigger conditions in
+// PWM_FAULT_GROUP_1.
+//
+//*****************************************************************************
+#define PWM_FAULT_GROUP_1       1
+
+#define PWM_FAULT_DCMP0         0x00000001
+#define PWM_FAULT_DCMP1         0x00000002
+#define PWM_FAULT_DCMP2         0x00000004
+#define PWM_FAULT_DCMP3         0x00000008
+#define PWM_FAULT_DCMP4         0x00000010
+#define PWM_FAULT_DCMP5         0x00000020
+#define PWM_FAULT_DCMP6         0x00000040
+#define PWM_FAULT_DCMP7         0x00000080
+
+//*****************************************************************************
+//
+// Defines to identify the sense of each of the external FAULTn signals
+//
+//*****************************************************************************
+#define PWM_FAULT0_SENSE_HIGH   0x00000000
+#define PWM_FAULT0_SENSE_LOW    0x00000001
+#define PWM_FAULT1_SENSE_HIGH   0x00000000
+#define PWM_FAULT1_SENSE_LOW    0x00000002
+#define PWM_FAULT2_SENSE_HIGH   0x00000000
+#define PWM_FAULT2_SENSE_LOW    0x00000004
+#define PWM_FAULT3_SENSE_HIGH   0x00000000
+#define PWM_FAULT3_SENSE_LOW    0x00000008
+
+//*****************************************************************************
+//
+// Defines that can be passed to the PWMClockSet() API as the ui32Config
+// parameter, and can be returned by the PWMClockGet() API.
+//
+//*****************************************************************************
+#define PWM_SYSCLK_DIV_1        0x00000000  // PWM clock is system clock
+#define PWM_SYSCLK_DIV_2        0x00000100  // PWM clock is system clock /2
+#define PWM_SYSCLK_DIV_4        0x00000101  // PWM clock is system clock /4
+#define PWM_SYSCLK_DIV_8        0x00000102  // PWM clock is system clock /8
+#define PWM_SYSCLK_DIV_16       0x00000103  // PWM clock is system clock /16
+#define PWM_SYSCLK_DIV_32       0x00000104  // PWM clock is system clock /32
+#define PWM_SYSCLK_DIV_64       0x00000105  // PWM clock is system clock /64
+
+//*****************************************************************************
+//
+// Defines passed to PWMOutputUpdateMode() to identify the synchronization mode
+// to use when enabling or disabling outputs using PWMOutputState().
+//
+//*****************************************************************************
+#define PWM_OUTPUT_MODE_NO_SYNC 0x00000000 // Updates to occur immediately
+#define PWM_OUTPUT_MODE_SYNC_LOCAL \
+                                0x00000002 // Updates are locally synchronized
+#define PWM_OUTPUT_MODE_SYNC_GLOBAL \
+                                0x00000003 // Updates are globally synchronized
+
+//*****************************************************************************
+//
+// API Function prototypes
+//
+//*****************************************************************************
+extern void PWMGenConfigure(uint32_t ui32Base, uint32_t ui32Gen,
+                            uint32_t ui32Config);
+extern void PWMGenPeriodSet(uint32_t ui32Base, uint32_t ui32Gen,
+                            uint32_t ui32Period);
+extern uint32_t PWMGenPeriodGet(uint32_t ui32Base,
+                                uint32_t ui32Gen);
+extern void PWMGenEnable(uint32_t ui32Base, uint32_t ui32Gen);
+extern void PWMGenDisable(uint32_t ui32Base, uint32_t ui32Gen);
+extern void PWMPulseWidthSet(uint32_t ui32Base, uint32_t ui32PWMOut,
+                             uint32_t ui32Width);
+extern uint32_t PWMPulseWidthGet(uint32_t ui32Base,
+                                 uint32_t ui32PWMOut);
+extern void PWMDeadBandEnable(uint32_t ui32Base, uint32_t ui32Gen,
+                              uint16_t ui16Rise, uint16_t ui16Fall);
+extern void PWMDeadBandDisable(uint32_t ui32Base, uint32_t ui32Gen);
+extern void PWMSyncUpdate(uint32_t ui32Base, uint32_t ui32GenBits);
+extern void PWMSyncTimeBase(uint32_t ui32Base, uint32_t ui32GenBits);
+extern void PWMOutputState(uint32_t ui32Base, uint32_t ui32PWMOutBits,
+                           bool bEnable);
+extern void PWMOutputInvert(uint32_t ui32Base, uint32_t ui32PWMOutBits,
+                            bool bInvert);
+extern void PWMOutputFaultLevel(uint32_t ui32Base,
+                                uint32_t ui32PWMOutBits,
+                                bool bDriveHigh);
+extern void PWMOutputFault(uint32_t ui32Base, uint32_t ui32PWMOutBits,
+                           bool bFaultSuppress);
+extern void PWMGenIntRegister(uint32_t ui32Base, uint32_t ui32Gen,
+                              void (*pfnIntHandler)(void));
+extern void PWMGenIntUnregister(uint32_t ui32Base, uint32_t ui32Gen);
+extern void PWMFaultIntRegister(uint32_t ui32Base,
+                                void (*pfnIntHandler)(void));
+extern void PWMFaultIntUnregister(uint32_t ui32Base);
+extern void PWMGenIntTrigEnable(uint32_t ui32Base, uint32_t ui32Gen,
+                                uint32_t ui32IntTrig);
+extern void PWMGenIntTrigDisable(uint32_t ui32Base, uint32_t ui32Gen,
+                                 uint32_t ui32IntTrig);
+extern uint32_t PWMGenIntStatus(uint32_t ui32Base, uint32_t ui32Gen,
+                                bool bMasked);
+extern void PWMGenIntClear(uint32_t ui32Base, uint32_t ui32Gen,
+                           uint32_t ui32Ints);
+extern void PWMIntEnable(uint32_t ui32Base, uint32_t ui32GenFault);
+extern void PWMIntDisable(uint32_t ui32Base, uint32_t ui32GenFault);
+extern void PWMFaultIntClear(uint32_t ui32Base);
+extern uint32_t PWMIntStatus(uint32_t ui32Base, bool bMasked);
+extern void PWMFaultIntClearExt(uint32_t ui32Base,
+                                uint32_t ui32FaultInts);
+extern void PWMGenFaultConfigure(uint32_t ui32Base, uint32_t ui32Gen,
+                                 uint32_t ui32MinFaultPeriod,
+                                 uint32_t ui32FaultSenses);
+extern void PWMGenFaultTriggerSet(uint32_t ui32Base, uint32_t ui32Gen,
+                                  uint32_t ui32Group,
+                                  uint32_t ui32FaultTriggers);
+extern uint32_t PWMGenFaultTriggerGet(uint32_t ui32Base,
+                                      uint32_t ui32Gen,
+                                      uint32_t ui32Group);
+extern uint32_t PWMGenFaultStatus(uint32_t ui32Base,
+                                  uint32_t ui32Gen,
+                                  uint32_t ui32Group);
+extern void PWMGenFaultClear(uint32_t ui32Base, uint32_t ui32Gen,
+                             uint32_t ui32Group,
+                             uint32_t ui32FaultTriggers);
+extern void PWMClockSet(uint32_t ui32Base, uint32_t ui32Config);
+extern uint32_t PWMClockGet(uint32_t ui32Base);
+extern void PWMOutputUpdateMode(uint32_t ui32Base,
+                                uint32_t ui32PWMOutBits,
+                                uint32_t ui32Mode);
+
+//*****************************************************************************
+//
+// Mark the end of the C bindings section for C++ compilers.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __DRIVERLIB_PWM_H__

+ 154 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/qei.h

@@ -0,0 +1,154 @@
+//*****************************************************************************
+//
+// qei.h - Prototypes for the Quadrature Encoder Driver.
+//
+// Copyright (c) 2005-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Peripheral Driver Library.
+//
+//*****************************************************************************
+
+#ifndef __DRIVERLIB_QEI_H__
+#define __DRIVERLIB_QEI_H__
+
+//*****************************************************************************
+//
+// If building with a C++ compiler, make all of the definitions in this header
+// have a C binding.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+//*****************************************************************************
+//
+// Values that can be passed to QEIConfigure as the ui32Config paramater.
+//
+//*****************************************************************************
+#define QEI_CONFIG_CAPTURE_A    0x00000000  // Count on ChA edges only
+#define QEI_CONFIG_CAPTURE_A_B  0x00000008  // Count on ChA and ChB edges
+#define QEI_CONFIG_NO_RESET     0x00000000  // Do not reset on index pulse
+#define QEI_CONFIG_RESET_IDX    0x00000010  // Reset position on index pulse
+#define QEI_CONFIG_QUADRATURE   0x00000000  // ChA and ChB are quadrature
+#define QEI_CONFIG_CLOCK_DIR    0x00000004  // ChA and ChB are clock and dir
+#define QEI_CONFIG_NO_SWAP      0x00000000  // Do not swap ChA and ChB
+#define QEI_CONFIG_SWAP         0x00000002  // Swap ChA and ChB
+
+//*****************************************************************************
+//
+// Values that can be passed to QEIFilterConfigure as the ui32PreDiv
+// parameter.
+//
+//*****************************************************************************
+#define QEI_FILTCNT_2           0x00000000  // Filter Count of 2 System Clocks
+#define QEI_FILTCNT_3           0x00010000  // Filter Count of 3 System Clocks
+#define QEI_FILTCNT_4           0x00020000  // Filter Count of 4 System Clocks
+#define QEI_FILTCNT_5           0x00030000  // Filter Count of 5 System Clocks
+#define QEI_FILTCNT_6           0x00040000  // Filter Count of 6 System Clocks
+#define QEI_FILTCNT_7           0x00050000  // Filter Count of 7 System Clocks
+#define QEI_FILTCNT_8           0x00060000  // Filter Count of 8 System Clocks
+#define QEI_FILTCNT_9           0x00070000  // Filter Count of 9 System Clocks
+#define QEI_FILTCNT_10          0x00080000  // Filter Count of 10 System Clocks
+#define QEI_FILTCNT_11          0x00090000  // Filter Count of 11 System Clocks
+#define QEI_FILTCNT_12          0x000A0000  // Filter Count of 12 System Clocks
+#define QEI_FILTCNT_13          0x000B0000  // Filter Count of 13 System Clocks
+#define QEI_FILTCNT_14          0x000C0000  // Filter Count of 14 System Clocks
+#define QEI_FILTCNT_15          0x000D0000  // Filter Count of 15 System Clocks
+#define QEI_FILTCNT_16          0x000E0000  // Filter Count of 16 System Clocks
+#define QEI_FILTCNT_17          0x000F0000  // Filter Count of 17 System Clocks
+
+//*****************************************************************************
+//
+// Values that can be passed to QEIVelocityConfigure as the ui32PreDiv
+// parameter.
+//
+//*****************************************************************************
+#define QEI_VELDIV_1            0x00000000  // Predivide by 1
+#define QEI_VELDIV_2            0x00000040  // Predivide by 2
+#define QEI_VELDIV_4            0x00000080  // Predivide by 4
+#define QEI_VELDIV_8            0x000000C0  // Predivide by 8
+#define QEI_VELDIV_16           0x00000100  // Predivide by 16
+#define QEI_VELDIV_32           0x00000140  // Predivide by 32
+#define QEI_VELDIV_64           0x00000180  // Predivide by 64
+#define QEI_VELDIV_128          0x000001C0  // Predivide by 128
+
+//*****************************************************************************
+//
+// Values that can be passed to QEIEnableInts, QEIDisableInts, and QEIClearInts
+// as the ui32IntFlags parameter, and returned by QEIGetIntStatus.
+//
+//*****************************************************************************
+#define QEI_INTERROR            0x00000008  // Phase error detected
+#define QEI_INTDIR              0x00000004  // Direction change
+#define QEI_INTTIMER            0x00000002  // Velocity timer expired
+#define QEI_INTINDEX            0x00000001  // Index pulse detected
+
+//*****************************************************************************
+//
+// Prototypes for the APIs.
+//
+//*****************************************************************************
+extern void QEIEnable(uint32_t ui32Base);
+extern void QEIDisable(uint32_t ui32Base);
+extern void QEIConfigure(uint32_t ui32Base, uint32_t ui32Config,
+                         uint32_t ui32MaxPosition);
+extern uint32_t QEIPositionGet(uint32_t ui32Base);
+extern void QEIPositionSet(uint32_t ui32Base, uint32_t ui32Position);
+extern int32_t QEIDirectionGet(uint32_t ui32Base);
+extern bool QEIErrorGet(uint32_t ui32Base);
+extern void QEIFilterEnable(uint32_t ui32Base);
+extern void QEIFilterDisable(uint32_t ui32Base);
+extern void QEIFilterConfigure(uint32_t ui32Base, uint32_t ui32FiltCnt);
+extern void QEIVelocityEnable(uint32_t ui32Base);
+extern void QEIVelocityDisable(uint32_t ui32Base);
+extern void QEIVelocityConfigure(uint32_t ui32Base, uint32_t ui32PreDiv,
+                                 uint32_t ui32Period);
+extern uint32_t QEIVelocityGet(uint32_t ui32Base);
+extern void QEIIntRegister(uint32_t ui32Base, void (*pfnHandler)(void));
+extern void QEIIntUnregister(uint32_t ui32Base);
+extern void QEIIntEnable(uint32_t ui32Base, uint32_t ui32IntFlags);
+extern void QEIIntDisable(uint32_t ui32Base, uint32_t ui32IntFlags);
+extern uint32_t QEIIntStatus(uint32_t ui32Base, bool bMasked);
+extern void QEIIntClear(uint32_t ui32Base, uint32_t ui32IntFlags);
+
+//*****************************************************************************
+//
+// Mark the end of the C bindings section for C++ compilers.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __DRIVERLIB_QEI_H__

+ 8346 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/rom.h

@@ -0,0 +1,8346 @@
+//*****************************************************************************
+//
+// rom.h - Macros to facilitate calling functions in the ROM.
+//
+// Copyright (c) 2007-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Peripheral Driver Library.
+//
+//*****************************************************************************
+
+#ifndef __DRIVERLIB_ROM_H__
+#define __DRIVERLIB_ROM_H__
+
+#ifndef DEPRECATED
+//*****************************************************************************
+//
+// ROM selection labels changed between TivaWare 2.0.1 and 2.1.  The following
+// labels are intended to ensure backwards compatibility for applications
+// which have not yet been updated to use the replacement labels.
+//
+//*****************************************************************************
+#ifdef TARGET_IS_SNOWFLAKE_RA0
+#define TARGET_IS_TM4C129_RA0
+#endif
+#ifdef TARGET_IS_SNOWFLAKE_RA1
+#define TARGET_IS_TM4C129_RA1
+#endif
+#ifdef TARGET_IS_SNOWFLAKE_RA2
+#define TARGET_IS_TM4C129_RA2
+#endif
+#ifdef TARGET_IS_BLIZZARD_RA1
+#define TARGET_IS_TM4C123_RA1
+#endif
+#ifdef TARGET_IS_BLIZZARD_RA2
+#define TARGET_IS_TM4C123_RA2
+#endif
+#ifdef TARGET_IS_BLIZZARD_RA3
+#define TARGET_IS_TM4C123_RA3
+#endif
+#ifdef TARGET_IS_BLIZZARD_RB0
+#define TARGET_IS_TM4C123_RB0
+#endif
+#ifdef TARGET_IS_BLIZZARD_RB1
+#define TARGET_IS_TM4C123_RB1
+#endif
+#endif
+
+//*****************************************************************************
+//
+// Pointers to the main API tables.
+//
+//*****************************************************************************
+#define ROM_APITABLE            ((uint32_t *)0x01000010)
+#define ROM_VERSION             (ROM_APITABLE[0])
+#define ROM_UARTTABLE           ((uint32_t *)(ROM_APITABLE[1]))
+#define ROM_SSITABLE            ((uint32_t *)(ROM_APITABLE[2]))
+#define ROM_I2CTABLE            ((uint32_t *)(ROM_APITABLE[3]))
+#define ROM_GPIOTABLE           ((uint32_t *)(ROM_APITABLE[4]))
+#define ROM_ADCTABLE            ((uint32_t *)(ROM_APITABLE[5]))
+#define ROM_COMPARATORTABLE     ((uint32_t *)(ROM_APITABLE[6]))
+#define ROM_FLASHTABLE          ((uint32_t *)(ROM_APITABLE[7]))
+#define ROM_PWMTABLE            ((uint32_t *)(ROM_APITABLE[8]))
+#define ROM_QEITABLE            ((uint32_t *)(ROM_APITABLE[9]))
+#define ROM_SYSTICKTABLE        ((uint32_t *)(ROM_APITABLE[10]))
+#define ROM_TIMERTABLE          ((uint32_t *)(ROM_APITABLE[11]))
+#define ROM_WATCHDOGTABLE       ((uint32_t *)(ROM_APITABLE[12]))
+#define ROM_SYSCTLTABLE         ((uint32_t *)(ROM_APITABLE[13]))
+#define ROM_INTERRUPTTABLE      ((uint32_t *)(ROM_APITABLE[14]))
+#define ROM_USBTABLE            ((uint32_t *)(ROM_APITABLE[16]))
+#define ROM_UDMATABLE           ((uint32_t *)(ROM_APITABLE[17]))
+#define ROM_CANTABLE            ((uint32_t *)(ROM_APITABLE[18]))
+#define ROM_HIBERNATETABLE      ((uint32_t *)(ROM_APITABLE[19]))
+#define ROM_MPUTABLE            ((uint32_t *)(ROM_APITABLE[20]))
+#define ROM_SOFTWARETABLE       ((uint32_t *)(ROM_APITABLE[21]))
+#define ROM_EPITABLE            ((uint32_t *)(ROM_APITABLE[23]))
+#define ROM_EEPROMTABLE         ((uint32_t *)(ROM_APITABLE[24]))
+#define ROM_FPUTABLE            ((uint32_t *)(ROM_APITABLE[26]))
+#define ROM_SMBUSTABLE          ((uint32_t *)(ROM_APITABLE[29]))
+#define ROM_SYSEXCTABLE         ((uint32_t *)(ROM_APITABLE[30]))
+#define ROM_ONEWIRETABLE        ((uint32_t *)(ROM_APITABLE[34]))
+#define ROM_SPIFLASHTABLE       ((uint32_t *)(ROM_APITABLE[38]))
+#define ROM_LCDTABLE            ((uint32_t *)(ROM_APITABLE[41]))
+#define ROM_EMACTABLE           ((uint32_t *)(ROM_APITABLE[42]))
+#define ROM_AESTABLE            ((uint32_t *)(ROM_APITABLE[43]))
+#define ROM_CRCTABLE            ((uint32_t *)(ROM_APITABLE[44]))
+#define ROM_DESTABLE            ((uint32_t *)(ROM_APITABLE[45]))
+#define ROM_SHAMD5TABLE         ((uint32_t *)(ROM_APITABLE[46]))
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the ADC API.
+//
+//*****************************************************************************
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ADCSequenceDataGet                                                \
+        ((int32_t (*)(uint32_t ui32Base,                                      \
+                      uint32_t ui32SequenceNum,                               \
+                      uint32_t *pui32Buffer))ROM_ADCTABLE[0])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ADCIntDisable                                                     \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32SequenceNum))ROM_ADCTABLE[1])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ADCIntEnable                                                      \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32SequenceNum))ROM_ADCTABLE[2])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ADCIntStatus                                                      \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       uint32_t ui32SequenceNum,                              \
+                       bool bMasked))ROM_ADCTABLE[3])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ADCIntClear                                                       \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32SequenceNum))ROM_ADCTABLE[4])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ADCSequenceEnable                                                 \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32SequenceNum))ROM_ADCTABLE[5])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ADCSequenceDisable                                                \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32SequenceNum))ROM_ADCTABLE[6])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ADCSequenceConfigure                                              \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32SequenceNum,                                  \
+                   uint32_t ui32Trigger,                                      \
+                   uint32_t ui32Priority))ROM_ADCTABLE[7])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ADCSequenceStepConfigure                                          \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32SequenceNum,                                  \
+                   uint32_t ui32Step,                                         \
+                   uint32_t ui32Config))ROM_ADCTABLE[8])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ADCSequenceOverflow                                               \
+        ((int32_t (*)(uint32_t ui32Base,                                      \
+                      uint32_t ui32SequenceNum))ROM_ADCTABLE[9])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ADCSequenceOverflowClear                                          \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32SequenceNum))ROM_ADCTABLE[10])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ADCSequenceUnderflow                                              \
+        ((int32_t (*)(uint32_t ui32Base,                                      \
+                      uint32_t ui32SequenceNum))ROM_ADCTABLE[11])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ADCSequenceUnderflowClear                                         \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32SequenceNum))ROM_ADCTABLE[12])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ADCProcessorTrigger                                               \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32SequenceNum))ROM_ADCTABLE[13])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ADCHardwareOversampleConfigure                                    \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Factor))ROM_ADCTABLE[14])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ADCComparatorConfigure                                            \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Comp,                                         \
+                   uint32_t ui32Config))ROM_ADCTABLE[15])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ADCComparatorRegionSet                                            \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Comp,                                         \
+                   uint32_t ui32LowRef,                                       \
+                   uint32_t ui32HighRef))ROM_ADCTABLE[16])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ADCComparatorReset                                                \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Comp,                                         \
+                   bool bTrigger,                                             \
+                   bool bInterrupt))ROM_ADCTABLE[17])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ADCComparatorIntDisable                                           \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32SequenceNum))ROM_ADCTABLE[18])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ADCComparatorIntEnable                                            \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32SequenceNum))ROM_ADCTABLE[19])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ADCComparatorIntStatus                                            \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_ADCTABLE[20])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ADCComparatorIntClear                                             \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Status))ROM_ADCTABLE[21])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ADCReferenceSet                                                   \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Ref))ROM_ADCTABLE[22])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ADCReferenceGet                                                   \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_ADCTABLE[23])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ADCPhaseDelaySet                                                  \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Phase))ROM_ADCTABLE[24])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ADCPhaseDelayGet                                                  \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_ADCTABLE[25])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ADCIntDisableEx                                                   \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_ADCTABLE[29])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ADCIntEnableEx                                                    \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_ADCTABLE[30])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ADCIntStatusEx                                                    \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       bool bMasked))ROM_ADCTABLE[31])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ADCSequenceDMAEnable                                              \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32SequenceNum))ROM_ADCTABLE[32])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ADCSequenceDMADisable                                             \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32SequenceNum))ROM_ADCTABLE[33])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ADCBusy                                                           \
+        ((bool (*)(uint32_t ui32Base))ROM_ADCTABLE[34])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the AES API.
+//
+//*****************************************************************************
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_AESIntStatus                                                      \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       bool bMasked))ROM_AESTABLE[0])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_AESAuthLengthSet                                                  \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Length))ROM_AESTABLE[1])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_AESConfigSet                                                      \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Config))ROM_AESTABLE[2])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_AESDataAuth                                                       \
+        ((bool (*)(uint32_t ui32Base,                                         \
+                   uint32_t *pui32Src,                                        \
+                   uint32_t ui32Length,                                       \
+                   uint32_t *pui32Tag))ROM_AESTABLE[3])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_AESDataProcess                                                    \
+        ((bool (*)(uint32_t ui32Base,                                         \
+                   uint32_t *pui32Src,                                        \
+                   uint32_t *pui32Dest,                                       \
+                   uint32_t ui32Length))ROM_AESTABLE[4])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_AESDataProcessAuth                                                \
+        ((bool (*)(uint32_t ui32Base,                                         \
+                   uint32_t *pui32Src,                                        \
+                   uint32_t *pui32Dest,                                       \
+                   uint32_t ui32Length,                                       \
+                   uint32_t *pui32AuthSrc,                                    \
+                   uint32_t ui32AuthLength,                                   \
+                   uint32_t *pui32Tag))ROM_AESTABLE[5])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_AESDataRead                                                       \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t *pui32Dest))ROM_AESTABLE[6])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_AESDataReadNonBlocking                                            \
+        ((bool (*)(uint32_t ui32Base,                                         \
+                   uint32_t *pui32Dest))ROM_AESTABLE[7])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_AESDataWrite                                                      \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t *pui32Src))ROM_AESTABLE[8])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_AESDataWriteNonBlocking                                           \
+        ((bool (*)(uint32_t ui32Base,                                         \
+                   uint32_t *pui32Src))ROM_AESTABLE[9])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_AESDMADisable                                                     \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Flags))ROM_AESTABLE[10])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_AESDMAEnable                                                      \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Flags))ROM_AESTABLE[11])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_AESIntClear                                                       \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_AESTABLE[12])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_AESIntDisable                                                     \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_AESTABLE[13])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_AESIntEnable                                                      \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_AESTABLE[14])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_AESIVSet                                                          \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t *pui32IVdata))ROM_AESTABLE[15])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_AESKey1Set                                                        \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t *pui32Key,                                        \
+                   uint32_t ui32Keysize))ROM_AESTABLE[16])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_AESKey2Set                                                        \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t *pui32Key,                                        \
+                   uint32_t ui32Keysize))ROM_AESTABLE[17])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_AESKey3Set                                                        \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t *pui32Key))ROM_AESTABLE[18])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_AESLengthSet                                                      \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint64_t ui64Length))ROM_AESTABLE[19])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_AESReset                                                          \
+        ((void (*)(uint32_t ui32Base))ROM_AESTABLE[20])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_AESTagRead                                                        \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t *pui32TagData))ROM_AESTABLE[21])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_AESIVRead                                                         \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t *pui32IVdata))ROM_AESTABLE[22])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the CAN API.
+//
+//*****************************************************************************
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_CANIntClear                                                       \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntClr))ROM_CANTABLE[0])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_CANInit                                                           \
+        ((void (*)(uint32_t ui32Base))ROM_CANTABLE[1])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_CANEnable                                                         \
+        ((void (*)(uint32_t ui32Base))ROM_CANTABLE[2])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_CANDisable                                                        \
+        ((void (*)(uint32_t ui32Base))ROM_CANTABLE[3])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_CANBitTimingSet                                                   \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   tCANBitClkParms *psClkParms))ROM_CANTABLE[4])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_CANBitTimingGet                                                   \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   tCANBitClkParms *psClkParms))ROM_CANTABLE[5])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_CANMessageSet                                                     \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32ObjID,                                        \
+                   tCANMsgObject *psMsgObject,                                \
+                   tMsgObjType eMsgType))ROM_CANTABLE[6])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_CANMessageGet                                                     \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32ObjID,                                        \
+                   tCANMsgObject *psMsgObject,                                \
+                   bool bClrPendingInt))ROM_CANTABLE[7])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_CANStatusGet                                                      \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       tCANStsReg eStatusReg))ROM_CANTABLE[8])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_CANMessageClear                                                   \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32ObjID))ROM_CANTABLE[9])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_CANIntEnable                                                      \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_CANTABLE[10])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_CANIntDisable                                                     \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_CANTABLE[11])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_CANIntStatus                                                      \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       tCANIntStsReg eIntStsReg))ROM_CANTABLE[12])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_CANRetryGet                                                       \
+        ((bool (*)(uint32_t ui32Base))ROM_CANTABLE[13])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_CANRetrySet                                                       \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   bool bAutoRetry))ROM_CANTABLE[14])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_CANErrCntrGet                                                     \
+        ((bool (*)(uint32_t ui32Base,                                         \
+                   uint32_t *pui32RxCount,                                    \
+                   uint32_t *pui32TxCount))ROM_CANTABLE[15])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_CANBitRateSet                                                     \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       uint32_t ui32SourceClock,                              \
+                       uint32_t ui32BitRate))ROM_CANTABLE[16])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the Comparator API.
+//
+//*****************************************************************************
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ComparatorIntClear                                                \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Comp))ROM_COMPARATORTABLE[0])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ComparatorConfigure                                               \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Comp,                                         \
+                   uint32_t ui32Config))ROM_COMPARATORTABLE[1])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ComparatorRefSet                                                  \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Ref))ROM_COMPARATORTABLE[2])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ComparatorValueGet                                                \
+        ((bool (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Comp))ROM_COMPARATORTABLE[3])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ComparatorIntEnable                                               \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Comp))ROM_COMPARATORTABLE[4])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ComparatorIntDisable                                              \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Comp))ROM_COMPARATORTABLE[5])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_ComparatorIntStatus                                               \
+        ((bool (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Comp,                                         \
+                   bool bMasked))ROM_COMPARATORTABLE[6])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the CRC API.
+//
+//*****************************************************************************
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_CRCConfigSet                                                      \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32CRCConfig))ROM_CRCTABLE[0])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_CRCDataProcess                                                    \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       uint32_t *pui32DataIn,                                 \
+                       uint32_t ui32DataLength,                               \
+                       bool bPPResult))ROM_CRCTABLE[1])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_CRCDataWrite                                                      \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Data))ROM_CRCTABLE[2])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_CRCResultRead                                                     \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       bool bPPResult))ROM_CRCTABLE[3])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_CRCSeedSet                                                        \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Seed))ROM_CRCTABLE[4])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the DES API.
+//
+//*****************************************************************************
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_DESIntStatus                                                      \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       bool bMasked))ROM_DESTABLE[0])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_DESConfigSet                                                      \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Config))ROM_DESTABLE[1])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_DESDataRead                                                       \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t *pui32Dest))ROM_DESTABLE[2])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_DESDataReadNonBlocking                                            \
+        ((bool (*)(uint32_t ui32Base,                                         \
+                   uint32_t *pui32Dest))ROM_DESTABLE[3])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_DESDataProcess                                                    \
+        ((bool (*)(uint32_t ui32Base,                                         \
+                   uint32_t *pui32Src,                                        \
+                   uint32_t *pui32Dest,                                       \
+                   uint32_t ui32Length))ROM_DESTABLE[4])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_DESDataWrite                                                      \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t *pui32Src))ROM_DESTABLE[5])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_DESDataWriteNonBlocking                                           \
+        ((bool (*)(uint32_t ui32Base,                                         \
+                   uint32_t *pui32Src))ROM_DESTABLE[6])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_DESDMADisable                                                     \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Flags))ROM_DESTABLE[7])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_DESDMAEnable                                                      \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Flags))ROM_DESTABLE[8])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_DESIntClear                                                       \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_DESTABLE[9])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_DESIntDisable                                                     \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_DESTABLE[10])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_DESIntEnable                                                      \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_DESTABLE[11])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_DESIVSet                                                          \
+        ((bool (*)(uint32_t ui32Base,                                         \
+                   uint32_t *pui32IVdata))ROM_DESTABLE[12])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_DESKeySet                                                         \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t *pui32Key))ROM_DESTABLE[13])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_DESLengthSet                                                      \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Length))ROM_DESTABLE[14])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_DESReset                                                          \
+        ((void (*)(uint32_t ui32Base))ROM_DESTABLE[15])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the EEPROM API.
+//
+//*****************************************************************************
+#if defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EEPROMRead                                                        \
+        ((void (*)(uint32_t *pui32Data,                                       \
+                   uint32_t ui32Address,                                      \
+                   uint32_t ui32Count))ROM_EEPROMTABLE[0])
+#endif
+#if defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EEPROMBlockCountGet                                               \
+        ((uint32_t (*)(void))ROM_EEPROMTABLE[1])
+#endif
+#if defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EEPROMBlockHide                                                   \
+        ((void (*)(uint32_t ui32Block))ROM_EEPROMTABLE[2])
+#endif
+#if defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EEPROMBlockLock                                                   \
+        ((uint32_t (*)(uint32_t ui32Block))ROM_EEPROMTABLE[3])
+#endif
+#if defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EEPROMBlockPasswordSet                                            \
+        ((uint32_t (*)(uint32_t ui32Block,                                    \
+                       uint32_t *pui32Password,                               \
+                       uint32_t ui32Count))ROM_EEPROMTABLE[4])
+#endif
+#if defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EEPROMBlockProtectGet                                             \
+        ((uint32_t (*)(uint32_t ui32Block))ROM_EEPROMTABLE[5])
+#endif
+#if defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EEPROMBlockProtectSet                                             \
+        ((uint32_t (*)(uint32_t ui32Block,                                    \
+                       uint32_t ui32Protect))ROM_EEPROMTABLE[6])
+#endif
+#if defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EEPROMBlockUnlock                                                 \
+        ((uint32_t (*)(uint32_t ui32Block,                                    \
+                       uint32_t *pui32Password,                               \
+                       uint32_t ui32Count))ROM_EEPROMTABLE[7])
+#endif
+#if defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EEPROMIntClear                                                    \
+        ((void (*)(uint32_t ui32IntFlags))ROM_EEPROMTABLE[8])
+#endif
+#if defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EEPROMIntDisable                                                  \
+        ((void (*)(uint32_t ui32IntFlags))ROM_EEPROMTABLE[9])
+#endif
+#if defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EEPROMIntEnable                                                   \
+        ((void (*)(uint32_t ui32IntFlags))ROM_EEPROMTABLE[10])
+#endif
+#if defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EEPROMIntStatus                                                   \
+        ((uint32_t (*)(bool bMasked))ROM_EEPROMTABLE[11])
+#endif
+#if defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1)
+#define ROM_EEPROMMassErase                                                   \
+        ((uint32_t (*)(void))ROM_EEPROMTABLE[12])
+#endif
+#if defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EEPROMProgram                                                     \
+        ((uint32_t (*)(uint32_t *pui32Data,                                   \
+                       uint32_t ui32Address,                                  \
+                       uint32_t ui32Count))ROM_EEPROMTABLE[13])
+#endif
+#if defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EEPROMProgramNonBlocking                                          \
+        ((uint32_t (*)(uint32_t ui32Data,                                     \
+                       uint32_t ui32Address))ROM_EEPROMTABLE[14])
+#endif
+#if defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EEPROMSizeGet                                                     \
+        ((uint32_t (*)(void))ROM_EEPROMTABLE[15])
+#endif
+#if defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EEPROMStatusGet                                                   \
+        ((uint32_t (*)(void))ROM_EEPROMTABLE[16])
+#endif
+#if defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EEPROMInit                                                        \
+        ((uint32_t (*)(void))ROM_EEPROMTABLE[17])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the EPI API.
+//
+//*****************************************************************************
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EPIIntStatus                                                      \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       bool bMasked))ROM_EPITABLE[0])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EPIModeSet                                                        \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Mode))ROM_EPITABLE[1])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EPIDividerSet                                                     \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Divider))ROM_EPITABLE[2])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EPIConfigSDRAMSet                                                 \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Config,                                       \
+                   uint32_t ui32Refresh))ROM_EPITABLE[3])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EPIConfigGPModeSet                                                \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Config,                                       \
+                   uint32_t ui32FrameCount,                                   \
+                   uint32_t ui32MaxWait))ROM_EPITABLE[4])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EPIConfigHB8Set                                                   \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Config,                                       \
+                   uint32_t ui32MaxWait))ROM_EPITABLE[5])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EPIConfigHB16Set                                                  \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Config,                                       \
+                   uint32_t ui32MaxWait))ROM_EPITABLE[6])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EPIAddressMapSet                                                  \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Map))ROM_EPITABLE[7])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EPINonBlockingReadConfigure                                       \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Channel,                                      \
+                   uint32_t ui32DataSize,                                     \
+                   uint32_t ui32Address))ROM_EPITABLE[8])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EPINonBlockingReadStart                                           \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Channel,                                      \
+                   uint32_t ui32Count))ROM_EPITABLE[9])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EPINonBlockingReadStop                                            \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Channel))ROM_EPITABLE[10])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EPINonBlockingReadCount                                           \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       uint32_t ui32Channel))ROM_EPITABLE[11])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EPINonBlockingReadAvail                                           \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_EPITABLE[12])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EPINonBlockingReadGet32                                           \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       uint32_t ui32Count,                                    \
+                       uint32_t *pui32Buf))ROM_EPITABLE[13])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EPINonBlockingReadGet16                                           \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       uint32_t ui32Count,                                    \
+                       uint16_t *pui16Buf))ROM_EPITABLE[14])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EPINonBlockingReadGet8                                            \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       uint32_t ui32Count,                                    \
+                       uint8_t *pui8Buf))ROM_EPITABLE[15])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EPIFIFOConfig                                                     \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Config))ROM_EPITABLE[16])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EPIWriteFIFOCountGet                                              \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_EPITABLE[17])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EPIIntEnable                                                      \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_EPITABLE[18])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EPIIntDisable                                                     \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_EPITABLE[19])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EPIIntErrorStatus                                                 \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_EPITABLE[20])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EPIIntErrorClear                                                  \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32ErrFlags))ROM_EPITABLE[21])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EPIDividerCSSet                                                   \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32CS,                                           \
+                   uint32_t ui32Divider))ROM_EPITABLE[22])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EPIDMATxCount                                                     \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Count))ROM_EPITABLE[23])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EPIConfigHB8CSSet                                                 \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32CS,                                           \
+                   uint32_t ui32Config))ROM_EPITABLE[24])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EPIConfigHB16CSSet                                                \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32CS,                                           \
+                   uint32_t ui32Config))ROM_EPITABLE[25])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EPIConfigHB8TimingSet                                             \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32CS,                                           \
+                   uint32_t ui32Config))ROM_EPITABLE[26])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EPIConfigHB16TimingSet                                            \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32CS,                                           \
+                   uint32_t ui32Config))ROM_EPITABLE[27])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EPIPSRAMConfigRegSet                                              \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32CS,                                           \
+                   uint32_t ui32CR))ROM_EPITABLE[28])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EPIPSRAMConfigRegRead                                             \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32CS))ROM_EPITABLE[29])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EPIPSRAMConfigRegGetNonBlocking                                   \
+        ((bool (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32CS,                                           \
+                   uint32_t *pui32CR))ROM_EPITABLE[30])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EPIPSRAMConfigRegGet                                              \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       uint32_t ui32CS))ROM_EPITABLE[31])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the EMAC API.
+//
+//*****************************************************************************
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACIntStatus                                                     \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       bool bMasked))ROM_EMACTABLE[0])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACAddrGet                                                       \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Index,                                        \
+                   uint8_t *pui8MACAddr))ROM_EMACTABLE[1])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACAddrSet                                                       \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Index,                                        \
+                   const uint8_t *pui8MACAddr))ROM_EMACTABLE[2])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACConfigGet                                                     \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t *pui32Config,                                     \
+                   uint32_t *pui32Mode,                                       \
+                   uint32_t *pui32RxMaxFrameSize))ROM_EMACTABLE[3])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACConfigSet                                                     \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Config,                                       \
+                   uint32_t ui32ModeFlags,                                    \
+                   uint32_t ui32RxMaxFrameSize))ROM_EMACTABLE[4])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACDMAStateGet                                                   \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_EMACTABLE[5])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACFrameFilterGet                                                \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_EMACTABLE[6])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACFrameFilterSet                                                \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32FilterOpts))ROM_EMACTABLE[7])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACInit                                                          \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32SysClk,                                       \
+                   uint32_t ui32BusConfig,                                    \
+                   uint32_t ui32RxBurst,                                      \
+                   uint32_t ui32TxBurst,                                      \
+                   uint32_t ui32DescSkipSize))ROM_EMACTABLE[8])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACIntClear                                                      \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_EMACTABLE[9])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACIntDisable                                                    \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_EMACTABLE[10])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACIntEnable                                                     \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_EMACTABLE[11])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACPHYConfigSet                                                  \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Config))ROM_EMACTABLE[12])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACPHYPowerOff                                                   \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint8_t ui8PhyAddr))ROM_EMACTABLE[13])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACPHYPowerOn                                                    \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint8_t ui8PhyAddr))ROM_EMACTABLE[14])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACPHYRead                                                       \
+        ((uint16_t (*)(uint32_t ui32Base,                                     \
+                        uint8_t ui8PhyAddr,                                   \
+                       uint8_t ui8RegAddr))ROM_EMACTABLE[15])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACPHYWrite                                                      \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint8_t ui8PhyAddr,                                        \
+                   uint8_t ui8RegAddr,                                        \
+                   uint16_t ui16Data))ROM_EMACTABLE[16])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACReset                                                         \
+        ((void (*)(uint32_t ui32Base))ROM_EMACTABLE[17])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACRxDisable                                                     \
+        ((void (*)(uint32_t ui32Base))ROM_EMACTABLE[18])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACRxDMACurrentBufferGet                                         \
+        ((uint8_t * (*)(uint32_t ui32Base))ROM_EMACTABLE[19])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACRxDMACurrentDescriptorGet                                     \
+        ((tEMACDMADescriptor * (*)(uint32_t ui32Base))ROM_EMACTABLE[20])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACRxDMADescriptorListGet                                        \
+        ((tEMACDMADescriptor * (*)(uint32_t ui32Base))ROM_EMACTABLE[21])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACRxDMADescriptorListSet                                        \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   tEMACDMADescriptor *pDescriptor))ROM_EMACTABLE[22])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACRxDMAPollDemand                                               \
+        ((void (*)(uint32_t ui32Base))ROM_EMACTABLE[23])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACRxEnable                                                      \
+        ((void (*)(uint32_t ui32Base))ROM_EMACTABLE[24])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACRxWatchdogTimerSet                                            \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint8_t ui8Timeout))ROM_EMACTABLE[25])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACStatusGet                                                     \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_EMACTABLE[26])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACTxDisable                                                     \
+        ((void (*)(uint32_t ui32Base))ROM_EMACTABLE[27])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACTxDMACurrentBufferGet                                         \
+        ((uint8_t * (*)(uint32_t ui32Base))ROM_EMACTABLE[28])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACTxDMACurrentDescriptorGet                                     \
+        ((tEMACDMADescriptor * (*)(uint32_t ui32Base))ROM_EMACTABLE[29])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACTxDMADescriptorListGet                                        \
+        ((tEMACDMADescriptor * (*)(uint32_t ui32Base))ROM_EMACTABLE[30])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACTxDMADescriptorListSet                                        \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   tEMACDMADescriptor *pDescriptor))ROM_EMACTABLE[31])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACTxDMAPollDemand                                               \
+        ((void (*)(uint32_t ui32Base))ROM_EMACTABLE[32])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACTxEnable                                                      \
+        ((void (*)(uint32_t ui32Base))ROM_EMACTABLE[33])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACTxFlush                                                       \
+        ((void (*)(uint32_t ui32Base))ROM_EMACTABLE[34])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACAddrFilterGet                                                 \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       uint32_t ui32Index))ROM_EMACTABLE[35])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACAddrFilterSet                                                 \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Index,                                        \
+                   uint32_t ui32Config))ROM_EMACTABLE[36])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACHashFilterBitCalculate                                        \
+        ((uint32_t (*)(uint8_t *pui8MACAddr))ROM_EMACTABLE[37])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACHashFilterGet                                                 \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t *pui32HashHi,                                     \
+                   uint32_t *pui32HashLo))ROM_EMACTABLE[38])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACHashFilterSet                                                 \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32HashHi,                                       \
+                   uint32_t ui32HashLo))ROM_EMACTABLE[39])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACNumAddrGet                                                    \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_EMACTABLE[40])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACPHYExtendedRead                                               \
+        ((uint16_t (*)(uint32_t ui32Base,                                     \
+                       uint8_t ui8PhyAddr,                                    \
+                       uint16_t ui16RegAddr))ROM_EMACTABLE[41])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACPHYExtendedWrite                                              \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint8_t ui8PhyAddr,                                        \
+                   uint16_t ui16RegAddr,                                      \
+                   uint16_t ui16Data))ROM_EMACTABLE[42])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACPowerManagementControlGet                                     \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_EMACTABLE[43])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACPowerManagementControlSet                                     \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Flags))ROM_EMACTABLE[44])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACPowerManagementStatusGet                                      \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_EMACTABLE[45])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACRemoteWakeUpFrameFilterGet                                    \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   tEMACWakeUpFrameFilter *pFilter))ROM_EMACTABLE[46])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACRemoteWakeUpFrameFilterSet                                    \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   const tEMACWakeUpFrameFilter *pFilter))ROM_EMACTABLE[47])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACTimestampAddendSet                                            \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Seconds))ROM_EMACTABLE[48])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACTimestampConfigGet                                            \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       uint32_t *pui32SubSecondInc))ROM_EMACTABLE[49])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACTimestampConfigSet                                            \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Config,                                       \
+                   uint32_t ui32SubSecondInc))ROM_EMACTABLE[50])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACTimestampDisable                                              \
+        ((void (*)(uint32_t ui32Base))ROM_EMACTABLE[51])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACTimestampEnable                                               \
+        ((void (*)(uint32_t ui32Base))ROM_EMACTABLE[52])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACTimestampIntStatus                                            \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_EMACTABLE[53])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACTimestampPPSCommand                                           \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint8_t ui8Cmd))ROM_EMACTABLE[54])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACTimestampPPSCommandModeSet                                    \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Config))ROM_EMACTABLE[55])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACTimestampPPSPeriodSet                                         \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Period,                                       \
+                   uint32_t ui32Width))ROM_EMACTABLE[56])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACTimestampPPSSimpleModeSet                                     \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32FreqConfig))ROM_EMACTABLE[57])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACTimestampSysTimeGet                                           \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t *pui32Seconds,                                    \
+                   uint32_t *pui32SubSeconds))ROM_EMACTABLE[58])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACTimestampSysTimeSet                                           \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Seconds,                                      \
+                   uint32_t ui32SubSeconds))ROM_EMACTABLE[59])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACTimestampSysTimeUpdate                                        \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Seconds,                                      \
+                   uint32_t ui32SubSeconds,                                   \
+                   bool bInc))ROM_EMACTABLE[60])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACTimestampTargetIntDisable                                     \
+        ((void (*)(uint32_t ui32Base))ROM_EMACTABLE[61])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACTimestampTargetIntEnable                                      \
+        ((void (*)(uint32_t ui32Base))ROM_EMACTABLE[62])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACTimestampTargetSet                                            \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Seconds,                                      \
+                   uint32_t ui32Nanoseconds))ROM_EMACTABLE[63])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACVLANHashFilterBitCalculate                                    \
+        ((uint32_t (*)(uint16_t ui16Tag))ROM_EMACTABLE[64])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACVLANHashFilterGet                                             \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_EMACTABLE[65])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACVLANHashFilterSet                                             \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Hash))ROM_EMACTABLE[66])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACVLANRxConfigGet                                               \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       uint16_t *pui16Tag))ROM_EMACTABLE[67])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACVLANRxConfigSet                                               \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint16_t ui16Tag,                                          \
+                   uint32_t ui32Config))ROM_EMACTABLE[68])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACVLANTxConfigGet                                               \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       uint16_t *pui16Tag))ROM_EMACTABLE[69])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_EMACVLANTxConfigSet                                               \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint16_t ui16Tag,                                          \
+                   uint32_t ui32Config))ROM_EMACTABLE[70])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UpdateEMAC                                                        \
+        ((void (*)(uint32_t ui32Clock))ROM_EMACTABLE[71])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the Flash API.
+//
+//*****************************************************************************
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_FlashProgram                                                      \
+        ((int32_t (*)(uint32_t *pui32Data,                                    \
+                      uint32_t ui32Address,                                   \
+                      uint32_t ui32Count))ROM_FLASHTABLE[0])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_FlashErase                                                        \
+        ((int32_t (*)(uint32_t ui32Address))ROM_FLASHTABLE[3])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_FlashProtectGet                                                   \
+        ((tFlashProtection (*)(uint32_t ui32Address))ROM_FLASHTABLE[4])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_FlashProtectSet                                                   \
+        ((int32_t (*)(uint32_t ui32Address,                                   \
+                      tFlashProtection eProtect))ROM_FLASHTABLE[5])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_FlashProtectSave                                                  \
+        ((int32_t (*)(void))ROM_FLASHTABLE[6])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_FlashUserGet                                                      \
+        ((int32_t (*)(uint32_t *pui32User0,                                   \
+                      uint32_t *pui32User1))ROM_FLASHTABLE[7])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_FlashUserSet                                                      \
+        ((int32_t (*)(uint32_t ui32User0,                                     \
+                      uint32_t ui32User1))ROM_FLASHTABLE[8])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_FlashUserSave                                                     \
+        ((int32_t (*)(void))ROM_FLASHTABLE[9])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_FlashIntEnable                                                    \
+        ((void (*)(uint32_t ui32IntFlags))ROM_FLASHTABLE[10])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_FlashIntDisable                                                   \
+        ((void (*)(uint32_t ui32IntFlags))ROM_FLASHTABLE[11])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_FlashIntStatus                                                    \
+        ((uint32_t (*)(bool bMasked))ROM_FLASHTABLE[12])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_FlashIntClear                                                     \
+        ((void (*)(uint32_t ui32IntFlags))ROM_FLASHTABLE[13])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the FPU API.
+//
+//*****************************************************************************
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_FPUEnable                                                         \
+        ((void (*)(void))ROM_FPUTABLE[0])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_FPUDisable                                                        \
+        ((void (*)(void))ROM_FPUTABLE[1])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_FPUFlushToZeroModeSet                                             \
+        ((void (*)(uint32_t ui32Mode))ROM_FPUTABLE[2])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_FPUHalfPrecisionModeSet                                           \
+        ((void (*)(uint32_t ui32Mode))ROM_FPUTABLE[3])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_FPULazyStackingEnable                                             \
+        ((void (*)(void))ROM_FPUTABLE[4])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_FPUNaNModeSet                                                     \
+        ((void (*)(uint32_t ui32Mode))ROM_FPUTABLE[5])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_FPURoundingModeSet                                                \
+        ((void (*)(uint32_t ui32Mode))ROM_FPUTABLE[6])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_FPUStackingDisable                                                \
+        ((void (*)(void))ROM_FPUTABLE[7])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_FPUStackingEnable                                                 \
+        ((void (*)(void))ROM_FPUTABLE[8])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the GPIO API.
+//
+//*****************************************************************************
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_GPIOPinWrite                                                      \
+        ((void (*)(uint32_t ui32Port,                                         \
+                   uint8_t ui8Pins,                                           \
+                   uint8_t ui8Val))ROM_GPIOTABLE[0])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_GPIODirModeSet                                                    \
+        ((void (*)(uint32_t ui32Port,                                         \
+                   uint8_t ui8Pins,                                           \
+                   uint32_t ui32PinIO))ROM_GPIOTABLE[1])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_GPIODirModeGet                                                    \
+        ((uint32_t (*)(uint32_t ui32Port,                                     \
+                       uint8_t ui8Pin))ROM_GPIOTABLE[2])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_GPIOIntTypeSet                                                    \
+        ((void (*)(uint32_t ui32Port,                                         \
+                   uint8_t ui8Pins,                                           \
+                   uint32_t ui32IntType))ROM_GPIOTABLE[3])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_GPIOIntTypeGet                                                    \
+        ((uint32_t (*)(uint32_t ui32Port,                                     \
+                       uint8_t ui8Pin))ROM_GPIOTABLE[4])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2)
+#define ROM_GPIOPadConfigSet                                                  \
+        ((void (*)(uint32_t ui32Port,                                         \
+                   uint8_t ui8Pins,                                           \
+                   uint32_t ui32Strength,                                     \
+                   uint32_t ui32PadType))ROM_GPIOTABLE[5])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_GPIOPadConfigGet                                                  \
+        ((void (*)(uint32_t ui32Port,                                         \
+                   uint8_t ui8Pin,                                            \
+                   uint32_t *pui32Strength,                                   \
+                   uint32_t *pui32PadType))ROM_GPIOTABLE[6])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_GPIOPinRead                                                       \
+        ((int32_t (*)(uint32_t ui32Port,                                      \
+                      uint8_t ui8Pins))ROM_GPIOTABLE[11])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2)
+#define ROM_GPIOPinTypeCAN                                                    \
+        ((void (*)(uint32_t ui32Port,                                         \
+                   uint8_t ui8Pins))ROM_GPIOTABLE[12])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_GPIOPinTypeComparator                                             \
+        ((void (*)(uint32_t ui32Port,                                         \
+                   uint8_t ui8Pins))ROM_GPIOTABLE[13])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_GPIOPinTypeGPIOInput                                              \
+        ((void (*)(uint32_t ui32Port,                                         \
+                   uint8_t ui8Pins))ROM_GPIOTABLE[14])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_GPIOPinTypeGPIOOutput                                             \
+        ((void (*)(uint32_t ui32Port,                                         \
+                   uint8_t ui8Pins))ROM_GPIOTABLE[15])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_GPIOPinTypeI2C                                                    \
+        ((void (*)(uint32_t ui32Port,                                         \
+                   uint8_t ui8Pins))ROM_GPIOTABLE[16])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_GPIOPinTypePWM                                                    \
+        ((void (*)(uint32_t ui32Port,                                         \
+                   uint8_t ui8Pins))ROM_GPIOTABLE[17])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_GPIOPinTypeQEI                                                    \
+        ((void (*)(uint32_t ui32Port,                                         \
+                   uint8_t ui8Pins))ROM_GPIOTABLE[18])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_GPIOPinTypeSSI                                                    \
+        ((void (*)(uint32_t ui32Port,                                         \
+                   uint8_t ui8Pins))ROM_GPIOTABLE[19])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_GPIOPinTypeTimer                                                  \
+        ((void (*)(uint32_t ui32Port,                                         \
+                   uint8_t ui8Pins))ROM_GPIOTABLE[20])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_GPIOPinTypeUART                                                   \
+        ((void (*)(uint32_t ui32Port,                                         \
+                   uint8_t ui8Pins))ROM_GPIOTABLE[21])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_GPIOPinTypeGPIOOutputOD                                           \
+        ((void (*)(uint32_t ui32Port,                                         \
+                   uint8_t ui8Pins))ROM_GPIOTABLE[22])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_GPIOPinTypeADC                                                    \
+        ((void (*)(uint32_t ui32Port,                                         \
+                   uint8_t ui8Pins))ROM_GPIOTABLE[23])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_GPIOPinTypeUSBDigital                                             \
+        ((void (*)(uint32_t ui32Port,                                         \
+                   uint8_t ui8Pins))ROM_GPIOTABLE[24])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_GPIOPinConfigure                                                  \
+        ((void (*)(uint32_t ui32PinConfig))ROM_GPIOTABLE[26])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_GPIOPinTypeUSBAnalog                                              \
+        ((void (*)(uint32_t ui32Port,                                         \
+                   uint8_t ui8Pins))ROM_GPIOTABLE[28])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_GPIODMATriggerEnable                                              \
+        ((void (*)(uint32_t ui32Port,                                         \
+                   uint8_t ui8Pins))ROM_GPIOTABLE[31])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_GPIODMATriggerDisable                                             \
+        ((void (*)(uint32_t ui32Port,                                         \
+                   uint8_t ui8Pins))ROM_GPIOTABLE[32])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_GPIOADCTriggerEnable                                              \
+        ((void (*)(uint32_t ui32Port,                                         \
+                   uint8_t ui8Pins))ROM_GPIOTABLE[33])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_GPIOADCTriggerDisable                                             \
+        ((void (*)(uint32_t ui32Port,                                         \
+                   uint8_t ui8Pins))ROM_GPIOTABLE[34])
+#endif
+#if defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_GPIOPinTypeI2CSCL                                                 \
+        ((void (*)(uint32_t ui32Port,                                         \
+                   uint8_t ui8Pins))ROM_GPIOTABLE[39])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_GPIOPinTypeOneWire                                                \
+        ((void (*)(uint32_t ui32Port,                                         \
+                   uint8_t ui8Pins))ROM_GPIOTABLE[44])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_GPIOPinTypeWakeHigh                                               \
+        ((void (*)(uint32_t ui32Port,                                         \
+                   uint8_t ui8Pins))ROM_GPIOTABLE[48])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_GPIOPinTypeWakeLow                                                \
+        ((void (*)(uint32_t ui32Port,                                         \
+                   uint8_t ui8Pins))ROM_GPIOTABLE[49])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_GPIOIntClear                                                      \
+        ((void (*)(uint32_t ui32Port,                                         \
+                   uint32_t ui32IntFlags))ROM_GPIOTABLE[51])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_GPIOIntDisable                                                    \
+        ((void (*)(uint32_t ui32Port,                                         \
+                   uint32_t ui32IntFlags))ROM_GPIOTABLE[52])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_GPIOIntEnable                                                     \
+        ((void (*)(uint32_t ui32Port,                                         \
+                   uint32_t ui32IntFlags))ROM_GPIOTABLE[53])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_GPIOIntStatus                                                     \
+        ((uint32_t (*)(uint32_t ui32Port,                                     \
+                       bool bMasked))ROM_GPIOTABLE[54])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the Hibernate API.
+//
+//*****************************************************************************
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateIntClear                                                 \
+        ((void (*)(uint32_t ui32IntFlags))ROM_HIBERNATETABLE[0])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateEnableExpClk                                             \
+        ((void (*)(uint32_t ui32HibClk))ROM_HIBERNATETABLE[1])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateDisable                                                  \
+        ((void (*)(void))ROM_HIBERNATETABLE[2])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateRTCEnable                                                \
+        ((void (*)(void))ROM_HIBERNATETABLE[4])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateRTCDisable                                               \
+        ((void (*)(void))ROM_HIBERNATETABLE[5])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateWakeSet                                                  \
+        ((void (*)(uint32_t ui32WakeFlags))ROM_HIBERNATETABLE[6])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateWakeGet                                                  \
+        ((uint32_t (*)(void))ROM_HIBERNATETABLE[7])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateLowBatSet                                                \
+        ((void (*)(uint32_t ui32LowBatFlags))ROM_HIBERNATETABLE[8])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateLowBatGet                                                \
+        ((uint32_t (*)(void))ROM_HIBERNATETABLE[9])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateRTCSet                                                   \
+        ((void (*)(uint32_t ui32RTCValue))ROM_HIBERNATETABLE[10])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateRTCGet                                                   \
+        ((uint32_t (*)(void))ROM_HIBERNATETABLE[11])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateRTCTrimSet                                               \
+        ((void (*)(uint32_t ui32Trim))ROM_HIBERNATETABLE[16])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateRTCTrimGet                                               \
+        ((uint32_t (*)(void))ROM_HIBERNATETABLE[17])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateDataSet                                                  \
+        ((void (*)(uint32_t *pui32Data,                                       \
+                   uint32_t ui32Count))ROM_HIBERNATETABLE[18])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateDataGet                                                  \
+        ((void (*)(uint32_t *pui32Data,                                       \
+                   uint32_t ui32Count))ROM_HIBERNATETABLE[19])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateRequest                                                  \
+        ((void (*)(void))ROM_HIBERNATETABLE[20])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateIntEnable                                                \
+        ((void (*)(uint32_t ui32IntFlags))ROM_HIBERNATETABLE[21])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateIntDisable                                               \
+        ((void (*)(uint32_t ui32IntFlags))ROM_HIBERNATETABLE[22])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateIntStatus                                                \
+        ((uint32_t (*)(bool bMasked))ROM_HIBERNATETABLE[23])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateIsActive                                                 \
+        ((uint32_t (*)(void))ROM_HIBERNATETABLE[24])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateRTCSSGet                                                 \
+        ((uint32_t (*)(void))ROM_HIBERNATETABLE[27])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateClockConfig                                              \
+        ((void (*)(uint32_t ui32Config))ROM_HIBERNATETABLE[28])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateBatCheckStart                                            \
+        ((void (*)(void))ROM_HIBERNATETABLE[29])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateBatCheckDone                                             \
+        ((uint32_t (*)(void))ROM_HIBERNATETABLE[30])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateGPIORetentionEnable                                      \
+        ((void (*)(void))ROM_HIBERNATETABLE[31])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateGPIORetentionDisable                                     \
+        ((void (*)(void))ROM_HIBERNATETABLE[32])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateGPIORetentionGet                                         \
+        ((bool (*)(void))ROM_HIBERNATETABLE[33])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateCounterMode                                              \
+        ((void (*)(uint32_t ui32Config))ROM_HIBERNATETABLE[34])
+#endif
+#if defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateCalendarSet                                              \
+        ((void (*)(struct tm *psTime))ROM_HIBERNATETABLE[35])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateCalendarGet                                              \
+        ((int (*)(struct tm *psTime))ROM_HIBERNATETABLE[36])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateCalendarMatchSet                                         \
+        ((void (*)(uint32_t ui32Index,                                        \
+                   struct tm *psTime))ROM_HIBERNATETABLE[37])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateCalendarMatchGet                                         \
+        ((void (*)(uint32_t ui32Index,                                        \
+                   struct tm *psTime))ROM_HIBERNATETABLE[38])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateTamperDisable                                            \
+        ((void (*)(void))ROM_HIBERNATETABLE[39])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateTamperEnable                                             \
+        ((void (*)(void))ROM_HIBERNATETABLE[40])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateTamperEventsClear                                        \
+        ((void (*)(void))ROM_HIBERNATETABLE[41])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateTamperEventsConfig                                       \
+        ((void (*)(uint32_t ui32Config))ROM_HIBERNATETABLE[42])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateTamperEventsGet                                          \
+        ((bool (*)(uint32_t ui32Index,                                        \
+                   uint32_t *pui32RTC,                                        \
+                   uint32_t *pui32Event))ROM_HIBERNATETABLE[43])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateTamperExtOscValid                                        \
+        ((bool (*)(void))ROM_HIBERNATETABLE[44])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateTamperExtOscRecover                                      \
+        ((void (*)(void))ROM_HIBERNATETABLE[45])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateTamperIODisable                                          \
+        ((void (*)(uint32_t ui32Input))ROM_HIBERNATETABLE[46])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateTamperIOEnable                                           \
+        ((void (*)(uint32_t ui32Input,                                        \
+                   uint32_t ui32Config))ROM_HIBERNATETABLE[47])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateTamperStatusGet                                          \
+        ((uint32_t (*)(void))ROM_HIBERNATETABLE[48])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateRTCMatchGet                                              \
+        ((uint32_t (*)(uint32_t ui32Match))ROM_HIBERNATETABLE[49])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateRTCMatchSet                                              \
+        ((void (*)(uint32_t ui32Match,                                        \
+                   uint32_t ui32Value))ROM_HIBERNATETABLE[50])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateRTCSSMatchGet                                            \
+        ((uint32_t (*)(uint32_t ui32Match))ROM_HIBERNATETABLE[51])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_HibernateRTCSSMatchSet                                            \
+        ((void (*)(uint32_t ui32Match,                                        \
+                   uint32_t ui32Value))ROM_HIBERNATETABLE[52])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the I2C API.
+//
+//*****************************************************************************
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CMasterDataPut                                                  \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint8_t ui8Data))ROM_I2CTABLE[0])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CMasterInitExpClk                                               \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32I2CClk,                                       \
+                   bool bFast))ROM_I2CTABLE[1])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CSlaveInit                                                      \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint8_t ui8SlaveAddr))ROM_I2CTABLE[2])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CMasterEnable                                                   \
+        ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[3])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CSlaveEnable                                                    \
+        ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[4])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CMasterDisable                                                  \
+        ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[5])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CSlaveDisable                                                   \
+        ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[6])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CMasterIntEnable                                                \
+        ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[7])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CSlaveIntEnable                                                 \
+        ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[8])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CMasterIntDisable                                               \
+        ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[9])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CSlaveIntDisable                                                \
+        ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[10])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CMasterIntStatus                                                \
+        ((bool (*)(uint32_t ui32Base,                                         \
+                   bool bMasked))ROM_I2CTABLE[11])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CSlaveIntStatus                                                 \
+        ((bool (*)(uint32_t ui32Base,                                         \
+                   bool bMasked))ROM_I2CTABLE[12])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CMasterIntClear                                                 \
+        ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[13])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CSlaveIntClear                                                  \
+        ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[14])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CMasterSlaveAddrSet                                             \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint8_t ui8SlaveAddr,                                      \
+                   bool bReceive))ROM_I2CTABLE[15])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CMasterBusy                                                     \
+        ((bool (*)(uint32_t ui32Base))ROM_I2CTABLE[16])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CMasterBusBusy                                                  \
+        ((bool (*)(uint32_t ui32Base))ROM_I2CTABLE[17])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CMasterControl                                                  \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Cmd))ROM_I2CTABLE[18])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CMasterErr                                                      \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[19])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CMasterDataGet                                                  \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[20])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CSlaveStatus                                                    \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[21])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CSlaveDataPut                                                   \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint8_t ui8Data))ROM_I2CTABLE[22])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CSlaveDataGet                                                   \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[23])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UpdateI2C                                                         \
+        ((void (*)(void))ROM_I2CTABLE[24])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CSlaveIntEnableEx                                               \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_I2CTABLE[25])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CSlaveIntDisableEx                                              \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_I2CTABLE[26])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CSlaveIntStatusEx                                               \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       bool bMasked))ROM_I2CTABLE[27])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CSlaveIntClearEx                                                \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_I2CTABLE[28])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CMasterIntEnableEx                                              \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_I2CTABLE[29])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CMasterIntDisableEx                                             \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_I2CTABLE[30])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CMasterIntStatusEx                                              \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       bool bMasked))ROM_I2CTABLE[31])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CMasterIntClearEx                                               \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_I2CTABLE[32])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CMasterTimeoutSet                                               \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Value))ROM_I2CTABLE[33])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CSlaveACKOverride                                               \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   bool bEnable))ROM_I2CTABLE[34])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CSlaveACKValueSet                                               \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   bool bACK))ROM_I2CTABLE[35])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CSlaveAddressSet                                                \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint8_t ui8AddrNum,                                        \
+                   uint8_t ui8SlaveAddr))ROM_I2CTABLE[37])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CMasterLineStateGet                                             \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[38])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CTxFIFOConfigSet                                                \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Config))ROM_I2CTABLE[39])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CTxFIFOFlush                                                    \
+        ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[40])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CRxFIFOConfigSet                                                \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Config))ROM_I2CTABLE[41])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CRxFIFOFlush                                                    \
+        ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[42])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CFIFOStatus                                                     \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[43])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CFIFODataPut                                                    \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint8_t ui8Data))ROM_I2CTABLE[44])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CFIFODataPutNonBlocking                                         \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       uint8_t ui8Data))ROM_I2CTABLE[45])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CFIFODataGet                                                    \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[46])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CFIFODataGetNonBlocking                                         \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       uint8_t *pui8Data))ROM_I2CTABLE[47])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CMasterBurstLengthSet                                           \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint8_t ui8Length))ROM_I2CTABLE[48])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CMasterBurstCountGet                                            \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[49])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CSlaveFIFODisable                                               \
+        ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[50])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CSlaveFIFOEnable                                                \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Config))ROM_I2CTABLE[51])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_I2CMasterGlitchFilterConfigSet                                    \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Config))ROM_I2CTABLE[54])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the Interrupt API.
+//
+//*****************************************************************************
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_IntEnable                                                         \
+        ((void (*)(uint32_t ui32Interrupt))ROM_INTERRUPTTABLE[0])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_IntMasterEnable                                                   \
+        ((bool (*)(void))ROM_INTERRUPTTABLE[1])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_IntMasterDisable                                                  \
+        ((bool (*)(void))ROM_INTERRUPTTABLE[2])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_IntDisable                                                        \
+        ((void (*)(uint32_t ui32Interrupt))ROM_INTERRUPTTABLE[3])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_IntPriorityGroupingSet                                            \
+        ((void (*)(uint32_t ui32Bits))ROM_INTERRUPTTABLE[4])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_IntPriorityGroupingGet                                            \
+        ((uint32_t (*)(void))ROM_INTERRUPTTABLE[5])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_IntPrioritySet                                                    \
+        ((void (*)(uint32_t ui32Interrupt,                                    \
+                   uint8_t ui8Priority))ROM_INTERRUPTTABLE[6])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_IntPriorityGet                                                    \
+        ((int32_t (*)(uint32_t ui32Interrupt))ROM_INTERRUPTTABLE[7])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_IntPendSet                                                        \
+        ((void (*)(uint32_t ui32Interrupt))ROM_INTERRUPTTABLE[8])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_IntPendClear                                                      \
+        ((void (*)(uint32_t ui32Interrupt))ROM_INTERRUPTTABLE[9])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_IntPriorityMaskSet                                                \
+        ((void (*)(uint32_t ui32PriorityMask))ROM_INTERRUPTTABLE[10])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_IntPriorityMaskGet                                                \
+        ((uint32_t (*)(void))ROM_INTERRUPTTABLE[11])
+#endif
+#if defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_IntIsEnabled                                                      \
+        ((uint32_t (*)(uint32_t ui32Interrupt))ROM_INTERRUPTTABLE[12])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_IntTrigger                                                        \
+        ((void (*)(uint32_t ui32Interrupt))ROM_INTERRUPTTABLE[13])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the LCD API.
+//
+//*****************************************************************************
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_LCDIntStatus                                                      \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       bool bMasked))ROM_LCDTABLE[0])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_LCDClockReset                                                     \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Clocks))ROM_LCDTABLE[1])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_LCDDMAConfigSet                                                   \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Config))ROM_LCDTABLE[2])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_LCDIDDCommandWrite                                                \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32CS,                                           \
+                   uint16_t ui16Cmd))ROM_LCDTABLE[3])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_LCDIDDConfigSet                                                   \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Config))ROM_LCDTABLE[4])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_LCDIDDDataRead                                                    \
+        ((uint16_t (*)(uint32_t ui32Base,                                     \
+                       uint32_t ui32CS))ROM_LCDTABLE[5])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_LCDIDDDataWrite                                                   \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32CS,                                           \
+                   uint16_t ui16Data))ROM_LCDTABLE[6])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_LCDIDDDMADisable                                                  \
+        ((void (*)(uint32_t ui32Base))ROM_LCDTABLE[7])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_LCDIDDDMAWrite                                                    \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32CS,                                           \
+                   const uint32_t *pui32Data,                                 \
+                   uint32_t ui32Count))ROM_LCDTABLE[8])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_LCDIDDIndexedRead                                                 \
+        ((uint16_t (*)(uint32_t ui32Base,                                     \
+                       uint32_t ui32CS,                                       \
+                       uint16_t ui16Addr))ROM_LCDTABLE[9])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_LCDIDDIndexedWrite                                                \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32CS,                                           \
+                   uint16_t ui16Addr,                                         \
+                   uint16_t ui16Data))ROM_LCDTABLE[10])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_LCDIDDStatusRead                                                  \
+        ((uint16_t (*)(uint32_t ui32Base,                                     \
+                       uint32_t ui32CS))ROM_LCDTABLE[11])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_LCDIDDTimingSet                                                   \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32CS,                                           \
+                   const tLCDIDDTiming *pTiming))ROM_LCDTABLE[12])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_LCDIntClear                                                       \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_LCDTABLE[13])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_LCDIntDisable                                                     \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_LCDTABLE[14])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_LCDIntEnable                                                      \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_LCDTABLE[15])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_LCDModeSet                                                        \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       uint8_t ui8Mode,                                       \
+                       uint32_t ui32PixClk,                                   \
+                       uint32_t ui32SysClk))ROM_LCDTABLE[16])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_LCDRasterACBiasIntCountSet                                        \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint8_t ui8Count))ROM_LCDTABLE[17])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_LCDRasterConfigSet                                                \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Config,                                       \
+                   uint8_t ui8PalLoadDelay))ROM_LCDTABLE[18])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_LCDRasterDisable                                                  \
+        ((void (*)(uint32_t ui32Base))ROM_LCDTABLE[19])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_LCDRasterEnable                                                   \
+        ((void (*)(uint32_t ui32Base))ROM_LCDTABLE[20])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_LCDRasterFrameBufferSet                                           \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint8_t ui8Buffer,                                         \
+                   uint32_t *pui32Addr,                                       \
+                   uint32_t ui32NumBytes))ROM_LCDTABLE[21])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_LCDRasterPaletteSet                                               \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Type,                                         \
+                   uint32_t *pui32PalAddr,                                    \
+                   const uint32_t *pui32SrcColors,                            \
+                   uint32_t ui32Start,                                        \
+                   uint32_t ui32Count))ROM_LCDTABLE[22])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_LCDRasterSubPanelConfigSet                                        \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Flags,                                        \
+                   uint32_t ui32BottomLines,                                  \
+                   uint32_t ui32DefaultPixel))ROM_LCDTABLE[23])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_LCDRasterSubPanelDisable                                          \
+        ((void (*)(uint32_t ui32Base))ROM_LCDTABLE[24])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_LCDRasterSubPanelEnable                                           \
+        ((void (*)(uint32_t ui32Base))ROM_LCDTABLE[25])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_LCDRasterTimingSet                                                \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   const tLCDRasterTiming *pTiming))ROM_LCDTABLE[26])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_LCDRasterEnabled                                                  \
+        ((bool (*)(uint32_t ui32Base))ROM_LCDTABLE[27])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the MPU API.
+//
+//*****************************************************************************
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_MPUEnable                                                         \
+        ((void (*)(uint32_t ui32MPUConfig))ROM_MPUTABLE[0])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_MPUDisable                                                        \
+        ((void (*)(void))ROM_MPUTABLE[1])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_MPURegionCountGet                                                 \
+        ((uint32_t (*)(void))ROM_MPUTABLE[2])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_MPURegionEnable                                                   \
+        ((void (*)(uint32_t ui32Region))ROM_MPUTABLE[3])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_MPURegionDisable                                                  \
+        ((void (*)(uint32_t ui32Region))ROM_MPUTABLE[4])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_MPURegionSet                                                      \
+        ((void (*)(uint32_t ui32Region,                                       \
+                   uint32_t ui32Addr,                                         \
+                   uint32_t ui32Flags))ROM_MPUTABLE[5])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_MPURegionGet                                                      \
+        ((void (*)(uint32_t ui32Region,                                       \
+                   uint32_t *pui32Addr,                                       \
+                   uint32_t *pui32Flags))ROM_MPUTABLE[6])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the OneWire API.
+//
+//*****************************************************************************
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_OneWireIntStatus                                                  \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       bool bMasked))ROM_ONEWIRETABLE[0])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_OneWireBusReset                                                   \
+        ((void (*)(uint32_t ui32Base))ROM_ONEWIRETABLE[1])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_OneWireBusStatus                                                  \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_ONEWIRETABLE[2])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_OneWireDataGet                                                    \
+        ((void (*)(uint32_t u3i2Base,                                         \
+                   uint32_t *pui32Data))ROM_ONEWIRETABLE[3])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_OneWireDataGetNonBlocking                                         \
+        ((bool (*)(uint32_t ui32Base,                                         \
+                   uint32_t *pui32Data))ROM_ONEWIRETABLE[4])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_OneWireInit                                                       \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32InitFlags))ROM_ONEWIRETABLE[5])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_OneWireIntClear                                                   \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_ONEWIRETABLE[6])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_OneWireIntDisable                                                 \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_ONEWIRETABLE[7])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_OneWireIntEnable                                                  \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_ONEWIRETABLE[8])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_OneWireTransaction                                                \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32OpFlags,                                      \
+                   uint32_t ui32Data,                                         \
+                   uint32_t ui32BitCnt))ROM_ONEWIRETABLE[9])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_OneWireDMADisable                                                 \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32DMAFlags))ROM_ONEWIRETABLE[10])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_OneWireDMAEnable                                                  \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32DMAFlags))ROM_ONEWIRETABLE[11])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the PWM API.
+//
+//*****************************************************************************
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_PWMPulseWidthSet                                                  \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32PWMOut,                                       \
+                   uint32_t ui32Width))ROM_PWMTABLE[0])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_PWMGenConfigure                                                   \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Gen,                                          \
+                   uint32_t ui32Config))ROM_PWMTABLE[1])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_PWMGenPeriodSet                                                   \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Gen,                                          \
+                   uint32_t ui32Period))ROM_PWMTABLE[2])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_PWMGenPeriodGet                                                   \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       uint32_t ui32Gen))ROM_PWMTABLE[3])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_PWMGenEnable                                                      \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Gen))ROM_PWMTABLE[4])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_PWMGenDisable                                                     \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Gen))ROM_PWMTABLE[5])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_PWMPulseWidthGet                                                  \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       uint32_t ui32PWMOut))ROM_PWMTABLE[6])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_PWMDeadBandEnable                                                 \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Gen,                                          \
+                   uint16_t ui16Rise,                                         \
+                   uint16_t ui16Fall))ROM_PWMTABLE[7])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_PWMDeadBandDisable                                                \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Gen))ROM_PWMTABLE[8])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_PWMSyncUpdate                                                     \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32GenBits))ROM_PWMTABLE[9])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_PWMSyncTimeBase                                                   \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32GenBits))ROM_PWMTABLE[10])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_PWMOutputState                                                    \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32PWMOutBits,                                   \
+                   bool bEnable))ROM_PWMTABLE[11])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_PWMOutputInvert                                                   \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32PWMOutBits,                                   \
+                   bool bInvert))ROM_PWMTABLE[12])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_PWMOutputFault                                                    \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32PWMOutBits,                                   \
+                   bool bFaultSuppress))ROM_PWMTABLE[13])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_PWMGenIntTrigEnable                                               \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Gen,                                          \
+                   uint32_t ui32IntTrig))ROM_PWMTABLE[14])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_PWMGenIntTrigDisable                                              \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Gen,                                          \
+                   uint32_t ui32IntTrig))ROM_PWMTABLE[15])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_PWMGenIntStatus                                                   \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       uint32_t ui32Gen,                                      \
+                       bool bMasked))ROM_PWMTABLE[16])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_PWMGenIntClear                                                    \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Gen,                                          \
+                   uint32_t ui32Ints))ROM_PWMTABLE[17])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_PWMIntEnable                                                      \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32GenFault))ROM_PWMTABLE[18])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_PWMIntDisable                                                     \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32GenFault))ROM_PWMTABLE[19])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_PWMFaultIntClear                                                  \
+        ((void (*)(uint32_t ui32Base))ROM_PWMTABLE[20])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_PWMIntStatus                                                      \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       bool bMasked))ROM_PWMTABLE[21])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_PWMOutputFaultLevel                                               \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32PWMOutBits,                                   \
+                   bool bDriveHigh))ROM_PWMTABLE[22])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_PWMFaultIntClearExt                                               \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32FaultInts))ROM_PWMTABLE[23])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_PWMGenFaultConfigure                                              \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Gen,                                          \
+                   uint32_t ui32MinFaultPeriod,                               \
+                   uint32_t ui32FaultSenses))ROM_PWMTABLE[24])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_PWMGenFaultTriggerSet                                             \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Gen,                                          \
+                   uint32_t ui32Group,                                        \
+                   uint32_t ui32FaultTriggers))ROM_PWMTABLE[25])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_PWMGenFaultTriggerGet                                             \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       uint32_t ui32Gen,                                      \
+                       uint32_t ui32Group))ROM_PWMTABLE[26])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_PWMGenFaultStatus                                                 \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       uint32_t ui32Gen,                                      \
+                       uint32_t ui32Group))ROM_PWMTABLE[27])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_PWMGenFaultClear                                                  \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Gen,                                          \
+                   uint32_t ui32Group,                                        \
+                   uint32_t ui32FaultTriggers))ROM_PWMTABLE[28])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_PWMClockSet                                                       \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Config))ROM_PWMTABLE[29])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_PWMClockGet                                                       \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_PWMTABLE[30])
+#endif
+#if defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_PWMOutputUpdateMode                                               \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32PWMOutBits,                                   \
+                   uint32_t ui32Mode))ROM_PWMTABLE[31])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the QEI API.
+//
+//*****************************************************************************
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_QEIPositionGet                                                    \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_QEITABLE[0])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_QEIEnable                                                         \
+        ((void (*)(uint32_t ui32Base))ROM_QEITABLE[1])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_QEIDisable                                                        \
+        ((void (*)(uint32_t ui32Base))ROM_QEITABLE[2])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_QEIConfigure                                                      \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Config,                                       \
+                   uint32_t ui32MaxPosition))ROM_QEITABLE[3])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_QEIPositionSet                                                    \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Position))ROM_QEITABLE[4])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_QEIDirectionGet                                                   \
+        ((int32_t (*)(uint32_t ui32Base))ROM_QEITABLE[5])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_QEIErrorGet                                                       \
+        ((bool (*)(uint32_t ui32Base))ROM_QEITABLE[6])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_QEIVelocityEnable                                                 \
+        ((void (*)(uint32_t ui32Base))ROM_QEITABLE[7])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_QEIVelocityDisable                                                \
+        ((void (*)(uint32_t ui32Base))ROM_QEITABLE[8])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_QEIVelocityConfigure                                              \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32PreDiv,                                       \
+                   uint32_t ui32Period))ROM_QEITABLE[9])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_QEIVelocityGet                                                    \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_QEITABLE[10])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_QEIIntEnable                                                      \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_QEITABLE[11])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_QEIIntDisable                                                     \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_QEITABLE[12])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_QEIIntStatus                                                      \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       bool bMasked))ROM_QEITABLE[13])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_QEIIntClear                                                       \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_QEITABLE[14])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the SHAMD5 API.
+//
+//*****************************************************************************
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SHAMD5IntStatus                                                   \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       bool bMasked))ROM_SHAMD5TABLE[0])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SHAMD5ConfigSet                                                   \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Mode))ROM_SHAMD5TABLE[1])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SHAMD5DataProcess                                                 \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t *pui32DataSrc,                                    \
+                   uint32_t ui32DataLength,                                   \
+                   uint32_t *pui32HashResult))ROM_SHAMD5TABLE[2])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SHAMD5DataWrite                                                   \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t *pui32Src))ROM_SHAMD5TABLE[3])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SHAMD5DataWriteNonBlocking                                        \
+        ((bool (*)(uint32_t ui32Base,                                         \
+                   uint32_t *pui32Src))ROM_SHAMD5TABLE[4])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SHAMD5DMADisable                                                  \
+        ((void (*)(uint32_t ui32Base))ROM_SHAMD5TABLE[5])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SHAMD5DMAEnable                                                   \
+        ((void (*)(uint32_t ui32Base))ROM_SHAMD5TABLE[6])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SHAMD5HashLengthSet                                               \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Length))ROM_SHAMD5TABLE[7])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SHAMD5HMACKeySet                                                  \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t *pui32Src))ROM_SHAMD5TABLE[8])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SHAMD5HMACPPKeyGenerate                                           \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t *pui32Key,                                        \
+                   uint32_t *pui32PPKey))ROM_SHAMD5TABLE[9])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SHAMD5HMACPPKeySet                                                \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t *pui32Src))ROM_SHAMD5TABLE[10])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SHAMD5HMACProcess                                                 \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t *pui32DataSrc,                                    \
+                   uint32_t ui32DataLength,                                   \
+                   uint32_t *pui32HashResult))ROM_SHAMD5TABLE[11])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SHAMD5IntClear                                                    \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_SHAMD5TABLE[12])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SHAMD5IntDisable                                                  \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_SHAMD5TABLE[13])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SHAMD5IntEnable                                                   \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_SHAMD5TABLE[14])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SHAMD5Reset                                                       \
+        ((void (*)(uint32_t ui32Base))ROM_SHAMD5TABLE[15])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SHAMD5ResultRead                                                  \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t *pui32Dest))ROM_SHAMD5TABLE[16])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the SMBus API.
+//
+//*****************************************************************************
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusMasterIntProcess                                             \
+        ((tSMBusStatus (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[0])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusARPDisable                                                   \
+        ((void (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[1])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusARPEnable                                                    \
+        ((void (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[2])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusARPUDIDPacketDecode                                          \
+        ((void (*)(tSMBusUDID *pUDID,                                         \
+                   uint8_t *pui8Address,                                      \
+                   uint8_t *pui8Data))ROM_SMBUSTABLE[3])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusARPUDIDPacketEncode                                          \
+        ((void (*)(tSMBusUDID *pUDID,                                         \
+                   uint8_t ui8Address,                                        \
+                   uint8_t *pui8Data))ROM_SMBUSTABLE[4])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusMasterARPAssignAddress                                       \
+        ((tSMBusStatus (*)(tSMBus *psSMBus,                                   \
+                           uint8_t *pui8Data))ROM_SMBUSTABLE[5])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusMasterARPGetUDIDDir                                          \
+        ((tSMBusStatus (*)(tSMBus *psSMBus,                                   \
+                           uint8_t ui8TargetAddress,                          \
+                           uint8_t *pui8Data))ROM_SMBUSTABLE[6])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusMasterARPGetUDIDGen                                          \
+        ((tSMBusStatus (*)(tSMBus *psSMBus,                                   \
+                           uint8_t *pui8Data))ROM_SMBUSTABLE[7])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusMasterARPNotifyMaster                                        \
+        ((tSMBusStatus (*)(tSMBus *psSMBus,                                   \
+                           uint8_t *pui8Data))ROM_SMBUSTABLE[8])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusMasterARPPrepareToARP                                        \
+        ((tSMBusStatus (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[9])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusMasterARPResetDeviceDir                                      \
+        ((tSMBusStatus (*)(tSMBus *psSMBus,                                   \
+                           uint8_t ui8TargetAddress))ROM_SMBUSTABLE[10])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusMasterARPResetDeviceGen                                      \
+        ((tSMBusStatus (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[11])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusMasterBlockProcessCall                                       \
+        ((tSMBusStatus (*)(tSMBus *psSMBus,                                   \
+                           uint8_t ui8TargetAddress,                          \
+                           uint8_t ui8Command,                                \
+                           uint8_t *pui8TxData,                               \
+                           uint8_t ui8TxSize,                                 \
+                           uint8_t *pui8RxData))ROM_SMBUSTABLE[12])
+#endif
+#if defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusMasterBlockRead                                              \
+        ((tSMBusStatus (*)(tSMBus *psSMBus,                                   \
+                           uint8_t ui8TargetAddress,                          \
+                           uint8_t ui8Command,                                \
+                           uint8_t *pui8Data))ROM_SMBUSTABLE[13])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusMasterBlockWrite                                             \
+        ((tSMBusStatus (*)(tSMBus *psSMBus,                                   \
+                           uint8_t ui8TargetAddress,                          \
+                           uint8_t ui8Command,                                \
+                           uint8_t *pui8Data,                                 \
+                           uint8_t ui8Size))ROM_SMBUSTABLE[14])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusMasterByteReceive                                            \
+        ((tSMBusStatus (*)(tSMBus *psSMBus,                                   \
+                           uint8_t ui8TargetAddress,                          \
+                           uint8_t *pui8Data))ROM_SMBUSTABLE[15])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusMasterByteSend                                               \
+        ((tSMBusStatus (*)(tSMBus *psSMBus,                                   \
+                           uint8_t ui8TargetAddress,                          \
+                           uint8_t ui8Data))ROM_SMBUSTABLE[16])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusMasterByteWordRead                                           \
+        ((tSMBusStatus (*)(tSMBus *psSMBus,                                   \
+                           uint8_t ui8TargetAddress,                          \
+                           uint8_t ui8Command,                                \
+                           uint8_t *pui8Data,                                 \
+                           uint8_t ui8Size))ROM_SMBUSTABLE[17])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusMasterByteWordWrite                                          \
+        ((tSMBusStatus (*)(tSMBus *psSMBus,                                   \
+                           uint8_t ui8TargetAddress,                          \
+                           uint8_t ui8Command,                                \
+                           uint8_t *pui8Data,                                 \
+                           uint8_t ui8Size))ROM_SMBUSTABLE[18])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusMasterHostNotify                                             \
+        ((tSMBusStatus (*)(tSMBus *psSMBus,                                   \
+                           uint8_t ui8OwnSlaveAddress,                        \
+                           uint8_t *pui8Data))ROM_SMBUSTABLE[19])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusMasterI2CRead                                                \
+        ((tSMBusStatus (*)(tSMBus *psSMBus,                                   \
+                           uint8_t ui8TargetAddress,                          \
+                           uint8_t *pui8Data,                                 \
+                           uint8_t ui8Size))ROM_SMBUSTABLE[20])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusMasterI2CWrite                                               \
+        ((tSMBusStatus (*)(tSMBus *psSMBus,                                   \
+                           uint8_t ui8TargetAddress,                          \
+                           uint8_t *pui8Data,                                 \
+                           uint8_t ui8Size))ROM_SMBUSTABLE[21])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusMasterI2CWriteRead                                           \
+        ((tSMBusStatus (*)(tSMBus *psSMBus,                                   \
+                           uint8_t ui8TargetAddress,                          \
+                           uint8_t *pui8TxData,                               \
+                           uint8_t ui8TxSize,                                 \
+                           uint8_t *pui8RxData,                               \
+                           uint8_t ui8RxSize))ROM_SMBUSTABLE[22])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusMasterInit                                                   \
+        ((void (*)(tSMBus *psSMBus,                                           \
+                   uint32_t ui32I2CBase,                                      \
+                   uint32_t ui32SMBusClock))ROM_SMBUSTABLE[23])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusMasterIntEnable                                              \
+        ((void (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[24])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusMasterProcessCall                                            \
+        ((tSMBusStatus (*)(tSMBus *psSMBus,                                   \
+                           uint8_t ui8TargetAddress,                          \
+                           uint8_t ui8Command,                                \
+                           uint8_t *pui8TxData,                               \
+                           uint8_t *pui8RxData))ROM_SMBUSTABLE[25])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusMasterQuickCommand                                           \
+        ((tSMBusStatus (*)(tSMBus *psSMBus,                                   \
+                           uint8_t ui8TargetAddress,                          \
+                           bool bData))ROM_SMBUSTABLE[26])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusPECDisable                                                   \
+        ((void (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[27])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusPECEnable                                                    \
+        ((void (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[28])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusRxPacketSizeGet                                              \
+        ((uint8_t (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[29])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusSlaveACKSend                                                 \
+        ((void (*)(tSMBus *psSMBus,                                           \
+                   bool bACK))ROM_SMBUSTABLE[30])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusSlaveAddressSet                                              \
+        ((void (*)(tSMBus *psSMBus,                                           \
+                   uint8_t ui8AddressNum,                                     \
+                   uint8_t ui8SlaveAddress))ROM_SMBUSTABLE[31])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusSlaveARPFlagARGet                                            \
+        ((bool (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[32])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusSlaveARPFlagARSet                                            \
+        ((void (*)(tSMBus *psSMBus,                                           \
+                   bool bValue))ROM_SMBUSTABLE[33])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusSlaveARPFlagAVGet                                            \
+        ((bool (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[34])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusSlaveARPFlagAVSet                                            \
+        ((void (*)(tSMBus *psSMBus,                                           \
+                   bool bValue))ROM_SMBUSTABLE[35])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusSlaveBlockTransferDisable                                    \
+        ((void (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[36])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusSlaveBlockTransferEnable                                     \
+        ((void (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[37])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusSlaveCommandGet                                              \
+        ((uint8_t (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[38])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusSlaveI2CDisable                                              \
+        ((void (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[39])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusSlaveI2CEnable                                               \
+        ((void (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[40])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusSlaveInit                                                    \
+        ((void (*)(tSMBus *psSMBus,                                           \
+                   uint32_t ui32I2CBase))ROM_SMBUSTABLE[41])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusSlaveIntAddressGet                                           \
+        ((tSMBusStatus (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[42])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusSlaveIntEnable                                               \
+        ((void (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[43])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusSlaveIntProcess                                              \
+        ((tSMBusStatus (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[44])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusSlaveManualACKDisable                                        \
+        ((void (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[45])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusSlaveManualACKEnable                                         \
+        ((void (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[46])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusSlaveManualACKStatusGet                                      \
+        ((bool (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[47])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusSlaveProcessCallDisable                                      \
+        ((void (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[48])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusSlaveProcessCallEnable                                       \
+        ((void (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[49])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusSlaveRxBufferSet                                             \
+        ((void (*)(tSMBus *psSMBus,                                           \
+                   uint8_t *pui8Data,                                         \
+                   uint8_t ui8Size))ROM_SMBUSTABLE[50])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusSlaveTransferInit                                            \
+        ((void (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[51])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusSlaveTxBufferSet                                             \
+        ((void (*)(tSMBus *psSMBus,                                           \
+                   uint8_t *pui8Data,                                         \
+                   uint8_t ui8Size))ROM_SMBUSTABLE[52])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusSlaveUDIDSet                                                 \
+        ((void (*)(tSMBus *psSMBus,                                           \
+                   tSMBusUDID *pUDID))ROM_SMBUSTABLE[53])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusStatusGet                                                    \
+        ((tSMBusStatus (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[54])
+#endif
+#if defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusSlaveDataSend                                                \
+        ((tSMBusStatus (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[55])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusFIFOEnable                                                   \
+        ((void (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[56])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusFIFODisable                                                  \
+        ((void (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[57])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusDMAEnable                                                    \
+        ((void (*)(tSMBus *psSMBus,                                           \
+                   uint8_t ui8TxChannel,                                      \
+                   uint8_t ui8RxChannel))ROM_SMBUSTABLE[58])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SMBusDMADisable                                                   \
+        ((void (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[59])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the SPIFlash API.
+//
+//*****************************************************************************
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SPIFlashIntHandler                                                \
+        ((uint32_t (*)(tSPIFlashState *pState))ROM_SPIFLASHTABLE[0])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SPIFlashInit                                                      \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Clock,                                        \
+                   uint32_t ui32BitRate))ROM_SPIFLASHTABLE[1])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SPIFlashWriteStatus                                               \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint8_t ui8Status))ROM_SPIFLASHTABLE[2])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SPIFlashPageProgram                                               \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Addr,                                         \
+                   const uint8_t *pui8Data,                                   \
+                   uint32_t ui32Count))ROM_SPIFLASHTABLE[3])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SPIFlashPageProgramNonBlocking                                    \
+        ((void (*)(tSPIFlashState *pState,                                    \
+                   uint32_t ui32Base,                                         \
+                   uint32_t ui32Addr,                                         \
+                   const uint8_t *pui8Data,                                   \
+                   uint32_t ui32Count,                                        \
+                   bool bUseDMA,                                              \
+                   uint32_t ui32TxChannel))ROM_SPIFLASHTABLE[4])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SPIFlashRead                                                      \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Addr,                                         \
+                   uint8_t *pui8Data,                                         \
+                   uint32_t ui32Count))ROM_SPIFLASHTABLE[5])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SPIFlashReadNonBlocking                                           \
+        ((void (*)(tSPIFlashState *pState,                                    \
+                   uint32_t ui32Base,                                         \
+                   uint32_t ui32Addr,                                         \
+                   uint8_t *pui8Data,                                         \
+                   uint32_t ui32Count,                                        \
+                   bool bUseDMA,                                              \
+                   uint32_t ui32TxChannel,                                    \
+                   uint32_t ui32RxChannel))ROM_SPIFLASHTABLE[6])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SPIFlashWriteDisable                                              \
+        ((void (*)(uint32_t ui32Base))ROM_SPIFLASHTABLE[7])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SPIFlashReadStatus                                                \
+        ((uint8_t (*)(uint32_t ui32Base))ROM_SPIFLASHTABLE[8])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SPIFlashWriteEnable                                               \
+        ((void (*)(uint32_t ui32Base))ROM_SPIFLASHTABLE[9])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SPIFlashFastRead                                                  \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Addr,                                         \
+                   uint8_t *pui8Data,                                         \
+                   uint32_t ui32Count))ROM_SPIFLASHTABLE[10])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SPIFlashFastReadNonBlocking                                       \
+        ((void (*)(tSPIFlashState *pState,                                    \
+                   uint32_t ui32Base,                                         \
+                   uint32_t ui32Addr,                                         \
+                   uint8_t *pui8Data,                                         \
+                   uint32_t ui32Count,                                        \
+                   bool bUseDMA,                                              \
+                   uint32_t ui32TxChannel,                                    \
+                   uint32_t ui32RxChannel))ROM_SPIFLASHTABLE[11])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SPIFlashSectorErase                                               \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Addr))ROM_SPIFLASHTABLE[12])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SPIFlashDualRead                                                  \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Addr,                                         \
+                   uint8_t *pui8Data,                                         \
+                   uint32_t ui32Count))ROM_SPIFLASHTABLE[13])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SPIFlashDualReadNonBlocking                                       \
+        ((void (*)(tSPIFlashState *pState,                                    \
+                   uint32_t ui32Base,                                         \
+                   uint32_t ui32Addr,                                         \
+                   uint8_t *pui8Data,                                         \
+                   uint32_t ui32Count,                                        \
+                   bool bUseDMA,                                              \
+                   uint32_t ui32TxChannel,                                    \
+                   uint32_t ui32RxChannel))ROM_SPIFLASHTABLE[14])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SPIFlashBlockErase32                                              \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Addr))ROM_SPIFLASHTABLE[15])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SPIFlashQuadRead                                                  \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Addr,                                         \
+                   uint8_t *pui8Data,                                         \
+                   uint32_t ui32Count))ROM_SPIFLASHTABLE[16])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SPIFlashQuadReadNonBlocking                                       \
+        ((void (*)(tSPIFlashState *pState,                                    \
+                   uint32_t ui32Base,                                         \
+                   uint32_t ui32Addr,                                         \
+                   uint8_t *pui8Data,                                         \
+                   uint32_t ui32Count,                                        \
+                   bool bUseDMA,                                              \
+                   uint32_t ui32TxChannel,                                    \
+                   uint32_t ui32RxChannel))ROM_SPIFLASHTABLE[17])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SPIFlashReadID                                                    \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint8_t *pui8ManufacturerID,                               \
+                   uint16_t *pui16DeviceID))ROM_SPIFLASHTABLE[18])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SPIFlashChipErase                                                 \
+        ((void (*)(uint32_t ui32Base))ROM_SPIFLASHTABLE[19])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SPIFlashBlockErase64                                              \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Addr))ROM_SPIFLASHTABLE[20])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the SSI API.
+//
+//*****************************************************************************
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SSIDataPut                                                        \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Data))ROM_SSITABLE[0])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SSIConfigSetExpClk                                                \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32SSIClk,                                       \
+                   uint32_t ui32Protocol,                                     \
+                   uint32_t ui32Mode,                                         \
+                   uint32_t ui32BitRate,                                      \
+                   uint32_t ui32DataWidth))ROM_SSITABLE[1])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SSIEnable                                                         \
+        ((void (*)(uint32_t ui32Base))ROM_SSITABLE[2])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SSIDisable                                                        \
+        ((void (*)(uint32_t ui32Base))ROM_SSITABLE[3])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SSIIntEnable                                                      \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_SSITABLE[4])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SSIIntDisable                                                     \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_SSITABLE[5])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SSIIntStatus                                                      \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       bool bMasked))ROM_SSITABLE[6])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SSIIntClear                                                       \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_SSITABLE[7])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SSIDataPutNonBlocking                                             \
+        ((int32_t (*)(uint32_t ui32Base,                                      \
+                      uint32_t ui32Data))ROM_SSITABLE[8])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SSIDataGet                                                        \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t *pui32Data))ROM_SSITABLE[9])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SSIDataGetNonBlocking                                             \
+        ((int32_t (*)(uint32_t ui32Base,                                      \
+                      uint32_t *pui32Data))ROM_SSITABLE[10])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UpdateSSI                                                         \
+        ((void (*)(void))ROM_SSITABLE[11])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SSIDMAEnable                                                      \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32DMAFlags))ROM_SSITABLE[12])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SSIDMADisable                                                     \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32DMAFlags))ROM_SSITABLE[13])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SSIBusy                                                           \
+        ((bool (*)(uint32_t ui32Base))ROM_SSITABLE[14])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SSIClockSourceGet                                                 \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_SSITABLE[15])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SSIClockSourceSet                                                 \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Source))ROM_SSITABLE[16])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SSIAdvModeSet                                                     \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Mode))ROM_SSITABLE[17])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SSIAdvDataPutFrameEnd                                             \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Data))ROM_SSITABLE[18])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SSIAdvDataPutFrameEndNonBlocking                                  \
+        ((int32_t (*)(uint32_t ui32Base,                                      \
+                      uint32_t ui32Data))ROM_SSITABLE[19])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SSIAdvFrameHoldEnable                                             \
+        ((void (*)(uint32_t ui32Base))ROM_SSITABLE[20])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SSIAdvFrameHoldDisable                                            \
+        ((void (*)(uint32_t ui32Base))ROM_SSITABLE[21])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the SysCtl API.
+//
+//*****************************************************************************
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysCtlSleep                                                       \
+        ((void (*)(void))ROM_SYSCTLTABLE[0])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysCtlSRAMSizeGet                                                 \
+        ((uint32_t (*)(void))ROM_SYSCTLTABLE[1])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysCtlFlashSizeGet                                                \
+        ((uint32_t (*)(void))ROM_SYSCTLTABLE[2])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysCtlPeripheralPresent                                           \
+        ((bool (*)(uint32_t ui32Peripheral))ROM_SYSCTLTABLE[4])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysCtlPeripheralReset                                             \
+        ((void (*)(uint32_t ui32Peripheral))ROM_SYSCTLTABLE[5])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysCtlPeripheralEnable                                            \
+        ((void (*)(uint32_t ui32Peripheral))ROM_SYSCTLTABLE[6])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysCtlPeripheralDisable                                           \
+        ((void (*)(uint32_t ui32Peripheral))ROM_SYSCTLTABLE[7])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysCtlPeripheralSleepEnable                                       \
+        ((void (*)(uint32_t ui32Peripheral))ROM_SYSCTLTABLE[8])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysCtlPeripheralSleepDisable                                      \
+        ((void (*)(uint32_t ui32Peripheral))ROM_SYSCTLTABLE[9])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysCtlPeripheralDeepSleepEnable                                   \
+        ((void (*)(uint32_t ui32Peripheral))ROM_SYSCTLTABLE[10])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysCtlPeripheralDeepSleepDisable                                  \
+        ((void (*)(uint32_t ui32Peripheral))ROM_SYSCTLTABLE[11])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysCtlPeripheralClockGating                                       \
+        ((void (*)(bool bEnable))ROM_SYSCTLTABLE[12])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysCtlIntEnable                                                   \
+        ((void (*)(uint32_t ui32Ints))ROM_SYSCTLTABLE[13])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysCtlIntDisable                                                  \
+        ((void (*)(uint32_t ui32Ints))ROM_SYSCTLTABLE[14])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysCtlIntClear                                                    \
+        ((void (*)(uint32_t ui32Ints))ROM_SYSCTLTABLE[15])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysCtlIntStatus                                                   \
+        ((uint32_t (*)(bool bMasked))ROM_SYSCTLTABLE[16])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysCtlReset                                                       \
+        ((void (*)(void))ROM_SYSCTLTABLE[19])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysCtlDeepSleep                                                   \
+        ((void (*)(void))ROM_SYSCTLTABLE[20])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysCtlResetCauseGet                                               \
+        ((uint32_t (*)(void))ROM_SYSCTLTABLE[21])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysCtlResetCauseClear                                             \
+        ((void (*)(uint32_t ui32Causes))ROM_SYSCTLTABLE[22])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2)
+#define ROM_SysCtlClockSet                                                    \
+        ((void (*)(uint32_t ui32Config))ROM_SYSCTLTABLE[23])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2)
+#define ROM_SysCtlClockGet                                                    \
+        ((uint32_t (*)(void))ROM_SYSCTLTABLE[24])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2)
+#define ROM_SysCtlPWMClockSet                                                 \
+        ((void (*)(uint32_t ui32Config))ROM_SYSCTLTABLE[25])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2)
+#define ROM_SysCtlPWMClockGet                                                 \
+        ((uint32_t (*)(void))ROM_SYSCTLTABLE[26])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2)
+#define ROM_SysCtlUSBPLLEnable                                                \
+        ((void (*)(void))ROM_SYSCTLTABLE[31])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2)
+#define ROM_SysCtlUSBPLLDisable                                               \
+        ((void (*)(void))ROM_SYSCTLTABLE[32])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysCtlDelay                                                       \
+        ((void (*)(uint32_t ui32Count))ROM_SYSCTLTABLE[34])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysCtlPeripheralReady                                             \
+        ((bool (*)(uint32_t ui32Peripheral))ROM_SYSCTLTABLE[35])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysCtlPeripheralPowerOn                                           \
+        ((void (*)(uint32_t ui32Peripheral))ROM_SYSCTLTABLE[36])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysCtlPeripheralPowerOff                                          \
+        ((void (*)(uint32_t ui32Peripheral))ROM_SYSCTLTABLE[37])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysCtlMOSCConfigSet                                               \
+        ((void (*)(uint32_t ui32Config))ROM_SYSCTLTABLE[44])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysCtlPIOSCCalibrate                                              \
+        ((uint32_t (*)(uint32_t ui32Type))ROM_SYSCTLTABLE[45])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2)
+#define ROM_SysCtlDeepSleepClockSet                                           \
+        ((void (*)(uint32_t ui32Config))ROM_SYSCTLTABLE[46])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysCtlDeepSleepClockConfigSet                                     \
+        ((void (*)(uint32_t ui32Div,                                          \
+                   uint32_t ui32Config))ROM_SYSCTLTABLE[47])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysCtlResetBehaviorSet                                            \
+        ((void (*)(uint32_t ui32Behavior))ROM_SYSCTLTABLE[51])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysCtlResetBehaviorGet                                            \
+        ((uint32_t (*)(void))ROM_SYSCTLTABLE[52])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysCtlFlashSectorSizeGet                                          \
+        ((uint32_t (*)(void))ROM_SYSCTLTABLE[54])
+#endif
+#if defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysCtlVoltageEventConfig                                          \
+        ((void (*)(uint32_t ui32Config))ROM_SYSCTLTABLE[55])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysCtlVoltageEventStatus                                          \
+        ((uint32_t (*)(void))ROM_SYSCTLTABLE[56])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysCtlVoltageEventClear                                           \
+        ((void (*)(uint32_t ui32Status))ROM_SYSCTLTABLE[57])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysCtlNMIStatus                                                   \
+        ((uint32_t (*)(void))ROM_SYSCTLTABLE[58])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysCtlNMIClear                                                    \
+        ((void (*)(uint32_t ui32Status))ROM_SYSCTLTABLE[59])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysCtlClockOutConfig                                              \
+        ((void (*)(uint32_t ui32Config,                                       \
+                   uint32_t ui32Div))ROM_SYSCTLTABLE[60])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysCtlAltClkConfig                                                \
+        ((void (*)(uint32_t ui32Config))ROM_SYSCTLTABLE[61])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the SysExc API.
+//
+//*****************************************************************************
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysExcIntStatus                                                   \
+        ((uint32_t (*)(bool bMasked))ROM_SYSEXCTABLE[0])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysExcIntClear                                                    \
+        ((void (*)(uint32_t ui32IntFlags))ROM_SYSEXCTABLE[1])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysExcIntDisable                                                  \
+        ((void (*)(uint32_t ui32IntFlags))ROM_SYSEXCTABLE[2])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysExcIntEnable                                                   \
+        ((void (*)(uint32_t ui32IntFlags))ROM_SYSEXCTABLE[3])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the SysTick API.
+//
+//*****************************************************************************
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysTickValueGet                                                   \
+        ((uint32_t (*)(void))ROM_SYSTICKTABLE[0])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysTickEnable                                                     \
+        ((void (*)(void))ROM_SYSTICKTABLE[1])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysTickDisable                                                    \
+        ((void (*)(void))ROM_SYSTICKTABLE[2])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysTickIntEnable                                                  \
+        ((void (*)(void))ROM_SYSTICKTABLE[3])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysTickIntDisable                                                 \
+        ((void (*)(void))ROM_SYSTICKTABLE[4])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysTickPeriodSet                                                  \
+        ((void (*)(uint32_t ui32Period))ROM_SYSTICKTABLE[5])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_SysTickPeriodGet                                                  \
+        ((uint32_t (*)(void))ROM_SYSTICKTABLE[6])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the Timer API.
+//
+//*****************************************************************************
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_TimerIntClear                                                     \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_TIMERTABLE[0])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_TimerEnable                                                       \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Timer))ROM_TIMERTABLE[1])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_TimerDisable                                                      \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Timer))ROM_TIMERTABLE[2])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_TimerConfigure                                                    \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Config))ROM_TIMERTABLE[3])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_TimerControlLevel                                                 \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Timer,                                        \
+                   bool bInvert))ROM_TIMERTABLE[4])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1)
+#define ROM_TimerControlTrigger                                               \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Timer,                                        \
+                   bool bEnable))ROM_TIMERTABLE[5])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_TimerControlEvent                                                 \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Timer,                                        \
+                   uint32_t ui32Event))ROM_TIMERTABLE[6])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_TimerControlStall                                                 \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Timer,                                        \
+                   bool bStall))ROM_TIMERTABLE[7])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_TimerRTCEnable                                                    \
+        ((void (*)(uint32_t ui32Base))ROM_TIMERTABLE[8])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_TimerRTCDisable                                                   \
+        ((void (*)(uint32_t ui32Base))ROM_TIMERTABLE[9])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_TimerPrescaleSet                                                  \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Timer,                                        \
+                   uint32_t ui32Value))ROM_TIMERTABLE[10])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_TimerPrescaleGet                                                  \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       uint32_t ui32Timer))ROM_TIMERTABLE[11])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_TimerPrescaleMatchSet                                             \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Timer,                                        \
+                   uint32_t ui32Value))ROM_TIMERTABLE[12])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_TimerPrescaleMatchGet                                             \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       uint32_t ui32Timer))ROM_TIMERTABLE[13])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_TimerLoadSet                                                      \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Timer,                                        \
+                   uint32_t ui32Value))ROM_TIMERTABLE[14])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_TimerLoadGet                                                      \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       uint32_t ui32Timer))ROM_TIMERTABLE[15])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_TimerValueGet                                                     \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       uint32_t ui32Timer))ROM_TIMERTABLE[16])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_TimerMatchSet                                                     \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Timer,                                        \
+                   uint32_t ui32Value))ROM_TIMERTABLE[17])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_TimerMatchGet                                                     \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       uint32_t ui32Timer))ROM_TIMERTABLE[18])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_TimerIntEnable                                                    \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_TIMERTABLE[19])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_TimerIntDisable                                                   \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_TIMERTABLE[20])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_TimerIntStatus                                                    \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       bool bMasked))ROM_TIMERTABLE[21])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_TimerControlWaitOnTrigger                                         \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Timer,                                        \
+                   bool bWait))ROM_TIMERTABLE[22])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2)
+#define ROM_TimerLoadSet64                                                    \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint64_t ui64Value))ROM_TIMERTABLE[23])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2)
+#define ROM_TimerLoadGet64                                                    \
+        ((uint64_t (*)(uint32_t ui32Base))ROM_TIMERTABLE[24])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2)
+#define ROM_TimerValueGet64                                                   \
+        ((uint64_t (*)(uint32_t ui32Base))ROM_TIMERTABLE[25])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2)
+#define ROM_TimerMatchSet64                                                   \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint64_t ui64Value))ROM_TIMERTABLE[26])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2)
+#define ROM_TimerMatchGet64                                                   \
+        ((uint64_t (*)(uint32_t ui32Base))ROM_TIMERTABLE[27])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_TimerClockSourceGet                                               \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_TIMERTABLE[28])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_TimerClockSourceSet                                               \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Source))ROM_TIMERTABLE[29])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_TimerADCEventGet                                                  \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_TIMERTABLE[30])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_TimerADCEventSet                                                  \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32ADCEvent))ROM_TIMERTABLE[31])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_TimerDMAEventGet                                                  \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_TIMERTABLE[32])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_TimerDMAEventSet                                                  \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32DMAEvent))ROM_TIMERTABLE[33])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_TimerSynchronize                                                  \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Timers))ROM_TIMERTABLE[34])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the UART API.
+//
+//*****************************************************************************
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTCharPut                                                       \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   unsigned char ucData))ROM_UARTTABLE[0])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTParityModeSet                                                 \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Parity))ROM_UARTTABLE[1])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTParityModeGet                                                 \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_UARTTABLE[2])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTFIFOLevelSet                                                  \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32TxLevel,                                      \
+                   uint32_t ui32RxLevel))ROM_UARTTABLE[3])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTFIFOLevelGet                                                  \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t *pui32TxLevel,                                    \
+                   uint32_t *pui32RxLevel))ROM_UARTTABLE[4])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTConfigSetExpClk                                               \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32UARTClk,                                      \
+                   uint32_t ui32Baud,                                         \
+                   uint32_t ui32Config))ROM_UARTTABLE[5])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTConfigGetExpClk                                               \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32UARTClk,                                      \
+                   uint32_t *pui32Baud,                                       \
+                   uint32_t *pui32Config))ROM_UARTTABLE[6])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTEnable                                                        \
+        ((void (*)(uint32_t ui32Base))ROM_UARTTABLE[7])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTDisable                                                       \
+        ((void (*)(uint32_t ui32Base))ROM_UARTTABLE[8])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTEnableSIR                                                     \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   bool bLowPower))ROM_UARTTABLE[9])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTDisableSIR                                                    \
+        ((void (*)(uint32_t ui32Base))ROM_UARTTABLE[10])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTCharsAvail                                                    \
+        ((bool (*)(uint32_t ui32Base))ROM_UARTTABLE[11])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTSpaceAvail                                                    \
+        ((bool (*)(uint32_t ui32Base))ROM_UARTTABLE[12])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTCharGetNonBlocking                                            \
+        ((int32_t (*)(uint32_t ui32Base))ROM_UARTTABLE[13])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTCharGet                                                       \
+        ((int32_t (*)(uint32_t ui32Base))ROM_UARTTABLE[14])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTCharPutNonBlocking                                            \
+        ((bool (*)(uint32_t ui32Base,                                         \
+                   unsigned char ucData))ROM_UARTTABLE[15])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTBreakCtl                                                      \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   bool bBreakState))ROM_UARTTABLE[16])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTIntEnable                                                     \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_UARTTABLE[17])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTIntDisable                                                    \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_UARTTABLE[18])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTIntStatus                                                     \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       bool bMasked))ROM_UARTTABLE[19])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTIntClear                                                      \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_UARTTABLE[20])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UpdateUART                                                        \
+        ((void (*)(void))ROM_UARTTABLE[21])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTDMAEnable                                                     \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32DMAFlags))ROM_UARTTABLE[22])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTDMADisable                                                    \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32DMAFlags))ROM_UARTTABLE[23])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTFIFOEnable                                                    \
+        ((void (*)(uint32_t ui32Base))ROM_UARTTABLE[24])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTFIFODisable                                                   \
+        ((void (*)(uint32_t ui32Base))ROM_UARTTABLE[25])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTBusy                                                          \
+        ((bool (*)(uint32_t ui32Base))ROM_UARTTABLE[26])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTTxIntModeSet                                                  \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Mode))ROM_UARTTABLE[27])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTTxIntModeGet                                                  \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_UARTTABLE[28])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTRxErrorGet                                                    \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_UARTTABLE[29])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTRxErrorClear                                                  \
+        ((void (*)(uint32_t ui32Base))ROM_UARTTABLE[30])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTClockSourceSet                                                \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Source))ROM_UARTTABLE[31])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTClockSourceGet                                                \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_UARTTABLE[32])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UART9BitEnable                                                    \
+        ((void (*)(uint32_t ui32Base))ROM_UARTTABLE[33])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UART9BitDisable                                                   \
+        ((void (*)(uint32_t ui32Base))ROM_UARTTABLE[34])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UART9BitAddrSet                                                   \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint8_t ui8Addr,                                           \
+                   uint8_t ui8Mask))ROM_UARTTABLE[35])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UART9BitAddrSend                                                  \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint8_t ui8Addr))ROM_UARTTABLE[36])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTSmartCardDisable                                              \
+        ((void (*)(uint32_t ui32Base))ROM_UARTTABLE[37])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTSmartCardEnable                                               \
+        ((void (*)(uint32_t ui32Base))ROM_UARTTABLE[38])
+#endif
+#if defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTModemControlClear                                             \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Control))ROM_UARTTABLE[39])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTModemControlGet                                               \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_UARTTABLE[40])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTModemControlSet                                               \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Control))ROM_UARTTABLE[41])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTModemStatusGet                                                \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_UARTTABLE[42])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTFlowControlGet                                                \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_UARTTABLE[43])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UARTFlowControlSet                                                \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Mode))ROM_UARTTABLE[44])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the uDMA API.
+//
+//*****************************************************************************
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_uDMAChannelTransferSet                                            \
+        ((void (*)(uint32_t ui32ChannelStructIndex,                           \
+                   uint32_t ui32Mode,                                         \
+                   void *pvSrcAddr,                                           \
+                   void *pvDstAddr,                                           \
+                   uint32_t ui32TransferSize))ROM_UDMATABLE[0])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_uDMAEnable                                                        \
+        ((void (*)(void))ROM_UDMATABLE[1])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_uDMADisable                                                       \
+        ((void (*)(void))ROM_UDMATABLE[2])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_uDMAErrorStatusGet                                                \
+        ((uint32_t (*)(void))ROM_UDMATABLE[3])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_uDMAErrorStatusClear                                              \
+        ((void (*)(void))ROM_UDMATABLE[4])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_uDMAChannelEnable                                                 \
+        ((void (*)(uint32_t ui32ChannelNum))ROM_UDMATABLE[5])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_uDMAChannelDisable                                                \
+        ((void (*)(uint32_t ui32ChannelNum))ROM_UDMATABLE[6])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_uDMAChannelIsEnabled                                              \
+        ((bool (*)(uint32_t ui32ChannelNum))ROM_UDMATABLE[7])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_uDMAControlBaseSet                                                \
+        ((void (*)(void *pControlTable))ROM_UDMATABLE[8])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_uDMAControlBaseGet                                                \
+        ((void * (*)(void))ROM_UDMATABLE[9])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_uDMAChannelRequest                                                \
+        ((void (*)(uint32_t ui32ChannelNum))ROM_UDMATABLE[10])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_uDMAChannelAttributeEnable                                        \
+        ((void (*)(uint32_t ui32ChannelNum,                                   \
+                   uint32_t ui32Attr))ROM_UDMATABLE[11])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_uDMAChannelAttributeDisable                                       \
+        ((void (*)(uint32_t ui32ChannelNum,                                   \
+                   uint32_t ui32Attr))ROM_UDMATABLE[12])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_uDMAChannelAttributeGet                                           \
+        ((uint32_t (*)(uint32_t ui32ChannelNum))ROM_UDMATABLE[13])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_uDMAChannelControlSet                                             \
+        ((void (*)(uint32_t ui32ChannelStructIndex,                           \
+                   uint32_t ui32Control))ROM_UDMATABLE[14])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_uDMAChannelSizeGet                                                \
+        ((uint32_t (*)(uint32_t ui32ChannelStructIndex))ROM_UDMATABLE[15])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_uDMAChannelModeGet                                                \
+        ((uint32_t (*)(uint32_t ui32ChannelStructIndex))ROM_UDMATABLE[16])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_uDMAChannelSelectSecondary                                        \
+        ((void (*)(uint32_t ui32SecPeriphs))ROM_UDMATABLE[17])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_uDMAChannelSelectDefault                                          \
+        ((void (*)(uint32_t ui32DefPeriphs))ROM_UDMATABLE[18])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_uDMAIntStatus                                                     \
+        ((uint32_t (*)(void))ROM_UDMATABLE[19])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_uDMAIntClear                                                      \
+        ((void (*)(uint32_t ui32ChanMask))ROM_UDMATABLE[20])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_uDMAControlAlternateBaseGet                                       \
+        ((void * (*)(void))ROM_UDMATABLE[21])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_uDMAChannelScatterGatherSet                                       \
+        ((void (*)(uint32_t ui32ChannelNum,                                   \
+                   uint32_t ui32TaskCount,                                    \
+                   void *pvTaskList,                                          \
+                   uint32_t ui32IsPeriphSG))ROM_UDMATABLE[22])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_uDMAChannelAssign                                                 \
+        ((void (*)(uint32_t ui32Mapping))ROM_UDMATABLE[23])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the USB API.
+//
+//*****************************************************************************
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBDevAddrGet                                                     \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_USBTABLE[1])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBDevAddrSet                                                     \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Address))ROM_USBTABLE[2])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBDevConnect                                                     \
+        ((void (*)(uint32_t ui32Base))ROM_USBTABLE[3])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBDevDisconnect                                                  \
+        ((void (*)(uint32_t ui32Base))ROM_USBTABLE[4])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBDevEndpointConfigSet                                           \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Endpoint,                                     \
+                   uint32_t ui32MaxPacketSize,                                \
+                   uint32_t ui32Flags))ROM_USBTABLE[5])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBDevEndpointDataAck                                             \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Endpoint,                                     \
+                   bool bIsLastPacket))ROM_USBTABLE[6])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBDevEndpointStall                                               \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Endpoint,                                     \
+                   uint32_t ui32Flags))ROM_USBTABLE[7])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBDevEndpointStallClear                                          \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Endpoint,                                     \
+                   uint32_t ui32Flags))ROM_USBTABLE[8])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBDevEndpointStatusClear                                         \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Endpoint,                                     \
+                   uint32_t ui32Flags))ROM_USBTABLE[9])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBEndpointDataGet                                                \
+        ((int32_t (*)(uint32_t ui32Base,                                      \
+                      uint32_t ui32Endpoint,                                  \
+                      uint8_t *pui8Data,                                      \
+                      uint32_t *pui32Size))ROM_USBTABLE[10])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBEndpointDataPut                                                \
+        ((int32_t (*)(uint32_t ui32Base,                                      \
+                      uint32_t ui32Endpoint,                                  \
+                      uint8_t *pui8Data,                                      \
+                      uint32_t ui32Size))ROM_USBTABLE[11])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBEndpointDataSend                                               \
+        ((int32_t (*)(uint32_t ui32Base,                                      \
+                      uint32_t ui32Endpoint,                                  \
+                      uint32_t ui32TransType))ROM_USBTABLE[12])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBEndpointDataToggleClear                                        \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Endpoint,                                     \
+                   uint32_t ui32Flags))ROM_USBTABLE[13])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBEndpointStatus                                                 \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       uint32_t ui32Endpoint))ROM_USBTABLE[14])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBFIFOAddrGet                                                    \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       uint32_t ui32Endpoint))ROM_USBTABLE[15])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBFIFOConfigGet                                                  \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Endpoint,                                     \
+                   uint32_t *pui32FIFOAddress,                                \
+                   uint32_t *pui32FIFOSize,                                   \
+                   uint32_t ui32Flags))ROM_USBTABLE[16])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBFIFOConfigSet                                                  \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Endpoint,                                     \
+                   uint32_t ui32FIFOAddress,                                  \
+                   uint32_t ui32FIFOSize,                                     \
+                   uint32_t ui32Flags))ROM_USBTABLE[17])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBFIFOFlush                                                      \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Endpoint,                                     \
+                   uint32_t ui32Flags))ROM_USBTABLE[18])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBFrameNumberGet                                                 \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_USBTABLE[19])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBHostAddrGet                                                    \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       uint32_t ui32Endpoint,                                 \
+                       uint32_t ui32Flags))ROM_USBTABLE[20])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBHostAddrSet                                                    \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Endpoint,                                     \
+                   uint32_t ui32Addr,                                         \
+                   uint32_t ui32Flags))ROM_USBTABLE[21])
+#endif
+#if defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBHostEndpointConfig                                             \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Endpoint,                                     \
+                   uint32_t ui32MaxPacketSize,                                \
+                   uint32_t ui32NAKPollInterval,                              \
+                   uint32_t ui32TargetEndpoint,                               \
+                   uint32_t ui32Flags))ROM_USBTABLE[22])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBHostEndpointDataAck                                            \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Endpoint))ROM_USBTABLE[23])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBHostEndpointDataToggle                                         \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Endpoint,                                     \
+                   bool bDataToggle,                                          \
+                   uint32_t ui32Flags))ROM_USBTABLE[24])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBHostEndpointStatusClear                                        \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Endpoint,                                     \
+                   uint32_t ui32Flags))ROM_USBTABLE[25])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBHostHubAddrGet                                                 \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       uint32_t ui32Endpoint,                                 \
+                       uint32_t ui32Flags))ROM_USBTABLE[26])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBHostHubAddrSet                                                 \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Endpoint,                                     \
+                   uint32_t ui32Addr,                                         \
+                   uint32_t ui32Flags))ROM_USBTABLE[27])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBHostPwrDisable                                                 \
+        ((void (*)(uint32_t ui32Base))ROM_USBTABLE[28])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBHostPwrEnable                                                  \
+        ((void (*)(uint32_t ui32Base))ROM_USBTABLE[29])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBHostPwrConfig                                                  \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Flags))ROM_USBTABLE[30])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBHostPwrFaultDisable                                            \
+        ((void (*)(uint32_t ui32Base))ROM_USBTABLE[31])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBHostPwrFaultEnable                                             \
+        ((void (*)(uint32_t ui32Base))ROM_USBTABLE[32])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBHostRequestIN                                                  \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Endpoint))ROM_USBTABLE[33])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBHostRequestStatus                                              \
+        ((void (*)(uint32_t ui32Base))ROM_USBTABLE[34])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBHostReset                                                      \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   bool bStart))ROM_USBTABLE[35])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBHostResume                                                     \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   bool bStart))ROM_USBTABLE[36])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBHostSpeedGet                                                   \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_USBTABLE[37])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBHostSuspend                                                    \
+        ((void (*)(uint32_t ui32Base))ROM_USBTABLE[38])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBDevEndpointConfigGet                                           \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Endpoint,                                     \
+                   uint32_t *pui32MaxPacketSize,                              \
+                   uint32_t *pui32Flags))ROM_USBTABLE[41])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBEndpointDMAEnable                                              \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Endpoint,                                     \
+                   uint32_t ui32Flags))ROM_USBTABLE[42])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBEndpointDMADisable                                             \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Endpoint,                                     \
+                   uint32_t ui32Flags))ROM_USBTABLE[43])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBEndpointDataAvail                                              \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       uint32_t ui32Endpoint))ROM_USBTABLE[44])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBModeGet                                                        \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_USBTABLE[46])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBEndpointDMAChannel                                             \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Endpoint,                                     \
+                   uint32_t ui32Channel))ROM_USBTABLE[47])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBIntDisableControl                                              \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_USBTABLE[48])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBIntEnableControl                                               \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_USBTABLE[49])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBIntStatusControl                                               \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_USBTABLE[50])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBIntDisableEndpoint                                             \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_USBTABLE[51])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBIntEnableEndpoint                                              \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32IntFlags))ROM_USBTABLE[52])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBIntStatusEndpoint                                              \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_USBTABLE[53])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBHostMode                                                       \
+        ((void (*)(uint32_t ui32Base))ROM_USBTABLE[54])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBDevMode                                                        \
+        ((void (*)(uint32_t ui32Base))ROM_USBTABLE[55])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBPHYPowerOff                                                    \
+        ((void (*)(uint32_t ui32Base))ROM_USBTABLE[56])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBPHYPowerOn                                                     \
+        ((void (*)(uint32_t ui32Base))ROM_USBTABLE[57])
+#endif
+#if defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_UpdateUSB                                                         \
+        ((void (*)(uint8_t *pui8DescriptorInfo))ROM_USBTABLE[58])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBOTGMode                                                        \
+        ((void (*)(uint32_t ui32Base))ROM_USBTABLE[59])
+#endif
+#if defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBHostRequestINClear                                             \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Endpoint))ROM_USBTABLE[60])
+#endif
+#if defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBNumEndpointsGet                                                \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_USBTABLE[61])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBClockDisable                                                   \
+        ((void (*)(uint32_t ui32Base))ROM_USBTABLE[62])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBClockEnable                                                    \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Div,                                          \
+                   uint32_t ui32Flags))ROM_USBTABLE[63])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBControllerVersion                                              \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_USBTABLE[64])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBDevLPMConfig                                                   \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Config))ROM_USBTABLE[65])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBDevLPMDisable                                                  \
+        ((void (*)(uint32_t ui32Base))ROM_USBTABLE[66])
+#endif
+#if defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBDevLPMEnable                                                   \
+        ((void (*)(uint32_t ui32Base))ROM_USBTABLE[67])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBDevLPMRemoteWake                                               \
+        ((void (*)(uint32_t ui32Base))ROM_USBTABLE[68])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBDevSpeedGet                                                    \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_USBTABLE[69])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBDMAChannelAddressGet                                           \
+        ((void * (*)(uint32_t ui32Base,                                       \
+                     uint32_t ui32Channel))ROM_USBTABLE[70])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBDMAChannelAddressSet                                           \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Channel,                                      \
+                   void *pvAddress))ROM_USBTABLE[71])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBDMAChannelConfigSet                                            \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Channel,                                      \
+                   uint32_t ui32Endpoint,                                     \
+                   uint32_t ui32Config))ROM_USBTABLE[72])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBDMAChannelDisable                                              \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Channel))ROM_USBTABLE[73])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBDMAChannelEnable                                               \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Channel))ROM_USBTABLE[74])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBDMAChannelIntDisable                                           \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Channel))ROM_USBTABLE[75])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBDMAChannelIntEnable                                            \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Channel))ROM_USBTABLE[76])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBDMAChannelCountGet                                             \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       uint32_t ui32Channel))ROM_USBTABLE[77])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBDMAChannelCountSet                                             \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Count,                                        \
+                   uint32_t ui32Channel))ROM_USBTABLE[78])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBDMAChannelIntStatus                                            \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_USBTABLE[79])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBDMAChannelStatus                                               \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       uint32_t ui32Channel))ROM_USBTABLE[80])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBDMAChannelStatusClear                                          \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Channel,                                      \
+                   uint32_t ui32Status))ROM_USBTABLE[81])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBHighSpeed                                                      \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   bool bEnable))ROM_USBTABLE[82])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBHostEndpointPing                                               \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Endpoint,                                     \
+                   bool bEnable))ROM_USBTABLE[83])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBHostEndpointSpeed                                              \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Endpoint,                                     \
+                   uint32_t ui32Flags))ROM_USBTABLE[84])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBHostLPMConfig                                                  \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32ResumeTime,                                   \
+                   uint32_t ui32Config))ROM_USBTABLE[85])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBHostLPMResume                                                  \
+        ((void (*)(uint32_t ui32Base))ROM_USBTABLE[86])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBHostLPMSend                                                    \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Address,                                      \
+                   uint32_t uiEndpoint))ROM_USBTABLE[87])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBLPMIntDisable                                                  \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Ints))ROM_USBTABLE[88])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBLPMIntEnable                                                   \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Ints))ROM_USBTABLE[89])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBLPMIntStatus                                                   \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_USBTABLE[90])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBLPMLinkStateGet                                                \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_USBTABLE[91])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBEndpointPacketCountSet                                         \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Endpoint,                                     \
+                   uint32_t ui32Count))ROM_USBTABLE[92])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBULPIConfig                                                     \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Config))ROM_USBTABLE[93])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBULPIDisable                                                    \
+        ((void (*)(uint32_t ui32Base))ROM_USBTABLE[94])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBULPIEnable                                                     \
+        ((void (*)(uint32_t ui32Base))ROM_USBTABLE[95])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBULPIRegRead                                                    \
+        ((uint8_t (*)(uint32_t ui32Base,                                      \
+                      uint8_t ui8Reg))ROM_USBTABLE[96])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBULPIRegWrite                                                   \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint8_t ui8Reg,                                            \
+                   uint8_t ui8Data))ROM_USBTABLE[97])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBOTGSessionRequest                                              \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   bool bStart))ROM_USBTABLE[98])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBDMANumChannels                                                 \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_USBTABLE[99])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBEndpointDMAConfigSet                                           \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Endpoint,                                     \
+                   uint32_t ui32Config))ROM_USBTABLE[100])
+#endif
+#if defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBLPMRemoteWakeEnabled                                           \
+        ((bool (*)(uint32_t ui32Base))ROM_USBTABLE[102])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_USBModeConfig                                                     \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Mode))ROM_USBTABLE[103])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the Watchdog API.
+//
+//*****************************************************************************
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_WatchdogIntClear                                                  \
+        ((void (*)(uint32_t ui32Base))ROM_WATCHDOGTABLE[0])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_WatchdogRunning                                                   \
+        ((bool (*)(uint32_t ui32Base))ROM_WATCHDOGTABLE[1])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_WatchdogEnable                                                    \
+        ((void (*)(uint32_t ui32Base))ROM_WATCHDOGTABLE[2])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_WatchdogResetEnable                                               \
+        ((void (*)(uint32_t ui32Base))ROM_WATCHDOGTABLE[3])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_WatchdogResetDisable                                              \
+        ((void (*)(uint32_t ui32Base))ROM_WATCHDOGTABLE[4])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_WatchdogLock                                                      \
+        ((void (*)(uint32_t ui32Base))ROM_WATCHDOGTABLE[5])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_WatchdogUnlock                                                    \
+        ((void (*)(uint32_t ui32Base))ROM_WATCHDOGTABLE[6])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_WatchdogLockState                                                 \
+        ((bool (*)(uint32_t ui32Base))ROM_WATCHDOGTABLE[7])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_WatchdogReloadSet                                                 \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32LoadVal))ROM_WATCHDOGTABLE[8])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_WatchdogReloadGet                                                 \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_WATCHDOGTABLE[9])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_WatchdogValueGet                                                  \
+        ((uint32_t (*)(uint32_t ui32Base))ROM_WATCHDOGTABLE[10])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_WatchdogIntEnable                                                 \
+        ((void (*)(uint32_t ui32Base))ROM_WATCHDOGTABLE[11])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_WatchdogIntStatus                                                 \
+        ((uint32_t (*)(uint32_t ui32Base,                                     \
+                       bool bMasked))ROM_WATCHDOGTABLE[12])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_WatchdogStallEnable                                               \
+        ((void (*)(uint32_t ui32Base))ROM_WATCHDOGTABLE[13])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_WatchdogStallDisable                                              \
+        ((void (*)(uint32_t ui32Base))ROM_WATCHDOGTABLE[14])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_WatchdogIntTypeSet                                                \
+        ((void (*)(uint32_t ui32Base,                                         \
+                   uint32_t ui32Type))ROM_WATCHDOGTABLE[15])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the Software API.
+//
+//*****************************************************************************
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_Crc16Array                                                        \
+        ((uint16_t (*)(uint32_t ui32WordLen,                                  \
+                       const uint32_t *pui32Data))ROM_SOFTWARETABLE[1])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_Crc16Array3                                                       \
+        ((void (*)(uint32_t ui32WordLen,                                      \
+                   const uint32_t *pui32Data,                                 \
+                   uint16_t *pui16Crc3))ROM_SOFTWARETABLE[2])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_Crc16                                                             \
+        ((uint16_t (*)(uint16_t ui16Crc,                                      \
+                       const uint8_t *pui8Data,                               \
+                       uint32_t ui32Count))ROM_SOFTWARETABLE[3])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_Crc8CCITT                                                         \
+        ((uint8_t (*)(uint8_t ui8Crc,                                         \
+                      const uint8_t *pui8Data,                                \
+                      uint32_t ui32Count))ROM_SOFTWARETABLE[4])
+#endif
+#if defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_Crc32                                                             \
+        ((uint32_t (*)(uint32_t ui32Crc,                                      \
+                       const uint8_t *pui8Data,                               \
+                       uint32_t ui32Count))ROM_SOFTWARETABLE[5])
+#endif
+#if defined(TARGET_IS_TM4C123_RA1) ||                                         \
+    defined(TARGET_IS_TM4C123_RA3) ||                                         \
+    defined(TARGET_IS_TM4C123_RB1) ||                                         \
+    defined(TARGET_IS_TM4C123_RB2) ||                                         \
+    defined(TARGET_IS_TM4C129_RA0) ||                                         \
+    defined(TARGET_IS_TM4C129_RA1) ||                                         \
+    defined(TARGET_IS_TM4C129_RA2)
+#define ROM_pvAESTable                                                        \
+        ((void *)&(ROM_SOFTWARETABLE[7]))
+#endif
+
+#endif // __DRIVERLIB_ROM_H__

+ 6409 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/rom_map.h

@@ -0,0 +1,6409 @@
+//*****************************************************************************
+//
+// rom_map.h - Macros to facilitate calling functions in the ROM when they are
+//             available and in flash otherwise.
+//
+// Copyright (c) 2008-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Peripheral Driver Library.
+//
+//*****************************************************************************
+
+#ifndef __DRIVERLIB_ROM_MAP_H__
+#define __DRIVERLIB_ROM_MAP_H__
+
+//*****************************************************************************
+//
+// Macros for the ADC API.
+//
+//*****************************************************************************
+#ifdef ROM_ADCSequenceDataGet
+#define MAP_ADCSequenceDataGet                                                \
+        ROM_ADCSequenceDataGet
+#else
+#define MAP_ADCSequenceDataGet                                                \
+        ADCSequenceDataGet
+#endif
+#ifdef ROM_ADCIntDisable
+#define MAP_ADCIntDisable                                                     \
+        ROM_ADCIntDisable
+#else
+#define MAP_ADCIntDisable                                                     \
+        ADCIntDisable
+#endif
+#ifdef ROM_ADCIntEnable
+#define MAP_ADCIntEnable                                                      \
+        ROM_ADCIntEnable
+#else
+#define MAP_ADCIntEnable                                                      \
+        ADCIntEnable
+#endif
+#ifdef ROM_ADCIntStatus
+#define MAP_ADCIntStatus                                                      \
+        ROM_ADCIntStatus
+#else
+#define MAP_ADCIntStatus                                                      \
+        ADCIntStatus
+#endif
+#ifdef ROM_ADCIntClear
+#define MAP_ADCIntClear                                                       \
+        ROM_ADCIntClear
+#else
+#define MAP_ADCIntClear                                                       \
+        ADCIntClear
+#endif
+#ifdef ROM_ADCSequenceEnable
+#define MAP_ADCSequenceEnable                                                 \
+        ROM_ADCSequenceEnable
+#else
+#define MAP_ADCSequenceEnable                                                 \
+        ADCSequenceEnable
+#endif
+#ifdef ROM_ADCSequenceDisable
+#define MAP_ADCSequenceDisable                                                \
+        ROM_ADCSequenceDisable
+#else
+#define MAP_ADCSequenceDisable                                                \
+        ADCSequenceDisable
+#endif
+#ifdef ROM_ADCSequenceConfigure
+#define MAP_ADCSequenceConfigure                                              \
+        ROM_ADCSequenceConfigure
+#else
+#define MAP_ADCSequenceConfigure                                              \
+        ADCSequenceConfigure
+#endif
+#ifdef ROM_ADCSequenceStepConfigure
+#define MAP_ADCSequenceStepConfigure                                          \
+        ROM_ADCSequenceStepConfigure
+#else
+#define MAP_ADCSequenceStepConfigure                                          \
+        ADCSequenceStepConfigure
+#endif
+#ifdef ROM_ADCSequenceOverflow
+#define MAP_ADCSequenceOverflow                                               \
+        ROM_ADCSequenceOverflow
+#else
+#define MAP_ADCSequenceOverflow                                               \
+        ADCSequenceOverflow
+#endif
+#ifdef ROM_ADCSequenceOverflowClear
+#define MAP_ADCSequenceOverflowClear                                          \
+        ROM_ADCSequenceOverflowClear
+#else
+#define MAP_ADCSequenceOverflowClear                                          \
+        ADCSequenceOverflowClear
+#endif
+#ifdef ROM_ADCSequenceUnderflow
+#define MAP_ADCSequenceUnderflow                                              \
+        ROM_ADCSequenceUnderflow
+#else
+#define MAP_ADCSequenceUnderflow                                              \
+        ADCSequenceUnderflow
+#endif
+#ifdef ROM_ADCSequenceUnderflowClear
+#define MAP_ADCSequenceUnderflowClear                                         \
+        ROM_ADCSequenceUnderflowClear
+#else
+#define MAP_ADCSequenceUnderflowClear                                         \
+        ADCSequenceUnderflowClear
+#endif
+#ifdef ROM_ADCProcessorTrigger
+#define MAP_ADCProcessorTrigger                                               \
+        ROM_ADCProcessorTrigger
+#else
+#define MAP_ADCProcessorTrigger                                               \
+        ADCProcessorTrigger
+#endif
+#ifdef ROM_ADCHardwareOversampleConfigure
+#define MAP_ADCHardwareOversampleConfigure                                    \
+        ROM_ADCHardwareOversampleConfigure
+#else
+#define MAP_ADCHardwareOversampleConfigure                                    \
+        ADCHardwareOversampleConfigure
+#endif
+#ifdef ROM_ADCComparatorConfigure
+#define MAP_ADCComparatorConfigure                                            \
+        ROM_ADCComparatorConfigure
+#else
+#define MAP_ADCComparatorConfigure                                            \
+        ADCComparatorConfigure
+#endif
+#ifdef ROM_ADCComparatorRegionSet
+#define MAP_ADCComparatorRegionSet                                            \
+        ROM_ADCComparatorRegionSet
+#else
+#define MAP_ADCComparatorRegionSet                                            \
+        ADCComparatorRegionSet
+#endif
+#ifdef ROM_ADCComparatorReset
+#define MAP_ADCComparatorReset                                                \
+        ROM_ADCComparatorReset
+#else
+#define MAP_ADCComparatorReset                                                \
+        ADCComparatorReset
+#endif
+#ifdef ROM_ADCComparatorIntDisable
+#define MAP_ADCComparatorIntDisable                                           \
+        ROM_ADCComparatorIntDisable
+#else
+#define MAP_ADCComparatorIntDisable                                           \
+        ADCComparatorIntDisable
+#endif
+#ifdef ROM_ADCComparatorIntEnable
+#define MAP_ADCComparatorIntEnable                                            \
+        ROM_ADCComparatorIntEnable
+#else
+#define MAP_ADCComparatorIntEnable                                            \
+        ADCComparatorIntEnable
+#endif
+#ifdef ROM_ADCComparatorIntStatus
+#define MAP_ADCComparatorIntStatus                                            \
+        ROM_ADCComparatorIntStatus
+#else
+#define MAP_ADCComparatorIntStatus                                            \
+        ADCComparatorIntStatus
+#endif
+#ifdef ROM_ADCComparatorIntClear
+#define MAP_ADCComparatorIntClear                                             \
+        ROM_ADCComparatorIntClear
+#else
+#define MAP_ADCComparatorIntClear                                             \
+        ADCComparatorIntClear
+#endif
+#ifdef ROM_ADCReferenceSet
+#define MAP_ADCReferenceSet                                                   \
+        ROM_ADCReferenceSet
+#else
+#define MAP_ADCReferenceSet                                                   \
+        ADCReferenceSet
+#endif
+#ifdef ROM_ADCReferenceGet
+#define MAP_ADCReferenceGet                                                   \
+        ROM_ADCReferenceGet
+#else
+#define MAP_ADCReferenceGet                                                   \
+        ADCReferenceGet
+#endif
+#ifdef ROM_ADCPhaseDelaySet
+#define MAP_ADCPhaseDelaySet                                                  \
+        ROM_ADCPhaseDelaySet
+#else
+#define MAP_ADCPhaseDelaySet                                                  \
+        ADCPhaseDelaySet
+#endif
+#ifdef ROM_ADCPhaseDelayGet
+#define MAP_ADCPhaseDelayGet                                                  \
+        ROM_ADCPhaseDelayGet
+#else
+#define MAP_ADCPhaseDelayGet                                                  \
+        ADCPhaseDelayGet
+#endif
+#ifdef ROM_ADCIntClearEx
+#define MAP_ADCIntClearEx                                                     \
+        ROM_ADCIntClearEx
+#else
+#define MAP_ADCIntClearEx                                                     \
+        ADCIntClearEx
+#endif
+#ifdef ROM_ADCIntDisableEx
+#define MAP_ADCIntDisableEx                                                   \
+        ROM_ADCIntDisableEx
+#else
+#define MAP_ADCIntDisableEx                                                   \
+        ADCIntDisableEx
+#endif
+#ifdef ROM_ADCIntEnableEx
+#define MAP_ADCIntEnableEx                                                    \
+        ROM_ADCIntEnableEx
+#else
+#define MAP_ADCIntEnableEx                                                    \
+        ADCIntEnableEx
+#endif
+#ifdef ROM_ADCIntStatusEx
+#define MAP_ADCIntStatusEx                                                    \
+        ROM_ADCIntStatusEx
+#else
+#define MAP_ADCIntStatusEx                                                    \
+        ADCIntStatusEx
+#endif
+#ifdef ROM_ADCSequenceDMAEnable
+#define MAP_ADCSequenceDMAEnable                                              \
+        ROM_ADCSequenceDMAEnable
+#else
+#define MAP_ADCSequenceDMAEnable                                              \
+        ADCSequenceDMAEnable
+#endif
+#ifdef ROM_ADCSequenceDMADisable
+#define MAP_ADCSequenceDMADisable                                             \
+        ROM_ADCSequenceDMADisable
+#else
+#define MAP_ADCSequenceDMADisable                                             \
+        ADCSequenceDMADisable
+#endif
+#ifdef ROM_ADCBusy
+#define MAP_ADCBusy                                                           \
+        ROM_ADCBusy
+#else
+#define MAP_ADCBusy                                                           \
+        ADCBusy
+#endif
+
+//*****************************************************************************
+//
+// Macros for the AES API.
+//
+//*****************************************************************************
+#ifdef ROM_AESIntStatus
+#define MAP_AESIntStatus                                                      \
+        ROM_AESIntStatus
+#else
+#define MAP_AESIntStatus                                                      \
+        AESIntStatus
+#endif
+#ifdef ROM_AESAuthLengthSet
+#define MAP_AESAuthLengthSet                                                  \
+        ROM_AESAuthLengthSet
+#else
+#define MAP_AESAuthLengthSet                                                  \
+        AESAuthLengthSet
+#endif
+#ifdef ROM_AESConfigSet
+#define MAP_AESConfigSet                                                      \
+        ROM_AESConfigSet
+#else
+#define MAP_AESConfigSet                                                      \
+        AESConfigSet
+#endif
+#ifdef ROM_AESDataAuth
+#define MAP_AESDataAuth                                                       \
+        ROM_AESDataAuth
+#else
+#define MAP_AESDataAuth                                                       \
+        AESDataAuth
+#endif
+#ifdef ROM_AESDataProcess
+#define MAP_AESDataProcess                                                    \
+        ROM_AESDataProcess
+#else
+#define MAP_AESDataProcess                                                    \
+        AESDataProcess
+#endif
+#ifdef ROM_AESDataProcessAuth
+#define MAP_AESDataProcessAuth                                                \
+        ROM_AESDataProcessAuth
+#else
+#define MAP_AESDataProcessAuth                                                \
+        AESDataProcessAuth
+#endif
+#ifdef ROM_AESDataRead
+#define MAP_AESDataRead                                                       \
+        ROM_AESDataRead
+#else
+#define MAP_AESDataRead                                                       \
+        AESDataRead
+#endif
+#ifdef ROM_AESDataReadNonBlocking
+#define MAP_AESDataReadNonBlocking                                            \
+        ROM_AESDataReadNonBlocking
+#else
+#define MAP_AESDataReadNonBlocking                                            \
+        AESDataReadNonBlocking
+#endif
+#ifdef ROM_AESDataWrite
+#define MAP_AESDataWrite                                                      \
+        ROM_AESDataWrite
+#else
+#define MAP_AESDataWrite                                                      \
+        AESDataWrite
+#endif
+#ifdef ROM_AESDataWriteNonBlocking
+#define MAP_AESDataWriteNonBlocking                                           \
+        ROM_AESDataWriteNonBlocking
+#else
+#define MAP_AESDataWriteNonBlocking                                           \
+        AESDataWriteNonBlocking
+#endif
+#ifdef ROM_AESDMADisable
+#define MAP_AESDMADisable                                                     \
+        ROM_AESDMADisable
+#else
+#define MAP_AESDMADisable                                                     \
+        AESDMADisable
+#endif
+#ifdef ROM_AESDMAEnable
+#define MAP_AESDMAEnable                                                      \
+        ROM_AESDMAEnable
+#else
+#define MAP_AESDMAEnable                                                      \
+        AESDMAEnable
+#endif
+#ifdef ROM_AESIntClear
+#define MAP_AESIntClear                                                       \
+        ROM_AESIntClear
+#else
+#define MAP_AESIntClear                                                       \
+        AESIntClear
+#endif
+#ifdef ROM_AESIntDisable
+#define MAP_AESIntDisable                                                     \
+        ROM_AESIntDisable
+#else
+#define MAP_AESIntDisable                                                     \
+        AESIntDisable
+#endif
+#ifdef ROM_AESIntEnable
+#define MAP_AESIntEnable                                                      \
+        ROM_AESIntEnable
+#else
+#define MAP_AESIntEnable                                                      \
+        AESIntEnable
+#endif
+#ifdef ROM_AESIVSet
+#define MAP_AESIVSet                                                          \
+        ROM_AESIVSet
+#else
+#define MAP_AESIVSet                                                          \
+        AESIVSet
+#endif
+#ifdef ROM_AESKey1Set
+#define MAP_AESKey1Set                                                        \
+        ROM_AESKey1Set
+#else
+#define MAP_AESKey1Set                                                        \
+        AESKey1Set
+#endif
+#ifdef ROM_AESKey2Set
+#define MAP_AESKey2Set                                                        \
+        ROM_AESKey2Set
+#else
+#define MAP_AESKey2Set                                                        \
+        AESKey2Set
+#endif
+#ifdef ROM_AESKey3Set
+#define MAP_AESKey3Set                                                        \
+        ROM_AESKey3Set
+#else
+#define MAP_AESKey3Set                                                        \
+        AESKey3Set
+#endif
+#ifdef ROM_AESLengthSet
+#define MAP_AESLengthSet                                                      \
+        ROM_AESLengthSet
+#else
+#define MAP_AESLengthSet                                                      \
+        AESLengthSet
+#endif
+#ifdef ROM_AESReset
+#define MAP_AESReset                                                          \
+        ROM_AESReset
+#else
+#define MAP_AESReset                                                          \
+        AESReset
+#endif
+#ifdef ROM_AESTagRead
+#define MAP_AESTagRead                                                        \
+        ROM_AESTagRead
+#else
+#define MAP_AESTagRead                                                        \
+        AESTagRead
+#endif
+#ifdef ROM_AESIVRead
+#define MAP_AESIVRead                                                         \
+        ROM_AESIVRead
+#else
+#define MAP_AESIVRead                                                         \
+        AESIVRead
+#endif
+
+//*****************************************************************************
+//
+// Macros for the CAN API.
+//
+//*****************************************************************************
+#ifdef ROM_CANIntClear
+#define MAP_CANIntClear                                                       \
+        ROM_CANIntClear
+#else
+#define MAP_CANIntClear                                                       \
+        CANIntClear
+#endif
+#ifdef ROM_CANInit
+#define MAP_CANInit                                                           \
+        ROM_CANInit
+#else
+#define MAP_CANInit                                                           \
+        CANInit
+#endif
+#ifdef ROM_CANEnable
+#define MAP_CANEnable                                                         \
+        ROM_CANEnable
+#else
+#define MAP_CANEnable                                                         \
+        CANEnable
+#endif
+#ifdef ROM_CANDisable
+#define MAP_CANDisable                                                        \
+        ROM_CANDisable
+#else
+#define MAP_CANDisable                                                        \
+        CANDisable
+#endif
+#ifdef ROM_CANBitTimingSet
+#define MAP_CANBitTimingSet                                                   \
+        ROM_CANBitTimingSet
+#else
+#define MAP_CANBitTimingSet                                                   \
+        CANBitTimingSet
+#endif
+#ifdef ROM_CANBitTimingGet
+#define MAP_CANBitTimingGet                                                   \
+        ROM_CANBitTimingGet
+#else
+#define MAP_CANBitTimingGet                                                   \
+        CANBitTimingGet
+#endif
+#ifdef ROM_CANMessageSet
+#define MAP_CANMessageSet                                                     \
+        ROM_CANMessageSet
+#else
+#define MAP_CANMessageSet                                                     \
+        CANMessageSet
+#endif
+#ifdef ROM_CANMessageGet
+#define MAP_CANMessageGet                                                     \
+        ROM_CANMessageGet
+#else
+#define MAP_CANMessageGet                                                     \
+        CANMessageGet
+#endif
+#ifdef ROM_CANStatusGet
+#define MAP_CANStatusGet                                                      \
+        ROM_CANStatusGet
+#else
+#define MAP_CANStatusGet                                                      \
+        CANStatusGet
+#endif
+#ifdef ROM_CANMessageClear
+#define MAP_CANMessageClear                                                   \
+        ROM_CANMessageClear
+#else
+#define MAP_CANMessageClear                                                   \
+        CANMessageClear
+#endif
+#ifdef ROM_CANIntEnable
+#define MAP_CANIntEnable                                                      \
+        ROM_CANIntEnable
+#else
+#define MAP_CANIntEnable                                                      \
+        CANIntEnable
+#endif
+#ifdef ROM_CANIntDisable
+#define MAP_CANIntDisable                                                     \
+        ROM_CANIntDisable
+#else
+#define MAP_CANIntDisable                                                     \
+        CANIntDisable
+#endif
+#ifdef ROM_CANIntStatus
+#define MAP_CANIntStatus                                                      \
+        ROM_CANIntStatus
+#else
+#define MAP_CANIntStatus                                                      \
+        CANIntStatus
+#endif
+#ifdef ROM_CANRetryGet
+#define MAP_CANRetryGet                                                       \
+        ROM_CANRetryGet
+#else
+#define MAP_CANRetryGet                                                       \
+        CANRetryGet
+#endif
+#ifdef ROM_CANRetrySet
+#define MAP_CANRetrySet                                                       \
+        ROM_CANRetrySet
+#else
+#define MAP_CANRetrySet                                                       \
+        CANRetrySet
+#endif
+#ifdef ROM_CANErrCntrGet
+#define MAP_CANErrCntrGet                                                     \
+        ROM_CANErrCntrGet
+#else
+#define MAP_CANErrCntrGet                                                     \
+        CANErrCntrGet
+#endif
+#ifdef ROM_CANBitRateSet
+#define MAP_CANBitRateSet                                                     \
+        ROM_CANBitRateSet
+#else
+#define MAP_CANBitRateSet                                                     \
+        CANBitRateSet
+#endif
+
+//*****************************************************************************
+//
+// Macros for the Comparator API.
+//
+//*****************************************************************************
+#ifdef ROM_ComparatorIntClear
+#define MAP_ComparatorIntClear                                                \
+        ROM_ComparatorIntClear
+#else
+#define MAP_ComparatorIntClear                                                \
+        ComparatorIntClear
+#endif
+#ifdef ROM_ComparatorConfigure
+#define MAP_ComparatorConfigure                                               \
+        ROM_ComparatorConfigure
+#else
+#define MAP_ComparatorConfigure                                               \
+        ComparatorConfigure
+#endif
+#ifdef ROM_ComparatorRefSet
+#define MAP_ComparatorRefSet                                                  \
+        ROM_ComparatorRefSet
+#else
+#define MAP_ComparatorRefSet                                                  \
+        ComparatorRefSet
+#endif
+#ifdef ROM_ComparatorValueGet
+#define MAP_ComparatorValueGet                                                \
+        ROM_ComparatorValueGet
+#else
+#define MAP_ComparatorValueGet                                                \
+        ComparatorValueGet
+#endif
+#ifdef ROM_ComparatorIntEnable
+#define MAP_ComparatorIntEnable                                               \
+        ROM_ComparatorIntEnable
+#else
+#define MAP_ComparatorIntEnable                                               \
+        ComparatorIntEnable
+#endif
+#ifdef ROM_ComparatorIntDisable
+#define MAP_ComparatorIntDisable                                              \
+        ROM_ComparatorIntDisable
+#else
+#define MAP_ComparatorIntDisable                                              \
+        ComparatorIntDisable
+#endif
+#ifdef ROM_ComparatorIntStatus
+#define MAP_ComparatorIntStatus                                               \
+        ROM_ComparatorIntStatus
+#else
+#define MAP_ComparatorIntStatus                                               \
+        ComparatorIntStatus
+#endif
+
+//*****************************************************************************
+//
+// Macros for the CRC API.
+//
+//*****************************************************************************
+#ifdef ROM_CRCConfigSet
+#define MAP_CRCConfigSet                                                      \
+        ROM_CRCConfigSet
+#else
+#define MAP_CRCConfigSet                                                      \
+        CRCConfigSet
+#endif
+#ifdef ROM_CRCDataProcess
+#define MAP_CRCDataProcess                                                    \
+        ROM_CRCDataProcess
+#else
+#define MAP_CRCDataProcess                                                    \
+        CRCDataProcess
+#endif
+#ifdef ROM_CRCDataWrite
+#define MAP_CRCDataWrite                                                      \
+        ROM_CRCDataWrite
+#else
+#define MAP_CRCDataWrite                                                      \
+        CRCDataWrite
+#endif
+#ifdef ROM_CRCResultRead
+#define MAP_CRCResultRead                                                     \
+        ROM_CRCResultRead
+#else
+#define MAP_CRCResultRead                                                     \
+        CRCResultRead
+#endif
+#ifdef ROM_CRCSeedSet
+#define MAP_CRCSeedSet                                                        \
+        ROM_CRCSeedSet
+#else
+#define MAP_CRCSeedSet                                                        \
+        CRCSeedSet
+#endif
+
+//*****************************************************************************
+//
+// Macros for the DES API.
+//
+//*****************************************************************************
+#ifdef ROM_DESIntStatus
+#define MAP_DESIntStatus                                                      \
+        ROM_DESIntStatus
+#else
+#define MAP_DESIntStatus                                                      \
+        DESIntStatus
+#endif
+#ifdef ROM_DESConfigSet
+#define MAP_DESConfigSet                                                      \
+        ROM_DESConfigSet
+#else
+#define MAP_DESConfigSet                                                      \
+        DESConfigSet
+#endif
+#ifdef ROM_DESDataRead
+#define MAP_DESDataRead                                                       \
+        ROM_DESDataRead
+#else
+#define MAP_DESDataRead                                                       \
+        DESDataRead
+#endif
+#ifdef ROM_DESDataReadNonBlocking
+#define MAP_DESDataReadNonBlocking                                            \
+        ROM_DESDataReadNonBlocking
+#else
+#define MAP_DESDataReadNonBlocking                                            \
+        DESDataReadNonBlocking
+#endif
+#ifdef ROM_DESDataProcess
+#define MAP_DESDataProcess                                                    \
+        ROM_DESDataProcess
+#else
+#define MAP_DESDataProcess                                                    \
+        DESDataProcess
+#endif
+#ifdef ROM_DESDataWrite
+#define MAP_DESDataWrite                                                      \
+        ROM_DESDataWrite
+#else
+#define MAP_DESDataWrite                                                      \
+        DESDataWrite
+#endif
+#ifdef ROM_DESDataWriteNonBlocking
+#define MAP_DESDataWriteNonBlocking                                           \
+        ROM_DESDataWriteNonBlocking
+#else
+#define MAP_DESDataWriteNonBlocking                                           \
+        DESDataWriteNonBlocking
+#endif
+#ifdef ROM_DESDMADisable
+#define MAP_DESDMADisable                                                     \
+        ROM_DESDMADisable
+#else
+#define MAP_DESDMADisable                                                     \
+        DESDMADisable
+#endif
+#ifdef ROM_DESDMAEnable
+#define MAP_DESDMAEnable                                                      \
+        ROM_DESDMAEnable
+#else
+#define MAP_DESDMAEnable                                                      \
+        DESDMAEnable
+#endif
+#ifdef ROM_DESIntClear
+#define MAP_DESIntClear                                                       \
+        ROM_DESIntClear
+#else
+#define MAP_DESIntClear                                                       \
+        DESIntClear
+#endif
+#ifdef ROM_DESIntDisable
+#define MAP_DESIntDisable                                                     \
+        ROM_DESIntDisable
+#else
+#define MAP_DESIntDisable                                                     \
+        DESIntDisable
+#endif
+#ifdef ROM_DESIntEnable
+#define MAP_DESIntEnable                                                      \
+        ROM_DESIntEnable
+#else
+#define MAP_DESIntEnable                                                      \
+        DESIntEnable
+#endif
+#ifdef ROM_DESIVSet
+#define MAP_DESIVSet                                                          \
+        ROM_DESIVSet
+#else
+#define MAP_DESIVSet                                                          \
+        DESIVSet
+#endif
+#ifdef ROM_DESKeySet
+#define MAP_DESKeySet                                                         \
+        ROM_DESKeySet
+#else
+#define MAP_DESKeySet                                                         \
+        DESKeySet
+#endif
+#ifdef ROM_DESLengthSet
+#define MAP_DESLengthSet                                                      \
+        ROM_DESLengthSet
+#else
+#define MAP_DESLengthSet                                                      \
+        DESLengthSet
+#endif
+#ifdef ROM_DESReset
+#define MAP_DESReset                                                          \
+        ROM_DESReset
+#else
+#define MAP_DESReset                                                          \
+        DESReset
+#endif
+
+//*****************************************************************************
+//
+// Macros for the EEPROM API.
+//
+//*****************************************************************************
+#ifdef ROM_EEPROMRead
+#define MAP_EEPROMRead                                                        \
+        ROM_EEPROMRead
+#else
+#define MAP_EEPROMRead                                                        \
+        EEPROMRead
+#endif
+#ifdef ROM_EEPROMBlockCountGet
+#define MAP_EEPROMBlockCountGet                                               \
+        ROM_EEPROMBlockCountGet
+#else
+#define MAP_EEPROMBlockCountGet                                               \
+        EEPROMBlockCountGet
+#endif
+#ifdef ROM_EEPROMBlockHide
+#define MAP_EEPROMBlockHide                                                   \
+        ROM_EEPROMBlockHide
+#else
+#define MAP_EEPROMBlockHide                                                   \
+        EEPROMBlockHide
+#endif
+#ifdef ROM_EEPROMBlockLock
+#define MAP_EEPROMBlockLock                                                   \
+        ROM_EEPROMBlockLock
+#else
+#define MAP_EEPROMBlockLock                                                   \
+        EEPROMBlockLock
+#endif
+#ifdef ROM_EEPROMBlockPasswordSet
+#define MAP_EEPROMBlockPasswordSet                                            \
+        ROM_EEPROMBlockPasswordSet
+#else
+#define MAP_EEPROMBlockPasswordSet                                            \
+        EEPROMBlockPasswordSet
+#endif
+#ifdef ROM_EEPROMBlockProtectGet
+#define MAP_EEPROMBlockProtectGet                                             \
+        ROM_EEPROMBlockProtectGet
+#else
+#define MAP_EEPROMBlockProtectGet                                             \
+        EEPROMBlockProtectGet
+#endif
+#ifdef ROM_EEPROMBlockProtectSet
+#define MAP_EEPROMBlockProtectSet                                             \
+        ROM_EEPROMBlockProtectSet
+#else
+#define MAP_EEPROMBlockProtectSet                                             \
+        EEPROMBlockProtectSet
+#endif
+#ifdef ROM_EEPROMBlockUnlock
+#define MAP_EEPROMBlockUnlock                                                 \
+        ROM_EEPROMBlockUnlock
+#else
+#define MAP_EEPROMBlockUnlock                                                 \
+        EEPROMBlockUnlock
+#endif
+#ifdef ROM_EEPROMIntClear
+#define MAP_EEPROMIntClear                                                    \
+        ROM_EEPROMIntClear
+#else
+#define MAP_EEPROMIntClear                                                    \
+        EEPROMIntClear
+#endif
+#ifdef ROM_EEPROMIntDisable
+#define MAP_EEPROMIntDisable                                                  \
+        ROM_EEPROMIntDisable
+#else
+#define MAP_EEPROMIntDisable                                                  \
+        EEPROMIntDisable
+#endif
+#ifdef ROM_EEPROMIntEnable
+#define MAP_EEPROMIntEnable                                                   \
+        ROM_EEPROMIntEnable
+#else
+#define MAP_EEPROMIntEnable                                                   \
+        EEPROMIntEnable
+#endif
+#ifdef ROM_EEPROMIntStatus
+#define MAP_EEPROMIntStatus                                                   \
+        ROM_EEPROMIntStatus
+#else
+#define MAP_EEPROMIntStatus                                                   \
+        EEPROMIntStatus
+#endif
+#ifdef ROM_EEPROMMassErase
+#define MAP_EEPROMMassErase                                                   \
+        ROM_EEPROMMassErase
+#else
+#define MAP_EEPROMMassErase                                                   \
+        EEPROMMassErase
+#endif
+#ifdef ROM_EEPROMProgram
+#define MAP_EEPROMProgram                                                     \
+        ROM_EEPROMProgram
+#else
+#define MAP_EEPROMProgram                                                     \
+        EEPROMProgram
+#endif
+#ifdef ROM_EEPROMProgramNonBlocking
+#define MAP_EEPROMProgramNonBlocking                                          \
+        ROM_EEPROMProgramNonBlocking
+#else
+#define MAP_EEPROMProgramNonBlocking                                          \
+        EEPROMProgramNonBlocking
+#endif
+#ifdef ROM_EEPROMSizeGet
+#define MAP_EEPROMSizeGet                                                     \
+        ROM_EEPROMSizeGet
+#else
+#define MAP_EEPROMSizeGet                                                     \
+        EEPROMSizeGet
+#endif
+#ifdef ROM_EEPROMStatusGet
+#define MAP_EEPROMStatusGet                                                   \
+        ROM_EEPROMStatusGet
+#else
+#define MAP_EEPROMStatusGet                                                   \
+        EEPROMStatusGet
+#endif
+#ifdef ROM_EEPROMInit
+#define MAP_EEPROMInit                                                        \
+        ROM_EEPROMInit
+#else
+#define MAP_EEPROMInit                                                        \
+        EEPROMInit
+#endif
+
+//*****************************************************************************
+//
+// Macros for the EPI API.
+//
+//*****************************************************************************
+#ifdef ROM_EPIIntStatus
+#define MAP_EPIIntStatus                                                      \
+        ROM_EPIIntStatus
+#else
+#define MAP_EPIIntStatus                                                      \
+        EPIIntStatus
+#endif
+#ifdef ROM_EPIModeSet
+#define MAP_EPIModeSet                                                        \
+        ROM_EPIModeSet
+#else
+#define MAP_EPIModeSet                                                        \
+        EPIModeSet
+#endif
+#ifdef ROM_EPIDividerSet
+#define MAP_EPIDividerSet                                                     \
+        ROM_EPIDividerSet
+#else
+#define MAP_EPIDividerSet                                                     \
+        EPIDividerSet
+#endif
+#ifdef ROM_EPIConfigSDRAMSet
+#define MAP_EPIConfigSDRAMSet                                                 \
+        ROM_EPIConfigSDRAMSet
+#else
+#define MAP_EPIConfigSDRAMSet                                                 \
+        EPIConfigSDRAMSet
+#endif
+#ifdef ROM_EPIConfigGPModeSet
+#define MAP_EPIConfigGPModeSet                                                \
+        ROM_EPIConfigGPModeSet
+#else
+#define MAP_EPIConfigGPModeSet                                                \
+        EPIConfigGPModeSet
+#endif
+#ifdef ROM_EPIConfigHB8Set
+#define MAP_EPIConfigHB8Set                                                   \
+        ROM_EPIConfigHB8Set
+#else
+#define MAP_EPIConfigHB8Set                                                   \
+        EPIConfigHB8Set
+#endif
+#ifdef ROM_EPIConfigHB16Set
+#define MAP_EPIConfigHB16Set                                                  \
+        ROM_EPIConfigHB16Set
+#else
+#define MAP_EPIConfigHB16Set                                                  \
+        EPIConfigHB16Set
+#endif
+#ifdef ROM_EPIAddressMapSet
+#define MAP_EPIAddressMapSet                                                  \
+        ROM_EPIAddressMapSet
+#else
+#define MAP_EPIAddressMapSet                                                  \
+        EPIAddressMapSet
+#endif
+#ifdef ROM_EPINonBlockingReadConfigure
+#define MAP_EPINonBlockingReadConfigure                                       \
+        ROM_EPINonBlockingReadConfigure
+#else
+#define MAP_EPINonBlockingReadConfigure                                       \
+        EPINonBlockingReadConfigure
+#endif
+#ifdef ROM_EPINonBlockingReadStart
+#define MAP_EPINonBlockingReadStart                                           \
+        ROM_EPINonBlockingReadStart
+#else
+#define MAP_EPINonBlockingReadStart                                           \
+        EPINonBlockingReadStart
+#endif
+#ifdef ROM_EPINonBlockingReadStop
+#define MAP_EPINonBlockingReadStop                                            \
+        ROM_EPINonBlockingReadStop
+#else
+#define MAP_EPINonBlockingReadStop                                            \
+        EPINonBlockingReadStop
+#endif
+#ifdef ROM_EPINonBlockingReadCount
+#define MAP_EPINonBlockingReadCount                                           \
+        ROM_EPINonBlockingReadCount
+#else
+#define MAP_EPINonBlockingReadCount                                           \
+        EPINonBlockingReadCount
+#endif
+#ifdef ROM_EPINonBlockingReadAvail
+#define MAP_EPINonBlockingReadAvail                                           \
+        ROM_EPINonBlockingReadAvail
+#else
+#define MAP_EPINonBlockingReadAvail                                           \
+        EPINonBlockingReadAvail
+#endif
+#ifdef ROM_EPINonBlockingReadGet32
+#define MAP_EPINonBlockingReadGet32                                           \
+        ROM_EPINonBlockingReadGet32
+#else
+#define MAP_EPINonBlockingReadGet32                                           \
+        EPINonBlockingReadGet32
+#endif
+#ifdef ROM_EPINonBlockingReadGet16
+#define MAP_EPINonBlockingReadGet16                                           \
+        ROM_EPINonBlockingReadGet16
+#else
+#define MAP_EPINonBlockingReadGet16                                           \
+        EPINonBlockingReadGet16
+#endif
+#ifdef ROM_EPINonBlockingReadGet8
+#define MAP_EPINonBlockingReadGet8                                            \
+        ROM_EPINonBlockingReadGet8
+#else
+#define MAP_EPINonBlockingReadGet8                                            \
+        EPINonBlockingReadGet8
+#endif
+#ifdef ROM_EPIFIFOConfig
+#define MAP_EPIFIFOConfig                                                     \
+        ROM_EPIFIFOConfig
+#else
+#define MAP_EPIFIFOConfig                                                     \
+        EPIFIFOConfig
+#endif
+#ifdef ROM_EPIWriteFIFOCountGet
+#define MAP_EPIWriteFIFOCountGet                                              \
+        ROM_EPIWriteFIFOCountGet
+#else
+#define MAP_EPIWriteFIFOCountGet                                              \
+        EPIWriteFIFOCountGet
+#endif
+#ifdef ROM_EPIIntEnable
+#define MAP_EPIIntEnable                                                      \
+        ROM_EPIIntEnable
+#else
+#define MAP_EPIIntEnable                                                      \
+        EPIIntEnable
+#endif
+#ifdef ROM_EPIIntDisable
+#define MAP_EPIIntDisable                                                     \
+        ROM_EPIIntDisable
+#else
+#define MAP_EPIIntDisable                                                     \
+        EPIIntDisable
+#endif
+#ifdef ROM_EPIIntErrorStatus
+#define MAP_EPIIntErrorStatus                                                 \
+        ROM_EPIIntErrorStatus
+#else
+#define MAP_EPIIntErrorStatus                                                 \
+        EPIIntErrorStatus
+#endif
+#ifdef ROM_EPIIntErrorClear
+#define MAP_EPIIntErrorClear                                                  \
+        ROM_EPIIntErrorClear
+#else
+#define MAP_EPIIntErrorClear                                                  \
+        EPIIntErrorClear
+#endif
+#ifdef ROM_EPIDividerCSSet
+#define MAP_EPIDividerCSSet                                                   \
+        ROM_EPIDividerCSSet
+#else
+#define MAP_EPIDividerCSSet                                                   \
+        EPIDividerCSSet
+#endif
+#ifdef ROM_EPIDMATxCount
+#define MAP_EPIDMATxCount                                                     \
+        ROM_EPIDMATxCount
+#else
+#define MAP_EPIDMATxCount                                                     \
+        EPIDMATxCount
+#endif
+#ifdef ROM_EPIConfigHB8CSSet
+#define MAP_EPIConfigHB8CSSet                                                 \
+        ROM_EPIConfigHB8CSSet
+#else
+#define MAP_EPIConfigHB8CSSet                                                 \
+        EPIConfigHB8CSSet
+#endif
+#ifdef ROM_EPIConfigHB16CSSet
+#define MAP_EPIConfigHB16CSSet                                                \
+        ROM_EPIConfigHB16CSSet
+#else
+#define MAP_EPIConfigHB16CSSet                                                \
+        EPIConfigHB16CSSet
+#endif
+#ifdef ROM_EPIConfigHB8TimingSet
+#define MAP_EPIConfigHB8TimingSet                                             \
+        ROM_EPIConfigHB8TimingSet
+#else
+#define MAP_EPIConfigHB8TimingSet                                             \
+        EPIConfigHB8TimingSet
+#endif
+#ifdef ROM_EPIConfigHB16TimingSet
+#define MAP_EPIConfigHB16TimingSet                                            \
+        ROM_EPIConfigHB16TimingSet
+#else
+#define MAP_EPIConfigHB16TimingSet                                            \
+        EPIConfigHB16TimingSet
+#endif
+#ifdef ROM_EPIPSRAMConfigRegSet
+#define MAP_EPIPSRAMConfigRegSet                                              \
+        ROM_EPIPSRAMConfigRegSet
+#else
+#define MAP_EPIPSRAMConfigRegSet                                              \
+        EPIPSRAMConfigRegSet
+#endif
+#ifdef ROM_EPIPSRAMConfigRegRead
+#define MAP_EPIPSRAMConfigRegRead                                             \
+        ROM_EPIPSRAMConfigRegRead
+#else
+#define MAP_EPIPSRAMConfigRegRead                                             \
+        EPIPSRAMConfigRegRead
+#endif
+#ifdef ROM_EPIPSRAMConfigRegGetNonBlocking
+#define MAP_EPIPSRAMConfigRegGetNonBlocking                                   \
+        ROM_EPIPSRAMConfigRegGetNonBlocking
+#else
+#define MAP_EPIPSRAMConfigRegGetNonBlocking                                   \
+        EPIPSRAMConfigRegGetNonBlocking
+#endif
+#ifdef ROM_EPIPSRAMConfigRegGet
+#define MAP_EPIPSRAMConfigRegGet                                              \
+        ROM_EPIPSRAMConfigRegGet
+#else
+#define MAP_EPIPSRAMConfigRegGet                                              \
+        EPIPSRAMConfigRegGet
+#endif
+
+//*****************************************************************************
+//
+// Macros for the EMAC API.
+//
+//*****************************************************************************
+#ifdef ROM_EMACIntStatus
+#define MAP_EMACIntStatus                                                     \
+        ROM_EMACIntStatus
+#else
+#define MAP_EMACIntStatus                                                     \
+        EMACIntStatus
+#endif
+#ifdef ROM_EMACAddrGet
+#define MAP_EMACAddrGet                                                       \
+        ROM_EMACAddrGet
+#else
+#define MAP_EMACAddrGet                                                       \
+        EMACAddrGet
+#endif
+#ifdef ROM_EMACAddrSet
+#define MAP_EMACAddrSet                                                       \
+        ROM_EMACAddrSet
+#else
+#define MAP_EMACAddrSet                                                       \
+        EMACAddrSet
+#endif
+#ifdef ROM_EMACConfigGet
+#define MAP_EMACConfigGet                                                     \
+        ROM_EMACConfigGet
+#else
+#define MAP_EMACConfigGet                                                     \
+        EMACConfigGet
+#endif
+#ifdef ROM_EMACConfigSet
+#define MAP_EMACConfigSet                                                     \
+        ROM_EMACConfigSet
+#else
+#define MAP_EMACConfigSet                                                     \
+        EMACConfigSet
+#endif
+#ifdef ROM_EMACDMAStateGet
+#define MAP_EMACDMAStateGet                                                   \
+        ROM_EMACDMAStateGet
+#else
+#define MAP_EMACDMAStateGet                                                   \
+        EMACDMAStateGet
+#endif
+#ifdef ROM_EMACFrameFilterGet
+#define MAP_EMACFrameFilterGet                                                \
+        ROM_EMACFrameFilterGet
+#else
+#define MAP_EMACFrameFilterGet                                                \
+        EMACFrameFilterGet
+#endif
+#ifdef ROM_EMACFrameFilterSet
+#define MAP_EMACFrameFilterSet                                                \
+        ROM_EMACFrameFilterSet
+#else
+#define MAP_EMACFrameFilterSet                                                \
+        EMACFrameFilterSet
+#endif
+#ifdef ROM_EMACInit
+#define MAP_EMACInit                                                          \
+        ROM_EMACInit
+#else
+#define MAP_EMACInit                                                          \
+        EMACInit
+#endif
+#ifdef ROM_EMACIntClear
+#define MAP_EMACIntClear                                                      \
+        ROM_EMACIntClear
+#else
+#define MAP_EMACIntClear                                                      \
+        EMACIntClear
+#endif
+#ifdef ROM_EMACIntDisable
+#define MAP_EMACIntDisable                                                    \
+        ROM_EMACIntDisable
+#else
+#define MAP_EMACIntDisable                                                    \
+        EMACIntDisable
+#endif
+#ifdef ROM_EMACIntEnable
+#define MAP_EMACIntEnable                                                     \
+        ROM_EMACIntEnable
+#else
+#define MAP_EMACIntEnable                                                     \
+        EMACIntEnable
+#endif
+#ifdef ROM_EMACPHYConfigSet
+#define MAP_EMACPHYConfigSet                                                  \
+        ROM_EMACPHYConfigSet
+#else
+#define MAP_EMACPHYConfigSet                                                  \
+        EMACPHYConfigSet
+#endif
+#ifdef ROM_EMACPHYPowerOff
+#define MAP_EMACPHYPowerOff                                                   \
+        ROM_EMACPHYPowerOff
+#else
+#define MAP_EMACPHYPowerOff                                                   \
+        EMACPHYPowerOff
+#endif
+#ifdef ROM_EMACPHYPowerOn
+#define MAP_EMACPHYPowerOn                                                    \
+        ROM_EMACPHYPowerOn
+#else
+#define MAP_EMACPHYPowerOn                                                    \
+        EMACPHYPowerOn
+#endif
+#ifdef ROM_EMACPHYRead
+#define MAP_EMACPHYRead                                                       \
+        ROM_EMACPHYRead
+#else
+#define MAP_EMACPHYRead                                                       \
+        EMACPHYRead
+#endif
+#ifdef ROM_EMACPHYWrite
+#define MAP_EMACPHYWrite                                                      \
+        ROM_EMACPHYWrite
+#else
+#define MAP_EMACPHYWrite                                                      \
+        EMACPHYWrite
+#endif
+#ifdef ROM_EMACReset
+#define MAP_EMACReset                                                         \
+        ROM_EMACReset
+#else
+#define MAP_EMACReset                                                         \
+        EMACReset
+#endif
+#ifdef ROM_EMACRxDisable
+#define MAP_EMACRxDisable                                                     \
+        ROM_EMACRxDisable
+#else
+#define MAP_EMACRxDisable                                                     \
+        EMACRxDisable
+#endif
+#ifdef ROM_EMACRxDMACurrentBufferGet
+#define MAP_EMACRxDMACurrentBufferGet                                         \
+        ROM_EMACRxDMACurrentBufferGet
+#else
+#define MAP_EMACRxDMACurrentBufferGet                                         \
+        EMACRxDMACurrentBufferGet
+#endif
+#ifdef ROM_EMACRxDMACurrentDescriptorGet
+#define MAP_EMACRxDMACurrentDescriptorGet                                     \
+        ROM_EMACRxDMACurrentDescriptorGet
+#else
+#define MAP_EMACRxDMACurrentDescriptorGet                                     \
+        EMACRxDMACurrentDescriptorGet
+#endif
+#ifdef ROM_EMACRxDMADescriptorListGet
+#define MAP_EMACRxDMADescriptorListGet                                        \
+        ROM_EMACRxDMADescriptorListGet
+#else
+#define MAP_EMACRxDMADescriptorListGet                                        \
+        EMACRxDMADescriptorListGet
+#endif
+#ifdef ROM_EMACRxDMADescriptorListSet
+#define MAP_EMACRxDMADescriptorListSet                                        \
+        ROM_EMACRxDMADescriptorListSet
+#else
+#define MAP_EMACRxDMADescriptorListSet                                        \
+        EMACRxDMADescriptorListSet
+#endif
+#ifdef ROM_EMACRxDMAPollDemand
+#define MAP_EMACRxDMAPollDemand                                               \
+        ROM_EMACRxDMAPollDemand
+#else
+#define MAP_EMACRxDMAPollDemand                                               \
+        EMACRxDMAPollDemand
+#endif
+#ifdef ROM_EMACRxEnable
+#define MAP_EMACRxEnable                                                      \
+        ROM_EMACRxEnable
+#else
+#define MAP_EMACRxEnable                                                      \
+        EMACRxEnable
+#endif
+#ifdef ROM_EMACRxWatchdogTimerSet
+#define MAP_EMACRxWatchdogTimerSet                                            \
+        ROM_EMACRxWatchdogTimerSet
+#else
+#define MAP_EMACRxWatchdogTimerSet                                            \
+        EMACRxWatchdogTimerSet
+#endif
+#ifdef ROM_EMACStatusGet
+#define MAP_EMACStatusGet                                                     \
+        ROM_EMACStatusGet
+#else
+#define MAP_EMACStatusGet                                                     \
+        EMACStatusGet
+#endif
+#ifdef ROM_EMACTxDisable
+#define MAP_EMACTxDisable                                                     \
+        ROM_EMACTxDisable
+#else
+#define MAP_EMACTxDisable                                                     \
+        EMACTxDisable
+#endif
+#ifdef ROM_EMACTxDMACurrentBufferGet
+#define MAP_EMACTxDMACurrentBufferGet                                         \
+        ROM_EMACTxDMACurrentBufferGet
+#else
+#define MAP_EMACTxDMACurrentBufferGet                                         \
+        EMACTxDMACurrentBufferGet
+#endif
+#ifdef ROM_EMACTxDMACurrentDescriptorGet
+#define MAP_EMACTxDMACurrentDescriptorGet                                     \
+        ROM_EMACTxDMACurrentDescriptorGet
+#else
+#define MAP_EMACTxDMACurrentDescriptorGet                                     \
+        EMACTxDMACurrentDescriptorGet
+#endif
+#ifdef ROM_EMACTxDMADescriptorListGet
+#define MAP_EMACTxDMADescriptorListGet                                        \
+        ROM_EMACTxDMADescriptorListGet
+#else
+#define MAP_EMACTxDMADescriptorListGet                                        \
+        EMACTxDMADescriptorListGet
+#endif
+#ifdef ROM_EMACTxDMADescriptorListSet
+#define MAP_EMACTxDMADescriptorListSet                                        \
+        ROM_EMACTxDMADescriptorListSet
+#else
+#define MAP_EMACTxDMADescriptorListSet                                        \
+        EMACTxDMADescriptorListSet
+#endif
+#ifdef ROM_EMACTxDMAPollDemand
+#define MAP_EMACTxDMAPollDemand                                               \
+        ROM_EMACTxDMAPollDemand
+#else
+#define MAP_EMACTxDMAPollDemand                                               \
+        EMACTxDMAPollDemand
+#endif
+#ifdef ROM_EMACTxEnable
+#define MAP_EMACTxEnable                                                      \
+        ROM_EMACTxEnable
+#else
+#define MAP_EMACTxEnable                                                      \
+        EMACTxEnable
+#endif
+#ifdef ROM_EMACTxFlush
+#define MAP_EMACTxFlush                                                       \
+        ROM_EMACTxFlush
+#else
+#define MAP_EMACTxFlush                                                       \
+        EMACTxFlush
+#endif
+#ifdef ROM_EMACAddrFilterGet
+#define MAP_EMACAddrFilterGet                                                 \
+        ROM_EMACAddrFilterGet
+#else
+#define MAP_EMACAddrFilterGet                                                 \
+        EMACAddrFilterGet
+#endif
+#ifdef ROM_EMACAddrFilterSet
+#define MAP_EMACAddrFilterSet                                                 \
+        ROM_EMACAddrFilterSet
+#else
+#define MAP_EMACAddrFilterSet                                                 \
+        EMACAddrFilterSet
+#endif
+#ifdef ROM_EMACHashFilterBitCalculate
+#define MAP_EMACHashFilterBitCalculate                                        \
+        ROM_EMACHashFilterBitCalculate
+#else
+#define MAP_EMACHashFilterBitCalculate                                        \
+        EMACHashFilterBitCalculate
+#endif
+#ifdef ROM_EMACHashFilterGet
+#define MAP_EMACHashFilterGet                                                 \
+        ROM_EMACHashFilterGet
+#else
+#define MAP_EMACHashFilterGet                                                 \
+        EMACHashFilterGet
+#endif
+#ifdef ROM_EMACHashFilterSet
+#define MAP_EMACHashFilterSet                                                 \
+        ROM_EMACHashFilterSet
+#else
+#define MAP_EMACHashFilterSet                                                 \
+        EMACHashFilterSet
+#endif
+#ifdef ROM_EMACNumAddrGet
+#define MAP_EMACNumAddrGet                                                    \
+        ROM_EMACNumAddrGet
+#else
+#define MAP_EMACNumAddrGet                                                    \
+        EMACNumAddrGet
+#endif
+#ifdef ROM_EMACPHYExtendedRead
+#define MAP_EMACPHYExtendedRead                                               \
+        ROM_EMACPHYExtendedRead
+#else
+#define MAP_EMACPHYExtendedRead                                               \
+        EMACPHYExtendedRead
+#endif
+#ifdef ROM_EMACPHYExtendedWrite
+#define MAP_EMACPHYExtendedWrite                                              \
+        ROM_EMACPHYExtendedWrite
+#else
+#define MAP_EMACPHYExtendedWrite                                              \
+        EMACPHYExtendedWrite
+#endif
+#ifdef ROM_EMACPowerManagementControlGet
+#define MAP_EMACPowerManagementControlGet                                     \
+        ROM_EMACPowerManagementControlGet
+#else
+#define MAP_EMACPowerManagementControlGet                                     \
+        EMACPowerManagementControlGet
+#endif
+#ifdef ROM_EMACPowerManagementControlSet
+#define MAP_EMACPowerManagementControlSet                                     \
+        ROM_EMACPowerManagementControlSet
+#else
+#define MAP_EMACPowerManagementControlSet                                     \
+        EMACPowerManagementControlSet
+#endif
+#ifdef ROM_EMACPowerManagementStatusGet
+#define MAP_EMACPowerManagementStatusGet                                      \
+        ROM_EMACPowerManagementStatusGet
+#else
+#define MAP_EMACPowerManagementStatusGet                                      \
+        EMACPowerManagementStatusGet
+#endif
+#ifdef ROM_EMACRemoteWakeUpFrameFilterGet
+#define MAP_EMACRemoteWakeUpFrameFilterGet                                    \
+        ROM_EMACRemoteWakeUpFrameFilterGet
+#else
+#define MAP_EMACRemoteWakeUpFrameFilterGet                                    \
+        EMACRemoteWakeUpFrameFilterGet
+#endif
+#ifdef ROM_EMACRemoteWakeUpFrameFilterSet
+#define MAP_EMACRemoteWakeUpFrameFilterSet                                    \
+        ROM_EMACRemoteWakeUpFrameFilterSet
+#else
+#define MAP_EMACRemoteWakeUpFrameFilterSet                                    \
+        EMACRemoteWakeUpFrameFilterSet
+#endif
+#ifdef ROM_EMACTimestampAddendSet
+#define MAP_EMACTimestampAddendSet                                            \
+        ROM_EMACTimestampAddendSet
+#else
+#define MAP_EMACTimestampAddendSet                                            \
+        EMACTimestampAddendSet
+#endif
+#ifdef ROM_EMACTimestampConfigGet
+#define MAP_EMACTimestampConfigGet                                            \
+        ROM_EMACTimestampConfigGet
+#else
+#define MAP_EMACTimestampConfigGet                                            \
+        EMACTimestampConfigGet
+#endif
+#ifdef ROM_EMACTimestampConfigSet
+#define MAP_EMACTimestampConfigSet                                            \
+        ROM_EMACTimestampConfigSet
+#else
+#define MAP_EMACTimestampConfigSet                                            \
+        EMACTimestampConfigSet
+#endif
+#ifdef ROM_EMACTimestampDisable
+#define MAP_EMACTimestampDisable                                              \
+        ROM_EMACTimestampDisable
+#else
+#define MAP_EMACTimestampDisable                                              \
+        EMACTimestampDisable
+#endif
+#ifdef ROM_EMACTimestampEnable
+#define MAP_EMACTimestampEnable                                               \
+        ROM_EMACTimestampEnable
+#else
+#define MAP_EMACTimestampEnable                                               \
+        EMACTimestampEnable
+#endif
+#ifdef ROM_EMACTimestampIntStatus
+#define MAP_EMACTimestampIntStatus                                            \
+        ROM_EMACTimestampIntStatus
+#else
+#define MAP_EMACTimestampIntStatus                                            \
+        EMACTimestampIntStatus
+#endif
+#ifdef ROM_EMACTimestampPPSCommand
+#define MAP_EMACTimestampPPSCommand                                           \
+        ROM_EMACTimestampPPSCommand
+#else
+#define MAP_EMACTimestampPPSCommand                                           \
+        EMACTimestampPPSCommand
+#endif
+#ifdef ROM_EMACTimestampPPSCommandModeSet
+#define MAP_EMACTimestampPPSCommandModeSet                                    \
+        ROM_EMACTimestampPPSCommandModeSet
+#else
+#define MAP_EMACTimestampPPSCommandModeSet                                    \
+        EMACTimestampPPSCommandModeSet
+#endif
+#ifdef ROM_EMACTimestampPPSPeriodSet
+#define MAP_EMACTimestampPPSPeriodSet                                         \
+        ROM_EMACTimestampPPSPeriodSet
+#else
+#define MAP_EMACTimestampPPSPeriodSet                                         \
+        EMACTimestampPPSPeriodSet
+#endif
+#ifdef ROM_EMACTimestampPPSSimpleModeSet
+#define MAP_EMACTimestampPPSSimpleModeSet                                     \
+        ROM_EMACTimestampPPSSimpleModeSet
+#else
+#define MAP_EMACTimestampPPSSimpleModeSet                                     \
+        EMACTimestampPPSSimpleModeSet
+#endif
+#ifdef ROM_EMACTimestampSysTimeGet
+#define MAP_EMACTimestampSysTimeGet                                           \
+        ROM_EMACTimestampSysTimeGet
+#else
+#define MAP_EMACTimestampSysTimeGet                                           \
+        EMACTimestampSysTimeGet
+#endif
+#ifdef ROM_EMACTimestampSysTimeSet
+#define MAP_EMACTimestampSysTimeSet                                           \
+        ROM_EMACTimestampSysTimeSet
+#else
+#define MAP_EMACTimestampSysTimeSet                                           \
+        EMACTimestampSysTimeSet
+#endif
+#ifdef ROM_EMACTimestampSysTimeUpdate
+#define MAP_EMACTimestampSysTimeUpdate                                        \
+        ROM_EMACTimestampSysTimeUpdate
+#else
+#define MAP_EMACTimestampSysTimeUpdate                                        \
+        EMACTimestampSysTimeUpdate
+#endif
+#ifdef ROM_EMACTimestampTargetIntDisable
+#define MAP_EMACTimestampTargetIntDisable                                     \
+        ROM_EMACTimestampTargetIntDisable
+#else
+#define MAP_EMACTimestampTargetIntDisable                                     \
+        EMACTimestampTargetIntDisable
+#endif
+#ifdef ROM_EMACTimestampTargetIntEnable
+#define MAP_EMACTimestampTargetIntEnable                                      \
+        ROM_EMACTimestampTargetIntEnable
+#else
+#define MAP_EMACTimestampTargetIntEnable                                      \
+        EMACTimestampTargetIntEnable
+#endif
+#ifdef ROM_EMACTimestampTargetSet
+#define MAP_EMACTimestampTargetSet                                            \
+        ROM_EMACTimestampTargetSet
+#else
+#define MAP_EMACTimestampTargetSet                                            \
+        EMACTimestampTargetSet
+#endif
+#ifdef ROM_EMACVLANHashFilterBitCalculate
+#define MAP_EMACVLANHashFilterBitCalculate                                    \
+        ROM_EMACVLANHashFilterBitCalculate
+#else
+#define MAP_EMACVLANHashFilterBitCalculate                                    \
+        EMACVLANHashFilterBitCalculate
+#endif
+#ifdef ROM_EMACVLANHashFilterGet
+#define MAP_EMACVLANHashFilterGet                                             \
+        ROM_EMACVLANHashFilterGet
+#else
+#define MAP_EMACVLANHashFilterGet                                             \
+        EMACVLANHashFilterGet
+#endif
+#ifdef ROM_EMACVLANHashFilterSet
+#define MAP_EMACVLANHashFilterSet                                             \
+        ROM_EMACVLANHashFilterSet
+#else
+#define MAP_EMACVLANHashFilterSet                                             \
+        EMACVLANHashFilterSet
+#endif
+#ifdef ROM_EMACVLANRxConfigGet
+#define MAP_EMACVLANRxConfigGet                                               \
+        ROM_EMACVLANRxConfigGet
+#else
+#define MAP_EMACVLANRxConfigGet                                               \
+        EMACVLANRxConfigGet
+#endif
+#ifdef ROM_EMACVLANRxConfigSet
+#define MAP_EMACVLANRxConfigSet                                               \
+        ROM_EMACVLANRxConfigSet
+#else
+#define MAP_EMACVLANRxConfigSet                                               \
+        EMACVLANRxConfigSet
+#endif
+#ifdef ROM_EMACVLANTxConfigGet
+#define MAP_EMACVLANTxConfigGet                                               \
+        ROM_EMACVLANTxConfigGet
+#else
+#define MAP_EMACVLANTxConfigGet                                               \
+        EMACVLANTxConfigGet
+#endif
+#ifdef ROM_EMACVLANTxConfigSet
+#define MAP_EMACVLANTxConfigSet                                               \
+        ROM_EMACVLANTxConfigSet
+#else
+#define MAP_EMACVLANTxConfigSet                                               \
+        EMACVLANTxConfigSet
+#endif
+
+//*****************************************************************************
+//
+// Macros for the Flash API.
+//
+//*****************************************************************************
+#ifdef ROM_FlashProgram
+#define MAP_FlashProgram                                                      \
+        ROM_FlashProgram
+#else
+#define MAP_FlashProgram                                                      \
+        FlashProgram
+#endif
+#ifdef ROM_FlashErase
+#define MAP_FlashErase                                                        \
+        ROM_FlashErase
+#else
+#define MAP_FlashErase                                                        \
+        FlashErase
+#endif
+#ifdef ROM_FlashProtectGet
+#define MAP_FlashProtectGet                                                   \
+        ROM_FlashProtectGet
+#else
+#define MAP_FlashProtectGet                                                   \
+        FlashProtectGet
+#endif
+#ifdef ROM_FlashProtectSet
+#define MAP_FlashProtectSet                                                   \
+        ROM_FlashProtectSet
+#else
+#define MAP_FlashProtectSet                                                   \
+        FlashProtectSet
+#endif
+#ifdef ROM_FlashProtectSave
+#define MAP_FlashProtectSave                                                  \
+        ROM_FlashProtectSave
+#else
+#define MAP_FlashProtectSave                                                  \
+        FlashProtectSave
+#endif
+#ifdef ROM_FlashUserGet
+#define MAP_FlashUserGet                                                      \
+        ROM_FlashUserGet
+#else
+#define MAP_FlashUserGet                                                      \
+        FlashUserGet
+#endif
+#ifdef ROM_FlashUserSet
+#define MAP_FlashUserSet                                                      \
+        ROM_FlashUserSet
+#else
+#define MAP_FlashUserSet                                                      \
+        FlashUserSet
+#endif
+#ifdef ROM_FlashUserSave
+#define MAP_FlashUserSave                                                     \
+        ROM_FlashUserSave
+#else
+#define MAP_FlashUserSave                                                     \
+        FlashUserSave
+#endif
+#ifdef ROM_FlashIntEnable
+#define MAP_FlashIntEnable                                                    \
+        ROM_FlashIntEnable
+#else
+#define MAP_FlashIntEnable                                                    \
+        FlashIntEnable
+#endif
+#ifdef ROM_FlashIntDisable
+#define MAP_FlashIntDisable                                                   \
+        ROM_FlashIntDisable
+#else
+#define MAP_FlashIntDisable                                                   \
+        FlashIntDisable
+#endif
+#ifdef ROM_FlashIntStatus
+#define MAP_FlashIntStatus                                                    \
+        ROM_FlashIntStatus
+#else
+#define MAP_FlashIntStatus                                                    \
+        FlashIntStatus
+#endif
+#ifdef ROM_FlashIntClear
+#define MAP_FlashIntClear                                                     \
+        ROM_FlashIntClear
+#else
+#define MAP_FlashIntClear                                                     \
+        FlashIntClear
+#endif
+
+//*****************************************************************************
+//
+// Macros for the FPU API.
+//
+//*****************************************************************************
+#ifdef ROM_FPUEnable
+#define MAP_FPUEnable                                                         \
+        ROM_FPUEnable
+#else
+#define MAP_FPUEnable                                                         \
+        FPUEnable
+#endif
+#ifdef ROM_FPUDisable
+#define MAP_FPUDisable                                                        \
+        ROM_FPUDisable
+#else
+#define MAP_FPUDisable                                                        \
+        FPUDisable
+#endif
+#ifdef ROM_FPUFlushToZeroModeSet
+#define MAP_FPUFlushToZeroModeSet                                             \
+        ROM_FPUFlushToZeroModeSet
+#else
+#define MAP_FPUFlushToZeroModeSet                                             \
+        FPUFlushToZeroModeSet
+#endif
+#ifdef ROM_FPUHalfPrecisionModeSet
+#define MAP_FPUHalfPrecisionModeSet                                           \
+        ROM_FPUHalfPrecisionModeSet
+#else
+#define MAP_FPUHalfPrecisionModeSet                                           \
+        FPUHalfPrecisionModeSet
+#endif
+#ifdef ROM_FPULazyStackingEnable
+#define MAP_FPULazyStackingEnable                                             \
+        ROM_FPULazyStackingEnable
+#else
+#define MAP_FPULazyStackingEnable                                             \
+        FPULazyStackingEnable
+#endif
+#ifdef ROM_FPUNaNModeSet
+#define MAP_FPUNaNModeSet                                                     \
+        ROM_FPUNaNModeSet
+#else
+#define MAP_FPUNaNModeSet                                                     \
+        FPUNaNModeSet
+#endif
+#ifdef ROM_FPURoundingModeSet
+#define MAP_FPURoundingModeSet                                                \
+        ROM_FPURoundingModeSet
+#else
+#define MAP_FPURoundingModeSet                                                \
+        FPURoundingModeSet
+#endif
+#ifdef ROM_FPUStackingDisable
+#define MAP_FPUStackingDisable                                                \
+        ROM_FPUStackingDisable
+#else
+#define MAP_FPUStackingDisable                                                \
+        FPUStackingDisable
+#endif
+#ifdef ROM_FPUStackingEnable
+#define MAP_FPUStackingEnable                                                 \
+        ROM_FPUStackingEnable
+#else
+#define MAP_FPUStackingEnable                                                 \
+        FPUStackingEnable
+#endif
+
+//*****************************************************************************
+//
+// Macros for the GPIO API.
+//
+//*****************************************************************************
+#ifdef ROM_GPIOPinWrite
+#define MAP_GPIOPinWrite                                                      \
+        ROM_GPIOPinWrite
+#else
+#define MAP_GPIOPinWrite                                                      \
+        GPIOPinWrite
+#endif
+#ifdef ROM_GPIODirModeSet
+#define MAP_GPIODirModeSet                                                    \
+        ROM_GPIODirModeSet
+#else
+#define MAP_GPIODirModeSet                                                    \
+        GPIODirModeSet
+#endif
+#ifdef ROM_GPIODirModeGet
+#define MAP_GPIODirModeGet                                                    \
+        ROM_GPIODirModeGet
+#else
+#define MAP_GPIODirModeGet                                                    \
+        GPIODirModeGet
+#endif
+#ifdef ROM_GPIOIntTypeSet
+#define MAP_GPIOIntTypeSet                                                    \
+        ROM_GPIOIntTypeSet
+#else
+#define MAP_GPIOIntTypeSet                                                    \
+        GPIOIntTypeSet
+#endif
+#ifdef ROM_GPIOIntTypeGet
+#define MAP_GPIOIntTypeGet                                                    \
+        ROM_GPIOIntTypeGet
+#else
+#define MAP_GPIOIntTypeGet                                                    \
+        GPIOIntTypeGet
+#endif
+#ifdef ROM_GPIOPadConfigSet
+#define MAP_GPIOPadConfigSet                                                  \
+        ROM_GPIOPadConfigSet
+#else
+#define MAP_GPIOPadConfigSet                                                  \
+        GPIOPadConfigSet
+#endif
+#ifdef ROM_GPIOPadConfigGet
+#define MAP_GPIOPadConfigGet                                                  \
+        ROM_GPIOPadConfigGet
+#else
+#define MAP_GPIOPadConfigGet                                                  \
+        GPIOPadConfigGet
+#endif
+#ifdef ROM_GPIOPinRead
+#define MAP_GPIOPinRead                                                       \
+        ROM_GPIOPinRead
+#else
+#define MAP_GPIOPinRead                                                       \
+        GPIOPinRead
+#endif
+#ifdef ROM_GPIOPinTypeCAN
+#define MAP_GPIOPinTypeCAN                                                    \
+        ROM_GPIOPinTypeCAN
+#else
+#define MAP_GPIOPinTypeCAN                                                    \
+        GPIOPinTypeCAN
+#endif
+#ifdef ROM_GPIOPinTypeComparator
+#define MAP_GPIOPinTypeComparator                                             \
+        ROM_GPIOPinTypeComparator
+#else
+#define MAP_GPIOPinTypeComparator                                             \
+        GPIOPinTypeComparator
+#endif
+#ifdef ROM_GPIOPinTypeGPIOInput
+#define MAP_GPIOPinTypeGPIOInput                                              \
+        ROM_GPIOPinTypeGPIOInput
+#else
+#define MAP_GPIOPinTypeGPIOInput                                              \
+        GPIOPinTypeGPIOInput
+#endif
+#ifdef ROM_GPIOPinTypeGPIOOutput
+#define MAP_GPIOPinTypeGPIOOutput                                             \
+        ROM_GPIOPinTypeGPIOOutput
+#else
+#define MAP_GPIOPinTypeGPIOOutput                                             \
+        GPIOPinTypeGPIOOutput
+#endif
+#ifdef ROM_GPIOPinTypeI2C
+#define MAP_GPIOPinTypeI2C                                                    \
+        ROM_GPIOPinTypeI2C
+#else
+#define MAP_GPIOPinTypeI2C                                                    \
+        GPIOPinTypeI2C
+#endif
+#ifdef ROM_GPIOPinTypePWM
+#define MAP_GPIOPinTypePWM                                                    \
+        ROM_GPIOPinTypePWM
+#else
+#define MAP_GPIOPinTypePWM                                                    \
+        GPIOPinTypePWM
+#endif
+#ifdef ROM_GPIOPinTypeQEI
+#define MAP_GPIOPinTypeQEI                                                    \
+        ROM_GPIOPinTypeQEI
+#else
+#define MAP_GPIOPinTypeQEI                                                    \
+        GPIOPinTypeQEI
+#endif
+#ifdef ROM_GPIOPinTypeSSI
+#define MAP_GPIOPinTypeSSI                                                    \
+        ROM_GPIOPinTypeSSI
+#else
+#define MAP_GPIOPinTypeSSI                                                    \
+        GPIOPinTypeSSI
+#endif
+#ifdef ROM_GPIOPinTypeTimer
+#define MAP_GPIOPinTypeTimer                                                  \
+        ROM_GPIOPinTypeTimer
+#else
+#define MAP_GPIOPinTypeTimer                                                  \
+        GPIOPinTypeTimer
+#endif
+#ifdef ROM_GPIOPinTypeUART
+#define MAP_GPIOPinTypeUART                                                   \
+        ROM_GPIOPinTypeUART
+#else
+#define MAP_GPIOPinTypeUART                                                   \
+        GPIOPinTypeUART
+#endif
+#ifdef ROM_GPIOPinTypeGPIOOutputOD
+#define MAP_GPIOPinTypeGPIOOutputOD                                           \
+        ROM_GPIOPinTypeGPIOOutputOD
+#else
+#define MAP_GPIOPinTypeGPIOOutputOD                                           \
+        GPIOPinTypeGPIOOutputOD
+#endif
+#ifdef ROM_GPIOPinTypeADC
+#define MAP_GPIOPinTypeADC                                                    \
+        ROM_GPIOPinTypeADC
+#else
+#define MAP_GPIOPinTypeADC                                                    \
+        GPIOPinTypeADC
+#endif
+#ifdef ROM_GPIOPinTypeUSBDigital
+#define MAP_GPIOPinTypeUSBDigital                                             \
+        ROM_GPIOPinTypeUSBDigital
+#else
+#define MAP_GPIOPinTypeUSBDigital                                             \
+        GPIOPinTypeUSBDigital
+#endif
+#ifdef ROM_GPIOPinConfigure
+#define MAP_GPIOPinConfigure                                                  \
+        ROM_GPIOPinConfigure
+#else
+#define MAP_GPIOPinConfigure                                                  \
+        GPIOPinConfigure
+#endif
+#ifdef ROM_GPIOPinTypeUSBAnalog
+#define MAP_GPIOPinTypeUSBAnalog                                              \
+        ROM_GPIOPinTypeUSBAnalog
+#else
+#define MAP_GPIOPinTypeUSBAnalog                                              \
+        GPIOPinTypeUSBAnalog
+#endif
+#ifdef ROM_GPIODMATriggerEnable
+#define MAP_GPIODMATriggerEnable                                              \
+        ROM_GPIODMATriggerEnable
+#else
+#define MAP_GPIODMATriggerEnable                                              \
+        GPIODMATriggerEnable
+#endif
+#ifdef ROM_GPIODMATriggerDisable
+#define MAP_GPIODMATriggerDisable                                             \
+        ROM_GPIODMATriggerDisable
+#else
+#define MAP_GPIODMATriggerDisable                                             \
+        GPIODMATriggerDisable
+#endif
+#ifdef ROM_GPIOADCTriggerEnable
+#define MAP_GPIOADCTriggerEnable                                              \
+        ROM_GPIOADCTriggerEnable
+#else
+#define MAP_GPIOADCTriggerEnable                                              \
+        GPIOADCTriggerEnable
+#endif
+#ifdef ROM_GPIOADCTriggerDisable
+#define MAP_GPIOADCTriggerDisable                                             \
+        ROM_GPIOADCTriggerDisable
+#else
+#define MAP_GPIOADCTriggerDisable                                             \
+        GPIOADCTriggerDisable
+#endif
+#ifdef ROM_GPIOPinTypeI2CSCL
+#define MAP_GPIOPinTypeI2CSCL                                                 \
+        ROM_GPIOPinTypeI2CSCL
+#else
+#define MAP_GPIOPinTypeI2CSCL                                                 \
+        GPIOPinTypeI2CSCL
+#endif
+#ifdef ROM_GPIOPinTypeOneWire
+#define MAP_GPIOPinTypeOneWire                                                \
+        ROM_GPIOPinTypeOneWire
+#else
+#define MAP_GPIOPinTypeOneWire                                                \
+        GPIOPinTypeOneWire
+#endif
+#ifdef ROM_GPIOPinTypeWakeHigh
+#define MAP_GPIOPinTypeWakeHigh                                               \
+        ROM_GPIOPinTypeWakeHigh
+#else
+#define MAP_GPIOPinTypeWakeHigh                                               \
+        GPIOPinTypeWakeHigh
+#endif
+#ifdef ROM_GPIOPinTypeWakeLow
+#define MAP_GPIOPinTypeWakeLow                                                \
+        ROM_GPIOPinTypeWakeLow
+#else
+#define MAP_GPIOPinTypeWakeLow                                                \
+        GPIOPinTypeWakeLow
+#endif
+#ifdef ROM_GPIOIntClear
+#define MAP_GPIOIntClear                                                      \
+        ROM_GPIOIntClear
+#else
+#define MAP_GPIOIntClear                                                      \
+        GPIOIntClear
+#endif
+#ifdef ROM_GPIOIntDisable
+#define MAP_GPIOIntDisable                                                    \
+        ROM_GPIOIntDisable
+#else
+#define MAP_GPIOIntDisable                                                    \
+        GPIOIntDisable
+#endif
+#ifdef ROM_GPIOIntEnable
+#define MAP_GPIOIntEnable                                                     \
+        ROM_GPIOIntEnable
+#else
+#define MAP_GPIOIntEnable                                                     \
+        GPIOIntEnable
+#endif
+#ifdef ROM_GPIOIntStatus
+#define MAP_GPIOIntStatus                                                     \
+        ROM_GPIOIntStatus
+#else
+#define MAP_GPIOIntStatus                                                     \
+        GPIOIntStatus
+#endif
+#ifdef ROM_GPIOPinWakeStatus
+#define MAP_GPIOPinWakeStatus                                                 \
+        ROM_GPIOPinWakeStatus
+#else
+#define MAP_GPIOPinWakeStatus                                                 \
+        GPIOPinWakeStatus
+#endif
+
+//*****************************************************************************
+//
+// Macros for the Hibernate API.
+//
+//*****************************************************************************
+#ifdef ROM_HibernateIntClear
+#define MAP_HibernateIntClear                                                 \
+        ROM_HibernateIntClear
+#else
+#define MAP_HibernateIntClear                                                 \
+        HibernateIntClear
+#endif
+#ifdef ROM_HibernateEnableExpClk
+#define MAP_HibernateEnableExpClk                                             \
+        ROM_HibernateEnableExpClk
+#else
+#define MAP_HibernateEnableExpClk                                             \
+        HibernateEnableExpClk
+#endif
+#ifdef ROM_HibernateDisable
+#define MAP_HibernateDisable                                                  \
+        ROM_HibernateDisable
+#else
+#define MAP_HibernateDisable                                                  \
+        HibernateDisable
+#endif
+#ifdef ROM_HibernateRTCEnable
+#define MAP_HibernateRTCEnable                                                \
+        ROM_HibernateRTCEnable
+#else
+#define MAP_HibernateRTCEnable                                                \
+        HibernateRTCEnable
+#endif
+#ifdef ROM_HibernateRTCDisable
+#define MAP_HibernateRTCDisable                                               \
+        ROM_HibernateRTCDisable
+#else
+#define MAP_HibernateRTCDisable                                               \
+        HibernateRTCDisable
+#endif
+#ifdef ROM_HibernateWakeSet
+#define MAP_HibernateWakeSet                                                  \
+        ROM_HibernateWakeSet
+#else
+#define MAP_HibernateWakeSet                                                  \
+        HibernateWakeSet
+#endif
+#ifdef ROM_HibernateWakeGet
+#define MAP_HibernateWakeGet                                                  \
+        ROM_HibernateWakeGet
+#else
+#define MAP_HibernateWakeGet                                                  \
+        HibernateWakeGet
+#endif
+#ifdef ROM_HibernateLowBatSet
+#define MAP_HibernateLowBatSet                                                \
+        ROM_HibernateLowBatSet
+#else
+#define MAP_HibernateLowBatSet                                                \
+        HibernateLowBatSet
+#endif
+#ifdef ROM_HibernateLowBatGet
+#define MAP_HibernateLowBatGet                                                \
+        ROM_HibernateLowBatGet
+#else
+#define MAP_HibernateLowBatGet                                                \
+        HibernateLowBatGet
+#endif
+#ifdef ROM_HibernateRTCSet
+#define MAP_HibernateRTCSet                                                   \
+        ROM_HibernateRTCSet
+#else
+#define MAP_HibernateRTCSet                                                   \
+        HibernateRTCSet
+#endif
+#ifdef ROM_HibernateRTCGet
+#define MAP_HibernateRTCGet                                                   \
+        ROM_HibernateRTCGet
+#else
+#define MAP_HibernateRTCGet                                                   \
+        HibernateRTCGet
+#endif
+#ifdef ROM_HibernateRTCTrimSet
+#define MAP_HibernateRTCTrimSet                                               \
+        ROM_HibernateRTCTrimSet
+#else
+#define MAP_HibernateRTCTrimSet                                               \
+        HibernateRTCTrimSet
+#endif
+#ifdef ROM_HibernateRTCTrimGet
+#define MAP_HibernateRTCTrimGet                                               \
+        ROM_HibernateRTCTrimGet
+#else
+#define MAP_HibernateRTCTrimGet                                               \
+        HibernateRTCTrimGet
+#endif
+#ifdef ROM_HibernateDataSet
+#define MAP_HibernateDataSet                                                  \
+        ROM_HibernateDataSet
+#else
+#define MAP_HibernateDataSet                                                  \
+        HibernateDataSet
+#endif
+#ifdef ROM_HibernateDataGet
+#define MAP_HibernateDataGet                                                  \
+        ROM_HibernateDataGet
+#else
+#define MAP_HibernateDataGet                                                  \
+        HibernateDataGet
+#endif
+#ifdef ROM_HibernateRequest
+#define MAP_HibernateRequest                                                  \
+        ROM_HibernateRequest
+#else
+#define MAP_HibernateRequest                                                  \
+        HibernateRequest
+#endif
+#ifdef ROM_HibernateIntEnable
+#define MAP_HibernateIntEnable                                                \
+        ROM_HibernateIntEnable
+#else
+#define MAP_HibernateIntEnable                                                \
+        HibernateIntEnable
+#endif
+#ifdef ROM_HibernateIntDisable
+#define MAP_HibernateIntDisable                                               \
+        ROM_HibernateIntDisable
+#else
+#define MAP_HibernateIntDisable                                               \
+        HibernateIntDisable
+#endif
+#ifdef ROM_HibernateIntStatus
+#define MAP_HibernateIntStatus                                                \
+        ROM_HibernateIntStatus
+#else
+#define MAP_HibernateIntStatus                                                \
+        HibernateIntStatus
+#endif
+#ifdef ROM_HibernateIsActive
+#define MAP_HibernateIsActive                                                 \
+        ROM_HibernateIsActive
+#else
+#define MAP_HibernateIsActive                                                 \
+        HibernateIsActive
+#endif
+#ifdef ROM_HibernateRTCSSGet
+#define MAP_HibernateRTCSSGet                                                 \
+        ROM_HibernateRTCSSGet
+#else
+#define MAP_HibernateRTCSSGet                                                 \
+        HibernateRTCSSGet
+#endif
+#ifdef ROM_HibernateClockConfig
+#define MAP_HibernateClockConfig                                              \
+        ROM_HibernateClockConfig
+#else
+#define MAP_HibernateClockConfig                                              \
+        HibernateClockConfig
+#endif
+#ifdef ROM_HibernateBatCheckStart
+#define MAP_HibernateBatCheckStart                                            \
+        ROM_HibernateBatCheckStart
+#else
+#define MAP_HibernateBatCheckStart                                            \
+        HibernateBatCheckStart
+#endif
+#ifdef ROM_HibernateBatCheckDone
+#define MAP_HibernateBatCheckDone                                             \
+        ROM_HibernateBatCheckDone
+#else
+#define MAP_HibernateBatCheckDone                                             \
+        HibernateBatCheckDone
+#endif
+#ifdef ROM_HibernateGPIORetentionEnable
+#define MAP_HibernateGPIORetentionEnable                                      \
+        ROM_HibernateGPIORetentionEnable
+#else
+#define MAP_HibernateGPIORetentionEnable                                      \
+        HibernateGPIORetentionEnable
+#endif
+#ifdef ROM_HibernateGPIORetentionDisable
+#define MAP_HibernateGPIORetentionDisable                                     \
+        ROM_HibernateGPIORetentionDisable
+#else
+#define MAP_HibernateGPIORetentionDisable                                     \
+        HibernateGPIORetentionDisable
+#endif
+#ifdef ROM_HibernateGPIORetentionGet
+#define MAP_HibernateGPIORetentionGet                                         \
+        ROM_HibernateGPIORetentionGet
+#else
+#define MAP_HibernateGPIORetentionGet                                         \
+        HibernateGPIORetentionGet
+#endif
+#ifdef ROM_HibernateCounterMode
+#define MAP_HibernateCounterMode                                              \
+        ROM_HibernateCounterMode
+#else
+#define MAP_HibernateCounterMode                                              \
+        HibernateCounterMode
+#endif
+#ifdef ROM_HibernateCalendarSet
+#define MAP_HibernateCalendarSet                                              \
+        ROM_HibernateCalendarSet
+#else
+#define MAP_HibernateCalendarSet                                              \
+        HibernateCalendarSet
+#endif
+#ifdef ROM_HibernateCalendarGet
+#define MAP_HibernateCalendarGet                                              \
+        ROM_HibernateCalendarGet
+#else
+#define MAP_HibernateCalendarGet                                              \
+        HibernateCalendarGet
+#endif
+#ifdef ROM_HibernateCalendarMatchSet
+#define MAP_HibernateCalendarMatchSet                                         \
+        ROM_HibernateCalendarMatchSet
+#else
+#define MAP_HibernateCalendarMatchSet                                         \
+        HibernateCalendarMatchSet
+#endif
+#ifdef ROM_HibernateCalendarMatchGet
+#define MAP_HibernateCalendarMatchGet                                         \
+        ROM_HibernateCalendarMatchGet
+#else
+#define MAP_HibernateCalendarMatchGet                                         \
+        HibernateCalendarMatchGet
+#endif
+#ifdef ROM_HibernateTamperDisable
+#define MAP_HibernateTamperDisable                                            \
+        ROM_HibernateTamperDisable
+#else
+#define MAP_HibernateTamperDisable                                            \
+        HibernateTamperDisable
+#endif
+#ifdef ROM_HibernateTamperEnable
+#define MAP_HibernateTamperEnable                                             \
+        ROM_HibernateTamperEnable
+#else
+#define MAP_HibernateTamperEnable                                             \
+        HibernateTamperEnable
+#endif
+#ifdef ROM_HibernateTamperEventsClear
+#define MAP_HibernateTamperEventsClear                                        \
+        ROM_HibernateTamperEventsClear
+#else
+#define MAP_HibernateTamperEventsClear                                        \
+        HibernateTamperEventsClear
+#endif
+#ifdef ROM_HibernateTamperEventsConfig
+#define MAP_HibernateTamperEventsConfig                                       \
+        ROM_HibernateTamperEventsConfig
+#else
+#define MAP_HibernateTamperEventsConfig                                       \
+        HibernateTamperEventsConfig
+#endif
+#ifdef ROM_HibernateTamperEventsGet
+#define MAP_HibernateTamperEventsGet                                          \
+        ROM_HibernateTamperEventsGet
+#else
+#define MAP_HibernateTamperEventsGet                                          \
+        HibernateTamperEventsGet
+#endif
+#ifdef ROM_HibernateTamperExtOscValid
+#define MAP_HibernateTamperExtOscValid                                        \
+        ROM_HibernateTamperExtOscValid
+#else
+#define MAP_HibernateTamperExtOscValid                                        \
+        HibernateTamperExtOscValid
+#endif
+#ifdef ROM_HibernateTamperExtOscRecover
+#define MAP_HibernateTamperExtOscRecover                                      \
+        ROM_HibernateTamperExtOscRecover
+#else
+#define MAP_HibernateTamperExtOscRecover                                      \
+        HibernateTamperExtOscRecover
+#endif
+#ifdef ROM_HibernateTamperIODisable
+#define MAP_HibernateTamperIODisable                                          \
+        ROM_HibernateTamperIODisable
+#else
+#define MAP_HibernateTamperIODisable                                          \
+        HibernateTamperIODisable
+#endif
+#ifdef ROM_HibernateTamperIOEnable
+#define MAP_HibernateTamperIOEnable                                           \
+        ROM_HibernateTamperIOEnable
+#else
+#define MAP_HibernateTamperIOEnable                                           \
+        HibernateTamperIOEnable
+#endif
+#ifdef ROM_HibernateTamperStatusGet
+#define MAP_HibernateTamperStatusGet                                          \
+        ROM_HibernateTamperStatusGet
+#else
+#define MAP_HibernateTamperStatusGet                                          \
+        HibernateTamperStatusGet
+#endif
+#ifdef ROM_HibernateRTCMatchGet
+#define MAP_HibernateRTCMatchGet                                              \
+        ROM_HibernateRTCMatchGet
+#else
+#define MAP_HibernateRTCMatchGet                                              \
+        HibernateRTCMatchGet
+#endif
+#ifdef ROM_HibernateRTCMatchSet
+#define MAP_HibernateRTCMatchSet                                              \
+        ROM_HibernateRTCMatchSet
+#else
+#define MAP_HibernateRTCMatchSet                                              \
+        HibernateRTCMatchSet
+#endif
+#ifdef ROM_HibernateRTCSSMatchGet
+#define MAP_HibernateRTCSSMatchGet                                            \
+        ROM_HibernateRTCSSMatchGet
+#else
+#define MAP_HibernateRTCSSMatchGet                                            \
+        HibernateRTCSSMatchGet
+#endif
+#ifdef ROM_HibernateRTCSSMatchSet
+#define MAP_HibernateRTCSSMatchSet                                            \
+        ROM_HibernateRTCSSMatchSet
+#else
+#define MAP_HibernateRTCSSMatchSet                                            \
+        HibernateRTCSSMatchSet
+#endif
+
+//*****************************************************************************
+//
+// Macros for the I2C API.
+//
+//*****************************************************************************
+#ifdef ROM_I2CMasterDataPut
+#define MAP_I2CMasterDataPut                                                  \
+        ROM_I2CMasterDataPut
+#else
+#define MAP_I2CMasterDataPut                                                  \
+        I2CMasterDataPut
+#endif
+#ifdef ROM_I2CMasterInitExpClk
+#define MAP_I2CMasterInitExpClk                                               \
+        ROM_I2CMasterInitExpClk
+#else
+#define MAP_I2CMasterInitExpClk                                               \
+        I2CMasterInitExpClk
+#endif
+#ifdef ROM_I2CSlaveInit
+#define MAP_I2CSlaveInit                                                      \
+        ROM_I2CSlaveInit
+#else
+#define MAP_I2CSlaveInit                                                      \
+        I2CSlaveInit
+#endif
+#ifdef ROM_I2CMasterEnable
+#define MAP_I2CMasterEnable                                                   \
+        ROM_I2CMasterEnable
+#else
+#define MAP_I2CMasterEnable                                                   \
+        I2CMasterEnable
+#endif
+#ifdef ROM_I2CSlaveEnable
+#define MAP_I2CSlaveEnable                                                    \
+        ROM_I2CSlaveEnable
+#else
+#define MAP_I2CSlaveEnable                                                    \
+        I2CSlaveEnable
+#endif
+#ifdef ROM_I2CMasterDisable
+#define MAP_I2CMasterDisable                                                  \
+        ROM_I2CMasterDisable
+#else
+#define MAP_I2CMasterDisable                                                  \
+        I2CMasterDisable
+#endif
+#ifdef ROM_I2CSlaveDisable
+#define MAP_I2CSlaveDisable                                                   \
+        ROM_I2CSlaveDisable
+#else
+#define MAP_I2CSlaveDisable                                                   \
+        I2CSlaveDisable
+#endif
+#ifdef ROM_I2CMasterIntEnable
+#define MAP_I2CMasterIntEnable                                                \
+        ROM_I2CMasterIntEnable
+#else
+#define MAP_I2CMasterIntEnable                                                \
+        I2CMasterIntEnable
+#endif
+#ifdef ROM_I2CSlaveIntEnable
+#define MAP_I2CSlaveIntEnable                                                 \
+        ROM_I2CSlaveIntEnable
+#else
+#define MAP_I2CSlaveIntEnable                                                 \
+        I2CSlaveIntEnable
+#endif
+#ifdef ROM_I2CMasterIntDisable
+#define MAP_I2CMasterIntDisable                                               \
+        ROM_I2CMasterIntDisable
+#else
+#define MAP_I2CMasterIntDisable                                               \
+        I2CMasterIntDisable
+#endif
+#ifdef ROM_I2CSlaveIntDisable
+#define MAP_I2CSlaveIntDisable                                                \
+        ROM_I2CSlaveIntDisable
+#else
+#define MAP_I2CSlaveIntDisable                                                \
+        I2CSlaveIntDisable
+#endif
+#ifdef ROM_I2CMasterIntStatus
+#define MAP_I2CMasterIntStatus                                                \
+        ROM_I2CMasterIntStatus
+#else
+#define MAP_I2CMasterIntStatus                                                \
+        I2CMasterIntStatus
+#endif
+#ifdef ROM_I2CSlaveIntStatus
+#define MAP_I2CSlaveIntStatus                                                 \
+        ROM_I2CSlaveIntStatus
+#else
+#define MAP_I2CSlaveIntStatus                                                 \
+        I2CSlaveIntStatus
+#endif
+#ifdef ROM_I2CMasterIntClear
+#define MAP_I2CMasterIntClear                                                 \
+        ROM_I2CMasterIntClear
+#else
+#define MAP_I2CMasterIntClear                                                 \
+        I2CMasterIntClear
+#endif
+#ifdef ROM_I2CSlaveIntClear
+#define MAP_I2CSlaveIntClear                                                  \
+        ROM_I2CSlaveIntClear
+#else
+#define MAP_I2CSlaveIntClear                                                  \
+        I2CSlaveIntClear
+#endif
+#ifdef ROM_I2CMasterSlaveAddrSet
+#define MAP_I2CMasterSlaveAddrSet                                             \
+        ROM_I2CMasterSlaveAddrSet
+#else
+#define MAP_I2CMasterSlaveAddrSet                                             \
+        I2CMasterSlaveAddrSet
+#endif
+#ifdef ROM_I2CMasterBusy
+#define MAP_I2CMasterBusy                                                     \
+        ROM_I2CMasterBusy
+#else
+#define MAP_I2CMasterBusy                                                     \
+        I2CMasterBusy
+#endif
+#ifdef ROM_I2CMasterBusBusy
+#define MAP_I2CMasterBusBusy                                                  \
+        ROM_I2CMasterBusBusy
+#else
+#define MAP_I2CMasterBusBusy                                                  \
+        I2CMasterBusBusy
+#endif
+#ifdef ROM_I2CMasterControl
+#define MAP_I2CMasterControl                                                  \
+        ROM_I2CMasterControl
+#else
+#define MAP_I2CMasterControl                                                  \
+        I2CMasterControl
+#endif
+#ifdef ROM_I2CMasterErr
+#define MAP_I2CMasterErr                                                      \
+        ROM_I2CMasterErr
+#else
+#define MAP_I2CMasterErr                                                      \
+        I2CMasterErr
+#endif
+#ifdef ROM_I2CMasterDataGet
+#define MAP_I2CMasterDataGet                                                  \
+        ROM_I2CMasterDataGet
+#else
+#define MAP_I2CMasterDataGet                                                  \
+        I2CMasterDataGet
+#endif
+#ifdef ROM_I2CSlaveStatus
+#define MAP_I2CSlaveStatus                                                    \
+        ROM_I2CSlaveStatus
+#else
+#define MAP_I2CSlaveStatus                                                    \
+        I2CSlaveStatus
+#endif
+#ifdef ROM_I2CSlaveDataPut
+#define MAP_I2CSlaveDataPut                                                   \
+        ROM_I2CSlaveDataPut
+#else
+#define MAP_I2CSlaveDataPut                                                   \
+        I2CSlaveDataPut
+#endif
+#ifdef ROM_I2CSlaveDataGet
+#define MAP_I2CSlaveDataGet                                                   \
+        ROM_I2CSlaveDataGet
+#else
+#define MAP_I2CSlaveDataGet                                                   \
+        I2CSlaveDataGet
+#endif
+#ifdef ROM_I2CSlaveIntEnableEx
+#define MAP_I2CSlaveIntEnableEx                                               \
+        ROM_I2CSlaveIntEnableEx
+#else
+#define MAP_I2CSlaveIntEnableEx                                               \
+        I2CSlaveIntEnableEx
+#endif
+#ifdef ROM_I2CSlaveIntDisableEx
+#define MAP_I2CSlaveIntDisableEx                                              \
+        ROM_I2CSlaveIntDisableEx
+#else
+#define MAP_I2CSlaveIntDisableEx                                              \
+        I2CSlaveIntDisableEx
+#endif
+#ifdef ROM_I2CSlaveIntStatusEx
+#define MAP_I2CSlaveIntStatusEx                                               \
+        ROM_I2CSlaveIntStatusEx
+#else
+#define MAP_I2CSlaveIntStatusEx                                               \
+        I2CSlaveIntStatusEx
+#endif
+#ifdef ROM_I2CSlaveIntClearEx
+#define MAP_I2CSlaveIntClearEx                                                \
+        ROM_I2CSlaveIntClearEx
+#else
+#define MAP_I2CSlaveIntClearEx                                                \
+        I2CSlaveIntClearEx
+#endif
+#ifdef ROM_I2CMasterIntEnableEx
+#define MAP_I2CMasterIntEnableEx                                              \
+        ROM_I2CMasterIntEnableEx
+#else
+#define MAP_I2CMasterIntEnableEx                                              \
+        I2CMasterIntEnableEx
+#endif
+#ifdef ROM_I2CMasterIntDisableEx
+#define MAP_I2CMasterIntDisableEx                                             \
+        ROM_I2CMasterIntDisableEx
+#else
+#define MAP_I2CMasterIntDisableEx                                             \
+        I2CMasterIntDisableEx
+#endif
+#ifdef ROM_I2CMasterIntStatusEx
+#define MAP_I2CMasterIntStatusEx                                              \
+        ROM_I2CMasterIntStatusEx
+#else
+#define MAP_I2CMasterIntStatusEx                                              \
+        I2CMasterIntStatusEx
+#endif
+#ifdef ROM_I2CMasterIntClearEx
+#define MAP_I2CMasterIntClearEx                                               \
+        ROM_I2CMasterIntClearEx
+#else
+#define MAP_I2CMasterIntClearEx                                               \
+        I2CMasterIntClearEx
+#endif
+#ifdef ROM_I2CMasterTimeoutSet
+#define MAP_I2CMasterTimeoutSet                                               \
+        ROM_I2CMasterTimeoutSet
+#else
+#define MAP_I2CMasterTimeoutSet                                               \
+        I2CMasterTimeoutSet
+#endif
+#ifdef ROM_I2CSlaveACKOverride
+#define MAP_I2CSlaveACKOverride                                               \
+        ROM_I2CSlaveACKOverride
+#else
+#define MAP_I2CSlaveACKOverride                                               \
+        I2CSlaveACKOverride
+#endif
+#ifdef ROM_I2CSlaveACKValueSet
+#define MAP_I2CSlaveACKValueSet                                               \
+        ROM_I2CSlaveACKValueSet
+#else
+#define MAP_I2CSlaveACKValueSet                                               \
+        I2CSlaveACKValueSet
+#endif
+#ifdef ROM_I2CSlaveAddressSet
+#define MAP_I2CSlaveAddressSet                                                \
+        ROM_I2CSlaveAddressSet
+#else
+#define MAP_I2CSlaveAddressSet                                                \
+        I2CSlaveAddressSet
+#endif
+#ifdef ROM_I2CMasterLineStateGet
+#define MAP_I2CMasterLineStateGet                                             \
+        ROM_I2CMasterLineStateGet
+#else
+#define MAP_I2CMasterLineStateGet                                             \
+        I2CMasterLineStateGet
+#endif
+#ifdef ROM_I2CTxFIFOConfigSet
+#define MAP_I2CTxFIFOConfigSet                                                \
+        ROM_I2CTxFIFOConfigSet
+#else
+#define MAP_I2CTxFIFOConfigSet                                                \
+        I2CTxFIFOConfigSet
+#endif
+#ifdef ROM_I2CTxFIFOFlush
+#define MAP_I2CTxFIFOFlush                                                    \
+        ROM_I2CTxFIFOFlush
+#else
+#define MAP_I2CTxFIFOFlush                                                    \
+        I2CTxFIFOFlush
+#endif
+#ifdef ROM_I2CRxFIFOConfigSet
+#define MAP_I2CRxFIFOConfigSet                                                \
+        ROM_I2CRxFIFOConfigSet
+#else
+#define MAP_I2CRxFIFOConfigSet                                                \
+        I2CRxFIFOConfigSet
+#endif
+#ifdef ROM_I2CRxFIFOFlush
+#define MAP_I2CRxFIFOFlush                                                    \
+        ROM_I2CRxFIFOFlush
+#else
+#define MAP_I2CRxFIFOFlush                                                    \
+        I2CRxFIFOFlush
+#endif
+#ifdef ROM_I2CFIFOStatus
+#define MAP_I2CFIFOStatus                                                     \
+        ROM_I2CFIFOStatus
+#else
+#define MAP_I2CFIFOStatus                                                     \
+        I2CFIFOStatus
+#endif
+#ifdef ROM_I2CFIFODataPut
+#define MAP_I2CFIFODataPut                                                    \
+        ROM_I2CFIFODataPut
+#else
+#define MAP_I2CFIFODataPut                                                    \
+        I2CFIFODataPut
+#endif
+#ifdef ROM_I2CFIFODataPutNonBlocking
+#define MAP_I2CFIFODataPutNonBlocking                                         \
+        ROM_I2CFIFODataPutNonBlocking
+#else
+#define MAP_I2CFIFODataPutNonBlocking                                         \
+        I2CFIFODataPutNonBlocking
+#endif
+#ifdef ROM_I2CFIFODataGet
+#define MAP_I2CFIFODataGet                                                    \
+        ROM_I2CFIFODataGet
+#else
+#define MAP_I2CFIFODataGet                                                    \
+        I2CFIFODataGet
+#endif
+#ifdef ROM_I2CFIFODataGetNonBlocking
+#define MAP_I2CFIFODataGetNonBlocking                                         \
+        ROM_I2CFIFODataGetNonBlocking
+#else
+#define MAP_I2CFIFODataGetNonBlocking                                         \
+        I2CFIFODataGetNonBlocking
+#endif
+#ifdef ROM_I2CMasterBurstLengthSet
+#define MAP_I2CMasterBurstLengthSet                                           \
+        ROM_I2CMasterBurstLengthSet
+#else
+#define MAP_I2CMasterBurstLengthSet                                           \
+        I2CMasterBurstLengthSet
+#endif
+#ifdef ROM_I2CMasterBurstCountGet
+#define MAP_I2CMasterBurstCountGet                                            \
+        ROM_I2CMasterBurstCountGet
+#else
+#define MAP_I2CMasterBurstCountGet                                            \
+        I2CMasterBurstCountGet
+#endif
+#ifdef ROM_I2CSlaveFIFODisable
+#define MAP_I2CSlaveFIFODisable                                               \
+        ROM_I2CSlaveFIFODisable
+#else
+#define MAP_I2CSlaveFIFODisable                                               \
+        I2CSlaveFIFODisable
+#endif
+#ifdef ROM_I2CSlaveFIFOEnable
+#define MAP_I2CSlaveFIFOEnable                                                \
+        ROM_I2CSlaveFIFOEnable
+#else
+#define MAP_I2CSlaveFIFOEnable                                                \
+        I2CSlaveFIFOEnable
+#endif
+#ifdef ROM_I2CMasterGlitchFilterConfigSet
+#define MAP_I2CMasterGlitchFilterConfigSet                                    \
+        ROM_I2CMasterGlitchFilterConfigSet
+#else
+#define MAP_I2CMasterGlitchFilterConfigSet                                    \
+        I2CMasterGlitchFilterConfigSet
+#endif
+
+//*****************************************************************************
+//
+// Macros for the Interrupt API.
+//
+//*****************************************************************************
+#ifdef ROM_IntEnable
+#define MAP_IntEnable                                                         \
+        ROM_IntEnable
+#else
+#define MAP_IntEnable                                                         \
+        IntEnable
+#endif
+#ifdef ROM_IntMasterEnable
+#define MAP_IntMasterEnable                                                   \
+        ROM_IntMasterEnable
+#else
+#define MAP_IntMasterEnable                                                   \
+        IntMasterEnable
+#endif
+#ifdef ROM_IntMasterDisable
+#define MAP_IntMasterDisable                                                  \
+        ROM_IntMasterDisable
+#else
+#define MAP_IntMasterDisable                                                  \
+        IntMasterDisable
+#endif
+#ifdef ROM_IntDisable
+#define MAP_IntDisable                                                        \
+        ROM_IntDisable
+#else
+#define MAP_IntDisable                                                        \
+        IntDisable
+#endif
+#ifdef ROM_IntPriorityGroupingSet
+#define MAP_IntPriorityGroupingSet                                            \
+        ROM_IntPriorityGroupingSet
+#else
+#define MAP_IntPriorityGroupingSet                                            \
+        IntPriorityGroupingSet
+#endif
+#ifdef ROM_IntPriorityGroupingGet
+#define MAP_IntPriorityGroupingGet                                            \
+        ROM_IntPriorityGroupingGet
+#else
+#define MAP_IntPriorityGroupingGet                                            \
+        IntPriorityGroupingGet
+#endif
+#ifdef ROM_IntPrioritySet
+#define MAP_IntPrioritySet                                                    \
+        ROM_IntPrioritySet
+#else
+#define MAP_IntPrioritySet                                                    \
+        IntPrioritySet
+#endif
+#ifdef ROM_IntPriorityGet
+#define MAP_IntPriorityGet                                                    \
+        ROM_IntPriorityGet
+#else
+#define MAP_IntPriorityGet                                                    \
+        IntPriorityGet
+#endif
+#ifdef ROM_IntPendSet
+#define MAP_IntPendSet                                                        \
+        ROM_IntPendSet
+#else
+#define MAP_IntPendSet                                                        \
+        IntPendSet
+#endif
+#ifdef ROM_IntPendClear
+#define MAP_IntPendClear                                                      \
+        ROM_IntPendClear
+#else
+#define MAP_IntPendClear                                                      \
+        IntPendClear
+#endif
+#ifdef ROM_IntPriorityMaskSet
+#define MAP_IntPriorityMaskSet                                                \
+        ROM_IntPriorityMaskSet
+#else
+#define MAP_IntPriorityMaskSet                                                \
+        IntPriorityMaskSet
+#endif
+#ifdef ROM_IntPriorityMaskGet
+#define MAP_IntPriorityMaskGet                                                \
+        ROM_IntPriorityMaskGet
+#else
+#define MAP_IntPriorityMaskGet                                                \
+        IntPriorityMaskGet
+#endif
+#ifdef ROM_IntIsEnabled
+#define MAP_IntIsEnabled                                                      \
+        ROM_IntIsEnabled
+#else
+#define MAP_IntIsEnabled                                                      \
+        IntIsEnabled
+#endif
+#ifdef ROM_IntTrigger
+#define MAP_IntTrigger                                                        \
+        ROM_IntTrigger
+#else
+#define MAP_IntTrigger                                                        \
+        IntTrigger
+#endif
+
+//*****************************************************************************
+//
+// Macros for the LCD API.
+//
+//*****************************************************************************
+#ifdef ROM_LCDIntStatus
+#define MAP_LCDIntStatus                                                      \
+        ROM_LCDIntStatus
+#else
+#define MAP_LCDIntStatus                                                      \
+        LCDIntStatus
+#endif
+#ifdef ROM_LCDClockReset
+#define MAP_LCDClockReset                                                     \
+        ROM_LCDClockReset
+#else
+#define MAP_LCDClockReset                                                     \
+        LCDClockReset
+#endif
+#ifdef ROM_LCDDMAConfigSet
+#define MAP_LCDDMAConfigSet                                                   \
+        ROM_LCDDMAConfigSet
+#else
+#define MAP_LCDDMAConfigSet                                                   \
+        LCDDMAConfigSet
+#endif
+#ifdef ROM_LCDIDDCommandWrite
+#define MAP_LCDIDDCommandWrite                                                \
+        ROM_LCDIDDCommandWrite
+#else
+#define MAP_LCDIDDCommandWrite                                                \
+        LCDIDDCommandWrite
+#endif
+#ifdef ROM_LCDIDDConfigSet
+#define MAP_LCDIDDConfigSet                                                   \
+        ROM_LCDIDDConfigSet
+#else
+#define MAP_LCDIDDConfigSet                                                   \
+        LCDIDDConfigSet
+#endif
+#ifdef ROM_LCDIDDDataRead
+#define MAP_LCDIDDDataRead                                                    \
+        ROM_LCDIDDDataRead
+#else
+#define MAP_LCDIDDDataRead                                                    \
+        LCDIDDDataRead
+#endif
+#ifdef ROM_LCDIDDDataWrite
+#define MAP_LCDIDDDataWrite                                                   \
+        ROM_LCDIDDDataWrite
+#else
+#define MAP_LCDIDDDataWrite                                                   \
+        LCDIDDDataWrite
+#endif
+#ifdef ROM_LCDIDDDMADisable
+#define MAP_LCDIDDDMADisable                                                  \
+        ROM_LCDIDDDMADisable
+#else
+#define MAP_LCDIDDDMADisable                                                  \
+        LCDIDDDMADisable
+#endif
+#ifdef ROM_LCDIDDDMAWrite
+#define MAP_LCDIDDDMAWrite                                                    \
+        ROM_LCDIDDDMAWrite
+#else
+#define MAP_LCDIDDDMAWrite                                                    \
+        LCDIDDDMAWrite
+#endif
+#ifdef ROM_LCDIDDIndexedRead
+#define MAP_LCDIDDIndexedRead                                                 \
+        ROM_LCDIDDIndexedRead
+#else
+#define MAP_LCDIDDIndexedRead                                                 \
+        LCDIDDIndexedRead
+#endif
+#ifdef ROM_LCDIDDIndexedWrite
+#define MAP_LCDIDDIndexedWrite                                                \
+        ROM_LCDIDDIndexedWrite
+#else
+#define MAP_LCDIDDIndexedWrite                                                \
+        LCDIDDIndexedWrite
+#endif
+#ifdef ROM_LCDIDDStatusRead
+#define MAP_LCDIDDStatusRead                                                  \
+        ROM_LCDIDDStatusRead
+#else
+#define MAP_LCDIDDStatusRead                                                  \
+        LCDIDDStatusRead
+#endif
+#ifdef ROM_LCDIDDTimingSet
+#define MAP_LCDIDDTimingSet                                                   \
+        ROM_LCDIDDTimingSet
+#else
+#define MAP_LCDIDDTimingSet                                                   \
+        LCDIDDTimingSet
+#endif
+#ifdef ROM_LCDIntClear
+#define MAP_LCDIntClear                                                       \
+        ROM_LCDIntClear
+#else
+#define MAP_LCDIntClear                                                       \
+        LCDIntClear
+#endif
+#ifdef ROM_LCDIntDisable
+#define MAP_LCDIntDisable                                                     \
+        ROM_LCDIntDisable
+#else
+#define MAP_LCDIntDisable                                                     \
+        LCDIntDisable
+#endif
+#ifdef ROM_LCDIntEnable
+#define MAP_LCDIntEnable                                                      \
+        ROM_LCDIntEnable
+#else
+#define MAP_LCDIntEnable                                                      \
+        LCDIntEnable
+#endif
+#ifdef ROM_LCDModeSet
+#define MAP_LCDModeSet                                                        \
+        ROM_LCDModeSet
+#else
+#define MAP_LCDModeSet                                                        \
+        LCDModeSet
+#endif
+#ifdef ROM_LCDRasterACBiasIntCountSet
+#define MAP_LCDRasterACBiasIntCountSet                                        \
+        ROM_LCDRasterACBiasIntCountSet
+#else
+#define MAP_LCDRasterACBiasIntCountSet                                        \
+        LCDRasterACBiasIntCountSet
+#endif
+#ifdef ROM_LCDRasterConfigSet
+#define MAP_LCDRasterConfigSet                                                \
+        ROM_LCDRasterConfigSet
+#else
+#define MAP_LCDRasterConfigSet                                                \
+        LCDRasterConfigSet
+#endif
+#ifdef ROM_LCDRasterDisable
+#define MAP_LCDRasterDisable                                                  \
+        ROM_LCDRasterDisable
+#else
+#define MAP_LCDRasterDisable                                                  \
+        LCDRasterDisable
+#endif
+#ifdef ROM_LCDRasterEnable
+#define MAP_LCDRasterEnable                                                   \
+        ROM_LCDRasterEnable
+#else
+#define MAP_LCDRasterEnable                                                   \
+        LCDRasterEnable
+#endif
+#ifdef ROM_LCDRasterFrameBufferSet
+#define MAP_LCDRasterFrameBufferSet                                           \
+        ROM_LCDRasterFrameBufferSet
+#else
+#define MAP_LCDRasterFrameBufferSet                                           \
+        LCDRasterFrameBufferSet
+#endif
+#ifdef ROM_LCDRasterPaletteSet
+#define MAP_LCDRasterPaletteSet                                               \
+        ROM_LCDRasterPaletteSet
+#else
+#define MAP_LCDRasterPaletteSet                                               \
+        LCDRasterPaletteSet
+#endif
+#ifdef ROM_LCDRasterSubPanelConfigSet
+#define MAP_LCDRasterSubPanelConfigSet                                        \
+        ROM_LCDRasterSubPanelConfigSet
+#else
+#define MAP_LCDRasterSubPanelConfigSet                                        \
+        LCDRasterSubPanelConfigSet
+#endif
+#ifdef ROM_LCDRasterSubPanelDisable
+#define MAP_LCDRasterSubPanelDisable                                          \
+        ROM_LCDRasterSubPanelDisable
+#else
+#define MAP_LCDRasterSubPanelDisable                                          \
+        LCDRasterSubPanelDisable
+#endif
+#ifdef ROM_LCDRasterSubPanelEnable
+#define MAP_LCDRasterSubPanelEnable                                           \
+        ROM_LCDRasterSubPanelEnable
+#else
+#define MAP_LCDRasterSubPanelEnable                                           \
+        LCDRasterSubPanelEnable
+#endif
+#ifdef ROM_LCDRasterTimingSet
+#define MAP_LCDRasterTimingSet                                                \
+        ROM_LCDRasterTimingSet
+#else
+#define MAP_LCDRasterTimingSet                                                \
+        LCDRasterTimingSet
+#endif
+#ifdef ROM_LCDRasterEnabled
+#define MAP_LCDRasterEnabled                                                  \
+        ROM_LCDRasterEnabled
+#else
+#define MAP_LCDRasterEnabled                                                  \
+        LCDRasterEnabled
+#endif
+
+//*****************************************************************************
+//
+// Macros for the MPU API.
+//
+//*****************************************************************************
+#ifdef ROM_MPUEnable
+#define MAP_MPUEnable                                                         \
+        ROM_MPUEnable
+#else
+#define MAP_MPUEnable                                                         \
+        MPUEnable
+#endif
+#ifdef ROM_MPUDisable
+#define MAP_MPUDisable                                                        \
+        ROM_MPUDisable
+#else
+#define MAP_MPUDisable                                                        \
+        MPUDisable
+#endif
+#ifdef ROM_MPURegionCountGet
+#define MAP_MPURegionCountGet                                                 \
+        ROM_MPURegionCountGet
+#else
+#define MAP_MPURegionCountGet                                                 \
+        MPURegionCountGet
+#endif
+#ifdef ROM_MPURegionEnable
+#define MAP_MPURegionEnable                                                   \
+        ROM_MPURegionEnable
+#else
+#define MAP_MPURegionEnable                                                   \
+        MPURegionEnable
+#endif
+#ifdef ROM_MPURegionDisable
+#define MAP_MPURegionDisable                                                  \
+        ROM_MPURegionDisable
+#else
+#define MAP_MPURegionDisable                                                  \
+        MPURegionDisable
+#endif
+#ifdef ROM_MPURegionSet
+#define MAP_MPURegionSet                                                      \
+        ROM_MPURegionSet
+#else
+#define MAP_MPURegionSet                                                      \
+        MPURegionSet
+#endif
+#ifdef ROM_MPURegionGet
+#define MAP_MPURegionGet                                                      \
+        ROM_MPURegionGet
+#else
+#define MAP_MPURegionGet                                                      \
+        MPURegionGet
+#endif
+
+//*****************************************************************************
+//
+// Macros for the OneWire API.
+//
+//*****************************************************************************
+#ifdef ROM_OneWireIntStatus
+#define MAP_OneWireIntStatus                                                  \
+        ROM_OneWireIntStatus
+#else
+#define MAP_OneWireIntStatus                                                  \
+        OneWireIntStatus
+#endif
+#ifdef ROM_OneWireBusReset
+#define MAP_OneWireBusReset                                                   \
+        ROM_OneWireBusReset
+#else
+#define MAP_OneWireBusReset                                                   \
+        OneWireBusReset
+#endif
+#ifdef ROM_OneWireBusStatus
+#define MAP_OneWireBusStatus                                                  \
+        ROM_OneWireBusStatus
+#else
+#define MAP_OneWireBusStatus                                                  \
+        OneWireBusStatus
+#endif
+#ifdef ROM_OneWireDataGet
+#define MAP_OneWireDataGet                                                    \
+        ROM_OneWireDataGet
+#else
+#define MAP_OneWireDataGet                                                    \
+        OneWireDataGet
+#endif
+#ifdef ROM_OneWireDataGetNonBlocking
+#define MAP_OneWireDataGetNonBlocking                                         \
+        ROM_OneWireDataGetNonBlocking
+#else
+#define MAP_OneWireDataGetNonBlocking                                         \
+        OneWireDataGetNonBlocking
+#endif
+#ifdef ROM_OneWireInit
+#define MAP_OneWireInit                                                       \
+        ROM_OneWireInit
+#else
+#define MAP_OneWireInit                                                       \
+        OneWireInit
+#endif
+#ifdef ROM_OneWireIntClear
+#define MAP_OneWireIntClear                                                   \
+        ROM_OneWireIntClear
+#else
+#define MAP_OneWireIntClear                                                   \
+        OneWireIntClear
+#endif
+#ifdef ROM_OneWireIntDisable
+#define MAP_OneWireIntDisable                                                 \
+        ROM_OneWireIntDisable
+#else
+#define MAP_OneWireIntDisable                                                 \
+        OneWireIntDisable
+#endif
+#ifdef ROM_OneWireIntEnable
+#define MAP_OneWireIntEnable                                                  \
+        ROM_OneWireIntEnable
+#else
+#define MAP_OneWireIntEnable                                                  \
+        OneWireIntEnable
+#endif
+#ifdef ROM_OneWireTransaction
+#define MAP_OneWireTransaction                                                \
+        ROM_OneWireTransaction
+#else
+#define MAP_OneWireTransaction                                                \
+        OneWireTransaction
+#endif
+#ifdef ROM_OneWireDMADisable
+#define MAP_OneWireDMADisable                                                 \
+        ROM_OneWireDMADisable
+#else
+#define MAP_OneWireDMADisable                                                 \
+        OneWireDMADisable
+#endif
+#ifdef ROM_OneWireDMAEnable
+#define MAP_OneWireDMAEnable                                                  \
+        ROM_OneWireDMAEnable
+#else
+#define MAP_OneWireDMAEnable                                                  \
+        OneWireDMAEnable
+#endif
+
+//*****************************************************************************
+//
+// Macros for the PWM API.
+//
+//*****************************************************************************
+#ifdef ROM_PWMPulseWidthSet
+#define MAP_PWMPulseWidthSet                                                  \
+        ROM_PWMPulseWidthSet
+#else
+#define MAP_PWMPulseWidthSet                                                  \
+        PWMPulseWidthSet
+#endif
+#ifdef ROM_PWMGenConfigure
+#define MAP_PWMGenConfigure                                                   \
+        ROM_PWMGenConfigure
+#else
+#define MAP_PWMGenConfigure                                                   \
+        PWMGenConfigure
+#endif
+#ifdef ROM_PWMGenPeriodSet
+#define MAP_PWMGenPeriodSet                                                   \
+        ROM_PWMGenPeriodSet
+#else
+#define MAP_PWMGenPeriodSet                                                   \
+        PWMGenPeriodSet
+#endif
+#ifdef ROM_PWMGenPeriodGet
+#define MAP_PWMGenPeriodGet                                                   \
+        ROM_PWMGenPeriodGet
+#else
+#define MAP_PWMGenPeriodGet                                                   \
+        PWMGenPeriodGet
+#endif
+#ifdef ROM_PWMGenEnable
+#define MAP_PWMGenEnable                                                      \
+        ROM_PWMGenEnable
+#else
+#define MAP_PWMGenEnable                                                      \
+        PWMGenEnable
+#endif
+#ifdef ROM_PWMGenDisable
+#define MAP_PWMGenDisable                                                     \
+        ROM_PWMGenDisable
+#else
+#define MAP_PWMGenDisable                                                     \
+        PWMGenDisable
+#endif
+#ifdef ROM_PWMPulseWidthGet
+#define MAP_PWMPulseWidthGet                                                  \
+        ROM_PWMPulseWidthGet
+#else
+#define MAP_PWMPulseWidthGet                                                  \
+        PWMPulseWidthGet
+#endif
+#ifdef ROM_PWMDeadBandEnable
+#define MAP_PWMDeadBandEnable                                                 \
+        ROM_PWMDeadBandEnable
+#else
+#define MAP_PWMDeadBandEnable                                                 \
+        PWMDeadBandEnable
+#endif
+#ifdef ROM_PWMDeadBandDisable
+#define MAP_PWMDeadBandDisable                                                \
+        ROM_PWMDeadBandDisable
+#else
+#define MAP_PWMDeadBandDisable                                                \
+        PWMDeadBandDisable
+#endif
+#ifdef ROM_PWMSyncUpdate
+#define MAP_PWMSyncUpdate                                                     \
+        ROM_PWMSyncUpdate
+#else
+#define MAP_PWMSyncUpdate                                                     \
+        PWMSyncUpdate
+#endif
+#ifdef ROM_PWMSyncTimeBase
+#define MAP_PWMSyncTimeBase                                                   \
+        ROM_PWMSyncTimeBase
+#else
+#define MAP_PWMSyncTimeBase                                                   \
+        PWMSyncTimeBase
+#endif
+#ifdef ROM_PWMOutputState
+#define MAP_PWMOutputState                                                    \
+        ROM_PWMOutputState
+#else
+#define MAP_PWMOutputState                                                    \
+        PWMOutputState
+#endif
+#ifdef ROM_PWMOutputInvert
+#define MAP_PWMOutputInvert                                                   \
+        ROM_PWMOutputInvert
+#else
+#define MAP_PWMOutputInvert                                                   \
+        PWMOutputInvert
+#endif
+#ifdef ROM_PWMOutputFault
+#define MAP_PWMOutputFault                                                    \
+        ROM_PWMOutputFault
+#else
+#define MAP_PWMOutputFault                                                    \
+        PWMOutputFault
+#endif
+#ifdef ROM_PWMGenIntTrigEnable
+#define MAP_PWMGenIntTrigEnable                                               \
+        ROM_PWMGenIntTrigEnable
+#else
+#define MAP_PWMGenIntTrigEnable                                               \
+        PWMGenIntTrigEnable
+#endif
+#ifdef ROM_PWMGenIntTrigDisable
+#define MAP_PWMGenIntTrigDisable                                              \
+        ROM_PWMGenIntTrigDisable
+#else
+#define MAP_PWMGenIntTrigDisable                                              \
+        PWMGenIntTrigDisable
+#endif
+#ifdef ROM_PWMGenIntStatus
+#define MAP_PWMGenIntStatus                                                   \
+        ROM_PWMGenIntStatus
+#else
+#define MAP_PWMGenIntStatus                                                   \
+        PWMGenIntStatus
+#endif
+#ifdef ROM_PWMGenIntClear
+#define MAP_PWMGenIntClear                                                    \
+        ROM_PWMGenIntClear
+#else
+#define MAP_PWMGenIntClear                                                    \
+        PWMGenIntClear
+#endif
+#ifdef ROM_PWMIntEnable
+#define MAP_PWMIntEnable                                                      \
+        ROM_PWMIntEnable
+#else
+#define MAP_PWMIntEnable                                                      \
+        PWMIntEnable
+#endif
+#ifdef ROM_PWMIntDisable
+#define MAP_PWMIntDisable                                                     \
+        ROM_PWMIntDisable
+#else
+#define MAP_PWMIntDisable                                                     \
+        PWMIntDisable
+#endif
+#ifdef ROM_PWMFaultIntClear
+#define MAP_PWMFaultIntClear                                                  \
+        ROM_PWMFaultIntClear
+#else
+#define MAP_PWMFaultIntClear                                                  \
+        PWMFaultIntClear
+#endif
+#ifdef ROM_PWMIntStatus
+#define MAP_PWMIntStatus                                                      \
+        ROM_PWMIntStatus
+#else
+#define MAP_PWMIntStatus                                                      \
+        PWMIntStatus
+#endif
+#ifdef ROM_PWMOutputFaultLevel
+#define MAP_PWMOutputFaultLevel                                               \
+        ROM_PWMOutputFaultLevel
+#else
+#define MAP_PWMOutputFaultLevel                                               \
+        PWMOutputFaultLevel
+#endif
+#ifdef ROM_PWMFaultIntClearExt
+#define MAP_PWMFaultIntClearExt                                               \
+        ROM_PWMFaultIntClearExt
+#else
+#define MAP_PWMFaultIntClearExt                                               \
+        PWMFaultIntClearExt
+#endif
+#ifdef ROM_PWMGenFaultConfigure
+#define MAP_PWMGenFaultConfigure                                              \
+        ROM_PWMGenFaultConfigure
+#else
+#define MAP_PWMGenFaultConfigure                                              \
+        PWMGenFaultConfigure
+#endif
+#ifdef ROM_PWMGenFaultTriggerSet
+#define MAP_PWMGenFaultTriggerSet                                             \
+        ROM_PWMGenFaultTriggerSet
+#else
+#define MAP_PWMGenFaultTriggerSet                                             \
+        PWMGenFaultTriggerSet
+#endif
+#ifdef ROM_PWMGenFaultTriggerGet
+#define MAP_PWMGenFaultTriggerGet                                             \
+        ROM_PWMGenFaultTriggerGet
+#else
+#define MAP_PWMGenFaultTriggerGet                                             \
+        PWMGenFaultTriggerGet
+#endif
+#ifdef ROM_PWMGenFaultStatus
+#define MAP_PWMGenFaultStatus                                                 \
+        ROM_PWMGenFaultStatus
+#else
+#define MAP_PWMGenFaultStatus                                                 \
+        PWMGenFaultStatus
+#endif
+#ifdef ROM_PWMGenFaultClear
+#define MAP_PWMGenFaultClear                                                  \
+        ROM_PWMGenFaultClear
+#else
+#define MAP_PWMGenFaultClear                                                  \
+        PWMGenFaultClear
+#endif
+#ifdef ROM_PWMClockSet
+#define MAP_PWMClockSet                                                       \
+        ROM_PWMClockSet
+#else
+#define MAP_PWMClockSet                                                       \
+        PWMClockSet
+#endif
+#ifdef ROM_PWMClockGet
+#define MAP_PWMClockGet                                                       \
+        ROM_PWMClockGet
+#else
+#define MAP_PWMClockGet                                                       \
+        PWMClockGet
+#endif
+#ifdef ROM_PWMOutputUpdateMode
+#define MAP_PWMOutputUpdateMode                                               \
+        ROM_PWMOutputUpdateMode
+#else
+#define MAP_PWMOutputUpdateMode                                               \
+        PWMOutputUpdateMode
+#endif
+
+//*****************************************************************************
+//
+// Macros for the QEI API.
+//
+//*****************************************************************************
+#ifdef ROM_QEIPositionGet
+#define MAP_QEIPositionGet                                                    \
+        ROM_QEIPositionGet
+#else
+#define MAP_QEIPositionGet                                                    \
+        QEIPositionGet
+#endif
+#ifdef ROM_QEIEnable
+#define MAP_QEIEnable                                                         \
+        ROM_QEIEnable
+#else
+#define MAP_QEIEnable                                                         \
+        QEIEnable
+#endif
+#ifdef ROM_QEIDisable
+#define MAP_QEIDisable                                                        \
+        ROM_QEIDisable
+#else
+#define MAP_QEIDisable                                                        \
+        QEIDisable
+#endif
+#ifdef ROM_QEIConfigure
+#define MAP_QEIConfigure                                                      \
+        ROM_QEIConfigure
+#else
+#define MAP_QEIConfigure                                                      \
+        QEIConfigure
+#endif
+#ifdef ROM_QEIPositionSet
+#define MAP_QEIPositionSet                                                    \
+        ROM_QEIPositionSet
+#else
+#define MAP_QEIPositionSet                                                    \
+        QEIPositionSet
+#endif
+#ifdef ROM_QEIDirectionGet
+#define MAP_QEIDirectionGet                                                   \
+        ROM_QEIDirectionGet
+#else
+#define MAP_QEIDirectionGet                                                   \
+        QEIDirectionGet
+#endif
+#ifdef ROM_QEIErrorGet
+#define MAP_QEIErrorGet                                                       \
+        ROM_QEIErrorGet
+#else
+#define MAP_QEIErrorGet                                                       \
+        QEIErrorGet
+#endif
+#ifdef ROM_QEIVelocityEnable
+#define MAP_QEIVelocityEnable                                                 \
+        ROM_QEIVelocityEnable
+#else
+#define MAP_QEIVelocityEnable                                                 \
+        QEIVelocityEnable
+#endif
+#ifdef ROM_QEIVelocityDisable
+#define MAP_QEIVelocityDisable                                                \
+        ROM_QEIVelocityDisable
+#else
+#define MAP_QEIVelocityDisable                                                \
+        QEIVelocityDisable
+#endif
+#ifdef ROM_QEIVelocityConfigure
+#define MAP_QEIVelocityConfigure                                              \
+        ROM_QEIVelocityConfigure
+#else
+#define MAP_QEIVelocityConfigure                                              \
+        QEIVelocityConfigure
+#endif
+#ifdef ROM_QEIVelocityGet
+#define MAP_QEIVelocityGet                                                    \
+        ROM_QEIVelocityGet
+#else
+#define MAP_QEIVelocityGet                                                    \
+        QEIVelocityGet
+#endif
+#ifdef ROM_QEIIntEnable
+#define MAP_QEIIntEnable                                                      \
+        ROM_QEIIntEnable
+#else
+#define MAP_QEIIntEnable                                                      \
+        QEIIntEnable
+#endif
+#ifdef ROM_QEIIntDisable
+#define MAP_QEIIntDisable                                                     \
+        ROM_QEIIntDisable
+#else
+#define MAP_QEIIntDisable                                                     \
+        QEIIntDisable
+#endif
+#ifdef ROM_QEIIntStatus
+#define MAP_QEIIntStatus                                                      \
+        ROM_QEIIntStatus
+#else
+#define MAP_QEIIntStatus                                                      \
+        QEIIntStatus
+#endif
+#ifdef ROM_QEIIntClear
+#define MAP_QEIIntClear                                                       \
+        ROM_QEIIntClear
+#else
+#define MAP_QEIIntClear                                                       \
+        QEIIntClear
+#endif
+
+//*****************************************************************************
+//
+// Macros for the SHAMD5 API.
+//
+//*****************************************************************************
+#ifdef ROM_SHAMD5IntStatus
+#define MAP_SHAMD5IntStatus                                                   \
+        ROM_SHAMD5IntStatus
+#else
+#define MAP_SHAMD5IntStatus                                                   \
+        SHAMD5IntStatus
+#endif
+#ifdef ROM_SHAMD5ConfigSet
+#define MAP_SHAMD5ConfigSet                                                   \
+        ROM_SHAMD5ConfigSet
+#else
+#define MAP_SHAMD5ConfigSet                                                   \
+        SHAMD5ConfigSet
+#endif
+#ifdef ROM_SHAMD5DataProcess
+#define MAP_SHAMD5DataProcess                                                 \
+        ROM_SHAMD5DataProcess
+#else
+#define MAP_SHAMD5DataProcess                                                 \
+        SHAMD5DataProcess
+#endif
+#ifdef ROM_SHAMD5DataWrite
+#define MAP_SHAMD5DataWrite                                                   \
+        ROM_SHAMD5DataWrite
+#else
+#define MAP_SHAMD5DataWrite                                                   \
+        SHAMD5DataWrite
+#endif
+#ifdef ROM_SHAMD5DataWriteNonBlocking
+#define MAP_SHAMD5DataWriteNonBlocking                                        \
+        ROM_SHAMD5DataWriteNonBlocking
+#else
+#define MAP_SHAMD5DataWriteNonBlocking                                        \
+        SHAMD5DataWriteNonBlocking
+#endif
+#ifdef ROM_SHAMD5DMADisable
+#define MAP_SHAMD5DMADisable                                                  \
+        ROM_SHAMD5DMADisable
+#else
+#define MAP_SHAMD5DMADisable                                                  \
+        SHAMD5DMADisable
+#endif
+#ifdef ROM_SHAMD5DMAEnable
+#define MAP_SHAMD5DMAEnable                                                   \
+        ROM_SHAMD5DMAEnable
+#else
+#define MAP_SHAMD5DMAEnable                                                   \
+        SHAMD5DMAEnable
+#endif
+#ifdef ROM_SHAMD5HashLengthSet
+#define MAP_SHAMD5HashLengthSet                                               \
+        ROM_SHAMD5HashLengthSet
+#else
+#define MAP_SHAMD5HashLengthSet                                               \
+        SHAMD5HashLengthSet
+#endif
+#ifdef ROM_SHAMD5HMACKeySet
+#define MAP_SHAMD5HMACKeySet                                                  \
+        ROM_SHAMD5HMACKeySet
+#else
+#define MAP_SHAMD5HMACKeySet                                                  \
+        SHAMD5HMACKeySet
+#endif
+#ifdef ROM_SHAMD5HMACPPKeyGenerate
+#define MAP_SHAMD5HMACPPKeyGenerate                                           \
+        ROM_SHAMD5HMACPPKeyGenerate
+#else
+#define MAP_SHAMD5HMACPPKeyGenerate                                           \
+        SHAMD5HMACPPKeyGenerate
+#endif
+#ifdef ROM_SHAMD5HMACPPKeySet
+#define MAP_SHAMD5HMACPPKeySet                                                \
+        ROM_SHAMD5HMACPPKeySet
+#else
+#define MAP_SHAMD5HMACPPKeySet                                                \
+        SHAMD5HMACPPKeySet
+#endif
+#ifdef ROM_SHAMD5HMACProcess
+#define MAP_SHAMD5HMACProcess                                                 \
+        ROM_SHAMD5HMACProcess
+#else
+#define MAP_SHAMD5HMACProcess                                                 \
+        SHAMD5HMACProcess
+#endif
+#ifdef ROM_SHAMD5IntClear
+#define MAP_SHAMD5IntClear                                                    \
+        ROM_SHAMD5IntClear
+#else
+#define MAP_SHAMD5IntClear                                                    \
+        SHAMD5IntClear
+#endif
+#ifdef ROM_SHAMD5IntDisable
+#define MAP_SHAMD5IntDisable                                                  \
+        ROM_SHAMD5IntDisable
+#else
+#define MAP_SHAMD5IntDisable                                                  \
+        SHAMD5IntDisable
+#endif
+#ifdef ROM_SHAMD5IntEnable
+#define MAP_SHAMD5IntEnable                                                   \
+        ROM_SHAMD5IntEnable
+#else
+#define MAP_SHAMD5IntEnable                                                   \
+        SHAMD5IntEnable
+#endif
+#ifdef ROM_SHAMD5Reset
+#define MAP_SHAMD5Reset                                                       \
+        ROM_SHAMD5Reset
+#else
+#define MAP_SHAMD5Reset                                                       \
+        SHAMD5Reset
+#endif
+#ifdef ROM_SHAMD5ResultRead
+#define MAP_SHAMD5ResultRead                                                  \
+        ROM_SHAMD5ResultRead
+#else
+#define MAP_SHAMD5ResultRead                                                  \
+        SHAMD5ResultRead
+#endif
+
+//*****************************************************************************
+//
+// Macros for the SMBus API.
+//
+//*****************************************************************************
+#ifdef ROM_SMBusMasterIntProcess
+#define MAP_SMBusMasterIntProcess                                             \
+        ROM_SMBusMasterIntProcess
+#else
+#define MAP_SMBusMasterIntProcess                                             \
+        SMBusMasterIntProcess
+#endif
+#ifdef ROM_SMBusARPDisable
+#define MAP_SMBusARPDisable                                                   \
+        ROM_SMBusARPDisable
+#else
+#define MAP_SMBusARPDisable                                                   \
+        SMBusARPDisable
+#endif
+#ifdef ROM_SMBusARPEnable
+#define MAP_SMBusARPEnable                                                    \
+        ROM_SMBusARPEnable
+#else
+#define MAP_SMBusARPEnable                                                    \
+        SMBusARPEnable
+#endif
+#ifdef ROM_SMBusARPUDIDPacketDecode
+#define MAP_SMBusARPUDIDPacketDecode                                          \
+        ROM_SMBusARPUDIDPacketDecode
+#else
+#define MAP_SMBusARPUDIDPacketDecode                                          \
+        SMBusARPUDIDPacketDecode
+#endif
+#ifdef ROM_SMBusARPUDIDPacketEncode
+#define MAP_SMBusARPUDIDPacketEncode                                          \
+        ROM_SMBusARPUDIDPacketEncode
+#else
+#define MAP_SMBusARPUDIDPacketEncode                                          \
+        SMBusARPUDIDPacketEncode
+#endif
+#ifdef ROM_SMBusMasterARPAssignAddress
+#define MAP_SMBusMasterARPAssignAddress                                       \
+        ROM_SMBusMasterARPAssignAddress
+#else
+#define MAP_SMBusMasterARPAssignAddress                                       \
+        SMBusMasterARPAssignAddress
+#endif
+#ifdef ROM_SMBusMasterARPGetUDIDDir
+#define MAP_SMBusMasterARPGetUDIDDir                                          \
+        ROM_SMBusMasterARPGetUDIDDir
+#else
+#define MAP_SMBusMasterARPGetUDIDDir                                          \
+        SMBusMasterARPGetUDIDDir
+#endif
+#ifdef ROM_SMBusMasterARPGetUDIDGen
+#define MAP_SMBusMasterARPGetUDIDGen                                          \
+        ROM_SMBusMasterARPGetUDIDGen
+#else
+#define MAP_SMBusMasterARPGetUDIDGen                                          \
+        SMBusMasterARPGetUDIDGen
+#endif
+#ifdef ROM_SMBusMasterARPNotifyMaster
+#define MAP_SMBusMasterARPNotifyMaster                                        \
+        ROM_SMBusMasterARPNotifyMaster
+#else
+#define MAP_SMBusMasterARPNotifyMaster                                        \
+        SMBusMasterARPNotifyMaster
+#endif
+#ifdef ROM_SMBusMasterARPPrepareToARP
+#define MAP_SMBusMasterARPPrepareToARP                                        \
+        ROM_SMBusMasterARPPrepareToARP
+#else
+#define MAP_SMBusMasterARPPrepareToARP                                        \
+        SMBusMasterARPPrepareToARP
+#endif
+#ifdef ROM_SMBusMasterARPResetDeviceDir
+#define MAP_SMBusMasterARPResetDeviceDir                                      \
+        ROM_SMBusMasterARPResetDeviceDir
+#else
+#define MAP_SMBusMasterARPResetDeviceDir                                      \
+        SMBusMasterARPResetDeviceDir
+#endif
+#ifdef ROM_SMBusMasterARPResetDeviceGen
+#define MAP_SMBusMasterARPResetDeviceGen                                      \
+        ROM_SMBusMasterARPResetDeviceGen
+#else
+#define MAP_SMBusMasterARPResetDeviceGen                                      \
+        SMBusMasterARPResetDeviceGen
+#endif
+#ifdef ROM_SMBusMasterBlockProcessCall
+#define MAP_SMBusMasterBlockProcessCall                                       \
+        ROM_SMBusMasterBlockProcessCall
+#else
+#define MAP_SMBusMasterBlockProcessCall                                       \
+        SMBusMasterBlockProcessCall
+#endif
+#ifdef ROM_SMBusMasterBlockRead
+#define MAP_SMBusMasterBlockRead                                              \
+        ROM_SMBusMasterBlockRead
+#else
+#define MAP_SMBusMasterBlockRead                                              \
+        SMBusMasterBlockRead
+#endif
+#ifdef ROM_SMBusMasterBlockWrite
+#define MAP_SMBusMasterBlockWrite                                             \
+        ROM_SMBusMasterBlockWrite
+#else
+#define MAP_SMBusMasterBlockWrite                                             \
+        SMBusMasterBlockWrite
+#endif
+#ifdef ROM_SMBusMasterByteReceive
+#define MAP_SMBusMasterByteReceive                                            \
+        ROM_SMBusMasterByteReceive
+#else
+#define MAP_SMBusMasterByteReceive                                            \
+        SMBusMasterByteReceive
+#endif
+#ifdef ROM_SMBusMasterByteSend
+#define MAP_SMBusMasterByteSend                                               \
+        ROM_SMBusMasterByteSend
+#else
+#define MAP_SMBusMasterByteSend                                               \
+        SMBusMasterByteSend
+#endif
+#ifdef ROM_SMBusMasterByteWordRead
+#define MAP_SMBusMasterByteWordRead                                           \
+        ROM_SMBusMasterByteWordRead
+#else
+#define MAP_SMBusMasterByteWordRead                                           \
+        SMBusMasterByteWordRead
+#endif
+#ifdef ROM_SMBusMasterByteWordWrite
+#define MAP_SMBusMasterByteWordWrite                                          \
+        ROM_SMBusMasterByteWordWrite
+#else
+#define MAP_SMBusMasterByteWordWrite                                          \
+        SMBusMasterByteWordWrite
+#endif
+#ifdef ROM_SMBusMasterHostNotify
+#define MAP_SMBusMasterHostNotify                                             \
+        ROM_SMBusMasterHostNotify
+#else
+#define MAP_SMBusMasterHostNotify                                             \
+        SMBusMasterHostNotify
+#endif
+#ifdef ROM_SMBusMasterI2CRead
+#define MAP_SMBusMasterI2CRead                                                \
+        ROM_SMBusMasterI2CRead
+#else
+#define MAP_SMBusMasterI2CRead                                                \
+        SMBusMasterI2CRead
+#endif
+#ifdef ROM_SMBusMasterI2CWrite
+#define MAP_SMBusMasterI2CWrite                                               \
+        ROM_SMBusMasterI2CWrite
+#else
+#define MAP_SMBusMasterI2CWrite                                               \
+        SMBusMasterI2CWrite
+#endif
+#ifdef ROM_SMBusMasterI2CWriteRead
+#define MAP_SMBusMasterI2CWriteRead                                           \
+        ROM_SMBusMasterI2CWriteRead
+#else
+#define MAP_SMBusMasterI2CWriteRead                                           \
+        SMBusMasterI2CWriteRead
+#endif
+#ifdef ROM_SMBusMasterInit
+#define MAP_SMBusMasterInit                                                   \
+        ROM_SMBusMasterInit
+#else
+#define MAP_SMBusMasterInit                                                   \
+        SMBusMasterInit
+#endif
+#ifdef ROM_SMBusMasterIntEnable
+#define MAP_SMBusMasterIntEnable                                              \
+        ROM_SMBusMasterIntEnable
+#else
+#define MAP_SMBusMasterIntEnable                                              \
+        SMBusMasterIntEnable
+#endif
+#ifdef ROM_SMBusMasterProcessCall
+#define MAP_SMBusMasterProcessCall                                            \
+        ROM_SMBusMasterProcessCall
+#else
+#define MAP_SMBusMasterProcessCall                                            \
+        SMBusMasterProcessCall
+#endif
+#ifdef ROM_SMBusMasterQuickCommand
+#define MAP_SMBusMasterQuickCommand                                           \
+        ROM_SMBusMasterQuickCommand
+#else
+#define MAP_SMBusMasterQuickCommand                                           \
+        SMBusMasterQuickCommand
+#endif
+#ifdef ROM_SMBusPECDisable
+#define MAP_SMBusPECDisable                                                   \
+        ROM_SMBusPECDisable
+#else
+#define MAP_SMBusPECDisable                                                   \
+        SMBusPECDisable
+#endif
+#ifdef ROM_SMBusPECEnable
+#define MAP_SMBusPECEnable                                                    \
+        ROM_SMBusPECEnable
+#else
+#define MAP_SMBusPECEnable                                                    \
+        SMBusPECEnable
+#endif
+#ifdef ROM_SMBusRxPacketSizeGet
+#define MAP_SMBusRxPacketSizeGet                                              \
+        ROM_SMBusRxPacketSizeGet
+#else
+#define MAP_SMBusRxPacketSizeGet                                              \
+        SMBusRxPacketSizeGet
+#endif
+#ifdef ROM_SMBusSlaveACKSend
+#define MAP_SMBusSlaveACKSend                                                 \
+        ROM_SMBusSlaveACKSend
+#else
+#define MAP_SMBusSlaveACKSend                                                 \
+        SMBusSlaveACKSend
+#endif
+#ifdef ROM_SMBusSlaveAddressSet
+#define MAP_SMBusSlaveAddressSet                                              \
+        ROM_SMBusSlaveAddressSet
+#else
+#define MAP_SMBusSlaveAddressSet                                              \
+        SMBusSlaveAddressSet
+#endif
+#ifdef ROM_SMBusSlaveARPFlagARGet
+#define MAP_SMBusSlaveARPFlagARGet                                            \
+        ROM_SMBusSlaveARPFlagARGet
+#else
+#define MAP_SMBusSlaveARPFlagARGet                                            \
+        SMBusSlaveARPFlagARGet
+#endif
+#ifdef ROM_SMBusSlaveARPFlagARSet
+#define MAP_SMBusSlaveARPFlagARSet                                            \
+        ROM_SMBusSlaveARPFlagARSet
+#else
+#define MAP_SMBusSlaveARPFlagARSet                                            \
+        SMBusSlaveARPFlagARSet
+#endif
+#ifdef ROM_SMBusSlaveARPFlagAVGet
+#define MAP_SMBusSlaveARPFlagAVGet                                            \
+        ROM_SMBusSlaveARPFlagAVGet
+#else
+#define MAP_SMBusSlaveARPFlagAVGet                                            \
+        SMBusSlaveARPFlagAVGet
+#endif
+#ifdef ROM_SMBusSlaveARPFlagAVSet
+#define MAP_SMBusSlaveARPFlagAVSet                                            \
+        ROM_SMBusSlaveARPFlagAVSet
+#else
+#define MAP_SMBusSlaveARPFlagAVSet                                            \
+        SMBusSlaveARPFlagAVSet
+#endif
+#ifdef ROM_SMBusSlaveBlockTransferDisable
+#define MAP_SMBusSlaveBlockTransferDisable                                    \
+        ROM_SMBusSlaveBlockTransferDisable
+#else
+#define MAP_SMBusSlaveBlockTransferDisable                                    \
+        SMBusSlaveBlockTransferDisable
+#endif
+#ifdef ROM_SMBusSlaveBlockTransferEnable
+#define MAP_SMBusSlaveBlockTransferEnable                                     \
+        ROM_SMBusSlaveBlockTransferEnable
+#else
+#define MAP_SMBusSlaveBlockTransferEnable                                     \
+        SMBusSlaveBlockTransferEnable
+#endif
+#ifdef ROM_SMBusSlaveCommandGet
+#define MAP_SMBusSlaveCommandGet                                              \
+        ROM_SMBusSlaveCommandGet
+#else
+#define MAP_SMBusSlaveCommandGet                                              \
+        SMBusSlaveCommandGet
+#endif
+#ifdef ROM_SMBusSlaveI2CDisable
+#define MAP_SMBusSlaveI2CDisable                                              \
+        ROM_SMBusSlaveI2CDisable
+#else
+#define MAP_SMBusSlaveI2CDisable                                              \
+        SMBusSlaveI2CDisable
+#endif
+#ifdef ROM_SMBusSlaveI2CEnable
+#define MAP_SMBusSlaveI2CEnable                                               \
+        ROM_SMBusSlaveI2CEnable
+#else
+#define MAP_SMBusSlaveI2CEnable                                               \
+        SMBusSlaveI2CEnable
+#endif
+#ifdef ROM_SMBusSlaveInit
+#define MAP_SMBusSlaveInit                                                    \
+        ROM_SMBusSlaveInit
+#else
+#define MAP_SMBusSlaveInit                                                    \
+        SMBusSlaveInit
+#endif
+#ifdef ROM_SMBusSlaveIntAddressGet
+#define MAP_SMBusSlaveIntAddressGet                                           \
+        ROM_SMBusSlaveIntAddressGet
+#else
+#define MAP_SMBusSlaveIntAddressGet                                           \
+        SMBusSlaveIntAddressGet
+#endif
+#ifdef ROM_SMBusSlaveIntEnable
+#define MAP_SMBusSlaveIntEnable                                               \
+        ROM_SMBusSlaveIntEnable
+#else
+#define MAP_SMBusSlaveIntEnable                                               \
+        SMBusSlaveIntEnable
+#endif
+#ifdef ROM_SMBusSlaveIntProcess
+#define MAP_SMBusSlaveIntProcess                                              \
+        ROM_SMBusSlaveIntProcess
+#else
+#define MAP_SMBusSlaveIntProcess                                              \
+        SMBusSlaveIntProcess
+#endif
+#ifdef ROM_SMBusSlaveManualACKDisable
+#define MAP_SMBusSlaveManualACKDisable                                        \
+        ROM_SMBusSlaveManualACKDisable
+#else
+#define MAP_SMBusSlaveManualACKDisable                                        \
+        SMBusSlaveManualACKDisable
+#endif
+#ifdef ROM_SMBusSlaveManualACKEnable
+#define MAP_SMBusSlaveManualACKEnable                                         \
+        ROM_SMBusSlaveManualACKEnable
+#else
+#define MAP_SMBusSlaveManualACKEnable                                         \
+        SMBusSlaveManualACKEnable
+#endif
+#ifdef ROM_SMBusSlaveManualACKStatusGet
+#define MAP_SMBusSlaveManualACKStatusGet                                      \
+        ROM_SMBusSlaveManualACKStatusGet
+#else
+#define MAP_SMBusSlaveManualACKStatusGet                                      \
+        SMBusSlaveManualACKStatusGet
+#endif
+#ifdef ROM_SMBusSlaveProcessCallDisable
+#define MAP_SMBusSlaveProcessCallDisable                                      \
+        ROM_SMBusSlaveProcessCallDisable
+#else
+#define MAP_SMBusSlaveProcessCallDisable                                      \
+        SMBusSlaveProcessCallDisable
+#endif
+#ifdef ROM_SMBusSlaveProcessCallEnable
+#define MAP_SMBusSlaveProcessCallEnable                                       \
+        ROM_SMBusSlaveProcessCallEnable
+#else
+#define MAP_SMBusSlaveProcessCallEnable                                       \
+        SMBusSlaveProcessCallEnable
+#endif
+#ifdef ROM_SMBusSlaveRxBufferSet
+#define MAP_SMBusSlaveRxBufferSet                                             \
+        ROM_SMBusSlaveRxBufferSet
+#else
+#define MAP_SMBusSlaveRxBufferSet                                             \
+        SMBusSlaveRxBufferSet
+#endif
+#ifdef ROM_SMBusSlaveTransferInit
+#define MAP_SMBusSlaveTransferInit                                            \
+        ROM_SMBusSlaveTransferInit
+#else
+#define MAP_SMBusSlaveTransferInit                                            \
+        SMBusSlaveTransferInit
+#endif
+#ifdef ROM_SMBusSlaveTxBufferSet
+#define MAP_SMBusSlaveTxBufferSet                                             \
+        ROM_SMBusSlaveTxBufferSet
+#else
+#define MAP_SMBusSlaveTxBufferSet                                             \
+        SMBusSlaveTxBufferSet
+#endif
+#ifdef ROM_SMBusSlaveUDIDSet
+#define MAP_SMBusSlaveUDIDSet                                                 \
+        ROM_SMBusSlaveUDIDSet
+#else
+#define MAP_SMBusSlaveUDIDSet                                                 \
+        SMBusSlaveUDIDSet
+#endif
+#ifdef ROM_SMBusStatusGet
+#define MAP_SMBusStatusGet                                                    \
+        ROM_SMBusStatusGet
+#else
+#define MAP_SMBusStatusGet                                                    \
+        SMBusStatusGet
+#endif
+#ifdef ROM_SMBusSlaveDataSend
+#define MAP_SMBusSlaveDataSend                                                \
+        ROM_SMBusSlaveDataSend
+#else
+#define MAP_SMBusSlaveDataSend                                                \
+        SMBusSlaveDataSend
+#endif
+#ifdef ROM_SMBusFIFOEnable
+#define MAP_SMBusFIFOEnable                                                   \
+        ROM_SMBusFIFOEnable
+#else
+#define MAP_SMBusFIFOEnable                                                   \
+        SMBusFIFOEnable
+#endif
+#ifdef ROM_SMBusFIFODisable
+#define MAP_SMBusFIFODisable                                                  \
+        ROM_SMBusFIFODisable
+#else
+#define MAP_SMBusFIFODisable                                                  \
+        SMBusFIFODisable
+#endif
+#ifdef ROM_SMBusDMAEnable
+#define MAP_SMBusDMAEnable                                                    \
+        ROM_SMBusDMAEnable
+#else
+#define MAP_SMBusDMAEnable                                                    \
+        SMBusDMAEnable
+#endif
+#ifdef ROM_SMBusDMADisable
+#define MAP_SMBusDMADisable                                                   \
+        ROM_SMBusDMADisable
+#else
+#define MAP_SMBusDMADisable                                                   \
+        SMBusDMADisable
+#endif
+
+//*****************************************************************************
+//
+// Macros for the SPIFlash API.
+//
+//*****************************************************************************
+#ifdef ROM_SPIFlashIntHandler
+#define MAP_SPIFlashIntHandler                                                \
+        ROM_SPIFlashIntHandler
+#else
+#define MAP_SPIFlashIntHandler                                                \
+        SPIFlashIntHandler
+#endif
+#ifdef ROM_SPIFlashInit
+#define MAP_SPIFlashInit                                                      \
+        ROM_SPIFlashInit
+#else
+#define MAP_SPIFlashInit                                                      \
+        SPIFlashInit
+#endif
+#ifdef ROM_SPIFlashWriteStatus
+#define MAP_SPIFlashWriteStatus                                               \
+        ROM_SPIFlashWriteStatus
+#else
+#define MAP_SPIFlashWriteStatus                                               \
+        SPIFlashWriteStatus
+#endif
+#ifdef ROM_SPIFlashPageProgram
+#define MAP_SPIFlashPageProgram                                               \
+        ROM_SPIFlashPageProgram
+#else
+#define MAP_SPIFlashPageProgram                                               \
+        SPIFlashPageProgram
+#endif
+#ifdef ROM_SPIFlashPageProgramNonBlocking
+#define MAP_SPIFlashPageProgramNonBlocking                                    \
+        ROM_SPIFlashPageProgramNonBlocking
+#else
+#define MAP_SPIFlashPageProgramNonBlocking                                    \
+        SPIFlashPageProgramNonBlocking
+#endif
+#ifdef ROM_SPIFlashRead
+#define MAP_SPIFlashRead                                                      \
+        ROM_SPIFlashRead
+#else
+#define MAP_SPIFlashRead                                                      \
+        SPIFlashRead
+#endif
+#ifdef ROM_SPIFlashReadNonBlocking
+#define MAP_SPIFlashReadNonBlocking                                           \
+        ROM_SPIFlashReadNonBlocking
+#else
+#define MAP_SPIFlashReadNonBlocking                                           \
+        SPIFlashReadNonBlocking
+#endif
+#ifdef ROM_SPIFlashWriteDisable
+#define MAP_SPIFlashWriteDisable                                              \
+        ROM_SPIFlashWriteDisable
+#else
+#define MAP_SPIFlashWriteDisable                                              \
+        SPIFlashWriteDisable
+#endif
+#ifdef ROM_SPIFlashReadStatus
+#define MAP_SPIFlashReadStatus                                                \
+        ROM_SPIFlashReadStatus
+#else
+#define MAP_SPIFlashReadStatus                                                \
+        SPIFlashReadStatus
+#endif
+#ifdef ROM_SPIFlashWriteEnable
+#define MAP_SPIFlashWriteEnable                                               \
+        ROM_SPIFlashWriteEnable
+#else
+#define MAP_SPIFlashWriteEnable                                               \
+        SPIFlashWriteEnable
+#endif
+#ifdef ROM_SPIFlashFastRead
+#define MAP_SPIFlashFastRead                                                  \
+        ROM_SPIFlashFastRead
+#else
+#define MAP_SPIFlashFastRead                                                  \
+        SPIFlashFastRead
+#endif
+#ifdef ROM_SPIFlashFastReadNonBlocking
+#define MAP_SPIFlashFastReadNonBlocking                                       \
+        ROM_SPIFlashFastReadNonBlocking
+#else
+#define MAP_SPIFlashFastReadNonBlocking                                       \
+        SPIFlashFastReadNonBlocking
+#endif
+#ifdef ROM_SPIFlashSectorErase
+#define MAP_SPIFlashSectorErase                                               \
+        ROM_SPIFlashSectorErase
+#else
+#define MAP_SPIFlashSectorErase                                               \
+        SPIFlashSectorErase
+#endif
+#ifdef ROM_SPIFlashDualRead
+#define MAP_SPIFlashDualRead                                                  \
+        ROM_SPIFlashDualRead
+#else
+#define MAP_SPIFlashDualRead                                                  \
+        SPIFlashDualRead
+#endif
+#ifdef ROM_SPIFlashDualReadNonBlocking
+#define MAP_SPIFlashDualReadNonBlocking                                       \
+        ROM_SPIFlashDualReadNonBlocking
+#else
+#define MAP_SPIFlashDualReadNonBlocking                                       \
+        SPIFlashDualReadNonBlocking
+#endif
+#ifdef ROM_SPIFlashBlockErase32
+#define MAP_SPIFlashBlockErase32                                              \
+        ROM_SPIFlashBlockErase32
+#else
+#define MAP_SPIFlashBlockErase32                                              \
+        SPIFlashBlockErase32
+#endif
+#ifdef ROM_SPIFlashQuadRead
+#define MAP_SPIFlashQuadRead                                                  \
+        ROM_SPIFlashQuadRead
+#else
+#define MAP_SPIFlashQuadRead                                                  \
+        SPIFlashQuadRead
+#endif
+#ifdef ROM_SPIFlashQuadReadNonBlocking
+#define MAP_SPIFlashQuadReadNonBlocking                                       \
+        ROM_SPIFlashQuadReadNonBlocking
+#else
+#define MAP_SPIFlashQuadReadNonBlocking                                       \
+        SPIFlashQuadReadNonBlocking
+#endif
+#ifdef ROM_SPIFlashReadID
+#define MAP_SPIFlashReadID                                                    \
+        ROM_SPIFlashReadID
+#else
+#define MAP_SPIFlashReadID                                                    \
+        SPIFlashReadID
+#endif
+#ifdef ROM_SPIFlashChipErase
+#define MAP_SPIFlashChipErase                                                 \
+        ROM_SPIFlashChipErase
+#else
+#define MAP_SPIFlashChipErase                                                 \
+        SPIFlashChipErase
+#endif
+#ifdef ROM_SPIFlashBlockErase64
+#define MAP_SPIFlashBlockErase64                                              \
+        ROM_SPIFlashBlockErase64
+#else
+#define MAP_SPIFlashBlockErase64                                              \
+        SPIFlashBlockErase64
+#endif
+
+//*****************************************************************************
+//
+// Macros for the SSI API.
+//
+//*****************************************************************************
+#ifdef ROM_SSIDataPut
+#define MAP_SSIDataPut                                                        \
+        ROM_SSIDataPut
+#else
+#define MAP_SSIDataPut                                                        \
+        SSIDataPut
+#endif
+#ifdef ROM_SSIConfigSetExpClk
+#define MAP_SSIConfigSetExpClk                                                \
+        ROM_SSIConfigSetExpClk
+#else
+#define MAP_SSIConfigSetExpClk                                                \
+        SSIConfigSetExpClk
+#endif
+#ifdef ROM_SSIEnable
+#define MAP_SSIEnable                                                         \
+        ROM_SSIEnable
+#else
+#define MAP_SSIEnable                                                         \
+        SSIEnable
+#endif
+#ifdef ROM_SSIDisable
+#define MAP_SSIDisable                                                        \
+        ROM_SSIDisable
+#else
+#define MAP_SSIDisable                                                        \
+        SSIDisable
+#endif
+#ifdef ROM_SSIIntEnable
+#define MAP_SSIIntEnable                                                      \
+        ROM_SSIIntEnable
+#else
+#define MAP_SSIIntEnable                                                      \
+        SSIIntEnable
+#endif
+#ifdef ROM_SSIIntDisable
+#define MAP_SSIIntDisable                                                     \
+        ROM_SSIIntDisable
+#else
+#define MAP_SSIIntDisable                                                     \
+        SSIIntDisable
+#endif
+#ifdef ROM_SSIIntStatus
+#define MAP_SSIIntStatus                                                      \
+        ROM_SSIIntStatus
+#else
+#define MAP_SSIIntStatus                                                      \
+        SSIIntStatus
+#endif
+#ifdef ROM_SSIIntClear
+#define MAP_SSIIntClear                                                       \
+        ROM_SSIIntClear
+#else
+#define MAP_SSIIntClear                                                       \
+        SSIIntClear
+#endif
+#ifdef ROM_SSIDataPutNonBlocking
+#define MAP_SSIDataPutNonBlocking                                             \
+        ROM_SSIDataPutNonBlocking
+#else
+#define MAP_SSIDataPutNonBlocking                                             \
+        SSIDataPutNonBlocking
+#endif
+#ifdef ROM_SSIDataGet
+#define MAP_SSIDataGet                                                        \
+        ROM_SSIDataGet
+#else
+#define MAP_SSIDataGet                                                        \
+        SSIDataGet
+#endif
+#ifdef ROM_SSIDataGetNonBlocking
+#define MAP_SSIDataGetNonBlocking                                             \
+        ROM_SSIDataGetNonBlocking
+#else
+#define MAP_SSIDataGetNonBlocking                                             \
+        SSIDataGetNonBlocking
+#endif
+#ifdef ROM_SSIDMAEnable
+#define MAP_SSIDMAEnable                                                      \
+        ROM_SSIDMAEnable
+#else
+#define MAP_SSIDMAEnable                                                      \
+        SSIDMAEnable
+#endif
+#ifdef ROM_SSIDMADisable
+#define MAP_SSIDMADisable                                                     \
+        ROM_SSIDMADisable
+#else
+#define MAP_SSIDMADisable                                                     \
+        SSIDMADisable
+#endif
+#ifdef ROM_SSIBusy
+#define MAP_SSIBusy                                                           \
+        ROM_SSIBusy
+#else
+#define MAP_SSIBusy                                                           \
+        SSIBusy
+#endif
+#ifdef ROM_SSIClockSourceGet
+#define MAP_SSIClockSourceGet                                                 \
+        ROM_SSIClockSourceGet
+#else
+#define MAP_SSIClockSourceGet                                                 \
+        SSIClockSourceGet
+#endif
+#ifdef ROM_SSIClockSourceSet
+#define MAP_SSIClockSourceSet                                                 \
+        ROM_SSIClockSourceSet
+#else
+#define MAP_SSIClockSourceSet                                                 \
+        SSIClockSourceSet
+#endif
+#ifdef ROM_SSIAdvModeSet
+#define MAP_SSIAdvModeSet                                                     \
+        ROM_SSIAdvModeSet
+#else
+#define MAP_SSIAdvModeSet                                                     \
+        SSIAdvModeSet
+#endif
+#ifdef ROM_SSIAdvDataPutFrameEnd
+#define MAP_SSIAdvDataPutFrameEnd                                             \
+        ROM_SSIAdvDataPutFrameEnd
+#else
+#define MAP_SSIAdvDataPutFrameEnd                                             \
+        SSIAdvDataPutFrameEnd
+#endif
+#ifdef ROM_SSIAdvDataPutFrameEndNonBlocking
+#define MAP_SSIAdvDataPutFrameEndNonBlocking                                  \
+        ROM_SSIAdvDataPutFrameEndNonBlocking
+#else
+#define MAP_SSIAdvDataPutFrameEndNonBlocking                                  \
+        SSIAdvDataPutFrameEndNonBlocking
+#endif
+#ifdef ROM_SSIAdvFrameHoldEnable
+#define MAP_SSIAdvFrameHoldEnable                                             \
+        ROM_SSIAdvFrameHoldEnable
+#else
+#define MAP_SSIAdvFrameHoldEnable                                             \
+        SSIAdvFrameHoldEnable
+#endif
+#ifdef ROM_SSIAdvFrameHoldDisable
+#define MAP_SSIAdvFrameHoldDisable                                            \
+        ROM_SSIAdvFrameHoldDisable
+#else
+#define MAP_SSIAdvFrameHoldDisable                                            \
+        SSIAdvFrameHoldDisable
+#endif
+
+//*****************************************************************************
+//
+// Macros for the SysCtl API.
+//
+//*****************************************************************************
+#ifdef ROM_SysCtlSleep
+#define MAP_SysCtlSleep                                                       \
+        ROM_SysCtlSleep
+#else
+#define MAP_SysCtlSleep                                                       \
+        SysCtlSleep
+#endif
+#ifdef ROM_SysCtlSRAMSizeGet
+#define MAP_SysCtlSRAMSizeGet                                                 \
+        ROM_SysCtlSRAMSizeGet
+#else
+#define MAP_SysCtlSRAMSizeGet                                                 \
+        SysCtlSRAMSizeGet
+#endif
+#ifdef ROM_SysCtlFlashSizeGet
+#define MAP_SysCtlFlashSizeGet                                                \
+        ROM_SysCtlFlashSizeGet
+#else
+#define MAP_SysCtlFlashSizeGet                                                \
+        SysCtlFlashSizeGet
+#endif
+#ifdef ROM_SysCtlPeripheralPresent
+#define MAP_SysCtlPeripheralPresent                                           \
+        ROM_SysCtlPeripheralPresent
+#else
+#define MAP_SysCtlPeripheralPresent                                           \
+        SysCtlPeripheralPresent
+#endif
+#ifdef ROM_SysCtlPeripheralReset
+#define MAP_SysCtlPeripheralReset                                             \
+        ROM_SysCtlPeripheralReset
+#else
+#define MAP_SysCtlPeripheralReset                                             \
+        SysCtlPeripheralReset
+#endif
+#ifdef ROM_SysCtlPeripheralEnable
+#define MAP_SysCtlPeripheralEnable                                            \
+        ROM_SysCtlPeripheralEnable
+#else
+#define MAP_SysCtlPeripheralEnable                                            \
+        SysCtlPeripheralEnable
+#endif
+#ifdef ROM_SysCtlPeripheralDisable
+#define MAP_SysCtlPeripheralDisable                                           \
+        ROM_SysCtlPeripheralDisable
+#else
+#define MAP_SysCtlPeripheralDisable                                           \
+        SysCtlPeripheralDisable
+#endif
+#ifdef ROM_SysCtlPeripheralSleepEnable
+#define MAP_SysCtlPeripheralSleepEnable                                       \
+        ROM_SysCtlPeripheralSleepEnable
+#else
+#define MAP_SysCtlPeripheralSleepEnable                                       \
+        SysCtlPeripheralSleepEnable
+#endif
+#ifdef ROM_SysCtlPeripheralSleepDisable
+#define MAP_SysCtlPeripheralSleepDisable                                      \
+        ROM_SysCtlPeripheralSleepDisable
+#else
+#define MAP_SysCtlPeripheralSleepDisable                                      \
+        SysCtlPeripheralSleepDisable
+#endif
+#ifdef ROM_SysCtlPeripheralDeepSleepEnable
+#define MAP_SysCtlPeripheralDeepSleepEnable                                   \
+        ROM_SysCtlPeripheralDeepSleepEnable
+#else
+#define MAP_SysCtlPeripheralDeepSleepEnable                                   \
+        SysCtlPeripheralDeepSleepEnable
+#endif
+#ifdef ROM_SysCtlPeripheralDeepSleepDisable
+#define MAP_SysCtlPeripheralDeepSleepDisable                                  \
+        ROM_SysCtlPeripheralDeepSleepDisable
+#else
+#define MAP_SysCtlPeripheralDeepSleepDisable                                  \
+        SysCtlPeripheralDeepSleepDisable
+#endif
+#ifdef ROM_SysCtlPeripheralClockGating
+#define MAP_SysCtlPeripheralClockGating                                       \
+        ROM_SysCtlPeripheralClockGating
+#else
+#define MAP_SysCtlPeripheralClockGating                                       \
+        SysCtlPeripheralClockGating
+#endif
+#ifdef ROM_SysCtlIntEnable
+#define MAP_SysCtlIntEnable                                                   \
+        ROM_SysCtlIntEnable
+#else
+#define MAP_SysCtlIntEnable                                                   \
+        SysCtlIntEnable
+#endif
+#ifdef ROM_SysCtlIntDisable
+#define MAP_SysCtlIntDisable                                                  \
+        ROM_SysCtlIntDisable
+#else
+#define MAP_SysCtlIntDisable                                                  \
+        SysCtlIntDisable
+#endif
+#ifdef ROM_SysCtlIntClear
+#define MAP_SysCtlIntClear                                                    \
+        ROM_SysCtlIntClear
+#else
+#define MAP_SysCtlIntClear                                                    \
+        SysCtlIntClear
+#endif
+#ifdef ROM_SysCtlIntStatus
+#define MAP_SysCtlIntStatus                                                   \
+        ROM_SysCtlIntStatus
+#else
+#define MAP_SysCtlIntStatus                                                   \
+        SysCtlIntStatus
+#endif
+#ifdef ROM_SysCtlReset
+#define MAP_SysCtlReset                                                       \
+        ROM_SysCtlReset
+#else
+#define MAP_SysCtlReset                                                       \
+        SysCtlReset
+#endif
+#ifdef ROM_SysCtlDeepSleep
+#define MAP_SysCtlDeepSleep                                                   \
+        ROM_SysCtlDeepSleep
+#else
+#define MAP_SysCtlDeepSleep                                                   \
+        SysCtlDeepSleep
+#endif
+#ifdef ROM_SysCtlResetCauseGet
+#define MAP_SysCtlResetCauseGet                                               \
+        ROM_SysCtlResetCauseGet
+#else
+#define MAP_SysCtlResetCauseGet                                               \
+        SysCtlResetCauseGet
+#endif
+#ifdef ROM_SysCtlResetCauseClear
+#define MAP_SysCtlResetCauseClear                                             \
+        ROM_SysCtlResetCauseClear
+#else
+#define MAP_SysCtlResetCauseClear                                             \
+        SysCtlResetCauseClear
+#endif
+#ifdef ROM_SysCtlClockSet
+#define MAP_SysCtlClockSet                                                    \
+        ROM_SysCtlClockSet
+#else
+#define MAP_SysCtlClockSet                                                    \
+        SysCtlClockSet
+#endif
+#ifdef ROM_SysCtlClockGet
+#define MAP_SysCtlClockGet                                                    \
+        ROM_SysCtlClockGet
+#else
+#define MAP_SysCtlClockGet                                                    \
+        SysCtlClockGet
+#endif
+#ifdef ROM_SysCtlPWMClockSet
+#define MAP_SysCtlPWMClockSet                                                 \
+        ROM_SysCtlPWMClockSet
+#else
+#define MAP_SysCtlPWMClockSet                                                 \
+        SysCtlPWMClockSet
+#endif
+#ifdef ROM_SysCtlPWMClockGet
+#define MAP_SysCtlPWMClockGet                                                 \
+        ROM_SysCtlPWMClockGet
+#else
+#define MAP_SysCtlPWMClockGet                                                 \
+        SysCtlPWMClockGet
+#endif
+#ifdef ROM_SysCtlUSBPLLEnable
+#define MAP_SysCtlUSBPLLEnable                                                \
+        ROM_SysCtlUSBPLLEnable
+#else
+#define MAP_SysCtlUSBPLLEnable                                                \
+        SysCtlUSBPLLEnable
+#endif
+#ifdef ROM_SysCtlUSBPLLDisable
+#define MAP_SysCtlUSBPLLDisable                                               \
+        ROM_SysCtlUSBPLLDisable
+#else
+#define MAP_SysCtlUSBPLLDisable                                               \
+        SysCtlUSBPLLDisable
+#endif
+#ifdef ROM_SysCtlDelay
+#define MAP_SysCtlDelay                                                       \
+        ROM_SysCtlDelay
+#else
+#define MAP_SysCtlDelay                                                       \
+        SysCtlDelay
+#endif
+#ifdef ROM_SysCtlPeripheralReady
+#define MAP_SysCtlPeripheralReady                                             \
+        ROM_SysCtlPeripheralReady
+#else
+#define MAP_SysCtlPeripheralReady                                             \
+        SysCtlPeripheralReady
+#endif
+#ifdef ROM_SysCtlPeripheralPowerOn
+#define MAP_SysCtlPeripheralPowerOn                                           \
+        ROM_SysCtlPeripheralPowerOn
+#else
+#define MAP_SysCtlPeripheralPowerOn                                           \
+        SysCtlPeripheralPowerOn
+#endif
+#ifdef ROM_SysCtlPeripheralPowerOff
+#define MAP_SysCtlPeripheralPowerOff                                          \
+        ROM_SysCtlPeripheralPowerOff
+#else
+#define MAP_SysCtlPeripheralPowerOff                                          \
+        SysCtlPeripheralPowerOff
+#endif
+#ifdef ROM_SysCtlMOSCConfigSet
+#define MAP_SysCtlMOSCConfigSet                                               \
+        ROM_SysCtlMOSCConfigSet
+#else
+#define MAP_SysCtlMOSCConfigSet                                               \
+        SysCtlMOSCConfigSet
+#endif
+#ifdef ROM_SysCtlPIOSCCalibrate
+#define MAP_SysCtlPIOSCCalibrate                                              \
+        ROM_SysCtlPIOSCCalibrate
+#else
+#define MAP_SysCtlPIOSCCalibrate                                              \
+        SysCtlPIOSCCalibrate
+#endif
+#ifdef ROM_SysCtlDeepSleepClockSet
+#define MAP_SysCtlDeepSleepClockSet                                           \
+        ROM_SysCtlDeepSleepClockSet
+#else
+#define MAP_SysCtlDeepSleepClockSet                                           \
+        SysCtlDeepSleepClockSet
+#endif
+#ifdef ROM_SysCtlDeepSleepClockConfigSet
+#define MAP_SysCtlDeepSleepClockConfigSet                                     \
+        ROM_SysCtlDeepSleepClockConfigSet
+#else
+#define MAP_SysCtlDeepSleepClockConfigSet                                     \
+        SysCtlDeepSleepClockConfigSet
+#endif
+#ifdef ROM_SysCtlClockFreqSet
+#define MAP_SysCtlClockFreqSet                                                \
+        ROM_SysCtlClockFreqSet
+#else
+#define MAP_SysCtlClockFreqSet                                                \
+        SysCtlClockFreqSet
+#endif
+#ifdef ROM_SysCtlResetBehaviorSet
+#define MAP_SysCtlResetBehaviorSet                                            \
+        ROM_SysCtlResetBehaviorSet
+#else
+#define MAP_SysCtlResetBehaviorSet                                            \
+        SysCtlResetBehaviorSet
+#endif
+#ifdef ROM_SysCtlResetBehaviorGet
+#define MAP_SysCtlResetBehaviorGet                                            \
+        ROM_SysCtlResetBehaviorGet
+#else
+#define MAP_SysCtlResetBehaviorGet                                            \
+        SysCtlResetBehaviorGet
+#endif
+#ifdef ROM_SysCtlFlashSectorSizeGet
+#define MAP_SysCtlFlashSectorSizeGet                                          \
+        ROM_SysCtlFlashSectorSizeGet
+#else
+#define MAP_SysCtlFlashSectorSizeGet                                          \
+        SysCtlFlashSectorSizeGet
+#endif
+#ifdef ROM_SysCtlVoltageEventConfig
+#define MAP_SysCtlVoltageEventConfig                                          \
+        ROM_SysCtlVoltageEventConfig
+#else
+#define MAP_SysCtlVoltageEventConfig                                          \
+        SysCtlVoltageEventConfig
+#endif
+#ifdef ROM_SysCtlVoltageEventStatus
+#define MAP_SysCtlVoltageEventStatus                                          \
+        ROM_SysCtlVoltageEventStatus
+#else
+#define MAP_SysCtlVoltageEventStatus                                          \
+        SysCtlVoltageEventStatus
+#endif
+#ifdef ROM_SysCtlVoltageEventClear
+#define MAP_SysCtlVoltageEventClear                                           \
+        ROM_SysCtlVoltageEventClear
+#else
+#define MAP_SysCtlVoltageEventClear                                           \
+        SysCtlVoltageEventClear
+#endif
+#ifdef ROM_SysCtlNMIStatus
+#define MAP_SysCtlNMIStatus                                                   \
+        ROM_SysCtlNMIStatus
+#else
+#define MAP_SysCtlNMIStatus                                                   \
+        SysCtlNMIStatus
+#endif
+#ifdef ROM_SysCtlNMIClear
+#define MAP_SysCtlNMIClear                                                    \
+        ROM_SysCtlNMIClear
+#else
+#define MAP_SysCtlNMIClear                                                    \
+        SysCtlNMIClear
+#endif
+#ifdef ROM_SysCtlClockOutConfig
+#define MAP_SysCtlClockOutConfig                                              \
+        ROM_SysCtlClockOutConfig
+#else
+#define MAP_SysCtlClockOutConfig                                              \
+        SysCtlClockOutConfig
+#endif
+#ifdef ROM_SysCtlAltClkConfig
+#define MAP_SysCtlAltClkConfig                                                \
+        ROM_SysCtlAltClkConfig
+#else
+#define MAP_SysCtlAltClkConfig                                                \
+        SysCtlAltClkConfig
+#endif
+
+//*****************************************************************************
+//
+// Macros for the SysExc API.
+//
+//*****************************************************************************
+#ifdef ROM_SysExcIntStatus
+#define MAP_SysExcIntStatus                                                   \
+        ROM_SysExcIntStatus
+#else
+#define MAP_SysExcIntStatus                                                   \
+        SysExcIntStatus
+#endif
+#ifdef ROM_SysExcIntClear
+#define MAP_SysExcIntClear                                                    \
+        ROM_SysExcIntClear
+#else
+#define MAP_SysExcIntClear                                                    \
+        SysExcIntClear
+#endif
+#ifdef ROM_SysExcIntDisable
+#define MAP_SysExcIntDisable                                                  \
+        ROM_SysExcIntDisable
+#else
+#define MAP_SysExcIntDisable                                                  \
+        SysExcIntDisable
+#endif
+#ifdef ROM_SysExcIntEnable
+#define MAP_SysExcIntEnable                                                   \
+        ROM_SysExcIntEnable
+#else
+#define MAP_SysExcIntEnable                                                   \
+        SysExcIntEnable
+#endif
+
+//*****************************************************************************
+//
+// Macros for the SysTick API.
+//
+//*****************************************************************************
+#ifdef ROM_SysTickValueGet
+#define MAP_SysTickValueGet                                                   \
+        ROM_SysTickValueGet
+#else
+#define MAP_SysTickValueGet                                                   \
+        SysTickValueGet
+#endif
+#ifdef ROM_SysTickEnable
+#define MAP_SysTickEnable                                                     \
+        ROM_SysTickEnable
+#else
+#define MAP_SysTickEnable                                                     \
+        SysTickEnable
+#endif
+#ifdef ROM_SysTickDisable
+#define MAP_SysTickDisable                                                    \
+        ROM_SysTickDisable
+#else
+#define MAP_SysTickDisable                                                    \
+        SysTickDisable
+#endif
+#ifdef ROM_SysTickIntEnable
+#define MAP_SysTickIntEnable                                                  \
+        ROM_SysTickIntEnable
+#else
+#define MAP_SysTickIntEnable                                                  \
+        SysTickIntEnable
+#endif
+#ifdef ROM_SysTickIntDisable
+#define MAP_SysTickIntDisable                                                 \
+        ROM_SysTickIntDisable
+#else
+#define MAP_SysTickIntDisable                                                 \
+        SysTickIntDisable
+#endif
+#ifdef ROM_SysTickPeriodSet
+#define MAP_SysTickPeriodSet                                                  \
+        ROM_SysTickPeriodSet
+#else
+#define MAP_SysTickPeriodSet                                                  \
+        SysTickPeriodSet
+#endif
+#ifdef ROM_SysTickPeriodGet
+#define MAP_SysTickPeriodGet                                                  \
+        ROM_SysTickPeriodGet
+#else
+#define MAP_SysTickPeriodGet                                                  \
+        SysTickPeriodGet
+#endif
+
+//*****************************************************************************
+//
+// Macros for the Timer API.
+//
+//*****************************************************************************
+#ifdef ROM_TimerIntClear
+#define MAP_TimerIntClear                                                     \
+        ROM_TimerIntClear
+#else
+#define MAP_TimerIntClear                                                     \
+        TimerIntClear
+#endif
+#ifdef ROM_TimerEnable
+#define MAP_TimerEnable                                                       \
+        ROM_TimerEnable
+#else
+#define MAP_TimerEnable                                                       \
+        TimerEnable
+#endif
+#ifdef ROM_TimerDisable
+#define MAP_TimerDisable                                                      \
+        ROM_TimerDisable
+#else
+#define MAP_TimerDisable                                                      \
+        TimerDisable
+#endif
+#ifdef ROM_TimerConfigure
+#define MAP_TimerConfigure                                                    \
+        ROM_TimerConfigure
+#else
+#define MAP_TimerConfigure                                                    \
+        TimerConfigure
+#endif
+#ifdef ROM_TimerControlLevel
+#define MAP_TimerControlLevel                                                 \
+        ROM_TimerControlLevel
+#else
+#define MAP_TimerControlLevel                                                 \
+        TimerControlLevel
+#endif
+#ifdef ROM_TimerControlTrigger
+#define MAP_TimerControlTrigger                                               \
+        ROM_TimerControlTrigger
+#else
+#define MAP_TimerControlTrigger                                               \
+        TimerControlTrigger
+#endif
+#ifdef ROM_TimerControlEvent
+#define MAP_TimerControlEvent                                                 \
+        ROM_TimerControlEvent
+#else
+#define MAP_TimerControlEvent                                                 \
+        TimerControlEvent
+#endif
+#ifdef ROM_TimerControlStall
+#define MAP_TimerControlStall                                                 \
+        ROM_TimerControlStall
+#else
+#define MAP_TimerControlStall                                                 \
+        TimerControlStall
+#endif
+#ifdef ROM_TimerRTCEnable
+#define MAP_TimerRTCEnable                                                    \
+        ROM_TimerRTCEnable
+#else
+#define MAP_TimerRTCEnable                                                    \
+        TimerRTCEnable
+#endif
+#ifdef ROM_TimerRTCDisable
+#define MAP_TimerRTCDisable                                                   \
+        ROM_TimerRTCDisable
+#else
+#define MAP_TimerRTCDisable                                                   \
+        TimerRTCDisable
+#endif
+#ifdef ROM_TimerPrescaleSet
+#define MAP_TimerPrescaleSet                                                  \
+        ROM_TimerPrescaleSet
+#else
+#define MAP_TimerPrescaleSet                                                  \
+        TimerPrescaleSet
+#endif
+#ifdef ROM_TimerPrescaleGet
+#define MAP_TimerPrescaleGet                                                  \
+        ROM_TimerPrescaleGet
+#else
+#define MAP_TimerPrescaleGet                                                  \
+        TimerPrescaleGet
+#endif
+#ifdef ROM_TimerPrescaleMatchSet
+#define MAP_TimerPrescaleMatchSet                                             \
+        ROM_TimerPrescaleMatchSet
+#else
+#define MAP_TimerPrescaleMatchSet                                             \
+        TimerPrescaleMatchSet
+#endif
+#ifdef ROM_TimerPrescaleMatchGet
+#define MAP_TimerPrescaleMatchGet                                             \
+        ROM_TimerPrescaleMatchGet
+#else
+#define MAP_TimerPrescaleMatchGet                                             \
+        TimerPrescaleMatchGet
+#endif
+#ifdef ROM_TimerLoadSet
+#define MAP_TimerLoadSet                                                      \
+        ROM_TimerLoadSet
+#else
+#define MAP_TimerLoadSet                                                      \
+        TimerLoadSet
+#endif
+#ifdef ROM_TimerLoadGet
+#define MAP_TimerLoadGet                                                      \
+        ROM_TimerLoadGet
+#else
+#define MAP_TimerLoadGet                                                      \
+        TimerLoadGet
+#endif
+#ifdef ROM_TimerValueGet
+#define MAP_TimerValueGet                                                     \
+        ROM_TimerValueGet
+#else
+#define MAP_TimerValueGet                                                     \
+        TimerValueGet
+#endif
+#ifdef ROM_TimerMatchSet
+#define MAP_TimerMatchSet                                                     \
+        ROM_TimerMatchSet
+#else
+#define MAP_TimerMatchSet                                                     \
+        TimerMatchSet
+#endif
+#ifdef ROM_TimerMatchGet
+#define MAP_TimerMatchGet                                                     \
+        ROM_TimerMatchGet
+#else
+#define MAP_TimerMatchGet                                                     \
+        TimerMatchGet
+#endif
+#ifdef ROM_TimerIntEnable
+#define MAP_TimerIntEnable                                                    \
+        ROM_TimerIntEnable
+#else
+#define MAP_TimerIntEnable                                                    \
+        TimerIntEnable
+#endif
+#ifdef ROM_TimerIntDisable
+#define MAP_TimerIntDisable                                                   \
+        ROM_TimerIntDisable
+#else
+#define MAP_TimerIntDisable                                                   \
+        TimerIntDisable
+#endif
+#ifdef ROM_TimerIntStatus
+#define MAP_TimerIntStatus                                                    \
+        ROM_TimerIntStatus
+#else
+#define MAP_TimerIntStatus                                                    \
+        TimerIntStatus
+#endif
+#ifdef ROM_TimerControlWaitOnTrigger
+#define MAP_TimerControlWaitOnTrigger                                         \
+        ROM_TimerControlWaitOnTrigger
+#else
+#define MAP_TimerControlWaitOnTrigger                                         \
+        TimerControlWaitOnTrigger
+#endif
+#ifdef ROM_TimerLoadSet64
+#define MAP_TimerLoadSet64                                                    \
+        ROM_TimerLoadSet64
+#else
+#define MAP_TimerLoadSet64                                                    \
+        TimerLoadSet64
+#endif
+#ifdef ROM_TimerLoadGet64
+#define MAP_TimerLoadGet64                                                    \
+        ROM_TimerLoadGet64
+#else
+#define MAP_TimerLoadGet64                                                    \
+        TimerLoadGet64
+#endif
+#ifdef ROM_TimerValueGet64
+#define MAP_TimerValueGet64                                                   \
+        ROM_TimerValueGet64
+#else
+#define MAP_TimerValueGet64                                                   \
+        TimerValueGet64
+#endif
+#ifdef ROM_TimerMatchSet64
+#define MAP_TimerMatchSet64                                                   \
+        ROM_TimerMatchSet64
+#else
+#define MAP_TimerMatchSet64                                                   \
+        TimerMatchSet64
+#endif
+#ifdef ROM_TimerMatchGet64
+#define MAP_TimerMatchGet64                                                   \
+        ROM_TimerMatchGet64
+#else
+#define MAP_TimerMatchGet64                                                   \
+        TimerMatchGet64
+#endif
+#ifdef ROM_TimerClockSourceGet
+#define MAP_TimerClockSourceGet                                               \
+        ROM_TimerClockSourceGet
+#else
+#define MAP_TimerClockSourceGet                                               \
+        TimerClockSourceGet
+#endif
+#ifdef ROM_TimerClockSourceSet
+#define MAP_TimerClockSourceSet                                               \
+        ROM_TimerClockSourceSet
+#else
+#define MAP_TimerClockSourceSet                                               \
+        TimerClockSourceSet
+#endif
+#ifdef ROM_TimerADCEventGet
+#define MAP_TimerADCEventGet                                                  \
+        ROM_TimerADCEventGet
+#else
+#define MAP_TimerADCEventGet                                                  \
+        TimerADCEventGet
+#endif
+#ifdef ROM_TimerADCEventSet
+#define MAP_TimerADCEventSet                                                  \
+        ROM_TimerADCEventSet
+#else
+#define MAP_TimerADCEventSet                                                  \
+        TimerADCEventSet
+#endif
+#ifdef ROM_TimerDMAEventGet
+#define MAP_TimerDMAEventGet                                                  \
+        ROM_TimerDMAEventGet
+#else
+#define MAP_TimerDMAEventGet                                                  \
+        TimerDMAEventGet
+#endif
+#ifdef ROM_TimerDMAEventSet
+#define MAP_TimerDMAEventSet                                                  \
+        ROM_TimerDMAEventSet
+#else
+#define MAP_TimerDMAEventSet                                                  \
+        TimerDMAEventSet
+#endif
+#ifdef ROM_TimerSynchronize
+#define MAP_TimerSynchronize                                                  \
+        ROM_TimerSynchronize
+#else
+#define MAP_TimerSynchronize                                                  \
+        TimerSynchronize
+#endif
+
+//*****************************************************************************
+//
+// Macros for the UART API.
+//
+//*****************************************************************************
+#ifdef ROM_UARTCharPut
+#define MAP_UARTCharPut                                                       \
+        ROM_UARTCharPut
+#else
+#define MAP_UARTCharPut                                                       \
+        UARTCharPut
+#endif
+#ifdef ROM_UARTParityModeSet
+#define MAP_UARTParityModeSet                                                 \
+        ROM_UARTParityModeSet
+#else
+#define MAP_UARTParityModeSet                                                 \
+        UARTParityModeSet
+#endif
+#ifdef ROM_UARTParityModeGet
+#define MAP_UARTParityModeGet                                                 \
+        ROM_UARTParityModeGet
+#else
+#define MAP_UARTParityModeGet                                                 \
+        UARTParityModeGet
+#endif
+#ifdef ROM_UARTFIFOLevelSet
+#define MAP_UARTFIFOLevelSet                                                  \
+        ROM_UARTFIFOLevelSet
+#else
+#define MAP_UARTFIFOLevelSet                                                  \
+        UARTFIFOLevelSet
+#endif
+#ifdef ROM_UARTFIFOLevelGet
+#define MAP_UARTFIFOLevelGet                                                  \
+        ROM_UARTFIFOLevelGet
+#else
+#define MAP_UARTFIFOLevelGet                                                  \
+        UARTFIFOLevelGet
+#endif
+#ifdef ROM_UARTConfigSetExpClk
+#define MAP_UARTConfigSetExpClk                                               \
+        ROM_UARTConfigSetExpClk
+#else
+#define MAP_UARTConfigSetExpClk                                               \
+        UARTConfigSetExpClk
+#endif
+#ifdef ROM_UARTConfigGetExpClk
+#define MAP_UARTConfigGetExpClk                                               \
+        ROM_UARTConfigGetExpClk
+#else
+#define MAP_UARTConfigGetExpClk                                               \
+        UARTConfigGetExpClk
+#endif
+#ifdef ROM_UARTEnable
+#define MAP_UARTEnable                                                        \
+        ROM_UARTEnable
+#else
+#define MAP_UARTEnable                                                        \
+        UARTEnable
+#endif
+#ifdef ROM_UARTDisable
+#define MAP_UARTDisable                                                       \
+        ROM_UARTDisable
+#else
+#define MAP_UARTDisable                                                       \
+        UARTDisable
+#endif
+#ifdef ROM_UARTEnableSIR
+#define MAP_UARTEnableSIR                                                     \
+        ROM_UARTEnableSIR
+#else
+#define MAP_UARTEnableSIR                                                     \
+        UARTEnableSIR
+#endif
+#ifdef ROM_UARTDisableSIR
+#define MAP_UARTDisableSIR                                                    \
+        ROM_UARTDisableSIR
+#else
+#define MAP_UARTDisableSIR                                                    \
+        UARTDisableSIR
+#endif
+#ifdef ROM_UARTCharsAvail
+#define MAP_UARTCharsAvail                                                    \
+        ROM_UARTCharsAvail
+#else
+#define MAP_UARTCharsAvail                                                    \
+        UARTCharsAvail
+#endif
+#ifdef ROM_UARTSpaceAvail
+#define MAP_UARTSpaceAvail                                                    \
+        ROM_UARTSpaceAvail
+#else
+#define MAP_UARTSpaceAvail                                                    \
+        UARTSpaceAvail
+#endif
+#ifdef ROM_UARTCharGetNonBlocking
+#define MAP_UARTCharGetNonBlocking                                            \
+        ROM_UARTCharGetNonBlocking
+#else
+#define MAP_UARTCharGetNonBlocking                                            \
+        UARTCharGetNonBlocking
+#endif
+#ifdef ROM_UARTCharGet
+#define MAP_UARTCharGet                                                       \
+        ROM_UARTCharGet
+#else
+#define MAP_UARTCharGet                                                       \
+        UARTCharGet
+#endif
+#ifdef ROM_UARTCharPutNonBlocking
+#define MAP_UARTCharPutNonBlocking                                            \
+        ROM_UARTCharPutNonBlocking
+#else
+#define MAP_UARTCharPutNonBlocking                                            \
+        UARTCharPutNonBlocking
+#endif
+#ifdef ROM_UARTBreakCtl
+#define MAP_UARTBreakCtl                                                      \
+        ROM_UARTBreakCtl
+#else
+#define MAP_UARTBreakCtl                                                      \
+        UARTBreakCtl
+#endif
+#ifdef ROM_UARTIntEnable
+#define MAP_UARTIntEnable                                                     \
+        ROM_UARTIntEnable
+#else
+#define MAP_UARTIntEnable                                                     \
+        UARTIntEnable
+#endif
+#ifdef ROM_UARTIntDisable
+#define MAP_UARTIntDisable                                                    \
+        ROM_UARTIntDisable
+#else
+#define MAP_UARTIntDisable                                                    \
+        UARTIntDisable
+#endif
+#ifdef ROM_UARTIntStatus
+#define MAP_UARTIntStatus                                                     \
+        ROM_UARTIntStatus
+#else
+#define MAP_UARTIntStatus                                                     \
+        UARTIntStatus
+#endif
+#ifdef ROM_UARTIntClear
+#define MAP_UARTIntClear                                                      \
+        ROM_UARTIntClear
+#else
+#define MAP_UARTIntClear                                                      \
+        UARTIntClear
+#endif
+#ifdef ROM_UARTDMAEnable
+#define MAP_UARTDMAEnable                                                     \
+        ROM_UARTDMAEnable
+#else
+#define MAP_UARTDMAEnable                                                     \
+        UARTDMAEnable
+#endif
+#ifdef ROM_UARTDMADisable
+#define MAP_UARTDMADisable                                                    \
+        ROM_UARTDMADisable
+#else
+#define MAP_UARTDMADisable                                                    \
+        UARTDMADisable
+#endif
+#ifdef ROM_UARTFIFOEnable
+#define MAP_UARTFIFOEnable                                                    \
+        ROM_UARTFIFOEnable
+#else
+#define MAP_UARTFIFOEnable                                                    \
+        UARTFIFOEnable
+#endif
+#ifdef ROM_UARTFIFODisable
+#define MAP_UARTFIFODisable                                                   \
+        ROM_UARTFIFODisable
+#else
+#define MAP_UARTFIFODisable                                                   \
+        UARTFIFODisable
+#endif
+#ifdef ROM_UARTBusy
+#define MAP_UARTBusy                                                          \
+        ROM_UARTBusy
+#else
+#define MAP_UARTBusy                                                          \
+        UARTBusy
+#endif
+#ifdef ROM_UARTTxIntModeSet
+#define MAP_UARTTxIntModeSet                                                  \
+        ROM_UARTTxIntModeSet
+#else
+#define MAP_UARTTxIntModeSet                                                  \
+        UARTTxIntModeSet
+#endif
+#ifdef ROM_UARTTxIntModeGet
+#define MAP_UARTTxIntModeGet                                                  \
+        ROM_UARTTxIntModeGet
+#else
+#define MAP_UARTTxIntModeGet                                                  \
+        UARTTxIntModeGet
+#endif
+#ifdef ROM_UARTRxErrorGet
+#define MAP_UARTRxErrorGet                                                    \
+        ROM_UARTRxErrorGet
+#else
+#define MAP_UARTRxErrorGet                                                    \
+        UARTRxErrorGet
+#endif
+#ifdef ROM_UARTRxErrorClear
+#define MAP_UARTRxErrorClear                                                  \
+        ROM_UARTRxErrorClear
+#else
+#define MAP_UARTRxErrorClear                                                  \
+        UARTRxErrorClear
+#endif
+#ifdef ROM_UARTClockSourceSet
+#define MAP_UARTClockSourceSet                                                \
+        ROM_UARTClockSourceSet
+#else
+#define MAP_UARTClockSourceSet                                                \
+        UARTClockSourceSet
+#endif
+#ifdef ROM_UARTClockSourceGet
+#define MAP_UARTClockSourceGet                                                \
+        ROM_UARTClockSourceGet
+#else
+#define MAP_UARTClockSourceGet                                                \
+        UARTClockSourceGet
+#endif
+#ifdef ROM_UART9BitEnable
+#define MAP_UART9BitEnable                                                    \
+        ROM_UART9BitEnable
+#else
+#define MAP_UART9BitEnable                                                    \
+        UART9BitEnable
+#endif
+#ifdef ROM_UART9BitDisable
+#define MAP_UART9BitDisable                                                   \
+        ROM_UART9BitDisable
+#else
+#define MAP_UART9BitDisable                                                   \
+        UART9BitDisable
+#endif
+#ifdef ROM_UART9BitAddrSet
+#define MAP_UART9BitAddrSet                                                   \
+        ROM_UART9BitAddrSet
+#else
+#define MAP_UART9BitAddrSet                                                   \
+        UART9BitAddrSet
+#endif
+#ifdef ROM_UART9BitAddrSend
+#define MAP_UART9BitAddrSend                                                  \
+        ROM_UART9BitAddrSend
+#else
+#define MAP_UART9BitAddrSend                                                  \
+        UART9BitAddrSend
+#endif
+#ifdef ROM_UARTSmartCardDisable
+#define MAP_UARTSmartCardDisable                                              \
+        ROM_UARTSmartCardDisable
+#else
+#define MAP_UARTSmartCardDisable                                              \
+        UARTSmartCardDisable
+#endif
+#ifdef ROM_UARTSmartCardEnable
+#define MAP_UARTSmartCardEnable                                               \
+        ROM_UARTSmartCardEnable
+#else
+#define MAP_UARTSmartCardEnable                                               \
+        UARTSmartCardEnable
+#endif
+#ifdef ROM_UARTModemControlClear
+#define MAP_UARTModemControlClear                                             \
+        ROM_UARTModemControlClear
+#else
+#define MAP_UARTModemControlClear                                             \
+        UARTModemControlClear
+#endif
+#ifdef ROM_UARTModemControlGet
+#define MAP_UARTModemControlGet                                               \
+        ROM_UARTModemControlGet
+#else
+#define MAP_UARTModemControlGet                                               \
+        UARTModemControlGet
+#endif
+#ifdef ROM_UARTModemControlSet
+#define MAP_UARTModemControlSet                                               \
+        ROM_UARTModemControlSet
+#else
+#define MAP_UARTModemControlSet                                               \
+        UARTModemControlSet
+#endif
+#ifdef ROM_UARTModemStatusGet
+#define MAP_UARTModemStatusGet                                                \
+        ROM_UARTModemStatusGet
+#else
+#define MAP_UARTModemStatusGet                                                \
+        UARTModemStatusGet
+#endif
+#ifdef ROM_UARTFlowControlGet
+#define MAP_UARTFlowControlGet                                                \
+        ROM_UARTFlowControlGet
+#else
+#define MAP_UARTFlowControlGet                                                \
+        UARTFlowControlGet
+#endif
+#ifdef ROM_UARTFlowControlSet
+#define MAP_UARTFlowControlSet                                                \
+        ROM_UARTFlowControlSet
+#else
+#define MAP_UARTFlowControlSet                                                \
+        UARTFlowControlSet
+#endif
+
+//*****************************************************************************
+//
+// Macros for the uDMA API.
+//
+//*****************************************************************************
+#ifdef ROM_uDMAChannelTransferSet
+#define MAP_uDMAChannelTransferSet                                            \
+        ROM_uDMAChannelTransferSet
+#else
+#define MAP_uDMAChannelTransferSet                                            \
+        uDMAChannelTransferSet
+#endif
+#ifdef ROM_uDMAEnable
+#define MAP_uDMAEnable                                                        \
+        ROM_uDMAEnable
+#else
+#define MAP_uDMAEnable                                                        \
+        uDMAEnable
+#endif
+#ifdef ROM_uDMADisable
+#define MAP_uDMADisable                                                       \
+        ROM_uDMADisable
+#else
+#define MAP_uDMADisable                                                       \
+        uDMADisable
+#endif
+#ifdef ROM_uDMAErrorStatusGet
+#define MAP_uDMAErrorStatusGet                                                \
+        ROM_uDMAErrorStatusGet
+#else
+#define MAP_uDMAErrorStatusGet                                                \
+        uDMAErrorStatusGet
+#endif
+#ifdef ROM_uDMAErrorStatusClear
+#define MAP_uDMAErrorStatusClear                                              \
+        ROM_uDMAErrorStatusClear
+#else
+#define MAP_uDMAErrorStatusClear                                              \
+        uDMAErrorStatusClear
+#endif
+#ifdef ROM_uDMAChannelEnable
+#define MAP_uDMAChannelEnable                                                 \
+        ROM_uDMAChannelEnable
+#else
+#define MAP_uDMAChannelEnable                                                 \
+        uDMAChannelEnable
+#endif
+#ifdef ROM_uDMAChannelDisable
+#define MAP_uDMAChannelDisable                                                \
+        ROM_uDMAChannelDisable
+#else
+#define MAP_uDMAChannelDisable                                                \
+        uDMAChannelDisable
+#endif
+#ifdef ROM_uDMAChannelIsEnabled
+#define MAP_uDMAChannelIsEnabled                                              \
+        ROM_uDMAChannelIsEnabled
+#else
+#define MAP_uDMAChannelIsEnabled                                              \
+        uDMAChannelIsEnabled
+#endif
+#ifdef ROM_uDMAControlBaseSet
+#define MAP_uDMAControlBaseSet                                                \
+        ROM_uDMAControlBaseSet
+#else
+#define MAP_uDMAControlBaseSet                                                \
+        uDMAControlBaseSet
+#endif
+#ifdef ROM_uDMAControlBaseGet
+#define MAP_uDMAControlBaseGet                                                \
+        ROM_uDMAControlBaseGet
+#else
+#define MAP_uDMAControlBaseGet                                                \
+        uDMAControlBaseGet
+#endif
+#ifdef ROM_uDMAChannelRequest
+#define MAP_uDMAChannelRequest                                                \
+        ROM_uDMAChannelRequest
+#else
+#define MAP_uDMAChannelRequest                                                \
+        uDMAChannelRequest
+#endif
+#ifdef ROM_uDMAChannelAttributeEnable
+#define MAP_uDMAChannelAttributeEnable                                        \
+        ROM_uDMAChannelAttributeEnable
+#else
+#define MAP_uDMAChannelAttributeEnable                                        \
+        uDMAChannelAttributeEnable
+#endif
+#ifdef ROM_uDMAChannelAttributeDisable
+#define MAP_uDMAChannelAttributeDisable                                       \
+        ROM_uDMAChannelAttributeDisable
+#else
+#define MAP_uDMAChannelAttributeDisable                                       \
+        uDMAChannelAttributeDisable
+#endif
+#ifdef ROM_uDMAChannelAttributeGet
+#define MAP_uDMAChannelAttributeGet                                           \
+        ROM_uDMAChannelAttributeGet
+#else
+#define MAP_uDMAChannelAttributeGet                                           \
+        uDMAChannelAttributeGet
+#endif
+#ifdef ROM_uDMAChannelControlSet
+#define MAP_uDMAChannelControlSet                                             \
+        ROM_uDMAChannelControlSet
+#else
+#define MAP_uDMAChannelControlSet                                             \
+        uDMAChannelControlSet
+#endif
+#ifdef ROM_uDMAChannelSizeGet
+#define MAP_uDMAChannelSizeGet                                                \
+        ROM_uDMAChannelSizeGet
+#else
+#define MAP_uDMAChannelSizeGet                                                \
+        uDMAChannelSizeGet
+#endif
+#ifdef ROM_uDMAChannelModeGet
+#define MAP_uDMAChannelModeGet                                                \
+        ROM_uDMAChannelModeGet
+#else
+#define MAP_uDMAChannelModeGet                                                \
+        uDMAChannelModeGet
+#endif
+#ifdef ROM_uDMAChannelSelectSecondary
+#define MAP_uDMAChannelSelectSecondary                                        \
+        ROM_uDMAChannelSelectSecondary
+#else
+#define MAP_uDMAChannelSelectSecondary                                        \
+        uDMAChannelSelectSecondary
+#endif
+#ifdef ROM_uDMAChannelSelectDefault
+#define MAP_uDMAChannelSelectDefault                                          \
+        ROM_uDMAChannelSelectDefault
+#else
+#define MAP_uDMAChannelSelectDefault                                          \
+        uDMAChannelSelectDefault
+#endif
+#ifdef ROM_uDMAIntStatus
+#define MAP_uDMAIntStatus                                                     \
+        ROM_uDMAIntStatus
+#else
+#define MAP_uDMAIntStatus                                                     \
+        uDMAIntStatus
+#endif
+#ifdef ROM_uDMAIntClear
+#define MAP_uDMAIntClear                                                      \
+        ROM_uDMAIntClear
+#else
+#define MAP_uDMAIntClear                                                      \
+        uDMAIntClear
+#endif
+#ifdef ROM_uDMAControlAlternateBaseGet
+#define MAP_uDMAControlAlternateBaseGet                                       \
+        ROM_uDMAControlAlternateBaseGet
+#else
+#define MAP_uDMAControlAlternateBaseGet                                       \
+        uDMAControlAlternateBaseGet
+#endif
+#ifdef ROM_uDMAChannelScatterGatherSet
+#define MAP_uDMAChannelScatterGatherSet                                       \
+        ROM_uDMAChannelScatterGatherSet
+#else
+#define MAP_uDMAChannelScatterGatherSet                                       \
+        uDMAChannelScatterGatherSet
+#endif
+#ifdef ROM_uDMAChannelAssign
+#define MAP_uDMAChannelAssign                                                 \
+        ROM_uDMAChannelAssign
+#else
+#define MAP_uDMAChannelAssign                                                 \
+        uDMAChannelAssign
+#endif
+
+//*****************************************************************************
+//
+// Macros for the USB API.
+//
+//*****************************************************************************
+#ifdef ROM_USBDevAddrGet
+#define MAP_USBDevAddrGet                                                     \
+        ROM_USBDevAddrGet
+#else
+#define MAP_USBDevAddrGet                                                     \
+        USBDevAddrGet
+#endif
+#ifdef ROM_USBDevAddrSet
+#define MAP_USBDevAddrSet                                                     \
+        ROM_USBDevAddrSet
+#else
+#define MAP_USBDevAddrSet                                                     \
+        USBDevAddrSet
+#endif
+#ifdef ROM_USBDevConnect
+#define MAP_USBDevConnect                                                     \
+        ROM_USBDevConnect
+#else
+#define MAP_USBDevConnect                                                     \
+        USBDevConnect
+#endif
+#ifdef ROM_USBDevDisconnect
+#define MAP_USBDevDisconnect                                                  \
+        ROM_USBDevDisconnect
+#else
+#define MAP_USBDevDisconnect                                                  \
+        USBDevDisconnect
+#endif
+#ifdef ROM_USBDevEndpointConfigSet
+#define MAP_USBDevEndpointConfigSet                                           \
+        ROM_USBDevEndpointConfigSet
+#else
+#define MAP_USBDevEndpointConfigSet                                           \
+        USBDevEndpointConfigSet
+#endif
+#ifdef ROM_USBDevEndpointDataAck
+#define MAP_USBDevEndpointDataAck                                             \
+        ROM_USBDevEndpointDataAck
+#else
+#define MAP_USBDevEndpointDataAck                                             \
+        USBDevEndpointDataAck
+#endif
+#ifdef ROM_USBDevEndpointStall
+#define MAP_USBDevEndpointStall                                               \
+        ROM_USBDevEndpointStall
+#else
+#define MAP_USBDevEndpointStall                                               \
+        USBDevEndpointStall
+#endif
+#ifdef ROM_USBDevEndpointStallClear
+#define MAP_USBDevEndpointStallClear                                          \
+        ROM_USBDevEndpointStallClear
+#else
+#define MAP_USBDevEndpointStallClear                                          \
+        USBDevEndpointStallClear
+#endif
+#ifdef ROM_USBDevEndpointStatusClear
+#define MAP_USBDevEndpointStatusClear                                         \
+        ROM_USBDevEndpointStatusClear
+#else
+#define MAP_USBDevEndpointStatusClear                                         \
+        USBDevEndpointStatusClear
+#endif
+#ifdef ROM_USBEndpointDataGet
+#define MAP_USBEndpointDataGet                                                \
+        ROM_USBEndpointDataGet
+#else
+#define MAP_USBEndpointDataGet                                                \
+        USBEndpointDataGet
+#endif
+#ifdef ROM_USBEndpointDataPut
+#define MAP_USBEndpointDataPut                                                \
+        ROM_USBEndpointDataPut
+#else
+#define MAP_USBEndpointDataPut                                                \
+        USBEndpointDataPut
+#endif
+#ifdef ROM_USBEndpointDataSend
+#define MAP_USBEndpointDataSend                                               \
+        ROM_USBEndpointDataSend
+#else
+#define MAP_USBEndpointDataSend                                               \
+        USBEndpointDataSend
+#endif
+#ifdef ROM_USBEndpointDataToggleClear
+#define MAP_USBEndpointDataToggleClear                                        \
+        ROM_USBEndpointDataToggleClear
+#else
+#define MAP_USBEndpointDataToggleClear                                        \
+        USBEndpointDataToggleClear
+#endif
+#ifdef ROM_USBEndpointStatus
+#define MAP_USBEndpointStatus                                                 \
+        ROM_USBEndpointStatus
+#else
+#define MAP_USBEndpointStatus                                                 \
+        USBEndpointStatus
+#endif
+#ifdef ROM_USBFIFOAddrGet
+#define MAP_USBFIFOAddrGet                                                    \
+        ROM_USBFIFOAddrGet
+#else
+#define MAP_USBFIFOAddrGet                                                    \
+        USBFIFOAddrGet
+#endif
+#ifdef ROM_USBFIFOConfigGet
+#define MAP_USBFIFOConfigGet                                                  \
+        ROM_USBFIFOConfigGet
+#else
+#define MAP_USBFIFOConfigGet                                                  \
+        USBFIFOConfigGet
+#endif
+#ifdef ROM_USBFIFOConfigSet
+#define MAP_USBFIFOConfigSet                                                  \
+        ROM_USBFIFOConfigSet
+#else
+#define MAP_USBFIFOConfigSet                                                  \
+        USBFIFOConfigSet
+#endif
+#ifdef ROM_USBFIFOFlush
+#define MAP_USBFIFOFlush                                                      \
+        ROM_USBFIFOFlush
+#else
+#define MAP_USBFIFOFlush                                                      \
+        USBFIFOFlush
+#endif
+#ifdef ROM_USBFrameNumberGet
+#define MAP_USBFrameNumberGet                                                 \
+        ROM_USBFrameNumberGet
+#else
+#define MAP_USBFrameNumberGet                                                 \
+        USBFrameNumberGet
+#endif
+#ifdef ROM_USBHostAddrGet
+#define MAP_USBHostAddrGet                                                    \
+        ROM_USBHostAddrGet
+#else
+#define MAP_USBHostAddrGet                                                    \
+        USBHostAddrGet
+#endif
+#ifdef ROM_USBHostAddrSet
+#define MAP_USBHostAddrSet                                                    \
+        ROM_USBHostAddrSet
+#else
+#define MAP_USBHostAddrSet                                                    \
+        USBHostAddrSet
+#endif
+#ifdef ROM_USBHostEndpointConfig
+#define MAP_USBHostEndpointConfig                                             \
+        ROM_USBHostEndpointConfig
+#else
+#define MAP_USBHostEndpointConfig                                             \
+        USBHostEndpointConfig
+#endif
+#ifdef ROM_USBHostEndpointDataAck
+#define MAP_USBHostEndpointDataAck                                            \
+        ROM_USBHostEndpointDataAck
+#else
+#define MAP_USBHostEndpointDataAck                                            \
+        USBHostEndpointDataAck
+#endif
+#ifdef ROM_USBHostEndpointDataToggle
+#define MAP_USBHostEndpointDataToggle                                         \
+        ROM_USBHostEndpointDataToggle
+#else
+#define MAP_USBHostEndpointDataToggle                                         \
+        USBHostEndpointDataToggle
+#endif
+#ifdef ROM_USBHostEndpointStatusClear
+#define MAP_USBHostEndpointStatusClear                                        \
+        ROM_USBHostEndpointStatusClear
+#else
+#define MAP_USBHostEndpointStatusClear                                        \
+        USBHostEndpointStatusClear
+#endif
+#ifdef ROM_USBHostHubAddrGet
+#define MAP_USBHostHubAddrGet                                                 \
+        ROM_USBHostHubAddrGet
+#else
+#define MAP_USBHostHubAddrGet                                                 \
+        USBHostHubAddrGet
+#endif
+#ifdef ROM_USBHostHubAddrSet
+#define MAP_USBHostHubAddrSet                                                 \
+        ROM_USBHostHubAddrSet
+#else
+#define MAP_USBHostHubAddrSet                                                 \
+        USBHostHubAddrSet
+#endif
+#ifdef ROM_USBHostPwrDisable
+#define MAP_USBHostPwrDisable                                                 \
+        ROM_USBHostPwrDisable
+#else
+#define MAP_USBHostPwrDisable                                                 \
+        USBHostPwrDisable
+#endif
+#ifdef ROM_USBHostPwrEnable
+#define MAP_USBHostPwrEnable                                                  \
+        ROM_USBHostPwrEnable
+#else
+#define MAP_USBHostPwrEnable                                                  \
+        USBHostPwrEnable
+#endif
+#ifdef ROM_USBHostPwrConfig
+#define MAP_USBHostPwrConfig                                                  \
+        ROM_USBHostPwrConfig
+#else
+#define MAP_USBHostPwrConfig                                                  \
+        USBHostPwrConfig
+#endif
+#ifdef ROM_USBHostPwrFaultDisable
+#define MAP_USBHostPwrFaultDisable                                            \
+        ROM_USBHostPwrFaultDisable
+#else
+#define MAP_USBHostPwrFaultDisable                                            \
+        USBHostPwrFaultDisable
+#endif
+#ifdef ROM_USBHostPwrFaultEnable
+#define MAP_USBHostPwrFaultEnable                                             \
+        ROM_USBHostPwrFaultEnable
+#else
+#define MAP_USBHostPwrFaultEnable                                             \
+        USBHostPwrFaultEnable
+#endif
+#ifdef ROM_USBHostRequestIN
+#define MAP_USBHostRequestIN                                                  \
+        ROM_USBHostRequestIN
+#else
+#define MAP_USBHostRequestIN                                                  \
+        USBHostRequestIN
+#endif
+#ifdef ROM_USBHostRequestStatus
+#define MAP_USBHostRequestStatus                                              \
+        ROM_USBHostRequestStatus
+#else
+#define MAP_USBHostRequestStatus                                              \
+        USBHostRequestStatus
+#endif
+#ifdef ROM_USBHostReset
+#define MAP_USBHostReset                                                      \
+        ROM_USBHostReset
+#else
+#define MAP_USBHostReset                                                      \
+        USBHostReset
+#endif
+#ifdef ROM_USBHostResume
+#define MAP_USBHostResume                                                     \
+        ROM_USBHostResume
+#else
+#define MAP_USBHostResume                                                     \
+        USBHostResume
+#endif
+#ifdef ROM_USBHostSpeedGet
+#define MAP_USBHostSpeedGet                                                   \
+        ROM_USBHostSpeedGet
+#else
+#define MAP_USBHostSpeedGet                                                   \
+        USBHostSpeedGet
+#endif
+#ifdef ROM_USBHostSuspend
+#define MAP_USBHostSuspend                                                    \
+        ROM_USBHostSuspend
+#else
+#define MAP_USBHostSuspend                                                    \
+        USBHostSuspend
+#endif
+#ifdef ROM_USBDevEndpointConfigGet
+#define MAP_USBDevEndpointConfigGet                                           \
+        ROM_USBDevEndpointConfigGet
+#else
+#define MAP_USBDevEndpointConfigGet                                           \
+        USBDevEndpointConfigGet
+#endif
+#ifdef ROM_USBEndpointDMAEnable
+#define MAP_USBEndpointDMAEnable                                              \
+        ROM_USBEndpointDMAEnable
+#else
+#define MAP_USBEndpointDMAEnable                                              \
+        USBEndpointDMAEnable
+#endif
+#ifdef ROM_USBEndpointDMADisable
+#define MAP_USBEndpointDMADisable                                             \
+        ROM_USBEndpointDMADisable
+#else
+#define MAP_USBEndpointDMADisable                                             \
+        USBEndpointDMADisable
+#endif
+#ifdef ROM_USBEndpointDataAvail
+#define MAP_USBEndpointDataAvail                                              \
+        ROM_USBEndpointDataAvail
+#else
+#define MAP_USBEndpointDataAvail                                              \
+        USBEndpointDataAvail
+#endif
+#ifdef ROM_USBModeGet
+#define MAP_USBModeGet                                                        \
+        ROM_USBModeGet
+#else
+#define MAP_USBModeGet                                                        \
+        USBModeGet
+#endif
+#ifdef ROM_USBEndpointDMAChannel
+#define MAP_USBEndpointDMAChannel                                             \
+        ROM_USBEndpointDMAChannel
+#else
+#define MAP_USBEndpointDMAChannel                                             \
+        USBEndpointDMAChannel
+#endif
+#ifdef ROM_USBIntDisableControl
+#define MAP_USBIntDisableControl                                              \
+        ROM_USBIntDisableControl
+#else
+#define MAP_USBIntDisableControl                                              \
+        USBIntDisableControl
+#endif
+#ifdef ROM_USBIntEnableControl
+#define MAP_USBIntEnableControl                                               \
+        ROM_USBIntEnableControl
+#else
+#define MAP_USBIntEnableControl                                               \
+        USBIntEnableControl
+#endif
+#ifdef ROM_USBIntStatusControl
+#define MAP_USBIntStatusControl                                               \
+        ROM_USBIntStatusControl
+#else
+#define MAP_USBIntStatusControl                                               \
+        USBIntStatusControl
+#endif
+#ifdef ROM_USBIntDisableEndpoint
+#define MAP_USBIntDisableEndpoint                                             \
+        ROM_USBIntDisableEndpoint
+#else
+#define MAP_USBIntDisableEndpoint                                             \
+        USBIntDisableEndpoint
+#endif
+#ifdef ROM_USBIntEnableEndpoint
+#define MAP_USBIntEnableEndpoint                                              \
+        ROM_USBIntEnableEndpoint
+#else
+#define MAP_USBIntEnableEndpoint                                              \
+        USBIntEnableEndpoint
+#endif
+#ifdef ROM_USBIntStatusEndpoint
+#define MAP_USBIntStatusEndpoint                                              \
+        ROM_USBIntStatusEndpoint
+#else
+#define MAP_USBIntStatusEndpoint                                              \
+        USBIntStatusEndpoint
+#endif
+#ifdef ROM_USBHostMode
+#define MAP_USBHostMode                                                       \
+        ROM_USBHostMode
+#else
+#define MAP_USBHostMode                                                       \
+        USBHostMode
+#endif
+#ifdef ROM_USBDevMode
+#define MAP_USBDevMode                                                        \
+        ROM_USBDevMode
+#else
+#define MAP_USBDevMode                                                        \
+        USBDevMode
+#endif
+#ifdef ROM_USBPHYPowerOff
+#define MAP_USBPHYPowerOff                                                    \
+        ROM_USBPHYPowerOff
+#else
+#define MAP_USBPHYPowerOff                                                    \
+        USBPHYPowerOff
+#endif
+#ifdef ROM_USBPHYPowerOn
+#define MAP_USBPHYPowerOn                                                     \
+        ROM_USBPHYPowerOn
+#else
+#define MAP_USBPHYPowerOn                                                     \
+        USBPHYPowerOn
+#endif
+#ifdef ROM_USBOTGMode
+#define MAP_USBOTGMode                                                        \
+        ROM_USBOTGMode
+#else
+#define MAP_USBOTGMode                                                        \
+        USBOTGMode
+#endif
+#ifdef ROM_USBHostRequestINClear
+#define MAP_USBHostRequestINClear                                             \
+        ROM_USBHostRequestINClear
+#else
+#define MAP_USBHostRequestINClear                                             \
+        USBHostRequestINClear
+#endif
+#ifdef ROM_USBNumEndpointsGet
+#define MAP_USBNumEndpointsGet                                                \
+        ROM_USBNumEndpointsGet
+#else
+#define MAP_USBNumEndpointsGet                                                \
+        USBNumEndpointsGet
+#endif
+#ifdef ROM_USBClockDisable
+#define MAP_USBClockDisable                                                   \
+        ROM_USBClockDisable
+#else
+#define MAP_USBClockDisable                                                   \
+        USBClockDisable
+#endif
+#ifdef ROM_USBClockEnable
+#define MAP_USBClockEnable                                                    \
+        ROM_USBClockEnable
+#else
+#define MAP_USBClockEnable                                                    \
+        USBClockEnable
+#endif
+#ifdef ROM_USBControllerVersion
+#define MAP_USBControllerVersion                                              \
+        ROM_USBControllerVersion
+#else
+#define MAP_USBControllerVersion                                              \
+        USBControllerVersion
+#endif
+#ifdef ROM_USBDevLPMConfig
+#define MAP_USBDevLPMConfig                                                   \
+        ROM_USBDevLPMConfig
+#else
+#define MAP_USBDevLPMConfig                                                   \
+        USBDevLPMConfig
+#endif
+#ifdef ROM_USBDevLPMDisable
+#define MAP_USBDevLPMDisable                                                  \
+        ROM_USBDevLPMDisable
+#else
+#define MAP_USBDevLPMDisable                                                  \
+        USBDevLPMDisable
+#endif
+#ifdef ROM_USBDevLPMEnable
+#define MAP_USBDevLPMEnable                                                   \
+        ROM_USBDevLPMEnable
+#else
+#define MAP_USBDevLPMEnable                                                   \
+        USBDevLPMEnable
+#endif
+#ifdef ROM_USBDevLPMRemoteWake
+#define MAP_USBDevLPMRemoteWake                                               \
+        ROM_USBDevLPMRemoteWake
+#else
+#define MAP_USBDevLPMRemoteWake                                               \
+        USBDevLPMRemoteWake
+#endif
+#ifdef ROM_USBDevSpeedGet
+#define MAP_USBDevSpeedGet                                                    \
+        ROM_USBDevSpeedGet
+#else
+#define MAP_USBDevSpeedGet                                                    \
+        USBDevSpeedGet
+#endif
+#ifdef ROM_USBDMAChannelAddressGet
+#define MAP_USBDMAChannelAddressGet                                           \
+        ROM_USBDMAChannelAddressGet
+#else
+#define MAP_USBDMAChannelAddressGet                                           \
+        USBDMAChannelAddressGet
+#endif
+#ifdef ROM_USBDMAChannelAddressSet
+#define MAP_USBDMAChannelAddressSet                                           \
+        ROM_USBDMAChannelAddressSet
+#else
+#define MAP_USBDMAChannelAddressSet                                           \
+        USBDMAChannelAddressSet
+#endif
+#ifdef ROM_USBDMAChannelConfigSet
+#define MAP_USBDMAChannelConfigSet                                            \
+        ROM_USBDMAChannelConfigSet
+#else
+#define MAP_USBDMAChannelConfigSet                                            \
+        USBDMAChannelConfigSet
+#endif
+#ifdef ROM_USBDMAChannelDisable
+#define MAP_USBDMAChannelDisable                                              \
+        ROM_USBDMAChannelDisable
+#else
+#define MAP_USBDMAChannelDisable                                              \
+        USBDMAChannelDisable
+#endif
+#ifdef ROM_USBDMAChannelEnable
+#define MAP_USBDMAChannelEnable                                               \
+        ROM_USBDMAChannelEnable
+#else
+#define MAP_USBDMAChannelEnable                                               \
+        USBDMAChannelEnable
+#endif
+#ifdef ROM_USBDMAChannelIntDisable
+#define MAP_USBDMAChannelIntDisable                                           \
+        ROM_USBDMAChannelIntDisable
+#else
+#define MAP_USBDMAChannelIntDisable                                           \
+        USBDMAChannelIntDisable
+#endif
+#ifdef ROM_USBDMAChannelIntEnable
+#define MAP_USBDMAChannelIntEnable                                            \
+        ROM_USBDMAChannelIntEnable
+#else
+#define MAP_USBDMAChannelIntEnable                                            \
+        USBDMAChannelIntEnable
+#endif
+#ifdef ROM_USBDMAChannelCountGet
+#define MAP_USBDMAChannelCountGet                                             \
+        ROM_USBDMAChannelCountGet
+#else
+#define MAP_USBDMAChannelCountGet                                             \
+        USBDMAChannelCountGet
+#endif
+#ifdef ROM_USBDMAChannelCountSet
+#define MAP_USBDMAChannelCountSet                                             \
+        ROM_USBDMAChannelCountSet
+#else
+#define MAP_USBDMAChannelCountSet                                             \
+        USBDMAChannelCountSet
+#endif
+#ifdef ROM_USBDMAChannelIntStatus
+#define MAP_USBDMAChannelIntStatus                                            \
+        ROM_USBDMAChannelIntStatus
+#else
+#define MAP_USBDMAChannelIntStatus                                            \
+        USBDMAChannelIntStatus
+#endif
+#ifdef ROM_USBDMAChannelStatus
+#define MAP_USBDMAChannelStatus                                               \
+        ROM_USBDMAChannelStatus
+#else
+#define MAP_USBDMAChannelStatus                                               \
+        USBDMAChannelStatus
+#endif
+#ifdef ROM_USBDMAChannelStatusClear
+#define MAP_USBDMAChannelStatusClear                                          \
+        ROM_USBDMAChannelStatusClear
+#else
+#define MAP_USBDMAChannelStatusClear                                          \
+        USBDMAChannelStatusClear
+#endif
+#ifdef ROM_USBHighSpeed
+#define MAP_USBHighSpeed                                                      \
+        ROM_USBHighSpeed
+#else
+#define MAP_USBHighSpeed                                                      \
+        USBHighSpeed
+#endif
+#ifdef ROM_USBHostEndpointPing
+#define MAP_USBHostEndpointPing                                               \
+        ROM_USBHostEndpointPing
+#else
+#define MAP_USBHostEndpointPing                                               \
+        USBHostEndpointPing
+#endif
+#ifdef ROM_USBHostEndpointSpeed
+#define MAP_USBHostEndpointSpeed                                              \
+        ROM_USBHostEndpointSpeed
+#else
+#define MAP_USBHostEndpointSpeed                                              \
+        USBHostEndpointSpeed
+#endif
+#ifdef ROM_USBHostLPMConfig
+#define MAP_USBHostLPMConfig                                                  \
+        ROM_USBHostLPMConfig
+#else
+#define MAP_USBHostLPMConfig                                                  \
+        USBHostLPMConfig
+#endif
+#ifdef ROM_USBHostLPMResume
+#define MAP_USBHostLPMResume                                                  \
+        ROM_USBHostLPMResume
+#else
+#define MAP_USBHostLPMResume                                                  \
+        USBHostLPMResume
+#endif
+#ifdef ROM_USBHostLPMSend
+#define MAP_USBHostLPMSend                                                    \
+        ROM_USBHostLPMSend
+#else
+#define MAP_USBHostLPMSend                                                    \
+        USBHostLPMSend
+#endif
+#ifdef ROM_USBLPMIntDisable
+#define MAP_USBLPMIntDisable                                                  \
+        ROM_USBLPMIntDisable
+#else
+#define MAP_USBLPMIntDisable                                                  \
+        USBLPMIntDisable
+#endif
+#ifdef ROM_USBLPMIntEnable
+#define MAP_USBLPMIntEnable                                                   \
+        ROM_USBLPMIntEnable
+#else
+#define MAP_USBLPMIntEnable                                                   \
+        USBLPMIntEnable
+#endif
+#ifdef ROM_USBLPMIntStatus
+#define MAP_USBLPMIntStatus                                                   \
+        ROM_USBLPMIntStatus
+#else
+#define MAP_USBLPMIntStatus                                                   \
+        USBLPMIntStatus
+#endif
+#ifdef ROM_USBLPMLinkStateGet
+#define MAP_USBLPMLinkStateGet                                                \
+        ROM_USBLPMLinkStateGet
+#else
+#define MAP_USBLPMLinkStateGet                                                \
+        USBLPMLinkStateGet
+#endif
+#ifdef ROM_USBEndpointPacketCountSet
+#define MAP_USBEndpointPacketCountSet                                         \
+        ROM_USBEndpointPacketCountSet
+#else
+#define MAP_USBEndpointPacketCountSet                                         \
+        USBEndpointPacketCountSet
+#endif
+#ifdef ROM_USBULPIConfig
+#define MAP_USBULPIConfig                                                     \
+        ROM_USBULPIConfig
+#else
+#define MAP_USBULPIConfig                                                     \
+        USBULPIConfig
+#endif
+#ifdef ROM_USBULPIDisable
+#define MAP_USBULPIDisable                                                    \
+        ROM_USBULPIDisable
+#else
+#define MAP_USBULPIDisable                                                    \
+        USBULPIDisable
+#endif
+#ifdef ROM_USBULPIEnable
+#define MAP_USBULPIEnable                                                     \
+        ROM_USBULPIEnable
+#else
+#define MAP_USBULPIEnable                                                     \
+        USBULPIEnable
+#endif
+#ifdef ROM_USBULPIRegRead
+#define MAP_USBULPIRegRead                                                    \
+        ROM_USBULPIRegRead
+#else
+#define MAP_USBULPIRegRead                                                    \
+        USBULPIRegRead
+#endif
+#ifdef ROM_USBULPIRegWrite
+#define MAP_USBULPIRegWrite                                                   \
+        ROM_USBULPIRegWrite
+#else
+#define MAP_USBULPIRegWrite                                                   \
+        USBULPIRegWrite
+#endif
+#ifdef ROM_USBOTGSessionRequest
+#define MAP_USBOTGSessionRequest                                              \
+        ROM_USBOTGSessionRequest
+#else
+#define MAP_USBOTGSessionRequest                                              \
+        USBOTGSessionRequest
+#endif
+#ifdef ROM_USBDMANumChannels
+#define MAP_USBDMANumChannels                                                 \
+        ROM_USBDMANumChannels
+#else
+#define MAP_USBDMANumChannels                                                 \
+        USBDMANumChannels
+#endif
+#ifdef ROM_USBEndpointDMAConfigSet
+#define MAP_USBEndpointDMAConfigSet                                           \
+        ROM_USBEndpointDMAConfigSet
+#else
+#define MAP_USBEndpointDMAConfigSet                                           \
+        USBEndpointDMAConfigSet
+#endif
+#ifdef ROM_USBLPMRemoteWakeEnabled
+#define MAP_USBLPMRemoteWakeEnabled                                           \
+        ROM_USBLPMRemoteWakeEnabled
+#else
+#define MAP_USBLPMRemoteWakeEnabled                                           \
+        USBLPMRemoteWakeEnabled
+#endif
+#ifdef ROM_USBModeConfig
+#define MAP_USBModeConfig                                                     \
+        ROM_USBModeConfig
+#else
+#define MAP_USBModeConfig                                                     \
+        USBModeConfig
+#endif
+
+//*****************************************************************************
+//
+// Macros for the Watchdog API.
+//
+//*****************************************************************************
+#ifdef ROM_WatchdogIntClear
+#define MAP_WatchdogIntClear                                                  \
+        ROM_WatchdogIntClear
+#else
+#define MAP_WatchdogIntClear                                                  \
+        WatchdogIntClear
+#endif
+#ifdef ROM_WatchdogRunning
+#define MAP_WatchdogRunning                                                   \
+        ROM_WatchdogRunning
+#else
+#define MAP_WatchdogRunning                                                   \
+        WatchdogRunning
+#endif
+#ifdef ROM_WatchdogEnable
+#define MAP_WatchdogEnable                                                    \
+        ROM_WatchdogEnable
+#else
+#define MAP_WatchdogEnable                                                    \
+        WatchdogEnable
+#endif
+#ifdef ROM_WatchdogResetEnable
+#define MAP_WatchdogResetEnable                                               \
+        ROM_WatchdogResetEnable
+#else
+#define MAP_WatchdogResetEnable                                               \
+        WatchdogResetEnable
+#endif
+#ifdef ROM_WatchdogResetDisable
+#define MAP_WatchdogResetDisable                                              \
+        ROM_WatchdogResetDisable
+#else
+#define MAP_WatchdogResetDisable                                              \
+        WatchdogResetDisable
+#endif
+#ifdef ROM_WatchdogLock
+#define MAP_WatchdogLock                                                      \
+        ROM_WatchdogLock
+#else
+#define MAP_WatchdogLock                                                      \
+        WatchdogLock
+#endif
+#ifdef ROM_WatchdogUnlock
+#define MAP_WatchdogUnlock                                                    \
+        ROM_WatchdogUnlock
+#else
+#define MAP_WatchdogUnlock                                                    \
+        WatchdogUnlock
+#endif
+#ifdef ROM_WatchdogLockState
+#define MAP_WatchdogLockState                                                 \
+        ROM_WatchdogLockState
+#else
+#define MAP_WatchdogLockState                                                 \
+        WatchdogLockState
+#endif
+#ifdef ROM_WatchdogReloadSet
+#define MAP_WatchdogReloadSet                                                 \
+        ROM_WatchdogReloadSet
+#else
+#define MAP_WatchdogReloadSet                                                 \
+        WatchdogReloadSet
+#endif
+#ifdef ROM_WatchdogReloadGet
+#define MAP_WatchdogReloadGet                                                 \
+        ROM_WatchdogReloadGet
+#else
+#define MAP_WatchdogReloadGet                                                 \
+        WatchdogReloadGet
+#endif
+#ifdef ROM_WatchdogValueGet
+#define MAP_WatchdogValueGet                                                  \
+        ROM_WatchdogValueGet
+#else
+#define MAP_WatchdogValueGet                                                  \
+        WatchdogValueGet
+#endif
+#ifdef ROM_WatchdogIntEnable
+#define MAP_WatchdogIntEnable                                                 \
+        ROM_WatchdogIntEnable
+#else
+#define MAP_WatchdogIntEnable                                                 \
+        WatchdogIntEnable
+#endif
+#ifdef ROM_WatchdogIntStatus
+#define MAP_WatchdogIntStatus                                                 \
+        ROM_WatchdogIntStatus
+#else
+#define MAP_WatchdogIntStatus                                                 \
+        WatchdogIntStatus
+#endif
+#ifdef ROM_WatchdogStallEnable
+#define MAP_WatchdogStallEnable                                               \
+        ROM_WatchdogStallEnable
+#else
+#define MAP_WatchdogStallEnable                                               \
+        WatchdogStallEnable
+#endif
+#ifdef ROM_WatchdogStallDisable
+#define MAP_WatchdogStallDisable                                              \
+        ROM_WatchdogStallDisable
+#else
+#define MAP_WatchdogStallDisable                                              \
+        WatchdogStallDisable
+#endif
+#ifdef ROM_WatchdogIntTypeSet
+#define MAP_WatchdogIntTypeSet                                                \
+        ROM_WatchdogIntTypeSet
+#else
+#define MAP_WatchdogIntTypeSet                                                \
+        WatchdogIntTypeSet
+#endif
+
+//*****************************************************************************
+//
+// Macros for the Software API.
+//
+//*****************************************************************************
+#ifdef ROM_Crc16Array
+#define MAP_Crc16Array                                                        \
+        ROM_Crc16Array
+#else
+#define MAP_Crc16Array                                                        \
+        Crc16Array
+#endif
+#ifdef ROM_Crc16Array3
+#define MAP_Crc16Array3                                                       \
+        ROM_Crc16Array3
+#else
+#define MAP_Crc16Array3                                                       \
+        Crc16Array3
+#endif
+#ifdef ROM_Crc16
+#define MAP_Crc16                                                             \
+        ROM_Crc16
+#else
+#define MAP_Crc16                                                             \
+        Crc16
+#endif
+#ifdef ROM_Crc8CCITT
+#define MAP_Crc8CCITT                                                         \
+        ROM_Crc8CCITT
+#else
+#define MAP_Crc8CCITT                                                         \
+        Crc8CCITT
+#endif
+#ifdef ROM_Crc32
+#define MAP_Crc32                                                             \
+        ROM_Crc32
+#else
+#define MAP_Crc32                                                             \
+        Crc32
+#endif
+
+#endif // __DRIVERLIB_ROM_MAP_H__

+ 108 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/rtos_bindings.h

@@ -0,0 +1,108 @@
+//*****************************************************************************
+//
+// rtos_bindings.h - Macros intended to aid porting of TivaWare modules
+//                   for use with an RTOS.
+//
+// Copyright (c) 2012-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Peripheral Driver Library.
+//
+//*****************************************************************************
+
+#ifndef __DRIVERLIB_RTOS_BINDINGS_H__
+#define __DRIVERLIB_RTOS_BINDINGS_H__
+
+#ifdef USE_RTOS
+//*****************************************************************************
+//
+// If an RTOS is in use, implement a header file called "tiva_rtos.h"
+// which contains RTOS-specific versions of each of the macros defined below
+// and make sure it appears on the include path set when you build your
+// project.
+//
+// Note that there is no default implementation of this header file included
+// in TivaWare - it is your responsibility to create it specifically for
+// your RTOS.
+//
+//*****************************************************************************
+#include "tiva_rtos.h"
+
+#else
+//*****************************************************************************
+//
+// When no RTOS is in use, the follow macros compile to either nothing or a
+// minimal implementation that works in a bare-metal environment.
+//
+// Each of these macros must be redefined in tiva_rtos.h if you are using
+// TivaWare under an RTOS.
+//
+//*****************************************************************************
+
+//*****************************************************************************
+//
+// A simple macro used to yield within polling loops.  In the default, non-RTOS
+// implementation, this compiles to nothing.
+//
+//*****************************************************************************
+#define OS_YIELD()
+
+//*****************************************************************************
+//
+// A simple macro around the SysCtlDelay function.  The parameter is the number
+// of 3 cycle loops to wait before returning (as for SysCtlDelay).  In an RTOS
+// implementation, this could be replaced with an OS delay call with
+// appropriate parameter scaling.
+//
+//*****************************************************************************
+#define OS_DELAY(ul3Cycles) MAP_SysCtlDelay(ul3Cycles)
+
+//*****************************************************************************
+//
+// Wrappers around low level interrupt control functions.  For information
+// on each of these functions, please see the appropriate API documentation
+// for the DriverLib Interrupt driver.
+//
+// The macros defined here represent interrupt-control functions that may be
+// called from within TivaWare code.  It is expected that application
+// code will use RTOS-specific functions to control interrupt priority, to
+// pend interrupts and to perform runtime vector manipulation.  As a result,
+// no macros are defined to wrap any of these functions from interrupt.c.
+//
+//*****************************************************************************
+#define OS_INT_MASTER_ENABLE() MAP_IntMasterEnable()
+#define OS_INT_MASTER_DISABLE() MAP_IntMasterDisable()
+#define OS_INT_DISABLE(ui32IntID) MAP_IntDisable(ui32IntID)
+#define OS_INT_ENABLE(ui32IntID) MAP_IntEnable(ui32IntID)
+
+#endif // USE_RTOS
+
+#endif // __DRIVERLIB_RTOS_BINDINGS_H__

+ 127 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/shamd5.h

@@ -0,0 +1,127 @@
+//*****************************************************************************
+//
+// shamd5.h - Defines and Macros for the SHA/MD5.
+//
+// Copyright (c) 2012-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Peripheral Driver Library.
+//
+//*****************************************************************************
+
+#ifndef __DRIVERLIB_SHAMD5_H__
+#define __DRIVERLIB_SHAMD5_H__
+
+//*****************************************************************************
+//
+// If building with a C++ compiler, make all of the definitions in this header
+// have a C binding.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+//*****************************************************************************
+//
+// The following defines are used to specify the algorithm in use in the
+// SHA/MD5 module.
+//
+//*****************************************************************************
+#define SHAMD5_ALGO_MD5         0x00000018
+#define SHAMD5_ALGO_SHA1        0x0000001a
+#define SHAMD5_ALGO_SHA224      0x0000001c
+#define SHAMD5_ALGO_SHA256      0x0000001e
+#define SHAMD5_ALGO_HMAC_MD5    0x00000000
+#define SHAMD5_ALGO_HMAC_SHA1   0x00000002
+#define SHAMD5_ALGO_HMAC_SHA224 0x00000004
+#define SHAMD5_ALGO_HMAC_SHA256 0x00000006
+
+//*****************************************************************************
+//
+// The following defines are used to represent the different interrupt sources
+// in SHAMD5IntEnable(), SHAMD5IntDisable(), SHAMD5GetIntStatus(), and
+// SHAMD5BlockOnIntStatus() functions.
+//
+//*****************************************************************************
+#define SHAMD5_INT_CONTEXT_READY \
+                                0x00000008
+#define SHAMD5_INT_PARTHASH_READY \
+                                0x00000004
+#define SHAMD5_INT_INPUT_READY  0x00000002
+#define SHAMD5_INT_OUTPUT_READY 0x00000001
+#define SHAMD5_INT_DMA_CONTEXT_IN \
+                                0x00080000
+#define SHAMD5_INT_DMA_DATA_IN  0x00020000
+#define SHAMD5_INT_DMA_CONTEXT_OUT \
+                                0x00010000
+
+//*****************************************************************************
+//
+// Function prototypes
+//
+//*****************************************************************************
+extern void SHAMD5ConfigSet(uint32_t ui32Base, uint32_t ui32Mode);
+extern void SHAMD5DataProcess(uint32_t ui32Base, uint32_t *pui32DataSrc,
+                              uint32_t ui32DataLength,
+                              uint32_t *pui32HashResult);
+extern void SHAMD5DataWrite(uint32_t ui32Base, uint32_t *pui32Src);
+extern bool SHAMD5DataWriteNonBlocking(uint32_t ui32Base, uint32_t *pui32Src);
+extern void SHAMD5DMADisable(uint32_t ui32Base);
+extern void SHAMD5DMAEnable(uint32_t ui32Base);
+extern void SHAMD5HashLengthSet(uint32_t ui32Base, uint32_t ui32Length);
+extern void SHAMD5HMACKeySet(uint32_t ui32Base, uint32_t *pui32Src);
+extern void SHAMD5HMACPPKeyGenerate(uint32_t ui32Base, uint32_t *pui32Key,
+                                    uint32_t *pui32PPKey);
+extern void SHAMD5HMACPPKeySet(uint32_t ui32Base, uint32_t *pui32Src);
+extern void SHAMD5HMACProcess(uint32_t ui32Base, uint32_t *pui32DataSrc,
+                              uint32_t ui32DataLength,
+                              uint32_t *pui32HashResult);
+extern void SHAMD5IntClear(uint32_t ui32Base, uint32_t ui32IntFlags);
+extern void SHAMD5IntDisable(uint32_t ui32Base, uint32_t ui32IntFlags);
+extern void SHAMD5IntEnable(uint32_t ui32Base, uint32_t ui32IntFlags);
+extern void SHAMD5IntRegister(uint32_t ui32Base, void (*pfnHandler)(void));
+extern uint32_t SHAMD5IntStatus(uint32_t ui32Base, bool bMasked);
+extern void SHAMD5IntUnregister(uint32_t ui32Base);
+extern void SHAMD5Reset(uint32_t ui32Base);
+extern void SHAMD5ResultRead(uint32_t ui32Base, uint32_t *pui32Dest);
+
+//*****************************************************************************
+//
+// Mark the end of the C bindings section for C++ compilers.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __DRIVERLIB_SHAMD5_H__

+ 157 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/ssi.h

@@ -0,0 +1,157 @@
+//*****************************************************************************
+//
+// ssi.h - Prototypes for the Synchronous Serial Interface Driver.
+//
+// Copyright (c) 2005-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Peripheral Driver Library.
+//
+//*****************************************************************************
+
+#ifndef __DRIVERLIB_SSI_H__
+#define __DRIVERLIB_SSI_H__
+
+//*****************************************************************************
+//
+// If building with a C++ compiler, make all of the definitions in this header
+// have a C binding.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+//*****************************************************************************
+//
+// Values that can be passed to SSIIntEnable, SSIIntDisable, and SSIIntClear
+// as the ui32IntFlags parameter, and returned by SSIIntStatus.
+//
+//*****************************************************************************
+#define SSI_TXEOT               0x00000040  // Transmit FIFO is empty
+#define SSI_DMATX               0x00000020  // DMA Transmit complete
+#define SSI_DMARX               0x00000010  // DMA Receive complete
+#define SSI_TXFF                0x00000008  // TX FIFO half full or less
+#define SSI_RXFF                0x00000004  // RX FIFO half full or more
+#define SSI_RXTO                0x00000002  // RX timeout
+#define SSI_RXOR                0x00000001  // RX overrun
+
+//*****************************************************************************
+//
+// Values that can be passed to SSIConfigSetExpClk.
+//
+//*****************************************************************************
+#define SSI_FRF_MOTO_MODE_0     0x00000000  // Moto fmt, polarity 0, phase 0
+#define SSI_FRF_MOTO_MODE_1     0x00000002  // Moto fmt, polarity 0, phase 1
+#define SSI_FRF_MOTO_MODE_2     0x00000001  // Moto fmt, polarity 1, phase 0
+#define SSI_FRF_MOTO_MODE_3     0x00000003  // Moto fmt, polarity 1, phase 1
+#define SSI_FRF_TI              0x00000010  // TI frame format
+#define SSI_FRF_NMW             0x00000020  // National MicroWire frame format
+
+#define SSI_MODE_MASTER         0x00000000  // SSI master
+#define SSI_MODE_SLAVE          0x00000001  // SSI slave
+#define SSI_MODE_SLAVE_OD       0x00000002  // SSI slave with output disabled
+
+//*****************************************************************************
+//
+// Values that can be passed to SSIDMAEnable() and SSIDMADisable().
+//
+//*****************************************************************************
+#define SSI_DMA_TX              0x00000002  // Enable DMA for transmit
+#define SSI_DMA_RX              0x00000001  // Enable DMA for receive
+
+//*****************************************************************************
+//
+// Values that can be passed to SSIClockSourceSet() or returned from
+// SSIClockSourceGet().
+//
+//*****************************************************************************
+#define SSI_CLOCK_SYSTEM        0x00000000
+#define SSI_CLOCK_PIOSC         0x00000005
+
+//*****************************************************************************
+//
+// Values that can be passed to SSIAdvModeSet().
+//
+//*****************************************************************************
+#define SSI_ADV_MODE_LEGACY     0x00000000
+#define SSI_ADV_MODE_READ_WRITE 0x000001c0
+#define SSI_ADV_MODE_WRITE      0x000000c0
+#define SSI_ADV_MODE_BI_READ    0x00000140
+#define SSI_ADV_MODE_BI_WRITE   0x00000040
+#define SSI_ADV_MODE_QUAD_READ  0x00000180
+#define SSI_ADV_MODE_QUAD_WRITE 0x00000080
+
+//*****************************************************************************
+//
+// Prototypes for the APIs.
+//
+//*****************************************************************************
+extern void SSIConfigSetExpClk(uint32_t ui32Base, uint32_t ui32SSIClk,
+                               uint32_t ui32Protocol, uint32_t ui32Mode,
+                               uint32_t ui32BitRate,
+                               uint32_t ui32DataWidth);
+extern void SSIDataGet(uint32_t ui32Base, uint32_t *pui32Data);
+extern int32_t SSIDataGetNonBlocking(uint32_t ui32Base,
+                                  uint32_t *pui32Data);
+extern void SSIDataPut(uint32_t ui32Base, uint32_t ui32Data);
+extern int32_t SSIDataPutNonBlocking(uint32_t ui32Base, uint32_t ui32Data);
+extern void SSIDisable(uint32_t ui32Base);
+extern void SSIEnable(uint32_t ui32Base);
+extern void SSIIntClear(uint32_t ui32Base, uint32_t ui32IntFlags);
+extern void SSIIntDisable(uint32_t ui32Base, uint32_t ui32IntFlags);
+extern void SSIIntEnable(uint32_t ui32Base, uint32_t ui32IntFlags);
+extern void SSIIntRegister(uint32_t ui32Base, void (*pfnHandler)(void));
+extern uint32_t SSIIntStatus(uint32_t ui32Base, bool bMasked);
+extern void SSIIntUnregister(uint32_t ui32Base);
+extern void SSIDMAEnable(uint32_t ui32Base, uint32_t ui32DMAFlags);
+extern void SSIDMADisable(uint32_t ui32Base, uint32_t ui32DMAFlags);
+extern bool SSIBusy(uint32_t ui32Base);
+extern void SSIClockSourceSet(uint32_t ui32Base, uint32_t ui32Source);
+extern uint32_t SSIClockSourceGet(uint32_t ui32Base);
+extern void SSIAdvModeSet(uint32_t ui32Base, uint32_t ui32Mode);
+extern void SSIAdvDataPutFrameEnd(uint32_t ui32Base, uint32_t ui32Data);
+extern int32_t SSIAdvDataPutFrameEndNonBlocking(uint32_t ui32Base,
+                                             uint32_t ui32Data);
+extern void SSIAdvFrameHoldEnable(uint32_t ui32Base);
+extern void SSIAdvFrameHoldDisable(uint32_t ui32Base);
+
+//*****************************************************************************
+//
+// Mark the end of the C bindings section for C++ compilers.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __DRIVERLIB_SSI_H__

+ 78 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/sw_crc.h

@@ -0,0 +1,78 @@
+//*****************************************************************************
+//
+// sw_crc.h - Prototypes for the software CRC functions.
+//
+// Copyright (c) 2010-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Peripheral Driver Library.
+//
+//*****************************************************************************
+
+#ifndef __DRIVERLIB_SW_CRC_H__
+#define __DRIVERLIB_SW_CRC_H__
+
+//*****************************************************************************
+//
+// If building with a C++ compiler, make all of the definitions in this header
+// have a C binding.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+//*****************************************************************************
+//
+// Prototypes for the functions.
+//
+//*****************************************************************************
+extern uint8_t Crc8CCITT(uint8_t ui8Crc, const uint8_t *pui8Data,
+                         uint32_t ui32Count);
+extern uint16_t Crc16(uint16_t ui16Crc, const uint8_t *pui8Data,
+                      uint32_t ui32Count);
+extern uint16_t Crc16Array(uint32_t ui32WordLen, const uint32_t *pui32Data);
+extern void Crc16Array3(uint32_t ui32WordLen, const uint32_t *pui32Data,
+                        uint16_t *pui16Crc3);
+extern uint32_t Crc32(uint32_t ui32Crc, const uint8_t *pui8Data,
+                      uint32_t ui32Count);
+
+//*****************************************************************************
+//
+// Mark the end of the C bindings section for C++ compilers.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __DRIVERLIB_SW_CRC_H__

+ 656 - 0
bsp/tm4c123bsp/libraries/TivaWare_C_series/tm4c123_driverlib/driverlib/sysctl.h

@@ -0,0 +1,656 @@
+//*****************************************************************************
+//
+// sysctl.h - Prototypes for the system control driver.
+//
+// Copyright (c) 2005-2017 Texas Instruments Incorporated.  All rights reserved.
+// Software License Agreement
+// 
+//   Redistribution and use in source and binary forms, with or without
+//   modification, are permitted provided that the following conditions
+//   are met:
+// 
+//   Redistributions of source code must retain the above copyright
+//   notice, this list of conditions and the following disclaimer.
+// 
+//   Redistributions in binary form must reproduce the above copyright
+//   notice, this list of conditions and the following disclaimer in the
+//   documentation and/or other materials provided with the  
+//   distribution.
+// 
+//   Neither the name of Texas Instruments Incorporated nor the names of
+//   its contributors may be used to endorse or promote products derived
+//   from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// This is part of revision 2.1.4.178 of the Tiva Peripheral Driver Library.
+//
+//*****************************************************************************
+
+#ifndef __DRIVERLIB_SYSCTL_H__
+#define __DRIVERLIB_SYSCTL_H__
+
+//*****************************************************************************
+//
+// If building with a C++ compiler, make all of the definitions in this header
+// have a C binding.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+//*****************************************************************************
+//
+// The following are values that can be passed to the
+// SysCtlPeripheralPresent(), SysCtlPeripheralEnable(),
+// SysCtlPeripheralDisable(), and SysCtlPeripheralReset() APIs as the
+// ui32Peripheral parameter.  The peripherals in the fourth group (upper nibble
+// is 3) can only be used with the SysCtlPeripheralPresent() API.
+//
+//*****************************************************************************
+#define SYSCTL_PERIPH_ADC0      0xf0003800  // ADC 0
+#define SYSCTL_PERIPH_ADC1      0xf0003801  // ADC 1
+#define SYSCTL_PERIPH_CAN0      0xf0003400  // CAN 0
+#define SYSCTL_PERIPH_CAN1      0xf0003401  // CAN 1
+#define SYSCTL_PERIPH_COMP0     0xf0003c00  // Analog Comparator Module 0
+#define SYSCTL_PERIPH_EMAC0     0xf0009c00  // Ethernet MAC0
+#define SYSCTL_PERIPH_EPHY0     0xf0003000  // Ethernet PHY0
+#define SYSCTL_PERIPH_EPI0      0xf0001000  // EPI0
+#define SYSCTL_PERIPH_GPIOA     0xf0000800  // GPIO A
+#define SYSCTL_PERIPH_GPIOB     0xf0000801  // GPIO B
+#define SYSCTL_PERIPH_GPIOC     0xf0000802  // GPIO C
+#define SYSCTL_PERIPH_GPIOD     0xf0000803  // GPIO D
+#define SYSCTL_PERIPH_GPIOE     0xf0000804  // GPIO E
+#define SYSCTL_PERIPH_GPIOF     0xf0000805  // GPIO F
+#define SYSCTL_PERIPH_GPIOG     0xf0000806  // GPIO G
+#define SYSCTL_PERIPH_GPIOH     0xf0000807  // GPIO H
+#define SYSCTL_PERIPH_GPIOJ     0xf0000808  // GPIO J
+#define SYSCTL_PERIPH_HIBERNATE 0xf0001400  // Hibernation module
+#define SYSCTL_PERIPH_CCM0      0xf0007400  // CCM 0
+#define SYSCTL_PERIPH_EEPROM0   0xf0005800  // EEPROM 0
+#define SYSCTL_PERIPH_FAN0      0xf0005400  // FAN 0
+#define SYSCTL_PERIPH_FAN1      0xf0005401  // FAN 1
+#define SYSCTL_PERIPH_GPIOK     0xf0000809  // GPIO K
+#define SYSCTL_PERIPH_GPIOL     0xf000080a  // GPIO L
+#define SYSCTL_PERIPH_GPIOM     0xf000080b  // GPIO M
+#define SYSCTL_PERIPH_GPION     0xf000080c  // GPIO N
+#define SYSCTL_PERIPH_GPIOP     0xf000080d  // GPIO P
+#define SYSCTL_PERIPH_GPIOQ     0xf000080e  // GPIO Q
+#define SYSCTL_PERIPH_GPIOR     0xf000080f  // GPIO R
+#define SYSCTL_PERIPH_GPIOS     0xf0000810  // GPIO S
+#define SYSCTL_PERIPH_GPIOT     0xf0000811  // GPIO T
+#define SYSCTL_PERIPH_I2C0      0xf0002000  // I2C 0
+#define SYSCTL_PERIPH_I2C1      0xf0002001  // I2C 1
+#define SYSCTL_PERIPH_I2C2      0xf0002002  // I2C 2
+#define SYSCTL_PERIPH_I2C3      0xf0002003  // I2C 3
+#define SYSCTL_PERIPH_I2C4      0xf0002004  // I2C 4
+#define SYSCTL_PERIPH_I2C5      0xf0002005  // I2C 5
+#define SYSCTL_PERIPH_I2C6      0xf0002006  // I2C 6
+#define SYSCTL_PERIPH_I2C7      0xf0002007  // I2C 7
+#define SYSCTL_PERIPH_I2C8      0xf0002008  // I2C 8
+#define SYSCTL_PERIPH_I2C9      0xf0002009  // I2C 9
+#define SYSCTL_PERIPH_LCD0      0xf0009000  // LCD 0
+#define SYSCTL_PERIPH_ONEWIRE0  0xf0009800  // One Wire 0
+#define SYSCTL_PERIPH_PWM0      0xf0004000  // PWM 0
+#define SYSCTL_PERIPH_PWM1      0xf0004001  // PWM 1
+#define SYSCTL_PERIPH_QEI0      0xf0004400  // QEI 0
+#define SYSCTL_PERIPH_QEI1      0xf0004401  // QEI 1
+#define SYSCTL_PERIPH_SSI0      0xf0001c00  // SSI 0
+#define SYSCTL_PERIPH_SSI1      0xf0001c01  // SSI 1
+#define SYSCTL_PERIPH_SSI2      0xf0001c02  // SSI 2
+#define SYSCTL_PERIPH_SSI3      0xf0001c03  // SSI 3
+#define SYSCTL_PERIPH_TIMER0    0xf0000400  // Timer 0
+#define SYSCTL_PERIPH_TIMER1    0xf0000401  // Timer 1
+#define SYSCTL_PERIPH_TIMER2    0xf0000402  // Timer 2
+#define SYSCTL_PERIPH_TIMER3    0xf0000403  // Timer 3
+#define SYSCTL_PERIPH_TIMER4    0xf0000404  // Timer 4
+#define SYSCTL_PERIPH_TIMER5    0xf0000405  // Timer 5
+#define SYSCTL_PERIPH_TIMER6    0xf0000406  // Timer 6
+#define SYSCTL_PERIPH_TIMER7    0xf0000407  // Timer 7
+#define SYSCTL_PERIPH_UART0     0xf0001800  // UART 0
+#define SYSCTL_PERIPH_UART1     0xf0001801  // UART 1
+#define SYSCTL_PERIPH_UART2     0xf0001802  // UART 2
+#define SYSCTL_PERIPH_UART3     0xf0001803  // UART 3
+#define SYSCTL_PERIPH_UART4     0xf0001804  // UART 4
+#define SYSCTL_PERIPH_UART5     0xf0001805  // UART 5
+#define SYSCTL_PERIPH_UART6     0xf0001806  // UART 6
+#define SYSCTL_PERIPH_UART7     0xf0001807  // UART 7
+#define SYSCTL_PERIPH_UDMA      0xf0000c00  // uDMA
+#define SYSCTL_PERIPH_USB0      0xf0002800  // USB 0
+#define SYSCTL_PERIPH_WDOG0     0xf0000000  // Watchdog 0
+#define SYSCTL_PERIPH_WDOG1     0xf0000001  // Watchdog 1
+#define SYSCTL_PERIPH_WTIMER0   0xf0005c00  // Wide Timer 0
+#define SYSCTL_PERIPH_WTIMER1   0xf0005c01  // Wide Timer 1
+#define SYSCTL_PERIPH_WTIMER2   0xf0005c02  // Wide Timer 2
+#define SYSCTL_PERIPH_WTIMER3   0xf0005c03  // Wide Timer 3
+#define SYSCTL_PERIPH_WTIMER4   0xf0005c04  // Wide Timer 4
+#define SYSCTL_PERIPH_WTIMER5   0xf0005c05  // Wide Timer 5
+
+//*****************************************************************************
+//
+// The following are values that can be passed to the SysCtlLDOSleepSet() and
+// SysCtlLDODeepSleepSet() APIs as the ui32Voltage value, or returned by the
+// SysCtlLDOSleepGet() and SysCtlLDODeepSleepGet() APIs.
+//
+//*****************************************************************************
+#define SYSCTL_LDO_0_90V        0x80000012  // LDO output of 0.90V
+#define SYSCTL_LDO_0_95V        0x80000013  // LDO output of 0.95V
+#define SYSCTL_LDO_1_00V        0x80000014  // LDO output of 1.00V
+#define SYSCTL_LDO_1_05V        0x80000015  // LDO output of 1.05V
+#define SYSCTL_LDO_1_10V        0x80000016  // LDO output of 1.10V
+#define SYSCTL_LDO_1_15V        0x80000017  // LDO output of 1.15V
+#define SYSCTL_LDO_1_20V        0x80000018  // LDO output of 1.20V
+
+//*****************************************************************************
+//
+// The following are values that can be passed to the SysCtlIntEnable(),
+// SysCtlIntDisable(), and SysCtlIntClear() APIs, or returned in the bit mask
+// by the SysCtlIntStatus() API.
+//
+//*****************************************************************************
+#define SYSCTL_INT_BOR0         0x00000800  // VDD under BOR0
+#define SYSCTL_INT_VDDA_OK      0x00000400  // VDDA Power OK
+#define SYSCTL_INT_MOSC_PUP     0x00000100  // MOSC power-up interrupt
+#define SYSCTL_INT_USBPLL_LOCK  0x00000080  // USB PLL lock interrupt
+#define SYSCTL_INT_PLL_LOCK     0x00000040  // PLL lock interrupt
+#define SYSCTL_INT_MOSC_FAIL    0x00000008  // Main oscillator failure int
+#define SYSCTL_INT_BOR1         0x00000002  // VDD under BOR1
+#define SYSCTL_INT_BOR          0x00000002  // Brown out interrupt
+
+//*****************************************************************************
+//
+// The following are values that can be passed to the SysCtlResetCauseClear()
+// API or returned by the SysCtlResetCauseGet() API.
+//
+//*****************************************************************************
+#define SYSCTL_CAUSE_HSRVREQ    0x00001000  // Hardware System Service Request
+#define SYSCTL_CAUSE_HIB        0x00000040  // Hibernate reset
+#define SYSCTL_CAUSE_WDOG1      0x00000020  // Watchdog 1 reset
+#define SYSCTL_CAUSE_SW         0x00000010  // Software reset
+#define SYSCTL_CAUSE_WDOG0      0x00000008  // Watchdog 0 reset
+#ifndef DEPRECATED
+#define SYSCTL_CAUSE_WDOG       SYSCTL_CAUSE_WDOG0
+                                            // Watchdog reset(Deprecated)
+#endif
+#define SYSCTL_CAUSE_BOR        0x00000004  // Brown-out reset
+#define SYSCTL_CAUSE_POR        0x00000002  // Power on reset
+#define SYSCTL_CAUSE_EXT        0x00000001  // External reset
+
+//*****************************************************************************
+//
+// The following are values that can be passed to the SysCtlBrownOutConfigSet()
+// API as the ui32Config parameter.
+//
+//*****************************************************************************
+#define SYSCTL_BOR_RESET        0x00000002  // Reset instead of interrupting
+#define SYSCTL_BOR_RESAMPLE     0x00000001  // Resample BOR before asserting
+
+//*****************************************************************************
+//
+// The following are values that can be passed to the SysCtlPWMClockSet() API
+// as the ui32Config parameter, and can be returned by the SysCtlPWMClockGet()
+// API.
+//
+//*****************************************************************************
+#define SYSCTL_PWMDIV_1         0x00000000  // PWM clock is processor clock /1
+#define SYSCTL_PWMDIV_2         0x00100000  // PWM clock is processor clock /2
+#define SYSCTL_PWMDIV_4         0x00120000  // PWM clock is processor clock /4
+#define SYSCTL_PWMDIV_8         0x00140000  // PWM clock is processor clock /8
+#define SYSCTL_PWMDIV_16        0x00160000  // PWM clock is processor clock /16
+#define SYSCTL_PWMDIV_32        0x00180000  // PWM clock is processor clock /32
+#define SYSCTL_PWMDIV_64        0x001A0000  // PWM clock is processor clock /64
+
+//*****************************************************************************
+//
+// The following are values that can be passed to the SysCtlClockSet() API as
+// the ui32Config parameter.
+//
+//*****************************************************************************
+#define SYSCTL_SYSDIV_1         0x07800000  // Processor clock is osc/pll /1
+#define SYSCTL_SYSDIV_2         0x00C00000  // Processor clock is osc/pll /2
+#define SYSCTL_SYSDIV_3         0x01400000  // Processor clock is osc/pll /3
+#define SYSCTL_SYSDIV_4         0x01C00000  // Processor clock is osc/pll /4
+#define SYSCTL_SYSDIV_5         0x02400000  // Processor clock is osc/pll /5
+#define SYSCTL_SYSDIV_6         0x02C00000  // Processor clock is osc/pll /6
+#define SYSCTL_SYSDIV_7         0x03400000  // Processor clock is osc/pll /7
+#define SYSCTL_SYSDIV_8         0x03C00000  // Processor clock is osc/pll /8
+#define SYSCTL_SYSDIV_9         0x04400000  // Processor clock is osc/pll /9
+#define SYSCTL_SYSDIV_10        0x04C00000  // Processor clock is osc/pll /10
+#define SYSCTL_SYSDIV_11        0x05400000  // Processor clock is osc/pll /11
+#define SYSCTL_SYSDIV_12        0x05C00000  // Processor clock is osc/pll /12
+#define SYSCTL_SYSDIV_13        0x06400000  // Processor clock is osc/pll /13
+#define SYSCTL_SYSDIV_14        0x06C00000  // Processor clock is osc/pll /14
+#define SYSCTL_SYSDIV_15        0x07400000  // Processor clock is osc/pll /15
+#define SYSCTL_SYSDIV_16        0x07C00000  // Processor clock is osc/pll /16
+#define SYSCTL_SYSDIV_17        0x88400000  // Processor clock is osc/pll /17
+#define SYSCTL_SYSDIV_18        0x88C00000  // Processor clock is osc/pll /18
+#define SYSCTL_SYSDIV_19        0x89400000  // Processor clock is osc/pll /19
+#define SYSCTL_SYSDIV_20        0x89C00000  // Processor clock is osc/pll /20
+#define SYSCTL_SYSDIV_21        0x8A400000  // Processor clock is osc/pll /21
+#define SYSCTL_SYSDIV_22        0x8AC00000  // Processor clock is osc/pll /22
+#define SYSCTL_SYSDIV_23        0x8B400000  // Processor clock is osc/pll /23
+#define SYSCTL_SYSDIV_24        0x8BC00000  // Processor clock is osc/pll /24
+#define SYSCTL_SYSDIV_25        0x8C400000  // Processor clock is osc/pll /25
+#define SYSCTL_SYSDIV_26        0x8CC00000  // Processor clock is osc/pll /26
+#define SYSCTL_SYSDIV_27        0x8D400000  // Processor clock is osc/pll /27
+#define SYSCTL_SYSDIV_28        0x8DC00000  // Processor clock is osc/pll /28
+#define SYSCTL_SYSDIV_29        0x8E400000  // Processor clock is osc/pll /29
+#define SYSCTL_SYSDIV_30        0x8EC00000  // Processor clock is osc/pll /30
+#define SYSCTL_SYSDIV_31        0x8F400000  // Processor clock is osc/pll /31
+#define SYSCTL_SYSDIV_32        0x8FC00000  // Processor clock is osc/pll /32
+#define SYSCTL_SYSDIV_33        0x90400000  // Processor clock is osc/pll /33
+#define SYSCTL_SYSDIV_34        0x90C00000  // Processor clock is osc/pll /34
+#define SYSCTL_SYSDIV_35        0x91400000  // Processor clock is osc/pll /35
+#define SYSCTL_SYSDIV_36        0x91C00000  // Processor clock is osc/pll /36
+#define SYSCTL_SYSDIV_37        0x92400000  // Processor clock is osc/pll /37
+#define SYSCTL_SYSDIV_38        0x92C00000  // Processor clock is osc/pll /38
+#define SYSCTL_SYSDIV_39        0x93400000  // Processor clock is osc/pll /39
+#define SYSCTL_SYSDIV_40        0x93C00000  // Processor clock is osc/pll /40
+#define SYSCTL_SYSDIV_41        0x94400000  // Processor clock is osc/pll /41
+#define SYSCTL_SYSDIV_42        0x94C00000  // Processor clock is osc/pll /42
+#define SYSCTL_SYSDIV_43        0x95400000  // Processor clock is osc/pll /43
+#define SYSCTL_SYSDIV_44        0x95C00000  // Processor clock is osc/pll /44
+#define SYSCTL_SYSDIV_45        0x96400000  // Processor clock is osc/pll /45
+#define SYSCTL_SYSDIV_46        0x96C00000  // Processor clock is osc/pll /46
+#define SYSCTL_SYSDIV_47        0x97400000  // Processor clock is osc/pll /47
+#define SYSCTL_SYSDIV_48        0x97C00000  // Processor clock is osc/pll /48
+#define SYSCTL_SYSDIV_49        0x98400000  // Processor clock is osc/pll /49
+#define SYSCTL_SYSDIV_50        0x98C00000  // Processor clock is osc/pll /50
+#define SYSCTL_SYSDIV_51        0x99400000  // Processor clock is osc/pll /51
+#define SYSCTL_SYSDIV_52        0x99C00000  // Processor clock is osc/pll /52
+#define SYSCTL_SYSDIV_53        0x9A400000  // Processor clock is osc/pll /53
+#define SYSCTL_SYSDIV_54        0x9AC00000  // Processor clock is osc/pll /54
+#define SYSCTL_SYSDIV_55        0x9B400000  // Processor clock is osc/pll /55
+#define SYSCTL_SYSDIV_56        0x9BC00000  // Processor clock is osc/pll /56
+#define SYSCTL_SYSDIV_57        0x9C400000  // Processor clock is osc/pll /57
+#define SYSCTL_SYSDIV_58        0x9CC00000  // Processor clock is osc/pll /58
+#define SYSCTL_SYSDIV_59        0x9D400000  // Processor clock is osc/pll /59
+#define SYSCTL_SYSDIV_60        0x9DC00000  // Processor clock is osc/pll /60
+#define SYSCTL_SYSDIV_61        0x9E400000  // Processor clock is osc/pll /61
+#define SYSCTL_SYSDIV_62        0x9EC00000  // Processor clock is osc/pll /62
+#define SYSCTL_SYSDIV_63        0x9F400000  // Processor clock is osc/pll /63
+#define SYSCTL_SYSDIV_64        0x9FC00000  // Processor clock is osc/pll /64
+#define SYSCTL_SYSDIV_2_5       0xC1000000  // Processor clock is pll / 2.5
+#define SYSCTL_SYSDIV_3_5       0xC1800000  // Processor clock is pll / 3.5
+#define SYSCTL_SYSDIV_4_5       0xC2000000  // Processor clock is pll / 4.5
+#define SYSCTL_SYSDIV_5_5       0xC2800000  // Processor clock is pll / 5.5
+#define SYSCTL_SYSDIV_6_5       0xC3000000  // Processor clock is pll / 6.5
+#define SYSCTL_SYSDIV_7_5       0xC3800000  // Processor clock is pll / 7.5
+#define SYSCTL_SYSDIV_8_5       0xC4000000  // Processor clock is pll / 8.5
+#define SYSCTL_SYSDIV_9_5       0xC4800000  // Processor clock is pll / 9.5
+#define SYSCTL_SYSDIV_10_5      0xC5000000  // Processor clock is pll / 10.5
+#define SYSCTL_SYSDIV_11_5      0xC5800000  // Processor clock is pll / 11.5
+#define SYSCTL_SYSDIV_12_5      0xC6000000  // Processor clock is pll / 12.5
+#define SYSCTL_SYSDIV_13_5      0xC6800000  // Processor clock is pll / 13.5
+#define SYSCTL_SYSDIV_14_5      0xC7000000  // Processor clock is pll / 14.5
+#define SYSCTL_SYSDIV_15_5      0xC7800000  // Processor clock is pll / 15.5
+#define SYSCTL_SYSDIV_16_5      0xC8000000  // Processor clock is pll / 16.5
+#define SYSCTL_SYSDIV_17_5      0xC8800000  // Processor clock is pll / 17.5
+#define SYSCTL_SYSDIV_18_5      0xC9000000  // Processor clock is pll / 18.5
+#define SYSCTL_SYSDIV_19_5      0xC9800000  // Processor clock is pll / 19.5
+#define SYSCTL_SYSDIV_20_5      0xCA000000  // Processor clock is pll / 20.5
+#define SYSCTL_SYSDIV_21_5      0xCA800000  // Processor clock is pll / 21.5
+#define SYSCTL_SYSDIV_22_5      0xCB000000  // Processor clock is pll / 22.5
+#define SYSCTL_SYSDIV_23_5      0xCB800000  // Processor clock is pll / 23.5
+#define SYSCTL_SYSDIV_24_5      0xCC000000  // Processor clock is pll / 24.5
+#define SYSCTL_SYSDIV_25_5      0xCC800000  // Processor clock is pll / 25.5
+#define SYSCTL_SYSDIV_26_5      0xCD000000  // Processor clock is pll / 26.5
+#define SYSCTL_SYSDIV_27_5      0xCD800000  // Processor clock is pll / 27.5
+#define SYSCTL_SYSDIV_28_5      0xCE000000  // Processor clock is pll / 28.5
+#define SYSCTL_SYSDIV_29_5      0xCE800000  // Processor clock is pll / 29.5
+#define SYSCTL_SYSDIV_30_5      0xCF000000  // Processor clock is pll / 30.5
+#define SYSCTL_SYSDIV_31_5      0xCF800000  // Processor clock is pll / 31.5
+#define SYSCTL_SYSDIV_32_5      0xD0000000  // Processor clock is pll / 32.5
+#define SYSCTL_SYSDIV_33_5      0xD0800000  // Processor clock is pll / 33.5
+#define SYSCTL_SYSDIV_34_5      0xD1000000  // Processor clock is pll / 34.5
+#define SYSCTL_SYSDIV_35_5      0xD1800000  // Processor clock is pll / 35.5
+#define SYSCTL_SYSDIV_36_5      0xD2000000  // Processor clock is pll / 36.5
+#define SYSCTL_SYSDIV_37_5      0xD2800000  // Processor clock is pll / 37.5
+#define SYSCTL_SYSDIV_38_5      0xD3000000  // Processor clock is pll / 38.5
+#define SYSCTL_SYSDIV_39_5      0xD3800000  // Processor clock is pll / 39.5
+#define SYSCTL_SYSDIV_40_5      0xD4000000  // Processor clock is pll / 40.5
+#define SYSCTL_SYSDIV_41_5      0xD4800000  // Processor clock is pll / 41.5
+#define SYSCTL_SYSDIV_42_5      0xD5000000  // Processor clock is pll / 42.5
+#define SYSCTL_SYSDIV_43_5      0xD5800000  // Processor clock is pll / 43.5
+#define SYSCTL_SYSDIV_44_5      0xD6000000  // Processor clock is pll / 44.5
+#define SYSCTL_SYSDIV_45_5      0xD6800000  // Processor clock is pll / 45.5
+#define SYSCTL_SYSDIV_46_5      0xD7000000  // Processor clock is pll / 46.5
+#define SYSCTL_SYSDIV_47_5      0xD7800000  // Processor clock is pll / 47.5
+#define SYSCTL_SYSDIV_48_5      0xD8000000  // Processor clock is pll / 48.5
+#define SYSCTL_SYSDIV_49_5      0xD8800000  // Processor clock is pll / 49.5
+#define SYSCTL_SYSDIV_50_5      0xD9000000  // Processor clock is pll / 50.5
+#define SYSCTL_SYSDIV_51_5      0xD9800000  // Processor clock is pll / 51.5
+#define SYSCTL_SYSDIV_52_5      0xDA000000  // Processor clock is pll / 52.5
+#define SYSCTL_SYSDIV_53_5      0xDA800000  // Processor clock is pll / 53.5
+#define SYSCTL_SYSDIV_54_5      0xDB000000  // Processor clock is pll / 54.5
+#define SYSCTL_SYSDIV_55_5      0xDB800000  // Processor clock is pll / 55.5
+#define SYSCTL_SYSDIV_56_5      0xDC000000  // Processor clock is pll / 56.5
+#define SYSCTL_SYSDIV_57_5      0xDC800000  // Processor clock is pll / 57.5
+#define SYSCTL_SYSDIV_58_5      0xDD000000  // Processor clock is pll / 58.5
+#define SYSCTL_SYSDIV_59_5      0xDD800000  // Processor clock is pll / 59.5
+#define SYSCTL_SYSDIV_60_5      0xDE000000  // Processor clock is pll / 60.5
+#define SYSCTL_SYSDIV_61_5      0xDE800000  // Processor clock is pll / 61.5
+#define SYSCTL_SYSDIV_62_5      0xDF000000  // Processor clock is pll / 62.5
+#define SYSCTL_SYSDIV_63_5      0xDF800000  // Processor clock is pll / 63.5
+#define SYSCTL_CFG_VCO_480      0xF1000000  // VCO is 480 MHz
+#define SYSCTL_CFG_VCO_320      0xF0000000  // VCO is 320 MHz
+#define SYSCTL_USE_PLL          0x00000000  // System clock is the PLL clock
+#define SYSCTL_USE_OSC          0x00003800  // System clock is the osc clock
+#define SYSCTL_XTAL_1MHZ        0x00000000  // External crystal is 1MHz
+#define SYSCTL_XTAL_1_84MHZ     0x00000040  // External crystal is 1.8432MHz
+#define SYSCTL_XTAL_2MHZ        0x00000080  // External crystal is 2MHz
+#define SYSCTL_XTAL_2_45MHZ     0x000000C0  // External crystal is 2.4576MHz
+#define SYSCTL_XTAL_3_57MHZ     0x00000100  // External crystal is 3.579545MHz
+#define SYSCTL_XTAL_3_68MHZ     0x00000140  // External crystal is 3.6864MHz
+#define SYSCTL_XTAL_4MHZ        0x00000180  // External crystal is 4MHz
+#define SYSCTL_XTAL_4_09MHZ     0x000001C0  // External crystal is 4.096MHz
+#define SYSCTL_XTAL_4_91MHZ     0x00000200  // External crystal is 4.9152MHz
+#define SYSCTL_XTAL_5MHZ        0x00000240  // External crystal is 5MHz
+#define SYSCTL_XTAL_5_12MHZ     0x00000280  // External crystal is 5.12MHz
+#define SYSCTL_XTAL_6MHZ        0x000002C0  // External crystal is 6MHz
+#define SYSCTL_XTAL_6_14MHZ     0x00000300  // External crystal is 6.144MHz
+#define SYSCTL_XTAL_7_37MHZ     0x00000340  // External crystal is 7.3728MHz
+#define SYSCTL_XTAL_8MHZ        0x00000380  // External crystal is 8MHz
+#define SYSCTL_XTAL_8_19MHZ     0x000003C0  // External crystal is 8.192MHz
+#define SYSCTL_XTAL_10MHZ       0x00000400  // External crystal is 10 MHz
+#define SYSCTL_XTAL_12MHZ       0x00000440  // External crystal is 12 MHz
+#define SYSCTL_XTAL_12_2MHZ     0x00000480  // External crystal is 12.288 MHz
+#define SYSCTL_XTAL_13_5MHZ     0x000004C0  // External crystal is 13.56 MHz
+#define SYSCTL_XTAL_14_3MHZ     0x00000500  // External crystal is 14.31818 MHz
+#define SYSCTL_XTAL_16MHZ       0x00000540  // External crystal is 16 MHz
+#define SYSCTL_XTAL_16_3MHZ     0x00000580  // External crystal is 16.384 MHz
+#define SYSCTL_XTAL_18MHZ       0x000005C0  // External crystal is 18.0 MHz
+#define SYSCTL_XTAL_20MHZ       0x00000600  // External crystal is 20.0 MHz
+#define SYSCTL_XTAL_24MHZ       0x00000640  // External crystal is 24.0 MHz
+#define SYSCTL_XTAL_25MHZ       0x00000680  // External crystal is 25.0 MHz
+#define SYSCTL_OSC_MAIN         0x00000000  // Osc source is main osc
+#define SYSCTL_OSC_INT          0x00000010  // Osc source is int. osc
+#define SYSCTL_OSC_INT4         0x00000020  // Osc source is int. osc /4
+#define SYSCTL_OSC_INT30        0x00000030  // Osc source is int. 30 KHz
+#define SYSCTL_OSC_EXT32        0x80000038  // Osc source is ext. 32 KHz
+#define SYSCTL_INT_OSC_DIS      0x00000002  // Disable internal oscillator
+#define SYSCTL_MAIN_OSC_DIS     0x00000001  // Disable main oscillator
+
+//*****************************************************************************
+//
+// The following are values that can be passed to the SysCtlDeepSleepClockSet()
+// API as the ui32Config parameter.
+//
+//*****************************************************************************
+#define SYSCTL_DSLP_DIV_1       0x00000000  // Deep-sleep clock is osc /1
+#define SYSCTL_DSLP_DIV_2       0x00800000  // Deep-sleep clock is osc /2
+#define SYSCTL_DSLP_DIV_3       0x01000000  // Deep-sleep clock is osc /3
+#define SYSCTL_DSLP_DIV_4       0x01800000  // Deep-sleep clock is osc /4
+#define SYSCTL_DSLP_DIV_5       0x02000000  // Deep-sleep clock is osc /5
+#define SYSCTL_DSLP_DIV_6       0x02800000  // Deep-sleep clock is osc /6
+#define SYSCTL_DSLP_DIV_7       0x03000000  // Deep-sleep clock is osc /7
+#define SYSCTL_DSLP_DIV_8       0x03800000  // Deep-sleep clock is osc /8
+#define SYSCTL_DSLP_DIV_9       0x04000000  // Deep-sleep clock is osc /9
+#define SYSCTL_DSLP_DIV_10      0x04800000  // Deep-sleep clock is osc /10
+#define SYSCTL_DSLP_DIV_11      0x05000000  // Deep-sleep clock is osc /11
+#define SYSCTL_DSLP_DIV_12      0x05800000  // Deep-sleep clock is osc /12
+#define SYSCTL_DSLP_DIV_13      0x06000000  // Deep-sleep clock is osc /13
+#define SYSCTL_DSLP_DIV_14      0x06800000  // Deep-sleep clock is osc /14
+#define SYSCTL_DSLP_DIV_15      0x07000000  // Deep-sleep clock is osc /15
+#define SYSCTL_DSLP_DIV_16      0x07800000  // Deep-sleep clock is osc /16
+#define SYSCTL_DSLP_DIV_17      0x08000000  // Deep-sleep clock is osc /17
+#define SYSCTL_DSLP_DIV_18      0x08800000  // Deep-sleep clock is osc /18
+#define SYSCTL_DSLP_DIV_19      0x09000000  // Deep-sleep clock is osc /19
+#define SYSCTL_DSLP_DIV_20      0x09800000  // Deep-sleep clock is osc /20
+#define SYSCTL_DSLP_DIV_21      0x0A000000  // Deep-sleep clock is osc /21
+#define SYSCTL_DSLP_DIV_22      0x0A800000  // Deep-sleep clock is osc /22
+#define SYSCTL_DSLP_DIV_23      0x0B000000  // Deep-sleep clock is osc /23
+#define SYSCTL_DSLP_DIV_24      0x0B800000  // Deep-sleep clock is osc /24
+#define SYSCTL_DSLP_DIV_25      0x0C000000  // Deep-sleep clock is osc /25
+#define SYSCTL_DSLP_DIV_26      0x0C800000  // Deep-sleep clock is osc /26
+#define SYSCTL_DSLP_DIV_27      0x0D000000  // Deep-sleep clock is osc /27
+#define SYSCTL_DSLP_DIV_28      0x0D800000  // Deep-sleep clock is osc /28
+#define SYSCTL_DSLP_DIV_29      0x0E000000  // Deep-sleep clock is osc /29
+#define SYSCTL_DSLP_DIV_30      0x0E800000  // Deep-sleep clock is osc /30
+#define SYSCTL_DSLP_DIV_31      0x0F000000  // Deep-sleep clock is osc /31
+#define SYSCTL_DSLP_DIV_32      0x0F800000  // Deep-sleep clock is osc /32
+#define SYSCTL_DSLP_DIV_33      0x10000000  // Deep-sleep clock is osc /33
+#define SYSCTL_DSLP_DIV_34      0x10800000  // Deep-sleep clock is osc /34
+#define SYSCTL_DSLP_DIV_35      0x11000000  // Deep-sleep clock is osc /35
+#define SYSCTL_DSLP_DIV_36      0x11800000  // Deep-sleep clock is osc /36
+#define SYSCTL_DSLP_DIV_37      0x12000000  // Deep-sleep clock is osc /37
+#define SYSCTL_DSLP_DIV_38      0x12800000  // Deep-sleep clock is osc /38
+#define SYSCTL_DSLP_DIV_39      0x13000000  // Deep-sleep clock is osc /39
+#define SYSCTL_DSLP_DIV_40      0x13800000  // Deep-sleep clock is osc /40
+#define SYSCTL_DSLP_DIV_41      0x14000000  // Deep-sleep clock is osc /41
+#define SYSCTL_DSLP_DIV_42      0x14800000  // Deep-sleep clock is osc /42
+#define SYSCTL_DSLP_DIV_43      0x15000000  // Deep-sleep clock is osc /43
+#define SYSCTL_DSLP_DIV_44      0x15800000  // Deep-sleep clock is osc /44
+#define SYSCTL_DSLP_DIV_45      0x16000000  // Deep-sleep clock is osc /45
+#define SYSCTL_DSLP_DIV_46      0x16800000  // Deep-sleep clock is osc /46
+#define SYSCTL_DSLP_DIV_47      0x17000000  // Deep-sleep clock is osc /47
+#define SYSCTL_DSLP_DIV_48      0x17800000  // Deep-sleep clock is osc /48
+#define SYSCTL_DSLP_DIV_49      0x18000000  // Deep-sleep clock is osc /49
+#define SYSCTL_DSLP_DIV_50      0x18800000  // Deep-sleep clock is osc /50
+#define SYSCTL_DSLP_DIV_51      0x19000000  // Deep-sleep clock is osc /51
+#define SYSCTL_DSLP_DIV_52      0x19800000  // Deep-sleep clock is osc /52
+#define SYSCTL_DSLP_DIV_53      0x1A000000  // Deep-sleep clock is osc /53
+#define SYSCTL_DSLP_DIV_54      0x1A800000  // Deep-sleep clock is osc /54
+#define SYSCTL_DSLP_DIV_55      0x1B000000  // Deep-sleep clock is osc /55
+#define SYSCTL_DSLP_DIV_56      0x1B800000  // Deep-sleep clock is osc /56
+#define SYSCTL_DSLP_DIV_57      0x1C000000  // Deep-sleep clock is osc /57
+#define SYSCTL_DSLP_DIV_58      0x1C800000  // Deep-sleep clock is osc /58
+#define SYSCTL_DSLP_DIV_59      0x1D000000  // Deep-sleep clock is osc /59
+#define SYSCTL_DSLP_DIV_60      0x1D800000  // Deep-sleep clock is osc /60
+#define SYSCTL_DSLP_DIV_61      0x1E000000  // Deep-sleep clock is osc /61
+#define SYSCTL_DSLP_DIV_62      0x1E800000  // Deep-sleep clock is osc /62
+#define SYSCTL_DSLP_DIV_63      0x1F000000  // Deep-sleep clock is osc /63
+#define SYSCTL_DSLP_DIV_64      0x1F800000  // Deep-sleep clock is osc /64
+#define SYSCTL_DSLP_OSC_MAIN    0x00000000  // Osc source is main osc
+#define SYSCTL_DSLP_OSC_INT     0x00000010  // Osc source is int. osc
+#define SYSCTL_DSLP_OSC_INT30   0x00000030  // Osc source is int. 30 KHz
+#define SYSCTL_DSLP_OSC_EXT32   0x00000070  // Osc source is ext. 32 KHz
+#define SYSCTL_DSLP_PIOSC_PD    0x00000002  // Power down PIOSC in deep-sleep
+#define SYSCTL_DSLP_MOSC_PD     0x40000000  // Power down MOSC in deep-sleep
+
+//*****************************************************************************
+//
+// The following are values that can be passed to the SysCtlPIOSCCalibrate()
+// API as the ui32Type parameter.
+//
+//*****************************************************************************
+#define SYSCTL_PIOSC_CAL_AUTO   0x00000200  // Automatic calibration
+#define SYSCTL_PIOSC_CAL_FACT   0x00000100  // Factory calibration
+#define SYSCTL_PIOSC_CAL_USER   0x80000100  // User-supplied calibration
+
+//*****************************************************************************
+//
+// The following are values that can be passed to the SysCtlMOSCConfigSet() API
+// as the ui32Config parameter.
+//
+//*****************************************************************************
+#define SYSCTL_MOSC_VALIDATE    0x00000001  // Enable MOSC validation
+#define SYSCTL_MOSC_INTERRUPT   0x00000002  // Generate interrupt on MOSC fail
+#define SYSCTL_MOSC_NO_XTAL     0x00000004  // No crystal is attached to MOSC
+#define SYSCTL_MOSC_PWR_DIS     0x00000008  // Power down the MOSC.
+#define SYSCTL_MOSC_LOWFREQ     0x00000000  // MOSC is less than 10MHz
+#define SYSCTL_MOSC_HIGHFREQ    0x00000010  // MOSC is greater than 10MHz
+#define SYSCTL_MOSC_SESRC       0x00000020  // Singled ended oscillator source.
+
+//*****************************************************************************
+//
+// The following are values that can be passed to the SysCtlSleepPowerSet() and
+// SysCtlDeepSleepPowerSet() APIs as the ui32Config parameter.
+//
+//*****************************************************************************
+#define SYSCTL_LDO_SLEEP        0x00000200  // LDO in sleep mode
+                                            // (Deep Sleep Only)
+#define SYSCTL_TEMP_LOW_POWER   0x00000100  // Temp sensor in low power mode
+                                            // (Deep Sleep Only)
+#define SYSCTL_FLASH_NORMAL     0x00000000  // Flash in normal mode
+#define SYSCTL_FLASH_LOW_POWER  0x00000020  // Flash in low power mode
+#define SYSCTL_SRAM_NORMAL      0x00000000  // SRAM in normal mode
+#define SYSCTL_SRAM_STANDBY     0x00000001  // SRAM in standby mode
+#define SYSCTL_SRAM_LOW_POWER   0x00000003  // SRAM in low power mode
+
+//*****************************************************************************
+//
+// Defines for the SysCtlResetBehaviorSet() and SysCtlResetBehaviorGet() APIs.
+//
+//*****************************************************************************
+#define SYSCTL_ONRST_WDOG0_POR  0x00000030
+#define SYSCTL_ONRST_WDOG0_SYS  0x00000020
+#define SYSCTL_ONRST_WDOG1_POR  0x000000C0
+#define SYSCTL_ONRST_WDOG1_SYS  0x00000080
+#define SYSCTL_ONRST_BOR_POR    0x0000000C
+#define SYSCTL_ONRST_BOR_SYS    0x00000008
+#define SYSCTL_ONRST_EXT_POR    0x00000003
+#define SYSCTL_ONRST_EXT_SYS    0x00000002
+
+//*****************************************************************************
+//
+// Values used with the SysCtlVoltageEventConfig() API.
+//
+//*****************************************************************************
+#define SYSCTL_VEVENT_VDDABO_NONE                                             \
+                                0x00000000
+#define SYSCTL_VEVENT_VDDABO_INT                                              \
+                                0x00000100
+#define SYSCTL_VEVENT_VDDABO_NMI                                              \
+                                0x00000200
+#define SYSCTL_VEVENT_VDDABO_RST                                              \
+                                0x00000300
+#define SYSCTL_VEVENT_VDDBO_NONE                                              \
+                                0x00000000
+#define SYSCTL_VEVENT_VDDBO_INT 0x00000001
+#define SYSCTL_VEVENT_VDDBO_NMI 0x00000002
+#define SYSCTL_VEVENT_VDDBO_RST 0x00000003
+
+//*****************************************************************************
+//
+// Values used with the SysCtlVoltageEventStatus() and
+// SysCtlVoltageEventClear() APIs.
+//
+//*****************************************************************************
+#define SYSCTL_VESTAT_VDDBOR    0x00000040
+#define SYSCTL_VESTAT_VDDABOR   0x00000010
+
+//*****************************************************************************
+//
+// Values used with the SysCtlNMIStatus() API.
+//
+//*****************************************************************************
+#define SYSCTL_NMI_MOSCFAIL     0x00010000
+#define SYSCTL_NMI_TAMPER       0x00000200
+#define SYSCTL_NMI_WDT1         0x00000020
+#define SYSCTL_NMI_WDT0         0x00000008
+#define SYSCTL_NMI_POWER        0x00000004
+#define SYSCTL_NMI_EXTERNAL     0x00000001
+
+//*****************************************************************************
+//
+// The defines for the SysCtlClockOutConfig() API.
+//
+//*****************************************************************************
+#define SYSCTL_CLKOUT_EN        0x80000000
+#define SYSCTL_CLKOUT_DIS       0x00000000
+#define SYSCTL_CLKOUT_SYSCLK    0x00000000
+#define SYSCTL_CLKOUT_PIOSC     0x00010000
+#define SYSCTL_CLKOUT_MOSC      0x00020000
+
+//*****************************************************************************
+//
+// The following defines are used with the SysCtlAltClkConfig() function.
+//
+//*****************************************************************************
+#define SYSCTL_ALTCLK_PIOSC     0x00000000
+#define SYSCTL_ALTCLK_RTCOSC    0x00000003
+#define SYSCTL_ALTCLK_LFIOSC    0x00000004
+
+//*****************************************************************************
+//
+// Prototypes for the APIs.
+//
+//*****************************************************************************
+extern uint32_t SysCtlSRAMSizeGet(void);
+extern uint32_t SysCtlFlashSizeGet(void);
+extern uint32_t SysCtlFlashSectorSizeGet(void);
+extern bool SysCtlPeripheralPresent(uint32_t ui32Peripheral);
+extern bool SysCtlPeripheralReady(uint32_t ui32Peripheral);
+extern void SysCtlPeripheralPowerOn(uint32_t ui32Peripheral);
+extern void SysCtlPeripheralPowerOff(uint32_t ui32Peripheral);
+extern void SysCtlPeripheralReset(uint32_t ui32Peripheral);
+extern void SysCtlPeripheralEnable(uint32_t ui32Peripheral);
+extern void SysCtlPeripheralDisable(uint32_t ui32Peripheral);
+extern void SysCtlPeripheralSleepEnable(uint32_t ui32Peripheral);
+extern void SysCtlPeripheralSleepDisable(uint32_t ui32Peripheral);
+extern void SysCtlPeripheralDeepSleepEnable(uint32_t ui32Peripheral);
+extern void SysCtlPeripheralDeepSleepDisable(uint32_t ui32Peripheral);
+extern void SysCtlPeripheralClockGating(bool bEnable);
+extern void SysCtlIntRegister(void (*pfnHandler)(void));
+extern void SysCtlIntUnregister(void);
+extern void SysCtlIntEnable(uint32_t ui32Ints);
+extern void SysCtlIntDisable(uint32_t ui32Ints);
+extern void SysCtlIntClear(uint32_t ui32Ints);
+extern uint32_t SysCtlIntStatus(bool bMasked);
+extern void SysCtlLDOSleepSet(uint32_t ui32Voltage);
+extern uint32_t SysCtlLDOSleepGet(void);
+extern void SysCtlLDODeepSleepSet(uint32_t ui32Voltage);
+extern uint32_t SysCtlLDODeepSleepGet(void);
+extern void SysCtlSleepPowerSet(uint32_t ui32Config);
+extern void SysCtlDeepSleepPowerSet(uint32_t ui32Config);
+extern void SysCtlReset(void);
+extern void SysCtlSleep(void);
+extern void SysCtlDeepSleep(void);
+extern uint32_t SysCtlResetCauseGet(void);
+extern void SysCtlResetCauseClear(uint32_t ui32Causes);
+extern void SysCtlBrownOutConfigSet(uint32_t ui32Config,
+                                    uint32_t ui32Delay);
+extern void SysCtlDelay(uint32_t ui32Count);
+extern void SysCtlMOSCConfigSet(uint32_t ui32Config);
+extern uint32_t SysCtlPIOSCCalibrate(uint32_t ui32Type);
+extern void SysCtlClockSet(uint32_t ui32Config);
+extern uint32_t SysCtlClockGet(void);
+extern void SysCtlDeepSleepClockSet(uint32_t ui32Config);
+extern void SysCtlDeepSleepClockConfigSet(uint32_t ui32Div,
+                                          uint32_t ui32Config);
+extern void SysCtlPWMClockSet(uint32_t ui32Config);
+extern uint32_t SysCtlPWMClockGet(void);
+extern void SysCtlIOSCVerificationSet(bool bEnable);
+extern void SysCtlMOSCVerificationSet(bool bEnable);
+extern void SysCtlPLLVerificationSet(bool bEnable);
+extern void SysCtlClkVerificationClear(void);
+extern void SysCtlGPIOAHBEnable(uint32_t ui32GPIOPeripheral);
+extern void SysCtlGPIOAHBDisable(uint32_t ui32GPIOPeripheral);
+extern void SysCtlUSBPLLEnable(void);
+extern void SysCtlUSBPLLDisable(void);
+extern uint32_t SysCtlClockFreqSet(uint32_t ui32Config,
+                                   uint32_t ui32SysClock);
+extern void SysCtlResetBehaviorSet(uint32_t ui32Behavior);
+extern uint32_t SysCtlResetBehaviorGet(void);
+extern void SysCtlClockOutConfig(uint32_t ui32Config, uint32_t ui32Div);
+extern void SysCtlAltClkConfig(uint32_t ui32Config);
+extern uint32_t SysCtlNMIStatus(void);
+extern void SysCtlNMIClear(uint32_t ui32Status);
+extern void SysCtlVoltageEventConfig(uint32_t ui32Config);
+extern uint32_t SysCtlVoltageEventStatus(void);
+extern void SysCtlVoltageEventClear(uint32_t ui32Status);
+extern bool SysCtlVCOGet(uint32_t ui32Crystal, uint32_t *pui32VCOFrequency);
+
+//*****************************************************************************
+//
+// Mark the end of the C bindings section for C++ compilers.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __DRIVERLIB_SYSCTL_H__

この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません