From 646c1443db6f82d59ba1b4ba137d9049c60a5364 Mon Sep 17 00:00:00 2001 From: wuyangyong Date: Fri, 23 Dec 2011 03:20:26 +0000 Subject: [PATCH] update Stellaris Peripheral Driver Library to r8264. git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1869 bbd45198-f89e-11dd-88c7-29a3b14d5316 --- bsp/lm3s8962/Libraries/SConscript | 9 +- bsp/lm3s8962/Libraries/driverlib/adc.c | 256 +- bsp/lm3s8962/Libraries/driverlib/adc.h | 23 +- bsp/lm3s8962/Libraries/driverlib/can.c | 308 +- bsp/lm3s8962/Libraries/driverlib/can.h | 12 +- bsp/lm3s8962/Libraries/driverlib/comp.c | 44 +- bsp/lm3s8962/Libraries/driverlib/comp.h | 4 +- bsp/lm3s8962/Libraries/driverlib/cpu.c | 7 +- bsp/lm3s8962/Libraries/driverlib/cpu.h | 4 +- bsp/lm3s8962/Libraries/driverlib/debug.h | 4 +- bsp/lm3s8962/Libraries/driverlib/eeprom.c | 1110 + bsp/lm3s8962/Libraries/driverlib/eeprom.h | 264 + bsp/lm3s8962/Libraries/driverlib/epi.c | 178 +- bsp/lm3s8962/Libraries/driverlib/epi.h | 38 +- bsp/lm3s8962/Libraries/driverlib/ethernet.c | 229 +- bsp/lm3s8962/Libraries/driverlib/ethernet.h | 7 +- bsp/lm3s8962/Libraries/driverlib/fan.c | 633 + bsp/lm3s8962/Libraries/driverlib/fan.h | 168 + bsp/lm3s8962/Libraries/driverlib/flash.c | 140 +- bsp/lm3s8962/Libraries/driverlib/flash.h | 13 +- bsp/lm3s8962/Libraries/driverlib/fpu.c | 284 + bsp/lm3s8962/Libraries/driverlib/fpu.h | 97 + bsp/lm3s8962/Libraries/driverlib/gpio.c | 877 +- bsp/lm3s8962/Libraries/driverlib/gpio.h | 640 +- bsp/lm3s8962/Libraries/driverlib/hibernate.c | 678 +- bsp/lm3s8962/Libraries/driverlib/hibernate.h | 48 +- bsp/lm3s8962/Libraries/driverlib/i2c.c | 660 +- bsp/lm3s8962/Libraries/driverlib/i2c.h | 33 +- bsp/lm3s8962/Libraries/driverlib/i2s.c | 304 +- bsp/lm3s8962/Libraries/driverlib/i2s.h | 4 +- bsp/lm3s8962/Libraries/driverlib/interrupt.c | 196 +- bsp/lm3s8962/Libraries/driverlib/interrupt.h | 4 +- bsp/lm3s8962/Libraries/driverlib/lpc.c | 1533 + bsp/lm3s8962/Libraries/driverlib/lpc.h | 470 + bsp/lm3s8962/Libraries/driverlib/mpu.c | 67 +- bsp/lm3s8962/Libraries/driverlib/mpu.h | 4 +- bsp/lm3s8962/Libraries/driverlib/peci.c | 971 + bsp/lm3s8962/Libraries/driverlib/peci.h | 226 + bsp/lm3s8962/Libraries/driverlib/pin_map.h | 65430 ++++++++++++---- bsp/lm3s8962/Libraries/driverlib/pwm.c | 648 +- bsp/lm3s8962/Libraries/driverlib/pwm.h | 4 +- bsp/lm3s8962/Libraries/driverlib/qei.c | 118 +- bsp/lm3s8962/Libraries/driverlib/qei.h | 4 +- bsp/lm3s8962/Libraries/driverlib/rom.h | 3910 +- bsp/lm3s8962/Libraries/driverlib/rom_map.h | 1484 +- .../Libraries/driverlib/rvmdk/driverlib.lib | Bin 1759182 -> 0 bytes bsp/lm3s8962/Libraries/driverlib/ssi.c | 265 +- bsp/lm3s8962/Libraries/driverlib/ssi.h | 15 +- bsp/lm3s8962/Libraries/driverlib/sysctl.c | 1373 +- bsp/lm3s8962/Libraries/driverlib/sysctl.h | 181 +- bsp/lm3s8962/Libraries/driverlib/sysexc.c | 241 + bsp/lm3s8962/Libraries/driverlib/sysexc.h | 74 + bsp/lm3s8962/Libraries/driverlib/systick.c | 47 +- bsp/lm3s8962/Libraries/driverlib/systick.h | 4 +- bsp/lm3s8962/Libraries/driverlib/timer.c | 598 +- bsp/lm3s8962/Libraries/driverlib/timer.h | 100 +- bsp/lm3s8962/Libraries/driverlib/uart.c | 582 +- bsp/lm3s8962/Libraries/driverlib/uart.h | 21 +- bsp/lm3s8962/Libraries/driverlib/udma.c | 813 +- bsp/lm3s8962/Libraries/driverlib/udma.h | 435 +- bsp/lm3s8962/Libraries/driverlib/usb.c | 685 +- bsp/lm3s8962/Libraries/driverlib/usb.h | 12 +- bsp/lm3s8962/Libraries/driverlib/watchdog.c | 137 +- bsp/lm3s8962/Libraries/driverlib/watchdog.h | 13 +- bsp/lm3s8962/Libraries/inc/asmdefs.h | 4 +- bsp/lm3s8962/Libraries/inc/cr_project.xml | 26 - bsp/lm3s8962/Libraries/inc/hw_adc.h | 188 +- bsp/lm3s8962/Libraries/inc/hw_can.h | 4 +- bsp/lm3s8962/Libraries/inc/hw_comp.h | 18 +- bsp/lm3s8962/Libraries/inc/hw_eeprom.h | 206 + bsp/lm3s8962/Libraries/inc/hw_epi.h | 28 +- bsp/lm3s8962/Libraries/inc/hw_ethernet.h | 13 +- bsp/lm3s8962/Libraries/inc/hw_fan.h | 636 + bsp/lm3s8962/Libraries/inc/hw_flash.h | 135 +- bsp/lm3s8962/Libraries/inc/hw_gpio.h | 461 +- bsp/lm3s8962/Libraries/inc/hw_hibernate.h | 34 +- bsp/lm3s8962/Libraries/inc/hw_i2c.h | 62 +- bsp/lm3s8962/Libraries/inc/hw_i2s.h | 4 +- bsp/lm3s8962/Libraries/inc/hw_ints.h | 77 +- bsp/lm3s8962/Libraries/inc/hw_lpc.h | 974 + bsp/lm3s8962/Libraries/inc/hw_memmap.h | 43 +- bsp/lm3s8962/Libraries/inc/hw_nvic.h | 1704 +- bsp/lm3s8962/Libraries/inc/hw_peci.h | 375 + bsp/lm3s8962/Libraries/inc/hw_pwm.h | 33 +- bsp/lm3s8962/Libraries/inc/hw_qei.h | 4 +- bsp/lm3s8962/Libraries/inc/hw_ssi.h | 16 +- bsp/lm3s8962/Libraries/inc/hw_sysctl.h | 2018 +- bsp/lm3s8962/Libraries/inc/hw_sysexc.h | 89 + bsp/lm3s8962/Libraries/inc/hw_timer.h | 276 +- bsp/lm3s8962/Libraries/inc/hw_types.h | 28 +- bsp/lm3s8962/Libraries/inc/hw_uart.h | 62 +- bsp/lm3s8962/Libraries/inc/hw_udma.h | 132 +- bsp/lm3s8962/Libraries/inc/hw_usb.h | 23 +- bsp/lm3s8962/Libraries/inc/hw_watchdog.h | 5 +- bsp/lm3s8962/Libraries/inc/inc.sgxx | Bin 1184 -> 0 bytes bsp/lm3s8962/Libraries/inc/lm3s8962.h | 5034 -- bsp/lm3s8962/project.Uv2 | 7 +- bsp/lm3s8962/rtconfig.py | 3 + bsp/lm4f232/Libraries/SConscript | 7 +- bsp/lm4f232/Libraries/driverlib/Makefile | 35 - .../driverlib/Makefile.driverlib-cm4f | 106 - bsp/lm4f232/Libraries/driverlib/adc.c | 138 +- bsp/lm4f232/Libraries/driverlib/adc.h | 2 +- bsp/lm4f232/Libraries/driverlib/can.c | 166 +- bsp/lm4f232/Libraries/driverlib/can.h | 2 +- bsp/lm4f232/Libraries/driverlib/comp.c | 14 +- bsp/lm4f232/Libraries/driverlib/comp.h | 2 +- bsp/lm4f232/Libraries/driverlib/cpu.c | 2 +- bsp/lm4f232/Libraries/driverlib/cpu.h | 2 +- .../Libraries/driverlib/cr_driverlib-cm4f.xml | 71 - bsp/lm4f232/Libraries/driverlib/debug.h | 2 +- .../Libraries/driverlib/driverlib-cm4f.ewp | 857 - .../Libraries/driverlib/driverlib-cm4f.sgxx | Bin 3495 -> 0 bytes .../Libraries/driverlib/driverlib-cm4f.uvopt | 636 - .../Libraries/driverlib/driverlib-cm4f.uvproj | 550 - bsp/lm4f232/Libraries/driverlib/eeprom.c | 51 +- bsp/lm4f232/Libraries/driverlib/eeprom.h | 2 +- bsp/lm4f232/Libraries/driverlib/epi.c | 59 +- bsp/lm4f232/Libraries/driverlib/epi.h | 2 +- bsp/lm4f232/Libraries/driverlib/ethernet.c | 142 +- bsp/lm4f232/Libraries/driverlib/ethernet.h | 2 +- bsp/lm4f232/Libraries/driverlib/fan.c | 17 +- bsp/lm4f232/Libraries/driverlib/fan.h | 2 +- bsp/lm4f232/Libraries/driverlib/flash.c | 95 +- bsp/lm4f232/Libraries/driverlib/flash.h | 2 +- bsp/lm4f232/Libraries/driverlib/fpu.c | 12 +- bsp/lm4f232/Libraries/driverlib/fpu.h | 2 +- bsp/lm4f232/Libraries/driverlib/gpio.c | 169 +- bsp/lm4f232/Libraries/driverlib/gpio.h | 2 +- bsp/lm4f232/Libraries/driverlib/hibernate.c | 228 +- bsp/lm4f232/Libraries/driverlib/hibernate.h | 2 +- bsp/lm4f232/Libraries/driverlib/i2c.c | 161 +- bsp/lm4f232/Libraries/driverlib/i2c.h | 2 +- bsp/lm4f232/Libraries/driverlib/i2s.c | 94 +- bsp/lm4f232/Libraries/driverlib/i2s.h | 2 +- bsp/lm4f232/Libraries/driverlib/interrupt.c | 71 +- bsp/lm4f232/Libraries/driverlib/interrupt.h | 2 +- bsp/lm4f232/Libraries/driverlib/lpc.c | 107 +- bsp/lm4f232/Libraries/driverlib/lpc.h | 2 +- bsp/lm4f232/Libraries/driverlib/mpu.c | 50 +- bsp/lm4f232/Libraries/driverlib/mpu.h | 2 +- bsp/lm4f232/Libraries/driverlib/peci.c | 58 +- bsp/lm4f232/Libraries/driverlib/peci.h | 2 +- bsp/lm4f232/Libraries/driverlib/pin_map.h | 2 +- bsp/lm4f232/Libraries/driverlib/pwm.c | 340 +- bsp/lm4f232/Libraries/driverlib/pwm.h | 2 +- bsp/lm4f232/Libraries/driverlib/qei.c | 110 +- bsp/lm4f232/Libraries/driverlib/qei.h | 2 +- bsp/lm4f232/Libraries/driverlib/readme.txt | 2 +- bsp/lm4f232/Libraries/driverlib/rom.h | 2 +- bsp/lm4f232/Libraries/driverlib/rom_map.h | 2 +- bsp/lm4f232/Libraries/driverlib/ssi.c | 70 +- bsp/lm4f232/Libraries/driverlib/ssi.h | 2 +- bsp/lm4f232/Libraries/driverlib/sysctl.c | 292 +- bsp/lm4f232/Libraries/driverlib/sysctl.h | 2 +- bsp/lm4f232/Libraries/driverlib/sysexc.c | 22 +- bsp/lm4f232/Libraries/driverlib/sysexc.h | 2 +- bsp/lm4f232/Libraries/driverlib/systick.c | 43 +- bsp/lm4f232/Libraries/driverlib/systick.h | 2 +- bsp/lm4f232/Libraries/driverlib/timer.c | 127 +- bsp/lm4f232/Libraries/driverlib/timer.h | 2 +- bsp/lm4f232/Libraries/driverlib/uart.c | 159 +- bsp/lm4f232/Libraries/driverlib/uart.h | 2 +- bsp/lm4f232/Libraries/driverlib/udma.c | 131 +- bsp/lm4f232/Libraries/driverlib/udma.h | 2 +- bsp/lm4f232/Libraries/driverlib/usb.c | 442 +- bsp/lm4f232/Libraries/driverlib/usb.h | 2 +- bsp/lm4f232/Libraries/driverlib/watchdog.c | 91 +- bsp/lm4f232/Libraries/driverlib/watchdog.h | 2 +- bsp/lm4f232/Libraries/inc/asmdefs.h | 2 +- bsp/lm4f232/Libraries/inc/cr_project.xml | 27 - bsp/lm4f232/Libraries/inc/hw_adc.h | 2 +- bsp/lm4f232/Libraries/inc/hw_can.h | 2 +- bsp/lm4f232/Libraries/inc/hw_comp.h | 2 +- bsp/lm4f232/Libraries/inc/hw_eeprom.h | 2 +- bsp/lm4f232/Libraries/inc/hw_epi.h | 2 +- bsp/lm4f232/Libraries/inc/hw_ethernet.h | 2 +- bsp/lm4f232/Libraries/inc/hw_fan.h | 2 +- bsp/lm4f232/Libraries/inc/hw_flash.h | 2 +- bsp/lm4f232/Libraries/inc/hw_gpio.h | 2 +- bsp/lm4f232/Libraries/inc/hw_hibernate.h | 2 +- bsp/lm4f232/Libraries/inc/hw_i2c.h | 2 +- bsp/lm4f232/Libraries/inc/hw_i2s.h | 2 +- bsp/lm4f232/Libraries/inc/hw_ints.h | 2 +- bsp/lm4f232/Libraries/inc/hw_lpc.h | 2 +- bsp/lm4f232/Libraries/inc/hw_memmap.h | 2 +- bsp/lm4f232/Libraries/inc/hw_nvic.h | 2 +- bsp/lm4f232/Libraries/inc/hw_peci.h | 2 +- bsp/lm4f232/Libraries/inc/hw_pwm.h | 2 +- bsp/lm4f232/Libraries/inc/hw_qei.h | 2 +- bsp/lm4f232/Libraries/inc/hw_ssi.h | 2 +- bsp/lm4f232/Libraries/inc/hw_sysctl.h | 2 +- bsp/lm4f232/Libraries/inc/hw_sysexc.h | 2 +- bsp/lm4f232/Libraries/inc/hw_timer.h | 2 +- bsp/lm4f232/Libraries/inc/hw_types.h | 2 +- bsp/lm4f232/Libraries/inc/hw_uart.h | 2 +- bsp/lm4f232/Libraries/inc/hw_udma.h | 2 +- bsp/lm4f232/Libraries/inc/hw_usb.h | 2 +- bsp/lm4f232/Libraries/inc/hw_watchdog.h | 2 +- bsp/lm4f232/Libraries/inc/lm4f232h5qd.h | 12986 --- bsp/lm4f232/project.uvproj | 50 +- bsp/lm4f232/rtconfig.py | 3 + bsp/lm4f232/template.uvproj | 4 +- 203 files changed, 77918 insertions(+), 41464 deletions(-) create mode 100644 bsp/lm3s8962/Libraries/driverlib/eeprom.c create mode 100644 bsp/lm3s8962/Libraries/driverlib/eeprom.h create mode 100644 bsp/lm3s8962/Libraries/driverlib/fan.c create mode 100644 bsp/lm3s8962/Libraries/driverlib/fan.h create mode 100644 bsp/lm3s8962/Libraries/driverlib/fpu.c create mode 100644 bsp/lm3s8962/Libraries/driverlib/fpu.h create mode 100644 bsp/lm3s8962/Libraries/driverlib/lpc.c create mode 100644 bsp/lm3s8962/Libraries/driverlib/lpc.h create mode 100644 bsp/lm3s8962/Libraries/driverlib/peci.c create mode 100644 bsp/lm3s8962/Libraries/driverlib/peci.h delete mode 100644 bsp/lm3s8962/Libraries/driverlib/rvmdk/driverlib.lib create mode 100644 bsp/lm3s8962/Libraries/driverlib/sysexc.c create mode 100644 bsp/lm3s8962/Libraries/driverlib/sysexc.h delete mode 100644 bsp/lm3s8962/Libraries/inc/cr_project.xml create mode 100644 bsp/lm3s8962/Libraries/inc/hw_eeprom.h create mode 100644 bsp/lm3s8962/Libraries/inc/hw_fan.h create mode 100644 bsp/lm3s8962/Libraries/inc/hw_lpc.h create mode 100644 bsp/lm3s8962/Libraries/inc/hw_peci.h create mode 100644 bsp/lm3s8962/Libraries/inc/hw_sysexc.h delete mode 100644 bsp/lm3s8962/Libraries/inc/inc.sgxx delete mode 100644 bsp/lm3s8962/Libraries/inc/lm3s8962.h delete mode 100644 bsp/lm4f232/Libraries/driverlib/Makefile delete mode 100644 bsp/lm4f232/Libraries/driverlib/Makefile.driverlib-cm4f delete mode 100644 bsp/lm4f232/Libraries/driverlib/cr_driverlib-cm4f.xml delete mode 100644 bsp/lm4f232/Libraries/driverlib/driverlib-cm4f.ewp delete mode 100644 bsp/lm4f232/Libraries/driverlib/driverlib-cm4f.sgxx delete mode 100644 bsp/lm4f232/Libraries/driverlib/driverlib-cm4f.uvopt delete mode 100644 bsp/lm4f232/Libraries/driverlib/driverlib-cm4f.uvproj delete mode 100644 bsp/lm4f232/Libraries/inc/cr_project.xml delete mode 100644 bsp/lm4f232/Libraries/inc/lm4f232h5qd.h diff --git a/bsp/lm3s8962/Libraries/SConscript b/bsp/lm3s8962/Libraries/SConscript index ebf7b660c1..784d61658a 100644 --- a/bsp/lm3s8962/Libraries/SConscript +++ b/bsp/lm3s8962/Libraries/SConscript @@ -6,9 +6,13 @@ from building import * cwd = GetCurrentDir() src = Glob('driverlib/*.c') +# cortex-m3 no FPU. +if rtconfig.PART_TYPE.startswith('PART_LM4F') != True: + SrcRemove(src, 'fpu.c') + # add for startup script if rtconfig.CROSS_TOOL == 'gcc': - src += ['startup/gcc/startup_LPC17xx.s'] + src += ['startup/gcc/start_gcc.s'] elif rtconfig.CROSS_TOOL == 'keil': src += ['startup/arm/start_rvds.S'] elif rtconfig.CROSS_TOOL == 'iar': @@ -16,6 +20,7 @@ elif rtconfig.CROSS_TOOL == 'iar': CPPPATH = [cwd] -group = DefineGroup('Libraries', src, depend = [''], CPPPATH = CPPPATH) +CPPDEFINES = [rtconfig.PART_TYPE] +group = DefineGroup('Libraries', src, depend = [''], CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES) Return('group') diff --git a/bsp/lm3s8962/Libraries/driverlib/adc.c b/bsp/lm3s8962/Libraries/driverlib/adc.c index d0729a8636..c306389a5b 100644 --- a/bsp/lm3s8962/Libraries/driverlib/adc.c +++ b/bsp/lm3s8962/Libraries/driverlib/adc.c @@ -2,7 +2,7 @@ // // adc.c - Driver for the ADC. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -33,6 +33,7 @@ #include "inc/hw_ints.h" #include "inc/hw_memmap.h" #include "inc/hw_types.h" +#include "inc/hw_sysctl.h" #include "driverlib/adc.h" #include "driverlib/debug.h" #include "driverlib/interrupt.h" @@ -46,6 +47,7 @@ #define ADC_SEQ (ADC_O_SSMUX0) #define ADC_SEQ_STEP (ADC_O_SSMUX1 - ADC_O_SSMUX0) #define ADC_SSMUX (ADC_O_SSMUX0 - ADC_O_SSMUX0) +#define ADC_SSEMUX (ADC_O_SSEMUX0 - ADC_O_SSMUX0) #define ADC_SSCTL (ADC_O_SSCTL0 - ADC_O_SSMUX0) #define ADC_SSFIFO (ADC_O_SSFIFO0 - ADC_O_SSMUX0) #define ADC_SSFSTAT (ADC_O_SSFSTAT0 - ADC_O_SSMUX0) @@ -70,10 +72,10 @@ static unsigned char g_pucOversampleFactor[3]; //! ADC sample sequence interrupt occurs. //! //! This function sets the handler to be called when a sample sequence -//! interrupt occurs. This will enable the global interrupt in the interrupt -//! controller; the sequence interrupt must be enabled with ADCIntEnable(). It -//! is the interrupt handler's responsibility to clear the interrupt source via -//! ADCIntClear(). +//! interrupt occurs. This function enables the global interrupt in the +//! interrupt controller; the sequence interrupt must be enabled with +//! ADCIntEnable(). It is the interrupt handler's responsibility to clear the +//! interrupt source via ADCIntClear(). //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -117,9 +119,9 @@ ADCIntRegister(unsigned long ulBase, unsigned long ulSequenceNum, //! \param ulBase is the base address of the ADC module. //! \param ulSequenceNum is the sample sequence number. //! -//! This function unregisters the interrupt handler. This will disable the -//! global interrupt in the interrupt controller; the sequence interrupt must -//! be disabled via ADCIntDisable(). +//! This function unregisters the interrupt handler. This function disables +//! the global interrupt in the interrupt controller; the sequence interrupt +//! must be disabled via ADCIntDisable(). //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -225,9 +227,9 @@ ADCIntEnable(unsigned long ulBase, unsigned long ulSequenceNum) //! \param bMasked is false if the raw interrupt status is required and true if //! the masked interrupt status is required. //! -//! This returns the interrupt status for the specified sample sequence. -//! Either the raw interrupt status or the status of interrupts that are -//! allowed to reflect to the processor can be returned. +//! This function returns the interrupt status for the specified sample +//! sequence. Either the raw interrupt status or the status of interrupts that +//! are allowed to reflect to the processor can be returned. //! //! \return The current raw or masked interrupt status. // @@ -257,7 +259,7 @@ ADCIntStatus(unsigned long ulBase, unsigned long ulSequenceNum, ulTemp = HWREG(ulBase + ADC_O_RIS) & (0x10000 | (1 << ulSequenceNum)); // - // If the digital comparator status bit is set, reflect it to the + // If the digital comparator status bit is set, reflect it to the // appropriate sequence bit. // if(ulTemp & 0x10000) @@ -281,17 +283,17 @@ ADCIntStatus(unsigned long ulBase, unsigned long ulSequenceNum, //! \param ulSequenceNum is the sample sequence number. //! //! The specified sample sequence interrupt is cleared, so that it no longer -//! asserts. This must be done in the interrupt handler to keep it from being -//! called again immediately upon exit. +//! asserts. This function must be called in the interrupt handler to keep +//! the interrupt from being triggered again immediately upon exit. //! -//! \note Since there is a write buffer in the Cortex-M3 processor, it may take -//! several clock cycles before the interrupt source is actually cleared. +//! \note Because there is a write buffer in the Cortex-M processor, it may +//! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid //! returning from the interrupt handler before the interrupt source is //! actually cleared. Failure to do so may result in the interrupt handler -//! being immediately reentered (since NVIC still sees the interrupt source -//! asserted). +//! being immediately reentered (because the interrupt controller still sees +//! the interrupt source asserted). //! //! \return None. // @@ -379,10 +381,10 @@ ADCSequenceDisable(unsigned long ulBase, unsigned long ulSequenceNum) //! respect to the other sample sequences. //! //! This function configures the initiation criteria for a sample sequence. -//! Valid sample sequences range from zero to three; sequence zero will capture -//! up to eight samples, sequences one and two will capture up to four samples, -//! and sequence three will capture a single sample. The trigger condition and -//! priority (with respect to other sample sequence execution) is set. +//! Valid sample sequencers range from zero to three; sequencer zero captures +//! up to eight samples, sequencers one and two capture up to four samples, +//! and sequencer three captures a single sample. The trigger condition and +//! priority (with respect to other sample sequencer execution) are set. //! //! The \e ulTrigger parameter can take on the following values: //! @@ -395,7 +397,9 @@ ADCSequenceDisable(unsigned long ulBase, unsigned long ulSequenceNum) //! - \b ADC_TRIGGER_COMP2 - A trigger generated by the third analog //! comparator; configured with ComparatorConfigure(). //! - \b ADC_TRIGGER_EXTERNAL - A trigger generated by an input from the Port -//! B4 pin. +//! B4 pin. Note that some microcontrollers can +//! select from any GPIO using the +//! GPIOADCTriggerEnable() function. //! - \b ADC_TRIGGER_TIMER - A trigger generated by a timer; configured with //! TimerControlTrigger(). //! - \b ADC_TRIGGER_PWM0 - A trigger generated by the first PWM generator; @@ -472,42 +476,40 @@ ADCSequenceConfigure(unsigned long ulBase, unsigned long ulSequenceNum, //! \param ulSequenceNum is the sample sequence number. //! \param ulStep is the step to be configured. //! \param ulConfig is the configuration of this step; must be a logical OR of -//! \b ADC_CTL_TS, \b ADC_CTL_IE, \b ADC_CTL_END, \b ADC_CTL_D, and one of the -//! input channel selects (\b ADC_CTL_CH0 through \b ADC_CTL_CH15). For parts -//! with the digital comparator feature, the follow values may also be OR'd -//! into the \e ulConfig value to enable the digital comparater feature: -//! \b ADC_CTL_CE and one of the comparater selects (\b ADC_CTL_CMP0 through -//! \b ADC_CTL_CMP7). +//! \b ADC_CTL_TS, \b ADC_CTL_IE, \b ADC_CTL_END, \b ADC_CTL_D, one of the +//! input channel selects (\b ADC_CTL_CH0 through \b ADC_CTL_CH23), and one of +//! the digital comparator selects (\b ADC_CTL_CMP0 through \b ADC_CTL_CMP7). //! -//! This function will set the configuration of the ADC for one step of a -//! sample sequence. The ADC can be configured for single-ended or -//! differential operation (the \b ADC_CTL_D bit selects differential -//! operation when set), the channel to be sampled can be chosen (the -//! \b ADC_CTL_CH0 through \b ADC_CTL_CH15 values), and the internal -//! temperature sensor can be selected (the \b ADC_CTL_TS bit). Additionally, -//! this step can be defined as the last in the sequence (the \b ADC_CTL_END -//! bit) and it can be configured to cause an interrupt when the step is -//! complete (the \b ADC_CTL_IE bit). If the digital comparators are present -//! on the device, this step may also be configured send the ADC sample to -//! the selected comparator (the \b ADC_CTL_CMP0 through \b ADC_CTL_CMP7 -//! values) by using the \b ADC_CTL_CE bit. The configuration is used by the -//! ADC at the appropriate time when the trigger for this sequence occurs. +//! This function configures the ADC for one step of a sample sequence. The +//! ADC can be configured for single-ended or differential operation +//! (the \b ADC_CTL_D bit selects differential operation when set), the +//! channel to be sampled can be chosen (the \b ADC_CTL_CH0 through +//! \b ADC_CTL_CH23 values), and the internal temperature sensor can be +//! selected (the \b ADC_CTL_TS bit). Additionally, this step can be defined +//! as the last in the sequence (the \b ADC_CTL_END bit) and it can be +//! configured to cause an interrupt when the step is complete (the +//! \b ADC_CTL_IE bit). If the digital comparators are present on the device, +//! this step may also be configured to send the ADC sample to the selected +//! comparator using \b ADC_CTL_CMP0 through \b ADC_CTL_CMP7. The configuration +//! is used by the ADC at the appropriate time when the trigger for +//! this sequence occurs. //! //! \note If the Digitial Comparator is present and enabled using the -//! \b ADC_CTL_CE bit, the ADC sample will NOT be written into the ADC -//! sequence data FIFO. +//! \b ADC_CTL_CMP0 through \b ADC_CTL_CMP7 selects, the ADC sample is NOT +//! written into the ADC sequence data FIFO. //! //! The \e ulStep parameter determines the order in which the samples are //! captured by the ADC when the trigger occurs. It can range from zero to -//! seven for the first sample sequence, from zero to three for the second and -//! third sample sequence, and can only be zero for the fourth sample sequence. +//! seven for the first sample sequencer, from zero to three for the second and +//! third sample sequencer, and can only be zero for the fourth sample +//! sequencer. //! //! Differential mode only works with adjacent channel pairs (for example, 0 //! and 1). The channel select must be the number of the channel pair to //! sample (for example, \b ADC_CTL_CH0 for 0 and 1, or \b ADC_CTL_CH1 for 2 -//! and 3) or undefined results will be returned by the ADC. Additionally, if +//! and 3) or undefined results are returned by the ADC. Additionally, if //! differential mode is selected when the temperature sensor is being sampled, -//! undefined results will be returned by the ADC. +//! undefined results are returned by the ADC. //! //! It is the responsibility of the caller to ensure that a valid configuration //! is specified; this function does not check the validity of the specified @@ -549,6 +551,13 @@ ADCSequenceStepConfigure(unsigned long ulBase, unsigned long ulSequenceNum, ~(0x0000000f << ulStep)) | ((ulConfig & 0x0f) << ulStep)); + // + // Set the upper bits of the analog mux value for this step. + // + HWREG(ulBase + ADC_SSEMUX) = ((HWREG(ulBase + ADC_SSEMUX) & + ~(0x0000000f << ulStep)) | + (((ulConfig & 0xf00) >> 8) << ulStep)); + // // Set the control value for this step. // @@ -595,9 +604,9 @@ ADCSequenceStepConfigure(unsigned long ulBase, unsigned long ulSequenceNum, //! \param ulBase is the base address of the ADC module. //! \param ulSequenceNum is the sample sequence number. //! -//! This determines if a sample sequence overflow has occurred. This will -//! happen if the captured samples are not read from the FIFO before the next -//! trigger occurs. +//! This function determines if a sample sequence overflow has occurred. +//! Overflow happens if the captured samples are not read from the FIFO before +//! the next trigger occurs. //! //! \return Returns zero if there was not an overflow, and non-zero if there //! was. @@ -625,9 +634,9 @@ ADCSequenceOverflow(unsigned long ulBase, unsigned long ulSequenceNum) //! \param ulBase is the base address of the ADC module. //! \param ulSequenceNum is the sample sequence number. //! -//! This will clear an overflow condition on one of the sample sequences. The -//! overflow condition must be cleared in order to detect a subsequent overflow -//! condition (it otherwise causes no harm). +//! This function clears an overflow condition on one of the sample sequences. +//! The overflow condition must be cleared in order to detect a subsequent +//! overflow condition (it otherwise causes no harm). //! //! \return None. // @@ -654,8 +663,8 @@ ADCSequenceOverflowClear(unsigned long ulBase, unsigned long ulSequenceNum) //! \param ulBase is the base address of the ADC module. //! \param ulSequenceNum is the sample sequence number. //! -//! This determines if a sample sequence underflow has occurred. This will -//! happen if too many samples are read from the FIFO. +//! This function determines if a sample sequence underflow has occurred. +//! Underflow happens if too many samples are read from the FIFO. //! //! \return Returns zero if there was not an underflow, and non-zero if there //! was. @@ -683,8 +692,8 @@ ADCSequenceUnderflow(unsigned long ulBase, unsigned long ulSequenceNum) //! \param ulBase is the base address of the ADC module. //! \param ulSequenceNum is the sample sequence number. //! -//! This will clear an underflow condition on one of the sample sequences. The -//! underflow condition must be cleared in order to detect a subsequent +//! This function clears an underflow condition on one of the sample sequencers. +//! The underflow condition must be cleared in order to detect a subsequent //! underflow condition (it otherwise causes no harm). //! //! \return None. @@ -713,12 +722,12 @@ ADCSequenceUnderflowClear(unsigned long ulBase, unsigned long ulSequenceNum) //! \param ulSequenceNum is the sample sequence number. //! \param pulBuffer is the address where the data is stored. //! -//! This function copies data from the specified sample sequence output FIFO to -//! a memory resident buffer. The number of samples available in the hardware -//! FIFO are copied into the buffer, which is assumed to be large enough to -//! hold that many samples. This will only return the samples that are -//! presently available, which may not be the entire sample sequence if it is -//! in the process of being executed. +//! This function copies data from the specified sample sequencer output FIFO +//! to a memory resident buffer. The number of samples available in the +//! hardware FIFO are copied into the buffer, which is assumed to be large +//! enough to hold that many samples. This function only returns the samples +//! that are presently available, which may not be the entire sample sequence +//! if it is in the process of being executed. //! //! \return Returns the number of samples copied to the buffer. // @@ -794,8 +803,8 @@ ADCProcessorTrigger(unsigned long ulBase, unsigned long ulSequenceNum) // // Generate a processor trigger for this sample sequence. // - HWREG(ulBase + ADC_O_PSSI) = ((ulSequenceNum & 0xffff0000) | - (1 << (ulSequenceNum & 0xf))); + HWREG(ulBase + ADC_O_PSSI) |= ((ulSequenceNum & 0xffff0000) | + (1 << (ulSequenceNum & 0xf))); } //***************************************************************************** @@ -905,6 +914,13 @@ ADCSoftwareOversampleStepConfigure(unsigned long ulBase, ~(0x0000000f << ulStep)) | ((ulConfig & 0x0f) << ulStep)); + // + // Set the upper bits of the analog mux value for this step. + // + HWREG(ulBase + ADC_SSEMUX) = ((HWREG(ulBase + ADC_SSEMUX) & + ~(0x0000000f << ulStep)) | + (((ulConfig & 0xf00) >> 8) << ulStep)); + // // Set the control value for this step. // @@ -936,9 +952,9 @@ ADCSoftwareOversampleStepConfigure(unsigned long ulBase, //! This function copies data from the specified sample sequence output FIFO to //! a memory resident buffer with software oversampling applied. The requested //! number of samples are copied into the data buffer; if there are not enough -//! samples in the hardware FIFO to satisfy this many oversampled data items -//! then incorrect results will be returned. It is the caller's responsibility -//! to read only the samples that are available and wait until enough data is +//! samples in the hardware FIFO to satisfy this many oversampled data items, +//! then incorrect results are returned. It is the caller's responsibility to +//! read only the samples that are available and wait until enough data is //! available, for example as a result of receiving an interrupt. //! //! \return None. @@ -999,21 +1015,18 @@ ADCSoftwareOversampleDataGet(unsigned long ulBase, unsigned long ulSequenceNum, //! be used to provide better resolution on the sampled data. Oversampling is //! accomplished by averaging multiple samples from the same analog input. Six //! different oversampling rates are supported; 2x, 4x, 8x, 16x, 32x, and 64x. -//! Specifying an oversampling factor of zero will disable hardware +//! Specifying an oversampling factor of zero disables hardware //! oversampling. //! //! Hardware oversampling applies uniformly to all sample sequencers. It does //! not reduce the depth of the sample sequencers like the software -//! oversampling APIs; each sample written into the sample sequence FIFO is a +//! oversampling APIs; each sample written into the sample sequencer FIFO is a //! fully oversampled analog input reading. //! //! Enabling hardware averaging increases the precision of the ADC at the cost //! of throughput. For example, enabling 4x oversampling reduces the //! throughput of a 250 Ksps ADC to 62.5 Ksps. //! -//! \note Hardware oversampling is available beginning with Rev C0 of the -//! Stellaris microcontroller. -//! //! \return None. // //***************************************************************************** @@ -1051,7 +1064,7 @@ ADCHardwareOversampleConfigure(unsigned long ulBase, unsigned long ulFactor) //! \param ulComp is the index of the comparator to configure. //! \param ulConfig is the configuration of the comparator. //! -//! This function will configure a comparator. The \e ulConfig parameter is +//! This function configures a comparator. The \e ulConfig parameter is //! the result of a logical OR operation between the \b ADC_COMP_TRIG_xxx, and //! \b ADC_COMP_INT_xxx values. //! @@ -1178,7 +1191,7 @@ ADCComparatorRegionSet(unsigned long ulBase, unsigned long ulComp, //! \param bInterrupt is the flag to indicate reset of Interrupt conditions. //! //! Because the digital comparator uses current and previous ADC values, this -//! function is provide to allow the comparator to be reset to its initial +//! function allows the comparator to be reset to its initial //! value to prevent stale data from being used when a sequence is enabled. //! //! \return None. @@ -1272,8 +1285,8 @@ ADCComparatorIntEnable(unsigned long ulBase, unsigned long ulSequenceNum) //! //! \param ulBase is the base address of the ADC module. //! -//! This returns the digitial comparator interrupt status bits. This status -//! is sequence agnostic. +//! This function returns the digitial comparator interrupt status bits. This +//! status is sequence agnostic. //! //! \return The current comparator interrupt status. // @@ -1326,10 +1339,12 @@ ADCComparatorIntClear(unsigned long ulBase, unsigned long ulStatus) //! \param ulRef is the reference to use. //! //! The ADC reference is set as specified by \e ulRef. It must be one of -//! \b ADC_REF_INT or \b ADC_REF_EXT_3V, for internal or external reference. -//! If \b ADC_REF_INT is chosen, then an internal 3V reference is used and -//! no external reference is needed. If \b ADC_REF_EXT_3V is chosen, then a 3V -//! reference must be supplied to the AVREF pin. +//! \b ADC_REF_INT, \b ADC_REF_EXT_3V, or \b ADC_REF_EXT_1V for internal or +//! external reference. If \b ADC_REF_INT is chosen, then an internal 3V +//! reference is used and no external reference is needed. If +//! \b ADC_REF_EXT_3V is chosen, then a 3V reference must be supplied to the +//! AVREF pin. If \b ADC_REF_EXT_1V is chosen, then a 1V external referece +//! must be supplied to the AVREF pin. //! //! \note The ADC reference can only be selected on parts that have an external //! reference. Consult the data sheet for your part to determine if there is @@ -1345,12 +1360,13 @@ ADCReferenceSet(unsigned long ulBase, unsigned long ulRef) // Check the arguments. // ASSERT((ulBase == ADC0_BASE) || (ulBase == ADC1_BASE)); - ASSERT((ulRef == ADC_REF_INT) || (ulRef == ADC_REF_EXT_3V)); + ASSERT((ulRef == ADC_REF_INT) || (ulRef == ADC_REF_EXT_3V) || + (ulRef == ADC_REF_EXT_1V)); // // Set the reference. // - HWREG(ulBase + ADC_O_CTL) = (HWREG(ulBase + ADC_O_CTL) & ~ADC_CTL_VREF) | + HWREG(ulBase + ADC_O_CTL) = (HWREG(ulBase + ADC_O_CTL) & ~ADC_CTL_VREF_M) | ulRef; } @@ -1360,8 +1376,8 @@ ADCReferenceSet(unsigned long ulBase, unsigned long ulRef) //! //! \param ulBase is the base address of the ADC module. //! -//! Returns the value of the ADC reference setting. The returned value will be -//! one of \b ADC_REF_INT or \b ADC_REF_EXT_3V. +//! Returns the value of the ADC reference setting. The returned value is one +//! of \b ADC_REF_INT, \b ADC_REF_EXT_3V, or \b ADC_REF_EXT_1V. //! //! \note The value returned by this function is only meaningful if used on a //! part that is capable of using an external reference. Consult the data @@ -1381,7 +1397,71 @@ ADCReferenceGet(unsigned long ulBase) // // Return the value of the reference. // - return(HWREG(ulBase + ADC_O_CTL) & ADC_CTL_VREF); + return(HWREG(ulBase + ADC_O_CTL) & ADC_CTL_VREF_M); +} + +//***************************************************************************** +// +//! Selects the ADC resolution. +//! +//! \param ulBase is the base address of the ADC module. +//! \param ulResolution is the ADC bit resolution. +//! +//! The ADC resolution is set as specified by \e ulResolution. It must be one +//! of \b ADC_RES_12BIT or \b ADC_RES_10BIT. +//! +//! \note The ADC resolution can only be set on parts that are capable of +//! changing ADC resolution mode. Consult the data sheet for your part to +//! determine if it is capable of operating in more than one resolution mode. +//! +//! \return None. +// +//***************************************************************************** +void +ADCResolutionSet(unsigned long ulBase, unsigned long ulResolution) +{ + // + // Check the arguments. + // + ASSERT((ulBase == ADC0_BASE) || (ulBase == ADC1_BASE)); + ASSERT((ulResolution == ADC_RES_10BIT) || (ulResolution == ADC_RES_12BIT)); + + // + // Set the resolution. + // + HWREG(ulBase + ADC_O_CTL) = (HWREG(ulBase + ADC_O_CTL) & ~ADC_CTL_RES) | + ulResolution; +} + +//***************************************************************************** +// +//! Gets the setting of ADC resolution. +//! +//! \param ulBase is the base address of the ADC module. +//! +//! The ADC resolution is returned as one of \b ADC_RES_12BIT or +//! \b ADC_RES_10BIT. +//! +//! \note The value returned by this function is only meaningful if used on a +//! part that is capable of changing ADC resolution mode. Consult the +//! data sheet for your part to determine if it is capable of operating in +//! more than one resolution mode. +//! +//! \return The current setting of the ADC resolution. +// +//***************************************************************************** +unsigned long +ADCResolutionGet(unsigned long ulBase) +{ + // + // Check the arguments. + // + ASSERT((ulBase == ADC0_BASE) || (ulBase == ADC1_BASE)); + + // + // Get the resolution and return it to the caller. + // + return(HWREG(ulBase + ADC_O_CTL) & ADC_CTL_RES); } //***************************************************************************** diff --git a/bsp/lm3s8962/Libraries/driverlib/adc.h b/bsp/lm3s8962/Libraries/driverlib/adc.h index 4b70cf97d1..ea1a734e50 100644 --- a/bsp/lm3s8962/Libraries/driverlib/adc.h +++ b/bsp/lm3s8962/Libraries/driverlib/adc.h @@ -2,7 +2,7 @@ // // adc.h - ADC headers for using the ADC driver functions. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -80,6 +80,14 @@ extern "C" #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 @@ -173,6 +181,15 @@ extern "C" //***************************************************************************** #define ADC_REF_INT 0x00000000 // Internal reference #define ADC_REF_EXT_3V 0x00000001 // External 3V reference +#define ADC_REF_EXT_1V 0x00000003 // External 1V reference + +//***************************************************************************** +// +// Values that can be passed to ADCResolutionSet as the ulResolution parameter. +// +//***************************************************************************** +#define ADC_RES_10BIT 0x00000000 // 10-bit resolution +#define ADC_RES_12BIT 0x00000010 // 12-bit resolution //***************************************************************************** // @@ -243,6 +260,8 @@ extern void ADCComparatorIntClear(unsigned long ulBase, unsigned long ulStatus); extern void ADCReferenceSet(unsigned long ulBase, unsigned long ulRef); extern unsigned long ADCReferenceGet(unsigned long ulBase); +extern void ADCResolutionSet(unsigned long ulBase, unsigned long ulResolution); +extern unsigned long ADCResolutionGet(unsigned long ulBase); extern void ADCPhaseDelaySet(unsigned long ulBase, unsigned long ulPhase); extern unsigned long ADCPhaseDelayGet(unsigned long ulBase); diff --git a/bsp/lm3s8962/Libraries/driverlib/can.c b/bsp/lm3s8962/Libraries/driverlib/can.c index 6acb1193c7..e0f5f7ee18 100644 --- a/bsp/lm3s8962/Libraries/driverlib/can.c +++ b/bsp/lm3s8962/Libraries/driverlib/can.c @@ -2,7 +2,7 @@ // // can.c - Driver for the CAN module. // -// Copyright (c) 2006-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2006-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -151,8 +151,8 @@ CANBaseValid(unsigned long ulBase) //! //! \param ulBase is the base address of the selected CAN controller //! -//! Given a CAN controller base address, returns the corresponding interrupt -//! number. +//! Given a CAN controller base address, this function returns the +//! corresponding interrupt number. //! //! This function replaces the original CANGetIntNumber() API and performs the //! same actions. A macro is provided in can.h to map the original @@ -233,7 +233,7 @@ CANIntNumberGet(unsigned long ulBase) static unsigned long CANRegRead(unsigned long ulRegAddress) { - volatile int iDelay; + volatile unsigned long ulDelay; unsigned long ulRetVal; unsigned long ulIntNumber; unsigned long ulReenableInts; @@ -271,7 +271,7 @@ CANRegRead(unsigned long ulRegAddress) // // This delay is necessary for the CAN have the correct data on the bus. // - for(iDelay = 0; iDelay < CAN_RW_DELAY; iDelay++) + for(ulDelay = 0; ulDelay < CAN_RW_DELAY; ulDelay++) { } @@ -317,7 +317,7 @@ CANRegRead(unsigned long ulRegAddress) static void CANRegWrite(unsigned long ulRegAddress, unsigned long ulRegValue) { - volatile int iDelay; + volatile unsigned long ulDelay; // // Trigger the initial write to the CAN controller. The value will not make @@ -328,7 +328,7 @@ CANRegWrite(unsigned long ulRegAddress, unsigned long ulRegValue) // // Delay to allow the CAN controller to receive the new data. // - for(iDelay = 0; iDelay < CAN_RW_DELAY; iDelay++) + for(ulDelay = 0; ulDelay < CAN_RW_DELAY; ulDelay++) { } } @@ -360,29 +360,29 @@ CANRegWrite(unsigned long ulRegAddress, unsigned long ulRegValue) // //***************************************************************************** static void -CANDataRegWrite(unsigned char *pucData, unsigned long *pulRegister, int iSize) +CANDataRegWrite(unsigned char *pucData, unsigned long *pulRegister, + unsigned long ulSize) { - int iIdx; - unsigned long ulValue; + unsigned long ulIdx, ulValue; // // Loop always copies 1 or 2 bytes per iteration. // - for(iIdx = 0; iIdx < iSize; ) + for(ulIdx = 0; ulIdx < ulSize; ) { // // Write out the data 16 bits at a time since this is how the registers // are aligned in memory. // - ulValue = pucData[iIdx++]; + ulValue = pucData[ulIdx++]; // // Only write the second byte if needed otherwise it will be zero. // - if(iIdx < iSize) + if(ulIdx < ulSize) { - ulValue |= (pucData[iIdx++] << 8); + ulValue |= (pucData[ulIdx++] << 8); } CANRegWrite((unsigned long)(pulRegister++), ulValue); } @@ -415,15 +415,15 @@ CANDataRegWrite(unsigned char *pucData, unsigned long *pulRegister, int iSize) // //***************************************************************************** static void -CANDataRegRead(unsigned char *pucData, unsigned long *pulRegister, int iSize) +CANDataRegRead(unsigned char *pucData, unsigned long *pulRegister, + unsigned long ulSize) { - int iIdx; - unsigned long ulValue; + unsigned long ulIdx, ulValue; // // Loop always copies 1 or 2 bytes per iteration. // - for(iIdx = 0; iIdx < iSize; ) + for(ulIdx = 0; ulIdx < ulSize; ) { // // Read out the data 16 bits at a time since this is how the registers @@ -434,14 +434,14 @@ CANDataRegRead(unsigned char *pucData, unsigned long *pulRegister, int iSize) // // Store the first byte. // - pucData[iIdx++] = (unsigned char)ulValue; + pucData[ulIdx++] = (unsigned char)ulValue; // // Only read the second byte if needed. // - if(iIdx < iSize) + if(ulIdx < ulSize) { - pucData[iIdx++] = (unsigned char)(ulValue >> 8); + pucData[ulIdx++] = (unsigned char)(ulValue >> 8); } } } @@ -465,7 +465,7 @@ CANDataRegRead(unsigned char *pucData, unsigned long *pulRegister, int iSize) void CANInit(unsigned long ulBase) { - int iMsg; + unsigned long ulMsg; // // Check the arguments. @@ -499,7 +499,7 @@ CANInit(unsigned long ulBase) // // Loop through to program all 32 message objects // - for(iMsg = 1; iMsg <= 32; iMsg++) + for(ulMsg = 1; ulMsg <= 32; ulMsg++) { // // Wait for busy bit to clear @@ -511,7 +511,7 @@ CANInit(unsigned long ulBase) // // Initiate programming the message object // - CANRegWrite(ulBase + CAN_O_IF1CRQ, iMsg); + CANRegWrite(ulBase + CAN_O_IF1CRQ, ulMsg); } // @@ -524,7 +524,7 @@ CANInit(unsigned long ulBase) // // Loop through to program all 32 message objects // - for(iMsg = 1; iMsg <= 32; iMsg++) + for(ulMsg = 1; ulMsg <= 32; ulMsg++) { // // Wait for busy bit to clear. @@ -536,7 +536,7 @@ CANInit(unsigned long ulBase) // // Initiate programming the message object // - CANRegWrite(ulBase + CAN_O_IF1CRQ, iMsg); + CANRegWrite(ulBase + CAN_O_IF1CRQ, ulMsg); } // @@ -552,7 +552,7 @@ CANInit(unsigned long ulBase) //! \param ulBase is the base address of the CAN controller to enable. //! //! Enables the CAN controller for message processing. Once enabled, the -//! controller will automatically transmit any pending frames, and process any +//! controller automatically transmits any pending frames, and processes any //! received frames. The controller can be stopped by calling CANDisable(). //! Prior to calling CANEnable(), CANInit() should have been called to //! initialize the controller and the CAN bus clock should be configured by @@ -583,7 +583,7 @@ CANEnable(unsigned long ulBase) //! \param ulBase is the base address of the CAN controller to disable. //! //! Disables the CAN controller for message processing. When disabled, the -//! controller will no longer automatically process data on the CAN bus. The +//! controller no longer automatically processes data on the CAN bus. The //! controller can be restarted by calling CANEnable(). The state of the CAN //! controller and the message objects in the controller are left as they were //! before this call was made. @@ -614,7 +614,7 @@ CANDisable(unsigned long ulBase) //! \param pClkParms is a pointer to a structure to hold the timing parameters. //! //! This function reads the current configuration of the CAN controller bit -//! clock timing, and stores the resulting information in the structure +//! clock timing and stores the resulting information in the structure //! supplied by the caller. Refer to CANBitTimingSet() for the meaning of the //! values that are returned in the structure pointed to by \e pClkParms. //! @@ -628,7 +628,7 @@ CANDisable(unsigned long ulBase) void CANBitTimingGet(unsigned long ulBase, tCANBitClkParms *pClkParms) { - unsigned int uBitReg; + unsigned long ulBitReg; // // Check the arguments. @@ -639,53 +639,53 @@ CANBitTimingGet(unsigned long ulBase, tCANBitClkParms *pClkParms) // // Read out all the bit timing values from the CAN controller registers. // - uBitReg = CANRegRead(ulBase + CAN_O_BIT); + ulBitReg = CANRegRead(ulBase + CAN_O_BIT); // // Set the phase 2 segment. // - pClkParms->uPhase2Seg = - ((uBitReg & CAN_BIT_TSEG2_M) >> CAN_BIT_TSEG2_S) + 1; + pClkParms->ulPhase2Seg = + ((ulBitReg & CAN_BIT_TSEG2_M) >> CAN_BIT_TSEG2_S) + 1; // // Set the phase 1 segment. // - pClkParms->uSyncPropPhase1Seg = - ((uBitReg & CAN_BIT_TSEG1_M) >> CAN_BIT_TSEG1_S) + 1; + pClkParms->ulSyncPropPhase1Seg = + ((ulBitReg & CAN_BIT_TSEG1_M) >> CAN_BIT_TSEG1_S) + 1; // // Set the synchronous jump width. // - pClkParms->uSJW = ((uBitReg & CAN_BIT_SJW_M) >> CAN_BIT_SJW_S) + 1; + pClkParms->ulSJW = ((ulBitReg & CAN_BIT_SJW_M) >> CAN_BIT_SJW_S) + 1; // // Set the pre-divider for the CAN bus bit clock. // - pClkParms->uQuantumPrescaler = - ((uBitReg & CAN_BIT_BRP_M) | + pClkParms->ulQuantumPrescaler = + ((ulBitReg & CAN_BIT_BRP_M) | ((CANRegRead(ulBase + CAN_O_BRPE) & CAN_BRPE_BRPE_M) << 6)) + 1; } //***************************************************************************** // -//! This function is used to set the CAN bit timing values to a nominal setting -//! based on a desired bit rate. +//! Sets the CAN bit timing values to a nominal setting based on a desired +//! bit rate. //! //! \param ulBase is the base address of the CAN controller. //! \param ulSourceClock is the system clock for the device in Hz. //! \param ulBitRate is the desired bit rate. //! -//! This function will set the CAN bit timing for the bit rate passed in the -//! \e ulBitRate parameter based on the \e ulSourceClock parameter. Since the -//! CAN clock is based off of the system clock the calling function should pass +//! This function sets the CAN bit timing for the bit rate passed in the +//! \e ulBitRate parameter based on the \e ulSourceClock parameter. Because the +//! CAN clock is based off of the system clock, the calling function should pass //! in the source clock rate either by retrieving it from SysCtlClockGet() or //! using a specific value in Hz. The CAN bit timing is calculated assuming a -//! minimal amount of propagation delay, which will work for most cases where +//! minimal amount of propagation delay, which works for most cases where //! the network length is short. If tighter timing requirements or longer //! network lengths are needed, then the CANBitTimingSet() function is //! available for full customization of all of the CAN bit timing values. -//! Since not all bit rates can be matched exactly, the bit rate is set to the -//! value closest to the desired bit rate without being higher than the +//! Because not all bit rates can be matched exactly, the bit rate is set to +//! the value closest to the desired bit rate without being higher than the //! \e ulBitRate value. //! //! \note On some devices the source clock is fixed at 8MHz so the @@ -826,27 +826,27 @@ CANBitRateSet(unsigned long ulBase, unsigned long ulSourceClock, //! Propagation segment, Phase Buffer 1 segment, Phase Buffer 2 segment, and //! the Synchronization Jump Width. The values for Propagation and Phase //! Buffer 1 segments are derived from the combination -//! \e pClkParms->uSyncPropPhase1Seg parameter. Phase Buffer 2 is determined -//! from the \e pClkParms->uPhase2Seg parameter. These two parameters, along -//! with \e pClkParms->uSJW are based in units of bit time quanta. The actual -//! quantum time is determined by the \e pClkParms->uQuantumPrescaler value, +//! \e pClkParms->ulSyncPropPhase1Seg parameter. Phase Buffer 2 is determined +//! from the \e pClkParms->ulPhase2Seg parameter. These two parameters, along +//! with \e pClkParms->ulSJW are based in units of bit time quanta. The actual +//! quantum time is determined by the \e pClkParms->ulQuantumPrescaler value, //! which specifies the divisor for the CAN module clock. //! -//! The total bit time, in quanta, will be the sum of the two Seg parameters, +//! The total bit time, in quanta, is the sum of the two Seg parameters, //! as follows: //! -//! bit_time_q = uSyncPropPhase1Seg + uPhase2Seg + 1 +//! bit_time_q = ulSyncPropPhase1Seg + ulPhase2Seg + 1 //! -//! Note that the Sync_Seg is always one quantum in duration, and will be added +//! Note that the Sync_Seg is always one quantum in duration, and is added //! to derive the correct duration of Prop_Seg and Phase1_Seg. //! //! The equation to determine the actual bit rate is as follows: //! //! CAN Clock / -//! ((\e uSyncPropPhase1Seg + \e uPhase2Seg + 1) * (\e uQuantumPrescaler)) +//! ((\e ulSyncPropPhase1Seg + \e ulPhase2Seg + 1) * (\e ulQuantumPrescaler)) //! -//! This means that with \e uSyncPropPhase1Seg = 4, \e uPhase2Seg = 1, -//! \e uQuantumPrescaler = 2 and an 8 MHz CAN clock, that the bit rate will be +//! Thus with \e ulSyncPropPhase1Seg = 4, \e ulPhase2Seg = 1, +//! \e ulQuantumPrescaler = 2 and an 8 MHz CAN clock, the bit rate is //! (8 MHz) / ((5 + 2 + 1) * 2) or 500 Kbit/sec. //! //! This function replaces the original CANSetBitTiming() API and performs the @@ -859,8 +859,7 @@ CANBitRateSet(unsigned long ulBase, unsigned long ulSourceClock, void CANBitTimingSet(unsigned long ulBase, tCANBitClkParms *pClkParms) { - unsigned int uBitReg; - unsigned int uSavedInit; + unsigned long ulBitReg, ulSavedInit; // // Check the arguments. @@ -871,63 +870,63 @@ CANBitTimingSet(unsigned long ulBase, tCANBitClkParms *pClkParms) // // The phase 1 segment must be in the range from 2 to 16. // - ASSERT((pClkParms->uSyncPropPhase1Seg >= 2) && - (pClkParms->uSyncPropPhase1Seg <= 16)); + ASSERT((pClkParms->ulSyncPropPhase1Seg >= 2) && + (pClkParms->ulSyncPropPhase1Seg <= 16)); // // The phase 2 segment must be in the range from 1 to 8. // - ASSERT((pClkParms->uPhase2Seg >= 1) && (pClkParms->uPhase2Seg <= 8)); + ASSERT((pClkParms->ulPhase2Seg >= 1) && (pClkParms->ulPhase2Seg <= 8)); // // The synchronous jump windows must be in the range from 1 to 4. // - ASSERT((pClkParms->uSJW >= 1) && (pClkParms->uSJW <= 4)); + ASSERT((pClkParms->ulSJW >= 1) && (pClkParms->ulSJW <= 4)); // // The CAN clock pre-divider must be in the range from 1 to 1024. // - ASSERT((pClkParms->uQuantumPrescaler <= 1024) && - (pClkParms->uQuantumPrescaler >= 1)); + ASSERT((pClkParms->ulQuantumPrescaler <= 1024) && + (pClkParms->ulQuantumPrescaler >= 1)); // // To set the bit timing register, the controller must be placed in init // mode (if not already), and also configuration change bit enabled. State // of the init bit should be saved so it can be restored at the end. // - uSavedInit = CANRegRead(ulBase + CAN_O_CTL); - CANRegWrite(ulBase + CAN_O_CTL, uSavedInit | CAN_CTL_INIT | CAN_CTL_CCE); + ulSavedInit = CANRegRead(ulBase + CAN_O_CTL); + CANRegWrite(ulBase + CAN_O_CTL, ulSavedInit | CAN_CTL_INIT | CAN_CTL_CCE); // // Set the bit fields of the bit timing register according to the parms. // - uBitReg = (((pClkParms->uPhase2Seg - 1) << CAN_BIT_TSEG2_S) & - CAN_BIT_TSEG2_M); - uBitReg |= (((pClkParms->uSyncPropPhase1Seg - 1) << CAN_BIT_TSEG1_S) & - CAN_BIT_TSEG1_M); - uBitReg |= ((pClkParms->uSJW - 1) << CAN_BIT_SJW_S) & CAN_BIT_SJW_M; - uBitReg |= (pClkParms->uQuantumPrescaler - 1) & CAN_BIT_BRP_M; - CANRegWrite(ulBase + CAN_O_BIT, uBitReg); + ulBitReg = (((pClkParms->ulPhase2Seg - 1) << CAN_BIT_TSEG2_S) & + CAN_BIT_TSEG2_M); + ulBitReg |= (((pClkParms->ulSyncPropPhase1Seg - 1) << CAN_BIT_TSEG1_S) & + CAN_BIT_TSEG1_M); + ulBitReg |= ((pClkParms->ulSJW - 1) << CAN_BIT_SJW_S) & CAN_BIT_SJW_M; + ulBitReg |= (pClkParms->ulQuantumPrescaler - 1) & CAN_BIT_BRP_M; + CANRegWrite(ulBase + CAN_O_BIT, ulBitReg); // // Set the divider upper bits in the extension register. // CANRegWrite(ulBase + CAN_O_BRPE, - ((pClkParms->uQuantumPrescaler - 1) >> 6) & CAN_BRPE_BRPE_M); + ((pClkParms->ulQuantumPrescaler - 1) >> 6) & CAN_BRPE_BRPE_M); // // Clear the config change bit, and restore the init bit. // - uSavedInit &= ~CAN_CTL_CCE; + ulSavedInit &= ~CAN_CTL_CCE; // // If Init was not set before, then clear it. // - if(uSavedInit & CAN_CTL_INIT) + if(ulSavedInit & CAN_CTL_INIT) { - uSavedInit &= ~CAN_CTL_INIT; + ulSavedInit &= ~CAN_CTL_INIT; } - CANRegWrite(ulBase + CAN_O_CTL, uSavedInit); + CANRegWrite(ulBase + CAN_O_CTL, ulSavedInit); } //***************************************************************************** @@ -988,7 +987,7 @@ CANIntRegister(unsigned long ulBase, void (*pfnHandler)(void)) //! \param ulBase is the base address of the controller. //! //! This function unregisters the previously registered interrupt handler and -//! disables the interrupt on the interrupt controller. +//! disables the interrupt in the interrupt controller. //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -1011,15 +1010,15 @@ CANIntUnregister(unsigned long ulBase) // ulIntNumber = CANIntNumberGet(ulBase); - // - // Register the interrupt handler. - // - IntUnregister(ulIntNumber); - // // Disable the CAN interrupt. // IntDisable(ulIntNumber); + + // + // Register the interrupt handler. + // + IntUnregister(ulIntNumber); } //***************************************************************************** @@ -1029,8 +1028,8 @@ CANIntUnregister(unsigned long ulBase) //! \param ulBase is the base address of the CAN controller. //! \param ulIntFlags is the bit mask of the interrupt sources to be enabled. //! -//! Enables specific interrupt sources of the CAN controller. Only enabled -//! sources will cause a processor interrupt. +//! This function enables specific interrupt sources of the CAN controller. +//! Only enabled sources cause a processor interrupt. //! //! The \e ulIntFlags parameter is the logical OR of any of the following: //! @@ -1044,7 +1043,7 @@ CANIntUnregister(unsigned long ulBase) //! an interrupt, that message object must have interrupts enabled (see //! CANMessageSet()). \b CAN_INT_ERROR will generate an interrupt if the //! controller enters the ``bus off'' condition, or if the error counters reach -//! a limit. \b CAN_INT_STATUS will generate an interrupt under quite a few +//! a limit. \b CAN_INT_STATUS generates an interrupt under quite a few //! status conditions and may provide more interrupts than the application //! needs to handle. When an interrupt occurs, use CANIntStatus() to determine //! the cause. @@ -1107,19 +1106,19 @@ CANIntDisable(unsigned long ulBase, unsigned long ulIntFlags) //! \param ulBase is the base address of the CAN controller. //! \param eIntStsReg indicates which interrupt status register to read //! -//! Returns the value of one of two interrupt status registers. The interrupt -//! status register read is determined by the \e eIntStsReg parameter, which -//! can have one of the following values: +//! This function returns the value of one of two interrupt status registers. +//! The interrupt status register read is determined by the \e eIntStsReg +//! parameter, which can have one of the following values: //! //! - \b CAN_INT_STS_CAUSE - indicates the cause of the interrupt //! - \b CAN_INT_STS_OBJECT - indicates pending interrupts of all message //! objects //! //! \b CAN_INT_STS_CAUSE returns the value of the controller interrupt register -//! and indicates the cause of the interrupt. It will be a value of +//! and indicates the cause of the interrupt. The value returned is //! \b CAN_INT_INTID_STATUS if the cause is a status interrupt. In this case, //! the status register should be read with the CANStatusGet() function. -//! Calling this function to read the status will also clear the status +//! Calling this function to read the status also clears the status //! interrupt. If the value of the interrupt register is in the range 1-32, //! then this indicates the number of the highest priority message object that //! has an interrupt pending. The message object interrupt can be cleared by @@ -1129,9 +1128,9 @@ CANIntDisable(unsigned long ulBase, unsigned long ulIntFlags) //! cleared before returning from the interrupt. //! //! \b CAN_INT_STS_OBJECT returns a bit mask indicating which message objects -//! have pending interrupts. This can be used to discover all of the pending -//! interrupts at once, as opposed to repeatedly reading the interrupt register -//! by using \b CAN_INT_STS_CAUSE. +//! have pending interrupts. This value can be used to discover all of the +//! pending interrupts at once, as opposed to repeatedly reading the interrupt +//! register by using \b CAN_INT_STS_CAUSE. //! //! \return Returns the value of one of the interrupt status registers. // @@ -1185,6 +1184,7 @@ CANIntStatus(unsigned long ulBase, tCANIntStsReg eIntStsReg) break; } } + // // Return the interrupt status value // @@ -1205,21 +1205,21 @@ CANIntStatus(unsigned long ulBase, tCANIntStsReg eIntStsReg) //! - 1-32 - Clears the specified message object interrupt //! //! It is not necessary to use this function to clear an interrupt. This -//! should only be used if the application wants to clear an interrupt source -//! without taking the normal interrupt action. +//! function should only be used if the application wants to clear an interrupt +//! source without taking the normal interrupt action. //! //! Normally, the status interrupt is cleared by reading the controller status //! using CANStatusGet(). A specific message object interrupt is normally //! cleared by reading the message object using CANMessageGet(). //! -//! \note Since there is a write buffer in the Cortex-M3 processor, it may take -//! several clock cycles before the interrupt source is actually cleared. +//! \note Because there is a write buffer in the Cortex-M processor, it may +//! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid //! returning from the interrupt handler before the interrupt source is //! actually cleared. Failure to do so may result in the interrupt handler -//! being immediately reentered (since NVIC still sees the interrupt source -//! asserted). +//! being immediately reentered (because the interrupt controller still sees +//! the interrupt source asserted). //! //! \return None. // @@ -1277,9 +1277,9 @@ CANIntClear(unsigned long ulBase, unsigned long ulIntClr) //! \param ulBase is the base address of the CAN controller. //! \param bAutoRetry enables automatic retransmission. //! -//! Enables or disables automatic retransmission of messages with detected -//! errors. If \e bAutoRetry is \b true, then automatic retransmission is -//! enabled, otherwise it is disabled. +//! This function enables or disables automatic retransmission of messages with +//! detected errors. If \e bAutoRetry is \b true, then automatic retransmission +//! is enabled, otherwise it is disabled. //! //! \return None. // @@ -1326,7 +1326,7 @@ CANRetrySet(unsigned long ulBase, tBoolean bAutoRetry) //! //! \param ulBase is the base address of the CAN controller. //! -//! Reads the current setting for the automatic retransmission in the CAN +//! This function reads the current setting for automatic retransmission in the CAN //! controller and returns it to the caller. //! //! \return Returns \b true if automatic retransmission is enabled, \b false @@ -1365,7 +1365,8 @@ CANRetryGet(unsigned long ulBase) //! \param ulBase is the base address of the CAN controller. //! \param eStatusReg is the status register to read. //! -//! Reads a status register of the CAN controller and returns it to the caller. +//! This function reads a status register of the CAN controller and returns it +//! to the caller. //! The different status registers are: //! //! - \b CAN_STS_CONTROL - the main controller status @@ -1374,9 +1375,9 @@ CANRetryGet(unsigned long ulBase) //! - \b CAN_STS_MSGVAL - bit mask of objects with valid configuration //! //! When reading the main controller status register, a pending status -//! interrupt will be cleared. This should be used in the interrupt handler -//! for the CAN controller if the cause is a status interrupt. The controller -//! status register fields are as follows: +//! interrupt is cleared. This parameter should be used in the interrupt +//! handler for the CAN controller if the cause is a status interrupt. The +//! controller status register fields are as follows: //! //! - \b CAN_STATUS_BUS_OFF - controller is in bus-off condition //! - \b CAN_STATUS_EWARN - an error counter has reached a limit of at least 96 @@ -1396,20 +1397,21 @@ CANRetryGet(unsigned long ulBase) //! dominant mode //! - \b CAN_STATUS_LEC_CRC - CRC error in received message //! -//! The remaining status registers are 32-bit bit maps to the message objects. -//! They can be used to quickly obtain information about the status of all the -//! message objects without needing to query each one. They contain the -//! following information: +//! The remaining status registers consist of 32-bit-wide bit maps to the +//! message objects. They can be used to quickly obtain information about the +//! status of all the message objects without needing to query each one. They +//! contain the following information: //! -//! - \b CAN_STS_TXREQUEST - if a message object's TxRequest bit is set, that -//! means that a transmission is pending on that object. The application can -//! use this to determine which objects are still waiting to send a message. -//! - \b CAN_STS_NEWDAT - if a message object's NewDat bit is set, that means -//! that a new message has been received in that object, and has not yet been -//! picked up by the host application -//! - \b CAN_STS_MSGVAL - if a message object's MsgVal bit is set, that means -//! it has a valid configuration programmed. The host application can use this -//! to determine which message objects are empty/unused. +//! - \b CAN_STS_TXREQUEST - if a message object's TXRQST bit is set, a +//! transmission is pending on that object. The application can use this +//! information to determine which objects are still waiting to send a +//! message. +//! - \b CAN_STS_NEWDAT - if a message object's NEWDAT bit is set, a new +//! message has been received in that object, and has not yet been picked up +//! by the host application +//! - \b CAN_STS_MSGVAL - if a message object's MSGVAL bit is set, the object +//! has a valid configuration programmed. The host application can use this +//! information to determine which message objects are empty/unused. //! //! \return Returns the value of the status register. // @@ -1488,14 +1490,14 @@ CANStatusGet(unsigned long ulBase, tCANStsReg eStatusReg) //! \param pulRxCount is a pointer to storage for the receive error counter. //! \param pulTxCount is a pointer to storage for the transmit error counter. //! -//! Reads the error counter register and returns the transmit and receive error -//! counts to the caller along with a flag indicating if the controller receive -//! counter has reached the error passive limit. The values of the receive and -//! transmit error counters are returned through the pointers provided as -//! parameters. +//! This function reads the error counter register and returns the transmit and +//! receive error counts to the caller along with a flag indicating if the +//! controller receive counter has reached the error passive limit. The values +//! of the receive and transmit error counters are returned through the pointers +//! provided as parameters. //! -//! After this call, \e *pulRxCount will hold the current receive error count -//! and \e *pulTxCount will hold the current transmit error count. +//! After this call, \e *pulRxCount holds the current receive error count +//! and \e *pulTxCount holds the current transmit error count. //! //! \return Returns \b true if the receive error count has reached the error //! passive limit, and \b false if the error count is below the error passive @@ -1542,10 +1544,10 @@ CANErrCntrGet(unsigned long ulBase, unsigned long *pulRxCount, //! \param eMsgType indicates the type of message for this object. //! //! This function is used to configure any one of the 32 message objects in the -//! CAN controller. A message object can be configured as any type of CAN -//! message object as well as several options for automatic transmission and -//! reception. This call also allows the message object to be configured to -//! generate interrupts on completion of message receipt or transmission. The +//! CAN controller. A message object can be configured to be any type of CAN +//! message object as well as to use automatic transmission and reception. +//! This call also allows the message object to be configured to generate +//! interrupts on completion of message receipt or transmission. The //! message object can also be configured with a filter/mask so that actions //! are only taken when a message that meets certain parameters is seen on the //! CAN bus. @@ -1570,13 +1572,13 @@ CANErrCntrGet(unsigned long ulBase, unsigned long *pulRxCount, //! - Set \b MSG_OBJ_RX_INT_ENABLE flag to enable interrupt on receipt. //! - Set \b MSG_OBJ_USE_ID_FILTER flag to enable filtering based on the //! identifier mask specified by \e ulMsgIDMask. -//! - \e ulMsgLen - the number of bytes in the message data. This should be -//! non-zero even for a remote frame; it should match the expected bytes of the -//! data responding data frame. +//! - \e ulMsgLen - the number of bytes in the message data. This parameter +//! should be non-zero even for a remote frame; it should match the expected +//! bytes of data in the responding data frame. //! - \e pucMsgData - points to a buffer containing up to 8 bytes of data for a //! data frame. //! -//! \b Example: To send a data frame or remote frame(in response to a remote +//! \b Example: To send a data frame or remote frame (in response to a remote //! request), take the following steps: //! //! -# Set \e eMsgType to \b MSG_OBJ_TYPE_TX. @@ -1598,7 +1600,7 @@ CANErrCntrGet(unsigned long ulBase, unsigned long *pulRxCount, //! -# Set \e pMsgObject->ulFlags as follows: //! - Set \b MSG_OBJ_RX_INT_ENABLE flag to be interrupted when the data frame //! is received. -//! - Set \b MSG_OBJ_USE_ID_FILTER flag to enable identifier based filtering. +//! - Set \b MSG_OBJ_USE_ID_FILTER flag to enable identifier-based filtering. //! -# Set \e pMsgObject->ulMsgLen to the number of bytes in the expected data //! frame. //! -# The buffer pointed to by \e pMsgObject->pucMsgData is not used by this @@ -1606,7 +1608,7 @@ CANErrCntrGet(unsigned long ulBase, unsigned long *pulRxCount, //! -# Call this function with \e ulObjID set to one of the 32 object buffers. //! //! If you specify a message object buffer that already contains a message -//! definition, it will be overwritten. +//! definition, it is overwritten. //! //! \return None. // @@ -1928,11 +1930,9 @@ CANMessageSet(unsigned long ulBase, unsigned long ulObjID, CANRegWrite(ulBase + CAN_O_IF1MCTL, usMsgCtrl); // - // Transfer the message object to the message object specifiec by ulObjID. + // Transfer the message object to the message object specified by ulObjID. // CANRegWrite(ulBase + CAN_O_IF1CRQ, ulObjID & CAN_IF1CRQ_MNUM_M); - - return; } //***************************************************************************** @@ -1946,27 +1946,27 @@ CANMessageSet(unsigned long ulBase, unsigned long ulObjID, //! cleared. //! //! This function is used to read the contents of one of the 32 message objects -//! in the CAN controller, and return it to the caller. The data returned is +//! in the CAN controller and return it to the caller. The data returned is //! stored in the fields of the caller-supplied structure pointed to by //! \e pMsgObject. The data consists of all of the parts of a CAN message, //! plus some control and status information. //! -//! Normally this is used to read a message object that has received and stored -//! a CAN message with a certain identifier. However, this could also be used -//! to read the contents of a message object in order to load the fields of the -//! structure in case only part of the structure needs to be changed from a -//! previous setting. +//! Normally, this function is used to read a message object that has received +//! and stored a CAN message with a certain identifier. However, this function +//! could also be used to read the contents of a message object in order to +//! load the fields of the structure in case only part of the structure must +//! be changed from a previous setting. //! -//! When using CANMessageGet, all of the same fields of the structure are +//! When using CANMessageGet(), all of the same fields of the structure are //! populated in the same way as when the CANMessageSet() function is used, //! with the following exceptions: //! //! \e pMsgObject->ulFlags: //! -//! - \b MSG_OBJ_NEW_DATA indicates if this is new data since the last time it +//! - \b MSG_OBJ_NEW_DATA indicates if this data is new since the last time it //! was read //! - \b MSG_OBJ_DATA_LOST indicates that at least one message was received on -//! this message object, and not read by the host before being overwritten. +//! this message object and not read by the host before being overwritten. //! //! \return None. // @@ -2206,8 +2206,8 @@ CANMessageGet(unsigned long ulBase, unsigned long ulObjID, //! \param ulObjID is the message object number to disable (1-32). //! //! This function frees the specified message object from use. Once a message -//! object has been ``cleared,'' it will no longer automatically send or -//! receive messages, or generate interrupts. +//! object has been ``cleared,'' it no longer automatically sends or +//! receives messages, nor does it generate interrupts. //! //! \return None. // diff --git a/bsp/lm3s8962/Libraries/driverlib/can.h b/bsp/lm3s8962/Libraries/driverlib/can.h index 4913c934ba..369a4f009a 100644 --- a/bsp/lm3s8962/Libraries/driverlib/can.h +++ b/bsp/lm3s8962/Libraries/driverlib/can.h @@ -2,7 +2,7 @@ // // can.h - Defines and Macros for the CAN controller. // -// Copyright (c) 2006-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2006-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -179,25 +179,25 @@ typedef struct //! Buffer 1 segments, measured in time quanta. The valid values for this //! setting range from 2 to 16. // - unsigned int uSyncPropPhase1Seg; + unsigned long ulSyncPropPhase1Seg; // //! This value holds the Phase Buffer 2 segment in time quanta. The valid //! values for this setting range from 1 to 8. // - unsigned int uPhase2Seg; + unsigned long ulPhase2Seg; // //! This value holds the Resynchronization Jump Width in time quanta. The //! valid values for this setting range from 1 to 4. // - unsigned int uSJW; + unsigned long ulSJW; // //! This value holds the CAN_CLK divider used to determine time quanta. //! The valid values for this setting range from 1 to 1023. // - unsigned int uQuantumPrescaler; + unsigned long ulQuantumPrescaler; } tCANBitClkParms; diff --git a/bsp/lm3s8962/Libraries/driverlib/comp.c b/bsp/lm3s8962/Libraries/driverlib/comp.c index 0872256dfe..0ed7d8377d 100644 --- a/bsp/lm3s8962/Libraries/driverlib/comp.c +++ b/bsp/lm3s8962/Libraries/driverlib/comp.c @@ -2,7 +2,7 @@ // // comp.c - Driver for the analog comparator. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -45,8 +45,8 @@ //! \param ulComp is the index of the comparator to configure. //! \param ulConfig is the configuration of the comparator. //! -//! This function will configure a comparator. The \e ulConfig parameter is -//! the result of a logical OR operation between the \b COMP_TRIG_xxx, +//! This function configures a comparator. The \e ulConfig parameter is the +//! result of a logical OR operation between the \b COMP_TRIG_xxx, //! \b COMP_INT_xxx, \b COMP_ASRCP_xxx, and \b COMP_OUTPUT_xxx values. //! //! The \b COMP_TRIG_xxx term can take on the following values: @@ -117,8 +117,8 @@ ComparatorConfigure(unsigned long ulBase, unsigned long ulComp, //! \param ulBase is the base address of the comparator module. //! \param ulRef is the desired reference voltage. //! -//! This function will set the internal reference voltage value. The voltage -//! is specified as one of the following values: +//! This function sets the internal reference voltage value. The voltage is +//! specified as one of the following values: //! //! - \b COMP_REF_OFF to turn off the reference voltage //! - \b COMP_REF_0V to set the reference voltage to 0 V @@ -212,9 +212,9 @@ ComparatorValueGet(unsigned long ulBase, unsigned long ulComp) //! \param pfnHandler is a pointer to the function to be called when the //! comparator interrupt occurs. //! -//! This sets the handler to be called when the comparator interrupt occurs. -//! This will enable the interrupt in the interrupt controller; it is the -//! interrupt-handler's responsibility to clear the interrupt source via +//! This function sets the handler to be called when the comparator interrupt occurs +//! and enables the interrupt in the interrupt controller. It is the interrupt +//! handler's responsibility to clear the interrupt source via //! ComparatorIntClear(). //! //! \sa IntRegister() for important information about registering interrupt @@ -256,9 +256,9 @@ ComparatorIntRegister(unsigned long ulBase, unsigned long ulComp, //! \param ulBase is the base address of the comparator module. //! \param ulComp is the index of the comparator. //! -//! This function will clear the handler to be called when a comparator -//! interrupt occurs. This will also mask off the interrupt in the interrupt -//! controller so that the interrupt handler no longer is called. +//! This function clears the handler to be called when a comparator interrupt +//! occurs. This function also masks off the interrupt in the interrupt controller +//! so that the interrupt handler no longer is called. //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -299,7 +299,7 @@ ComparatorIntUnregister(unsigned long ulBase, unsigned long ulComp) //! \param ulComp is the index of the comparator. //! //! This function enables generation of an interrupt from the specified -//! comparator. Only comparators whose interrupts are enabled can be reflected +//! comparator. Only enabled comparator interrupts can be reflected //! to the processor. //! //! \return None. @@ -328,7 +328,7 @@ ComparatorIntEnable(unsigned long ulBase, unsigned long ulComp) //! \param ulComp is the index of the comparator. //! //! This function disables generation of an interrupt from the specified -//! comparator. Only comparators whose interrupts are enabled can be reflected +//! comparator. Only enabled comparator interrupts can be reflected //! to the processor. //! //! \return None. @@ -358,7 +358,7 @@ ComparatorIntDisable(unsigned long ulBase, unsigned long ulComp) //! \param bMasked is \b false if the raw interrupt status is required and //! \b true if the masked interrupt status is required. //! -//! This returns the interrupt status for the comparator. Either the raw or +//! This function returns the interrupt status for the comparator. Either the raw or //! the masked interrupt status can be returned. //! //! \return \b true if the interrupt is asserted and \b false if it is not @@ -397,18 +397,18 @@ ComparatorIntStatus(unsigned long ulBase, unsigned long ulComp, //! \param ulComp is the index of the comparator. //! //! The comparator interrupt is cleared, so that it no longer asserts. This -//! must be done in the interrupt handler to keep it from being called again -//! immediately upon exit. Note that for a level triggered interrupt, the -//! interrupt cannot be cleared until it stops asserting. +//! fucntion must be called in the interrupt handler to keep the handler from +//! being called again immediately upon exit. Note that for a level-triggered +//! interrupt, the interrupt cannot be cleared until it stops asserting. //! -//! \note Since there is a write buffer in the Cortex-M3 processor, it may take -//! several clock cycles before the interrupt source is actually cleared. +//! \note Because there is a write buffer in the Cortex-M processor, it may +//! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid //! returning from the interrupt handler before the interrupt source is //! actually cleared. Failure to do so may result in the interrupt handler -//! being immediately reentered (since NVIC still sees the interrupt source -//! asserted). +//! being immediately reentered (because the interrupt controller still sees +//! the interrupt source asserted). //! //! \return None. // diff --git a/bsp/lm3s8962/Libraries/driverlib/comp.h b/bsp/lm3s8962/Libraries/driverlib/comp.h index 728f458881..894295687a 100644 --- a/bsp/lm3s8962/Libraries/driverlib/comp.h +++ b/bsp/lm3s8962/Libraries/driverlib/comp.h @@ -2,7 +2,7 @@ // // comp.h - Prototypes for the analog comparator driver. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm3s8962/Libraries/driverlib/cpu.c b/bsp/lm3s8962/Libraries/driverlib/cpu.c index e78e877020..80b74ab393 100644 --- a/bsp/lm3s8962/Libraries/driverlib/cpu.c +++ b/bsp/lm3s8962/Libraries/driverlib/cpu.c @@ -3,7 +3,7 @@ // cpu.c - Instruction wrappers for special CPU instructions needed by the // drivers. // -// Copyright (c) 2006-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2006-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -19,7 +19,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -360,8 +360,7 @@ CPUbasepriSet(unsigned long ulNewBasepri) // // Set the BASEPRI register // - __asm(" msr BASEPRI, r0\n" - " bx lr\n"); + __asm(" msr BASEPRI, r0\n"); } #endif diff --git a/bsp/lm3s8962/Libraries/driverlib/cpu.h b/bsp/lm3s8962/Libraries/driverlib/cpu.h index 79da0b1e71..edb76b775b 100644 --- a/bsp/lm3s8962/Libraries/driverlib/cpu.h +++ b/bsp/lm3s8962/Libraries/driverlib/cpu.h @@ -2,7 +2,7 @@ // // cpu.h - Prototypes for the CPU instruction wrapper functions. // -// Copyright (c) 2006-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2006-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm3s8962/Libraries/driverlib/debug.h b/bsp/lm3s8962/Libraries/driverlib/debug.h index 1d98ee0c7d..a0fa0f8100 100644 --- a/bsp/lm3s8962/Libraries/driverlib/debug.h +++ b/bsp/lm3s8962/Libraries/driverlib/debug.h @@ -2,7 +2,7 @@ // // debug.h - Macros for assisting debug of the driver library. // -// Copyright (c) 2006-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2006-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm3s8962/Libraries/driverlib/eeprom.c b/bsp/lm3s8962/Libraries/driverlib/eeprom.c new file mode 100644 index 0000000000..8096899155 --- /dev/null +++ b/bsp/lm3s8962/Libraries/driverlib/eeprom.c @@ -0,0 +1,1110 @@ +//***************************************************************************** +// +// eeprom.c - Driver for programming the on-chip EEPROM. +// +// Copyright (c) 2010-2011 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 8264 of the Stellaris Peripheral Driver Library. +// +//***************************************************************************** + +#include "inc/hw_eeprom.h" +#include "inc/hw_flash.h" +#include "inc/hw_ints.h" +#include "inc/hw_sysctl.h" +#include "inc/hw_types.h" +#include "driverlib/debug.h" +#include "driverlib/flash.h" +#include "driverlib/interrupt.h" +#include "driverlib/sysctl.h" +#include "driverlib/eeprom.h" + +//***************************************************************************** +// +//! \addtogroup eeprom_api +//! @{ +// +//***************************************************************************** + +//***************************************************************************** +// +// Useful macros to extract the number of EEPROM blocks available on the target +// device and the total EEPROM storage in bytes from the EESIZE register. +// +//***************************************************************************** +#define BLOCKS_FROM_EESIZE(x) (((x) & EEPROM_EESIZE_BLKCNT_M) >> \ + EEPROM_EESIZE_BLKCNT_S) +#define SIZE_FROM_EESIZE(x) ((((x) & EEPROM_EESIZE_WORDCNT_M) >> \ + EEPROM_EESIZE_WORDCNT_S) * 4) + +//***************************************************************************** +// +// Useful macro to extract the offset from a linear address. +// +//***************************************************************************** +#define OFFSET_FROM_ADDR(x) (((x) >> 2) & 0x0F) + +//***************************************************************************** +// +// The key value required to initiate a mass erase. +// +//***************************************************************************** +#define EEPROM_MASS_ERASE_KEY ((unsigned long)0xE37B << EEPROM_EEDBGME_KEY_S) + +//***************************************************************************** +// +// This function implements a workaround for a bug in Blizzard rev A silicon. +// It ensures that only the 1KB flash sector containing a given EEPROM address +// is erased if an erase/copy operation is required as a result of a following +// EEPROM write. +// +//***************************************************************************** +static void +EEPROMSetSectorMask(unsigned long ulAddress) +{ + unsigned long ulMask; + + // + // Determine which page contains the passed EEPROM address. The 2KB EEPROM + // is implemented in 16KB of flash with each 1KB sector of flash holding + // values for 32 consecutive EEPROM words (or 128 bytes). + // + ulMask = ~(1 << (ulAddress >> 7)); + + SysCtlDelay(10); + HWREG(0x400FD0FC) = 3; + SysCtlDelay(10); + HWREG(0x400AE2C0) = ulMask; + SysCtlDelay(10); + HWREG(0x400FD0FC) = 0; + SysCtlDelay(10); +} + +//***************************************************************************** +// +// Clear the FSM sector erase mask to ensure that any following main array flash +// erase operations operate as expected. +// +//***************************************************************************** +static void +EEPROMClearSectorMask(void) +{ + SysCtlDelay(10); + HWREG(0x400FD0FC) = 3; + SysCtlDelay(10); + HWREG(0x400AE2C0) = 0; + SysCtlDelay(10); + HWREG(0x400FD0FC) = 0; + SysCtlDelay(10); +} + +//***************************************************************************** +// +// Block until the EEPROM peripheral is not busy. +// +//***************************************************************************** +static void +EEPROMWaitForDone(void) +{ + // + // Is the EEPROM still busy? + // + while(HWREG(EEPROM_EEDONE) & EEPROM_EEDONE_WORKING) + { + // + // Spin while EEPROM is busy. + // + } +} + +//***************************************************************************** +// +//! Performs any necessary recovery in case of power failures during write. +//! +//! This function must be called after SysCtlPeripheralEnable() and before +//! the EEPROM is accessed to check for errors resulting from power failure +//! during a previous write operation. The function detects these errors +//! and performs as much recovery as possible before returning information to +//! the caller on whether or not a previous data write was lost and must +//! be retried. +//! +//! In cases where \b EEPROM_INIT_RETRY is returned, the application is +//! responsible for determining which data write may have been lost and +//! rewriting this data. If \b EEPROM_INIT_ERROR is returned, the EEPROM was +//! unable to recover its state. This condition may or may not be resolved on +//! future resets depending upon the cause of the fault. For example, if the +//! supply voltage is unstable, retrying the operation once the voltage is +//! stabilized may clear the error. +//! +//! Failure to call this function after a reset may lead to permanent data loss +//! if the EEPROM is later written! +//! +//! \return Returns \b EEPROM_INIT_OK if no errors were detected, +//! \b EEPROM_INIT_RETRY if a previous write operation may have been +//! interrupted by a power or reset event or \b EEPROM_INIT_ERROR if the EEPROM +//! peripheral cannot currently recover from an interrupted write or erase +//! operation. +// +//***************************************************************************** +unsigned long +EEPROMInit(void) +{ + unsigned long ulStatus; + + // + // Insert a small delay (6 cycles + call overhead) to guard against the + // possibility that this function is called immediately after the EEPROM + // peripheral is enabled. Without this delay, there is a slight chance + // that the first EEPROM register read will fault if you are using a + // compiler with a ridiculously good optimizer! + // + SysCtlDelay(2); + + // + // Make sure the EEPROM has finished its reset processing. + // + EEPROMWaitForDone(); + + // + // Read the EESUPP register to see if any errors have been reported. + // + ulStatus = HWREG(EEPROM_EESUPP); + + // + // Did an error of some sort occur during a previous attempt to write to + // the EEPROM? + // + if(ulStatus & (EEPROM_EESUPP_PRETRY | EEPROM_EESUPP_ERETRY)) + { + // + // Perform a second reset to allow the EEPROM a chance to correct + // the errors. + // + SysCtlPeripheralReset(SYSCTL_PERIPH_EEPROM0); + + // + // Wait for the EEPROM to complete it's reset processing once again. + // + SysCtlDelay(2); + EEPROMWaitForDone(); + + // + // Read EESUPP once again to determine if the error conditions are + // cleared. + // + ulStatus = HWREG(EEPROM_EESUPP); + if(ulStatus & (EEPROM_EESUPP_PRETRY | EEPROM_EESUPP_ERETRY)) + { + return(EEPROM_INIT_ERROR); + } + else + { + return(EEPROM_INIT_RETRY); + } + } + + // + // The EEPROM does not indicate that any error occurred. + // + return(EEPROM_INIT_OK); +} + +//***************************************************************************** +// +//! Determines the size of the EEPROM. +//! +//! This function returns the size of the EEPROM in bytes. +//! +//! \return Returns the total number of bytes in the EEPROM. +// +//***************************************************************************** +unsigned long +EEPROMSizeGet(void) +{ + // + // Return the size of the EEPROM in bytes. + // + return(SIZE_FROM_EESIZE(HWREG(EEPROM_EESIZE))); +} + +//***************************************************************************** +// +//! Determines the number of blocks in the EEPROM. +//! +//! This function may be called to determine the number of blocks in the +//! EEPROM. Each block is the same size and the number of bytes of storage +//! contained in a block may be determined by dividing the size of the device, +//! obtained via a call to the EEPROMSizeGet() function, by the number of +//! blocks returned by this function. +//! +//! \return Returns the total number of bytes in the device EEPROM. +// +//***************************************************************************** +unsigned long +EEPROMBlockCountGet(void) +{ + // + // Extract the number of blocks and return it to the caller. + // + return(BLOCKS_FROM_EESIZE(HWREG(EEPROM_EESIZE))); +} + +//***************************************************************************** +// +//! Reads data from the EEPROM. +//! +//! \param pulData is a pointer to storage for the data read from the EEPROM. +//! This pointer must point to at least \e ulCount bytes of available memory. +//! \param ulAddress is the byte address within the EEPROM from which data is +//! to be read. This value must be a multiple of 4. +//! \param ulCount is the number of bytes of data to read from the EEPROM. +//! This value must be a multiple of 4. +//! +//! This function may be called to read a number of words of data from a +//! word-aligned address within the EEPROM. Data read is copied into the +//! buffer pointed to by the \e pulData parameter. +//! +//! \return None. +// +//***************************************************************************** +void +EEPROMRead(unsigned long *pulData, unsigned long ulAddress, + unsigned long ulCount) +{ + // + // Check parameters in a debug build. + // + ASSERT(pulData); + ASSERT(ulAddress < SIZE_FROM_EESIZE(HWREG(EEPROM_EESIZE))); + ASSERT((ulAddress + ulCount) <= SIZE_FROM_EESIZE(HWREG(EEPROM_EESIZE))); + ASSERT((ulAddress & 3) == 0); + ASSERT((ulCount & 3) == 0); + + // + // Set the block and offset appropriately to read the first word. + // + HWREG(EEPROM_EEBLOCK) = EEPROMBlockFromAddr(ulAddress); + HWREG(EEPROM_EEOFFSET) = OFFSET_FROM_ADDR(ulAddress); + + // + // Convert the byte count to a word count. + // + ulCount /= 4; + + // + // Read each word in turn. + // + while(ulCount) + { + // + // Read the next word through the autoincrementing register. + // + *pulData = HWREG(EEPROM_EERDWRINC); + + // + // Move on to the next word. + // + pulData++; + ulCount--; + + // + // Do we need to move to the next block? This is the case if the + // offset register has just wrapped back to 0. + // + if(HWREG(EEPROM_EEOFFSET) == 0) + { + HWREG(EEPROM_EEBLOCK) += 1; + } + } +} + +//***************************************************************************** +// +//! Writes data to the EEPROM. +//! +//! \param pulData points to the first word of data to write to the EEPROM. +//! \param ulAddress defines the byte address within the EEPROM that the data +//! is to be written to. This value must be a multiple of 4. +//! \param ulCount defines the number of bytes of data that is to be written. +//! This value must be a multiple of 4. +//! +//! This function may be called to write data into the EEPROM at a given +//! word-aligned address. The call is synchronous and returns only after +//! all data has been written or an error occurs. +//! +//! \return Returns 0 on success or non-zero values on failure. Failure codes +//! are logical OR combinations of \b EEPROM_RC_INVPL, \b EEPROM_RC_WRBUSY, +//! \b EEPROM_RC_NOPERM, \b EEPROM_RC_WKCOPY, \b EEPROM_RC_WKERASE, and +//! \b EEPROM_RC_WORKING. +// +//***************************************************************************** +unsigned long +EEPROMProgram(unsigned long *pulData, unsigned long ulAddress, + unsigned long ulCount) +{ + unsigned long ulStatus; + + // + // Check parameters in a debug build. + // + ASSERT(pulData); + ASSERT(ulAddress < SIZE_FROM_EESIZE(HWREG(EEPROM_EESIZE))); + ASSERT((ulAddress + ulCount) <= SIZE_FROM_EESIZE(HWREG(EEPROM_EESIZE))); + ASSERT((ulAddress & 3) == 0); + ASSERT((ulCount & 3) == 0); + + // + // This is a workaround for a silicon problem on Blizzard rev A. + // + if(CLASS_IS_BLIZZARD && REVISION_IS_A0) + { + EEPROMSetSectorMask(ulAddress); + } + + // + // Set the block and offset appropriately to program the first word. + // + HWREG(EEPROM_EEBLOCK) = EEPROMBlockFromAddr(ulAddress); + HWREG(EEPROM_EEOFFSET) = OFFSET_FROM_ADDR(ulAddress); + + // + // Convert the byte count to a word count. + // + ulCount /= 4; + + // + // Write each word in turn. + // + while(ulCount) + { + // + // Write the next word through the autoincrementing register. + // + HWREG(EEPROM_EERDWRINC) = *pulData; + + // + // Wait for the write to complete. + // + do + { + // + // Read the status. + // + ulStatus = HWREG(EEPROM_EEDONE); + } + while(ulStatus & EEPROM_EEDONE_WORKING); + + // + // Make sure we completed the write without errors. Note that we + // must check this per-word because write permission can be set per + // block resulting in only a section of the write not being performed. + // + if(ulStatus & (EEPROM_EEDONE_NOPERM | EEPROM_EEDONE_INVPL)) + { + // + // An error was reported that would prevent the values from + // being written correctly. + // + if(CLASS_IS_BLIZZARD && REVISION_IS_A0) + { + EEPROMClearSectorMask(); + } + return(ulStatus); + } + + // + // Move on to the next word. + // + pulData++; + ulCount--; + + // + // Do we need to move to the next block? This is the case if the + // offset register has just wrapped back to 0. + // + if(HWREG(EEPROM_EEOFFSET) == 0) + { + HWREG(EEPROM_EEBLOCK) += 1; + } + } + + // + // Clear the sector protection bits to prevent possible problems when + // programming the main flash array later. + // + if(CLASS_IS_BLIZZARD && REVISION_IS_A0) + { + EEPROMClearSectorMask(); + } + + // + // Return the current status to the caller. + // + return(HWREG(EEPROM_EEDONE)); +} + +//***************************************************************************** +// +//! Writes a word to the EEPROM. +//! +//! \param ulData is the word to write to the EEPROM. +//! \param ulAddress defines the byte address within the EEPROM to which the +//! data is to be written. This value must be a multiple of 4. +//! +//! This function is intended to allow EEPROM programming under interrupt +//! control. It may be called to start the process of writing a single word of +//! data into the EEPROM at a given word-aligned address. The call is +//! asynchronous and returna immediately without waiting for the write to +//! complete. Completion of the operation is signaled by means of an +//! interrupt from the EEPROM module. The EEPROM peripheral shares a single +//! interrupt vector with the flash memory subsystem, \e INT_FLASH. +//! +//! \return Returns status and error information in the form of a logical OR +//! combinations of \b EEPROM_RC_INVPL, \b EEPROM_RC_WRBUSY, +//! \b EEPROM_RC_NOPERM, \b EEPROM_RC_WKCOPY, \b EEPROM_RC_WKERASE and +//! \b EEPROM_RC_WORKING. Flags \b EEPROM_RC_WKCOPY, \b EEPROM_RC_WKERASE, and +//! \b EEPROM_RC_WORKING are expected in normal operation and do not indicate +//! an error. +// +//***************************************************************************** +unsigned long +EEPROMProgramNonBlocking(unsigned long ulData, unsigned long ulAddress) +{ + // + // Check parameters in a debug build. + // + ASSERT(ulAddress < SIZE_FROM_EESIZE(HWREG(EEPROM_EESIZE))); + ASSERT((ulAddress & 3) == 0); + + // + // This is a workaround for a silicon problem on Blizzard rev A. + // + if(CLASS_IS_BLIZZARD && REVISION_IS_A0) + { + EEPROMSetSectorMask(ulAddress); + } + + // + // Set the block and offset appropriately to program the desired word. + // + HWREG(EEPROM_EEBLOCK) = EEPROMBlockFromAddr(ulAddress); + HWREG(EEPROM_EEOFFSET) = OFFSET_FROM_ADDR(ulAddress); + + // + // Write the new word using the auto-incrementing register just in case + // the caller wants to write follow-on words using direct register access + // + HWREG(EEPROM_EERDWRINC) = ulData; + + // + // Return the current status to the caller. + // + return(HWREG(EEPROM_EEDONE)); +} + +//***************************************************************************** +// +//! Erases the EEPROM and returns it to the factory default condition. +//! +//! This function completely erases the EEPROM and removes any and +//! all access protection on its blocks, leaving the device in the factory +//! default condition. After this operation, all EEPROM words contain the +//! value 0xFFFFFFFF and all blocks are accessible for both read and write +//! operations in all CPU modes. No passwords are active. +//! +//! The function is synchronous and does not return until the erase operation +//! has completed. +//! +//! \return Returns 0 on success or non-zero values on failure. Failure codes +//! are logical OR combinations of \b EEPROM_RC_INVPL, \b EEPROM_RC_WRBUSY, +//! \b EEPROM_RC_NOPERM, \b EEPROM_RC_WKCOPY, \b EEPROM_RC_WKERASE, and +//! \b EEPROM_RC_WORKING. +// +//***************************************************************************** +unsigned long +EEPROMMassErase(void) +{ + // + // This is a workaround for a silicon problem on Blizzard rev A. + // + if(CLASS_IS_BLIZZARD && REVISION_IS_A0) + { + EEPROMClearSectorMask(); + } + + // + // Start the mass erase processing + // + HWREG(EEPROM_EEDBGME) = EEPROM_MASS_ERASE_KEY | EEPROM_EEDBGME_ME; + + // + // Wait for completion. + // + EEPROMWaitForDone(); + + // + // Reset the peripheral. This is required so that all protection + // mechanisms and passwords are reset now that the EEPROM data has been + // scrubbed. + // + SysCtlPeripheralReset(SYSCTL_PERIPH_EEPROM0); + + // + // Wait for completion again. + // + SysCtlDelay(2); + EEPROMWaitForDone(); + + // + // Pass any error codes back to the caller. + // + return(HWREG(EEPROM_EEDONE)); +} + +//***************************************************************************** +// +//! Returns the current protection level for an EEPROM block. +//! +//! \param ulBlock is the block number for which the protection level is to be +//! queried. +//! +//! This function returns the current protection settings for a given +//! EEPROM block. If block 0 is currently locked, it must be unlocked prior +//! to calling this function to query the protection setting for other blocks. +//! +//! \return Returns one of \b EEPROM_PROT_RW_LRO_URW, \b EEPROM_PROT_NA_LNA_URW +//! or \b EEPROM_PROT_RO_LNA_URO optionally OR-ed with +//! \b EEPROM_PROT_SUPERVISOR_ONLY. +// +//***************************************************************************** +unsigned long +EEPROMBlockProtectGet(unsigned long ulBlock) +{ + // + // Parameter validity check. + // + ASSERT(ulBlock < BLOCKS_FROM_EESIZE(HWREG(EEPROM_EESIZE))); + + // + // Set the current block. + // + HWREG(EEPROM_EEBLOCK) = ulBlock; + + // + // Return the protection flags for this block. + // + return(HWREG(EEPROM_EEPROT)); +} + +//***************************************************************************** +// +//! Set the current protection options for an EEPROM block. +//! +//! \param ulBlock is the block number for which the protection options are to +//! be set. +//! \param ulProtect consists of one of the values \b EEPROM_PROT_RW_LRO_URW, +//! \b EEPROM_PROT_NA_LNA_URW or \b EEPROM_PROT_RO_LNA_URO optionally ORed with +//! \b EEPROM_PROT_SUPERVISOR_ONLY. +//! +//! This function sets the protection settings for a given EEPROM block +//! assuming no protection settings have previously been written. Note that +//! protection settings applied to block 0 have special meaning and control +//! access to the EEPROM peripheral as a whole. Protection settings applied to +//! blocks numbered 1 and above are layered above any protection set on block 0 +//! such that the effective protection on each block is the logical OR of the +//! protection flags set for block 0 and for the target block. This protocol +//! allows global protection options to be set for the whole device via block +//! 0 and more restrictive protection settings to be set on a block-by-block +//! basis. +//! +//! The protection flags indicate access permissions as follow: +//! +//! \b EEPROM_PROT_SUPERVISOR_ONLY restricts access to the block to threads +//! running in supervisor mode. If clear, both user and supervisor threads +//! can access the block. +//! +//! \b EEPROM_PROT_RW_LRO_URW provides read/write access to the block if no +//! password is set or if a password is set and the block is unlocked. If the +//! block is locked, only read access is permitted. +//! +//! \b EEPROM_PROT_NA_LNA_URW provides neither read nor write access unless +//! a password is set and the block is unlocked. If the block is unlocked, +//! both read and write access are permitted. +//! +//! \b EEPROM_PROT_RO_LNA_URO provides read access to the block if no password +//! is set or if a password is set and the block is unlocked. If the block is +//! password protected and locked, neither read nor write access is permitted. +//! +//! \return Returns a logical OR combination of \b EEPROM_RC_INVPL, +//! \b EEPROM_RC_WRBUSY, \b EEPROM_RC_NOPERM, \b EEPROM_RC_WKCOPY, +//! \b EEPROM_RC_WKERASE, and \b EEPROM_RC_WORKING to indicate status and error +//! conditions. +// +//***************************************************************************** +unsigned long +EEPROMBlockProtectSet(unsigned long ulBlock, unsigned long ulProtect) +{ + // + // Parameter validity check. + // + ASSERT(ulBlock < BLOCKS_FROM_EESIZE(HWREG(EEPROM_EESIZE))); + + // + // Set the current block. + // + HWREG(EEPROM_EEBLOCK) = ulBlock; + + // + // Set the protection options for this block. + // + HWREG(EEPROM_EEPROT) = ulProtect; + + // + // Wait for the write to complete. + // + while(HWREG(EEPROM_EEDONE) & EEPROM_EEDONE_WORKING) + { + // + // Still working. + // + } + + // + // Pass any error codes back to the caller. + // + return(HWREG(EEPROM_EEDONE)); +} + +//***************************************************************************** +// +//! Sets the password used to protect an EEPROM block. +//! +//! \param ulBlock is the EEPROM block number for which the password is to be +//! set. +//! \param pulPassword points to an array of unsigned long values comprising +//! the password to set. Each element may be any 32-bit value other than +//! 0xFFFFFFFF. This array must contain the number of elements given by the +//! \b ulCount parameter. +//! \param ulCount provides the number of unsigned longs in the \b ulPassword. +//! Valid values are 1, 2 and 3. +//! +//! This function allows the password used to unlock an EEPROM block to be +//! set. Valid passwords may be either 32, 64 or 96 bits comprising words +//! with any value other than 0xFFFFFFFF. The password may only be set once. +//! Any further attempts to set the password result in an error. Once the +//! password is set, the block remains unlocked until EEPROMBlockLock() is +//! called for that block or block 0, or a reset occurs. +//! +//! If a password is set on block 0, this affects locking of the peripheral as +//! a whole. When block 0 is locked, all other EEPROM blocks are inaccessible +//! until block 0 is unlocked. Once block 0 is unlocked, other blocks +//! become accessible according to any passwords set on those blocks and the +//! protection set for that block via a call to EEPROMBlockProtectSet(). +//! +//! \return Returns a logical OR combination of \b EEPROM_RC_INVPL, +//! \b EEPROM_RC_WRBUSY, \b EEPROM_RC_NOPERM, \b EEPROM_RC_WKCOPY, +//! \b EEPROM_RC_WKERASE, and \b EEPROM_RC_WORKING to indicate status and error +//! conditions. +// +//***************************************************************************** +unsigned long +EEPROMBlockPasswordSet(unsigned long ulBlock, unsigned long *pulPassword, + unsigned long ulCount) +{ + unsigned long ulReg; + + // + // Check parameters in a debug build. + // + ASSERT(pulPassword); + ASSERT(ulBlock < BLOCKS_FROM_EESIZE(HWREG(EEPROM_EESIZE))); + ASSERT(ulCount <= 3); + + // + // Set the block number whose password we are about to write. + // + HWREG(EEPROM_EEBLOCK) = ulBlock; + + // + // Start with the first password word. + // + ulReg = EEPROM_EEPASS0; + + // + // Write the password. + // + while(ulCount) + { + // + // Start the process of writing the password. + // + HWREG(ulReg) = *pulPassword; + + // + // Update values in preparation for writing the next word. + // + pulPassword++; + ulReg += 4; + ulCount--; + + // + // Wait for the last word write to complete or an error to be reported. + // + while(HWREG(EEPROM_EEDONE) & EEPROM_EEDONE_WORKING) + { + // + // Still working. + // + } + } + + // + // Return the final write status. + // + return(HWREG(EEPROM_EEDONE)); +} + +//***************************************************************************** +// +//! Locks a password-protected EEPROM block. +//! +//! \param ulBlock is the EEPROM block number which is to be locked. +//! +//! This function locks an EEPROM block that has previously been protected by +//! writing a password. Access to the block once it is locked is determined +//! by the protection settings applied via a previous call to the +//! EEPROMBlockProtectSet() function. If no password has previously been set +//! for the block, this function has no effect. +//! +//! Locking block 0 has the effect of making all other blocks in the EEPROM +//! inaccessible. +//! +//! \return Returns the lock state for the block on exit, 1 if unlocked (as +//! would be the case if no password was set) or 0 if locked. +//! +//***************************************************************************** +unsigned long +EEPROMBlockLock(unsigned long ulBlock) +{ + // + // Check parameters in a debug build. + // + ASSERT(ulBlock < BLOCKS_FROM_EESIZE(HWREG(EEPROM_EESIZE))); + + // + // Select the block we are going to lock. + // + HWREG(EEPROM_EEBLOCK) = ulBlock; + + // + // Lock the block. + // + HWREG(EEPROM_EEUNLOCK) = 0xFFFFFFFF; + + // + // Return the current lock state. + // + return(HWREG(EEPROM_EEUNLOCK)); +} + +//***************************************************************************** +// +//! Unlocks a password-protected EEPROM block. +//! +//! \param ulBlock is the EEPROM block number which is to be unlocked. +//! \param pulPassword points to an array of unsigned long values containing +//! the password for the blockt. Each element must match the password +//! originally set via a call to EEPROMBlockPasswordSet(). +//! \param ulCount provides the number of unsigned longs in the \b pulPassword +//! array and must match the value originally passed to +//! EEPROMBlockPasswordSet(). Valid values are 1, 2 and 3. +//! +//! This function unlocks an EEPROM block that has previously been protected by +//! writing a password. Access to the block once it is unlocked is determined +//! by the protection settings applied via a previous call to the +//! EEPROMBlockProtectSet() function. +//! +//! To successfully unlock an EEPROM block, the password provided must match +//! the password provided on the original call to EEPROMBlockPasswordSet(). If +//! an incorrect password is provided, the block remains locked. +//! +//! Unlocking block 0 has the effect of making all other blocks in the device +//! accessible according to their own access protection settings. When block +//! 0 is locked, all other EEPROM blocks are inaccessible. +//! +//! \return Returns the lock state for the block on exit, 1 if unlocked or 0 if +//! locked. +//! +//***************************************************************************** +unsigned long +EEPROMBlockUnlock(unsigned long ulBlock, unsigned long *pulPassword, + unsigned long ulCount) +{ + // + // Check parameters in a debug build. + // + ASSERT(pulPassword); + ASSERT(ulBlock < BLOCKS_FROM_EESIZE(HWREG(EEPROM_EESIZE))); + ASSERT(ulCount <= 3); + + // + // Set the block that we are trying to unlock. + // + HWREG(EEPROM_EEBLOCK) = ulBlock; + + // + // Write the unlock register with 0xFFFFFFFF to reset the unlock + // sequence just in case a short password was previously used to try to + // unlock the block. + // + HWREG(EEPROM_EEUNLOCK) = 0xFFFFFFFF; + + // + // We need to write the password words in the opposite order when unlocking + // compared to locking so start at the end of the array. + // + pulPassword += (ulCount - 1); + + // + // Write the supplied password to unlock the block. + // + while(ulCount) + { + HWREG(EEPROM_EEUNLOCK) = *pulPassword--; + ulCount--; + } + + // + // Let the caller know if their password worked. + // + return(HWREG(EEPROM_EEUNLOCK)); +} + +//***************************************************************************** +// +//! Hides an EEPROM block until the next reset. +//! +//! \param ulBlock is the EEPROM block number which is to be hidden. +//! +//! This function hides an EEPROM block other than block 0. Once hidden, a +//! block is completely inaccessible until the next reset. This mechanism +//! allows initialization code to have access to data which is to be hidden +//! from the rest of the application. Unlike applications using passwords, an +//! application making using of block hiding need not contain any embedded +//! passwords which could be found through disassembly. +//! +//! \return None. +//! +//***************************************************************************** +void +EEPROMBlockHide(unsigned long ulBlock) +{ + // + // Check parameters in a debug build. + // + ASSERT(!ulBlock); + ASSERT(ulBlock < BLOCKS_FROM_EESIZE(HWREG(EEPROM_EESIZE))); + + // + // Hide the requested block. + // + HWREG(EEPROM_EEHIDE) = (1 << ulBlock); +} + +//***************************************************************************** +// +//! Enables the EEPROM interrupt. +//! +//! \param ulIntFlags indicates which EEPROM interrupt source to enable. This +//! must be \b EEPROM_INT_PROGRAM currently. +//! +//! This function enables the EEPROM interrupt. When enabled, an interrupt +//! is generated when any EEPROM write or erase operation completes. The +//! EEPROM peripheral shares a single interrupt vector with the flash memory +//! subsystem, \b INT_FLASH. This function is provided as a convenience but +//! the EEPROM interrupt can also be enabled using a call to FlashIntEnable() +//! passing FLASH_INT_EEPROM in the \b ulIntFlags parameter. +//! +//! \return None. +//! +//***************************************************************************** +void +EEPROMIntEnable(unsigned long ulIntFlags) +{ + // + // Look for valid interrupt sources. + // + ASSERT(ulIntFlags == EEPROM_INT_PROGRAM); + + // + // Enable interrupts from the EEPROM module. + // + HWREG(EEPROM_EEINT) |= EEPROM_EEINT_INT; + + // + // Enable the EEPROM interrupt in the flash controller module. + // + HWREG(FLASH_FCIM) |= FLASH_FCRIS_ERIS; +} + +//***************************************************************************** +// +//! Disables the EEPROM interrupt. +//! +//! \param ulIntFlags indicates which EEPROM interrupt source to disable. This +//! must be \b EEPROM_INT_PROGRAM currently. +//! +//! This function disables the EEPROM interrupt and prevents calls to the +//! interrupt vector when any EEPROM write or erase operation completes. The +//! EEPROM peripheral shares a single interrupt vector with the flash memory +//! subsystem, \e INT_FLASH. This function is provided as a convenience but +//! the EEPROM interrupt can also be disabled using a call to FlashIntDisable() +//! passing FLASH_INT_EEPROM in the \b ulIntFlags parameter. +//! +//! \return None. +//! +//***************************************************************************** +void +EEPROMIntDisable(unsigned long ulIntFlags) +{ + // + // Look for valid interrupt sources. + // + ASSERT(ulIntFlags == EEPROM_INT_PROGRAM); + + // + // Disable the EEPROM interrupt in the flash controller module. + // + HWREG(FLASH_FCIM) &= ~FLASH_FCIM_EMASK; + + // + // Disable interrupts from the EEPROM module. + // + HWREG(EEPROM_EEINT) &= ~EEPROM_EEINT_INT; +} + +//***************************************************************************** +// +//! Reports the state of the EEPROM interrupt. +//! +//! \param bMasked determines whether the masked or unmasked state of the +//! interrupt is to be returned. If bMasked is \e true, the masked state is +//! returned, otherwise the unmasked state is returned. +//! +//! This function allows an application to query the state of the EEPROM +//! interrupt. If active, the interrupt may be cleared by calling +//! EEPROMIntClear(). +//! +//! \return Returns \b EEPROM_INT_PROGRAM if an interrupt is being signaled or +//! 0 otherwise. +// +//***************************************************************************** +unsigned long +EEPROMIntStatus(tBoolean bMasked) +{ + if(bMasked) + { + // + // If asked for the masked interrupt status, we check to see if the + // relevant interrupt is pending in the flash controller then return + // the appropriate EEPROM flag if it is. + // + return((HWREG(FLASH_FCMISC) & FLASH_FCMISC_EMISC) ? + EEPROM_INT_PROGRAM : 0); + } + else + { + // + // If asked for the unmasked interrupt status, infer that an interrupt + // is pending if the WORKING bit of the EEDONE register is clear. The + // actual interrupt fires on the high to low transition of this bit + // but we don't have access to an unmasked interrupt status for the + // EEPROM because it's handled via the flash controller so we have to + // make do with this instead. + // + return((HWREG(EEPROM_EEDONE) & EEPROM_EEDONE_WORKING) ? + 0 : EEPROM_INT_PROGRAM); + } +} + +//***************************************************************************** +// +//! Clears the EEPROM interrupt. +//! +//! \param ulIntFlags indicates which interrupt sources to clear. Currently, +//! the only valid value is \b EEPROM_INT_PROGRAM. +//! +//! This function allows an application to clear the EEPROM interrupt. +//! +//! \note Because there is a write buffer in the Cortex-M processor, it may +//! take several clock cycles before the interrupt source is actually cleared. +//! Therefore, it is recommended that the interrupt source be cleared early in +//! the interrupt handler (as opposed to the very last action) to avoid +//! returning from the interrupt handler before the interrupt source is +//! actually cleared. Failure to do so may result in the interrupt handler +//! being immediately reentered (because the interrupt controller still sees +//! the interrupt source asserted). +//! +//! \return None. +//! +//***************************************************************************** +void +EEPROMIntClear(unsigned long ulIntFlags) +{ + // + // Clear the flash interrupt. + // + HWREG(FLASH_FCMISC) = FLASH_FCMISC_EMISC; + + // + // Clear the sector protection bits to prevent possible problems when + // programming the main flash array later. + // + if(CLASS_IS_BLIZZARD && REVISION_IS_A0) + { + EEPROMClearSectorMask(); + } +} + +//***************************************************************************** +// +//! Returns status on the last EEPROM program or erase operation. +//! +//! This function returns the current status of the last program or erase +//! operation performed by the EEPROM. It is intended to provide error +//! information to applications programming or setting EEPROM protection +//! options under interrupt control. +//! +//! \return Returns 0 if the last program or erase operation completed without +//! any errors. If an operation is ongoing or an error occurred, the return +//! value is a logical OR combination of \b EEPROM_RC_INVPL, +//! \b EEPROM_RC_WRBUSY, \b EEPROM_RC_NOPERM, \b EEPROM_RC_WKCOPY, +//! \b EEPROM_RC_WKERASE, and \b EEPROM_RC_WORKING. +//! +//***************************************************************************** +unsigned long +EEPROMStatusGet(void) +{ + return(HWREG(EEPROM_EEDONE)); +} + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** diff --git a/bsp/lm3s8962/Libraries/driverlib/eeprom.h b/bsp/lm3s8962/Libraries/driverlib/eeprom.h new file mode 100644 index 0000000000..00ac97e883 --- /dev/null +++ b/bsp/lm3s8962/Libraries/driverlib/eeprom.h @@ -0,0 +1,264 @@ +//***************************************************************************** +// +// eeprom.h - Prototypes for the EEPROM driver. +// +// Copyright (c) 2010-2011 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 8264 of the Stellaris Peripheral Driver Library. +// +//***************************************************************************** + +#ifndef __EEPROM_H__ +#define __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. The EEPROM peripheral has recovered its state but the last write +//! operation may have been lost. The application must check the validity of +//! data it has written and retry any writes as required. +// +#define EEPROM_INIT_RETRY 1 + +// +//! 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 the EEPROM programming state machine +//! failed to write a value due to the voltage level dropping below that +//! required for EEPROM programming. The operation may be retried once the +//! voltage stabilizes. +// +#define EEPROM_RC_INVPL 0x00000100 + +// +//! 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 ulProtect +// 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 ulAddr 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(ulAddr) ((ulAddr) >> 6) + +//***************************************************************************** +// +//! Returns the offset address of the first word in an EEPROM block. +//! +//! \param ulBlock 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(ulBlock) ((ulBlock) << 6) + +//***************************************************************************** +// +// Prototypes for the APIs. +// +//***************************************************************************** +extern unsigned long EEPROMInit(void); +extern unsigned long EEPROMSizeGet(void); +extern unsigned long EEPROMBlockCountGet(void); +extern void EEPROMRead(unsigned long *pulData, unsigned long ulAddress, + unsigned long ulCount); +extern unsigned long EEPROMProgram(unsigned long *pulData, + unsigned long ulAddress, + unsigned long ulCount); +extern unsigned long EEPROMProgramNonBlocking(unsigned long ulData, + unsigned long ulAddress); +extern unsigned long EEPROMStatusGet(void); +extern unsigned long EEPROMMassErase(void); +extern unsigned long EEPROMBlockProtectGet(unsigned long ulBlock); +extern unsigned long EEPROMBlockProtectSet(unsigned long ulBlock, + unsigned long ulProtect); +extern unsigned long EEPROMBlockPasswordSet(unsigned long ulBlock, + unsigned long *pulPassword, + unsigned long ulCount); +extern unsigned long EEPROMBlockLock(unsigned long ulBlock); +extern unsigned long EEPROMBlockUnlock(unsigned long ulBlock, + unsigned long *pulPassword, + unsigned long ulCount); +extern void EEPROMBlockHide(unsigned long ulBlock); +extern void EEPROMIntEnable(unsigned long ulIntFlags); +extern void EEPROMIntDisable(unsigned long ulIntFlags); +extern unsigned long EEPROMIntStatus(tBoolean bMasked); +extern void EEPROMIntClear(unsigned long ulIntFlags); + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** + +//***************************************************************************** +// +// Mark the end of the C bindings section for C++ compilers. +// +//***************************************************************************** +#ifdef __cplusplus +} +#endif + +#endif // __EEPROM_H__ diff --git a/bsp/lm3s8962/Libraries/driverlib/epi.c b/bsp/lm3s8962/Libraries/driverlib/epi.c index eef70f3310..9bb281f7b8 100644 --- a/bsp/lm3s8962/Libraries/driverlib/epi.c +++ b/bsp/lm3s8962/Libraries/driverlib/epi.c @@ -2,7 +2,7 @@ // // epi.c - Driver for the EPI module. // -// Copyright (c) 2008-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2008-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -50,9 +50,10 @@ //! - \b EPI_MODE_GENERAL - use for general-purpose mode operation //! - \b EPI_MODE_SDRAM - use with SDRAM device //! - \b EPI_MODE_HB8 - use with host-bus 8-bit interface +//! - \b EPI_MODE_HB16 - use with host-bus 16-bit interface //! - \b EPI_MODE_DISABLE - disable the EPI module //! -//! Selection of any of the above modes will enable the EPI module, except +//! Selection of any of the above modes enables the EPI module, except //! for \b EPI_MODE_DISABLE which should be used to disable the module. //! //! \return None. @@ -68,6 +69,7 @@ EPIModeSet(unsigned long ulBase, unsigned long ulMode) ASSERT((ulMode == EPI_MODE_GENERAL) || (ulMode == EPI_MODE_SDRAM) || (ulMode == EPI_MODE_HB8) || + (ulMode == EPI_MODE_HB16) || (ulMode == EPI_MODE_DISABLE)); // @@ -84,15 +86,15 @@ EPIModeSet(unsigned long ulBase, unsigned long ulMode) //! \param ulDivider is the value of the clock divider to be applied to //! the external interface (0-65535). //! -//! This functions sets the clock divider(s) that will be used to determine the +//! This function sets the clock divider(s) that is used to determine the //! clock rate of the external interface. The \e ulDivider value is used to -//! derive the EPI clock rate from the system clock based upon the following +//! derive the EPI clock rate from the system clock based on the following //! formula. //! //! EPIClock = (Divider == 0) ? SysClk : (SysClk / (((Divider / 2) + 1) * 2)) //! //! For example, a divider value of 1 results in an EPI clock rate of half -//! the system clock, value of 2 or 3 yield one quarter of the system clock and +//! the system clock, value of 2 or 3 yields one quarter of the system clock and //! a value of 4 results in one sixth of the system clock rate. //! //! In cases where a dual chip select mode is in use and different clock rates @@ -213,16 +215,15 @@ EPIConfigSDRAMSet(unsigned long ulBase, unsigned long ulConfig, //! rate resulting from the divider in the lower 16 bits of the parameter passed //! to EPIDividerSet(). //! - one of \b EPI_HB8_CSCFG_CS, \b EPI_HB8_CSCFG_ALE, -//! \b EPI_HB8_CSCFG_DUAL_CS or \b EPI_HB8_CSCFG_ALE_DUAL. \b EPI_HB8_CSCFG_CS -//! sets EPI30 to operate as a Chip Select (CSn) signal. When using this mode, -//! \b EPI_HB8_MODE_ADMUX must not be specified. \b EPI_HB8_CSCFG_ALE sets -//! EPI30 to operate as an address latch (ALE). \b EPI_HB8_CSCFG_DUAL_CS sets -//! EPI30 to operate as CS0n and EPI27 as CS1n with the asserted chip select -//! determined from the most significant address bit for the respective external -//! address map. \b EPI_HB8_CSCFG_DUAL_ALE sets EPI30 as an address latch (ALE), -//! EPI27 as CS0n and EPI26 as CS1n with the asserted chip select determined -//! from the most significant address bit for the respective external address -//! map. +//! \b EPI_HB8_CSCFG_DUAL_CS or \b EPI_HB8_CSCFG_ALE_DUAL_CS. +//! \b EPI_HB8_CSCFG_CS sets EPI30 to operate as a Chip Select (CSn) signal. +//! \b EPI_HB8_CSCFG_ALE sets EPI30 to operate as an address latch (ALE). +//! \b EPI_HB8_CSCFG_DUAL_CS sets EPI30 to operate as CS0n and EPI27 as CS1n +//! with the asserted chip select determined from the most significant address +//! bit for the respective external address map. \b EPI_HB8_CSCFG_ALE_DUAL_CS +//! sets EPI30 as an address latch (ALE), EPI27 as CS0n and EPI26 as CS1n with +//! the asserted chip select determined from the most significant address bit +//! for the respective external address map. //! //! The parameter \e ulMaxWait is used if the FIFO mode is chosen. If a //! FIFO is used along with RXFULL or TXEMPTY ready signals, then this @@ -248,7 +249,9 @@ EPIConfigHB8Set(unsigned long ulBase, unsigned long ulConfig, // HWREG(ulBase + EPI_O_HB8CFG2) = (((ulConfig & EPI_HB8_WORD_ACCESS) ? EPI_HB8CFG2_WORD : 0) | - ((ulConfig & EPI_HB8_CSBAUD_DUAL) ? EPI_HB8CFG2_CSBAUD : 0) | ((ulConfig & EPI_HB8_CSCFG_MASK) << 15)); + ((ulConfig & EPI_HB8_CSBAUD_DUAL) ? + EPI_HB8CFG2_CSBAUD : 0) | + ((ulConfig & EPI_HB8_CSCFG_MASK) << 15)); // // Fill in the max wait field of the configuration word. // @@ -261,6 +264,96 @@ EPIConfigHB8Set(unsigned long ulBase, unsigned long ulConfig, HWREG(ulBase + EPI_O_HB8CFG) = ulConfig; } +//***************************************************************************** +// +//! Configures the interface for Host-bus 16 operation. +//! +//! \param ulBase is the EPI module base address. +//! \param ulConfig is the interface configuration. +//! \param ulMaxWait is the maximum number of external clocks to wait +//! if a FIFO ready signal is holding off the transaction. +//! +//! This function is used to configure the interface when used in Host-bus 16 +//! operation as chosen with the function EPIModeSet(). The parameter +//! \e ulConfig is the logical OR of any of the following: +//! +//! - one of \b EPI_HB16_MODE_ADMUX, \b EPI_HB16_MODE_ADDEMUX, +//! \b EPI_HB16_MODE_SRAM, or \b EPI_HB16_MODE_FIFO to select the HB16 mode +//! - \b EPI_HB16_USE_TXEMPTY - enable TXEMPTY signal with FIFO +//! - \b EPI_HB16_USE_RXFULL - enable RXFULL signal with FIFO +//! - \b EPI_HB16_WRHIGH - use active high write strobe, otherwise it is +//! active low +//! - \b EPI_HB16_RDHIGH - use active high read strobe, otherwise it is +//! active low +//! - one of \b EPI_HB16_WRWAIT_0, \b EPI_HB16_WRWAIT_1, \b EPI_HB16_WRWAIT_2, +//! or \b EPI_HB16_WRWAIT_3 to select the number of write wait states (default +//! is 0 wait states) +//! - one of \b EPI_HB16_RDWAIT_0, \b EPI_HB16_RDWAIT_1, \b EPI_HB16_RDWAIT_2, +//! or \b EPI_HB16_RDWAIT_3 to select the number of read wait states (default +//! is 0 wait states) +//! - \b EPI_HB16_WORD_ACCESS - use Word Access mode to route bytes to the +//! correct byte lanes allowing data to be stored in bits [31:16]. If absent, +//! all data transfers use bits [15:0]. +//! - \b EPI_HB16_BSEL - enables byte selects. In this mode, two EPI signals +//! operate as byte selects allowing 8-bit transfers. If this flag is not +//! specified, data must be read and written using only 16-bit transfers. +//! - \b EPI_HB16_CSBAUD_DUAL - use different baud rates when accessing devices +//! on each CSn. CS0n uses the baud rate specified by the lower 16 bits of the +//! divider passed to EPIDividerSet() and CS1n uses the divider passed in the +//! upper 16 bits. If this option is absent, both chip selects use the baud +//! rate resulting from the divider in the lower 16 bits of the parameter passed +//! to EPIDividerSet(). +//! - one of \b EPI_HB16_CSCFG_CS, \b EPI_HB16_CSCFG_ALE, +//! \b EPI_HB16_CSCFG_DUAL_CS or \b EPI_HB16_CSCFG_ALE_DUAL_CS. +//! \b EPI_HB16_CSCFG_CS sets EPI30 to operate as a Chip Select (CSn) signal. +//! \b EPI_HB16_CSCFG_ALE sets EPI30 to operate as an address latch (ALE). +//! \b EPI_HB16_CSCFG_DUAL_CS sets EPI30 to operate as CS0n and EPI27 as CS1n +//! with the asserted chip select determined from the most significant address +//! bit for the respective external address map. \b EPI_HB16_CSCFG_ALE_DUAL_CS +//! sets EPI30 as an address latch (ALE), EPI27 as CS0n and EPI26 as CS1n with +//! the asserted chip select determined from the most significant address bit +//! for the respective external address map. +//! +//! The parameter \e ulMaxWait is used if the FIFO mode is chosen. If a +//! FIFO is used along with RXFULL or TXEMPTY ready signals, then this +//! parameter determines the maximum number of clocks to wait when the +//! transaction is being held off by by the FIFO using one of these ready +//! signals. A value of 0 means to wait forever. +//! +//! \return None. +// +//***************************************************************************** +void +EPIConfigHB16Set(unsigned long ulBase, unsigned long ulConfig, + unsigned long ulMaxWait) +{ + // + // Check the arguments. + // + ASSERT(ulBase == EPI0_BASE); + ASSERT(ulMaxWait < 256); + + // + // Determine the CS and word access modes. + // + HWREG(ulBase + EPI_O_HB16CFG2) = (((ulConfig & EPI_HB16_WORD_ACCESS) ? + EPI_HB16CFG2_WORD : 0) | + ((ulConfig & EPI_HB16_CSBAUD_DUAL) ? + EPI_HB16CFG2_CSBAUD : 0) | + ((ulConfig & EPI_HB16_CSCFG_MASK) << 15)); + + // + // Fill in the max wait field of the configuration word. + // + ulConfig &= ~EPI_HB16CFG_MAXWAIT_M; + ulConfig |= ulMaxWait << EPI_HB16CFG_MAXWAIT_S; + + // + // Write the main HostBus16 configuration register. + // + HWREG(ulBase + EPI_O_HB16CFG) = ulConfig; +} + //***************************************************************************** // //! Configures the interface for general-purpose mode operation. @@ -274,9 +367,8 @@ EPIConfigHB8Set(unsigned long ulBase, unsigned long ulConfig, //! //! This function is used to configure the interface when used in //! general-purpose operation as chosen with the function EPIModeSet(). The -//! parameter -//! \e ulConfig is the logical OR of any of the following: -//! +//! parameter \e ulConfig is the logical OR of any of the following: +//! //! - \b EPI_GPMODE_CLKPIN - interface clock is output on a pin //! - \b EPI_GPMODE_CLKGATE - clock is stopped when there is no transaction, //! otherwise it is free-running @@ -288,13 +380,13 @@ EPIConfigHB8Set(unsigned long ulBase, unsigned long ulConfig, //! - \b EPI_GPMODE_FRAME50 - framing signal is 50/50 duty cycle, otherwise it //! is a pulse //! - \b EPI_GPMODE_READWRITE - read and write strobes are emitted on pins -//! - \b EPI_GPMODE_WRITE2CYCLE - a two cycle write is used, otherwise a +//! - \b EPI_GPMODE_WRITE2CYCLE - a two-cycle write is used, otherwise a //! single-cycle write is used -//! - \b EPI_GPMODE_READ2CYCLE - a two cycle read is used, otherwise a +//! - \b EPI_GPMODE_READ2CYCLE - a two-cycle read is used, otherwise a //! single-cycle read is used //! - \b EPI_GPMODE_ASIZE_NONE, \b EPI_GPMODE_ASIZE_4, //! \b EPI_GPMODE_ASIZE_12, or \b EPI_GPMODE_ASIZE_20 to choose no address -//! bus, or and address bus size of 4, 12, or 20 bits +//! bus or an address bus size of 4, 12, or 20 bits //! - \b EPI_GPMODE_DSIZE_8, \b EPI_GPMODE_DSIZE_16, //! \b EPI_GPMODE_DSIZE_24, or \b EPI_GPMODE_DSIZE_32 to select a data bus //! size of 8, 16, 24, or 32 bits @@ -313,7 +405,7 @@ EPIConfigHB8Set(unsigned long ulBase, unsigned long ulConfig, //! external clock enable is used, this parameter determines the maximum //! number of clocks to wait when the external clock enable signal is holding //! off a transaction. A value of 0 means to wait forever. If a non-zero -//! value is used and exceeded, an interrupt will occur and the transaction +//! value is used and exceeded, an interrupt occurs and the transaction //! aborted. //! //! \return None. @@ -422,7 +514,7 @@ EPIAddressMapSet(unsigned long ulBase, unsigned long ulMap) //! Once configured, the non-blocking read is started by calling //! EPINonBlockingReadStart(). If the addresses to be read from the device //! are in a sequence, it is not necessary to call this function multiple -//! times. Until it is changed, the EPI module will remember the last address +//! times. Until it is changed, the EPI module stores the last address //! that was used for a non-blocking read (per channel). //! //! \return None. @@ -468,9 +560,9 @@ EPINonBlockingReadConfigure(unsigned long ulBase, unsigned long ulChannel, //! //! This function starts a non-blocking read that was previously configured //! with the function EPINonBlockingReadConfigure(). Once this function is -//! called, the EPI module will begin reading data from the external device -//! into the read FIFO. The EPI will stop reading when the FIFO fills up -//! and resume reading when the application drains the FIFO, until the +//! called, the EPI module begins reading data from the external device +//! into the read FIFO. The EPI stops reading when the FIFO fills up +//! and resumes reading when the application drains the FIFO, until the //! total specified count of data items has been read. //! //! Once a read transaction is completed and the FIFO drained, another @@ -534,7 +626,7 @@ EPINonBlockingReadStop(unsigned long ulBase, unsigned long ulChannel) ulOffset = ulChannel * (EPI_O_RPSTD1 - EPI_O_RPSTD0); // - // Write a 0 to the read count register, which will cancel the transaction. + // Write a 0 to the read count register, which cancels the transaction. // HWREG(ulBase + EPI_O_RPSTD0 + ulOffset) = 0; } @@ -612,10 +704,10 @@ EPINonBlockingReadAvail(unsigned long ulBase) //! be stored. //! //! This function reads 32-bit data items from the read FIFO and stores -//! the values in a caller supplied buffer. The function will read and store +//! the values in a caller-supplied buffer. The function reads and stores //! data from the FIFO until there is no more data in the FIFO or the maximum //! count is reached as specified in the parameter \e ulCount. The actual -//! count of items will be returned. +//! count of items is returned. //! //! \return The number of items read from the FIFO. // @@ -634,8 +726,8 @@ EPINonBlockingReadGet32(unsigned long ulBase, unsigned long ulCount, ASSERT(pulBuf); // - // Read from the FIFO while there are any items to read, and - // the callers specified count is not exceeded. + // Read from the FIFO while there are any items to read and + // the caller's specified count is not exceeded. // while(HWREG(ulBase + EPI_O_RFIFOCNT) && ulCount--) { @@ -663,14 +755,14 @@ EPINonBlockingReadGet32(unsigned long ulBase, unsigned long ulCount, //! //! \param ulBase is the EPI module base address. //! \param ulCount is the maximum count of items to read. -//! \param pusBuf is the caller supplied buffer where the read data should +//! \param pusBuf is the caller-supplied buffer where the read data should //! be stored. //! //! This function reads 16-bit data items from the read FIFO and stores -//! the values in a caller supplied buffer. The function will read and store +//! the values in a caller-supplied buffer. The function reads and stores //! data from the FIFO until there is no more data in the FIFO or the maximum //! count is reached as specified in the parameter \e ulCount. The actual -//! count of items will be returned. +//! count of items is returned. //! //! \return The number of items read from the FIFO. // @@ -690,12 +782,12 @@ EPINonBlockingReadGet16(unsigned long ulBase, unsigned long ulCount, // // Read from the FIFO while there are any items to read, and - // the callers specified count is not exceeded. + // the caller's specified count is not exceeded. // while(HWREG(ulBase + EPI_O_RFIFOCNT) && ulCount--) { // - // Read from the FIFO and store in the caller supplied buffer. + // Read from the FIFO and store in the caller-supplied buffer. // *pusBuf = (unsigned short)HWREG(ulBase + EPI_O_READFIFO); @@ -718,14 +810,14 @@ EPINonBlockingReadGet16(unsigned long ulBase, unsigned long ulCount, //! //! \param ulBase is the EPI module base address. //! \param ulCount is the maximum count of items to read. -//! \param pucBuf is the caller supplied buffer where the read data should +//! \param pucBuf is the caller-supplied buffer where the read data should //! be stored. //! //! This function reads 8-bit data items from the read FIFO and stores -//! the values in a caller supplied buffer. The function will read and store +//! the values in a caller-supplied buffer. The function reads and stores //! data from the FIFO until there is no more data in the FIFO or the maximum //! count is reached as specified in the parameter \e ulCount. The actual -//! count of items will be returned. +//! count of items is returned. //! //! \return The number of items read from the FIFO. // @@ -745,7 +837,7 @@ EPINonBlockingReadGet8(unsigned long ulBase, unsigned long ulCount, // // Read from the FIFO while there are any items to read, and - // the callers specified count is not exceeded. + // the caller's specified count is not exceeded. // while(HWREG(ulBase + EPI_O_RFIFOCNT) && ulCount--) { @@ -1047,7 +1139,7 @@ EPIIntRegister(unsigned long ulBase, void (*pfnHandler)(void)) //! //! \param ulBase is the EPI module base address. //! -//! This function will disable and clear the handler to be called when the +//! This function disables and clears the handler to be called when the //! EPI interrupt occurs. //! //! \sa IntRegister() for important information about registering interrupt diff --git a/bsp/lm3s8962/Libraries/driverlib/epi.h b/bsp/lm3s8962/Libraries/driverlib/epi.h index 3aa55e3384..54d8b1511c 100644 --- a/bsp/lm3s8962/Libraries/driverlib/epi.h +++ b/bsp/lm3s8962/Libraries/driverlib/epi.h @@ -2,7 +2,7 @@ // // epi.h - Prototypes and macros for the EPI module. // -// Copyright (c) 2008-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2008-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -44,6 +44,7 @@ extern "C" #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 //***************************************************************************** @@ -115,6 +116,37 @@ extern "C" #define EPI_HB8_CSCFG_MASK 0x00000600 +//***************************************************************************** +// +// 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_CSBAUD_DUAL 0x00000800 + +#define EPI_HB16_CSCFG_MASK 0x00000600 + //***************************************************************************** // // Values that can be passed to EPIConfigSDRAMSet() @@ -196,6 +228,8 @@ extern void EPIConfigGPModeSet(unsigned long ulBase, unsigned long ulConfig, unsigned long ulMaxWait); extern void EPIConfigHB8Set(unsigned long ulBase, unsigned long ulConfig, unsigned long ulMaxWait); +extern void EPIConfigHB16Set(unsigned long ulBase, unsigned long ulConfig, + unsigned long ulMaxWait); extern void EPIAddressMapSet(unsigned long ulBase, unsigned long ulMap); extern void EPINonBlockingReadConfigure(unsigned long ulBase, unsigned long ulChannel, diff --git a/bsp/lm3s8962/Libraries/driverlib/ethernet.c b/bsp/lm3s8962/Libraries/driverlib/ethernet.c index c341bbd1cf..9597ec99df 100644 --- a/bsp/lm3s8962/Libraries/driverlib/ethernet.c +++ b/bsp/lm3s8962/Libraries/driverlib/ethernet.c @@ -2,7 +2,7 @@ // // ethernet.c - Driver for the Integrated Ethernet Controller // -// Copyright (c) 2006-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2006-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -44,14 +44,14 @@ //! \param ulBase is the base address of the controller. //! \param ulEthClk is the rate of the clock supplied to the Ethernet module. //! -//! This function will prepare the Ethernet controller for first time use in +//! This function prepares the Ethernet controller for first-time use in //! a given hardware/software configuration. This function should be called //! before any other Ethernet API functions are called. //! -//! The peripheral clock will be the same as the processor clock. This will be -//! the value returned by SysCtlClockGet(), or it can be explicitly hard-coded -//! if it is constant and known (to save the code/execution overhead of a call -//! to SysCtlClockGet()). +//! The peripheral clock is the same as the processor clock. This value is +//! returned by SysCtlClockGet(), or it can be explicitly hard-coded if it is +//! constant and known (to save the code/execution overhead of a call to +//! SysCtlClockGet()). //! //! This function replaces the original EthernetInit() API and performs the //! same actions. A macro is provided in ethernet.h to map the @@ -112,14 +112,16 @@ EthernetInitExpClk(unsigned long ulBase, unsigned long ulEthClk) //! //! The Ethernet controller provides three control registers that are used //! to configure the controller's operation. The transmit control register -//! provides settings to enable full duplex operation, to auto-generate the +//! provides settings to enable full-duplex operation, to auto-generate the //! frame check sequence, and to pad the transmit packets to the minimum //! length as required by the IEEE standard. The receive control register //! provides settings to enable reception of packets with bad frame check //! sequence values and to enable multi-cast or promiscuous modes. The //! timestamp control register provides settings that enable support logic in //! the controller that allow the use of the General Purpose Timer 3 to capture -//! timestamps for the transmitted and received packets. +//! timestamps for the transmitted and received packets. Note that not all +//! devices support this functionality; see the data sheet to determine if +//! this feature is supported. //! //! The \e ulConfig parameter is the logical OR of the following values: //! @@ -183,11 +185,11 @@ EthernetConfigSet(unsigned long ulBase, unsigned long ulConfig) //! //! \param ulBase is the base address of the controller. //! -//! This function will query the control registers of the Ethernet controller -//! and return a bit-mapped configuration value. +//! This function queries the control registers of the Ethernet controller +//! and returns a bit-mapped configuration value. //! //! \sa The description of the EthernetConfigSet() function provides detailed -//! information for the bit-mapped configuration values that will be returned. +//! information for the bit-mapped configuration values that are returned. //! //! \return Returns the bit-mapped Ethernet controller configuration value. // @@ -219,7 +221,7 @@ EthernetConfigGet(unsigned long ulBase) //! \param ulBase is the base address of the controller. //! \param pucMACAddr is the pointer to the array of MAC-48 address octets. //! -//! This function will program the IEEE-defined MAC-48 address specified in +//! This function programs the IEEE-defined MAC-48 address specified in //! \e pucMACAddr into the Ethernet controller. This address is used by the //! Ethernet controller for hardware-level filtering of incoming Ethernet //! packets (when promiscuous mode is not enabled). @@ -282,7 +284,7 @@ EthernetMACAddrSet(unsigned long ulBase, unsigned char *pucMACAddr) //! \param pucMACAddr is the pointer to the location in which to store the //! array of MAC-48 address octets. //! -//! This function will read the currently programmed MAC address into the +//! This function reads the currently programmed MAC address into the //! \e pucMACAddr buffer. //! //! \sa Refer to EthernetMACAddrSet() API description for more details about @@ -329,8 +331,8 @@ EthernetMACAddrGet(unsigned long ulBase, unsigned char *pucMACAddr) //! the EthernetMACAddrSet() function, this API function can be called to //! enable the controller for normal operation. //! -//! This function will enable the controller's transmitter and receiver, and -//! will reset the receive FIFO. +//! This function enables the controller's transmitter and receiver, and +//! resets the receive FIFO. //! //! \return None. // @@ -371,8 +373,8 @@ EthernetEnable(unsigned long ulBase) //! \param ulBase is the base address of the controller. //! //! When terminating operations on the Ethernet interface, this function should -//! be called. This function will disable the transmitter and receiver, and -//! will clear out the receive FIFO. +//! be called. This function disables the transmitter and receiver, and +//! clears out the receive FIFO. //! //! \return None. // @@ -416,8 +418,7 @@ EthernetDisable(unsigned long ulBase) //! packets available in the receive FIFO. When the last bytes of a packet are //! successfully received (that is, the frame check sequence bytes), the packet //! count is incremented. Once the packet has been fully read (including the -//! frame check sequence bytes) from the FIFO, the packet count will be -//! decremented. +//! frame check sequence bytes) from the FIFO, the packet count is decremented. //! //! \return Returns \b true if there are one or more packets available in the //! receive FIFO, including the current packet being read, and \b false @@ -448,7 +449,7 @@ EthernetPacketAvail(unsigned long ulBase) //! packet at a time. After the packet has been written into the FIFO, the //! transmit request bit must be set to enable the transmission of the packet. //! Only after the packet has been transmitted can a new packet be written -//! into the FIFO. This function will simply check to see if a packet is +//! into the FIFO. This function simply checks to see if a packet is //! in progress. If so, there is no space available in the transmit FIFO. //! //! \return Returns \b true if a space is available in the transmit FIFO, and @@ -609,20 +610,20 @@ EthernetPacketGetInternal(unsigned long ulBase, unsigned char *pucBuf, //! \param lBufLen is the maximum number of bytes to be read into the buffer. //! //! This function reads a packet from the receive FIFO of the controller and -//! places it into \e pucBuf. If no packet is available the function will -//! return immediately. Otherwise, the function will read the entire packet -//! from the receive FIFO. If there are more bytes in the packet than will fit -//! into \e pucBuf (as specified by \e lBufLen), the function will return the -//! negated length of the packet and the buffer will contain \e lBufLen bytes -//! of the packet. Otherwise, the function will return the length of the -//! packet that was read and \e pucBuf will contain the entire packet +//! places it into \e pucBuf. If no packet is available the function +//! returns immediately. Otherwise, the function reads the entire packet +//! from the receive FIFO. If there are more bytes in the packet than can fit +//! into \e pucBuf (as specified by \e lBufLen), the function returns the +//! negated length of the packet and the buffer contains \e lBufLen bytes +//! of the packet. Otherwise, the function returns the length of the +//! packet that was read and \e pucBuf contains the entire packet //! (excluding the frame check sequence bytes). //! //! This function replaces the original EthernetPacketNonBlockingGet() API and //! performs the same actions. A macro is provided in ethernet.h to //! map the original API to this API. //! -//! \note This function will return immediately if no packet is available. +//! \note This function returns immediately if no packet is available. //! //! \return Returns \b 0 if no packet is available, the negated packet length //! \b -n if the packet is too large for \e pucBuf, and the packet length \b n @@ -663,16 +664,16 @@ EthernetPacketGetNonBlocking(unsigned long ulBase, unsigned char *pucBuf, //! \param lBufLen is the maximum number of bytes to be read into the buffer. //! //! This function reads a packet from the receive FIFO of the controller and -//! places it into \e pucBuf. The function will wait until a packet is -//! available in the FIFO. Then the function will read the entire packet -//! from the receive FIFO. If there are more bytes in the packet than will -//! fit into \e pucBuf (as specified by \e lBufLen), the function will return -//! the negated length of the packet and the buffer will contain \e lBufLen -//! bytes of the packet. Otherwise, the function will return the length of -//! the packet that was read and \e pucBuf will contain the entire packet +//! places it into \e pucBuf. The function waits until a packet is +//! available in the FIFO. Then the function reads the entire packet +//! from the receive FIFO. If there are more bytes in the packet than can +//! fit into \e pucBuf (as specified by \e lBufLen), the function returns +//! the negated length of the packet and the buffer contains \e lBufLen +//! bytes of the packet. Otherwise, the function returns the length of +//! the packet that was read and \e pucBuf contains the entire packet //! (excluding the frame check sequence bytes). //! -//! \note This function is blocking and will not return until a packet arrives. +//! \note This function is blocking and does not return until a packet arrives. //! //! \return Returns the negated packet length \b -n if the packet is too large //! for \e pucBuf, and returns the packet length \b n otherwise. @@ -832,10 +833,10 @@ EthernetPacketPutInternal(unsigned long ulBase, unsigned char *pucBuf, //! This function writes \e lBufLen bytes of the packet contained in \e pucBuf //! into the transmit FIFO of the controller and then activates the //! transmitter for this packet. If no space is available in the FIFO, the -//! function will return immediately. If space is available, the -//! function will return once \e lBufLen bytes of the packet have been placed -//! into the FIFO and the transmitter has been started. The function will not -//! wait for the transmission to complete. The function will return the +//! function returns immediately. If space is available, the +//! function returns once \e lBufLen bytes of the packet have been placed +//! into the FIFO and the transmitter has been started. The function does not +//! wait for the transmission to complete. The function returns the //! negated \e lBufLen if the length is larger than the space available in //! the transmit FIFO. //! @@ -843,7 +844,7 @@ EthernetPacketPutInternal(unsigned long ulBase, unsigned char *pucBuf, //! performs the same actions. A macro is provided in ethernet.h to //! map the original API to this API. //! -//! \note This function does not block and will return immediately if no space +//! \note This function does not block and returns immediately if no space //! is available for the transmit packet. //! //! \return Returns \b 0 if no space is available in the transmit FIFO, the @@ -886,14 +887,14 @@ EthernetPacketPutNonBlocking(unsigned long ulBase, unsigned char *pucBuf, //! //! This function writes \e lBufLen bytes of the packet contained in \e pucBuf //! into the transmit FIFO of the controller and then activates the transmitter -//! for this packet. This function will wait until the transmit FIFO is empty. -//! Once space is available, the function will return once \e lBufLen bytes of +//! for this packet. This function waits until the transmit FIFO is empty. +//! Once space is available, the function returns once \e lBufLen bytes of //! the packet have been placed into the FIFO and the transmitter has been -//! started. The function will not wait for the transmission to complete. The -//! function will return the negated \e lBufLen if the length is larger than +//! started. The function does not wait for the transmission to complete. The +//! function returns the negated \e lBufLen if the length is larger than //! the space available in the transmit FIFO. //! -//! \note This function blocks and will wait until space is available for the +//! \note This function blocks and waits until space is available for the //! transmit packet before returning. //! //! \return Returns the negated packet length \b -lBufLen if the packet is too @@ -933,9 +934,10 @@ EthernetPacketPut(unsigned long ulBase, unsigned char *pucBuf, //! enabled Ethernet interrupts occur. //! //! This function sets the handler to be called when the Ethernet interrupt -//! occurs. This will enable the global interrupt in the interrupt controller; -//! specific Ethernet interrupts must be enabled via EthernetIntEnable(). It -//! is the interrupt handler's responsibility to clear the interrupt source. +//! occurs. This function enables the global interrupt in the interrupt +//! controller; specific Ethernet interrupts must be enabled via +//! EthernetIntEnable(). It is the interrupt handler's responsibility to clear +//! the interrupt source. //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -969,9 +971,9 @@ EthernetIntRegister(unsigned long ulBase, void (*pfnHandler)(void)) //! //! \param ulBase is the base address of the controller. //! -//! This function unregisters the interrupt handler. This will disable the -//! global interrupt in the interrupt controller so that the interrupt handler -//! no longer is called. +//! This function unregisters the interrupt handler. This function disables +//! the global interrupt in the interrupt controller so that the interrupt +//! handler no longer is called. //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -1005,16 +1007,17 @@ EthernetIntUnregister(unsigned long ulBase) //! \param ulBase is the base address of the controller. //! \param ulIntFlags is the bit mask of the interrupt sources to be enabled. //! -//! Enables the indicated Ethernet interrupt sources. Only the sources that -//! are enabled can be reflected to the processor interrupt; disabled sources -//! have no effect on the processor. +//! This function enables the indicated Ethernet interrupt sources. Only the +//! sources that are enabled can be reflected to the processor interrupt; +//! disabled sources have no effect on the processor. //! //! The \e ulIntFlags parameter is the logical OR of any of the following: //! //! - \b ETH_INT_PHY - An interrupt from the PHY has occurred. The integrated -//! PHY supports a number of interrupt conditions. The PHY register, PHY_MR17, -//! must be read to determine which PHY interrupt has occurred. This register -//! can be read using the EthernetPHYRead() API function. +//! PHY supports a number of interrupt conditions. The appropriate PHY +//! register, PHY_MR17 or PHY_MR29 depending on the device class, must be read +//! to determine which PHY interrupt has occurred. This register can be read +//! using the EthernetPHYRead() API function. //! - \b ETH_INT_MDIO - This interrupt indicates that a transaction on the //! management interface has completed successfully. //! - \b ETH_INT_RXER - This interrupt indicates that an error has occurred @@ -1093,9 +1096,9 @@ EthernetIntDisable(unsigned long ulBase, unsigned long ulIntFlags) //! \param bMasked is false if the raw interrupt status is required and true //! if the masked interrupt status is required. //! -//! This returns the interrupt status for the Ethernet controller. Either the -//! raw interrupt status or the status of interrupts that are allowed to -//! reflect to the processor can be returned. +//! This function returns the interrupt status for the Ethernet controller. +//! Either the raw interrupt status or the status of interrupts that are +//! allowed to reflect to the processor can be returned. //! //! \return Returns the current interrupt status, enumerated as a bit field of //! values described in EthernetIntEnable(). @@ -1138,20 +1141,20 @@ EthernetIntStatus(unsigned long ulBase, tBoolean bMasked) //! \param ulIntFlags is a bit mask of the interrupt sources to be cleared. //! //! The specified Ethernet interrupt sources are cleared so that they no longer -//! assert. This must be done in the interrupt handler to keep it from being -//! called again immediately upon exit. +//! assert. This function must be called in the interrupt handler to keep the +//! interrupt from being triggered again immediately upon exit. //! //! The \e ulIntFlags parameter has the same definition as the \e ulIntFlags //! parameter to EthernetIntEnable(). //! -//! \note Since there is a write buffer in the Cortex-M3 processor, it may take -//! several clock cycles before the interrupt source is actually cleared. +//! \note Because there is a write buffer in the Cortex-M processor, it may +//! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid //! returning from the interrupt handler before the interrupt source is //! actually cleared. Failure to do so may result in the interrupt handler -//! being immediately reentered (since NVIC still sees the interrupt source -//! asserted). +//! being immediately reentered (because the interrupt controller still sees +//! the interrupt source asserted). //! //! \return None. // @@ -1173,6 +1176,42 @@ EthernetIntClear(unsigned long ulBase, unsigned long ulIntFlags) HWREG(ulBase + MAC_O_IACK) = ulIntFlags; } +//***************************************************************************** +// +//! Sets the PHY address. +//! +//! \param ulBase is the base address of the controller. +//! \param ucAddr is the address of the PHY. +//! +//! This function sets the address of the PHY that is accessed via +//! EthernetPHYRead() and EthernePHYWrite(). This configuration is only needed +//! when connecting to an external PHY via MII, and should not be used on +//! devices that have integrated PHYs. +//! +//! \return None. +// +//***************************************************************************** +void +EthernetPHYAddrSet(unsigned long ulBase, unsigned char ucAddr) +{ + // + // Check the arguments. + // + ASSERT(ulBase == ETH_BASE); + + // + // Wait for any pending transaction to complete. + // + while(HWREG(ulBase + MAC_O_MCTL) & MAC_MCTL_START) + { + } + + // + // Set the PHY address. + // + HWREG(ulBase + MAC_O_MADD) = ucAddr; +} + //***************************************************************************** // //! Writes to the PHY register. @@ -1181,7 +1220,7 @@ EthernetIntClear(unsigned long ulBase, unsigned long ulIntFlags) //! \param ucRegAddr is the address of the PHY register to be accessed. //! \param ulData is the data to be written to the PHY register. //! -//! This function will write the \e ulData to the PHY register specified by +//! This function writes the \e ulData to the PHY register specified by //! \e ucRegAddr. //! //! \return None. @@ -1229,7 +1268,7 @@ EthernetPHYWrite(unsigned long ulBase, unsigned char ucRegAddr, //! \param ulBase is the base address of the controller. //! \param ucRegAddr is the address of the PHY register to be accessed. //! -//! This function will return the contents of the PHY register specified by +//! This function returns the contents of the PHY register specified by //! \e ucRegAddr. //! //! \return Returns the 16-bit value read from the PHY. @@ -1269,6 +1308,56 @@ EthernetPHYRead(unsigned long ulBase, unsigned char ucRegAddr) return(HWREG(ulBase + MAC_O_MRXD) & MAC_MRXD_MDRX_M); } +//***************************************************************************** +// +//! Powers off the Ethernet PHY. +//! +//! \param ulBase is the base address of the controller. +//! +//! This function powers off the Ethernet PHY, reducing the current +//! consumption of the device. While in the powered off state, the Ethernet +//! controller is unable to connect to the Ethernet. +//! +//! \return None. +// +//***************************************************************************** +void +EthernetPHYPowerOff(unsigned long ulBase) +{ + // + // Set the PWRDN bit and clear the ANEGEN bit in the PHY, putting it into + // its low power mode. + // + EthernetPHYWrite(ulBase, PHY_MR0, + (EthernetPHYRead(ulBase, PHY_MR0) & ~PHY_MR0_ANEGEN) | + PHY_MR0_PWRDN); +} + +//***************************************************************************** +// +//! Powers on the Ethernet PHY. +//! +//! \param ulBase is the base address of the controller. +//! +//! This function powers on the Ethernet PHY, enabling it return to normal +//! operation. By default, the PHY is powered on, so this function is only +//! called if EthernetPHYPowerOff() has previously been called. +//! +//! \return None. +// +//***************************************************************************** +void +EthernetPHYPowerOn(unsigned long ulBase) +{ + // + // Clear the PWRDN bit and set the ANEGEN bit in the PHY, putting it into + // normal operating mode. + // + EthernetPHYWrite(ulBase, PHY_MR0, + (EthernetPHYRead(ulBase, PHY_MR0) & ~PHY_MR0_PWRDN) | + PHY_MR0_ANEGEN); +} + //***************************************************************************** // // Close the Doxygen group. diff --git a/bsp/lm3s8962/Libraries/driverlib/ethernet.h b/bsp/lm3s8962/Libraries/driverlib/ethernet.h index 2f03b39291..015d4b1981 100644 --- a/bsp/lm3s8962/Libraries/driverlib/ethernet.h +++ b/bsp/lm3s8962/Libraries/driverlib/ethernet.h @@ -2,7 +2,7 @@ // // ethernet.h - Defines and Macros for the ethernet module. // -// Copyright (c) 2006-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2006-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -136,10 +136,13 @@ extern void EthernetIntEnable(unsigned long ulBase, unsigned long ulIntFlags); extern void EthernetIntDisable(unsigned long ulBase, unsigned long ulIntFlags); extern unsigned long EthernetIntStatus(unsigned long ulBase, tBoolean bMasked); extern void EthernetIntClear(unsigned long ulBase, unsigned long ulIntFlags); +extern void EthernetPHYAddrSet(unsigned long ulBase, unsigned char ucAddr); extern void EthernetPHYWrite(unsigned long ulBase, unsigned char ucRegAddr, unsigned long ulData); extern unsigned long EthernetPHYRead(unsigned long ulBase, unsigned char ucRegAddr); +extern void EthernetPHYPowerOff(unsigned long ulBase); +extern void EthernetPHYPowerOn(unsigned long ulBase); //***************************************************************************** // diff --git a/bsp/lm3s8962/Libraries/driverlib/fan.c b/bsp/lm3s8962/Libraries/driverlib/fan.c new file mode 100644 index 0000000000..eb1b887e5d --- /dev/null +++ b/bsp/lm3s8962/Libraries/driverlib/fan.c @@ -0,0 +1,633 @@ +//***************************************************************************** +// +// fan.c - Driver for the FAN controller. +// +// Copyright (c) 2010-2011 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 8264 of the Stellaris Peripheral Driver Library. +// +//***************************************************************************** + +#include "inc/hw_types.h" +#include "inc/hw_memmap.h" +#include "inc/hw_fan.h" +#include "inc/hw_ints.h" +#include "driverlib/fan.h" +#include "driverlib/debug.h" +#include "driverlib/interrupt.h" + +//***************************************************************************** +// +//! \addtogroup fan_api +//! @{ +// +//***************************************************************************** + +//***************************************************************************** +// +//! Enables a FAN channel for operation. +//! +//! \param ulBase is the base address of the FAN module. +//! \param ulChannel is the FAN channel to enable. +//! +//! This function enables the specified FAN channel for operation. +//! +//! \return None. +// +//***************************************************************************** +void +FanChannelEnable(unsigned long ulBase, unsigned long ulChannel) +{ + // + // Check the arguments. + // + ASSERT(ulBase == FAN0_BASE); + ASSERT(ulChannel <= 5); + + // + // Enable the requested channel + // + HWREG(ulBase + FAN_O_CTL) |= 1 << ulChannel; +} + +//***************************************************************************** +// +//! Disables a FAN channel for operation. +//! +//! \param ulBase is the base address of the FAN module. +//! \param ulChannel is the FAN channel to disable. +//! +//! This function disables the specified FAN channel for operation. +//! +//! \return None. +// +//***************************************************************************** +void +FanChannelDisable(unsigned long ulBase, unsigned long ulChannel) +{ + // + // Check the arguments. + // + ASSERT(ulBase == FAN0_BASE); + ASSERT(ulChannel <= 5); + + // + // Disable the requested channel + // + HWREG(ulBase + FAN_O_CTL) &= ~(1 << ulChannel); +} + +//***************************************************************************** +// +//! Gets the status of a FAN channel. +//! +//! \param ulBase is the base address of the FAN module. +//! \param ulChannel is the FAN channel to query for status. +//! +//! This function queries and returns the status of the specified channel. +//! The returned value is one of: +//! +//! - \b FAN_STATUS_STALLED if the cooling fan is stalled +//! - \b FAN_STATUS_CHANGING if the fan is changing to the commanded speed +//! - \b FAN_STATUS_LOCKED if the fan is locked at the commanded speed +//! - \b FAN_STATUS_NOATTAIN if the fan cannot achieve the commanded speed +//! +//! \return Returns the status of the specified FAN channel. +// +//***************************************************************************** +unsigned long +FanChannelStatus(unsigned long ulBase, unsigned long ulChannel) +{ + // + // Check the arguments. + // + ASSERT(ulBase == FAN0_BASE); + ASSERT(ulChannel <= 5); + + // + // Read and return the status for the specified fan channel + // + return((HWREG(ulBase + FAN_O_STS) >> (ulChannel * 2)) & FAN_STS_ST0_M); +} + +//***************************************************************************** +// +//! Configures a FAN channel for manual operation. +//! +//! \param ulBase is the base address of the FAN module. +//! \param ulChannel is the FAN channel to configure. +//! \param ulConfig is the logical OR of manual configuration flags. +//! +//! This function configures a specific FAN channel to operate in manual +//! mode. The \e ulConfig parameter is the logical OR of several choices of +//! configuration flags as follows: +//! +//! One of the following to select the number of tachometer pulses used for +//! speed averaging: +//! +//! - \b FAN_CONFIG_AVG_NONE to disable fan speed averaging +//! - \b FAN_CONFIG_AVG_2 to select 2 pulses for speed averaging +//! - \b FAN_CONFIG_AVG_4 to select 4 pulses for speed averaging +//! - \b FAN_CONFIG_AVG_8 to select 8 pulses for speed averaging +//! +//! One of the following to select the tachometer pulses per revolution: +//! +//! - \b FAN_CONFIG_TACH_1 to select 1 pulse per revolution +//! - \b FAN_CONFIG_TACH_2 to select 2 pulses per revolution +//! - \b FAN_CONFIG_TACH_4 to select 4 pulses per revolution +//! - \b FAN_CONFIG_TACH_8 to select 8 pulses per revolution +//! +//! \return None. +// +//***************************************************************************** +void +FanChannelConfigManual(unsigned long ulBase, unsigned long ulChannel, + unsigned long ulConfig) +{ + // + // Check the arguments. + // + ASSERT(ulBase == FAN0_BASE); + ASSERT(ulChannel <= 5); + + // + // Program the fan channel for manual mode with parameters. + // + HWREG(ulBase + FAN_O_CH0 + (ulChannel * 0x10)) = FAN_CH0_MAN | ulConfig; +} + +//***************************************************************************** +// +//! Configures a FAN channel for automatic operation. +//! +//! \param ulBase is the base address of the FAN module. +//! \param ulChannel is the FAN channel to configure. +//! \param ulConfig is the logical OR of configuration flags. +//! +//! This function configures a specific FAN channel to operate in automatic +//! mode. The \e ulConfig parameter is the logical OR of several choices of +//! configuration flags as follows: +//! +//! One of the following to select the automatic restart mode: +//! +//! - \b FAN_CONFIG_RESTART to enable automatic restart after stall +//! - \b FAN_CONFIG_NORESTART to disable automatic restart after stall +//! +//! One of the following to select the acceleration rate when changing speed: +//! +//! - \b FAN_CONFIG_ACCEL_FAST to select fast acceleration +//! - \b FAN_CONFIG_ACCEL_SLOW to select slow acceleration +//! +//! One of the following to select the number of tachometer pulses to use +//! for the hysteresis count: +//! \b FAN_CONFIG_HYST_1, \b FAN_CONFIG_HYST_2, \b FAN_CONFIG_HYST_4, +//! \b FAN_CONFIG_HYST_8, \b FAN_CONFIG_HYST_16, \b FAN_CONFIG_HYST_32, +//! \b FAN_CONFIG_HYST_64, or \b FAN_CONFIG_HYST_128 +//! +//! One of the following to select the start period as the number of tachometer +//! pulses. The start period is the amount of time that a starting PWM duty +//! cycle is used after the FAN channel is commended to a certain speed: +//! \b FAN_CONFIG_START_2, \b FAN_CONFIG_START_4, \b FAN_CONFIG_START_8, +//! \b FAN_CONFIG_START_16, \b FAN_CONFIG_START_32, \b FAN_CONFIG_START_64, +//! \b FAN_CONFIG_START_128, or \b FAN_CONFIG_START_256 +//! +//! One of the following to specify the duty cycle that is used when the FAN +//! channel is starting, during the starting period (above): +//! +//! - \b FAN_CONFIG_START_DUTY_OFF to disable the use of startup duty cycle +//! - \b FAN_CONFIG_START_DUTY_50 to select 50% startup duty cycle +//! - \b FAN_CONFIG_START_DUTY_75 to select 75% startup duty cycle +//! - \b FAN_CONFIG_START_DUTY_100 to select 100% startup duty cycle +//! +//! One of the following to select the number of tachometer pulses used for +//! speed averaging: +//! +//! - \b FAN_CONFIG_AVG_NONE to disable fan speed averaging +//! - \b FAN_CONFIG_AVG_2 to select 2 pulses for speed averaging +//! - \b FAN_CONFIG_AVG_4 to select 4 pulses for speed averaging +//! - \b FAN_CONFIG_AVG_8 to select 8 pulses for speed averaging +//! +//! One of the following to select the tachometer pulses per revolution: +//! +//! - \b FAN_CONFIG_TACH_1 to select 1 pulse per revolution +//! - \b FAN_CONFIG_TACH_2 to select 2 pulses per revolution +//! - \b FAN_CONFIG_TACH_4 to select 4 pulses per revolution +//! - \b FAN_CONFIG_TACH_8 to select 8 pulses per revolution +//! +//! \return None. +// +//***************************************************************************** +void +FanChannelConfigAuto(unsigned long ulBase, unsigned long ulChannel, + unsigned long ulConfig) +{ + // + // Check the arguments. + // + ASSERT(ulBase == FAN0_BASE); + ASSERT(ulChannel <= 5); + + // + // Program the fan channel for automatic mode with parameters. + // + HWREG(ulBase + FAN_O_CH0 + (ulChannel * 0x10)) = ~FAN_CH0_MAN & ulConfig; +} + +//***************************************************************************** +// +//! Sets the duty cycle of a FAN channel when in manual mode. +//! +//! \param ulBase is the base address of the FAN module. +//! \param ulChannel is the FAN channel to program the duty cycle. +//! \param ulDuty is the duty cycle in clocks from 0-511. +//! +//! This function sets the duty cycle of a FAN channel if the channel is +//! configured for manual mode. The duty cycle is specified in clocks from +//! 0-511 out of a 512 clock PWM period. +//! +//! \return None. +// +//***************************************************************************** +void +FanChannelDutySet(unsigned long ulBase, unsigned long ulChannel, + unsigned long ulDuty) +{ + // + // Check the arguments. + // + ASSERT(ulBase == FAN0_BASE); + ASSERT(ulChannel <= 5); + ASSERT(ulDuty < 512); + + // + // Program the specified duty cycle for the specified channel + // + HWREG(ulBase + FAN_O_CMD0 + (ulChannel * 0x10)) = + (ulDuty << FAN_CMD0_DC_S) & FAN_CMD0_DC_M; +} + +//***************************************************************************** +// +//! Reads the duty cycle of a FAN channel. +//! +//! \param ulBase is the base address of the FAN module. +//! \param ulChannel is the FAN channel to query for duty cycle. +//! +//! This function gets the duty cycle of a FAN channel. If the channel is in +//! manual mode, then this is the value that was programmed. If the FAN +//! channel is configured for automatic mode, then this is the value that is +//! calculated by the Fan Control peripheral. +//! +//! \return Returns the FAN channel duty cycle as a number of clocks from +//! 0-511, out of a 512 clock PWM period. +// +//***************************************************************************** +unsigned long +FanChannelDutyGet(unsigned long ulBase, unsigned long ulChannel) +{ + unsigned long ulDuty; + + // + // Check the arguments. + // + ASSERT(ulBase == FAN0_BASE); + ASSERT(ulChannel <= 5); + + // + // Read the duty cycle field from the command register and shift to + // lower bits for return value. + // + ulDuty = HWREG(ulBase + FAN_O_CMD0 + (ulChannel * 0x10)) & FAN_CMD0_DC_M; + ulDuty >>= FAN_CMD0_DC_S; + + // + // Return the duty cycle for the specified channel. + // + return(ulDuty); +} + +//***************************************************************************** +// +//! Sets the RPM of a FAN channel when in automatic mode. +//! +//! \param ulBase is the base address of the FAN module. +//! \param ulChannel is the FAN channel to program the RPM. +//! \param ulRPM is the RPM as a value from 0-8191. +//! +//! This function sets the RPM of the fan channel if the fan channel is +//! configured for automatic mode. If configured for manual mode, then this +//! function has no effect. +//! +//! \return None. +// +//***************************************************************************** +void +FanChannelRPMSet(unsigned long ulBase, unsigned long ulChannel, + unsigned long ulRPM) +{ + // + // Check the arguments. + // + ASSERT(ulBase == FAN0_BASE); + ASSERT(ulChannel <= 5); + ASSERT(ulRPM < 8192); + + // + // Program the specified RPM for the specified channel + // + HWREG(ulBase + FAN_O_CMD0 + (ulChannel * 0x10)) = ulRPM; +} + +//***************************************************************************** +// +//! Reads the RPM of a FAN channel. +//! +//! \param ulBase is the base address of the FAN module. +//! \param ulChannel is the FAN channel to query for RPM. +//! +//! This function gets the RPM of a FAN channel. +//! +//! \return Returns the FAN channel RPM as a number from 0-4095. +// +//***************************************************************************** +unsigned long +FanChannelRPMGet(unsigned long ulBase, unsigned long ulChannel) +{ + // + // Check the arguments. + // + ASSERT(ulBase == FAN0_BASE); + ASSERT(ulChannel <= 5); + + // + // Read and return the RPM for the specified channel. + // + return(HWREG(ulBase + FAN_O_CST0 + (ulChannel * 0x10)) & FAN_CST0_RPM_M); +} + +//***************************************************************************** +// +//! Enables FAN module interrupts. +//! +//! \param ulBase is the base address of the FAN module. +//! \param ulFlags is the logical OR of all the interrupts to be enabled. +//! +//! This function enables one or more interrupts from the FAN module. The +//! \e ulFlags parameter is the logical OR of all the possible interrupts that +//! can be enabled. For each channel, the following interrupt flags are +//! available: +//! +//! - \b FAN_CHn_INT_STALL means that a stall was detected (in either mode). +//! - \b FAN_CHn_INT_AUTO_SPEED_ERROR means that in automatic mode, the cooling +//! fan cannot attain the commanded speed. +//! - \b FAN_CHn_INT_AUTO_SPEED_OK means that in automatic mode, the cooling +//! fan has attained the commanded speed. +//! +//! In the above flag names, the \b CHn placeholder should be replaced with +//! the actual channel number, 0-5 (for example, CH1). +//! +//! The interrupt flags have a different meaning if the FAN channel is +//! configured for manual mode. The following alternate set of flag names is +//! available for convenience to use in manual mode: +//! +//! - \b FAN_CHn_INT_MANUAL_SPEED_UPDATE means that in manual mode, the speed +//! was calculated. +//! - \b FAN_CHn_INT_MANUAL_SPEED_CHANGE means that in manual mode, the speed +//! changed. +//! +//! Note that even though the names are different for manual mode, the values +//! are the same. For example \b _AUTO_SPEED_ERROR is the same value as +//! \b _MANUAL_SPEED_UPDATE. The different names are provided just to make it +//! easier to associate a meaning with each interrupt flag. +//! +//! \return None. +// +//***************************************************************************** +void +FanIntEnable(unsigned long ulBase, unsigned long ulFlags) +{ + // + // Check the arguments. + // + ASSERT(ulBase == FAN0_BASE); + + // + // Enable the requested interrupt sources. + // + HWREG(ulBase + FAN_O_IM) |= ulFlags; +} + +//***************************************************************************** +// +//! Disables FAN module interrupts. +//! +//! \param ulBase is the base address of the FAN module. +//! \param ulFlags is the logical OR of all the interrupts to be disabled. +//! +//! This function disables one or more interrupts from the FAN module. The +//! \e ulFlags parameter is the logical OR of all the possible interrupts that +//! can be enabled. For a list of possible interrupt flags, refer to the +//! documentation for the function FanIntEnable(). +//! +//! \return None. +// +//***************************************************************************** +void +FanIntDisable(unsigned long ulBase, unsigned long ulFlags) +{ + // + // Check the arguments. + // + ASSERT(ulBase == FAN0_BASE); + + // + // Disable the requested interrupt sources. + // + HWREG(ulBase + FAN_O_IM) &= ~ulFlags; +} + +//***************************************************************************** +// +//! Gets the FAN module interrupt status. +//! +//! \param ulBase is the base address of the FAN module. +//! \param bMasked is set \b true to get the masked interrupt status, or +//! \b false to get the raw interrupt status. +//! +//! This function returns the interrupt status of the FAN module. It can +//! return either the raw or masked interrupt status. +//! +//! \return Returns the masked or raw FAN interrupt status, as a bit field +//! of multiple FAN interrupt flags. For a list of all the possible interrupt +//! flags, refer to the documentation for the function FanIntEnable(). +// +//***************************************************************************** +unsigned long +FanIntStatus(unsigned long ulBase, tBoolean bMasked) +{ + // + // Check the arguments. + // + ASSERT(ulBase == FAN0_BASE); + + // + // Return either the interrupt status or the raw interrupt status as + // requested. + // + if(bMasked) + { + return(HWREG(ulBase + FAN_O_MIS)); + } + else + { + return(HWREG(ulBase + FAN_O_RIS)); + } +} + +//***************************************************************************** +// +//! Clears pending FAN module interrupts. +//! +//! \param ulBase is the base address of the FAN module. +//! \param ulFlags is the logical OR of all the interrupts to be cleared. +//! +//! This function clears one or more interrupts from the FAN module. The +//! \e ulFlags parameter is the logical OR of all the possible interrupts that +//! can be cleared. For a list of possible interrupt flags, refer to the +//! documentation for the function FanIntEnable(). +//! +//! \return None. +// +//***************************************************************************** +void +FanIntClear(unsigned long ulBase, unsigned long ulFlags) +{ + // + // Check the arguments. + // + ASSERT(ulBase == FAN0_BASE); + + // + // Clear the requested pending interrupts + // + HWREG(ulBase + FAN_O_IC) = ulFlags; +} + +//***************************************************************************** +// +//! Registers an interrupt handler for the FAN module. +//! +//! \param ulBase is the base address of the FAN module. +//! \param pfnHandler is a pointer to the function to be called when the +//! interrupt is activated. +//! +//! This function sets and enables the handler to be called when the FAN module +//! generates an interrupt. Specific FAN interrupts must still be enabled +//! with the FanIntEnable() function. +//! +//! \sa IntRegister() for important information about registering interrupt +//! handlers. +//! +//! \return None. +// +//***************************************************************************** +void +FanIntRegister(unsigned long ulBase, void (*pfnHandler)(void)) +{ + // + // Check the arguments. + // + ASSERT(ulBase == FAN0_BASE); + ASSERT(pfnHandler); + + // + // Register the interrupt handler. + // + IntRegister(INT_FAN0, pfnHandler); + + // + // Enable the FAN peripheral interrupt. + // + IntEnable(INT_FAN0); +} + +//***************************************************************************** +// +//! Unregisters an interrupt handler for the FAN module. +//! +//! \param ulBase is the base address of the FAN module. +//! +//! This function disables and clears the handler to be called when the +//! FAN module interrupt occurs. +//! +//! \sa IntRegister() for important information about registering interrupt +//! handlers. +//! +//! \return None. +// +//***************************************************************************** +void +FanIntUnregister(unsigned long ulBase) +{ + // + // Check the arguments. + // + ASSERT(ulBase == FAN0_BASE); + + // + // Disable the FAN peripheral interrupt. + // + IntDisable(INT_FAN0); + + // + // Unregister the interrupt handler. + // + IntUnregister(INT_FAN0); +} + +//***************************************************************************** +// +//! Gets the number of supported FAN channels. +//! +//! \param ulBase is the base address of the FAN module. +//! +//! This function gets the number of FAN channels that are supported by the +//! Fan Control peripheral. +//! +//! \return Returns the number of FAN channels. +// +//***************************************************************************** +unsigned long +FanChannelsGet(unsigned long ulBase) +{ + // + // Check the arguments. + // + ASSERT(ulBase == FAN0_BASE); + + // + // Read and return the fan channel count + // + return(HWREG(ulBase + FAN_O_PP) & FAN_PP_CHAN_M); +} + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** diff --git a/bsp/lm3s8962/Libraries/driverlib/fan.h b/bsp/lm3s8962/Libraries/driverlib/fan.h new file mode 100644 index 0000000000..1b9fb94059 --- /dev/null +++ b/bsp/lm3s8962/Libraries/driverlib/fan.h @@ -0,0 +1,168 @@ +//***************************************************************************** +// +// fan.h - Prototypes and macros for the Fan controller. +// +// Copyright (c) 2010-2011 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 8264 of the Stellaris Peripheral Driver Library. +// +//***************************************************************************** + +#ifndef __FAN_H__ +#define __FAN_H__ + +//***************************************************************************** +// +// If building with a C++ compiler, make all of the definitions in this header +// have a C binding. +// +//***************************************************************************** +#ifdef __cplusplus +extern "C" +{ +#endif + +//***************************************************************************** +// +// Fan status values that can be returned from the FanChannelStatus() function. +// +//***************************************************************************** +#define FAN_STATUS_STALLED 0 +#define FAN_STATUS_CHANGING 1 +#define FAN_STATUS_LOCKED 2 +#define FAN_STATUS_NOATTAIN 3 + +//***************************************************************************** +// +// Configuration flags to be used with FanChannelConfigManual() and +// FanChannelConfigAuto(). +// +//***************************************************************************** +#define FAN_CONFIG_RESTART (1 << 15) +#define FAN_CONFIG_NORESTART (0 << 15) +#define FAN_CONFIG_ACCEL_FAST (1 << 14) +#define FAN_CONFIG_ACCEL_SLOW (0 << 14) +#define FAN_CONFIG_HYST_1 (0 << 11) +#define FAN_CONFIG_HYST_2 (1 << 11) +#define FAN_CONFIG_HYST_4 (2 << 11) +#define FAN_CONFIG_HYST_8 (3 << 11) +#define FAN_CONFIG_HYST_16 (4 << 11) +#define FAN_CONFIG_HYST_32 (5 << 11) +#define FAN_CONFIG_HYST_64 (6 << 11) +#define FAN_CONFIG_HYST_128 (7 << 11) +#define FAN_CONFIG_START_2 (0 << 8) +#define FAN_CONFIG_START_4 (1 << 8) +#define FAN_CONFIG_START_8 (2 << 8) +#define FAN_CONFIG_START_16 (3 << 8) +#define FAN_CONFIG_START_32 (4 << 8) +#define FAN_CONFIG_START_64 (5 << 8) +#define FAN_CONFIG_START_128 (6 << 8) +#define FAN_CONFIG_START_256 (7 << 8) +#define FAN_CONFIG_START_DUTY_OFF (0 << 6) +#define FAN_CONFIG_START_DUTY_50 (1 << 6) +#define FAN_CONFIG_START_DUTY_75 (2 << 6) +#define FAN_CONFIG_START_DUTY_100 (3 << 6) +#define FAN_CONFIG_AVG_NONE (0 << 4) +#define FAN_CONFIG_AVG_2 (1 << 4) +#define FAN_CONFIG_AVG_4 (2 << 4) +#define FAN_CONFIG_AVG_8 (3 << 4) +#define FAN_CONFIG_TACH_1 (0 << 2) +#define FAN_CONFIG_TACH_2 (1 << 2) +#define FAN_CONFIG_TACH_4 (2 << 2) +#define FAN_CONFIG_TACH_8 (3 << 2) + +//***************************************************************************** +// +// Interrupt configuration/status flags to be used with the following +// functions: FanIntEnable(), FanIntDisable(), FanIntStatus(), FanIntClear(). +// +//***************************************************************************** +#define FAN_CH5_INT_AUTO_SPEED_OK (1 << 22) +#define FAN_CH5_INT_MANUAL_SPEED_CHANGE (1 << 22) +#define FAN_CH5_INT_AUTO_SPEED_ERROR (1 << 21) +#define FAN_CH5_INT_MANUAL_SPEED_UPDATE (1 << 21) +#define FAN_CH5_INT_STALL (1 << 20) +#define FAN_CH4_INT_AUTO_SPEED_OK (1 << 18) +#define FAN_CH4_INT_MANUAL_SPEED_CHANGE (1 << 18) +#define FAN_CH4_INT_AUTO_SPEED_ERROR (1 << 17) +#define FAN_CH4_INT_MANUAL_SPEED_UPDATE (1 << 17) +#define FAN_CH4_INT_STALL (1 << 16) +#define FAN_CH3_INT_AUTO_SPEED_OK (1 << 14) +#define FAN_CH3_INT_MANUAL_SPEED_CHANGE (1 << 14) +#define FAN_CH3_INT_AUTO_SPEED_ERROR (1 << 13) +#define FAN_CH3_INT_MANUAL_SPEED_UPDATE (1 << 13) +#define FAN_CH3_INT_STALL (1 << 12) +#define FAN_CH2_INT_AUTO_SPEED_OK (1 << 10) +#define FAN_CH2_INT_MANUAL_SPEED_CHANGE (1 << 10) +#define FAN_CH2_INT_AUTO_SPEED_ERROR (1 << 9) +#define FAN_CH2_INT_MANUAL_SPEED_UPDATE (1 << 9) +#define FAN_CH2_INT_STALL (1 << 8) +#define FAN_CH1_INT_AUTO_SPEED_OK (1 << 6) +#define FAN_CH1_INT_MANUAL_SPEED_CHANGE (1 << 6) +#define FAN_CH1_INT_AUTO_SPEED_ERROR (1 << 5) +#define FAN_CH1_INT_MANUAL_SPEED_UPDATE (1 << 5) +#define FAN_CH1_INT_STALL (1 << 4) +#define FAN_CH0_INT_AUTO_SPEED_OK (1 << 2) +#define FAN_CH0_INT_MANUAL_SPEED_CHANGE (1 << 2) +#define FAN_CH0_INT_AUTO_SPEED_ERROR (1 << 1) +#define FAN_CH0_INT_MANUAL_SPEED_UPDATE (1 << 1) +#define FAN_CH0_INT_STALL (1 << 0) +#define FAN_CHx_INT_AUTO_SPEED_OK(x) (1 << (((x) * 4) + 2)) +#define FAN_CHx_INT_MANUAL_SPEED_CHANGE(x) (1 << (((x) * 4) + 2)) +#define FAN_CHx_INT_AUTO_SPEED_ERROR(x) (1 << (((x) * 4) + 1)) +#define FAN_CHx_INT_MANUAL_SPEED_UPDATE(x) (1 << (((x) * 4) + 1)) +#define FAN_CHx_INT_STALL(x) (1 << ((x) * 4)) + +//***************************************************************************** +// +// API Function prototypes +// +//***************************************************************************** +extern void FanChannelEnable(unsigned long ulBase, unsigned long ulChannel); +extern void FanChannelDisable(unsigned long ulBase, unsigned long ulChannel); +extern unsigned long FanChannelStatus(unsigned long ulBase, + unsigned long ulChannel); +extern void FanChannelConfigManual(unsigned long ulBase, unsigned long ulChannel, + unsigned long ulConfig); +extern void FanChannelConfigAuto(unsigned long ulBase, unsigned long ulChannel, + unsigned long ulConfig); +extern void FanChannelDutySet(unsigned long ulBase, unsigned long ulChannel, + unsigned long ulDuty); +extern unsigned long FanChannelDutyGet(unsigned long ulBase, + unsigned long ulChannel); +extern void FanChannelRPMSet(unsigned long ulBase, unsigned long ulChannel, + unsigned long ulRPM); +extern unsigned long FanChannelRPMGet(unsigned long ulBase, + unsigned long ulChannel); +extern void FanIntEnable(unsigned long ulBase, unsigned long ulFlags); +extern void FanIntDisable(unsigned long ulBase, unsigned long ulFlags); +extern unsigned long FanIntStatus(unsigned long ulBase, tBoolean bMasked); +extern void FanIntClear(unsigned long ulBase, unsigned long ulFlags); +extern void FanIntRegister(unsigned long ulBase, void (*pfnHandler)(void)); +extern void FanIntUnregister(unsigned long ulBase); +extern unsigned long FanChannelsGet(unsigned long ulBase); + +//***************************************************************************** +// +// Mark the end of the C bindings section for C++ compilers. +// +//***************************************************************************** +#ifdef __cplusplus +} +#endif + +#endif // __FAN_H__ diff --git a/bsp/lm3s8962/Libraries/driverlib/flash.c b/bsp/lm3s8962/Libraries/driverlib/flash.c index 1b2e396575..48dcd7af29 100644 --- a/bsp/lm3s8962/Libraries/driverlib/flash.c +++ b/bsp/lm3s8962/Libraries/driverlib/flash.c @@ -2,7 +2,7 @@ // // flash.c - Driver for programming the on-chip flash. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -70,7 +70,8 @@ static const unsigned long g_pulFMPRERegs[] = //! Gets the number of processor clocks per micro-second. //! //! This function returns the number of clocks per micro-second, as presently -//! known by the flash controller. +//! known by the flash controller. This function is only valid on Sandstorm- +//! and Fury-class devices. //! //! \return Returns the number of processor clocks per micro-second. // @@ -93,7 +94,7 @@ FlashUsecGet(void) //! This function is used to tell the flash controller the number of processor //! clocks per micro-second. This value must be programmed correctly or the //! flash most likely will not program correctly; it has no affect on reading -//! flash. +//! flash. This function is only valid on Sandstorm- and Fury-class devices. //! //! \return None. // @@ -113,11 +114,11 @@ FlashUsecSet(unsigned long ulClocks) //! //! \param ulAddress is the start address of the flash block to be erased. //! -//! This function will erase a 1 kB block of the on-chip flash. After erasing, -//! the block will be filled with 0xFF bytes. Read-only and execute-only -//! blocks cannot be erased. +//! This function erases a 1-kB block of the on-chip flash. After erasing, +//! the block is filled with 0xFF bytes. Read-only and execute-only blocks +//! cannot be erased. //! -//! This function will not return until the block has been erased. +//! This function does not return until the block has been erased. //! //! \return Returns 0 on success, or -1 if an invalid block address was //! specified or the block is write-protected. @@ -132,9 +133,10 @@ FlashErase(unsigned long ulAddress) ASSERT(!(ulAddress & (FLASH_ERASE_SIZE - 1))); // - // Clear the flash access interrupt. + // Clear the flash access and error interrupts. // - HWREG(FLASH_FCMISC) = FLASH_FCMISC_AMISC; + HWREG(FLASH_FCMISC) = (FLASH_FCMISC_AMISC | FLASH_FCMISC_VOLTMISC | + FLASH_FCMISC_ERMISC); // // Erase the block. @@ -150,9 +152,10 @@ FlashErase(unsigned long ulAddress) } // - // Return an error if an access violation occurred. + // Return an error if an access violation or erase error occurred. // - if(HWREG(FLASH_FCRIS) & FLASH_FCRIS_ARIS) + if(HWREG(FLASH_FCRIS) & (FLASH_FCRIS_ARIS | FLASH_FCRIS_VOLTRIS | + FLASH_FCRIS_ERRIS)) { return(-1); } @@ -173,19 +176,16 @@ FlashErase(unsigned long ulAddress) //! \param ulCount is the number of bytes to be programmed. Must be a multiple //! of four. //! -//! This function will program a sequence of words into the on-chip flash. -//! Programming each location consists of the result of an AND operation -//! of the new data and the existing data; in other words bits that contain -//! 1 can remain 1 or be changed to 0, but bits that are 0 cannot be changed -//! to 1. Therefore, a word can be programmed multiple times as long as these -//! rules are followed; if a program operation attempts to change a 0 bit to -//! a 1 bit, that bit will not have its value changed. +//! This function programs a sequence of words into the on-chip flash. +//! Each word in a page of flash can only be programmed one time between an +//! erase of that page; programming a word multiple times results in an +//! unpredictable value in that word of flash. //! -//! Since the flash is programmed one word at a time, the starting address and -//! byte count must both be multiples of four. It is up to the caller to +//! Because the flash is programmed one word at a time, the starting address +//! and byte count must both be multiples of four. It is up to the caller to //! verify the programmed contents, if such verification is required. //! -//! This function will not return until the data has been programmed. +//! This function does not return until the data has been programmed. //! //! \return Returns 0 on success, or -1 if a programming error is encountered. // @@ -201,9 +201,10 @@ FlashProgram(unsigned long *pulData, unsigned long ulAddress, ASSERT(!(ulCount & 3)); // - // Clear the flash access interrupt. + // Clear the flash access and error interrupts. // - HWREG(FLASH_FCMISC) = FLASH_FCMISC_AMISC; + HWREG(FLASH_FCMISC) = (FLASH_FCMISC_AMISC | FLASH_FCMISC_VOLTMISC | + FLASH_FCMISC_INVDMISC | FLASH_FCMISC_PROGMISC); // // See if this device has a write buffer. @@ -280,7 +281,8 @@ FlashProgram(unsigned long *pulData, unsigned long ulAddress, // // Return an error if an access violation occurred. // - if(HWREG(FLASH_FCRIS) & FLASH_FCRIS_ARIS) + if(HWREG(FLASH_FCRIS) & (FLASH_FCRIS_ARIS | FLASH_FCRIS_VOLTRIS | + FLASH_FCRIS_INVDRIS | FLASH_FCRIS_PROGRIS)) { return(-1); } @@ -297,7 +299,7 @@ FlashProgram(unsigned long *pulData, unsigned long ulAddress, //! //! \param ulAddress is the start address of the flash block to be queried. //! -//! This function will get the current protection for the specified 2 kB block +//! This function gets the current protection for the specified 2-kB block //! of flash. Each block can be read/write, read-only, or execute-only. //! Read/write blocks can be read, executed, erased, and programmed. Read-only //! blocks can be read and executed. Execute-only blocks can only be executed; @@ -390,17 +392,17 @@ FlashProtectGet(unsigned long ulAddress) //! \param eProtect is the protection to be applied to the block. Can be one //! of \b FlashReadWrite, \b FlashReadOnly, or \b FlashExecuteOnly. //! -//! This function will set the protection for the specified 2 kB block of -//! flash. Blocks which are read/write can be made read-only or execute-only. -//! Blocks which are read-only can be made execute-only. Blocks which are +//! This function sets the protection for the specified 2-kB block of +//! flash. Blocks that are read/write can be made read-only or execute-only. +//! Blocks that are read-only can be made execute-only. Blocks that are //! execute-only cannot have their protection modified. Attempts to make the -//! block protection less stringent (that is, read-only to read/write) will -//! result in a failure (and be prevented by the hardware). +//! block protection less stringent (that is, read-only to read/write) +//! result in a failure (and are prevented by the hardware). //! //! Changes to the flash protection are maintained only until the next reset. -//! This allows the application to be executed in the desired flash protection -//! environment to check for inappropriate flash access (via the flash -//! interrupt). To make the flash protection permanent, use the +//! This protocol allows the application to be executed in the desired flash +//! protection environment to check for inappropriate flash access (via the +//! flash interrupt). To make the flash protection permanent, use the //! FlashProtectSave() function. //! //! \return Returns 0 on success, or -1 if an invalid address or an invalid @@ -536,7 +538,7 @@ FlashProtectSet(unsigned long ulAddress, tFlashProtection eProtect) { ulProtectRE &= ~(FLASH_FMP_BLOCK_31 | FLASH_FMP_BLOCK_30); ulProtectRE |= (HWREG(g_pulFMPRERegs[ulBank]) & - (FLASH_FMP_BLOCK_31 | FLASH_FMP_BLOCK_30)); + (FLASH_FMP_BLOCK_31 | FLASH_FMP_BLOCK_30)); } // @@ -555,11 +557,11 @@ FlashProtectSet(unsigned long ulAddress, tFlashProtection eProtect) // //! Saves the flash protection settings. //! -//! This function will make the currently programmed flash protection settings -//! permanent. This is a non-reversible operation; a chip reset or power cycle -//! will not change the flash protection. +//! This function makes the currently programmed flash protection settings +//! permanent. On some devices, this operation is non-reversible; a chip reset +//! or power cycle does not change the flash protection. //! -//! This function will not return until the protection has been saved. +//! This function does not return until the protection has been saved. //! //! \return Returns 0 on success, or -1 if a hardware error is encountered. // @@ -567,7 +569,7 @@ FlashProtectSet(unsigned long ulAddress, tFlashProtection eProtect) long FlashProtectSave(void) { - int ulTemp, ulLimit; + unsigned long ulTemp, ulLimit; // // If running on a Sandstorm-class device, only trigger a save of the first @@ -604,8 +606,8 @@ FlashProtectSave(void) //! \param pulUser0 is a pointer to the location to store USER Register 0. //! \param pulUser1 is a pointer to the location to store USER Register 1. //! -//! This function will read the contents of user registers (0 and 1), and -//! store them in the specified locations. +//! This function reads the contents of user registers (0 and 1), and +//! stores them in the specified locations. //! //! \return Returns 0 on success, or -1 if a hardware error is encountered. // @@ -646,7 +648,7 @@ FlashUserGet(unsigned long *pulUser0, unsigned long *pulUser1) //! \param ulUser0 is the value to store in USER Register 0. //! \param ulUser1 is the value to store in USER Register 1. //! -//! This function will set the contents of the user registers (0 and 1) to +//! This function sets the contents of the user registers (0 and 1) to //! the specified values. //! //! \return Returns 0 on success, or -1 if a hardware error is encountered. @@ -679,11 +681,11 @@ FlashUserSet(unsigned long ulUser0, unsigned long ulUser1) // //! Saves the user registers. //! -//! This function will make the currently programmed user register settings -//! permanent. This is a non-reversible operation; a chip reset or power cycle -//! will not change this setting. +//! This function makes the currently programmed user register settings +//! permanent. On some devices, this operation is non-reversible; a chip reset +//! or power cycle does not change this setting. //! -//! This function will not return until the protection has been saved. +//! This function does not return until the protection has been saved. //! //! \return Returns 0 on success, or -1 if a hardware error is encountered. // @@ -739,12 +741,12 @@ FlashUserSave(void) //! \param pfnHandler is a pointer to the function to be called when the flash //! interrupt occurs. //! -//! This sets the handler to be called when the flash interrupt occurs. The -//! flash controller can generate an interrupt when an invalid flash access +//! This function sets the handler to be called when the flash interrupt occurs. +//! The flash controller can generate an interrupt when an invalid flash access //! occurs, such as trying to program or erase a read-only block, or trying to //! read from an execute-only block. It can also generate an interrupt when a -//! program or erase operation has completed. The interrupt will be -//! automatically enabled when the handler is registered. +//! program or erase operation has completed. The interrupt is automatically +//! enabled when the handler is registered. //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -770,9 +772,9 @@ FlashIntRegister(void (*pfnHandler)(void)) // //! Unregisters the interrupt handler for the flash interrupt. //! -//! This function will clear the handler to be called when the flash interrupt -//! occurs. This will also mask off the interrupt in the interrupt controller -//! so that the interrupt handler is no longer called. +//! This function clears the handler to be called when the flash interrupt +//! occurs. This function also masks off the interrupt in the interrupt +//! controller so that the interrupt handler is no longer called. //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -801,9 +803,9 @@ FlashIntUnregister(void) //! \param ulIntFlags is a bit mask of the interrupt sources to be enabled. //! Can be any of the \b FLASH_INT_PROGRAM or \b FLASH_INT_ACCESS values. //! -//! Enables the indicated flash controller interrupt sources. Only the sources -//! that are enabled can be reflected to the processor interrupt; disabled -//! sources have no effect on the processor. +//! This function enables the indicated flash controller interrupt sources. +//! Only the sources that are enabled can be reflected to the processor +//! interrupt; disabled sources have no effect on the processor. //! //! \return None. // @@ -824,9 +826,9 @@ FlashIntEnable(unsigned long ulIntFlags) //! \param ulIntFlags is a bit mask of the interrupt sources to be disabled. //! Can be any of the \b FLASH_INT_PROGRAM or \b FLASH_INT_ACCESS values. //! -//! Disables the indicated flash controller interrupt sources. Only the -//! sources that are enabled can be reflected to the processor interrupt; -//! disabled sources have no effect on the processor. +//! This function disables the indicated flash controller interrupt sources. +//! Only the sources that are enabled can be reflected to the processor +//! interrupt; disabled sources have no effect on the processor. //! //! \return None. // @@ -847,9 +849,9 @@ FlashIntDisable(unsigned long ulIntFlags) //! \param bMasked is false if the raw interrupt status is required and true if //! the masked interrupt status is required. //! -//! This returns the interrupt status for the flash controller. Either the raw -//! interrupt status or the status of interrupts that are allowed to reflect to -//! the processor can be returned. +//! This function returns the interrupt status for the flash controller. +//! Either the raw interrupt status or the status of interrupts that are +//! allowed to reflect to the processor can be returned. //! //! \return The current interrupt status, enumerated as a bit field of //! \b FLASH_INT_PROGRAM and \b FLASH_INT_ACCESS. @@ -880,17 +882,17 @@ FlashIntStatus(tBoolean bMasked) //! Can be any of the \b FLASH_INT_PROGRAM or \b FLASH_INT_AMISC values. //! //! The specified flash controller interrupt sources are cleared, so that they -//! no longer assert. This must be done in the interrupt handler to keep it -//! from being called again immediately upon exit. +//! no longer assert. This function must be called in the interrupt handler +//! to keep the interrupt from being triggered again immediately upon exit. //! -//! \note Since there is a write buffer in the Cortex-M3 processor, it may take -//! several clock cycles before the interrupt source is actually cleared. +//! \note Because there is a write buffer in the Cortex-M processor, it may +//! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid //! returning from the interrupt handler before the interrupt source is //! actually cleared. Failure to do so may result in the interrupt handler -//! being immediately reentered (since NVIC still sees the interrupt source -//! asserted). +//! being immediately reentered (because the interrupt controller still sees +//! the interrupt source asserted). //! //! \return None. // diff --git a/bsp/lm3s8962/Libraries/driverlib/flash.h b/bsp/lm3s8962/Libraries/driverlib/flash.h index ad84a6c850..e089d43e7a 100644 --- a/bsp/lm3s8962/Libraries/driverlib/flash.h +++ b/bsp/lm3s8962/Libraries/driverlib/flash.h @@ -2,7 +2,7 @@ // // flash.h - Prototypes for the flash driver. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -56,8 +56,13 @@ tFlashProtection; // returned from FlashIntStatus(). // //***************************************************************************** -#define FLASH_INT_PROGRAM 0x00000002 // Programming Interrupt Mask -#define FLASH_INT_ACCESS 0x00000001 // Access Interrupt Mask +#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 //***************************************************************************** // diff --git a/bsp/lm3s8962/Libraries/driverlib/fpu.c b/bsp/lm3s8962/Libraries/driverlib/fpu.c new file mode 100644 index 0000000000..a61be4c95e --- /dev/null +++ b/bsp/lm3s8962/Libraries/driverlib/fpu.c @@ -0,0 +1,284 @@ +//***************************************************************************** +// +// fpu.c - Routines for manipulating the floating-point unit in the Cortex-M +// processor. +// +// Copyright (c) 2011 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 8264 of the Stellaris Peripheral Driver Library. +// +//***************************************************************************** + +//***************************************************************************** +// +//! \addtogroup fpu_api +//! @{ +// +//***************************************************************************** + +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" +#include "fpu.h" + +//***************************************************************************** +// +//! Enables the floating-point unit. +//! +//! This function enables the floating-point unit, allowing the floating-point +//! instructions to be executed. This function must be called prior to +//! performing any hardware floating-point operations; failure to do so results +//! in a NOCP usage fault. +//! +//! \return None. +// +//***************************************************************************** +void +FPUEnable(void) +{ + // + // Enable the coprocessors used by the floating-point unit. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); +} + +//***************************************************************************** +// +//! Disables the floating-point unit. +//! +//! This function disables the floating-point unit, preventing floating-point +//! instructions from executing (generating a NOCP usage fault instead). +//! +//! \return None. +// +//***************************************************************************** +void +FPUDisable(void) +{ + // + // Disable the coprocessors used by the floating-point unit. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_DIS | NVIC_CPAC_CP11_DIS); +} + +//***************************************************************************** +// +//! Enables the stacking of floating-point registers. +//! +//! This function enables the stacking of floating-point registers s0-s15 when +//! an interrupt is handled. When enabled, space is reserved on the stack for +//! the floating-point context and the floating-point state is saved into this +//! stack space. Upon return from the interrupt, the floating-point context is +//! restored. +//! +//! If the floating-point registers are not stacked, floating-point +//! instructions cannot be safely executed in an interrupt handler because the +//! values of s0-s15 are not likely to be preserved for the interrupted code. +//! On the other hand, stacking the floating-point registers increases the +//! stacking operation from 8 words to 26 words, also increasing the interrupt +//! response latency. +//! +//! \return None. +// +//***************************************************************************** +void +FPUStackingEnable(void) +{ + // + // Enable automatic state preservation for the floating-point unit, and + // disable lazy state preservation (meaning that the floating-point state + // is always stacked when floating-point instructions are used). + // + HWREG(NVIC_FPCC) = (HWREG(NVIC_FPCC) & ~NVIC_FPCC_LSPEN) | NVIC_FPCC_ASPEN; +} + +//***************************************************************************** +// +//! Enables the lazy stacking of floating-point registers. +//! +//! This function enables the lazy stacking of floating-point registers s0-s15 +//! when an interrupt is handled. When lazy stacking is enabled, space is +//! reserved on the stack for the floating-point context, but the +//! floating-point state is not saved. If a floating-point instruction is +//! executed from within the interrupt context, the floating-point context is +//! first saved into the space reserved on the stack. On completion of the +//! interrupt handler, the floating-point context is only restored if it was +//! saved (as the result of executing a floating-point instruction). +//! +//! This method provides a compromise between fast interrupt response (because +//! the floating-point state is not saved on interrupt entry) and the ability +//! to use floating-point in interrupt handlers (because the floating-point +//! state is saved if floating-point instructions are used). +//! +//! \return None. +// +//***************************************************************************** +void +FPULazyStackingEnable(void) +{ + // + // Enable automatic and lazy state preservation for the floating-point + // unit. + // + HWREG(NVIC_FPCC) |= NVIC_FPCC_ASPEN | NVIC_FPCC_LSPEN; +} + +//***************************************************************************** +// +//! Disables the stacking of floating-point registers. +//! +//! This function disables the stacking of floating-point registers s0-s15 when +//! an interrupt is handled. When floating-point context stacking is disabled, +//! floating-point operations performed in an interrupt handler destroy the +//! floating-point context of the main thread of execution. +//! +//! \return None. +// +//***************************************************************************** +void +FPUStackingDisable(void) +{ + // + // Disable automatic and lazy state preservation for the floating-point + // unit. + // + HWREG(NVIC_FPCC) &= ~(NVIC_FPCC_ASPEN | NVIC_FPCC_LSPEN); +} + +//***************************************************************************** +// +//! Selects the format of half-precision floating-point values. +//! +//! \param ulMode is the format for half-precision floating-point value, which +//! is either \b FPU_HALF_IEEE or \b FPU_HALF_ALTERNATE. +//! +//! This function selects between the IEEE half-precision floating-point +//! representation and the Cortex-M processor alternative representation. The +//! alternative representation has a larger range but does not have a way to +//! encode infinity (positive or negative) or NaN (quiet or signaling). The +//! default setting is the IEEE format. +//! +//! \note Unless this function is called prior to executing any floating-point +//! instructions, the default mode is used. +//! +//! \return None. +// +//***************************************************************************** +void +FPUHalfPrecisionModeSet(unsigned long ulMode) +{ + // + // Set the half-precision floating-point format. + // + HWREG(NVIC_FPDSC) = (HWREG(NVIC_FPDSC) & ~(NVIC_FPDSC_AHP)) | ulMode; +} + +//***************************************************************************** +// +//! Selects the NaN mode. +//! +//! \param ulMode is the mode for NaN results; which is either +//! \b FPU_NAN_PROPAGATE or \b FPU_NAN_DEFAULT. +//! +//! This function selects the handling of NaN results during floating-point +//! computations. NaNs can either propagate (the default), or they can return +//! the default NaN. +//! +//! \note Unless this function is called prior to executing any floating-point +//! instructions, the default mode is used. +//! +//! \return None. +// +//***************************************************************************** +void +FPUNaNModeSet(unsigned long ulMode) +{ + // + // Set the NaN mode. + // + HWREG(NVIC_FPDSC) = (HWREG(NVIC_FPDSC) & ~(NVIC_FPDSC_DN)) | ulMode; +} + +//***************************************************************************** +// +//! Selects the flush-to-zero mode. +//! +//! \param ulMode is the flush-to-zero mode; which is either +//! \b FPU_FLUSH_TO_ZERO_DIS or \b FPU_FLUSH_TO_ZERO_EN. +//! +//! This function enables or disables the flush-to-zero mode of the +//! floating-point unit. When disabled (the default), the floating-point unit +//! is fully IEEE compliant. When enabled, values close to zero are treated as +//! zero, greatly improving the execution speed at the expense of some accuracy +//! (as well as IEEE compliance). +//! +//! \note Unless this function is called prior to executing any floating-point +//! instructions, the default mode is used. +//! +//! \return None. +// +//***************************************************************************** +void +FPUFlushToZeroModeSet(unsigned long ulMode) +{ + // + // Set the flush-to-zero mode. + // + HWREG(NVIC_FPDSC) = (HWREG(NVIC_FPDSC) & ~(NVIC_FPDSC_FZ)) | ulMode; +} + +//***************************************************************************** +// +//! Selects the rounding mode for floating-point results. +//! +//! \param ulMode is the rounding mode. +//! +//! This function selects the rounding mode for floating-point results. After +//! a floating-point operation, the result is rounded toward the specified +//! value. The default mode is \b FPU_ROUND_NEAREST. +//! +//! The following rounding modes are available (as specified by \e ulMode): +//! +//! - \b FPU_ROUND_NEAREST - round toward the nearest value +//! - \b FPU_ROUND_POS_INF - round toward positive infinity +//! - \b FPU_ROUND_NEG_INF - round toward negative infinity +//! - \b FPU_ROUND_ZERO - round toward zero +//! +//! \note Unless this function is called prior to executing any floating-point +//! instructions, the default mode is used. +//! +//! \return None. +// +//***************************************************************************** +void +FPURoundingModeSet(unsigned long ulMode) +{ + // + // Set the rounding mode. + // + HWREG(NVIC_FPDSC) = (HWREG(NVIC_FPDSC) & ~(NVIC_FPDSC_RMODE_M)) | ulMode; +} + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** diff --git a/bsp/lm3s8962/Libraries/driverlib/fpu.h b/bsp/lm3s8962/Libraries/driverlib/fpu.h new file mode 100644 index 0000000000..30d25d5cff --- /dev/null +++ b/bsp/lm3s8962/Libraries/driverlib/fpu.h @@ -0,0 +1,97 @@ +//***************************************************************************** +// +// fpu.h - Prototypes for the floatint point manipulation routines. +// +// Copyright (c) 2011 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 8264 of the Stellaris Peripheral Driver Library. +// +//***************************************************************************** + +#ifndef __FPU_H__ +#define __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 ulMode parameter. +// +//***************************************************************************** +#define FPU_HALF_IEEE 0x00000000 +#define FPU_HALF_ALTERNATE 0x04000000 + +//***************************************************************************** +// +// Values that can be passed to FPUNaNModeSet as the ulMode parameter. +// +//***************************************************************************** +#define FPU_NAN_PROPAGATE 0x00000000 +#define FPU_NAN_DEFAULT 0x02000000 + +//***************************************************************************** +// +// Values that can be passed to FPUFlushToZeroModeSet as the ulMode parameter. +// +//***************************************************************************** +#define FPU_FLUSH_TO_ZERO_DIS 0x00000000 +#define FPU_FLUSH_TO_ZERO_EN 0x01000000 + +//***************************************************************************** +// +// Values that can be passed to FPURoundingModeSet as the ulMode 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(unsigned long ulMode); +extern void FPUNaNModeSet(unsigned long ulMode); +extern void FPUFlushToZeroModeSet(unsigned long ulMode); +extern void FPURoundingModeSet(unsigned long ulMode); + +//***************************************************************************** +// +// Mark the end of the C bindings section for C++ compilers. +// +//***************************************************************************** +#ifdef __cplusplus +} +#endif + +#endif // __FPU_H__ diff --git a/bsp/lm3s8962/Libraries/driverlib/gpio.c b/bsp/lm3s8962/Libraries/driverlib/gpio.c index 0e26723f90..0e88fdbe11 100644 --- a/bsp/lm3s8962/Libraries/driverlib/gpio.c +++ b/bsp/lm3s8962/Libraries/driverlib/gpio.c @@ -2,7 +2,7 @@ // // gpio.c - API for GPIO ports // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -55,6 +55,12 @@ static const unsigned long g_pulGPIOBaseAddrs[] = GPIO_PORTG_BASE, GPIO_PORTG_AHB_BASE, GPIO_PORTH_BASE, GPIO_PORTH_AHB_BASE, GPIO_PORTJ_BASE, GPIO_PORTJ_AHB_BASE, + GPIO_PORTK_BASE, GPIO_PORTK_BASE, + GPIO_PORTL_BASE, GPIO_PORTL_BASE, + GPIO_PORTM_BASE, GPIO_PORTM_BASE, + GPIO_PORTN_BASE, GPIO_PORTN_BASE, + GPIO_PORTP_BASE, GPIO_PORTP_BASE, + GPIO_PORTQ_BASE, GPIO_PORTQ_BASE, }; //***************************************************************************** @@ -82,7 +88,10 @@ GPIOBaseValid(unsigned long ulPort) (ulPort == GPIO_PORTF_BASE) || (ulPort == GPIO_PORTF_AHB_BASE) || (ulPort == GPIO_PORTG_BASE) || (ulPort == GPIO_PORTG_AHB_BASE) || (ulPort == GPIO_PORTH_BASE) || (ulPort == GPIO_PORTH_AHB_BASE) || - (ulPort == GPIO_PORTJ_BASE) || (ulPort == GPIO_PORTJ_AHB_BASE)); + (ulPort == GPIO_PORTJ_BASE) || (ulPort == GPIO_PORTJ_AHB_BASE) || + (ulPort == GPIO_PORTK_BASE) || (ulPort == GPIO_PORTL_BASE) || + (ulPort == GPIO_PORTM_BASE) || (ulPort == GPIO_PORTN_BASE) || + (ulPort == GPIO_PORTP_BASE) || (ulPort == GPIO_PORTQ_BASE)); } #endif @@ -93,7 +102,8 @@ GPIOBaseValid(unsigned long ulPort) //! //! \param ulPort is the base address of the GPIO port. //! -//! Given a GPIO base address, returns the corresponding interrupt number. +//! Given a GPIO base address, this function returns the corresponding +//! interrupt number. //! //! \return Returns a GPIO interrupt number, or -1 if \e ulPort is invalid. // @@ -101,7 +111,7 @@ GPIOBaseValid(unsigned long ulPort) static long GPIOGetIntNumber(unsigned long ulPort) { - unsigned int ulInt; + long lInt; // // Determine the GPIO interrupt number for the given module. @@ -111,63 +121,99 @@ GPIOGetIntNumber(unsigned long ulPort) case GPIO_PORTA_BASE: case GPIO_PORTA_AHB_BASE: { - ulInt = INT_GPIOA; + lInt = INT_GPIOA; break; } case GPIO_PORTB_BASE: case GPIO_PORTB_AHB_BASE: { - ulInt = INT_GPIOB; + lInt = INT_GPIOB; break; } case GPIO_PORTC_BASE: case GPIO_PORTC_AHB_BASE: { - ulInt = INT_GPIOC; + lInt = INT_GPIOC; break; } case GPIO_PORTD_BASE: case GPIO_PORTD_AHB_BASE: { - ulInt = INT_GPIOD; + lInt = INT_GPIOD; break; } case GPIO_PORTE_BASE: case GPIO_PORTE_AHB_BASE: { - ulInt = INT_GPIOE; + lInt = INT_GPIOE; break; } case GPIO_PORTF_BASE: case GPIO_PORTF_AHB_BASE: { - ulInt = INT_GPIOF; + lInt = INT_GPIOF; break; } case GPIO_PORTG_BASE: case GPIO_PORTG_AHB_BASE: { - ulInt = INT_GPIOG; + lInt = INT_GPIOG; break; } case GPIO_PORTH_BASE: case GPIO_PORTH_AHB_BASE: { - ulInt = INT_GPIOH; + lInt = INT_GPIOH; break; } case GPIO_PORTJ_BASE: case GPIO_PORTJ_AHB_BASE: { - ulInt = INT_GPIOJ; + lInt = INT_GPIOJ; + break; + } + + case GPIO_PORTK_BASE: + { + lInt = INT_GPIOK; + break; + } + + case GPIO_PORTL_BASE: + { + lInt = INT_GPIOL; + break; + } + + case GPIO_PORTM_BASE: + { + lInt = INT_GPIOM; + break; + } + + case GPIO_PORTN_BASE: + { + lInt = INT_GPION; + break; + } + + case GPIO_PORTP_BASE: + { + lInt = INT_GPIOP0; + break; + } + + case GPIO_PORTQ_BASE: + { + lInt = INT_GPIOQ0; break; } @@ -180,7 +226,7 @@ GPIOGetIntNumber(unsigned long ulPort) // // Return GPIO interrupt number. // - return(ulInt); + return(lInt); } //***************************************************************************** @@ -191,8 +237,8 @@ GPIOGetIntNumber(unsigned long ulPort) //! \param ucPins is the bit-packed representation of the pin(s). //! \param ulPinIO is the pin direction and/or mode. //! -//! This function will set the specified pin(s) on the selected GPIO port -//! as either an input or output under software control, or it will set the +//! This function configures the specified pin(s) on the selected GPIO port +//! as either input or output under software control, or it configures the //! pin to be under hardware control. //! //! The parameter \e ulPinIO is an enumerated data type that can be one of @@ -202,11 +248,10 @@ GPIOGetIntNumber(unsigned long ulPort) //! - \b GPIO_DIR_MODE_OUT //! - \b GPIO_DIR_MODE_HW //! -//! where \b GPIO_DIR_MODE_IN specifies that the pin will be programmed as -//! a software controlled input, \b GPIO_DIR_MODE_OUT specifies that the pin -//! will be programmed as a software controlled output, and -//! \b GPIO_DIR_MODE_HW specifies that the pin will be placed under -//! hardware control. +//! where \b GPIO_DIR_MODE_IN specifies that the pin is programmed as a +//! software controlled input, \b GPIO_DIR_MODE_OUT specifies that the pin is +//! programmed as a software controlled output, and \b GPIO_DIR_MODE_HW +//! specifies that the pin is placed under hardware control. //! //! The pin(s) are specified using a bit-packed byte, where each bit that is //! set identifies the pin to be accessed, and where bit 0 of the byte @@ -300,11 +345,19 @@ GPIODirModeGet(unsigned long ulPort, unsigned char ucPin) //! - \b GPIO_BOTH_EDGES //! - \b GPIO_LOW_LEVEL //! - \b GPIO_HIGH_LEVEL +//! - \b GPIO_DISCRETE_INT //! //! where the different values describe the interrupt detection mechanism //! (edge or level) and the particular triggering event (falling, rising, //! or both edges for edge detect, low or high for level detect). //! +//! Some devices also support discrete interrupts for each pin on a GPIO port, +//! giving each pin a separate interrupt vector. To use this feature, the +//! \b GPIO_DISCRETE_INT can be included to enable an interrupt per pin. The +//! \b GPIO_DISCRETE_INT is not available on all devices or all GPIO ports, +//! consult the data sheet to ensure that the device and the GPIO port supports +//! discrete interrupts. +//! //! The pin(s) are specified using a bit-packed byte, where each bit that is //! set identifies the pin to be accessed, and where bit 0 of the byte //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. @@ -350,9 +403,9 @@ GPIOIntTypeSet(unsigned long ulPort, unsigned char ucPins, //! \param ucPin is the pin number. //! //! This function gets the interrupt type for a specified pin on the selected -//! GPIO port. The pin can be configured as a falling edge, rising edge, or -//! both edge detected interrupt, or it can be configured as a low level or -//! high level detected interrupt. The type of interrupt detection mechanism +//! GPIO port. The pin can be configured as a falling-edge, rising-edge, or +//! both-edges detected interrupt, or it can be configured as a low-level or +//! high-level detected interrupt. The type of interrupt detection mechanism //! is returned as an enumerated data type. //! //! \return Returns one of the enumerated data types described for @@ -423,7 +476,7 @@ GPIOIntTypeGet(unsigned long ulPort, unsigned char ucPin) //! where \b GPIO_PIN_TYPE_STD* specifies a push-pull pin, \b GPIO_PIN_TYPE_OD* //! specifies an open-drain pin, \b *_WPU specifies a weak pull-up, \b *_WPD //! specifies a weak pull-down, and \b GPIO_PIN_TYPE_ANALOG specifies an -//! analog input (for the comparators). +//! analog input. //! //! The pin(s) are specified using a bit-packed byte, where each bit that is //! set identifies the pin to be accessed, and where bit 0 of the byte @@ -621,7 +674,7 @@ GPIOPinIntDisable(unsigned long ulPort, unsigned char ucPins) //! returned. //! //! If \e bMasked is set as \b true, then the masked interrupt status is -//! returned; otherwise, the raw interrupt status will be returned. +//! returned; otherwise, the raw interrupt status is returned. //! //! \return Returns a bit-packed byte, where each bit that is set identifies //! an active masked or raw interrupt, and where bit 0 of the byte @@ -663,14 +716,14 @@ GPIOPinIntStatus(unsigned long ulPort, tBoolean bMasked) //! set identifies the pin to be accessed, and where bit 0 of the byte //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! -//! \note Since there is a write buffer in the Cortex-M3 processor, it may take -//! several clock cycles before the interrupt source is actually cleared. +//! \note Because there is a write buffer in the Cortex-M3 processor, it may +//! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid //! returning from the interrupt handler before the interrupt source is //! actually cleared. Failure to do so may result in the interrupt handler -//! being immediately reentered (since NVIC still sees the interrupt source -//! asserted). +//! being immediately reentered (because the interrupt controller still sees +//! the interrupt source asserted). //! //! \return None. // @@ -697,9 +750,9 @@ GPIOPinIntClear(unsigned long ulPort, unsigned char ucPins) //! \param pfnIntHandler is a pointer to the GPIO port interrupt handling //! function. //! -//! This function will ensure that the interrupt handler specified by +//! This function ensures that the interrupt handler specified by //! \e pfnIntHandler is called when an interrupt is detected from the selected -//! GPIO port. This function will also enable the corresponding GPIO interrupt +//! GPIO port. This function also enables the corresponding GPIO interrupt //! in the interrupt controller; individual pin interrupts and interrupt //! sources must be enabled with GPIOPinIntEnable(). //! @@ -739,8 +792,8 @@ GPIOPortIntRegister(unsigned long ulPort, void (*pfnIntHandler)(void)) //! //! \param ulPort is the base address of the GPIO port. //! -//! This function will unregister the interrupt handler for the specified -//! GPIO port. This function will also disable the corresponding +//! This function unregisters the interrupt handler for the specified +//! GPIO port. This function also disables the corresponding //! GPIO port interrupt in the interrupt controller; individual GPIO interrupts //! and interrupt sources must be disabled with GPIOPinIntDisable(). //! @@ -849,15 +902,16 @@ GPIOPinWrite(unsigned long ulPort, unsigned char ucPins, unsigned char ucVal) //! \param ucPins is the bit-packed representation of the pin(s). //! //! The analog-to-digital converter input pins must be properly configured -//! to function correctly on DustDevil-class devices. This function provides -//! the proper configuration for those pin(s). +//! to function correctly on devices that are not Sandstorm- or Fury-class. +//! This function provides the proper configuration for those pin(s). //! //! The pin(s) are specified using a bit-packed byte, where each bit that is //! set identifies the pin to be accessed, and where bit 0 of the byte //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! -//! \note This cannot be used to turn any pin into an ADC input; it only -//! configures an ADC input pin for proper operation. +//! \note This function cannot be used to turn any pin into an ADC input; it +//! only configures an ADC input pin for proper operation. Devices with +//! flexible pin muxing also require a GPIOPinConfigure() function call. //! //! \return None. // @@ -897,8 +951,9 @@ GPIOPinTypeADC(unsigned long ulPort, unsigned char ucPins) //! set identifies the pin to be accessed, and where bit 0 of the byte //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! -//! \note This cannot be used to turn any pin into a CAN pin; it only -//! configures a CAN pin for proper operation. +//! \note This function cannot be used to turn any pin into a CAN pin; it only +//! configures a CAN pin for proper operation. Devices with flexible pin +//! muxing also require a GPIOPinConfigure() function call. //! //! \return None. // @@ -937,8 +992,10 @@ GPIOPinTypeCAN(unsigned long ulPort, unsigned char ucPins) //! set identifies the pin to be accessed, and where bit 0 of the byte //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! -//! \note This cannot be used to turn any pin into an analog comparator input; -//! it only configures an analog comparator pin for proper operation. +//! \note This function cannot be used to turn any pin into an analog comparator +//! input; it only configures an analog comparator pin for proper operation. +//! Devices with flexible pin muxing also require a GPIOPinConfigure() +//! function call. //! //! \return None. // @@ -962,6 +1019,174 @@ GPIOPinTypeComparator(unsigned long ulPort, unsigned char ucPins) GPIOPadConfigSet(ulPort, ucPins, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_ANALOG); } +//***************************************************************************** +// +//! Configures pin(s) for use by the external peripheral interface. +//! +//! \param ulPort is the base address of the GPIO port. +//! \param ucPins is the bit-packed representation of the pin(s). +//! +//! The external peripheral interface pins must be properly configured for the +//! external peripheral interface to function correctly. This function +//! provides a typical configuration for those pin(s); other configurations may +//! work as well depending upon the board setup (for example, using the on-chip +//! pull-ups). +//! +//! The pin(s) are specified using a bit-packed byte, where each bit that is +//! set identifies the pin to be accessed, and where bit 0 of the byte +//! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. +//! +//! \note This function cannot be used to turn any pin into an external +//! peripheral interface pin; it only configures an external peripheral +//! interface pin for proper operation. Devices with flexible pin muxing also +//! require a GPIOPinConfigure() function call. +//! +//! \return None. +// +//***************************************************************************** +void +GPIOPinTypeEPI(unsigned long ulPort, unsigned char ucPins) +{ + // + // Check the arguments. + // + ASSERT(GPIOBaseValid(ulPort)); + + // + // Make the pin(s) be peripheral controlled. + // + GPIODirModeSet(ulPort, ucPins, GPIO_DIR_MODE_HW); + + // + // Set the pad(s) for standard push-pull operation. + // + GPIOPadConfigSet(ulPort, ucPins, GPIO_STRENGTH_8MA, GPIO_PIN_TYPE_STD); +} + +//***************************************************************************** +// +//! Configures pin(s) for use by the Ethernet peripheral as LED signals. +//! +//! \param ulPort is the base address of the GPIO port. +//! \param ucPins is the bit-packed representation of the pin(s). +//! +//! The Ethernet peripheral provides two signals that can be used to drive +//! an LED (e.g. for link status/activity). This function provides a typical +//! configuration for the pins. +//! +//! The pin(s) are specified using a bit-packed byte, where each bit that is +//! set identifies the pin to be accessed, and where bit 0 of the byte +//! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. +//! +//! \note This function cannot be used to turn any pin into an Ethernet LED pin; +//! it only configures an Ethernet LED pin for proper operation. Devices with +//! flexible pin muxing also require a GPIOPinConfigure() function call. +//! +//! \return None. +// +//***************************************************************************** +void +GPIOPinTypeEthernetLED(unsigned long ulPort, unsigned char ucPins) +{ + // + // Check the arguments. + // + ASSERT(GPIOBaseValid(ulPort)); + + // + // Make the pin(s) be peripheral controlled. + // + GPIODirModeSet(ulPort, ucPins, GPIO_DIR_MODE_HW); + + // + // Set the pad(s) for standard push-pull operation. + // + GPIOPadConfigSet(ulPort, ucPins, GPIO_STRENGTH_8MA, GPIO_PIN_TYPE_STD); +} + +//***************************************************************************** +// +//! Configures pin(s) for use by the Ethernet peripheral as MII signals. +//! +//! \param ulPort is the base address of the GPIO port. +//! \param ucPins is the bit-packed representation of the pin(s). +//! +//! The Ethernet peripheral on some parts provides a set of MII signals that +//! are used to connect to an external PHY. This function provides a typical +//! configuration for the pins. +//! +//! The pin(s) are specified using a bit-packed byte, where each bit that is +//! set identifies the pin to be accessed, and where bit 0 of the byte +//! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. +//! +//! \note This function cannot be used to turn any pin into an Ethernet MII pin; +//! it only configures an Ethernet MII pin for proper operation. Devices with +//! flexible pin muxing also require a GPIOPinConfigure() function call. +//! +//! \return None. +// +//***************************************************************************** +void +GPIOPinTypeEthernetMII(unsigned long ulPort, unsigned char ucPins) +{ + // + // Check the arguments. + // + ASSERT(GPIOBaseValid(ulPort)); + + // + // Make the pin(s) be peripheral controlled. + // + GPIODirModeSet(ulPort, ucPins, GPIO_DIR_MODE_HW); + + // + // Set the pad(s) for standard push-pull operation. + // + GPIOPadConfigSet(ulPort, ucPins, GPIO_STRENGTH_8MA, GPIO_PIN_TYPE_STD); +} + +//***************************************************************************** +// +//! Configures pin(s) for use by the fan module. +//! +//! \param ulPort is the base address of the GPIO port. +//! \param ucPins is the bit-packed representation of the pin(s). +//! +//! The fan pins must be properly configured for the fan controller to function +//! correctly. This function provides a typical configuration for those +//! pin(s); other configurations may work as well depending upon the board +//! setup (for example, using the on-chip pull-ups). +//! +//! The pin(s) are specified using a bit-packed byte, where each bit that is +//! set identifies the pin to be accessed, and where bit 0 of the byte +//! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. +//! +//! \note This function cannot be used to turn any pin into a fan pin; it only +//! configures a fan pin for proper operation. Devices with flexible pin +//! muxing also require a GPIOPinConfigure() function call. +//! +//! \return None. +// +//***************************************************************************** +void +GPIOPinTypeFan(unsigned long ulPort, unsigned char ucPins) +{ + // + // Check the arguments. + // + ASSERT(GPIOBaseValid(ulPort)); + + // + // Make the pin(s) be peripheral controlled. + // + GPIODirModeSet(ulPort, ucPins, GPIO_DIR_MODE_HW); + + // + // Set the pad(s) for standard push-pull operation. + // + GPIOPadConfigSet(ulPort, ucPins, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD); +} + //***************************************************************************** // //! Configures pin(s) for use as GPIO inputs. @@ -978,6 +1203,9 @@ GPIOPinTypeComparator(unsigned long ulPort, unsigned char ucPins) //! set identifies the pin to be accessed, and where bit 0 of the byte //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! +//! \note Devices with flexible pin muxing also require a GPIOPinConfigure() +//! function call. +//! //! \return None. // //***************************************************************************** @@ -1016,6 +1244,9 @@ GPIOPinTypeGPIOInput(unsigned long ulPort, unsigned char ucPins) //! set identifies the pin to be accessed, and where bit 0 of the byte //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! +//! \note Devices with flexible pin muxing also require a GPIOPinConfigure() +//! function call. +//! //! \return None. // //***************************************************************************** @@ -1027,15 +1258,15 @@ GPIOPinTypeGPIOOutput(unsigned long ulPort, unsigned char ucPins) // ASSERT(GPIOBaseValid(ulPort)); - // - // Make the pin(s) be outputs. - // - GPIODirModeSet(ulPort, ucPins, GPIO_DIR_MODE_OUT); - // // Set the pad(s) for standard push-pull operation. // GPIOPadConfigSet(ulPort, ucPins, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD); + + // + // Make the pin(s) be outputs. + // + GPIODirModeSet(ulPort, ucPins, GPIO_DIR_MODE_OUT); } //***************************************************************************** @@ -1054,6 +1285,9 @@ GPIOPinTypeGPIOOutput(unsigned long ulPort, unsigned char ucPins) //! set identifies the pin to be accessed, and where bit 0 of the byte //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! +//! \note Devices with flexible pin muxing also require a GPIOPinConfigure() +//! function call. +//! //! \return None. // //***************************************************************************** @@ -1065,15 +1299,15 @@ GPIOPinTypeGPIOOutputOD(unsigned long ulPort, unsigned char ucPins) // ASSERT(GPIOBaseValid(ulPort)); - // - // Make the pin(s) be outputs. - // - GPIODirModeSet(ulPort, ucPins, GPIO_DIR_MODE_OUT); - // // Set the pad(s) for standard push-pull operation. // GPIOPadConfigSet(ulPort, ucPins, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_OD); + + // + // Make the pin(s) be outputs. + // + GPIODirModeSet(ulPort, ucPins, GPIO_DIR_MODE_OUT); } //***************************************************************************** @@ -1091,8 +1325,9 @@ GPIOPinTypeGPIOOutputOD(unsigned long ulPort, unsigned char ucPins) //! set identifies the pin to be accessed, and where bit 0 of the byte //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! -//! \note This cannot be used to turn any pin into an I2C pin; it only -//! configures an I2C pin for proper operation. +//! \note This function cannot be used to turn any pin into an I2C pin; it +//! only configures an I2C pin for proper operation. Devices with flexible pin +//! muxing also require a GPIOPinConfigure() function call. //! //! \return None. // @@ -1116,6 +1351,221 @@ GPIOPinTypeI2C(unsigned long ulPort, unsigned char ucPins) GPIOPadConfigSet(ulPort, ucPins, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_OD_WPU); } +//***************************************************************************** +// +//! Configures pin(s) for use as SCL by the I2C peripheral. +//! +//! \param ulPort is the base address of the GPIO port. +//! \param ucPins is the bit-packed representation of the pin(s). +//! +//! The I2C pins must be properly configured for the I2C peripheral to function +//! correctly. This function provides the proper configuration for the SCL +//! pin(s). +//! +//! The pin(s) are specified using a bit-packed byte, where each bit that is +//! set identifies the pin to be accessed, and where bit 0 of the byte +//! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. +//! +//! \note This function should only be used for Blizzard-class devices. It +//! cannot be used to turn any pin into an I2C SCL pin; it only configures an +//! I2C SCL pin for proper operation. Devices with flexible pin muxing also +//! require a GPIOPinConfigure() function call. +//! +//! \return None. +// +//***************************************************************************** +void +GPIOPinTypeI2CSCL(unsigned long ulPort, unsigned char ucPins) +{ + // + // Check the arguments. + // + ASSERT(GPIOBaseValid(ulPort)); + + // + // Make the pin(s) be peripheral controlled. + // + GPIODirModeSet(ulPort, ucPins, GPIO_DIR_MODE_HW); + + // + // Set the pad(s) for open-drain operation with a weak pull-up. + // + if(CLASS_IS_BLIZZARD) + { + GPIOPadConfigSet(ulPort, ucPins, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD); + } + else + { + GPIOPadConfigSet(ulPort, ucPins, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_OD); + } +} + +//***************************************************************************** +// +//! Configures pin(s) for use by the I2S peripheral. +//! +//! \param ulPort is the base address of the GPIO port. +//! \param ucPins is the bit-packed representation of the pin(s). +//! +//! Some I2S pins must be properly configured for the I2S peripheral to +//! function correctly. This function provides a typical configuration for +//! the digital I2S pin(s); other configurations may work as well depending +//! upon the board setup (for example, using the on-chip pull-ups). +//! +//! The pin(s) are specified using a bit-packed byte, where each bit that is +//! set identifies the pin to be accessed, and where bit 0 of the byte +//! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. +//! +//! \note This function cannot be used to turn any pin into a I2S pin; it only +//! configures a I2S pin for proper operation. Devices with flexible pin +//! muxing also require a GPIOPinConfigure() function call. +//! +//! \return None. +// +//***************************************************************************** +void +GPIOPinTypeI2S(unsigned long ulPort, unsigned char ucPins) +{ + // + // Check the arguments. + // + ASSERT(GPIOBaseValid(ulPort)); + + // + // Make the pin(s) be peripheral controlled. + // + GPIODirModeSet(ulPort, ucPins, GPIO_DIR_MODE_HW); + + // + // Set the pad(s) for standard push-pull operation. + // + GPIOPadConfigSet(ulPort, ucPins, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD); +} + +//***************************************************************************** +// +//! Configures pin(s) for use by the LPC module. +//! +//! \param ulPort is the base address of the GPIO port. +//! \param ucPins is the bit-packed representation of the pin(s). +//! +//! The LPC pins must be properly configured for the LPC module to function +//! correctly. This function provides a typical configuration for those +//! pin(s); other configurations may work as well depending upon the board +//! setup (for example, using the on-chip pull-ups). +//! +//! The pin(s) are specified using a bit-packed byte, where each bit that is +//! set identifies the pin to be accessed, and where bit 0 of the byte +//! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. +//! +//! \note This function cannot be used to turn any pin into a LPC pin; it only +//! configures a LPC pin for proper operation. Devices with flexible pin +//! muxing also require a GPIOPinConfigure() function call. +//! +//! \return None. +// +//***************************************************************************** +void +GPIOPinTypeLPC(unsigned long ulPort, unsigned char ucPins) +{ + // + // Check the arguments. + // + ASSERT(GPIOBaseValid(ulPort)); + + // + // Make the pin(s) be peripheral controlled. + // + GPIODirModeSet(ulPort, ucPins, GPIO_DIR_MODE_HW); + + // + // Set the pad(s) for standard push-pull operation. + // + GPIOPadConfigSet(ulPort, ucPins, GPIO_STRENGTH_8MA, GPIO_PIN_TYPE_STD); +} + +//***************************************************************************** +// +//! Configures a pin for receive use by the PECI module. +//! +//! \param ulPort is the base address of the GPIO port. +//! \param ucPins is the bit-packed representation of the pin(s). +//! +//! The PECI receive pin must be properly configured for the PECI module to +//! function correctly. This function provides a typical configuration for +//! that pin. +//! +//! The pin is specified using a bit-packed byte, where each bit that is set +//! identifies the pin to be accessed, and where bit 0 of the byte represents +//! GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. +//! +//! \note This function cannot be used to turn any pin into a PECI receive pin; +//! it only configures a PECI receive pin for proper operation. Devices with +//! flexible pin muxing also require a GPIOPinConfigure() function call. +//! +//! \return None. +// +//***************************************************************************** +void +GPIOPinTypePECIRx(unsigned long ulPort, unsigned char ucPins) +{ + // + // Check the arguments. + // + ASSERT(GPIOBaseValid(ulPort)); + + // + // Make the pin(s) be inputs. + // + GPIODirModeSet(ulPort, ucPins, GPIO_DIR_MODE_IN); + + // + // Set the pad(s) for analog operation. + // + GPIOPadConfigSet(ulPort, ucPins, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_ANALOG); +} + +//***************************************************************************** +// +//! Configures a pin for transmit use by the PECI module. +//! +//! \param ulPort is the base address of the GPIO port. +//! \param ucPins is the bit-packed representation of the pin(s). +//! +//! The PECI transmit pin must be properly configured for the PECI module to +//! function correctly. This function provides a typical configuration for +//! that pin. +//! +//! The pin is specified using a bit-packed byte, where each bit that is set +//! identifies the pin to be accessed, and where bit 0 of the byte represents +//! GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. +//! +//! \note This function cannot be used to turn any pin into a PECI transmit pin; +//! it only configures a PECI transmit pin for proper operation. Devices with +//! flexible pin muxing also require a GPIOPinConfigure() function call. +//! +//! \return None. +// +//***************************************************************************** +void +GPIOPinTypePECITx(unsigned long ulPort, unsigned char ucPins) +{ + // + // Check the arguments. + // + ASSERT(GPIOBaseValid(ulPort)); + + // + // Make the pin(s) be inputs. + // + GPIODirModeSet(ulPort, ucPins, GPIO_DIR_MODE_HW); + + // + // Set the pad(s) for analog operation. + // + GPIOPadConfigSet(ulPort, ucPins, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD); +} + //***************************************************************************** // //! Configures pin(s) for use by the PWM peripheral. @@ -1132,8 +1582,9 @@ GPIOPinTypeI2C(unsigned long ulPort, unsigned char ucPins) //! set identifies the pin to be accessed, and where bit 0 of the byte //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! -//! \note This cannot be used to turn any pin into a PWM pin; it only -//! configures a PWM pin for proper operation. +//! \note This function cannot be used to turn any pin into a PWM pin; it only +//! configures a PWM pin for proper operation. Devices wtih flexible pin +//! muxing also require a GPIOPinConfigure() function call. //! //! \return None. // @@ -1173,8 +1624,9 @@ GPIOPinTypePWM(unsigned long ulPort, unsigned char ucPins) //! set identifies the pin to be accessed, and where bit 0 of the byte //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! -//! \note This cannot be used to turn any pin into a QEI pin; it only -//! configures a QEI pin for proper operation. +//! \note This function cannot be used to turn any pin into a QEI pin; it only +//! configures a QEI pin for proper operation. Devices with flexible pin +//! muxing also require a GPIOPinConfigure() function call. //! //! \return None. // @@ -1214,8 +1666,9 @@ GPIOPinTypeQEI(unsigned long ulPort, unsigned char ucPins) //! set identifies the pin to be accessed, and where bit 0 of the byte //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! -//! \note This cannot be used to turn any pin into a SSI pin; it only -//! configures a SSI pin for proper operation. +//! \note This function cannot be used to turn any pin into a SSI pin; it only +//! configures a SSI pin for proper operation. Devices with flexible pin +//! muxing also require a GPIOPinConfigure() function call. //! //! \return None. // @@ -1255,8 +1708,9 @@ GPIOPinTypeSSI(unsigned long ulPort, unsigned char ucPins) //! set identifies the pin to be accessed, and where bit 0 of the byte //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! -//! \note This cannot be used to turn any pin into a timer pin; it only -//! configures a timer pin for proper operation. +//! \note This function cannot be used to turn any pin into a timer pin; it +//! only configures a timer pin for proper operation. Devices with flexible +//! pin muxing also require a GPIOPinConfigure() function call. //! //! \return None. // @@ -1296,8 +1750,9 @@ GPIOPinTypeTimer(unsigned long ulPort, unsigned char ucPins) //! set identifies the pin to be accessed, and where bit 0 of the byte //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! -//! \note This cannot be used to turn any pin into a UART pin; it only -//! configures a UART pin for proper operation. +//! \note This function cannot be used to turn any pin into a UART pin; it +//! only configures a UART pin for proper operation. Devices with flexible +//! pin muxing also require a GPIOPinConfigure() function call. //! //! \return None. // @@ -1321,51 +1776,6 @@ GPIOPinTypeUART(unsigned long ulPort, unsigned char ucPins) GPIOPadConfigSet(ulPort, ucPins, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD); } -//***************************************************************************** -// -//! Configures pin(s) for use by the USB peripheral. -//! -//! \param ulPort is the base address of the GPIO port. -//! \param ucPins is the bit-packed representation of the pin(s). -//! -//! Some USB digital pins must be properly configured for the USB peripheral to -//! function correctly. This function provides a typical configuration for -//! the digital USB pin(s); other configurations may work as well depending -//! upon the board setup (for example, using the on-chip pull-ups). -//! -//! This function should only be used with EPEN and PFAULT pins as all other -//! USB pins are analog in nature or are not used in devices without OTG -//! functionality. -//! -//! The pin(s) are specified using a bit-packed byte, where each bit that is -//! set identifies the pin to be accessed, and where bit 0 of the byte -//! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. -//! -//! \note This cannot be used to turn any pin into a USB pin; it only -//! configures a USB pin for proper operation. -//! -//! \return None. -// -//***************************************************************************** -void -GPIOPinTypeUSBDigital(unsigned long ulPort, unsigned char ucPins) -{ - // - // Check the arguments. - // - ASSERT(GPIOBaseValid(ulPort)); - - // - // Make the pin(s) be peripheral controlled. - // - GPIODirModeSet(ulPort, ucPins, GPIO_DIR_MODE_HW); - - // - // Set the pad(s) for standard push-pull operation. - // - GPIOPadConfigSet(ulPort, ucPins, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD); -} - //***************************************************************************** // //! Configures pin(s) for use by the USB peripheral. @@ -1382,8 +1792,9 @@ GPIOPinTypeUSBDigital(unsigned long ulPort, unsigned char ucPins) //! set identifies the pin to be accessed, and where bit 0 of the byte //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! -//! \note This cannot be used to turn any pin into a USB pin; it only -//! configures a USB pin for proper operation. +//! \note This function cannot be used to turn any pin into a USB pin; it only +//! configures a USB pin for proper operation. Devices with flexible pin +//! muxing also require a GPIOPinConfigure() function call. //! //! \return None. // @@ -1409,28 +1820,33 @@ GPIOPinTypeUSBAnalog(unsigned long ulPort, unsigned char ucPins) //***************************************************************************** // -//! Configures pin(s) for use by the I2S peripheral. +//! Configures pin(s) for use by the USB peripheral. //! //! \param ulPort is the base address of the GPIO port. //! \param ucPins is the bit-packed representation of the pin(s). //! -//! Some I2S pins must be properly configured for the I2S peripheral to +//! Some USB digital pins must be properly configured for the USB peripheral to //! function correctly. This function provides a typical configuration for -//! the digital I2S pin(s); other configurations may work as well depending +//! the digital USB pin(s); other configurations may work as well depending //! upon the board setup (for example, using the on-chip pull-ups). //! +//! This function should only be used with EPEN and PFAULT pins as all other +//! USB pins are analog in nature or are not used in devices without OTG +//! functionality. +//! //! The pin(s) are specified using a bit-packed byte, where each bit that is //! set identifies the pin to be accessed, and where bit 0 of the byte //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! -//! \note This cannot be used to turn any pin into a I2S pin; it only -//! configures a I2S pin for proper operation. +//! \note This function cannot be used to turn any pin into a USB pin; it only +//! configures a USB pin for proper operation. Devices with flexible pin +//! muxing also require a GPIOPinConfigure() function call. //! //! \return None. // //***************************************************************************** void -GPIOPinTypeI2S(unsigned long ulPort, unsigned char ucPins) +GPIOPinTypeUSBDigital(unsigned long ulPort, unsigned char ucPins) { // // Check the arguments. @@ -1448,89 +1864,6 @@ GPIOPinTypeI2S(unsigned long ulPort, unsigned char ucPins) GPIOPadConfigSet(ulPort, ucPins, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD); } -//***************************************************************************** -// -//! Configures pin(s) for use by the Ethernet peripheral as LED signals. -//! -//! \param ulPort is the base address of the GPIO port. -//! \param ucPins is the bit-packed representation of the pin(s). -//! -//! The Ethernet peripheral provides two signals that can be used to drive -//! an LED (e.g. for link status/activity). This function provides a typical -//! configuration for the pins. -//! -//! The pin(s) are specified using a bit-packed byte, where each bit that is -//! set identifies the pin to be accessed, and where bit 0 of the byte -//! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. -//! -//! \note This cannot be used to turn any pin into an Ethernet LED pin; it only -//! configures an Ethernet LED pin for proper operation. -//! -//! \return None. -// -//***************************************************************************** -void -GPIOPinTypeEthernetLED(unsigned long ulPort, unsigned char ucPins) -{ - // - // Check the arguments. - // - ASSERT(GPIOBaseValid(ulPort)); - - // - // Make the pin(s) be peripheral controlled. - // - GPIODirModeSet(ulPort, ucPins, GPIO_DIR_MODE_HW); - - // - // Set the pad(s) for standard push-pull operation. - // - GPIOPadConfigSet(ulPort, ucPins, GPIO_STRENGTH_8MA, GPIO_PIN_TYPE_STD); -} - -//***************************************************************************** -// -//! Configures pin(s) for use by the external peripheral interface. -//! -//! \param ulPort is the base address of the GPIO port. -//! \param ucPins is the bit-packed representation of the pin(s). -//! -//! The external peripheral interface pins must be properly configured for the -//! external peripheral interface to function correctly. This function -//! provides a typica configuration for those pin(s); other configurations may -//! work as well depending upon the board setup (for exampe, using the on-chip -//! pull-ups). -//! -//! The pin(s) are specified using a bit-packed byte, where each bit that is -//! set identifies the pin to be accessed, and where bit 0 of the byte -//! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. -//! -//! \note This cannot be used to turn any pin into an external peripheral -//! interface pin; it only configures an external peripheral interface pin for -//! proper operation. -//! -//! \return None. -// -//***************************************************************************** -void -GPIOPinTypeEPI(unsigned long ulPort, unsigned char ucPins) -{ - // - // Check the arguments. - // - ASSERT(GPIOBaseValid(ulPort)); - - // - // Make the pin(s) be peripheral controlled. - // - GPIODirModeSet(ulPort, ucPins, GPIO_DIR_MODE_HW); - - // - // Set the pad(s) for standard push-pull operation. - // - GPIOPadConfigSet(ulPort, ucPins, GPIO_STRENGTH_8MA, GPIO_PIN_TYPE_STD); -} - //***************************************************************************** // //! Configures the alternate function of a GPIO pin. @@ -1542,9 +1875,15 @@ GPIOPinTypeEPI(unsigned long ulPort, unsigned char ucPins) //! associated with a particular GPIO pin. Only one peripheral function at a //! time can be associated with a GPIO pin, and each peripheral function should //! only be associated with a single GPIO pin at a time (despite the fact that -//! many of them can be associated with more than one GPIO pin). +//! many of them can be associated with more than one GPIO pin). To fully +//! configure a pin, a GPIOPinType*() function should also be called. //! -//! \note This function is only valid on Tempest-class devices. +//! The available mappings are supplied on a per-device basis in +//! pin_map.h. The \b PART_IS_ define enables the +//! appropriate set of defines for the device that is being used. +//! +//! \note This function is not valid on Sandstorm, Fury, and Dustdevil-class +//! devices. //! //! \return None. // @@ -1557,7 +1896,7 @@ GPIOPinConfigure(unsigned long ulPinConfig) // // Check the argument. // - ASSERT(((ulPinConfig >> 16) & 0xff) < 9); + ASSERT(((ulPinConfig >> 16) & 0xff) < 15); ASSERT(((ulPinConfig >> 8) & 0xe3) == 0); // @@ -1569,7 +1908,7 @@ GPIOPinConfigure(unsigned long ulPinConfig) // Get the base address of the GPIO module, selecting either the APB or the // AHB aperture as appropriate. // - if(HWREG(SYSCTL_GPIOHSCTL) & (1 << ulBase)) + if(HWREG(SYSCTL_GPIOHBCTL) & (1 << ulBase)) { ulBase = g_pulGPIOBaseAddrs[(ulBase << 1) + 1]; } @@ -1592,6 +1931,134 @@ GPIOPinConfigure(unsigned long ulPinConfig) } +//***************************************************************************** +// +//! Enables a GPIO pin as a trigger to start a DMA transaction. +//! +//! \param ulPort is the base address of the GPIO port. +//! \param ucPins is the bit-packed representation of the pin(s). +//! +//! This function enables a GPIO pin to be used as a trigger to start a uDMA +//! transaction. Any GPIO pin can be configured to be an external trigger for +//! the uDMA. The GPIO pin still generates interrupts if the interrupt is +//! enabled for the selected pin. +//! +//! \note This function is not available on all devices, consult the data sheet +//! to ensure that the device you are using supports GPIO DMA Control. +//! +//! \return None. +// +//***************************************************************************** +void +GPIODMATriggerEnable(unsigned long ulPort, unsigned char ucPins) +{ + // + // Check the arguments. + // + ASSERT(GPIOBaseValid(ulPort)); + + // + // Set the pin as a DMA trigger. + // + HWREG(ulPort + GPIO_O_DMACTL) |= ucPins; +} + +//***************************************************************************** +// +//! Disables a GPIO pin as a trigger to start a DMA transaction. +//! +//! \param ulPort is the base address of the GPIO port. +//! \param ucPins is the bit-packed representation of the pin(s). +//! +//! This function disables a GPIO pin from being used as a trigger to start a +//! uDMA transaction. This function can be used to disable this feature if it +//! was enabled via a call to GPIODMATriggerEnable(). +//! +//! \note This function is not available on all devices, consult the data sheet +//! to ensure that the device you are using supports GPIO DMA Control. +//! +//! \return None. +// +//***************************************************************************** +void +GPIODMATriggerDisable(unsigned long ulPort, unsigned char ucPins) +{ + // + // Check the arguments. + // + ASSERT(GPIOBaseValid(ulPort)); + + // + // Set the pin as a DMA trigger. + // + HWREG(ulPort + GPIO_O_DMACTL) &= (~ucPins); +} + +//***************************************************************************** +// +//! Enables a GPIO pin as a trigger to start an ADC capture. +//! +//! \param ulPort is the base address of the GPIO port. +//! \param ucPins is the bit-packed representation of the pin(s). +//! +//! This function enables a GPIO pin to be used as a trigger to start an ADC +//! sequence. Any GPIO pin can be configured to be an external trigger for +//! an ADC sequence. The GPIO pin still generates interrupts if the +//! interrupt is enabled for the selected pin. To enable the use of a GPIO pin +//! to trigger the ADC module, the ADCSequenceConfigure() function must be called +//! with the ADC_TRIGGER_EXTERNAL parameter. +//! +//! \note This function is not available on all devices, consult the data sheet +//! to ensure that the device you are using supports GPIO ADC Control. +//! +//! \return None. +// +//***************************************************************************** +void +GPIOADCTriggerEnable(unsigned long ulPort, unsigned char ucPins) +{ + // + // Check the arguments. + // + ASSERT(GPIOBaseValid(ulPort)); + + // + // Set the pin as a DMA trigger. + // + HWREG(ulPort + GPIO_O_ADCCTL) |= ucPins; +} + +//***************************************************************************** +// +//! Disable a GPIO pin as a trigger to start an ADC capture. +//! +//! \param ulPort is the base address of the GPIO port. +//! \param ucPins is the bit-packed representation of the pin(s). +//! +//! This function disables a GPIO pin to be used as a trigger to start an ADC +//! sequence. This function can be used to disable this feature if it was +//! enabled via a call to GPIOADCTriggerEnable(). +//! +//! \note This function is not available on all devices, consult the data sheet +//! to ensure that the device you are using supports GPIO ADC Control. +//! +//! \return None. +// +//***************************************************************************** +void +GPIOADCTriggerDisable(unsigned long ulPort, unsigned char ucPins) +{ + // + // Check the arguments. + // + ASSERT(GPIOBaseValid(ulPort)); + + // + // Set the pin as a DMA trigger. + // + HWREG(ulPort + GPIO_O_ADCCTL) &= (~ucPins); +} + //***************************************************************************** // // Close the Doxygen group. diff --git a/bsp/lm3s8962/Libraries/driverlib/gpio.h b/bsp/lm3s8962/Libraries/driverlib/gpio.h index cf1046d55e..5320682910 100644 --- a/bsp/lm3s8962/Libraries/driverlib/gpio.h +++ b/bsp/lm3s8962/Libraries/driverlib/gpio.h @@ -2,7 +2,7 @@ // // gpio.h - Defines and Macros for GPIO API. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -72,6 +72,7 @@ extern "C" #define GPIO_BOTH_EDGES 0x00000001 // Interrupt on both edges #define GPIO_LOW_LEVEL 0x00000002 // Interrupt on low level #define GPIO_HIGH_LEVEL 0x00000007 // Interrupt on high level +#define GPIO_DISCRETE_INT 0x00010000 // Interrupt for individual pins //***************************************************************************** // @@ -98,616 +99,6 @@ extern "C" #define GPIO_PIN_TYPE_OD_WPD 0x0000000D // Open-drain with weak pull-down #define GPIO_PIN_TYPE_ANALOG 0x00000000 // Analog comparator -//***************************************************************************** -// -// Values that can be passed to GPIOPinConfigure as the ulPinConfig parameter. -// -//***************************************************************************** -// -// GPIO pin A0 -// -#define GPIO_PA0_U0RX 0x00000001 -#define GPIO_PA0_I2C1SCL 0x00000008 -#define GPIO_PA0_U1RX 0x00000009 - -// -// GPIO pin A1 -// -#define GPIO_PA1_U0TX 0x00000401 -#define GPIO_PA1_I2C1SDA 0x00000408 -#define GPIO_PA1_U1TX 0x00000409 - -// -// GPIO pin A2 -// -#define GPIO_PA2_SSI0CLK 0x00000801 -#define GPIO_PA2_PWM4 0x00000804 -#define GPIO_PA2_I2S0RXSD 0x00000809 - -// -// GPIO pin A3 -// -#define GPIO_PA3_SSI0FSS 0x00000c01 -#define GPIO_PA3_PWM5 0x00000c04 -#define GPIO_PA3_I2S0RXMCLK 0x00000c09 - -// -// GPIO pin A4 -// -#define GPIO_PA4_SSI0RX 0x00001001 -#define GPIO_PA4_PWM6 0x00001004 -#define GPIO_PA4_CAN0RX 0x00001005 -#define GPIO_PA4_I2S0TXSCK 0x00001009 - -// -// GPIO pin A5 -// -#define GPIO_PA5_SSI0TX 0x00001401 -#define GPIO_PA5_PWM7 0x00001404 -#define GPIO_PA5_CAN0TX 0x00001405 -#define GPIO_PA5_I2S0TXWS 0x00001409 - -// -// GPIO pin A6 -// -#define GPIO_PA6_I2C1SCL 0x00001801 -#define GPIO_PA6_CCP1 0x00001802 -#define GPIO_PA6_PWM0 0x00001804 -#define GPIO_PA6_PWM4 0x00001805 -#define GPIO_PA6_CAN0RX 0x00001806 -#define GPIO_PA6_USB0EPEN 0x00001808 -#define GPIO_PA6_U1CTS 0x00001809 - -// -// GPIO pin A7 -// -#define GPIO_PA7_I2C1SDA 0x00001c01 -#define GPIO_PA7_CCP4 0x00001c02 -#define GPIO_PA7_PWM1 0x00001c04 -#define GPIO_PA7_PWM5 0x00001c05 -#define GPIO_PA7_CAN0TX 0x00001c06 -#define GPIO_PA7_CCP3 0x00001c07 -#define GPIO_PA7_USB0PFLT 0x00001c08 -#define GPIO_PA7_U1DCD 0x00001c09 - -// -// GPIO pin B0 -// -#define GPIO_PB0_CCP0 0x00010001 -#define GPIO_PB0_PWM2 0x00010002 -#define GPIO_PB0_U1RX 0x00010005 - -// -// GPIO pin B1 -// -#define GPIO_PB1_CCP2 0x00010401 -#define GPIO_PB1_PWM3 0x00010402 -#define GPIO_PB1_CCP1 0x00010404 -#define GPIO_PB1_U1TX 0x00010405 - -// -// GPIO pin B2 -// -#define GPIO_PB2_I2C0SCL 0x00010801 -#define GPIO_PB2_IDX0 0x00010802 -#define GPIO_PB2_CCP3 0x00010804 -#define GPIO_PB2_CCP0 0x00010805 -#define GPIO_PB2_USB0EPEN 0x00010808 - -// -// GPIO pin B3 -// -#define GPIO_PB3_I2C0SDA 0x00010c01 -#define GPIO_PB3_FAULT0 0x00010c02 -#define GPIO_PB3_FAULT3 0x00010c04 -#define GPIO_PB3_USB0PFLT 0x00010c08 - -// -// GPIO pin B4 -// -#define GPIO_PB4_U2RX 0x00011004 -#define GPIO_PB4_CAN0RX 0x00011005 -#define GPIO_PB4_IDX0 0x00011006 -#define GPIO_PB4_U1RX 0x00011007 -#define GPIO_PB4_EPI0S23 0x00011008 - -// -// GPIO pin B5 -// -#define GPIO_PB5_C0O 0x00011401 -#define GPIO_PB5_CCP5 0x00011402 -#define GPIO_PB5_CCP6 0x00011403 -#define GPIO_PB5_CCP0 0x00011404 -#define GPIO_PB5_CAN0TX 0x00011405 -#define GPIO_PB5_CCP2 0x00011406 -#define GPIO_PB5_U1TX 0x00011407 -#define GPIO_PB5_EPI0S22 0x00011408 - -// -// GPIO pin B6 -// -#define GPIO_PB6_CCP1 0x00011801 -#define GPIO_PB6_CCP7 0x00011802 -#define GPIO_PB6_C0O 0x00011803 -#define GPIO_PB6_FAULT1 0x00011804 -#define GPIO_PB6_IDX0 0x00011805 -#define GPIO_PB6_CCP5 0x00011806 -#define GPIO_PB6_I2S0TXSCK 0x00011809 - -// -// GPIO pin B7 -// -#define GPIO_PB7_NMI 0x00011c04 - -// -// GPIO pin C0 -// -#define GPIO_PC0_TCK 0x00020003 - -// -// GPIO pin C1 -// -#define GPIO_PC1_TMS 0x00020403 - -// -// GPIO pin C2 -// -#define GPIO_PC2_TDI 0x00020803 - -// -// GPIO pin C3 -// -#define GPIO_PC3_TDO 0x00020c03 - -// -// GPIO pin C4 -// -#define GPIO_PC4_CCP5 0x00021001 -#define GPIO_PC4_PHA0 0x00021002 -#define GPIO_PC4_PWM6 0x00021004 -#define GPIO_PC4_CCP2 0x00021005 -#define GPIO_PC4_CCP4 0x00021006 -#define GPIO_PC4_EPI0S2 0x00021008 -#define GPIO_PC4_CCP1 0x00021009 - -// -// GPIO pin C5 -// -#define GPIO_PC5_CCP1 0x00021401 -#define GPIO_PC5_C1O 0x00021402 -#define GPIO_PC5_C0O 0x00021403 -#define GPIO_PC5_FAULT2 0x00021404 -#define GPIO_PC5_CCP3 0x00021405 -#define GPIO_PC5_USB0EPEN 0x00021406 -#define GPIO_PC5_EPI0S3 0x00021408 - -// -// GPIO pin C6 -// -#define GPIO_PC6_CCP3 0x00021801 -#define GPIO_PC6_PHB0 0x00021802 -#define GPIO_PC6_C2O 0x00021803 -#define GPIO_PC6_PWM7 0x00021804 -#define GPIO_PC6_U1RX 0x00021805 -#define GPIO_PC6_CCP0 0x00021806 -#define GPIO_PC6_USB0PFLT 0x00021807 -#define GPIO_PC6_EPI0S4 0x00021808 - -// -// GPIO pin C7 -// -#define GPIO_PC7_CCP4 0x00021c01 -#define GPIO_PC7_PHB0 0x00021c02 -#define GPIO_PC7_CCP0 0x00021c04 -#define GPIO_PC7_U1TX 0x00021c05 -#define GPIO_PC7_USB0PFLT 0x00021c06 -#define GPIO_PC7_C1O 0x00021c07 -#define GPIO_PC7_EPI0S5 0x00021c08 - -// -// GPIO pin D0 -// -#define GPIO_PD0_PWM0 0x00030001 -#define GPIO_PD0_CAN0RX 0x00030002 -#define GPIO_PD0_IDX0 0x00030003 -#define GPIO_PD0_U2RX 0x00030004 -#define GPIO_PD0_U1RX 0x00030005 -#define GPIO_PD0_CCP6 0x00030006 -#define GPIO_PD0_I2S0RXSCK 0x00030008 -#define GPIO_PD0_U1CTS 0x00030009 - -// -// GPIO pin D1 -// -#define GPIO_PD1_PWM1 0x00030401 -#define GPIO_PD1_CAN0TX 0x00030402 -#define GPIO_PD1_PHA0 0x00030403 -#define GPIO_PD1_U2TX 0x00030404 -#define GPIO_PD1_U1TX 0x00030405 -#define GPIO_PD1_CCP7 0x00030406 -#define GPIO_PD1_I2S0RXWS 0x00030408 -#define GPIO_PD1_U1DCD 0x00030409 -#define GPIO_PD1_CCP2 0x0003040a -#define GPIO_PD1_PHB1 0x0003040b - -// -// GPIO pin D2 -// -#define GPIO_PD2_U1RX 0x00030801 -#define GPIO_PD2_CCP6 0x00030802 -#define GPIO_PD2_PWM2 0x00030803 -#define GPIO_PD2_CCP5 0x00030804 -#define GPIO_PD2_EPI0S20 0x00030808 - -// -// GPIO pin D3 -// -#define GPIO_PD3_U1TX 0x00030c01 -#define GPIO_PD3_CCP7 0x00030c02 -#define GPIO_PD3_PWM3 0x00030c03 -#define GPIO_PD3_CCP0 0x00030c04 -#define GPIO_PD3_EPI0S21 0x00030c08 - -// -// GPIO pin D4 -// -#define GPIO_PD4_CCP0 0x00031001 -#define GPIO_PD4_CCP3 0x00031002 -#define GPIO_PD4_I2S0RXSD 0x00031008 -#define GPIO_PD4_U1RI 0x00031009 -#define GPIO_PD4_EPI0S19 0x0003100a - -// -// GPIO pin D5 -// -#define GPIO_PD5_CCP2 0x00031401 -#define GPIO_PD5_CCP4 0x00031402 -#define GPIO_PD5_I2S0RXMCLK 0x00031408 -#define GPIO_PD5_U2RX 0x00031409 -#define GPIO_PD5_EPI0S28 0x0003140a - -// -// GPIO pin D6 -// -#define GPIO_PD6_FAULT0 0x00031801 -#define GPIO_PD6_I2S0TXSCK 0x00031808 -#define GPIO_PD6_U2TX 0x00031809 -#define GPIO_PD6_EPI0S29 0x0003180a - -// -// GPIO pin D7 -// -#define GPIO_PD7_IDX0 0x00031c01 -#define GPIO_PD7_C0O 0x00031c02 -#define GPIO_PD7_CCP1 0x00031c03 -#define GPIO_PD7_I2S0TXWS 0x00031c08 -#define GPIO_PD7_U1DTR 0x00031c09 -#define GPIO_PD7_EPI0S30 0x00031c0a - -// -// GPIO pin E0 -// -#define GPIO_PE0_PWM4 0x00040001 -#define GPIO_PE0_SSI1CLK 0x00040002 -#define GPIO_PE0_CCP3 0x00040003 -#define GPIO_PE0_EPI0S8 0x00040008 -#define GPIO_PE0_USB0PFLT 0x00040009 - -// -// GPIO pin E1 -// -#define GPIO_PE1_PWM5 0x00040401 -#define GPIO_PE1_SSI1FSS 0x00040402 -#define GPIO_PE1_FAULT0 0x00040403 -#define GPIO_PE1_CCP2 0x00040404 -#define GPIO_PE1_CCP6 0x00040405 -#define GPIO_PE1_EPI0S9 0x00040408 - -// -// GPIO pin E2 -// -#define GPIO_PE2_CCP4 0x00040801 -#define GPIO_PE2_SSI1RX 0x00040802 -#define GPIO_PE2_PHB1 0x00040803 -#define GPIO_PE2_PHA0 0x00040804 -#define GPIO_PE2_CCP2 0x00040805 -#define GPIO_PE2_EPI0S24 0x00040808 - -// -// GPIO pin E3 -// -#define GPIO_PE3_CCP1 0x00040c01 -#define GPIO_PE3_SSI1TX 0x00040c02 -#define GPIO_PE3_PHA1 0x00040c03 -#define GPIO_PE3_PHB0 0x00040c04 -#define GPIO_PE3_CCP7 0x00040c05 -#define GPIO_PE3_EPI0S25 0x00040c08 - -// -// GPIO pin E4 -// -#define GPIO_PE4_CCP3 0x00041001 -#define GPIO_PE4_FAULT0 0x00041004 -#define GPIO_PE4_U2TX 0x00041005 -#define GPIO_PE4_CCP2 0x00041006 -#define GPIO_PE4_I2S0TXWS 0x00041009 - -// -// GPIO pin E5 -// -#define GPIO_PE5_CCP5 0x00041401 -#define GPIO_PE5_I2S0TXSD 0x00041409 - -// -// GPIO pin E6 -// -#define GPIO_PE6_PWM4 0x00041801 -#define GPIO_PE6_C1O 0x00041802 -#define GPIO_PE6_U1CTS 0x00041809 - -// -// GPIO pin E7 -// -#define GPIO_PE7_PWM5 0x00041c01 -#define GPIO_PE7_C2O 0x00041c02 -#define GPIO_PE7_U1DCD 0x00041c09 - -// -// GPIO pin F0 -// -#define GPIO_PF0_CAN1RX 0x00050001 -#define GPIO_PF0_PHB0 0x00050002 -#define GPIO_PF0_PWM0 0x00050003 -#define GPIO_PF0_I2S0TXSD 0x00050008 -#define GPIO_PF0_U1DSR 0x00050009 - -// -// GPIO pin F1 -// -#define GPIO_PF1_CAN1TX 0x00050401 -#define GPIO_PF1_IDX1 0x00050402 -#define GPIO_PF1_PWM1 0x00050403 -#define GPIO_PF1_I2S0TXMCLK 0x00050408 -#define GPIO_PF1_U1RTS 0x00050409 -#define GPIO_PF1_CCP3 0x0005040a - -// -// GPIO pin F2 -// -#define GPIO_PF2_LED1 0x00050801 -#define GPIO_PF2_PWM4 0x00050802 -#define GPIO_PF2_PWM2 0x00050804 -#define GPIO_PF2_SSI1CLK 0x00050809 - -// -// GPIO pin F3 -// -#define GPIO_PF3_LED0 0x00050c01 -#define GPIO_PF3_PWM5 0x00050c02 -#define GPIO_PF3_PWM3 0x00050c04 -#define GPIO_PF3_SSI1FSS 0x00050c09 - -// -// GPIO pin F4 -// -#define GPIO_PF4_CCP0 0x00051001 -#define GPIO_PF4_C0O 0x00051002 -#define GPIO_PF4_FAULT0 0x00051004 -#define GPIO_PF4_EPI0S12 0x00051008 -#define GPIO_PF4_SSI1RX 0x00051009 - -// -// GPIO pin F5 -// -#define GPIO_PF5_CCP2 0x00051401 -#define GPIO_PF5_C1O 0x00051402 -#define GPIO_PF5_EPI0S15 0x00051408 -#define GPIO_PF5_SSI1TX 0x00051409 - -// -// GPIO pin F6 -// -#define GPIO_PF6_CCP1 0x00051801 -#define GPIO_PF6_C2O 0x00051802 -#define GPIO_PF6_PHA0 0x00051804 -#define GPIO_PF6_I2S0TXMCLK 0x00051809 -#define GPIO_PF6_U1RTS 0x0005180a - -// -// GPIO pin F7 -// -#define GPIO_PF7_CCP4 0x00051c01 -#define GPIO_PF7_PHB0 0x00051c04 -#define GPIO_PF7_EPI0S12 0x00051c08 -#define GPIO_PF7_FAULT1 0x00051c09 - -// -// GPIO pin G0 -// -#define GPIO_PG0_U2RX 0x00060001 -#define GPIO_PG0_PWM0 0x00060002 -#define GPIO_PG0_I2C1SCL 0x00060003 -#define GPIO_PG0_PWM4 0x00060004 -#define GPIO_PG0_USB0EPEN 0x00060007 -#define GPIO_PG0_EPI0S13 0x00060008 - -// -// GPIO pin G1 -// -#define GPIO_PG1_U2TX 0x00060401 -#define GPIO_PG1_PWM1 0x00060402 -#define GPIO_PG1_I2C1SDA 0x00060403 -#define GPIO_PG1_PWM5 0x00060404 -#define GPIO_PG1_EPI0S14 0x00060408 - -// -// GPIO pin G2 -// -#define GPIO_PG2_PWM0 0x00060801 -#define GPIO_PG2_FAULT0 0x00060804 -#define GPIO_PG2_IDX1 0x00060808 -#define GPIO_PG2_I2S0RXSD 0x00060809 - -// -// GPIO pin G3 -// -#define GPIO_PG3_PWM1 0x00060c01 -#define GPIO_PG3_FAULT2 0x00060c04 -#define GPIO_PG3_FAULT0 0x00060c08 -#define GPIO_PG3_I2S0RXMCLK 0x00060c09 - -// -// GPIO pin G4 -// -#define GPIO_PG4_CCP3 0x00061001 -#define GPIO_PG4_FAULT1 0x00061004 -#define GPIO_PG4_EPI0S15 0x00061008 -#define GPIO_PG4_PWM6 0x00061009 -#define GPIO_PG4_U1RI 0x0006100a - -// -// GPIO pin G5 -// -#define GPIO_PG5_CCP5 0x00061401 -#define GPIO_PG5_IDX0 0x00061404 -#define GPIO_PG5_FAULT1 0x00061405 -#define GPIO_PG5_PWM7 0x00061408 -#define GPIO_PG5_I2S0RXSCK 0x00061409 -#define GPIO_PG5_U1DTR 0x0006140a - -// -// GPIO pin G6 -// -#define GPIO_PG6_PHA1 0x00061801 -#define GPIO_PG6_PWM6 0x00061804 -#define GPIO_PG6_FAULT1 0x00061808 -#define GPIO_PG6_I2S0RXWS 0x00061809 -#define GPIO_PG6_U1RI 0x0006180a - -// -// GPIO pin G7 -// -#define GPIO_PG7_PHB1 0x00061c01 -#define GPIO_PG7_PWM7 0x00061c04 -#define GPIO_PG7_CCP5 0x00061c08 -#define GPIO_PG7_EPI0S31 0x00061c09 - -// -// GPIO pin H0 -// -#define GPIO_PH0_CCP6 0x00070001 -#define GPIO_PH0_PWM2 0x00070002 -#define GPIO_PH0_EPI0S6 0x00070008 -#define GPIO_PH0_PWM4 0x00070009 - -// -// GPIO pin H1 -// -#define GPIO_PH1_CCP7 0x00070401 -#define GPIO_PH1_PWM3 0x00070402 -#define GPIO_PH1_EPI0S7 0x00070408 -#define GPIO_PH1_PWM5 0x00070409 - -// -// GPIO pin H2 -// -#define GPIO_PH2_IDX1 0x00070801 -#define GPIO_PH2_C1O 0x00070802 -#define GPIO_PH2_FAULT3 0x00070804 -#define GPIO_PH2_EPI0S1 0x00070808 - -// -// GPIO pin H3 -// -#define GPIO_PH3_PHB0 0x00070c01 -#define GPIO_PH3_FAULT0 0x00070c02 -#define GPIO_PH3_USB0EPEN 0x00070c04 -#define GPIO_PH3_EPI0S0 0x00070c08 - -// -// GPIO pin H4 -// -#define GPIO_PH4_USB0PFLT 0x00071004 -#define GPIO_PH4_EPI0S10 0x00071008 -#define GPIO_PH4_SSI1CLK 0x0007100b - -// -// GPIO pin H5 -// -#define GPIO_PH5_EPI0S11 0x00071408 -#define GPIO_PH5_FAULT2 0x0007140a -#define GPIO_PH5_SSI1FSS 0x0007140b - -// -// GPIO pin H6 -// -#define GPIO_PH6_EPI0S26 0x00071808 -#define GPIO_PH6_PWM4 0x0007180a -#define GPIO_PH6_SSI1RX 0x0007180b - -// -// GPIO pin H7 -// -#define GPIO_PH7_EPI0S27 0x00071c08 -#define GPIO_PH7_PWM5 0x00071c0a -#define GPIO_PH7_SSI1TX 0x00071c0b - -// -// GPIO pin J0 -// -#define GPIO_PJ0_EPI0S16 0x00080008 -#define GPIO_PJ0_PWM0 0x0008000a -#define GPIO_PJ0_I2C1SCL 0x0008000b - -// -// GPIO pin J1 -// -#define GPIO_PJ1_EPI0S17 0x00080408 -#define GPIO_PJ1_USB0PFLT 0x00080409 -#define GPIO_PJ1_PWM1 0x0008040a -#define GPIO_PJ1_I2C1SDA 0x0008040b - -// -// GPIO pin J2 -// -#define GPIO_PJ2_EPI0S18 0x00080808 -#define GPIO_PJ2_CCP0 0x00080809 -#define GPIO_PJ2_FAULT0 0x0008080a - -// -// GPIO pin J3 -// -#define GPIO_PJ3_EPI0S19 0x00080c08 -#define GPIO_PJ3_U1CTS 0x00080c09 -#define GPIO_PJ3_CCP6 0x00080c0a - -// -// GPIO pin J4 -// -#define GPIO_PJ4_EPI0S28 0x00081008 -#define GPIO_PJ4_U1DCD 0x00081009 -#define GPIO_PJ4_CCP4 0x0008100a - -// -// GPIO pin J5 -// -#define GPIO_PJ5_EPI0S29 0x00081408 -#define GPIO_PJ5_U1DSR 0x00081409 -#define GPIO_PJ5_CCP2 0x0008140a - -// -// GPIO pin J6 -// -#define GPIO_PJ6_EPI0S30 0x00081808 -#define GPIO_PJ6_U1RTS 0x00081809 -#define GPIO_PJ6_CCP1 0x0008180a - -// -// GPIO pin J7 -// -#define GPIO_PJ7_U1DTR 0x00081c09 -#define GPIO_PJ7_CCP0 0x00081c0a - //***************************************************************************** // // Prototypes for the APIs. @@ -741,12 +132,18 @@ extern void GPIOPinTypeCAN(unsigned long ulPort, unsigned char ucPins); extern void GPIOPinTypeComparator(unsigned long ulPort, unsigned char ucPins); extern void GPIOPinTypeEPI(unsigned long ulPort, unsigned char ucPins); extern void GPIOPinTypeEthernetLED(unsigned long ulPort, unsigned char ucPins); +extern void GPIOPinTypeEthernetMII(unsigned long ulPort, unsigned char ucPins); +extern void GPIOPinTypeFan(unsigned long ulPort, unsigned char ucPins); extern void GPIOPinTypeGPIOInput(unsigned long ulPort, unsigned char ucPins); extern void GPIOPinTypeGPIOOutput(unsigned long ulPort, unsigned char ucPins); extern void GPIOPinTypeGPIOOutputOD(unsigned long ulPort, unsigned char ucPins); extern void GPIOPinTypeI2C(unsigned long ulPort, unsigned char ucPins); +extern void GPIOPinTypeI2CSCL(unsigned long ulPort, unsigned char ucPins); extern void GPIOPinTypeI2S(unsigned long ulPort, unsigned char ucPins); +extern void GPIOPinTypeLPC(unsigned long ulPort, unsigned char ucPins); +extern void GPIOPinTypePECIRx(unsigned long ulPort, unsigned char ucPins); +extern void GPIOPinTypePECITx(unsigned long ulPort, unsigned char ucPins); extern void GPIOPinTypePWM(unsigned long ulPort, unsigned char ucPins); extern void GPIOPinTypeQEI(unsigned long ulPort, unsigned char ucPins); extern void GPIOPinTypeSSI(unsigned long ulPort, unsigned char ucPins); @@ -754,6 +151,25 @@ extern void GPIOPinTypeTimer(unsigned long ulPort, unsigned char ucPins); extern void GPIOPinTypeUART(unsigned long ulPort, unsigned char ucPins); extern void GPIOPinTypeUSBAnalog(unsigned long ulPort, unsigned char ucPins); extern void GPIOPinTypeUSBDigital(unsigned long ulPort, unsigned char ucPins); +extern void GPIODMATriggerEnable(unsigned long ulPort, unsigned char ucPins); +extern void GPIODMATriggerDisable(unsigned long ulPort, unsigned char ucPins); +extern void GPIOADCTriggerEnable(unsigned long ulPort, unsigned char ucPins); +extern void GPIOADCTriggerDisable(unsigned long ulPort, unsigned char ucPins); + +//**************************************************************************** +// +// The definitions for GPIOPinConfigure previously resided in this file but +// have been moved to pin_map.h and made part-specific (in other words, only +// those definitions that are valid based on the selected part, as defined by +// PART_, will be made available). For backwards compatibility, +// pin_map.h is included here so that the expected definitions will still be +// available (though part-specific now, so some that were previously available +// but inappropriate for the given part will not be available). +// +//***************************************************************************** +#ifndef DEPRECATED +#include "pin_map.h" +#endif //***************************************************************************** // diff --git a/bsp/lm3s8962/Libraries/driverlib/hibernate.c b/bsp/lm3s8962/Libraries/driverlib/hibernate.c index 6e4c051710..97d0d7fc48 100644 --- a/bsp/lm3s8962/Libraries/driverlib/hibernate.c +++ b/bsp/lm3s8962/Libraries/driverlib/hibernate.c @@ -2,7 +2,7 @@ // // hibernate.c - Driver for the Hibernation module // -// Copyright (c) 2007-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2007-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -69,9 +69,9 @@ static unsigned long g_ulWriteDelay; //! \param None. //! //! On non-Fury-class devices, the hibernate module provides an indication when -//! any write is completed. This is used to pace writes to the module. This -//! function merely polls this bit and returns as soon as it is set. At this -//! point, it is safe to perform another write to the module. +//! any write is completed. This mechanism is used to pace writes to the +//! module. This function merely polls this bit and returns as soon as it is +//! set. At this point, it is safe to perform another write to the module. //! //! \return None. // @@ -80,10 +80,24 @@ void HibernateWriteComplete(void) { // - // Spin until the write complete bit is set. + // Add a delay here to enforce the required delay between write accesses to + // certain Hibernation module registers. // - while(!(HWREG(HIB_CTL) & HIB_CTL_WRC)) + if(CLASS_IS_FURY) { + // + // Delay a fixed time on Fury-class devices + // + SysCtlDelay(g_ulWriteDelay); + } + else + { + // + // Spin until the write complete bit is set, for later devices. + // + while(!(HWREG(HIB_CTL) & HIB_CTL_WRC)) + { + } } } @@ -94,13 +108,13 @@ HibernateWriteComplete(void) //! \param ulHibClk is the rate of the clock supplied to the Hibernation //! module. //! -//! Enables the Hibernation module for operation. This function should be -//! called before any of the Hibernation module features are used. +//! This function enables the Hibernation module for operation. This function +//! should be called before any of the Hibernation module features are used. //! -//! The peripheral clock will be the same as the processor clock. This will be -//! the value returned by SysCtlClockGet(), or it can be explicitly hard-coded -//! if it is constant and known (to save the code/execution overhead of a call -//! to SysCtlClockGet()). +//! The peripheral clock is the same as the processor clock. This value is +//! returned by SysCtlClockGet(), or it can be explicitly hard-coded if it is +//! constant and known (to save the code/execution overhead of a call to +//! SysCtlClockGet()). //! //! This function replaces the original HibernateEnable() API and performs the //! same actions. A macro is provided in hibernate.h to map the @@ -128,14 +142,22 @@ HibernateEnableExpClk(unsigned long ulHibClk) (1000L * LOOP_CYCLES)); g_ulWriteDelay++; } + else + { + // + // Non-fury parts must wait for write complete following register + // load (above). + // + HibernateWriteComplete(); + } } //***************************************************************************** // //! Disables the Hibernation module for operation. //! -//! Disables the Hibernation module for operation. After this function is -//! called, none of the Hibernation module features are available. +//! This function disables the Hibernation module for operation. After this +//! function is called, none of the Hibernation module features are available. //! //! \return None. // @@ -147,6 +169,11 @@ HibernateDisable(void) // Turn off the clock enable bit. // HWREG(HIB_CTL) &= ~HIB_CTL_CLK32EN; + + // + // Wait for write completion + // + HibernateWriteComplete(); } //***************************************************************************** @@ -155,15 +182,20 @@ HibernateDisable(void) //! //! \param ulClockInput specifies the clock input. //! -//! Configures the clock input for the Hibernation module. The configuration -//! option chosen depends entirely on hardware design. The clock input for the -//! module will either be a 32.768 kHz oscillator or a 4.194304 MHz crystal. -//! The \e ulClockFlags parameter must be one of the following: +//! This function configures the clock input for the Hibernation module. The +//! configuration option chosen depends entirely on hardware design. The clock +//! input for the module is either a 32.768 kHz oscillator or a 4.194304 MHz +//! crystal. The \e ulClockFlags parameter must be one of the following: //! //! - \b HIBERNATE_CLOCK_SEL_RAW - use the raw signal from a 32.768 kHz //! oscillator. //! - \b HIBERNATE_CLOCK_SEL_DIV128 - use the crystal input, divided by 128. //! +//! \note The \b HIBERNATE_CLOCK_SEL_DIV128 setting is not available on all +//! Stellaris devices. Please consult the data sheet to determine if the +//! device that you are using supports the 4.194304 crystal as a source for the +//! Hibernation module. +//! //! \return None. // //***************************************************************************** @@ -180,16 +212,87 @@ HibernateClockSelect(unsigned long ulClockInput) // Set the clock selection bit according to the parameter. // HWREG(HIB_CTL) = ulClockInput | (HWREG(HIB_CTL) & ~HIB_CTL_CLKSEL); + + // + // Wait for write completion + // + HibernateWriteComplete(); +} + +//***************************************************************************** +// +//! Configures the clock input for the Hibernation module. +//! +//! \param ulConfig is one of the possible configuration options for the clock +//! input listed below. +//! +//! This function is used to configure the clock input for the Hibernation +//! module. The \e ulConfig parameter can be one of the following values: +//! +//! - \b HIBERNATE_OSC_DISABLE specifies that the internal oscillator +//! is powered off and either an externally supplied clock source or no clock +//! source is being used. +//! - \b HIBERNATE_OSC_HIGHDRIVE specifies a higher drive strength when a 24pF +//! filter capacitor is used with a crystal. +//! - \b HIBERNATE_OSC_LOWDRIVE specifies a lower drive strength when a 12pF +//! filter capacitor is used with a crystal. +//! +//! The \b HIBERNATE_OSC_DISABLE option is used to disable and power down the +//! internal oscillator if an external clock source or no clock source is used +//! instead of a 32.768 kHz crystal. In the case where an external crystal is +//! used, either the \b HIBERNATE_OSC_HIGHDRIVE or \b HIBERNATE_OSC_LOWDRIVE is +//! used. This optimizes the oscillator drive strength to match the size of +//! the filter capacitor that is used with the external crystal circuit. +//! +//! \note The ability to configure the clock input in the Hibernation +//! module is not available on all Stellaris devices. Please consult the data +//! sheet for the Stellaris device that you are using to determine if this +//! feature is available. +//! +//! \return None. +// +//***************************************************************************** +void +HibernateClockConfig(unsigned long ulConfig) +{ + unsigned long ulHIBCtl; + + ASSERT((ulConfig & (HIBERNATE_OSC_HIGHDRIVE | HIBERNATE_OSC_LOWDRIVE | + HIBERNATE_OSC_DISABLE)) == 0); + + ulHIBCtl = HWREG(HIB_CTL); + + // + // Clear the current configuration bits. + // + ulHIBCtl &= ~(HIBERNATE_OSC_HIGHDRIVE | HIBERNATE_OSC_LOWDRIVE | + HIBERNATE_OSC_DISABLE); + + // + // Set the new configuration bits. + // + ulHIBCtl |= ulConfig & (HIBERNATE_OSC_HIGHDRIVE | HIBERNATE_OSC_LOWDRIVE | + HIBERNATE_OSC_DISABLE); + + // + // Set the hibernation clocking configuration. + // + HWREG(HIB_CTL) = ulHIBCtl; + + // + // Wait for write completion + // + HibernateWriteComplete(); } //***************************************************************************** // //! Enables the RTC feature of the Hibernation module. //! -//! Enables the RTC in the Hibernation module. The RTC can be used to wake the -//! processor from hibernation at a certain time, or to generate interrupts at -//! certain times. This function must be called before using any of the RTC -//! features of the Hibernation module. +//! This function enables the RTC in the Hibernation module. The RTC can be +//! used to wake the processor from hibernation at a certain time, or to +//! generate interrupts at certain times. This function must be called before +//! using any of the RTC features of the Hibernation module. //! //! \return None. // @@ -201,14 +304,20 @@ HibernateRTCEnable(void) // Turn on the RTC enable bit. // HWREG(HIB_CTL) |= HIB_CTL_RTCEN; + + // + // Wait for write completion + // + HibernateWriteComplete(); } //***************************************************************************** // //! Disables the RTC feature of the Hibernation module. //! -//! Disables the RTC in the Hibernation module. After calling this function -//! the RTC features of the Hibernation module will not be available. +//! This function disables the RTC in the Hibernation module. After calling +//! this function, the RTC features of the Hibernation module are not +//! available. //! //! \return None. // @@ -220,6 +329,72 @@ HibernateRTCDisable(void) // Turn off the RTC enable bit. // HWREG(HIB_CTL) &= ~HIB_CTL_RTCEN; + + // + // Wait for write completion + // + HibernateWriteComplete(); +} + +//***************************************************************************** +// +//! Forces the Hibernation module to initiate a check of the battery voltage. +//! +//! This function forces the Hibernation module to initiate a check of the +//! battery voltage immediately rather than waiting for the next check interval +//! to pass. After calling this function, the application should call the +//! () function and wait for the function to return a zero +//! value before calling the HibernateIntStatus() to check if the return code +//! has the \b HIBERNATE_INT_LOW_BAT set. If \b HIBERNATE_INT_LOW_BAT is set +//! this indicates that battery level is low. The application can also enable +//! the \b HIBERNATE_INT_LOW_BAT interrupt and wait for an interrupt to +//! indicate that the battery level is low. +//! +//! \note A hibernation request is held off if a battery check is in progress. +//! This function is only available on some Stellaris devices. +//! +//! \return None. +// +//***************************************************************************** +void +HibernateBatCheckStart(void) +{ + // + // Initiated a forced battery check. + // + HWREG(HIB_CTL) |= HIB_CTL_BATCHK; + + // + // Wait for write completion + // + HibernateWriteComplete(); +} + +//***************************************************************************** +// +//! Returns if a forced battery check has completed. +//! +//! This function returns if the forced battery check initiated by a call to +//! the HibernateBatCheckStart() function has completed. This function +//! returns a non-zero value until the battery level check has completed. Once +//! this function returns a value of zero, the hibernation module has completed +//! the battery check and the HibernateIntStatus() function can be used to +//! check if the battery was low by checking if the value returned has the +//! \b HIBERNATE_INT_LOW_BAT set. +//! +//! \note This function is only available on some Stellaris devices. +//! +//! \return The value is zero when the battery level check has completed or +//! non-zero if the check is still in process. +// +//***************************************************************************** +unsigned long +HibernateBatCheckDone(void) +{ + // + // Read the current state of the batter check. + // + return(HWREG(HIB_CTL) & HIB_CTL_BATCHK); } //***************************************************************************** @@ -228,12 +403,17 @@ HibernateRTCDisable(void) //! //! \param ulWakeFlags specifies which conditions should be used for waking. //! -//! Enables the conditions under which the Hibernation module will wake. The -//! \e ulWakeFlags parameter is the logical OR of any combination of the -//! following: +//! This function enables the conditions under which the Hibernation module +//! wakes. The \e ulWakeFlags parameter is the logical OR of any combination +//! of the following: //! //! - \b HIBERNATE_WAKE_PIN - wake when the external wake pin is asserted. //! - \b HIBERNATE_WAKE_RTC - wake when one of the RTC matches occurs. +//! - \b HIBERNATE_WAKE_LOW_BAT - wake from hibernate due to a low battery +//! level being detected. +//! +//! \note The \b HIBERNATE_WAKE_LOW_BAT parameter is only available on some +//! Stellaris devices. //! //! \return None. // @@ -244,25 +424,38 @@ HibernateWakeSet(unsigned long ulWakeFlags) // // Check the arguments. // - ASSERT(!(ulWakeFlags & ~(HIBERNATE_WAKE_PIN | HIBERNATE_WAKE_RTC))); + ASSERT(!(ulWakeFlags & ~(HIBERNATE_WAKE_PIN | HIBERNATE_WAKE_RTC | + HIBERNATE_WAKE_LOW_BAT))); // // Set the specified wake flags in the control register. // HWREG(HIB_CTL) = (ulWakeFlags | - (HWREG(HIB_CTL) & - ~(HIBERNATE_WAKE_PIN | HIBERNATE_WAKE_RTC))); + (HWREG(HIB_CTL) & ~(HIBERNATE_WAKE_PIN + | HIBERNATE_WAKE_RTC | + HIBERNATE_WAKE_LOW_BAT))); + + // + // Wait for write completion + // + HibernateWriteComplete(); } //***************************************************************************** // //! Gets the currently configured wake conditions for the Hibernation module. //! -//! Returns the flags representing the wake configuration for the Hibernation -//! module. The return value will be a combination of the following flags: +//! This function returns the flags representing the wake configuration for the +//! Hibernation module. The return value is a combination of the following +//! flags: //! //! - \b HIBERNATE_WAKE_PIN - wake when the external wake pin is asserted. //! - \b HIBERNATE_WAKE_RTC - wake when one of the RTC matches occurs. +//! - \b HIBERNATE_WAKE_LOW_BAT - wake from hibernate due to a low battery +//! level being detected. +//! +//! \note The \b HIBERNATE_WAKE_LOW_BAT parameter is only available on some +//! Stellaris devices. //! //! \return Returns flags indicating the configured wake conditions. // @@ -274,7 +467,8 @@ HibernateWakeGet(void) // Read the wake bits from the control register and return // those bits to the caller. // - return(HWREG(HIB_CTL) & (HIBERNATE_WAKE_PIN | HIBERNATE_WAKE_RTC)); + return(HWREG(HIB_CTL) & (HIBERNATE_WAKE_PIN | HIBERNATE_WAKE_RTC + | HIBERNATE_WAKE_LOW_BAT)); } //***************************************************************************** @@ -283,11 +477,11 @@ HibernateWakeGet(void) //! //! \param ulLowBatFlags specifies behavior of low battery detection. //! -//! Enables the low battery detection and whether hibernation is allowed if a -//! low battery is detected. If low battery detection is enabled, then a low -//! battery condition will be indicated in the raw interrupt status register, -//! and can also trigger an interrupt. Optionally, hibernation can be aborted -//! if a low battery is detected. +//! This function enables the low battery detection and whether hibernation is +//! allowed if a low battery is detected. If low battery detection is enabled, +//! then a low battery condition is indicated in the raw interrupt status +//! register, and can also trigger an interrupt. Optionally, hibernation can be +//! aborted if a low battery is detected. //! //! The \e ulLowBatFlags parameter is one of the following values: //! @@ -295,6 +489,23 @@ HibernateWakeGet(void) //! - \b HIBERNATE_LOW_BAT_ABORT - detect a low battery condition, and abort //! hibernation if low battery is detected. //! +//! The other setting in the \e ulLowBatFlags allows the caller to set one of +//! the following voltage level trigger values : +//! +//! - \b HIBERNATE_LOW_BAT_1_9V - voltage low level is 1.9V +//! - \b HIBERNATE_LOW_BAT_2_1V - voltage low level is 2.1V +//! - \b HIBERNATE_LOW_BAT_2_3V - voltage low level is 2.3V +//! - \b HIBERNATE_LOW_BAT_2_5V - voltage low level is 2.5V +//! +//! \b Example: Abort hibernate if the voltage level is below 2.1V. +//! +//! \verbatim +//! HibernateLowBatSet(HIBERNATE_LOW_BAT_ABORT | HIBERNATE_LOW_BAT_2_1V); +//! \endverbatim +//! +//! \note The parameters with the specific voltage levels are only available on +//! some Stellaris devices. +//! //! \return None. // //***************************************************************************** @@ -304,27 +515,31 @@ HibernateLowBatSet(unsigned long ulLowBatFlags) // // Check the arguments. // - ASSERT((ulLowBatFlags == HIBERNATE_LOW_BAT_DETECT) || - (ulLowBatFlags == HIBERNATE_LOW_BAT_ABORT)); + ASSERT(!(ulLowBatFlags & ~(HIB_CTL_VBATSEL_M | HIBERNATE_LOW_BAT_ABORT))); // // Set the low battery detect and abort bits in the control register, // according to the parameter. // HWREG(HIB_CTL) = (ulLowBatFlags | - (HWREG(HIB_CTL) & ~HIBERNATE_LOW_BAT_ABORT)); + (HWREG(HIB_CTL) & ~(HIB_CTL_VBATSEL_M + | HIBERNATE_LOW_BAT_ABORT))); + + // + // Wait for write completion + // + HibernateWriteComplete(); } //***************************************************************************** // //! Gets the currently configured low battery detection behavior. //! -//! Returns a value representing the currently configured low battery detection -//! behavior. The return value will be one of the following: +//! This function returns a value representing the currently configured low +//! battery detection behavior. //! -//! - \b HIBERNATE_LOW_BAT_DETECT - detect a low battery condition. -//! - \b HIBERNATE_LOW_BAT_ABORT - detect a low battery condition, and abort -//! hibernation if low battery is detected. +//! The return value is a combination of the values described in the +//! HibernateLowBatSet() function. //! //! \return Returns a value indicating the configured low battery detection. // @@ -333,10 +548,10 @@ unsigned long HibernateLowBatGet(void) { // - // Read the low bat bits from the control register and return those bits to - // the caller. + // Read the supported low bat bits from the control register and return + // those bits to the caller. // - return(HWREG(HIB_CTL) & HIBERNATE_LOW_BAT_ABORT); + return(HWREG(HIB_CTL) & (HIB_CTL_VBATSEL_M | HIBERNATE_LOW_BAT_ABORT)); } //***************************************************************************** @@ -345,8 +560,8 @@ HibernateLowBatGet(void) //! //! \param ulRTCValue is the new value for the RTC. //! -//! Sets the value of the RTC. The RTC will count seconds if the hardware is -//! configured correctly. The RTC must be enabled by calling +//! This function sets the value of the RTC. The RTC count seconds if the +//! hardware is configured correctly. The RTC must be enabled by calling //! HibernateRTCEnable() before calling this function. //! //! \return None. @@ -361,30 +576,16 @@ HibernateRTCSet(unsigned long ulRTCValue) HWREG(HIB_RTCLD) = ulRTCValue; // - // Add a delay here to enforce the required delay between write accesses to - // certain Hibernation module registers. + // Wait for write completion // - if(CLASS_IS_FURY) - { - // - // Delay a fixed time on Fury-class devices - // - SysCtlDelay(g_ulWriteDelay); - } - else - { - // - // Wait for write complete to be signaled on later devices. - // - HibernateWriteComplete(); - } + HibernateWriteComplete(); } //***************************************************************************** // //! Gets the value of the real time clock (RTC) counter. //! -//! Gets the value of the RTC and returns it to the caller. +//! This function gets the value of the RTC and returns it to the caller. //! //! \return Returns the value of the RTC. // @@ -404,9 +605,10 @@ HibernateRTCGet(void) //! //! \param ulMatch is the value for the match register. //! -//! Sets the match 0 register for the RTC. The Hibernation module can be -//! configured to wake from hibernation, and/or generate an interrupt when the -//! value of the RTC counter is the same as the match register. +//! This function sets the match 0 register for the RTC. The Hibernation +//! module can be configured to wake from hibernation, and/or generate an +//! interrupt when the value of the RTC counter is the same as the match +//! register. //! //! \return None. // @@ -420,30 +622,16 @@ HibernateRTCMatch0Set(unsigned long ulMatch) HWREG(HIB_RTCM0) = ulMatch; // - // Add a delay here to enforce the required delay between write accesses to - // certain Hibernation module registers. + // Wait for write completion // - if(CLASS_IS_FURY) - { - // - // Delay a fixed time on Fury-class devices - // - SysCtlDelay(g_ulWriteDelay); - } - else - { - // - // Wait for write complete to be signaled on later devices. - // - HibernateWriteComplete(); - } + HibernateWriteComplete(); } //***************************************************************************** // //! Gets the value of the RTC match 0 register. //! -//! Gets the value of the match 0 register for the RTC. +//! This function gets the value of the match 0 register for the RTC. //! //! \return Returns the value of the match register. // @@ -463,9 +651,14 @@ HibernateRTCMatch0Get(void) //! //! \param ulMatch is the value for the match register. //! -//! Sets the match 1 register for the RTC. The Hibernation module can be -//! configured to wake from hibernation, and/or generate an interrupt when the -//! value of the RTC counter is the same as the match register. +//! This function sets the match 1 register for the RTC. The Hibernation +//! module can be configured to wake from hibernation, and/or generate an +//! interrupt when the value of the RTC counter is the same as the match +//! register. +//! +//! \note The Hibernation RTC Match 1 feature is not available on all Stellaris +//! devices. Please consult the data sheet for the Stellaris device that you +//! are using to determine if this feature is available. //! //! \return None. // @@ -479,30 +672,20 @@ HibernateRTCMatch1Set(unsigned long ulMatch) HWREG(HIB_RTCM1) = ulMatch; // - // Add a delay here to enforce the required delay between write accesses to - // certain Hibernation module registers. + // Wait for write completion // - if(CLASS_IS_FURY) - { - // - // Delay a fixed time on Fury-class devices - // - SysCtlDelay(g_ulWriteDelay); - } - else - { - // - // Wait for write complete to be signaled on later devices. - // - HibernateWriteComplete(); - } + HibernateWriteComplete(); } //***************************************************************************** // //! Gets the value of the RTC match 1 register. //! -//! Gets the value of the match 1 register for the RTC. +//! This function gets the value of the match 1 register for the RTC. +//! +//! \note The Hibernation RTC Match 1 feature is not available on all Stellaris +//! devices. Please consult the data sheet for the Stellaris device that you +//! are using to determine if this feature is available. //! //! \return Returns the value of the match register. // @@ -516,20 +699,99 @@ HibernateRTCMatch1Get(void) return(HWREG(HIB_RTCM1)); } +//***************************************************************************** +// +//! Sets the value of the RTC sub second match 0 register. +//! +//! \param ulMatch is the value for the sub second match register. +//! +//! This function sets the sub second match 0 register for the RTC in 1/32768 +//! of a second increments. The Hibernation module can be configured to wake +//! from hibernation, and/or generate an interrupt when the value of the RTC +//! counter is the same as the match combined with the sub second match +//! register. +//! +//! \note The Hibernation sub second RTC Match 0 feature is not available on +//! all Stellaris devices. Please consult the data sheet for the Stellaris +//! device that you are using to determine if this feature is available. +//! +//! \return None. +// +//***************************************************************************** +void +HibernateRTCSSMatch0Set(unsigned long ulMatch) +{ + // + // Write the new sub second match value to the sub second match register. + // + HWREG(HIB_RTCSS) = ulMatch << HIB_RTCSS_RTCSSM_S; + + // + // Wait for write complete to be signaled on later devices. + // + HibernateWriteComplete(); +} + +//***************************************************************************** +// +//! Returns the value of the RTC sub second match 0 register. +//! +//! This function returns the current value of the sub second match 0 register +//! for the RTC. The value returned is in 1/32768 second increments. +//! +//! \note The Hibernation sub second RTC Match 0 feature is not available on +//! all Stellaris devices. Please consult the data sheet for the Stellaris +//! device that you are using to determine if this feature is available. +//! +//! \return Returns the value of the sub section match register. +// +//***************************************************************************** +unsigned long +HibernateRTCSSMatch0Get(void) +{ + // + // Read the current second RTC count. + // + return(HWREG(HIB_RTCSS) >> HIB_RTCSS_RTCSSM_S); +} + +//***************************************************************************** +// +//! Returns the current value of the RTC sub second count. +//! +//! This function returns the current value of the sub second count for the +//! for the RTC in 1/32768 of a second increments. +//! +//! \note The Hibernation sub second RTC Match 0 feature is not available on +//! all Stellaris devices. Please consult the data sheet for the Stellaris +//! device that you are using to determine if this feature is available. +//! +//! \return The current RTC sub second count in 1/32768 seconds. +// +//***************************************************************************** +unsigned long +HibernateRTCSSGet(void) +{ + // + // Read the current second RTC count. + // + return(HWREG(HIB_RTCSS) & HIB_RTCSS_RTCSSC_M); +} + //***************************************************************************** // //! Sets the value of the RTC predivider trim register. //! //! \param ulTrim is the new value for the pre-divider trim register. //! -//! Sets the value of the pre-divider trim register. The input time source is -//! divided by the pre-divider to achieve a one-second clock rate. Once every -//! 64 seconds, the value of the pre-divider trim register is applied to the -//! predivider to allow fine-tuning of the RTC rate, in order to make -//! corrections to the rate. The software application can make adjustments to -//! the predivider trim register to account for variations in the accuracy of -//! the input time source. The nominal value is 0x7FFF, and it can be adjusted -//! up or down in order to fine-tune the RTC rate. +//! This function sets the value of the pre-divider trim register. The input +//! time source is divided by the pre-divider to achieve a one-second clock +//! rate. Once every 64 seconds, the value of the pre-divider trim register is +//! applied to the predivider to allow fine-tuning of the RTC rate, in order +//! to make corrections to the rate. The software application can make +//! adjustments to the predivider trim register to account for variations in +//! the accuracy of the input time source. The nominal value is 0x7FFF, and it +//! can be adjusted up or down in order to fine-tune the RTC rate. //! //! \return None. // @@ -548,32 +810,18 @@ HibernateRTCTrimSet(unsigned long ulTrim) HWREG(HIB_RTCT) = ulTrim; // - // Add a delay here to enforce the required delay between write accesses to - // certain Hibernation module registers. + // Wait for write completion // - if(CLASS_IS_FURY) - { - // - // Delay a fixed time on Fury-class devices - // - SysCtlDelay(g_ulWriteDelay); - } - else - { - // - // Wait for write complete to be signaled on later devices. - // - HibernateWriteComplete(); - } + HibernateWriteComplete(); } //***************************************************************************** // //! Gets the value of the RTC predivider trim register. //! -//! Gets the value of the pre-divider trim register. This function can be used -//! to get the current value of the trim register prior to making an adjustment -//! by using the HibernateRTCTrimSet() function. +//! This function gets the value of the pre-divider trim register. This +//! function can be used to get the current value of the trim register prior +//! to making an adjustment by using the HibernateRTCTrimSet() function. //! //! \return None. // @@ -589,26 +837,31 @@ HibernateRTCTrimGet(void) //***************************************************************************** // -//! Stores data in the non-volatile memory of the Hibernation module. +//! Stores data in the battery-backed memory of the Hibernation module. //! //! \param pulData points to the data that the caller wants to store in the //! memory of the Hibernation module. //! \param ulCount is the count of 32-bit words to store. //! -//! Stores a set of data in the Hibernation module non-volatile memory. This -//! memory will be preserved when the power to the processor is turned off, and -//! can be used to store application state information which will be available +//! Stores a set of data in the Hibernation module battery-backed memory. +//! This memory is preserved when the power to the processor is turned off, +//! and can be used to store application state information which is available //! when the processor wakes. Up to 64 32-bit words can be stored in the -//! non-volatile memory. The data can be restored by calling the +//! battery-backed memory. The data can be restored by calling the //! HibernateDataGet() function. //! +//! \note The amount of memory available in the Hibernation module varies +//! across Stellaris devices. Please consult the data sheet for the Stellaris +//! device that you are using to determine the amount of memory available in +//! the Hibernation module. +//! //! \return None. // //***************************************************************************** void HibernateDataSet(unsigned long *pulData, unsigned long ulCount) { - unsigned int uIdx; + unsigned long ulIdx; // // Check the arguments. @@ -619,45 +872,39 @@ HibernateDataSet(unsigned long *pulData, unsigned long ulCount) // // Loop through all the words to be stored, storing one at a time. // - for(uIdx = 0; uIdx < ulCount; uIdx++) + for(ulIdx = 0; ulIdx < ulCount; ulIdx++) { // - // Write a word to the non-volatile storage area. + // Write a word to the battery-backed storage area. // - HWREG(HIB_DATA + (uIdx * 4)) = pulData[uIdx]; + HWREG(HIB_DATA + (ulIdx * 4)) = pulData[ulIdx]; // - // Add a delay between writes to the data area. + // Wait for write completion // - if(CLASS_IS_FURY) - { - // - // Delay a fixed time on Fury-class devices - // - SysCtlDelay(g_ulWriteDelay); - } - else - { - // - // Wait for write complete to be signaled on later devices. - // - HibernateWriteComplete(); - } + HibernateWriteComplete(); } } //***************************************************************************** // -//! Reads a set of data from the non-volatile memory of the Hibernation module. +//! Reads a set of data from the battery-backed memory of the Hibernation +//! module. //! //! \param pulData points to a location where the data that is read from the -//! Hibernation module will be stored. +//! Hibernation module is stored. //! \param ulCount is the count of 32-bit words to read. //! -//! Retrieves a set of data from the Hibernation module non-volatile memory -//! that was previously stored with the HibernateDataSet() function. The -//! caller must ensure that \e pulData points to a large enough memory block to -//! hold all the data that is read from the non-volatile memory. +//! This function retrieves a set of data from the Hibernation module battery- +//! backed memory that was previously stored with the HibernateDataSet() +//! function. The caller must ensure that \e pulData points to a large enough +//! memory block to hold all the data that is read from the battery-backed +//! memory. +//! +//! \note The amount of memory available in the Hibernation module varies +//! across Stellaris devices. Please consult the data sheet for the Stellaris +//! device that you are using to determine the amount of memory available in +//! the Hibernation module. //! //! \return None. // @@ -665,7 +912,7 @@ HibernateDataSet(unsigned long *pulData, unsigned long ulCount) void HibernateDataGet(unsigned long *pulData, unsigned long ulCount) { - unsigned int uIdx; + unsigned long ulIdx; // // Check the arguments. @@ -676,13 +923,13 @@ HibernateDataGet(unsigned long *pulData, unsigned long ulCount) // // Loop through all the words to be restored, reading one at a time. // - for(uIdx = 0; uIdx < ulCount; uIdx++) + for(ulIdx = 0; ulIdx < ulCount; ulIdx++) { // - // Read a word from the non-volatile storage area. No delay is + // Read a word from the battery-backed storage area. No delay is // required between reads. // - pulData[uIdx] = HWREG(HIB_DATA + (uIdx * 4)); + pulData[ulIdx] = HWREG(HIB_DATA + (ulIdx * 4)); } } @@ -692,24 +939,25 @@ HibernateDataGet(unsigned long *pulData, unsigned long ulCount) //! //! This function requests the Hibernation module to disable the external //! regulator, thus removing power from the processor and all peripherals. The -//! Hibernation module will remain powered from the battery or auxiliary power +//! Hibernation module remains powered from the battery or auxiliary power //! supply. //! -//! The Hibernation module will re-enable the external regulator when one of +//! The Hibernation module re-enables the external regulator when one of //! the configured wake conditions occurs (such as RTC match or external -//! \b WAKE pin). When the power is restored the processor will go through a -//! normal power-on reset. The processor can retrieve saved state information -//! with the HibernateDataGet() function. Prior to calling the function to -//! request hibernation mode, the conditions for waking must have already been -//! set by using the HibernateWakeSet() function. +//! \b WAKE pin). When the power is restored the processor goes through a +//! power-on reset although the Hibernation module is not reset. The processor +//! can retrieve saved state information with the HibernateDataGet() function. +//! Prior to calling the function to request hibernation mode, the conditions +//! for waking must have already been set by using the HibernateWakeSet() +//! function. //! //! Note that this function may return because some time may elapse before the //! power is actually removed, or it may not be removed at all. For this -//! reason, the processor will continue to execute instructions for some time +//! reason, the processor continues to execute instructions for some time //! and the caller should be prepared for this function to return. There are //! various reasons why the power may not be removed. For example, if the //! HibernateLowBatSet() function was used to configure an abort if low -//! battery is detected, then the power will not be removed if the battery +//! battery is detected, then the power is not removed if the battery //! voltage is too low. There may be other reasons, related to the external //! circuit design, that a request for hibernation may not actually occur. //! @@ -727,6 +975,11 @@ HibernateRequest(void) // Set the bit in the control register to cut main power to the processor. // HWREG(HIB_CTL) |= HIB_CTL_HIBREQ; + + // + // Wait for write completion + // + HibernateWriteComplete(); } //***************************************************************************** @@ -735,16 +988,23 @@ HibernateRequest(void) //! //! \param ulIntFlags is the bit mask of the interrupts to be enabled. //! -//! Enables the specified interrupt sources from the Hibernation module. +//! This function enables the specified interrupt sources from the Hibernation +//! module. //! //! The \e ulIntFlags parameter must be the logical OR of any combination of //! the following: //! +//! - \b HIBERNATE_INT_WR_COMPLETE - write complete interrupt //! - \b HIBERNATE_INT_PIN_WAKE - wake from pin interrupt //! - \b HIBERNATE_INT_LOW_BAT - low battery interrupt //! - \b HIBERNATE_INT_RTC_MATCH_0 - RTC match 0 interrupt //! - \b HIBERNATE_INT_RTC_MATCH_1 - RTC match 1 interrupt //! +//! \note The \b HIBERNATE_INT_WR_COMPLETE and \b HIBERNATE_INT_RTC_MATCH_1 +//! settings are not available on all Stellaris devices. Please consult the +//! data sheet for the Stellaris device that you are using to determine if +//! these interrupt sources are available. +//! //! \return None. // //***************************************************************************** @@ -756,12 +1016,18 @@ HibernateIntEnable(unsigned long ulIntFlags) // ASSERT(!(ulIntFlags & ~(HIBERNATE_INT_PIN_WAKE | HIBERNATE_INT_LOW_BAT | HIBERNATE_INT_RTC_MATCH_0 | - HIBERNATE_INT_RTC_MATCH_1))); + HIBERNATE_INT_RTC_MATCH_1 | + HIBERNATE_INT_WR_COMPLETE))); // // Set the specified interrupt mask bits. // HWREG(HIB_IM) |= ulIntFlags; + + // + // Wait for write completion + // + HibernateWriteComplete(); } //***************************************************************************** @@ -770,7 +1036,8 @@ HibernateIntEnable(unsigned long ulIntFlags) //! //! \param ulIntFlags is the bit mask of the interrupts to be disabled. //! -//! Disables the specified interrupt sources from the Hibernation module. +//! This function disables the specified interrupt sources from the +//! Hibernation module. //! //! The \e ulIntFlags parameter has the same definition as the \e ulIntFlags //! parameter to the HibernateIntEnable() function. @@ -786,12 +1053,18 @@ HibernateIntDisable(unsigned long ulIntFlags) // ASSERT(!(ulIntFlags & ~(HIBERNATE_INT_PIN_WAKE | HIBERNATE_INT_LOW_BAT | HIBERNATE_INT_RTC_MATCH_0 | - HIBERNATE_INT_RTC_MATCH_1))); + HIBERNATE_INT_RTC_MATCH_1 | + HIBERNATE_INT_WR_COMPLETE))); // // Clear the specified interrupt mask bits. // HWREG(HIB_IM) &= ~ulIntFlags; + + // + // Wait for write completion + // + HibernateWriteComplete(); } //***************************************************************************** @@ -801,9 +1074,10 @@ HibernateIntDisable(unsigned long ulIntFlags) //! \param pfnHandler points to the function to be called when a hibernation //! interrupt occurs. //! -//! Registers the interrupt handler in the system interrupt controller. The -//! interrupt is enabled at the global level, but individual interrupt sources -//! must still be enabled with a call to HibernateIntEnable(). +//! This function registers the interrupt handler in the system interrupt +//! controller. The interrupt is enabled at the global level, but individual +//! interrupt sources must still be enabled with a call to +//! HibernateIntEnable(). //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -829,9 +1103,9 @@ HibernateIntRegister(void (*pfnHandler)(void)) // //! Unregisters an interrupt handler for the Hibernation module interrupt. //! -//! Unregisters the interrupt handler in the system interrupt controller. The -//! interrupt is disabled at the global level, and the interrupt handler will -//! no longer be called. +//! This function unregisters the interrupt handler in the system interrupt +//! controller. The interrupt is disabled at the global level, and the +//! interrupt handler is longer called. //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -860,9 +1134,9 @@ HibernateIntUnregister(void) //! \param bMasked is false to retrieve the raw interrupt status, and true to //! retrieve the masked interrupt status. //! -//! Returns the interrupt status of the Hibernation module. The caller can use -//! this to determine the cause of a hibernation interrupt. Either the masked -//! or raw interrupt status can be returned. +//! This function returns the interrupt status of the Hibernation module. The +//! caller can use this function to determine the cause of a hibernation +//! interrupt. Either the masked or raw interrupt status can be returned. //! //! \return Returns the interrupt status as a bit field with the values as //! described in the HibernateIntEnable() function. @@ -890,20 +1164,21 @@ HibernateIntStatus(tBoolean bMasked) //! //! \param ulIntFlags is the bit mask of the interrupts to be cleared. //! -//! Clears the specified interrupt sources. This must be done from within the -//! interrupt handler or else the handler will be called again upon exit. +//! This function clears the specified interrupt sources. This function must +//! be called within the interrupt handler or else the handler is called again +//! upon exit. //! //! The \e ulIntFlags parameter has the same definition as the \e ulIntFlags //! parameter to the HibernateIntEnable() function. //! -//! \note Since there is a write buffer in the Cortex-M3 processor, it may take -//! several clock cycles before the interrupt source is actually cleared. +//! \note Because there is a write buffer in the Cortex-M processor, it may +//! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid //! returning from the interrupt handler before the interrupt source is //! actually cleared. Failure to do so may result in the interrupt handler -//! being immediately reentered (since NVIC still sees the interrupt source -//! asserted). +//! being immediately reentered (because the interrupt controller still sees +//! the interrupt source asserted). //! //! \return None. // @@ -922,6 +1197,11 @@ HibernateIntClear(unsigned long ulIntFlags) // Write the specified interrupt bits into the interrupt clear register. // HWREG(HIB_IC) |= ulIntFlags; + + // + // Wait for write completion + // + HibernateWriteComplete(); } //***************************************************************************** @@ -945,7 +1225,7 @@ HibernateIntClear(unsigned long ulIntFlags) //! not. // //***************************************************************************** -unsigned int +unsigned long HibernateIsActive(void) { // diff --git a/bsp/lm3s8962/Libraries/driverlib/hibernate.h b/bsp/lm3s8962/Libraries/driverlib/hibernate.h index 02f54a0f7b..87cdf3d558 100644 --- a/bsp/lm3s8962/Libraries/driverlib/hibernate.h +++ b/bsp/lm3s8962/Libraries/driverlib/hibernate.h @@ -2,7 +2,7 @@ // // hibernate.h - API definition for the Hibernation module. // -// Copyright (c) 2007-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2007-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -41,34 +41,50 @@ extern "C" // Macros needed for selecting the clock source for HibernateClockSelect() // //***************************************************************************** -#define HIBERNATE_CLOCK_SEL_RAW 0x04 -#define HIBERNATE_CLOCK_SEL_DIV128 0x00 +#define HIBERNATE_CLOCK_SEL_RAW 0x00000004 +#define HIBERNATE_CLOCK_SEL_DIV128 0x00000000 //***************************************************************************** // // Macros need to configure wake events for HibernateWakeSet() // //***************************************************************************** -#define HIBERNATE_WAKE_PIN 0x10 -#define HIBERNATE_WAKE_RTC 0x08 +#define HIBERNATE_WAKE_PIN 0x00000010 +#define HIBERNATE_WAKE_RTC 0x00000008 +#define HIBERNATE_WAKE_LOW_BAT 0x00000200 //***************************************************************************** // // Macros needed to configure low battery detect for HibernateLowBatSet() // //***************************************************************************** -#define HIBERNATE_LOW_BAT_DETECT 0x20 -#define HIBERNATE_LOW_BAT_ABORT 0xA0 +#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_PIN_WAKE 0x08 -#define HIBERNATE_INT_LOW_BAT 0x04 -#define HIBERNATE_INT_RTC_MATCH_0 0x01 -#define HIBERNATE_INT_RTC_MATCH_1 0x02 +#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 +#define HIBERNATE_INT_RTC_MATCH_1 0x00000002 + +//***************************************************************************** +// +// Macros defining oscillator configuration options for the +// HibernateClockConfig() function. +// +//***************************************************************************** +#define HIBERNATE_OSC_LOWDRIVE 0x00040000 +#define HIBERNATE_OSC_HIGHDRIVE 0x00060000 +#define HIBERNATE_OSC_DISABLE 0x00010000 //***************************************************************************** // @@ -101,7 +117,13 @@ extern void HibernateIntRegister(void (*pfnHandler)(void)); extern void HibernateIntUnregister(void); extern unsigned long HibernateIntStatus(tBoolean bMasked); extern void HibernateIntClear(unsigned long ulIntFlags); -extern unsigned int HibernateIsActive(void); +extern unsigned long HibernateIsActive(void); +extern void HibernateRTCSSMatch0Set(unsigned long ulMatch); +extern unsigned long HibernateRTCSSMatch0Get(void); +extern unsigned long HibernateRTCSSGet(void); +extern void HibernateClockConfig(unsigned long ulConfig); +extern void HibernateBatCheckStart(void); +extern unsigned long HibernateBatCheckDone(void); //***************************************************************************** // diff --git a/bsp/lm3s8962/Libraries/driverlib/i2c.c b/bsp/lm3s8962/Libraries/driverlib/i2c.c index b47148c34d..87d363e9f6 100644 --- a/bsp/lm3s8962/Libraries/driverlib/i2c.c +++ b/bsp/lm3s8962/Libraries/driverlib/i2c.c @@ -2,7 +2,7 @@ // // i2c.c - Driver for Inter-IC (I2C) bus block. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -38,6 +38,110 @@ #include "driverlib/i2c.h" #include "driverlib/interrupt.h" +//***************************************************************************** +// +// A mapping of I2C base address to interupt number. +// +//***************************************************************************** +static const unsigned long g_ppulI2CIntMap[][2] = +{ + { I2C0_MASTER_BASE, INT_I2C0 }, + { I2C1_MASTER_BASE, INT_I2C1 }, + { I2C2_MASTER_BASE, INT_I2C2 }, + { I2C3_MASTER_BASE, INT_I2C3 }, + { I2C4_MASTER_BASE, INT_I2C4 }, + { I2C5_MASTER_BASE, INT_I2C5 }, +}; + +//***************************************************************************** +// +//! \internal +//! Checks a I2C master base address. +//! +//! \param ulBase is the base address of the I2C Master module. +//! +//! This function determines if a I2C master module base address is valid. +//! +//! \return Returns \b true if the base address is valid and \b false +//! otherwise. +// +//***************************************************************************** +#ifdef DEBUG +static tBoolean +I2CMasterBaseValid(unsigned long ulBase) +{ + return((ulBase == I2C0_MASTER_BASE) || (ulBase == I2C1_MASTER_BASE) || + (ulBase == I2C2_MASTER_BASE) || (ulBase == I2C3_MASTER_BASE) || + (ulBase == I2C4_MASTER_BASE) || (ulBase == I2C5_MASTER_BASE)); +} +#endif + +//***************************************************************************** +// +//! \internal +//! Checks a I2C slave base address. +//! +//! \param ulBase is the base address of the I2C Slave module. +//! +//! This function determines if a I2C slave module base address is valid. +//! +//! \return Returns \b true if the base address is valid and \b false +//! otherwise. +// +//***************************************************************************** +#ifdef DEBUG +static tBoolean +I2CSlaveBaseValid(unsigned long ulBase) +{ + return((ulBase == I2C0_SLAVE_BASE) || (ulBase == I2C1_SLAVE_BASE) || + (ulBase == I2C2_SLAVE_BASE) || (ulBase == I2C3_SLAVE_BASE) || + (ulBase == I2C4_SLAVE_BASE) || (ulBase == I2C5_SLAVE_BASE)); +} +#endif + +//***************************************************************************** +// +//! \internal +//! Gets the I2C interrupt number. +//! +//! \param ulBase is the base address of the I2C Master module. +//! +//! Given a I2C base address, this function returns the corresponding +//! interrupt number. +//! +//! \return Returns an I2C interrupt number, or -1 if \e ulBase is invalid. +// +//***************************************************************************** +static long +I2CIntNumberGet(unsigned long ulBase) +{ + unsigned long ulIdx; + + // + // Loop through the table that maps I2C base addresses to interrupt + // numbers. + // + for(ulIdx = 0; ulIdx < (sizeof(g_ppulI2CIntMap) / + sizeof(g_ppulI2CIntMap[0])); ulIdx++) + { + // + // See if this base address matches. + // + if(g_ppulI2CIntMap[ulIdx][0] == ulBase) + { + // + // Return the corresponding interrupt number. + // + return(g_ppulI2CIntMap[ulIdx][1]); + } + } + + // + // The base address could not be found, so return an error. + // + return(-1); +} + //***************************************************************************** // //! Initializes the I2C Master block. @@ -46,18 +150,17 @@ //! \param ulI2CClk is the rate of the clock supplied to the I2C module. //! \param bFast set up for fast data transfers //! -//! This function initializes operation of the I2C Master block. Upon -//! successful initialization of the I2C block, this function will have set the -//! bus speed for the master, and will have enabled the I2C Master block. +//! This function initializes operation of the I2C Master block by configuring +//! the bus speed for the master and enabling the I2C Master block. //! -//! If the parameter \e bFast is \b true, then the master block will be set up -//! to transfer data at 400 kbps; otherwise, it will be set up to transfer data -//! at 100 kbps. +//! If the parameter \e bFast is \b true, then the master block is set up to +//! transfer data at 400 kbps; otherwise, it is set up to transfer data at +//! 100 kbps. //! -//! The peripheral clock will be the same as the processor clock. This will be -//! the value returned by SysCtlClockGet(), or it can be explicitly hard coded -//! if it is constant and known (to save the code/execution overhead of a call -//! to SysCtlClockGet()). +//! The peripheral clock is the same as the processor clock. This value is +//! returned by SysCtlClockGet(), or it can be explicitly hard coded if it is +//! constant and known (to save the code/execution overhead of a call to +//! SysCtlClockGet()). //! //! This function replaces the original I2CMasterInit() API and performs the //! same actions. A macro is provided in i2c.h to map the original @@ -76,7 +179,7 @@ I2CMasterInitExpClk(unsigned long ulBase, unsigned long ulI2CClk, // // Check the arguments. // - ASSERT((ulBase == I2C0_MASTER_BASE) || (ulBase == I2C1_MASTER_BASE)); + ASSERT(I2CMasterBaseValid(ulBase)); // // Must enable the device before doing anything else. @@ -112,11 +215,10 @@ I2CMasterInitExpClk(unsigned long ulBase, unsigned long ulI2CClk, //! \param ulBase is the base address of the I2C Slave module. //! \param ucSlaveAddr 7-bit slave address //! -//! This function initializes operation of the I2C Slave block. Upon -//! successful initialization of the I2C blocks, this function will have set -//! the slave address and have enabled the I2C Slave block. +//! This function initializes operation of the I2C Slave block by configuring +//! the slave address and enabling the I2C Slave block. //! -//! The parameter \e ucSlaveAddr is the value that will be compared against the +//! The parameter \e ucSlaveAddr is the value that is compared against the //! slave address sent by an I2C master. //! //! \return None. @@ -128,7 +230,7 @@ I2CSlaveInit(unsigned long ulBase, unsigned char ucSlaveAddr) // // Check the arguments. // - ASSERT((ulBase == I2C0_SLAVE_BASE) || (ulBase == I2C1_SLAVE_BASE)); + ASSERT(I2CSlaveBaseValid(ulBase)); ASSERT(!(ucSlaveAddr & 0x80)); // @@ -142,13 +244,67 @@ I2CSlaveInit(unsigned long ulBase, unsigned char ucSlaveAddr) HWREG(ulBase + I2C_O_SOAR) = ucSlaveAddr; } +//***************************************************************************** +// +//! Sets the I2C slave address. +//! +//! \param ulBase is the base address of the I2C Slave module. +//! \param ucAddrNum determines which slave address is set. +//! \param ucSlaveAddr 7-bit slave address +//! +//! This function writes the specified slave address. The \e ulAddrNum field +//! dictates which slave address is configured. For example, a value of 0 +//! configures the primary address and a value of 1, the secondary. +//! +//! \note Not all Stellaris devices support a secondary address. Please consult +//! the device data sheet to know if this feature is supported. +//! +//! \return None. +// +//***************************************************************************** +void +I2CSlaveAddressSet(unsigned long ulBase, unsigned char ucAddrNum, + unsigned char ucSlaveAddr) +{ + // + // Check the arguments. + // + ASSERT(I2CSlaveBaseValid(ulBase)); + ASSERT(!(ucAddrNum > 1)); + ASSERT(!(ucSlaveAddr & 0x80)); + + // + // Determine which slave address is being set. + // + switch(ucAddrNum) + { + // + // Set up the primary slave address. + // + case 0: + { + HWREG(ulBase + I2C_O_SOAR) = ucSlaveAddr; + break; + } + + // + // Set up and enable the secondary slave address. + // + case 1: + { + HWREG(ulBase + I2C_O_SOAR2) = I2C_SOAR2_OAR2EN | ucSlaveAddr; + break; + } + } +} + //***************************************************************************** // //! Enables the I2C Master block. //! //! \param ulBase is the base address of the I2C Master module. //! -//! This will enable operation of the I2C Master block. +//! This function enables operation of the I2C Master block. //! //! \return None. // @@ -159,7 +315,7 @@ I2CMasterEnable(unsigned long ulBase) // // Check the arguments. // - ASSERT((ulBase == I2C0_MASTER_BASE) || (ulBase == I2C1_MASTER_BASE)); + ASSERT(I2CMasterBaseValid(ulBase)); // // Enable the master block. @@ -173,7 +329,7 @@ I2CMasterEnable(unsigned long ulBase) //! //! \param ulBase is the base address of the I2C Slave module. //! -//! This will enable operation of the I2C Slave block. +//! This fucntion enables operation of the I2C Slave block. //! //! \return None. // @@ -184,7 +340,7 @@ I2CSlaveEnable(unsigned long ulBase) // // Check the arguments. // - ASSERT((ulBase == I2C0_SLAVE_BASE) || (ulBase == I2C1_SLAVE_BASE)); + ASSERT(I2CSlaveBaseValid(ulBase)); // // Enable the clock to the slave block. @@ -204,7 +360,7 @@ I2CSlaveEnable(unsigned long ulBase) //! //! \param ulBase is the base address of the I2C Master module. //! -//! This will disable operation of the I2C master block. +//! This function disables operation of the I2C master block. //! //! \return None. // @@ -215,7 +371,7 @@ I2CMasterDisable(unsigned long ulBase) // // Check the arguments. // - ASSERT((ulBase == I2C0_MASTER_BASE) || (ulBase == I2C1_MASTER_BASE)); + ASSERT(I2CMasterBaseValid(ulBase)); // // Disable the master block. @@ -229,7 +385,7 @@ I2CMasterDisable(unsigned long ulBase) //! //! \param ulBase is the base address of the I2C Slave module. //! -//! This will disable operation of the I2C slave block. +//! This function disables operation of the I2C slave block. //! //! \return None. // @@ -240,7 +396,7 @@ I2CSlaveDisable(unsigned long ulBase) // // Check the arguments. // - ASSERT((ulBase == I2C0_SLAVE_BASE) || (ulBase == I2C1_SLAVE_BASE)); + ASSERT(I2CSlaveBaseValid(ulBase)); // // Disable the slave. @@ -262,9 +418,9 @@ I2CSlaveDisable(unsigned long ulBase) //! \param pfnHandler is a pointer to the function to be called when the //! I2C interrupt occurs. //! -//! This sets the handler to be called when an I2C interrupt occurs. This will -//! enable the global interrupt in the interrupt controller; specific I2C -//! interrupts must be enabled via I2CMasterIntEnable() and +//! This function sets the handler to be called when an I2C interrupt occurs. +//! This function enables the global interrupt in the interrupt controller; +//! specific I2C interrupts must be enabled via I2CMasterIntEnable() and //! I2CSlaveIntEnable(). If necessary, it is the interrupt handler's //! responsibility to clear the interrupt source via I2CMasterIntClear() and //! I2CSlaveIntClear(). @@ -283,12 +439,12 @@ I2CIntRegister(unsigned long ulBase, void (*pfnHandler)(void)) // // Check the arguments. // - ASSERT((ulBase == I2C0_MASTER_BASE) || (ulBase == I2C1_MASTER_BASE)); + ASSERT(I2CMasterBaseValid(ulBase)); // // Determine the interrupt number based on the I2C port. // - ulInt = (ulBase == I2C0_MASTER_BASE) ? INT_I2C0 : INT_I2C1; + ulInt = I2CIntNumberGet(ulBase); // // Register the interrupt handler, returning an error if an error occurs. @@ -307,9 +463,9 @@ I2CIntRegister(unsigned long ulBase, void (*pfnHandler)(void)) //! //! \param ulBase is the base address of the I2C Master module. //! -//! This function will clear the handler to be called when an I2C interrupt -//! occurs. This will also mask off the interrupt in the interrupt controller -//! so that the interrupt handler no longer is called. +//! This function clears the handler to be called when an I2C interrupt +//! occurs. This function also masks off the interrupt in the interrupt r +//! controlle so that the interrupt handler no longer is called. //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -325,12 +481,12 @@ I2CIntUnregister(unsigned long ulBase) // // Check the arguments. // - ASSERT((ulBase == I2C0_MASTER_BASE) || (ulBase == I2C1_MASTER_BASE)); + ASSERT(I2CMasterBaseValid(ulBase)); // // Determine the interrupt number based on the I2C port. // - ulInt = (ulBase == I2C0_MASTER_BASE) ? INT_I2C0 : INT_I2C1; + ulInt = I2CIntNumberGet(ulBase); // // Disable the interrupt. @@ -349,7 +505,7 @@ I2CIntUnregister(unsigned long ulBase) //! //! \param ulBase is the base address of the I2C Master module. //! -//! Enables the I2C Master interrupt source. +//! This function enables the I2C Master interrupt source. //! //! \return None. // @@ -360,7 +516,7 @@ I2CMasterIntEnable(unsigned long ulBase) // // Check the arguments. // - ASSERT((ulBase == I2C0_MASTER_BASE) || (ulBase == I2C1_MASTER_BASE)); + ASSERT(I2CMasterBaseValid(ulBase)); // // Enable the master interrupt. @@ -368,13 +524,50 @@ I2CMasterIntEnable(unsigned long ulBase) HWREG(ulBase + I2C_O_MIMR) = 1; } +//***************************************************************************** +// +//! Enables individual I2C Master interrupt sources. +//! +//! \param ulBase is the base address of the I2C Master module. +//! \param ulIntFlags is the bit mask of the interrupt sources to be enabled. +//! +//! This function enables the indicated I2C Master interrupt sources. Only the +//! sources that are enabled can be reflected to the processor interrupt; +//! disabled sources have no effect on the processor. +//! +//! The \e ulIntFlags parameter is the logical OR of any of the following: +//! +//! - \b I2C_MASTER_INT_TIMEOUT - Clock Timeout interrupt +//! - \b I2C_MASTER_INT_DATA - Data interrupt +//! +//! \note Not all Stellaris devices support the Clock Timeout interrupt. +//! Please consult the device data sheet to know if this feature is +//! supported. +//! +//! \return None. +// +//***************************************************************************** +void +I2CMasterIntEnableEx(unsigned long ulBase, unsigned long ulIntFlags) +{ + // + // Check the arguments. + // + ASSERT(I2CMasterBaseValid(ulBase)); + + // + // Enable the master interrupt. + // + HWREG(ulBase + I2C_O_MIMR) |= ulIntFlags; +} + //***************************************************************************** // //! Enables the I2C Slave interrupt. //! //! \param ulBase is the base address of the I2C Slave module. //! -//! Enables the I2C Slave interrupt source. +//! This function enables the I2C Slave interrupt source. //! //! \return None. // @@ -385,7 +578,7 @@ I2CSlaveIntEnable(unsigned long ulBase) // // Check the arguments. // - ASSERT((ulBase == I2C0_SLAVE_BASE) || (ulBase == I2C1_SLAVE_BASE)); + ASSERT(I2CSlaveBaseValid(ulBase)); // // Enable the slave interrupt. @@ -400,9 +593,9 @@ I2CSlaveIntEnable(unsigned long ulBase) //! \param ulBase is the base address of the I2C Slave module. //! \param ulIntFlags is the bit mask of the interrupt sources to be enabled. //! -//! Enables the indicated I2C Slave interrupt sources. Only the sources that -//! are enabled can be reflected to the processor interrupt; disabled sources -//! have no effect on the processor. +//! This function enables the indicated I2C Slave interrupt sources. Only the +//! sources that are enabled can be reflected to the processor interrupt; +//! disabled sources have no effect on the processor. //! //! The \e ulIntFlags parameter is the logical OR of any of the following: //! @@ -410,6 +603,10 @@ I2CSlaveIntEnable(unsigned long ulBase) //! - \b I2C_SLAVE_INT_START - Start condition detected interrupt //! - \b I2C_SLAVE_INT_DATA - Data interrupt //! +//! \note Not all Stellaris devices support the Stop and Start condition +//! interrupts. Please consult the device data sheet to know if these features +//! are supported. +//! //! \return None. // //***************************************************************************** @@ -419,7 +616,7 @@ I2CSlaveIntEnableEx(unsigned long ulBase, unsigned long ulIntFlags) // // Check the arguments. // - ASSERT((ulBase == I2C0_SLAVE_BASE) || (ulBase == I2C1_SLAVE_BASE)); + ASSERT(I2CSlaveBaseValid(ulBase)); // // Enable the slave interrupt. @@ -433,7 +630,7 @@ I2CSlaveIntEnableEx(unsigned long ulBase, unsigned long ulIntFlags) //! //! \param ulBase is the base address of the I2C Master module. //! -//! Disables the I2C Master interrupt source. +//! This function disables the I2C Master interrupt source. //! //! \return None. // @@ -444,7 +641,7 @@ I2CMasterIntDisable(unsigned long ulBase) // // Check the arguments. // - ASSERT((ulBase == I2C0_MASTER_BASE) || (ulBase == I2C1_MASTER_BASE)); + ASSERT(I2CMasterBaseValid(ulBase)); // // Disable the master interrupt. @@ -452,13 +649,44 @@ I2CMasterIntDisable(unsigned long ulBase) HWREG(ulBase + I2C_O_MIMR) = 0; } +//***************************************************************************** +// +//! Disables individual I2C Master interrupt sources. +//! +//! \param ulBase is the base address of the I2C Master module. +//! \param ulIntFlags is the bit mask of the interrupt sources to be disabled. +//! +//! This function disables the indicated I2C Master interrupt sources. Only +//! the sources that are enabled can be reflected to the processor interrupt; +//! disabled sources have no effect on the processor. +//! +//! The \e ulIntFlags parameter has the same definition as the \e ulIntFlags +//! parameter to I2CMasterIntEnableEx(). +//! +//! \return None. +// +//***************************************************************************** +void +I2CMasterIntDisableEx(unsigned long ulBase, unsigned long ulIntFlags) +{ + // + // Check the arguments. + // + ASSERT(I2CMasterBaseValid(ulBase)); + + // + // Disable the master interrupt. + // + HWREG(ulBase + I2C_O_MIMR) &= ~ulIntFlags; +} + //***************************************************************************** // //! Disables the I2C Slave interrupt. //! //! \param ulBase is the base address of the I2C Slave module. //! -//! Disables the I2C Slave interrupt source. +//! This function disables the I2C Slave interrupt source. //! //! \return None. // @@ -469,7 +697,7 @@ I2CSlaveIntDisable(unsigned long ulBase) // // Check the arguments. // - ASSERT((ulBase == I2C0_SLAVE_BASE) || (ulBase == I2C1_SLAVE_BASE)); + ASSERT(I2CSlaveBaseValid(ulBase)); // // Disable the slave interrupt. @@ -484,9 +712,9 @@ I2CSlaveIntDisable(unsigned long ulBase) //! \param ulBase is the base address of the I2C Slave module. //! \param ulIntFlags is the bit mask of the interrupt sources to be disabled. //! -//! Disables the indicated I2C Slave interrupt sources. Only the sources that -//! are enabled can be reflected to the processor interrupt; disabled sources -//! have no effect on the processor. +//! This function disables the indicated I2C Slave interrupt sources. Only +//! the sources that are enabled can be reflected to the processor interrupt; +//! disabled sources have no effect on the processor. //! //! The \e ulIntFlags parameter has the same definition as the \e ulIntFlags //! parameter to I2CSlaveIntEnableEx(). @@ -500,7 +728,7 @@ I2CSlaveIntDisableEx(unsigned long ulBase, unsigned long ulIntFlags) // // Check the arguments. // - ASSERT((ulBase == I2C0_SLAVE_BASE) || (ulBase == I2C1_SLAVE_BASE)); + ASSERT(I2CSlaveBaseValid(ulBase)); // // Disable the slave interrupt. @@ -516,8 +744,8 @@ I2CSlaveIntDisableEx(unsigned long ulBase, unsigned long ulIntFlags) //! \param bMasked is false if the raw interrupt status is requested and //! true if the masked interrupt status is requested. //! -//! This returns the interrupt status for the I2C Master module. Either the -//! raw interrupt status or the status of interrupts that are allowed to +//! This function returns the interrupt status for the I2C Master module. +//! Either the raw interrupt status or the status of interrupts that are allowed to //! reflect to the processor can be returned. //! //! \return The current interrupt status, returned as \b true if active @@ -530,7 +758,7 @@ I2CMasterIntStatus(unsigned long ulBase, tBoolean bMasked) // // Check the arguments. // - ASSERT((ulBase == I2C0_MASTER_BASE) || (ulBase == I2C1_MASTER_BASE)); + ASSERT(I2CMasterBaseValid(ulBase)); // // Return either the interrupt status or the raw interrupt status as @@ -546,6 +774,44 @@ I2CMasterIntStatus(unsigned long ulBase, tBoolean bMasked) } } +//***************************************************************************** +// +//! Gets the current I2C Master interrupt status. +//! +//! \param ulBase is the base address of the I2C Master module. +//! \param bMasked is false if the raw interrupt status is requested and +//! true if the masked interrupt status is requested. +//! +//! This function returns the interrupt status for the I2C Master module. +//! Either the raw interrupt status or the status of interrupts that are +//! allowed to reflect to the processor can be returned. +//! +//! \return Returns the current interrupt status, enumerated as a bit field of +//! values described in I2CMasterIntEnableEx(). +// +//***************************************************************************** +unsigned long +I2CMasterIntStatusEx(unsigned long ulBase, tBoolean bMasked) +{ + // + // Check the arguments. + // + ASSERT(I2CMasterBaseValid(ulBase)); + + // + // Return either the interrupt status or the raw interrupt status as + // requested. + // + if(bMasked) + { + return(HWREG(ulBase + I2C_O_MMIS)); + } + else + { + return(HWREG(ulBase + I2C_O_MRIS)); + } +} + //***************************************************************************** // //! Gets the current I2C Slave interrupt status. @@ -554,9 +820,9 @@ I2CMasterIntStatus(unsigned long ulBase, tBoolean bMasked) //! \param bMasked is false if the raw interrupt status is requested and //! true if the masked interrupt status is requested. //! -//! This returns the interrupt status for the I2C Slave module. Either the raw -//! interrupt status or the status of interrupts that are allowed to reflect to -//! the processor can be returned. +//! This function returns the interrupt status for the I2C Slave module. +//! Either the raw interrupt status or the status of interrupts that are +//! allowed to reflect to the processor can be returned. //! //! \return The current interrupt status, returned as \b true if active //! or \b false if not active. @@ -568,7 +834,7 @@ I2CSlaveIntStatus(unsigned long ulBase, tBoolean bMasked) // // Check the arguments. // - ASSERT((ulBase == I2C0_SLAVE_BASE) || (ulBase == I2C1_SLAVE_BASE)); + ASSERT(I2CSlaveBaseValid(ulBase)); // // Return either the interrupt status or the raw interrupt status as @@ -592,9 +858,9 @@ I2CSlaveIntStatus(unsigned long ulBase, tBoolean bMasked) //! \param bMasked is false if the raw interrupt status is requested and //! true if the masked interrupt status is requested. //! -//! This returns the interrupt status for the I2C Slave module. Either the raw -//! interrupt status or the status of interrupts that are allowed to reflect to -//! the processor can be returned. +//! This function returns the interrupt status for the I2C Slave module. +//! Either the raw interrupt status or the status of interrupts that are +//! allowed to reflect to the processor can be returned. //! //! \return Returns the current interrupt status, enumerated as a bit field of //! values described in I2CSlaveIntEnableEx(). @@ -608,7 +874,7 @@ I2CSlaveIntStatusEx(unsigned long ulBase, tBoolean bMasked) // // Check the arguments. // - ASSERT((ulBase == I2C0_SLAVE_BASE) || (ulBase == I2C1_SLAVE_BASE)); + ASSERT(I2CSlaveBaseValid(ulBase)); // // Return either the interrupt status or the raw interrupt status as @@ -643,17 +909,17 @@ I2CSlaveIntStatusEx(unsigned long ulBase, tBoolean bMasked) //! \param ulBase is the base address of the I2C Master module. //! //! The I2C Master interrupt source is cleared, so that it no longer asserts. -//! This must be done in the interrupt handler to keep it from being called -//! again immediately upon exit. +//! This function must be called in the interrupt handler to keep the interrupt +//! from being triggered again immediately upon exit. //! -//! \note Since there is a write buffer in the Cortex-M3 processor, it may take -//! several clock cycles before the interrupt source is actually cleared. +//! \note Because there is a write buffer in the Cortex-M processor, it may +//! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid //! returning from the interrupt handler before the interrupt source is //! actually cleared. Failure to do so may result in the interrupt handler -//! being immediately reentered (since NVIC still sees the interrupt source -//! asserted). +//! being immediately reentered (because the interrupt controller still sees +//! the interrupt source asserted). //! //! \return None. // @@ -664,7 +930,7 @@ I2CMasterIntClear(unsigned long ulBase) // // Check the arguments. // - ASSERT((ulBase == I2C0_MASTER_BASE) || (ulBase == I2C1_MASTER_BASE)); + ASSERT(I2CMasterBaseValid(ulBase)); // // Clear the I2C master interrupt source. @@ -679,6 +945,46 @@ I2CMasterIntClear(unsigned long ulBase) HWREG(ulBase + I2C_O_MMIS) = I2C_MICR_IC; } +//***************************************************************************** +// +//! Clears I2C Master interrupt sources. +//! +//! \param ulBase is the base address of the I2C Master module. +//! \param ulIntFlags is a bit mask of the interrupt sources to be cleared. +//! +//! The specified I2C Master interrupt sources are cleared, so that they no +//! longer assert. This function must be called in the interrupt handler to +//! keep the interrupt from being triggered again immediately upon exit. +//! +//! The \e ulIntFlags parameter has the same definition as the \e ulIntFlags +//! parameter to I2CMasterIntEnableEx(). +//! +//! \note Because there is a write buffer in the Cortex-M processor, it may +//! take several clock cycles before the interrupt source is actually cleared. +//! Therefore, it is recommended that the interrupt source be cleared early in +//! the interrupt handler (as opposed to the very last action) to avoid +//! returning from the interrupt handler before the interrupt source is +//! actually cleared. Failure to do so may result in the interrupt handler +//! being immediately reentered (because the interrupt controller still sees +//! the interrupt source asserted). +//! +//! \return None. +// +//***************************************************************************** +void +I2CMasterIntClearEx(unsigned long ulBase, unsigned long ulIntFlags) +{ + // + // Check the arguments. + // + ASSERT(I2CMasterBaseValid(ulBase)); + + // + // Clear the I2C master interrupt source. + // + HWREG(ulBase + I2C_O_MICR) = ulIntFlags; +} + //***************************************************************************** // //! Clears I2C Slave interrupt sources. @@ -686,17 +992,17 @@ I2CMasterIntClear(unsigned long ulBase) //! \param ulBase is the base address of the I2C Slave module. //! //! The I2C Slave interrupt source is cleared, so that it no longer asserts. -//! This must be done in the interrupt handler to keep it from being called -//! again immediately upon exit. +//! This function must be called in the interrupt handler to keep the interrupt +//! from being triggered again immediately upon exit. //! -//! \note Since there is a write buffer in the Cortex-M3 processor, it may take -//! several clock cycles before the interrupt source is actually cleared. +//! \note Because there is a write buffer in the Cortex-M processor, it may +//! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid //! returning from the interrupt handler before the interrupt source is //! actually cleared. Failure to do so may result in the interrupt handler -//! being immediately reentered (since NVIC still sees the interrupt source -//! asserted). +//! being immediately reentered (because the interrupt controller still sees +//! the interrupt source asserted). //! //! \return None. // @@ -707,7 +1013,7 @@ I2CSlaveIntClear(unsigned long ulBase) // // Check the arguments. // - ASSERT((ulBase == I2C0_SLAVE_BASE) || (ulBase == I2C1_SLAVE_BASE)); + ASSERT(I2CSlaveBaseValid(ulBase)); // // Clear the I2C slave interrupt source. @@ -723,20 +1029,20 @@ I2CSlaveIntClear(unsigned long ulBase) //! \param ulIntFlags is a bit mask of the interrupt sources to be cleared. //! //! The specified I2C Slave interrupt sources are cleared, so that they no -//! longer assert. This must be done in the interrupt handler to keep it from -//! being called again immediately upon exit. +//! longer assert. This function must be called in the interrupt handler to +//! keep the interrupt from being triggered again immediately upon exit. //! //! The \e ulIntFlags parameter has the same definition as the \e ulIntFlags //! parameter to I2CSlaveIntEnableEx(). //! -//! \note Since there is a write buffer in the Cortex-M3 processor, it may take -//! several clock cycles before the interrupt source is actually cleared. +//! \note Because there is a write buffer in the Cortex-M processor, it may +//! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid //! returning from the interrupt handler before the interrupt source is //! actually cleared. Failure to do so may result in the interrupt handler -//! being immediately reentered (since NVIC still sees the interrupt source -//! asserted). +//! being immediately reentered (because the interrupt controller still sees +//! the interrupt source asserted). //! //! \return None. // @@ -747,7 +1053,7 @@ I2CSlaveIntClearEx(unsigned long ulBase, unsigned long ulIntFlags) // // Check the arguments. // - ASSERT((ulBase == I2C0_SLAVE_BASE) || (ulBase == I2C1_SLAVE_BASE)); + ASSERT(I2CSlaveBaseValid(ulBase)); // // Clear the I2C slave interrupt source. @@ -757,16 +1063,16 @@ I2CSlaveIntClearEx(unsigned long ulBase, unsigned long ulIntFlags) //***************************************************************************** // -//! Sets the address that the I2C Master will place on the bus. +//! Sets the address that the I2C Master places on the bus. //! //! \param ulBase is the base address of the I2C Master module. //! \param ucSlaveAddr 7-bit slave address //! \param bReceive flag indicating the type of communication with the slave //! -//! This function will set the address that the I2C Master will place on the +//! This function configures the address that the I2C Master places on the //! bus when initiating a transaction. When the \e bReceive parameter is set -//! to \b true, the address will indicate that the I2C Master is initiating a -//! read from the slave; otherwise the address will indicate that the I2C +//! to \b true, the address indicates that the I2C Master is initiating a +//! read from the slave; otherwise the address indicates that the I2C //! Master is initiating a write to the slave. //! //! \return None. @@ -779,7 +1085,7 @@ I2CMasterSlaveAddrSet(unsigned long ulBase, unsigned char ucSlaveAddr, // // Check the arguments. // - ASSERT((ulBase == I2C0_MASTER_BASE) || (ulBase == I2C1_MASTER_BASE)); + ASSERT(I2CMasterBaseValid(ulBase)); ASSERT(!(ucSlaveAddr & 0x80)); // @@ -788,6 +1094,36 @@ I2CMasterSlaveAddrSet(unsigned long ulBase, unsigned char ucSlaveAddr, HWREG(ulBase + I2C_O_MSA) = (ucSlaveAddr << 1) | bReceive; } +//***************************************************************************** +// +//! Reads the state of the SDA and SCL pins. +//! +//! \param ulBase is the base address of the I2C Master module. +//! +//! This function returns the state of the I2C bus by providing the real time +//! values of the SDA and SCL pins. +//! +//! \note Not all Stellaris devices support this function. Please consult the +//! device data sheet to know if this feature is supported. +//! +//! \return Returns the state of the bus with SDA in bit position 1 and SCL in +//! bit position 0. +// +//***************************************************************************** +unsigned long +I2CMasterLineStateGet(unsigned long ulBase) +{ + // + // Check the arguments. + // + ASSERT(I2CMasterBaseValid(ulBase)); + + // + // Return the line state. + // + return(HWREG(ulBase + I2C_O_MBMON)); +} + //***************************************************************************** // //! Indicates whether or not the I2C Master is busy. @@ -807,7 +1143,7 @@ I2CMasterBusy(unsigned long ulBase) // // Check the arguments. // - ASSERT((ulBase == I2C0_MASTER_BASE) || (ulBase == I2C1_MASTER_BASE)); + ASSERT(I2CMasterBaseValid(ulBase)); // // Return the busy status. @@ -842,7 +1178,7 @@ I2CMasterBusBusy(unsigned long ulBase) // // Check the arguments. // - ASSERT((ulBase == I2C0_MASTER_BASE) || (ulBase == I2C1_MASTER_BASE)); + ASSERT(I2CMasterBaseValid(ulBase)); // // Return the bus busy status. @@ -862,7 +1198,7 @@ I2CMasterBusBusy(unsigned long ulBase) //! Controls the state of the I2C Master module. //! //! \param ulBase is the base address of the I2C Master module. -//! \param ulCmd command to be issued to the I2C Master module +//! \param ulCmd command to be issued to the I2C Master module. //! //! This function is used to control the state of the Master module send and //! receive operations. The \e ucCmd parameter can be one of the following @@ -888,7 +1224,7 @@ I2CMasterControl(unsigned long ulBase, unsigned long ulCmd) // // Check the arguments. // - ASSERT((ulBase == I2C0_MASTER_BASE) || (ulBase == I2C1_MASTER_BASE)); + ASSERT(I2CMasterBaseValid(ulBase)); ASSERT((ulCmd == I2C_MASTER_CMD_SINGLE_SEND) || (ulCmd == I2C_MASTER_CMD_SINGLE_RECEIVE) || (ulCmd == I2C_MASTER_CMD_BURST_SEND_START) || @@ -928,7 +1264,7 @@ I2CMasterErr(unsigned long ulBase) // // Check the arguments. // - ASSERT((ulBase == I2C0_MASTER_BASE) || (ulBase == I2C1_MASTER_BASE)); + ASSERT(I2CMasterBaseValid(ulBase)); // // Get the raw error state @@ -962,9 +1298,9 @@ I2CMasterErr(unsigned long ulBase) //! Transmits a byte from the I2C Master. //! //! \param ulBase is the base address of the I2C Master module. -//! \param ucData data to be transmitted from the I2C Master +//! \param ucData data to be transmitted from the I2C Master. //! -//! This function will place the supplied data into I2C Master Data Register. +//! This function places the supplied data into I2C Master Data Register. //! //! \return None. // @@ -975,7 +1311,7 @@ I2CMasterDataPut(unsigned long ulBase, unsigned char ucData) // // Check the arguments. // - ASSERT((ulBase == I2C0_MASTER_BASE) || (ulBase == I2C1_MASTER_BASE)); + ASSERT(I2CMasterBaseValid(ulBase)); // // Write the byte. @@ -1001,7 +1337,7 @@ I2CMasterDataGet(unsigned long ulBase) // // Check the arguments. // - ASSERT((ulBase == I2C0_MASTER_BASE) || (ulBase == I2C1_MASTER_BASE)); + ASSERT(I2CMasterBaseValid(ulBase)); // // Read a byte. @@ -1009,27 +1345,141 @@ I2CMasterDataGet(unsigned long ulBase) return(HWREG(ulBase + I2C_O_MDR)); } +//***************************************************************************** +// +//! Sets the Master clock timeout value. +//! +//! \param ulBase is the base address of the I2C Master module. +//! \param ulValue is the number of I2C clocks before the timeout is asserted. +//! +//! This function enables and configures the clock low timeout feature in the +//! I2C peripheral. This feature is implemented as a 12-bit counter, with the +//! upper 8-bits being programmable. For example, to program a timeout of 20ms +//! with a 100kHz SCL frequency, \e ulValue would be 0x7d. +//! +//! \note Not all Stellaris devices support this function. Please consult the +//! device data sheet to know if this feature is supported. +//! +//! \return None. +// +//***************************************************************************** +void +I2CMasterTimeoutSet(unsigned long ulBase, unsigned long ulValue) +{ + // + // Check the arguments. + // + ASSERT(I2CMasterBaseValid(ulBase)); + + // + // Write the timeout value. + // + HWREG(ulBase + I2C_O_MCLKOCNT) = ulValue; +} + +//***************************************************************************** +// +//! Configures ACK override behavior of the I2C Slave. +//! +//! \param ulBase is the base address of the I2C Slave module. +//! \param bEnable enables or disables ACK override. +//! +//! This function enables or disables ACK override, allowing the user +//! application to drive the value on SDA during the ACK cycle. +//! +//! \note Not all Stellaris devices support this function. Please consult the +//! device data sheet to know if this feature is supported. +//! +//! \return None. +// +//***************************************************************************** +void +I2CSlaveACKOverride(unsigned long ulBase, tBoolean bEnable) +{ + // + // Check the arguments. + // + ASSERT(I2CSlaveBaseValid(ulBase)); + + // + // Enable or disable based on bEnable. + // + if(bEnable) + { + HWREG(ulBase + I2C_O_SACKCTL) |= I2C_SACKCTL_ACKOEN; + } + else + { + HWREG(ulBase + I2C_O_SACKCTL) &= ~I2C_SACKCTL_ACKOEN; + } +} + +//***************************************************************************** +// +//! Writes the ACK value. +//! +//! \param ulBase is the base address of the I2C Slave module. +//! \param bACK chooses whether to ACK (true) or NACK (false) the transfer. +//! +//! This function puts the desired ACK value on SDA during the ACK cycle. The +//! value written is only valid when ACK override is enabled using +//! I2CSlaveACKOverride(). +//! +//! \return None. +// +//***************************************************************************** +void +I2CSlaveACKValueSet(unsigned long ulBase, tBoolean bACK) +{ + // + // Check the arguments. + // + ASSERT(I2CSlaveBaseValid(ulBase)); + + // + // ACK or NACK based on the value of bACK. + // + if(bACK) + { + HWREG(ulBase + I2C_O_SACKCTL) &= ~I2C_SACKCTL_ACKOVAL; + } + else + { + HWREG(ulBase + I2C_O_SACKCTL) |= I2C_SACKCTL_ACKOVAL; + } +} + //***************************************************************************** // //! Gets the I2C Slave module status //! //! \param ulBase is the base address of the I2C Slave module. //! -//! This function will return the action requested from a master, if any. +//! This function returns the action requested from a master, if any. //! Possible values are: //! //! - \b I2C_SLAVE_ACT_NONE //! - \b I2C_SLAVE_ACT_RREQ //! - \b I2C_SLAVE_ACT_TREQ //! - \b I2C_SLAVE_ACT_RREQ_FBR +//! - \b I2C_SLAVE_ACT_OWN2SEL +//! - \b I2C_SLAVE_ACT_QCMD +//! - \b I2C_SLAVE_ACT_QCMD_DATA //! //! \return Returns \b I2C_SLAVE_ACT_NONE to indicate that no action has been //! requested of the I2C Slave module, \b I2C_SLAVE_ACT_RREQ to indicate that //! an I2C master has sent data to the I2C Slave module, \b I2C_SLAVE_ACT_TREQ //! to indicate that an I2C master has requested that the I2C Slave module send -//! data, and \b I2C_SLAVE_ACT_RREQ_FBR to indicate that an I2C master has sent +//! data, \b I2C_SLAVE_ACT_RREQ_FBR to indicate that an I2C master has sent //! data to the I2C slave and the first byte following the slave's own address -//! has been received. +//! has been received, \b I2C_SLAVE_ACT_OWN2SEL to indicate that the second I2C +//! slave address was matched, \b I2C_SLAVE_ACT_QCMD to indicate that a quick +//! command was received, and \b I2C_SLAVE_ACT_QCMD_DATA to indicate that the +//! data bit was set when the quick command was received. +//! +//! \note Not all Stellaris devices support the second I2C slave's own address +//! or the quick command function. Please consult the device data sheet to +//! know if these features are supported. // //***************************************************************************** unsigned long @@ -1038,7 +1488,7 @@ I2CSlaveStatus(unsigned long ulBase) // // Check the arguments. // - ASSERT((ulBase == I2C0_SLAVE_BASE) || (ulBase == I2C1_SLAVE_BASE)); + ASSERT(I2CSlaveBaseValid(ulBase)); // // Return the slave status. @@ -1053,7 +1503,7 @@ I2CSlaveStatus(unsigned long ulBase) //! \param ulBase is the base address of the I2C Slave module. //! \param ucData data to be transmitted from the I2C Slave //! -//! This function will place the supplied data into I2C Slave Data Register. +//! This function places the supplied data into I2C Slave Data Register. //! //! \return None. // @@ -1064,7 +1514,7 @@ I2CSlaveDataPut(unsigned long ulBase, unsigned char ucData) // // Check the arguments. // - ASSERT((ulBase == I2C0_SLAVE_BASE) || (ulBase == I2C1_SLAVE_BASE)); + ASSERT(I2CSlaveBaseValid(ulBase)); // // Write the byte. @@ -1090,7 +1540,7 @@ I2CSlaveDataGet(unsigned long ulBase) // // Check the arguments. // - ASSERT((ulBase == I2C0_SLAVE_BASE) || (ulBase == I2C1_SLAVE_BASE)); + ASSERT(I2CSlaveBaseValid(ulBase)); // // Read a byte. diff --git a/bsp/lm3s8962/Libraries/driverlib/i2c.h b/bsp/lm3s8962/Libraries/driverlib/i2c.h index cb93ded54d..e85a9cad40 100644 --- a/bsp/lm3s8962/Libraries/driverlib/i2c.h +++ b/bsp/lm3s8962/Libraries/driverlib/i2c.h @@ -2,7 +2,7 @@ // // i2c.h - Prototypes for the I2C Driver. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -65,6 +65,8 @@ extern "C" 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 \ @@ -75,6 +77,8 @@ extern "C" 0x00000005 #define I2C_MASTER_CMD_BURST_RECEIVE_ERROR_STOP \ 0x00000004 +#define I2C_MASTER_CMD_QUICK_COMMAND \ + 0x00000027 //***************************************************************************** // @@ -95,6 +99,9 @@ extern "C" #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 //***************************************************************************** // @@ -103,6 +110,14 @@ extern "C" //***************************************************************************** #define I2C_MASTER_MAX_RETRIES 1000 // Number of retries +//***************************************************************************** +// +// I2C Master interrupts. +// +//***************************************************************************** +#define I2C_MASTER_INT_TIMEOUT 0x00000002 // Clock Timeout Interrupt. +#define I2C_MASTER_INT_DATA 0x00000001 // Data Interrupt. + //***************************************************************************** // // I2C Slave interrupts. @@ -133,6 +148,18 @@ extern void I2CMasterIntClear(unsigned long ulBase); extern void I2CMasterIntDisable(unsigned long ulBase); extern void I2CMasterIntEnable(unsigned long ulBase); extern tBoolean I2CMasterIntStatus(unsigned long ulBase, tBoolean bMasked); +extern void I2CMasterIntEnableEx(unsigned long ulBase, + unsigned long ulIntFlags); +extern void I2CMasterIntDisableEx(unsigned long ulBase, + unsigned long ulIntFlags); +extern unsigned long I2CMasterIntStatusEx(unsigned long ulBase, + tBoolean bMasked); +extern void I2CMasterIntClearEx(unsigned long ulBase, + unsigned long ulIntFlags); +extern void I2CMasterTimeoutSet(unsigned long ulBase, unsigned long ulValue); +extern void I2CSlaveACKOverride(unsigned long ulBase, tBoolean bEnable); +extern void I2CSlaveACKValueSet(unsigned long ulBase, tBoolean bACK); +extern unsigned long I2CMasterLineStateGet(unsigned long ulBase); extern void I2CMasterSlaveAddrSet(unsigned long ulBase, unsigned char ucSlaveAddr, tBoolean bReceive); @@ -141,6 +168,8 @@ extern void I2CSlaveDataPut(unsigned long ulBase, unsigned char ucData); extern void I2CSlaveDisable(unsigned long ulBase); extern void I2CSlaveEnable(unsigned long ulBase); extern void I2CSlaveInit(unsigned long ulBase, unsigned char ucSlaveAddr); +extern void I2CSlaveAddressSet(unsigned long ulBase, unsigned char ucAddrNum, + unsigned char ucSlaveAddr); extern void I2CSlaveIntClear(unsigned long ulBase); extern void I2CSlaveIntDisable(unsigned long ulBase); extern void I2CSlaveIntEnable(unsigned long ulBase); diff --git a/bsp/lm3s8962/Libraries/driverlib/i2s.c b/bsp/lm3s8962/Libraries/driverlib/i2s.c index 358d1a012e..3cd12ffb64 100644 --- a/bsp/lm3s8962/Libraries/driverlib/i2s.c +++ b/bsp/lm3s8962/Libraries/driverlib/i2s.c @@ -2,7 +2,7 @@ // // i2s.c - Driver for the I2S controller. // -// Copyright (c) 2008-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2008-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -45,7 +45,7 @@ //! //! This function enables the transmit module for operation. The module //! should be enabled after configuration. When the module is disabled, -//! no data or clocks will be generated on the I2S signals. +//! no data or clocks are generated on the I2S signals. //! //! \return None. // @@ -77,7 +77,7 @@ I2STxEnable(unsigned long ulBase) //! //! This function disables the transmit module for operation. The module //! should be disabled before configuration. When the module is disabled, -//! no data or clocks will be generated on the I2S signals. +//! no data or clocks are generated on the I2S signals. //! //! \return None. // @@ -101,18 +101,19 @@ I2STxDisable(unsigned long ulBase) //! Writes data samples to the I2S transmit FIFO with blocking. //! //! \param ulBase is the I2S module base address. -//! \param ulData is the single or dual channel I2S data. +//! \param ulData is the single- or dual-channel I2S data. //! -//! This function writes a single channel sample or combined left-right +//! This function writes a single-channel sample or combined left-right //! samples to the I2S transmit FIFO. The format of the sample is determined //! by the configuration that was used with the function I2STxConfigSet(). -//! If the transmit mode is I2S_MODE_DUAL_STEREO then the \e ulData parameter -//! contains either the left or right sample. The left and right sample -//! alternate with each write to the FIFO, left sample first. If the transmit -//! mode is I2S_MODE_COMPACT_STEREO_16 or I2S_MODE_COMPACT_STEREO_8, then the -//! \e ulData parameter contains both the left and right samples. If the -//! transmit mode is I2S_MODE_SINGLE_MONO then the \e ulData parameter -//! contains the single channel sample. +//! If the transmit mode is \b I2S_MODE_DUAL_STEREO then the \e ulData +//! parameter contains either the left or right sample. The left and right +//! sample alternate with each write to the FIFO, left sample first. If the +//! transmit mode is \b I2S_MODE_COMPACT_STEREO_16 or +//! \b I2S_MODE_COMPACT_STEREO_8, then the \e ulData parameter contains both +//! the left and right samples. If the transmit mode is +//! \b I2S_MODE_SINGLE_MONO then the \e ulData parameter contains the single +//! channel sample. //! //! For the compact modes, both the left and right samples are written at //! the same time. If 16-bit compact mode is used, then the least significant @@ -121,7 +122,7 @@ I2STxDisable(unsigned long ulBase) //! contain the left sample, and the next 8 bits contain the right sample, //! with the upper 16 bits unused. //! -//! If there is no room in the transmit FIFO, then this function will wait +//! If there is no room in the transmit FIFO, then this function waits //! in a polling loop until the data can be written. //! //! \return None. @@ -153,18 +154,19 @@ I2STxDataPut(unsigned long ulBase, unsigned long ulData) //! Writes data samples to the I2S transmit FIFO without blocking. //! //! \param ulBase is the I2S module base address. -//! \param ulData is the single or dual channel I2S data. +//! \param ulData is the single- or dual-channel I2S data. //! -//! This function writes a single channel sample or combined left-right +//! This function writes a single-channel sample or combined left-right //! samples to the I2S transmit FIFO. The format of the sample is determined //! by the configuration that was used with the function I2STxConfigSet(). -//! If the transmit mode is I2S_MODE_DUAL_STEREO then the \e ulData parameter -//! contains either the left or right sample. The left and right sample -//! alternate with each write to the FIFO, left sample first. If the transmit -//! mode is I2S_MODE_COMPACT_STEREO_16 or I2S_MODE_COMPACT_STEREO_8, then the -//! \e ulData parameter contains both the left and right samples. If the -//! transmit mode is I2S_MODE_SINGLE_MONO then the \e ulData parameter -//! contains the single channel sample. +//! If the transmit mode is \b I2S_MODE_DUAL_STEREO then the \e ulData +//! parameter contains either the left or right sample. The left and right +//! sample alternate with each write to the FIFO, left sample first. If the +//! transmit mode is \b I2S_MODE_COMPACT_STEREO_16 or +//! \b I2S_MODE_COMPACT_STEREO_8, then the \e ulData parameter contains both +//! the left and right samples. If the transmit mode is +//! \b I2S_MODE_SINGLE_MONO then the \e ulData parameter contains the single- +//! channel sample. //! //! For the compact modes, both the left and right samples are written at //! the same time. If 16-bit compact mode is used, then the least significant @@ -173,7 +175,7 @@ I2STxDataPut(unsigned long ulBase, unsigned long ulData) //! contain the left sample, and the next 8 bits contain the right sample, //! with the upper 16 bits unused. //! -//! If there is no room in the transmit FIFO, then this function will return +//! If there is no room in the transmit FIFO, then this function returns //! immediately without writing any data to the FIFO. //! //! \return The number of elements written to the I2S transmit FIFO (1 or 0). @@ -213,23 +215,23 @@ I2STxDataPutNonBlocking(unsigned long ulBase, unsigned long ulData) //! options: //! //! - \b I2S_CONFIG_FORMAT_I2S for standard I2S format, -//! \b I2S_CONFIG_FORMAT_LEFT_JUST for left justified format, or -//! \b I2S_CONFIG_FORMAT_RIGHT_JUST for right justified format. +//! \b I2S_CONFIG_FORMAT_LEFT_JUST for left justified format, or +//! \b I2S_CONFIG_FORMAT_RIGHT_JUST for right justified format. //! - \b I2S_CONFIG_SCLK_INVERT to invert the polarity of the serial bit clock. //! - \b I2S_CONFIG_MODE_DUAL for dual channel stereo, -//! \b I2S_CONFIG_MODE_COMPACT_16 for 16-bit compact stereo mode, -//! \b I2S_CONFIG_MODE_COMPACT_8 for 8-bit compact stereo mode, or -//! \b I2S_CONFIG_MODE_MONO for single channel mono format. +//! \b I2S_CONFIG_MODE_COMPACT_16 for 16-bit compact stereo mode, +//! \b I2S_CONFIG_MODE_COMPACT_8 for 8-bit compact stereo mode, or +//! \b I2S_CONFIG_MODE_MONO for single channel mono format. //! - \b I2S_CONFIG_CLK_MASTER or \b I2S_CONFIG_CLK_SLAVE to select whether -//! the I2S transmitter is the clock master or slave. +//! the I2S transmitter is the clock master or slave. //! - \b I2S_CONFIG_SAMPLE_SIZE_32, \b _24, \b _20, \b _16, or \b _8 -//! to select the number of bits per sample. +//! to select the number of bits per sample. //! - \b I2S_CONFIG_WIRE_SIZE_32, \b _24, \b _20, \b _16, or \b _8 -//! to select the number of bits per word that are transferred on the data -//! line. +//! to select the number of bits per word that are transferred on the data +//! line. //! - \b I2S_CONFIG_EMPTY_ZERO or \b I2S_CONFIG_EMPTY_REPEAT to select whether -//! the module transmits zeroes or repeats the last sample when the FIFO is -//! empty. +//! the module transmits zeroes or repeats the last sample when the FIFO is +//! empty. //! //! \return None. // @@ -254,7 +256,7 @@ I2STxConfigSet(unsigned long ulBase, unsigned long ulConfig) // // If compact 8 mode is used, then need to adjust some bits // before writing the config register. Also set the FIFO - // config register for 8 bit compact samples. + // config register for 8-bit compact samples. // ulConfig &= ~I2S_CONFIG_MODE_MONO; HWREG(ulBase + I2S_O_TXFIFOCFG) = I2S_TXFIFOCFG_CSS; @@ -263,14 +265,14 @@ I2STxConfigSet(unsigned long ulBase, unsigned long ulConfig) { // // If compact 8 mode is not used, then set the FIFO config - // register for 16 bit. This is okay if a compact mode is - // not used. + // register for 16 bit. This setting is okay if a compact + // mode is not used. // HWREG(ulBase + I2S_O_TXFIFOCFG) = 0; } // - // Write the configuration register. Since all the fields are + // Write the configuration register. Because all the fields are // specified by the configuration parameter, it is not necessary // to do a read-modify-write. // @@ -284,22 +286,21 @@ I2STxConfigSet(unsigned long ulBase, unsigned long ulConfig) //! \param ulBase is the I2S module base address. //! \param ulLevel is the FIFO service request limit. //! -//! This function is used to set the transmit FIFO fullness level at which -//! a service request will occur. The service request is used to generate -//! an interrupt or a DMA transfer request. The transmit FIFO will -//! generate a service request when the number of items in the FIFO is -//! less than the level specified in the \e ulLevel parameter. For example, -//! if \e ulLevel is 8, then a service request will be generated when -//! there are less than 8 samples remaining in the transmit FIFO. +//! This function is used to set the transmit FIFO fullness level at which a +//! service request occurs. The service request is used to generate an +//! interrupt or a DMA transfer request. The transmit FIFO generates a +//! service request when the number of items in the FIFO is less than the level +//! specified in the \e ulLevel parameter. For example, if \e ulLevel is 8, +//! then a service request is generated when there are less than 8 samples +//! remaining in the transmit FIFO. //! //! For the purposes of counting the FIFO level, a left-right sample pair -//! counts as 2, whether the mode is dual or compact stereo. When mono -//! mode is used, internally the mono sample is still treated as a sample -//! pair, so a single mono sample counts as 2. Since the FIFO always deals -//! with sample pairs, the level must be an even number from 0 to 16. The -//! maximum value is 16, which will cause a service request when there -//! is any room in the FIFO. The minimum value is 0, which disables the -//! service request. +//! counts as 2, whether the mode is dual or compact stereo. When mono mode is +//! used, internally the mono sample is still treated as a sample pair, so a +//! single mono sample counts as 2. Because the FIFO always deals with sample +//! pairs, the level must be an even number from 0 to 16. The maximum value is +//! 16, which causes a service request when there is any room in the FIFO. +//! The minimum value is 0, which disables the service request. //! //! \return None. // @@ -352,19 +353,18 @@ I2STxFIFOLimitGet(unsigned long ulBase) //! //! \param ulBase is the I2S module base address. //! -//! This function is used to get the number of samples in the transmit -//! FIFO. For the purposes of measuring the FIFO level, a left-right sample -//! pair counts as 2, whether the mode is dual or compact stereo. When mono -//! mode is used, internally the mono sample is still treated as a sample -//! pair, so a single mono sample counts as 2. Since the FIFO always deals -//! with sample pairs, normally the level will be an even number from 0 to -//! 16. If dual stereo mode is used and only the left sample has been -//! written without the matching right sample, then the FIFO level will be an -//! odd value. If the FIFO level is odd, it indicates a left-right sample -//! mismatch. +//! This function is used to get the number of samples in the transmit FIFO. +//! For the purposes of measuring the FIFO level, a left-right sample pair +//! counts as 2, whether the mode is dual or compact stereo. When mono mode is +//! used, internally the mono sample is still treated as a sample pair, so a +//! single mono sample counts as 2. Because the FIFO always deals with sample +//! pairs, normally the level is an even number from 0 to 16. If dual stereo +//! mode is used and only the left sample has been written without the matching +//! right sample, then the FIFO level is an odd value. If the FIFO level is +//! odd, it indicates a left-right sample mismatch. //! -//! \return Returns the number of samples in the transmit FIFO, which will -//! normally be an even number. +//! \return Returns the number of samples in the transmit FIFO, which is +//! normally an even number. // //***************************************************************************** unsigned long @@ -387,9 +387,9 @@ I2STxFIFOLevelGet(unsigned long ulBase) //! //! \param ulBase is the I2S module base address. //! -//! This function enables the receive module for operation. The module -//! should be enabled after configuration. When the module is disabled, -//! no data will be clocked in regardless of the signals on the I2S interface. +//! This function enables the receive module for operation. The module should +//! be enabled after configuration. When the module is disabled, no data is +//! clocked in regardless of the signals on the I2S interface. //! //! \return None. // @@ -419,9 +419,9 @@ I2SRxEnable(unsigned long ulBase) //! //! \param ulBase is the I2S module base address. //! -//! This function disables the receive module for operation. The module -//! should be disabled before configuration. When the module is disabled, -//! no data will be clocked in regardless of the signals on the I2S interface. +//! This function disables the receive module for operation. The module should +//! be disabled before configuration. When the module is disabled, no data is +//! clocked in regardless of the signals on the I2S interface. //! //! \return None. // @@ -450,12 +450,12 @@ I2SRxDisable(unsigned long ulBase) //! This function reads a single channel sample or combined left-right //! samples from the I2S receive FIFO. The format of the sample is determined //! by the configuration that was used with the function I2SRxConfigSet(). -//! If the receive mode is I2S_MODE_DUAL_STEREO then the returned value +//! If the receive mode is \b I2S_MODE_DUAL_STEREO then the returned value //! contains either the left or right sample. The left and right sample //! alternate with each read from the FIFO, left sample first. If the receive -//! mode is I2S_MODE_COMPACT_STEREO_16 or I2S_MODE_COMPACT_STEREO_8, then the -//! returned data contains both the left and right samples. If the -//! receive mode is I2S_MODE_SINGLE_MONO then the returned data +//! mode is \b I2S_MODE_COMPACT_STEREO_16 or \b I2S_MODE_COMPACT_STEREO_8, then +//! the returned data contains both the left and right samples. If the +//! receive mode is \b I2S_MODE_SINGLE_MONO then the returned data //! contains the single channel sample. //! //! For the compact modes, both the left and right samples are read at @@ -465,7 +465,7 @@ I2SRxDisable(unsigned long ulBase) //! contain the left sample, and the next 8 bits contain the right sample, //! with the upper 16 bits unused. //! -//! If there is no data in the receive FIFO, then this function will wait +//! If there is no data in the receive FIFO, then this function waits //! in a polling loop until data is available. //! //! \return None. @@ -502,12 +502,12 @@ I2SRxDataGet(unsigned long ulBase, unsigned long *pulData) //! This function reads a single channel sample or combined left-right //! samples from the I2S receive FIFO. The format of the sample is determined //! by the configuration that was used with the function I2SRxConfigSet(). -//! If the receive mode is I2S_MODE_DUAL_STEREO then the received data +//! If the receive mode is \b I2S_MODE_DUAL_STEREO then the received data //! contains either the left or right sample. The left and right sample //! alternate with each read from the FIFO, left sample first. If the receive -//! mode is I2S_MODE_COMPACT_STEREO_16 or I2S_MODE_COMPACT_STEREO_8, then the -//! received data contains both the left and right samples. If the -//! receive mode is I2S_MODE_SINGLE_MONO then the received data +//! mode is \b I2S_MODE_COMPACT_STEREO_16 or \b I2S_MODE_COMPACT_STEREO_8, then +//! the received data contains both the left and right samples. If the +//! receive mode is \b I2S_MODE_SINGLE_MONO then the received data //! contains the single channel sample. //! //! For the compact modes, both the left and right samples are read at @@ -517,7 +517,7 @@ I2SRxDataGet(unsigned long ulBase, unsigned long *pulData) //! contain the left sample, and the next 8 bits contain the right sample, //! with the upper 16 bits unused. //! -//! If there is no data in the receive FIFO, then this function will return +//! If there is no data in the receive FIFO, then this function returns //! immediately without reading any data from the FIFO. //! //! \return The number of elements read from the I2S receive FIFO (1 or 0). @@ -557,20 +557,20 @@ I2SRxDataGetNonBlocking(unsigned long ulBase, unsigned long *pulData) //! options: //! //! - \b I2S_CONFIG_FORMAT_I2S for standard I2S format, -//! \b I2S_CONFIG_FORMAT_LEFT_JUST for left justified format, or -//! \b I2S_CONFIG_FORMAT_RIGHT_JUST for right justified format. +//! \b I2S_CONFIG_FORMAT_LEFT_JUST for left justified format, or +//! \b I2S_CONFIG_FORMAT_RIGHT_JUST for right justified format. //! - \b I2S_CONFIG_SCLK_INVERT to invert the polarity of the serial bit clock. //! - \b I2S_CONFIG_MODE_DUAL for dual channel stereo, -//! \b I2S_CONFIG_MODE_COMPACT_16 for 16-bit compact stereo mode, -//! \b I2S_CONFIG_MODE_COMPACT_8 for 8-bit compact stereo mode, or -//! \b I2S_CONFIG_MODE_MONO for single channel mono format. +//! \b I2S_CONFIG_MODE_COMPACT_16 for 16-bit compact stereo mode, +//! \b I2S_CONFIG_MODE_COMPACT_8 for 8-bit compact stereo mode, or +//! \b I2S_CONFIG_MODE_MONO for single channel mono format. //! - \b I2S_CONFIG_CLK_MASTER or \b I2S_CONFIG_CLK_SLAVE to select whether -//! the I2S receiver is the clock master or slave. +//! the I2S receiver is the clock master or slave. //! - \b I2S_CONFIG_SAMPLE_SIZE_32, \b _24, \b _20, \b _16, or \b _8 -//! to select the number of bits per sample. +//! to select the number of bits per sample. //! - \b I2S_CONFIG_WIRE_SIZE_32, \b _24, \b _20, \b _16, or \b _8 -//! to select the number of bits per word that are transferred on the data -//! line. +//! to select the number of bits per word that are transferred on the data +//! line. //! //! \return None. // @@ -608,14 +608,14 @@ I2SRxConfigSet(unsigned long ulBase, unsigned long ulConfig) } // - // The "mono" bits needs to be removed from the configuration word + // The "mono" bits must be removed from the configuration word // prior to writing to hardware, because the RX configuration register // does not actually use these bits. // ulConfig &= ~I2S_CONFIG_MODE_MONO; // - // Write the configuration register. Since all the fields are + // Write the configuration register. Because all the fields are // specified by the configuration parameter, it is not necessary // to do a read-modify-write. // @@ -629,23 +629,22 @@ I2SRxConfigSet(unsigned long ulBase, unsigned long ulConfig) //! \param ulBase is the I2S module base address. //! \param ulLevel is the FIFO service request limit. //! -//! This function is used to set the receive FIFO fullness level at which -//! a service request will occur. The service request is used to generate -//! an interrupt or a DMA transfer request. The receive FIFO will -//! generate a service request when the number of items in the FIFO is -//! greater than the level specified in the \e ulLevel parameter. For example, -//! if \e ulLevel is 4, then a service request will be generated when -//! there are more than 4 samples available in the receive FIFO. +//! This function is used to set the receive FIFO fullness level at which a +//! service request occurs. The service request is used to generate an +//! interrupt or a DMA transfer request. The receive FIFO generates a +//! service request when the number of items in the FIFO is greater than the +//! level specified in the \e ulLevel parameter. For example, if \e ulLevel is +//! 4, then a service request is generated when there are more than 4 samples +//! available in the receive FIFO. //! //! For the purposes of counting the FIFO level, a left-right sample pair -//! counts as 2, whether the mode is dual or compact stereo. When mono -//! mode is used, internally the mono sample is still treated as a sample -//! pair, so a single mono sample counts as 2. Since the FIFO always deals -//! with sample pairs, the level must be an even number from 0 to 16. The -//! minimum value is 0, which will cause a service request when there -//! is any data available in the FIFO. The maximum value is 16, which -//! disables the service request (because there cannot be more than 16 -//! items in the FIFO). +//! counts as 2, whether the mode is dual or compact stereo. When mono mode is +//! used, internally the mono sample is still treated as a sample pair, so a +//! single mono sample counts as 2. Because the FIFO always deals with sample +//! pairs, the level must be an even number from 0 to 16. The minimum value is +//! 0, which causes a service request when there is any data available in +//! the FIFO. The maximum value is 16, which disables the service request +//! (because there cannot be more than 16 items in the FIFO). //! //! \return None. // @@ -688,7 +687,7 @@ I2SRxFIFOLimitGet(unsigned long ulBase) // // Read and return the FIFO limit. The lower bit is masked - // because it always reads as 1, and has no meaning. + // because it always reads as 1 and has no meaning. // return(HWREG(ulBase + I2S_O_RXLIMIT) & 0xFFFE); } @@ -699,19 +698,18 @@ I2SRxFIFOLimitGet(unsigned long ulBase) //! //! \param ulBase is the I2S module base address. //! -//! This function is used to get the number of samples in the receive -//! FIFO. For the purposes of measuring the FIFO level, a left-right sample -//! pair counts as 2, whether the mode is dual or compact stereo. When mono -//! mode is used, internally the mono sample is still treated as a sample -//! pair, so a single mono sample counts as 2. Since the FIFO always deals -//! with sample pairs, normally the level will be an even number from 0 to -//! 16. If dual stereo mode is used and only the left sample has been -//! read without reading the matching right sample, then the FIFO level will -//! be an odd value. If the FIFO level is odd, it indicates a left-right -//! sample mismatch. +//! This function is used to get the number of samples in the receive FIFO. +//! For the purposes of measuring the FIFO level, a left-right sample pair +//! counts as 2, whether the mode is dual or compact stereo. When mono mode is +//! used, internally the mono sample is still treated as a sample pair, so a +//! single mono sample counts as 2. Because the FIFO always deals with sample +//! pairs, normally the level is an even number from 0 to 16. If dual stereo +//! mode is used and only the left sample has been read without reading the +//! matching right sample, then the FIFO level is an odd value. If the FIFO +//! level is odd, it indicates a left-right sample mismatch. //! -//! \return Returns the number of samples in the transmit FIFO, which will -//! normally be an even number. +//! \return Returns the number of samples in the transmit FIFO, which is +//! normally an even number. // //***************************************************************************** unsigned long @@ -737,7 +735,7 @@ I2SRxFIFOLevelGet(unsigned long ulBase) //! This function simultaneously enables the transmit and receive modules for //! operation, providing a synchronized SCLK and LRCLK. The module should be //! enabled after configuration. When the module is disabled, no data or -//! clocks will be generated on the I2S signals. +//! clocks are generated on the I2S signals. //! //! \return None. // @@ -773,7 +771,7 @@ I2STxRxEnable(unsigned long ulBase) //! \param ulBase is the I2S module base address. //! //! This function simultaneously disables the transmit and receive modules. -//! When the module is disabled, no data or clocks will be generated on the I2S +//! When the module is disabled, no data or clocks are generated on the I2S //! signals. //! //! \return None. @@ -805,23 +803,23 @@ I2STxRxDisable(unsigned long ulBase) //! the logical OR of the following options: //! //! - \b I2S_CONFIG_FORMAT_I2S for standard I2S format, -//! \b I2S_CONFIG_FORMAT_LEFT_JUST for left justified format, or -//! \b I2S_CONFIG_FORMAT_RIGHT_JUST for right justified format. +//! \b I2S_CONFIG_FORMAT_LEFT_JUST for left justified format, or +//! \b I2S_CONFIG_FORMAT_RIGHT_JUST for right justified format. //! - \b I2S_CONFIG_SCLK_INVERT to invert the polarity of the serial bit clock. -//! - \b I2S_CONFIG_MODE_DUAL for dual channel stereo, -//! \b I2S_CONFIG_MODE_COMPACT_16 for 16-bit compact stereo mode, -//! \b I2S_CONFIG_MODE_COMPACT_8 for 8-bit compact stereo mode, or -//! \b I2S_CONFIG_MODE_MONO for single channel mono format. +//! - \b I2S_CONFIG_MODE_DUAL for dual-channel stereo, +//! \b I2S_CONFIG_MODE_COMPACT_16 for 16-bit compact stereo mode, +//! \b I2S_CONFIG_MODE_COMPACT_8 for 8-bit compact stereo mode, or +//! \b I2S_CONFIG_MODE_MONO for single-channel mono format. //! - \b I2S_CONFIG_CLK_MASTER or \b I2S_CONFIG_CLK_SLAVE to select whether -//! the I2S transmitter is the clock master or slave. +//! the I2S transmitter is the clock master or slave. //! - \b I2S_CONFIG_SAMPLE_SIZE_32, \b _24, \b _20, \b _16, or \b _8 -//! to select the number of bits per sample. +//! to select the number of bits per sample. //! - \b I2S_CONFIG_WIRE_SIZE_32, \b _24, \b _20, \b _16, or \b _8 -//! to select the number of bits per word that are transferred on the data -//! line. +//! to select the number of bits per word that are transferred on the data +//! line. //! - \b I2S_CONFIG_EMPTY_ZERO or \b I2S_CONFIG_EMPTY_REPEAT to select whether -//! the module transmits zeroes or repeats the last sample when the FIFO is -//! empty. +//! the module transmits zeroes or repeats the last sample when the FIFO is +//! empty. //! //! \return None. // @@ -863,8 +861,8 @@ I2STxRxConfigSet(unsigned long ulBase, unsigned long ulConfig) } // - // Write the configuration register. Since all the fields are specified by - // the configuration parameter, it is not necessary to do a + // Write the configuration register. Because all the fields are specified + // by the configuration parameter, it is not necessary to do a // read-modify-write. // HWREG(ulBase + I2S_O_TXCFG) = ulConfig; @@ -880,7 +878,7 @@ I2STxRxConfigSet(unsigned long ulBase, unsigned long ulConfig) //! choices. //! //! This function selects whether the master clock is sourced from the device -//! internal PLL, or comes from an external pin. The I2S serial bit clock +//! internal PLL or comes from an external pin. The I2S serial bit clock //! (SCLK) and left-right word clock (LRCLK) are derived from the I2S master //! clock. The transmit and receive modules can be configured independently. //! The \e ulMClock parameter is chosen from the following: @@ -888,7 +886,7 @@ I2STxRxConfigSet(unsigned long ulBase, unsigned long ulConfig) //! - one of \b I2S_TX_MCLK_EXT or \b I2S_TX_MCLK_INT //! - one of \b I2S_RX_MCLK_EXT or \b I2S_RX_MCLK_INT //! -//! \return Returns None. +//! \return None. // //***************************************************************************** void @@ -926,7 +924,7 @@ I2SMasterClockSelect(unsigned long ulBase, unsigned long ulMClock) //! - \b I2S_INT_TXERR for transmit errors //! - \b I2S_INT_TXREQ for transmit FIFO service requests //! -//! \return Returns None. +//! \return None. // //***************************************************************************** void @@ -957,7 +955,7 @@ I2SIntEnable(unsigned long ulBase, unsigned long ulIntFlags) //! of any of the following values: \b I2S_INT_RXERR, \b I2S_INT_RXREQ, //! \b I2S_INT_TXERR, or \b I2S_INT_TXREQ. //! -//! \return Returns None. +//! \return None. // //***************************************************************************** void @@ -1021,22 +1019,22 @@ I2SIntStatus(unsigned long ulBase, tBoolean bMasked) //! \param ulBase is the I2S module base address. //! \param ulIntFlags is a bit mask of the interrupt sources to be cleared. //! -//! This function clears the specified pending I2S interrupts. This must -//! be done in the interrupt handler to keep the handler from being called -//! again immediately upon exit. The \e ulIntFlags parameter can be the -//! logical OR of any of the following values: \b I2S_INT_RXERR, +//! This function clears the specified pending I2S interrupts. This function +//! must be called in the interrupt handler to keep the interrupt from being +//! triggered again immediately upon exit. The \e ulIntFlags parameter can be +//! the logical OR of any of the following values: \b I2S_INT_RXERR, //! \b I2S_INT_RXREQ, \b I2S_INT_TXERR, or \b I2S_INT_TXREQ. //! -//! \note Since there is a write buffer in the Cortex-M3 processor, it may take -//! several clock cycles before the interrupt source is actually cleared. +//! \note Because there is a write buffer in the Cortex-M processor, it may +//! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid //! returning from the interrupt handler before the interrupt source is //! actually cleared. Failure to do so may result in the interrupt handler -//! being immediately reentered (since NVIC still sees the interrupt source -//! asserted). +//! being immediately reentered (because the interrupt controller still sees +//! the interrupt source asserted). //! -//! \return Returns None. +//! \return None. // //***************************************************************************** void @@ -1063,9 +1061,9 @@ I2SIntClear(unsigned long ulBase, unsigned long ulIntFlags) //! \param pfnHandler is a pointer to the function to be called when the //! interrupt is activated. //! -//! This sets and enables the handler to be called when the I2S controller -//! generates an interrupt. Specific I2S interrupts must still be enabled -//! with the I2SIntEnable() function. It is the responsibility of the +//! This function sets and enables the handler to be called when the I2S +//! controller generates an interrupt. Specific I2S interrupts must still be +//! enabled with the I2SIntEnable() function. It is the responsibility of the //! interrupt handler to clear any pending interrupts with I2SIntClear(). //! //! \sa IntRegister() for important information about registering interrupt @@ -1100,7 +1098,7 @@ I2SIntRegister(unsigned long ulBase, void (*pfnHandler)(void)) //! //! \param ulBase is the I2S module base address. //! -//! This function will disable and clear the handler to be called when the +//! This function disables and clears the handler to be called when the //! I2S interrupt occurs. //! //! \sa IntRegister() for important information about registering interrupt diff --git a/bsp/lm3s8962/Libraries/driverlib/i2s.h b/bsp/lm3s8962/Libraries/driverlib/i2s.h index b86075a736..f7abacf8c6 100644 --- a/bsp/lm3s8962/Libraries/driverlib/i2s.h +++ b/bsp/lm3s8962/Libraries/driverlib/i2s.h @@ -2,7 +2,7 @@ // // i2s.h - Prototypes and macros for the I2S controller. // -// Copyright (c) 2008-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2008-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm3s8962/Libraries/driverlib/interrupt.c b/bsp/lm3s8962/Libraries/driverlib/interrupt.c index 8bed6e81f4..7eed9758b0 100644 --- a/bsp/lm3s8962/Libraries/driverlib/interrupt.c +++ b/bsp/lm3s8962/Libraries/driverlib/interrupt.c @@ -2,7 +2,7 @@ // // interrupt.c - Driver for the NVIC Interrupt Controller. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -59,7 +59,58 @@ static const unsigned long g_pulRegs[] = { 0, NVIC_SYS_PRI1, NVIC_SYS_PRI2, NVIC_SYS_PRI3, NVIC_PRI0, NVIC_PRI1, NVIC_PRI2, NVIC_PRI3, NVIC_PRI4, NVIC_PRI5, NVIC_PRI6, NVIC_PRI7, - NVIC_PRI8, NVIC_PRI9, NVIC_PRI10, NVIC_PRI11, NVIC_PRI12, NVIC_PRI13 + NVIC_PRI8, NVIC_PRI9, NVIC_PRI10, NVIC_PRI11, NVIC_PRI12, NVIC_PRI13, + NVIC_PRI14, NVIC_PRI15, NVIC_PRI16, NVIC_PRI17, NVIC_PRI18, NVIC_PRI19, + NVIC_PRI20, NVIC_PRI21, NVIC_PRI22, NVIC_PRI23, NVIC_PRI24, NVIC_PRI25, + NVIC_PRI26, NVIC_PRI27, NVIC_PRI28, NVIC_PRI29, NVIC_PRI30, NVIC_PRI31, + NVIC_PRI32 +}; + +//***************************************************************************** +// +// This is a mapping between interrupt number (for the peripheral interrupts +// only) and the register that contains the interrupt enable for that +// interrupt. +// +//***************************************************************************** +static const unsigned long g_pulEnRegs[] = +{ + NVIC_EN0, NVIC_EN1, NVIC_EN2, NVIC_EN3, NVIC_EN4 +}; + +//***************************************************************************** +// +// This is a mapping between interrupt number (for the peripheral interrupts +// only) and the register that contains the interrupt disable for that +// interrupt. +// +//***************************************************************************** +static const unsigned long g_pulDisRegs[] = +{ + NVIC_DIS0, NVIC_DIS1, NVIC_DIS2, NVIC_DIS3, NVIC_DIS4 +}; + +//***************************************************************************** +// +// This is a mapping between interrupt number (for the peripheral interrupts +// only) and the register that contains the interrupt pend for that interrupt. +// +//***************************************************************************** +static const unsigned long g_pulPendRegs[] = +{ + NVIC_PEND0, NVIC_PEND1, NVIC_PEND2, NVIC_PEND3, NVIC_PEND4 +}; + +//***************************************************************************** +// +// This is a mapping between interrupt number (for the peripheral interrupts +// only) and the register that contains the interrupt unpend for that +// interrupt. +// +//***************************************************************************** +static const unsigned long g_pulUnpendRegs[] = +{ + NVIC_UNPEND0, NVIC_UNPEND1, NVIC_UNPEND2, NVIC_UNPEND3, NVIC_UNPEND4 }; //***************************************************************************** @@ -97,30 +148,32 @@ IntDefaultHandler(void) // //***************************************************************************** #if defined(ewarm) +#pragma data_alignment=1024 static __no_init void (*g_pfnRAMVectors[NUM_INTERRUPTS])(void) @ "VTABLE"; #elif defined(sourcerygxx) static __attribute__((section(".cs3.region-head.ram"))) -void (*g_pfnRAMVectors[NUM_INTERRUPTS])(void); -#elif defined(ccs) +void (*g_pfnRAMVectors[NUM_INTERRUPTS])(void) __attribute__ ((aligned(1024))); +#elif defined(ccs) || defined(DOXYGEN) +#pragma DATA_ALIGN(g_pfnRAMVectors, 1024) #pragma DATA_SECTION(g_pfnRAMVectors, ".vtable") void (*g_pfnRAMVectors[NUM_INTERRUPTS])(void); #else static __attribute__((section("vtable"))) -void (*g_pfnRAMVectors[NUM_INTERRUPTS])(void); +void (*g_pfnRAMVectors[NUM_INTERRUPTS])(void) __attribute__ ((aligned(1024))); #endif //***************************************************************************** // //! Enables the processor interrupt. //! -//! Allows the processor to respond to interrupts. This does not affect the -//! set of interrupts enabled in the interrupt controller; it just gates the -//! single interrupt from the controller to the processor. +//! This function allows the processor to respond to interrupts. This function +//! does not affect the set of interrupts enabled in the interrupt controller; +//! it just gates the single interrupt from the controller to the processor. //! //! \note Previously, this function had no return value. As such, it was //! possible to include interrupt.h and call this function without //! having included hw_types.h. Now that the return is a -//! tBoolean, a compiler error will occur in this case. The solution +//! tBoolean, a compiler error occurs in this case. The solution //! is to include hw_types.h before including interrupt.h. //! //! \return Returns \b true if interrupts were disabled when the function was @@ -140,14 +193,15 @@ IntMasterEnable(void) // //! Disables the processor interrupt. //! -//! Prevents the processor from receiving interrupts. This does not affect the -//! set of interrupts enabled in the interrupt controller; it just gates the -//! single interrupt from the controller to the processor. +//! This function prevents the processor from receiving interrupts. This +//! function does not affect the set of interrupts enabled in the interrupt +//! controller; it just gates the single interrupt from the controller to the +//! processor. //! //! \note Previously, this function had no return value. As such, it was //! possible to include interrupt.h and call this function without //! having included hw_types.h. Now that the return is a -//! tBoolean, a compiler error will occur in this case. The solution +//! tBoolean, a compiler error occurs in this case. The solution //! is to include hw_types.h before including interrupt.h. //! //! \return Returns \b true if interrupts were already disabled when the @@ -172,22 +226,20 @@ IntMasterDisable(void) //! //! This function is used to specify the handler function to be called when the //! given interrupt is asserted to the processor. When the interrupt occurs, -//! if it is enabled (via IntEnable()), the handler function will be called in -//! interrupt context. Since the handler function can preempt other code, care -//! must be taken to protect memory or peripherals that are accessed by the -//! handler and other non-handler code. +//! if it is enabled (via IntEnable()), the handler function is called in +//! interrupt context. Because the handler function can preempt other code, +//! care must be taken to protect memory or peripherals that are accessed by +//! the handler and other non-handler code. //! //! \note The use of this function (directly or indirectly via a peripheral //! driver interrupt register function) moves the interrupt vector table from //! flash to SRAM. Therefore, care must be taken when linking the application //! to ensure that the SRAM vector table is located at the beginning of SRAM; -//! otherwise NVIC will not look in the correct portion of memory for the +//! otherwise the NVIC does not look in the correct portion of memory for the //! vector table (it requires the vector table be on a 1 kB memory alignment). -//! Normally, the SRAM vector table is so placed via the use of linker scripts; -//! some tool chains, such as the evaluation version of RV-MDK, do not support -//! linker scripts and therefore will not produce a valid executable. See the -//! discussion of compile-time versus run-time interrupt handler registration -//! in the introduction to this chapter. +//! Normally, the SRAM vector table is so placed via the use of linker scripts. +//! See the discussion of compile-time versus run-time interrupt handler +//! registration in the introduction to this chapter. //! //! \return None. // @@ -224,7 +276,7 @@ IntRegister(unsigned long ulInterrupt, void (*pfnHandler)(void)) } // - // Point NVIC at the RAM vector table. + // Point the NVIC at the RAM vector table. // HWREG(NVIC_VTABLE) = (unsigned long)g_pfnRAMVectors; } @@ -242,7 +294,7 @@ IntRegister(unsigned long ulInterrupt, void (*pfnHandler)(void)) //! \param ulInterrupt specifies the interrupt in question. //! //! This function is used to indicate that no handler should be called when the -//! given interrupt is asserted to the processor. The interrupt source will be +//! given interrupt is asserted to the processor. The interrupt source is //! automatically disabled (via IntDisable()) if necessary. //! //! \sa IntRegister() for important information about registering interrupt @@ -348,7 +400,7 @@ IntPriorityGroupingGet(void) //! correspond to higher interrupt priorities; priority 0 is the highest //! interrupt priority. //! -//! The hardware priority mechanism will only look at the upper N bits of the +//! The hardware priority mechanism only looks at the upper N bits of the //! priority level (where N is 3 for the Stellaris family), so any //! prioritization must be performed in those bits. The remaining bits can be //! used to sub-prioritize the interrupt sources, and may be used by the @@ -458,19 +510,13 @@ IntEnable(unsigned long ulInterrupt) // HWREG(NVIC_ST_CTRL) |= NVIC_ST_CTRL_INTEN; } - else if((ulInterrupt >= 16) && (ulInterrupt <= 47)) + else if(ulInterrupt >= 16) { // // Enable the general interrupt. // - HWREG(NVIC_EN0) = 1 << (ulInterrupt - 16); - } - else if(ulInterrupt >= 48) - { - // - // Enable the general interrupt. - // - HWREG(NVIC_EN1) = 1 << (ulInterrupt - 48); + HWREG(g_pulEnRegs[(ulInterrupt - 16) / 32]) = + 1 << ((ulInterrupt - 16) & 31); } } @@ -526,19 +572,13 @@ IntDisable(unsigned long ulInterrupt) // HWREG(NVIC_ST_CTRL) &= ~(NVIC_ST_CTRL_INTEN); } - else if((ulInterrupt >= 16) && (ulInterrupt <= 47)) + else if(ulInterrupt >= 16) { // // Disable the general interrupt. // - HWREG(NVIC_DIS0) = 1 << (ulInterrupt - 16); - } - else if(ulInterrupt >= 48) - { - // - // Disable the general interrupt. - // - HWREG(NVIC_DIS1) = 1 << (ulInterrupt - 48); + HWREG(g_pulDisRegs[(ulInterrupt - 16) / 32]) = + 1 << ((ulInterrupt - 16) & 31); } } @@ -548,13 +588,13 @@ IntDisable(unsigned long ulInterrupt) //! //! \param ulInterrupt specifies the interrupt to be pended. //! -//! The specified interrupt is pended in the interrupt controller. This will -//! cause the interrupt controller to execute the corresponding interrupt -//! handler at the next available time, based on the current interrupt state -//! priorities. For example, if called by a higher priority interrupt handler, -//! the specified interrupt handler will not be called until after the current -//! interrupt handler has completed execution. The interrupt must have been -//! enabled for it to be called. +//! The specified interrupt is pended in the interrupt controller. Pending an +//! interrupt causes the interrupt controller to execute the corresponding +//! interrupt handler at the next available time, based on the current +//! interrupt state priorities. For example, if called by a higher priority +//! interrupt handler, the specified interrupt handler is not called until +//! after the current interrupt handler has completed execution. The interrupt +//! must have been enabled for it to be called. //! //! \return None. // @@ -591,19 +631,13 @@ IntPendSet(unsigned long ulInterrupt) // HWREG(NVIC_INT_CTRL) |= NVIC_INT_CTRL_PENDSTSET; } - else if((ulInterrupt >= 16) && (ulInterrupt <= 47)) + else if(ulInterrupt >= 16) { // // Pend the general interrupt. // - HWREG(NVIC_PEND0) = 1 << (ulInterrupt - 16); - } - else if(ulInterrupt >= 48) - { - // - // Pend the general interrupt. - // - HWREG(NVIC_PEND1) = 1 << (ulInterrupt - 48); + HWREG(g_pulPendRegs[(ulInterrupt - 16) / 32]) = + 1 << ((ulInterrupt - 16) & 31); } } @@ -613,10 +647,10 @@ IntPendSet(unsigned long ulInterrupt) //! //! \param ulInterrupt specifies the interrupt to be unpended. //! -//! The specified interrupt is unpended in the interrupt controller. This will -//! cause any previously generated interrupts that have not been handled yet -//! (due to higher priority interrupts or the interrupt no having been enabled -//! yet) to be discarded. +//! The specified interrupt is unpended in the interrupt controller. Unpending +//! an interrupt causes any previously generated interrupts that have not been +//! handled yet (due to higher priority interrupts or the interrupt not having +//! been enabled yet) to be discarded. //! //! \return None. // @@ -646,19 +680,13 @@ IntPendClear(unsigned long ulInterrupt) // HWREG(NVIC_INT_CTRL) |= NVIC_INT_CTRL_PENDSTCLR; } - else if((ulInterrupt >= 16) && (ulInterrupt <= 47)) + else if(ulInterrupt >= 16) { // // Unpend the general interrupt. // - HWREG(NVIC_UNPEND0) = 1 << (ulInterrupt - 16); - } - else if(ulInterrupt >= 48) - { - // - // Unpend the general interrupt. - // - HWREG(NVIC_UNPEND1) = 1 << (ulInterrupt - 48); + HWREG(g_pulUnpendRegs[(ulInterrupt - 16) / 32]) = + 1 << ((ulInterrupt - 16) & 31); } } @@ -666,19 +694,19 @@ IntPendClear(unsigned long ulInterrupt) // //! Sets the priority masking level //! -//! \param ulPriorityMask is the priority level that will be masked. +//! \param ulPriorityMask is the priority level that is masked. //! //! This function sets the interrupt priority masking level so that all -//! interrupts at the specified or lesser priority level is masked. This -//! can be used to globally disable a set of interrupts with priority below -//! a predetermined threshold. A value of 0 disables priority +//! interrupts at the specified or lesser priority level are masked. Masking +//! interrupts can be used to globally disable a set of interrupts with +//! priority below a predetermined threshold. A value of 0 disables priority //! masking. //! //! Smaller numbers correspond to higher interrupt priorities. So for example -//! a priority level mask of 4 will allow interrupts of priority level 0-3, -//! and interrupts with a numerical priority of 4 and greater will be blocked. +//! a priority level mask of 4 allows interrupts of priority level 0-3, +//! and interrupts with a numerical priority of 4 and greater are blocked. //! -//! The hardware priority mechanism will only look at the upper N bits of the +//! The hardware priority mechanism only looks at the upper N bits of the //! priority level (where N is 3 for the Stellaris family), so any //! prioritization must be performed in those bits. //! @@ -701,10 +729,10 @@ IntPriorityMaskSet(unsigned long ulPriorityMask) //! masking is disabled. //! //! Smaller numbers correspond to higher interrupt priorities. So for example -//! a priority level mask of 4 will allow interrupts of priority level 0-3, -//! and interrupts with a numerical priority of 4 and greater will be blocked. +//! a priority level mask of 4 allows interrupts of priority level 0-3, +//! and interrupts with a numerical priority of 4 and greater are blocked. //! -//! The hardware priority mechanism will only look at the upper N bits of the +//! The hardware priority mechanism only looks at the upper N bits of the //! priority level (where N is 3 for the Stellaris family), so any //! prioritization must be performed in those bits. //! diff --git a/bsp/lm3s8962/Libraries/driverlib/interrupt.h b/bsp/lm3s8962/Libraries/driverlib/interrupt.h index c13f09b30a..5ab98d6431 100644 --- a/bsp/lm3s8962/Libraries/driverlib/interrupt.h +++ b/bsp/lm3s8962/Libraries/driverlib/interrupt.h @@ -2,7 +2,7 @@ // // interrupt.h - Prototypes for the NVIC Interrupt Controller Driver. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm3s8962/Libraries/driverlib/lpc.c b/bsp/lm3s8962/Libraries/driverlib/lpc.c new file mode 100644 index 0000000000..0e8cab7821 --- /dev/null +++ b/bsp/lm3s8962/Libraries/driverlib/lpc.c @@ -0,0 +1,1533 @@ +//***************************************************************************** +// +// lpc.c - Driver for the Low Pin Count (LPC) module. +// +// Copyright (c) 2010-2011 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 8264 of the Stellaris Peripheral Driver Library. +// +//***************************************************************************** + +//***************************************************************************** +// +//! \addtogroup lpc_api +//! @{ +// +//***************************************************************************** + +#include "inc/hw_ints.h" +#include "inc/hw_memmap.h" +#include "inc/hw_lpc.h" +#include "inc/hw_sysctl.h" +#include "inc/hw_types.h" +#include "driverlib/debug.h" +#include "driverlib/interrupt.h" +#include "driverlib/lpc.h" + +//***************************************************************************** +// +//! \internal +//! Checks an LPC Channel. +//! +//! \param ulChannel is the LPC channel identifier. +//! +//! This function determines if a channel identifier is valid. This function +//! does not check for Channel 7 (COMx). +//! +//! \return Returns \b true if the channel identifier is valid and \b false +//! otherwise. +// +//***************************************************************************** +#ifdef DEBUG +static tBoolean +LPCChannelValid(unsigned long ulChannel) +{ + return((ulChannel == LPC_CHAN_CH0) || + (ulChannel == LPC_CHAN_CH1) || + (ulChannel == LPC_CHAN_CH2) || + (ulChannel == LPC_CHAN_CH3) || + (ulChannel == LPC_CHAN_CH4) || + (ulChannel == LPC_CHAN_CH5) || + (ulChannel == LPC_CHAN_CH6) || + (ulChannel == LPC_CHAN_CH7)); +} +#endif // #ifdef DEBUG + +//***************************************************************************** +// +//! Sets the configuration of the LPC module. +//! +//! \param ulBase is the base address of the LPC module. +//! \param ulConfig specifies the configuration of the LPC module. +//! +//! This function configures the LPC module for basic operation. The +//! configuration of individual channels is handled in a separate function. +//! +//! The \e ulConfig parameter is the logical OR of the following values: +//! - \b LPC_CFG_WAKE - Force assertion of the LPC0CLKRUN signal when the +//! LPC bus is powered down (LPC0PD is asserted). +//! +//! \return None. +// +//***************************************************************************** +void +LPCConfigSet(unsigned long ulBase, unsigned long ulConfig) +{ + unsigned long ulTemp; + + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + ASSERT((ulConfig & ~(LPC_CFG_WAKE)) == 0); + + // + // Configure the appropriate LPC Control Register fields. + // + ulTemp = HWREG(ulBase + LPC_O_CTL); + ulTemp &= ~LPC_CTL_WAKE; + ulTemp |= (ulConfig & LPC_CTL_WAKE); + HWREG(ulBase + LPC_O_CTL) = ulTemp; +} + +//***************************************************************************** +// +//! Gets the current configuration of the LPC module. +//! +//! \param ulBase is the base address of the LPC module. +//! +//! This function queries the control register of the LPC module and returns +//! a bit-mapped value. +//! +//! \sa The description of the LPCConfigSet() function provides detailed +//! information for the bit-mapped configuration values that are returned. +//! +//! \return Returns the bit-mapped LPC module configration value. +// +//***************************************************************************** +unsigned long +LPCConfigGet(unsigned long ulBase) +{ + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + + // + // Return the configuration value + // + return((HWREG(ulBase + LPC_O_CTL) & LPC_CTL_WAKE)); +} + +//***************************************************************************** +// +//! Sets the Status Block Address for the LPC peripheral. +//! +//! \param ulBase is the base address of the LPC module. +//! \param ulAddress is the host address to use for the block status. +//! \param bEnabled indicates whether the block address feature should +//! be enabled. +//! +//! This function sets the LPC block address register and optionally enables +//! it. +//! +//! \return None. +// +//***************************************************************************** +void +LPCStatusBlockAddressSet(unsigned long ulBase, unsigned long ulAddress, + tBoolean bEnabled) +{ + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + ASSERT((ulAddress & ~0xFFFFFFFE) == 0); + + // + // Set (and optionally enable) the Status Block Address + // + HWREG(ulBase + LPC_O_STSADDR) = (ulAddress | (bEnabled ? 1 : 0)); +} + +//***************************************************************************** +// +//! Gets the Status Block Address for the LPC peripheral. +//! +//! \param ulBase is the base address of the LPC module. +//! +//! This function returns the LPC block address register. The LSB is used +//! to indicate whether this feature has been enabled or not. +//! +//! \return None. +// +//***************************************************************************** +unsigned +LPCStatusBlockAddressGet(unsigned long ulBase) +{ + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + + // + // Return the Status Block Address, including the enable bit. + // + return(HWREG(ulBase + LPC_O_STSADDR)); +} + +//***************************************************************************** +// +//! Returns the status of the LPC module. +//! +//! \param ulBase is the base address of the LPC module. +//! \param pulCount is a pointer to storage for the channel count. +//! \param pulPoolSize is a pointer to storage for the register pool size. +//! +//! This function reads the value of the LPC Status register, calculates the +//! number of channels and buffer pool size, and then returns the raw status +//! value. +//! +//! \return Returns the contents of the LPC Status register. +// +//***************************************************************************** +unsigned long +LPCStatusGet(unsigned long ulBase, unsigned long *pulCount, + unsigned long *pulPoolSize) +{ + unsigned long ulStatus; + + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + + // + // Get a snapshot of the status register. + // + ulStatus = HWREG(ulBase + LPC_O_STS); + + // + // Extract the channel count from the status, including COMx channel. + // + if(pulCount) + { + *pulCount = (((ulStatus & LPC_STS_CHCNT_M) >> LPC_STS_CHCNT_S) + 1); + } + + // + // Extract/Calculate the register pool size. + // + if(pulPoolSize) + { + *pulPoolSize = (((ulStatus & LPC_STS_POOLSZ_M) >> 16) * 256); + } + + // + // Return the raw status. + // + return(ulStatus); +} + +//***************************************************************************** +// +//! Generates a pulse on the SCIn signal. +//! +//! \param ulBase is the base address of the LPC module. +//! \param ulCount is the number used to generate the pulse width value. +//! +//! This function generates a pulse on the SCIn interrupt pin. The width of +//! the pulse is (2 << \e ulCount) LPC Clock Periods, where \e ulCount can take +//! on the value of 0, 1, 2, or 3. So, the pulse width is 2, 4, 8, or 16 clock +//! periods. +//! +//! \return None. +// +//***************************************************************************** +void +LPCSCIAssert(unsigned long ulBase, unsigned long ulCount) +{ + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + ASSERT(ulCount <= 3); + + // + // Wait for any previous pulse to be completed, by checking the SCI bit + // (which is a self-clearing bit that is used to generate the pulse). + // + while(HWREG(ulBase + LPC_O_CTL) & LPC_CTL_SCI) + { + } + + // + // Set the count value first, prior to enabling the pulse. + // + HWREG(ulBase + LPC_O_CTL) &= ~LPC_CTL_SCICNT_M; + HWREG(ulBase + LPC_O_CTL) |= (ulCount << 10); + + // + // Now, generate the pulse by setting the SCI bit. + // + HWREG(ulBase + LPC_O_CTL) |= LPC_CTL_SCI; +} + +//***************************************************************************** +// +//! Configure the LPC IRQ operation. +//! +//! \param ulBase is the base address of the LPC module. +//! \param bIRQPulse is a flag to indicate the manual IRQ bits should be +//! cleared after they have been sent (in an SIRQ frame). +//! \param bIRQOnChange is a flag to indicate that an SIRQ frame should be +//! sent whenever any IRQ bits (manual/auto) change status. +//! +//! This function configures the LPC IRQs. If the \e bIRQPulse parameter is +//! \b true, then manual IRQ values are cleared after they are sent. If the +//! \e bIRQOnChange parameter is true, then IRQ values (manual and/or +//! automatic) are sent when a change is detected. +//! +//! \return None. +// +//***************************************************************************** +void +LPCIRQConfig(unsigned long ulBase, tBoolean bIRQPulse, tBoolean bIRQOnChange) +{ + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + + // + // Setup IRQ pulse configuration. + // + if(bIRQPulse) + { + HWREG(ulBase + LPC_O_IRQCTL) |= LPC_IRQCTL_PULSE; + } + else + { + HWREG(ulBase + LPC_O_IRQCTL) &= ~LPC_IRQCTL_PULSE; + } + + // + // Setup IRQ on-change configuration. + // + if(bIRQOnChange) + { + HWREG(ulBase + LPC_O_IRQCTL) |= LPC_IRQCTL_ONCHG; + } + else + { + HWREG(ulBase + LPC_O_IRQCTL) &= ~LPC_IRQCTL_ONCHG; + } +} + +//***************************************************************************** +// +//! Set the manual LPC IRQ bits. +//! +//! \param ulBase specifies the LPC module base address. +//! \param ulIRQ specifies the IRQ bits that should be set. +//! +//! This function sets the IRQ bits that are sent in the SERIRQ frame. The +//! value in the \e ulIRQ register is OR-ed into the existing manual IRQ +//! setting. The value for the \e ulIRQ parameter can be any combination of +//! the following values: \b LPC_IRQ15, \b LPC_IRQ14, \b LPC_IRQ13, +//! \b LPC_IRQ12, \b LPC_IRQ11, \b LPC_IRQ10, \b LPC_IRQ9, \b LPC_IRQ8, +//! \b LPC_IRQ7, \b LPC_IRQ6, \b LPC_IRQ5, \b LPC_IRQ4, \b LPC_IRQ3, +//! \b LPC_IRQ2, \b LPC_IRQ1, or \b LPC_IRQ0. +//! +//! \return None. +// +//***************************************************************************** +void +LPCIRQSet(unsigned long ulBase, unsigned long ulIRQ) +{ + unsigned long ulTemp; + + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + + // + // Get the current IRQ configuration, mask off the bits that we are to + // be operating on, set/clear them as appropriate, then rewrite the + // register. + // + ulTemp = HWREG(ulBase + LPC_O_IRQCTL); + ulTemp |= (ulIRQ & 0xFFFF0000); + HWREG(ulBase + LPC_O_IRQCTL) = ulTemp; +} + +//***************************************************************************** +// +//! Clear the manual LPC IRQ bits. +//! +//! \param ulBase specifies the LPC module base address. +//! \param ulIRQ specifies the IRQ bits that should be cleared. +//! +//! This function clears the IRQ bits that are sent in the SERIRQ frame. The +//! value in the \e ulIRQ register is OR-ed into the existing manual IRQ +//! setting. The value for the \e ulIRQ parameter can be any combination of +//! the following values: \b LPC_IRQ15, \b LPC_IRQ14, \b LPC_IRQ13, +//! \b LPC_IRQ12, \b LPC_IRQ11, \b LPC_IRQ10, \b LPC_IRQ9, \b LPC_IRQ8, +//! \b LPC_IRQ7, \b LPC_IRQ6, \b LPC_IRQ5, \b LPC_IRQ4, \b LPC_IRQ3, +//! \b LPC_IRQ2, \b LPC_IRQ1, or \b LPC_IRQ0. +//! +//! \return None. +// +//***************************************************************************** +void +LPCIRQClear(unsigned long ulBase, unsigned long ulIRQ) +{ + unsigned long ulTemp; + + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + + // + // Get the current IRQ configuration, mask off the bits that we are to + // be operating on, set/clear them as appropriate, then rewrite the + // register. + // + ulTemp = HWREG(ulBase + LPC_O_IRQCTL); + ulTemp &= ~(ulIRQ & 0xFFFF0000); + HWREG(ulBase + LPC_O_IRQCTL) = ulTemp; +} + +//***************************************************************************** +// +//! Get the configuration and status of the IRQ signals +//! +//! \param ulBase specifies the LPC module base address. +//! +//! This function returns the LPC module's SERIRQ status. The value returned +//! is a combination of the following values: \b LPC_IRQ15, \b LPC_IRQ14, +//! \b LPC_IRQ13, \b LPC_IRQ12, \b LPC_IRQ11, \b LPC_IRQ10, \b LPC_IRQ9, +//! \b LPC_IRQ8, \b LPC_IRQ7, \b LPC_IRQ6, \b LPC_IRQ5, \b LPC_IRQ4, +//! \b LPC_IRQ3, \b LPC_IRQ2, \b LPC_IRQ1, \b LPC_IRQ0, \b LPC_IRQ_BUSY, or +//! \b LPC_IRQ_CONT. +//! +//! \return None. +// +//***************************************************************************** +unsigned long +LPCIRQGet(unsigned long ulBase) +{ + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + + // + // Simply read the registers and return the values. + // + return(HWREG(ulBase + LPC_O_IRQST)); +} + +//***************************************************************************** +// +//! Trigger a manual SIRQ frame. +//! +//! \param ulBase specifies the LPC module base address. +//! +//! This function forces the sending of an SIRQ frame using whatever values are +//! currently set (auto and/or manual). +//! +//! \return None. +// +//***************************************************************************** +void +LPCIRQSend(unsigned long ulBase) +{ + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + + // + // Set the bit to force the sending of an SIRQ frame. + // + HWREG(ulBase + LPC_O_IRQCTL) |= LPC_IRQCTL_SND; +} + +//***************************************************************************** +// +//! Registers an interrupt handler for the LPC module. +//! +//! \param ulBase specifies the LPC module base address. +//! \param pfnHandler is a pointer to the function to be called when the +//! LPC interrupt occurs. +//! +//! This function registers the handler to be called when an LPC interrupt +//! occurs. This function enables the global interrupt in the interrupt +//! controller; specific LPC interrupts must be enabled via LPCIntEnable(). If +//! necessary, it is the interrupt handler's responsibility to clear the +//! interrupt source via LPCIntClear(). +//! +//! \sa IntRegister() for important information about registering interrupt +//! handlers. +//! +//! \return None. +// +//***************************************************************************** +void +LPCIntRegister(unsigned long ulBase, void (*pfnHandler)(void)) +{ + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + ASSERT(pfnHandler != 0); + + // + // Register the interrupt handler. + // + IntRegister(INT_LPC0, pfnHandler); + + // + // Enable the LPC interrupt. + // + IntEnable(INT_LPC0); +} + +//***************************************************************************** +// +//! Unregisters an interrupt handler for the LPC module. +//! +//! \param ulBase specifies the LPC module base address. +//! +//! This function unregisters the handler to be called when an LPC interrupt +//! occurs. This fucntion also masks off the interrupt in the interrupt +//! controller so that the interrupt handler is no longer called. +//! +//! \sa IntRegister() for important information about registering interrupt +//! handlers. +//! +//! \return None. +// +//***************************************************************************** +void +LPCIntUnregister(unsigned long ulBase) +{ + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + + // + // Disable the LPC interrupt. + // + IntDisable(INT_LPC0); + + // + // Unregister the interrupt handler. + // + IntUnregister(INT_LPC0); +} + +//***************************************************************************** +// +//! Enables individual LPC interrupt sources. +//! +//! \param ulBase specifies the LPC module base address. +//! \param ulIntFlags is a bit mask of the interrupt sources to be enabled. +//! +//! This function enables the indicated LPC interrupt sources. Only the +//! sources that are enabled can be reflected to the processor interrupt; +//! disabled sources have no effect on the processor. +//! +//! The \e ulIntFlags parameter can be any of the following values: +//! \b LPC_INT_RST, \b LPC_INT_SLEEP, \b LPC_INT_COMx, \b LPC_INT_SIRQ, +//! \b LPC_INT_CHx_EP_TO_HOST, \b LPC_INT_CHx_EP_FROM_DATA, +//! \b LPC_INT_CHx_EP_FROM_CMD, \b LPC_INT_CHx_MB_HOST_WON, +//! \b LPC_INT_CHx_MB_HOST_WRITE, \b LPC_INT_CHx_MB_HOST_READ, or +//! \b LPC_INT_CHx_MB_MCU_LOST, where \b CHx can be \b CH6, \b CH5, \b CH4, +//! \b CH3, \b CH2, \b CH1, or \b CH0. +//! +//! \return None. +// +//***************************************************************************** +void +LPCIntEnable(unsigned long ulBase, unsigned long ulIntFlags) +{ + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + + // + // Get the current mask value. + // + HWREG(ulBase + LPC_O_IM) |= ulIntFlags; +} + +//***************************************************************************** +// +//! Disables individual LPC interrupt sources. +//! +//! \param ulBase specifies the LPC module base address. +//! \param ulIntFlags is a bit mask of the interrupt sources to be disabled. +//! +//! This funciton disables the indicated LPC interrupt sources. Only the +//! sources that are enabled can be reflected to the processor interrupt; +//! disabled sources have no effect on the processor. +//! +//! \sa The description of the LPCIntEnable() function provides detailed +//! information for the bit-mapped values in \e ulIntFlags. +//! +//! \return None. +// +//***************************************************************************** +void +LPCIntDisable(unsigned long ulBase, unsigned long ulIntFlags) +{ + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + + // + // Disable the specified interrupts. + // + HWREG(ulBase + LPC_O_IM) &= ~ulIntFlags; +} + +//***************************************************************************** +// +//! Gets the current interrupt status. +//! +//! \param ulBase specifies the LPC module base address. +//! \param bMasked is \b false if the raw interrupt status is required or +//! \b true if the masked interrupt status is required. +//! +//! This function returns the interrupt status for the LPC module. Either the +//! raw interrupt status or the status of interrupts that are allowed to +//! reflect to the processor can be returned. +//! +//! The interpretation of the LPC_INT_CHx fields varies based on the type +//! value programed for the specific Channel. +//! +//! \sa The description of the LPCIntEnable() function provides detailed +//! information for the bit-mapped values returned by this function. +//! +//! \return The current interrupt status. +// +//***************************************************************************** +unsigned long +LPCIntStatus(unsigned long ulBase, tBoolean bMasked) +{ + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + + // + // Return either the interrupt status or the raw interrupt status as + // requested. + // + if(bMasked) + { + return(HWREG(ulBase + LPC_O_MIS)); + } + else + { + return(HWREG(ulBase + LPC_O_RIS)); + } +} + +//***************************************************************************** +// +//! Clears LPC interrupt sources. +//! +//! \param ulBase specifies the LPC module base address. +//! \param ulIntFlags is a bit mask of the interrupt sources to be cleared. +//! +//! The specified LPC interrupt sources are cleared so that they no longer +//! assert. This function must be called in the interrupt handler to keep the +//! interrupts from being recognized again immediately upon exit. +//! +//! \sa The description of the LPCIntEnable() function provides detailed +//! information for the bit-mapped values in \e ulIntFlags. +//! +//! \note Because there is a write buffer in the Cortex-M processor, it may +//! take several clock cycles before the interrupt source is actually cleared. +//! Therefore, it is recommended that the interrupt source be cleared early in +//! the interrupt handler (as opposed to the very last action) to avoid +//! returning from the interrupt handler before the interrupt source is +//! actually cleared. Failure to do so may result in the interrupt handler +//! being immediately reentered (because the interrupt controller still sees +//! the interrupt source asserted). +//! +//! \return None. +// +//***************************************************************************** +void +LPCIntClear(unsigned long ulBase, unsigned long ulIntFlags) +{ + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + + // + // Clear the requested interrupt sources. + // + HWREG(ulBase + LPC_O_IC) = ulIntFlags; +} + +//***************************************************************************** +// +//! Enables an LPC Channel. +//! +//! \param ulBase specifies the LPC module base address. +//! \param ulChannel specifies the LPC channel to enable. +//! +//! The specified LPC Channel is enabled. +//! +//! The value for the \e ulChannel parameter can be any one of the following +//! values: \b LPC_CHAN_CH0, \b LPC_CHAN_CH1, \b LPC_CHAN_CH2, +//! \b LPC_CHAN_CH3, \b LPC_CHAN_CH4, \b LPC_CHAN_CH5, \b LPC_CHAN_CH6 or +//! \b LPC_CHAN_CH7. +//! +//! \return None. +// +//***************************************************************************** +void +LPCChannelEnable(unsigned long ulBase, unsigned long ulChannel) +{ + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + ASSERT(LPCChannelValid(ulChannel)); + + // + // Enable the specified channel. + // + HWREG(ulBase + LPC_O_CTL) |= (1 << ulChannel); +} + +//***************************************************************************** +// +//! Disables an LPC Channel. +//! +//! \param ulBase specifies the LPC module base address. +//! \param ulChannel specifies the LPC channel to disable. +//! +//! This function disables the specified LPC Channel. +//! +//! \sa The description of the LPCChannelEnable() function provides detailed +//! information for the values that can be usd for the \e ulChannel parameter. +//! +//! \return None. +// +//***************************************************************************** +void +LPCChannelDisable(unsigned long ulBase, unsigned long ulChannel) +{ + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + ASSERT(LPCChannelValid(ulChannel)); + + // + // Disable the specified channel. + // + HWREG(ulBase + LPC_O_CTL) &= ~(1 << ulChannel); +} + +//***************************************************************************** +// +//! Sets the configuration of an LPC Channel as an endpoint. +//! +//! \param ulBase specifies the LPC module base address. +//! \param ulChannel specifies the LPC channel to configure. +//! \param ulConfig specifies configuration options required for the endpoint. +//! \param ulOffset specifies the offset from the beginning of the buffer pool +//! for this endpoint's data. +//! \param ulAddress specifies the LPC bus address (IO and/or MEM) for this +//! channel. +//! +//! This function enables the specified LPC Channel as an endpoint. +//! +//! \return None. +// +//***************************************************************************** +void +LPCChannelConfigEPSet(unsigned long ulBase, unsigned long ulChannel, + unsigned long ulConfig, unsigned long ulAddress, + unsigned long ulOffset) +{ + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + ASSERT(LPCChannelValid(ulChannel)); + ASSERT((ulConfig & ~(LPC_CH0CTL_IRQSEL1_M | LPC_CH0CTL_IRQSEL0_M | + LPC_CH0CTL_IRQEN1 | LPC_CH0CTL_IRQEN0_M)) == 0); + ASSERT((ulOffset & 3) == 0); + ASSERT(ulOffset < ((((HWREG(ulBase + LPC_O_STS) & LPC_STS_POOLSZ_M) >> + 16) * 256) - 4)); + + // + // Convert the byte offset address into a half-word + // offset address and add into the control word. + // + ulConfig |= (((ulOffset >> 1) << LPC_CH0CTL_OFFSET_S) & + LPC_CH0CTL_OFFSET_M); + + // + // Write the final control value into the control word for + // the channel. + // + HWREG(ulBase + LPC_O_CH0CTL + (ulChannel * 0x10)) = ulConfig; + + // + // Setup the IO and/or MEM address to match for this channel. + // + HWREG(ulBase + LPC_O_CH0ADR + (ulChannel * 0x10)) = ulAddress; +} + +//***************************************************************************** +// +//! Sets the configuration of an LPC Channel as a mailbox. +//! +//! \param ulBase specifies the LPC module base address. +//! \param ulChannel specifies the LPC channel to configure. +//! \param ulConfig specifies configuration options required for the endpoint. +//! \param ulOffset specifies the offset from the beginning of the buffer pool +//! for this endpoint's data. +//! \param ulAddress specifies the LPC bus address (IO and/or MEM) for this +//! channel. +//! +//! This function enables the specified LPC Channel as a mailbox. +//! +//! \return None. +// +//***************************************************************************** +void +LPCChannelConfigMBSet(unsigned long ulBase, unsigned long ulChannel, + unsigned long ulConfig, unsigned long ulAddress, + unsigned long ulOffset) +{ + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + ASSERT(LPCChannelValid(ulChannel)); + ASSERT((ulConfig & ~(LPC_CH0CTL_IRQSEL1_M | LPC_CH0CTL_IRQSEL1_M | + LPC_CH0CTL_IRQSEL0_M | + LPC_CH0CTL_IRQEN2 | LPC_CH0CTL_IRQEN1 | + LPC_CH0CTL_IRQEN0_M | + LPC_CH0CTL_ARBDIS | LPC_CH0CTL_AMASK_M)) == 0); + ASSERT((ulOffset & 3) == 0); + ASSERT(ulOffset < ((((HWREG(ulBase + LPC_O_STS) & LPC_STS_POOLSZ_M) >> + 16) * 256) - 4)); + + // + // Convert the byte offset address into a half-word + // offset address and add into the control word. + // + ulConfig |= (((ulOffset >> 1) << LPC_CH0CTL_OFFSET_S) & + LPC_CH0CTL_OFFSET_M); + + // + // Set the configuration bit that enables Mailbox mode. + // + ulConfig |= LPC_CH0CTL_TYPE; + + // + // Write the final control value into the control word for + // the channel. + // + HWREG(ulBase + LPC_O_CH0CTL + (ulChannel * 0x10)) = ulConfig; + + // + // Setup the IO and/or MEM address to match for this channel. + // + HWREG(ulBase + LPC_O_CH0ADR + (ulChannel * 0x10)) = ulAddress; +} + +//***************************************************************************** +// +//! Sets the configuration of an LPC Channel as a COMx. +//! +//! \param ulBase specifies the LPC module base address. +//! \param ulChannel specifies the LPC channel to configure. +//! \param ulConfig specifies configuration options required for the endpoint. +//! \param ulOffset specifies the offset from the beginning of the buffer pool +//! for this endpoint's data. +//! \param ulAddress specifies the LPC bus address (IO and/or MEM) for this +//! channel. +//! \param ulCOMxMode specifies the COMx mode to be used. +//! +//! The specified LPC Channel is enabled as a COMx. +//! +//! \return None. +// +//***************************************************************************** +void +LPCChannelConfigCOMxSet(unsigned long ulBase, unsigned long ulChannel, + unsigned long ulConfig, unsigned long ulAddress, + unsigned long ulOffset, unsigned long ulCOMxMode) +{ + unsigned long ulTemp; + + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + ASSERT(LPCChannelValid(ulChannel)); + ASSERT(ulChannel == LPC_CHAN_COMx); + ASSERT((ulConfig & ~(LPC_CH7CTL_IRQSEL1_M | LPC_CH7CTL_IRQSEL0_M | + LPC_CH7CTL_CX | LPC_CH7CTL_IRQEN1 | + LPC_CH7CTL_IRQEN0_M)) == 0); + ASSERT((ulOffset & 3) == 0); + ASSERT(ulOffset < ((((HWREG(ulBase + LPC_O_STS) & LPC_STS_POOLSZ_M) >> + 16) * 256) - 4)); + ASSERT((ulCOMxMode & ~LPC_DMACX_CXACT_M) == 0); + + // + // Convert the byte offset address into a half-word + // offset address and add into the control word. + // + ulConfig |= (((ulOffset >> 1) << LPC_CH0CTL_OFFSET_S) & + LPC_CH0CTL_OFFSET_M); + + // + // Write the final control value into the control word for + // the channel. + // + HWREG(ulBase + LPC_O_CH0CTL + (ulChannel * 0x10)) = ulConfig; + + // + // Setup the IO and/or MEM address to match for this channel. + // + HWREG(ulBase + LPC_O_CH0ADR + (ulChannel * 0x10)) = ulAddress; + + // + // Configure the COMx Mode for this channel. + // + ulTemp = HWREG(ulBase + LPC_O_DMACX); + ulTemp &= ~LPC_DMACX_CXACT_M; + ulTemp |= ulCOMxMode; + ulTemp |= LPC_DMACX_COMX; + HWREG(ulBase + LPC_O_DMACX) = ulTemp; +} + +//***************************************************************************** +// +//! Gets the configuration of an LPC Channel. +//! +//! \param ulBase specifies the LPC module base address. +//! \param ulChannel specifies the LPC channel to configure. +//! \param pulOffset is a pointer to storage for the channel pool offset. +//! \param pulAddress is a pointer to storage for the channel bus address. +//! \param pulCOMxMode is a pointer to storage for the channel COMx mode. +//! +//! This function determines and returns the configuration for the specified +//! channel. +//! +//! \return Returns the bit-mapped channel control register value. +// +//***************************************************************************** +unsigned long +LPCChannelConfigGet(unsigned long ulBase, unsigned long ulChannel, + unsigned long *pulAddress, unsigned long *pulOffset, + unsigned long *pulCOMxMode) +{ + unsigned long ulConfig; + + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + ASSERT(LPCChannelValid(ulChannel)); + + // + // Read the channel control register. + // + ulConfig = HWREG(ulBase + LPC_O_CH0CTL + (ulChannel * 0x10)); + + // + // Get the buffer pool offset value. + // + if(pulOffset) + { + *pulOffset = ((ulConfig & LPC_CH0CTL_OFFSET_M) >> + (LPC_CH0CTL_OFFSET_S - 1)); + } + + // + // Get the IO/Memory address that this endpoint responds to. + // + if(pulAddress) + { + *pulAddress = HWREG(ulBase + LPC_O_CH0ADR + (ulChannel * 0x10)); + } + + // + // Configure the COMx Mode for this channel. + // + if(pulCOMxMode && (ulChannel == LPC_CHAN_COMx)) + { + *pulCOMxMode = (HWREG(ulBase + LPC_O_DMACX) & 0x00070000); + } + + // + // Return the raw config value. + // + return(ulConfig); +} + +//***************************************************************************** +// +//! Gets the absolute base address of the channel pool. +//! +//! \param ulBase specifies the LPC module base address. +//! \param ulChannel specifies the LPC channel to configure. +//! +//! Thos function calculates the absolute address of the channel pool from the +//! channel configuration setting and returns it. +//! +//! \return Returns the absolute base address of the channel pool. +// +//***************************************************************************** +unsigned long +LPCChannelPoolAddressGet(unsigned long ulBase, unsigned long ulChannel) +{ + unsigned long ulAddress; + + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + ASSERT(LPCChannelValid(ulChannel)); + + // + // Read the channel control register. + // + ulAddress = HWREG(ulBase + LPC_O_CH0CTL + (ulChannel * 0x10)); + + // + // Mask off the channel offset portion and shift it into a byte + // offset (stored as half-word offset). + // + ulAddress = ((ulAddress & LPC_CH0CTL_OFFSET_M) >> + (LPC_CH0CTL_OFFSET_S - 1)); + + // + // Add the LPC and Buffer Pool base address to get the final + // address to return. + // + ulAddress += (ulBase + LPC_O_POOL); + + // + // Return the address to the calling routine. + // + return(ulAddress); +} + +//***************************************************************************** +// +//! Reads the status word from an LPC Channel. +//! +//! \param ulBase specifies the LPC module base address. +//! \param ulChannel specifies the LPC Channel. +//! +//! This function reads the status word from an LPC channel and returns it to +//! the caller. +//! +//! \return content of the channel status register. +// +//***************************************************************************** +unsigned long +LPCChannelStatusGet(unsigned long ulBase, unsigned long ulChannel) +{ + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + ASSERT(LPCChannelValid(ulChannel)); + + // + // Read the half-word status from the LPC Channel + // + return (HWREG(ulBase + LPC_O_CH0ST + (ulChannel * 0x10))); +} + +//***************************************************************************** +// +//! Sets the user bits in the status word (16-bits) of an LPC Channel. +//! +//! \param ulBase specifies the LPC module base address. +//! \param ulChannel specifies the LPC Channel. +//! \param ulStatus is the user bit values to set. +//! +//! This function sets the selected user bits of the status word for an LPC +//! channel. +//! +//! \return None +// +//***************************************************************************** +void +LPCChannelStatusSet(unsigned long ulBase, unsigned long ulChannel, + unsigned long ulStatus) +{ + unsigned long ulTemp; + + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + ASSERT(LPCChannelValid(ulChannel)); + ASSERT((ulStatus & (~LPC_CH0ST_USER_M)) == 0); + + // + // Read the status from the LPC Channel, and set new values for + // the user bits. + // + ulTemp = HWREG(ulBase + LPC_O_CH0ST + (ulChannel * 0x10)); + ulTemp |= ulStatus; + HWREG(ulBase + LPC_O_CH0ST + (ulChannel * 0x10)) = ulTemp; +} + +//***************************************************************************** +// +//! Clears the user bits in the status word (16-bits) of an LPC Channel. +//! +//! \param ulBase specifies the LPC module base address. +//! \param ulChannel specifies the LPC Channel. +//! \param ulStatus is the user bit values to clear. +//! +//! This function sets the selected user bits of the status word for an LPC +//! channel. +//! +//! \return None +// +//***************************************************************************** +void +LPCChannelStatusClear(unsigned long ulBase, unsigned long ulChannel, + unsigned long ulStatus) +{ + unsigned long ulTemp; + + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + ASSERT(LPCChannelValid(ulChannel)); + ASSERT((ulStatus & (~LPC_CH0ST_USER_M)) == 0); + + // + // Read the status from the LPC Channel, and set new values for + // the user bits. + // + ulTemp = HWREG(ulBase + LPC_O_CH0ST + (ulChannel * 0x10)); + ulTemp &= ~ulStatus; + HWREG(ulBase + LPC_O_CH0ST + (ulChannel * 0x10)) = ulTemp; +} + +//***************************************************************************** +// +//! Sets the configuration of DMA for LPC channels. +//! +//! \param ulBase specifies the LPC module base address. +//! \param ulConfig specifies the DMA channel configuration. +//! \param ulMask specifies the configuration mask to be used. +//! +//! This function sets the specified DMA channel operation based on the +//! \e ulConfig parameter. +//! +//! \return None. +// +//***************************************************************************** +void +LPCChannelDMAConfigSet(unsigned long ulBase, unsigned long ulConfig, + unsigned long ulMask) +{ + unsigned long ulTemp; + + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + ASSERT((ulConfig & ~0x000000FF) == 0); + ASSERT((ulConfig & 0x00000003) != 0x00000003); + ASSERT((ulConfig & 0x0000000C) != 0x0000000C); + ASSERT((ulConfig & 0x00000030) != 0x00000030); + ASSERT((ulConfig & 0x000000C0) != 0x000000C0); + ASSERT((ulMask & ~0x000000FF) == 0); + + // + // Get the current mask value. + // + ulTemp = HWREG(ulBase + LPC_O_DMACX); + ulTemp &= ~ulMask; + ulTemp |= (ulConfig & ulMask); + HWREG(ulBase + LPC_O_DMACX) = ulTemp; +} + +//***************************************************************************** +// +//! Gets the configuration of DMA for LPC channels. +//! +//! \param ulBase specifies the LPC module base address. +//! +//! This function returns the configuration of the LPC DMA channels. +//! +//! \return Returns the bit-mapped DMA channel configuration. +// +//***************************************************************************** +unsigned long +LPCChannelDMAConfigGet(unsigned long ulBase) +{ + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + + // + // Get the current mask value. + // + return(HWREG(ulBase + LPC_O_DMACX) & 0x000000FF); +} + +//***************************************************************************** +// +//! Reads a byte from the LPC channel pool. +//! +//! \param ulBase specifies the LPC module base address. +//! \param ulOffset specifies the offset from the beginning of the LPC channel +//! pool. +//! +//! This function reads a byte from the channel pool. +//! +//! \return Returns the byte read from the pool memory. +// +//***************************************************************************** +unsigned char +LPCByteRead(unsigned long ulBase, unsigned long ulOffset) +{ + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + ASSERT(ulOffset < (((HWREG(ulBase + LPC_O_STS) & LPC_STS_POOLSZ_M) >> + 16) * 256)); + + // + // Return the byte from the LPC Buffer Pool. + // + return(HWREGB(ulBase + LPC_O_POOL + ulOffset)); +} + +//***************************************************************************** +// +//! Writes a byte to the LPC channel pool. +//! +//! \param ulBase specifies the LPC module base address. +//! \param ulOffset specifies the offset from the beginning of the LPC channel +//! pool. +//! \param ucData specifies the byte to write. +//! +//! This function writes a byte to the channel pool. +//! +//! \return None +// +//***************************************************************************** +void +LPCByteWrite(unsigned long ulBase, unsigned long ulOffset, + unsigned char ucData) +{ + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + ASSERT(ulOffset < (((HWREG(ulBase + LPC_O_STS) & LPC_STS_POOLSZ_M) >> + 16) * 256)); + + // + // Write the byte to the LPC Buffer Pool. + // + HWREGB(ulBase + LPC_O_POOL + ulOffset) = ucData; +} + +//***************************************************************************** +// +//! Reads a half-word from the LPC channel pool. +//! +//! \param ulBase specifies the LPC module base address. +//! \param ulOffset specifies the offset from the beginning of the LPC channel +//! pool. +//! +//! This function reads a half-word from the channel pool. The \e ulOffset +//! specified must be half-word aligned. +//! +//! \return Returns the half-word read from the pool memory. +// +//***************************************************************************** +unsigned short +LPCHalfWordRead(unsigned long ulBase, unsigned long ulOffset) +{ + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + ASSERT((ulOffset & 1) == 0); + ASSERT(ulOffset < (((HWREG(ulBase + LPC_O_STS) & LPC_STS_POOLSZ_M) >> + 16) * 256)); + + // + // Return the half-word from the LPC Buffer Pool. + // + return(HWREGH(ulBase + LPC_O_POOL + ulOffset)); +} + +//***************************************************************************** +// +//! Writes a half-word to the LPC channel pool. +//! +//! \param ulBase specifies the LPC module base address. +//! \param ulOffset specifies the offset from the beginning of the LPC channel +//! pool. +//! \param usData specifies the byte to write. +//! +//! This function writes a half-word to the channel pool. The \e ulOffset +//! specified must be half-word aligned. +//! +//! \return None +// +//***************************************************************************** +void +LPCHalfWordWrite(unsigned long ulBase, unsigned long ulOffset, + unsigned short usData) +{ + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + ASSERT((ulOffset & 1) == 0); + ASSERT(ulOffset < (((HWREG(ulBase + LPC_O_STS) & LPC_STS_POOLSZ_M) >> + 16) * 256)); + + // + // Write the half-word to the LPC Buffer Pool. + // + HWREGH(ulBase + LPC_O_POOL + ulOffset) = usData; +} + +//***************************************************************************** +// +//! Reads a word from the LPC channel pool. +//! +//! \param ulBase specifies the LPC module base address. +//! \param ulOffset specifies the offset from the beginning of the LPC channel +//! pool. +//! +//! This function reads a word from the channel pool. The \e ulOffset +//! specified must be word aligned. +//! +//! \return Returns the word read from the pool memory. +// +//***************************************************************************** +unsigned long +LPCWordRead(unsigned long ulBase, unsigned long ulOffset) +{ + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + ASSERT((ulOffset & 3) == 0); + ASSERT(ulOffset < (((HWREG(ulBase + LPC_O_STS) & LPC_STS_POOLSZ_M) >> + 16) * 256)); + + // + // Return the word from the LPC Buffer Pool. + // + return(HWREG(ulBase + LPC_O_POOL + ulOffset)); +} + +//***************************************************************************** +// +//! Writes a word to the LPC channel pool. +//! +//! \param ulBase specifies the LPC module base address. +//! \param ulOffset specifies the offset from the beginning of the LPC channel +//! pool. +//! \param ulData specifies the word to write. +//! +//! This function writes a word to the channel pool. The \e ulOffset +//! specified must be word aligned. +//! +//! \return None +// +//***************************************************************************** +void +LPCWordWrite(unsigned long ulBase, unsigned long ulOffset, + unsigned long ulData) +{ + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + ASSERT((ulOffset & 1) == 0); + ASSERT(ulOffset < (((HWREG(ulBase + LPC_O_STS) & LPC_STS_POOLSZ_M) >> + 16) * 256)); + + // + // Write the word to the LPC Buffer Pool. + // + HWREG(ulBase + LPC_O_POOL + ulOffset) = ulData; +} + +//***************************************************************************** +// +//! Enables individual COMx interrupt sources. +//! +//! \param ulBase specifies the LPC module base address. +//! \param ulIntFlags is a bit mask of the interrupt sources to be enabled. +//! +//! This function enables the indicated COMx interrupt sources to trigger the +//! COMx interrupt in the primary LPC interrupt registers. +//! +//! \return None. +// +//***************************************************************************** +void +LPCCOMxIntEnable(unsigned long ulBase, unsigned long ulIntFlags) +{ + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + ASSERT((ulIntFlags & ~(LPC_DMACX_CXEM | LPC_DMACX_CXTXEM | + LPC_DMACX_CXRXEM)) == 0); + + // + // Get the current mask value. + // + HWREG(ulBase + LPC_O_DMACX) |= ulIntFlags; +} + +//***************************************************************************** +// +//! Disables individual COMx interrupt sources. +//! +//! \param ulBase specifies the LPC module base address. +//! \param ulIntFlags is a bit mask of the interrupt sources to be disabled. +//! +//! This function disables the indicated COMx interrupt sources from triggering +//! the COMx interrupt in the primary LPC interrupt registers. +//! +//! \return None. +// +//***************************************************************************** +void +LPCCOMxIntDisable(unsigned long ulBase, unsigned long ulIntFlags) +{ + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + ASSERT((ulIntFlags & ~(LPC_DMACX_CXEM | LPC_DMACX_CXTXEM | + LPC_DMACX_CXRXEM)) == 0); + + // + // Disable the specified interrupts. + // + HWREG(ulBase + LPC_O_DMACX) &= ~ulIntFlags; +} + +//***************************************************************************** +// +//! Gets the current COMx interrupt status. +//! +//! \param ulBase specifies the LPC module base address. +//! \param bMasked is \b false if the raw interrupt status is required or +//! \b true if the masked interrupt status is required. +//! +//! This function returns the interrupt status for the COMx module. +//! +//! \return The current interrupt status. +// +//***************************************************************************** +unsigned long +LPCCOMxIntStatus(unsigned long ulBase, tBoolean bMasked) +{ + unsigned long ulStatus; + + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + + // + // Return either the interrupt status or the raw interrupt status as + // requested. + // + ulStatus = HWREG(ulBase + LPC_O_DMACX); + if(bMasked) + { + ulStatus = ulStatus & (ulStatus << 4); + } + return(ulStatus & (LPC_DMACX_CXRES | LPC_DMACX_CXTXRES | + LPC_DMACX_CXRXRES)); +} + +//***************************************************************************** +// +//! Clears COMx interrupt sources. +//! +//! \param ulBase specifies the LPC module base address. +//! \param ulIntFlags is a bit mask of the interrupt sources to be cleared. +//! +//! This function clears the specified COMx interrupt sources so that they no +//! longer assert. +//! +//! \return None. +// +//***************************************************************************** +void +LPCCOMxIntClear(unsigned long ulBase, unsigned long ulIntFlags) +{ + // + // Check the arguments. + // + ASSERT(ulBase == LPC0_BASE); + ASSERT((ulIntFlags & ~(LPC_DMACX_CXRES | LPC_DMACX_CXTXRES | + LPC_DMACX_CXRXRES)) == 0); + + // + // Clear the requested interrupt sources. + // + HWREG(ulBase + LPC_O_DMACX) |= ulIntFlags; +} + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** diff --git a/bsp/lm3s8962/Libraries/driverlib/lpc.h b/bsp/lm3s8962/Libraries/driverlib/lpc.h new file mode 100644 index 0000000000..ec67c6578c --- /dev/null +++ b/bsp/lm3s8962/Libraries/driverlib/lpc.h @@ -0,0 +1,470 @@ +//***************************************************************************** +// +// lpc.h - Prototypes for the Low Pin Count (LPC) driver. +// +// Copyright (c) 2010-2011 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 8264 of the Stellaris Peripheral Driver Library. +// +//***************************************************************************** + +#ifndef __LPC_H__ +#define __LPC_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 LPCConfigSet as the ulConfig value, and +// returned from LPCConfigGet. +// +//***************************************************************************** +#define LPC_CFG_WAKE 0x00000100 // Restart the LPC Bus + +//***************************************************************************** +// +// Values that can be returned from LPCStatus. +// +//***************************************************************************** +#define LPC_STATUS_RST 0x00000400 // LPC is in Reset +#define LPC_STATUS_BUSY 0x00000200 // LPC is Busy +#define LPC_STATUS_SLEEP 0x00000100 // LPC is in Sleep Mode +#define LPC_STATUS_CA7 0x00000080 // Channel 7 Active +#define LPC_STATUS_CA6 0x00000040 // Channel 6 Active +#define LPC_STATUS_CA5 0x00000020 // Channel 5 Active +#define LPC_STATUS_CA4 0x00000010 // Channel 4 Active +#define LPC_STATUS_CA3 0x00000008 // Channel 3 Active +#define LPC_STATUS_CA2 0x00000004 // Channel 2 Active +#define LPC_STATUS_CA1 0x00000002 // Channel 1 Active +#define LPC_STATUS_CA0 0x00000001 // Channel 0 Active + +//***************************************************************************** +// +// Values that can be passed to LPCIRQSet and LPCIRQClear in the ulIRQ +// parameter and returned from LPCIRQGet. +// +//***************************************************************************** +#define LPC_IRQ15 0x80000000 // Serial IRQ15 +#define LPC_IRQ14 0x40000000 // Serial IRQ14 +#define LPC_IRQ13 0x20000000 // Serial IRQ13 +#define LPC_IRQ12 0x10000000 // Serial IRQ12 +#define LPC_IRQ11 0x08000000 // Serial IRQ11 +#define LPC_IRQ10 0x04000000 // Serial IRQ10 +#define LPC_IRQ9 0x02000000 // Serial IRQ9 +#define LPC_IRQ8 0x01000000 // Serial IRQ8 +#define LPC_IRQ7 0x00800000 // Serial IRQ7 +#define LPC_IRQ6 0x00400000 // Serial IRQ6 +#define LPC_IRQ5 0x00200000 // Serial IRQ5 +#define LPC_IRQ4 0x00100000 // Serial IRQ4 +#define LPC_IRQ3 0x00080000 // Serial IRQ3 +#define LPC_IRQ2 0x00040000 // Serial IRQ2 +#define LPC_IRQ1 0x00020000 // Serial IRQ1 +#define LPC_IRQ0 0x00010000 // Serial IRQ0 + +//***************************************************************************** +// +// Addition values that can be returned from LPCIRQGet. +// +//***************************************************************************** +#define LPC_IRQ_BUSY 0x00000004 // SERIRQ frame in progress +#define LPC_IRQ_CONT 0x00000001 // SERIRQ in Continuous Mode + +//***************************************************************************** +// +// Values that can be passed as the ulChannel parameter in LPCChannel... +// API calls. +// +//***************************************************************************** +#define LPC_CHAN_CH0 0 // LPC Channel 0 +#define LPC_CHAN_CH1 1 // LPC Channel 1 +#define LPC_CHAN_CH2 2 // LPC Channel 2 +#define LPC_CHAN_CH3 3 // LPC Channel 3 +#define LPC_CHAN_CH4 4 // LPC Channel 4 +#define LPC_CHAN_CH5 5 // LPC Channel 5 +#define LPC_CHAN_CH6 6 // LPC Channel 6 +#define LPC_CHAN_CH7 7 // LPC Channel 7 (COMx) +#define LPC_CHAN_COMx 7 // LPC Channel 7 (COMx) + +//***************************************************************************** +// +// Values that can be passed as part of the ulConfig parameter in the +// LPCChannelConfig... functions. +// +//***************************************************************************** +#define LPC_CHAN_IRQSEL2_NONE 0x00000000 // LPC Channel IRQSEL2 Disabled +#define LPC_CHAN_IRQSEL2_IRQ0 0x00080000 // LPC Channel IRQSEL2 IRQ0 +#define LPC_CHAN_IRQSEL2_IRQ1 0x10080000 // LPC Channel IRQSEL2 IRQ1 +#define LPC_CHAN_IRQSEL2_IRQ2 0x20080000 // LPC Channel IRQSEL2 IRQ2 +#define LPC_CHAN_IRQSEL2_IRQ3 0x30080000 // LPC Channel IRQSEL2 IRQ3 +#define LPC_CHAN_IRQSEL2_IRQ4 0x40080000 // LPC Channel IRQSEL2 IRQ4 +#define LPC_CHAN_IRQSEL2_IRQ5 0x50080000 // LPC Channel IRQSEL2 IRQ5 +#define LPC_CHAN_IRQSEL2_IRQ6 0x60080000 // LPC Channel IRQSEL2 IRQ6 +#define LPC_CHAN_IRQSEL2_IRQ7 0x70080000 // LPC Channel IRQSEL2 IRQ7 +#define LPC_CHAN_IRQSEL2_IRQ8 0x80080000 // LPC Channel IRQSEL2 IRQ8 +#define LPC_CHAN_IRQSEL2_IRQ9 0x90080000 // LPC Channel IRQSEL2 IRQ9 +#define LPC_CHAN_IRQSEL2_IRQ10 0xA0080000 // LPC Channel IRQSEL2 IRQ10 +#define LPC_CHAN_IRQSEL2_IRQ11 0xB0080000 // LPC Channel IRQSEL2 IRQ11 +#define LPC_CHAN_IRQSEL2_IRQ12 0xC0080000 // LPC Channel IRQSEL2 IRQ12 +#define LPC_CHAN_IRQSEL2_IRQ13 0xD0080000 // LPC Channel IRQSEL2 IRQ13 +#define LPC_CHAN_IRQSEL2_IRQ14 0xE0080000 // LPC Channel IRQSEL2 IRQ14 +#define LPC_CHAN_IRQSEL2_IRQ15 0xF0080000 // LPC Channel IRQSEL2 IRQ15 + +#define LPC_CHAN_COMxIRQ_DISABLE \ + 0x00000000 // LCP Channel COMx IRQ Disabled +#define LPC_CHAN_COMxIRQ_ENABLE 0x00080000 // LCP Channel COMx IRQ Enabled + +#define LPC_CHAN_IRQSEL1_NONE 0x00000000 // LPC Channel IRQSEL1 Disabled +#define LPC_CHAN_IRQSEL1_IRQ0 0x00040000 // LPC Channel IRQSEL1 IRQ0 +#define LPC_CHAN_IRQSEL1_IRQ1 0x01040000 // LPC Channel IRQSEL1 IRQ1 +#define LPC_CHAN_IRQSEL1_IRQ2 0x02040000 // LPC Channel IRQSEL1 IRQ2 +#define LPC_CHAN_IRQSEL1_IRQ3 0x03040000 // LPC Channel IRQSEL1 IRQ3 +#define LPC_CHAN_IRQSEL1_IRQ4 0x04040000 // LPC Channel IRQSEL1 IRQ4 +#define LPC_CHAN_IRQSEL1_IRQ5 0x05040000 // LPC Channel IRQSEL1 IRQ5 +#define LPC_CHAN_IRQSEL1_IRQ6 0x06040000 // LPC Channel IRQSEL1 IRQ6 +#define LPC_CHAN_IRQSEL1_IRQ7 0x07040000 // LPC Channel IRQSEL1 IRQ7 +#define LPC_CHAN_IRQSEL1_IRQ8 0x08040000 // LPC Channel IRQSEL1 IRQ8 +#define LPC_CHAN_IRQSEL1_IRQ9 0x09040000 // LPC Channel IRQSEL1 IRQ9 +#define LPC_CHAN_IRQSEL1_IRQ10 0x0A040000 // LPC Channel IRQSEL1 IRQ10 +#define LPC_CHAN_IRQSEL1_IRQ11 0x0B040000 // LPC Channel IRQSEL1 IRQ11 +#define LPC_CHAN_IRQSEL1_IRQ12 0x0C040000 // LPC Channel IRQSEL1 IRQ12 +#define LPC_CHAN_IRQSEL1_IRQ13 0x0D040000 // LPC Channel IRQSEL1 IRQ13 +#define LPC_CHAN_IRQSEL1_IRQ14 0x0E040000 // LPC Channel IRQSEL1 IRQ14 +#define LPC_CHAN_IRQSEL1_IRQ15 0x0F040000 // LPC Channel IRQSEL1 IRQ15 + +#define LPC_CHAN_IRQSEL0_NONE 0x00000000 // LPC Channel IRQSEL0 Disabled +#define LPC_CHAN_IRQSEL0_IRQ0 0x00000000 // LPC Channel IRQSEL0 IRQ0 +#define LPC_CHAN_IRQSEL0_IRQ1 0x00100000 // LPC Channel IRQSEL0 IRQ1 +#define LPC_CHAN_IRQSEL0_IRQ2 0x00200000 // LPC Channel IRQSEL0 IRQ2 +#define LPC_CHAN_IRQSEL0_IRQ3 0x00300000 // LPC Channel IRQSEL0 IRQ3 +#define LPC_CHAN_IRQSEL0_IRQ4 0x00400000 // LPC Channel IRQSEL0 IRQ4 +#define LPC_CHAN_IRQSEL0_IRQ5 0x00500000 // LPC Channel IRQSEL0 IRQ5 +#define LPC_CHAN_IRQSEL0_IRQ6 0x00600000 // LPC Channel IRQSEL0 IRQ6 +#define LPC_CHAN_IRQSEL0_IRQ7 0x00700000 // LPC Channel IRQSEL0 IRQ7 +#define LPC_CHAN_IRQSEL0_IRQ8 0x00800000 // LPC Channel IRQSEL0 IRQ8 +#define LPC_CHAN_IRQSEL0_IRQ9 0x00900000 // LPC Channel IRQSEL0 IRQ9 +#define LPC_CHAN_IRQSEL0_IRQ10 0x00A00000 // LPC Channel IRQSEL0 IRQ10 +#define LPC_CHAN_IRQSEL0_IRQ11 0x00B00000 // LPC Channel IRQSEL0 IRQ11 +#define LPC_CHAN_IRQSEL0_IRQ12 0x00C00000 // LPC Channel IRQSEL0 IRQ12 +#define LPC_CHAN_IRQSEL0_IRQ13 0x00D00000 // LPC Channel IRQSEL0 IRQ13 +#define LPC_CHAN_IRQSEL0_IRQ14 0x00E00000 // LPC Channel IRQSEL0 IRQ14 +#define LPC_CHAN_IRQSEL0_IRQ15 0x00F00000 // LPC Channel IRQSEL0 IRQ15 +#define LPC_CHAN_IRQEN0_OFF 0x00000000 // LPC Channel IRQEN0 Disabled +#define LPC_CHAN_IRQEN0_TRG1 0x00010000 // LPC Channel IRQEN0 Trigger 1 +#define LPC_CHAN_IRQEN0_TRG2 0x00020000 // LPC Channel IRQEN0 Trigger 2 +#define LPC_CHAN_IRQEN0_TRG3 0x00030000 // LPC Channel IRQEN0 Trigger 3 + +#define LPC_CHAN_MBARB_ENABLED 0x00000000 // LPC Channel Mailbox Arbritration + // enabled. +#define LPC_CHAN_MBARB_DISABLED 0x00008000 // LPC Channel Mailbox Arbritration + // disabled. + +#define LPC_CHAN_SIZE_4 0x00000000 // Mailbox IO/Memory Window size + // is 4 Bytes. +#define LPC_CHAN_SIZE_8 0x00000004 // Mailbox IO/Memory Window size + // is 4 Bytes. +#define LPC_CHAN_SIZE_16 0x00000008 // Mailbox IO/Memory Window size + // is 4 Bytes. +#define LPC_CHAN_SIZE_32 0x0000000C // Mailbox IO/Memory Window size + // is 4 Bytes. +#define LPC_CHAN_SIZE_64 0x00000010 // Mailbox IO/Memory Window size + // is 4 Bytes. +#define LPC_CHAN_SIZE_128 0x00000014 // Mailbox IO/Memory Window size + // is 4 Bytes. +#define LPC_CHAN_SIZE_256 0x00000018 // Mailbox IO/Memory Window size + // is 4 Bytes. +#define LPC_CHAN_SIZE_512 0x0000001C // Mailbox IO/Memory Window size + // is 4 Bytes. + +//***************************************************************************** +// +// Values that can be passed to LCPChannelConfigCOMxSet as the ulCOMxMode +// parameter or returned from LPCChannelConfigGet in the pulCOMxMode +// parameter. +// +//***************************************************************************** +#define LPC_COMx_MODE_FRMHNML 0x00000000 // Normal From Host model. +#define LPC_COMx_MODE_FRMHIGN 0x00020000 // Ignore From Host data. +#define LPC_COMx_MODE_FRMHDMA 0x00040000 // COMx DMA on From Host data to + // memory +#define LPC_COMx_MODE_UARTDMA 0x00060000 // COMx DMA on From Host data to + // UART1 + +//***************************************************************************** +// +// Additinal values that can be returned from LPCChannelConfigGet in the +// pulCOMxMode parameter. +// +//***************************************************************************** +#define LPC_COMx_ENABLED 0x00010000 // COMx mode enabled. + +//***************************************************************************** +// +// Values that can be passed to LPCIntEnable, LPCIntDisable, and LPCIntClear +// as the ulIntFlags parameter and returned by LPCIntStatus. +// +//***************************************************************************** +#define LPC_INT_RST 0x80000000 // LPC Bus Enters or Exits + // Reset State. +#define LPC_INT_SLEEP 0x40000000 // LPC Bus Enters or Exits + // Sleep State. +#define LPC_INT_COMx 0x20000000 // COMx has read/written + // data. +#define LPC_INT_SIRQ 0x10000000 // SERIRQ frame has completed +#define LPC_INT_CH6_EP_TO_HOST (1 << 24) // To-Host has been read. +#define LPC_INT_CH6_EP_FROM_DATA \ + (2 << 24) // From-Host has been written as + // data. +#define LPC_INT_CH6_EP_FROM_CMD (4 << 24) // From-Host has been written as + // command. +#define LPC_INT_CH6_MB_HOST_WON (1 << 24) // Host Won (HW1ST) +#define LPC_INT_CH6_MB_HOST_WRITE \ + (2 << 24) // Host Wrote Last Byte. +#define LPC_INT_CH6_MB_HOST_READ \ + (4 << 24) // Host Read Last Byte +#define LPC_INT_CH6_MB_MCU_LOST (8 << 24) // MCU Lost (when host had HW1ST). +#define LPC_INT_CH5_EP_TO_HOST (1 << 20) // To-Host has been read. +#define LPC_INT_CH5_EP_FROM_DATA \ + (2 << 20) // From-Host has been written as + // data. +#define LPC_INT_CH5_EP_FROM_CMD (4 << 20) // From-Host has been written as + // command. +#define LPC_INT_CH5_MB_HOST_WON (1 << 20) // Host Won (HW1ST) +#define LPC_INT_CH5_MB_HOST_WRITE \ + (2 << 20) // Host Wrote Last Byte. +#define LPC_INT_CH5_MB_HOST_READ \ + (4 << 20) // Host Read Last Byte +#define LPC_INT_CH5_MB_MCU_LOST (8 << 20) // MCU Lost (when host had HW1ST). +#define LPC_INT_CH4_EP_TO_HOST (1 << 16) // To-Host has been read. +#define LPC_INT_CH4_EP_FROM_DATA \ + (2 << 16) // From-Host has been written as + // data. +#define LPC_INT_CH4_EP_FROM_CMD (4 << 16) // From-Host has been written as + // command. +#define LPC_INT_CH4_MB_HOST_WON (1 << 16) // Host Won (HW1ST) +#define LPC_INT_CH4_MB_HOST_WRITE \ + (2 << 16) // Host Wrote Last Byte. +#define LPC_INT_CH4_MB_HOST_READ \ + (4 << 16) // Host Read Last Byte +#define LPC_INT_CH4_MB_MCU_LOST (8 << 16) // MCU Lost (when host had HW1ST). +#define LPC_INT_CH3_EP_TO_HOST (1 << 12) // To-Host has been read. +#define LPC_INT_CH3_EP_FROM_DATA \ + (2 << 12) // From-Host has been written as + // data. +#define LPC_INT_CH3_EP_FROM_CMD (4 << 12) // From-Host has been written as + // command. +#define LPC_INT_CH3_MB_HOST_WON (1 << 12) // Host Won (HW1ST) +#define LPC_INT_CH3_MB_HOST_WRITE \ + (2 << 12) // Host Wrote Last Byte. +#define LPC_INT_CH3_MB_HOST_READ \ + (4 << 12) // Host Read Last Byte +#define LPC_INT_CH3_MB_MCU_LOST (8 << 12) // MCU Lost (when host had HW1ST). +#define LPC_INT_CH2_EP_TO_HOST (1 << 8) // To-Host has been read. +#define LPC_INT_CH2_EP_FROM_DATA \ + (2 << 8) // From-Host has been written as + // data. +#define LPC_INT_CH2_EP_FROM_CMD (4 << 8) // From-Host has been written as + // command. +#define LPC_INT_CH2_MB_HOST_WON (1 << 8) // Host Won (HW1ST) +#define LPC_INT_CH2_MB_HOST_WRITE \ + (2 << 8) // Host Wrote Last Byte. +#define LPC_INT_CH2_MB_HOST_READ \ + (4 << 8) // Host Read Last Byte +#define LPC_INT_CH2_MB_MCU_LOST (8 << 8) // MCU Lost (when host had HW1ST). +#define LPC_INT_CH1_EP_TO_HOST (1 << 4) // To-Host has been read. +#define LPC_INT_CH1_EP_FROM_DATA \ + (2 << 4) // From-Host has been written as + // data. +#define LPC_INT_CH1_EP_FROM_CMD (4 << 4) // From-Host has been written as + // command. +#define LPC_INT_CH1_MB_HOST_WON (1 << 4) // Host Won (HW1ST) +#define LPC_INT_CH1_MB_HOST_WRITE \ + (2 << 4) // Host Wrote Last Byte. +#define LPC_INT_CH1_MB_HOST_READ \ + (4 << 4) // Host Read Last Byte +#define LPC_INT_CH1_MB_MCU_LOST (8 << 4) // MCU Lost (when host had HW1ST). +#define LPC_INT_CH0_EP_TO_HOST (1 << 0) // To-Host has been read. +#define LPC_INT_CH0_EP_FROM_DATA \ + (2 << 0) // From-Host has been written as + // data. +#define LPC_INT_CH0_EP_FROM_CMD (4 << 0) // From-Host has been written as + // command. +#define LPC_INT_CH0_MB_HOST_WON (1 << 0) // Host Won (HW1ST) +#define LPC_INT_CH0_MB_HOST_WRITE \ + (2 << 0) // Host Wrote Last Byte. +#define LPC_INT_CH0_MB_HOST_READ \ + (4 << 0) // Host Read Last Byte +#define LPC_INT_CH0_MB_MCU_LOST (8 << 0) // MCU Lost (when host had HW1ST). + +//***************************************************************************** +// +// Values that can be passed to LPCCOMxInt... functions as the ulIntFlags +// parameter and returned by LPCIntStatus. +// +//***************************************************************************** +#define LPC_COMx_INT_CX 0x02000000 // Raw Event State for COMx +#define LPC_COMx_INT_CXTX 0x01000000 // Raw Event State for COMx TX +#define LPC_COMx_INT_CXRX 0x00800000 // Raw Event State for COMx RX +#define LPC_COMx_MASK_CX 0x00200000 // Event Mask for COMx +#define LPC_COMx_MASK_CXTX 0x00100000 // Event Mask for COMx TX +#define LPC_COMx_MASK_CXRX 0x00080000 // Event Mask for COMx RX + +//***************************************************************************** +// +// Values that can be passed to the LPCChannelDMAConfigSet function as part +// of the ulConfig or ulMask parameter, or can be returned from the +// LPCChannelConfigGet function. +// +//***************************************************************************** +#define LPC_DMA_CH3_WEN 0x00000080 // Trigger DMA for "To Host" data + // buffer is empty. +#define LPC_DMA_CH3_REN 0x00000040 // Trigger DMA when "From Host" + // data buffer is full. +#define LPC_DMA_CH2_WEN 0x00000020 // Trigger DMA for "To Host" data + // buffer is empty. +#define LPC_DMA_CH2_REN 0x00000010 // Trigger DMA when "From Host" + // data buffer is full. +#define LPC_DMA_CH1_WEN 0x00000008 // Trigger DMA for "To Host" data + // buffer is empty. +#define LPC_DMA_CH1_REN 0x00000004 // Trigger DMA when "From Host" + // data buffer is full. +#define LPC_DMA_CH0_WEN 0x00000002 // Trigger DMA for "To Host" data + // buffer is empty. +#define LPC_DMA_CH0_REN 0x00000001 // Trigger DMA when "From Host" + // data buffer is full. +//***************************************************************************** +// +// Values that can be passed to the LPCChannelStatusSet and +// LPCChannelStatusClear function, and returned by the LPCChannelStatusGet +// function. +// +//***************************************************************************** +#define LPC_CH_ST_USER0 0x00000100 // User Status Bit 0 +#define LPC_CH_ST_USER1 0x00000200 // User Status Bit 1 +#define LPC_CH_ST_USER2 0x00000400 // User Status Bit 2 +#define LPC_CH_ST_USER3 0x00000800 // User Status Bit 3 +#define LPC_CH_ST_USER4 0x00001000 // User Status Bit 4 + +//***************************************************************************** +// +// Additinoal values that can be returned by the LPCChannelStatusGet function. +// +//***************************************************************************** +#define LPC_CH_ST_LASTHW 0x00000080 // Last Host Write +#define LPC_CH_ST_HW1ST 0x00000040 // First Host Write +#define LPC_CH_ST_LASTSW 0x00000020 // Last Slave Write +#define LPC_CH_ST_SW1ST 0x00000010 // First Slave Write +#define LPC_CH_ST_CMD 0x00000008 // Command or Data +#define LPC_CH_ST_FRMH 0x00000002 // From-Host Transaction +#define LPC_CH_ST_TOH 0x00000001 // To-Host Transaction + +//***************************************************************************** +// +// Prototypes for the APIs. +// +//***************************************************************************** +extern void LPCConfigSet(unsigned long ulBase, unsigned long ulConfig); +extern unsigned long LPCConfigGet(unsigned long ulBase); +extern unsigned long LPCStatusGet(unsigned long ulBase, + unsigned long *pulCount, + unsigned long *pulPoolSize); +extern void LPCStatusBlockAddressSet(unsigned long ulBase, + unsigned long ulAddress, + tBoolean bEnabled); +extern unsigned LPCStatusBlockAddressGet(unsigned long ulBase); +extern void LPCSCIAssert(unsigned long ulBase, unsigned long ulCount); +extern void LPCIRQConfig(unsigned long ulBase, tBoolean bIRQPulse, + tBoolean bIRQOnChange); +extern void LPCIRQSet(unsigned long ulBase, unsigned long ulIRQ); +extern void LPCIRQClear(unsigned long ulBase, unsigned long ulIRQ); +extern unsigned long LPCIRQGet(unsigned long ulBase); +extern void LPCIRQSend(unsigned long ulBase); +extern void LPCIntRegister(unsigned long ulBase, void (*pfnHandler)(void)); +extern void LPCIntUnregister(unsigned long ulBase); +extern void LPCIntEnable(unsigned long ulBase, unsigned long ulIntFlags); +extern void LPCIntDisable(unsigned long ulBase, unsigned long ulIntFlags); +extern unsigned long LPCIntStatus(unsigned long ulBase, tBoolean bMasked); +extern void LPCIntClear(unsigned long ulBase, unsigned long ulIntFlags); +extern void LPCChannelEnable(unsigned long ulBase, unsigned long ulChannel); +extern void LPCChannelDisable(unsigned long ulBase, unsigned long ulChannel); +extern void LPCChannelConfigEPSet(unsigned long ulBase, + unsigned long ulChannel, + unsigned long ulConfig, + unsigned long ulAddress, + unsigned long ulOffset); +extern void LPCChannelConfigMBSet(unsigned long ulBase, + unsigned long ulChannel, + unsigned long ulConfig, + unsigned long ulAddress, + unsigned long ulOffset); +extern void LPCChannelConfigCOMxSet(unsigned long ulBase, + unsigned long ulChannel, + unsigned long ulConfig, + unsigned long ulAddress, + unsigned long ulOffset, + unsigned long ulCOMxMode); +extern unsigned long LPCChannelConfigGet(unsigned long ulBase, + unsigned long ulChannel, + unsigned long *pulAddress, + unsigned long *pulOffset, + unsigned long *pulCOMxMode); +extern unsigned long LPCChannelPoolAddressGet(unsigned long ulBase, + unsigned long ulChannel); +extern unsigned long LPCChannelStatusGet(unsigned long ulBase, + unsigned long ulChannel); +extern void LPCChannelStatusSet(unsigned long ulBase, unsigned long ulChannel, + unsigned long ulStatus); +extern void LPCChannelStatusClear(unsigned long ulBase, + unsigned long ulChannel, + unsigned long ulStatus); +extern void LPCChannelDMAConfigSet(unsigned long ulBase, + unsigned long ulConfig, + unsigned long ulMask); +extern unsigned long LPCChannelDMAConfigGet(unsigned long ulBase); +extern unsigned char LPCByteRead(unsigned long ulBase, unsigned long ulOffset); +extern void LPCByteWrite(unsigned long ulBase, unsigned long ulOffset, + unsigned char ucData); +extern unsigned short LPCHalfWordRead(unsigned long ulBase, + unsigned long ulOffset); +extern void LPCHalfWordWrite(unsigned long ulBase, unsigned long ulOffset, + unsigned short usData); +extern unsigned long LPCWordRead(unsigned long ulBase, unsigned long ulOffset); +extern void LPCWordWrite(unsigned long ulBase, unsigned long ulOffset, + unsigned long ulData); +extern void LPCCOMxIntEnable(unsigned long ulBase, unsigned long ulIntFlags); +extern void LPCCOMxIntDisable(unsigned long ulBase, unsigned long ulIntFlags); +extern unsigned long LPCCOMxIntStatus(unsigned long ulBase, tBoolean bMasked); +extern void LPCCOMxIntClear(unsigned long ulBase, unsigned long ulIntFlags); + +//***************************************************************************** +// +// Mark the end of the C bindings section for C++ compilers. +// +//***************************************************************************** +#ifdef __cplusplus +} +#endif + +#endif // __LPC_H__ diff --git a/bsp/lm3s8962/Libraries/driverlib/mpu.c b/bsp/lm3s8962/Libraries/driverlib/mpu.c index 143af02da2..a0bc0c404e 100644 --- a/bsp/lm3s8962/Libraries/driverlib/mpu.c +++ b/bsp/lm3s8962/Libraries/driverlib/mpu.c @@ -2,7 +2,7 @@ // // mpu.c - Driver for the Cortex-M3 memory protection unit (MPU). // -// Copyright (c) 2007-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2007-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -42,14 +42,13 @@ //! //! \param ulMPUConfig is the logical OR of the possible configurations. //! -//! This function enables the Cortex-M3 memory protection unit. It also -//! configures the default behavior when in privileged mode and while -//! handling a hard fault or NMI. Prior to enabling the MPU, at least one -//! region must be set by calling MPURegionSet() or else by enabling the -//! default region for privileged mode by passing the -//! \b MPU_CONFIG_PRIV_DEFAULT flag to MPUEnable(). -//! Once the MPU is enabled, a memory management fault will be generated -//! for any memory access violations. +//! This function enables the Cortex-M memory protection unit. It also +//! configures the default behavior when in privileged mode and while handling +//! a hard fault or NMI. Prior to enabling the MPU, at least one region must +//! be set by calling MPURegionSet() or else by enabling the default region for +//! privileged mode by passing the \b MPU_CONFIG_PRIV_DEFAULT flag to +//! MPUEnable(). Once the MPU is enabled, a memory management fault is +//! generated for memory access violations. //! //! The \e ulMPUConfig parameter should be the logical OR of any of the //! following: @@ -63,8 +62,8 @@ //! disabled while in one of these exception handlers and the default //! memory map is applied. //! - \b MPU_CONFIG_NONE chooses none of the above options. In this case, -//! no default memory map is provided in privileged mode, and the MPU will -//! not be enabled in the fault handlers. +//! no default memory map is provided in privileged mode, and the MPU isl +//! not enabled in the fault handlers. //! //! \return None. // @@ -89,7 +88,7 @@ MPUEnable(unsigned long ulMPUConfig) // //! Disables the MPU for use. //! -//! This function disables the Cortex-M3 memory protection unit. When the +//! This function disables the Cortex-M memory protection unit. When the //! MPU is disabled, the default memory map is used and memory management //! faults are not generated. //! @@ -109,9 +108,8 @@ MPUDisable(void) // //! Gets the count of regions supported by the MPU. //! -//! This function is used to get the number of regions that are supported by -//! the MPU. This is the total number that are supported, including regions -//! that are already programmed. +//! This function is used to get the total number of regions that are supported +//! by the MPU, including regions that are already programmed. //! //! \return The number of memory protection regions that are available //! for programming using MPURegionSet(). @@ -121,7 +119,7 @@ unsigned long MPURegionCountGet(void) { // - // Read the DREGION field of the MPU type register, and mask off + // Read the DREGION field of the MPU type register and mask off // the bits of interest to get the count of regions. // return((HWREG(NVIC_MPU_TYPE) & NVIC_MPU_TYPE_DREGION_M) @@ -135,9 +133,9 @@ MPURegionCountGet(void) //! \param ulRegion is the region number to enable. //! //! This function is used to enable a memory protection region. The region -//! should already be set up with the MPURegionSet() function. Once enabled, -//! the memory protection rules of the region will be applied and access -//! violations will cause a memory management fault. +//! should already be configured with the MPURegionSet() function. Once +//! enabled, the memory protection rules of the region are applied and access +//! violations cause a memory management fault. //! //! \return None. // @@ -168,7 +166,7 @@ MPURegionEnable(unsigned long ulRegion) //! \param ulRegion is the region number to disable. //! //! This function is used to disable a previously enabled memory protection -//! region. The region will remain configured if it is not overwritten with +//! region. The region remains configured if it is not overwritten with //! another call to MPURegionSet(), and can be enabled again by calling //! MPURegionEnable(). //! @@ -204,16 +202,16 @@ MPURegionDisable(unsigned long ulRegion) //! \param ulFlags is a set of flags to define the attributes of the region. //! //! This function sets up the protection rules for a region. The region has -//! a base address and a set of attributes including the size, which must -//! be a power of 2. The base address parameter, \e ulAddr, must be aligned -//! according to the size. +//! a base address and a set of attributes including the size. The base +//! address parameter, \e ulAddr, must be aligned according to the size, and +//! the size must be a power of 2. //! //! The \e ulFlags parameter is the logical OR of all of the attributes //! of the region. It is a combination of choices for region size, //! execute permission, read/write permissions, disabled sub-regions, //! and a flag to determine if the region is enabled. //! -//! The size flag determines the size of a region, and must be one of the +//! The size flag determines the size of a region and must be one of the //! following: //! //! - \b MPU_RGN_SIZE_32B @@ -263,8 +261,8 @@ MPURegionDisable(unsigned long ulRegion) //! //! The region is automatically divided into 8 equally-sized sub-regions by //! the MPU. Sub-regions can only be used in regions of size 256 bytes -//! or larger. Any of these 8 sub-regions can be disabled. This allows -//! for creation of ``holes'' in a region which can be left open, or overlaid +//! or larger. Any of these 8 sub-regions can be disabled, allowing for +//! creation of ``holes'' in a region which can be left open, or overlaid //! by another region with different attributes. Any of the 8 sub-regions //! can be disabled with a logical OR of any of the following flags: //! @@ -293,7 +291,7 @@ MPURegionDisable(unsigned long ulRegion) //! MPU_SUB_RGN_DISABLE_2 | MPU_RGN_ENABLE) //! //! -//! \note This function will write to multiple registers and is not protected +//! \note This function writes to multiple registers and is not protected //! from interrupts. It is possible that an interrupt which accesses a //! region may occur while that region is in the process of being changed. //! The safest way to handle this is to disable a region before changing it. @@ -342,9 +340,9 @@ MPURegionSet(unsigned long ulRegion, unsigned long ulAddr, //! meanings and format of the parameters is the same as that of the //! MPURegionSet() function. //! -//! This function can be used to save the configuration of a region for -//! later use with the MPURegionSet() function. The region's enable state -//! will be preserved in the attributes that are saved. +//! This function can be used to save the configuration of a region for later +//! use with the MPURegionSet() function. The region's enable state is +//! preserved in the attributes that are saved. //! //! \return None. // @@ -383,8 +381,9 @@ MPURegionGet(unsigned long ulRegion, unsigned long *pulAddr, //! \param pfnHandler is a pointer to the function to be called when the //! memory management fault occurs. //! -//! This sets and enables the handler to be called when the MPU generates -//! a memory management fault due to a protection region access violation. +//! This function sets and enables the handler to be called when the MPU +//! generates a memory management fault due to a protection region access +//! violation. //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -415,7 +414,7 @@ MPUIntRegister(void (*pfnHandler)(void)) // //! Unregisters an interrupt handler for the memory management fault. //! -//! This function will disable and clear the handler to be called when a +//! This function disables and clears the handler to be called when a //! memory management fault occurs. //! //! \sa IntRegister() for important information about registering interrupt diff --git a/bsp/lm3s8962/Libraries/driverlib/mpu.h b/bsp/lm3s8962/Libraries/driverlib/mpu.h index 4e05529883..655228da60 100644 --- a/bsp/lm3s8962/Libraries/driverlib/mpu.h +++ b/bsp/lm3s8962/Libraries/driverlib/mpu.h @@ -2,7 +2,7 @@ // // mpu.h - Defines and Macros for the memory protection unit. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm3s8962/Libraries/driverlib/peci.c b/bsp/lm3s8962/Libraries/driverlib/peci.c new file mode 100644 index 0000000000..e07cfc54af --- /dev/null +++ b/bsp/lm3s8962/Libraries/driverlib/peci.c @@ -0,0 +1,971 @@ +//***************************************************************************** +// +// peci.c - Driver for the Platform Environment Control Interface (PECI) +// module. +// +// Copyright (c) 2010-2011 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 8264 of the Stellaris Peripheral Driver Library. +// +//***************************************************************************** + +//***************************************************************************** +// +//! \addtogroup peci_api +//! @{ +// +//***************************************************************************** + +#include "inc/hw_ints.h" +#include "inc/hw_memmap.h" +#include "inc/hw_peci.h" +#include "inc/hw_sysctl.h" +#include "inc/hw_types.h" +#include "driverlib/debug.h" +#include "driverlib/interrupt.h" +#include "driverlib/peci.h" + +//***************************************************************************** +// +// The following defines provide characteristics of the PECI module that are +// important to the driver but which can not be gleaned from the register +// definitions. +// +//***************************************************************************** +#define PECI_MAX_BAUD 2000000 // Maximum baud rate +#define PECI_MIN_BAUD 2000 // Minimum baud rate +#define PECI_MIN_RATIO 8 // Minimum baud rate divider +#define PECI_MAX_RATIO 65535 // Maximum baud rate divider +#define PECI_POLL_PRESCALE 4096 // Polling timer prescaler +#define PECI_MIN_POLL 2 // Minimum polling interval (ms) +#define PECI_MAX_POLL 1000 // Maximum polling interval (ms) + +//***************************************************************************** +// +//! \internal +//! Checks a PECI domain. +//! +//! \param ulDomain is the PECI domain identifier. +//! +//! This function determines if a domain identifier is valid. +//! +//! \return Returns \b true if the domain identifier is valid and \b false +//! otherwise. +// +//***************************************************************************** +#ifdef DEBUG +static tBoolean +PECIDomainValid(unsigned long ulDomain) +{ + return((ulDomain == PECI_DOMAIN_M0D0) || + (ulDomain == PECI_DOMAIN_M0D1) || + (ulDomain == PECI_DOMAIN_M1D0) || + (ulDomain == PECI_DOMAIN_M1D1)); +} +#endif + +//***************************************************************************** +// +//! Sets the configuration of the PECI module. +//! +//! \param ulBase is the base address of the PECI module. +//! \param ulPECIClk is the rate of the clock supplied to the PECI module. +//! \param ulBaud is the bit rate that should be used for the PECI transfers. +//! \param ulPoll is the polling rate, in ms, that should be used for the +//! time between PECI polls. +//! \param ulOffset is the offset to be applied to all temperature values to +//! convert from relative to absolute. +//! \param ulRetry is the number of retry attempts for a PECI transaction. +//! +//! This function initializes operation of the PECI block. It programs the bit +//! rate, polling rate and retry counts for PECI transactions. It also +//! programs the offset value to be used to translate relative temperature +//! values from PECI transactions to absolute values. At the end of this +//! function, no host/domain combinations are enabled. Each desired +//! host/domain combination can be configured/enabled with a call to +//! PECIDomainEnable(). +//! +//! The peripheral clock is the same as the processor clock. This value is +//! returned by SysCtlClockGet(), or it can be explicitly hard coded if it is +//! constant and known (to save the code/execution overhead of a call to +//! SysCtlClockGet()). +//! +//! The \e ulBaud parameter defines the bit rate for the PECI transactions. +//! This value is used to calculate a divisor value based on the specified +//! \e ulPECIClk. If the exact baud rate cannot be achieved (due to rounding), +//! the baud rate is programmed to the nearest value that is less than the +//! specified value. +//! +//! The \e ulPoll parameter defines the polling rate, in milliseconds, used +//! for PECI transactions. For generation of the polling rate, the \e +//! ulPECIClk is pre-divided by \b 4096. A value of 0 disables the polling +//! feature. If the exact polling rate cannot be achieved (due to rounding), +//! the polling rate is programmed to the nearest value that is greater than +//! the specified value. +//! +//! The \e ulRetry parameter defines the number of PECI transactions that are +//! attempted before indicating an error condition. +//! +//! \return None. +// +//***************************************************************************** +void +PECIConfigSet(unsigned long ulBase, unsigned long ulPECIClk, + unsigned long ulBaud, unsigned long ulPoll, + unsigned long ulOffset, unsigned long ulRetry) +{ + unsigned long ulTemp, ulDiv; + + // + // Check the arguments. + // + ASSERT(ulBase == PECI0_BASE); + ASSERT(ulPECIClk != 0); + ASSERT((ulBaud != 0) && (ulBaud <= PECI_MAX_BAUD) && + (ulBaud >= PECI_MIN_BAUD) && + ((ulBaud * 4 * PECI_MIN_RATIO) < ulPECIClk)); + ASSERT((ulPoll == 0) || + ((ulPoll >= PECI_MIN_POLL) && (ulPoll <= PECI_MAX_POLL))); + + // + // Generate value for the PECI Control Register. + // + ulTemp = ((ulOffset << PECI_CTL_OFFSET_S) & PECI_CTL_OFFSET_M); + ulTemp |= ((ulRetry << PECI_CTL_CRETRY_S) & PECI_CTL_CRETRY_M); + HWREG(ulBase + PECI_O_CTL) = ulTemp; + + // + // Compute the divisor for the PECI baud rate clock. + // Round up, to ensure programmed baud rate is <= specified rate. + // Ensure that proper ratio is maintained for clock:baud. + // + ulDiv = (ulPECIClk + (4 * ulBaud) - 1) / (4 * ulBaud); + ulDiv = (ulDiv < PECI_MIN_RATIO) ? PECI_MIN_RATIO : ulDiv; + ulDiv = (ulDiv > PECI_MAX_RATIO) ? PECI_MAX_RATIO : ulDiv; + ulTemp = ((ulDiv << PECI_DIV_BAUD_S) & PECI_DIV_BAUD_M); + + // + // Compute the divisor for the PECI polling rate. + // Round up, to ensure programmed polling rate is >= specified rate. + // + ulDiv = ((ulPoll == 0) ? 0 : ((((ulPECIClk * ulPoll) / 1000) + + (PECI_POLL_PRESCALE - 1)) / + PECI_POLL_PRESCALE)); + ulTemp |= ((ulDiv << PECI_DIV_POLL_S) & PECI_DIV_POLL_M);; + HWREG(ulBase + PECI_O_DIV) = ulTemp; +} + +//***************************************************************************** +// +//! Gets the current configuration of the PECI module. +//! +//! \param ulBase is the base address of the PECI module. +//! \param ulPECIClk is the rate of the clock supplied to the PECI module. +//! \param pulBaud is a pointer to storage for the bit rate. +//! \param pulPoll is a pointer to storage for the polling rate. +//! \param pulOffset is a pointer to stoarage for the offset. +//! \param pulRetry is a pointer to storage for the retry count. +//! +//! The baud rate and poll rate for the PECI module are determined, given an +//! explicitly provided peripheral clock. The returned rates are the actual +//! rates being used; they may not be the same as the requested rates, due to +//! rounding in the calculations. +//! +//! The peripheral clock is the same as the processor clock. This value is +//! returned by SysCtlClockGet(), or it can be explicitly hard coded if it is +//! constant and known (to save the code/execution overhead of a call to +//! SysCtlClockGet()). +//! +//! \return None. +// +//***************************************************************************** +void +PECIConfigGet(unsigned long ulBase, unsigned long ulPECIClk, + unsigned long *pulBaud, unsigned long *pulPoll, + unsigned long *pulOffset, unsigned long *pulRetry) +{ + unsigned long ulTemp; + + // + // Check the arguments. + // + ASSERT(ulBase == PECI0_BASE); + ASSERT(ulPECIClk != 0); + ASSERT(*pulBaud != 0); + ASSERT(*pulPoll != 0); + ASSERT(*pulOffset != 0); + ASSERT(*pulRetry != 0); + + // + // Retrieve the Offset and Retry values + // + ulTemp = HWREG(ulBase + PECI_O_CTL); + *pulOffset = ((ulTemp & PECI_CTL_OFFSET_M) >> PECI_CTL_OFFSET_S); + *pulRetry = ((ulTemp & PECI_CTL_CRETRY_M) >> PECI_CTL_CRETRY_S); + + // + // Calculate the baud rate. + // + ulTemp = HWREG(ulBase + PECI_O_DIV); + *pulBaud = ulPECIClk / ((ulTemp & PECI_DIV_BAUD_M) >> PECI_DIV_BAUD_S); + + // + // Compute the divisor for the PECI polling rate. + // Round up, to ensure programmed polling rate is >= specified rate. + // + *pulPoll = ((((ulTemp & PECI_DIV_POLL_M) >> PECI_DIV_POLL_S) * 1000) / + (ulPECIClk / PECI_POLL_PRESCALE)); +} + +//***************************************************************************** +// +//! Enables bypassing of negotiation errors. +//! +//! \param ulBase is the base address of the PECI module. +//! +//! This function enables bypassing of negotiation errors that might occur +//! during a PECI transaction. When enabled, negotiation errors are ignored. +//! +//! \return None. +// +//***************************************************************************** +void +PECIBypassEnable(unsigned long ulBase) +{ + // + // Check the arguments. + // + ASSERT(ulBase == PECI0_BASE); + + // + // Enable bypass. + // + HWREG(ulBase + PECI_O_CTL) |= PECI_CTL_BYERR; +} + +//***************************************************************************** +// +//! Disables bypassing of negotiation errors. +//! +//! \param ulBase is the base address of the PECI module. +//! +//! This function disables bypassing of negotiation errors that might occur +//! during a PECI transaction. When disabled, negotiation errors are reported +//! and the remainder of the transaction is aborted. +//! +//! \return None. +// +//***************************************************************************** +void +PECIBypassDisable(unsigned long ulBase) +{ + // + // Check the arguments. + // + ASSERT(ulBase == PECI0_BASE); + + // + // Disable bypass. + // + HWREG(ulBase + PECI_O_CTL) &= ~PECI_CTL_BYERR; +} + +//***************************************************************************** +// +//! Sets the configuration of the specified PECI domain. +//! +//! \param ulBase is the base address of the PECI module. +//! \param ulDomain is the PECI domain that should be configured. +//! \param ulHigh is the high temperature threshold value. +//! \param ulLow is the low temperature threshold value. +//! +//! This function configures the specified PECI domain for temperature +//! monitoring operations. The values for \e ulHigh and \e ulLow can be +//! specified as values relative to the maximum temperature allowed, or they +//! can be specified as absolute temperatures if an offset was programmed +//! in the PECIConfigSet() function. +//! +//! The \e ulDomain parameter can be one of the following values: +//! \b PECI_DOMAIN_M0D0, \b PECI_DOMAIN_M0D1, \b PECI_DOMAIN_M1D0, or +//! \b PECI_DOMAIN_M1D1. +//! +//! \return None. +// +//***************************************************************************** +void +PECIDomainConfigSet(unsigned long ulBase, unsigned long ulDomain, + unsigned long ulHigh, unsigned long ulLow) +{ + // + // Check the arguments. + // + ASSERT(ulBase == PECI0_BASE); + ASSERT(PECIDomainValid(ulDomain)); + ASSERT(ulHigh <= 0xFFFF); + ASSERT(ulLow <= 0xFFFF); + ASSERT(ulHigh > ulLow); + + // + // Set the HTHRESH and LTHRESH fields in the domain control/status + // register. + // + HWREG(ulBase + PECI_O_M0D0C + (ulDomain * 4)) = + (((ulHigh << PECI_M0D0C_HITHR_S) & PECI_M0D0C_HITHR_M) | + ((ulLow << PECI_M0D0C_LOTHR_S) & PECI_M0D0C_LOTHR_M)); +} + +//***************************************************************************** +// +//! Gets the configuration of the specified PECI domain. +//! +//! \param ulBase is the base address of the PECI module. +//! \param ulDomain is the PECI domain that should be configured. +//! \param pulHigh is a pointer to storage for the high threshold. +//! \param pulLow is a pointer to storage for the low threshold. +//! +//! This function configures the specified PECI domain for temperature +//! monitoring operations. The values for \e ulHigh and \e ulLow can be +//! specified as values relative to the maximum temperature allowed, or they +//! can be specified as absolute temperatures if an offset was programmed +//! in the PECIConfigSet() function. +//! +//! The \e ulDomain parameter can be one of the following values: +//! \b PECI_DOMAIN_M0D0, \b PECI_DOMAIN_M0D1, \b PECI_DOMAIN_M1D0, or +//! \b PECI_DOMAIN_M1D1. +//! +//! \return None. +// +//***************************************************************************** +void +PECIDomainConfigGet(unsigned long ulBase, unsigned long ulDomain, + unsigned long *pulHigh, unsigned long *pulLow) +{ + unsigned long ulTemp; + + // + // Check the arguments. + // + ASSERT(ulBase == PECI0_BASE); + ASSERT(PECIDomainValid(ulDomain)); + ASSERT(pulHigh != 0); + ASSERT(pulLow != 0); + + // + // Get the HTHRESH and LTHRESH fields in the domain control/status + // register. + // + ulTemp = HWREG(ulBase + PECI_O_M0D0C + (ulDomain * 4)); + *pulHigh = ((ulTemp && PECI_M0D0C_HITHR_M) >> PECI_M0D0C_HITHR_S); + *pulLow = ((ulTemp && PECI_M0D0C_LOTHR_M) >> PECI_M0D0C_LOTHR_S); +} + +//***************************************************************************** +// +//! Enables a domain within the PECI module. +//! +//! \param ulBase is the base address of the PECI module. +//! \param ulDomain is the PECI domain that should be enabled. +//! +//! This function enables the specified PECI domain for temperature monitoring +//! operations. +//! +//! The \e ulDomain parameter can be one of the following values: +//! \b PECI_DOMAIN_M0D0, \b PECI_DOMAIN_M0D1, \b PECI_DOMAIN_M1D0, or +//! \b PECI_DOMAIN_M1D1. +//! +//! \return None. +// +//***************************************************************************** +void +PECIDomainEnable(unsigned long ulBase, unsigned long ulDomain) +{ + // + // Check the arguments. + // + ASSERT(ulBase == PECI0_BASE); + ASSERT(PECIDomainValid(ulDomain)); + + // + // Enable the specified domain. + // + HWREG(ulBase + PECI_O_CTL) |= (1 << ulDomain); +} + +//***************************************************************************** +// +//! Disables a domain within the PECI module. +//! +//! \param ulBase is the base address of the PECI module. +//! \param ulDomain is the PECI domain that should be disabled. +//! +//! This function disables the specified PECI domain. +//! +//! The \e ulDomain parameter can be one of the following values: +//! \b PECI_DOMAIN_M0D0, \b PECI_DOMAIN_M0D1, \b PECI_DOMAIN_M1D0, or +//! \b PECI_DOMAIN_M1D1. +//! +//! \return None. +// +//***************************************************************************** +void +PECIDomainDisable(unsigned long ulBase, unsigned long ulDomain) +{ + // + // Check the arguments. + // + ASSERT(ulBase == PECI0_BASE); + ASSERT(PECIDomainValid(ulDomain)); + + // + // Disable the specified domain. + // + HWREG(ulBase + PECI_O_CTL) &= ~(1 << ulDomain); +} + +//***************************************************************************** +// +//! Reads the current temperature value for the specified domain. +//! +//! \param ulBase is the base address of the PECI module. +//! \param ulDomain is the PECI domain that should be disabled. +//! +//! This function returns the most recently read temperature value from the +//! specified domain. +//! +//! The \e ulDomain parameter can be one of the following values: +//! \b PECI_DOMAIN_M0D0, \b PECI_DOMAIN_M0D1, \b PECI_DOMAIN_M1D0, or +//! \b PECI_DOMAIN_M1D1. +//! +//! \return None. +// +//***************************************************************************** +unsigned long +PECIDomainValueGet(unsigned long ulBase, unsigned long ulDomain) +{ + // + // Check the arguments. + // + ASSERT(ulBase == PECI0_BASE); + ASSERT(PECIDomainValid(ulDomain)); + + // + // Return the most recently polled temperature value + // + return(((HWREG(ulBase + PECI_O_M0D0 + (ulDomain * 4)) & + PECI_M0D0_VALUE_M))); +} + +//***************************************************************************** +// +//! Reads the maximum/error value for the specified domain. +//! +//! \param ulBase is the base address of the PECI module. +//! \param ulDomain is the PECI domain that should be disabled. +//! +//! This function returns the maximum temperature value for the specified +//! domain. +//! +//! The \e ulDomain parameter can be one of the following values: +//! \b PECI_DOMAIN_M0D0, \b PECI_DOMAIN_M0D1, \b PECI_DOMAIN_M1D0, or +//! \b PECI_DOMAIN_M1D1. +//! +//! \return None. +// +//***************************************************************************** +unsigned long +PECIDomainMaxReadGet(unsigned long ulBase, unsigned long ulDomain) +{ + // + // Check the arguments. + // + ASSERT(ulBase == PECI0_BASE); + ASSERT(PECIDomainValid(ulDomain)); + + // + // Return the most recently polled temperature value + // + return(((HWREG(ulBase + PECI_O_M0D0 + (ulDomain * 4)) & + PECI_M0D0_MAXREAD_M) >> PECI_M0D0_MAXREAD_S)); +} + +//***************************************************************************** +// +//! Clears the current temperature value for the specified domain. +//! +//! \param ulBase is the base address of the PECI module. +//! \param ulDomain is the PECI domain that should be disabled. +//! +//! This function clears the current and maximum values for the specified +//! domain. +//! +//! The \e ulDomain parameter can be one of the following values: +//! \b PECI_DOMAIN_M0D0, \b PECI_DOMAIN_M0D1, \b PECI_DOMAIN_M1D0, or +//! \b PECI_DOMAIN_M1D1. +//! +//! \return None. +// +//***************************************************************************** +void +PECIDomainValueClear(unsigned long ulBase, unsigned long ulDomain) +{ + // + // Check the arguments. + // + ASSERT(ulBase == PECI0_BASE); + ASSERT(PECIDomainValid(ulDomain)); + + // + // Clear the temperature value. + // + HWREG(ulBase + PECI_O_M0D0 + (ulDomain * 4) ) &= ~PECI_M0D0_VALUE_M; +} + +//***************************************************************************** +// +//! Clears the maximum/error value for the specified domain. +//! +//! \param ulBase is the base address of the PECI module. +//! \param ulDomain is the PECI domain that should be disabled. +//! +//! This function clears the current and maximum values for the specified +//! domain. +//! +//! The \e ulDomain parameter can be one of the following values: +//! \b PECI_DOMAIN_M0D0, \b PECI_DOMAIN_M0D1, \b PECI_DOMAIN_M1D0, or +//! \b PECI_DOMAIN_M1D1. +//! +//! \return None. +// +//***************************************************************************** +void +PECIDomainMaxReadClear(unsigned long ulBase, unsigned long ulDomain) +{ + // + // Check the arguments. + // + ASSERT(ulBase == PECI0_BASE); + ASSERT(PECIDomainValid(ulDomain)); + + // + // Clear the maximum/error value. + // + HWREG(ulBase + PECI_O_M0D0 + (ulDomain * 4) ) &= ~PECI_M0D0_MAXREAD_M; +} + +//***************************************************************************** +// +//! Registers an interrupt handler for the PECI module. +//! +//! \param ulBase specifies the PECI module base address. +//! \param pfnHandler is a pointer to the function to be called when the +//! PECI interrupt occurs. +//! +//! This function registers the handler to be called when an PECI interrupt +//! occurs. This function enables the global interrupt in the interrupt +//! controller; specific PECI interrupts must be enabled via PECIIntEnable(). +//! If necessary, it is the interrupt handler's responsibility to clear the +//! interrupt source via PECIIntClear(). +//! +//! \sa IntRegister() for important information about registering interrupt +//! handlers. +//! +//! \return None. +// +//***************************************************************************** +void +PECIIntRegister(unsigned long ulBase, void (*pfnHandler)(void)) +{ + // + // Check the arguments. + // + ASSERT(ulBase == PECI0_BASE); + ASSERT(pfnHandler != 0); + + // + // Register the interrupt handler. + // + IntRegister(INT_PECI0, pfnHandler); + + // + // Enable the PECI interrupt. + // + IntEnable(INT_PECI0); +} + +//***************************************************************************** +// +//! Unregisters an interrupt handler for the PECI module. +//! +//! \param ulBase specifies the PECI module base address. +//! +//! This function unregisters the handler to be called when a PECI interrupt +//! occurs. This function also masks off the interrupt in the interrupt +//! controller so that the interrupt handler no longer is called. +//! +//! \sa IntRegister() for important information about registering interrupt +//! handlers. +//! +//! \return None. +// +//***************************************************************************** +void +PECIIntUnregister(unsigned long ulBase) +{ + // + // Check the arguments. + // + ASSERT(ulBase == PECI0_BASE); + + // + // Disable the PECI interrupt. + // + IntDisable(INT_PECI0); + + // + // Unregister the interrupt handler. + // + IntUnregister(INT_PECI0); +} + +//***************************************************************************** +// +//! Enables individual PECI interrupt sources. +//! +//! \param ulBase specifies the PECI module base address. +//! \param ulIntFlags is a bit mask of the interrupt sources to be enabled. +//! \param ulIntMode is the mode for the PECI domain interrupts. +//! +//! This function enables the indicated PECI interrupt sources. Only the +//! sources that are enabled can be reflected to the processor interrupt; +//! disabled sources have no effect on the processor. +//! +//! The \e ulIntFlags parameter can be any of the following values: +//! \b PECI_READ, \b PECI_ERR, \b PECI_AC, \b PECI_M0D0, \b PECI_M0D1, +//! \b PECI_M1D0, or \b PECI_M1D1. +//! +//! The \e ulIntMode parameter is used to configure the interrupt mode for +//! the corresponding \b PECI_DOMAIN_MnDm field, and can be any of the +//! following values: \b PECI_M0D0_MODE1, \b PECI_M0D0_MODE2, +//! \b PECI_M0D0_MODE3, \b PECI_M0D1_MODE1, \b PECI_M0D1_MODE2, +//! \b PECI_M0D1_MODE3. \b PECI_M1D0_MODE1, \b PECI_M1D0_MODE2, +//! \b PECI_M1D0_MODE3, \b PECI_M1D1_MODE1, \b PECI_M1D1_MODE2, or +//! \b PECI_M1D1_MODE3. +//! +//! \return None. +// +//***************************************************************************** +void +PECIIntEnable(unsigned long ulBase, unsigned long ulIntFlags, + unsigned long ulIntMode) +{ + unsigned long ulTemp; + + // + // Check the arguments. + // + ASSERT(ulBase == PECI0_BASE); + + // + // Get the current mask value. + // + ulTemp = HWREG(ulBase + PECI_O_IM); + + // + // Clear the bit/bit-fields that are configured, based on the value + // in the flags parameter. + // + ulTemp &= ~ulIntFlags; + + // + // Set/Enable the bit/bit-fields based on the value in the flags and mode + // parameter. The flags parameter alters the bits in the lower half + // of the mask, while the mode alters the bit fields in the upper + // half of the mask. + // + ulTemp |= (0x0000FFFF & ulIntFlags); + ulTemp |= (0xFFFF0000 & ulIntMode); + HWREG(ulBase + PECI_O_IM) = ulTemp; +} + +//***************************************************************************** +// +//! Disables individual PECI interrupt sources. +//! +//! \param ulBase specifies the PECI module base address. +//! \param ulIntFlags is a bit mask of the interrupt sources to be disabled. +//! +//! This function disables the indicated PECI interrupt sources. Only the +//! sources that are enabled can be reflected to the processor interrupt; +//! disabled sources have no effect on the processor. +//! +//! The \e ulIntFlags parameter can be any of the following values: +//! \b PECI_READ, \b PECI_ERR, \b PECI_AC, \b PECI_M0D0, \b PECI_M0D1, +//! \b PECI_M1D0, or \b PECI_M1D1. +//! +//! \return None. +// +//***************************************************************************** +void +PECIIntDisable(unsigned long ulBase, unsigned long ulIntFlags) +{ + // + // Check the arguments. + // + ASSERT(ulBase == PECI0_BASE); + + // + // Disable the specified interrupts. + // + HWREG(ulBase + PECI_O_IM) &= ~ulIntFlags; +} + +//***************************************************************************** +// +//! Gets the current interrupt status. +//! +//! \param ulBase specifies the PECI module base address. +//! \param bMasked is \b false if the raw interrupt status is required or +//! \b true if the masked interrupt status is required. +//! +//! This function returns the interrupt status for the PECI module. Either the +//! raw interrupt status or the status of interrupts that are allowed to +//! reflect to the processor can be returned. +//! +//! The interpretation of the PECI_DOMAIN_MnDm fields vary based on the mode +//! value programed using the PECIIntEnable() function for the field. Each +//! field may take on one of the following values: +//! \b PECI_MnDm_MODE1_HIGH, \b PECI_MnDm_MODE2_MID, \b PECI_MnDm_MODE2_HIGH, +//! \b PECI_MnDm_MODE3_LOW, \b PECI_MnDm_MODE3_MID, or \b PECI_MnDm_MODE3_HIGH. +//! +//! \return The current interrupt status, enumerated as a bit field of +//! \b PECI_READ, \b PECI_ERR, \b PECI_AC, \b PECI_M0D0, \b PECI_M0D1, +//! \b PECI_M1D0, or \b PECI_M1D1. +// +//***************************************************************************** +unsigned long +PECIIntStatus(unsigned long ulBase, tBoolean bMasked) +{ + // + // Check the arguments. + // + ASSERT(ulBase == PECI0_BASE); + + // + // Return either the interrupt status or the raw interrupt status as + // requested. + // + if(bMasked) + { + return(HWREG(ulBase + PECI_O_MIS)); + } + else + { + return(HWREG(ulBase + PECI_O_RIS)); + } +} + +//***************************************************************************** +// +//! Clears PECI interrupt sources. +//! +//! \param ulBase specifies the PECI module base address. +//! \param ulIntFlags is a bit mask of the interrupt sources to be cleared. +//! +//! This function clears the specified PECI interrupt sources so that they no +//! longer assert. This function must be called in the interrupt handler to +//! keep the interrupts from being recognized again immediately upon exit. +//! The \e ulIntFlags parameter can consist of any combination of the +//! \b PECI_READ, \b PECI_ERR, \b PECI_AC, \b PECI_M0D0, \b PECI_M0D1, +//! \b PECI_M1D0, or \b PECI_M1D1 values. +//! +//! \note Because there is a write buffer in the Cortex-M processor, it may +//! take several clock cycles before the interrupt source is actually cleared. +//! Therefore, it is recommended that the interrupt source be cleared early in +//! the interrupt handler (as opposed to the very last action) to avoid +//! returning from the interrupt handler before the interrupt source is +//! actually cleared. Failure to do so may result in the interrupt handler +//! being immediately reentered (because the interrupt controller still sees +//! the interrupt source asserted). +//! +//! \return None. +// +//***************************************************************************** +void +PECIIntClear(unsigned long ulBase, unsigned long ulIntFlags) +{ + // + // Check the arguments. + // + ASSERT(ulBase == PECI0_BASE); + + // + // Clear the requested interrupt sources. + // + HWREG(ulBase + PECI_O_IC) = ulIntFlags; +} + +//***************************************************************************** +// +//! Sends a PECI Advanced Command. +//! +//! \param ulBase specifies the PECI module base address. +//! +//! This function sends a PECI Advanced Command. If the interface is not IDLE, +//! it waits for the interface to become IDLE then sends the command. The +//! function parameters are used to populate the message control fields before +//! activating the command. +//! +//! \return None. +// +//***************************************************************************** +void +PECIAdvCmdSend(unsigned long ulBase, unsigned char ucCmd, + unsigned char ucHidRe, unsigned char ucDomain, + unsigned char ucProcAdd, unsigned long ulArg, + unsigned char ucSize, unsigned long ulData0, + unsigned long ulData1) +{ + // + // Check the arguments. + // + ASSERT(ulBase == PECI0_BASE); + + // + // Wait for the interface to be idle. + // + while(HWREG(ulBase + PECI_O_ACCODE) == 0xFFFFFFFF) + { + } + + // + // Fill in the registers for the advanced command. + // + HWREG(ulBase + PECI_O_ACARG) = ulArg; + HWREG(ulBase + PECI_O_ACRDWR0) = ulData0; + HWREG(ulBase + PECI_O_ACRDWR1) = ulData1; + HWREG(ulBase + PECI_O_ACADDR) = (ucHidRe << 24) | + (ucSize << 16) | + (ucDomain << 8) | + (ucProcAdd << 0); + + // + // Now, issue the command. + // + HWREG(ulBase + PECI_O_ACCMD) = ucCmd; +} + +//***************************************************************************** +// +//! Sends a PECI Advanced Command (non blocking). +//! +//! \param ulBase specifies the PECI module base address. +//! +//! This function sends a PECI Advanced Command. If the interface is not IDLE, +//! it returns immediately. Otherwise, it sends the the command. The function +//! paramters are used to populate the message control fields before activating +//! the command. +//! +//! \return None. +// +//***************************************************************************** +unsigned long +PECIAdvCmdSendNonBlocking(unsigned long ulBase, unsigned char ucCmd, + unsigned char ucHidRe, unsigned char ucDomain, + unsigned char ucProcAdd, unsigned long ulArg, + unsigned char ucSize, unsigned long ulData0, + unsigned long ulData1) +{ + // + // Check the arguments. + // + ASSERT(ulBase == PECI0_BASE); + + // + // Check for the interface to be idle. + // If not, return immediately. + // + if(HWREG(ulBase + PECI_O_ACCODE) == 0xFFFFFFFF) + { + return(0); + } + + // + // Send the command. + // + PECIAdvCmdSend(ulBase, ucCmd, ucHidRe, ucDomain, ucProcAdd, ulArg, + ucSize, ulData0, ulData1); + + // + // Return, indicating that the command has been issued. + // + return(1); +} + +//***************************************************************************** +// +//! Obtains status of previous PECI Advanced Command. +//! +//! \param ulBase specifies the PECI module base address. +//! +//! This function gets the status of a previously issued PECI Advanced Command. +//! If the command has completed, and the data pointers are non-zero, the data +//! registers are read and saved. +//! +//! \return -1 if command has not yet been completed, otherwise, the return +//! code associated with the Advanced Command. +// +//***************************************************************************** +unsigned long +PECIAdvCmdStatusGet(unsigned long ulBase, unsigned long *pulData0, + unsigned long *pulData1) +{ + unsigned long ulCode; + + // + // Check the arguments. + // + ASSERT(ulBase == PECI0_BASE); + + // + // If the command has completed, optionally read and save the data + // registers. + // + ulCode = HWREG(ulBase + PECI_O_ACCODE); + if(ulCode != 0xFFFFFFFF) + { + if(pulData0 != (void *)0) + { + *pulData0 = HWREG(ulBase + PECI_O_ACRDWR0); + } + if(pulData1 != (void *)0) + { + *pulData1 = HWREG(ulBase + PECI_O_ACRDWR1); + } + } + + // + // Return the command code from the most recently completed command. + // + return(ulCode); +} + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** diff --git a/bsp/lm3s8962/Libraries/driverlib/peci.h b/bsp/lm3s8962/Libraries/driverlib/peci.h new file mode 100644 index 0000000000..e1b0b9016b --- /dev/null +++ b/bsp/lm3s8962/Libraries/driverlib/peci.h @@ -0,0 +1,226 @@ +//***************************************************************************** +// +// peci.h - Prototypes for Platform Environment Control Interface (PECI) +// driver. +// +// Copyright (c) 2010-2011 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 8264 of the Stellaris Peripheral Driver Library. +// +//***************************************************************************** + +#ifndef __PECI_H__ +#define __PECI_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 PECIConfigDomain, PECIEnableDomain, +// PECIDisableDomain, PECIReadDomainValue, PECIReadDomainMax, and +// PECIClearDomain as the ulDomain parameter. +// +//***************************************************************************** +#define PECI_DOMAIN_M0D0 0 // Microprocessor 0 / Domain 0 +#define PECI_DOMAIN_M0D1 1 // Microprocessor 0 / Domain 1 +#define PECI_DOMAIN_M1D0 2 // Microprocessor 1 / Domain 0 +#define PECI_DOMAIN_M1D1 3 // Microprocessor 1 / Domain 1 + +//***************************************************************************** +// +// Values that can be passed to PECIIntEnable, PECIIntDisable, and PECIIntClear +// as the ulIntFlags parameter and returned by PECIIntStatus. +// +//***************************************************************************** +#define PECI_READ 0x00000001 // End of PECI Poll +#define PECI_ERR 0x00000002 // Error on PECI Poll +#define PECI_AC 0x00000004 // Advanced Command Complete +#define PECI_M0D0 0x00030000 // Microprocessor 0 / Domain 0 +#define PECI_M0D1 0x000C0000 // Microprocessor 0 / Domain 1 +#define PECI_M1D0 0x00300000 // Microprocessor 1 / Domain 0 +#define PECI_M1D1 0x00C00000 // Microprocessor 1 / Domain 1 + +//***************************************************************************** +// +// Additional values that can be returned by PECIIntStatus. +// +//***************************************************************************** +#define PECI_M0D0_MODE1_HIGH 0x00030000 // Microprocessor 0 / Domain 0 + // Mode 1 + // Temperature IS above HIGH +#define PECI_M0D0_MODE2_MID 0x00020000 // Microprocessor 0 / Domain 0 + // Mode 2 + // Temperature CROSSED above LOW +#define PECI_M0D0_MODE2_HIGH 0x00030000 // Microprocessor 0 / Domain 0 + // Mode 2 + // Temperature CROSSED above HIGH +#define PECI_M0D0_MODE3_LOW 0x00010000 // Microprocessor 0 / Domain 0 + // Mode 3 + // Temperature CROSSED below LOW +#define PECI_M0D0_MODE3_MID 0x00020000 // Microprocessor 0 / Domain 0 + // Mode 3 + // Temperature CROSSED above LOW or + // Temperature CROSSED below HIGH +#define PECI_M0D0_MODE3_HIGH 0x00030000 // Microprocessor 0 / Domain 0 + // Mode 3 + // Temperature CROSSED above HIGH +#define PECI_M0D1_MODE1_HIGH 0x00030000 // Microprocessor 0 / Domain 1 + // Mode 1 + // Temperature IS above HIGH +#define PECI_M0D1_MODE2_MID 0x00020000 // Microprocessor 0 / Domain 1 + // Mode 2 + // Temperature CROSSED above LOW +#define PECI_M0D1_MODE2_HIGH 0x00030000 // Microprocessor 0 / Domain 1 + // Mode 2 + // Temperature CROSSED above HIGH +#define PECI_M0D1_MODE3_LOW 0x00010000 // Microprocessor 0 / Domain 1 + // Mode 3 + // Temperature CROSSED below LOW +#define PECI_M0D1_MODE3_MID 0x00020000 // Microprocessor 0 / Domain 1 + // Mode 3 + // Temperature CROSSED above LOW or + // Temperature CROSSED below HIGH +#define PECI_M0D1_MODE3_HIGH 0x00030000 // Microprocessor 0 / Domain 1 + // Mode 3 + // Temperature CROSSED above HIGH +#define PECI_M1D0_MODE1_HIGH 0x00030000 // Microprocessor 1 / Domain 0 + // Mode 1 + // Temperature IS above HIGH +#define PECI_M1D0_MODE2_MID 0x00020000 // Microprocessor 1 / Domain 0 + // Mode 2 + // Temperature CROSSED above LOW +#define PECI_M1D0_MODE2_HIGH 0x00030000 // Microprocessor 1 / Domain 0 + // Mode 2 + // Temperature CROSSED above HIGH +#define PECI_M1D0_MODE3_LOW 0x00010000 // Microprocessor 1 / Domain 0 + // Mode 3 + // Temperature CROSSED below LOW +#define PECI_M1D0_MODE3_MID 0x00020000 // Microprocessor 1 / Domain 0 + // Mode 3 + // Temperature CROSSED above LOW or + // Temperature CROSSED below HIGH +#define PECI_M1D0_MODE3_HIGH 0x00030000 // Microprocessor 1 / Domain 0 + // Mode 3 + // Temperature CROSSED above HIGH +#define PECI_M1D1_MODE1_HIGH 0x00030000 // Microprocessor 1 / Domain 1 + // Mode 1 + // Temperature IS above HIGH +#define PECI_M1D1_MODE2_MID 0x00020000 // Microprocessor 1 / Domain 1 + // Mode 2 + // Temperature CROSSED above LOW +#define PECI_M1D1_MODE2_HIGH 0x00030000 // Microprocessor 1 / Domain 1 + // Mode 2 + // Temperature CROSSED above HIGH +#define PECI_M1D1_MODE3_LOW 0x00010000 // Microprocessor 1 / Domain 1 + // Mode 3 + // Temperature CROSSED below LOW +#define PECI_M1D1_MODE3_MID 0x00020000 // Microprocessor 1 / Domain 1 + // Mode 3 + // Temperature CROSSED above LOW or + // Temperature CROSSED below HIGH +#define PECI_M1D1_MODE3_HIGH 0x00030000 // Microprocessor 1 / Domain 1 + // Mode 3 + // Temperature CROSSED above HIGH + +//***************************************************************************** +// +// Values that can be passed to PECIIntEnable as the ulIntMode parameter. +// +//***************************************************************************** +#define PECI_M0D0_MODE1 0x00010000 // Domain Interrupt Mode 1 +#define PECI_M0D0_MODE2 0x00020000 // Domain Interrupt Mode 2 +#define PECI_M0D0_MODE3 0x00030000 // Domain Interrupt Mode 3 +#define PECI_M0D1_MODE1 0x00040000 // Domain Interrupt Mode 1 +#define PECI_M0D1_MODE2 0x00080000 // Domain Interrupt Mode 2 +#define PECI_M0D1_MODE3 0x000C0000 // Domain Interrupt Mode 3 +#define PECI_M1D0_MODE1 0x00100000 // Domain Interrupt Mode 1 +#define PECI_M1D0_MODE2 0x00200000 // Domain Interrupt Mode 2 +#define PECI_M1D0_MODE3 0x00300000 // Domain Interrupt Mode 3 +#define PECI_M1D1_MODE1 0x00400000 // Domain Interrupt Mode 1 +#define PECI_M1D1_MODE2 0x00800000 // Domain Interrupt Mode 2 +#define PECI_M1D1_MODE3 0x00C00000 // Domain Interrupt Mode 3 + +//***************************************************************************** +// +// Prototypes for the APIs. +// +//***************************************************************************** +extern void PECIConfigSet(unsigned long ulBase, unsigned long ulPECIClk, + unsigned long ulBaud, unsigned long ulPoll, + unsigned long ulOffset, unsigned long ulRetry); +extern void PECIConfigGet(unsigned long ulBase, unsigned long ulPECIClk, + unsigned long *pulBaud, unsigned long *pulPoll, + unsigned long *pulOffset, unsigned long *pulRetry); +extern void PECIBypassEnable(unsigned long ulBase); +extern void PECIBypassDisable(unsigned long ulBase); +extern void PECIDomainConfigSet(unsigned long ulBase, unsigned long ulDomain, + unsigned long ulHigh, unsigned long ulLow); +extern void PECIDomainConfigGet(unsigned long ulBase, unsigned long ulDomain, + unsigned long *pulHigh, unsigned long *pulLow); +extern void PECIDomainEnable(unsigned long ulBase, unsigned long ulDomain); +extern void PECIDomainDisable(unsigned long ulBase, unsigned long ulDomain); +extern unsigned long PECIDomainValueGet(unsigned long ulBase, + unsigned long ulDomain); +extern unsigned long PECIDomainMaxReadGet(unsigned long ulBase, + unsigned long ulDomain); +extern void PECIDomainValueClear(unsigned long ulBase, unsigned long ulDomain); +extern void PECIDomainMaxReadClear(unsigned long ulBase, + unsigned long ulDomain); +extern void PECIIntRegister(unsigned long ulBase, void (*pfnHandler)(void)); +extern void PECIIntUnregister(unsigned long ulBase); +extern void PECIIntEnable(unsigned long ulBase, unsigned long ulIntFlags, + unsigned long ulIntMode); +extern void PECIIntDisable(unsigned long ulBase, unsigned long ulIntFlags); +extern unsigned long PECIIntStatus(unsigned long ulBase, tBoolean bMasked); +extern void PECIIntClear(unsigned long ulBase, unsigned long ulIntFlags); +extern void PECIAdvCmdSend(unsigned long ulBase, unsigned char ucCmd, + unsigned char ucHidRe, unsigned char ucDomain, + unsigned char ucProcAdd, unsigned long ulArg, + unsigned char ucSize, unsigned long ulData0, + unsigned long ulData1); +extern unsigned long PECIAdvCmdSendNonBlocking(unsigned long ulBase, + unsigned char ucCmd, + unsigned char ucHidRe, + unsigned char ucDomain, + unsigned char ucProcAdd, + unsigned long ulArg, + unsigned char ucSize, + unsigned long ulData0, + unsigned long ulData1); +extern unsigned long PECIAdvCmdStatusGet(unsigned long ulBase, + unsigned long *pulData0, + unsigned long *pulData1); + +//***************************************************************************** +// +// Mark the end of the C bindings section for C++ compilers. +// +//***************************************************************************** +#ifdef __cplusplus +} +#endif + +#endif // __PECI_H__ diff --git a/bsp/lm3s8962/Libraries/driverlib/pin_map.h b/bsp/lm3s8962/Libraries/driverlib/pin_map.h index ad75a86e4f..51c4a2e342 100644 --- a/bsp/lm3s8962/Libraries/driverlib/pin_map.h +++ b/bsp/lm3s8962/Libraries/driverlib/pin_map.h @@ -2,7 +2,7 @@ // // pin_map.h - Mapping of peripherals to pins for all parts. // -// Copyright (c) 2007-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2007-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -32,85 +32,85 @@ //***************************************************************************** #ifdef PART_LM3S101 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0O_PORT (GPIO_PORTB_BASE) -#define C0O_PIN (GPIO_PIN_5) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOB +#define C0O_PORT GPIO_PORTB_BASE +#define C0O_PIN GPIO_PIN_5 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define SSICLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSICLK_PORT (GPIO_PORTA_BASE) -#define SSICLK_PIN (GPIO_PIN_2) +#define SSICLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSICLK_PORT GPIO_PORTA_BASE +#define SSICLK_PIN GPIO_PIN_2 -#define SSIFSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIFSS_PORT (GPIO_PORTA_BASE) -#define SSIFSS_PIN (GPIO_PIN_3) +#define SSIFSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIFSS_PORT GPIO_PORTA_BASE +#define SSIFSS_PIN GPIO_PIN_3 -#define SSIRX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIRX_PORT (GPIO_PORTA_BASE) -#define SSIRX_PIN (GPIO_PIN_4) +#define SSIRX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIRX_PORT GPIO_PORTA_BASE +#define SSIRX_PIN GPIO_PIN_4 -#define SSITX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSITX_PORT (GPIO_PORTA_BASE) -#define SSITX_PIN (GPIO_PIN_5) +#define SSITX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSITX_PORT GPIO_PORTA_BASE +#define SSITX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define 32KHZ_PERIPH (SYSCTL_PERIPH_GPIOB) -#define 32KHZ_PORT (GPIO_PORTB_BASE) -#define 32KHZ_PIN (GPIO_PIN_1) +#define 32KHZ_PERIPH SYSCTL_PERIPH_GPIOB +#define 32KHZ_PORT GPIO_PORTB_BASE +#define 32KHZ_PIN GPIO_PIN_1 #endif // PART_LM3S101 @@ -121,93 +121,93 @@ //***************************************************************************** #ifdef PART_LM3S102 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0O_PORT (GPIO_PORTB_BASE) -#define C0O_PIN (GPIO_PIN_5) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOB +#define C0O_PORT GPIO_PORTB_BASE +#define C0O_PIN GPIO_PIN_5 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP1_PORT (GPIO_PORTB_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP1_PORT GPIO_PORTB_BASE +#define CCP1_PIN GPIO_PIN_6 -#define I2CSCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSCL_PORT (GPIO_PORTB_BASE) -#define I2CSCL_PIN (GPIO_PIN_2) +#define I2CSCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSCL_PORT GPIO_PORTB_BASE +#define I2CSCL_PIN GPIO_PIN_2 -#define I2CSDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSDA_PORT (GPIO_PORTB_BASE) -#define I2CSDA_PIN (GPIO_PIN_3) +#define I2CSDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSDA_PORT GPIO_PORTB_BASE +#define I2CSDA_PIN GPIO_PIN_3 -#define SSICLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSICLK_PORT (GPIO_PORTA_BASE) -#define SSICLK_PIN (GPIO_PIN_2) +#define SSICLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSICLK_PORT GPIO_PORTA_BASE +#define SSICLK_PIN GPIO_PIN_2 -#define SSIFSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIFSS_PORT (GPIO_PORTA_BASE) -#define SSIFSS_PIN (GPIO_PIN_3) +#define SSIFSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIFSS_PORT GPIO_PORTA_BASE +#define SSIFSS_PIN GPIO_PIN_3 -#define SSIRX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIRX_PORT (GPIO_PORTA_BASE) -#define SSIRX_PIN (GPIO_PIN_4) +#define SSIRX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIRX_PORT GPIO_PORTA_BASE +#define SSIRX_PIN GPIO_PIN_4 -#define SSITX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSITX_PORT (GPIO_PORTA_BASE) -#define SSITX_PIN (GPIO_PIN_5) +#define SSITX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSITX_PORT GPIO_PORTA_BASE +#define SSITX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define 32KHZ_PERIPH (SYSCTL_PERIPH_GPIOB) -#define 32KHZ_PORT (GPIO_PORTB_BASE) -#define 32KHZ_PIN (GPIO_PIN_1) +#define 32KHZ_PERIPH SYSCTL_PERIPH_GPIOB +#define 32KHZ_PORT GPIO_PORTB_BASE +#define 32KHZ_PIN GPIO_PIN_1 #endif // PART_LM3S102 @@ -218,137 +218,137 @@ //***************************************************************************** #ifdef PART_LM3S300 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOD) -#define C0O_PORT (GPIO_PORTD_BASE) -#define C0O_PIN (GPIO_PIN_7) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOD +#define C0O_PORT GPIO_PORTD_BASE +#define C0O_PIN GPIO_PIN_7 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1O_PORT (GPIO_PORTC_BASE) -#define C1O_PIN (GPIO_PIN_5) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOC +#define C1O_PORT GPIO_PORTC_BASE +#define C1O_PIN GPIO_PIN_5 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define C2O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2O_PORT (GPIO_PORTC_BASE) -#define C2O_PIN (GPIO_PIN_6) +#define C2O_PERIPH SYSCTL_PERIPH_GPIOC +#define C2O_PORT GPIO_PORTC_BASE +#define C2O_PIN GPIO_PIN_6 -#define C2_MINUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_MINUS_PORT (GPIO_PORTC_BASE) -#define C2_MINUS_PIN (GPIO_PIN_7) +#define C2_MINUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_MINUS_PORT GPIO_PORTC_BASE +#define C2_MINUS_PIN GPIO_PIN_7 -#define C2_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_PLUS_PORT (GPIO_PORTC_BASE) -#define C2_PLUS_PIN (GPIO_PIN_6) +#define C2_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_PLUS_PORT GPIO_PORTC_BASE +#define C2_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP0_PORT (GPIO_PORTD_BASE) -#define CCP0_PIN (GPIO_PIN_4) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP0_PORT GPIO_PORTD_BASE +#define CCP0_PIN GPIO_PIN_4 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP1_PORT (GPIO_PORTE_BASE) -#define CCP1_PIN (GPIO_PIN_3) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP1_PORT GPIO_PORTE_BASE +#define CCP1_PIN GPIO_PIN_3 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP2_PORT (GPIO_PORTD_BASE) -#define CCP2_PIN (GPIO_PIN_5) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP2_PORT GPIO_PORTD_BASE +#define CCP2_PIN GPIO_PIN_5 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP3_PORT (GPIO_PORTE_BASE) -#define CCP3_PIN (GPIO_PIN_4) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP3_PORT GPIO_PORTE_BASE +#define CCP3_PIN GPIO_PIN_4 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP4_PORT (GPIO_PORTE_BASE) -#define CCP4_PIN (GPIO_PIN_2) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP4_PORT GPIO_PORTE_BASE +#define CCP4_PIN GPIO_PIN_2 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP5_PORT (GPIO_PORTE_BASE) -#define CCP5_PIN (GPIO_PIN_5) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP5_PORT GPIO_PORTE_BASE +#define CCP5_PIN GPIO_PIN_5 -#define I2CSCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSCL_PORT (GPIO_PORTB_BASE) -#define I2CSCL_PIN (GPIO_PIN_2) +#define I2CSCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSCL_PORT GPIO_PORTB_BASE +#define I2CSCL_PIN GPIO_PIN_2 -#define I2CSDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSDA_PORT (GPIO_PORTB_BASE) -#define I2CSDA_PIN (GPIO_PIN_3) +#define I2CSDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSDA_PORT GPIO_PORTB_BASE +#define I2CSDA_PIN GPIO_PIN_3 -#define SSICLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSICLK_PORT (GPIO_PORTA_BASE) -#define SSICLK_PIN (GPIO_PIN_2) +#define SSICLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSICLK_PORT GPIO_PORTA_BASE +#define SSICLK_PIN GPIO_PIN_2 -#define SSIFSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIFSS_PORT (GPIO_PORTA_BASE) -#define SSIFSS_PIN (GPIO_PIN_3) +#define SSIFSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIFSS_PORT GPIO_PORTA_BASE +#define SSIFSS_PIN GPIO_PIN_3 -#define SSIRX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIRX_PORT (GPIO_PORTA_BASE) -#define SSIRX_PIN (GPIO_PIN_4) +#define SSIRX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIRX_PORT GPIO_PORTA_BASE +#define SSIRX_PIN GPIO_PIN_4 -#define SSITX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSITX_PORT (GPIO_PORTA_BASE) -#define SSITX_PIN (GPIO_PIN_5) +#define SSITX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSITX_PORT GPIO_PORTA_BASE +#define SSITX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S300 @@ -359,105 +359,105 @@ //***************************************************************************** #ifdef PART_LM3S301 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOD) -#define C0O_PORT (GPIO_PORTD_BASE) -#define C0O_PIN (GPIO_PIN_7) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOD +#define C0O_PORT GPIO_PORTD_BASE +#define C0O_PIN GPIO_PIN_7 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1O_PORT (GPIO_PORTC_BASE) -#define C1O_PIN (GPIO_PIN_5) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOC +#define C1O_PORT GPIO_PORTC_BASE +#define C1O_PIN GPIO_PIN_5 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP2_PORT (GPIO_PORTD_BASE) -#define CCP2_PIN (GPIO_PIN_5) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP2_PORT GPIO_PORTD_BASE +#define CCP2_PIN GPIO_PIN_5 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define SSICLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSICLK_PORT (GPIO_PORTA_BASE) -#define SSICLK_PIN (GPIO_PIN_2) +#define SSICLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSICLK_PORT GPIO_PORTA_BASE +#define SSICLK_PIN GPIO_PIN_2 -#define SSIFSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIFSS_PORT (GPIO_PORTA_BASE) -#define SSIFSS_PIN (GPIO_PIN_3) +#define SSIFSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIFSS_PORT GPIO_PORTA_BASE +#define SSIFSS_PIN GPIO_PIN_3 -#define SSIRX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIRX_PORT (GPIO_PORTA_BASE) -#define SSIRX_PIN (GPIO_PIN_4) +#define SSIRX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIRX_PORT GPIO_PORTA_BASE +#define SSIRX_PIN GPIO_PIN_4 -#define SSITX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSITX_PORT (GPIO_PORTA_BASE) -#define SSITX_PIN (GPIO_PIN_5) +#define SSITX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSITX_PORT GPIO_PORTA_BASE +#define SSITX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 #endif // PART_LM3S301 @@ -468,109 +468,109 @@ //***************************************************************************** #ifdef PART_LM3S308 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP1_PORT (GPIO_PORTC_BASE) -#define CCP1_PIN (GPIO_PIN_5) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP1_PORT GPIO_PORTC_BASE +#define CCP1_PIN GPIO_PIN_5 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP5_PORT (GPIO_PORTB_BASE) -#define CCP5_PIN (GPIO_PIN_5) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP5_PORT GPIO_PORTB_BASE +#define CCP5_PIN GPIO_PIN_5 -#define I2CSCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSCL_PORT (GPIO_PORTB_BASE) -#define I2CSCL_PIN (GPIO_PIN_2) +#define I2CSCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSCL_PORT GPIO_PORTB_BASE +#define I2CSCL_PIN GPIO_PIN_2 -#define I2CSDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSDA_PORT (GPIO_PORTB_BASE) -#define I2CSDA_PIN (GPIO_PIN_3) +#define I2CSDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSDA_PORT GPIO_PORTB_BASE +#define I2CSDA_PIN GPIO_PIN_3 -#define SSICLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSICLK_PORT (GPIO_PORTA_BASE) -#define SSICLK_PIN (GPIO_PIN_2) +#define SSICLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSICLK_PORT GPIO_PORTA_BASE +#define SSICLK_PIN GPIO_PIN_2 -#define SSIFSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIFSS_PORT (GPIO_PORTA_BASE) -#define SSIFSS_PIN (GPIO_PIN_3) +#define SSIFSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIFSS_PORT GPIO_PORTA_BASE +#define SSIFSS_PIN GPIO_PIN_3 -#define SSIRX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIRX_PORT (GPIO_PORTA_BASE) -#define SSIRX_PIN (GPIO_PIN_4) +#define SSIRX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIRX_PORT GPIO_PORTA_BASE +#define SSIRX_PIN GPIO_PIN_4 -#define SSITX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSITX_PORT (GPIO_PORTA_BASE) -#define SSITX_PIN (GPIO_PIN_5) +#define SSITX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSITX_PORT GPIO_PORTA_BASE +#define SSITX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S308 @@ -581,157 +581,157 @@ //***************************************************************************** #ifdef PART_LM3S310 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOD) -#define C0O_PORT (GPIO_PORTD_BASE) -#define C0O_PIN (GPIO_PIN_7) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOD +#define C0O_PORT GPIO_PORTD_BASE +#define C0O_PIN GPIO_PIN_7 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1O_PORT (GPIO_PORTC_BASE) -#define C1O_PIN (GPIO_PIN_5) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOC +#define C1O_PORT GPIO_PORTC_BASE +#define C1O_PIN GPIO_PIN_5 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define C2O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2O_PORT (GPIO_PORTC_BASE) -#define C2O_PIN (GPIO_PIN_6) +#define C2O_PERIPH SYSCTL_PERIPH_GPIOC +#define C2O_PORT GPIO_PORTC_BASE +#define C2O_PIN GPIO_PIN_6 -#define C2_MINUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_MINUS_PORT (GPIO_PORTC_BASE) -#define C2_MINUS_PIN (GPIO_PIN_7) +#define C2_MINUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_MINUS_PORT GPIO_PORTC_BASE +#define C2_MINUS_PIN GPIO_PIN_7 -#define C2_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_PLUS_PORT (GPIO_PORTC_BASE) -#define C2_PLUS_PIN (GPIO_PIN_6) +#define C2_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_PLUS_PORT GPIO_PORTC_BASE +#define C2_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP0_PORT (GPIO_PORTD_BASE) -#define CCP0_PIN (GPIO_PIN_4) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP0_PORT GPIO_PORTD_BASE +#define CCP0_PIN GPIO_PIN_4 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP1_PORT (GPIO_PORTE_BASE) -#define CCP1_PIN (GPIO_PIN_3) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP1_PORT GPIO_PORTE_BASE +#define CCP1_PIN GPIO_PIN_3 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP2_PORT (GPIO_PORTD_BASE) -#define CCP2_PIN (GPIO_PIN_5) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP2_PORT GPIO_PORTD_BASE +#define CCP2_PIN GPIO_PIN_5 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP3_PORT (GPIO_PORTE_BASE) -#define CCP3_PIN (GPIO_PIN_4) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP3_PORT GPIO_PORTE_BASE +#define CCP3_PIN GPIO_PIN_4 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP4_PORT (GPIO_PORTE_BASE) -#define CCP4_PIN (GPIO_PIN_2) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP4_PORT GPIO_PORTE_BASE +#define CCP4_PIN GPIO_PIN_2 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP5_PORT (GPIO_PORTE_BASE) -#define CCP5_PIN (GPIO_PIN_5) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP5_PORT GPIO_PORTE_BASE +#define CCP5_PIN GPIO_PIN_5 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM2_PORT (GPIO_PORTB_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM2_PORT GPIO_PORTB_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM3_PORT (GPIO_PORTB_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM3_PORT GPIO_PORTB_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM4_PORT (GPIO_PORTE_BASE) -#define PWM4_PIN (GPIO_PIN_0) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM4_PORT GPIO_PORTE_BASE +#define PWM4_PIN GPIO_PIN_0 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM5_PORT (GPIO_PORTE_BASE) -#define PWM5_PIN (GPIO_PIN_1) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM5_PORT GPIO_PORTE_BASE +#define PWM5_PIN GPIO_PIN_1 -#define SSICLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSICLK_PORT (GPIO_PORTA_BASE) -#define SSICLK_PIN (GPIO_PIN_2) +#define SSICLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSICLK_PORT GPIO_PORTA_BASE +#define SSICLK_PIN GPIO_PIN_2 -#define SSIFSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIFSS_PORT (GPIO_PORTA_BASE) -#define SSIFSS_PIN (GPIO_PIN_3) +#define SSIFSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIFSS_PORT GPIO_PORTA_BASE +#define SSIFSS_PIN GPIO_PIN_3 -#define SSIRX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIRX_PORT (GPIO_PORTA_BASE) -#define SSIRX_PIN (GPIO_PIN_4) +#define SSIRX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIRX_PORT GPIO_PORTA_BASE +#define SSIRX_PIN GPIO_PIN_4 -#define SSITX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSITX_PORT (GPIO_PORTA_BASE) -#define SSITX_PIN (GPIO_PIN_5) +#define SSITX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSITX_PORT GPIO_PORTA_BASE +#define SSITX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S310 @@ -742,117 +742,117 @@ //***************************************************************************** #ifdef PART_LM3S315 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOD) -#define C0O_PORT (GPIO_PORTD_BASE) -#define C0O_PIN (GPIO_PIN_7) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOD +#define C0O_PORT GPIO_PORTD_BASE +#define C0O_PIN GPIO_PIN_7 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP1_PORT (GPIO_PORTC_BASE) -#define CCP1_PIN (GPIO_PIN_5) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP1_PORT GPIO_PORTC_BASE +#define CCP1_PIN GPIO_PIN_5 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP2_PORT (GPIO_PORTD_BASE) -#define CCP2_PIN (GPIO_PIN_5) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP2_PORT GPIO_PORTD_BASE +#define CCP2_PIN GPIO_PIN_5 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP5_PORT (GPIO_PORTB_BASE) -#define CCP5_PIN (GPIO_PIN_5) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP5_PORT GPIO_PORTB_BASE +#define CCP5_PIN GPIO_PIN_5 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define SSICLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSICLK_PORT (GPIO_PORTA_BASE) -#define SSICLK_PIN (GPIO_PIN_2) +#define SSICLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSICLK_PORT GPIO_PORTA_BASE +#define SSICLK_PIN GPIO_PIN_2 -#define SSIFSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIFSS_PORT (GPIO_PORTA_BASE) -#define SSIFSS_PIN (GPIO_PIN_3) +#define SSIFSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIFSS_PORT GPIO_PORTA_BASE +#define SSIFSS_PIN GPIO_PIN_3 -#define SSIRX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIRX_PORT (GPIO_PORTA_BASE) -#define SSIRX_PIN (GPIO_PIN_4) +#define SSIRX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIRX_PORT GPIO_PORTA_BASE +#define SSIRX_PIN GPIO_PIN_4 -#define SSITX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSITX_PORT (GPIO_PORTA_BASE) -#define SSITX_PIN (GPIO_PIN_5) +#define SSITX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSITX_PORT GPIO_PORTA_BASE +#define SSITX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S315 @@ -863,133 +863,133 @@ //***************************************************************************** #ifdef PART_LM3S316 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOD) -#define C0O_PORT (GPIO_PORTD_BASE) -#define C0O_PIN (GPIO_PIN_7) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOD +#define C0O_PORT GPIO_PORTD_BASE +#define C0O_PIN GPIO_PIN_7 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP0_PORT (GPIO_PORTD_BASE) -#define CCP0_PIN (GPIO_PIN_4) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP0_PORT GPIO_PORTD_BASE +#define CCP0_PIN GPIO_PIN_4 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP1_PORT (GPIO_PORTC_BASE) -#define CCP1_PIN (GPIO_PIN_5) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP1_PORT GPIO_PORTC_BASE +#define CCP1_PIN GPIO_PIN_5 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP2_PORT (GPIO_PORTD_BASE) -#define CCP2_PIN (GPIO_PIN_5) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP2_PORT GPIO_PORTD_BASE +#define CCP2_PIN GPIO_PIN_5 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP5_PORT (GPIO_PORTB_BASE) -#define CCP5_PIN (GPIO_PIN_5) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP5_PORT GPIO_PORTB_BASE +#define CCP5_PIN GPIO_PIN_5 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2CSCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSCL_PORT (GPIO_PORTB_BASE) -#define I2CSCL_PIN (GPIO_PIN_2) +#define I2CSCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSCL_PORT GPIO_PORTB_BASE +#define I2CSCL_PIN GPIO_PIN_2 -#define I2CSDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSDA_PORT (GPIO_PORTB_BASE) -#define I2CSDA_PIN (GPIO_PIN_3) +#define I2CSDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSDA_PORT GPIO_PORTB_BASE +#define I2CSDA_PIN GPIO_PIN_3 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM2_PORT (GPIO_PORTB_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM2_PORT GPIO_PORTB_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM3_PORT (GPIO_PORTB_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM3_PORT GPIO_PORTB_BASE +#define PWM3_PIN GPIO_PIN_1 -#define SSICLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSICLK_PORT (GPIO_PORTA_BASE) -#define SSICLK_PIN (GPIO_PIN_2) +#define SSICLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSICLK_PORT GPIO_PORTA_BASE +#define SSICLK_PIN GPIO_PIN_2 -#define SSIFSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIFSS_PORT (GPIO_PORTA_BASE) -#define SSIFSS_PIN (GPIO_PIN_3) +#define SSIFSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIFSS_PORT GPIO_PORTA_BASE +#define SSIFSS_PIN GPIO_PIN_3 -#define SSIRX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIRX_PORT (GPIO_PORTA_BASE) -#define SSIRX_PIN (GPIO_PIN_4) +#define SSIRX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIRX_PORT GPIO_PORTA_BASE +#define SSIRX_PIN GPIO_PIN_4 -#define SSITX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSITX_PORT (GPIO_PORTA_BASE) -#define SSITX_PIN (GPIO_PIN_5) +#define SSITX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSITX_PORT GPIO_PORTA_BASE +#define SSITX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S316 @@ -1000,125 +1000,125 @@ //***************************************************************************** #ifdef PART_LM3S317 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0O_PORT (GPIO_PORTB_BASE) -#define C0O_PIN (GPIO_PIN_5) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOB +#define C0O_PORT GPIO_PORTB_BASE +#define C0O_PIN GPIO_PIN_5 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP0_PORT (GPIO_PORTD_BASE) -#define CCP0_PIN (GPIO_PIN_4) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP0_PORT GPIO_PORTD_BASE +#define CCP0_PIN GPIO_PIN_4 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP1_PORT (GPIO_PORTC_BASE) -#define CCP1_PIN (GPIO_PIN_5) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP1_PORT GPIO_PORTC_BASE +#define CCP1_PIN GPIO_PIN_5 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP2_PORT (GPIO_PORTD_BASE) -#define CCP2_PIN (GPIO_PIN_5) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP2_PORT GPIO_PORTD_BASE +#define CCP2_PIN GPIO_PIN_5 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOB) -#define FAULT_PORT (GPIO_PORTB_BASE) -#define FAULT_PIN (GPIO_PIN_3) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOB +#define FAULT_PORT GPIO_PORTB_BASE +#define FAULT_PIN GPIO_PIN_3 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM2_PORT (GPIO_PORTB_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM2_PORT GPIO_PORTB_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM3_PORT (GPIO_PORTB_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM3_PORT GPIO_PORTB_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM4_PORT (GPIO_PORTE_BASE) -#define PWM4_PIN (GPIO_PIN_0) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM4_PORT GPIO_PORTE_BASE +#define PWM4_PIN GPIO_PIN_0 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM5_PORT (GPIO_PORTE_BASE) -#define PWM5_PIN (GPIO_PIN_1) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM5_PORT GPIO_PORTE_BASE +#define PWM5_PIN GPIO_PIN_1 -#define SSICLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSICLK_PORT (GPIO_PORTA_BASE) -#define SSICLK_PIN (GPIO_PIN_2) +#define SSICLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSICLK_PORT GPIO_PORTA_BASE +#define SSICLK_PIN GPIO_PIN_2 -#define SSIFSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIFSS_PORT (GPIO_PORTA_BASE) -#define SSIFSS_PIN (GPIO_PIN_3) +#define SSIFSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIFSS_PORT GPIO_PORTA_BASE +#define SSIFSS_PIN GPIO_PIN_3 -#define SSIRX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIRX_PORT (GPIO_PORTA_BASE) -#define SSIRX_PIN (GPIO_PIN_4) +#define SSIRX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIRX_PORT GPIO_PORTA_BASE +#define SSIRX_PIN GPIO_PIN_4 -#define SSITX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSITX_PORT (GPIO_PORTA_BASE) -#define SSITX_PIN (GPIO_PIN_5) +#define SSITX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSITX_PORT GPIO_PORTA_BASE +#define SSITX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 #endif // PART_LM3S317 @@ -1129,101 +1129,101 @@ //***************************************************************************** #ifdef PART_LM3S328 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP1_PORT (GPIO_PORTC_BASE) -#define CCP1_PIN (GPIO_PIN_5) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP1_PORT GPIO_PORTC_BASE +#define CCP1_PIN GPIO_PIN_5 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP5_PORT (GPIO_PORTB_BASE) -#define CCP5_PIN (GPIO_PIN_5) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP5_PORT GPIO_PORTB_BASE +#define CCP5_PIN GPIO_PIN_5 -#define I2CSCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSCL_PORT (GPIO_PORTB_BASE) -#define I2CSCL_PIN (GPIO_PIN_2) +#define I2CSCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSCL_PORT GPIO_PORTB_BASE +#define I2CSCL_PIN GPIO_PIN_2 -#define I2CSDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSDA_PORT (GPIO_PORTB_BASE) -#define I2CSDA_PIN (GPIO_PIN_3) +#define I2CSDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSDA_PORT GPIO_PORTB_BASE +#define I2CSDA_PIN GPIO_PIN_3 -#define SSICLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSICLK_PORT (GPIO_PORTA_BASE) -#define SSICLK_PIN (GPIO_PIN_2) +#define SSICLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSICLK_PORT GPIO_PORTA_BASE +#define SSICLK_PIN GPIO_PIN_2 -#define SSIFSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIFSS_PORT (GPIO_PORTA_BASE) -#define SSIFSS_PIN (GPIO_PIN_3) +#define SSIFSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIFSS_PORT GPIO_PORTA_BASE +#define SSIFSS_PIN GPIO_PIN_3 -#define SSIRX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIRX_PORT (GPIO_PORTA_BASE) -#define SSIRX_PIN (GPIO_PIN_4) +#define SSIRX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIRX_PORT GPIO_PORTA_BASE +#define SSIRX_PIN GPIO_PIN_4 -#define SSITX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSITX_PORT (GPIO_PORTA_BASE) -#define SSITX_PIN (GPIO_PIN_5) +#define SSITX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSITX_PORT GPIO_PORTA_BASE +#define SSITX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S328 @@ -1234,137 +1234,137 @@ //***************************************************************************** #ifdef PART_LM3S600 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOD) -#define C0O_PORT (GPIO_PORTD_BASE) -#define C0O_PIN (GPIO_PIN_7) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOD +#define C0O_PORT GPIO_PORTD_BASE +#define C0O_PIN GPIO_PIN_7 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1O_PORT (GPIO_PORTC_BASE) -#define C1O_PIN (GPIO_PIN_5) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOC +#define C1O_PORT GPIO_PORTC_BASE +#define C1O_PIN GPIO_PIN_5 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define C2O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2O_PORT (GPIO_PORTC_BASE) -#define C2O_PIN (GPIO_PIN_6) +#define C2O_PERIPH SYSCTL_PERIPH_GPIOC +#define C2O_PORT GPIO_PORTC_BASE +#define C2O_PIN GPIO_PIN_6 -#define C2_MINUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_MINUS_PORT (GPIO_PORTC_BASE) -#define C2_MINUS_PIN (GPIO_PIN_7) +#define C2_MINUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_MINUS_PORT GPIO_PORTC_BASE +#define C2_MINUS_PIN GPIO_PIN_7 -#define C2_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_PLUS_PORT (GPIO_PORTC_BASE) -#define C2_PLUS_PIN (GPIO_PIN_6) +#define C2_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_PLUS_PORT GPIO_PORTC_BASE +#define C2_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP0_PORT (GPIO_PORTD_BASE) -#define CCP0_PIN (GPIO_PIN_4) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP0_PORT GPIO_PORTD_BASE +#define CCP0_PIN GPIO_PIN_4 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP1_PORT (GPIO_PORTE_BASE) -#define CCP1_PIN (GPIO_PIN_3) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP1_PORT GPIO_PORTE_BASE +#define CCP1_PIN GPIO_PIN_3 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP2_PORT (GPIO_PORTD_BASE) -#define CCP2_PIN (GPIO_PIN_5) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP2_PORT GPIO_PORTD_BASE +#define CCP2_PIN GPIO_PIN_5 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP3_PORT (GPIO_PORTE_BASE) -#define CCP3_PIN (GPIO_PIN_4) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP3_PORT GPIO_PORTE_BASE +#define CCP3_PIN GPIO_PIN_4 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP4_PORT (GPIO_PORTE_BASE) -#define CCP4_PIN (GPIO_PIN_2) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP4_PORT GPIO_PORTE_BASE +#define CCP4_PIN GPIO_PIN_2 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP5_PORT (GPIO_PORTE_BASE) -#define CCP5_PIN (GPIO_PIN_5) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP5_PORT GPIO_PORTE_BASE +#define CCP5_PIN GPIO_PIN_5 -#define I2CSCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSCL_PORT (GPIO_PORTB_BASE) -#define I2CSCL_PIN (GPIO_PIN_2) +#define I2CSCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSCL_PORT GPIO_PORTB_BASE +#define I2CSCL_PIN GPIO_PIN_2 -#define I2CSDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSDA_PORT (GPIO_PORTB_BASE) -#define I2CSDA_PIN (GPIO_PIN_3) +#define I2CSDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSDA_PORT GPIO_PORTB_BASE +#define I2CSDA_PIN GPIO_PIN_3 -#define SSICLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSICLK_PORT (GPIO_PORTA_BASE) -#define SSICLK_PIN (GPIO_PIN_2) +#define SSICLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSICLK_PORT GPIO_PORTA_BASE +#define SSICLK_PIN GPIO_PIN_2 -#define SSIFSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIFSS_PORT (GPIO_PORTA_BASE) -#define SSIFSS_PIN (GPIO_PIN_3) +#define SSIFSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIFSS_PORT GPIO_PORTA_BASE +#define SSIFSS_PIN GPIO_PIN_3 -#define SSIRX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIRX_PORT (GPIO_PORTA_BASE) -#define SSIRX_PIN (GPIO_PIN_4) +#define SSIRX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIRX_PORT GPIO_PORTA_BASE +#define SSIRX_PIN GPIO_PIN_4 -#define SSITX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSITX_PORT (GPIO_PORTA_BASE) -#define SSITX_PIN (GPIO_PIN_5) +#define SSITX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSITX_PORT GPIO_PORTA_BASE +#define SSITX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S600 @@ -1375,169 +1375,169 @@ //***************************************************************************** #ifdef PART_LM3S601 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C0O_PORT (GPIO_PORTC_BASE) -#define C0O_PIN (GPIO_PIN_5) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOC +#define C0O_PORT GPIO_PORTC_BASE +#define C0O_PIN GPIO_PIN_5 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define C2_MINUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_MINUS_PORT (GPIO_PORTC_BASE) -#define C2_MINUS_PIN (GPIO_PIN_7) +#define C2_MINUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_MINUS_PORT GPIO_PORTC_BASE +#define C2_MINUS_PIN GPIO_PIN_7 -#define C2_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_PLUS_PORT (GPIO_PORTC_BASE) -#define C2_PLUS_PIN (GPIO_PIN_6) +#define C2_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_PLUS_PORT GPIO_PORTC_BASE +#define C2_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP0_PORT (GPIO_PORTD_BASE) -#define CCP0_PIN (GPIO_PIN_4) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP0_PORT GPIO_PORTD_BASE +#define CCP0_PIN GPIO_PIN_4 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP1_PORT (GPIO_PORTE_BASE) -#define CCP1_PIN (GPIO_PIN_3) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP1_PORT GPIO_PORTE_BASE +#define CCP1_PIN GPIO_PIN_3 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP2_PORT (GPIO_PORTD_BASE) -#define CCP2_PIN (GPIO_PIN_5) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP2_PORT GPIO_PORTD_BASE +#define CCP2_PIN GPIO_PIN_5 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP3_PORT (GPIO_PORTE_BASE) -#define CCP3_PIN (GPIO_PIN_4) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP3_PORT GPIO_PORTE_BASE +#define CCP3_PIN GPIO_PIN_4 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP4_PORT (GPIO_PORTE_BASE) -#define CCP4_PIN (GPIO_PIN_2) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP4_PORT GPIO_PORTE_BASE +#define CCP4_PIN GPIO_PIN_2 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP5_PORT (GPIO_PORTE_BASE) -#define CCP5_PIN (GPIO_PIN_5) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP5_PORT GPIO_PORTE_BASE +#define CCP5_PIN GPIO_PIN_5 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2CSCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSCL_PORT (GPIO_PORTB_BASE) -#define I2CSCL_PIN (GPIO_PIN_2) +#define I2CSCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSCL_PORT GPIO_PORTB_BASE +#define I2CSCL_PIN GPIO_PIN_2 -#define I2CSDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSDA_PORT (GPIO_PORTB_BASE) -#define I2CSDA_PIN (GPIO_PIN_3) +#define I2CSDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSDA_PORT GPIO_PORTB_BASE +#define I2CSDA_PIN GPIO_PIN_3 -#define IDX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define IDX_PORT (GPIO_PORTD_BASE) -#define IDX_PIN (GPIO_PIN_7) +#define IDX_PERIPH SYSCTL_PERIPH_GPIOD +#define IDX_PORT GPIO_PORTD_BASE +#define IDX_PIN GPIO_PIN_7 -#define PHA_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHA_PORT (GPIO_PORTC_BASE) -#define PHA_PIN (GPIO_PIN_4) +#define PHA_PERIPH SYSCTL_PERIPH_GPIOC +#define PHA_PORT GPIO_PORTC_BASE +#define PHA_PIN GPIO_PIN_4 -#define PHB_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHB_PORT (GPIO_PORTC_BASE) -#define PHB_PIN (GPIO_PIN_6) +#define PHB_PERIPH SYSCTL_PERIPH_GPIOC +#define PHB_PORT GPIO_PORTC_BASE +#define PHB_PIN GPIO_PIN_6 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM2_PORT (GPIO_PORTB_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM2_PORT GPIO_PORTB_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM3_PORT (GPIO_PORTB_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM3_PORT GPIO_PORTB_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM4_PORT (GPIO_PORTE_BASE) -#define PWM4_PIN (GPIO_PIN_0) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM4_PORT GPIO_PORTE_BASE +#define PWM4_PIN GPIO_PIN_0 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM5_PORT (GPIO_PORTE_BASE) -#define PWM5_PIN (GPIO_PIN_1) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM5_PORT GPIO_PORTE_BASE +#define PWM5_PIN GPIO_PIN_1 -#define SSICLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSICLK_PORT (GPIO_PORTA_BASE) -#define SSICLK_PIN (GPIO_PIN_2) +#define SSICLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSICLK_PORT GPIO_PORTA_BASE +#define SSICLK_PIN GPIO_PIN_2 -#define SSIFSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIFSS_PORT (GPIO_PORTA_BASE) -#define SSIFSS_PIN (GPIO_PIN_3) +#define SSIFSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIFSS_PORT GPIO_PORTA_BASE +#define SSIFSS_PIN GPIO_PIN_3 -#define SSIRX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIRX_PORT (GPIO_PORTA_BASE) -#define SSIRX_PIN (GPIO_PIN_4) +#define SSIRX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIRX_PORT GPIO_PORTA_BASE +#define SSIRX_PIN GPIO_PIN_4 -#define SSITX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSITX_PORT (GPIO_PORTA_BASE) -#define SSITX_PIN (GPIO_PIN_5) +#define SSITX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSITX_PORT GPIO_PORTA_BASE +#define SSITX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S601 @@ -1548,109 +1548,109 @@ //***************************************************************************** #ifdef PART_LM3S608 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP1_PORT (GPIO_PORTC_BASE) -#define CCP1_PIN (GPIO_PIN_5) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP1_PORT GPIO_PORTC_BASE +#define CCP1_PIN GPIO_PIN_5 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP5_PORT (GPIO_PORTB_BASE) -#define CCP5_PIN (GPIO_PIN_5) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP5_PORT GPIO_PORTB_BASE +#define CCP5_PIN GPIO_PIN_5 -#define I2CSCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSCL_PORT (GPIO_PORTB_BASE) -#define I2CSCL_PIN (GPIO_PIN_2) +#define I2CSCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSCL_PORT GPIO_PORTB_BASE +#define I2CSCL_PIN GPIO_PIN_2 -#define I2CSDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSDA_PORT (GPIO_PORTB_BASE) -#define I2CSDA_PIN (GPIO_PIN_3) +#define I2CSDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSDA_PORT GPIO_PORTB_BASE +#define I2CSDA_PIN GPIO_PIN_3 -#define SSICLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSICLK_PORT (GPIO_PORTA_BASE) -#define SSICLK_PIN (GPIO_PIN_2) +#define SSICLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSICLK_PORT GPIO_PORTA_BASE +#define SSICLK_PIN GPIO_PIN_2 -#define SSIFSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIFSS_PORT (GPIO_PORTA_BASE) -#define SSIFSS_PIN (GPIO_PIN_3) +#define SSIFSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIFSS_PORT GPIO_PORTA_BASE +#define SSIFSS_PIN GPIO_PIN_3 -#define SSIRX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIRX_PORT (GPIO_PORTA_BASE) -#define SSIRX_PIN (GPIO_PIN_4) +#define SSIRX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIRX_PORT GPIO_PORTA_BASE +#define SSIRX_PIN GPIO_PIN_4 -#define SSITX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSITX_PORT (GPIO_PORTA_BASE) -#define SSITX_PIN (GPIO_PIN_5) +#define SSITX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSITX_PORT GPIO_PORTA_BASE +#define SSITX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S608 @@ -1661,129 +1661,129 @@ //***************************************************************************** #ifdef PART_LM3S610 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP0_PORT (GPIO_PORTD_BASE) -#define CCP0_PIN (GPIO_PIN_4) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP0_PORT GPIO_PORTD_BASE +#define CCP0_PIN GPIO_PIN_4 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP1_PORT (GPIO_PORTE_BASE) -#define CCP1_PIN (GPIO_PIN_3) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP1_PORT GPIO_PORTE_BASE +#define CCP1_PIN GPIO_PIN_3 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP2_PORT (GPIO_PORTD_BASE) -#define CCP2_PIN (GPIO_PIN_5) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP2_PORT GPIO_PORTD_BASE +#define CCP2_PIN GPIO_PIN_5 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP5_PORT (GPIO_PORTB_BASE) -#define CCP5_PIN (GPIO_PIN_5) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP5_PORT GPIO_PORTB_BASE +#define CCP5_PIN GPIO_PIN_5 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2CSCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSCL_PORT (GPIO_PORTB_BASE) -#define I2CSCL_PIN (GPIO_PIN_2) +#define I2CSCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSCL_PORT GPIO_PORTB_BASE +#define I2CSCL_PIN GPIO_PIN_2 -#define I2CSDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSDA_PORT (GPIO_PORTB_BASE) -#define I2CSDA_PIN (GPIO_PIN_3) +#define I2CSDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSDA_PORT GPIO_PORTB_BASE +#define I2CSDA_PIN GPIO_PIN_3 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM2_PORT (GPIO_PORTB_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM2_PORT GPIO_PORTB_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM3_PORT (GPIO_PORTB_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM3_PORT GPIO_PORTB_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM4_PORT (GPIO_PORTE_BASE) -#define PWM4_PIN (GPIO_PIN_0) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM4_PORT GPIO_PORTE_BASE +#define PWM4_PIN GPIO_PIN_0 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM5_PORT (GPIO_PORTE_BASE) -#define PWM5_PIN (GPIO_PIN_1) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM5_PORT GPIO_PORTE_BASE +#define PWM5_PIN GPIO_PIN_1 -#define SSICLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSICLK_PORT (GPIO_PORTA_BASE) -#define SSICLK_PIN (GPIO_PIN_2) +#define SSICLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSICLK_PORT GPIO_PORTA_BASE +#define SSICLK_PIN GPIO_PIN_2 -#define SSIFSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIFSS_PORT (GPIO_PORTA_BASE) -#define SSIFSS_PIN (GPIO_PIN_3) +#define SSIFSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIFSS_PORT GPIO_PORTA_BASE +#define SSIFSS_PIN GPIO_PIN_3 -#define SSIRX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIRX_PORT (GPIO_PORTA_BASE) -#define SSIRX_PIN (GPIO_PIN_4) +#define SSIRX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIRX_PORT GPIO_PORTA_BASE +#define SSIRX_PIN GPIO_PIN_4 -#define SSITX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSITX_PORT (GPIO_PORTA_BASE) -#define SSITX_PIN (GPIO_PIN_5) +#define SSITX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSITX_PORT GPIO_PORTA_BASE +#define SSITX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S610 @@ -1794,129 +1794,129 @@ //***************************************************************************** #ifdef PART_LM3S611 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP0_PORT (GPIO_PORTD_BASE) -#define CCP0_PIN (GPIO_PIN_4) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP0_PORT GPIO_PORTD_BASE +#define CCP0_PIN GPIO_PIN_4 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP1_PORT (GPIO_PORTC_BASE) -#define CCP1_PIN (GPIO_PIN_5) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP1_PORT GPIO_PORTC_BASE +#define CCP1_PIN GPIO_PIN_5 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP2_PORT (GPIO_PORTD_BASE) -#define CCP2_PIN (GPIO_PIN_5) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP2_PORT GPIO_PORTD_BASE +#define CCP2_PIN GPIO_PIN_5 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP5_PORT (GPIO_PORTB_BASE) -#define CCP5_PIN (GPIO_PIN_5) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP5_PORT GPIO_PORTB_BASE +#define CCP5_PIN GPIO_PIN_5 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2CSCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSCL_PORT (GPIO_PORTB_BASE) -#define I2CSCL_PIN (GPIO_PIN_2) +#define I2CSCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSCL_PORT GPIO_PORTB_BASE +#define I2CSCL_PIN GPIO_PIN_2 -#define I2CSDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSDA_PORT (GPIO_PORTB_BASE) -#define I2CSDA_PIN (GPIO_PIN_3) +#define I2CSDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSDA_PORT GPIO_PORTB_BASE +#define I2CSDA_PIN GPIO_PIN_3 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM2_PORT (GPIO_PORTB_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM2_PORT GPIO_PORTB_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM3_PORT (GPIO_PORTB_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM3_PORT GPIO_PORTB_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM4_PORT (GPIO_PORTE_BASE) -#define PWM4_PIN (GPIO_PIN_0) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM4_PORT GPIO_PORTE_BASE +#define PWM4_PIN GPIO_PIN_0 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM5_PORT (GPIO_PORTE_BASE) -#define PWM5_PIN (GPIO_PIN_1) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM5_PORT GPIO_PORTE_BASE +#define PWM5_PIN GPIO_PIN_1 -#define SSICLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSICLK_PORT (GPIO_PORTA_BASE) -#define SSICLK_PIN (GPIO_PIN_2) +#define SSICLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSICLK_PORT GPIO_PORTA_BASE +#define SSICLK_PIN GPIO_PIN_2 -#define SSIFSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIFSS_PORT (GPIO_PORTA_BASE) -#define SSIFSS_PIN (GPIO_PIN_3) +#define SSIFSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIFSS_PORT GPIO_PORTA_BASE +#define SSIFSS_PIN GPIO_PIN_3 -#define SSIRX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIRX_PORT (GPIO_PORTA_BASE) -#define SSIRX_PIN (GPIO_PIN_4) +#define SSIRX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIRX_PORT GPIO_PORTA_BASE +#define SSIRX_PIN GPIO_PIN_4 -#define SSITX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSITX_PORT (GPIO_PORTA_BASE) -#define SSITX_PIN (GPIO_PIN_5) +#define SSITX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSITX_PORT GPIO_PORTA_BASE +#define SSITX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S611 @@ -1927,125 +1927,125 @@ //***************************************************************************** #ifdef PART_LM3S612 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOD) -#define C0O_PORT (GPIO_PORTD_BASE) -#define C0O_PIN (GPIO_PIN_7) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOD +#define C0O_PORT GPIO_PORTD_BASE +#define C0O_PIN GPIO_PIN_7 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP1_PORT (GPIO_PORTE_BASE) -#define CCP1_PIN (GPIO_PIN_3) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP1_PORT GPIO_PORTE_BASE +#define CCP1_PIN GPIO_PIN_3 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP2_PORT (GPIO_PORTD_BASE) -#define CCP2_PIN (GPIO_PIN_5) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP2_PORT GPIO_PORTD_BASE +#define CCP2_PIN GPIO_PIN_5 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP5_PORT (GPIO_PORTB_BASE) -#define CCP5_PIN (GPIO_PIN_5) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP5_PORT GPIO_PORTB_BASE +#define CCP5_PIN GPIO_PIN_5 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2CSCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSCL_PORT (GPIO_PORTB_BASE) -#define I2CSCL_PIN (GPIO_PIN_2) +#define I2CSCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSCL_PORT GPIO_PORTB_BASE +#define I2CSCL_PIN GPIO_PIN_2 -#define I2CSDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSDA_PORT (GPIO_PORTB_BASE) -#define I2CSDA_PIN (GPIO_PIN_3) +#define I2CSDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSDA_PORT GPIO_PORTB_BASE +#define I2CSDA_PIN GPIO_PIN_3 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define SSICLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSICLK_PORT (GPIO_PORTA_BASE) -#define SSICLK_PIN (GPIO_PIN_2) +#define SSICLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSICLK_PORT GPIO_PORTA_BASE +#define SSICLK_PIN GPIO_PIN_2 -#define SSIFSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIFSS_PORT (GPIO_PORTA_BASE) -#define SSIFSS_PIN (GPIO_PIN_3) +#define SSIFSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIFSS_PORT GPIO_PORTA_BASE +#define SSIFSS_PIN GPIO_PIN_3 -#define SSIRX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIRX_PORT (GPIO_PORTA_BASE) -#define SSIRX_PIN (GPIO_PIN_4) +#define SSIRX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIRX_PORT GPIO_PORTA_BASE +#define SSIRX_PIN GPIO_PIN_4 -#define SSITX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSITX_PORT (GPIO_PORTA_BASE) -#define SSITX_PIN (GPIO_PIN_5) +#define SSITX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSITX_PORT GPIO_PORTA_BASE +#define SSITX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S612 @@ -2056,133 +2056,133 @@ //***************************************************************************** #ifdef PART_LM3S613 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOD) -#define C0O_PORT (GPIO_PORTD_BASE) -#define C0O_PIN (GPIO_PIN_7) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOD +#define C0O_PORT GPIO_PORTD_BASE +#define C0O_PIN GPIO_PIN_7 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP0_PORT (GPIO_PORTD_BASE) -#define CCP0_PIN (GPIO_PIN_4) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP0_PORT GPIO_PORTD_BASE +#define CCP0_PIN GPIO_PIN_4 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP1_PORT (GPIO_PORTC_BASE) -#define CCP1_PIN (GPIO_PIN_5) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP1_PORT GPIO_PORTC_BASE +#define CCP1_PIN GPIO_PIN_5 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP2_PORT (GPIO_PORTD_BASE) -#define CCP2_PIN (GPIO_PIN_5) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP2_PORT GPIO_PORTD_BASE +#define CCP2_PIN GPIO_PIN_5 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP5_PORT (GPIO_PORTB_BASE) -#define CCP5_PIN (GPIO_PIN_5) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP5_PORT GPIO_PORTB_BASE +#define CCP5_PIN GPIO_PIN_5 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2CSCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSCL_PORT (GPIO_PORTB_BASE) -#define I2CSCL_PIN (GPIO_PIN_2) +#define I2CSCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSCL_PORT GPIO_PORTB_BASE +#define I2CSCL_PIN GPIO_PIN_2 -#define I2CSDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSDA_PORT (GPIO_PORTB_BASE) -#define I2CSDA_PIN (GPIO_PIN_3) +#define I2CSDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSDA_PORT GPIO_PORTB_BASE +#define I2CSDA_PIN GPIO_PIN_3 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM2_PORT (GPIO_PORTB_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM2_PORT GPIO_PORTB_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM3_PORT (GPIO_PORTB_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM3_PORT GPIO_PORTB_BASE +#define PWM3_PIN GPIO_PIN_1 -#define SSICLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSICLK_PORT (GPIO_PORTA_BASE) -#define SSICLK_PIN (GPIO_PIN_2) +#define SSICLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSICLK_PORT GPIO_PORTA_BASE +#define SSICLK_PIN GPIO_PIN_2 -#define SSIFSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIFSS_PORT (GPIO_PORTA_BASE) -#define SSIFSS_PIN (GPIO_PIN_3) +#define SSIFSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIFSS_PORT GPIO_PORTA_BASE +#define SSIFSS_PIN GPIO_PIN_3 -#define SSIRX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIRX_PORT (GPIO_PORTA_BASE) -#define SSIRX_PIN (GPIO_PIN_4) +#define SSIRX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIRX_PORT GPIO_PORTA_BASE +#define SSIRX_PIN GPIO_PIN_4 -#define SSITX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSITX_PORT (GPIO_PORTA_BASE) -#define SSITX_PIN (GPIO_PIN_5) +#define SSITX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSITX_PORT GPIO_PORTA_BASE +#define SSITX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S613 @@ -2193,161 +2193,161 @@ //***************************************************************************** #ifdef PART_LM3S615 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOD) -#define C0O_PORT (GPIO_PORTD_BASE) -#define C0O_PIN (GPIO_PIN_7) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOD +#define C0O_PORT GPIO_PORTD_BASE +#define C0O_PIN GPIO_PIN_7 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1O_PORT (GPIO_PORTC_BASE) -#define C1O_PIN (GPIO_PIN_5) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOC +#define C1O_PORT GPIO_PORTC_BASE +#define C1O_PIN GPIO_PIN_5 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define C2_MINUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_MINUS_PORT (GPIO_PORTC_BASE) -#define C2_MINUS_PIN (GPIO_PIN_7) +#define C2_MINUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_MINUS_PORT GPIO_PORTC_BASE +#define C2_MINUS_PIN GPIO_PIN_7 -#define C2_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_PLUS_PORT (GPIO_PORTC_BASE) -#define C2_PLUS_PIN (GPIO_PIN_6) +#define C2_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_PLUS_PORT GPIO_PORTC_BASE +#define C2_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP0_PORT (GPIO_PORTD_BASE) -#define CCP0_PIN (GPIO_PIN_4) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP0_PORT GPIO_PORTD_BASE +#define CCP0_PIN GPIO_PIN_4 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP1_PORT (GPIO_PORTE_BASE) -#define CCP1_PIN (GPIO_PIN_3) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP1_PORT GPIO_PORTE_BASE +#define CCP1_PIN GPIO_PIN_3 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP2_PORT (GPIO_PORTD_BASE) -#define CCP2_PIN (GPIO_PIN_5) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP2_PORT GPIO_PORTD_BASE +#define CCP2_PIN GPIO_PIN_5 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP4_PORT (GPIO_PORTE_BASE) -#define CCP4_PIN (GPIO_PIN_2) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP4_PORT GPIO_PORTE_BASE +#define CCP4_PIN GPIO_PIN_2 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2CSCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSCL_PORT (GPIO_PORTB_BASE) -#define I2CSCL_PIN (GPIO_PIN_2) +#define I2CSCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSCL_PORT GPIO_PORTB_BASE +#define I2CSCL_PIN GPIO_PIN_2 -#define I2CSDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSDA_PORT (GPIO_PORTB_BASE) -#define I2CSDA_PIN (GPIO_PIN_3) +#define I2CSDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSDA_PORT GPIO_PORTB_BASE +#define I2CSDA_PIN GPIO_PIN_3 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM2_PORT (GPIO_PORTB_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM2_PORT GPIO_PORTB_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM3_PORT (GPIO_PORTB_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM3_PORT GPIO_PORTB_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM4_PORT (GPIO_PORTE_BASE) -#define PWM4_PIN (GPIO_PIN_0) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM4_PORT GPIO_PORTE_BASE +#define PWM4_PIN GPIO_PIN_0 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM5_PORT (GPIO_PORTE_BASE) -#define PWM5_PIN (GPIO_PIN_1) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM5_PORT GPIO_PORTE_BASE +#define PWM5_PIN GPIO_PIN_1 -#define SSICLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSICLK_PORT (GPIO_PORTA_BASE) -#define SSICLK_PIN (GPIO_PIN_2) +#define SSICLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSICLK_PORT GPIO_PORTA_BASE +#define SSICLK_PIN GPIO_PIN_2 -#define SSIFSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIFSS_PORT (GPIO_PORTA_BASE) -#define SSIFSS_PIN (GPIO_PIN_3) +#define SSIFSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIFSS_PORT GPIO_PORTA_BASE +#define SSIFSS_PIN GPIO_PIN_3 -#define SSIRX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIRX_PORT (GPIO_PORTA_BASE) -#define SSIRX_PIN (GPIO_PIN_4) +#define SSIRX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIRX_PORT GPIO_PORTA_BASE +#define SSIRX_PIN GPIO_PIN_4 -#define SSITX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSITX_PORT (GPIO_PORTA_BASE) -#define SSITX_PIN (GPIO_PIN_5) +#define SSITX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSITX_PORT GPIO_PORTA_BASE +#define SSITX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S615 @@ -2358,133 +2358,133 @@ //***************************************************************************** #ifdef PART_LM3S617 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0O_PORT (GPIO_PORTB_BASE) -#define C0O_PIN (GPIO_PIN_5) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOB +#define C0O_PORT GPIO_PORTB_BASE +#define C0O_PIN GPIO_PIN_5 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP0_PORT (GPIO_PORTD_BASE) -#define CCP0_PIN (GPIO_PIN_4) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP0_PORT GPIO_PORTD_BASE +#define CCP0_PIN GPIO_PIN_4 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP1_PORT (GPIO_PORTC_BASE) -#define CCP1_PIN (GPIO_PIN_5) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP1_PORT GPIO_PORTC_BASE +#define CCP1_PIN GPIO_PIN_5 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP2_PORT (GPIO_PORTD_BASE) -#define CCP2_PIN (GPIO_PIN_5) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP2_PORT GPIO_PORTD_BASE +#define CCP2_PIN GPIO_PIN_5 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOB) -#define FAULT_PORT (GPIO_PORTB_BASE) -#define FAULT_PIN (GPIO_PIN_3) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOB +#define FAULT_PORT GPIO_PORTB_BASE +#define FAULT_PIN GPIO_PIN_3 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM2_PORT (GPIO_PORTB_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM2_PORT GPIO_PORTB_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM3_PORT (GPIO_PORTB_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM3_PORT GPIO_PORTB_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM4_PORT (GPIO_PORTE_BASE) -#define PWM4_PIN (GPIO_PIN_0) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM4_PORT GPIO_PORTE_BASE +#define PWM4_PIN GPIO_PIN_0 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM5_PORT (GPIO_PORTE_BASE) -#define PWM5_PIN (GPIO_PIN_1) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM5_PORT GPIO_PORTE_BASE +#define PWM5_PIN GPIO_PIN_1 -#define SSICLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSICLK_PORT (GPIO_PORTA_BASE) -#define SSICLK_PIN (GPIO_PIN_2) +#define SSICLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSICLK_PORT GPIO_PORTA_BASE +#define SSICLK_PIN GPIO_PIN_2 -#define SSIFSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIFSS_PORT (GPIO_PORTA_BASE) -#define SSIFSS_PIN (GPIO_PIN_3) +#define SSIFSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIFSS_PORT GPIO_PORTA_BASE +#define SSIFSS_PIN GPIO_PIN_3 -#define SSIRX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIRX_PORT (GPIO_PORTA_BASE) -#define SSIRX_PIN (GPIO_PIN_4) +#define SSIRX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIRX_PORT GPIO_PORTA_BASE +#define SSIRX_PIN GPIO_PIN_4 -#define SSITX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSITX_PORT (GPIO_PORTA_BASE) -#define SSITX_PIN (GPIO_PIN_5) +#define SSITX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSITX_PORT GPIO_PORTA_BASE +#define SSITX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S617 @@ -2495,137 +2495,137 @@ //***************************************************************************** #ifdef PART_LM3S618 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0O_PORT (GPIO_PORTB_BASE) -#define C0O_PIN (GPIO_PIN_5) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOB +#define C0O_PORT GPIO_PORTB_BASE +#define C0O_PIN GPIO_PIN_5 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP0_PORT (GPIO_PORTD_BASE) -#define CCP0_PIN (GPIO_PIN_4) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP0_PORT GPIO_PORTD_BASE +#define CCP0_PIN GPIO_PIN_4 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP1_PORT (GPIO_PORTC_BASE) -#define CCP1_PIN (GPIO_PIN_5) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP1_PORT GPIO_PORTC_BASE +#define CCP1_PIN GPIO_PIN_5 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP2_PORT (GPIO_PORTD_BASE) -#define CCP2_PIN (GPIO_PIN_5) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP2_PORT GPIO_PORTD_BASE +#define CCP2_PIN GPIO_PIN_5 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOB) -#define FAULT_PORT (GPIO_PORTB_BASE) -#define FAULT_PIN (GPIO_PIN_3) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOB +#define FAULT_PORT GPIO_PORTB_BASE +#define FAULT_PIN GPIO_PIN_3 -#define IDX_PERIPH (SYSCTL_PERIPH_GPIOB) -#define IDX_PORT (GPIO_PORTB_BASE) -#define IDX_PIN (GPIO_PIN_2) +#define IDX_PERIPH SYSCTL_PERIPH_GPIOB +#define IDX_PORT GPIO_PORTB_BASE +#define IDX_PIN GPIO_PIN_2 -#define PHA_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHA_PORT (GPIO_PORTC_BASE) -#define PHA_PIN (GPIO_PIN_4) +#define PHA_PERIPH SYSCTL_PERIPH_GPIOC +#define PHA_PORT GPIO_PORTC_BASE +#define PHA_PIN GPIO_PIN_4 -#define PHB_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHB_PORT (GPIO_PORTC_BASE) -#define PHB_PIN (GPIO_PIN_6) +#define PHB_PERIPH SYSCTL_PERIPH_GPIOC +#define PHB_PORT GPIO_PORTC_BASE +#define PHB_PIN GPIO_PIN_6 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM2_PORT (GPIO_PORTB_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM2_PORT GPIO_PORTB_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM3_PORT (GPIO_PORTB_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM3_PORT GPIO_PORTB_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM4_PORT (GPIO_PORTE_BASE) -#define PWM4_PIN (GPIO_PIN_0) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM4_PORT GPIO_PORTE_BASE +#define PWM4_PIN GPIO_PIN_0 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM5_PORT (GPIO_PORTE_BASE) -#define PWM5_PIN (GPIO_PIN_1) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM5_PORT GPIO_PORTE_BASE +#define PWM5_PIN GPIO_PIN_1 -#define SSICLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSICLK_PORT (GPIO_PORTA_BASE) -#define SSICLK_PIN (GPIO_PIN_2) +#define SSICLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSICLK_PORT GPIO_PORTA_BASE +#define SSICLK_PIN GPIO_PIN_2 -#define SSIFSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIFSS_PORT (GPIO_PORTA_BASE) -#define SSIFSS_PIN (GPIO_PIN_3) +#define SSIFSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIFSS_PORT GPIO_PORTA_BASE +#define SSIFSS_PIN GPIO_PIN_3 -#define SSIRX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIRX_PORT (GPIO_PORTA_BASE) -#define SSIRX_PIN (GPIO_PIN_4) +#define SSIRX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIRX_PORT GPIO_PORTA_BASE +#define SSIRX_PIN GPIO_PIN_4 -#define SSITX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSITX_PORT (GPIO_PORTA_BASE) -#define SSITX_PIN (GPIO_PIN_5) +#define SSITX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSITX_PORT GPIO_PORTA_BASE +#define SSITX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S618 @@ -2636,93 +2636,93 @@ //***************************************************************************** #ifdef PART_LM3S628 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP1_PORT (GPIO_PORTC_BASE) -#define CCP1_PIN (GPIO_PIN_5) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP1_PORT GPIO_PORTC_BASE +#define CCP1_PIN GPIO_PIN_5 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define I2CSCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSCL_PORT (GPIO_PORTB_BASE) -#define I2CSCL_PIN (GPIO_PIN_2) +#define I2CSCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSCL_PORT GPIO_PORTB_BASE +#define I2CSCL_PIN GPIO_PIN_2 -#define I2CSDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSDA_PORT (GPIO_PORTB_BASE) -#define I2CSDA_PIN (GPIO_PIN_3) +#define I2CSDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSDA_PORT GPIO_PORTB_BASE +#define I2CSDA_PIN GPIO_PIN_3 -#define SSICLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSICLK_PORT (GPIO_PORTA_BASE) -#define SSICLK_PIN (GPIO_PIN_2) +#define SSICLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSICLK_PORT GPIO_PORTA_BASE +#define SSICLK_PIN GPIO_PIN_2 -#define SSIFSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIFSS_PORT (GPIO_PORTA_BASE) -#define SSIFSS_PIN (GPIO_PIN_3) +#define SSIFSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIFSS_PORT GPIO_PORTA_BASE +#define SSIFSS_PIN GPIO_PIN_3 -#define SSIRX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIRX_PORT (GPIO_PORTA_BASE) -#define SSIRX_PIN (GPIO_PIN_4) +#define SSIRX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIRX_PORT GPIO_PORTA_BASE +#define SSIRX_PIN GPIO_PIN_4 -#define SSITX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSITX_PORT (GPIO_PORTA_BASE) -#define SSITX_PIN (GPIO_PIN_5) +#define SSITX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSITX_PORT GPIO_PORTA_BASE +#define SSITX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S628 @@ -2733,137 +2733,137 @@ //***************************************************************************** #ifdef PART_LM3S800 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOD) -#define C0O_PORT (GPIO_PORTD_BASE) -#define C0O_PIN (GPIO_PIN_7) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOD +#define C0O_PORT GPIO_PORTD_BASE +#define C0O_PIN GPIO_PIN_7 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1O_PORT (GPIO_PORTC_BASE) -#define C1O_PIN (GPIO_PIN_5) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOC +#define C1O_PORT GPIO_PORTC_BASE +#define C1O_PIN GPIO_PIN_5 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define C2O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2O_PORT (GPIO_PORTC_BASE) -#define C2O_PIN (GPIO_PIN_6) +#define C2O_PERIPH SYSCTL_PERIPH_GPIOC +#define C2O_PORT GPIO_PORTC_BASE +#define C2O_PIN GPIO_PIN_6 -#define C2_MINUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_MINUS_PORT (GPIO_PORTC_BASE) -#define C2_MINUS_PIN (GPIO_PIN_7) +#define C2_MINUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_MINUS_PORT GPIO_PORTC_BASE +#define C2_MINUS_PIN GPIO_PIN_7 -#define C2_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_PLUS_PORT (GPIO_PORTC_BASE) -#define C2_PLUS_PIN (GPIO_PIN_6) +#define C2_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_PLUS_PORT GPIO_PORTC_BASE +#define C2_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP0_PORT (GPIO_PORTD_BASE) -#define CCP0_PIN (GPIO_PIN_4) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP0_PORT GPIO_PORTD_BASE +#define CCP0_PIN GPIO_PIN_4 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP1_PORT (GPIO_PORTE_BASE) -#define CCP1_PIN (GPIO_PIN_3) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP1_PORT GPIO_PORTE_BASE +#define CCP1_PIN GPIO_PIN_3 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP2_PORT (GPIO_PORTD_BASE) -#define CCP2_PIN (GPIO_PIN_5) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP2_PORT GPIO_PORTD_BASE +#define CCP2_PIN GPIO_PIN_5 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP3_PORT (GPIO_PORTE_BASE) -#define CCP3_PIN (GPIO_PIN_4) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP3_PORT GPIO_PORTE_BASE +#define CCP3_PIN GPIO_PIN_4 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP4_PORT (GPIO_PORTE_BASE) -#define CCP4_PIN (GPIO_PIN_2) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP4_PORT GPIO_PORTE_BASE +#define CCP4_PIN GPIO_PIN_2 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP5_PORT (GPIO_PORTE_BASE) -#define CCP5_PIN (GPIO_PIN_5) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP5_PORT GPIO_PORTE_BASE +#define CCP5_PIN GPIO_PIN_5 -#define I2CSCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSCL_PORT (GPIO_PORTB_BASE) -#define I2CSCL_PIN (GPIO_PIN_2) +#define I2CSCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSCL_PORT GPIO_PORTB_BASE +#define I2CSCL_PIN GPIO_PIN_2 -#define I2CSDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSDA_PORT (GPIO_PORTB_BASE) -#define I2CSDA_PIN (GPIO_PIN_3) +#define I2CSDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSDA_PORT GPIO_PORTB_BASE +#define I2CSDA_PIN GPIO_PIN_3 -#define SSICLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSICLK_PORT (GPIO_PORTA_BASE) -#define SSICLK_PIN (GPIO_PIN_2) +#define SSICLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSICLK_PORT GPIO_PORTA_BASE +#define SSICLK_PIN GPIO_PIN_2 -#define SSIFSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIFSS_PORT (GPIO_PORTA_BASE) -#define SSIFSS_PIN (GPIO_PIN_3) +#define SSIFSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIFSS_PORT GPIO_PORTA_BASE +#define SSIFSS_PIN GPIO_PIN_3 -#define SSIRX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIRX_PORT (GPIO_PORTA_BASE) -#define SSIRX_PIN (GPIO_PIN_4) +#define SSIRX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIRX_PORT GPIO_PORTA_BASE +#define SSIRX_PIN GPIO_PIN_4 -#define SSITX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSITX_PORT (GPIO_PORTA_BASE) -#define SSITX_PIN (GPIO_PIN_5) +#define SSITX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSITX_PORT GPIO_PORTA_BASE +#define SSITX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S800 @@ -2874,169 +2874,169 @@ //***************************************************************************** #ifdef PART_LM3S801 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C0O_PORT (GPIO_PORTC_BASE) -#define C0O_PIN (GPIO_PIN_5) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOC +#define C0O_PORT GPIO_PORTC_BASE +#define C0O_PIN GPIO_PIN_5 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define C2_MINUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_MINUS_PORT (GPIO_PORTC_BASE) -#define C2_MINUS_PIN (GPIO_PIN_7) +#define C2_MINUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_MINUS_PORT GPIO_PORTC_BASE +#define C2_MINUS_PIN GPIO_PIN_7 -#define C2_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_PLUS_PORT (GPIO_PORTC_BASE) -#define C2_PLUS_PIN (GPIO_PIN_6) +#define C2_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_PLUS_PORT GPIO_PORTC_BASE +#define C2_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP0_PORT (GPIO_PORTD_BASE) -#define CCP0_PIN (GPIO_PIN_4) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP0_PORT GPIO_PORTD_BASE +#define CCP0_PIN GPIO_PIN_4 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP1_PORT (GPIO_PORTE_BASE) -#define CCP1_PIN (GPIO_PIN_3) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP1_PORT GPIO_PORTE_BASE +#define CCP1_PIN GPIO_PIN_3 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP2_PORT (GPIO_PORTD_BASE) -#define CCP2_PIN (GPIO_PIN_5) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP2_PORT GPIO_PORTD_BASE +#define CCP2_PIN GPIO_PIN_5 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP3_PORT (GPIO_PORTE_BASE) -#define CCP3_PIN (GPIO_PIN_4) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP3_PORT GPIO_PORTE_BASE +#define CCP3_PIN GPIO_PIN_4 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP4_PORT (GPIO_PORTE_BASE) -#define CCP4_PIN (GPIO_PIN_2) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP4_PORT GPIO_PORTE_BASE +#define CCP4_PIN GPIO_PIN_2 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP5_PORT (GPIO_PORTE_BASE) -#define CCP5_PIN (GPIO_PIN_5) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP5_PORT GPIO_PORTE_BASE +#define CCP5_PIN GPIO_PIN_5 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2CSCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSCL_PORT (GPIO_PORTB_BASE) -#define I2CSCL_PIN (GPIO_PIN_2) +#define I2CSCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSCL_PORT GPIO_PORTB_BASE +#define I2CSCL_PIN GPIO_PIN_2 -#define I2CSDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSDA_PORT (GPIO_PORTB_BASE) -#define I2CSDA_PIN (GPIO_PIN_3) +#define I2CSDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSDA_PORT GPIO_PORTB_BASE +#define I2CSDA_PIN GPIO_PIN_3 -#define IDX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define IDX_PORT (GPIO_PORTD_BASE) -#define IDX_PIN (GPIO_PIN_7) +#define IDX_PERIPH SYSCTL_PERIPH_GPIOD +#define IDX_PORT GPIO_PORTD_BASE +#define IDX_PIN GPIO_PIN_7 -#define PHA_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHA_PORT (GPIO_PORTC_BASE) -#define PHA_PIN (GPIO_PIN_4) +#define PHA_PERIPH SYSCTL_PERIPH_GPIOC +#define PHA_PORT GPIO_PORTC_BASE +#define PHA_PIN GPIO_PIN_4 -#define PHB_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHB_PORT (GPIO_PORTC_BASE) -#define PHB_PIN (GPIO_PIN_6) +#define PHB_PERIPH SYSCTL_PERIPH_GPIOC +#define PHB_PORT GPIO_PORTC_BASE +#define PHB_PIN GPIO_PIN_6 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM2_PORT (GPIO_PORTB_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM2_PORT GPIO_PORTB_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM3_PORT (GPIO_PORTB_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM3_PORT GPIO_PORTB_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM4_PORT (GPIO_PORTE_BASE) -#define PWM4_PIN (GPIO_PIN_0) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM4_PORT GPIO_PORTE_BASE +#define PWM4_PIN GPIO_PIN_0 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM5_PORT (GPIO_PORTE_BASE) -#define PWM5_PIN (GPIO_PIN_1) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM5_PORT GPIO_PORTE_BASE +#define PWM5_PIN GPIO_PIN_1 -#define SSICLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSICLK_PORT (GPIO_PORTA_BASE) -#define SSICLK_PIN (GPIO_PIN_2) +#define SSICLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSICLK_PORT GPIO_PORTA_BASE +#define SSICLK_PIN GPIO_PIN_2 -#define SSIFSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIFSS_PORT (GPIO_PORTA_BASE) -#define SSIFSS_PIN (GPIO_PIN_3) +#define SSIFSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIFSS_PORT GPIO_PORTA_BASE +#define SSIFSS_PIN GPIO_PIN_3 -#define SSIRX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIRX_PORT (GPIO_PORTA_BASE) -#define SSIRX_PIN (GPIO_PIN_4) +#define SSIRX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIRX_PORT GPIO_PORTA_BASE +#define SSIRX_PIN GPIO_PIN_4 -#define SSITX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSITX_PORT (GPIO_PORTA_BASE) -#define SSITX_PIN (GPIO_PIN_5) +#define SSITX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSITX_PORT GPIO_PORTA_BASE +#define SSITX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S801 @@ -3047,109 +3047,109 @@ //***************************************************************************** #ifdef PART_LM3S808 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP1_PORT (GPIO_PORTC_BASE) -#define CCP1_PIN (GPIO_PIN_5) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP1_PORT GPIO_PORTC_BASE +#define CCP1_PIN GPIO_PIN_5 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP5_PORT (GPIO_PORTB_BASE) -#define CCP5_PIN (GPIO_PIN_5) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP5_PORT GPIO_PORTB_BASE +#define CCP5_PIN GPIO_PIN_5 -#define I2CSCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSCL_PORT (GPIO_PORTB_BASE) -#define I2CSCL_PIN (GPIO_PIN_2) +#define I2CSCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSCL_PORT GPIO_PORTB_BASE +#define I2CSCL_PIN GPIO_PIN_2 -#define I2CSDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSDA_PORT (GPIO_PORTB_BASE) -#define I2CSDA_PIN (GPIO_PIN_3) +#define I2CSDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSDA_PORT GPIO_PORTB_BASE +#define I2CSDA_PIN GPIO_PIN_3 -#define SSICLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSICLK_PORT (GPIO_PORTA_BASE) -#define SSICLK_PIN (GPIO_PIN_2) +#define SSICLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSICLK_PORT GPIO_PORTA_BASE +#define SSICLK_PIN GPIO_PIN_2 -#define SSIFSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIFSS_PORT (GPIO_PORTA_BASE) -#define SSIFSS_PIN (GPIO_PIN_3) +#define SSIFSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIFSS_PORT GPIO_PORTA_BASE +#define SSIFSS_PIN GPIO_PIN_3 -#define SSIRX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIRX_PORT (GPIO_PORTA_BASE) -#define SSIRX_PIN (GPIO_PIN_4) +#define SSIRX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIRX_PORT GPIO_PORTA_BASE +#define SSIRX_PIN GPIO_PIN_4 -#define SSITX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSITX_PORT (GPIO_PORTA_BASE) -#define SSITX_PIN (GPIO_PIN_5) +#define SSITX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSITX_PORT GPIO_PORTA_BASE +#define SSITX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S808 @@ -3160,141 +3160,141 @@ //***************************************************************************** #ifdef PART_LM3S811 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOD) -#define C0O_PORT (GPIO_PORTD_BASE) -#define C0O_PIN (GPIO_PIN_7) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOD +#define C0O_PORT GPIO_PORTD_BASE +#define C0O_PIN GPIO_PIN_7 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP0_PORT (GPIO_PORTD_BASE) -#define CCP0_PIN (GPIO_PIN_4) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP0_PORT GPIO_PORTD_BASE +#define CCP0_PIN GPIO_PIN_4 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP1_PORT (GPIO_PORTC_BASE) -#define CCP1_PIN (GPIO_PIN_5) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP1_PORT GPIO_PORTC_BASE +#define CCP1_PIN GPIO_PIN_5 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP2_PORT (GPIO_PORTD_BASE) -#define CCP2_PIN (GPIO_PIN_5) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP2_PORT GPIO_PORTD_BASE +#define CCP2_PIN GPIO_PIN_5 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP5_PORT (GPIO_PORTB_BASE) -#define CCP5_PIN (GPIO_PIN_5) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP5_PORT GPIO_PORTB_BASE +#define CCP5_PIN GPIO_PIN_5 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2CSCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSCL_PORT (GPIO_PORTB_BASE) -#define I2CSCL_PIN (GPIO_PIN_2) +#define I2CSCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSCL_PORT GPIO_PORTB_BASE +#define I2CSCL_PIN GPIO_PIN_2 -#define I2CSDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSDA_PORT (GPIO_PORTB_BASE) -#define I2CSDA_PIN (GPIO_PIN_3) +#define I2CSDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSDA_PORT GPIO_PORTB_BASE +#define I2CSDA_PIN GPIO_PIN_3 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM2_PORT (GPIO_PORTB_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM2_PORT GPIO_PORTB_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM3_PORT (GPIO_PORTB_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM3_PORT GPIO_PORTB_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM4_PORT (GPIO_PORTE_BASE) -#define PWM4_PIN (GPIO_PIN_0) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM4_PORT GPIO_PORTE_BASE +#define PWM4_PIN GPIO_PIN_0 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM5_PORT (GPIO_PORTE_BASE) -#define PWM5_PIN (GPIO_PIN_1) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM5_PORT GPIO_PORTE_BASE +#define PWM5_PIN GPIO_PIN_1 -#define SSICLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSICLK_PORT (GPIO_PORTA_BASE) -#define SSICLK_PIN (GPIO_PIN_2) +#define SSICLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSICLK_PORT GPIO_PORTA_BASE +#define SSICLK_PIN GPIO_PIN_2 -#define SSIFSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIFSS_PORT (GPIO_PORTA_BASE) -#define SSIFSS_PIN (GPIO_PIN_3) +#define SSIFSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIFSS_PORT GPIO_PORTA_BASE +#define SSIFSS_PIN GPIO_PIN_3 -#define SSIRX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIRX_PORT (GPIO_PORTA_BASE) -#define SSIRX_PIN (GPIO_PIN_4) +#define SSIRX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIRX_PORT GPIO_PORTA_BASE +#define SSIRX_PIN GPIO_PIN_4 -#define SSITX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSITX_PORT (GPIO_PORTA_BASE) -#define SSITX_PIN (GPIO_PIN_5) +#define SSITX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSITX_PORT GPIO_PORTA_BASE +#define SSITX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S811 @@ -3305,125 +3305,125 @@ //***************************************************************************** #ifdef PART_LM3S812 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOD) -#define C0O_PORT (GPIO_PORTD_BASE) -#define C0O_PIN (GPIO_PIN_7) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOD +#define C0O_PORT GPIO_PORTD_BASE +#define C0O_PIN GPIO_PIN_7 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP1_PORT (GPIO_PORTE_BASE) -#define CCP1_PIN (GPIO_PIN_3) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP1_PORT GPIO_PORTE_BASE +#define CCP1_PIN GPIO_PIN_3 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP2_PORT (GPIO_PORTD_BASE) -#define CCP2_PIN (GPIO_PIN_5) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP2_PORT GPIO_PORTD_BASE +#define CCP2_PIN GPIO_PIN_5 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP5_PORT (GPIO_PORTB_BASE) -#define CCP5_PIN (GPIO_PIN_5) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP5_PORT GPIO_PORTB_BASE +#define CCP5_PIN GPIO_PIN_5 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2CSCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSCL_PORT (GPIO_PORTB_BASE) -#define I2CSCL_PIN (GPIO_PIN_2) +#define I2CSCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSCL_PORT GPIO_PORTB_BASE +#define I2CSCL_PIN GPIO_PIN_2 -#define I2CSDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSDA_PORT (GPIO_PORTB_BASE) -#define I2CSDA_PIN (GPIO_PIN_3) +#define I2CSDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSDA_PORT GPIO_PORTB_BASE +#define I2CSDA_PIN GPIO_PIN_3 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define SSICLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSICLK_PORT (GPIO_PORTA_BASE) -#define SSICLK_PIN (GPIO_PIN_2) +#define SSICLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSICLK_PORT GPIO_PORTA_BASE +#define SSICLK_PIN GPIO_PIN_2 -#define SSIFSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIFSS_PORT (GPIO_PORTA_BASE) -#define SSIFSS_PIN (GPIO_PIN_3) +#define SSIFSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIFSS_PORT GPIO_PORTA_BASE +#define SSIFSS_PIN GPIO_PIN_3 -#define SSIRX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIRX_PORT (GPIO_PORTA_BASE) -#define SSIRX_PIN (GPIO_PIN_4) +#define SSIRX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIRX_PORT GPIO_PORTA_BASE +#define SSIRX_PIN GPIO_PIN_4 -#define SSITX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSITX_PORT (GPIO_PORTA_BASE) -#define SSITX_PIN (GPIO_PIN_5) +#define SSITX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSITX_PORT GPIO_PORTA_BASE +#define SSITX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S812 @@ -3434,161 +3434,161 @@ //***************************************************************************** #ifdef PART_LM3S815 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOD) -#define C0O_PORT (GPIO_PORTD_BASE) -#define C0O_PIN (GPIO_PIN_7) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOD +#define C0O_PORT GPIO_PORTD_BASE +#define C0O_PIN GPIO_PIN_7 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1O_PORT (GPIO_PORTC_BASE) -#define C1O_PIN (GPIO_PIN_5) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOC +#define C1O_PORT GPIO_PORTC_BASE +#define C1O_PIN GPIO_PIN_5 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define C2_MINUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_MINUS_PORT (GPIO_PORTC_BASE) -#define C2_MINUS_PIN (GPIO_PIN_7) +#define C2_MINUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_MINUS_PORT GPIO_PORTC_BASE +#define C2_MINUS_PIN GPIO_PIN_7 -#define C2_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_PLUS_PORT (GPIO_PORTC_BASE) -#define C2_PLUS_PIN (GPIO_PIN_6) +#define C2_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_PLUS_PORT GPIO_PORTC_BASE +#define C2_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP0_PORT (GPIO_PORTD_BASE) -#define CCP0_PIN (GPIO_PIN_4) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP0_PORT GPIO_PORTD_BASE +#define CCP0_PIN GPIO_PIN_4 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP1_PORT (GPIO_PORTE_BASE) -#define CCP1_PIN (GPIO_PIN_3) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP1_PORT GPIO_PORTE_BASE +#define CCP1_PIN GPIO_PIN_3 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP2_PORT (GPIO_PORTD_BASE) -#define CCP2_PIN (GPIO_PIN_5) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP2_PORT GPIO_PORTD_BASE +#define CCP2_PIN GPIO_PIN_5 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP4_PORT (GPIO_PORTE_BASE) -#define CCP4_PIN (GPIO_PIN_2) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP4_PORT GPIO_PORTE_BASE +#define CCP4_PIN GPIO_PIN_2 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2CSCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSCL_PORT (GPIO_PORTB_BASE) -#define I2CSCL_PIN (GPIO_PIN_2) +#define I2CSCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSCL_PORT GPIO_PORTB_BASE +#define I2CSCL_PIN GPIO_PIN_2 -#define I2CSDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSDA_PORT (GPIO_PORTB_BASE) -#define I2CSDA_PIN (GPIO_PIN_3) +#define I2CSDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSDA_PORT GPIO_PORTB_BASE +#define I2CSDA_PIN GPIO_PIN_3 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM2_PORT (GPIO_PORTB_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM2_PORT GPIO_PORTB_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM3_PORT (GPIO_PORTB_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM3_PORT GPIO_PORTB_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM4_PORT (GPIO_PORTE_BASE) -#define PWM4_PIN (GPIO_PIN_0) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM4_PORT GPIO_PORTE_BASE +#define PWM4_PIN GPIO_PIN_0 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM5_PORT (GPIO_PORTE_BASE) -#define PWM5_PIN (GPIO_PIN_1) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM5_PORT GPIO_PORTE_BASE +#define PWM5_PIN GPIO_PIN_1 -#define SSICLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSICLK_PORT (GPIO_PORTA_BASE) -#define SSICLK_PIN (GPIO_PIN_2) +#define SSICLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSICLK_PORT GPIO_PORTA_BASE +#define SSICLK_PIN GPIO_PIN_2 -#define SSIFSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIFSS_PORT (GPIO_PORTA_BASE) -#define SSIFSS_PIN (GPIO_PIN_3) +#define SSIFSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIFSS_PORT GPIO_PORTA_BASE +#define SSIFSS_PIN GPIO_PIN_3 -#define SSIRX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIRX_PORT (GPIO_PORTA_BASE) -#define SSIRX_PIN (GPIO_PIN_4) +#define SSIRX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIRX_PORT GPIO_PORTA_BASE +#define SSIRX_PIN GPIO_PIN_4 -#define SSITX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSITX_PORT (GPIO_PORTA_BASE) -#define SSITX_PIN (GPIO_PIN_5) +#define SSITX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSITX_PORT GPIO_PORTA_BASE +#define SSITX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S815 @@ -3599,133 +3599,133 @@ //***************************************************************************** #ifdef PART_LM3S817 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0O_PORT (GPIO_PORTB_BASE) -#define C0O_PIN (GPIO_PIN_5) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOB +#define C0O_PORT GPIO_PORTB_BASE +#define C0O_PIN GPIO_PIN_5 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP0_PORT (GPIO_PORTD_BASE) -#define CCP0_PIN (GPIO_PIN_4) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP0_PORT GPIO_PORTD_BASE +#define CCP0_PIN GPIO_PIN_4 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP1_PORT (GPIO_PORTC_BASE) -#define CCP1_PIN (GPIO_PIN_5) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP1_PORT GPIO_PORTC_BASE +#define CCP1_PIN GPIO_PIN_5 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP2_PORT (GPIO_PORTD_BASE) -#define CCP2_PIN (GPIO_PIN_5) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP2_PORT GPIO_PORTD_BASE +#define CCP2_PIN GPIO_PIN_5 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOB) -#define FAULT_PORT (GPIO_PORTB_BASE) -#define FAULT_PIN (GPIO_PIN_3) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOB +#define FAULT_PORT GPIO_PORTB_BASE +#define FAULT_PIN GPIO_PIN_3 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM2_PORT (GPIO_PORTB_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM2_PORT GPIO_PORTB_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM3_PORT (GPIO_PORTB_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM3_PORT GPIO_PORTB_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM4_PORT (GPIO_PORTE_BASE) -#define PWM4_PIN (GPIO_PIN_0) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM4_PORT GPIO_PORTE_BASE +#define PWM4_PIN GPIO_PIN_0 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM5_PORT (GPIO_PORTE_BASE) -#define PWM5_PIN (GPIO_PIN_1) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM5_PORT GPIO_PORTE_BASE +#define PWM5_PIN GPIO_PIN_1 -#define SSICLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSICLK_PORT (GPIO_PORTA_BASE) -#define SSICLK_PIN (GPIO_PIN_2) +#define SSICLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSICLK_PORT GPIO_PORTA_BASE +#define SSICLK_PIN GPIO_PIN_2 -#define SSIFSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIFSS_PORT (GPIO_PORTA_BASE) -#define SSIFSS_PIN (GPIO_PIN_3) +#define SSIFSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIFSS_PORT GPIO_PORTA_BASE +#define SSIFSS_PIN GPIO_PIN_3 -#define SSIRX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIRX_PORT (GPIO_PORTA_BASE) -#define SSIRX_PIN (GPIO_PIN_4) +#define SSIRX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIRX_PORT GPIO_PORTA_BASE +#define SSIRX_PIN GPIO_PIN_4 -#define SSITX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSITX_PORT (GPIO_PORTA_BASE) -#define SSITX_PIN (GPIO_PIN_5) +#define SSITX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSITX_PORT GPIO_PORTA_BASE +#define SSITX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S817 @@ -3736,137 +3736,137 @@ //***************************************************************************** #ifdef PART_LM3S818 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0O_PORT (GPIO_PORTB_BASE) -#define C0O_PIN (GPIO_PIN_5) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOB +#define C0O_PORT GPIO_PORTB_BASE +#define C0O_PIN GPIO_PIN_5 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP0_PORT (GPIO_PORTD_BASE) -#define CCP0_PIN (GPIO_PIN_4) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP0_PORT GPIO_PORTD_BASE +#define CCP0_PIN GPIO_PIN_4 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP1_PORT (GPIO_PORTC_BASE) -#define CCP1_PIN (GPIO_PIN_5) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP1_PORT GPIO_PORTC_BASE +#define CCP1_PIN GPIO_PIN_5 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP2_PORT (GPIO_PORTD_BASE) -#define CCP2_PIN (GPIO_PIN_5) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP2_PORT GPIO_PORTD_BASE +#define CCP2_PIN GPIO_PIN_5 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOB) -#define FAULT_PORT (GPIO_PORTB_BASE) -#define FAULT_PIN (GPIO_PIN_3) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOB +#define FAULT_PORT GPIO_PORTB_BASE +#define FAULT_PIN GPIO_PIN_3 -#define IDX_PERIPH (SYSCTL_PERIPH_GPIOB) -#define IDX_PORT (GPIO_PORTB_BASE) -#define IDX_PIN (GPIO_PIN_2) +#define IDX_PERIPH SYSCTL_PERIPH_GPIOB +#define IDX_PORT GPIO_PORTB_BASE +#define IDX_PIN GPIO_PIN_2 -#define PHA_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHA_PORT (GPIO_PORTC_BASE) -#define PHA_PIN (GPIO_PIN_4) +#define PHA_PERIPH SYSCTL_PERIPH_GPIOC +#define PHA_PORT GPIO_PORTC_BASE +#define PHA_PIN GPIO_PIN_4 -#define PHB_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHB_PORT (GPIO_PORTC_BASE) -#define PHB_PIN (GPIO_PIN_6) +#define PHB_PERIPH SYSCTL_PERIPH_GPIOC +#define PHB_PORT GPIO_PORTC_BASE +#define PHB_PIN GPIO_PIN_6 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM2_PORT (GPIO_PORTB_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM2_PORT GPIO_PORTB_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM3_PORT (GPIO_PORTB_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM3_PORT GPIO_PORTB_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM4_PORT (GPIO_PORTE_BASE) -#define PWM4_PIN (GPIO_PIN_0) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM4_PORT GPIO_PORTE_BASE +#define PWM4_PIN GPIO_PIN_0 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM5_PORT (GPIO_PORTE_BASE) -#define PWM5_PIN (GPIO_PIN_1) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM5_PORT GPIO_PORTE_BASE +#define PWM5_PIN GPIO_PIN_1 -#define SSICLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSICLK_PORT (GPIO_PORTA_BASE) -#define SSICLK_PIN (GPIO_PIN_2) +#define SSICLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSICLK_PORT GPIO_PORTA_BASE +#define SSICLK_PIN GPIO_PIN_2 -#define SSIFSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIFSS_PORT (GPIO_PORTA_BASE) -#define SSIFSS_PIN (GPIO_PIN_3) +#define SSIFSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIFSS_PORT GPIO_PORTA_BASE +#define SSIFSS_PIN GPIO_PIN_3 -#define SSIRX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIRX_PORT (GPIO_PORTA_BASE) -#define SSIRX_PIN (GPIO_PIN_4) +#define SSIRX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIRX_PORT GPIO_PORTA_BASE +#define SSIRX_PIN GPIO_PIN_4 -#define SSITX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSITX_PORT (GPIO_PORTA_BASE) -#define SSITX_PIN (GPIO_PIN_5) +#define SSITX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSITX_PORT GPIO_PORTA_BASE +#define SSITX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S818 @@ -3877,101 +3877,101 @@ //***************************************************************************** #ifdef PART_LM3S828 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP1_PORT (GPIO_PORTC_BASE) -#define CCP1_PIN (GPIO_PIN_5) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP1_PORT GPIO_PORTC_BASE +#define CCP1_PIN GPIO_PIN_5 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP5_PORT (GPIO_PORTB_BASE) -#define CCP5_PIN (GPIO_PIN_5) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP5_PORT GPIO_PORTB_BASE +#define CCP5_PIN GPIO_PIN_5 -#define I2CSCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSCL_PORT (GPIO_PORTB_BASE) -#define I2CSCL_PIN (GPIO_PIN_2) +#define I2CSCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSCL_PORT GPIO_PORTB_BASE +#define I2CSCL_PIN GPIO_PIN_2 -#define I2CSDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2CSDA_PORT (GPIO_PORTB_BASE) -#define I2CSDA_PIN (GPIO_PIN_3) +#define I2CSDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2CSDA_PORT GPIO_PORTB_BASE +#define I2CSDA_PIN GPIO_PIN_3 -#define SSICLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSICLK_PORT (GPIO_PORTA_BASE) -#define SSICLK_PIN (GPIO_PIN_2) +#define SSICLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSICLK_PORT GPIO_PORTA_BASE +#define SSICLK_PIN GPIO_PIN_2 -#define SSIFSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIFSS_PORT (GPIO_PORTA_BASE) -#define SSIFSS_PIN (GPIO_PIN_3) +#define SSIFSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIFSS_PORT GPIO_PORTA_BASE +#define SSIFSS_PIN GPIO_PIN_3 -#define SSIRX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSIRX_PORT (GPIO_PORTA_BASE) -#define SSIRX_PIN (GPIO_PIN_4) +#define SSIRX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSIRX_PORT GPIO_PORTA_BASE +#define SSIRX_PIN GPIO_PIN_4 -#define SSITX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSITX_PORT (GPIO_PORTA_BASE) -#define SSITX_PIN (GPIO_PIN_5) +#define SSITX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSITX_PORT GPIO_PORTA_BASE +#define SSITX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S828 @@ -3982,101 +3982,101 @@ //***************************************************************************** #ifdef PART_LM3S1110 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOD) -#define C0O_PORT (GPIO_PORTD_BASE) -#define C0O_PIN (GPIO_PIN_7) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOD +#define C0O_PORT GPIO_PORTD_BASE +#define C0O_PIN GPIO_PIN_7 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOE) -#define C1O_PORT (GPIO_PORTE_BASE) -#define C1O_PIN (GPIO_PIN_6) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOE +#define C1O_PORT GPIO_PORTE_BASE +#define C1O_PIN GPIO_PIN_6 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S1110 @@ -4087,157 +4087,157 @@ //***************************************************************************** #ifdef PART_LM3S1133 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C0O_PORT (GPIO_PORTC_BASE) -#define C0O_PIN (GPIO_PIN_5) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOC +#define C0O_PORT GPIO_PORTC_BASE +#define C0O_PIN GPIO_PIN_5 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP4_PORT (GPIO_PORTA_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP4_PORT GPIO_PORTA_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP5_PORT (GPIO_PORTB_BASE) -#define CCP5_PIN (GPIO_PIN_5) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP5_PORT GPIO_PORTB_BASE +#define CCP5_PIN GPIO_PIN_5 -#define CCP6_PERIPH (SYSCTL_PERIPH_GPIOH) -#define CCP6_PORT (GPIO_PORTH_BASE) -#define CCP6_PIN (GPIO_PIN_0) +#define CCP6_PERIPH SYSCTL_PERIPH_GPIOH +#define CCP6_PORT GPIO_PORTH_BASE +#define CCP6_PIN GPIO_PIN_0 -#define CCP7_PERIPH (SYSCTL_PERIPH_GPIOH) -#define CCP7_PORT (GPIO_PORTH_BASE) -#define CCP7_PIN (GPIO_PIN_1) +#define CCP7_PERIPH SYSCTL_PERIPH_GPIOH +#define CCP7_PORT GPIO_PORTH_BASE +#define CCP7_PIN GPIO_PIN_1 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 -#define U2RX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2RX_PORT (GPIO_PORTG_BASE) -#define U2RX_PIN (GPIO_PIN_0) +#define U2RX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2RX_PORT GPIO_PORTG_BASE +#define U2RX_PIN GPIO_PIN_0 -#define U2TX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2TX_PORT (GPIO_PORTG_BASE) -#define U2TX_PIN (GPIO_PIN_1) +#define U2TX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2TX_PORT GPIO_PORTG_BASE +#define U2TX_PIN GPIO_PIN_1 #endif // PART_LM3S1133 @@ -4248,169 +4248,169 @@ //***************************************************************************** #ifdef PART_LM3S1138 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C0O_PORT (GPIO_PORTF_BASE) -#define C0O_PIN (GPIO_PIN_4) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOF +#define C0O_PORT GPIO_PORTF_BASE +#define C0O_PIN GPIO_PIN_4 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C1O_PORT (GPIO_PORTF_BASE) -#define C1O_PIN (GPIO_PIN_5) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOF +#define C1O_PORT GPIO_PORTF_BASE +#define C1O_PIN GPIO_PIN_5 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define C2O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2O_PORT (GPIO_PORTC_BASE) -#define C2O_PIN (GPIO_PIN_6) +#define C2O_PERIPH SYSCTL_PERIPH_GPIOC +#define C2O_PORT GPIO_PORTC_BASE +#define C2O_PIN GPIO_PIN_6 -#define C2_MINUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_MINUS_PORT (GPIO_PORTC_BASE) -#define C2_MINUS_PIN (GPIO_PIN_7) +#define C2_MINUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_MINUS_PORT GPIO_PORTC_BASE +#define C2_MINUS_PIN GPIO_PIN_7 -#define C2_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_PLUS_PORT (GPIO_PORTC_BASE) -#define C2_PLUS_PIN (GPIO_PIN_6) +#define C2_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_PLUS_PORT GPIO_PORTC_BASE +#define C2_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define CCP1_PORT (GPIO_PORTF_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOF +#define CCP1_PORT GPIO_PORTF_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOG) -#define CCP3_PORT (GPIO_PORTG_BASE) -#define CCP3_PIN (GPIO_PIN_4) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOG +#define CCP3_PORT GPIO_PORTG_BASE +#define CCP3_PIN GPIO_PIN_4 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOF) -#define CCP4_PORT (GPIO_PORTF_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOF +#define CCP4_PORT GPIO_PORTF_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define I2C1SCL_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SCL_PORT (GPIO_PORTA_BASE) -#define I2C1SCL_PIN (GPIO_PIN_6) +#define I2C1SCL_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SCL_PORT GPIO_PORTA_BASE +#define I2C1SCL_PIN GPIO_PIN_6 -#define I2C1SDA_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SDA_PORT (GPIO_PORTA_BASE) -#define I2C1SDA_PIN (GPIO_PIN_7) +#define I2C1SDA_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SDA_PORT GPIO_PORTA_BASE +#define I2C1SDA_PIN GPIO_PIN_7 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 -#define U2RX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2RX_PORT (GPIO_PORTG_BASE) -#define U2RX_PIN (GPIO_PIN_0) +#define U2RX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2RX_PORT GPIO_PORTG_BASE +#define U2RX_PIN GPIO_PIN_0 -#define U2TX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2TX_PORT (GPIO_PORTG_BASE) -#define U2TX_PIN (GPIO_PIN_1) +#define U2TX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2TX_PORT GPIO_PORTG_BASE +#define U2TX_PIN GPIO_PIN_1 #endif // PART_LM3S1138 @@ -4421,197 +4421,197 @@ //***************************************************************************** #ifdef PART_LM3S1150 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C0O_PORT (GPIO_PORTF_BASE) -#define C0O_PIN (GPIO_PIN_4) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOF +#define C0O_PORT GPIO_PORTF_BASE +#define C0O_PIN GPIO_PIN_4 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C1O_PORT (GPIO_PORTF_BASE) -#define C1O_PIN (GPIO_PIN_5) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOF +#define C1O_PORT GPIO_PORTF_BASE +#define C1O_PIN GPIO_PIN_5 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define C2_MINUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_MINUS_PORT (GPIO_PORTC_BASE) -#define C2_MINUS_PIN (GPIO_PIN_7) +#define C2_MINUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_MINUS_PORT GPIO_PORTC_BASE +#define C2_MINUS_PIN GPIO_PIN_7 -#define C2_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_PLUS_PORT (GPIO_PORTC_BASE) -#define C2_PLUS_PIN (GPIO_PIN_6) +#define C2_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_PLUS_PORT GPIO_PORTC_BASE +#define C2_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP3_PORT (GPIO_PORTD_BASE) -#define CCP3_PIN (GPIO_PIN_4) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP3_PORT GPIO_PORTD_BASE +#define CCP3_PIN GPIO_PIN_4 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP4_PORT (GPIO_PORTA_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP4_PORT GPIO_PORTA_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define IDX0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define IDX0_PORT (GPIO_PORTD_BASE) -#define IDX0_PIN (GPIO_PIN_7) +#define IDX0_PERIPH SYSCTL_PERIPH_GPIOD +#define IDX0_PORT GPIO_PORTD_BASE +#define IDX0_PIN GPIO_PIN_7 -#define PHA0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PHA0_PORT (GPIO_PORTD_BASE) -#define PHA0_PIN (GPIO_PIN_1) +#define PHA0_PERIPH SYSCTL_PERIPH_GPIOD +#define PHA0_PORT GPIO_PORTD_BASE +#define PHA0_PIN GPIO_PIN_1 -#define PHB0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PHB0_PORT (GPIO_PORTF_BASE) -#define PHB0_PIN (GPIO_PIN_0) +#define PHB0_PERIPH SYSCTL_PERIPH_GPIOF +#define PHB0_PORT GPIO_PORTF_BASE +#define PHB0_PIN GPIO_PIN_0 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM1_PORT (GPIO_PORTF_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM1_PORT GPIO_PORTF_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PWM2_PORT (GPIO_PORTH_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOH +#define PWM2_PORT GPIO_PORTH_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PWM3_PORT (GPIO_PORTH_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOH +#define PWM3_PORT GPIO_PORTH_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM4_PORT (GPIO_PORTE_BASE) -#define PWM4_PIN (GPIO_PIN_6) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM4_PORT GPIO_PORTE_BASE +#define PWM4_PIN GPIO_PIN_6 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM5_PORT (GPIO_PORTE_BASE) -#define PWM5_PIN (GPIO_PIN_7) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM5_PORT GPIO_PORTE_BASE +#define PWM5_PIN GPIO_PIN_7 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 -#define U2RX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2RX_PORT (GPIO_PORTG_BASE) -#define U2RX_PIN (GPIO_PIN_0) +#define U2RX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2RX_PORT GPIO_PORTG_BASE +#define U2RX_PIN GPIO_PIN_0 -#define U2TX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2TX_PORT (GPIO_PORTG_BASE) -#define U2TX_PIN (GPIO_PIN_1) +#define U2TX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2TX_PORT GPIO_PORTG_BASE +#define U2TX_PIN GPIO_PIN_1 #endif // PART_LM3S1150 @@ -4622,185 +4622,185 @@ //***************************************************************************** #ifdef PART_LM3S1162 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOD) -#define C0O_PORT (GPIO_PORTD_BASE) -#define C0O_PIN (GPIO_PIN_7) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOD +#define C0O_PORT GPIO_PORTD_BASE +#define C0O_PIN GPIO_PIN_7 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C1O_PORT (GPIO_PORTF_BASE) -#define C1O_PIN (GPIO_PIN_5) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOF +#define C1O_PORT GPIO_PORTF_BASE +#define C1O_PIN GPIO_PIN_5 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define C2_MINUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_MINUS_PORT (GPIO_PORTC_BASE) -#define C2_MINUS_PIN (GPIO_PIN_7) +#define C2_MINUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_MINUS_PORT GPIO_PORTC_BASE +#define C2_MINUS_PIN GPIO_PIN_7 -#define C2_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_PLUS_PORT (GPIO_PORTC_BASE) -#define C2_PLUS_PIN (GPIO_PIN_6) +#define C2_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_PLUS_PORT GPIO_PORTC_BASE +#define C2_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP3_PORT (GPIO_PORTD_BASE) -#define CCP3_PIN (GPIO_PIN_4) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP3_PORT GPIO_PORTD_BASE +#define CCP3_PIN GPIO_PIN_4 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP4_PORT (GPIO_PORTA_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP4_PORT GPIO_PORTA_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PWM2_PORT (GPIO_PORTH_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOH +#define PWM2_PORT GPIO_PORTH_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PWM3_PORT (GPIO_PORTH_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOH +#define PWM3_PORT GPIO_PORTH_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM4_PORT (GPIO_PORTF_BASE) -#define PWM4_PIN (GPIO_PIN_2) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM4_PORT GPIO_PORTF_BASE +#define PWM4_PIN GPIO_PIN_2 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM5_PORT (GPIO_PORTF_BASE) -#define PWM5_PIN (GPIO_PIN_3) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM5_PORT GPIO_PORTF_BASE +#define PWM5_PIN GPIO_PIN_3 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 -#define U2RX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2RX_PORT (GPIO_PORTG_BASE) -#define U2RX_PIN (GPIO_PIN_0) +#define U2RX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2RX_PORT GPIO_PORTG_BASE +#define U2RX_PIN GPIO_PIN_0 -#define U2TX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2TX_PORT (GPIO_PORTG_BASE) -#define U2TX_PIN (GPIO_PIN_1) +#define U2TX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2TX_PORT GPIO_PORTG_BASE +#define U2TX_PIN GPIO_PIN_1 #endif // PART_LM3S1162 @@ -4811,173 +4811,173 @@ //***************************************************************************** #ifdef PART_LM3S1165 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C0O_PORT (GPIO_PORTC_BASE) -#define C0O_PIN (GPIO_PIN_5) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOC +#define C0O_PORT GPIO_PORTC_BASE +#define C0O_PIN GPIO_PIN_5 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP2_PORT (GPIO_PORTD_BASE) -#define CCP2_PIN (GPIO_PIN_5) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP2_PORT GPIO_PORTD_BASE +#define CCP2_PIN GPIO_PIN_5 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP4_PORT (GPIO_PORTA_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP4_PORT GPIO_PORTA_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define CCP6_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP6_PORT (GPIO_PORTB_BASE) -#define CCP6_PIN (GPIO_PIN_5) +#define CCP6_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP6_PORT GPIO_PORTB_BASE +#define CCP6_PIN GPIO_PIN_5 -#define CCP7_PERIPH (SYSCTL_PERIPH_GPIOH) -#define CCP7_PORT (GPIO_PORTH_BASE) -#define CCP7_PIN (GPIO_PIN_1) +#define CCP7_PERIPH SYSCTL_PERIPH_GPIOH +#define CCP7_PORT GPIO_PORTH_BASE +#define CCP7_PIN GPIO_PIN_1 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PWM2_PORT (GPIO_PORTH_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOH +#define PWM2_PORT GPIO_PORTH_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM3_PORT (GPIO_PORTB_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM3_PORT GPIO_PORTB_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM4_PORT (GPIO_PORTF_BASE) -#define PWM4_PIN (GPIO_PIN_2) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM4_PORT GPIO_PORTF_BASE +#define PWM4_PIN GPIO_PIN_2 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM5_PORT (GPIO_PORTF_BASE) -#define PWM5_PIN (GPIO_PIN_3) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM5_PORT GPIO_PORTF_BASE +#define PWM5_PIN GPIO_PIN_3 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 -#define U2RX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2RX_PORT (GPIO_PORTG_BASE) -#define U2RX_PIN (GPIO_PIN_0) +#define U2RX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2RX_PORT GPIO_PORTG_BASE +#define U2RX_PIN GPIO_PIN_0 -#define U2TX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2TX_PORT (GPIO_PORTG_BASE) -#define U2TX_PIN (GPIO_PIN_1) +#define U2TX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2TX_PORT GPIO_PORTG_BASE +#define U2TX_PIN GPIO_PIN_1 #endif // PART_LM3S1165 @@ -4988,129 +4988,129 @@ //***************************************************************************** #ifdef PART_LM3S1332 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOD) -#define C0O_PORT (GPIO_PORTD_BASE) -#define C0O_PIN (GPIO_PIN_7) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOD +#define C0O_PORT GPIO_PORTD_BASE +#define C0O_PIN GPIO_PIN_7 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define C2_MINUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_MINUS_PORT (GPIO_PORTC_BASE) -#define C2_MINUS_PIN (GPIO_PIN_7) +#define C2_MINUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_MINUS_PORT GPIO_PORTC_BASE +#define C2_MINUS_PIN GPIO_PIN_7 -#define C2_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_PLUS_PORT (GPIO_PORTC_BASE) -#define C2_PLUS_PIN (GPIO_PIN_6) +#define C2_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_PLUS_PORT GPIO_PORTC_BASE +#define C2_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP3_PORT (GPIO_PORTD_BASE) -#define CCP3_PIN (GPIO_PIN_4) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP3_PORT GPIO_PORTD_BASE +#define CCP3_PIN GPIO_PIN_4 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP4_PORT (GPIO_PORTA_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP4_PORT GPIO_PORTA_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define CCP6_PERIPH (SYSCTL_PERIPH_GPIOH) -#define CCP6_PORT (GPIO_PORTH_BASE) -#define CCP6_PIN (GPIO_PIN_0) +#define CCP6_PERIPH SYSCTL_PERIPH_GPIOH +#define CCP6_PORT GPIO_PORTH_BASE +#define CCP6_PIN GPIO_PIN_0 -#define CCP7_PERIPH (SYSCTL_PERIPH_GPIOH) -#define CCP7_PORT (GPIO_PORTH_BASE) -#define CCP7_PIN (GPIO_PIN_1) +#define CCP7_PERIPH SYSCTL_PERIPH_GPIOH +#define CCP7_PORT GPIO_PORTH_BASE +#define CCP7_PIN GPIO_PIN_1 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S1332 @@ -5121,117 +5121,117 @@ //***************************************************************************** #ifdef PART_LM3S1435 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0O_PORT (GPIO_PORTB_BASE) -#define C0O_PIN (GPIO_PIN_5) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOB +#define C0O_PORT GPIO_PORTB_BASE +#define C0O_PIN GPIO_PIN_5 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S1435 @@ -5242,169 +5242,169 @@ //***************************************************************************** #ifdef PART_LM3S1439 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C0O_PORT (GPIO_PORTC_BASE) -#define C0O_PIN (GPIO_PIN_5) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOC +#define C0O_PORT GPIO_PORTC_BASE +#define C0O_PIN GPIO_PIN_5 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP4_PORT (GPIO_PORTA_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP4_PORT GPIO_PORTA_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP5_PORT (GPIO_PORTB_BASE) -#define CCP5_PIN (GPIO_PIN_5) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP5_PORT GPIO_PORTB_BASE +#define CCP5_PIN GPIO_PIN_5 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define IDX0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define IDX0_PORT (GPIO_PORTD_BASE) -#define IDX0_PIN (GPIO_PIN_7) +#define IDX0_PERIPH SYSCTL_PERIPH_GPIOD +#define IDX0_PORT GPIO_PORTD_BASE +#define IDX0_PIN GPIO_PIN_7 -#define PHA0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHA0_PORT (GPIO_PORTC_BASE) -#define PHA0_PIN (GPIO_PIN_4) +#define PHA0_PERIPH SYSCTL_PERIPH_GPIOC +#define PHA0_PORT GPIO_PORTC_BASE +#define PHA0_PIN GPIO_PIN_4 -#define PHB0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHB0_PORT (GPIO_PORTC_BASE) -#define PHB0_PIN (GPIO_PIN_7) +#define PHB0_PERIPH SYSCTL_PERIPH_GPIOC +#define PHB0_PORT GPIO_PORTC_BASE +#define PHB0_PIN GPIO_PIN_7 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PWM2_PORT (GPIO_PORTH_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOH +#define PWM2_PORT GPIO_PORTH_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PWM3_PORT (GPIO_PORTH_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOH +#define PWM3_PORT GPIO_PORTH_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM4_PORT (GPIO_PORTF_BASE) -#define PWM4_PIN (GPIO_PIN_2) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM4_PORT GPIO_PORTF_BASE +#define PWM4_PIN GPIO_PIN_2 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM5_PORT (GPIO_PORTF_BASE) -#define PWM5_PIN (GPIO_PIN_3) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM5_PORT GPIO_PORTF_BASE +#define PWM5_PIN GPIO_PIN_3 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S1439 @@ -5415,189 +5415,189 @@ //***************************************************************************** #ifdef PART_LM3S1512 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C0O_PORT (GPIO_PORTF_BASE) -#define C0O_PIN (GPIO_PIN_4) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOF +#define C0O_PORT GPIO_PORTF_BASE +#define C0O_PIN GPIO_PIN_4 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C1O_PORT (GPIO_PORTF_BASE) -#define C1O_PIN (GPIO_PIN_5) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOF +#define C1O_PORT GPIO_PORTF_BASE +#define C1O_PIN GPIO_PIN_5 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define C2O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C2O_PORT (GPIO_PORTF_BASE) -#define C2O_PIN (GPIO_PIN_6) +#define C2O_PERIPH SYSCTL_PERIPH_GPIOF +#define C2O_PORT GPIO_PORTF_BASE +#define C2O_PIN GPIO_PIN_6 -#define C2_MINUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_MINUS_PORT (GPIO_PORTC_BASE) -#define C2_MINUS_PIN (GPIO_PIN_7) +#define C2_MINUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_MINUS_PORT GPIO_PORTC_BASE +#define C2_MINUS_PIN GPIO_PIN_7 -#define C2_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_PLUS_PORT (GPIO_PORTC_BASE) -#define C2_PLUS_PIN (GPIO_PIN_6) +#define C2_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_PLUS_PORT GPIO_PORTC_BASE +#define C2_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP1_PORT (GPIO_PORTD_BASE) -#define CCP1_PIN (GPIO_PIN_7) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP1_PORT GPIO_PORTD_BASE +#define CCP1_PIN GPIO_PIN_7 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP3_PORT (GPIO_PORTD_BASE) -#define CCP3_PIN (GPIO_PIN_4) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP3_PORT GPIO_PORTD_BASE +#define CCP3_PIN GPIO_PIN_4 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP4_PORT (GPIO_PORTD_BASE) -#define CCP4_PIN (GPIO_PIN_5) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP4_PORT GPIO_PORTD_BASE +#define CCP4_PIN GPIO_PIN_5 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define CCP6_PERIPH (SYSCTL_PERIPH_GPIOH) -#define CCP6_PORT (GPIO_PORTH_BASE) -#define CCP6_PIN (GPIO_PIN_0) +#define CCP6_PERIPH SYSCTL_PERIPH_GPIOH +#define CCP6_PORT GPIO_PORTH_BASE +#define CCP6_PIN GPIO_PIN_0 -#define CCP7_PERIPH (SYSCTL_PERIPH_GPIOH) -#define CCP7_PORT (GPIO_PORTH_BASE) -#define CCP7_PIN (GPIO_PIN_1) +#define CCP7_PERIPH SYSCTL_PERIPH_GPIOH +#define CCP7_PORT GPIO_PORTH_BASE +#define CCP7_PIN GPIO_PIN_1 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define I2C1SCL_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SCL_PORT (GPIO_PORTA_BASE) -#define I2C1SCL_PIN (GPIO_PIN_6) +#define I2C1SCL_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SCL_PORT GPIO_PORTA_BASE +#define I2C1SCL_PIN GPIO_PIN_6 -#define I2C1SDA_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SDA_PORT (GPIO_PORTA_BASE) -#define I2C1SDA_PIN (GPIO_PIN_7) +#define I2C1SDA_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SDA_PORT GPIO_PORTA_BASE +#define I2C1SDA_PIN GPIO_PIN_7 -#define IDX0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define IDX0_PORT (GPIO_PORTD_BASE) -#define IDX0_PIN (GPIO_PIN_0) +#define IDX0_PERIPH SYSCTL_PERIPH_GPIOD +#define IDX0_PORT GPIO_PORTD_BASE +#define IDX0_PIN GPIO_PIN_0 -#define PHA0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PHA0_PORT (GPIO_PORTD_BASE) -#define PHA0_PIN (GPIO_PIN_1) +#define PHA0_PERIPH SYSCTL_PERIPH_GPIOD +#define PHA0_PORT GPIO_PORTD_BASE +#define PHA0_PIN GPIO_PIN_1 -#define PHB0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PHB0_PORT (GPIO_PORTF_BASE) -#define PHB0_PIN (GPIO_PIN_0) +#define PHB0_PERIPH SYSCTL_PERIPH_GPIOF +#define PHB0_PORT GPIO_PORTF_BASE +#define PHB0_PIN GPIO_PIN_0 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 -#define U2RX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2RX_PORT (GPIO_PORTG_BASE) -#define U2RX_PIN (GPIO_PIN_0) +#define U2RX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2RX_PORT GPIO_PORTG_BASE +#define U2RX_PIN GPIO_PIN_0 -#define U2TX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2TX_PORT (GPIO_PORTG_BASE) -#define U2TX_PIN (GPIO_PIN_1) +#define U2TX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2TX_PORT GPIO_PORTG_BASE +#define U2TX_PIN GPIO_PIN_1 #endif // PART_LM3S1512 @@ -5608,153 +5608,153 @@ //***************************************************************************** #ifdef PART_LM3S1538 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP1_PORT (GPIO_PORTB_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP1_PORT GPIO_PORTB_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP5_PORT (GPIO_PORTB_BASE) -#define CCP5_PIN (GPIO_PIN_5) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP5_PORT GPIO_PORTB_BASE +#define CCP5_PIN GPIO_PIN_5 -#define CCP6_PERIPH (SYSCTL_PERIPH_GPIOH) -#define CCP6_PORT (GPIO_PORTH_BASE) -#define CCP6_PIN (GPIO_PIN_0) +#define CCP6_PERIPH SYSCTL_PERIPH_GPIOH +#define CCP6_PORT GPIO_PORTH_BASE +#define CCP6_PIN GPIO_PIN_0 -#define CCP7_PERIPH (SYSCTL_PERIPH_GPIOH) -#define CCP7_PORT (GPIO_PORTH_BASE) -#define CCP7_PIN (GPIO_PIN_1) +#define CCP7_PERIPH SYSCTL_PERIPH_GPIOH +#define CCP7_PORT GPIO_PORTH_BASE +#define CCP7_PIN GPIO_PIN_1 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define I2C1SCL_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SCL_PORT (GPIO_PORTA_BASE) -#define I2C1SCL_PIN (GPIO_PIN_6) +#define I2C1SCL_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SCL_PORT GPIO_PORTA_BASE +#define I2C1SCL_PIN GPIO_PIN_6 -#define I2C1SDA_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SDA_PORT (GPIO_PORTA_BASE) -#define I2C1SDA_PIN (GPIO_PIN_7) +#define I2C1SDA_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SDA_PORT GPIO_PORTA_BASE +#define I2C1SDA_PIN GPIO_PIN_7 -#define IDX0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define IDX0_PORT (GPIO_PORTD_BASE) -#define IDX0_PIN (GPIO_PIN_0) +#define IDX0_PERIPH SYSCTL_PERIPH_GPIOD +#define IDX0_PORT GPIO_PORTD_BASE +#define IDX0_PIN GPIO_PIN_0 -#define PHA0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHA0_PORT (GPIO_PORTC_BASE) -#define PHA0_PIN (GPIO_PIN_4) +#define PHA0_PERIPH SYSCTL_PERIPH_GPIOC +#define PHA0_PORT GPIO_PORTC_BASE +#define PHA0_PIN GPIO_PIN_4 -#define PHB0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PHB0_PORT (GPIO_PORTF_BASE) -#define PHB0_PIN (GPIO_PIN_0) +#define PHB0_PERIPH SYSCTL_PERIPH_GPIOF +#define PHB0_PORT GPIO_PORTF_BASE +#define PHB0_PIN GPIO_PIN_0 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 -#define U2RX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2RX_PORT (GPIO_PORTG_BASE) -#define U2RX_PIN (GPIO_PIN_0) +#define U2RX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2RX_PORT GPIO_PORTG_BASE +#define U2RX_PIN GPIO_PIN_0 -#define U2TX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2TX_PORT (GPIO_PORTG_BASE) -#define U2TX_PIN (GPIO_PIN_1) +#define U2TX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2TX_PORT GPIO_PORTG_BASE +#define U2TX_PIN GPIO_PIN_1 #endif // PART_LM3S1538 @@ -5765,165 +5765,165 @@ //***************************************************************************** #ifdef PART_LM3S1601 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C0O_PORT (GPIO_PORTF_BASE) -#define C0O_PIN (GPIO_PIN_4) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOF +#define C0O_PORT GPIO_PORTF_BASE +#define C0O_PIN GPIO_PIN_4 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOE) -#define C1O_PORT (GPIO_PORTE_BASE) -#define C1O_PIN (GPIO_PIN_6) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOE +#define C1O_PORT GPIO_PORTE_BASE +#define C1O_PIN GPIO_PIN_6 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP1_PORT (GPIO_PORTD_BASE) -#define CCP1_PIN (GPIO_PIN_7) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP1_PORT GPIO_PORTD_BASE +#define CCP1_PIN GPIO_PIN_7 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define CCP6_PERIPH (SYSCTL_PERIPH_GPIOH) -#define CCP6_PORT (GPIO_PORTH_BASE) -#define CCP6_PIN (GPIO_PIN_0) +#define CCP6_PERIPH SYSCTL_PERIPH_GPIOH +#define CCP6_PORT GPIO_PORTH_BASE +#define CCP6_PIN GPIO_PIN_0 -#define CCP7_PERIPH (SYSCTL_PERIPH_GPIOH) -#define CCP7_PORT (GPIO_PORTH_BASE) -#define CCP7_PIN (GPIO_PIN_1) +#define CCP7_PERIPH SYSCTL_PERIPH_GPIOH +#define CCP7_PORT GPIO_PORTH_BASE +#define CCP7_PIN GPIO_PIN_1 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define I2C1SCL_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SCL_PORT (GPIO_PORTA_BASE) -#define I2C1SCL_PIN (GPIO_PIN_6) +#define I2C1SCL_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SCL_PORT GPIO_PORTA_BASE +#define I2C1SCL_PIN GPIO_PIN_6 -#define I2C1SDA_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SDA_PORT (GPIO_PORTA_BASE) -#define I2C1SDA_PIN (GPIO_PIN_7) +#define I2C1SDA_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SDA_PORT GPIO_PORTA_BASE +#define I2C1SDA_PIN GPIO_PIN_7 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 -#define U2RX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2RX_PORT (GPIO_PORTG_BASE) -#define U2RX_PIN (GPIO_PIN_0) +#define U2RX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2RX_PORT GPIO_PORTG_BASE +#define U2RX_PIN GPIO_PIN_0 -#define U2TX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2TX_PORT (GPIO_PORTG_BASE) -#define U2TX_PIN (GPIO_PIN_1) +#define U2TX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2TX_PORT GPIO_PORTG_BASE +#define U2TX_PIN GPIO_PIN_1 #endif // PART_LM3S1601 @@ -5934,149 +5934,149 @@ //***************************************************************************** #ifdef PART_LM3S1607 -#define ADC0_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC0_PORT (GPIO_PORTE_BASE) -#define ADC0_PIN (GPIO_PIN_3) +#define ADC0_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC0_PORT GPIO_PORTE_BASE +#define ADC0_PIN GPIO_PIN_3 -#define ADC1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC1_PORT (GPIO_PORTE_BASE) -#define ADC1_PIN (GPIO_PIN_2) +#define ADC1_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC1_PORT GPIO_PORTE_BASE +#define ADC1_PIN GPIO_PIN_2 -#define ADC2_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC2_PORT (GPIO_PORTE_BASE) -#define ADC2_PIN (GPIO_PIN_1) +#define ADC2_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC2_PORT GPIO_PORTE_BASE +#define ADC2_PIN GPIO_PIN_1 -#define ADC3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC3_PORT (GPIO_PORTE_BASE) -#define ADC3_PIN (GPIO_PIN_0) +#define ADC3_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC3_PORT GPIO_PORTE_BASE +#define ADC3_PIN GPIO_PIN_0 -#define ADC4_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC4_PORT (GPIO_PORTD_BASE) -#define ADC4_PIN (GPIO_PIN_3) +#define ADC4_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC4_PORT GPIO_PORTD_BASE +#define ADC4_PIN GPIO_PIN_3 -#define ADC5_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC5_PORT (GPIO_PORTD_BASE) -#define ADC5_PIN (GPIO_PIN_2) +#define ADC5_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC5_PORT GPIO_PORTD_BASE +#define ADC5_PIN GPIO_PIN_2 -#define ADC6_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC6_PORT (GPIO_PORTD_BASE) -#define ADC6_PIN (GPIO_PIN_1) +#define ADC6_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC6_PORT GPIO_PORTD_BASE +#define ADC6_PIN GPIO_PIN_1 -#define ADC7_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC7_PORT (GPIO_PORTD_BASE) -#define ADC7_PIN (GPIO_PIN_0) +#define ADC7_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC7_PORT GPIO_PORTD_BASE +#define ADC7_PIN GPIO_PIN_0 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_5) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_5 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP1_PORT (GPIO_PORTC_BASE) -#define CCP1_PIN (GPIO_PIN_5) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP1_PORT GPIO_PORTC_BASE +#define CCP1_PIN GPIO_PIN_5 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP2_PORT (GPIO_PORTC_BASE) -#define CCP2_PIN (GPIO_PIN_4) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP2_PORT GPIO_PORTC_BASE +#define CCP2_PIN GPIO_PIN_4 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP5_PORT (GPIO_PORTB_BASE) -#define CCP5_PIN (GPIO_PIN_6) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP5_PORT GPIO_PORTB_BASE +#define CCP5_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define I2C1SCL_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SCL_PORT (GPIO_PORTA_BASE) -#define I2C1SCL_PIN (GPIO_PIN_6) +#define I2C1SCL_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SCL_PORT GPIO_PORTA_BASE +#define I2C1SCL_PIN GPIO_PIN_6 -#define I2C1SDA_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SDA_PORT (GPIO_PORTA_BASE) -#define I2C1SDA_PIN (GPIO_PIN_7) +#define I2C1SDA_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SDA_PORT GPIO_PORTA_BASE +#define I2C1SDA_PIN GPIO_PIN_7 -#define NMI_PERIPH (SYSCTL_PERIPH_GPIOB) -#define NMI_PORT (GPIO_PORTB_BASE) -#define NMI_PIN (GPIO_PIN_7) +#define NMI_PERIPH SYSCTL_PERIPH_GPIOB +#define NMI_PORT GPIO_PORTB_BASE +#define NMI_PIN GPIO_PIN_7 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOB) -#define U1RX_PORT (GPIO_PORTB_BASE) -#define U1RX_PIN (GPIO_PIN_0) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOB +#define U1RX_PORT GPIO_PORTB_BASE +#define U1RX_PIN GPIO_PIN_0 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOB) -#define U1TX_PORT (GPIO_PORTB_BASE) -#define U1TX_PIN (GPIO_PIN_1) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOB +#define U1TX_PORT GPIO_PORTB_BASE +#define U1TX_PIN GPIO_PIN_1 -#define U2RX_PERIPH (SYSCTL_PERIPH_GPIOB) -#define U2RX_PORT (GPIO_PORTB_BASE) -#define U2RX_PIN (GPIO_PIN_4) +#define U2RX_PERIPH SYSCTL_PERIPH_GPIOB +#define U2RX_PORT GPIO_PORTB_BASE +#define U2RX_PIN GPIO_PIN_4 -#define U2TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define U2TX_PORT (GPIO_PORTE_BASE) -#define U2TX_PIN (GPIO_PIN_4) +#define U2TX_PERIPH SYSCTL_PERIPH_GPIOE +#define U2TX_PORT GPIO_PORTE_BASE +#define U2TX_PIN GPIO_PIN_4 #endif // PART_LM3S1607 @@ -6087,157 +6087,157 @@ //***************************************************************************** #ifdef PART_LM3S1608 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C0O_PORT (GPIO_PORTF_BASE) -#define C0O_PIN (GPIO_PIN_4) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOF +#define C0O_PORT GPIO_PORTF_BASE +#define C0O_PIN GPIO_PIN_4 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C1O_PORT (GPIO_PORTF_BASE) -#define C1O_PIN (GPIO_PIN_5) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOF +#define C1O_PORT GPIO_PORTF_BASE +#define C1O_PIN GPIO_PIN_5 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define CCP1_PORT (GPIO_PORTF_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOF +#define CCP1_PORT GPIO_PORTF_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define CCP6_PERIPH (SYSCTL_PERIPH_GPIOH) -#define CCP6_PORT (GPIO_PORTH_BASE) -#define CCP6_PIN (GPIO_PIN_0) +#define CCP6_PERIPH SYSCTL_PERIPH_GPIOH +#define CCP6_PORT GPIO_PORTH_BASE +#define CCP6_PIN GPIO_PIN_0 -#define CCP7_PERIPH (SYSCTL_PERIPH_GPIOH) -#define CCP7_PORT (GPIO_PORTH_BASE) -#define CCP7_PIN (GPIO_PIN_1) +#define CCP7_PERIPH SYSCTL_PERIPH_GPIOH +#define CCP7_PORT GPIO_PORTH_BASE +#define CCP7_PIN GPIO_PIN_1 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define I2C1SCL_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SCL_PORT (GPIO_PORTA_BASE) -#define I2C1SCL_PIN (GPIO_PIN_6) +#define I2C1SCL_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SCL_PORT GPIO_PORTA_BASE +#define I2C1SCL_PIN GPIO_PIN_6 -#define I2C1SDA_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SDA_PORT (GPIO_PORTA_BASE) -#define I2C1SDA_PIN (GPIO_PIN_7) +#define I2C1SDA_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SDA_PORT GPIO_PORTA_BASE +#define I2C1SDA_PIN GPIO_PIN_7 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S1608 @@ -6248,184 +6248,430 @@ //***************************************************************************** #ifdef PART_LM3S1620 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C0O_PORT (GPIO_PORTF_BASE) -#define C0O_PIN (GPIO_PIN_4) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOF +#define C0O_PORT GPIO_PORTF_BASE +#define C0O_PIN GPIO_PIN_4 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C1O_PORT (GPIO_PORTF_BASE) -#define C1O_PIN (GPIO_PIN_5) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOF +#define C1O_PORT GPIO_PORTF_BASE +#define C1O_PIN GPIO_PIN_5 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define C2_MINUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_MINUS_PORT (GPIO_PORTC_BASE) -#define C2_MINUS_PIN (GPIO_PIN_7) +#define C2_MINUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_MINUS_PORT GPIO_PORTC_BASE +#define C2_MINUS_PIN GPIO_PIN_7 -#define C2_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_PLUS_PORT (GPIO_PORTC_BASE) -#define C2_PLUS_PIN (GPIO_PIN_6) +#define C2_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_PLUS_PORT GPIO_PORTC_BASE +#define C2_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP3_PORT (GPIO_PORTD_BASE) -#define CCP3_PIN (GPIO_PIN_4) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP3_PORT GPIO_PORTD_BASE +#define CCP3_PIN GPIO_PIN_4 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define IDX0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define IDX0_PORT (GPIO_PORTD_BASE) -#define IDX0_PIN (GPIO_PIN_7) +#define IDX0_PERIPH SYSCTL_PERIPH_GPIOD +#define IDX0_PORT GPIO_PORTD_BASE +#define IDX0_PIN GPIO_PIN_7 -#define PHA0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHA0_PORT (GPIO_PORTC_BASE) -#define PHA0_PIN (GPIO_PIN_4) +#define PHA0_PERIPH SYSCTL_PERIPH_GPIOC +#define PHA0_PORT GPIO_PORTC_BASE +#define PHA0_PIN GPIO_PIN_4 -#define PHB0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PHB0_PORT (GPIO_PORTF_BASE) -#define PHB0_PIN (GPIO_PIN_0) +#define PHB0_PERIPH SYSCTL_PERIPH_GPIOF +#define PHB0_PORT GPIO_PORTF_BASE +#define PHB0_PIN GPIO_PIN_0 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PWM2_PORT (GPIO_PORTH_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOH +#define PWM2_PORT GPIO_PORTH_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PWM3_PORT (GPIO_PORTH_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOH +#define PWM3_PORT GPIO_PORTH_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM4_PORT (GPIO_PORTE_BASE) -#define PWM4_PIN (GPIO_PIN_6) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM4_PORT GPIO_PORTE_BASE +#define PWM4_PIN GPIO_PIN_6 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM5_PORT (GPIO_PORTE_BASE) -#define PWM5_PIN (GPIO_PIN_7) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM5_PORT GPIO_PORTE_BASE +#define PWM5_PIN GPIO_PIN_7 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S1620 +//***************************************************************************** +// +// LM3S1621 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S1621 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 + +#define GPIO_PA3_SSI0FSS 0x00000C01 + +#define GPIO_PA4_SSI0RX 0x00001001 + +#define GPIO_PA5_SSI0TX 0x00001401 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#define GPIO_PE5_CCP5 0x00041401 + +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_EPI0S12 0x00051C08 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_EPI0S15 0x00061008 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_EPI0S6 0x00070008 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_EPI0S7 0x00070408 + +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 + +#endif // PART_LM3S1621 + //***************************************************************************** // // LM3S1625 Port/Pin Mapping Definitions @@ -6433,149 +6679,149 @@ //***************************************************************************** #ifdef PART_LM3S1625 -#define ADC0_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC0_PORT (GPIO_PORTE_BASE) -#define ADC0_PIN (GPIO_PIN_3) +#define ADC0_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC0_PORT GPIO_PORTE_BASE +#define ADC0_PIN GPIO_PIN_3 -#define ADC1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC1_PORT (GPIO_PORTE_BASE) -#define ADC1_PIN (GPIO_PIN_2) +#define ADC1_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC1_PORT GPIO_PORTE_BASE +#define ADC1_PIN GPIO_PIN_2 -#define ADC2_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC2_PORT (GPIO_PORTE_BASE) -#define ADC2_PIN (GPIO_PIN_1) +#define ADC2_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC2_PORT GPIO_PORTE_BASE +#define ADC2_PIN GPIO_PIN_1 -#define ADC3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC3_PORT (GPIO_PORTE_BASE) -#define ADC3_PIN (GPIO_PIN_0) +#define ADC3_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC3_PORT GPIO_PORTE_BASE +#define ADC3_PIN GPIO_PIN_0 -#define ADC4_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC4_PORT (GPIO_PORTD_BASE) -#define ADC4_PIN (GPIO_PIN_3) +#define ADC4_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC4_PORT GPIO_PORTD_BASE +#define ADC4_PIN GPIO_PIN_3 -#define ADC5_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC5_PORT (GPIO_PORTD_BASE) -#define ADC5_PIN (GPIO_PIN_2) +#define ADC5_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC5_PORT GPIO_PORTD_BASE +#define ADC5_PIN GPIO_PIN_2 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0O_PORT (GPIO_PORTB_BASE) -#define C0O_PIN (GPIO_PIN_5) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOB +#define C0O_PORT GPIO_PORTB_BASE +#define C0O_PIN GPIO_PIN_5 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP0_PORT (GPIO_PORTC_BASE) -#define CCP0_PIN (GPIO_PIN_7) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP0_PORT GPIO_PORTC_BASE +#define CCP0_PIN GPIO_PIN_7 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP1_PORT (GPIO_PORTC_BASE) -#define CCP1_PIN (GPIO_PIN_5) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP1_PORT GPIO_PORTC_BASE +#define CCP1_PIN GPIO_PIN_5 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP2_PORT (GPIO_PORTC_BASE) -#define CCP2_PIN (GPIO_PIN_4) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP2_PORT GPIO_PORTC_BASE +#define CCP2_PIN GPIO_PIN_4 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define FAULT0_PERIPH (SYSCTL_PERIPH_GPIOE) -#define FAULT0_PORT (GPIO_PORTE_BASE) -#define FAULT0_PIN (GPIO_PIN_4) +#define FAULT0_PERIPH SYSCTL_PERIPH_GPIOE +#define FAULT0_PORT GPIO_PORTE_BASE +#define FAULT0_PIN GPIO_PIN_4 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define I2C1SCL_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SCL_PORT (GPIO_PORTA_BASE) -#define I2C1SCL_PIN (GPIO_PIN_6) +#define I2C1SCL_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SCL_PORT GPIO_PORTA_BASE +#define I2C1SCL_PIN GPIO_PIN_6 -#define I2C1SDA_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SDA_PORT (GPIO_PORTA_BASE) -#define I2C1SDA_PIN (GPIO_PIN_7) +#define I2C1SDA_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SDA_PORT GPIO_PORTA_BASE +#define I2C1SDA_PIN GPIO_PIN_7 -#define NMI_PERIPH (SYSCTL_PERIPH_GPIOB) -#define NMI_PORT (GPIO_PORTB_BASE) -#define NMI_PIN (GPIO_PIN_7) +#define NMI_PERIPH SYSCTL_PERIPH_GPIOB +#define NMI_PORT GPIO_PORTB_BASE +#define NMI_PIN GPIO_PIN_7 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM2_PORT (GPIO_PORTB_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM2_PORT GPIO_PORTB_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM3_PORT (GPIO_PORTB_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM3_PORT GPIO_PORTB_BASE +#define PWM3_PIN GPIO_PIN_1 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 #endif // PART_LM3S1625 @@ -6586,149 +6832,149 @@ //***************************************************************************** #ifdef PART_LM3S1626 -#define ADC0_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC0_PORT (GPIO_PORTE_BASE) -#define ADC0_PIN (GPIO_PIN_3) +#define ADC0_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC0_PORT GPIO_PORTE_BASE +#define ADC0_PIN GPIO_PIN_3 -#define ADC1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC1_PORT (GPIO_PORTE_BASE) -#define ADC1_PIN (GPIO_PIN_2) +#define ADC1_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC1_PORT GPIO_PORTE_BASE +#define ADC1_PIN GPIO_PIN_2 -#define ADC2_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC2_PORT (GPIO_PORTE_BASE) -#define ADC2_PIN (GPIO_PIN_1) +#define ADC2_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC2_PORT GPIO_PORTE_BASE +#define ADC2_PIN GPIO_PIN_1 -#define ADC3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC3_PORT (GPIO_PORTE_BASE) -#define ADC3_PIN (GPIO_PIN_0) +#define ADC3_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC3_PORT GPIO_PORTE_BASE +#define ADC3_PIN GPIO_PIN_0 -#define ADC4_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC4_PORT (GPIO_PORTD_BASE) -#define ADC4_PIN (GPIO_PIN_3) +#define ADC4_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC4_PORT GPIO_PORTD_BASE +#define ADC4_PIN GPIO_PIN_3 -#define ADC5_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC5_PORT (GPIO_PORTD_BASE) -#define ADC5_PIN (GPIO_PIN_2) +#define ADC5_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC5_PORT GPIO_PORTD_BASE +#define ADC5_PIN GPIO_PIN_2 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP0_PORT (GPIO_PORTC_BASE) -#define CCP0_PIN (GPIO_PIN_6) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP0_PORT GPIO_PORTC_BASE +#define CCP0_PIN GPIO_PIN_6 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP1_PORT (GPIO_PORTB_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP1_PORT GPIO_PORTB_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP2_PORT (GPIO_PORTC_BASE) -#define CCP2_PIN (GPIO_PIN_4) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP2_PORT GPIO_PORTC_BASE +#define CCP2_PIN GPIO_PIN_4 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_5) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_5 -#define FAULT0_PERIPH (SYSCTL_PERIPH_GPIOE) -#define FAULT0_PORT (GPIO_PORTE_BASE) -#define FAULT0_PIN (GPIO_PIN_4) +#define FAULT0_PERIPH SYSCTL_PERIPH_GPIOE +#define FAULT0_PORT GPIO_PORTE_BASE +#define FAULT0_PIN GPIO_PIN_4 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define IDX0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define IDX0_PORT (GPIO_PORTD_BASE) -#define IDX0_PIN (GPIO_PIN_0) +#define IDX0_PERIPH SYSCTL_PERIPH_GPIOD +#define IDX0_PORT GPIO_PORTD_BASE +#define IDX0_PIN GPIO_PIN_0 -#define NMI_PERIPH (SYSCTL_PERIPH_GPIOB) -#define NMI_PORT (GPIO_PORTB_BASE) -#define NMI_PIN (GPIO_PIN_7) +#define NMI_PERIPH SYSCTL_PERIPH_GPIOB +#define NMI_PORT GPIO_PORTB_BASE +#define NMI_PIN GPIO_PIN_7 -#define PHA0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PHA0_PORT (GPIO_PORTD_BASE) -#define PHA0_PIN (GPIO_PIN_1) +#define PHA0_PERIPH SYSCTL_PERIPH_GPIOD +#define PHA0_PORT GPIO_PORTD_BASE +#define PHA0_PIN GPIO_PIN_1 -#define PHB0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHB0_PORT (GPIO_PORTC_BASE) -#define PHB0_PIN (GPIO_PIN_7) +#define PHB0_PERIPH SYSCTL_PERIPH_GPIOC +#define PHB0_PORT GPIO_PORTC_BASE +#define PHB0_PIN GPIO_PIN_7 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOA) -#define PWM0_PORT (GPIO_PORTA_BASE) -#define PWM0_PIN (GPIO_PIN_6) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOA +#define PWM0_PORT GPIO_PORTA_BASE +#define PWM0_PIN GPIO_PIN_6 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define PWM1_PORT (GPIO_PORTA_BASE) -#define PWM1_PIN (GPIO_PIN_7) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOA +#define PWM1_PORT GPIO_PORTA_BASE +#define PWM1_PIN GPIO_PIN_7 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM2_PORT (GPIO_PORTB_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM2_PORT GPIO_PORTB_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM3_PORT (GPIO_PORTB_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM3_PORT GPIO_PORTB_BASE +#define PWM3_PIN GPIO_PIN_1 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOB) -#define U1RX_PORT (GPIO_PORTB_BASE) -#define U1RX_PIN (GPIO_PIN_4) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOB +#define U1RX_PORT GPIO_PORTB_BASE +#define U1RX_PIN GPIO_PIN_4 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOB) -#define U1TX_PORT (GPIO_PORTB_BASE) -#define U1TX_PIN (GPIO_PIN_5) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOB +#define U1TX_PORT GPIO_PORTB_BASE +#define U1TX_PIN GPIO_PIN_5 #endif // PART_LM3S1626 @@ -6739,149 +6985,149 @@ //***************************************************************************** #ifdef PART_LM3S1627 -#define ADC0_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC0_PORT (GPIO_PORTE_BASE) -#define ADC0_PIN (GPIO_PIN_3) +#define ADC0_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC0_PORT GPIO_PORTE_BASE +#define ADC0_PIN GPIO_PIN_3 -#define ADC1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC1_PORT (GPIO_PORTE_BASE) -#define ADC1_PIN (GPIO_PIN_2) +#define ADC1_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC1_PORT GPIO_PORTE_BASE +#define ADC1_PIN GPIO_PIN_2 -#define ADC2_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC2_PORT (GPIO_PORTE_BASE) -#define ADC2_PIN (GPIO_PIN_1) +#define ADC2_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC2_PORT GPIO_PORTE_BASE +#define ADC2_PIN GPIO_PIN_1 -#define ADC3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC3_PORT (GPIO_PORTE_BASE) -#define ADC3_PIN (GPIO_PIN_0) +#define ADC3_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC3_PORT GPIO_PORTE_BASE +#define ADC3_PIN GPIO_PIN_0 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP0_PORT (GPIO_PORTC_BASE) -#define CCP0_PIN (GPIO_PIN_6) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP0_PORT GPIO_PORTC_BASE +#define CCP0_PIN GPIO_PIN_6 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP1_PORT (GPIO_PORTB_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP1_PORT GPIO_PORTB_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_5) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_5 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_5) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_5 -#define FAULT0_PERIPH (SYSCTL_PERIPH_GPIOE) -#define FAULT0_PORT (GPIO_PORTE_BASE) -#define FAULT0_PIN (GPIO_PIN_4) +#define FAULT0_PERIPH SYSCTL_PERIPH_GPIOE +#define FAULT0_PORT GPIO_PORTE_BASE +#define FAULT0_PIN GPIO_PIN_4 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define IDX0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define IDX0_PORT (GPIO_PORTB_BASE) -#define IDX0_PIN (GPIO_PIN_4) +#define IDX0_PERIPH SYSCTL_PERIPH_GPIOB +#define IDX0_PORT GPIO_PORTB_BASE +#define IDX0_PIN GPIO_PIN_4 -#define NMI_PERIPH (SYSCTL_PERIPH_GPIOB) -#define NMI_PORT (GPIO_PORTB_BASE) -#define NMI_PIN (GPIO_PIN_7) +#define NMI_PERIPH SYSCTL_PERIPH_GPIOB +#define NMI_PORT GPIO_PORTB_BASE +#define NMI_PIN GPIO_PIN_7 -#define PHA0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHA0_PORT (GPIO_PORTC_BASE) -#define PHA0_PIN (GPIO_PIN_4) +#define PHA0_PERIPH SYSCTL_PERIPH_GPIOC +#define PHA0_PORT GPIO_PORTC_BASE +#define PHA0_PIN GPIO_PIN_4 -#define PHB0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHB0_PORT (GPIO_PORTC_BASE) -#define PHB0_PIN (GPIO_PIN_7) +#define PHB0_PERIPH SYSCTL_PERIPH_GPIOC +#define PHB0_PORT GPIO_PORTC_BASE +#define PHB0_PIN GPIO_PIN_7 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM2_PORT (GPIO_PORTD_BASE) -#define PWM2_PIN (GPIO_PIN_2) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM2_PORT GPIO_PORTD_BASE +#define PWM2_PIN GPIO_PIN_2 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM3_PORT (GPIO_PORTD_BASE) -#define PWM3_PIN (GPIO_PIN_3) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM3_PORT GPIO_PORTD_BASE +#define PWM3_PIN GPIO_PIN_3 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOA) -#define PWM4_PORT (GPIO_PORTA_BASE) -#define PWM4_PIN (GPIO_PIN_6) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOA +#define PWM4_PORT GPIO_PORTA_BASE +#define PWM4_PIN GPIO_PIN_6 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOA) -#define PWM5_PORT (GPIO_PORTA_BASE) -#define PWM5_PIN (GPIO_PIN_7) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOA +#define PWM5_PORT GPIO_PORTA_BASE +#define PWM5_PIN GPIO_PIN_7 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOB) -#define U1RX_PORT (GPIO_PORTB_BASE) -#define U1RX_PIN (GPIO_PIN_0) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOB +#define U1RX_PORT GPIO_PORTB_BASE +#define U1RX_PIN GPIO_PIN_0 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOB) -#define U1TX_PORT (GPIO_PORTB_BASE) -#define U1TX_PIN (GPIO_PIN_1) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOB +#define U1TX_PORT GPIO_PORTB_BASE +#define U1TX_PIN GPIO_PIN_1 #endif // PART_LM3S1627 @@ -6892,193 +7138,193 @@ //***************************************************************************** #ifdef PART_LM3S1635 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C0O_PORT (GPIO_PORTF_BASE) -#define C0O_PIN (GPIO_PIN_4) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOF +#define C0O_PORT GPIO_PORTF_BASE +#define C0O_PIN GPIO_PIN_4 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C1O_PORT (GPIO_PORTF_BASE) -#define C1O_PIN (GPIO_PIN_5) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOF +#define C1O_PORT GPIO_PORTF_BASE +#define C1O_PIN GPIO_PIN_5 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP0_PORT (GPIO_PORTD_BASE) -#define CCP0_PIN (GPIO_PIN_4) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP0_PORT GPIO_PORTD_BASE +#define CCP0_PIN GPIO_PIN_4 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP1_PORT (GPIO_PORTD_BASE) -#define CCP1_PIN (GPIO_PIN_7) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP1_PORT GPIO_PORTD_BASE +#define CCP1_PIN GPIO_PIN_7 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP2_PORT (GPIO_PORTD_BASE) -#define CCP2_PIN (GPIO_PIN_5) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP2_PORT GPIO_PORTD_BASE +#define CCP2_PIN GPIO_PIN_5 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define CCP6_PERIPH (SYSCTL_PERIPH_GPIOH) -#define CCP6_PORT (GPIO_PORTH_BASE) -#define CCP6_PIN (GPIO_PIN_0) +#define CCP6_PERIPH SYSCTL_PERIPH_GPIOH +#define CCP6_PORT GPIO_PORTH_BASE +#define CCP6_PIN GPIO_PIN_0 -#define CCP7_PERIPH (SYSCTL_PERIPH_GPIOH) -#define CCP7_PORT (GPIO_PORTH_BASE) -#define CCP7_PIN (GPIO_PIN_1) +#define CCP7_PERIPH SYSCTL_PERIPH_GPIOH +#define CCP7_PORT GPIO_PORTH_BASE +#define CCP7_PIN GPIO_PIN_1 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define I2C1SCL_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SCL_PORT (GPIO_PORTA_BASE) -#define I2C1SCL_PIN (GPIO_PIN_6) +#define I2C1SCL_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SCL_PORT GPIO_PORTA_BASE +#define I2C1SCL_PIN GPIO_PIN_6 -#define I2C1SDA_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SDA_PORT (GPIO_PORTA_BASE) -#define I2C1SDA_PIN (GPIO_PIN_7) +#define I2C1SDA_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SDA_PORT GPIO_PORTA_BASE +#define I2C1SDA_PIN GPIO_PIN_7 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM2_PORT (GPIO_PORTB_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM2_PORT GPIO_PORTB_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM3_PORT (GPIO_PORTB_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM3_PORT GPIO_PORTB_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM4_PORT (GPIO_PORTF_BASE) -#define PWM4_PIN (GPIO_PIN_2) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM4_PORT GPIO_PORTF_BASE +#define PWM4_PIN GPIO_PIN_2 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM5_PORT (GPIO_PORTF_BASE) -#define PWM5_PIN (GPIO_PIN_3) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM5_PORT GPIO_PORTF_BASE +#define PWM5_PIN GPIO_PIN_3 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 -#define U2RX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2RX_PORT (GPIO_PORTG_BASE) -#define U2RX_PIN (GPIO_PIN_0) +#define U2RX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2RX_PORT GPIO_PORTG_BASE +#define U2RX_PIN GPIO_PIN_0 -#define U2TX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2TX_PORT (GPIO_PORTG_BASE) -#define U2TX_PIN (GPIO_PIN_1) +#define U2TX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2TX_PORT GPIO_PORTG_BASE +#define U2TX_PIN GPIO_PIN_1 #endif // PART_LM3S1635 @@ -7089,164 +7335,477 @@ //***************************************************************************** #ifdef PART_LM3S1637 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C0O_PORT (GPIO_PORTC_BASE) -#define C0O_PIN (GPIO_PIN_5) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOC +#define C0O_PORT GPIO_PORTC_BASE +#define C0O_PIN GPIO_PIN_5 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP4_PORT (GPIO_PORTA_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP4_PORT GPIO_PORTA_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP5_PORT (GPIO_PORTB_BASE) -#define CCP5_PIN (GPIO_PIN_5) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP5_PORT GPIO_PORTB_BASE +#define CCP5_PIN GPIO_PIN_5 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define IDX0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define IDX0_PORT (GPIO_PORTD_BASE) -#define IDX0_PIN (GPIO_PIN_7) +#define IDX0_PERIPH SYSCTL_PERIPH_GPIOD +#define IDX0_PORT GPIO_PORTD_BASE +#define IDX0_PIN GPIO_PIN_7 -#define PHA0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHA0_PORT (GPIO_PORTC_BASE) -#define PHA0_PIN (GPIO_PIN_4) +#define PHA0_PERIPH SYSCTL_PERIPH_GPIOC +#define PHA0_PORT GPIO_PORTC_BASE +#define PHA0_PIN GPIO_PIN_4 -#define PHB0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHB0_PORT (GPIO_PORTC_BASE) -#define PHB0_PIN (GPIO_PIN_7) +#define PHB0_PERIPH SYSCTL_PERIPH_GPIOC +#define PHB0_PORT GPIO_PORTC_BASE +#define PHB0_PIN GPIO_PIN_7 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PWM2_PORT (GPIO_PORTH_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOH +#define PWM2_PORT GPIO_PORTH_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PWM3_PORT (GPIO_PORTH_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOH +#define PWM3_PORT GPIO_PORTH_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM4_PORT (GPIO_PORTE_BASE) -#define PWM4_PIN (GPIO_PIN_0) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM4_PORT GPIO_PORTE_BASE +#define PWM4_PIN GPIO_PIN_0 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM5_PORT (GPIO_PORTE_BASE) -#define PWM5_PIN (GPIO_PIN_1) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM5_PORT GPIO_PORTE_BASE +#define PWM5_PIN GPIO_PIN_1 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 -#define U2RX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2RX_PORT (GPIO_PORTG_BASE) -#define U2RX_PIN (GPIO_PIN_0) +#define U2RX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2RX_PORT GPIO_PORTG_BASE +#define U2RX_PIN GPIO_PIN_0 -#define U2TX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2TX_PORT (GPIO_PORTG_BASE) -#define U2TX_PIN (GPIO_PIN_1) +#define U2TX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2TX_PORT GPIO_PORTG_BASE +#define U2TX_PIN GPIO_PIN_1 #endif // PART_LM3S1637 +//***************************************************************************** +// +// LM3S1651 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S1651 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_PHA0 0x00051804 +#define GPIO_PF6_I2S0TXMCLK 0x00051809 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_PHB0 0x00051C04 +#define GPIO_PF7_FAULT1 0x00051C09 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 + +#define GPIO_PG2_PWM0 0x00060801 +#define GPIO_PG2_FAULT0 0x00060804 +#define GPIO_PG2_IDX1 0x00060808 +#define GPIO_PG2_I2S0RXSD 0x00060809 + +#define GPIO_PG3_PWM1 0x00060C01 +#define GPIO_PG3_FAULT2 0x00060C04 +#define GPIO_PG3_FAULT0 0x00060C08 +#define GPIO_PG3_I2S0RXMCLK 0x00060C09 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_FAULT1 0x00061004 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_IDX0 0x00061404 +#define GPIO_PG5_FAULT1 0x00061405 +#define GPIO_PG5_I2S0RXSCK 0x00061409 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_PHA1 0x00061801 +#define GPIO_PG6_FAULT1 0x00061808 +#define GPIO_PG6_I2S0RXWS 0x00061809 +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_CCP5 0x00061C08 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 + +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#endif // PART_LM3S1651 + //***************************************************************************** // // LM3S1751 Port/Pin Mapping Definitions @@ -7254,157 +7813,157 @@ //***************************************************************************** #ifdef PART_LM3S1751 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C0O_PORT (GPIO_PORTC_BASE) -#define C0O_PIN (GPIO_PIN_5) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOC +#define C0O_PORT GPIO_PORTC_BASE +#define C0O_PIN GPIO_PIN_5 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP4_PORT (GPIO_PORTA_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP4_PORT GPIO_PORTA_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP5_PORT (GPIO_PORTB_BASE) -#define CCP5_PIN (GPIO_PIN_5) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP5_PORT GPIO_PORTB_BASE +#define CCP5_PIN GPIO_PIN_5 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PWM2_PORT (GPIO_PORTH_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOH +#define PWM2_PORT GPIO_PORTH_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PWM3_PORT (GPIO_PORTH_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOH +#define PWM3_PORT GPIO_PORTH_BASE +#define PWM3_PIN GPIO_PIN_1 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 -#define U2RX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2RX_PORT (GPIO_PORTG_BASE) -#define U2RX_PIN (GPIO_PIN_0) +#define U2RX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2RX_PORT GPIO_PORTG_BASE +#define U2RX_PIN GPIO_PIN_0 -#define U2TX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2TX_PORT (GPIO_PORTG_BASE) -#define U2TX_PIN (GPIO_PIN_1) +#define U2TX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2TX_PORT GPIO_PORTG_BASE +#define U2TX_PIN GPIO_PIN_1 #endif // PART_LM3S1751 @@ -7415,148 +7974,522 @@ //***************************************************************************** #ifdef PART_LM3S1776 -#define ADC0_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC0_PORT (GPIO_PORTE_BASE) -#define ADC0_PIN (GPIO_PIN_3) +#define ADC0_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC0_PORT GPIO_PORTE_BASE +#define ADC0_PIN GPIO_PIN_3 -#define ADC1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC1_PORT (GPIO_PORTE_BASE) -#define ADC1_PIN (GPIO_PIN_2) +#define ADC1_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC1_PORT GPIO_PORTE_BASE +#define ADC1_PIN GPIO_PIN_2 -#define ADC2_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC2_PORT (GPIO_PORTE_BASE) -#define ADC2_PIN (GPIO_PIN_1) +#define ADC2_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC2_PORT GPIO_PORTE_BASE +#define ADC2_PIN GPIO_PIN_1 -#define ADC3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC3_PORT (GPIO_PORTE_BASE) -#define ADC3_PIN (GPIO_PIN_0) +#define ADC3_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC3_PORT GPIO_PORTE_BASE +#define ADC3_PIN GPIO_PIN_0 -#define ADC4_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC4_PORT (GPIO_PORTD_BASE) -#define ADC4_PIN (GPIO_PIN_3) +#define ADC4_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC4_PORT GPIO_PORTD_BASE +#define ADC4_PIN GPIO_PIN_3 -#define ADC5_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC5_PORT (GPIO_PORTD_BASE) -#define ADC5_PIN (GPIO_PIN_2) +#define ADC5_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC5_PORT GPIO_PORTD_BASE +#define ADC5_PIN GPIO_PIN_2 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP0_PORT (GPIO_PORTC_BASE) -#define CCP0_PIN (GPIO_PIN_7) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP0_PORT GPIO_PORTC_BASE +#define CCP0_PIN GPIO_PIN_7 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_5) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_5 -#define FAULT0_PERIPH (SYSCTL_PERIPH_GPIOE) -#define FAULT0_PORT (GPIO_PORTE_BASE) -#define FAULT0_PIN (GPIO_PIN_4) +#define FAULT0_PERIPH SYSCTL_PERIPH_GPIOE +#define FAULT0_PORT GPIO_PORTE_BASE +#define FAULT0_PIN GPIO_PIN_4 -#define FAULT1_PERIPH (SYSCTL_PERIPH_GPIOB) -#define FAULT1_PORT (GPIO_PORTB_BASE) -#define FAULT1_PIN (GPIO_PIN_6) +#define FAULT1_PERIPH SYSCTL_PERIPH_GPIOB +#define FAULT1_PORT GPIO_PORTB_BASE +#define FAULT1_PIN GPIO_PIN_6 -#define FAULT2_PERIPH (SYSCTL_PERIPH_GPIOC) -#define FAULT2_PORT (GPIO_PORTC_BASE) -#define FAULT2_PIN (GPIO_PIN_5) +#define FAULT2_PERIPH SYSCTL_PERIPH_GPIOC +#define FAULT2_PORT GPIO_PORTC_BASE +#define FAULT2_PIN GPIO_PIN_5 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define NMI_PERIPH (SYSCTL_PERIPH_GPIOB) -#define NMI_PORT (GPIO_PORTB_BASE) -#define NMI_PIN (GPIO_PIN_7) +#define NMI_PERIPH SYSCTL_PERIPH_GPIOB +#define NMI_PORT GPIO_PORTB_BASE +#define NMI_PIN GPIO_PIN_7 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM2_PORT (GPIO_PORTB_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM2_PORT GPIO_PORTB_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM3_PORT (GPIO_PORTB_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM3_PORT GPIO_PORTB_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOA) -#define PWM4_PORT (GPIO_PORTA_BASE) -#define PWM4_PIN (GPIO_PIN_6) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOA +#define PWM4_PORT GPIO_PORTA_BASE +#define PWM4_PIN GPIO_PIN_6 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOA) -#define PWM5_PORT (GPIO_PORTA_BASE) -#define PWM5_PIN (GPIO_PIN_7) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOA +#define PWM5_PORT GPIO_PORTA_BASE +#define PWM5_PIN GPIO_PIN_7 -#define PWM6_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PWM6_PORT (GPIO_PORTC_BASE) -#define PWM6_PIN (GPIO_PIN_4) +#define PWM6_PERIPH SYSCTL_PERIPH_GPIOC +#define PWM6_PORT GPIO_PORTC_BASE +#define PWM6_PIN GPIO_PIN_4 -#define PWM7_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PWM7_PORT (GPIO_PORTC_BASE) -#define PWM7_PIN (GPIO_PIN_6) +#define PWM7_PERIPH SYSCTL_PERIPH_GPIOC +#define PWM7_PORT GPIO_PORTC_BASE +#define PWM7_PIN GPIO_PIN_6 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 #endif // PART_LM3S1776 +//***************************************************************************** +// +// LM3S1811 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S1811 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 + +#define GPIO_PA3_SSI0FSS 0x00000C01 + +#define GPIO_PA4_SSI0RX 0x00001001 + +#define GPIO_PA5_SSI0TX 0x00001401 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#define GPIO_PE5_CCP5 0x00041401 + +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_EPI0S12 0x00051C08 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_EPI0S15 0x00061008 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_EPI0S6 0x00070008 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_EPI0S7 0x00070408 + +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 + +#endif // PART_LM3S1811 + +//***************************************************************************** +// +// LM3S1816 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S1816 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 + +#define GPIO_PA3_SSI0FSS 0x00000C01 + +#define GPIO_PA4_SSI0RX 0x00001001 + +#define GPIO_PA5_SSI0TX 0x00001401 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CCP3 0x00001C07 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_CCP3 0x00021405 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 + +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#endif // PART_LM3S1816 + //***************************************************************************** // // LM3S1850 Port/Pin Mapping Definitions @@ -7564,173 +8497,173 @@ //***************************************************************************** #ifdef PART_LM3S1850 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C0O_PORT (GPIO_PORTF_BASE) -#define C0O_PIN (GPIO_PIN_4) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOF +#define C0O_PORT GPIO_PORTF_BASE +#define C0O_PIN GPIO_PIN_4 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOE) -#define C1O_PORT (GPIO_PORTE_BASE) -#define C1O_PIN (GPIO_PIN_6) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOE +#define C1O_PORT GPIO_PORTE_BASE +#define C1O_PIN GPIO_PIN_6 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define C2_MINUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_MINUS_PORT (GPIO_PORTC_BASE) -#define C2_MINUS_PIN (GPIO_PIN_7) +#define C2_MINUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_MINUS_PORT GPIO_PORTC_BASE +#define C2_MINUS_PIN GPIO_PIN_7 -#define C2_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_PLUS_PORT (GPIO_PORTC_BASE) -#define C2_PLUS_PIN (GPIO_PIN_6) +#define C2_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_PLUS_PORT GPIO_PORTC_BASE +#define C2_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP3_PORT (GPIO_PORTD_BASE) -#define CCP3_PIN (GPIO_PIN_4) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP3_PORT GPIO_PORTD_BASE +#define CCP3_PIN GPIO_PIN_4 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP4_PORT (GPIO_PORTA_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP4_PORT GPIO_PORTA_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define IDX0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define IDX0_PORT (GPIO_PORTD_BASE) -#define IDX0_PIN (GPIO_PIN_7) +#define IDX0_PERIPH SYSCTL_PERIPH_GPIOD +#define IDX0_PORT GPIO_PORTD_BASE +#define IDX0_PIN GPIO_PIN_7 -#define PHA0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PHA0_PORT (GPIO_PORTD_BASE) -#define PHA0_PIN (GPIO_PIN_1) +#define PHA0_PERIPH SYSCTL_PERIPH_GPIOD +#define PHA0_PORT GPIO_PORTD_BASE +#define PHA0_PIN GPIO_PIN_1 -#define PHB0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PHB0_PORT (GPIO_PORTF_BASE) -#define PHB0_PIN (GPIO_PIN_0) +#define PHB0_PERIPH SYSCTL_PERIPH_GPIOF +#define PHB0_PORT GPIO_PORTF_BASE +#define PHB0_PIN GPIO_PIN_0 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM1_PORT (GPIO_PORTF_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM1_PORT GPIO_PORTF_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PWM2_PORT (GPIO_PORTH_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOH +#define PWM2_PORT GPIO_PORTH_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PWM3_PORT (GPIO_PORTH_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOH +#define PWM3_PORT GPIO_PORTH_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM4_PORT (GPIO_PORTE_BASE) -#define PWM4_PIN (GPIO_PIN_0) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM4_PORT GPIO_PORTE_BASE +#define PWM4_PIN GPIO_PIN_0 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM5_PORT (GPIO_PORTE_BASE) -#define PWM5_PIN (GPIO_PIN_1) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM5_PORT GPIO_PORTE_BASE +#define PWM5_PIN GPIO_PIN_1 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S1850 @@ -7741,165 +8674,165 @@ //***************************************************************************** #ifdef PART_LM3S1911 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C0O_PORT (GPIO_PORTF_BASE) -#define C0O_PIN (GPIO_PIN_4) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOF +#define C0O_PORT GPIO_PORTF_BASE +#define C0O_PIN GPIO_PIN_4 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOE) -#define C1O_PORT (GPIO_PORTE_BASE) -#define C1O_PIN (GPIO_PIN_6) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOE +#define C1O_PORT GPIO_PORTE_BASE +#define C1O_PIN GPIO_PIN_6 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP1_PORT (GPIO_PORTD_BASE) -#define CCP1_PIN (GPIO_PIN_7) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP1_PORT GPIO_PORTD_BASE +#define CCP1_PIN GPIO_PIN_7 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define CCP6_PERIPH (SYSCTL_PERIPH_GPIOH) -#define CCP6_PORT (GPIO_PORTH_BASE) -#define CCP6_PIN (GPIO_PIN_0) +#define CCP6_PERIPH SYSCTL_PERIPH_GPIOH +#define CCP6_PORT GPIO_PORTH_BASE +#define CCP6_PIN GPIO_PIN_0 -#define CCP7_PERIPH (SYSCTL_PERIPH_GPIOH) -#define CCP7_PORT (GPIO_PORTH_BASE) -#define CCP7_PIN (GPIO_PIN_1) +#define CCP7_PERIPH SYSCTL_PERIPH_GPIOH +#define CCP7_PORT GPIO_PORTH_BASE +#define CCP7_PIN GPIO_PIN_1 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define I2C1SCL_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SCL_PORT (GPIO_PORTA_BASE) -#define I2C1SCL_PIN (GPIO_PIN_6) +#define I2C1SCL_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SCL_PORT GPIO_PORTA_BASE +#define I2C1SCL_PIN GPIO_PIN_6 -#define I2C1SDA_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SDA_PORT (GPIO_PORTA_BASE) -#define I2C1SDA_PIN (GPIO_PIN_7) +#define I2C1SDA_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SDA_PORT GPIO_PORTA_BASE +#define I2C1SDA_PIN GPIO_PIN_7 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 -#define U2RX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2RX_PORT (GPIO_PORTG_BASE) -#define U2RX_PIN (GPIO_PIN_0) +#define U2RX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2RX_PORT GPIO_PORTG_BASE +#define U2RX_PIN GPIO_PIN_0 -#define U2TX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2TX_PORT (GPIO_PORTG_BASE) -#define U2TX_PIN (GPIO_PIN_1) +#define U2TX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2TX_PORT GPIO_PORTG_BASE +#define U2TX_PIN GPIO_PIN_1 #endif // PART_LM3S1911 @@ -7910,157 +8843,157 @@ //***************************************************************************** #ifdef PART_LM3S1918 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C0O_PORT (GPIO_PORTF_BASE) -#define C0O_PIN (GPIO_PIN_4) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOF +#define C0O_PORT GPIO_PORTF_BASE +#define C0O_PIN GPIO_PIN_4 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C1O_PORT (GPIO_PORTF_BASE) -#define C1O_PIN (GPIO_PIN_5) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOF +#define C1O_PORT GPIO_PORTF_BASE +#define C1O_PIN GPIO_PIN_5 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define CCP1_PORT (GPIO_PORTF_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOF +#define CCP1_PORT GPIO_PORTF_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define CCP6_PERIPH (SYSCTL_PERIPH_GPIOH) -#define CCP6_PORT (GPIO_PORTH_BASE) -#define CCP6_PIN (GPIO_PIN_0) +#define CCP6_PERIPH SYSCTL_PERIPH_GPIOH +#define CCP6_PORT GPIO_PORTH_BASE +#define CCP6_PIN GPIO_PIN_0 -#define CCP7_PERIPH (SYSCTL_PERIPH_GPIOH) -#define CCP7_PORT (GPIO_PORTH_BASE) -#define CCP7_PIN (GPIO_PIN_1) +#define CCP7_PERIPH SYSCTL_PERIPH_GPIOH +#define CCP7_PORT GPIO_PORTH_BASE +#define CCP7_PIN GPIO_PIN_1 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define I2C1SCL_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SCL_PORT (GPIO_PORTA_BASE) -#define I2C1SCL_PIN (GPIO_PIN_6) +#define I2C1SCL_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SCL_PORT GPIO_PORTA_BASE +#define I2C1SCL_PIN GPIO_PIN_6 -#define I2C1SDA_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SDA_PORT (GPIO_PORTA_BASE) -#define I2C1SDA_PIN (GPIO_PIN_7) +#define I2C1SDA_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SDA_PORT GPIO_PORTA_BASE +#define I2C1SDA_PIN GPIO_PIN_7 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S1918 @@ -8071,133 +9004,133 @@ //***************************************************************************** #ifdef PART_LM3S1937 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0O_PORT (GPIO_PORTB_BASE) -#define C0O_PIN (GPIO_PIN_5) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOB +#define C0O_PORT GPIO_PORTB_BASE +#define C0O_PIN GPIO_PIN_5 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PWM2_PORT (GPIO_PORTH_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOH +#define PWM2_PORT GPIO_PORTH_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PWM3_PORT (GPIO_PORTH_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOH +#define PWM3_PORT GPIO_PORTH_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM4_PORT (GPIO_PORTE_BASE) -#define PWM4_PIN (GPIO_PIN_0) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM4_PORT GPIO_PORTE_BASE +#define PWM4_PIN GPIO_PIN_0 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM5_PORT (GPIO_PORTE_BASE) -#define PWM5_PIN (GPIO_PIN_1) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM5_PORT GPIO_PORTE_BASE +#define PWM5_PIN GPIO_PIN_1 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S1937 @@ -8208,141 +9141,141 @@ //***************************************************************************** #ifdef PART_LM3S1958 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP1_PORT (GPIO_PORTB_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP1_PORT GPIO_PORTB_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP5_PORT (GPIO_PORTB_BASE) -#define CCP5_PIN (GPIO_PIN_5) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP5_PORT GPIO_PORTB_BASE +#define CCP5_PIN GPIO_PIN_5 -#define CCP6_PERIPH (SYSCTL_PERIPH_GPIOH) -#define CCP6_PORT (GPIO_PORTH_BASE) -#define CCP6_PIN (GPIO_PIN_0) +#define CCP6_PERIPH SYSCTL_PERIPH_GPIOH +#define CCP6_PORT GPIO_PORTH_BASE +#define CCP6_PIN GPIO_PIN_0 -#define CCP7_PERIPH (SYSCTL_PERIPH_GPIOH) -#define CCP7_PORT (GPIO_PORTH_BASE) -#define CCP7_PIN (GPIO_PIN_1) +#define CCP7_PERIPH SYSCTL_PERIPH_GPIOH +#define CCP7_PORT GPIO_PORTH_BASE +#define CCP7_PIN GPIO_PIN_1 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define I2C1SCL_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SCL_PORT (GPIO_PORTA_BASE) -#define I2C1SCL_PIN (GPIO_PIN_6) +#define I2C1SCL_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SCL_PORT GPIO_PORTA_BASE +#define I2C1SCL_PIN GPIO_PIN_6 -#define I2C1SDA_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SDA_PORT (GPIO_PORTA_BASE) -#define I2C1SDA_PIN (GPIO_PIN_7) +#define I2C1SDA_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SDA_PORT GPIO_PORTA_BASE +#define I2C1SDA_PIN GPIO_PIN_7 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 -#define U2RX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2RX_PORT (GPIO_PORTG_BASE) -#define U2RX_PIN (GPIO_PIN_0) +#define U2RX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2RX_PORT GPIO_PORTG_BASE +#define U2RX_PIN GPIO_PIN_0 -#define U2TX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2TX_PORT (GPIO_PORTG_BASE) -#define U2TX_PIN (GPIO_PIN_1) +#define U2TX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2TX_PORT GPIO_PORTG_BASE +#define U2TX_PIN GPIO_PIN_1 #endif // PART_LM3S1958 @@ -8353,229 +9286,229 @@ //***************************************************************************** #ifdef PART_LM3S1960 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C0O_PORT (GPIO_PORTF_BASE) -#define C0O_PIN (GPIO_PIN_4) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOF +#define C0O_PORT GPIO_PORTF_BASE +#define C0O_PIN GPIO_PIN_4 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C1O_PORT (GPIO_PORTF_BASE) -#define C1O_PIN (GPIO_PIN_5) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOF +#define C1O_PORT GPIO_PORTF_BASE +#define C1O_PIN GPIO_PIN_5 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define C2O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C2O_PORT (GPIO_PORTF_BASE) -#define C2O_PIN (GPIO_PIN_6) +#define C2O_PERIPH SYSCTL_PERIPH_GPIOF +#define C2O_PORT GPIO_PORTF_BASE +#define C2O_PIN GPIO_PIN_6 -#define C2_MINUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_MINUS_PORT (GPIO_PORTC_BASE) -#define C2_MINUS_PIN (GPIO_PIN_7) +#define C2_MINUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_MINUS_PORT GPIO_PORTC_BASE +#define C2_MINUS_PIN GPIO_PIN_7 -#define C2_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_PLUS_PORT (GPIO_PORTC_BASE) -#define C2_PLUS_PIN (GPIO_PIN_6) +#define C2_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_PLUS_PORT GPIO_PORTC_BASE +#define C2_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP0_PORT (GPIO_PORTD_BASE) -#define CCP0_PIN (GPIO_PIN_4) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP0_PORT GPIO_PORTD_BASE +#define CCP0_PIN GPIO_PIN_4 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP1_PORT (GPIO_PORTD_BASE) -#define CCP1_PIN (GPIO_PIN_7) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP1_PORT GPIO_PORTD_BASE +#define CCP1_PIN GPIO_PIN_7 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP2_PORT (GPIO_PORTD_BASE) -#define CCP2_PIN (GPIO_PIN_5) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP2_PORT GPIO_PORTD_BASE +#define CCP2_PIN GPIO_PIN_5 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP3_PORT (GPIO_PORTE_BASE) -#define CCP3_PIN (GPIO_PIN_4) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP3_PORT GPIO_PORTE_BASE +#define CCP3_PIN GPIO_PIN_4 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOF) -#define CCP4_PORT (GPIO_PORTF_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOF +#define CCP4_PORT GPIO_PORTF_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define CCP6_PERIPH (SYSCTL_PERIPH_GPIOH) -#define CCP6_PORT (GPIO_PORTH_BASE) -#define CCP6_PIN (GPIO_PIN_0) +#define CCP6_PERIPH SYSCTL_PERIPH_GPIOH +#define CCP6_PORT GPIO_PORTH_BASE +#define CCP6_PIN GPIO_PIN_0 -#define CCP7_PERIPH (SYSCTL_PERIPH_GPIOH) -#define CCP7_PORT (GPIO_PORTH_BASE) -#define CCP7_PIN (GPIO_PIN_1) +#define CCP7_PERIPH SYSCTL_PERIPH_GPIOH +#define CCP7_PORT GPIO_PORTH_BASE +#define CCP7_PIN GPIO_PIN_1 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define I2C1SCL_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SCL_PORT (GPIO_PORTA_BASE) -#define I2C1SCL_PIN (GPIO_PIN_6) +#define I2C1SCL_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SCL_PORT GPIO_PORTA_BASE +#define I2C1SCL_PIN GPIO_PIN_6 -#define I2C1SDA_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SDA_PORT (GPIO_PORTA_BASE) -#define I2C1SDA_PIN (GPIO_PIN_7) +#define I2C1SDA_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SDA_PORT GPIO_PORTA_BASE +#define I2C1SDA_PIN GPIO_PIN_7 -#define IDX0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define IDX0_PORT (GPIO_PORTD_BASE) -#define IDX0_PIN (GPIO_PIN_0) +#define IDX0_PERIPH SYSCTL_PERIPH_GPIOD +#define IDX0_PORT GPIO_PORTD_BASE +#define IDX0_PIN GPIO_PIN_0 -#define IDX1_PERIPH (SYSCTL_PERIPH_GPIOH) -#define IDX1_PORT (GPIO_PORTH_BASE) -#define IDX1_PIN (GPIO_PIN_2) +#define IDX1_PERIPH SYSCTL_PERIPH_GPIOH +#define IDX1_PORT GPIO_PORTH_BASE +#define IDX1_PIN GPIO_PIN_2 -#define PHA0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PHA0_PORT (GPIO_PORTD_BASE) -#define PHA0_PIN (GPIO_PIN_1) +#define PHA0_PERIPH SYSCTL_PERIPH_GPIOD +#define PHA0_PORT GPIO_PORTD_BASE +#define PHA0_PIN GPIO_PIN_1 -#define PHA1_PERIPH (SYSCTL_PERIPH_GPIOG) -#define PHA1_PORT (GPIO_PORTG_BASE) -#define PHA1_PIN (GPIO_PIN_6) +#define PHA1_PERIPH SYSCTL_PERIPH_GPIOG +#define PHA1_PORT GPIO_PORTG_BASE +#define PHA1_PIN GPIO_PIN_6 -#define PHB0_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PHB0_PORT (GPIO_PORTH_BASE) -#define PHB0_PIN (GPIO_PIN_3) +#define PHB0_PERIPH SYSCTL_PERIPH_GPIOH +#define PHB0_PORT GPIO_PORTH_BASE +#define PHB0_PIN GPIO_PIN_3 -#define PHB1_PERIPH (SYSCTL_PERIPH_GPIOG) -#define PHB1_PORT (GPIO_PORTG_BASE) -#define PHB1_PIN (GPIO_PIN_7) +#define PHB1_PERIPH SYSCTL_PERIPH_GPIOG +#define PHB1_PORT GPIO_PORTG_BASE +#define PHB1_PIN GPIO_PIN_7 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM0_PORT (GPIO_PORTF_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM0_PORT GPIO_PORTF_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM1_PORT (GPIO_PORTF_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM1_PORT GPIO_PORTF_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM2_PORT (GPIO_PORTB_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM2_PORT GPIO_PORTB_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM3_PORT (GPIO_PORTB_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM3_PORT GPIO_PORTB_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM4_PORT (GPIO_PORTE_BASE) -#define PWM4_PIN (GPIO_PIN_6) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM4_PORT GPIO_PORTE_BASE +#define PWM4_PIN GPIO_PIN_6 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM5_PORT (GPIO_PORTE_BASE) -#define PWM5_PIN (GPIO_PIN_7) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM5_PORT GPIO_PORTE_BASE +#define PWM5_PIN GPIO_PIN_7 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 -#define U2RX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2RX_PORT (GPIO_PORTG_BASE) -#define U2RX_PIN (GPIO_PIN_0) +#define U2RX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2RX_PORT GPIO_PORTG_BASE +#define U2RX_PIN GPIO_PIN_0 -#define U2TX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2TX_PORT (GPIO_PORTG_BASE) -#define U2TX_PIN (GPIO_PIN_1) +#define U2TX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2TX_PORT GPIO_PORTG_BASE +#define U2TX_PIN GPIO_PIN_1 #endif // PART_LM3S1960 @@ -8586,208 +9519,4101 @@ //***************************************************************************** #ifdef PART_LM3S1968 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C0O_PORT (GPIO_PORTF_BASE) -#define C0O_PIN (GPIO_PIN_4) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOF +#define C0O_PORT GPIO_PORTF_BASE +#define C0O_PIN GPIO_PIN_4 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define C2_MINUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_MINUS_PORT (GPIO_PORTC_BASE) -#define C2_MINUS_PIN (GPIO_PIN_7) +#define C2_MINUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_MINUS_PORT GPIO_PORTC_BASE +#define C2_MINUS_PIN GPIO_PIN_7 -#define C2_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_PLUS_PORT (GPIO_PORTC_BASE) -#define C2_PLUS_PIN (GPIO_PIN_6) +#define C2_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_PLUS_PORT GPIO_PORTC_BASE +#define C2_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define CCP1_PORT (GPIO_PORTF_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOF +#define CCP1_PORT GPIO_PORTF_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOG) -#define CCP3_PORT (GPIO_PORTG_BASE) -#define CCP3_PIN (GPIO_PIN_4) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOG +#define CCP3_PORT GPIO_PORTG_BASE +#define CCP3_PIN GPIO_PIN_4 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOH) -#define FAULT_PORT (GPIO_PORTH_BASE) -#define FAULT_PIN (GPIO_PIN_3) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOH +#define FAULT_PORT GPIO_PORTH_BASE +#define FAULT_PIN GPIO_PIN_3 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define I2C1SCL_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SCL_PORT (GPIO_PORTA_BASE) -#define I2C1SCL_PIN (GPIO_PIN_6) +#define I2C1SCL_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SCL_PORT GPIO_PORTA_BASE +#define I2C1SCL_PIN GPIO_PIN_6 -#define I2C1SDA_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SDA_PORT (GPIO_PORTA_BASE) -#define I2C1SDA_PIN (GPIO_PIN_7) +#define I2C1SDA_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SDA_PORT GPIO_PORTA_BASE +#define I2C1SDA_PIN GPIO_PIN_7 -#define IDX0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define IDX0_PORT (GPIO_PORTD_BASE) -#define IDX0_PIN (GPIO_PIN_0) +#define IDX0_PERIPH SYSCTL_PERIPH_GPIOD +#define IDX0_PORT GPIO_PORTD_BASE +#define IDX0_PIN GPIO_PIN_0 -#define IDX1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define IDX1_PORT (GPIO_PORTF_BASE) -#define IDX1_PIN (GPIO_PIN_1) +#define IDX1_PERIPH SYSCTL_PERIPH_GPIOF +#define IDX1_PORT GPIO_PORTF_BASE +#define IDX1_PIN GPIO_PIN_1 -#define PHA0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHA0_PORT (GPIO_PORTC_BASE) -#define PHA0_PIN (GPIO_PIN_4) +#define PHA0_PERIPH SYSCTL_PERIPH_GPIOC +#define PHA0_PORT GPIO_PORTC_BASE +#define PHA0_PIN GPIO_PIN_4 -#define PHA1_PERIPH (SYSCTL_PERIPH_GPIOG) -#define PHA1_PORT (GPIO_PORTG_BASE) -#define PHA1_PIN (GPIO_PIN_6) +#define PHA1_PERIPH SYSCTL_PERIPH_GPIOG +#define PHA1_PORT GPIO_PORTG_BASE +#define PHA1_PIN GPIO_PIN_6 -#define PHB0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PHB0_PORT (GPIO_PORTF_BASE) -#define PHB0_PIN (GPIO_PIN_0) +#define PHB0_PERIPH SYSCTL_PERIPH_GPIOF +#define PHB0_PORT GPIO_PORTF_BASE +#define PHB0_PIN GPIO_PIN_0 -#define PHB1_PERIPH (SYSCTL_PERIPH_GPIOG) -#define PHB1_PORT (GPIO_PORTG_BASE) -#define PHB1_PIN (GPIO_PIN_7) +#define PHB1_PERIPH SYSCTL_PERIPH_GPIOG +#define PHB1_PORT GPIO_PORTG_BASE +#define PHB1_PIN GPIO_PIN_7 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOG) -#define PWM0_PORT (GPIO_PORTG_BASE) -#define PWM0_PIN (GPIO_PIN_2) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOG +#define PWM0_PORT GPIO_PORTG_BASE +#define PWM0_PIN GPIO_PIN_2 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PWM2_PORT (GPIO_PORTH_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOH +#define PWM2_PORT GPIO_PORTH_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PWM3_PORT (GPIO_PORTH_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOH +#define PWM3_PORT GPIO_PORTH_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM4_PORT (GPIO_PORTF_BASE) -#define PWM4_PIN (GPIO_PIN_2) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM4_PORT GPIO_PORTF_BASE +#define PWM4_PIN GPIO_PIN_2 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM5_PORT (GPIO_PORTF_BASE) -#define PWM5_PIN (GPIO_PIN_3) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM5_PORT GPIO_PORTF_BASE +#define PWM5_PIN GPIO_PIN_3 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 -#define U2RX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2RX_PORT (GPIO_PORTG_BASE) -#define U2RX_PIN (GPIO_PIN_0) +#define U2RX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2RX_PORT GPIO_PORTG_BASE +#define U2RX_PIN GPIO_PIN_0 -#define U2TX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2TX_PORT (GPIO_PORTG_BASE) -#define U2TX_PIN (GPIO_PIN_1) +#define U2TX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2TX_PORT GPIO_PORTG_BASE +#define U2TX_PIN GPIO_PIN_1 #endif // PART_LM3S1968 +//***************************************************************************** +// +// LM3S1B21 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S1B21 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 + +#define GPIO_PA3_SSI0FSS 0x00000C01 + +#define GPIO_PA4_SSI0RX 0x00001001 + +#define GPIO_PA5_SSI0TX 0x00001401 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#define GPIO_PE5_CCP5 0x00041401 + +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_EPI0S12 0x00051C08 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_EPI0S15 0x00061008 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_EPI0S6 0x00070008 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_EPI0S7 0x00070408 + +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 + +#endif // PART_LM3S1B21 + +//***************************************************************************** +// +// LM3S1C21 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S1C21 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 + +#define GPIO_PA3_SSI0FSS 0x00000C01 + +#define GPIO_PA4_SSI0RX 0x00001001 + +#define GPIO_PA5_SSI0TX 0x00001401 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#define GPIO_PE5_CCP5 0x00041401 + +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_EPI0S12 0x00051C08 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_EPI0S15 0x00061008 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_EPI0S6 0x00070008 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_EPI0S7 0x00070408 + +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 + +#endif // PART_LM3S1C21 + +//***************************************************************************** +// +// LM3S1C26 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S1C26 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 + +#define GPIO_PA3_SSI0FSS 0x00000C01 + +#define GPIO_PA4_SSI0RX 0x00001001 + +#define GPIO_PA5_SSI0TX 0x00001401 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CCP3 0x00001C07 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_CCP3 0x00021405 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 + +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#endif // PART_LM3S1C26 + +//***************************************************************************** +// +// LM3S1C58 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S1C58 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 + +#define GPIO_PA3_SSI0FSS 0x00000C01 + +#define GPIO_PA4_SSI0RX 0x00001001 + +#define GPIO_PA5_SSI0TX 0x00001401 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CCP3 0x00001C07 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_CCP3 0x00021405 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 + +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 + +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_U2RX 0x00031409 + +#define GPIO_PD6_U2TX 0x00031809 + +#define GPIO_PD7_CCP1 0x00031C03 + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#define GPIO_PE5_CCP5 0x00041401 + +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 + +#define GPIO_PF7_CCP4 0x00051C01 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_I2C1SCL 0x00060003 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_I2C1SDA 0x00060403 + +#define GPIO_PG4_CCP3 0x00061001 + +#define GPIO_PG5_CCP5 0x00061401 + +#define GPIO_PG7_CCP5 0x00061C08 + +#define GPIO_PH0_CCP6 0x00070001 + +#define GPIO_PH1_CCP7 0x00070401 + +#endif // PART_LM3S1C58 + +//***************************************************************************** +// +// LM3S1D21 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S1D21 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 + +#define GPIO_PA3_SSI0FSS 0x00000C01 + +#define GPIO_PA4_SSI0RX 0x00001001 + +#define GPIO_PA5_SSI0TX 0x00001401 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#define GPIO_PE5_CCP5 0x00041401 + +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_EPI0S12 0x00051C08 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_EPI0S15 0x00061008 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_EPI0S6 0x00070008 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_EPI0S7 0x00070408 + +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 + +#endif // PART_LM3S1D21 + +//***************************************************************************** +// +// LM3S1D26 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S1D26 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 + +#define GPIO_PA3_SSI0FSS 0x00000C01 + +#define GPIO_PA4_SSI0RX 0x00001001 + +#define GPIO_PA5_SSI0TX 0x00001401 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CCP3 0x00001C07 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_CCP3 0x00021405 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 + +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#endif // PART_LM3S1D26 + +//***************************************************************************** +// +// LM3S1F11 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S1F11 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 + +#define GPIO_PA3_SSI0FSS 0x00000C01 + +#define GPIO_PA4_SSI0RX 0x00001001 + +#define GPIO_PA5_SSI0TX 0x00001401 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#define GPIO_PE5_CCP5 0x00041401 + +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_EPI0S12 0x00051C08 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_EPI0S15 0x00061008 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_EPI0S6 0x00070008 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_EPI0S7 0x00070408 + +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 + +#endif // PART_LM3S1F11 + +//***************************************************************************** +// +// LM3S1F16 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S1F16 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 + +#define GPIO_PA3_SSI0FSS 0x00000C01 + +#define GPIO_PA4_SSI0RX 0x00001001 + +#define GPIO_PA5_SSI0TX 0x00001401 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CCP3 0x00001C07 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_CCP3 0x00021405 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 + +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#endif // PART_LM3S1F16 + +//***************************************************************************** +// +// LM3S1G21 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S1G21 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 + +#define GPIO_PA3_SSI0FSS 0x00000C01 + +#define GPIO_PA4_SSI0RX 0x00001001 + +#define GPIO_PA5_SSI0TX 0x00001401 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#define GPIO_PE5_CCP5 0x00041401 + +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_EPI0S12 0x00051C08 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_EPI0S15 0x00061008 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_EPI0S6 0x00070008 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_EPI0S7 0x00070408 + +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 + +#endif // PART_LM3S1G21 + +//***************************************************************************** +// +// LM3S1G58 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S1G58 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 + +#define GPIO_PA3_SSI0FSS 0x00000C01 + +#define GPIO_PA4_SSI0RX 0x00001001 + +#define GPIO_PA5_SSI0TX 0x00001401 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CCP3 0x00001C07 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_CCP3 0x00021405 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 + +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 + +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_U2RX 0x00031409 + +#define GPIO_PD6_U2TX 0x00031809 + +#define GPIO_PD7_CCP1 0x00031C03 + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#define GPIO_PE5_CCP5 0x00041401 + +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 + +#define GPIO_PF7_CCP4 0x00051C01 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_I2C1SCL 0x00060003 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_I2C1SDA 0x00060403 + +#define GPIO_PG4_CCP3 0x00061001 + +#define GPIO_PG5_CCP5 0x00061401 + +#define GPIO_PG7_CCP5 0x00061C08 + +#define GPIO_PH0_CCP6 0x00070001 + +#define GPIO_PH1_CCP7 0x00070401 + +#endif // PART_LM3S1G58 + +//***************************************************************************** +// +// LM3S1H11 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S1H11 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 + +#define GPIO_PA3_SSI0FSS 0x00000C01 + +#define GPIO_PA4_SSI0RX 0x00001001 + +#define GPIO_PA5_SSI0TX 0x00001401 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#define GPIO_PE5_CCP5 0x00041401 + +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_EPI0S12 0x00051C08 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_EPI0S15 0x00061008 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_EPI0S6 0x00070008 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_EPI0S7 0x00070408 + +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 + +#endif // PART_LM3S1H11 + +//***************************************************************************** +// +// LM3S1H16 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S1H16 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 + +#define GPIO_PA3_SSI0FSS 0x00000C01 + +#define GPIO_PA4_SSI0RX 0x00001001 + +#define GPIO_PA5_SSI0TX 0x00001401 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CCP3 0x00001C07 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_CCP3 0x00021405 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 + +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#endif // PART_LM3S1H16 + +//***************************************************************************** +// +// LM3S1J11 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S1J11 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 + +#define GPIO_PA3_SSI0FSS 0x00000C01 + +#define GPIO_PA4_SSI0RX 0x00001001 + +#define GPIO_PA5_SSI0TX 0x00001401 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_CCP3 0x00021405 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_U1RI 0x00031009 + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_U2RX 0x00031409 + +#define GPIO_PD6_U2TX 0x00031809 + +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_U1DTR 0x00031C09 + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#define GPIO_PE5_CCP5 0x00041401 + +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_I2C1SCL 0x00060003 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_I2C1SDA 0x00060403 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_CCP5 0x00061C08 + +#define GPIO_PH2_C1O 0x00070802 + +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_CCP0 0x00080809 + +#endif // PART_LM3S1J11 + +//***************************************************************************** +// +// LM3S1J16 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S1J16 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 + +#define GPIO_PA3_SSI0FSS 0x00000C01 + +#define GPIO_PA4_SSI0RX 0x00001001 + +#define GPIO_PA5_SSI0TX 0x00001401 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CCP3 0x00001C07 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_CCP3 0x00021405 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 + +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#endif // PART_LM3S1J16 + +//***************************************************************************** +// +// LM3S1N11 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S1N11 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 + +#define GPIO_PA3_SSI0FSS 0x00000C01 + +#define GPIO_PA4_SSI0RX 0x00001001 + +#define GPIO_PA5_SSI0TX 0x00001401 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_CCP3 0x00021405 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_U1RI 0x00031009 + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_U2RX 0x00031409 + +#define GPIO_PD6_U2TX 0x00031809 + +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_U1DTR 0x00031C09 + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#define GPIO_PE5_CCP5 0x00041401 + +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_I2C1SCL 0x00060003 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_I2C1SDA 0x00060403 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_CCP5 0x00061C08 + +#define GPIO_PH2_C1O 0x00070802 + +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_CCP0 0x00080809 + +#endif // PART_LM3S1N11 + +//***************************************************************************** +// +// LM3S1N16 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S1N16 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 + +#define GPIO_PA3_SSI0FSS 0x00000C01 + +#define GPIO_PA4_SSI0RX 0x00001001 + +#define GPIO_PA5_SSI0TX 0x00001401 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CCP3 0x00001C07 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_CCP3 0x00021405 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 + +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#endif // PART_LM3S1N16 + +//***************************************************************************** +// +// LM3S1P51 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S1P51 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_PHA0 0x00051804 +#define GPIO_PF6_I2S0TXMCLK 0x00051809 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_PHB0 0x00051C04 +#define GPIO_PF7_FAULT1 0x00051C09 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 + +#define GPIO_PG2_PWM0 0x00060801 +#define GPIO_PG2_FAULT0 0x00060804 +#define GPIO_PG2_IDX1 0x00060808 +#define GPIO_PG2_I2S0RXSD 0x00060809 + +#define GPIO_PG3_PWM1 0x00060C01 +#define GPIO_PG3_FAULT2 0x00060C04 +#define GPIO_PG3_FAULT0 0x00060C08 +#define GPIO_PG3_I2S0RXMCLK 0x00060C09 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_FAULT1 0x00061004 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_IDX0 0x00061404 +#define GPIO_PG5_FAULT1 0x00061405 +#define GPIO_PG5_I2S0RXSCK 0x00061409 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_PHA1 0x00061801 +#define GPIO_PG6_FAULT1 0x00061808 +#define GPIO_PG6_I2S0RXWS 0x00061809 +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_CCP5 0x00061C08 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 + +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#endif // PART_LM3S1P51 + +//***************************************************************************** +// +// LM3S1R21 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S1R21 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 + +#define GPIO_PA3_SSI0FSS 0x00000C01 + +#define GPIO_PA4_SSI0RX 0x00001001 + +#define GPIO_PA5_SSI0TX 0x00001401 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#define GPIO_PE5_CCP5 0x00041401 + +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_EPI0S12 0x00051C08 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_EPI0S15 0x00061008 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_EPI0S6 0x00070008 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_EPI0S7 0x00070408 + +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 + +#endif // PART_LM3S1R21 + +//***************************************************************************** +// +// LM3S1R26 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S1R26 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 + +#define GPIO_PA3_SSI0FSS 0x00000C01 + +#define GPIO_PA4_SSI0RX 0x00001001 + +#define GPIO_PA5_SSI0TX 0x00001401 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CCP3 0x00001C07 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_CCP3 0x00021405 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 + +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#endif // PART_LM3S1R26 + +//***************************************************************************** +// +// LM3S1W16 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S1W16 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 + +#define GPIO_PA3_SSI0FSS 0x00000C01 + +#define GPIO_PA4_SSI0RX 0x00001001 + +#define GPIO_PA5_SSI0TX 0x00001401 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CCP3 0x00001C07 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_CCP3 0x00021405 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 + +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#endif // PART_LM3S1W16 + +//***************************************************************************** +// +// LM3S1Z16 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S1Z16 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 + +#define GPIO_PA3_SSI0FSS 0x00000C01 + +#define GPIO_PA4_SSI0RX 0x00001001 + +#define GPIO_PA5_SSI0TX 0x00001401 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CCP3 0x00001C07 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_CCP3 0x00021405 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 + +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#endif // PART_LM3S1Z16 + //***************************************************************************** // // LM3S2016 Port/Pin Mapping Definitions @@ -8795,101 +13621,101 @@ //***************************************************************************** #ifdef PART_LM3S2016 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S2016 @@ -8900,133 +13726,133 @@ //***************************************************************************** #ifdef PART_LM3S2110 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOD) -#define C0O_PORT (GPIO_PORTD_BASE) -#define C0O_PIN (GPIO_PIN_7) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOD +#define C0O_PORT GPIO_PORTD_BASE +#define C0O_PIN GPIO_PIN_7 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define C2_MINUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_MINUS_PORT (GPIO_PORTC_BASE) -#define C2_MINUS_PIN (GPIO_PIN_7) +#define C2_MINUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_MINUS_PORT GPIO_PORTC_BASE +#define C2_MINUS_PIN GPIO_PIN_7 -#define C2_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_PLUS_PORT (GPIO_PORTC_BASE) -#define C2_PLUS_PIN (GPIO_PIN_6) +#define C2_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_PLUS_PORT GPIO_PORTC_BASE +#define C2_PLUS_PIN GPIO_PIN_6 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP3_PORT (GPIO_PORTD_BASE) -#define CCP3_PIN (GPIO_PIN_4) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP3_PORT GPIO_PORTD_BASE +#define CCP3_PIN GPIO_PIN_4 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM0_PORT (GPIO_PORTF_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM0_PORT GPIO_PORTF_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM1_PORT (GPIO_PORTF_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM1_PORT GPIO_PORTF_BASE +#define PWM1_PIN GPIO_PIN_1 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 #endif // PART_LM3S2110 @@ -9037,137 +13863,137 @@ //***************************************************************************** #ifdef PART_LM3S2139 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOD) -#define C0O_PORT (GPIO_PORTD_BASE) -#define C0O_PIN (GPIO_PIN_7) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOD +#define C0O_PORT GPIO_PORTD_BASE +#define C0O_PIN GPIO_PIN_7 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define C2_MINUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_MINUS_PORT (GPIO_PORTC_BASE) -#define C2_MINUS_PIN (GPIO_PIN_7) +#define C2_MINUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_MINUS_PORT GPIO_PORTC_BASE +#define C2_MINUS_PIN GPIO_PIN_7 -#define C2_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_PLUS_PORT (GPIO_PORTC_BASE) -#define C2_PLUS_PIN (GPIO_PIN_6) +#define C2_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_PLUS_PORT GPIO_PORTC_BASE +#define C2_PLUS_PIN GPIO_PIN_6 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP3_PORT (GPIO_PORTD_BASE) -#define CCP3_PIN (GPIO_PIN_4) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP3_PORT GPIO_PORTD_BASE +#define CCP3_PIN GPIO_PIN_4 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP4_PORT (GPIO_PORTA_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP4_PORT GPIO_PORTA_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S2139 @@ -9178,149 +14004,149 @@ //***************************************************************************** #ifdef PART_LM3S2276 -#define ADC0_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC0_PORT (GPIO_PORTE_BASE) -#define ADC0_PIN (GPIO_PIN_3) +#define ADC0_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC0_PORT GPIO_PORTE_BASE +#define ADC0_PIN GPIO_PIN_3 -#define ADC1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC1_PORT (GPIO_PORTE_BASE) -#define ADC1_PIN (GPIO_PIN_2) +#define ADC1_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC1_PORT GPIO_PORTE_BASE +#define ADC1_PIN GPIO_PIN_2 -#define ADC2_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC2_PORT (GPIO_PORTE_BASE) -#define ADC2_PIN (GPIO_PIN_1) +#define ADC2_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC2_PORT GPIO_PORTE_BASE +#define ADC2_PIN GPIO_PIN_1 -#define ADC3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC3_PORT (GPIO_PORTE_BASE) -#define ADC3_PIN (GPIO_PIN_0) +#define ADC3_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC3_PORT GPIO_PORTE_BASE +#define ADC3_PIN GPIO_PIN_0 -#define ADC4_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC4_PORT (GPIO_PORTD_BASE) -#define ADC4_PIN (GPIO_PIN_3) +#define ADC4_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC4_PORT GPIO_PORTD_BASE +#define ADC4_PIN GPIO_PIN_3 -#define ADC5_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC5_PORT (GPIO_PORTD_BASE) -#define ADC5_PIN (GPIO_PIN_2) +#define ADC5_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC5_PORT GPIO_PORTD_BASE +#define ADC5_PIN GPIO_PIN_2 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CAN0RX_PORT (GPIO_PORTB_BASE) -#define CAN0RX_PIN (GPIO_PIN_4) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOB +#define CAN0RX_PORT GPIO_PORTB_BASE +#define CAN0RX_PIN GPIO_PIN_4 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CAN0TX_PORT (GPIO_PORTB_BASE) -#define CAN0TX_PIN (GPIO_PIN_5) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOB +#define CAN0TX_PORT GPIO_PORTB_BASE +#define CAN0TX_PIN GPIO_PIN_5 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP0_PORT (GPIO_PORTC_BASE) -#define CCP0_PIN (GPIO_PIN_7) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP0_PORT GPIO_PORTC_BASE +#define CCP0_PIN GPIO_PIN_7 -#define FAULT0_PERIPH (SYSCTL_PERIPH_GPIOE) -#define FAULT0_PORT (GPIO_PORTE_BASE) -#define FAULT0_PIN (GPIO_PIN_4) +#define FAULT0_PERIPH SYSCTL_PERIPH_GPIOE +#define FAULT0_PORT GPIO_PORTE_BASE +#define FAULT0_PIN GPIO_PIN_4 -#define FAULT1_PERIPH (SYSCTL_PERIPH_GPIOB) -#define FAULT1_PORT (GPIO_PORTB_BASE) -#define FAULT1_PIN (GPIO_PIN_6) +#define FAULT1_PERIPH SYSCTL_PERIPH_GPIOB +#define FAULT1_PORT GPIO_PORTB_BASE +#define FAULT1_PIN GPIO_PIN_6 -#define FAULT2_PERIPH (SYSCTL_PERIPH_GPIOC) -#define FAULT2_PORT (GPIO_PORTC_BASE) -#define FAULT2_PIN (GPIO_PIN_5) +#define FAULT2_PERIPH SYSCTL_PERIPH_GPIOC +#define FAULT2_PORT GPIO_PORTC_BASE +#define FAULT2_PIN GPIO_PIN_5 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define NMI_PERIPH (SYSCTL_PERIPH_GPIOB) -#define NMI_PORT (GPIO_PORTB_BASE) -#define NMI_PIN (GPIO_PIN_7) +#define NMI_PERIPH SYSCTL_PERIPH_GPIOB +#define NMI_PORT GPIO_PORTB_BASE +#define NMI_PIN GPIO_PIN_7 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM2_PORT (GPIO_PORTB_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM2_PORT GPIO_PORTB_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM3_PORT (GPIO_PORTB_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM3_PORT GPIO_PORTB_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOA) -#define PWM4_PORT (GPIO_PORTA_BASE) -#define PWM4_PIN (GPIO_PIN_6) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOA +#define PWM4_PORT GPIO_PORTA_BASE +#define PWM4_PIN GPIO_PIN_6 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOA) -#define PWM5_PORT (GPIO_PORTA_BASE) -#define PWM5_PIN (GPIO_PIN_7) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOA +#define PWM5_PORT GPIO_PORTA_BASE +#define PWM5_PIN GPIO_PIN_7 -#define PWM6_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PWM6_PORT (GPIO_PORTC_BASE) -#define PWM6_PIN (GPIO_PIN_4) +#define PWM6_PERIPH SYSCTL_PERIPH_GPIOC +#define PWM6_PORT GPIO_PORTC_BASE +#define PWM6_PIN GPIO_PIN_4 -#define PWM7_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PWM7_PORT (GPIO_PORTC_BASE) -#define PWM7_PIN (GPIO_PIN_6) +#define PWM7_PERIPH SYSCTL_PERIPH_GPIOC +#define PWM7_PORT GPIO_PORTC_BASE +#define PWM7_PIN GPIO_PIN_6 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 #endif // PART_LM3S2276 @@ -9331,109 +14157,109 @@ //***************************************************************************** #ifdef PART_LM3S2410 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOD) -#define C0O_PORT (GPIO_PORTD_BASE) -#define C0O_PIN (GPIO_PIN_7) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOD +#define C0O_PORT GPIO_PORTD_BASE +#define C0O_PIN GPIO_PIN_7 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOE) -#define C1O_PORT (GPIO_PORTE_BASE) -#define C1O_PIN (GPIO_PIN_6) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOE +#define C1O_PORT GPIO_PORTE_BASE +#define C1O_PIN GPIO_PIN_6 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 #endif // PART_LM3S2410 @@ -9444,133 +14270,133 @@ //***************************************************************************** #ifdef PART_LM3S2412 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOD) -#define C0O_PORT (GPIO_PORTD_BASE) -#define C0O_PIN (GPIO_PIN_7) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOD +#define C0O_PORT GPIO_PORTD_BASE +#define C0O_PIN GPIO_PIN_7 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM0_PORT (GPIO_PORTF_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM0_PORT GPIO_PORTF_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM1_PORT (GPIO_PORTF_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM1_PORT GPIO_PORTF_BASE +#define PWM1_PIN GPIO_PIN_1 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S2412 @@ -9581,133 +14407,133 @@ //***************************************************************************** #ifdef PART_LM3S2432 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOD) -#define C0O_PORT (GPIO_PORTD_BASE) -#define C0O_PIN (GPIO_PIN_7) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOD +#define C0O_PORT GPIO_PORTD_BASE +#define C0O_PIN GPIO_PIN_7 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM0_PORT (GPIO_PORTF_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM0_PORT GPIO_PORTF_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM1_PORT (GPIO_PORTF_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM1_PORT GPIO_PORTF_BASE +#define PWM1_PIN GPIO_PIN_1 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S2432 @@ -9718,165 +14544,165 @@ //***************************************************************************** #ifdef PART_LM3S2533 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOD) -#define C0O_PORT (GPIO_PORTD_BASE) -#define C0O_PIN (GPIO_PIN_7) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOD +#define C0O_PORT GPIO_PORTD_BASE +#define C0O_PIN GPIO_PIN_7 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define C2_MINUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_MINUS_PORT (GPIO_PORTC_BASE) -#define C2_MINUS_PIN (GPIO_PIN_7) +#define C2_MINUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_MINUS_PORT GPIO_PORTC_BASE +#define C2_MINUS_PIN GPIO_PIN_7 -#define C2_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_PLUS_PORT (GPIO_PORTC_BASE) -#define C2_PLUS_PIN (GPIO_PIN_6) +#define C2_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_PLUS_PORT GPIO_PORTC_BASE +#define C2_PLUS_PIN GPIO_PIN_6 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP3_PORT (GPIO_PORTD_BASE) -#define CCP3_PIN (GPIO_PIN_4) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP3_PORT GPIO_PORTD_BASE +#define CCP3_PIN GPIO_PIN_4 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP4_PORT (GPIO_PORTA_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP4_PORT GPIO_PORTA_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM0_PORT (GPIO_PORTF_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM0_PORT GPIO_PORTF_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM1_PORT (GPIO_PORTF_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM1_PORT GPIO_PORTF_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PWM2_PORT (GPIO_PORTH_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOH +#define PWM2_PORT GPIO_PORTH_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PWM3_PORT (GPIO_PORTH_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOH +#define PWM3_PORT GPIO_PORTH_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM4_PORT (GPIO_PORTE_BASE) -#define PWM4_PIN (GPIO_PIN_0) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM4_PORT GPIO_PORTE_BASE +#define PWM4_PIN GPIO_PIN_0 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM5_PORT (GPIO_PORTE_BASE) -#define PWM5_PIN (GPIO_PIN_1) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM5_PORT GPIO_PORTE_BASE +#define PWM5_PIN GPIO_PIN_1 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S2533 @@ -9887,173 +14713,173 @@ //***************************************************************************** #ifdef PART_LM3S2601 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C0O_PORT (GPIO_PORTF_BASE) -#define C0O_PIN (GPIO_PIN_4) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOF +#define C0O_PORT GPIO_PORTF_BASE +#define C0O_PIN GPIO_PIN_4 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOE) -#define C1O_PORT (GPIO_PORTE_BASE) -#define C1O_PIN (GPIO_PIN_6) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOE +#define C1O_PORT GPIO_PORTE_BASE +#define C1O_PIN GPIO_PIN_6 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP1_PORT (GPIO_PORTD_BASE) -#define CCP1_PIN (GPIO_PIN_7) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP1_PORT GPIO_PORTD_BASE +#define CCP1_PIN GPIO_PIN_7 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define CCP6_PERIPH (SYSCTL_PERIPH_GPIOH) -#define CCP6_PORT (GPIO_PORTH_BASE) -#define CCP6_PIN (GPIO_PIN_0) +#define CCP6_PERIPH SYSCTL_PERIPH_GPIOH +#define CCP6_PORT GPIO_PORTH_BASE +#define CCP6_PIN GPIO_PIN_0 -#define CCP7_PERIPH (SYSCTL_PERIPH_GPIOH) -#define CCP7_PORT (GPIO_PORTH_BASE) -#define CCP7_PIN (GPIO_PIN_1) +#define CCP7_PERIPH SYSCTL_PERIPH_GPIOH +#define CCP7_PORT GPIO_PORTH_BASE +#define CCP7_PIN GPIO_PIN_1 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define I2C1SCL_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SCL_PORT (GPIO_PORTA_BASE) -#define I2C1SCL_PIN (GPIO_PIN_6) +#define I2C1SCL_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SCL_PORT GPIO_PORTA_BASE +#define I2C1SCL_PIN GPIO_PIN_6 -#define I2C1SDA_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SDA_PORT (GPIO_PORTA_BASE) -#define I2C1SDA_PIN (GPIO_PIN_7) +#define I2C1SDA_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SDA_PORT GPIO_PORTA_BASE +#define I2C1SDA_PIN GPIO_PIN_7 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 -#define U2RX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2RX_PORT (GPIO_PORTG_BASE) -#define U2RX_PIN (GPIO_PIN_0) +#define U2RX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2RX_PORT GPIO_PORTG_BASE +#define U2RX_PIN GPIO_PIN_0 -#define U2TX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2TX_PORT (GPIO_PORTG_BASE) -#define U2TX_PIN (GPIO_PIN_1) +#define U2TX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2TX_PORT GPIO_PORTG_BASE +#define U2TX_PIN GPIO_PIN_1 #endif // PART_LM3S2601 @@ -10064,165 +14890,165 @@ //***************************************************************************** #ifdef PART_LM3S2608 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C0O_PORT (GPIO_PORTF_BASE) -#define C0O_PIN (GPIO_PIN_4) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOF +#define C0O_PORT GPIO_PORTF_BASE +#define C0O_PIN GPIO_PIN_4 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C1O_PORT (GPIO_PORTF_BASE) -#define C1O_PIN (GPIO_PIN_5) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOF +#define C1O_PORT GPIO_PORTF_BASE +#define C1O_PIN GPIO_PIN_5 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define CCP1_PORT (GPIO_PORTF_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOF +#define CCP1_PORT GPIO_PORTF_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define CCP6_PERIPH (SYSCTL_PERIPH_GPIOH) -#define CCP6_PORT (GPIO_PORTH_BASE) -#define CCP6_PIN (GPIO_PIN_0) +#define CCP6_PERIPH SYSCTL_PERIPH_GPIOH +#define CCP6_PORT GPIO_PORTH_BASE +#define CCP6_PIN GPIO_PIN_0 -#define CCP7_PERIPH (SYSCTL_PERIPH_GPIOH) -#define CCP7_PORT (GPIO_PORTH_BASE) -#define CCP7_PIN (GPIO_PIN_1) +#define CCP7_PERIPH SYSCTL_PERIPH_GPIOH +#define CCP7_PORT GPIO_PORTH_BASE +#define CCP7_PIN GPIO_PIN_1 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define I2C1SCL_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SCL_PORT (GPIO_PORTA_BASE) -#define I2C1SCL_PIN (GPIO_PIN_6) +#define I2C1SCL_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SCL_PORT GPIO_PORTA_BASE +#define I2C1SCL_PIN GPIO_PIN_6 -#define I2C1SDA_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SDA_PORT (GPIO_PORTA_BASE) -#define I2C1SDA_PIN (GPIO_PIN_7) +#define I2C1SDA_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SDA_PORT GPIO_PORTA_BASE +#define I2C1SDA_PIN GPIO_PIN_7 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S2608 @@ -10233,149 +15059,149 @@ //***************************************************************************** #ifdef PART_LM3S2616 -#define ADC0_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC0_PORT (GPIO_PORTE_BASE) -#define ADC0_PIN (GPIO_PIN_3) +#define ADC0_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC0_PORT GPIO_PORTE_BASE +#define ADC0_PIN GPIO_PIN_3 -#define ADC1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC1_PORT (GPIO_PORTE_BASE) -#define ADC1_PIN (GPIO_PIN_2) +#define ADC1_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC1_PORT GPIO_PORTE_BASE +#define ADC1_PIN GPIO_PIN_2 -#define ADC2_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC2_PORT (GPIO_PORTE_BASE) -#define ADC2_PIN (GPIO_PIN_1) +#define ADC2_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC2_PORT GPIO_PORTE_BASE +#define ADC2_PIN GPIO_PIN_1 -#define ADC3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC3_PORT (GPIO_PORTE_BASE) -#define ADC3_PIN (GPIO_PIN_0) +#define ADC3_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC3_PORT GPIO_PORTE_BASE +#define ADC3_PIN GPIO_PIN_0 -#define ADC4_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC4_PORT (GPIO_PORTD_BASE) -#define ADC4_PIN (GPIO_PIN_3) +#define ADC4_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC4_PORT GPIO_PORTD_BASE +#define ADC4_PIN GPIO_PIN_3 -#define ADC5_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC5_PORT (GPIO_PORTD_BASE) -#define ADC5_PIN (GPIO_PIN_2) +#define ADC5_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC5_PORT GPIO_PORTD_BASE +#define ADC5_PIN GPIO_PIN_2 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C0O_PORT (GPIO_PORTC_BASE) -#define C0O_PIN (GPIO_PIN_5) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOC +#define C0O_PORT GPIO_PORTC_BASE +#define C0O_PIN GPIO_PIN_5 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1O_PORT (GPIO_PORTC_BASE) -#define C1O_PIN (GPIO_PIN_7) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOC +#define C1O_PORT GPIO_PORTC_BASE +#define C1O_PIN GPIO_PIN_7 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_7) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_7 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CAN0RX_PORT (GPIO_PORTA_BASE) -#define CAN0RX_PIN (GPIO_PIN_4) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define CAN0RX_PORT GPIO_PORTA_BASE +#define CAN0RX_PIN GPIO_PIN_4 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CAN0TX_PORT (GPIO_PORTA_BASE) -#define CAN0TX_PIN (GPIO_PIN_5) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define CAN0TX_PORT GPIO_PORTA_BASE +#define CAN0TX_PIN GPIO_PIN_5 -#define FAULT0_PERIPH (SYSCTL_PERIPH_GPIOE) -#define FAULT0_PORT (GPIO_PORTE_BASE) -#define FAULT0_PIN (GPIO_PIN_4) +#define FAULT0_PERIPH SYSCTL_PERIPH_GPIOE +#define FAULT0_PORT GPIO_PORTE_BASE +#define FAULT0_PIN GPIO_PIN_4 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define IDX0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define IDX0_PORT (GPIO_PORTD_BASE) -#define IDX0_PIN (GPIO_PIN_0) +#define IDX0_PERIPH SYSCTL_PERIPH_GPIOD +#define IDX0_PORT GPIO_PORTD_BASE +#define IDX0_PIN GPIO_PIN_0 -#define NMI_PERIPH (SYSCTL_PERIPH_GPIOB) -#define NMI_PORT (GPIO_PORTB_BASE) -#define NMI_PIN (GPIO_PIN_7) +#define NMI_PERIPH SYSCTL_PERIPH_GPIOB +#define NMI_PORT GPIO_PORTB_BASE +#define NMI_PIN GPIO_PIN_7 -#define PHA0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHA0_PORT (GPIO_PORTC_BASE) -#define PHA0_PIN (GPIO_PIN_4) +#define PHA0_PERIPH SYSCTL_PERIPH_GPIOC +#define PHA0_PORT GPIO_PORTC_BASE +#define PHA0_PIN GPIO_PIN_4 -#define PHB0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHB0_PORT (GPIO_PORTC_BASE) -#define PHB0_PIN (GPIO_PIN_6) +#define PHB0_PERIPH SYSCTL_PERIPH_GPIOC +#define PHB0_PORT GPIO_PORTC_BASE +#define PHB0_PIN GPIO_PIN_6 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOA) -#define PWM0_PORT (GPIO_PORTA_BASE) -#define PWM0_PIN (GPIO_PIN_6) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOA +#define PWM0_PORT GPIO_PORTA_BASE +#define PWM0_PIN GPIO_PIN_6 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define PWM1_PORT (GPIO_PORTA_BASE) -#define PWM1_PIN (GPIO_PIN_7) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOA +#define PWM1_PORT GPIO_PORTA_BASE +#define PWM1_PIN GPIO_PIN_7 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM2_PORT (GPIO_PORTB_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM2_PORT GPIO_PORTB_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM3_PORT (GPIO_PORTB_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM3_PORT GPIO_PORTB_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOA) -#define PWM4_PORT (GPIO_PORTA_BASE) -#define PWM4_PIN (GPIO_PIN_2) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOA +#define PWM4_PORT GPIO_PORTA_BASE +#define PWM4_PIN GPIO_PIN_2 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOA) -#define PWM5_PORT (GPIO_PORTA_BASE) -#define PWM5_PIN (GPIO_PIN_3) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOA +#define PWM5_PORT GPIO_PORTA_BASE +#define PWM5_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 #endif // PART_LM3S2616 @@ -10386,177 +15212,177 @@ //***************************************************************************** #ifdef PART_LM3S2620 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C0O_PORT (GPIO_PORTF_BASE) -#define C0O_PIN (GPIO_PIN_4) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOF +#define C0O_PORT GPIO_PORTF_BASE +#define C0O_PIN GPIO_PIN_4 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOE) -#define C1O_PORT (GPIO_PORTE_BASE) -#define C1O_PIN (GPIO_PIN_6) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOE +#define C1O_PORT GPIO_PORTE_BASE +#define C1O_PIN GPIO_PIN_6 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define C2O_PERIPH (SYSCTL_PERIPH_GPIOE) -#define C2O_PORT (GPIO_PORTE_BASE) -#define C2O_PIN (GPIO_PIN_7) +#define C2O_PERIPH SYSCTL_PERIPH_GPIOE +#define C2O_PORT GPIO_PORTE_BASE +#define C2O_PIN GPIO_PIN_7 -#define C2_MINUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_MINUS_PORT (GPIO_PORTC_BASE) -#define C2_MINUS_PIN (GPIO_PIN_7) +#define C2_MINUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_MINUS_PORT GPIO_PORTC_BASE +#define C2_MINUS_PIN GPIO_PIN_7 -#define C2_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_PLUS_PORT (GPIO_PORTC_BASE) -#define C2_PLUS_PIN (GPIO_PIN_6) +#define C2_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_PLUS_PORT GPIO_PORTC_BASE +#define C2_PLUS_PIN GPIO_PIN_6 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CAN1RX_PERIPH (SYSCTL_PERIPH_GPIOF) -#define CAN1RX_PORT (GPIO_PORTF_BASE) -#define CAN1RX_PIN (GPIO_PIN_0) +#define CAN1RX_PERIPH SYSCTL_PERIPH_GPIOF +#define CAN1RX_PORT GPIO_PORTF_BASE +#define CAN1RX_PIN GPIO_PIN_0 -#define CAN1TX_PERIPH (SYSCTL_PERIPH_GPIOF) -#define CAN1TX_PORT (GPIO_PORTF_BASE) -#define CAN1TX_PIN (GPIO_PIN_1) +#define CAN1TX_PERIPH SYSCTL_PERIPH_GPIOF +#define CAN1TX_PORT GPIO_PORTF_BASE +#define CAN1TX_PIN GPIO_PIN_1 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP3_PORT (GPIO_PORTD_BASE) -#define CCP3_PIN (GPIO_PIN_4) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP3_PORT GPIO_PORTD_BASE +#define CCP3_PIN GPIO_PIN_4 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP4_PORT (GPIO_PORTA_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP4_PORT GPIO_PORTA_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP5_PORT (GPIO_PORTE_BASE) -#define CCP5_PIN (GPIO_PIN_5) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP5_PORT GPIO_PORTE_BASE +#define CCP5_PIN GPIO_PIN_5 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define IDX0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define IDX0_PORT (GPIO_PORTD_BASE) -#define IDX0_PIN (GPIO_PIN_7) +#define IDX0_PERIPH SYSCTL_PERIPH_GPIOD +#define IDX0_PORT GPIO_PORTD_BASE +#define IDX0_PIN GPIO_PIN_7 -#define PHA0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHA0_PORT (GPIO_PORTC_BASE) -#define PHA0_PIN (GPIO_PIN_4) +#define PHA0_PERIPH SYSCTL_PERIPH_GPIOC +#define PHA0_PORT GPIO_PORTC_BASE +#define PHA0_PIN GPIO_PIN_4 -#define PHB0_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PHB0_PORT (GPIO_PORTH_BASE) -#define PHB0_PIN (GPIO_PIN_3) +#define PHB0_PERIPH SYSCTL_PERIPH_GPIOH +#define PHB0_PORT GPIO_PORTH_BASE +#define PHB0_PIN GPIO_PIN_3 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOG) -#define PWM0_PORT (GPIO_PORTG_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOG +#define PWM0_PORT GPIO_PORTG_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOG) -#define PWM1_PORT (GPIO_PORTG_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOG +#define PWM1_PORT GPIO_PORTG_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM2_PORT (GPIO_PORTD_BASE) -#define PWM2_PIN (GPIO_PIN_2) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM2_PORT GPIO_PORTD_BASE +#define PWM2_PIN GPIO_PIN_2 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM3_PORT (GPIO_PORTD_BASE) -#define PWM3_PIN (GPIO_PIN_3) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM3_PORT GPIO_PORTD_BASE +#define PWM3_PIN GPIO_PIN_3 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 #endif // PART_LM3S2620 @@ -10567,141 +15393,141 @@ //***************************************************************************** #ifdef PART_LM3S2637 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOD) -#define C0O_PORT (GPIO_PORTD_BASE) -#define C0O_PIN (GPIO_PIN_7) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOD +#define C0O_PORT GPIO_PORTD_BASE +#define C0O_PIN GPIO_PIN_7 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C1O_PORT (GPIO_PORTF_BASE) -#define C1O_PIN (GPIO_PIN_5) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOF +#define C1O_PORT GPIO_PORTF_BASE +#define C1O_PIN GPIO_PIN_5 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define C2_MINUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_MINUS_PORT (GPIO_PORTC_BASE) -#define C2_MINUS_PIN (GPIO_PIN_7) +#define C2_MINUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_MINUS_PORT GPIO_PORTC_BASE +#define C2_MINUS_PIN GPIO_PIN_7 -#define C2_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_PLUS_PORT (GPIO_PORTC_BASE) -#define C2_PLUS_PIN (GPIO_PIN_6) +#define C2_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_PLUS_PORT GPIO_PORTC_BASE +#define C2_PLUS_PIN GPIO_PIN_6 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP3_PORT (GPIO_PORTD_BASE) -#define CCP3_PIN (GPIO_PIN_4) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP3_PORT GPIO_PORTD_BASE +#define CCP3_PIN GPIO_PIN_4 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP4_PORT (GPIO_PORTA_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP4_PORT GPIO_PORTA_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S2637 @@ -10712,165 +15538,165 @@ //***************************************************************************** #ifdef PART_LM3S2651 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C0O_PORT (GPIO_PORTC_BASE) -#define C0O_PIN (GPIO_PIN_5) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOC +#define C0O_PORT GPIO_PORTC_BASE +#define C0O_PIN GPIO_PIN_5 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP4_PORT (GPIO_PORTA_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP4_PORT GPIO_PORTA_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP5_PORT (GPIO_PORTB_BASE) -#define CCP5_PIN (GPIO_PIN_5) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP5_PORT GPIO_PORTB_BASE +#define CCP5_PIN GPIO_PIN_5 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM0_PORT (GPIO_PORTF_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM0_PORT GPIO_PORTF_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM1_PORT (GPIO_PORTF_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM1_PORT GPIO_PORTF_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PWM2_PORT (GPIO_PORTH_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOH +#define PWM2_PORT GPIO_PORTH_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PWM3_PORT (GPIO_PORTH_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOH +#define PWM3_PORT GPIO_PORTH_BASE +#define PWM3_PIN GPIO_PIN_1 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 -#define U2RX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2RX_PORT (GPIO_PORTG_BASE) -#define U2RX_PIN (GPIO_PIN_0) +#define U2RX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2RX_PORT GPIO_PORTG_BASE +#define U2RX_PIN GPIO_PIN_0 -#define U2TX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2TX_PORT (GPIO_PORTG_BASE) -#define U2TX_PIN (GPIO_PIN_1) +#define U2TX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2TX_PORT GPIO_PORTG_BASE +#define U2TX_PIN GPIO_PIN_1 #endif // PART_LM3S2651 @@ -10881,149 +15707,149 @@ //***************************************************************************** #ifdef PART_LM3S2671 -#define ADC0_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC0_PORT (GPIO_PORTE_BASE) -#define ADC0_PIN (GPIO_PIN_3) +#define ADC0_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC0_PORT GPIO_PORTE_BASE +#define ADC0_PIN GPIO_PIN_3 -#define ADC1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC1_PORT (GPIO_PORTE_BASE) -#define ADC1_PIN (GPIO_PIN_2) +#define ADC1_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC1_PORT GPIO_PORTE_BASE +#define ADC1_PIN GPIO_PIN_2 -#define ADC2_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC2_PORT (GPIO_PORTE_BASE) -#define ADC2_PIN (GPIO_PIN_1) +#define ADC2_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC2_PORT GPIO_PORTE_BASE +#define ADC2_PIN GPIO_PIN_1 -#define ADC3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC3_PORT (GPIO_PORTE_BASE) -#define ADC3_PIN (GPIO_PIN_0) +#define ADC3_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC3_PORT GPIO_PORTE_BASE +#define ADC3_PIN GPIO_PIN_0 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0O_PORT (GPIO_PORTB_BASE) -#define C0O_PIN (GPIO_PIN_6) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOB +#define C0O_PORT GPIO_PORTB_BASE +#define C0O_PIN GPIO_PIN_6 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1O_PORT (GPIO_PORTC_BASE) -#define C1O_PIN (GPIO_PIN_7) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOC +#define C1O_PORT GPIO_PORTC_BASE +#define C1O_PIN GPIO_PIN_7 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_7) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_7 -#define C2O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2O_PORT (GPIO_PORTC_BASE) -#define C2O_PIN (GPIO_PIN_6) +#define C2O_PERIPH SYSCTL_PERIPH_GPIOC +#define C2O_PORT GPIO_PORTC_BASE +#define C2O_PIN GPIO_PIN_6 -#define C2_MINUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_MINUS_PORT (GPIO_PORTC_BASE) -#define C2_MINUS_PIN (GPIO_PIN_5) +#define C2_MINUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_MINUS_PORT GPIO_PORTC_BASE +#define C2_MINUS_PIN GPIO_PIN_5 -#define C2_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_PLUS_PORT (GPIO_PORTC_BASE) -#define C2_PLUS_PIN (GPIO_PIN_6) +#define C2_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_PLUS_PORT GPIO_PORTC_BASE +#define C2_PLUS_PIN GPIO_PIN_6 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP1_PORT (GPIO_PORTB_BASE) -#define CCP1_PIN (GPIO_PIN_1) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP1_PORT GPIO_PORTB_BASE +#define CCP1_PIN GPIO_PIN_1 -#define FAULT0_PERIPH (SYSCTL_PERIPH_GPIOE) -#define FAULT0_PORT (GPIO_PORTE_BASE) -#define FAULT0_PIN (GPIO_PIN_4) +#define FAULT0_PERIPH SYSCTL_PERIPH_GPIOE +#define FAULT0_PORT GPIO_PORTE_BASE +#define FAULT0_PIN GPIO_PIN_4 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define NMI_PERIPH (SYSCTL_PERIPH_GPIOB) -#define NMI_PORT (GPIO_PORTB_BASE) -#define NMI_PIN (GPIO_PIN_7) +#define NMI_PERIPH SYSCTL_PERIPH_GPIOB +#define NMI_PORT GPIO_PORTB_BASE +#define NMI_PIN GPIO_PIN_7 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOA) -#define PWM0_PORT (GPIO_PORTA_BASE) -#define PWM0_PIN (GPIO_PIN_6) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOA +#define PWM0_PORT GPIO_PORTA_BASE +#define PWM0_PIN GPIO_PIN_6 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define PWM1_PORT (GPIO_PORTA_BASE) -#define PWM1_PIN (GPIO_PIN_7) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOA +#define PWM1_PORT GPIO_PORTA_BASE +#define PWM1_PIN GPIO_PIN_7 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 #endif // PART_LM3S2671 @@ -11034,145 +15860,145 @@ //***************************************************************************** #ifdef PART_LM3S2678 -#define ADC0_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC0_PORT (GPIO_PORTE_BASE) -#define ADC0_PIN (GPIO_PIN_3) +#define ADC0_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC0_PORT GPIO_PORTE_BASE +#define ADC0_PIN GPIO_PIN_3 -#define ADC1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC1_PORT (GPIO_PORTE_BASE) -#define ADC1_PIN (GPIO_PIN_2) +#define ADC1_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC1_PORT GPIO_PORTE_BASE +#define ADC1_PIN GPIO_PIN_2 -#define ADC2_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC2_PORT (GPIO_PORTE_BASE) -#define ADC2_PIN (GPIO_PIN_1) +#define ADC2_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC2_PORT GPIO_PORTE_BASE +#define ADC2_PIN GPIO_PIN_1 -#define ADC3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC3_PORT (GPIO_PORTE_BASE) -#define ADC3_PIN (GPIO_PIN_0) +#define ADC3_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC3_PORT GPIO_PORTE_BASE +#define ADC3_PIN GPIO_PIN_0 -#define ADC4_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC4_PORT (GPIO_PORTD_BASE) -#define ADC4_PIN (GPIO_PIN_3) +#define ADC4_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC4_PORT GPIO_PORTD_BASE +#define ADC4_PIN GPIO_PIN_3 -#define ADC5_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC5_PORT (GPIO_PORTD_BASE) -#define ADC5_PIN (GPIO_PIN_2) +#define ADC5_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC5_PORT GPIO_PORTD_BASE +#define ADC5_PIN GPIO_PIN_2 -#define ADC6_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC6_PORT (GPIO_PORTD_BASE) -#define ADC6_PIN (GPIO_PIN_1) +#define ADC6_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC6_PORT GPIO_PORTD_BASE +#define ADC6_PIN GPIO_PIN_1 -#define ADC7_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC7_PORT (GPIO_PORTD_BASE) -#define ADC7_PIN (GPIO_PIN_0) +#define ADC7_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC7_PORT GPIO_PORTD_BASE +#define ADC7_PIN GPIO_PIN_0 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CAN0RX_PORT (GPIO_PORTB_BASE) -#define CAN0RX_PIN (GPIO_PIN_4) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOB +#define CAN0RX_PORT GPIO_PORTB_BASE +#define CAN0RX_PIN GPIO_PIN_4 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CAN0TX_PORT (GPIO_PORTB_BASE) -#define CAN0TX_PIN (GPIO_PIN_5) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOB +#define CAN0TX_PORT GPIO_PORTB_BASE +#define CAN0TX_PIN GPIO_PIN_5 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP0_PORT (GPIO_PORTC_BASE) -#define CCP0_PIN (GPIO_PIN_6) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP0_PORT GPIO_PORTC_BASE +#define CCP0_PIN GPIO_PIN_6 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP1_PORT (GPIO_PORTC_BASE) -#define CCP1_PIN (GPIO_PIN_5) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP1_PORT GPIO_PORTC_BASE +#define CCP1_PIN GPIO_PIN_5 -#define FAULT0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define FAULT0_PORT (GPIO_PORTB_BASE) -#define FAULT0_PIN (GPIO_PIN_3) +#define FAULT0_PERIPH SYSCTL_PERIPH_GPIOB +#define FAULT0_PORT GPIO_PORTB_BASE +#define FAULT0_PIN GPIO_PIN_3 -#define FAULT1_PERIPH (SYSCTL_PERIPH_GPIOB) -#define FAULT1_PORT (GPIO_PORTB_BASE) -#define FAULT1_PIN (GPIO_PIN_6) +#define FAULT1_PERIPH SYSCTL_PERIPH_GPIOB +#define FAULT1_PORT GPIO_PORTB_BASE +#define FAULT1_PIN GPIO_PIN_6 -#define IDX0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define IDX0_PORT (GPIO_PORTB_BASE) -#define IDX0_PIN (GPIO_PIN_2) +#define IDX0_PERIPH SYSCTL_PERIPH_GPIOB +#define IDX0_PORT GPIO_PORTB_BASE +#define IDX0_PIN GPIO_PIN_2 -#define NMI_PERIPH (SYSCTL_PERIPH_GPIOB) -#define NMI_PORT (GPIO_PORTB_BASE) -#define NMI_PIN (GPIO_PIN_7) +#define NMI_PERIPH SYSCTL_PERIPH_GPIOB +#define NMI_PORT GPIO_PORTB_BASE +#define NMI_PIN GPIO_PIN_7 -#define PHA0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHA0_PORT (GPIO_PORTC_BASE) -#define PHA0_PIN (GPIO_PIN_4) +#define PHA0_PERIPH SYSCTL_PERIPH_GPIOC +#define PHA0_PORT GPIO_PORTC_BASE +#define PHA0_PIN GPIO_PIN_4 -#define PHB0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHB0_PORT (GPIO_PORTC_BASE) -#define PHB0_PIN (GPIO_PIN_7) +#define PHB0_PERIPH SYSCTL_PERIPH_GPIOC +#define PHB0_PORT GPIO_PORTC_BASE +#define PHB0_PIN GPIO_PIN_7 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOA) -#define PWM0_PORT (GPIO_PORTA_BASE) -#define PWM0_PIN (GPIO_PIN_6) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOA +#define PWM0_PORT GPIO_PORTA_BASE +#define PWM0_PIN GPIO_PIN_6 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define PWM1_PORT (GPIO_PORTA_BASE) -#define PWM1_PIN (GPIO_PIN_7) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOA +#define PWM1_PORT GPIO_PORTA_BASE +#define PWM1_PIN GPIO_PIN_7 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM2_PORT (GPIO_PORTB_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM2_PORT GPIO_PORTB_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM3_PORT (GPIO_PORTB_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM3_PORT GPIO_PORTB_BASE +#define PWM3_PIN GPIO_PIN_1 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 #endif // PART_LM3S2678 @@ -11183,109 +16009,109 @@ //***************************************************************************** #ifdef PART_LM3S2730 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOD) -#define C0O_PORT (GPIO_PORTD_BASE) -#define C0O_PIN (GPIO_PIN_7) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOD +#define C0O_PORT GPIO_PORTD_BASE +#define C0O_PIN GPIO_PIN_7 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOE) -#define C1O_PORT (GPIO_PORTE_BASE) -#define C1O_PIN (GPIO_PIN_6) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOE +#define C1O_PORT GPIO_PORTE_BASE +#define C1O_PIN GPIO_PIN_6 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 #endif // PART_LM3S2730 @@ -11296,161 +16122,161 @@ //***************************************************************************** #ifdef PART_LM3S2739 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C0O_PORT (GPIO_PORTC_BASE) -#define C0O_PIN (GPIO_PIN_5) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOC +#define C0O_PORT GPIO_PORTC_BASE +#define C0O_PIN GPIO_PIN_5 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP4_PORT (GPIO_PORTA_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP4_PORT GPIO_PORTA_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP5_PORT (GPIO_PORTB_BASE) -#define CCP5_PIN (GPIO_PIN_5) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP5_PORT GPIO_PORTB_BASE +#define CCP5_PIN GPIO_PIN_5 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define IDX0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define IDX0_PORT (GPIO_PORTD_BASE) -#define IDX0_PIN (GPIO_PIN_7) +#define IDX0_PERIPH SYSCTL_PERIPH_GPIOD +#define IDX0_PORT GPIO_PORTD_BASE +#define IDX0_PIN GPIO_PIN_7 -#define PHA0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHA0_PORT (GPIO_PORTC_BASE) -#define PHA0_PIN (GPIO_PIN_4) +#define PHA0_PERIPH SYSCTL_PERIPH_GPIOC +#define PHA0_PORT GPIO_PORTC_BASE +#define PHA0_PIN GPIO_PIN_4 -#define PHB0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHB0_PORT (GPIO_PORTC_BASE) -#define PHB0_PIN (GPIO_PIN_7) +#define PHB0_PERIPH SYSCTL_PERIPH_GPIOC +#define PHB0_PORT GPIO_PORTC_BASE +#define PHB0_PIN GPIO_PIN_7 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM0_PORT (GPIO_PORTF_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM0_PORT GPIO_PORTF_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM1_PORT (GPIO_PORTF_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM1_PORT GPIO_PORTF_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PWM2_PORT (GPIO_PORTH_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOH +#define PWM2_PORT GPIO_PORTH_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PWM3_PORT (GPIO_PORTH_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOH +#define PWM3_PORT GPIO_PORTH_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM4_PORT (GPIO_PORTE_BASE) -#define PWM4_PIN (GPIO_PIN_0) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM4_PORT GPIO_PORTE_BASE +#define PWM4_PIN GPIO_PIN_0 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM5_PORT (GPIO_PORTE_BASE) -#define PWM5_PIN (GPIO_PIN_1) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM5_PORT GPIO_PORTE_BASE +#define PWM5_PIN GPIO_PIN_1 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S2739 @@ -11461,152 +16287,520 @@ //***************************************************************************** #ifdef PART_LM3S2776 -#define ADC0_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC0_PORT (GPIO_PORTE_BASE) -#define ADC0_PIN (GPIO_PIN_3) +#define ADC0_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC0_PORT GPIO_PORTE_BASE +#define ADC0_PIN GPIO_PIN_3 -#define ADC1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC1_PORT (GPIO_PORTE_BASE) -#define ADC1_PIN (GPIO_PIN_2) +#define ADC1_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC1_PORT GPIO_PORTE_BASE +#define ADC1_PIN GPIO_PIN_2 -#define ADC2_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC2_PORT (GPIO_PORTE_BASE) -#define ADC2_PIN (GPIO_PIN_1) +#define ADC2_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC2_PORT GPIO_PORTE_BASE +#define ADC2_PIN GPIO_PIN_1 -#define ADC3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC3_PORT (GPIO_PORTE_BASE) -#define ADC3_PIN (GPIO_PIN_0) +#define ADC3_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC3_PORT GPIO_PORTE_BASE +#define ADC3_PIN GPIO_PIN_0 -#define ADC4_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC4_PORT (GPIO_PORTD_BASE) -#define ADC4_PIN (GPIO_PIN_3) +#define ADC4_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC4_PORT GPIO_PORTD_BASE +#define ADC4_PIN GPIO_PIN_3 -#define ADC5_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC5_PORT (GPIO_PORTD_BASE) -#define ADC5_PIN (GPIO_PIN_2) +#define ADC5_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC5_PORT GPIO_PORTD_BASE +#define ADC5_PIN GPIO_PIN_2 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CAN0RX_PORT (GPIO_PORTB_BASE) -#define CAN0RX_PIN (GPIO_PIN_4) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOB +#define CAN0RX_PORT GPIO_PORTB_BASE +#define CAN0RX_PIN GPIO_PIN_4 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CAN0TX_PORT (GPIO_PORTB_BASE) -#define CAN0TX_PIN (GPIO_PIN_5) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOB +#define CAN0TX_PORT GPIO_PORTB_BASE +#define CAN0TX_PIN GPIO_PIN_5 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP0_PORT (GPIO_PORTC_BASE) -#define CCP0_PIN (GPIO_PIN_7) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP0_PORT GPIO_PORTC_BASE +#define CCP0_PIN GPIO_PIN_7 -#define FAULT0_PERIPH (SYSCTL_PERIPH_GPIOE) -#define FAULT0_PORT (GPIO_PORTE_BASE) -#define FAULT0_PIN (GPIO_PIN_4) +#define FAULT0_PERIPH SYSCTL_PERIPH_GPIOE +#define FAULT0_PORT GPIO_PORTE_BASE +#define FAULT0_PIN GPIO_PIN_4 -#define FAULT1_PERIPH (SYSCTL_PERIPH_GPIOB) -#define FAULT1_PORT (GPIO_PORTB_BASE) -#define FAULT1_PIN (GPIO_PIN_6) +#define FAULT1_PERIPH SYSCTL_PERIPH_GPIOB +#define FAULT1_PORT GPIO_PORTB_BASE +#define FAULT1_PIN GPIO_PIN_6 -#define FAULT2_PERIPH (SYSCTL_PERIPH_GPIOC) -#define FAULT2_PORT (GPIO_PORTC_BASE) -#define FAULT2_PIN (GPIO_PIN_5) +#define FAULT2_PERIPH SYSCTL_PERIPH_GPIOC +#define FAULT2_PORT GPIO_PORTC_BASE +#define FAULT2_PIN GPIO_PIN_5 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define NMI_PERIPH (SYSCTL_PERIPH_GPIOB) -#define NMI_PORT (GPIO_PORTB_BASE) -#define NMI_PIN (GPIO_PIN_7) +#define NMI_PERIPH SYSCTL_PERIPH_GPIOB +#define NMI_PORT GPIO_PORTB_BASE +#define NMI_PIN GPIO_PIN_7 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM2_PORT (GPIO_PORTB_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM2_PORT GPIO_PORTB_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM3_PORT (GPIO_PORTB_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM3_PORT GPIO_PORTB_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOA) -#define PWM4_PORT (GPIO_PORTA_BASE) -#define PWM4_PIN (GPIO_PIN_6) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOA +#define PWM4_PORT GPIO_PORTA_BASE +#define PWM4_PIN GPIO_PIN_6 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOA) -#define PWM5_PORT (GPIO_PORTA_BASE) -#define PWM5_PIN (GPIO_PIN_7) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOA +#define PWM5_PORT GPIO_PORTA_BASE +#define PWM5_PIN GPIO_PIN_7 -#define PWM6_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PWM6_PORT (GPIO_PORTC_BASE) -#define PWM6_PIN (GPIO_PIN_4) +#define PWM6_PERIPH SYSCTL_PERIPH_GPIOC +#define PWM6_PORT GPIO_PORTC_BASE +#define PWM6_PIN GPIO_PIN_4 -#define PWM7_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PWM7_PORT (GPIO_PORTC_BASE) -#define PWM7_PIN (GPIO_PIN_6) +#define PWM7_PERIPH SYSCTL_PERIPH_GPIOC +#define PWM7_PORT GPIO_PORTC_BASE +#define PWM7_PIN GPIO_PIN_6 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 #endif // PART_LM3S2776 +//***************************************************************************** +// +// LM3S2793 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S2793 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_PWM6 0x00001004 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_PWM7 0x00001404 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_PWM6 0x00021004 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_C2O 0x00021803 +#define GPIO_PC6_PWM7 0x00021804 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_C2O 0x00041C02 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_C2O 0x00051802 +#define GPIO_PF6_PHA0 0x00051804 +#define GPIO_PF6_I2S0TXMCLK 0x00051809 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_PHB0 0x00051C04 +#define GPIO_PF7_EPI0S12 0x00051C08 +#define GPIO_PF7_FAULT1 0x00051C09 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG2_PWM0 0x00060801 +#define GPIO_PG2_FAULT0 0x00060804 +#define GPIO_PG2_IDX1 0x00060808 +#define GPIO_PG2_I2S0RXSD 0x00060809 + +#define GPIO_PG3_PWM1 0x00060C01 +#define GPIO_PG3_FAULT2 0x00060C04 +#define GPIO_PG3_FAULT0 0x00060C08 +#define GPIO_PG3_I2S0RXMCLK 0x00060C09 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_FAULT1 0x00061004 +#define GPIO_PG4_EPI0S15 0x00061008 +#define GPIO_PG4_PWM6 0x00061009 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_IDX0 0x00061404 +#define GPIO_PG5_FAULT1 0x00061405 +#define GPIO_PG5_PWM7 0x00061408 +#define GPIO_PG5_I2S0RXSCK 0x00061409 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_PHA1 0x00061801 +#define GPIO_PG6_PWM6 0x00061804 +#define GPIO_PG6_FAULT1 0x00061808 +#define GPIO_PG6_I2S0RXWS 0x00061809 +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_PWM7 0x00061C04 +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_EPI0S6 0x00070008 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_EPI0S7 0x00070408 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#endif // PART_LM3S2793 + //***************************************************************************** // // LM3S2911 Port/Pin Mapping Definitions @@ -11614,173 +16808,173 @@ //***************************************************************************** #ifdef PART_LM3S2911 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C0O_PORT (GPIO_PORTF_BASE) -#define C0O_PIN (GPIO_PIN_4) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOF +#define C0O_PORT GPIO_PORTF_BASE +#define C0O_PIN GPIO_PIN_4 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOE) -#define C1O_PORT (GPIO_PORTE_BASE) -#define C1O_PIN (GPIO_PIN_6) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOE +#define C1O_PORT GPIO_PORTE_BASE +#define C1O_PIN GPIO_PIN_6 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP1_PORT (GPIO_PORTD_BASE) -#define CCP1_PIN (GPIO_PIN_7) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP1_PORT GPIO_PORTD_BASE +#define CCP1_PIN GPIO_PIN_7 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define CCP6_PERIPH (SYSCTL_PERIPH_GPIOH) -#define CCP6_PORT (GPIO_PORTH_BASE) -#define CCP6_PIN (GPIO_PIN_0) +#define CCP6_PERIPH SYSCTL_PERIPH_GPIOH +#define CCP6_PORT GPIO_PORTH_BASE +#define CCP6_PIN GPIO_PIN_0 -#define CCP7_PERIPH (SYSCTL_PERIPH_GPIOH) -#define CCP7_PORT (GPIO_PORTH_BASE) -#define CCP7_PIN (GPIO_PIN_1) +#define CCP7_PERIPH SYSCTL_PERIPH_GPIOH +#define CCP7_PORT GPIO_PORTH_BASE +#define CCP7_PIN GPIO_PIN_1 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define I2C1SCL_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SCL_PORT (GPIO_PORTA_BASE) -#define I2C1SCL_PIN (GPIO_PIN_6) +#define I2C1SCL_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SCL_PORT GPIO_PORTA_BASE +#define I2C1SCL_PIN GPIO_PIN_6 -#define I2C1SDA_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SDA_PORT (GPIO_PORTA_BASE) -#define I2C1SDA_PIN (GPIO_PIN_7) +#define I2C1SDA_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SDA_PORT GPIO_PORTA_BASE +#define I2C1SDA_PIN GPIO_PIN_7 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 -#define U2RX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2RX_PORT (GPIO_PORTG_BASE) -#define U2RX_PIN (GPIO_PIN_0) +#define U2RX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2RX_PORT GPIO_PORTG_BASE +#define U2RX_PIN GPIO_PIN_0 -#define U2TX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2TX_PORT (GPIO_PORTG_BASE) -#define U2TX_PIN (GPIO_PIN_1) +#define U2TX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2TX_PORT GPIO_PORTG_BASE +#define U2TX_PIN GPIO_PIN_1 #endif // PART_LM3S2911 @@ -11791,165 +16985,165 @@ //***************************************************************************** #ifdef PART_LM3S2918 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C0O_PORT (GPIO_PORTF_BASE) -#define C0O_PIN (GPIO_PIN_4) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOF +#define C0O_PORT GPIO_PORTF_BASE +#define C0O_PIN GPIO_PIN_4 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C1O_PORT (GPIO_PORTF_BASE) -#define C1O_PIN (GPIO_PIN_5) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOF +#define C1O_PORT GPIO_PORTF_BASE +#define C1O_PIN GPIO_PIN_5 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define CCP1_PORT (GPIO_PORTF_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOF +#define CCP1_PORT GPIO_PORTF_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define CCP6_PERIPH (SYSCTL_PERIPH_GPIOH) -#define CCP6_PORT (GPIO_PORTH_BASE) -#define CCP6_PIN (GPIO_PIN_0) +#define CCP6_PERIPH SYSCTL_PERIPH_GPIOH +#define CCP6_PORT GPIO_PORTH_BASE +#define CCP6_PIN GPIO_PIN_0 -#define CCP7_PERIPH (SYSCTL_PERIPH_GPIOH) -#define CCP7_PORT (GPIO_PORTH_BASE) -#define CCP7_PIN (GPIO_PIN_1) +#define CCP7_PERIPH SYSCTL_PERIPH_GPIOH +#define CCP7_PORT GPIO_PORTH_BASE +#define CCP7_PIN GPIO_PIN_1 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define I2C1SCL_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SCL_PORT (GPIO_PORTA_BASE) -#define I2C1SCL_PIN (GPIO_PIN_6) +#define I2C1SCL_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SCL_PORT GPIO_PORTA_BASE +#define I2C1SCL_PIN GPIO_PIN_6 -#define I2C1SDA_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SDA_PORT (GPIO_PORTA_BASE) -#define I2C1SDA_PIN (GPIO_PIN_7) +#define I2C1SDA_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SDA_PORT GPIO_PORTA_BASE +#define I2C1SDA_PIN GPIO_PIN_7 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S2918 @@ -11960,173 +17154,173 @@ //***************************************************************************** #ifdef PART_LM3S2939 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C0O_PORT (GPIO_PORTF_BASE) -#define C0O_PIN (GPIO_PIN_4) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOF +#define C0O_PORT GPIO_PORTF_BASE +#define C0O_PIN GPIO_PIN_4 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C1O_PORT (GPIO_PORTF_BASE) -#define C1O_PIN (GPIO_PIN_5) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOF +#define C1O_PORT GPIO_PORTF_BASE +#define C1O_PIN GPIO_PIN_5 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define C2_MINUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_MINUS_PORT (GPIO_PORTC_BASE) -#define C2_MINUS_PIN (GPIO_PIN_7) +#define C2_MINUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_MINUS_PORT GPIO_PORTC_BASE +#define C2_MINUS_PIN GPIO_PIN_7 -#define C2_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_PLUS_PORT (GPIO_PORTC_BASE) -#define C2_PLUS_PIN (GPIO_PIN_6) +#define C2_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_PLUS_PORT GPIO_PORTC_BASE +#define C2_PLUS_PIN GPIO_PIN_6 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP3_PORT (GPIO_PORTD_BASE) -#define CCP3_PIN (GPIO_PIN_4) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP3_PORT GPIO_PORTD_BASE +#define CCP3_PIN GPIO_PIN_4 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define IDX0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define IDX0_PORT (GPIO_PORTD_BASE) -#define IDX0_PIN (GPIO_PIN_7) +#define IDX0_PERIPH SYSCTL_PERIPH_GPIOD +#define IDX0_PORT GPIO_PORTD_BASE +#define IDX0_PIN GPIO_PIN_7 -#define PHA0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHA0_PORT (GPIO_PORTC_BASE) -#define PHA0_PIN (GPIO_PIN_4) +#define PHA0_PERIPH SYSCTL_PERIPH_GPIOC +#define PHA0_PORT GPIO_PORTC_BASE +#define PHA0_PIN GPIO_PIN_4 -#define PHB0_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PHB0_PORT (GPIO_PORTH_BASE) -#define PHB0_PIN (GPIO_PIN_3) +#define PHB0_PERIPH SYSCTL_PERIPH_GPIOH +#define PHB0_PORT GPIO_PORTH_BASE +#define PHB0_PIN GPIO_PIN_3 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM0_PORT (GPIO_PORTF_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM0_PORT GPIO_PORTF_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM1_PORT (GPIO_PORTF_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM1_PORT GPIO_PORTF_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PWM2_PORT (GPIO_PORTH_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOH +#define PWM2_PORT GPIO_PORTH_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PWM3_PORT (GPIO_PORTH_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOH +#define PWM3_PORT GPIO_PORTH_BASE +#define PWM3_PIN GPIO_PIN_1 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 -#define U2RX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2RX_PORT (GPIO_PORTG_BASE) -#define U2RX_PIN (GPIO_PIN_0) +#define U2RX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2RX_PORT GPIO_PORTG_BASE +#define U2RX_PIN GPIO_PIN_0 -#define U2TX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2TX_PORT (GPIO_PORTG_BASE) -#define U2TX_PIN (GPIO_PIN_1) +#define U2TX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2TX_PORT GPIO_PORTG_BASE +#define U2TX_PIN GPIO_PIN_1 #endif // PART_LM3S2939 @@ -12137,177 +17331,177 @@ //***************************************************************************** #ifdef PART_LM3S2948 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C0O_PORT (GPIO_PORTF_BASE) -#define C0O_PIN (GPIO_PIN_4) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOF +#define C0O_PORT GPIO_PORTF_BASE +#define C0O_PIN GPIO_PIN_4 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define C2_MINUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_MINUS_PORT (GPIO_PORTC_BASE) -#define C2_MINUS_PIN (GPIO_PIN_7) +#define C2_MINUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_MINUS_PORT GPIO_PORTC_BASE +#define C2_MINUS_PIN GPIO_PIN_7 -#define C2_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_PLUS_PORT (GPIO_PORTC_BASE) -#define C2_PLUS_PIN (GPIO_PIN_6) +#define C2_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_PLUS_PORT GPIO_PORTC_BASE +#define C2_PLUS_PIN GPIO_PIN_6 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CAN1RX_PERIPH (SYSCTL_PERIPH_GPIOF) -#define CAN1RX_PORT (GPIO_PORTF_BASE) -#define CAN1RX_PIN (GPIO_PIN_0) +#define CAN1RX_PERIPH SYSCTL_PERIPH_GPIOF +#define CAN1RX_PORT GPIO_PORTF_BASE +#define CAN1RX_PIN GPIO_PIN_0 -#define CAN1TX_PERIPH (SYSCTL_PERIPH_GPIOF) -#define CAN1TX_PORT (GPIO_PORTF_BASE) -#define CAN1TX_PIN (GPIO_PIN_1) +#define CAN1TX_PERIPH SYSCTL_PERIPH_GPIOF +#define CAN1TX_PORT GPIO_PORTF_BASE +#define CAN1TX_PIN GPIO_PIN_1 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOG) -#define CCP3_PORT (GPIO_PORTG_BASE) -#define CCP3_PIN (GPIO_PIN_4) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOG +#define CCP3_PORT GPIO_PORTG_BASE +#define CCP3_PIN GPIO_PIN_4 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP4_PORT (GPIO_PORTA_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP4_PORT GPIO_PORTA_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define CCP6_PERIPH (SYSCTL_PERIPH_GPIOH) -#define CCP6_PORT (GPIO_PORTH_BASE) -#define CCP6_PIN (GPIO_PIN_0) +#define CCP6_PERIPH SYSCTL_PERIPH_GPIOH +#define CCP6_PORT GPIO_PORTH_BASE +#define CCP6_PIN GPIO_PIN_0 -#define CCP7_PERIPH (SYSCTL_PERIPH_GPIOH) -#define CCP7_PORT (GPIO_PORTH_BASE) -#define CCP7_PIN (GPIO_PIN_1) +#define CCP7_PERIPH SYSCTL_PERIPH_GPIOH +#define CCP7_PORT GPIO_PORTH_BASE +#define CCP7_PIN GPIO_PIN_1 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 -#define U2RX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2RX_PORT (GPIO_PORTG_BASE) -#define U2RX_PIN (GPIO_PIN_0) +#define U2RX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2RX_PORT GPIO_PORTG_BASE +#define U2RX_PIN GPIO_PIN_0 -#define U2TX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2TX_PORT (GPIO_PORTG_BASE) -#define U2TX_PIN (GPIO_PIN_1) +#define U2TX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2TX_PORT GPIO_PORTG_BASE +#define U2TX_PIN GPIO_PIN_1 #endif // PART_LM3S2948 @@ -12318,217 +17512,217 @@ //***************************************************************************** #ifdef PART_LM3S2950 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C0O_PORT (GPIO_PORTF_BASE) -#define C0O_PIN (GPIO_PIN_4) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOF +#define C0O_PORT GPIO_PORTF_BASE +#define C0O_PIN GPIO_PIN_4 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C1O_PORT (GPIO_PORTF_BASE) -#define C1O_PIN (GPIO_PIN_5) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOF +#define C1O_PORT GPIO_PORTF_BASE +#define C1O_PIN GPIO_PIN_5 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define C2O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C2O_PORT (GPIO_PORTF_BASE) -#define C2O_PIN (GPIO_PIN_6) +#define C2O_PERIPH SYSCTL_PERIPH_GPIOF +#define C2O_PORT GPIO_PORTF_BASE +#define C2O_PIN GPIO_PIN_6 -#define C2_MINUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_MINUS_PORT (GPIO_PORTC_BASE) -#define C2_MINUS_PIN (GPIO_PIN_7) +#define C2_MINUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_MINUS_PORT GPIO_PORTC_BASE +#define C2_MINUS_PIN GPIO_PIN_7 -#define C2_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_PLUS_PORT (GPIO_PORTC_BASE) -#define C2_PLUS_PIN (GPIO_PIN_6) +#define C2_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_PLUS_PORT GPIO_PORTC_BASE +#define C2_PLUS_PIN GPIO_PIN_6 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CAN1RX_PERIPH (SYSCTL_PERIPH_GPIOF) -#define CAN1RX_PORT (GPIO_PORTF_BASE) -#define CAN1RX_PIN (GPIO_PIN_0) +#define CAN1RX_PERIPH SYSCTL_PERIPH_GPIOF +#define CAN1RX_PORT GPIO_PORTF_BASE +#define CAN1RX_PIN GPIO_PIN_0 -#define CAN1TX_PERIPH (SYSCTL_PERIPH_GPIOF) -#define CAN1TX_PORT (GPIO_PORTF_BASE) -#define CAN1TX_PIN (GPIO_PIN_1) +#define CAN1TX_PERIPH SYSCTL_PERIPH_GPIOF +#define CAN1TX_PORT GPIO_PORTF_BASE +#define CAN1TX_PIN GPIO_PIN_1 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP3_PORT (GPIO_PORTD_BASE) -#define CCP3_PIN (GPIO_PIN_4) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP3_PORT GPIO_PORTD_BASE +#define CCP3_PIN GPIO_PIN_4 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP4_PORT (GPIO_PORTA_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP4_PORT GPIO_PORTA_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP5_PORT (GPIO_PORTE_BASE) -#define CCP5_PIN (GPIO_PIN_5) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP5_PORT GPIO_PORTE_BASE +#define CCP5_PIN GPIO_PIN_5 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define IDX0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define IDX0_PORT (GPIO_PORTD_BASE) -#define IDX0_PIN (GPIO_PIN_7) +#define IDX0_PERIPH SYSCTL_PERIPH_GPIOD +#define IDX0_PORT GPIO_PORTD_BASE +#define IDX0_PIN GPIO_PIN_7 -#define PHA0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHA0_PORT (GPIO_PORTC_BASE) -#define PHA0_PIN (GPIO_PIN_4) +#define PHA0_PERIPH SYSCTL_PERIPH_GPIOC +#define PHA0_PORT GPIO_PORTC_BASE +#define PHA0_PIN GPIO_PIN_4 -#define PHB0_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PHB0_PORT (GPIO_PORTH_BASE) -#define PHB0_PIN (GPIO_PIN_3) +#define PHB0_PERIPH SYSCTL_PERIPH_GPIOH +#define PHB0_PORT GPIO_PORTH_BASE +#define PHB0_PIN GPIO_PIN_3 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOG) -#define PWM0_PORT (GPIO_PORTG_BASE) -#define PWM0_PIN (GPIO_PIN_2) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOG +#define PWM0_PORT GPIO_PORTG_BASE +#define PWM0_PIN GPIO_PIN_2 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOG) -#define PWM1_PORT (GPIO_PORTG_BASE) -#define PWM1_PIN (GPIO_PIN_3) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOG +#define PWM1_PORT GPIO_PORTG_BASE +#define PWM1_PIN GPIO_PIN_3 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PWM2_PORT (GPIO_PORTH_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOH +#define PWM2_PORT GPIO_PORTH_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PWM3_PORT (GPIO_PORTH_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOH +#define PWM3_PORT GPIO_PORTH_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM4_PORT (GPIO_PORTE_BASE) -#define PWM4_PIN (GPIO_PIN_6) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM4_PORT GPIO_PORTE_BASE +#define PWM4_PIN GPIO_PIN_6 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM5_PORT (GPIO_PORTE_BASE) -#define PWM5_PIN (GPIO_PIN_7) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM5_PORT GPIO_PORTE_BASE +#define PWM5_PIN GPIO_PIN_7 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 -#define U2RX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2RX_PORT (GPIO_PORTG_BASE) -#define U2RX_PIN (GPIO_PIN_0) +#define U2RX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2RX_PORT GPIO_PORTG_BASE +#define U2RX_PIN GPIO_PIN_0 -#define U2TX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2TX_PORT (GPIO_PORTG_BASE) -#define U2TX_PIN (GPIO_PIN_1) +#define U2TX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2TX_PORT GPIO_PORTG_BASE +#define U2TX_PIN GPIO_PIN_1 #endif // PART_LM3S2950 @@ -12539,232 +17733,1485 @@ //***************************************************************************** #ifdef PART_LM3S2965 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C0O_PORT (GPIO_PORTF_BASE) -#define C0O_PIN (GPIO_PIN_4) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOF +#define C0O_PORT GPIO_PORTF_BASE +#define C0O_PIN GPIO_PIN_4 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define C2_MINUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_MINUS_PORT (GPIO_PORTC_BASE) -#define C2_MINUS_PIN (GPIO_PIN_7) +#define C2_MINUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_MINUS_PORT GPIO_PORTC_BASE +#define C2_MINUS_PIN GPIO_PIN_7 -#define C2_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_PLUS_PORT (GPIO_PORTC_BASE) -#define C2_PLUS_PIN (GPIO_PIN_6) +#define C2_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_PLUS_PORT GPIO_PORTC_BASE +#define C2_PLUS_PIN GPIO_PIN_6 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CAN1RX_PERIPH (SYSCTL_PERIPH_GPIOF) -#define CAN1RX_PORT (GPIO_PORTF_BASE) -#define CAN1RX_PIN (GPIO_PIN_0) +#define CAN1RX_PERIPH SYSCTL_PERIPH_GPIOF +#define CAN1RX_PORT GPIO_PORTF_BASE +#define CAN1RX_PIN GPIO_PIN_0 -#define CAN1TX_PERIPH (SYSCTL_PERIPH_GPIOF) -#define CAN1TX_PORT (GPIO_PORTF_BASE) -#define CAN1TX_PIN (GPIO_PIN_1) +#define CAN1TX_PERIPH SYSCTL_PERIPH_GPIOF +#define CAN1TX_PORT GPIO_PORTF_BASE +#define CAN1TX_PIN GPIO_PIN_1 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define CCP1_PORT (GPIO_PORTF_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOF +#define CCP1_PORT GPIO_PORTF_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP3_PORT (GPIO_PORTD_BASE) -#define CCP3_PIN (GPIO_PIN_4) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP3_PORT GPIO_PORTD_BASE +#define CCP3_PIN GPIO_PIN_4 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP4_PORT (GPIO_PORTD_BASE) -#define CCP4_PIN (GPIO_PIN_5) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP4_PORT GPIO_PORTD_BASE +#define CCP4_PIN GPIO_PIN_5 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOG) -#define CCP5_PORT (GPIO_PORTG_BASE) -#define CCP5_PIN (GPIO_PIN_5) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOG +#define CCP5_PORT GPIO_PORTG_BASE +#define CCP5_PIN GPIO_PIN_5 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define I2C1SCL_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SCL_PORT (GPIO_PORTA_BASE) -#define I2C1SCL_PIN (GPIO_PIN_6) +#define I2C1SCL_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SCL_PORT GPIO_PORTA_BASE +#define I2C1SCL_PIN GPIO_PIN_6 -#define I2C1SDA_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SDA_PORT (GPIO_PORTA_BASE) -#define I2C1SDA_PIN (GPIO_PIN_7) +#define I2C1SDA_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SDA_PORT GPIO_PORTA_BASE +#define I2C1SDA_PIN GPIO_PIN_7 -#define IDX0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define IDX0_PORT (GPIO_PORTD_BASE) -#define IDX0_PIN (GPIO_PIN_7) +#define IDX0_PERIPH SYSCTL_PERIPH_GPIOD +#define IDX0_PORT GPIO_PORTD_BASE +#define IDX0_PIN GPIO_PIN_7 -#define IDX1_PERIPH (SYSCTL_PERIPH_GPIOH) -#define IDX1_PORT (GPIO_PORTH_BASE) -#define IDX1_PIN (GPIO_PIN_2) +#define IDX1_PERIPH SYSCTL_PERIPH_GPIOH +#define IDX1_PORT GPIO_PORTH_BASE +#define IDX1_PIN GPIO_PIN_2 -#define PHA0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHA0_PORT (GPIO_PORTC_BASE) -#define PHA0_PIN (GPIO_PIN_4) +#define PHA0_PERIPH SYSCTL_PERIPH_GPIOC +#define PHA0_PORT GPIO_PORTC_BASE +#define PHA0_PIN GPIO_PIN_4 -#define PHA1_PERIPH (SYSCTL_PERIPH_GPIOG) -#define PHA1_PORT (GPIO_PORTG_BASE) -#define PHA1_PIN (GPIO_PIN_6) +#define PHA1_PERIPH SYSCTL_PERIPH_GPIOG +#define PHA1_PORT GPIO_PORTG_BASE +#define PHA1_PIN GPIO_PIN_6 -#define PHB0_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PHB0_PORT (GPIO_PORTH_BASE) -#define PHB0_PIN (GPIO_PIN_3) +#define PHB0_PERIPH SYSCTL_PERIPH_GPIOH +#define PHB0_PORT GPIO_PORTH_BASE +#define PHB0_PIN GPIO_PIN_3 -#define PHB1_PERIPH (SYSCTL_PERIPH_GPIOG) -#define PHB1_PORT (GPIO_PORTG_BASE) -#define PHB1_PIN (GPIO_PIN_7) +#define PHB1_PERIPH SYSCTL_PERIPH_GPIOG +#define PHB1_PORT GPIO_PORTG_BASE +#define PHB1_PIN GPIO_PIN_7 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOG) -#define PWM0_PORT (GPIO_PORTG_BASE) -#define PWM0_PIN (GPIO_PIN_2) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOG +#define PWM0_PORT GPIO_PORTG_BASE +#define PWM0_PIN GPIO_PIN_2 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOG) -#define PWM1_PORT (GPIO_PORTG_BASE) -#define PWM1_PIN (GPIO_PIN_3) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOG +#define PWM1_PORT GPIO_PORTG_BASE +#define PWM1_PIN GPIO_PIN_3 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PWM2_PORT (GPIO_PORTH_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOH +#define PWM2_PORT GPIO_PORTH_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PWM3_PORT (GPIO_PORTH_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOH +#define PWM3_PORT GPIO_PORTH_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM4_PORT (GPIO_PORTF_BASE) -#define PWM4_PIN (GPIO_PIN_2) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM4_PORT GPIO_PORTF_BASE +#define PWM4_PIN GPIO_PIN_2 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM5_PORT (GPIO_PORTF_BASE) -#define PWM5_PIN (GPIO_PIN_3) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM5_PORT GPIO_PORTF_BASE +#define PWM5_PIN GPIO_PIN_3 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 -#define U2RX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2RX_PORT (GPIO_PORTG_BASE) -#define U2RX_PIN (GPIO_PIN_0) +#define U2RX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2RX_PORT GPIO_PORTG_BASE +#define U2RX_PIN GPIO_PIN_0 -#define U2TX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2TX_PORT (GPIO_PORTG_BASE) -#define U2TX_PIN (GPIO_PIN_1) +#define U2TX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2TX_PORT GPIO_PORTG_BASE +#define U2TX_PIN GPIO_PIN_1 #endif // PART_LM3S2965 +//***************************************************************************** +// +// LM3S2B93 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S2B93 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_PWM6 0x00001004 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_PWM7 0x00001404 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_PWM6 0x00021004 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_C2O 0x00021803 +#define GPIO_PC6_PWM7 0x00021804 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_C2O 0x00041C02 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_C2O 0x00051802 +#define GPIO_PF6_PHA0 0x00051804 +#define GPIO_PF6_I2S0TXMCLK 0x00051809 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_PHB0 0x00051C04 +#define GPIO_PF7_EPI0S12 0x00051C08 +#define GPIO_PF7_FAULT1 0x00051C09 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG2_PWM0 0x00060801 +#define GPIO_PG2_FAULT0 0x00060804 +#define GPIO_PG2_IDX1 0x00060808 +#define GPIO_PG2_I2S0RXSD 0x00060809 + +#define GPIO_PG3_PWM1 0x00060C01 +#define GPIO_PG3_FAULT2 0x00060C04 +#define GPIO_PG3_FAULT0 0x00060C08 +#define GPIO_PG3_I2S0RXMCLK 0x00060C09 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_FAULT1 0x00061004 +#define GPIO_PG4_EPI0S15 0x00061008 +#define GPIO_PG4_PWM6 0x00061009 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_IDX0 0x00061404 +#define GPIO_PG5_FAULT1 0x00061405 +#define GPIO_PG5_PWM7 0x00061408 +#define GPIO_PG5_I2S0RXSCK 0x00061409 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_PHA1 0x00061801 +#define GPIO_PG6_PWM6 0x00061804 +#define GPIO_PG6_FAULT1 0x00061808 +#define GPIO_PG6_I2S0RXWS 0x00061809 +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_PWM7 0x00061C04 +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_EPI0S6 0x00070008 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_EPI0S7 0x00070408 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#endif // PART_LM3S2B93 + +//***************************************************************************** +// +// LM3S2D93 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S2D93 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_PWM6 0x00001004 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_PWM7 0x00001404 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_PWM6 0x00021004 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_C2O 0x00021803 +#define GPIO_PC6_PWM7 0x00021804 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_C2O 0x00041C02 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_C2O 0x00051802 +#define GPIO_PF6_PHA0 0x00051804 +#define GPIO_PF6_I2S0TXMCLK 0x00051809 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_PHB0 0x00051C04 +#define GPIO_PF7_EPI0S12 0x00051C08 +#define GPIO_PF7_FAULT1 0x00051C09 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG2_PWM0 0x00060801 +#define GPIO_PG2_FAULT0 0x00060804 +#define GPIO_PG2_IDX1 0x00060808 +#define GPIO_PG2_I2S0RXSD 0x00060809 + +#define GPIO_PG3_PWM1 0x00060C01 +#define GPIO_PG3_FAULT2 0x00060C04 +#define GPIO_PG3_FAULT0 0x00060C08 +#define GPIO_PG3_I2S0RXMCLK 0x00060C09 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_FAULT1 0x00061004 +#define GPIO_PG4_EPI0S15 0x00061008 +#define GPIO_PG4_PWM6 0x00061009 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_IDX0 0x00061404 +#define GPIO_PG5_FAULT1 0x00061405 +#define GPIO_PG5_PWM7 0x00061408 +#define GPIO_PG5_I2S0RXSCK 0x00061409 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_PHA1 0x00061801 +#define GPIO_PG6_PWM6 0x00061804 +#define GPIO_PG6_FAULT1 0x00061808 +#define GPIO_PG6_I2S0RXWS 0x00061809 +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_PWM7 0x00061C04 +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_EPI0S6 0x00070008 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_EPI0S7 0x00070408 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#endif // PART_LM3S2D93 + +//***************************************************************************** +// +// LM3S2U93 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S2U93 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_PWM6 0x00001004 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_PWM7 0x00001404 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_PWM6 0x00021004 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_C2O 0x00021803 +#define GPIO_PC6_PWM7 0x00021804 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_C2O 0x00041C02 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_C2O 0x00051802 +#define GPIO_PF6_PHA0 0x00051804 +#define GPIO_PF6_I2S0TXMCLK 0x00051809 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_PHB0 0x00051C04 +#define GPIO_PF7_EPI0S12 0x00051C08 +#define GPIO_PF7_FAULT1 0x00051C09 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG2_PWM0 0x00060801 +#define GPIO_PG2_FAULT0 0x00060804 +#define GPIO_PG2_IDX1 0x00060808 +#define GPIO_PG2_I2S0RXSD 0x00060809 + +#define GPIO_PG3_PWM1 0x00060C01 +#define GPIO_PG3_FAULT2 0x00060C04 +#define GPIO_PG3_FAULT0 0x00060C08 +#define GPIO_PG3_I2S0RXMCLK 0x00060C09 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_FAULT1 0x00061004 +#define GPIO_PG4_EPI0S15 0x00061008 +#define GPIO_PG4_PWM6 0x00061009 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_IDX0 0x00061404 +#define GPIO_PG5_FAULT1 0x00061405 +#define GPIO_PG5_PWM7 0x00061408 +#define GPIO_PG5_I2S0RXSCK 0x00061409 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_PHA1 0x00061801 +#define GPIO_PG6_PWM6 0x00061804 +#define GPIO_PG6_FAULT1 0x00061808 +#define GPIO_PG6_I2S0RXWS 0x00061809 +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_PWM7 0x00061C04 +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_EPI0S6 0x00070008 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_EPI0S7 0x00070408 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#endif // PART_LM3S2U93 + +//***************************************************************************** +// +// LM3S3634 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S3634 + +#define ADC0_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC0_PORT GPIO_PORTE_BASE +#define ADC0_PIN GPIO_PIN_3 + +#define ADC1_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC1_PORT GPIO_PORTE_BASE +#define ADC1_PIN GPIO_PIN_2 + +#define ADC2_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC2_PORT GPIO_PORTE_BASE +#define ADC2_PIN GPIO_PIN_1 + +#define ADC3_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC3_PORT GPIO_PORTE_BASE +#define ADC3_PIN GPIO_PIN_0 + +#define ADC4_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC4_PORT GPIO_PORTD_BASE +#define ADC4_PIN GPIO_PIN_3 + +#define ADC5_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC5_PORT GPIO_PORTD_BASE +#define ADC5_PIN GPIO_PIN_2 + +#define ADC6_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC6_PORT GPIO_PORTD_BASE +#define ADC6_PIN GPIO_PIN_1 + +#define ADC7_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC7_PORT GPIO_PORTD_BASE +#define ADC7_PIN GPIO_PIN_0 + +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_5 + +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP1_PORT GPIO_PORTB_BASE +#define CCP1_PIN GPIO_PIN_6 + +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP2_PORT GPIO_PORTC_BASE +#define CCP2_PIN GPIO_PIN_4 + +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP3_PORT GPIO_PORTE_BASE +#define CCP3_PIN GPIO_PIN_4 + +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 + +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 + +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 + +#define I2C1SCL_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SCL_PORT GPIO_PORTA_BASE +#define I2C1SCL_PIN GPIO_PIN_6 + +#define I2C1SDA_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SDA_PORT GPIO_PORTA_BASE +#define I2C1SDA_PIN GPIO_PIN_7 + +#define NMI_PERIPH SYSCTL_PERIPH_GPIOB +#define NMI_PORT GPIO_PORTB_BASE +#define NMI_PIN GPIO_PIN_7 + +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 + +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 + +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 + +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 + +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 + +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 + +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 + +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 + +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 + +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 + +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 + +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 + +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 + +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOB +#define U1RX_PORT GPIO_PORTB_BASE +#define U1RX_PIN GPIO_PIN_0 + +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOB +#define U1TX_PORT GPIO_PORTB_BASE +#define U1TX_PIN GPIO_PIN_1 + +#define USB0EPEN_PERIPH SYSCTL_PERIPH_GPIOC +#define USB0EPEN_PORT GPIO_PORTC_BASE +#define USB0EPEN_PIN GPIO_PIN_5 + +#define USB0PFLT_PERIPH SYSCTL_PERIPH_GPIOC +#define USB0PFLT_PORT GPIO_PORTC_BASE +#define USB0PFLT_PIN GPIO_PIN_6 + +#endif // PART_LM3S3634 + //***************************************************************************** // // LM3S3651 Port/Pin Mapping Definitions @@ -12772,156 +19219,267 @@ //***************************************************************************** #ifdef PART_LM3S3651 -#define ADC0_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC0_PORT (GPIO_PORTE_BASE) -#define ADC0_PIN (GPIO_PIN_3) +#define ADC0_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC0_PORT GPIO_PORTE_BASE +#define ADC0_PIN GPIO_PIN_3 -#define ADC1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC1_PORT (GPIO_PORTE_BASE) -#define ADC1_PIN (GPIO_PIN_2) +#define ADC1_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC1_PORT GPIO_PORTE_BASE +#define ADC1_PIN GPIO_PIN_2 -#define ADC2_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC2_PORT (GPIO_PORTE_BASE) -#define ADC2_PIN (GPIO_PIN_1) +#define ADC2_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC2_PORT GPIO_PORTE_BASE +#define ADC2_PIN GPIO_PIN_1 -#define ADC3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC3_PORT (GPIO_PORTE_BASE) -#define ADC3_PIN (GPIO_PIN_0) +#define ADC3_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC3_PORT GPIO_PORTE_BASE +#define ADC3_PIN GPIO_PIN_0 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0O_PORT (GPIO_PORTB_BASE) -#define C0O_PIN (GPIO_PIN_6) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOB +#define C0O_PORT GPIO_PORTB_BASE +#define C0O_PIN GPIO_PIN_6 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_7) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_7 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP0_PORT (GPIO_PORTD_BASE) -#define CCP0_PIN (GPIO_PIN_3) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP0_PORT GPIO_PORTD_BASE +#define CCP0_PIN GPIO_PIN_3 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP2_PORT (GPIO_PORTC_BASE) -#define CCP2_PIN (GPIO_PIN_4) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP2_PORT GPIO_PORTC_BASE +#define CCP2_PIN GPIO_PIN_4 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP3_PORT (GPIO_PORTE_BASE) -#define CCP3_PIN (GPIO_PIN_4) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP3_PORT GPIO_PORTE_BASE +#define CCP3_PIN GPIO_PIN_4 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP4_PORT (GPIO_PORTA_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP4_PORT GPIO_PORTA_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP5_PORT (GPIO_PORTD_BASE) -#define CCP5_PIN (GPIO_PIN_2) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP5_PORT GPIO_PORTD_BASE +#define CCP5_PIN GPIO_PIN_2 -#define CCP6_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP6_PORT (GPIO_PORTD_BASE) -#define CCP6_PIN (GPIO_PIN_0) +#define CCP6_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP6_PORT GPIO_PORTD_BASE +#define CCP6_PIN GPIO_PIN_0 -#define CCP7_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP7_PORT (GPIO_PORTD_BASE) -#define CCP7_PIN (GPIO_PIN_1) +#define CCP7_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP7_PORT GPIO_PORTD_BASE +#define CCP7_PIN GPIO_PIN_1 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define NMI_PERIPH (SYSCTL_PERIPH_GPIOB) -#define NMI_PORT (GPIO_PORTB_BASE) -#define NMI_PIN (GPIO_PIN_7) +#define NMI_PERIPH SYSCTL_PERIPH_GPIOB +#define NMI_PORT GPIO_PORTB_BASE +#define NMI_PIN GPIO_PIN_7 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define USB0EPEN_PERIPH (SYSCTL_PERIPH_GPIOC) -#define USB0EPEN_PORT (GPIO_PORTC_BASE) -#define USB0EPEN_PIN (GPIO_PIN_5) +#define USB0EPEN_PERIPH SYSCTL_PERIPH_GPIOC +#define USB0EPEN_PORT GPIO_PORTC_BASE +#define USB0EPEN_PIN GPIO_PIN_5 -#define USB0ID_PERIPH (SYSCTL_PERIPH_GPIOB) -#define USB0ID_PORT (GPIO_PORTB_BASE) -#define USB0ID_PIN (GPIO_PIN_0) +#define USB0ID_PERIPH SYSCTL_PERIPH_GPIOB +#define USB0ID_PORT GPIO_PORTB_BASE +#define USB0ID_PIN GPIO_PIN_0 -#define USB0PFLT_PERIPH (SYSCTL_PERIPH_GPIOC) -#define USB0PFLT_PORT (GPIO_PORTC_BASE) -#define USB0PFLT_PIN (GPIO_PIN_6) +#define USB0PFLT_PERIPH SYSCTL_PERIPH_GPIOC +#define USB0PFLT_PORT GPIO_PORTC_BASE +#define USB0PFLT_PIN GPIO_PIN_6 -#define USB0VBUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define USB0VBUS_PORT (GPIO_PORTB_BASE) -#define USB0VBUS_PIN (GPIO_PIN_1) +#define USB0VBUS_PERIPH SYSCTL_PERIPH_GPIOB +#define USB0VBUS_PORT GPIO_PORTB_BASE +#define USB0VBUS_PIN GPIO_PIN_1 #endif // PART_LM3S3651 +//***************************************************************************** +// +// LM3S3654 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S3654 + +#define GPIO_PA0_U0RX 0x00000001 + +#define GPIO_PA1_U0TX 0x00000401 + +#define GPIO_PA2_SSI0CLK 0x00000801 + +#define GPIO_PA3_SSI0FSS 0x00000C01 + +#define GPIO_PA4_SSI0RX 0x00001001 + +#define GPIO_PA5_SSI0TX 0x00001401 + +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_USB0EPEN 0x00001808 + +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 + +#define GPIO_PB0_CCP0 0x00010001 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CCP2 0x00011406 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_CCP6 0x00030006 + +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_CCP2 0x00041006 + +#endif // PART_LM3S3654 + //***************************************************************************** // // LM3S3739 Port/Pin Mapping Definitions @@ -12929,205 +19487,205 @@ //***************************************************************************** #ifdef PART_LM3S3739 -#define ADC0_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC0_PORT (GPIO_PORTE_BASE) -#define ADC0_PIN (GPIO_PIN_7) +#define ADC0_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC0_PORT GPIO_PORTE_BASE +#define ADC0_PIN GPIO_PIN_7 -#define ADC1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC1_PORT (GPIO_PORTE_BASE) -#define ADC1_PIN (GPIO_PIN_6) +#define ADC1_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC1_PORT GPIO_PORTE_BASE +#define ADC1_PIN GPIO_PIN_6 -#define ADC2_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC2_PORT (GPIO_PORTE_BASE) -#define ADC2_PIN (GPIO_PIN_5) +#define ADC2_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC2_PORT GPIO_PORTE_BASE +#define ADC2_PIN GPIO_PIN_5 -#define ADC3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC3_PORT (GPIO_PORTE_BASE) -#define ADC3_PIN (GPIO_PIN_4) +#define ADC3_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC3_PORT GPIO_PORTE_BASE +#define ADC3_PIN GPIO_PIN_4 -#define ADC4_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC4_PORT (GPIO_PORTD_BASE) -#define ADC4_PIN (GPIO_PIN_7) +#define ADC4_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC4_PORT GPIO_PORTD_BASE +#define ADC4_PIN GPIO_PIN_7 -#define ADC5_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC5_PORT (GPIO_PORTD_BASE) -#define ADC5_PIN (GPIO_PIN_6) +#define ADC5_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC5_PORT GPIO_PORTD_BASE +#define ADC5_PIN GPIO_PIN_6 -#define ADC6_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC6_PORT (GPIO_PORTD_BASE) -#define ADC6_PIN (GPIO_PIN_5) +#define ADC6_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC6_PORT GPIO_PORTD_BASE +#define ADC6_PIN GPIO_PIN_5 -#define ADC7_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC7_PORT (GPIO_PORTD_BASE) -#define ADC7_PIN (GPIO_PIN_4) +#define ADC7_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC7_PORT GPIO_PORTD_BASE +#define ADC7_PIN GPIO_PIN_4 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C0O_PORT (GPIO_PORTF_BASE) -#define C0O_PIN (GPIO_PIN_4) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOF +#define C0O_PORT GPIO_PORTF_BASE +#define C0O_PIN GPIO_PIN_4 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C1O_PORT (GPIO_PORTF_BASE) -#define C1O_PIN (GPIO_PIN_5) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOF +#define C1O_PORT GPIO_PORTF_BASE +#define C1O_PIN GPIO_PIN_5 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP0_PORT (GPIO_PORTC_BASE) -#define CCP0_PIN (GPIO_PIN_6) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP0_PORT GPIO_PORTC_BASE +#define CCP0_PIN GPIO_PIN_6 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define CCP1_PORT (GPIO_PORTF_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOF +#define CCP1_PORT GPIO_PORTF_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP2_PORT (GPIO_PORTC_BASE) -#define CCP2_PIN (GPIO_PIN_4) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP2_PORT GPIO_PORTC_BASE +#define CCP2_PIN GPIO_PIN_4 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOG) -#define CCP3_PORT (GPIO_PORTG_BASE) -#define CCP3_PIN (GPIO_PIN_4) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOG +#define CCP3_PORT GPIO_PORTG_BASE +#define CCP3_PIN GPIO_PIN_4 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP5_PORT (GPIO_PORTD_BASE) -#define CCP5_PIN (GPIO_PIN_2) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP5_PORT GPIO_PORTD_BASE +#define CCP5_PIN GPIO_PIN_2 -#define CCP6_PERIPH (SYSCTL_PERIPH_GPIOH) -#define CCP6_PORT (GPIO_PORTH_BASE) -#define CCP6_PIN (GPIO_PIN_0) +#define CCP6_PERIPH SYSCTL_PERIPH_GPIOH +#define CCP6_PORT GPIO_PORTH_BASE +#define CCP6_PIN GPIO_PIN_0 -#define CCP7_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP7_PORT (GPIO_PORTD_BASE) -#define CCP7_PIN (GPIO_PIN_3) +#define CCP7_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP7_PORT GPIO_PORTD_BASE +#define CCP7_PIN GPIO_PIN_3 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define I2C1SCL_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SCL_PORT (GPIO_PORTA_BASE) -#define I2C1SCL_PIN (GPIO_PIN_6) +#define I2C1SCL_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SCL_PORT GPIO_PORTA_BASE +#define I2C1SCL_PIN GPIO_PIN_6 -#define I2C1SDA_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SDA_PORT (GPIO_PORTA_BASE) -#define I2C1SDA_PIN (GPIO_PIN_7) +#define I2C1SDA_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SDA_PORT GPIO_PORTA_BASE +#define I2C1SDA_PIN GPIO_PIN_7 -#define NMI_PERIPH (SYSCTL_PERIPH_GPIOB) -#define NMI_PORT (GPIO_PORTB_BASE) -#define NMI_PIN (GPIO_PIN_7) +#define NMI_PERIPH SYSCTL_PERIPH_GPIOB +#define NMI_PORT GPIO_PORTB_BASE +#define NMI_PIN GPIO_PIN_7 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOB) -#define U1RX_PORT (GPIO_PORTB_BASE) -#define U1RX_PIN (GPIO_PIN_0) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOB +#define U1RX_PORT GPIO_PORTB_BASE +#define U1RX_PIN GPIO_PIN_0 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOB) -#define U1TX_PORT (GPIO_PORTB_BASE) -#define U1TX_PIN (GPIO_PIN_1) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOB +#define U1TX_PORT GPIO_PORTB_BASE +#define U1TX_PIN GPIO_PIN_1 -#define U2RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U2RX_PORT (GPIO_PORTD_BASE) -#define U2RX_PIN (GPIO_PIN_0) +#define U2RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U2RX_PORT GPIO_PORTD_BASE +#define U2RX_PIN GPIO_PIN_0 -#define U2TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U2TX_PORT (GPIO_PORTD_BASE) -#define U2TX_PIN (GPIO_PIN_1) +#define U2TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U2TX_PORT GPIO_PORTD_BASE +#define U2TX_PIN GPIO_PIN_1 -#define USB0EPEN_PERIPH (SYSCTL_PERIPH_GPIOH) -#define USB0EPEN_PORT (GPIO_PORTH_BASE) -#define USB0EPEN_PIN (GPIO_PIN_3) +#define USB0EPEN_PERIPH SYSCTL_PERIPH_GPIOH +#define USB0EPEN_PORT GPIO_PORTH_BASE +#define USB0EPEN_PIN GPIO_PIN_3 -#define USB0PFLT_PERIPH (SYSCTL_PERIPH_GPIOH) -#define USB0PFLT_PORT (GPIO_PORTH_BASE) -#define USB0PFLT_PIN (GPIO_PIN_4) +#define USB0PFLT_PERIPH SYSCTL_PERIPH_GPIOH +#define USB0PFLT_PORT GPIO_PORTH_BASE +#define USB0PFLT_PIN GPIO_PIN_4 #endif // PART_LM3S3739 @@ -13138,249 +19696,249 @@ //***************************************************************************** #ifdef PART_LM3S3748 -#define ADC0_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC0_PORT (GPIO_PORTE_BASE) -#define ADC0_PIN (GPIO_PIN_7) +#define ADC0_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC0_PORT GPIO_PORTE_BASE +#define ADC0_PIN GPIO_PIN_7 -#define ADC1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC1_PORT (GPIO_PORTE_BASE) -#define ADC1_PIN (GPIO_PIN_6) +#define ADC1_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC1_PORT GPIO_PORTE_BASE +#define ADC1_PIN GPIO_PIN_6 -#define ADC2_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC2_PORT (GPIO_PORTE_BASE) -#define ADC2_PIN (GPIO_PIN_5) +#define ADC2_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC2_PORT GPIO_PORTE_BASE +#define ADC2_PIN GPIO_PIN_5 -#define ADC3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC3_PORT (GPIO_PORTE_BASE) -#define ADC3_PIN (GPIO_PIN_4) +#define ADC3_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC3_PORT GPIO_PORTE_BASE +#define ADC3_PIN GPIO_PIN_4 -#define ADC4_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC4_PORT (GPIO_PORTD_BASE) -#define ADC4_PIN (GPIO_PIN_7) +#define ADC4_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC4_PORT GPIO_PORTD_BASE +#define ADC4_PIN GPIO_PIN_7 -#define ADC5_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC5_PORT (GPIO_PORTD_BASE) -#define ADC5_PIN (GPIO_PIN_6) +#define ADC5_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC5_PORT GPIO_PORTD_BASE +#define ADC5_PIN GPIO_PIN_6 -#define ADC6_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC6_PORT (GPIO_PORTD_BASE) -#define ADC6_PIN (GPIO_PIN_5) +#define ADC6_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC6_PORT GPIO_PORTD_BASE +#define ADC6_PIN GPIO_PIN_5 -#define ADC7_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC7_PORT (GPIO_PORTD_BASE) -#define ADC7_PIN (GPIO_PIN_4) +#define ADC7_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC7_PORT GPIO_PORTD_BASE +#define ADC7_PIN GPIO_PIN_4 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP0_PORT (GPIO_PORTD_BASE) -#define CCP0_PIN (GPIO_PIN_3) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP0_PORT GPIO_PORTD_BASE +#define CCP0_PIN GPIO_PIN_3 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define CCP1_PORT (GPIO_PORTF_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOF +#define CCP1_PORT GPIO_PORTF_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOF) -#define CCP2_PORT (GPIO_PORTF_BASE) -#define CCP2_PIN (GPIO_PIN_5) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOF +#define CCP2_PORT GPIO_PORTF_BASE +#define CCP2_PIN GPIO_PIN_5 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOG) -#define CCP3_PORT (GPIO_PORTG_BASE) -#define CCP3_PIN (GPIO_PIN_4) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOG +#define CCP3_PORT GPIO_PORTG_BASE +#define CCP3_PIN GPIO_PIN_4 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_4) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_4 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP5_PORT (GPIO_PORTD_BASE) -#define CCP5_PIN (GPIO_PIN_2) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP5_PORT GPIO_PORTD_BASE +#define CCP5_PIN GPIO_PIN_2 -#define CCP6_PERIPH (SYSCTL_PERIPH_GPIOH) -#define CCP6_PORT (GPIO_PORTH_BASE) -#define CCP6_PIN (GPIO_PIN_0) +#define CCP6_PERIPH SYSCTL_PERIPH_GPIOH +#define CCP6_PORT GPIO_PORTH_BASE +#define CCP6_PIN GPIO_PIN_0 -#define CCP7_PERIPH (SYSCTL_PERIPH_GPIOH) -#define CCP7_PORT (GPIO_PORTH_BASE) -#define CCP7_PIN (GPIO_PIN_1) +#define CCP7_PERIPH SYSCTL_PERIPH_GPIOH +#define CCP7_PORT GPIO_PORTH_BASE +#define CCP7_PIN GPIO_PIN_1 -#define FAULT0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define FAULT0_PORT (GPIO_PORTF_BASE) -#define FAULT0_PIN (GPIO_PIN_4) +#define FAULT0_PERIPH SYSCTL_PERIPH_GPIOF +#define FAULT0_PORT GPIO_PORTF_BASE +#define FAULT0_PIN GPIO_PIN_4 -#define FAULT1_PERIPH (SYSCTL_PERIPH_GPIOG) -#define FAULT1_PORT (GPIO_PORTG_BASE) -#define FAULT1_PIN (GPIO_PIN_5) +#define FAULT1_PERIPH SYSCTL_PERIPH_GPIOG +#define FAULT1_PORT GPIO_PORTG_BASE +#define FAULT1_PIN GPIO_PIN_5 -#define FAULT2_PERIPH (SYSCTL_PERIPH_GPIOG) -#define FAULT2_PORT (GPIO_PORTG_BASE) -#define FAULT2_PIN (GPIO_PIN_3) +#define FAULT2_PERIPH SYSCTL_PERIPH_GPIOG +#define FAULT2_PORT GPIO_PORTG_BASE +#define FAULT2_PIN GPIO_PIN_3 -#define FAULT3_PERIPH (SYSCTL_PERIPH_GPIOH) -#define FAULT3_PORT (GPIO_PORTH_BASE) -#define FAULT3_PIN (GPIO_PIN_2) +#define FAULT3_PERIPH SYSCTL_PERIPH_GPIOH +#define FAULT3_PORT GPIO_PORTH_BASE +#define FAULT3_PIN GPIO_PIN_2 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define I2C1SCL_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SCL_PORT (GPIO_PORTA_BASE) -#define I2C1SCL_PIN (GPIO_PIN_6) +#define I2C1SCL_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SCL_PORT GPIO_PORTA_BASE +#define I2C1SCL_PIN GPIO_PIN_6 -#define I2C1SDA_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SDA_PORT (GPIO_PORTA_BASE) -#define I2C1SDA_PIN (GPIO_PIN_7) +#define I2C1SDA_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SDA_PORT GPIO_PORTA_BASE +#define I2C1SDA_PIN GPIO_PIN_7 -#define IDX0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define IDX0_PORT (GPIO_PORTD_BASE) -#define IDX0_PIN (GPIO_PIN_0) +#define IDX0_PERIPH SYSCTL_PERIPH_GPIOD +#define IDX0_PORT GPIO_PORTD_BASE +#define IDX0_PIN GPIO_PIN_0 -#define NMI_PERIPH (SYSCTL_PERIPH_GPIOB) -#define NMI_PORT (GPIO_PORTB_BASE) -#define NMI_PIN (GPIO_PIN_7) +#define NMI_PERIPH SYSCTL_PERIPH_GPIOB +#define NMI_PORT GPIO_PORTB_BASE +#define NMI_PIN GPIO_PIN_7 -#define PHA0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PHA0_PORT (GPIO_PORTD_BASE) -#define PHA0_PIN (GPIO_PIN_1) +#define PHA0_PERIPH SYSCTL_PERIPH_GPIOD +#define PHA0_PORT GPIO_PORTD_BASE +#define PHA0_PIN GPIO_PIN_1 -#define PHB0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PHB0_PORT (GPIO_PORTF_BASE) -#define PHB0_PIN (GPIO_PIN_7) +#define PHB0_PERIPH SYSCTL_PERIPH_GPIOF +#define PHB0_PORT GPIO_PORTF_BASE +#define PHB0_PIN GPIO_PIN_7 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM0_PORT (GPIO_PORTF_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM0_PORT GPIO_PORTF_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM1_PORT (GPIO_PORTF_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM1_PORT GPIO_PORTF_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM2_PORT (GPIO_PORTF_BASE) -#define PWM2_PIN (GPIO_PIN_2) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM2_PORT GPIO_PORTF_BASE +#define PWM2_PIN GPIO_PIN_2 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM3_PORT (GPIO_PORTF_BASE) -#define PWM3_PIN (GPIO_PIN_3) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM3_PORT GPIO_PORTF_BASE +#define PWM3_PIN GPIO_PIN_3 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOG) -#define PWM4_PORT (GPIO_PORTG_BASE) -#define PWM4_PIN (GPIO_PIN_0) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOG +#define PWM4_PORT GPIO_PORTG_BASE +#define PWM4_PIN GPIO_PIN_0 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOG) -#define PWM5_PORT (GPIO_PORTG_BASE) -#define PWM5_PIN (GPIO_PIN_1) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOG +#define PWM5_PORT GPIO_PORTG_BASE +#define PWM5_PIN GPIO_PIN_1 -#define PWM6_PERIPH (SYSCTL_PERIPH_GPIOG) -#define PWM6_PORT (GPIO_PORTG_BASE) -#define PWM6_PIN (GPIO_PIN_6) +#define PWM6_PERIPH SYSCTL_PERIPH_GPIOG +#define PWM6_PORT GPIO_PORTG_BASE +#define PWM6_PIN GPIO_PIN_6 -#define PWM7_PERIPH (SYSCTL_PERIPH_GPIOG) -#define PWM7_PORT (GPIO_PORTG_BASE) -#define PWM7_PIN (GPIO_PIN_7) +#define PWM7_PERIPH SYSCTL_PERIPH_GPIOG +#define PWM7_PORT GPIO_PORTG_BASE +#define PWM7_PIN GPIO_PIN_7 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOC) -#define U1RX_PORT (GPIO_PORTC_BASE) -#define U1RX_PIN (GPIO_PIN_6) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOC +#define U1RX_PORT GPIO_PORTC_BASE +#define U1RX_PIN GPIO_PIN_6 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOC) -#define U1TX_PORT (GPIO_PORTC_BASE) -#define U1TX_PIN (GPIO_PIN_7) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOC +#define U1TX_PORT GPIO_PORTC_BASE +#define U1TX_PIN GPIO_PIN_7 -#define USB0EPEN_PERIPH (SYSCTL_PERIPH_GPIOH) -#define USB0EPEN_PORT (GPIO_PORTH_BASE) -#define USB0EPEN_PIN (GPIO_PIN_3) +#define USB0EPEN_PERIPH SYSCTL_PERIPH_GPIOH +#define USB0EPEN_PORT GPIO_PORTH_BASE +#define USB0EPEN_PIN GPIO_PIN_3 -#define USB0PFLT_PERIPH (SYSCTL_PERIPH_GPIOH) -#define USB0PFLT_PORT (GPIO_PORTH_BASE) -#define USB0PFLT_PIN (GPIO_PIN_4) +#define USB0PFLT_PERIPH SYSCTL_PERIPH_GPIOH +#define USB0PFLT_PORT GPIO_PORTH_BASE +#define USB0PFLT_PIN GPIO_PIN_4 #endif // PART_LM3S3748 @@ -13391,264 +19949,864 @@ //***************************************************************************** #ifdef PART_LM3S3749 -#define ADC0_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC0_PORT (GPIO_PORTE_BASE) -#define ADC0_PIN (GPIO_PIN_7) +#define ADC0_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC0_PORT GPIO_PORTE_BASE +#define ADC0_PIN GPIO_PIN_7 -#define ADC1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC1_PORT (GPIO_PORTE_BASE) -#define ADC1_PIN (GPIO_PIN_6) +#define ADC1_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC1_PORT GPIO_PORTE_BASE +#define ADC1_PIN GPIO_PIN_6 -#define ADC2_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC2_PORT (GPIO_PORTE_BASE) -#define ADC2_PIN (GPIO_PIN_5) +#define ADC2_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC2_PORT GPIO_PORTE_BASE +#define ADC2_PIN GPIO_PIN_5 -#define ADC3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC3_PORT (GPIO_PORTE_BASE) -#define ADC3_PIN (GPIO_PIN_4) +#define ADC3_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC3_PORT GPIO_PORTE_BASE +#define ADC3_PIN GPIO_PIN_4 -#define ADC4_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC4_PORT (GPIO_PORTD_BASE) -#define ADC4_PIN (GPIO_PIN_7) +#define ADC4_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC4_PORT GPIO_PORTD_BASE +#define ADC4_PIN GPIO_PIN_7 -#define ADC5_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC5_PORT (GPIO_PORTD_BASE) -#define ADC5_PIN (GPIO_PIN_6) +#define ADC5_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC5_PORT GPIO_PORTD_BASE +#define ADC5_PIN GPIO_PIN_6 -#define ADC6_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC6_PORT (GPIO_PORTD_BASE) -#define ADC6_PIN (GPIO_PIN_5) +#define ADC6_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC6_PORT GPIO_PORTD_BASE +#define ADC6_PIN GPIO_PIN_5 -#define ADC7_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC7_PORT (GPIO_PORTD_BASE) -#define ADC7_PIN (GPIO_PIN_4) +#define ADC7_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC7_PORT GPIO_PORTD_BASE +#define ADC7_PIN GPIO_PIN_4 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C0O_PORT (GPIO_PORTF_BASE) -#define C0O_PIN (GPIO_PIN_4) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOF +#define C0O_PORT GPIO_PORTF_BASE +#define C0O_PIN GPIO_PIN_4 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1O_PORT (GPIO_PORTC_BASE) -#define C1O_PIN (GPIO_PIN_7) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOC +#define C1O_PORT GPIO_PORTC_BASE +#define C1O_PIN GPIO_PIN_7 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP0_PORT (GPIO_PORTD_BASE) -#define CCP0_PIN (GPIO_PIN_3) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP0_PORT GPIO_PORTD_BASE +#define CCP0_PIN GPIO_PIN_3 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOF) -#define CCP2_PORT (GPIO_PORTF_BASE) -#define CCP2_PIN (GPIO_PIN_5) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOF +#define CCP2_PORT GPIO_PORTF_BASE +#define CCP2_PIN GPIO_PIN_5 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP3_PORT (GPIO_PORTA_BASE) -#define CCP3_PIN (GPIO_PIN_7) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP3_PORT GPIO_PORTA_BASE +#define CCP3_PIN GPIO_PIN_7 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOF) -#define CCP4_PORT (GPIO_PORTF_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOF +#define CCP4_PORT GPIO_PORTF_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define CCP6_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP6_PORT (GPIO_PORTD_BASE) -#define CCP6_PIN (GPIO_PIN_2) +#define CCP6_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP6_PORT GPIO_PORTD_BASE +#define CCP6_PIN GPIO_PIN_2 -#define FAULT0_PERIPH (SYSCTL_PERIPH_GPIOG) -#define FAULT0_PORT (GPIO_PORTG_BASE) -#define FAULT0_PIN (GPIO_PIN_2) +#define FAULT0_PERIPH SYSCTL_PERIPH_GPIOG +#define FAULT0_PORT GPIO_PORTG_BASE +#define FAULT0_PIN GPIO_PIN_2 -#define FAULT1_PERIPH (SYSCTL_PERIPH_GPIOG) -#define FAULT1_PORT (GPIO_PORTG_BASE) -#define FAULT1_PIN (GPIO_PIN_4) +#define FAULT1_PERIPH SYSCTL_PERIPH_GPIOG +#define FAULT1_PORT GPIO_PORTG_BASE +#define FAULT1_PIN GPIO_PIN_4 -#define FAULT2_PERIPH (SYSCTL_PERIPH_GPIOG) -#define FAULT2_PORT (GPIO_PORTG_BASE) -#define FAULT2_PIN (GPIO_PIN_3) +#define FAULT2_PERIPH SYSCTL_PERIPH_GPIOG +#define FAULT2_PORT GPIO_PORTG_BASE +#define FAULT2_PIN GPIO_PIN_3 -#define FAULT3_PERIPH (SYSCTL_PERIPH_GPIOH) -#define FAULT3_PORT (GPIO_PORTH_BASE) -#define FAULT3_PIN (GPIO_PIN_2) +#define FAULT3_PERIPH SYSCTL_PERIPH_GPIOH +#define FAULT3_PORT GPIO_PORTH_BASE +#define FAULT3_PIN GPIO_PIN_2 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define I2C1SCL_PERIPH (SYSCTL_PERIPH_GPIOG) -#define I2C1SCL_PORT (GPIO_PORTG_BASE) -#define I2C1SCL_PIN (GPIO_PIN_0) +#define I2C1SCL_PERIPH SYSCTL_PERIPH_GPIOG +#define I2C1SCL_PORT GPIO_PORTG_BASE +#define I2C1SCL_PIN GPIO_PIN_0 -#define I2C1SDA_PERIPH (SYSCTL_PERIPH_GPIOG) -#define I2C1SDA_PORT (GPIO_PORTG_BASE) -#define I2C1SDA_PIN (GPIO_PIN_1) +#define I2C1SDA_PERIPH SYSCTL_PERIPH_GPIOG +#define I2C1SDA_PORT GPIO_PORTG_BASE +#define I2C1SDA_PIN GPIO_PIN_1 -#define IDX0_PERIPH (SYSCTL_PERIPH_GPIOG) -#define IDX0_PORT (GPIO_PORTG_BASE) -#define IDX0_PIN (GPIO_PIN_5) +#define IDX0_PERIPH SYSCTL_PERIPH_GPIOG +#define IDX0_PORT GPIO_PORTG_BASE +#define IDX0_PIN GPIO_PIN_5 -#define NMI_PERIPH (SYSCTL_PERIPH_GPIOB) -#define NMI_PORT (GPIO_PORTB_BASE) -#define NMI_PIN (GPIO_PIN_7) +#define NMI_PERIPH SYSCTL_PERIPH_GPIOB +#define NMI_PORT GPIO_PORTB_BASE +#define NMI_PIN GPIO_PIN_7 -#define PHA0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PHA0_PORT (GPIO_PORTF_BASE) -#define PHA0_PIN (GPIO_PIN_6) +#define PHA0_PERIPH SYSCTL_PERIPH_GPIOF +#define PHA0_PORT GPIO_PORTF_BASE +#define PHA0_PIN GPIO_PIN_6 -#define PHB0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHB0_PORT (GPIO_PORTC_BASE) -#define PHB0_PIN (GPIO_PIN_6) +#define PHB0_PERIPH SYSCTL_PERIPH_GPIOC +#define PHB0_PORT GPIO_PORTC_BASE +#define PHB0_PIN GPIO_PIN_6 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM0_PORT (GPIO_PORTF_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM0_PORT GPIO_PORTF_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM1_PORT (GPIO_PORTF_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM1_PORT GPIO_PORTF_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PWM2_PORT (GPIO_PORTH_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOH +#define PWM2_PORT GPIO_PORTH_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PWM3_PORT (GPIO_PORTH_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOH +#define PWM3_PORT GPIO_PORTH_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM4_PORT (GPIO_PORTF_BASE) -#define PWM4_PIN (GPIO_PIN_2) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM4_PORT GPIO_PORTF_BASE +#define PWM4_PIN GPIO_PIN_2 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM5_PORT (GPIO_PORTF_BASE) -#define PWM5_PIN (GPIO_PIN_3) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM5_PORT GPIO_PORTF_BASE +#define PWM5_PIN GPIO_PIN_3 -#define PWM6_PERIPH (SYSCTL_PERIPH_GPIOG) -#define PWM6_PORT (GPIO_PORTG_BASE) -#define PWM6_PIN (GPIO_PIN_6) +#define PWM6_PERIPH SYSCTL_PERIPH_GPIOG +#define PWM6_PORT GPIO_PORTG_BASE +#define PWM6_PIN GPIO_PIN_6 -#define PWM7_PERIPH (SYSCTL_PERIPH_GPIOG) -#define PWM7_PORT (GPIO_PORTG_BASE) -#define PWM7_PIN (GPIO_PIN_7) +#define PWM7_PERIPH SYSCTL_PERIPH_GPIOG +#define PWM7_PORT GPIO_PORTG_BASE +#define PWM7_PIN GPIO_PIN_7 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOB) -#define U1RX_PORT (GPIO_PORTB_BASE) -#define U1RX_PIN (GPIO_PIN_0) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOB +#define U1RX_PORT GPIO_PORTB_BASE +#define U1RX_PIN GPIO_PIN_0 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOB) -#define U1TX_PORT (GPIO_PORTB_BASE) -#define U1TX_PIN (GPIO_PIN_1) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOB +#define U1TX_PORT GPIO_PORTB_BASE +#define U1TX_PIN GPIO_PIN_1 -#define U2RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U2RX_PORT (GPIO_PORTD_BASE) -#define U2RX_PIN (GPIO_PIN_0) +#define U2RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U2RX_PORT GPIO_PORTD_BASE +#define U2RX_PIN GPIO_PIN_0 -#define U2TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U2TX_PORT (GPIO_PORTD_BASE) -#define U2TX_PIN (GPIO_PIN_1) +#define U2TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U2TX_PORT GPIO_PORTD_BASE +#define U2TX_PIN GPIO_PIN_1 -#define USB0EPEN_PERIPH (SYSCTL_PERIPH_GPIOH) -#define USB0EPEN_PORT (GPIO_PORTH_BASE) -#define USB0EPEN_PIN (GPIO_PIN_3) +#define USB0EPEN_PERIPH SYSCTL_PERIPH_GPIOH +#define USB0EPEN_PORT GPIO_PORTH_BASE +#define USB0EPEN_PIN GPIO_PIN_3 -#define USB0PFLT_PERIPH (SYSCTL_PERIPH_GPIOH) -#define USB0PFLT_PORT (GPIO_PORTH_BASE) -#define USB0PFLT_PIN (GPIO_PIN_4) +#define USB0PFLT_PERIPH SYSCTL_PERIPH_GPIOH +#define USB0PFLT_PORT GPIO_PORTH_BASE +#define USB0PFLT_PIN GPIO_PIN_4 #endif // PART_LM3S3749 +//***************************************************************************** +// +// LM3S3826 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S3826 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 + +#define GPIO_PA3_SSI0FSS 0x00000C01 + +#define GPIO_PA4_SSI0RX 0x00001001 + +#define GPIO_PA5_SSI0TX 0x00001401 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CCP3 0x00001C07 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_CCP3 0x00021405 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 + +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#endif // PART_LM3S3826 + +//***************************************************************************** +// +// LM3S3J26 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S3J26 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 + +#define GPIO_PA3_SSI0FSS 0x00000C01 + +#define GPIO_PA4_SSI0RX 0x00001001 + +#define GPIO_PA5_SSI0TX 0x00001401 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CCP3 0x00001C07 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_CCP3 0x00021405 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 + +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#endif // PART_LM3S3J26 + +//***************************************************************************** +// +// LM3S3N26 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S3N26 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 + +#define GPIO_PA3_SSI0FSS 0x00000C01 + +#define GPIO_PA4_SSI0RX 0x00001001 + +#define GPIO_PA5_SSI0TX 0x00001401 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CCP3 0x00001C07 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_CCP3 0x00021405 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 + +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#endif // PART_LM3S3N26 + +//***************************************************************************** +// +// LM3S3W26 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S3W26 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 + +#define GPIO_PA3_SSI0FSS 0x00000C01 + +#define GPIO_PA4_SSI0RX 0x00001001 + +#define GPIO_PA5_SSI0TX 0x00001401 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CCP3 0x00001C07 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_CCP3 0x00021405 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 + +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#endif // PART_LM3S3W26 + +//***************************************************************************** +// +// LM3S3Z26 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S3Z26 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 + +#define GPIO_PA3_SSI0FSS 0x00000C01 + +#define GPIO_PA4_SSI0RX 0x00001001 + +#define GPIO_PA5_SSI0TX 0x00001401 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CCP3 0x00001C07 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_CCP3 0x00021405 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 + +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#endif // PART_LM3S3Z26 + //***************************************************************************** // // LM3S5632 Port/Pin Mapping Definitions @@ -13656,148 +20814,483 @@ //***************************************************************************** #ifdef PART_LM3S5632 -#define ADC0_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC0_PORT (GPIO_PORTE_BASE) -#define ADC0_PIN (GPIO_PIN_3) +#define ADC0_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC0_PORT GPIO_PORTE_BASE +#define ADC0_PIN GPIO_PIN_3 -#define ADC1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC1_PORT (GPIO_PORTE_BASE) -#define ADC1_PIN (GPIO_PIN_2) +#define ADC1_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC1_PORT GPIO_PORTE_BASE +#define ADC1_PIN GPIO_PIN_2 -#define ADC2_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC2_PORT (GPIO_PORTE_BASE) -#define ADC2_PIN (GPIO_PIN_1) +#define ADC2_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC2_PORT GPIO_PORTE_BASE +#define ADC2_PIN GPIO_PIN_1 -#define ADC3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC3_PORT (GPIO_PORTE_BASE) -#define ADC3_PIN (GPIO_PIN_0) +#define ADC3_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC3_PORT GPIO_PORTE_BASE +#define ADC3_PIN GPIO_PIN_0 -#define ADC4_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC4_PORT (GPIO_PORTD_BASE) -#define ADC4_PIN (GPIO_PIN_3) +#define ADC4_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC4_PORT GPIO_PORTD_BASE +#define ADC4_PIN GPIO_PIN_3 -#define ADC5_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC5_PORT (GPIO_PORTD_BASE) -#define ADC5_PIN (GPIO_PIN_2) +#define ADC5_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC5_PORT GPIO_PORTD_BASE +#define ADC5_PIN GPIO_PIN_2 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_5) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_5 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP1_PORT (GPIO_PORTB_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP1_PORT GPIO_PORTB_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP2_PORT (GPIO_PORTC_BASE) -#define CCP2_PIN (GPIO_PIN_4) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP2_PORT GPIO_PORTC_BASE +#define CCP2_PIN GPIO_PIN_4 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP3_PORT (GPIO_PORTE_BASE) -#define CCP3_PIN (GPIO_PIN_4) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP3_PORT GPIO_PORTE_BASE +#define CCP3_PIN GPIO_PIN_4 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define I2C1SCL_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SCL_PORT (GPIO_PORTA_BASE) -#define I2C1SCL_PIN (GPIO_PIN_6) +#define I2C1SCL_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SCL_PORT GPIO_PORTA_BASE +#define I2C1SCL_PIN GPIO_PIN_6 -#define I2C1SDA_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SDA_PORT (GPIO_PORTA_BASE) -#define I2C1SDA_PIN (GPIO_PIN_7) +#define I2C1SDA_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SDA_PORT GPIO_PORTA_BASE +#define I2C1SDA_PIN GPIO_PIN_7 -#define NMI_PERIPH (SYSCTL_PERIPH_GPIOB) -#define NMI_PORT (GPIO_PORTB_BASE) -#define NMI_PIN (GPIO_PIN_7) +#define NMI_PERIPH SYSCTL_PERIPH_GPIOB +#define NMI_PORT GPIO_PORTB_BASE +#define NMI_PIN GPIO_PIN_7 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOB) -#define U1RX_PORT (GPIO_PORTB_BASE) -#define U1RX_PIN (GPIO_PIN_0) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOB +#define U1RX_PORT GPIO_PORTB_BASE +#define U1RX_PIN GPIO_PIN_0 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOB) -#define U1TX_PORT (GPIO_PORTB_BASE) -#define U1TX_PIN (GPIO_PIN_1) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOB +#define U1TX_PORT GPIO_PORTB_BASE +#define U1TX_PIN GPIO_PIN_1 -#define USB0EPEN_PERIPH (SYSCTL_PERIPH_GPIOC) -#define USB0EPEN_PORT (GPIO_PORTC_BASE) -#define USB0EPEN_PIN (GPIO_PIN_5) +#define USB0EPEN_PERIPH SYSCTL_PERIPH_GPIOC +#define USB0EPEN_PORT GPIO_PORTC_BASE +#define USB0EPEN_PIN GPIO_PIN_5 -#define USB0PFLT_PERIPH (SYSCTL_PERIPH_GPIOC) -#define USB0PFLT_PORT (GPIO_PORTC_BASE) -#define USB0PFLT_PIN (GPIO_PIN_6) +#define USB0PFLT_PERIPH SYSCTL_PERIPH_GPIOC +#define USB0PFLT_PORT GPIO_PORTC_BASE +#define USB0PFLT_PIN GPIO_PIN_6 #endif // PART_LM3S5632 +//***************************************************************************** +// +// LM3S5651 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S5651 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_PHA0 0x00051804 +#define GPIO_PF6_I2S0TXMCLK 0x00051809 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_PHB0 0x00051C04 +#define GPIO_PF7_FAULT1 0x00051C09 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_USB0EPEN 0x00060007 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 + +#define GPIO_PG2_PWM0 0x00060801 +#define GPIO_PG2_FAULT0 0x00060804 +#define GPIO_PG2_IDX1 0x00060808 +#define GPIO_PG2_I2S0RXSD 0x00060809 + +#define GPIO_PG3_PWM1 0x00060C01 +#define GPIO_PG3_FAULT2 0x00060C04 +#define GPIO_PG3_FAULT0 0x00060C08 +#define GPIO_PG3_I2S0RXMCLK 0x00060C09 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_FAULT1 0x00061004 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_IDX0 0x00061404 +#define GPIO_PG5_FAULT1 0x00061405 +#define GPIO_PG5_I2S0RXSCK 0x00061409 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_PHA1 0x00061801 +#define GPIO_PG6_FAULT1 0x00061808 +#define GPIO_PG6_I2S0RXWS 0x00061809 +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_CCP5 0x00061C08 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_USB0EPEN 0x00070C04 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#endif // PART_LM3S5651 + //***************************************************************************** // // LM3S5652 Port/Pin Mapping Definitions @@ -13805,152 +21298,326 @@ //***************************************************************************** #ifdef PART_LM3S5652 -#define ADC0_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC0_PORT (GPIO_PORTE_BASE) -#define ADC0_PIN (GPIO_PIN_3) +#define ADC0_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC0_PORT GPIO_PORTE_BASE +#define ADC0_PIN GPIO_PIN_3 -#define ADC1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC1_PORT (GPIO_PORTE_BASE) -#define ADC1_PIN (GPIO_PIN_2) +#define ADC1_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC1_PORT GPIO_PORTE_BASE +#define ADC1_PIN GPIO_PIN_2 -#define ADC2_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC2_PORT (GPIO_PORTE_BASE) -#define ADC2_PIN (GPIO_PIN_1) +#define ADC2_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC2_PORT GPIO_PORTE_BASE +#define ADC2_PIN GPIO_PIN_1 -#define ADC3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC3_PORT (GPIO_PORTE_BASE) -#define ADC3_PIN (GPIO_PIN_0) +#define ADC3_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC3_PORT GPIO_PORTE_BASE +#define ADC3_PIN GPIO_PIN_0 -#define ADC4_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC4_PORT (GPIO_PORTD_BASE) -#define ADC4_PIN (GPIO_PIN_3) +#define ADC4_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC4_PORT GPIO_PORTD_BASE +#define ADC4_PIN GPIO_PIN_3 -#define ADC5_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC5_PORT (GPIO_PORTD_BASE) -#define ADC5_PIN (GPIO_PIN_2) +#define ADC5_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC5_PORT GPIO_PORTD_BASE +#define ADC5_PIN GPIO_PIN_2 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_5) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_5 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP2_PORT (GPIO_PORTE_BASE) -#define CCP2_PIN (GPIO_PIN_4) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP2_PORT GPIO_PORTE_BASE +#define CCP2_PIN GPIO_PIN_4 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP3_PORT (GPIO_PORTA_BASE) -#define CCP3_PIN (GPIO_PIN_7) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP3_PORT GPIO_PORTA_BASE +#define CCP3_PIN GPIO_PIN_7 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define NMI_PERIPH (SYSCTL_PERIPH_GPIOB) -#define NMI_PORT (GPIO_PORTB_BASE) -#define NMI_PIN (GPIO_PIN_7) +#define NMI_PERIPH SYSCTL_PERIPH_GPIOB +#define NMI_PORT GPIO_PORTB_BASE +#define NMI_PIN GPIO_PIN_7 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define USB0EPEN_PERIPH (SYSCTL_PERIPH_GPIOC) -#define USB0EPEN_PORT (GPIO_PORTC_BASE) -#define USB0EPEN_PIN (GPIO_PIN_5) +#define USB0EPEN_PERIPH SYSCTL_PERIPH_GPIOC +#define USB0EPEN_PORT GPIO_PORTC_BASE +#define USB0EPEN_PIN GPIO_PIN_5 -#define USB0ID_PERIPH (SYSCTL_PERIPH_GPIOB) -#define USB0ID_PORT (GPIO_PORTB_BASE) -#define USB0ID_PIN (GPIO_PIN_0) +#define USB0ID_PERIPH SYSCTL_PERIPH_GPIOB +#define USB0ID_PORT GPIO_PORTB_BASE +#define USB0ID_PIN GPIO_PIN_0 -#define USB0PFLT_PERIPH (SYSCTL_PERIPH_GPIOC) -#define USB0PFLT_PORT (GPIO_PORTC_BASE) -#define USB0PFLT_PIN (GPIO_PIN_6) +#define USB0PFLT_PERIPH SYSCTL_PERIPH_GPIOC +#define USB0PFLT_PORT GPIO_PORTC_BASE +#define USB0PFLT_PIN GPIO_PIN_6 -#define USB0VBUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define USB0VBUS_PORT (GPIO_PORTB_BASE) -#define USB0VBUS_PIN (GPIO_PIN_1) +#define USB0VBUS_PERIPH SYSCTL_PERIPH_GPIOB +#define USB0VBUS_PORT GPIO_PORTB_BASE +#define USB0VBUS_PIN GPIO_PIN_1 #endif // PART_LM3S5652 +//***************************************************************************** +// +// LM3S5656 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S5656 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_CAN0RX 0x00001005 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_CAN0TX 0x00001405 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#endif // PART_LM3S5656 + //***************************************************************************** // // LM3S5662 Port/Pin Mapping Definitions @@ -13958,149 +21625,149 @@ //***************************************************************************** #ifdef PART_LM3S5662 -#define ADC0_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC0_PORT (GPIO_PORTE_BASE) -#define ADC0_PIN (GPIO_PIN_3) +#define ADC0_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC0_PORT GPIO_PORTE_BASE +#define ADC0_PIN GPIO_PIN_3 -#define ADC1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC1_PORT (GPIO_PORTE_BASE) -#define ADC1_PIN (GPIO_PIN_2) +#define ADC1_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC1_PORT GPIO_PORTE_BASE +#define ADC1_PIN GPIO_PIN_2 -#define ADC2_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC2_PORT (GPIO_PORTE_BASE) -#define ADC2_PIN (GPIO_PIN_1) +#define ADC2_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC2_PORT GPIO_PORTE_BASE +#define ADC2_PIN GPIO_PIN_1 -#define ADC3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC3_PORT (GPIO_PORTE_BASE) -#define ADC3_PIN (GPIO_PIN_0) +#define ADC3_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC3_PORT GPIO_PORTE_BASE +#define ADC3_PIN GPIO_PIN_0 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CAN0RX_PORT (GPIO_PORTB_BASE) -#define CAN0RX_PIN (GPIO_PIN_4) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOB +#define CAN0RX_PORT GPIO_PORTB_BASE +#define CAN0RX_PIN GPIO_PIN_4 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CAN0TX_PORT (GPIO_PORTB_BASE) -#define CAN0TX_PIN (GPIO_PIN_5) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOB +#define CAN0TX_PORT GPIO_PORTB_BASE +#define CAN0TX_PIN GPIO_PIN_5 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_2) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_2 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP1_PORT (GPIO_PORTB_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP1_PORT GPIO_PORTB_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP2_PORT (GPIO_PORTC_BASE) -#define CCP2_PIN (GPIO_PIN_4) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP2_PORT GPIO_PORTC_BASE +#define CCP2_PIN GPIO_PIN_4 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP3_PORT (GPIO_PORTE_BASE) -#define CCP3_PIN (GPIO_PIN_4) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP3_PORT GPIO_PORTE_BASE +#define CCP3_PIN GPIO_PIN_4 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define FAULT0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define FAULT0_PORT (GPIO_PORTB_BASE) -#define FAULT0_PIN (GPIO_PIN_3) +#define FAULT0_PERIPH SYSCTL_PERIPH_GPIOB +#define FAULT0_PORT GPIO_PORTB_BASE +#define FAULT0_PIN GPIO_PIN_3 -#define NMI_PERIPH (SYSCTL_PERIPH_GPIOB) -#define NMI_PORT (GPIO_PORTB_BASE) -#define NMI_PIN (GPIO_PIN_7) +#define NMI_PERIPH SYSCTL_PERIPH_GPIOB +#define NMI_PORT GPIO_PORTB_BASE +#define NMI_PIN GPIO_PIN_7 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM2_PORT (GPIO_PORTD_BASE) -#define PWM2_PIN (GPIO_PIN_2) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM2_PORT GPIO_PORTD_BASE +#define PWM2_PIN GPIO_PIN_2 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM3_PORT (GPIO_PORTD_BASE) -#define PWM3_PIN (GPIO_PIN_3) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM3_PORT GPIO_PORTD_BASE +#define PWM3_PIN GPIO_PIN_3 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOA) -#define PWM4_PORT (GPIO_PORTA_BASE) -#define PWM4_PIN (GPIO_PIN_6) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOA +#define PWM4_PORT GPIO_PORTA_BASE +#define PWM4_PIN GPIO_PIN_6 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOA) -#define PWM5_PORT (GPIO_PORTA_BASE) -#define PWM5_PIN (GPIO_PIN_7) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOA +#define PWM5_PORT GPIO_PORTA_BASE +#define PWM5_PIN GPIO_PIN_7 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define USB0EPEN_PERIPH (SYSCTL_PERIPH_GPIOC) -#define USB0EPEN_PORT (GPIO_PORTC_BASE) -#define USB0EPEN_PIN (GPIO_PIN_5) +#define USB0EPEN_PERIPH SYSCTL_PERIPH_GPIOC +#define USB0EPEN_PORT GPIO_PORTC_BASE +#define USB0EPEN_PIN GPIO_PIN_5 -#define USB0ID_PERIPH (SYSCTL_PERIPH_GPIOB) -#define USB0ID_PORT (GPIO_PORTB_BASE) -#define USB0ID_PIN (GPIO_PIN_0) +#define USB0ID_PERIPH SYSCTL_PERIPH_GPIOB +#define USB0ID_PORT GPIO_PORTB_BASE +#define USB0ID_PIN GPIO_PIN_0 -#define USB0PFLT_PERIPH (SYSCTL_PERIPH_GPIOC) -#define USB0PFLT_PORT (GPIO_PORTC_BASE) -#define USB0PFLT_PIN (GPIO_PIN_6) +#define USB0PFLT_PERIPH SYSCTL_PERIPH_GPIOC +#define USB0PFLT_PORT GPIO_PORTC_BASE +#define USB0PFLT_PIN GPIO_PIN_6 -#define USB0VBUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define USB0VBUS_PORT (GPIO_PORTB_BASE) -#define USB0VBUS_PIN (GPIO_PIN_1) +#define USB0VBUS_PERIPH SYSCTL_PERIPH_GPIOB +#define USB0VBUS_PORT GPIO_PORTB_BASE +#define USB0VBUS_PIN GPIO_PIN_1 #endif // PART_LM3S5662 @@ -14111,145 +21778,145 @@ //***************************************************************************** #ifdef PART_LM3S5732 -#define ADC0_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC0_PORT (GPIO_PORTE_BASE) -#define ADC0_PIN (GPIO_PIN_3) +#define ADC0_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC0_PORT GPIO_PORTE_BASE +#define ADC0_PIN GPIO_PIN_3 -#define ADC1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC1_PORT (GPIO_PORTE_BASE) -#define ADC1_PIN (GPIO_PIN_2) +#define ADC1_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC1_PORT GPIO_PORTE_BASE +#define ADC1_PIN GPIO_PIN_2 -#define ADC2_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC2_PORT (GPIO_PORTE_BASE) -#define ADC2_PIN (GPIO_PIN_1) +#define ADC2_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC2_PORT GPIO_PORTE_BASE +#define ADC2_PIN GPIO_PIN_1 -#define ADC3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC3_PORT (GPIO_PORTE_BASE) -#define ADC3_PIN (GPIO_PIN_0) +#define ADC3_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC3_PORT GPIO_PORTE_BASE +#define ADC3_PIN GPIO_PIN_0 -#define ADC4_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC4_PORT (GPIO_PORTD_BASE) -#define ADC4_PIN (GPIO_PIN_3) +#define ADC4_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC4_PORT GPIO_PORTD_BASE +#define ADC4_PIN GPIO_PIN_3 -#define ADC5_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC5_PORT (GPIO_PORTD_BASE) -#define ADC5_PIN (GPIO_PIN_2) +#define ADC5_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC5_PORT GPIO_PORTD_BASE +#define ADC5_PIN GPIO_PIN_2 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_5) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_5 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP1_PORT (GPIO_PORTB_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP1_PORT GPIO_PORTB_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP2_PORT (GPIO_PORTC_BASE) -#define CCP2_PIN (GPIO_PIN_4) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP2_PORT GPIO_PORTC_BASE +#define CCP2_PIN GPIO_PIN_4 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP3_PORT (GPIO_PORTE_BASE) -#define CCP3_PIN (GPIO_PIN_4) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP3_PORT GPIO_PORTE_BASE +#define CCP3_PIN GPIO_PIN_4 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define I2C1SCL_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SCL_PORT (GPIO_PORTA_BASE) -#define I2C1SCL_PIN (GPIO_PIN_6) +#define I2C1SCL_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SCL_PORT GPIO_PORTA_BASE +#define I2C1SCL_PIN GPIO_PIN_6 -#define I2C1SDA_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SDA_PORT (GPIO_PORTA_BASE) -#define I2C1SDA_PIN (GPIO_PIN_7) +#define I2C1SDA_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SDA_PORT GPIO_PORTA_BASE +#define I2C1SDA_PIN GPIO_PIN_7 -#define NMI_PERIPH (SYSCTL_PERIPH_GPIOB) -#define NMI_PORT (GPIO_PORTB_BASE) -#define NMI_PIN (GPIO_PIN_7) +#define NMI_PERIPH SYSCTL_PERIPH_GPIOB +#define NMI_PORT GPIO_PORTB_BASE +#define NMI_PIN GPIO_PIN_7 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOB) -#define U1RX_PORT (GPIO_PORTB_BASE) -#define U1RX_PIN (GPIO_PIN_0) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOB +#define U1RX_PORT GPIO_PORTB_BASE +#define U1RX_PIN GPIO_PIN_0 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOB) -#define U1TX_PORT (GPIO_PORTB_BASE) -#define U1TX_PIN (GPIO_PIN_1) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOB +#define U1TX_PORT GPIO_PORTB_BASE +#define U1TX_PIN GPIO_PIN_1 -#define USB0EPEN_PERIPH (SYSCTL_PERIPH_GPIOC) -#define USB0EPEN_PORT (GPIO_PORTC_BASE) -#define USB0EPEN_PIN (GPIO_PIN_5) +#define USB0EPEN_PERIPH SYSCTL_PERIPH_GPIOC +#define USB0EPEN_PORT GPIO_PORTC_BASE +#define USB0EPEN_PIN GPIO_PIN_5 -#define USB0PFLT_PERIPH (SYSCTL_PERIPH_GPIOC) -#define USB0PFLT_PORT (GPIO_PORTC_BASE) -#define USB0PFLT_PIN (GPIO_PIN_6) +#define USB0PFLT_PERIPH SYSCTL_PERIPH_GPIOC +#define USB0PFLT_PORT GPIO_PORTC_BASE +#define USB0PFLT_PIN GPIO_PIN_6 #endif // PART_LM3S5732 @@ -14260,153 +21927,153 @@ //***************************************************************************** #ifdef PART_LM3S5737 -#define ADC0_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC0_PORT (GPIO_PORTE_BASE) -#define ADC0_PIN (GPIO_PIN_7) +#define ADC0_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC0_PORT GPIO_PORTE_BASE +#define ADC0_PIN GPIO_PIN_7 -#define ADC1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC1_PORT (GPIO_PORTE_BASE) -#define ADC1_PIN (GPIO_PIN_6) +#define ADC1_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC1_PORT GPIO_PORTE_BASE +#define ADC1_PIN GPIO_PIN_6 -#define ADC2_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC2_PORT (GPIO_PORTE_BASE) -#define ADC2_PIN (GPIO_PIN_5) +#define ADC2_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC2_PORT GPIO_PORTE_BASE +#define ADC2_PIN GPIO_PIN_5 -#define ADC3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC3_PORT (GPIO_PORTE_BASE) -#define ADC3_PIN (GPIO_PIN_4) +#define ADC3_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC3_PORT GPIO_PORTE_BASE +#define ADC3_PIN GPIO_PIN_4 -#define ADC4_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC4_PORT (GPIO_PORTD_BASE) -#define ADC4_PIN (GPIO_PIN_7) +#define ADC4_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC4_PORT GPIO_PORTD_BASE +#define ADC4_PIN GPIO_PIN_7 -#define ADC5_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC5_PORT (GPIO_PORTD_BASE) -#define ADC5_PIN (GPIO_PIN_6) +#define ADC5_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC5_PORT GPIO_PORTD_BASE +#define ADC5_PIN GPIO_PIN_6 -#define ADC6_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC6_PORT (GPIO_PORTD_BASE) -#define ADC6_PIN (GPIO_PIN_5) +#define ADC6_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC6_PORT GPIO_PORTD_BASE +#define ADC6_PIN GPIO_PIN_5 -#define ADC7_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC7_PORT (GPIO_PORTD_BASE) -#define ADC7_PIN (GPIO_PIN_4) +#define ADC7_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC7_PORT GPIO_PORTD_BASE +#define ADC7_PIN GPIO_PIN_4 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP1_PORT (GPIO_PORTB_BASE) -#define CCP1_PIN (GPIO_PIN_1) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP1_PORT GPIO_PORTB_BASE +#define CCP1_PIN GPIO_PIN_1 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_5) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_5 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define I2C1SCL_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SCL_PORT (GPIO_PORTA_BASE) -#define I2C1SCL_PIN (GPIO_PIN_6) +#define I2C1SCL_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SCL_PORT GPIO_PORTA_BASE +#define I2C1SCL_PIN GPIO_PIN_6 -#define I2C1SDA_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SDA_PORT (GPIO_PORTA_BASE) -#define I2C1SDA_PIN (GPIO_PIN_7) +#define I2C1SDA_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SDA_PORT GPIO_PORTA_BASE +#define I2C1SDA_PIN GPIO_PIN_7 -#define NMI_PERIPH (SYSCTL_PERIPH_GPIOB) -#define NMI_PORT (GPIO_PORTB_BASE) -#define NMI_PIN (GPIO_PIN_7) +#define NMI_PERIPH SYSCTL_PERIPH_GPIOB +#define NMI_PORT GPIO_PORTB_BASE +#define NMI_PIN GPIO_PIN_7 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define USB0EPEN_PERIPH (SYSCTL_PERIPH_GPIOC) -#define USB0EPEN_PORT (GPIO_PORTC_BASE) -#define USB0EPEN_PIN (GPIO_PIN_5) +#define USB0EPEN_PERIPH SYSCTL_PERIPH_GPIOC +#define USB0EPEN_PORT GPIO_PORTC_BASE +#define USB0EPEN_PIN GPIO_PIN_5 -#define USB0PFLT_PERIPH (SYSCTL_PERIPH_GPIOC) -#define USB0PFLT_PORT (GPIO_PORTC_BASE) -#define USB0PFLT_PIN (GPIO_PIN_6) +#define USB0PFLT_PERIPH SYSCTL_PERIPH_GPIOC +#define USB0PFLT_PORT GPIO_PORTC_BASE +#define USB0PFLT_PIN GPIO_PIN_6 #endif // PART_LM3S5737 @@ -14417,213 +22084,213 @@ //***************************************************************************** #ifdef PART_LM3S5739 -#define ADC0_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC0_PORT (GPIO_PORTE_BASE) -#define ADC0_PIN (GPIO_PIN_7) +#define ADC0_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC0_PORT GPIO_PORTE_BASE +#define ADC0_PIN GPIO_PIN_7 -#define ADC1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC1_PORT (GPIO_PORTE_BASE) -#define ADC1_PIN (GPIO_PIN_6) +#define ADC1_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC1_PORT GPIO_PORTE_BASE +#define ADC1_PIN GPIO_PIN_6 -#define ADC2_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC2_PORT (GPIO_PORTE_BASE) -#define ADC2_PIN (GPIO_PIN_5) +#define ADC2_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC2_PORT GPIO_PORTE_BASE +#define ADC2_PIN GPIO_PIN_5 -#define ADC3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC3_PORT (GPIO_PORTE_BASE) -#define ADC3_PIN (GPIO_PIN_4) +#define ADC3_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC3_PORT GPIO_PORTE_BASE +#define ADC3_PIN GPIO_PIN_4 -#define ADC4_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC4_PORT (GPIO_PORTD_BASE) -#define ADC4_PIN (GPIO_PIN_7) +#define ADC4_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC4_PORT GPIO_PORTD_BASE +#define ADC4_PIN GPIO_PIN_7 -#define ADC5_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC5_PORT (GPIO_PORTD_BASE) -#define ADC5_PIN (GPIO_PIN_6) +#define ADC5_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC5_PORT GPIO_PORTD_BASE +#define ADC5_PIN GPIO_PIN_6 -#define ADC6_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC6_PORT (GPIO_PORTD_BASE) -#define ADC6_PIN (GPIO_PIN_5) +#define ADC6_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC6_PORT GPIO_PORTD_BASE +#define ADC6_PIN GPIO_PIN_5 -#define ADC7_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC7_PORT (GPIO_PORTD_BASE) -#define ADC7_PIN (GPIO_PIN_4) +#define ADC7_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC7_PORT GPIO_PORTD_BASE +#define ADC7_PIN GPIO_PIN_4 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C0O_PORT (GPIO_PORTF_BASE) -#define C0O_PIN (GPIO_PIN_4) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOF +#define C0O_PORT GPIO_PORTF_BASE +#define C0O_PIN GPIO_PIN_4 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C1O_PORT (GPIO_PORTF_BASE) -#define C1O_PIN (GPIO_PIN_5) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOF +#define C1O_PORT GPIO_PORTF_BASE +#define C1O_PIN GPIO_PIN_5 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CAN0RX_PORT (GPIO_PORTA_BASE) -#define CAN0RX_PIN (GPIO_PIN_6) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define CAN0RX_PORT GPIO_PORTA_BASE +#define CAN0RX_PIN GPIO_PIN_6 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CAN0TX_PORT (GPIO_PORTA_BASE) -#define CAN0TX_PIN (GPIO_PIN_7) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define CAN0TX_PORT GPIO_PORTA_BASE +#define CAN0TX_PIN GPIO_PIN_7 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP0_PORT (GPIO_PORTC_BASE) -#define CCP0_PIN (GPIO_PIN_6) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP0_PORT GPIO_PORTC_BASE +#define CCP0_PIN GPIO_PIN_6 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define CCP1_PORT (GPIO_PORTF_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOF +#define CCP1_PORT GPIO_PORTF_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP2_PORT (GPIO_PORTC_BASE) -#define CCP2_PIN (GPIO_PIN_4) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP2_PORT GPIO_PORTC_BASE +#define CCP2_PIN GPIO_PIN_4 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOG) -#define CCP3_PORT (GPIO_PORTG_BASE) -#define CCP3_PIN (GPIO_PIN_4) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOG +#define CCP3_PORT GPIO_PORTG_BASE +#define CCP3_PIN GPIO_PIN_4 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP5_PORT (GPIO_PORTD_BASE) -#define CCP5_PIN (GPIO_PIN_2) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP5_PORT GPIO_PORTD_BASE +#define CCP5_PIN GPIO_PIN_2 -#define CCP6_PERIPH (SYSCTL_PERIPH_GPIOH) -#define CCP6_PORT (GPIO_PORTH_BASE) -#define CCP6_PIN (GPIO_PIN_0) +#define CCP6_PERIPH SYSCTL_PERIPH_GPIOH +#define CCP6_PORT GPIO_PORTH_BASE +#define CCP6_PIN GPIO_PIN_0 -#define CCP7_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP7_PORT (GPIO_PORTD_BASE) -#define CCP7_PIN (GPIO_PIN_3) +#define CCP7_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP7_PORT GPIO_PORTD_BASE +#define CCP7_PIN GPIO_PIN_3 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define I2C1SCL_PERIPH (SYSCTL_PERIPH_GPIOG) -#define I2C1SCL_PORT (GPIO_PORTG_BASE) -#define I2C1SCL_PIN (GPIO_PIN_0) +#define I2C1SCL_PERIPH SYSCTL_PERIPH_GPIOG +#define I2C1SCL_PORT GPIO_PORTG_BASE +#define I2C1SCL_PIN GPIO_PIN_0 -#define I2C1SDA_PERIPH (SYSCTL_PERIPH_GPIOG) -#define I2C1SDA_PORT (GPIO_PORTG_BASE) -#define I2C1SDA_PIN (GPIO_PIN_1) +#define I2C1SDA_PERIPH SYSCTL_PERIPH_GPIOG +#define I2C1SDA_PORT GPIO_PORTG_BASE +#define I2C1SDA_PIN GPIO_PIN_1 -#define NMI_PERIPH (SYSCTL_PERIPH_GPIOB) -#define NMI_PORT (GPIO_PORTB_BASE) -#define NMI_PIN (GPIO_PIN_7) +#define NMI_PERIPH SYSCTL_PERIPH_GPIOB +#define NMI_PORT GPIO_PORTB_BASE +#define NMI_PIN GPIO_PIN_7 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOB) -#define U1RX_PORT (GPIO_PORTB_BASE) -#define U1RX_PIN (GPIO_PIN_0) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOB +#define U1RX_PORT GPIO_PORTB_BASE +#define U1RX_PIN GPIO_PIN_0 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOB) -#define U1TX_PORT (GPIO_PORTB_BASE) -#define U1TX_PIN (GPIO_PIN_1) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOB +#define U1TX_PORT GPIO_PORTB_BASE +#define U1TX_PIN GPIO_PIN_1 -#define U2RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U2RX_PORT (GPIO_PORTD_BASE) -#define U2RX_PIN (GPIO_PIN_0) +#define U2RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U2RX_PORT GPIO_PORTD_BASE +#define U2RX_PIN GPIO_PIN_0 -#define U2TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U2TX_PORT (GPIO_PORTD_BASE) -#define U2TX_PIN (GPIO_PIN_1) +#define U2TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U2TX_PORT GPIO_PORTD_BASE +#define U2TX_PIN GPIO_PIN_1 -#define USB0EPEN_PERIPH (SYSCTL_PERIPH_GPIOH) -#define USB0EPEN_PORT (GPIO_PORTH_BASE) -#define USB0EPEN_PIN (GPIO_PIN_3) +#define USB0EPEN_PERIPH SYSCTL_PERIPH_GPIOH +#define USB0EPEN_PORT GPIO_PORTH_BASE +#define USB0EPEN_PIN GPIO_PIN_3 -#define USB0PFLT_PERIPH (SYSCTL_PERIPH_GPIOH) -#define USB0PFLT_PORT (GPIO_PORTH_BASE) -#define USB0PFLT_PIN (GPIO_PIN_4) +#define USB0PFLT_PERIPH SYSCTL_PERIPH_GPIOH +#define USB0PFLT_PORT GPIO_PORTH_BASE +#define USB0PFLT_PIN GPIO_PIN_4 #endif // PART_LM3S5739 @@ -14634,153 +22301,153 @@ //***************************************************************************** #ifdef PART_LM3S5747 -#define ADC0_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC0_PORT (GPIO_PORTE_BASE) -#define ADC0_PIN (GPIO_PIN_7) +#define ADC0_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC0_PORT GPIO_PORTE_BASE +#define ADC0_PIN GPIO_PIN_7 -#define ADC1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC1_PORT (GPIO_PORTE_BASE) -#define ADC1_PIN (GPIO_PIN_6) +#define ADC1_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC1_PORT GPIO_PORTE_BASE +#define ADC1_PIN GPIO_PIN_6 -#define ADC2_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC2_PORT (GPIO_PORTE_BASE) -#define ADC2_PIN (GPIO_PIN_5) +#define ADC2_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC2_PORT GPIO_PORTE_BASE +#define ADC2_PIN GPIO_PIN_5 -#define ADC3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC3_PORT (GPIO_PORTE_BASE) -#define ADC3_PIN (GPIO_PIN_4) +#define ADC3_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC3_PORT GPIO_PORTE_BASE +#define ADC3_PIN GPIO_PIN_4 -#define ADC4_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC4_PORT (GPIO_PORTD_BASE) -#define ADC4_PIN (GPIO_PIN_7) +#define ADC4_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC4_PORT GPIO_PORTD_BASE +#define ADC4_PIN GPIO_PIN_7 -#define ADC5_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC5_PORT (GPIO_PORTD_BASE) -#define ADC5_PIN (GPIO_PIN_6) +#define ADC5_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC5_PORT GPIO_PORTD_BASE +#define ADC5_PIN GPIO_PIN_6 -#define ADC6_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC6_PORT (GPIO_PORTD_BASE) -#define ADC6_PIN (GPIO_PIN_5) +#define ADC6_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC6_PORT GPIO_PORTD_BASE +#define ADC6_PIN GPIO_PIN_5 -#define ADC7_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC7_PORT (GPIO_PORTD_BASE) -#define ADC7_PIN (GPIO_PIN_4) +#define ADC7_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC7_PORT GPIO_PORTD_BASE +#define ADC7_PIN GPIO_PIN_4 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CAN0RX_PORT (GPIO_PORTB_BASE) -#define CAN0RX_PIN (GPIO_PIN_4) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOB +#define CAN0RX_PORT GPIO_PORTB_BASE +#define CAN0RX_PIN GPIO_PIN_4 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CAN0TX_PORT (GPIO_PORTB_BASE) -#define CAN0TX_PIN (GPIO_PIN_5) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOB +#define CAN0TX_PORT GPIO_PORTB_BASE +#define CAN0TX_PIN GPIO_PIN_5 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define FAULT0_PERIPH (SYSCTL_PERIPH_GPIOE) -#define FAULT0_PORT (GPIO_PORTE_BASE) -#define FAULT0_PIN (GPIO_PIN_1) +#define FAULT0_PERIPH SYSCTL_PERIPH_GPIOE +#define FAULT0_PORT GPIO_PORTE_BASE +#define FAULT0_PIN GPIO_PIN_1 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define NMI_PERIPH (SYSCTL_PERIPH_GPIOB) -#define NMI_PORT (GPIO_PORTB_BASE) -#define NMI_PIN (GPIO_PIN_7) +#define NMI_PERIPH SYSCTL_PERIPH_GPIOB +#define NMI_PORT GPIO_PORTB_BASE +#define NMI_PIN GPIO_PIN_7 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM2_PORT (GPIO_PORTD_BASE) -#define PWM2_PIN (GPIO_PIN_2) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM2_PORT GPIO_PORTD_BASE +#define PWM2_PIN GPIO_PIN_2 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM3_PORT (GPIO_PORTD_BASE) -#define PWM3_PIN (GPIO_PIN_3) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM3_PORT GPIO_PORTD_BASE +#define PWM3_PIN GPIO_PIN_3 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM4_PORT (GPIO_PORTF_BASE) -#define PWM4_PIN (GPIO_PIN_2) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM4_PORT GPIO_PORTF_BASE +#define PWM4_PIN GPIO_PIN_2 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM5_PORT (GPIO_PORTF_BASE) -#define PWM5_PIN (GPIO_PIN_3) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM5_PORT GPIO_PORTF_BASE +#define PWM5_PIN GPIO_PIN_3 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define USB0EPEN_PERIPH (SYSCTL_PERIPH_GPIOC) -#define USB0EPEN_PORT (GPIO_PORTC_BASE) -#define USB0EPEN_PIN (GPIO_PIN_5) +#define USB0EPEN_PERIPH SYSCTL_PERIPH_GPIOC +#define USB0EPEN_PORT GPIO_PORTC_BASE +#define USB0EPEN_PIN GPIO_PIN_5 -#define USB0PFLT_PERIPH (SYSCTL_PERIPH_GPIOC) -#define USB0PFLT_PORT (GPIO_PORTC_BASE) -#define USB0PFLT_PIN (GPIO_PIN_6) +#define USB0PFLT_PERIPH SYSCTL_PERIPH_GPIOC +#define USB0PFLT_PORT GPIO_PORTC_BASE +#define USB0PFLT_PIN GPIO_PIN_6 #endif // PART_LM3S5747 @@ -14791,261 +22458,261 @@ //***************************************************************************** #ifdef PART_LM3S5749 -#define ADC0_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC0_PORT (GPIO_PORTE_BASE) -#define ADC0_PIN (GPIO_PIN_7) +#define ADC0_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC0_PORT GPIO_PORTE_BASE +#define ADC0_PIN GPIO_PIN_7 -#define ADC1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC1_PORT (GPIO_PORTE_BASE) -#define ADC1_PIN (GPIO_PIN_6) +#define ADC1_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC1_PORT GPIO_PORTE_BASE +#define ADC1_PIN GPIO_PIN_6 -#define ADC2_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC2_PORT (GPIO_PORTE_BASE) -#define ADC2_PIN (GPIO_PIN_5) +#define ADC2_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC2_PORT GPIO_PORTE_BASE +#define ADC2_PIN GPIO_PIN_5 -#define ADC3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC3_PORT (GPIO_PORTE_BASE) -#define ADC3_PIN (GPIO_PIN_4) +#define ADC3_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC3_PORT GPIO_PORTE_BASE +#define ADC3_PIN GPIO_PIN_4 -#define ADC4_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC4_PORT (GPIO_PORTD_BASE) -#define ADC4_PIN (GPIO_PIN_7) +#define ADC4_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC4_PORT GPIO_PORTD_BASE +#define ADC4_PIN GPIO_PIN_7 -#define ADC5_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC5_PORT (GPIO_PORTD_BASE) -#define ADC5_PIN (GPIO_PIN_6) +#define ADC5_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC5_PORT GPIO_PORTD_BASE +#define ADC5_PIN GPIO_PIN_6 -#define ADC6_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC6_PORT (GPIO_PORTD_BASE) -#define ADC6_PIN (GPIO_PIN_5) +#define ADC6_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC6_PORT GPIO_PORTD_BASE +#define ADC6_PIN GPIO_PIN_5 -#define ADC7_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC7_PORT (GPIO_PORTD_BASE) -#define ADC7_PIN (GPIO_PIN_4) +#define ADC7_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC7_PORT GPIO_PORTD_BASE +#define ADC7_PIN GPIO_PIN_4 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C0O_PORT (GPIO_PORTF_BASE) -#define C0O_PIN (GPIO_PIN_4) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOF +#define C0O_PORT GPIO_PORTF_BASE +#define C0O_PIN GPIO_PIN_4 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOF) -#define C1O_PORT (GPIO_PORTF_BASE) -#define C1O_PIN (GPIO_PIN_5) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOF +#define C1O_PORT GPIO_PORTF_BASE +#define C1O_PIN GPIO_PIN_5 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CAN1RX_PERIPH (SYSCTL_PERIPH_GPIOF) -#define CAN1RX_PORT (GPIO_PORTF_BASE) -#define CAN1RX_PIN (GPIO_PIN_0) +#define CAN1RX_PERIPH SYSCTL_PERIPH_GPIOF +#define CAN1RX_PORT GPIO_PORTF_BASE +#define CAN1RX_PIN GPIO_PIN_0 -#define CAN1TX_PERIPH (SYSCTL_PERIPH_GPIOF) -#define CAN1TX_PORT (GPIO_PORTF_BASE) -#define CAN1TX_PIN (GPIO_PIN_1) +#define CAN1TX_PERIPH SYSCTL_PERIPH_GPIOF +#define CAN1TX_PORT GPIO_PORTF_BASE +#define CAN1TX_PIN GPIO_PIN_1 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP1_PORT (GPIO_PORTB_BASE) -#define CCP1_PIN (GPIO_PIN_1) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP1_PORT GPIO_PORTB_BASE +#define CCP1_PIN GPIO_PIN_1 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP2_PORT (GPIO_PORTC_BASE) -#define CCP2_PIN (GPIO_PIN_4) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP2_PORT GPIO_PORTC_BASE +#define CCP2_PIN GPIO_PIN_4 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define FAULT0_PERIPH (SYSCTL_PERIPH_GPIOG) -#define FAULT0_PORT (GPIO_PORTG_BASE) -#define FAULT0_PIN (GPIO_PIN_2) +#define FAULT0_PERIPH SYSCTL_PERIPH_GPIOG +#define FAULT0_PORT GPIO_PORTG_BASE +#define FAULT0_PIN GPIO_PIN_2 -#define FAULT1_PERIPH (SYSCTL_PERIPH_GPIOG) -#define FAULT1_PORT (GPIO_PORTG_BASE) -#define FAULT1_PIN (GPIO_PIN_4) +#define FAULT1_PERIPH SYSCTL_PERIPH_GPIOG +#define FAULT1_PORT GPIO_PORTG_BASE +#define FAULT1_PIN GPIO_PIN_4 -#define FAULT2_PERIPH (SYSCTL_PERIPH_GPIOG) -#define FAULT2_PORT (GPIO_PORTG_BASE) -#define FAULT2_PIN (GPIO_PIN_3) +#define FAULT2_PERIPH SYSCTL_PERIPH_GPIOG +#define FAULT2_PORT GPIO_PORTG_BASE +#define FAULT2_PIN GPIO_PIN_3 -#define FAULT3_PERIPH (SYSCTL_PERIPH_GPIOH) -#define FAULT3_PORT (GPIO_PORTH_BASE) -#define FAULT3_PIN (GPIO_PIN_2) +#define FAULT3_PERIPH SYSCTL_PERIPH_GPIOH +#define FAULT3_PORT GPIO_PORTH_BASE +#define FAULT3_PIN GPIO_PIN_2 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define I2C1SCL_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SCL_PORT (GPIO_PORTA_BASE) -#define I2C1SCL_PIN (GPIO_PIN_6) +#define I2C1SCL_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SCL_PORT GPIO_PORTA_BASE +#define I2C1SCL_PIN GPIO_PIN_6 -#define I2C1SDA_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SDA_PORT (GPIO_PORTA_BASE) -#define I2C1SDA_PIN (GPIO_PIN_7) +#define I2C1SDA_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SDA_PORT GPIO_PORTA_BASE +#define I2C1SDA_PIN GPIO_PIN_7 -#define IDX0_PERIPH (SYSCTL_PERIPH_GPIOG) -#define IDX0_PORT (GPIO_PORTG_BASE) -#define IDX0_PIN (GPIO_PIN_5) +#define IDX0_PERIPH SYSCTL_PERIPH_GPIOG +#define IDX0_PORT GPIO_PORTG_BASE +#define IDX0_PIN GPIO_PIN_5 -#define NMI_PERIPH (SYSCTL_PERIPH_GPIOB) -#define NMI_PORT (GPIO_PORTB_BASE) -#define NMI_PIN (GPIO_PIN_7) +#define NMI_PERIPH SYSCTL_PERIPH_GPIOB +#define NMI_PORT GPIO_PORTB_BASE +#define NMI_PIN GPIO_PIN_7 -#define PHA0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PHA0_PORT (GPIO_PORTF_BASE) -#define PHA0_PIN (GPIO_PIN_6) +#define PHA0_PERIPH SYSCTL_PERIPH_GPIOF +#define PHA0_PORT GPIO_PORTF_BASE +#define PHA0_PIN GPIO_PIN_6 -#define PHB0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PHB0_PORT (GPIO_PORTF_BASE) -#define PHB0_PIN (GPIO_PIN_7) +#define PHB0_PERIPH SYSCTL_PERIPH_GPIOF +#define PHB0_PORT GPIO_PORTF_BASE +#define PHB0_PIN GPIO_PIN_7 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOG) -#define PWM0_PORT (GPIO_PORTG_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOG +#define PWM0_PORT GPIO_PORTG_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOG) -#define PWM1_PORT (GPIO_PORTG_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOG +#define PWM1_PORT GPIO_PORTG_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PWM2_PORT (GPIO_PORTH_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOH +#define PWM2_PORT GPIO_PORTH_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOH) -#define PWM3_PORT (GPIO_PORTH_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOH +#define PWM3_PORT GPIO_PORTH_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM4_PORT (GPIO_PORTF_BASE) -#define PWM4_PIN (GPIO_PIN_2) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM4_PORT GPIO_PORTF_BASE +#define PWM4_PIN GPIO_PIN_2 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM5_PORT (GPIO_PORTF_BASE) -#define PWM5_PIN (GPIO_PIN_3) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM5_PORT GPIO_PORTF_BASE +#define PWM5_PIN GPIO_PIN_3 -#define PWM6_PERIPH (SYSCTL_PERIPH_GPIOG) -#define PWM6_PORT (GPIO_PORTG_BASE) -#define PWM6_PIN (GPIO_PIN_6) +#define PWM6_PERIPH SYSCTL_PERIPH_GPIOG +#define PWM6_PORT GPIO_PORTG_BASE +#define PWM6_PIN GPIO_PIN_6 -#define PWM7_PERIPH (SYSCTL_PERIPH_GPIOG) -#define PWM7_PORT (GPIO_PORTG_BASE) -#define PWM7_PIN (GPIO_PIN_7) +#define PWM7_PERIPH SYSCTL_PERIPH_GPIOG +#define PWM7_PORT GPIO_PORTG_BASE +#define PWM7_PIN GPIO_PIN_7 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 -#define USB0EPEN_PERIPH (SYSCTL_PERIPH_GPIOH) -#define USB0EPEN_PORT (GPIO_PORTH_BASE) -#define USB0EPEN_PIN (GPIO_PIN_3) +#define USB0EPEN_PERIPH SYSCTL_PERIPH_GPIOH +#define USB0EPEN_PORT GPIO_PORTH_BASE +#define USB0EPEN_PIN GPIO_PIN_3 -#define USB0PFLT_PERIPH (SYSCTL_PERIPH_GPIOH) -#define USB0PFLT_PORT (GPIO_PORTH_BASE) -#define USB0PFLT_PIN (GPIO_PIN_4) +#define USB0PFLT_PERIPH SYSCTL_PERIPH_GPIOH +#define USB0PFLT_PORT GPIO_PORTH_BASE +#define USB0PFLT_PIN GPIO_PIN_4 #endif // PART_LM3S5749 @@ -15056,149 +22723,149 @@ //***************************************************************************** #ifdef PART_LM3S5752 -#define ADC0_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC0_PORT (GPIO_PORTE_BASE) -#define ADC0_PIN (GPIO_PIN_3) +#define ADC0_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC0_PORT GPIO_PORTE_BASE +#define ADC0_PIN GPIO_PIN_3 -#define ADC1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC1_PORT (GPIO_PORTE_BASE) -#define ADC1_PIN (GPIO_PIN_2) +#define ADC1_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC1_PORT GPIO_PORTE_BASE +#define ADC1_PIN GPIO_PIN_2 -#define ADC2_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC2_PORT (GPIO_PORTE_BASE) -#define ADC2_PIN (GPIO_PIN_1) +#define ADC2_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC2_PORT GPIO_PORTE_BASE +#define ADC2_PIN GPIO_PIN_1 -#define ADC3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC3_PORT (GPIO_PORTE_BASE) -#define ADC3_PIN (GPIO_PIN_0) +#define ADC3_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC3_PORT GPIO_PORTE_BASE +#define ADC3_PIN GPIO_PIN_0 -#define ADC4_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC4_PORT (GPIO_PORTD_BASE) -#define ADC4_PIN (GPIO_PIN_3) +#define ADC4_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC4_PORT GPIO_PORTD_BASE +#define ADC4_PIN GPIO_PIN_3 -#define ADC5_PERIPH (SYSCTL_PERIPH_GPIOD) -#define ADC5_PORT (GPIO_PORTD_BASE) -#define ADC5_PIN (GPIO_PIN_2) +#define ADC5_PERIPH SYSCTL_PERIPH_GPIOD +#define ADC5_PORT GPIO_PORTD_BASE +#define ADC5_PIN GPIO_PIN_2 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_5) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_5 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP2_PORT (GPIO_PORTE_BASE) -#define CCP2_PIN (GPIO_PIN_4) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP2_PORT GPIO_PORTE_BASE +#define CCP2_PIN GPIO_PIN_4 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP3_PORT (GPIO_PORTA_BASE) -#define CCP3_PIN (GPIO_PIN_7) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP3_PORT GPIO_PORTA_BASE +#define CCP3_PIN GPIO_PIN_7 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define NMI_PERIPH (SYSCTL_PERIPH_GPIOB) -#define NMI_PORT (GPIO_PORTB_BASE) -#define NMI_PIN (GPIO_PIN_7) +#define NMI_PERIPH SYSCTL_PERIPH_GPIOB +#define NMI_PORT GPIO_PORTB_BASE +#define NMI_PIN GPIO_PIN_7 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define USB0EPEN_PERIPH (SYSCTL_PERIPH_GPIOC) -#define USB0EPEN_PORT (GPIO_PORTC_BASE) -#define USB0EPEN_PIN (GPIO_PIN_5) +#define USB0EPEN_PERIPH SYSCTL_PERIPH_GPIOC +#define USB0EPEN_PORT GPIO_PORTC_BASE +#define USB0EPEN_PIN GPIO_PIN_5 -#define USB0ID_PERIPH (SYSCTL_PERIPH_GPIOB) -#define USB0ID_PORT (GPIO_PORTB_BASE) -#define USB0ID_PIN (GPIO_PIN_0) +#define USB0ID_PERIPH SYSCTL_PERIPH_GPIOB +#define USB0ID_PORT GPIO_PORTB_BASE +#define USB0ID_PIN GPIO_PIN_0 -#define USB0PFLT_PERIPH (SYSCTL_PERIPH_GPIOC) -#define USB0PFLT_PORT (GPIO_PORTC_BASE) -#define USB0PFLT_PIN (GPIO_PIN_6) +#define USB0PFLT_PERIPH SYSCTL_PERIPH_GPIOC +#define USB0PFLT_PORT GPIO_PORTC_BASE +#define USB0PFLT_PIN GPIO_PIN_6 -#define USB0VBUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define USB0VBUS_PORT (GPIO_PORTB_BASE) -#define USB0VBUS_PIN (GPIO_PIN_1) +#define USB0VBUS_PERIPH SYSCTL_PERIPH_GPIOB +#define USB0VBUS_PORT GPIO_PORTB_BASE +#define USB0VBUS_PIN GPIO_PIN_1 #endif // PART_LM3S5752 @@ -15209,152 +22876,7341 @@ //***************************************************************************** #ifdef PART_LM3S5762 -#define ADC0_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC0_PORT (GPIO_PORTE_BASE) -#define ADC0_PIN (GPIO_PIN_3) +#define ADC0_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC0_PORT GPIO_PORTE_BASE +#define ADC0_PIN GPIO_PIN_3 -#define ADC1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC1_PORT (GPIO_PORTE_BASE) -#define ADC1_PIN (GPIO_PIN_2) +#define ADC1_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC1_PORT GPIO_PORTE_BASE +#define ADC1_PIN GPIO_PIN_2 -#define ADC2_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC2_PORT (GPIO_PORTE_BASE) -#define ADC2_PIN (GPIO_PIN_1) +#define ADC2_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC2_PORT GPIO_PORTE_BASE +#define ADC2_PIN GPIO_PIN_1 -#define ADC3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define ADC3_PORT (GPIO_PORTE_BASE) -#define ADC3_PIN (GPIO_PIN_0) +#define ADC3_PERIPH SYSCTL_PERIPH_GPIOE +#define ADC3_PORT GPIO_PORTE_BASE +#define ADC3_PIN GPIO_PIN_0 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CAN0RX_PORT (GPIO_PORTB_BASE) -#define CAN0RX_PIN (GPIO_PIN_4) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOB +#define CAN0RX_PORT GPIO_PORTB_BASE +#define CAN0RX_PIN GPIO_PIN_4 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CAN0TX_PORT (GPIO_PORTB_BASE) -#define CAN0TX_PIN (GPIO_PIN_5) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOB +#define CAN0TX_PORT GPIO_PORTB_BASE +#define CAN0TX_PIN GPIO_PIN_5 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_2) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_2 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP1_PORT (GPIO_PORTB_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP1_PORT GPIO_PORTB_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP2_PORT (GPIO_PORTC_BASE) -#define CCP2_PIN (GPIO_PIN_4) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP2_PORT GPIO_PORTC_BASE +#define CCP2_PIN GPIO_PIN_4 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP3_PORT (GPIO_PORTE_BASE) -#define CCP3_PIN (GPIO_PIN_4) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP3_PORT GPIO_PORTE_BASE +#define CCP3_PIN GPIO_PIN_4 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define FAULT0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define FAULT0_PORT (GPIO_PORTB_BASE) -#define FAULT0_PIN (GPIO_PIN_3) +#define FAULT0_PERIPH SYSCTL_PERIPH_GPIOB +#define FAULT0_PORT GPIO_PORTB_BASE +#define FAULT0_PIN GPIO_PIN_3 -#define NMI_PERIPH (SYSCTL_PERIPH_GPIOB) -#define NMI_PORT (GPIO_PORTB_BASE) -#define NMI_PIN (GPIO_PIN_7) +#define NMI_PERIPH SYSCTL_PERIPH_GPIOB +#define NMI_PORT GPIO_PORTB_BASE +#define NMI_PIN GPIO_PIN_7 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM2_PORT (GPIO_PORTD_BASE) -#define PWM2_PIN (GPIO_PIN_2) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM2_PORT GPIO_PORTD_BASE +#define PWM2_PIN GPIO_PIN_2 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM3_PORT (GPIO_PORTD_BASE) -#define PWM3_PIN (GPIO_PIN_3) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM3_PORT GPIO_PORTD_BASE +#define PWM3_PIN GPIO_PIN_3 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOA) -#define PWM4_PORT (GPIO_PORTA_BASE) -#define PWM4_PIN (GPIO_PIN_6) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOA +#define PWM4_PORT GPIO_PORTA_BASE +#define PWM4_PIN GPIO_PIN_6 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOA) -#define PWM5_PORT (GPIO_PORTA_BASE) -#define PWM5_PIN (GPIO_PIN_7) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOA +#define PWM5_PORT GPIO_PORTA_BASE +#define PWM5_PIN GPIO_PIN_7 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define USB0EPEN_PERIPH (SYSCTL_PERIPH_GPIOC) -#define USB0EPEN_PORT (GPIO_PORTC_BASE) -#define USB0EPEN_PIN (GPIO_PIN_5) +#define USB0EPEN_PERIPH SYSCTL_PERIPH_GPIOC +#define USB0EPEN_PORT GPIO_PORTC_BASE +#define USB0EPEN_PIN GPIO_PIN_5 -#define USB0ID_PERIPH (SYSCTL_PERIPH_GPIOB) -#define USB0ID_PORT (GPIO_PORTB_BASE) -#define USB0ID_PIN (GPIO_PIN_0) +#define USB0ID_PERIPH SYSCTL_PERIPH_GPIOB +#define USB0ID_PORT GPIO_PORTB_BASE +#define USB0ID_PIN GPIO_PIN_0 -#define USB0PFLT_PERIPH (SYSCTL_PERIPH_GPIOC) -#define USB0PFLT_PORT (GPIO_PORTC_BASE) -#define USB0PFLT_PIN (GPIO_PIN_6) +#define USB0PFLT_PERIPH SYSCTL_PERIPH_GPIOC +#define USB0PFLT_PORT GPIO_PORTC_BASE +#define USB0PFLT_PIN GPIO_PIN_6 -#define USB0VBUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define USB0VBUS_PORT (GPIO_PORTB_BASE) -#define USB0VBUS_PIN (GPIO_PIN_1) +#define USB0VBUS_PERIPH SYSCTL_PERIPH_GPIOB +#define USB0VBUS_PORT GPIO_PORTB_BASE +#define USB0VBUS_PIN GPIO_PIN_1 #endif // PART_LM3S5762 +//***************************************************************************** +// +// LM3S5791 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S5791 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_PWM6 0x00001004 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_PWM7 0x00001404 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_PWM6 0x00021004 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_C2O 0x00021803 +#define GPIO_PC6_PWM7 0x00021804 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_C2O 0x00041C02 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_C2O 0x00051802 +#define GPIO_PF6_PHA0 0x00051804 +#define GPIO_PF6_I2S0TXMCLK 0x00051809 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_PHB0 0x00051C04 +#define GPIO_PF7_EPI0S12 0x00051C08 +#define GPIO_PF7_FAULT1 0x00051C09 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_USB0EPEN 0x00060007 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG2_PWM0 0x00060801 +#define GPIO_PG2_FAULT0 0x00060804 +#define GPIO_PG2_IDX1 0x00060808 +#define GPIO_PG2_I2S0RXSD 0x00060809 + +#define GPIO_PG3_PWM1 0x00060C01 +#define GPIO_PG3_FAULT2 0x00060C04 +#define GPIO_PG3_FAULT0 0x00060C08 +#define GPIO_PG3_I2S0RXMCLK 0x00060C09 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_FAULT1 0x00061004 +#define GPIO_PG4_EPI0S15 0x00061008 +#define GPIO_PG4_PWM6 0x00061009 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_IDX0 0x00061404 +#define GPIO_PG5_FAULT1 0x00061405 +#define GPIO_PG5_PWM7 0x00061408 +#define GPIO_PG5_I2S0RXSCK 0x00061409 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_PHA1 0x00061801 +#define GPIO_PG6_PWM6 0x00061804 +#define GPIO_PG6_FAULT1 0x00061808 +#define GPIO_PG6_I2S0RXWS 0x00061809 +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_PWM7 0x00061C04 +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_EPI0S6 0x00070008 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_EPI0S7 0x00070408 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_USB0EPEN 0x00070C04 +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#define GPIO_PJ3_EPI0S19 0x00080C08 +#define GPIO_PJ3_U1CTS 0x00080C09 +#define GPIO_PJ3_CCP6 0x00080C0A + +#define GPIO_PJ4_EPI0S28 0x00081008 +#define GPIO_PJ4_U1DCD 0x00081009 +#define GPIO_PJ4_CCP4 0x0008100A + +#define GPIO_PJ5_EPI0S29 0x00081408 +#define GPIO_PJ5_U1DSR 0x00081409 +#define GPIO_PJ5_CCP2 0x0008140A + +#define GPIO_PJ6_EPI0S30 0x00081808 +#define GPIO_PJ6_U1RTS 0x00081809 +#define GPIO_PJ6_CCP1 0x0008180A + +#define GPIO_PJ7_U1DTR 0x00081C09 +#define GPIO_PJ7_CCP0 0x00081C0A + +#endif // PART_LM3S5791 + +//***************************************************************************** +// +// LM3S5951 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S5951 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_PHA0 0x00051804 +#define GPIO_PF6_I2S0TXMCLK 0x00051809 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_PHB0 0x00051C04 +#define GPIO_PF7_FAULT1 0x00051C09 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_USB0EPEN 0x00060007 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 + +#define GPIO_PG2_PWM0 0x00060801 +#define GPIO_PG2_FAULT0 0x00060804 +#define GPIO_PG2_IDX1 0x00060808 +#define GPIO_PG2_I2S0RXSD 0x00060809 + +#define GPIO_PG3_PWM1 0x00060C01 +#define GPIO_PG3_FAULT2 0x00060C04 +#define GPIO_PG3_FAULT0 0x00060C08 +#define GPIO_PG3_I2S0RXMCLK 0x00060C09 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_FAULT1 0x00061004 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_IDX0 0x00061404 +#define GPIO_PG5_FAULT1 0x00061405 +#define GPIO_PG5_I2S0RXSCK 0x00061409 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_PHA1 0x00061801 +#define GPIO_PG6_FAULT1 0x00061808 +#define GPIO_PG6_I2S0RXWS 0x00061809 +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_CCP5 0x00061C08 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_USB0EPEN 0x00070C04 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#endif // PART_LM3S5951 + +//***************************************************************************** +// +// LM3S5956 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S5956 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_CAN0RX 0x00001005 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_CAN0TX 0x00001405 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#endif // PART_LM3S5956 + +//***************************************************************************** +// +// LM3S5B91 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S5B91 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_PWM6 0x00001004 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_PWM7 0x00001404 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_PWM6 0x00021004 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_C2O 0x00021803 +#define GPIO_PC6_PWM7 0x00021804 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_C2O 0x00041C02 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_C2O 0x00051802 +#define GPIO_PF6_PHA0 0x00051804 +#define GPIO_PF6_I2S0TXMCLK 0x00051809 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_PHB0 0x00051C04 +#define GPIO_PF7_EPI0S12 0x00051C08 +#define GPIO_PF7_FAULT1 0x00051C09 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_USB0EPEN 0x00060007 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG2_PWM0 0x00060801 +#define GPIO_PG2_FAULT0 0x00060804 +#define GPIO_PG2_IDX1 0x00060808 +#define GPIO_PG2_I2S0RXSD 0x00060809 + +#define GPIO_PG3_PWM1 0x00060C01 +#define GPIO_PG3_FAULT2 0x00060C04 +#define GPIO_PG3_FAULT0 0x00060C08 +#define GPIO_PG3_I2S0RXMCLK 0x00060C09 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_FAULT1 0x00061004 +#define GPIO_PG4_EPI0S15 0x00061008 +#define GPIO_PG4_PWM6 0x00061009 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_IDX0 0x00061404 +#define GPIO_PG5_FAULT1 0x00061405 +#define GPIO_PG5_PWM7 0x00061408 +#define GPIO_PG5_I2S0RXSCK 0x00061409 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_PHA1 0x00061801 +#define GPIO_PG6_PWM6 0x00061804 +#define GPIO_PG6_FAULT1 0x00061808 +#define GPIO_PG6_I2S0RXWS 0x00061809 +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_PWM7 0x00061C04 +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_EPI0S6 0x00070008 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_EPI0S7 0x00070408 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_USB0EPEN 0x00070C04 +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#define GPIO_PJ3_EPI0S19 0x00080C08 +#define GPIO_PJ3_U1CTS 0x00080C09 +#define GPIO_PJ3_CCP6 0x00080C0A + +#define GPIO_PJ4_EPI0S28 0x00081008 +#define GPIO_PJ4_U1DCD 0x00081009 +#define GPIO_PJ4_CCP4 0x0008100A + +#define GPIO_PJ5_EPI0S29 0x00081408 +#define GPIO_PJ5_U1DSR 0x00081409 +#define GPIO_PJ5_CCP2 0x0008140A + +#define GPIO_PJ6_EPI0S30 0x00081808 +#define GPIO_PJ6_U1RTS 0x00081809 +#define GPIO_PJ6_CCP1 0x0008180A + +#define GPIO_PJ7_U1DTR 0x00081C09 +#define GPIO_PJ7_CCP0 0x00081C0A + +#endif // PART_LM3S5B91 + +//***************************************************************************** +// +// LM3S5C31 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S5C31 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_CAN0RX 0x00001005 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_CAN0TX 0x00001405 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#define GPIO_PE5_CCP5 0x00041401 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_PHA0 0x00051804 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_PHB0 0x00051C04 +#define GPIO_PF7_EPI0S12 0x00051C08 +#define GPIO_PF7_FAULT1 0x00051C09 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG2_PWM0 0x00060801 +#define GPIO_PG2_FAULT0 0x00060804 +#define GPIO_PG2_IDX1 0x00060808 + +#define GPIO_PG3_PWM1 0x00060C01 +#define GPIO_PG3_FAULT2 0x00060C04 +#define GPIO_PG3_FAULT0 0x00060C08 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_FAULT1 0x00061004 +#define GPIO_PG4_EPI0S15 0x00061008 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_IDX0 0x00061404 +#define GPIO_PG5_FAULT1 0x00061405 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_PHA1 0x00061801 +#define GPIO_PG6_FAULT1 0x00061808 +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_EPI0S6 0x00070008 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_EPI0S7 0x00070408 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#endif // PART_LM3S5C31 + +//***************************************************************************** +// +// LM3S5C36 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S5C36 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_PWM6 0x00001004 +#define GPIO_PA4_CAN0RX 0x00001005 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_PWM7 0x00001404 +#define GPIO_PA5_CAN0TX 0x00001405 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_PWM6 0x00021004 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_PWM7 0x00021804 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#endif // PART_LM3S5C36 + +//***************************************************************************** +// +// LM3S5C51 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S5C51 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_PHA0 0x00051804 +#define GPIO_PF6_I2S0TXMCLK 0x00051809 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_PHB0 0x00051C04 +#define GPIO_PF7_FAULT1 0x00051C09 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_USB0EPEN 0x00060007 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 + +#define GPIO_PG2_PWM0 0x00060801 +#define GPIO_PG2_FAULT0 0x00060804 +#define GPIO_PG2_IDX1 0x00060808 +#define GPIO_PG2_I2S0RXSD 0x00060809 + +#define GPIO_PG3_PWM1 0x00060C01 +#define GPIO_PG3_FAULT2 0x00060C04 +#define GPIO_PG3_FAULT0 0x00060C08 +#define GPIO_PG3_I2S0RXMCLK 0x00060C09 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_FAULT1 0x00061004 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_IDX0 0x00061404 +#define GPIO_PG5_FAULT1 0x00061405 +#define GPIO_PG5_I2S0RXSCK 0x00061409 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_PHA1 0x00061801 +#define GPIO_PG6_FAULT1 0x00061808 +#define GPIO_PG6_I2S0RXWS 0x00061809 +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_CCP5 0x00061C08 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_USB0EPEN 0x00070C04 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#endif // PART_LM3S5C51 + +//***************************************************************************** +// +// LM3S5C56 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S5C56 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_CAN0RX 0x00001005 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_CAN0TX 0x00001405 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#endif // PART_LM3S5C56 + +//***************************************************************************** +// +// LM3S5D51 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S5D51 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_PHA0 0x00051804 +#define GPIO_PF6_I2S0TXMCLK 0x00051809 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_PHB0 0x00051C04 +#define GPIO_PF7_FAULT1 0x00051C09 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_USB0EPEN 0x00060007 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 + +#define GPIO_PG2_PWM0 0x00060801 +#define GPIO_PG2_FAULT0 0x00060804 +#define GPIO_PG2_IDX1 0x00060808 +#define GPIO_PG2_I2S0RXSD 0x00060809 + +#define GPIO_PG3_PWM1 0x00060C01 +#define GPIO_PG3_FAULT2 0x00060C04 +#define GPIO_PG3_FAULT0 0x00060C08 +#define GPIO_PG3_I2S0RXMCLK 0x00060C09 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_FAULT1 0x00061004 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_IDX0 0x00061404 +#define GPIO_PG5_FAULT1 0x00061405 +#define GPIO_PG5_I2S0RXSCK 0x00061409 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_PHA1 0x00061801 +#define GPIO_PG6_FAULT1 0x00061808 +#define GPIO_PG6_I2S0RXWS 0x00061809 +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_CCP5 0x00061C08 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_USB0EPEN 0x00070C04 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#endif // PART_LM3S5D51 + +//***************************************************************************** +// +// LM3S5D56 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S5D56 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_CAN0RX 0x00001005 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_CAN0TX 0x00001405 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#endif // PART_LM3S5D56 + +//***************************************************************************** +// +// LM3S5D91 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S5D91 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_PWM6 0x00001004 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_PWM7 0x00001404 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_PWM6 0x00021004 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_C2O 0x00021803 +#define GPIO_PC6_PWM7 0x00021804 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_C2O 0x00041C02 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_C2O 0x00051802 +#define GPIO_PF6_PHA0 0x00051804 +#define GPIO_PF6_I2S0TXMCLK 0x00051809 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_PHB0 0x00051C04 +#define GPIO_PF7_EPI0S12 0x00051C08 +#define GPIO_PF7_FAULT1 0x00051C09 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_USB0EPEN 0x00060007 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG2_PWM0 0x00060801 +#define GPIO_PG2_FAULT0 0x00060804 +#define GPIO_PG2_IDX1 0x00060808 +#define GPIO_PG2_I2S0RXSD 0x00060809 + +#define GPIO_PG3_PWM1 0x00060C01 +#define GPIO_PG3_FAULT2 0x00060C04 +#define GPIO_PG3_FAULT0 0x00060C08 +#define GPIO_PG3_I2S0RXMCLK 0x00060C09 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_FAULT1 0x00061004 +#define GPIO_PG4_EPI0S15 0x00061008 +#define GPIO_PG4_PWM6 0x00061009 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_IDX0 0x00061404 +#define GPIO_PG5_FAULT1 0x00061405 +#define GPIO_PG5_PWM7 0x00061408 +#define GPIO_PG5_I2S0RXSCK 0x00061409 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_PHA1 0x00061801 +#define GPIO_PG6_PWM6 0x00061804 +#define GPIO_PG6_FAULT1 0x00061808 +#define GPIO_PG6_I2S0RXWS 0x00061809 +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_PWM7 0x00061C04 +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_EPI0S6 0x00070008 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_EPI0S7 0x00070408 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_USB0EPEN 0x00070C04 +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#define GPIO_PJ3_EPI0S19 0x00080C08 +#define GPIO_PJ3_U1CTS 0x00080C09 +#define GPIO_PJ3_CCP6 0x00080C0A + +#define GPIO_PJ4_EPI0S28 0x00081008 +#define GPIO_PJ4_U1DCD 0x00081009 +#define GPIO_PJ4_CCP4 0x0008100A + +#define GPIO_PJ5_EPI0S29 0x00081408 +#define GPIO_PJ5_U1DSR 0x00081409 +#define GPIO_PJ5_CCP2 0x0008140A + +#define GPIO_PJ6_EPI0S30 0x00081808 +#define GPIO_PJ6_U1RTS 0x00081809 +#define GPIO_PJ6_CCP1 0x0008180A + +#define GPIO_PJ7_U1DTR 0x00081C09 +#define GPIO_PJ7_CCP0 0x00081C0A + +#endif // PART_LM3S5D91 + +//***************************************************************************** +// +// LM3S5G31 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S5G31 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_CAN0RX 0x00001005 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_CAN0TX 0x00001405 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#define GPIO_PE5_CCP5 0x00041401 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_PHA0 0x00051804 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_PHB0 0x00051C04 +#define GPIO_PF7_EPI0S12 0x00051C08 +#define GPIO_PF7_FAULT1 0x00051C09 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG2_PWM0 0x00060801 +#define GPIO_PG2_FAULT0 0x00060804 +#define GPIO_PG2_IDX1 0x00060808 + +#define GPIO_PG3_PWM1 0x00060C01 +#define GPIO_PG3_FAULT2 0x00060C04 +#define GPIO_PG3_FAULT0 0x00060C08 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_FAULT1 0x00061004 +#define GPIO_PG4_EPI0S15 0x00061008 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_IDX0 0x00061404 +#define GPIO_PG5_FAULT1 0x00061405 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_PHA1 0x00061801 +#define GPIO_PG6_FAULT1 0x00061808 +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_EPI0S6 0x00070008 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_EPI0S7 0x00070408 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#endif // PART_LM3S5G31 + +//***************************************************************************** +// +// LM3S5G36 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S5G36 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_PWM6 0x00001004 +#define GPIO_PA4_CAN0RX 0x00001005 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_PWM7 0x00001404 +#define GPIO_PA5_CAN0TX 0x00001405 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_PWM6 0x00021004 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_PWM7 0x00021804 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#endif // PART_LM3S5G36 + +//***************************************************************************** +// +// LM3S5G51 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S5G51 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_PHA0 0x00051804 +#define GPIO_PF6_I2S0TXMCLK 0x00051809 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_PHB0 0x00051C04 +#define GPIO_PF7_FAULT1 0x00051C09 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_USB0EPEN 0x00060007 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 + +#define GPIO_PG2_PWM0 0x00060801 +#define GPIO_PG2_FAULT0 0x00060804 +#define GPIO_PG2_IDX1 0x00060808 +#define GPIO_PG2_I2S0RXSD 0x00060809 + +#define GPIO_PG3_PWM1 0x00060C01 +#define GPIO_PG3_FAULT2 0x00060C04 +#define GPIO_PG3_FAULT0 0x00060C08 +#define GPIO_PG3_I2S0RXMCLK 0x00060C09 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_FAULT1 0x00061004 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_IDX0 0x00061404 +#define GPIO_PG5_FAULT1 0x00061405 +#define GPIO_PG5_I2S0RXSCK 0x00061409 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_PHA1 0x00061801 +#define GPIO_PG6_FAULT1 0x00061808 +#define GPIO_PG6_I2S0RXWS 0x00061809 +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_CCP5 0x00061C08 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_USB0EPEN 0x00070C04 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#endif // PART_LM3S5G51 + +//***************************************************************************** +// +// LM3S5G56 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S5G56 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_CAN0RX 0x00001005 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_CAN0TX 0x00001405 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#endif // PART_LM3S5G56 + +//***************************************************************************** +// +// LM3S5K31 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S5K31 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_CAN0RX 0x00001005 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_CAN0TX 0x00001405 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_U1RI 0x00031009 + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_U2RX 0x00031409 + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_U2TX 0x00031809 + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_U1DTR 0x00031C09 + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#define GPIO_PE5_CCP5 0x00041401 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_PHA0 0x00051804 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_PHB0 0x00051C04 +#define GPIO_PF7_FAULT1 0x00051C09 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 + +#define GPIO_PG2_PWM0 0x00060801 +#define GPIO_PG2_FAULT0 0x00060804 +#define GPIO_PG2_IDX1 0x00060808 + +#define GPIO_PG3_PWM1 0x00060C01 +#define GPIO_PG3_FAULT2 0x00060C04 +#define GPIO_PG3_FAULT0 0x00060C08 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_FAULT1 0x00061004 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_IDX0 0x00061404 +#define GPIO_PG5_FAULT1 0x00061405 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_PHA1 0x00061801 +#define GPIO_PG6_FAULT1 0x00061808 +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_CCP5 0x00061C08 + +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 + +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#endif // PART_LM3S5K31 + +//***************************************************************************** +// +// LM3S5K36 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S5K36 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_CAN0RX 0x00001005 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_CAN0TX 0x00001405 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHB0 0x00040C04 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#endif // PART_LM3S5K36 + +//***************************************************************************** +// +// LM3S5P31 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S5P31 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_CAN0RX 0x00001005 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_CAN0TX 0x00001405 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_U1RI 0x00031009 + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_U2RX 0x00031409 + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_U2TX 0x00031809 + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_U1DTR 0x00031C09 + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#define GPIO_PE5_CCP5 0x00041401 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_PHA0 0x00051804 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_PHB0 0x00051C04 +#define GPIO_PF7_FAULT1 0x00051C09 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 + +#define GPIO_PG2_PWM0 0x00060801 +#define GPIO_PG2_FAULT0 0x00060804 +#define GPIO_PG2_IDX1 0x00060808 + +#define GPIO_PG3_PWM1 0x00060C01 +#define GPIO_PG3_FAULT2 0x00060C04 +#define GPIO_PG3_FAULT0 0x00060C08 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_FAULT1 0x00061004 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_IDX0 0x00061404 +#define GPIO_PG5_FAULT1 0x00061405 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_PHA1 0x00061801 +#define GPIO_PG6_FAULT1 0x00061808 +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_CCP5 0x00061C08 + +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 + +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#endif // PART_LM3S5P31 + +//***************************************************************************** +// +// LM3S5P36 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S5P36 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_CAN0RX 0x00001005 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_CAN0TX 0x00001405 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHB0 0x00040C04 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#endif // PART_LM3S5P36 + +//***************************************************************************** +// +// LM3S5P3B Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S5P3B + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_PHA0 0x00051804 +#define GPIO_PF6_I2S0TXMCLK 0x00051809 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_PHB0 0x00051C04 +#define GPIO_PF7_FAULT1 0x00051C09 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 + +#define GPIO_PG2_PWM0 0x00060801 +#define GPIO_PG2_FAULT0 0x00060804 +#define GPIO_PG2_IDX1 0x00060808 +#define GPIO_PG2_I2S0RXSD 0x00060809 + +#define GPIO_PG3_PWM1 0x00060C01 +#define GPIO_PG3_FAULT2 0x00060C04 +#define GPIO_PG3_FAULT0 0x00060C08 +#define GPIO_PG3_I2S0RXMCLK 0x00060C09 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_FAULT1 0x00061004 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_IDX0 0x00061404 +#define GPIO_PG5_FAULT1 0x00061405 +#define GPIO_PG5_I2S0RXSCK 0x00061409 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_PHA1 0x00061801 +#define GPIO_PG6_FAULT1 0x00061808 +#define GPIO_PG6_I2S0RXWS 0x00061809 +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_CCP5 0x00061C08 + +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 + +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#endif // PART_LM3S5P3B + +//***************************************************************************** +// +// LM3S5P51 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S5P51 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_PHA0 0x00051804 +#define GPIO_PF6_I2S0TXMCLK 0x00051809 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_PHB0 0x00051C04 +#define GPIO_PF7_FAULT1 0x00051C09 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_USB0EPEN 0x00060007 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 + +#define GPIO_PG2_PWM0 0x00060801 +#define GPIO_PG2_FAULT0 0x00060804 +#define GPIO_PG2_IDX1 0x00060808 +#define GPIO_PG2_I2S0RXSD 0x00060809 + +#define GPIO_PG3_PWM1 0x00060C01 +#define GPIO_PG3_FAULT2 0x00060C04 +#define GPIO_PG3_FAULT0 0x00060C08 +#define GPIO_PG3_I2S0RXMCLK 0x00060C09 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_FAULT1 0x00061004 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_IDX0 0x00061404 +#define GPIO_PG5_FAULT1 0x00061405 +#define GPIO_PG5_I2S0RXSCK 0x00061409 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_PHA1 0x00061801 +#define GPIO_PG6_FAULT1 0x00061808 +#define GPIO_PG6_I2S0RXWS 0x00061809 +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_CCP5 0x00061C08 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_USB0EPEN 0x00070C04 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#endif // PART_LM3S5P51 + +//***************************************************************************** +// +// LM3S5P56 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S5P56 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_CAN0RX 0x00001005 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_CAN0TX 0x00001405 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#endif // PART_LM3S5P56 + +//***************************************************************************** +// +// LM3S5R31 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S5R31 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_PWM6 0x00001004 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_PWM7 0x00001404 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_PWM6 0x00021004 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_PWM7 0x00021804 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_PHA0 0x00051804 +#define GPIO_PF6_I2S0TXMCLK 0x00051809 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_PHB0 0x00051C04 +#define GPIO_PF7_EPI0S12 0x00051C08 +#define GPIO_PF7_FAULT1 0x00051C09 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG2_PWM0 0x00060801 +#define GPIO_PG2_FAULT0 0x00060804 +#define GPIO_PG2_IDX1 0x00060808 +#define GPIO_PG2_I2S0RXSD 0x00060809 + +#define GPIO_PG3_PWM1 0x00060C01 +#define GPIO_PG3_FAULT2 0x00060C04 +#define GPIO_PG3_FAULT0 0x00060C08 +#define GPIO_PG3_I2S0RXMCLK 0x00060C09 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_FAULT1 0x00061004 +#define GPIO_PG4_EPI0S15 0x00061008 +#define GPIO_PG4_PWM6 0x00061009 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_IDX0 0x00061404 +#define GPIO_PG5_FAULT1 0x00061405 +#define GPIO_PG5_PWM7 0x00061408 +#define GPIO_PG5_I2S0RXSCK 0x00061409 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_PHA1 0x00061801 +#define GPIO_PG6_PWM6 0x00061804 +#define GPIO_PG6_FAULT1 0x00061808 +#define GPIO_PG6_I2S0RXWS 0x00061809 +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_PWM7 0x00061C04 +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_EPI0S6 0x00070008 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_EPI0S7 0x00070408 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#endif // PART_LM3S5R31 + +//***************************************************************************** +// +// LM3S5R36 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S5R36 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_PWM6 0x00001004 +#define GPIO_PA4_CAN0RX 0x00001005 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_PWM7 0x00001404 +#define GPIO_PA5_CAN0TX 0x00001405 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_PWM6 0x00021004 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_PWM7 0x00021804 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#endif // PART_LM3S5R36 + +//***************************************************************************** +// +// LM3S5T36 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S5T36 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_CAN0RX 0x00001005 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_CAN0TX 0x00001405 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHB0 0x00040C04 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#endif // PART_LM3S5T36 + +//***************************************************************************** +// +// LM3S5U91 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S5U91 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_PWM6 0x00001004 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_PWM7 0x00001404 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_PWM6 0x00021004 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_C2O 0x00021803 +#define GPIO_PC6_PWM7 0x00021804 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_C2O 0x00041C02 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_C2O 0x00051802 +#define GPIO_PF6_PHA0 0x00051804 +#define GPIO_PF6_I2S0TXMCLK 0x00051809 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_PHB0 0x00051C04 +#define GPIO_PF7_EPI0S12 0x00051C08 +#define GPIO_PF7_FAULT1 0x00051C09 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_USB0EPEN 0x00060007 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG2_PWM0 0x00060801 +#define GPIO_PG2_FAULT0 0x00060804 +#define GPIO_PG2_IDX1 0x00060808 +#define GPIO_PG2_I2S0RXSD 0x00060809 + +#define GPIO_PG3_PWM1 0x00060C01 +#define GPIO_PG3_FAULT2 0x00060C04 +#define GPIO_PG3_FAULT0 0x00060C08 +#define GPIO_PG3_I2S0RXMCLK 0x00060C09 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_FAULT1 0x00061004 +#define GPIO_PG4_EPI0S15 0x00061008 +#define GPIO_PG4_PWM6 0x00061009 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_IDX0 0x00061404 +#define GPIO_PG5_FAULT1 0x00061405 +#define GPIO_PG5_PWM7 0x00061408 +#define GPIO_PG5_I2S0RXSCK 0x00061409 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_PHA1 0x00061801 +#define GPIO_PG6_PWM6 0x00061804 +#define GPIO_PG6_FAULT1 0x00061808 +#define GPIO_PG6_I2S0RXWS 0x00061809 +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_PWM7 0x00061C04 +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_EPI0S6 0x00070008 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_EPI0S7 0x00070408 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_USB0EPEN 0x00070C04 +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#define GPIO_PJ3_EPI0S19 0x00080C08 +#define GPIO_PJ3_U1CTS 0x00080C09 +#define GPIO_PJ3_CCP6 0x00080C0A + +#define GPIO_PJ4_EPI0S28 0x00081008 +#define GPIO_PJ4_U1DCD 0x00081009 +#define GPIO_PJ4_CCP4 0x0008100A + +#define GPIO_PJ5_EPI0S29 0x00081408 +#define GPIO_PJ5_U1DSR 0x00081409 +#define GPIO_PJ5_CCP2 0x0008140A + +#define GPIO_PJ6_EPI0S30 0x00081808 +#define GPIO_PJ6_U1RTS 0x00081809 +#define GPIO_PJ6_CCP1 0x0008180A + +#define GPIO_PJ7_U1DTR 0x00081C09 +#define GPIO_PJ7_CCP0 0x00081C0A + +#endif // PART_LM3S5U91 + +//***************************************************************************** +// +// LM3S5Y36 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S5Y36 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_CAN0RX 0x00001005 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_CAN0TX 0x00001405 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHB0 0x00040C04 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#endif // PART_LM3S5Y36 + //***************************************************************************** // // LM3S6100 Port/Pin Mapping Definitions @@ -15362,97 +30218,97 @@ //***************************************************************************** #ifdef PART_LM3S6100 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0O_PORT (GPIO_PORTB_BASE) -#define C0O_PIN (GPIO_PIN_5) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOB +#define C0O_PORT GPIO_PORTB_BASE +#define C0O_PIN GPIO_PIN_5 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define LED0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED0_PORT (GPIO_PORTF_BASE) -#define LED0_PIN (GPIO_PIN_3) +#define LED0_PERIPH SYSCTL_PERIPH_GPIOF +#define LED0_PORT GPIO_PORTF_BASE +#define LED0_PIN GPIO_PIN_3 -#define LED1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED1_PORT (GPIO_PORTF_BASE) -#define LED1_PIN (GPIO_PIN_2) +#define LED1_PERIPH SYSCTL_PERIPH_GPIOF +#define LED1_PORT GPIO_PORTF_BASE +#define LED1_PIN GPIO_PIN_2 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 #endif // PART_LM3S6100 @@ -15463,125 +30319,125 @@ //***************************************************************************** #ifdef PART_LM3S6110 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOD) -#define C0O_PORT (GPIO_PORTD_BASE) -#define C0O_PIN (GPIO_PIN_7) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOD +#define C0O_PORT GPIO_PORTD_BASE +#define C0O_PIN GPIO_PIN_7 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define C2_MINUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_MINUS_PORT (GPIO_PORTC_BASE) -#define C2_MINUS_PIN (GPIO_PIN_7) +#define C2_MINUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_MINUS_PORT GPIO_PORTC_BASE +#define C2_MINUS_PIN GPIO_PIN_7 -#define C2_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_PLUS_PORT (GPIO_PORTC_BASE) -#define C2_PLUS_PIN (GPIO_PIN_6) +#define C2_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_PLUS_PORT GPIO_PORTC_BASE +#define C2_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP3_PORT (GPIO_PORTD_BASE) -#define CCP3_PIN (GPIO_PIN_4) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP3_PORT GPIO_PORTD_BASE +#define CCP3_PIN GPIO_PIN_4 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOB) -#define FAULT_PORT (GPIO_PORTB_BASE) -#define FAULT_PIN (GPIO_PIN_3) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOB +#define FAULT_PORT GPIO_PORTB_BASE +#define FAULT_PIN GPIO_PIN_3 -#define LED0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED0_PORT (GPIO_PORTF_BASE) -#define LED0_PIN (GPIO_PIN_3) +#define LED0_PERIPH SYSCTL_PERIPH_GPIOF +#define LED0_PORT GPIO_PORTF_BASE +#define LED0_PIN GPIO_PIN_3 -#define LED1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED1_PORT (GPIO_PORTF_BASE) -#define LED1_PIN (GPIO_PIN_2) +#define LED1_PERIPH SYSCTL_PERIPH_GPIOF +#define LED1_PORT GPIO_PORTF_BASE +#define LED1_PIN GPIO_PIN_2 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 #endif // PART_LM3S6110 @@ -15592,109 +30448,109 @@ //***************************************************************************** #ifdef PART_LM3S6420 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOD) -#define C0O_PORT (GPIO_PORTD_BASE) -#define C0O_PIN (GPIO_PIN_7) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOD +#define C0O_PORT GPIO_PORTD_BASE +#define C0O_PIN GPIO_PIN_7 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOE) -#define C1O_PORT (GPIO_PORTE_BASE) -#define C1O_PIN (GPIO_PIN_6) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOE +#define C1O_PORT GPIO_PORTE_BASE +#define C1O_PIN GPIO_PIN_6 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define LED0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED0_PORT (GPIO_PORTF_BASE) -#define LED0_PIN (GPIO_PIN_3) +#define LED0_PERIPH SYSCTL_PERIPH_GPIOF +#define LED0_PORT GPIO_PORTF_BASE +#define LED0_PIN GPIO_PIN_3 -#define LED1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED1_PORT (GPIO_PORTF_BASE) -#define LED1_PIN (GPIO_PIN_2) +#define LED1_PERIPH SYSCTL_PERIPH_GPIOF +#define LED1_PORT GPIO_PORTF_BASE +#define LED1_PIN GPIO_PIN_2 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 #endif // PART_LM3S6420 @@ -15705,109 +30561,109 @@ //***************************************************************************** #ifdef PART_LM3S6422 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOD) -#define C0O_PORT (GPIO_PORTD_BASE) -#define C0O_PIN (GPIO_PIN_7) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOD +#define C0O_PORT GPIO_PORTD_BASE +#define C0O_PIN GPIO_PIN_7 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1O_PORT (GPIO_PORTC_BASE) -#define C1O_PIN (GPIO_PIN_5) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOC +#define C1O_PORT GPIO_PORTC_BASE +#define C1O_PIN GPIO_PIN_5 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define LED0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED0_PORT (GPIO_PORTF_BASE) -#define LED0_PIN (GPIO_PIN_3) +#define LED0_PERIPH SYSCTL_PERIPH_GPIOF +#define LED0_PORT GPIO_PORTF_BASE +#define LED0_PIN GPIO_PIN_3 -#define LED1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED1_PORT (GPIO_PORTF_BASE) -#define LED1_PIN (GPIO_PIN_2) +#define LED1_PERIPH SYSCTL_PERIPH_GPIOF +#define LED1_PORT GPIO_PORTF_BASE +#define LED1_PIN GPIO_PIN_2 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 #endif // PART_LM3S6422 @@ -15818,133 +30674,133 @@ //***************************************************************************** #ifdef PART_LM3S6432 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOD) -#define C0O_PORT (GPIO_PORTD_BASE) -#define C0O_PIN (GPIO_PIN_7) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOD +#define C0O_PORT GPIO_PORTD_BASE +#define C0O_PIN GPIO_PIN_7 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define LED0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED0_PORT (GPIO_PORTF_BASE) -#define LED0_PIN (GPIO_PIN_3) +#define LED0_PERIPH SYSCTL_PERIPH_GPIOF +#define LED0_PORT GPIO_PORTF_BASE +#define LED0_PIN GPIO_PIN_3 -#define LED1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED1_PORT (GPIO_PORTF_BASE) -#define LED1_PIN (GPIO_PIN_2) +#define LED1_PERIPH SYSCTL_PERIPH_GPIOF +#define LED1_PORT GPIO_PORTF_BASE +#define LED1_PIN GPIO_PIN_2 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S6432 @@ -15955,157 +30811,157 @@ //***************************************************************************** #ifdef PART_LM3S6537 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOD) -#define C0O_PORT (GPIO_PORTD_BASE) -#define C0O_PIN (GPIO_PIN_7) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOD +#define C0O_PORT GPIO_PORTD_BASE +#define C0O_PIN GPIO_PIN_7 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP0_PORT (GPIO_PORTD_BASE) -#define CCP0_PIN (GPIO_PIN_4) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP0_PORT GPIO_PORTD_BASE +#define CCP0_PIN GPIO_PIN_4 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP2_PORT (GPIO_PORTD_BASE) -#define CCP2_PIN (GPIO_PIN_5) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP2_PORT GPIO_PORTD_BASE +#define CCP2_PIN GPIO_PIN_5 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP4_PORT (GPIO_PORTA_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP4_PORT GPIO_PORTA_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define LED0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED0_PORT (GPIO_PORTF_BASE) -#define LED0_PIN (GPIO_PIN_3) +#define LED0_PERIPH SYSCTL_PERIPH_GPIOF +#define LED0_PORT GPIO_PORTF_BASE +#define LED0_PIN GPIO_PIN_3 -#define LED1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED1_PORT (GPIO_PORTF_BASE) -#define LED1_PIN (GPIO_PIN_2) +#define LED1_PERIPH SYSCTL_PERIPH_GPIOF +#define LED1_PORT GPIO_PORTF_BASE +#define LED1_PIN GPIO_PIN_2 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM2_PORT (GPIO_PORTB_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM2_PORT GPIO_PORTB_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM3_PORT (GPIO_PORTB_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM3_PORT GPIO_PORTB_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM4_PORT (GPIO_PORTE_BASE) -#define PWM4_PIN (GPIO_PIN_0) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM4_PORT GPIO_PORTE_BASE +#define PWM4_PIN GPIO_PIN_0 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM5_PORT (GPIO_PORTE_BASE) -#define PWM5_PIN (GPIO_PIN_1) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM5_PORT GPIO_PORTE_BASE +#define PWM5_PIN GPIO_PIN_1 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S6537 @@ -16116,185 +30972,185 @@ //***************************************************************************** #ifdef PART_LM3S6610 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C0O_PORT (GPIO_PORTC_BASE) -#define C0O_PIN (GPIO_PIN_5) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOC +#define C0O_PORT GPIO_PORTC_BASE +#define C0O_PIN GPIO_PIN_5 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOE) -#define C1O_PORT (GPIO_PORTE_BASE) -#define C1O_PIN (GPIO_PIN_6) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOE +#define C1O_PORT GPIO_PORTE_BASE +#define C1O_PIN GPIO_PIN_6 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define C2O_PERIPH (SYSCTL_PERIPH_GPIOE) -#define C2O_PORT (GPIO_PORTE_BASE) -#define C2O_PIN (GPIO_PIN_7) +#define C2O_PERIPH SYSCTL_PERIPH_GPIOE +#define C2O_PORT GPIO_PORTE_BASE +#define C2O_PIN GPIO_PIN_7 -#define C2_MINUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_MINUS_PORT (GPIO_PORTC_BASE) -#define C2_MINUS_PIN (GPIO_PIN_7) +#define C2_MINUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_MINUS_PORT GPIO_PORTC_BASE +#define C2_MINUS_PIN GPIO_PIN_7 -#define C2_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_PLUS_PORT (GPIO_PORTC_BASE) -#define C2_PLUS_PIN (GPIO_PIN_6) +#define C2_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_PLUS_PORT GPIO_PORTC_BASE +#define C2_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP0_PORT (GPIO_PORTD_BASE) -#define CCP0_PIN (GPIO_PIN_4) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP0_PORT GPIO_PORTD_BASE +#define CCP0_PIN GPIO_PIN_4 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP2_PORT (GPIO_PORTD_BASE) -#define CCP2_PIN (GPIO_PIN_5) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP2_PORT GPIO_PORTD_BASE +#define CCP2_PIN GPIO_PIN_5 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP3_PORT (GPIO_PORTE_BASE) -#define CCP3_PIN (GPIO_PIN_0) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP3_PORT GPIO_PORTE_BASE +#define CCP3_PIN GPIO_PIN_0 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP4_PORT (GPIO_PORTA_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP4_PORT GPIO_PORTA_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define IDX0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define IDX0_PORT (GPIO_PORTD_BASE) -#define IDX0_PIN (GPIO_PIN_7) +#define IDX0_PERIPH SYSCTL_PERIPH_GPIOD +#define IDX0_PORT GPIO_PORTD_BASE +#define IDX0_PIN GPIO_PIN_7 -#define LED0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED0_PORT (GPIO_PORTF_BASE) -#define LED0_PIN (GPIO_PIN_3) +#define LED0_PERIPH SYSCTL_PERIPH_GPIOF +#define LED0_PORT GPIO_PORTF_BASE +#define LED0_PIN GPIO_PIN_3 -#define LED1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED1_PORT (GPIO_PORTF_BASE) -#define LED1_PIN (GPIO_PIN_2) +#define LED1_PERIPH SYSCTL_PERIPH_GPIOF +#define LED1_PORT GPIO_PORTF_BASE +#define LED1_PIN GPIO_PIN_2 -#define PHA0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PHA0_PORT (GPIO_PORTD_BASE) -#define PHA0_PIN (GPIO_PIN_1) +#define PHA0_PERIPH SYSCTL_PERIPH_GPIOD +#define PHA0_PORT GPIO_PORTD_BASE +#define PHA0_PIN GPIO_PIN_1 -#define PHB0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PHB0_PORT (GPIO_PORTF_BASE) -#define PHB0_PIN (GPIO_PIN_0) +#define PHB0_PERIPH SYSCTL_PERIPH_GPIOF +#define PHB0_PORT GPIO_PORTF_BASE +#define PHB0_PIN GPIO_PIN_0 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM1_PORT (GPIO_PORTF_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM1_PORT GPIO_PORTF_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM2_PORT (GPIO_PORTB_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM2_PORT GPIO_PORTB_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM3_PORT (GPIO_PORTB_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM3_PORT GPIO_PORTB_BASE +#define PWM3_PIN GPIO_PIN_1 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 -#define U2RX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2RX_PORT (GPIO_PORTG_BASE) -#define U2RX_PIN (GPIO_PIN_0) +#define U2RX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2RX_PORT GPIO_PORTG_BASE +#define U2RX_PIN GPIO_PIN_0 -#define U2TX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2TX_PORT (GPIO_PORTG_BASE) -#define U2TX_PIN (GPIO_PIN_1) +#define U2TX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2TX_PORT GPIO_PORTG_BASE +#define U2TX_PIN GPIO_PIN_1 #endif // PART_LM3S6610 @@ -16305,165 +31161,165 @@ //***************************************************************************** #ifdef PART_LM3S6611 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C0O_PORT (GPIO_PORTC_BASE) -#define C0O_PIN (GPIO_PIN_5) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOC +#define C0O_PORT GPIO_PORTC_BASE +#define C0O_PIN GPIO_PIN_5 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOE) -#define C1O_PORT (GPIO_PORTE_BASE) -#define C1O_PIN (GPIO_PIN_6) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOE +#define C1O_PORT GPIO_PORTE_BASE +#define C1O_PIN GPIO_PIN_6 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP1_PORT (GPIO_PORTD_BASE) -#define CCP1_PIN (GPIO_PIN_7) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP1_PORT GPIO_PORTD_BASE +#define CCP1_PIN GPIO_PIN_7 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define I2C1SCL_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SCL_PORT (GPIO_PORTA_BASE) -#define I2C1SCL_PIN (GPIO_PIN_6) +#define I2C1SCL_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SCL_PORT GPIO_PORTA_BASE +#define I2C1SCL_PIN GPIO_PIN_6 -#define I2C1SDA_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SDA_PORT (GPIO_PORTA_BASE) -#define I2C1SDA_PIN (GPIO_PIN_7) +#define I2C1SDA_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SDA_PORT GPIO_PORTA_BASE +#define I2C1SDA_PIN GPIO_PIN_7 -#define LED0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED0_PORT (GPIO_PORTF_BASE) -#define LED0_PIN (GPIO_PIN_3) +#define LED0_PERIPH SYSCTL_PERIPH_GPIOF +#define LED0_PORT GPIO_PORTF_BASE +#define LED0_PIN GPIO_PIN_3 -#define LED1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED1_PORT (GPIO_PORTF_BASE) -#define LED1_PIN (GPIO_PIN_2) +#define LED1_PERIPH SYSCTL_PERIPH_GPIOF +#define LED1_PORT GPIO_PORTF_BASE +#define LED1_PIN GPIO_PIN_2 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 -#define U2RX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2RX_PORT (GPIO_PORTG_BASE) -#define U2RX_PIN (GPIO_PIN_0) +#define U2RX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2RX_PORT GPIO_PORTG_BASE +#define U2RX_PIN GPIO_PIN_0 -#define U2TX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2TX_PORT (GPIO_PORTG_BASE) -#define U2TX_PIN (GPIO_PIN_1) +#define U2TX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2TX_PORT GPIO_PORTG_BASE +#define U2TX_PIN GPIO_PIN_1 #endif // PART_LM3S6611 @@ -16474,153 +31330,153 @@ //***************************************************************************** #ifdef PART_LM3S6618 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C0O_PORT (GPIO_PORTC_BASE) -#define C0O_PIN (GPIO_PIN_5) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOC +#define C0O_PORT GPIO_PORTC_BASE +#define C0O_PIN GPIO_PIN_5 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define I2C1SCL_PERIPH (SYSCTL_PERIPH_GPIOG) -#define I2C1SCL_PORT (GPIO_PORTG_BASE) -#define I2C1SCL_PIN (GPIO_PIN_0) +#define I2C1SCL_PERIPH SYSCTL_PERIPH_GPIOG +#define I2C1SCL_PORT GPIO_PORTG_BASE +#define I2C1SCL_PIN GPIO_PIN_0 -#define I2C1SDA_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SDA_PORT (GPIO_PORTA_BASE) -#define I2C1SDA_PIN (GPIO_PIN_7) +#define I2C1SDA_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SDA_PORT GPIO_PORTA_BASE +#define I2C1SDA_PIN GPIO_PIN_7 -#define LED0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED0_PORT (GPIO_PORTF_BASE) -#define LED0_PIN (GPIO_PIN_3) +#define LED0_PERIPH SYSCTL_PERIPH_GPIOF +#define LED0_PORT GPIO_PORTF_BASE +#define LED0_PIN GPIO_PIN_3 -#define LED1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED1_PORT (GPIO_PORTF_BASE) -#define LED1_PIN (GPIO_PIN_2) +#define LED1_PERIPH SYSCTL_PERIPH_GPIOF +#define LED1_PORT GPIO_PORTF_BASE +#define LED1_PIN GPIO_PIN_2 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S6618 @@ -16631,121 +31487,121 @@ //***************************************************************************** #ifdef PART_LM3S6633 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C0O_PORT (GPIO_PORTC_BASE) -#define C0O_PIN (GPIO_PIN_5) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOC +#define C0O_PORT GPIO_PORTC_BASE +#define C0O_PIN GPIO_PIN_5 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP4_PORT (GPIO_PORTA_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP4_PORT GPIO_PORTA_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP5_PORT (GPIO_PORTB_BASE) -#define CCP5_PIN (GPIO_PIN_5) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP5_PORT GPIO_PORTB_BASE +#define CCP5_PIN GPIO_PIN_5 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define LED0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED0_PORT (GPIO_PORTF_BASE) -#define LED0_PIN (GPIO_PIN_3) +#define LED0_PERIPH SYSCTL_PERIPH_GPIOF +#define LED0_PORT GPIO_PORTF_BASE +#define LED0_PIN GPIO_PIN_3 -#define LED1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED1_PORT (GPIO_PORTF_BASE) -#define LED1_PIN (GPIO_PIN_2) +#define LED1_PERIPH SYSCTL_PERIPH_GPIOF +#define LED1_PORT GPIO_PORTF_BASE +#define LED1_PIN GPIO_PIN_2 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S6633 @@ -16756,145 +31612,145 @@ //***************************************************************************** #ifdef PART_LM3S6637 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOD) -#define C0O_PORT (GPIO_PORTD_BASE) -#define C0O_PIN (GPIO_PIN_7) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOD +#define C0O_PORT GPIO_PORTD_BASE +#define C0O_PIN GPIO_PIN_7 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1O_PORT (GPIO_PORTC_BASE) -#define C1O_PIN (GPIO_PIN_5) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOC +#define C1O_PORT GPIO_PORTC_BASE +#define C1O_PIN GPIO_PIN_5 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define C2O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2O_PORT (GPIO_PORTC_BASE) -#define C2O_PIN (GPIO_PIN_6) +#define C2O_PERIPH SYSCTL_PERIPH_GPIOC +#define C2O_PORT GPIO_PORTC_BASE +#define C2O_PIN GPIO_PIN_6 -#define C2_MINUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_MINUS_PORT (GPIO_PORTC_BASE) -#define C2_MINUS_PIN (GPIO_PIN_7) +#define C2_MINUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_MINUS_PORT GPIO_PORTC_BASE +#define C2_MINUS_PIN GPIO_PIN_7 -#define C2_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_PLUS_PORT (GPIO_PORTC_BASE) -#define C2_PLUS_PIN (GPIO_PIN_6) +#define C2_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_PLUS_PORT GPIO_PORTC_BASE +#define C2_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP3_PORT (GPIO_PORTD_BASE) -#define CCP3_PIN (GPIO_PIN_4) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP3_PORT GPIO_PORTD_BASE +#define CCP3_PIN GPIO_PIN_4 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP4_PORT (GPIO_PORTA_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP4_PORT GPIO_PORTA_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define LED0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED0_PORT (GPIO_PORTF_BASE) -#define LED0_PIN (GPIO_PIN_3) +#define LED0_PERIPH SYSCTL_PERIPH_GPIOF +#define LED0_PORT GPIO_PORTF_BASE +#define LED0_PIN GPIO_PIN_3 -#define LED1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED1_PORT (GPIO_PORTF_BASE) -#define LED1_PIN (GPIO_PIN_2) +#define LED1_PERIPH SYSCTL_PERIPH_GPIOF +#define LED1_PORT GPIO_PORTF_BASE +#define LED1_PIN GPIO_PIN_2 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S6637 @@ -16905,109 +31761,109 @@ //***************************************************************************** #ifdef PART_LM3S6730 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOD) -#define C0O_PORT (GPIO_PORTD_BASE) -#define C0O_PIN (GPIO_PIN_7) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOD +#define C0O_PORT GPIO_PORTD_BASE +#define C0O_PIN GPIO_PIN_7 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOE) -#define C1O_PORT (GPIO_PORTE_BASE) -#define C1O_PIN (GPIO_PIN_6) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOE +#define C1O_PORT GPIO_PORTE_BASE +#define C1O_PIN GPIO_PIN_6 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define LED0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED0_PORT (GPIO_PORTF_BASE) -#define LED0_PIN (GPIO_PIN_3) +#define LED0_PERIPH SYSCTL_PERIPH_GPIOF +#define LED0_PORT GPIO_PORTF_BASE +#define LED0_PIN GPIO_PIN_3 -#define LED1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED1_PORT (GPIO_PORTF_BASE) -#define LED1_PIN (GPIO_PIN_2) +#define LED1_PERIPH SYSCTL_PERIPH_GPIOF +#define LED1_PORT GPIO_PORTF_BASE +#define LED1_PIN GPIO_PIN_2 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 #endif // PART_LM3S6730 @@ -17018,161 +31874,161 @@ //***************************************************************************** #ifdef PART_LM3S6753 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOD) -#define C0O_PORT (GPIO_PORTD_BASE) -#define C0O_PIN (GPIO_PIN_7) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOD +#define C0O_PORT GPIO_PORTD_BASE +#define C0O_PIN GPIO_PIN_7 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP0_PORT (GPIO_PORTD_BASE) -#define CCP0_PIN (GPIO_PIN_4) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP0_PORT GPIO_PORTD_BASE +#define CCP0_PIN GPIO_PIN_4 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP2_PORT (GPIO_PORTD_BASE) -#define CCP2_PIN (GPIO_PIN_5) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP2_PORT GPIO_PORTD_BASE +#define CCP2_PIN GPIO_PIN_5 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define IDX0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define IDX0_PORT (GPIO_PORTD_BASE) -#define IDX0_PIN (GPIO_PIN_0) +#define IDX0_PERIPH SYSCTL_PERIPH_GPIOD +#define IDX0_PORT GPIO_PORTD_BASE +#define IDX0_PIN GPIO_PIN_0 -#define LED0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED0_PORT (GPIO_PORTF_BASE) -#define LED0_PIN (GPIO_PIN_3) +#define LED0_PERIPH SYSCTL_PERIPH_GPIOF +#define LED0_PORT GPIO_PORTF_BASE +#define LED0_PIN GPIO_PIN_3 -#define LED1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED1_PORT (GPIO_PORTF_BASE) -#define LED1_PIN (GPIO_PIN_2) +#define LED1_PERIPH SYSCTL_PERIPH_GPIOF +#define LED1_PORT GPIO_PORTF_BASE +#define LED1_PIN GPIO_PIN_2 -#define PHA0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHA0_PORT (GPIO_PORTC_BASE) -#define PHA0_PIN (GPIO_PIN_4) +#define PHA0_PERIPH SYSCTL_PERIPH_GPIOC +#define PHA0_PORT GPIO_PORTC_BASE +#define PHA0_PIN GPIO_PIN_4 -#define PHB0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHB0_PORT (GPIO_PORTC_BASE) -#define PHB0_PIN (GPIO_PIN_7) +#define PHB0_PERIPH SYSCTL_PERIPH_GPIOC +#define PHB0_PORT GPIO_PORTC_BASE +#define PHB0_PIN GPIO_PIN_7 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM0_PORT (GPIO_PORTF_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM0_PORT GPIO_PORTF_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM2_PORT (GPIO_PORTB_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM2_PORT GPIO_PORTB_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM3_PORT (GPIO_PORTB_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM3_PORT GPIO_PORTB_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM4_PORT (GPIO_PORTE_BASE) -#define PWM4_PIN (GPIO_PIN_0) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM4_PORT GPIO_PORTE_BASE +#define PWM4_PIN GPIO_PIN_0 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM5_PORT (GPIO_PORTE_BASE) -#define PWM5_PIN (GPIO_PIN_1) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM5_PORT GPIO_PORTE_BASE +#define PWM5_PIN GPIO_PIN_1 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S6753 @@ -17183,129 +32039,129 @@ //***************************************************************************** #ifdef PART_LM3S6816 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP4_PORT (GPIO_PORTA_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP4_PORT GPIO_PORTA_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP5_PORT (GPIO_PORTB_BASE) -#define CCP5_PIN (GPIO_PIN_5) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP5_PORT GPIO_PORTB_BASE +#define CCP5_PIN GPIO_PIN_5 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOE) -#define FAULT_PORT (GPIO_PORTE_BASE) -#define FAULT_PIN (GPIO_PIN_1) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOE +#define FAULT_PORT GPIO_PORTE_BASE +#define FAULT_PIN GPIO_PIN_1 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define LED0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED0_PORT (GPIO_PORTF_BASE) -#define LED0_PIN (GPIO_PIN_3) +#define LED0_PERIPH SYSCTL_PERIPH_GPIOF +#define LED0_PORT GPIO_PORTF_BASE +#define LED0_PIN GPIO_PIN_3 -#define LED1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED1_PORT (GPIO_PORTF_BASE) -#define LED1_PIN (GPIO_PIN_2) +#define LED1_PERIPH SYSCTL_PERIPH_GPIOF +#define LED1_PORT GPIO_PORTF_BASE +#define LED1_PIN GPIO_PIN_2 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 -#define U2RX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2RX_PORT (GPIO_PORTG_BASE) -#define U2RX_PIN (GPIO_PIN_0) +#define U2RX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2RX_PORT GPIO_PORTG_BASE +#define U2RX_PIN GPIO_PIN_0 -#define U2TX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2TX_PORT (GPIO_PORTG_BASE) -#define U2TX_PIN (GPIO_PIN_1) +#define U2TX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2TX_PORT GPIO_PORTG_BASE +#define U2TX_PIN GPIO_PIN_1 #endif // PART_LM3S6816 @@ -17316,165 +32172,165 @@ //***************************************************************************** #ifdef PART_LM3S6911 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C0O_PORT (GPIO_PORTC_BASE) -#define C0O_PIN (GPIO_PIN_5) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOC +#define C0O_PORT GPIO_PORTC_BASE +#define C0O_PIN GPIO_PIN_5 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOE) -#define C1O_PORT (GPIO_PORTE_BASE) -#define C1O_PIN (GPIO_PIN_6) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOE +#define C1O_PORT GPIO_PORTE_BASE +#define C1O_PIN GPIO_PIN_6 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP1_PORT (GPIO_PORTD_BASE) -#define CCP1_PIN (GPIO_PIN_7) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP1_PORT GPIO_PORTD_BASE +#define CCP1_PIN GPIO_PIN_7 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define I2C1SCL_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SCL_PORT (GPIO_PORTA_BASE) -#define I2C1SCL_PIN (GPIO_PIN_6) +#define I2C1SCL_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SCL_PORT GPIO_PORTA_BASE +#define I2C1SCL_PIN GPIO_PIN_6 -#define I2C1SDA_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SDA_PORT (GPIO_PORTA_BASE) -#define I2C1SDA_PIN (GPIO_PIN_7) +#define I2C1SDA_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SDA_PORT GPIO_PORTA_BASE +#define I2C1SDA_PIN GPIO_PIN_7 -#define LED0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED0_PORT (GPIO_PORTF_BASE) -#define LED0_PIN (GPIO_PIN_3) +#define LED0_PERIPH SYSCTL_PERIPH_GPIOF +#define LED0_PORT GPIO_PORTF_BASE +#define LED0_PIN GPIO_PIN_3 -#define LED1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED1_PORT (GPIO_PORTF_BASE) -#define LED1_PIN (GPIO_PIN_2) +#define LED1_PERIPH SYSCTL_PERIPH_GPIOF +#define LED1_PORT GPIO_PORTF_BASE +#define LED1_PIN GPIO_PIN_2 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 -#define U2RX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2RX_PORT (GPIO_PORTG_BASE) -#define U2RX_PIN (GPIO_PIN_0) +#define U2RX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2RX_PORT GPIO_PORTG_BASE +#define U2RX_PIN GPIO_PIN_0 -#define U2TX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2TX_PORT (GPIO_PORTG_BASE) -#define U2TX_PIN (GPIO_PIN_1) +#define U2TX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2TX_PORT GPIO_PORTG_BASE +#define U2TX_PIN GPIO_PIN_1 #endif // PART_LM3S6911 @@ -17485,129 +32341,129 @@ //***************************************************************************** #ifdef PART_LM3S6916 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP4_PORT (GPIO_PORTA_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP4_PORT GPIO_PORTA_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP5_PORT (GPIO_PORTB_BASE) -#define CCP5_PIN (GPIO_PIN_5) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP5_PORT GPIO_PORTB_BASE +#define CCP5_PIN GPIO_PIN_5 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOE) -#define FAULT_PORT (GPIO_PORTE_BASE) -#define FAULT_PIN (GPIO_PIN_1) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOE +#define FAULT_PORT GPIO_PORTE_BASE +#define FAULT_PIN GPIO_PIN_1 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define LED0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED0_PORT (GPIO_PORTF_BASE) -#define LED0_PIN (GPIO_PIN_3) +#define LED0_PERIPH SYSCTL_PERIPH_GPIOF +#define LED0_PORT GPIO_PORTF_BASE +#define LED0_PIN GPIO_PIN_3 -#define LED1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED1_PORT (GPIO_PORTF_BASE) -#define LED1_PIN (GPIO_PIN_2) +#define LED1_PERIPH SYSCTL_PERIPH_GPIOF +#define LED1_PORT GPIO_PORTF_BASE +#define LED1_PIN GPIO_PIN_2 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 -#define U2RX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2RX_PORT (GPIO_PORTG_BASE) -#define U2RX_PIN (GPIO_PIN_0) +#define U2RX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2RX_PORT GPIO_PORTG_BASE +#define U2RX_PIN GPIO_PIN_0 -#define U2TX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2TX_PORT (GPIO_PORTG_BASE) -#define U2TX_PIN (GPIO_PIN_1) +#define U2TX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2TX_PORT GPIO_PORTG_BASE +#define U2TX_PIN GPIO_PIN_1 #endif // PART_LM3S6916 @@ -17618,153 +32474,153 @@ //***************************************************************************** #ifdef PART_LM3S6918 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C0O_PORT (GPIO_PORTC_BASE) -#define C0O_PIN (GPIO_PIN_5) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOC +#define C0O_PORT GPIO_PORTC_BASE +#define C0O_PIN GPIO_PIN_5 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP4_PORT (GPIO_PORTC_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP4_PORT GPIO_PORTC_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define I2C1SCL_PERIPH (SYSCTL_PERIPH_GPIOG) -#define I2C1SCL_PORT (GPIO_PORTG_BASE) -#define I2C1SCL_PIN (GPIO_PIN_0) +#define I2C1SCL_PERIPH SYSCTL_PERIPH_GPIOG +#define I2C1SCL_PORT GPIO_PORTG_BASE +#define I2C1SCL_PIN GPIO_PIN_0 -#define I2C1SDA_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SDA_PORT (GPIO_PORTA_BASE) -#define I2C1SDA_PIN (GPIO_PIN_7) +#define I2C1SDA_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SDA_PORT GPIO_PORTA_BASE +#define I2C1SDA_PIN GPIO_PIN_7 -#define LED0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED0_PORT (GPIO_PORTF_BASE) -#define LED0_PIN (GPIO_PIN_3) +#define LED0_PERIPH SYSCTL_PERIPH_GPIOF +#define LED0_PORT GPIO_PORTF_BASE +#define LED0_PIN GPIO_PIN_3 -#define LED1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED1_PORT (GPIO_PORTF_BASE) -#define LED1_PIN (GPIO_PIN_2) +#define LED1_PERIPH SYSCTL_PERIPH_GPIOF +#define LED1_PORT GPIO_PORTF_BASE +#define LED1_PIN GPIO_PIN_2 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S6918 @@ -17775,149 +32631,149 @@ //***************************************************************************** #ifdef PART_LM3S6938 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0O_PORT (GPIO_PORTB_BASE) -#define C0O_PIN (GPIO_PIN_6) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOB +#define C0O_PORT GPIO_PORTB_BASE +#define C0O_PIN GPIO_PIN_6 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1O_PORT (GPIO_PORTC_BASE) -#define C1O_PIN (GPIO_PIN_5) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOC +#define C1O_PORT GPIO_PORTC_BASE +#define C1O_PIN GPIO_PIN_5 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define C2_MINUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_MINUS_PORT (GPIO_PORTC_BASE) -#define C2_MINUS_PIN (GPIO_PIN_7) +#define C2_MINUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_MINUS_PORT GPIO_PORTC_BASE +#define C2_MINUS_PIN GPIO_PIN_7 -#define C2_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_PLUS_PORT (GPIO_PORTC_BASE) -#define C2_PLUS_PIN (GPIO_PIN_6) +#define C2_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_PLUS_PORT GPIO_PORTC_BASE +#define C2_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP3_PORT (GPIO_PORTE_BASE) -#define CCP3_PIN (GPIO_PIN_0) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP3_PORT GPIO_PORTE_BASE +#define CCP3_PIN GPIO_PIN_0 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP4_PORT (GPIO_PORTA_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP4_PORT GPIO_PORTA_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define LED0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED0_PORT (GPIO_PORTF_BASE) -#define LED0_PIN (GPIO_PIN_3) +#define LED0_PERIPH SYSCTL_PERIPH_GPIOF +#define LED0_PORT GPIO_PORTF_BASE +#define LED0_PIN GPIO_PIN_3 -#define LED1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED1_PORT (GPIO_PORTF_BASE) -#define LED1_PIN (GPIO_PIN_2) +#define LED1_PERIPH SYSCTL_PERIPH_GPIOF +#define LED1_PORT GPIO_PORTF_BASE +#define LED1_PIN GPIO_PIN_2 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 -#define U2RX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2RX_PORT (GPIO_PORTG_BASE) -#define U2RX_PIN (GPIO_PIN_0) +#define U2RX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2RX_PORT GPIO_PORTG_BASE +#define U2RX_PIN GPIO_PIN_0 -#define U2TX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2TX_PORT (GPIO_PORTG_BASE) -#define U2TX_PIN (GPIO_PIN_1) +#define U2TX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2TX_PORT GPIO_PORTG_BASE +#define U2TX_PIN GPIO_PIN_1 #endif // PART_LM3S6938 @@ -17928,209 +32784,209 @@ //***************************************************************************** #ifdef PART_LM3S6950 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0O_PORT (GPIO_PORTB_BASE) -#define C0O_PIN (GPIO_PIN_6) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOB +#define C0O_PORT GPIO_PORTB_BASE +#define C0O_PIN GPIO_PIN_6 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1O_PORT (GPIO_PORTC_BASE) -#define C1O_PIN (GPIO_PIN_5) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOC +#define C1O_PORT GPIO_PORTC_BASE +#define C1O_PIN GPIO_PIN_5 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define C2O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2O_PORT (GPIO_PORTC_BASE) -#define C2O_PIN (GPIO_PIN_6) +#define C2O_PERIPH SYSCTL_PERIPH_GPIOC +#define C2O_PORT GPIO_PORTC_BASE +#define C2O_PIN GPIO_PIN_6 -#define C2_MINUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_MINUS_PORT (GPIO_PORTC_BASE) -#define C2_MINUS_PIN (GPIO_PIN_7) +#define C2_MINUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_MINUS_PORT GPIO_PORTC_BASE +#define C2_MINUS_PIN GPIO_PIN_7 -#define C2_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_PLUS_PORT (GPIO_PORTC_BASE) -#define C2_PLUS_PIN (GPIO_PIN_6) +#define C2_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_PLUS_PORT GPIO_PORTC_BASE +#define C2_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP0_PORT (GPIO_PORTD_BASE) -#define CCP0_PIN (GPIO_PIN_4) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP0_PORT GPIO_PORTD_BASE +#define CCP0_PIN GPIO_PIN_4 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP2_PORT (GPIO_PORTD_BASE) -#define CCP2_PIN (GPIO_PIN_5) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP2_PORT GPIO_PORTD_BASE +#define CCP2_PIN GPIO_PIN_5 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP3_PORT (GPIO_PORTE_BASE) -#define CCP3_PIN (GPIO_PIN_4) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP3_PORT GPIO_PORTE_BASE +#define CCP3_PIN GPIO_PIN_4 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP4_PORT (GPIO_PORTA_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP4_PORT GPIO_PORTA_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define IDX0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define IDX0_PORT (GPIO_PORTD_BASE) -#define IDX0_PIN (GPIO_PIN_7) +#define IDX0_PERIPH SYSCTL_PERIPH_GPIOD +#define IDX0_PORT GPIO_PORTD_BASE +#define IDX0_PIN GPIO_PIN_7 -#define LED0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED0_PORT (GPIO_PORTF_BASE) -#define LED0_PIN (GPIO_PIN_3) +#define LED0_PERIPH SYSCTL_PERIPH_GPIOF +#define LED0_PORT GPIO_PORTF_BASE +#define LED0_PIN GPIO_PIN_3 -#define LED1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED1_PORT (GPIO_PORTF_BASE) -#define LED1_PIN (GPIO_PIN_2) +#define LED1_PERIPH SYSCTL_PERIPH_GPIOF +#define LED1_PORT GPIO_PORTF_BASE +#define LED1_PIN GPIO_PIN_2 -#define PHA0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PHA0_PORT (GPIO_PORTD_BASE) -#define PHA0_PIN (GPIO_PIN_1) +#define PHA0_PERIPH SYSCTL_PERIPH_GPIOD +#define PHA0_PORT GPIO_PORTD_BASE +#define PHA0_PIN GPIO_PIN_1 -#define PHB0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PHB0_PORT (GPIO_PORTF_BASE) -#define PHB0_PIN (GPIO_PIN_0) +#define PHB0_PERIPH SYSCTL_PERIPH_GPIOF +#define PHB0_PORT GPIO_PORTF_BASE +#define PHB0_PIN GPIO_PIN_0 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM1_PORT (GPIO_PORTF_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM1_PORT GPIO_PORTF_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM2_PORT (GPIO_PORTB_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM2_PORT GPIO_PORTB_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM3_PORT (GPIO_PORTB_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM3_PORT GPIO_PORTB_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM4_PORT (GPIO_PORTE_BASE) -#define PWM4_PIN (GPIO_PIN_6) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM4_PORT GPIO_PORTE_BASE +#define PWM4_PIN GPIO_PIN_6 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM5_PORT (GPIO_PORTE_BASE) -#define PWM5_PIN (GPIO_PIN_7) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM5_PORT GPIO_PORTE_BASE +#define PWM5_PIN GPIO_PIN_7 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 -#define U2RX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2RX_PORT (GPIO_PORTG_BASE) -#define U2RX_PIN (GPIO_PIN_0) +#define U2RX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2RX_PORT GPIO_PORTG_BASE +#define U2RX_PIN GPIO_PIN_0 -#define U2TX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2TX_PORT (GPIO_PORTG_BASE) -#define U2TX_PIN (GPIO_PIN_1) +#define U2TX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2TX_PORT GPIO_PORTG_BASE +#define U2TX_PIN GPIO_PIN_1 #endif // PART_LM3S6950 @@ -18141,173 +32997,173 @@ //***************************************************************************** #ifdef PART_LM3S6952 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0O_PORT (GPIO_PORTB_BASE) -#define C0O_PIN (GPIO_PIN_6) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOB +#define C0O_PORT GPIO_PORTB_BASE +#define C0O_PIN GPIO_PIN_6 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1O_PORT (GPIO_PORTC_BASE) -#define C1O_PIN (GPIO_PIN_5) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOC +#define C1O_PORT GPIO_PORTC_BASE +#define C1O_PIN GPIO_PIN_5 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define C2_MINUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_MINUS_PORT (GPIO_PORTC_BASE) -#define C2_MINUS_PIN (GPIO_PIN_7) +#define C2_MINUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_MINUS_PORT GPIO_PORTC_BASE +#define C2_MINUS_PIN GPIO_PIN_7 -#define C2_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_PLUS_PORT (GPIO_PORTC_BASE) -#define C2_PLUS_PIN (GPIO_PIN_6) +#define C2_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_PLUS_PORT GPIO_PORTC_BASE +#define C2_PLUS_PIN GPIO_PIN_6 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP0_PORT (GPIO_PORTD_BASE) -#define CCP0_PIN (GPIO_PIN_4) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP0_PORT GPIO_PORTD_BASE +#define CCP0_PIN GPIO_PIN_4 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP2_PORT (GPIO_PORTD_BASE) -#define CCP2_PIN (GPIO_PIN_5) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP2_PORT GPIO_PORTD_BASE +#define CCP2_PIN GPIO_PIN_5 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP3_PORT (GPIO_PORTE_BASE) -#define CCP3_PIN (GPIO_PIN_0) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP3_PORT GPIO_PORTE_BASE +#define CCP3_PIN GPIO_PIN_0 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define IDX0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define IDX0_PORT (GPIO_PORTD_BASE) -#define IDX0_PIN (GPIO_PIN_7) +#define IDX0_PERIPH SYSCTL_PERIPH_GPIOD +#define IDX0_PORT GPIO_PORTD_BASE +#define IDX0_PIN GPIO_PIN_7 -#define LED0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED0_PORT (GPIO_PORTF_BASE) -#define LED0_PIN (GPIO_PIN_3) +#define LED0_PERIPH SYSCTL_PERIPH_GPIOF +#define LED0_PORT GPIO_PORTF_BASE +#define LED0_PIN GPIO_PIN_3 -#define LED1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED1_PORT (GPIO_PORTF_BASE) -#define LED1_PIN (GPIO_PIN_2) +#define LED1_PERIPH SYSCTL_PERIPH_GPIOF +#define LED1_PORT GPIO_PORTF_BASE +#define LED1_PIN GPIO_PIN_2 -#define PHA0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHA0_PORT (GPIO_PORTC_BASE) -#define PHA0_PIN (GPIO_PIN_4) +#define PHA0_PERIPH SYSCTL_PERIPH_GPIOC +#define PHA0_PORT GPIO_PORTC_BASE +#define PHA0_PIN GPIO_PIN_4 -#define PHB0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PHB0_PORT (GPIO_PORTF_BASE) -#define PHB0_PIN (GPIO_PIN_0) +#define PHB0_PERIPH SYSCTL_PERIPH_GPIOF +#define PHB0_PORT GPIO_PORTF_BASE +#define PHB0_PIN GPIO_PIN_0 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM0_PORT (GPIO_PORTD_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM0_PORT GPIO_PORTD_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM2_PORT (GPIO_PORTB_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM2_PORT GPIO_PORTB_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM3_PORT (GPIO_PORTB_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM3_PORT GPIO_PORTB_BASE +#define PWM3_PIN GPIO_PIN_1 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 -#define U2RX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2RX_PORT (GPIO_PORTG_BASE) -#define U2RX_PIN (GPIO_PIN_0) +#define U2RX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2RX_PORT GPIO_PORTG_BASE +#define U2RX_PIN GPIO_PIN_0 -#define U2TX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2TX_PORT (GPIO_PORTG_BASE) -#define U2TX_PIN (GPIO_PIN_1) +#define U2TX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2TX_PORT GPIO_PORTG_BASE +#define U2TX_PIN GPIO_PIN_1 #endif // PART_LM3S6952 @@ -18318,192 +33174,920 @@ //***************************************************************************** #ifdef PART_LM3S6965 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C0O_PORT (GPIO_PORTC_BASE) -#define C0O_PIN (GPIO_PIN_5) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOC +#define C0O_PORT GPIO_PORTC_BASE +#define C0O_PIN GPIO_PIN_5 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP0_PORT (GPIO_PORTD_BASE) -#define CCP0_PIN (GPIO_PIN_4) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP0_PORT GPIO_PORTD_BASE +#define CCP0_PIN GPIO_PIN_4 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP1_PORT (GPIO_PORTD_BASE) -#define CCP1_PIN (GPIO_PIN_7) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP1_PORT GPIO_PORTD_BASE +#define CCP1_PIN GPIO_PIN_7 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP2_PORT (GPIO_PORTD_BASE) -#define CCP2_PIN (GPIO_PIN_5) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP2_PORT GPIO_PORTD_BASE +#define CCP2_PIN GPIO_PIN_5 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define I2C1SCL_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SCL_PORT (GPIO_PORTA_BASE) -#define I2C1SCL_PIN (GPIO_PIN_6) +#define I2C1SCL_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SCL_PORT GPIO_PORTA_BASE +#define I2C1SCL_PIN GPIO_PIN_6 -#define I2C1SDA_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SDA_PORT (GPIO_PORTA_BASE) -#define I2C1SDA_PIN (GPIO_PIN_7) +#define I2C1SDA_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SDA_PORT GPIO_PORTA_BASE +#define I2C1SDA_PIN GPIO_PIN_7 -#define IDX0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define IDX0_PORT (GPIO_PORTD_BASE) -#define IDX0_PIN (GPIO_PIN_0) +#define IDX0_PERIPH SYSCTL_PERIPH_GPIOD +#define IDX0_PORT GPIO_PORTD_BASE +#define IDX0_PIN GPIO_PIN_0 -#define IDX1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define IDX1_PORT (GPIO_PORTF_BASE) -#define IDX1_PIN (GPIO_PIN_1) +#define IDX1_PERIPH SYSCTL_PERIPH_GPIOF +#define IDX1_PORT GPIO_PORTF_BASE +#define IDX1_PIN GPIO_PIN_1 -#define LED0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED0_PORT (GPIO_PORTF_BASE) -#define LED0_PIN (GPIO_PIN_3) +#define LED0_PERIPH SYSCTL_PERIPH_GPIOF +#define LED0_PORT GPIO_PORTF_BASE +#define LED0_PIN GPIO_PIN_3 -#define LED1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED1_PORT (GPIO_PORTF_BASE) -#define LED1_PIN (GPIO_PIN_2) +#define LED1_PERIPH SYSCTL_PERIPH_GPIOF +#define LED1_PORT GPIO_PORTF_BASE +#define LED1_PIN GPIO_PIN_2 -#define PHA0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHA0_PORT (GPIO_PORTC_BASE) -#define PHA0_PIN (GPIO_PIN_4) +#define PHA0_PERIPH SYSCTL_PERIPH_GPIOC +#define PHA0_PORT GPIO_PORTC_BASE +#define PHA0_PIN GPIO_PIN_4 -#define PHA1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PHA1_PORT (GPIO_PORTE_BASE) -#define PHA1_PIN (GPIO_PIN_3) +#define PHA1_PERIPH SYSCTL_PERIPH_GPIOE +#define PHA1_PORT GPIO_PORTE_BASE +#define PHA1_PIN GPIO_PIN_3 -#define PHB0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHB0_PORT (GPIO_PORTC_BASE) -#define PHB0_PIN (GPIO_PIN_7) +#define PHB0_PERIPH SYSCTL_PERIPH_GPIOC +#define PHB0_PORT GPIO_PORTC_BASE +#define PHB0_PIN GPIO_PIN_7 -#define PHB1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PHB1_PORT (GPIO_PORTE_BASE) -#define PHB1_PIN (GPIO_PIN_2) +#define PHB1_PERIPH SYSCTL_PERIPH_GPIOE +#define PHB1_PORT GPIO_PORTE_BASE +#define PHB1_PIN GPIO_PIN_2 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM0_PORT (GPIO_PORTF_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM0_PORT GPIO_PORTF_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM1_PORT (GPIO_PORTD_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM1_PORT GPIO_PORTD_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM2_PORT (GPIO_PORTB_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM2_PORT GPIO_PORTB_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM3_PORT (GPIO_PORTB_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM3_PORT GPIO_PORTB_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM4_PORT (GPIO_PORTE_BASE) -#define PWM4_PIN (GPIO_PIN_0) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM4_PORT GPIO_PORTE_BASE +#define PWM4_PIN GPIO_PIN_0 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM5_PORT (GPIO_PORTE_BASE) -#define PWM5_PIN (GPIO_PIN_1) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM5_PORT GPIO_PORTE_BASE +#define PWM5_PIN GPIO_PIN_1 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 -#define U2RX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2RX_PORT (GPIO_PORTG_BASE) -#define U2RX_PIN (GPIO_PIN_0) +#define U2RX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2RX_PORT GPIO_PORTG_BASE +#define U2RX_PIN GPIO_PIN_0 -#define U2TX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2TX_PORT (GPIO_PORTG_BASE) -#define U2TX_PIN (GPIO_PIN_1) +#define U2TX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2TX_PORT GPIO_PORTG_BASE +#define U2TX_PIN GPIO_PIN_1 #endif // PART_LM3S6965 +//***************************************************************************** +// +// LM3S6C11 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S6C11 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 + +#define GPIO_PA3_SSI0FSS 0x00000C01 + +#define GPIO_PA4_SSI0RX 0x00001001 + +#define GPIO_PA5_SSI0TX 0x00001401 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CCP3 0x00001C07 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_CCP3 0x00021405 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 + +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_U2RX 0x00031409 + +#define GPIO_PD6_U2TX 0x00031809 + +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#define GPIO_PE5_CCP5 0x00041401 + +#define GPIO_PE6_C1O 0x00041802 + +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_LED1 0x00050801 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_LED0 0x00050C01 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_I2C1SCL 0x00060003 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_I2C1SDA 0x00060403 + +#endif // PART_LM3S6C11 + +//***************************************************************************** +// +// LM3S6C65 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S6C65 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 + +#define GPIO_PA4_SSI0RX 0x00001001 + +#define GPIO_PA5_SSI0TX 0x00001401 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CCP3 0x00001C07 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_U2RX 0x00031409 + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_U2TX 0x00031809 + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_CCP3 0x00040003 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#define GPIO_PE5_CCP5 0x00041401 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 + +#define GPIO_PE7_PWM5 0x00041C01 + +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_LED1 0x00050801 +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 + +#define GPIO_PF3_LED0 0x00050C01 +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 + +#endif // PART_LM3S6C65 + +//***************************************************************************** +// +// LM3S6G11 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S6G11 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 + +#define GPIO_PA3_SSI0FSS 0x00000C01 + +#define GPIO_PA4_SSI0RX 0x00001001 + +#define GPIO_PA5_SSI0TX 0x00001401 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CCP3 0x00001C07 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_CCP3 0x00021405 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 + +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_U2RX 0x00031409 + +#define GPIO_PD6_U2TX 0x00031809 + +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#define GPIO_PE5_CCP5 0x00041401 + +#define GPIO_PE6_C1O 0x00041802 + +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_LED1 0x00050801 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_LED0 0x00050C01 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_I2C1SCL 0x00060003 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_I2C1SDA 0x00060403 + +#endif // PART_LM3S6G11 + +//***************************************************************************** +// +// LM3S6G65 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S6G65 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 + +#define GPIO_PA4_SSI0RX 0x00001001 + +#define GPIO_PA5_SSI0TX 0x00001401 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CCP3 0x00001C07 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_U2RX 0x00031409 + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_U2TX 0x00031809 + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_CCP3 0x00040003 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 + +#define GPIO_PE5_CCP5 0x00041401 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 + +#define GPIO_PE7_PWM5 0x00041C01 + +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_LED1 0x00050801 +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 + +#define GPIO_PF3_LED0 0x00050C01 +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 + +#endif // PART_LM3S6G65 + //***************************************************************************** // // LM3S8530 Port/Pin Mapping Definitions @@ -18511,125 +34095,125 @@ //***************************************************************************** #ifdef PART_LM3S8530 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CAN1RX_PERIPH (SYSCTL_PERIPH_GPIOF) -#define CAN1RX_PORT (GPIO_PORTF_BASE) -#define CAN1RX_PIN (GPIO_PIN_0) +#define CAN1RX_PERIPH SYSCTL_PERIPH_GPIOF +#define CAN1RX_PORT GPIO_PORTF_BASE +#define CAN1RX_PIN GPIO_PIN_0 -#define CAN1TX_PERIPH (SYSCTL_PERIPH_GPIOF) -#define CAN1TX_PORT (GPIO_PORTF_BASE) -#define CAN1TX_PIN (GPIO_PIN_1) +#define CAN1TX_PERIPH SYSCTL_PERIPH_GPIOF +#define CAN1TX_PORT GPIO_PORTF_BASE +#define CAN1TX_PIN GPIO_PIN_1 -#define CAN2RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CAN2RX_PORT (GPIO_PORTE_BASE) -#define CAN2RX_PIN (GPIO_PIN_4) +#define CAN2RX_PERIPH SYSCTL_PERIPH_GPIOE +#define CAN2RX_PORT GPIO_PORTE_BASE +#define CAN2RX_PIN GPIO_PIN_4 -#define CAN2TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CAN2TX_PORT (GPIO_PORTE_BASE) -#define CAN2TX_PIN (GPIO_PIN_5) +#define CAN2TX_PERIPH SYSCTL_PERIPH_GPIOE +#define CAN2TX_PORT GPIO_PORTE_BASE +#define CAN2TX_PIN GPIO_PIN_5 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define LED0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED0_PORT (GPIO_PORTF_BASE) -#define LED0_PIN (GPIO_PIN_3) +#define LED0_PERIPH SYSCTL_PERIPH_GPIOF +#define LED0_PORT GPIO_PORTF_BASE +#define LED0_PIN GPIO_PIN_3 -#define LED1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED1_PORT (GPIO_PORTF_BASE) -#define LED1_PIN (GPIO_PIN_2) +#define LED1_PERIPH SYSCTL_PERIPH_GPIOF +#define LED1_PORT GPIO_PORTF_BASE +#define LED1_PIN GPIO_PIN_2 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 #endif // PART_LM3S8530 @@ -18640,141 +34224,141 @@ //***************************************************************************** #ifdef PART_LM3S8538 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0O_PORT (GPIO_PORTB_BASE) -#define C0O_PIN (GPIO_PIN_6) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOB +#define C0O_PORT GPIO_PORTB_BASE +#define C0O_PIN GPIO_PIN_6 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1O_PORT (GPIO_PORTC_BASE) -#define C1O_PIN (GPIO_PIN_5) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOC +#define C1O_PORT GPIO_PORTC_BASE +#define C1O_PIN GPIO_PIN_5 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define C2_MINUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_MINUS_PORT (GPIO_PORTC_BASE) -#define C2_MINUS_PIN (GPIO_PIN_7) +#define C2_MINUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_MINUS_PORT GPIO_PORTC_BASE +#define C2_MINUS_PIN GPIO_PIN_7 -#define C2_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_PLUS_PORT (GPIO_PORTC_BASE) -#define C2_PLUS_PIN (GPIO_PIN_6) +#define C2_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_PLUS_PORT GPIO_PORTC_BASE +#define C2_PLUS_PIN GPIO_PIN_6 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP3_PORT (GPIO_PORTE_BASE) -#define CCP3_PIN (GPIO_PIN_0) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP3_PORT GPIO_PORTE_BASE +#define CCP3_PIN GPIO_PIN_0 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define LED0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED0_PORT (GPIO_PORTF_BASE) -#define LED0_PIN (GPIO_PIN_3) +#define LED0_PERIPH SYSCTL_PERIPH_GPIOF +#define LED0_PORT GPIO_PORTF_BASE +#define LED0_PIN GPIO_PIN_3 -#define LED1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED1_PORT (GPIO_PORTF_BASE) -#define LED1_PIN (GPIO_PIN_2) +#define LED1_PERIPH SYSCTL_PERIPH_GPIOF +#define LED1_PORT GPIO_PORTF_BASE +#define LED1_PIN GPIO_PIN_2 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S8538 @@ -18785,101 +34369,101 @@ //***************************************************************************** #ifdef PART_LM3S8630 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define LED0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED0_PORT (GPIO_PORTF_BASE) -#define LED0_PIN (GPIO_PIN_3) +#define LED0_PERIPH SYSCTL_PERIPH_GPIOF +#define LED0_PORT GPIO_PORTF_BASE +#define LED0_PIN GPIO_PIN_3 -#define LED1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED1_PORT (GPIO_PORTF_BASE) -#define LED1_PIN (GPIO_PIN_2) +#define LED1_PERIPH SYSCTL_PERIPH_GPIOF +#define LED1_PORT GPIO_PORTF_BASE +#define LED1_PIN GPIO_PIN_2 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S8630 @@ -18890,101 +34474,101 @@ //***************************************************************************** #ifdef PART_LM3S8730 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define LED0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED0_PORT (GPIO_PORTF_BASE) -#define LED0_PIN (GPIO_PIN_3) +#define LED0_PERIPH SYSCTL_PERIPH_GPIOF +#define LED0_PORT GPIO_PORTF_BASE +#define LED0_PIN GPIO_PIN_3 -#define LED1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED1_PORT (GPIO_PORTF_BASE) -#define LED1_PIN (GPIO_PIN_2) +#define LED1_PERIPH SYSCTL_PERIPH_GPIOF +#define LED1_PORT GPIO_PORTF_BASE +#define LED1_PIN GPIO_PIN_2 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S8730 @@ -18995,141 +34579,141 @@ //***************************************************************************** #ifdef PART_LM3S8733 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOD) -#define C0O_PORT (GPIO_PORTD_BASE) -#define C0O_PIN (GPIO_PIN_7) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOD +#define C0O_PORT GPIO_PORTD_BASE +#define C0O_PIN GPIO_PIN_7 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1O_PORT (GPIO_PORTC_BASE) -#define C1O_PIN (GPIO_PIN_5) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOC +#define C1O_PORT GPIO_PORTC_BASE +#define C1O_PIN GPIO_PIN_5 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define C2_MINUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_MINUS_PORT (GPIO_PORTC_BASE) -#define C2_MINUS_PIN (GPIO_PIN_7) +#define C2_MINUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_MINUS_PORT GPIO_PORTC_BASE +#define C2_MINUS_PIN GPIO_PIN_7 -#define C2_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_PLUS_PORT (GPIO_PORTC_BASE) -#define C2_PLUS_PIN (GPIO_PIN_6) +#define C2_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_PLUS_PORT GPIO_PORTC_BASE +#define C2_PLUS_PIN GPIO_PIN_6 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP3_PORT (GPIO_PORTD_BASE) -#define CCP3_PIN (GPIO_PIN_4) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP3_PORT GPIO_PORTD_BASE +#define CCP3_PIN GPIO_PIN_4 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define LED0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED0_PORT (GPIO_PORTF_BASE) -#define LED0_PIN (GPIO_PIN_3) +#define LED0_PERIPH SYSCTL_PERIPH_GPIOF +#define LED0_PORT GPIO_PORTF_BASE +#define LED0_PIN GPIO_PIN_3 -#define LED1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED1_PORT (GPIO_PORTF_BASE) -#define LED1_PIN (GPIO_PIN_2) +#define LED1_PERIPH SYSCTL_PERIPH_GPIOF +#define LED1_PORT GPIO_PORTF_BASE +#define LED1_PIN GPIO_PIN_2 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S8733 @@ -19140,153 +34724,153 @@ //***************************************************************************** #ifdef PART_LM3S8738 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C0O_PORT (GPIO_PORTC_BASE) -#define C0O_PIN (GPIO_PIN_5) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOC +#define C0O_PORT GPIO_PORTC_BASE +#define C0O_PIN GPIO_PIN_5 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP4_PORT (GPIO_PORTA_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP4_PORT GPIO_PORTA_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP5_PORT (GPIO_PORTB_BASE) -#define CCP5_PIN (GPIO_PIN_5) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP5_PORT GPIO_PORTB_BASE +#define CCP5_PIN GPIO_PIN_5 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define LED0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED0_PORT (GPIO_PORTF_BASE) -#define LED0_PIN (GPIO_PIN_3) +#define LED0_PERIPH SYSCTL_PERIPH_GPIOF +#define LED0_PORT GPIO_PORTF_BASE +#define LED0_PIN GPIO_PIN_3 -#define LED1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED1_PORT (GPIO_PORTF_BASE) -#define LED1_PIN (GPIO_PIN_2) +#define LED1_PERIPH SYSCTL_PERIPH_GPIOF +#define LED1_PORT GPIO_PORTF_BASE +#define LED1_PIN GPIO_PIN_2 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 -#define U2RX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2RX_PORT (GPIO_PORTG_BASE) -#define U2RX_PIN (GPIO_PIN_0) +#define U2RX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2RX_PORT GPIO_PORTG_BASE +#define U2RX_PIN GPIO_PIN_0 -#define U2TX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2TX_PORT (GPIO_PORTG_BASE) -#define U2TX_PIN (GPIO_PIN_1) +#define U2TX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2TX_PORT GPIO_PORTG_BASE +#define U2TX_PIN GPIO_PIN_1 #endif // PART_LM3S8738 @@ -19297,101 +34881,101 @@ //***************************************************************************** #ifdef PART_LM3S8930 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CAN1RX_PERIPH (SYSCTL_PERIPH_GPIOF) -#define CAN1RX_PORT (GPIO_PORTF_BASE) -#define CAN1RX_PIN (GPIO_PIN_0) +#define CAN1RX_PERIPH SYSCTL_PERIPH_GPIOF +#define CAN1RX_PORT GPIO_PORTF_BASE +#define CAN1RX_PIN GPIO_PIN_0 -#define CAN1TX_PERIPH (SYSCTL_PERIPH_GPIOF) -#define CAN1TX_PORT (GPIO_PORTF_BASE) -#define CAN1TX_PIN (GPIO_PIN_1) +#define CAN1TX_PERIPH SYSCTL_PERIPH_GPIOF +#define CAN1TX_PORT GPIO_PORTF_BASE +#define CAN1TX_PIN GPIO_PIN_1 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define LED0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED0_PORT (GPIO_PORTF_BASE) -#define LED0_PIN (GPIO_PIN_3) +#define LED0_PERIPH SYSCTL_PERIPH_GPIOF +#define LED0_PORT GPIO_PORTF_BASE +#define LED0_PIN GPIO_PIN_3 -#define LED1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED1_PORT (GPIO_PORTF_BASE) -#define LED1_PIN (GPIO_PIN_2) +#define LED1_PERIPH SYSCTL_PERIPH_GPIOF +#define LED1_PORT GPIO_PORTF_BASE +#define LED1_PIN GPIO_PIN_2 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 #endif // PART_LM3S8930 @@ -19402,141 +34986,141 @@ //***************************************************************************** #ifdef PART_LM3S8933 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOD) -#define C0O_PORT (GPIO_PORTD_BASE) -#define C0O_PIN (GPIO_PIN_7) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOD +#define C0O_PORT GPIO_PORTD_BASE +#define C0O_PIN GPIO_PIN_7 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1O_PORT (GPIO_PORTC_BASE) -#define C1O_PIN (GPIO_PIN_5) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOC +#define C1O_PORT GPIO_PORTC_BASE +#define C1O_PIN GPIO_PIN_5 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define C2_MINUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_MINUS_PORT (GPIO_PORTC_BASE) -#define C2_MINUS_PIN (GPIO_PIN_7) +#define C2_MINUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_MINUS_PORT GPIO_PORTC_BASE +#define C2_MINUS_PIN GPIO_PIN_7 -#define C2_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_PLUS_PORT (GPIO_PORTC_BASE) -#define C2_PLUS_PIN (GPIO_PIN_6) +#define C2_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_PLUS_PORT GPIO_PORTC_BASE +#define C2_PLUS_PIN GPIO_PIN_6 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP3_PORT (GPIO_PORTD_BASE) -#define CCP3_PIN (GPIO_PIN_4) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP3_PORT GPIO_PORTD_BASE +#define CCP3_PIN GPIO_PIN_4 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define LED0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED0_PORT (GPIO_PORTF_BASE) -#define LED0_PIN (GPIO_PIN_3) +#define LED0_PERIPH SYSCTL_PERIPH_GPIOF +#define LED0_PORT GPIO_PORTF_BASE +#define LED0_PIN GPIO_PIN_3 -#define LED1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED1_PORT (GPIO_PORTF_BASE) -#define LED1_PIN (GPIO_PIN_2) +#define LED1_PERIPH SYSCTL_PERIPH_GPIOF +#define LED1_PORT GPIO_PORTF_BASE +#define LED1_PIN GPIO_PIN_2 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S8933 @@ -19547,169 +35131,169 @@ //***************************************************************************** #ifdef PART_LM3S8938 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0O_PORT (GPIO_PORTB_BASE) -#define C0O_PIN (GPIO_PIN_6) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOB +#define C0O_PORT GPIO_PORTB_BASE +#define C0O_PIN GPIO_PIN_6 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define C1O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1O_PORT (GPIO_PORTC_BASE) -#define C1O_PIN (GPIO_PIN_5) +#define C1O_PERIPH SYSCTL_PERIPH_GPIOC +#define C1O_PORT GPIO_PORTC_BASE +#define C1O_PIN GPIO_PIN_5 -#define C1_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C1_MINUS_PORT (GPIO_PORTB_BASE) -#define C1_MINUS_PIN (GPIO_PIN_5) +#define C1_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C1_MINUS_PORT GPIO_PORTB_BASE +#define C1_MINUS_PIN GPIO_PIN_5 -#define C1_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C1_PLUS_PORT (GPIO_PORTC_BASE) -#define C1_PLUS_PIN (GPIO_PIN_5) +#define C1_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C1_PLUS_PORT GPIO_PORTC_BASE +#define C1_PLUS_PIN GPIO_PIN_5 -#define C2O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2O_PORT (GPIO_PORTC_BASE) -#define C2O_PIN (GPIO_PIN_6) +#define C2O_PERIPH SYSCTL_PERIPH_GPIOC +#define C2O_PORT GPIO_PORTC_BASE +#define C2O_PIN GPIO_PIN_6 -#define C2_MINUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_MINUS_PORT (GPIO_PORTC_BASE) -#define C2_MINUS_PIN (GPIO_PIN_7) +#define C2_MINUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_MINUS_PORT GPIO_PORTC_BASE +#define C2_MINUS_PIN GPIO_PIN_7 -#define C2_PLUS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C2_PLUS_PORT (GPIO_PORTC_BASE) -#define C2_PLUS_PIN (GPIO_PIN_6) +#define C2_PLUS_PERIPH SYSCTL_PERIPH_GPIOC +#define C2_PLUS_PORT GPIO_PORTC_BASE +#define C2_PLUS_PIN GPIO_PIN_6 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP1_PORT (GPIO_PORTE_BASE) -#define CCP1_PIN (GPIO_PIN_3) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP1_PORT GPIO_PORTE_BASE +#define CCP1_PIN GPIO_PIN_3 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP3_PORT (GPIO_PORTE_BASE) -#define CCP3_PIN (GPIO_PIN_0) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP3_PORT GPIO_PORTE_BASE +#define CCP3_PIN GPIO_PIN_0 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CCP4_PORT (GPIO_PORTE_BASE) -#define CCP4_PIN (GPIO_PIN_2) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOE +#define CCP4_PORT GPIO_PORTE_BASE +#define CCP4_PIN GPIO_PIN_2 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP5_PORT (GPIO_PORTC_BASE) -#define CCP5_PIN (GPIO_PIN_4) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP5_PORT GPIO_PORTC_BASE +#define CCP5_PIN GPIO_PIN_4 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define I2C1SCL_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SCL_PORT (GPIO_PORTA_BASE) -#define I2C1SCL_PIN (GPIO_PIN_6) +#define I2C1SCL_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SCL_PORT GPIO_PORTA_BASE +#define I2C1SCL_PIN GPIO_PIN_6 -#define I2C1SDA_PERIPH (SYSCTL_PERIPH_GPIOA) -#define I2C1SDA_PORT (GPIO_PORTA_BASE) -#define I2C1SDA_PIN (GPIO_PIN_7) +#define I2C1SDA_PERIPH SYSCTL_PERIPH_GPIOA +#define I2C1SDA_PORT GPIO_PORTA_BASE +#define I2C1SDA_PIN GPIO_PIN_7 -#define LED0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED0_PORT (GPIO_PORTF_BASE) -#define LED0_PIN (GPIO_PIN_3) +#define LED0_PERIPH SYSCTL_PERIPH_GPIOF +#define LED0_PORT GPIO_PORTF_BASE +#define LED0_PIN GPIO_PIN_3 -#define LED1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED1_PORT (GPIO_PORTF_BASE) -#define LED1_PIN (GPIO_PIN_2) +#define LED1_PERIPH SYSCTL_PERIPH_GPIOF +#define LED1_PORT GPIO_PORTF_BASE +#define LED1_PIN GPIO_PIN_2 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 -#define U2RX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2RX_PORT (GPIO_PORTG_BASE) -#define U2RX_PIN (GPIO_PIN_0) +#define U2RX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2RX_PORT GPIO_PORTG_BASE +#define U2RX_PIN GPIO_PIN_0 -#define U2TX_PERIPH (SYSCTL_PERIPH_GPIOG) -#define U2TX_PORT (GPIO_PORTG_BASE) -#define U2TX_PIN (GPIO_PIN_1) +#define U2TX_PERIPH SYSCTL_PERIPH_GPIOG +#define U2TX_PORT GPIO_PORTG_BASE +#define U2TX_PIN GPIO_PIN_1 #endif // PART_LM3S8938 @@ -19720,165 +35304,165 @@ //***************************************************************************** #ifdef PART_LM3S8962 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0O_PORT (GPIO_PORTB_BASE) -#define C0O_PIN (GPIO_PIN_5) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOB +#define C0O_PORT GPIO_PORTB_BASE +#define C0O_PIN GPIO_PIN_5 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CCP0_PORT (GPIO_PORTD_BASE) -#define CCP0_PIN (GPIO_PIN_4) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOD +#define CCP0_PORT GPIO_PORTD_BASE +#define CCP0_PIN GPIO_PIN_4 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOD) -#define FAULT_PORT (GPIO_PORTD_BASE) -#define FAULT_PIN (GPIO_PIN_6) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOD +#define FAULT_PORT GPIO_PORTD_BASE +#define FAULT_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define IDX0_PERIPH (SYSCTL_PERIPH_GPIOD) -#define IDX0_PORT (GPIO_PORTD_BASE) -#define IDX0_PIN (GPIO_PIN_7) +#define IDX0_PERIPH SYSCTL_PERIPH_GPIOD +#define IDX0_PORT GPIO_PORTD_BASE +#define IDX0_PIN GPIO_PIN_7 -#define IDX1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define IDX1_PORT (GPIO_PORTF_BASE) -#define IDX1_PIN (GPIO_PIN_1) +#define IDX1_PERIPH SYSCTL_PERIPH_GPIOF +#define IDX1_PORT GPIO_PORTF_BASE +#define IDX1_PIN GPIO_PIN_1 -#define LED0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED0_PORT (GPIO_PORTF_BASE) -#define LED0_PIN (GPIO_PIN_3) +#define LED0_PERIPH SYSCTL_PERIPH_GPIOF +#define LED0_PORT GPIO_PORTF_BASE +#define LED0_PIN GPIO_PIN_3 -#define LED1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED1_PORT (GPIO_PORTF_BASE) -#define LED1_PIN (GPIO_PIN_2) +#define LED1_PERIPH SYSCTL_PERIPH_GPIOF +#define LED1_PORT GPIO_PORTF_BASE +#define LED1_PIN GPIO_PIN_2 -#define PHA0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHA0_PORT (GPIO_PORTC_BASE) -#define PHA0_PIN (GPIO_PIN_4) +#define PHA0_PERIPH SYSCTL_PERIPH_GPIOC +#define PHA0_PORT GPIO_PORTC_BASE +#define PHA0_PIN GPIO_PIN_4 -#define PHA1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PHA1_PORT (GPIO_PORTE_BASE) -#define PHA1_PIN (GPIO_PIN_3) +#define PHA1_PERIPH SYSCTL_PERIPH_GPIOE +#define PHA1_PORT GPIO_PORTE_BASE +#define PHA1_PIN GPIO_PIN_3 -#define PHB0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHB0_PORT (GPIO_PORTC_BASE) -#define PHB0_PIN (GPIO_PIN_6) +#define PHB0_PERIPH SYSCTL_PERIPH_GPIOC +#define PHB0_PORT GPIO_PORTC_BASE +#define PHB0_PIN GPIO_PIN_6 -#define PHB1_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PHB1_PORT (GPIO_PORTE_BASE) -#define PHB1_PIN (GPIO_PIN_2) +#define PHB1_PERIPH SYSCTL_PERIPH_GPIOE +#define PHB1_PORT GPIO_PORTE_BASE +#define PHB1_PIN GPIO_PIN_2 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM0_PORT (GPIO_PORTF_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM0_PORT GPIO_PORTF_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOG) -#define PWM1_PORT (GPIO_PORTG_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOG +#define PWM1_PORT GPIO_PORTG_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM2_PORT (GPIO_PORTB_BASE) -#define PWM2_PIN (GPIO_PIN_0) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM2_PORT GPIO_PORTB_BASE +#define PWM2_PIN GPIO_PIN_0 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOB) -#define PWM3_PORT (GPIO_PORTB_BASE) -#define PWM3_PIN (GPIO_PIN_1) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOB +#define PWM3_PORT GPIO_PORTB_BASE +#define PWM3_PIN GPIO_PIN_1 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM4_PORT (GPIO_PORTE_BASE) -#define PWM4_PIN (GPIO_PIN_0) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM4_PORT GPIO_PORTE_BASE +#define PWM4_PIN GPIO_PIN_0 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM5_PORT (GPIO_PORTE_BASE) -#define PWM5_PIN (GPIO_PIN_1) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM5_PORT GPIO_PORTE_BASE +#define PWM5_PIN GPIO_PIN_1 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S8962 @@ -19889,133 +35473,133 @@ //***************************************************************************** #ifdef PART_LM3S8970 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CAN1RX_PERIPH (SYSCTL_PERIPH_GPIOF) -#define CAN1RX_PORT (GPIO_PORTF_BASE) -#define CAN1RX_PIN (GPIO_PIN_0) +#define CAN1RX_PERIPH SYSCTL_PERIPH_GPIOF +#define CAN1RX_PORT GPIO_PORTF_BASE +#define CAN1RX_PIN GPIO_PIN_0 -#define CAN1TX_PERIPH (SYSCTL_PERIPH_GPIOF) -#define CAN1TX_PORT (GPIO_PORTF_BASE) -#define CAN1TX_PIN (GPIO_PIN_1) +#define CAN1TX_PERIPH SYSCTL_PERIPH_GPIOF +#define CAN1TX_PORT GPIO_PORTF_BASE +#define CAN1TX_PIN GPIO_PIN_1 -#define CAN2RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CAN2RX_PORT (GPIO_PORTE_BASE) -#define CAN2RX_PIN (GPIO_PIN_4) +#define CAN2RX_PERIPH SYSCTL_PERIPH_GPIOE +#define CAN2RX_PORT GPIO_PORTE_BASE +#define CAN2RX_PIN GPIO_PIN_4 -#define CAN2TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define CAN2TX_PORT (GPIO_PORTE_BASE) -#define CAN2TX_PIN (GPIO_PIN_5) +#define CAN2TX_PERIPH SYSCTL_PERIPH_GPIOE +#define CAN2TX_PORT GPIO_PORTE_BASE +#define CAN2TX_PIN GPIO_PIN_5 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define I2C0SCL_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SCL_PORT (GPIO_PORTB_BASE) -#define I2C0SCL_PIN (GPIO_PIN_2) +#define I2C0SCL_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SCL_PORT GPIO_PORTB_BASE +#define I2C0SCL_PIN GPIO_PIN_2 -#define I2C0SDA_PERIPH (SYSCTL_PERIPH_GPIOB) -#define I2C0SDA_PORT (GPIO_PORTB_BASE) -#define I2C0SDA_PIN (GPIO_PIN_3) +#define I2C0SDA_PERIPH SYSCTL_PERIPH_GPIOB +#define I2C0SDA_PORT GPIO_PORTB_BASE +#define I2C0SDA_PIN GPIO_PIN_3 -#define LED0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED0_PORT (GPIO_PORTF_BASE) -#define LED0_PIN (GPIO_PIN_3) +#define LED0_PERIPH SYSCTL_PERIPH_GPIOF +#define LED0_PORT GPIO_PORTF_BASE +#define LED0_PIN GPIO_PIN_3 -#define LED1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED1_PORT (GPIO_PORTF_BASE) -#define LED1_PIN (GPIO_PIN_2) +#define LED1_PERIPH SYSCTL_PERIPH_GPIOF +#define LED1_PORT GPIO_PORTF_BASE +#define LED1_PIN GPIO_PIN_2 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SSI1CLK_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1CLK_PORT (GPIO_PORTE_BASE) -#define SSI1CLK_PIN (GPIO_PIN_0) +#define SSI1CLK_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1CLK_PORT GPIO_PORTE_BASE +#define SSI1CLK_PIN GPIO_PIN_0 -#define SSI1FSS_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1FSS_PORT (GPIO_PORTE_BASE) -#define SSI1FSS_PIN (GPIO_PIN_1) +#define SSI1FSS_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1FSS_PORT GPIO_PORTE_BASE +#define SSI1FSS_PIN GPIO_PIN_1 -#define SSI1RX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1RX_PORT (GPIO_PORTE_BASE) -#define SSI1RX_PIN (GPIO_PIN_2) +#define SSI1RX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1RX_PORT GPIO_PORTE_BASE +#define SSI1RX_PIN GPIO_PIN_2 -#define SSI1TX_PERIPH (SYSCTL_PERIPH_GPIOE) -#define SSI1TX_PORT (GPIO_PORTE_BASE) -#define SSI1TX_PIN (GPIO_PIN_3) +#define SSI1TX_PERIPH SYSCTL_PERIPH_GPIOE +#define SSI1TX_PORT GPIO_PORTE_BASE +#define SSI1TX_PIN GPIO_PIN_3 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 -#define U1RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1RX_PORT (GPIO_PORTD_BASE) -#define U1RX_PIN (GPIO_PIN_2) +#define U1RX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1RX_PORT GPIO_PORTD_BASE +#define U1RX_PIN GPIO_PIN_2 -#define U1TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define U1TX_PORT (GPIO_PORTD_BASE) -#define U1TX_PIN (GPIO_PIN_3) +#define U1TX_PERIPH SYSCTL_PERIPH_GPIOD +#define U1TX_PORT GPIO_PORTD_BASE +#define U1TX_PIN GPIO_PIN_3 #endif // PART_LM3S8970 @@ -20026,156 +35610,21518 @@ //***************************************************************************** #ifdef PART_LM3S8971 -#define C0O_PERIPH (SYSCTL_PERIPH_GPIOC) -#define C0O_PORT (GPIO_PORTC_BASE) -#define C0O_PIN (GPIO_PIN_5) +#define C0O_PERIPH SYSCTL_PERIPH_GPIOC +#define C0O_PORT GPIO_PORTC_BASE +#define C0O_PIN GPIO_PIN_5 -#define C0_MINUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_MINUS_PORT (GPIO_PORTB_BASE) -#define C0_MINUS_PIN (GPIO_PIN_4) +#define C0_MINUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_MINUS_PORT GPIO_PORTB_BASE +#define C0_MINUS_PIN GPIO_PIN_4 -#define C0_PLUS_PERIPH (SYSCTL_PERIPH_GPIOB) -#define C0_PLUS_PORT (GPIO_PORTB_BASE) -#define C0_PLUS_PIN (GPIO_PIN_6) +#define C0_PLUS_PERIPH SYSCTL_PERIPH_GPIOB +#define C0_PLUS_PORT GPIO_PORTB_BASE +#define C0_PLUS_PIN GPIO_PIN_6 -#define CAN0RX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0RX_PORT (GPIO_PORTD_BASE) -#define CAN0RX_PIN (GPIO_PIN_0) +#define CAN0RX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0RX_PORT GPIO_PORTD_BASE +#define CAN0RX_PIN GPIO_PIN_0 -#define CAN0TX_PERIPH (SYSCTL_PERIPH_GPIOD) -#define CAN0TX_PORT (GPIO_PORTD_BASE) -#define CAN0TX_PIN (GPIO_PIN_1) +#define CAN0TX_PERIPH SYSCTL_PERIPH_GPIOD +#define CAN0TX_PORT GPIO_PORTD_BASE +#define CAN0TX_PIN GPIO_PIN_1 -#define CCP0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP0_PORT (GPIO_PORTB_BASE) -#define CCP0_PIN (GPIO_PIN_0) +#define CCP0_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP0_PORT GPIO_PORTB_BASE +#define CCP0_PIN GPIO_PIN_0 -#define CCP1_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP1_PORT (GPIO_PORTA_BASE) -#define CCP1_PIN (GPIO_PIN_6) +#define CCP1_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP1_PORT GPIO_PORTA_BASE +#define CCP1_PIN GPIO_PIN_6 -#define CCP2_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP2_PORT (GPIO_PORTB_BASE) -#define CCP2_PIN (GPIO_PIN_1) +#define CCP2_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP2_PORT GPIO_PORTB_BASE +#define CCP2_PIN GPIO_PIN_1 -#define CCP3_PERIPH (SYSCTL_PERIPH_GPIOC) -#define CCP3_PORT (GPIO_PORTC_BASE) -#define CCP3_PIN (GPIO_PIN_6) +#define CCP3_PERIPH SYSCTL_PERIPH_GPIOC +#define CCP3_PORT GPIO_PORTC_BASE +#define CCP3_PIN GPIO_PIN_6 -#define CCP4_PERIPH (SYSCTL_PERIPH_GPIOA) -#define CCP4_PORT (GPIO_PORTA_BASE) -#define CCP4_PIN (GPIO_PIN_7) +#define CCP4_PERIPH SYSCTL_PERIPH_GPIOA +#define CCP4_PORT GPIO_PORTA_BASE +#define CCP4_PIN GPIO_PIN_7 -#define CCP5_PERIPH (SYSCTL_PERIPH_GPIOB) -#define CCP5_PORT (GPIO_PORTB_BASE) -#define CCP5_PIN (GPIO_PIN_5) +#define CCP5_PERIPH SYSCTL_PERIPH_GPIOB +#define CCP5_PORT GPIO_PORTB_BASE +#define CCP5_PIN GPIO_PIN_5 -#define FAULT_PERIPH (SYSCTL_PERIPH_GPIOB) -#define FAULT_PORT (GPIO_PORTB_BASE) -#define FAULT_PIN (GPIO_PIN_3) +#define FAULT_PERIPH SYSCTL_PERIPH_GPIOB +#define FAULT_PORT GPIO_PORTB_BASE +#define FAULT_PIN GPIO_PIN_3 -#define IDX0_PERIPH (SYSCTL_PERIPH_GPIOB) -#define IDX0_PORT (GPIO_PORTB_BASE) -#define IDX0_PIN (GPIO_PIN_2) +#define IDX0_PERIPH SYSCTL_PERIPH_GPIOB +#define IDX0_PORT GPIO_PORTB_BASE +#define IDX0_PIN GPIO_PIN_2 -#define LED0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED0_PORT (GPIO_PORTF_BASE) -#define LED0_PIN (GPIO_PIN_3) +#define LED0_PERIPH SYSCTL_PERIPH_GPIOF +#define LED0_PORT GPIO_PORTF_BASE +#define LED0_PIN GPIO_PIN_3 -#define LED1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define LED1_PORT (GPIO_PORTF_BASE) -#define LED1_PIN (GPIO_PIN_2) +#define LED1_PERIPH SYSCTL_PERIPH_GPIOF +#define LED1_PORT GPIO_PORTF_BASE +#define LED1_PIN GPIO_PIN_2 -#define PHA0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHA0_PORT (GPIO_PORTC_BASE) -#define PHA0_PIN (GPIO_PIN_4) +#define PHA0_PERIPH SYSCTL_PERIPH_GPIOC +#define PHA0_PORT GPIO_PORTC_BASE +#define PHA0_PIN GPIO_PIN_4 -#define PHB0_PERIPH (SYSCTL_PERIPH_GPIOC) -#define PHB0_PORT (GPIO_PORTC_BASE) -#define PHB0_PIN (GPIO_PIN_7) +#define PHB0_PERIPH SYSCTL_PERIPH_GPIOC +#define PHB0_PORT GPIO_PORTC_BASE +#define PHB0_PIN GPIO_PIN_7 -#define PWM0_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM0_PORT (GPIO_PORTF_BASE) -#define PWM0_PIN (GPIO_PIN_0) +#define PWM0_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM0_PORT GPIO_PORTF_BASE +#define PWM0_PIN GPIO_PIN_0 -#define PWM1_PERIPH (SYSCTL_PERIPH_GPIOF) -#define PWM1_PORT (GPIO_PORTF_BASE) -#define PWM1_PIN (GPIO_PIN_1) +#define PWM1_PERIPH SYSCTL_PERIPH_GPIOF +#define PWM1_PORT GPIO_PORTF_BASE +#define PWM1_PIN GPIO_PIN_1 -#define PWM2_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM2_PORT (GPIO_PORTD_BASE) -#define PWM2_PIN (GPIO_PIN_2) +#define PWM2_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM2_PORT GPIO_PORTD_BASE +#define PWM2_PIN GPIO_PIN_2 -#define PWM3_PERIPH (SYSCTL_PERIPH_GPIOD) -#define PWM3_PORT (GPIO_PORTD_BASE) -#define PWM3_PIN (GPIO_PIN_3) +#define PWM3_PERIPH SYSCTL_PERIPH_GPIOD +#define PWM3_PORT GPIO_PORTD_BASE +#define PWM3_PIN GPIO_PIN_3 -#define PWM4_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM4_PORT (GPIO_PORTE_BASE) -#define PWM4_PIN (GPIO_PIN_0) +#define PWM4_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM4_PORT GPIO_PORTE_BASE +#define PWM4_PIN GPIO_PIN_0 -#define PWM5_PERIPH (SYSCTL_PERIPH_GPIOE) -#define PWM5_PORT (GPIO_PORTE_BASE) -#define PWM5_PIN (GPIO_PIN_1) +#define PWM5_PERIPH SYSCTL_PERIPH_GPIOE +#define PWM5_PORT GPIO_PORTE_BASE +#define PWM5_PIN GPIO_PIN_1 -#define SSI0CLK_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0CLK_PORT (GPIO_PORTA_BASE) -#define SSI0CLK_PIN (GPIO_PIN_2) +#define SSI0CLK_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0CLK_PORT GPIO_PORTA_BASE +#define SSI0CLK_PIN GPIO_PIN_2 -#define SSI0FSS_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0FSS_PORT (GPIO_PORTA_BASE) -#define SSI0FSS_PIN (GPIO_PIN_3) +#define SSI0FSS_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0FSS_PORT GPIO_PORTA_BASE +#define SSI0FSS_PIN GPIO_PIN_3 -#define SSI0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0RX_PORT (GPIO_PORTA_BASE) -#define SSI0RX_PIN (GPIO_PIN_4) +#define SSI0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0RX_PORT GPIO_PORTA_BASE +#define SSI0RX_PIN GPIO_PIN_4 -#define SSI0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define SSI0TX_PORT (GPIO_PORTA_BASE) -#define SSI0TX_PIN (GPIO_PIN_5) +#define SSI0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define SSI0TX_PORT GPIO_PORTA_BASE +#define SSI0TX_PIN GPIO_PIN_5 -#define SWCLK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWCLK_PORT (GPIO_PORTC_BASE) -#define SWCLK_PIN (GPIO_PIN_0) +#define SWCLK_PERIPH SYSCTL_PERIPH_GPIOC +#define SWCLK_PORT GPIO_PORTC_BASE +#define SWCLK_PIN GPIO_PIN_0 -#define SWDIO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWDIO_PORT (GPIO_PORTC_BASE) -#define SWDIO_PIN (GPIO_PIN_1) +#define SWDIO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWDIO_PORT GPIO_PORTC_BASE +#define SWDIO_PIN GPIO_PIN_1 -#define SWO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define SWO_PORT (GPIO_PORTC_BASE) -#define SWO_PIN (GPIO_PIN_3) +#define SWO_PERIPH SYSCTL_PERIPH_GPIOC +#define SWO_PORT GPIO_PORTC_BASE +#define SWO_PIN GPIO_PIN_3 -#define TCK_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TCK_PORT (GPIO_PORTC_BASE) -#define TCK_PIN (GPIO_PIN_0) +#define TCK_PERIPH SYSCTL_PERIPH_GPIOC +#define TCK_PORT GPIO_PORTC_BASE +#define TCK_PIN GPIO_PIN_0 -#define TDI_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDI_PORT (GPIO_PORTC_BASE) -#define TDI_PIN (GPIO_PIN_2) +#define TDI_PERIPH SYSCTL_PERIPH_GPIOC +#define TDI_PORT GPIO_PORTC_BASE +#define TDI_PIN GPIO_PIN_2 -#define TDO_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TDO_PORT (GPIO_PORTC_BASE) -#define TDO_PIN (GPIO_PIN_3) +#define TDO_PERIPH SYSCTL_PERIPH_GPIOC +#define TDO_PORT GPIO_PORTC_BASE +#define TDO_PIN GPIO_PIN_3 -#define TMS_PERIPH (SYSCTL_PERIPH_GPIOC) -#define TMS_PORT (GPIO_PORTC_BASE) -#define TMS_PIN (GPIO_PIN_1) +#define TMS_PERIPH SYSCTL_PERIPH_GPIOC +#define TMS_PORT GPIO_PORTC_BASE +#define TMS_PIN GPIO_PIN_1 -#define TRST_PERIPH (SYSCTL_PERIPH_GPIOB) -#define TRST_PORT (GPIO_PORTB_BASE) -#define TRST_PIN (GPIO_PIN_7) +#define TRST_PERIPH SYSCTL_PERIPH_GPIOB +#define TRST_PORT GPIO_PORTB_BASE +#define TRST_PIN GPIO_PIN_7 -#define U0RX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0RX_PORT (GPIO_PORTA_BASE) -#define U0RX_PIN (GPIO_PIN_0) +#define U0RX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0RX_PORT GPIO_PORTA_BASE +#define U0RX_PIN GPIO_PIN_0 -#define U0TX_PERIPH (SYSCTL_PERIPH_GPIOA) -#define U0TX_PORT (GPIO_PORTA_BASE) -#define U0TX_PIN (GPIO_PIN_1) +#define U0TX_PERIPH SYSCTL_PERIPH_GPIOA +#define U0TX_PORT GPIO_PORTA_BASE +#define U0TX_PIN GPIO_PIN_1 #endif // PART_LM3S8971 +//***************************************************************************** +// +// LM3S8C62 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S8C62 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_CAN0RX 0x00001005 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_CAN0TX 0x00001405 + +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 + +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 + +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 + +#define GPIO_PD6_FAULT0 0x00031801 + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_CCP3 0x00040003 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_CCP2 0x00041006 + +#define GPIO_PE5_CCP5 0x00041401 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 + +#define GPIO_PE7_PWM5 0x00041C01 + +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_LED1 0x00050801 +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 + +#define GPIO_PF3_LED0 0x00050C01 +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 + +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_PWM4 0x00060004 + +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_PWM5 0x00060404 + +#endif // PART_LM3S8C62 + +//***************************************************************************** +// +// LM3S8G62 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S8G62 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_CAN0RX 0x00001005 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_CAN0TX 0x00001405 + +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 + +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 + +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 + +#define GPIO_PD6_FAULT0 0x00031801 + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_CCP3 0x00040003 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_CCP2 0x00041006 + +#define GPIO_PE5_CCP5 0x00041401 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 + +#define GPIO_PE7_PWM5 0x00041C01 + +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_LED1 0x00050801 +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 + +#define GPIO_PF3_LED0 0x00050C01 +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 + +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_PWM4 0x00060004 + +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_PWM5 0x00060404 + +#endif // PART_LM3S8G62 + +//***************************************************************************** +// +// LM3S9781 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S9781 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_C2O 0x00021803 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_CAN2RX 0x00041002 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_CAN2TX 0x00041402 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_C2O 0x00041C02 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_LED1 0x00050801 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_LED0 0x00050C01 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_USB0EPEN 0x00060007 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_EPI0S6 0x00070008 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_EPI0S7 0x00070408 + +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_USB0EPEN 0x00070C04 +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 + +#define GPIO_PJ3_EPI0S19 0x00080C08 +#define GPIO_PJ3_U1CTS 0x00080C09 +#define GPIO_PJ3_CCP6 0x00080C0A + +#define GPIO_PJ4_EPI0S28 0x00081008 +#define GPIO_PJ4_U1DCD 0x00081009 +#define GPIO_PJ4_CCP4 0x0008100A + +#define GPIO_PJ5_EPI0S29 0x00081408 +#define GPIO_PJ5_U1DSR 0x00081409 +#define GPIO_PJ5_CCP2 0x0008140A + +#define GPIO_PJ6_EPI0S30 0x00081808 +#define GPIO_PJ6_U1RTS 0x00081809 +#define GPIO_PJ6_CCP1 0x0008180A + +#define GPIO_PJ7_U1DTR 0x00081C09 +#define GPIO_PJ7_CCP0 0x00081C0A + +#endif // PART_LM3S9781 + +//***************************************************************************** +// +// LM3S9790 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S9790 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_C2O 0x00021803 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_C2O 0x00041C02 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_LED1 0x00050801 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_LED0 0x00050C01 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_USB0EPEN 0x00060007 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_EPI0S6 0x00070008 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_EPI0S7 0x00070408 + +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_USB0EPEN 0x00070C04 +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 + +#endif // PART_LM3S9790 + +//***************************************************************************** +// +// LM3S9792 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S9792 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_PWM6 0x00001004 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_PWM7 0x00001404 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_PWM6 0x00021004 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_C2O 0x00021803 +#define GPIO_PC6_PWM7 0x00021804 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_C2O 0x00041C02 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_LED1 0x00050801 +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_LED0 0x00050C01 +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_USB0EPEN 0x00060007 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_PWM7 0x00061C04 +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_EPI0S6 0x00070008 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_EPI0S7 0x00070408 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_USB0EPEN 0x00070C04 +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#define GPIO_PJ3_EPI0S19 0x00080C08 +#define GPIO_PJ3_U1CTS 0x00080C09 +#define GPIO_PJ3_CCP6 0x00080C0A + +#define GPIO_PJ4_EPI0S28 0x00081008 +#define GPIO_PJ4_U1DCD 0x00081009 +#define GPIO_PJ4_CCP4 0x0008100A + +#define GPIO_PJ5_EPI0S29 0x00081408 +#define GPIO_PJ5_U1DSR 0x00081409 +#define GPIO_PJ5_CCP2 0x0008140A + +#define GPIO_PJ6_EPI0S30 0x00081808 +#define GPIO_PJ6_U1RTS 0x00081809 +#define GPIO_PJ6_CCP1 0x0008180A + +#define GPIO_PJ7_U1DTR 0x00081C09 +#define GPIO_PJ7_CCP0 0x00081C0A + +#endif // PART_LM3S9792 + +//***************************************************************************** +// +// LM3S9971 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S9971 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_TXD2 0x00000803 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_TXD1 0x00000C03 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_TXD0 0x00001003 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_RXDV 0x00001403 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_RXCK 0x00001803 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_RXER 0x00001C03 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 +#define GPIO_PB7_RXD1 0x00011C07 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_TXD3 0x00021003 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_RXDV 0x00030007 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_TXER 0x00030407 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_TXD3 0x00031004 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_TXD2 0x00031404 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_TXD1 0x00031804 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_TXD0 0x00031C04 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_RXD0 0x00041007 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_RXCK 0x00050004 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_RXER 0x00050404 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PHYINT 0x00050803 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_MDC 0x00050C03 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_MDIO 0x00051003 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_RXD3 0x00051403 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_RXD2 0x00051803 +#define GPIO_PF6_PHA0 0x00051804 +#define GPIO_PF6_I2S0TXMCLK 0x00051809 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_RXD1 0x00051C03 +#define GPIO_PF7_PHB0 0x00051C04 +#define GPIO_PF7_FAULT1 0x00051C09 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_USB0EPEN 0x00060007 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 + +#define GPIO_PG2_PWM0 0x00060801 +#define GPIO_PG2_COL 0x00060803 +#define GPIO_PG2_FAULT0 0x00060804 +#define GPIO_PG2_IDX1 0x00060808 +#define GPIO_PG2_I2S0RXSD 0x00060809 + +#define GPIO_PG3_PWM1 0x00060C01 +#define GPIO_PG3_CRS 0x00060C03 +#define GPIO_PG3_FAULT2 0x00060C04 +#define GPIO_PG3_FAULT0 0x00060C08 +#define GPIO_PG3_I2S0RXMCLK 0x00060C09 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_RXD0 0x00061003 +#define GPIO_PG4_FAULT1 0x00061004 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_TXEN 0x00061403 +#define GPIO_PG5_IDX0 0x00061404 +#define GPIO_PG5_FAULT1 0x00061405 +#define GPIO_PG5_I2S0RXSCK 0x00061409 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_PHA1 0x00061801 +#define GPIO_PG6_TXCK 0x00061803 +#define GPIO_PG6_FAULT1 0x00061808 +#define GPIO_PG6_I2S0RXWS 0x00061809 +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_TXER 0x00061C03 +#define GPIO_PG7_CCP5 0x00061C08 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 +#define GPIO_PH2_TXD3 0x00070809 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_USB0EPEN 0x00070C04 +#define GPIO_PH3_TXD2 0x00070C09 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_TXD1 0x00071009 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_TXD0 0x00071409 +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_RXDV 0x00071809 +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_RXCK 0x00071C03 +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_RXER 0x00080003 +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#define GPIO_PJ3_U1CTS 0x00080C09 +#define GPIO_PJ3_CCP6 0x00080C0A + +#define GPIO_PJ4_U1DCD 0x00081009 +#define GPIO_PJ4_CCP4 0x0008100A + +#define GPIO_PJ5_U1DSR 0x00081409 +#define GPIO_PJ5_CCP2 0x0008140A + +#define GPIO_PJ6_U1RTS 0x00081809 +#define GPIO_PJ6_CCP1 0x0008180A + +#define GPIO_PJ7_U1DTR 0x00081C09 +#define GPIO_PJ7_CCP0 0x00081C0A + +#endif // PART_LM3S9971 + +//***************************************************************************** +// +// LM3S9997 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S9997 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_LED1 0x00050801 +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_LED0 0x00050C01 +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_USB0EPEN 0x00060007 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_CCP5 0x00061C08 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_USB0EPEN 0x00070C04 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#endif // PART_LM3S9997 + +//***************************************************************************** +// +// LM3S9B81 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S9B81 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_C2O 0x00021803 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_CAN2RX 0x00041002 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_CAN2TX 0x00041402 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_C2O 0x00041C02 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_LED1 0x00050801 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_LED0 0x00050C01 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_USB0EPEN 0x00060007 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_EPI0S6 0x00070008 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_EPI0S7 0x00070408 + +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_USB0EPEN 0x00070C04 +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 + +#define GPIO_PJ3_EPI0S19 0x00080C08 +#define GPIO_PJ3_U1CTS 0x00080C09 +#define GPIO_PJ3_CCP6 0x00080C0A + +#define GPIO_PJ4_EPI0S28 0x00081008 +#define GPIO_PJ4_U1DCD 0x00081009 +#define GPIO_PJ4_CCP4 0x0008100A + +#define GPIO_PJ5_EPI0S29 0x00081408 +#define GPIO_PJ5_U1DSR 0x00081409 +#define GPIO_PJ5_CCP2 0x0008140A + +#define GPIO_PJ6_EPI0S30 0x00081808 +#define GPIO_PJ6_U1RTS 0x00081809 +#define GPIO_PJ6_CCP1 0x0008180A + +#define GPIO_PJ7_U1DTR 0x00081C09 +#define GPIO_PJ7_CCP0 0x00081C0A + +#endif // PART_LM3S9B81 + +//***************************************************************************** +// +// LM3S9B90 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S9B90 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_C2O 0x00021803 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_C2O 0x00041C02 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_LED1 0x00050801 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_LED0 0x00050C01 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_USB0EPEN 0x00060007 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_EPI0S6 0x00070008 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_EPI0S7 0x00070408 + +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_USB0EPEN 0x00070C04 +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 + +#endif // PART_LM3S9B90 + +//***************************************************************************** +// +// LM3S9B92 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S9B92 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_PWM6 0x00001004 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_PWM7 0x00001404 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_PWM6 0x00021004 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_C2O 0x00021803 +#define GPIO_PC6_PWM7 0x00021804 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_C2O 0x00041C02 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_LED1 0x00050801 +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_LED0 0x00050C01 +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_USB0EPEN 0x00060007 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_PWM7 0x00061C04 +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_EPI0S6 0x00070008 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_EPI0S7 0x00070408 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_USB0EPEN 0x00070C04 +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#define GPIO_PJ3_EPI0S19 0x00080C08 +#define GPIO_PJ3_U1CTS 0x00080C09 +#define GPIO_PJ3_CCP6 0x00080C0A + +#define GPIO_PJ4_EPI0S28 0x00081008 +#define GPIO_PJ4_U1DCD 0x00081009 +#define GPIO_PJ4_CCP4 0x0008100A + +#define GPIO_PJ5_EPI0S29 0x00081408 +#define GPIO_PJ5_U1DSR 0x00081409 +#define GPIO_PJ5_CCP2 0x0008140A + +#define GPIO_PJ6_EPI0S30 0x00081808 +#define GPIO_PJ6_U1RTS 0x00081809 +#define GPIO_PJ6_CCP1 0x0008180A + +#define GPIO_PJ7_U1DTR 0x00081C09 +#define GPIO_PJ7_CCP0 0x00081C0A + +#endif // PART_LM3S9B92 + +//***************************************************************************** +// +// LM3S9B95 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S9B95 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_PWM6 0x00001004 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_PWM7 0x00001404 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_PWM6 0x00021004 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_C2O 0x00021803 +#define GPIO_PC6_PWM7 0x00021804 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_C2O 0x00041C02 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_LED1 0x00050801 +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_LED0 0x00050C01 +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_USB0EPEN 0x00060007 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_PWM7 0x00061C04 +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_EPI0S6 0x00070008 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_EPI0S7 0x00070408 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_USB0EPEN 0x00070C04 +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#define GPIO_PJ3_EPI0S19 0x00080C08 +#define GPIO_PJ3_U1CTS 0x00080C09 +#define GPIO_PJ3_CCP6 0x00080C0A + +#define GPIO_PJ4_EPI0S28 0x00081008 +#define GPIO_PJ4_U1DCD 0x00081009 +#define GPIO_PJ4_CCP4 0x0008100A + +#define GPIO_PJ5_EPI0S29 0x00081408 +#define GPIO_PJ5_U1DSR 0x00081409 +#define GPIO_PJ5_CCP2 0x0008140A + +#define GPIO_PJ6_EPI0S30 0x00081808 +#define GPIO_PJ6_U1RTS 0x00081809 +#define GPIO_PJ6_CCP1 0x0008180A + +#define GPIO_PJ7_U1DTR 0x00081C09 +#define GPIO_PJ7_CCP0 0x00081C0A + +#endif // PART_LM3S9B95 + +//***************************************************************************** +// +// LM3S9B96 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S9B96 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_PWM6 0x00001004 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_PWM7 0x00001404 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_PWM6 0x00021004 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_C2O 0x00021803 +#define GPIO_PC6_PWM7 0x00021804 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_C2O 0x00041C02 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_LED1 0x00050801 +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_LED0 0x00050C01 +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_USB0EPEN 0x00060007 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_PWM7 0x00061C04 +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_EPI0S6 0x00070008 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_EPI0S7 0x00070408 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_USB0EPEN 0x00070C04 +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#define GPIO_PJ3_EPI0S19 0x00080C08 +#define GPIO_PJ3_U1CTS 0x00080C09 +#define GPIO_PJ3_CCP6 0x00080C0A + +#define GPIO_PJ4_EPI0S28 0x00081008 +#define GPIO_PJ4_U1DCD 0x00081009 +#define GPIO_PJ4_CCP4 0x0008100A + +#define GPIO_PJ5_EPI0S29 0x00081408 +#define GPIO_PJ5_U1DSR 0x00081409 +#define GPIO_PJ5_CCP2 0x0008140A + +#define GPIO_PJ6_EPI0S30 0x00081808 +#define GPIO_PJ6_U1RTS 0x00081809 +#define GPIO_PJ6_CCP1 0x0008180A + +#define GPIO_PJ7_U1DTR 0x00081C09 +#define GPIO_PJ7_CCP0 0x00081C0A + +#endif // PART_LM3S9B96 + +//***************************************************************************** +// +// LM3S9BN2 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S9BN2 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_TXD2 0x00000803 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_TXD1 0x00000C03 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_TXD0 0x00001003 +#define GPIO_PA4_PWM6 0x00001004 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_RXDV 0x00001403 +#define GPIO_PA5_PWM7 0x00001404 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_RXCK 0x00001803 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_RXER 0x00001C03 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 +#define GPIO_PB7_RXD1 0x00011C07 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_TXD3 0x00021003 +#define GPIO_PC4_PWM6 0x00021004 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_C2O 0x00021803 +#define GPIO_PC6_PWM7 0x00021804 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_RXDV 0x00030007 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_TXER 0x00030407 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_TXD3 0x00031004 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_TXD2 0x00031404 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_TXD1 0x00031804 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_TXD0 0x00031C04 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_RXD0 0x00041007 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_C2O 0x00041C02 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_RXCK 0x00050004 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_RXER 0x00050404 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PHYINT 0x00050803 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_MDC 0x00050C03 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_MDIO 0x00051003 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_RXD3 0x00051403 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_C2O 0x00051802 +#define GPIO_PF6_RXD2 0x00051803 +#define GPIO_PF6_PHA0 0x00051804 +#define GPIO_PF6_I2S0TXMCLK 0x00051809 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_RXD1 0x00051C03 +#define GPIO_PF7_PHB0 0x00051C04 +#define GPIO_PF7_EPI0S12 0x00051C08 +#define GPIO_PF7_FAULT1 0x00051C09 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_USB0EPEN 0x00060007 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG2_PWM0 0x00060801 +#define GPIO_PG2_COL 0x00060803 +#define GPIO_PG2_FAULT0 0x00060804 +#define GPIO_PG2_IDX1 0x00060808 +#define GPIO_PG2_I2S0RXSD 0x00060809 + +#define GPIO_PG3_PWM1 0x00060C01 +#define GPIO_PG3_CRS 0x00060C03 +#define GPIO_PG3_FAULT2 0x00060C04 +#define GPIO_PG3_FAULT0 0x00060C08 +#define GPIO_PG3_I2S0RXMCLK 0x00060C09 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_RXD0 0x00061003 +#define GPIO_PG4_FAULT1 0x00061004 +#define GPIO_PG4_EPI0S15 0x00061008 +#define GPIO_PG4_PWM6 0x00061009 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_TXEN 0x00061403 +#define GPIO_PG5_IDX0 0x00061404 +#define GPIO_PG5_FAULT1 0x00061405 +#define GPIO_PG5_PWM7 0x00061408 +#define GPIO_PG5_I2S0RXSCK 0x00061409 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_PHA1 0x00061801 +#define GPIO_PG6_TXCK 0x00061803 +#define GPIO_PG6_PWM6 0x00061804 +#define GPIO_PG6_FAULT1 0x00061808 +#define GPIO_PG6_I2S0RXWS 0x00061809 +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_TXER 0x00061C03 +#define GPIO_PG7_PWM7 0x00061C04 +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_EPI0S6 0x00070008 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_EPI0S7 0x00070408 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 +#define GPIO_PH2_EPI0S1 0x00070808 +#define GPIO_PH2_TXD3 0x00070809 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_USB0EPEN 0x00070C04 +#define GPIO_PH3_EPI0S0 0x00070C08 +#define GPIO_PH3_TXD2 0x00070C09 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_TXD1 0x00071009 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_TXD0 0x00071409 +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_RXDV 0x00071809 +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_RXCK 0x00071C03 +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_RXER 0x00080003 +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#define GPIO_PJ3_EPI0S19 0x00080C08 +#define GPIO_PJ3_U1CTS 0x00080C09 +#define GPIO_PJ3_CCP6 0x00080C0A + +#define GPIO_PJ4_EPI0S28 0x00081008 +#define GPIO_PJ4_U1DCD 0x00081009 +#define GPIO_PJ4_CCP4 0x0008100A + +#define GPIO_PJ5_EPI0S29 0x00081408 +#define GPIO_PJ5_U1DSR 0x00081409 +#define GPIO_PJ5_CCP2 0x0008140A + +#define GPIO_PJ6_EPI0S30 0x00081808 +#define GPIO_PJ6_U1RTS 0x00081809 +#define GPIO_PJ6_CCP1 0x0008180A + +#define GPIO_PJ7_U1DTR 0x00081C09 +#define GPIO_PJ7_CCP0 0x00081C0A + +#endif // PART_LM3S9BN2 + +//***************************************************************************** +// +// LM3S9BN5 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S9BN5 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_TXD2 0x00000803 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_TXD1 0x00000C03 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_TXD0 0x00001003 +#define GPIO_PA4_PWM6 0x00001004 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_RXDV 0x00001403 +#define GPIO_PA5_PWM7 0x00001404 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_RXCK 0x00001803 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_RXER 0x00001C03 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 +#define GPIO_PB7_RXD1 0x00011C07 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_TXD3 0x00021003 +#define GPIO_PC4_PWM6 0x00021004 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_C2O 0x00021803 +#define GPIO_PC6_PWM7 0x00021804 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_RXDV 0x00030007 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_TXER 0x00030407 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_TXD3 0x00031004 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_TXD2 0x00031404 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_TXD1 0x00031804 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_TXD0 0x00031C04 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_RXD0 0x00041007 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_C2O 0x00041C02 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_RXCK 0x00050004 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_RXER 0x00050404 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PHYINT 0x00050803 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_MDC 0x00050C03 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_MDIO 0x00051003 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_RXD3 0x00051403 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_C2O 0x00051802 +#define GPIO_PF6_RXD2 0x00051803 +#define GPIO_PF6_PHA0 0x00051804 +#define GPIO_PF6_I2S0TXMCLK 0x00051809 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_RXD1 0x00051C03 +#define GPIO_PF7_PHB0 0x00051C04 +#define GPIO_PF7_EPI0S12 0x00051C08 +#define GPIO_PF7_FAULT1 0x00051C09 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_USB0EPEN 0x00060007 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG2_PWM0 0x00060801 +#define GPIO_PG2_COL 0x00060803 +#define GPIO_PG2_FAULT0 0x00060804 +#define GPIO_PG2_IDX1 0x00060808 +#define GPIO_PG2_I2S0RXSD 0x00060809 + +#define GPIO_PG3_PWM1 0x00060C01 +#define GPIO_PG3_CRS 0x00060C03 +#define GPIO_PG3_FAULT2 0x00060C04 +#define GPIO_PG3_FAULT0 0x00060C08 +#define GPIO_PG3_I2S0RXMCLK 0x00060C09 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_RXD0 0x00061003 +#define GPIO_PG4_FAULT1 0x00061004 +#define GPIO_PG4_EPI0S15 0x00061008 +#define GPIO_PG4_PWM6 0x00061009 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_TXEN 0x00061403 +#define GPIO_PG5_IDX0 0x00061404 +#define GPIO_PG5_FAULT1 0x00061405 +#define GPIO_PG5_PWM7 0x00061408 +#define GPIO_PG5_I2S0RXSCK 0x00061409 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_PHA1 0x00061801 +#define GPIO_PG6_TXCK 0x00061803 +#define GPIO_PG6_PWM6 0x00061804 +#define GPIO_PG6_FAULT1 0x00061808 +#define GPIO_PG6_I2S0RXWS 0x00061809 +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_TXER 0x00061C03 +#define GPIO_PG7_PWM7 0x00061C04 +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_EPI0S6 0x00070008 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_EPI0S7 0x00070408 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 +#define GPIO_PH2_EPI0S1 0x00070808 +#define GPIO_PH2_TXD3 0x00070809 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_USB0EPEN 0x00070C04 +#define GPIO_PH3_EPI0S0 0x00070C08 +#define GPIO_PH3_TXD2 0x00070C09 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_TXD1 0x00071009 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_TXD0 0x00071409 +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_RXDV 0x00071809 +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_RXCK 0x00071C03 +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_RXER 0x00080003 +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#define GPIO_PJ3_EPI0S19 0x00080C08 +#define GPIO_PJ3_U1CTS 0x00080C09 +#define GPIO_PJ3_CCP6 0x00080C0A + +#define GPIO_PJ4_EPI0S28 0x00081008 +#define GPIO_PJ4_U1DCD 0x00081009 +#define GPIO_PJ4_CCP4 0x0008100A + +#define GPIO_PJ5_EPI0S29 0x00081408 +#define GPIO_PJ5_U1DSR 0x00081409 +#define GPIO_PJ5_CCP2 0x0008140A + +#define GPIO_PJ6_EPI0S30 0x00081808 +#define GPIO_PJ6_U1RTS 0x00081809 +#define GPIO_PJ6_CCP1 0x0008180A + +#define GPIO_PJ7_U1DTR 0x00081C09 +#define GPIO_PJ7_CCP0 0x00081C0A + +#endif // PART_LM3S9BN5 + +//***************************************************************************** +// +// LM3S9BN6 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S9BN6 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_TXD2 0x00000803 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_TXD1 0x00000C03 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_TXD0 0x00001003 +#define GPIO_PA4_PWM6 0x00001004 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_RXDV 0x00001403 +#define GPIO_PA5_PWM7 0x00001404 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_RXCK 0x00001803 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_RXER 0x00001C03 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 +#define GPIO_PB7_RXD1 0x00011C07 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_TXD3 0x00021003 +#define GPIO_PC4_PWM6 0x00021004 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_C2O 0x00021803 +#define GPIO_PC6_PWM7 0x00021804 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_RXDV 0x00030007 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_TXER 0x00030407 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_TXD3 0x00031004 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_TXD2 0x00031404 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_TXD1 0x00031804 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_TXD0 0x00031C04 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_RXD0 0x00041007 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_C2O 0x00041C02 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_RXCK 0x00050004 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_RXER 0x00050404 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PHYINT 0x00050803 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_MDC 0x00050C03 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_MDIO 0x00051003 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_RXD3 0x00051403 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_C2O 0x00051802 +#define GPIO_PF6_RXD2 0x00051803 +#define GPIO_PF6_PHA0 0x00051804 +#define GPIO_PF6_I2S0TXMCLK 0x00051809 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_RXD1 0x00051C03 +#define GPIO_PF7_PHB0 0x00051C04 +#define GPIO_PF7_EPI0S12 0x00051C08 +#define GPIO_PF7_FAULT1 0x00051C09 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_USB0EPEN 0x00060007 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG2_PWM0 0x00060801 +#define GPIO_PG2_COL 0x00060803 +#define GPIO_PG2_FAULT0 0x00060804 +#define GPIO_PG2_IDX1 0x00060808 +#define GPIO_PG2_I2S0RXSD 0x00060809 + +#define GPIO_PG3_PWM1 0x00060C01 +#define GPIO_PG3_CRS 0x00060C03 +#define GPIO_PG3_FAULT2 0x00060C04 +#define GPIO_PG3_FAULT0 0x00060C08 +#define GPIO_PG3_I2S0RXMCLK 0x00060C09 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_RXD0 0x00061003 +#define GPIO_PG4_FAULT1 0x00061004 +#define GPIO_PG4_EPI0S15 0x00061008 +#define GPIO_PG4_PWM6 0x00061009 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_TXEN 0x00061403 +#define GPIO_PG5_IDX0 0x00061404 +#define GPIO_PG5_FAULT1 0x00061405 +#define GPIO_PG5_PWM7 0x00061408 +#define GPIO_PG5_I2S0RXSCK 0x00061409 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_PHA1 0x00061801 +#define GPIO_PG6_TXCK 0x00061803 +#define GPIO_PG6_PWM6 0x00061804 +#define GPIO_PG6_FAULT1 0x00061808 +#define GPIO_PG6_I2S0RXWS 0x00061809 +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_TXER 0x00061C03 +#define GPIO_PG7_PWM7 0x00061C04 +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_EPI0S6 0x00070008 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_EPI0S7 0x00070408 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 +#define GPIO_PH2_EPI0S1 0x00070808 +#define GPIO_PH2_TXD3 0x00070809 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_USB0EPEN 0x00070C04 +#define GPIO_PH3_EPI0S0 0x00070C08 +#define GPIO_PH3_TXD2 0x00070C09 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_TXD1 0x00071009 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_TXD0 0x00071409 +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_RXDV 0x00071809 +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_RXCK 0x00071C03 +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_RXER 0x00080003 +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#define GPIO_PJ3_EPI0S19 0x00080C08 +#define GPIO_PJ3_U1CTS 0x00080C09 +#define GPIO_PJ3_CCP6 0x00080C0A + +#define GPIO_PJ4_EPI0S28 0x00081008 +#define GPIO_PJ4_U1DCD 0x00081009 +#define GPIO_PJ4_CCP4 0x0008100A + +#define GPIO_PJ5_EPI0S29 0x00081408 +#define GPIO_PJ5_U1DSR 0x00081409 +#define GPIO_PJ5_CCP2 0x0008140A + +#define GPIO_PJ6_EPI0S30 0x00081808 +#define GPIO_PJ6_U1RTS 0x00081809 +#define GPIO_PJ6_CCP1 0x0008180A + +#define GPIO_PJ7_U1DTR 0x00081C09 +#define GPIO_PJ7_CCP0 0x00081C0A + +#endif // PART_LM3S9BN6 + +//***************************************************************************** +// +// LM3S9C97 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S9C97 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_LED1 0x00050801 +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_LED0 0x00050C01 +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_USB0EPEN 0x00060007 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_CCP5 0x00061C08 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_USB0EPEN 0x00070C04 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#endif // PART_LM3S9C97 + +//***************************************************************************** +// +// LM3S9CN5 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S9CN5 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_TXD2 0x00000803 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_TXD1 0x00000C03 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_TXD0 0x00001003 +#define GPIO_PA4_PWM6 0x00001004 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_RXDV 0x00001403 +#define GPIO_PA5_PWM7 0x00001404 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_RXCK 0x00001803 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_RXER 0x00001C03 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 +#define GPIO_PB7_RXD1 0x00011C07 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_TXD3 0x00021003 +#define GPIO_PC4_PWM6 0x00021004 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_C2O 0x00021803 +#define GPIO_PC6_PWM7 0x00021804 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_RXDV 0x00030007 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_TXER 0x00030407 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_TXD3 0x00031004 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_TXD2 0x00031404 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_TXD1 0x00031804 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_TXD0 0x00031C04 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_RXD0 0x00041007 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_C2O 0x00041C02 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_RXCK 0x00050004 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_RXER 0x00050404 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PHYINT 0x00050803 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_MDC 0x00050C03 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_MDIO 0x00051003 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_RXD3 0x00051403 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_C2O 0x00051802 +#define GPIO_PF6_RXD2 0x00051803 +#define GPIO_PF6_PHA0 0x00051804 +#define GPIO_PF6_I2S0TXMCLK 0x00051809 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_RXD1 0x00051C03 +#define GPIO_PF7_PHB0 0x00051C04 +#define GPIO_PF7_EPI0S12 0x00051C08 +#define GPIO_PF7_FAULT1 0x00051C09 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_USB0EPEN 0x00060007 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG2_PWM0 0x00060801 +#define GPIO_PG2_COL 0x00060803 +#define GPIO_PG2_FAULT0 0x00060804 +#define GPIO_PG2_IDX1 0x00060808 +#define GPIO_PG2_I2S0RXSD 0x00060809 + +#define GPIO_PG3_PWM1 0x00060C01 +#define GPIO_PG3_CRS 0x00060C03 +#define GPIO_PG3_FAULT2 0x00060C04 +#define GPIO_PG3_FAULT0 0x00060C08 +#define GPIO_PG3_I2S0RXMCLK 0x00060C09 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_RXD0 0x00061003 +#define GPIO_PG4_FAULT1 0x00061004 +#define GPIO_PG4_EPI0S15 0x00061008 +#define GPIO_PG4_PWM6 0x00061009 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_TXEN 0x00061403 +#define GPIO_PG5_IDX0 0x00061404 +#define GPIO_PG5_FAULT1 0x00061405 +#define GPIO_PG5_PWM7 0x00061408 +#define GPIO_PG5_I2S0RXSCK 0x00061409 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_PHA1 0x00061801 +#define GPIO_PG6_TXCK 0x00061803 +#define GPIO_PG6_PWM6 0x00061804 +#define GPIO_PG6_FAULT1 0x00061808 +#define GPIO_PG6_I2S0RXWS 0x00061809 +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_TXER 0x00061C03 +#define GPIO_PG7_PWM7 0x00061C04 +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_EPI0S6 0x00070008 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_EPI0S7 0x00070408 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 +#define GPIO_PH2_EPI0S1 0x00070808 +#define GPIO_PH2_TXD3 0x00070809 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_USB0EPEN 0x00070C04 +#define GPIO_PH3_EPI0S0 0x00070C08 +#define GPIO_PH3_TXD2 0x00070C09 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_TXD1 0x00071009 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_TXD0 0x00071409 +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_RXDV 0x00071809 +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_RXCK 0x00071C03 +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_RXER 0x00080003 +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#define GPIO_PJ3_EPI0S19 0x00080C08 +#define GPIO_PJ3_U1CTS 0x00080C09 +#define GPIO_PJ3_CCP6 0x00080C0A + +#define GPIO_PJ4_EPI0S28 0x00081008 +#define GPIO_PJ4_U1DCD 0x00081009 +#define GPIO_PJ4_CCP4 0x0008100A + +#define GPIO_PJ5_EPI0S29 0x00081408 +#define GPIO_PJ5_U1DSR 0x00081409 +#define GPIO_PJ5_CCP2 0x0008140A + +#define GPIO_PJ6_EPI0S30 0x00081808 +#define GPIO_PJ6_U1RTS 0x00081809 +#define GPIO_PJ6_CCP1 0x0008180A + +#define GPIO_PJ7_U1DTR 0x00081C09 +#define GPIO_PJ7_CCP0 0x00081C0A + +#endif // PART_LM3S9CN5 + +//***************************************************************************** +// +// LM3S9D81 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S9D81 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_C2O 0x00021803 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_CAN2RX 0x00041002 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_CAN2TX 0x00041402 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_C2O 0x00041C02 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_LED1 0x00050801 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_LED0 0x00050C01 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_USB0EPEN 0x00060007 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_EPI0S6 0x00070008 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_EPI0S7 0x00070408 + +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_USB0EPEN 0x00070C04 +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 + +#define GPIO_PJ3_EPI0S19 0x00080C08 +#define GPIO_PJ3_U1CTS 0x00080C09 +#define GPIO_PJ3_CCP6 0x00080C0A + +#define GPIO_PJ4_EPI0S28 0x00081008 +#define GPIO_PJ4_U1DCD 0x00081009 +#define GPIO_PJ4_CCP4 0x0008100A + +#define GPIO_PJ5_EPI0S29 0x00081408 +#define GPIO_PJ5_U1DSR 0x00081409 +#define GPIO_PJ5_CCP2 0x0008140A + +#define GPIO_PJ6_EPI0S30 0x00081808 +#define GPIO_PJ6_U1RTS 0x00081809 +#define GPIO_PJ6_CCP1 0x0008180A + +#define GPIO_PJ7_U1DTR 0x00081C09 +#define GPIO_PJ7_CCP0 0x00081C0A + +#endif // PART_LM3S9D81 + +//***************************************************************************** +// +// LM3S9D90 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S9D90 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_C2O 0x00021803 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_C2O 0x00041C02 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_LED1 0x00050801 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_LED0 0x00050C01 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_USB0EPEN 0x00060007 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_EPI0S6 0x00070008 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_EPI0S7 0x00070408 + +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_USB0EPEN 0x00070C04 +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 + +#endif // PART_LM3S9D90 + +//***************************************************************************** +// +// LM3S9D92 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S9D92 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_PWM6 0x00001004 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_PWM7 0x00001404 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_PWM6 0x00021004 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_C2O 0x00021803 +#define GPIO_PC6_PWM7 0x00021804 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_C2O 0x00041C02 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_LED1 0x00050801 +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_LED0 0x00050C01 +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_USB0EPEN 0x00060007 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_PWM7 0x00061C04 +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_EPI0S6 0x00070008 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_EPI0S7 0x00070408 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_USB0EPEN 0x00070C04 +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#define GPIO_PJ3_EPI0S19 0x00080C08 +#define GPIO_PJ3_U1CTS 0x00080C09 +#define GPIO_PJ3_CCP6 0x00080C0A + +#define GPIO_PJ4_EPI0S28 0x00081008 +#define GPIO_PJ4_U1DCD 0x00081009 +#define GPIO_PJ4_CCP4 0x0008100A + +#define GPIO_PJ5_EPI0S29 0x00081408 +#define GPIO_PJ5_U1DSR 0x00081409 +#define GPIO_PJ5_CCP2 0x0008140A + +#define GPIO_PJ6_EPI0S30 0x00081808 +#define GPIO_PJ6_U1RTS 0x00081809 +#define GPIO_PJ6_CCP1 0x0008180A + +#define GPIO_PJ7_U1DTR 0x00081C09 +#define GPIO_PJ7_CCP0 0x00081C0A + +#endif // PART_LM3S9D92 + +//***************************************************************************** +// +// LM3S9D95 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S9D95 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_PWM6 0x00001004 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_PWM7 0x00001404 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_PWM6 0x00021004 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_C2O 0x00021803 +#define GPIO_PC6_PWM7 0x00021804 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_C2O 0x00041C02 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_LED1 0x00050801 +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_LED0 0x00050C01 +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_USB0EPEN 0x00060007 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_PWM7 0x00061C04 +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_EPI0S6 0x00070008 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_EPI0S7 0x00070408 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_USB0EPEN 0x00070C04 +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#define GPIO_PJ3_EPI0S19 0x00080C08 +#define GPIO_PJ3_U1CTS 0x00080C09 +#define GPIO_PJ3_CCP6 0x00080C0A + +#define GPIO_PJ4_EPI0S28 0x00081008 +#define GPIO_PJ4_U1DCD 0x00081009 +#define GPIO_PJ4_CCP4 0x0008100A + +#define GPIO_PJ5_EPI0S29 0x00081408 +#define GPIO_PJ5_U1DSR 0x00081409 +#define GPIO_PJ5_CCP2 0x0008140A + +#define GPIO_PJ6_EPI0S30 0x00081808 +#define GPIO_PJ6_U1RTS 0x00081809 +#define GPIO_PJ6_CCP1 0x0008180A + +#define GPIO_PJ7_U1DTR 0x00081C09 +#define GPIO_PJ7_CCP0 0x00081C0A + +#endif // PART_LM3S9D95 + +//***************************************************************************** +// +// LM3S9D96 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S9D96 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_PWM6 0x00001004 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_PWM7 0x00001404 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_PWM6 0x00021004 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_C2O 0x00021803 +#define GPIO_PC6_PWM7 0x00021804 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_C2O 0x00041C02 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_LED1 0x00050801 +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_LED0 0x00050C01 +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_USB0EPEN 0x00060007 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_PWM7 0x00061C04 +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_EPI0S6 0x00070008 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_EPI0S7 0x00070408 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_USB0EPEN 0x00070C04 +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#define GPIO_PJ3_EPI0S19 0x00080C08 +#define GPIO_PJ3_U1CTS 0x00080C09 +#define GPIO_PJ3_CCP6 0x00080C0A + +#define GPIO_PJ4_EPI0S28 0x00081008 +#define GPIO_PJ4_U1DCD 0x00081009 +#define GPIO_PJ4_CCP4 0x0008100A + +#define GPIO_PJ5_EPI0S29 0x00081408 +#define GPIO_PJ5_U1DSR 0x00081409 +#define GPIO_PJ5_CCP2 0x0008140A + +#define GPIO_PJ6_EPI0S30 0x00081808 +#define GPIO_PJ6_U1RTS 0x00081809 +#define GPIO_PJ6_CCP1 0x0008180A + +#define GPIO_PJ7_U1DTR 0x00081C09 +#define GPIO_PJ7_CCP0 0x00081C0A + +#endif // PART_LM3S9D96 + +//***************************************************************************** +// +// LM3S9DN5 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S9DN5 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_TXD2 0x00000803 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_TXD1 0x00000C03 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_TXD0 0x00001003 +#define GPIO_PA4_PWM6 0x00001004 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_RXDV 0x00001403 +#define GPIO_PA5_PWM7 0x00001404 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_RXCK 0x00001803 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_RXER 0x00001C03 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 +#define GPIO_PB7_RXD1 0x00011C07 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_TXD3 0x00021003 +#define GPIO_PC4_PWM6 0x00021004 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_C2O 0x00021803 +#define GPIO_PC6_PWM7 0x00021804 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_RXDV 0x00030007 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_TXER 0x00030407 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_TXD3 0x00031004 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_TXD2 0x00031404 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_TXD1 0x00031804 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_TXD0 0x00031C04 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_RXD0 0x00041007 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_C2O 0x00041C02 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_RXCK 0x00050004 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_RXER 0x00050404 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PHYINT 0x00050803 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_MDC 0x00050C03 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_MDIO 0x00051003 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_RXD3 0x00051403 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_C2O 0x00051802 +#define GPIO_PF6_RXD2 0x00051803 +#define GPIO_PF6_PHA0 0x00051804 +#define GPIO_PF6_I2S0TXMCLK 0x00051809 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_RXD1 0x00051C03 +#define GPIO_PF7_PHB0 0x00051C04 +#define GPIO_PF7_EPI0S12 0x00051C08 +#define GPIO_PF7_FAULT1 0x00051C09 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_USB0EPEN 0x00060007 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG2_PWM0 0x00060801 +#define GPIO_PG2_COL 0x00060803 +#define GPIO_PG2_FAULT0 0x00060804 +#define GPIO_PG2_IDX1 0x00060808 +#define GPIO_PG2_I2S0RXSD 0x00060809 + +#define GPIO_PG3_PWM1 0x00060C01 +#define GPIO_PG3_CRS 0x00060C03 +#define GPIO_PG3_FAULT2 0x00060C04 +#define GPIO_PG3_FAULT0 0x00060C08 +#define GPIO_PG3_I2S0RXMCLK 0x00060C09 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_RXD0 0x00061003 +#define GPIO_PG4_FAULT1 0x00061004 +#define GPIO_PG4_EPI0S15 0x00061008 +#define GPIO_PG4_PWM6 0x00061009 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_TXEN 0x00061403 +#define GPIO_PG5_IDX0 0x00061404 +#define GPIO_PG5_FAULT1 0x00061405 +#define GPIO_PG5_PWM7 0x00061408 +#define GPIO_PG5_I2S0RXSCK 0x00061409 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_PHA1 0x00061801 +#define GPIO_PG6_TXCK 0x00061803 +#define GPIO_PG6_PWM6 0x00061804 +#define GPIO_PG6_FAULT1 0x00061808 +#define GPIO_PG6_I2S0RXWS 0x00061809 +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_TXER 0x00061C03 +#define GPIO_PG7_PWM7 0x00061C04 +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_EPI0S6 0x00070008 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_EPI0S7 0x00070408 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 +#define GPIO_PH2_EPI0S1 0x00070808 +#define GPIO_PH2_TXD3 0x00070809 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_USB0EPEN 0x00070C04 +#define GPIO_PH3_EPI0S0 0x00070C08 +#define GPIO_PH3_TXD2 0x00070C09 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_TXD1 0x00071009 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_TXD0 0x00071409 +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_RXDV 0x00071809 +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_RXCK 0x00071C03 +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_RXER 0x00080003 +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#define GPIO_PJ3_EPI0S19 0x00080C08 +#define GPIO_PJ3_U1CTS 0x00080C09 +#define GPIO_PJ3_CCP6 0x00080C0A + +#define GPIO_PJ4_EPI0S28 0x00081008 +#define GPIO_PJ4_U1DCD 0x00081009 +#define GPIO_PJ4_CCP4 0x0008100A + +#define GPIO_PJ5_EPI0S29 0x00081408 +#define GPIO_PJ5_U1DSR 0x00081409 +#define GPIO_PJ5_CCP2 0x0008140A + +#define GPIO_PJ6_EPI0S30 0x00081808 +#define GPIO_PJ6_U1RTS 0x00081809 +#define GPIO_PJ6_CCP1 0x0008180A + +#define GPIO_PJ7_U1DTR 0x00081C09 +#define GPIO_PJ7_CCP0 0x00081C0A + +#endif // PART_LM3S9DN5 + +//***************************************************************************** +// +// LM3S9DN6 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S9DN6 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_TXD2 0x00000803 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_TXD1 0x00000C03 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_TXD0 0x00001003 +#define GPIO_PA4_PWM6 0x00001004 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_RXDV 0x00001403 +#define GPIO_PA5_PWM7 0x00001404 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_RXCK 0x00001803 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_RXER 0x00001C03 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 +#define GPIO_PB7_RXD1 0x00011C07 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_TXD3 0x00021003 +#define GPIO_PC4_PWM6 0x00021004 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_C2O 0x00021803 +#define GPIO_PC6_PWM7 0x00021804 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_RXDV 0x00030007 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_TXER 0x00030407 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_TXD3 0x00031004 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_TXD2 0x00031404 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_TXD1 0x00031804 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_TXD0 0x00031C04 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_RXD0 0x00041007 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_C2O 0x00041C02 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_RXCK 0x00050004 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_RXER 0x00050404 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PHYINT 0x00050803 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_MDC 0x00050C03 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_MDIO 0x00051003 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_RXD3 0x00051403 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_C2O 0x00051802 +#define GPIO_PF6_RXD2 0x00051803 +#define GPIO_PF6_PHA0 0x00051804 +#define GPIO_PF6_I2S0TXMCLK 0x00051809 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_RXD1 0x00051C03 +#define GPIO_PF7_PHB0 0x00051C04 +#define GPIO_PF7_EPI0S12 0x00051C08 +#define GPIO_PF7_FAULT1 0x00051C09 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_USB0EPEN 0x00060007 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG2_PWM0 0x00060801 +#define GPIO_PG2_COL 0x00060803 +#define GPIO_PG2_FAULT0 0x00060804 +#define GPIO_PG2_IDX1 0x00060808 +#define GPIO_PG2_I2S0RXSD 0x00060809 + +#define GPIO_PG3_PWM1 0x00060C01 +#define GPIO_PG3_CRS 0x00060C03 +#define GPIO_PG3_FAULT2 0x00060C04 +#define GPIO_PG3_FAULT0 0x00060C08 +#define GPIO_PG3_I2S0RXMCLK 0x00060C09 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_RXD0 0x00061003 +#define GPIO_PG4_FAULT1 0x00061004 +#define GPIO_PG4_EPI0S15 0x00061008 +#define GPIO_PG4_PWM6 0x00061009 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_TXEN 0x00061403 +#define GPIO_PG5_IDX0 0x00061404 +#define GPIO_PG5_FAULT1 0x00061405 +#define GPIO_PG5_PWM7 0x00061408 +#define GPIO_PG5_I2S0RXSCK 0x00061409 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_PHA1 0x00061801 +#define GPIO_PG6_TXCK 0x00061803 +#define GPIO_PG6_PWM6 0x00061804 +#define GPIO_PG6_FAULT1 0x00061808 +#define GPIO_PG6_I2S0RXWS 0x00061809 +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_TXER 0x00061C03 +#define GPIO_PG7_PWM7 0x00061C04 +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_EPI0S6 0x00070008 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_EPI0S7 0x00070408 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 +#define GPIO_PH2_EPI0S1 0x00070808 +#define GPIO_PH2_TXD3 0x00070809 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_USB0EPEN 0x00070C04 +#define GPIO_PH3_EPI0S0 0x00070C08 +#define GPIO_PH3_TXD2 0x00070C09 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_TXD1 0x00071009 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_TXD0 0x00071409 +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_RXDV 0x00071809 +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_RXCK 0x00071C03 +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_RXER 0x00080003 +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#define GPIO_PJ3_EPI0S19 0x00080C08 +#define GPIO_PJ3_U1CTS 0x00080C09 +#define GPIO_PJ3_CCP6 0x00080C0A + +#define GPIO_PJ4_EPI0S28 0x00081008 +#define GPIO_PJ4_U1DCD 0x00081009 +#define GPIO_PJ4_CCP4 0x0008100A + +#define GPIO_PJ5_EPI0S29 0x00081408 +#define GPIO_PJ5_U1DSR 0x00081409 +#define GPIO_PJ5_CCP2 0x0008140A + +#define GPIO_PJ6_EPI0S30 0x00081808 +#define GPIO_PJ6_U1RTS 0x00081809 +#define GPIO_PJ6_CCP1 0x0008180A + +#define GPIO_PJ7_U1DTR 0x00081C09 +#define GPIO_PJ7_CCP0 0x00081C0A + +#endif // PART_LM3S9DN6 + +//***************************************************************************** +// +// LM3S9G97 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S9G97 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_LED1 0x00050801 +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_LED0 0x00050C01 +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_USB0EPEN 0x00060007 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_CCP5 0x00061C08 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_USB0EPEN 0x00070C04 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#endif // PART_LM3S9G97 + +//***************************************************************************** +// +// LM3S9GN5 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S9GN5 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_TXD2 0x00000803 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_TXD1 0x00000C03 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_TXD0 0x00001003 +#define GPIO_PA4_PWM6 0x00001004 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_RXDV 0x00001403 +#define GPIO_PA5_PWM7 0x00001404 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_RXCK 0x00001803 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_RXER 0x00001C03 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 +#define GPIO_PB7_RXD1 0x00011C07 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_TXD3 0x00021003 +#define GPIO_PC4_PWM6 0x00021004 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_C2O 0x00021803 +#define GPIO_PC6_PWM7 0x00021804 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_RXDV 0x00030007 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_TXER 0x00030407 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_TXD3 0x00031004 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_TXD2 0x00031404 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_TXD1 0x00031804 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_TXD0 0x00031C04 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_RXD0 0x00041007 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_C2O 0x00041C02 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_RXCK 0x00050004 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_RXER 0x00050404 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PHYINT 0x00050803 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_MDC 0x00050C03 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_MDIO 0x00051003 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_RXD3 0x00051403 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_C2O 0x00051802 +#define GPIO_PF6_RXD2 0x00051803 +#define GPIO_PF6_PHA0 0x00051804 +#define GPIO_PF6_I2S0TXMCLK 0x00051809 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_RXD1 0x00051C03 +#define GPIO_PF7_PHB0 0x00051C04 +#define GPIO_PF7_EPI0S12 0x00051C08 +#define GPIO_PF7_FAULT1 0x00051C09 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_USB0EPEN 0x00060007 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG2_PWM0 0x00060801 +#define GPIO_PG2_COL 0x00060803 +#define GPIO_PG2_FAULT0 0x00060804 +#define GPIO_PG2_IDX1 0x00060808 +#define GPIO_PG2_I2S0RXSD 0x00060809 + +#define GPIO_PG3_PWM1 0x00060C01 +#define GPIO_PG3_CRS 0x00060C03 +#define GPIO_PG3_FAULT2 0x00060C04 +#define GPIO_PG3_FAULT0 0x00060C08 +#define GPIO_PG3_I2S0RXMCLK 0x00060C09 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_RXD0 0x00061003 +#define GPIO_PG4_FAULT1 0x00061004 +#define GPIO_PG4_EPI0S15 0x00061008 +#define GPIO_PG4_PWM6 0x00061009 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_TXEN 0x00061403 +#define GPIO_PG5_IDX0 0x00061404 +#define GPIO_PG5_FAULT1 0x00061405 +#define GPIO_PG5_PWM7 0x00061408 +#define GPIO_PG5_I2S0RXSCK 0x00061409 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_PHA1 0x00061801 +#define GPIO_PG6_TXCK 0x00061803 +#define GPIO_PG6_PWM6 0x00061804 +#define GPIO_PG6_FAULT1 0x00061808 +#define GPIO_PG6_I2S0RXWS 0x00061809 +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_TXER 0x00061C03 +#define GPIO_PG7_PWM7 0x00061C04 +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_EPI0S6 0x00070008 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_EPI0S7 0x00070408 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 +#define GPIO_PH2_EPI0S1 0x00070808 +#define GPIO_PH2_TXD3 0x00070809 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_USB0EPEN 0x00070C04 +#define GPIO_PH3_EPI0S0 0x00070C08 +#define GPIO_PH3_TXD2 0x00070C09 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_TXD1 0x00071009 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_TXD0 0x00071409 +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_RXDV 0x00071809 +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_RXCK 0x00071C03 +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_RXER 0x00080003 +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#define GPIO_PJ3_EPI0S19 0x00080C08 +#define GPIO_PJ3_U1CTS 0x00080C09 +#define GPIO_PJ3_CCP6 0x00080C0A + +#define GPIO_PJ4_EPI0S28 0x00081008 +#define GPIO_PJ4_U1DCD 0x00081009 +#define GPIO_PJ4_CCP4 0x0008100A + +#define GPIO_PJ5_EPI0S29 0x00081408 +#define GPIO_PJ5_U1DSR 0x00081409 +#define GPIO_PJ5_CCP2 0x0008140A + +#define GPIO_PJ6_EPI0S30 0x00081808 +#define GPIO_PJ6_U1RTS 0x00081809 +#define GPIO_PJ6_CCP1 0x0008180A + +#define GPIO_PJ7_U1DTR 0x00081C09 +#define GPIO_PJ7_CCP0 0x00081C0A + +#endif // PART_LM3S9GN5 + +//***************************************************************************** +// +// LM3S9L71 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S9L71 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_TXD2 0x00000803 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_TXD1 0x00000C03 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_TXD0 0x00001003 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_RXDV 0x00001403 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_RXCK 0x00001803 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_RXER 0x00001C03 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 +#define GPIO_PB7_RXD1 0x00011C07 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_TXD3 0x00021003 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_RXDV 0x00030007 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_TXER 0x00030407 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_TXD3 0x00031004 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_TXD2 0x00031404 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_TXD1 0x00031804 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_TXD0 0x00031C04 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_RXD0 0x00041007 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_RXCK 0x00050004 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_RXER 0x00050404 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PHYINT 0x00050803 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_MDC 0x00050C03 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_MDIO 0x00051003 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_RXD3 0x00051403 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PF6_CCP1 0x00051801 +#define GPIO_PF6_RXD2 0x00051803 +#define GPIO_PF6_PHA0 0x00051804 +#define GPIO_PF6_I2S0TXMCLK 0x00051809 +#define GPIO_PF6_U1RTS 0x0005180A + +#define GPIO_PF7_CCP4 0x00051C01 +#define GPIO_PF7_RXD1 0x00051C03 +#define GPIO_PF7_PHB0 0x00051C04 +#define GPIO_PF7_FAULT1 0x00051C09 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_USB0EPEN 0x00060007 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 + +#define GPIO_PG2_PWM0 0x00060801 +#define GPIO_PG2_COL 0x00060803 +#define GPIO_PG2_FAULT0 0x00060804 +#define GPIO_PG2_IDX1 0x00060808 +#define GPIO_PG2_I2S0RXSD 0x00060809 + +#define GPIO_PG3_PWM1 0x00060C01 +#define GPIO_PG3_CRS 0x00060C03 +#define GPIO_PG3_FAULT2 0x00060C04 +#define GPIO_PG3_FAULT0 0x00060C08 +#define GPIO_PG3_I2S0RXMCLK 0x00060C09 + +#define GPIO_PG4_CCP3 0x00061001 +#define GPIO_PG4_RXD0 0x00061003 +#define GPIO_PG4_FAULT1 0x00061004 +#define GPIO_PG4_U1RI 0x0006100A + +#define GPIO_PG5_CCP5 0x00061401 +#define GPIO_PG5_TXEN 0x00061403 +#define GPIO_PG5_IDX0 0x00061404 +#define GPIO_PG5_FAULT1 0x00061405 +#define GPIO_PG5_I2S0RXSCK 0x00061409 +#define GPIO_PG5_U1DTR 0x0006140A + +#define GPIO_PG6_PHA1 0x00061801 +#define GPIO_PG6_TXCK 0x00061803 +#define GPIO_PG6_FAULT1 0x00061808 +#define GPIO_PG6_I2S0RXWS 0x00061809 +#define GPIO_PG6_U1RI 0x0006180A + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_TXER 0x00061C03 +#define GPIO_PG7_CCP5 0x00061C08 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 +#define GPIO_PH2_TXD3 0x00070809 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_USB0EPEN 0x00070C04 +#define GPIO_PH3_TXD2 0x00070C09 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_TXD1 0x00071009 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_TXD0 0x00071409 +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_RXDV 0x00071809 +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_RXCK 0x00071C03 +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_RXER 0x00080003 +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#define GPIO_PJ3_U1CTS 0x00080C09 +#define GPIO_PJ3_CCP6 0x00080C0A + +#define GPIO_PJ4_U1DCD 0x00081009 +#define GPIO_PJ4_CCP4 0x0008100A + +#define GPIO_PJ5_U1DSR 0x00081409 +#define GPIO_PJ5_CCP2 0x0008140A + +#define GPIO_PJ6_U1RTS 0x00081809 +#define GPIO_PJ6_CCP1 0x0008180A + +#define GPIO_PJ7_U1DTR 0x00081C09 +#define GPIO_PJ7_CCP0 0x00081C0A + +#endif // PART_LM3S9L71 + +//***************************************************************************** +// +// LM3S9L97 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S9L97 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_LED1 0x00050801 +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_LED0 0x00050C01 +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_USB0EPEN 0x00060007 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_CCP5 0x00061C08 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_USB0EPEN 0x00070C04 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#endif // PART_LM3S9L97 + +//***************************************************************************** +// +// LM3S9U81 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S9U81 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_C2O 0x00021803 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_CAN2RX 0x00041002 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_CAN2TX 0x00041402 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_C2O 0x00041C02 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_LED1 0x00050801 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_LED0 0x00050C01 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_USB0EPEN 0x00060007 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_EPI0S6 0x00070008 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_EPI0S7 0x00070408 + +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_USB0EPEN 0x00070C04 +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 + +#define GPIO_PJ3_EPI0S19 0x00080C08 +#define GPIO_PJ3_U1CTS 0x00080C09 +#define GPIO_PJ3_CCP6 0x00080C0A + +#define GPIO_PJ4_EPI0S28 0x00081008 +#define GPIO_PJ4_U1DCD 0x00081009 +#define GPIO_PJ4_CCP4 0x0008100A + +#define GPIO_PJ5_EPI0S29 0x00081408 +#define GPIO_PJ5_U1DSR 0x00081409 +#define GPIO_PJ5_CCP2 0x0008140A + +#define GPIO_PJ6_EPI0S30 0x00081808 +#define GPIO_PJ6_U1RTS 0x00081809 +#define GPIO_PJ6_CCP1 0x0008180A + +#define GPIO_PJ7_U1DTR 0x00081C09 +#define GPIO_PJ7_CCP0 0x00081C0A + +#endif // PART_LM3S9U81 + +//***************************************************************************** +// +// LM3S9U90 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S9U90 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_C2O 0x00021803 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_C2O 0x00041C02 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_LED1 0x00050801 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_LED0 0x00050C01 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_USB0EPEN 0x00060007 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_EPI0S6 0x00070008 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_EPI0S7 0x00070408 + +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_USB0EPEN 0x00070C04 +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 + +#endif // PART_LM3S9U90 + +//***************************************************************************** +// +// LM3S9U92 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S9U92 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_PWM6 0x00001004 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_PWM7 0x00001404 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_PWM6 0x00021004 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_C2O 0x00021803 +#define GPIO_PC6_PWM7 0x00021804 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_C2O 0x00041C02 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_LED1 0x00050801 +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_LED0 0x00050C01 +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_USB0EPEN 0x00060007 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_PWM7 0x00061C04 +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_EPI0S6 0x00070008 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_EPI0S7 0x00070408 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_USB0EPEN 0x00070C04 +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#define GPIO_PJ3_EPI0S19 0x00080C08 +#define GPIO_PJ3_U1CTS 0x00080C09 +#define GPIO_PJ3_CCP6 0x00080C0A + +#define GPIO_PJ4_EPI0S28 0x00081008 +#define GPIO_PJ4_U1DCD 0x00081009 +#define GPIO_PJ4_CCP4 0x0008100A + +#define GPIO_PJ5_EPI0S29 0x00081408 +#define GPIO_PJ5_U1DSR 0x00081409 +#define GPIO_PJ5_CCP2 0x0008140A + +#define GPIO_PJ6_EPI0S30 0x00081808 +#define GPIO_PJ6_U1RTS 0x00081809 +#define GPIO_PJ6_CCP1 0x0008180A + +#define GPIO_PJ7_U1DTR 0x00081C09 +#define GPIO_PJ7_CCP0 0x00081C0A + +#endif // PART_LM3S9U92 + +//***************************************************************************** +// +// LM3S9U95 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S9U95 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_PWM6 0x00001004 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_PWM7 0x00001404 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_PWM6 0x00021004 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_C2O 0x00021803 +#define GPIO_PC6_PWM7 0x00021804 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_C2O 0x00041C02 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_LED1 0x00050801 +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_LED0 0x00050C01 +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_USB0EPEN 0x00060007 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_PWM7 0x00061C04 +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_EPI0S6 0x00070008 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_EPI0S7 0x00070408 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_USB0EPEN 0x00070C04 +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#define GPIO_PJ3_EPI0S19 0x00080C08 +#define GPIO_PJ3_U1CTS 0x00080C09 +#define GPIO_PJ3_CCP6 0x00080C0A + +#define GPIO_PJ4_EPI0S28 0x00081008 +#define GPIO_PJ4_U1DCD 0x00081009 +#define GPIO_PJ4_CCP4 0x0008100A + +#define GPIO_PJ5_EPI0S29 0x00081408 +#define GPIO_PJ5_U1DSR 0x00081409 +#define GPIO_PJ5_CCP2 0x0008140A + +#define GPIO_PJ6_EPI0S30 0x00081808 +#define GPIO_PJ6_U1RTS 0x00081809 +#define GPIO_PJ6_CCP1 0x0008180A + +#define GPIO_PJ7_U1DTR 0x00081C09 +#define GPIO_PJ7_CCP0 0x00081C0A + +#endif // PART_LM3S9U95 + +//***************************************************************************** +// +// LM3S9U96 Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM3S9U96 + +#define GPIO_PA0_U0RX 0x00000001 +#define GPIO_PA0_I2C1SCL 0x00000008 +#define GPIO_PA0_U1RX 0x00000009 + +#define GPIO_PA1_U0TX 0x00000401 +#define GPIO_PA1_I2C1SDA 0x00000408 +#define GPIO_PA1_U1TX 0x00000409 + +#define GPIO_PA2_SSI0CLK 0x00000801 +#define GPIO_PA2_PWM4 0x00000804 +#define GPIO_PA2_I2S0RXSD 0x00000809 + +#define GPIO_PA3_SSI0FSS 0x00000C01 +#define GPIO_PA3_PWM5 0x00000C04 +#define GPIO_PA3_I2S0RXMCLK 0x00000C09 + +#define GPIO_PA4_SSI0RX 0x00001001 +#define GPIO_PA4_PWM6 0x00001004 +#define GPIO_PA4_CAN0RX 0x00001005 +#define GPIO_PA4_I2S0TXSCK 0x00001009 + +#define GPIO_PA5_SSI0TX 0x00001401 +#define GPIO_PA5_PWM7 0x00001404 +#define GPIO_PA5_CAN0TX 0x00001405 +#define GPIO_PA5_I2S0TXWS 0x00001409 + +#define GPIO_PA6_I2C1SCL 0x00001801 +#define GPIO_PA6_CCP1 0x00001802 +#define GPIO_PA6_PWM0 0x00001804 +#define GPIO_PA6_PWM4 0x00001805 +#define GPIO_PA6_CAN0RX 0x00001806 +#define GPIO_PA6_USB0EPEN 0x00001808 +#define GPIO_PA6_U1CTS 0x00001809 + +#define GPIO_PA7_I2C1SDA 0x00001C01 +#define GPIO_PA7_CCP4 0x00001C02 +#define GPIO_PA7_PWM1 0x00001C04 +#define GPIO_PA7_PWM5 0x00001C05 +#define GPIO_PA7_CAN0TX 0x00001C06 +#define GPIO_PA7_CCP3 0x00001C07 +#define GPIO_PA7_USB0PFLT 0x00001C08 +#define GPIO_PA7_U1DCD 0x00001C09 + +#define GPIO_PB0_CCP0 0x00010001 +#define GPIO_PB0_PWM2 0x00010002 +#define GPIO_PB0_U1RX 0x00010005 + +#define GPIO_PB1_CCP2 0x00010401 +#define GPIO_PB1_PWM3 0x00010402 +#define GPIO_PB1_CCP1 0x00010404 +#define GPIO_PB1_U1TX 0x00010405 + +#define GPIO_PB2_I2C0SCL 0x00010801 +#define GPIO_PB2_IDX0 0x00010802 +#define GPIO_PB2_CCP3 0x00010804 +#define GPIO_PB2_CCP0 0x00010805 +#define GPIO_PB2_USB0EPEN 0x00010808 + +#define GPIO_PB3_I2C0SDA 0x00010C01 +#define GPIO_PB3_FAULT0 0x00010C02 +#define GPIO_PB3_FAULT3 0x00010C04 +#define GPIO_PB3_USB0PFLT 0x00010C08 + +#define GPIO_PB4_U2RX 0x00011004 +#define GPIO_PB4_CAN0RX 0x00011005 +#define GPIO_PB4_IDX0 0x00011006 +#define GPIO_PB4_U1RX 0x00011007 +#define GPIO_PB4_EPI0S23 0x00011008 + +#define GPIO_PB5_C0O 0x00011401 +#define GPIO_PB5_CCP5 0x00011402 +#define GPIO_PB5_CCP6 0x00011403 +#define GPIO_PB5_CCP0 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011405 +#define GPIO_PB5_CCP2 0x00011406 +#define GPIO_PB5_U1TX 0x00011407 +#define GPIO_PB5_EPI0S22 0x00011408 + +#define GPIO_PB6_CCP1 0x00011801 +#define GPIO_PB6_CCP7 0x00011802 +#define GPIO_PB6_C0O 0x00011803 +#define GPIO_PB6_FAULT1 0x00011804 +#define GPIO_PB6_IDX0 0x00011805 +#define GPIO_PB6_CCP5 0x00011806 +#define GPIO_PB6_I2S0TXSCK 0x00011809 + +#define GPIO_PB7_NMI 0x00011C04 + +#define GPIO_PC0_TCK 0x00020003 +#define GPIO_PC0_SWCLK 0x00020003 + +#define GPIO_PC1_TMS 0x00020403 +#define GPIO_PC1_SWDIO 0x00020403 + +#define GPIO_PC2_TDI 0x00020803 + +#define GPIO_PC3_SWO 0x00020C03 +#define GPIO_PC3_TDO 0x00020C03 + +#define GPIO_PC4_CCP5 0x00021001 +#define GPIO_PC4_PHA0 0x00021002 +#define GPIO_PC4_PWM6 0x00021004 +#define GPIO_PC4_CCP2 0x00021005 +#define GPIO_PC4_CCP4 0x00021006 +#define GPIO_PC4_EPI0S2 0x00021008 +#define GPIO_PC4_CCP1 0x00021009 + +#define GPIO_PC5_CCP1 0x00021401 +#define GPIO_PC5_C1O 0x00021402 +#define GPIO_PC5_C0O 0x00021403 +#define GPIO_PC5_FAULT2 0x00021404 +#define GPIO_PC5_CCP3 0x00021405 +#define GPIO_PC5_USB0EPEN 0x00021406 +#define GPIO_PC5_EPI0S3 0x00021408 + +#define GPIO_PC6_CCP3 0x00021801 +#define GPIO_PC6_PHB0 0x00021802 +#define GPIO_PC6_C2O 0x00021803 +#define GPIO_PC6_PWM7 0x00021804 +#define GPIO_PC6_U1RX 0x00021805 +#define GPIO_PC6_CCP0 0x00021806 +#define GPIO_PC6_USB0PFLT 0x00021807 +#define GPIO_PC6_EPI0S4 0x00021808 + +#define GPIO_PC7_CCP4 0x00021C01 +#define GPIO_PC7_PHB0 0x00021C02 +#define GPIO_PC7_CCP0 0x00021C04 +#define GPIO_PC7_U1TX 0x00021C05 +#define GPIO_PC7_USB0PFLT 0x00021C06 +#define GPIO_PC7_C1O 0x00021C07 +#define GPIO_PC7_EPI0S5 0x00021C08 + +#define GPIO_PD0_PWM0 0x00030001 +#define GPIO_PD0_CAN0RX 0x00030002 +#define GPIO_PD0_IDX0 0x00030003 +#define GPIO_PD0_U2RX 0x00030004 +#define GPIO_PD0_U1RX 0x00030005 +#define GPIO_PD0_CCP6 0x00030006 +#define GPIO_PD0_I2S0RXSCK 0x00030008 +#define GPIO_PD0_U1CTS 0x00030009 + +#define GPIO_PD1_PWM1 0x00030401 +#define GPIO_PD1_CAN0TX 0x00030402 +#define GPIO_PD1_PHA0 0x00030403 +#define GPIO_PD1_U2TX 0x00030404 +#define GPIO_PD1_U1TX 0x00030405 +#define GPIO_PD1_CCP7 0x00030406 +#define GPIO_PD1_I2S0RXWS 0x00030408 +#define GPIO_PD1_U1DCD 0x00030409 +#define GPIO_PD1_CCP2 0x0003040A +#define GPIO_PD1_PHB1 0x0003040B + +#define GPIO_PD2_U1RX 0x00030801 +#define GPIO_PD2_CCP6 0x00030802 +#define GPIO_PD2_PWM2 0x00030803 +#define GPIO_PD2_CCP5 0x00030804 +#define GPIO_PD2_EPI0S20 0x00030808 + +#define GPIO_PD3_U1TX 0x00030C01 +#define GPIO_PD3_CCP7 0x00030C02 +#define GPIO_PD3_PWM3 0x00030C03 +#define GPIO_PD3_CCP0 0x00030C04 +#define GPIO_PD3_EPI0S21 0x00030C08 + +#define GPIO_PD4_CCP0 0x00031001 +#define GPIO_PD4_CCP3 0x00031002 +#define GPIO_PD4_I2S0RXSD 0x00031008 +#define GPIO_PD4_U1RI 0x00031009 +#define GPIO_PD4_EPI0S19 0x0003100A + +#define GPIO_PD5_CCP2 0x00031401 +#define GPIO_PD5_CCP4 0x00031402 +#define GPIO_PD5_I2S0RXMCLK 0x00031408 +#define GPIO_PD5_U2RX 0x00031409 +#define GPIO_PD5_EPI0S28 0x0003140A + +#define GPIO_PD6_FAULT0 0x00031801 +#define GPIO_PD6_I2S0TXSCK 0x00031808 +#define GPIO_PD6_U2TX 0x00031809 +#define GPIO_PD6_EPI0S29 0x0003180A + +#define GPIO_PD7_IDX0 0x00031C01 +#define GPIO_PD7_C0O 0x00031C02 +#define GPIO_PD7_CCP1 0x00031C03 +#define GPIO_PD7_I2S0TXWS 0x00031C08 +#define GPIO_PD7_U1DTR 0x00031C09 +#define GPIO_PD7_EPI0S30 0x00031C0A + +#define GPIO_PE0_PWM4 0x00040001 +#define GPIO_PE0_SSI1CLK 0x00040002 +#define GPIO_PE0_CCP3 0x00040003 +#define GPIO_PE0_EPI0S8 0x00040008 +#define GPIO_PE0_USB0PFLT 0x00040009 + +#define GPIO_PE1_PWM5 0x00040401 +#define GPIO_PE1_SSI1FSS 0x00040402 +#define GPIO_PE1_FAULT0 0x00040403 +#define GPIO_PE1_CCP2 0x00040404 +#define GPIO_PE1_CCP6 0x00040405 +#define GPIO_PE1_EPI0S9 0x00040408 + +#define GPIO_PE2_CCP4 0x00040801 +#define GPIO_PE2_SSI1RX 0x00040802 +#define GPIO_PE2_PHB1 0x00040803 +#define GPIO_PE2_PHA0 0x00040804 +#define GPIO_PE2_CCP2 0x00040805 +#define GPIO_PE2_EPI0S24 0x00040808 + +#define GPIO_PE3_CCP1 0x00040C01 +#define GPIO_PE3_SSI1TX 0x00040C02 +#define GPIO_PE3_PHA1 0x00040C03 +#define GPIO_PE3_PHB0 0x00040C04 +#define GPIO_PE3_CCP7 0x00040C05 +#define GPIO_PE3_EPI0S25 0x00040C08 + +#define GPIO_PE4_CCP3 0x00041001 +#define GPIO_PE4_FAULT0 0x00041004 +#define GPIO_PE4_U2TX 0x00041005 +#define GPIO_PE4_CCP2 0x00041006 +#define GPIO_PE4_I2S0TXWS 0x00041009 + +#define GPIO_PE5_CCP5 0x00041401 +#define GPIO_PE5_I2S0TXSD 0x00041409 + +#define GPIO_PE6_PWM4 0x00041801 +#define GPIO_PE6_C1O 0x00041802 +#define GPIO_PE6_U1CTS 0x00041809 + +#define GPIO_PE7_PWM5 0x00041C01 +#define GPIO_PE7_C2O 0x00041C02 +#define GPIO_PE7_U1DCD 0x00041C09 + +#define GPIO_PF0_CAN1RX 0x00050001 +#define GPIO_PF0_PHB0 0x00050002 +#define GPIO_PF0_PWM0 0x00050003 +#define GPIO_PF0_I2S0TXSD 0x00050008 +#define GPIO_PF0_U1DSR 0x00050009 + +#define GPIO_PF1_CAN1TX 0x00050401 +#define GPIO_PF1_IDX1 0x00050402 +#define GPIO_PF1_PWM1 0x00050403 +#define GPIO_PF1_I2S0TXMCLK 0x00050408 +#define GPIO_PF1_U1RTS 0x00050409 +#define GPIO_PF1_CCP3 0x0005040A + +#define GPIO_PF2_LED1 0x00050801 +#define GPIO_PF2_PWM4 0x00050802 +#define GPIO_PF2_PWM2 0x00050804 +#define GPIO_PF2_SSI1CLK 0x00050809 + +#define GPIO_PF3_LED0 0x00050C01 +#define GPIO_PF3_PWM5 0x00050C02 +#define GPIO_PF3_PWM3 0x00050C04 +#define GPIO_PF3_SSI1FSS 0x00050C09 + +#define GPIO_PF4_CCP0 0x00051001 +#define GPIO_PF4_C0O 0x00051002 +#define GPIO_PF4_FAULT0 0x00051004 +#define GPIO_PF4_EPI0S12 0x00051008 +#define GPIO_PF4_SSI1RX 0x00051009 + +#define GPIO_PF5_CCP2 0x00051401 +#define GPIO_PF5_C1O 0x00051402 +#define GPIO_PF5_EPI0S15 0x00051408 +#define GPIO_PF5_SSI1TX 0x00051409 + +#define GPIO_PG0_U2RX 0x00060001 +#define GPIO_PG0_PWM0 0x00060002 +#define GPIO_PG0_I2C1SCL 0x00060003 +#define GPIO_PG0_PWM4 0x00060004 +#define GPIO_PG0_USB0EPEN 0x00060007 +#define GPIO_PG0_EPI0S13 0x00060008 + +#define GPIO_PG1_U2TX 0x00060401 +#define GPIO_PG1_PWM1 0x00060402 +#define GPIO_PG1_I2C1SDA 0x00060403 +#define GPIO_PG1_PWM5 0x00060404 +#define GPIO_PG1_EPI0S14 0x00060408 + +#define GPIO_PG7_PHB1 0x00061C01 +#define GPIO_PG7_PWM7 0x00061C04 +#define GPIO_PG7_CCP5 0x00061C08 +#define GPIO_PG7_EPI0S31 0x00061C09 + +#define GPIO_PH0_CCP6 0x00070001 +#define GPIO_PH0_PWM2 0x00070002 +#define GPIO_PH0_EPI0S6 0x00070008 +#define GPIO_PH0_PWM4 0x00070009 + +#define GPIO_PH1_CCP7 0x00070401 +#define GPIO_PH1_PWM3 0x00070402 +#define GPIO_PH1_EPI0S7 0x00070408 +#define GPIO_PH1_PWM5 0x00070409 + +#define GPIO_PH2_IDX1 0x00070801 +#define GPIO_PH2_C1O 0x00070802 +#define GPIO_PH2_FAULT3 0x00070804 +#define GPIO_PH2_EPI0S1 0x00070808 + +#define GPIO_PH3_PHB0 0x00070C01 +#define GPIO_PH3_FAULT0 0x00070C02 +#define GPIO_PH3_USB0EPEN 0x00070C04 +#define GPIO_PH3_EPI0S0 0x00070C08 + +#define GPIO_PH4_USB0PFLT 0x00071004 +#define GPIO_PH4_EPI0S10 0x00071008 +#define GPIO_PH4_SSI1CLK 0x0007100B + +#define GPIO_PH5_EPI0S11 0x00071408 +#define GPIO_PH5_FAULT2 0x0007140A +#define GPIO_PH5_SSI1FSS 0x0007140B + +#define GPIO_PH6_EPI0S26 0x00071808 +#define GPIO_PH6_PWM4 0x0007180A +#define GPIO_PH6_SSI1RX 0x0007180B + +#define GPIO_PH7_EPI0S27 0x00071C08 +#define GPIO_PH7_PWM5 0x00071C0A +#define GPIO_PH7_SSI1TX 0x00071C0B + +#define GPIO_PJ0_EPI0S16 0x00080008 +#define GPIO_PJ0_PWM0 0x0008000A +#define GPIO_PJ0_I2C1SCL 0x0008000B + +#define GPIO_PJ1_EPI0S17 0x00080408 +#define GPIO_PJ1_USB0PFLT 0x00080409 +#define GPIO_PJ1_PWM1 0x0008040A +#define GPIO_PJ1_I2C1SDA 0x0008040B + +#define GPIO_PJ2_EPI0S18 0x00080808 +#define GPIO_PJ2_CCP0 0x00080809 +#define GPIO_PJ2_FAULT0 0x0008080A + +#define GPIO_PJ3_EPI0S19 0x00080C08 +#define GPIO_PJ3_U1CTS 0x00080C09 +#define GPIO_PJ3_CCP6 0x00080C0A + +#define GPIO_PJ4_EPI0S28 0x00081008 +#define GPIO_PJ4_U1DCD 0x00081009 +#define GPIO_PJ4_CCP4 0x0008100A + +#define GPIO_PJ5_EPI0S29 0x00081408 +#define GPIO_PJ5_U1DSR 0x00081409 +#define GPIO_PJ5_CCP2 0x0008140A + +#define GPIO_PJ6_EPI0S30 0x00081808 +#define GPIO_PJ6_U1RTS 0x00081809 +#define GPIO_PJ6_CCP1 0x0008180A + +#define GPIO_PJ7_U1DTR 0x00081C09 +#define GPIO_PJ7_CCP0 0x00081C0A + +#endif // PART_LM3S9U96 + +//***************************************************************************** +// +// LM4F110B2QR Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F110B2QR + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_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_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#define GPIO_PF3_TRCLK 0x00050C0E + +#define GPIO_PF4_T2CCP0 0x00051007 + +#endif // PART_LM4F110B2QR + +//***************************************************************************** +// +// LM4F110C4QR Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F110C4QR + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_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_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#define GPIO_PF3_TRCLK 0x00050C0E + +#define GPIO_PF4_T2CCP0 0x00051007 + +#endif // PART_LM4F110C4QR + +//***************************************************************************** +// +// LM4F110E5QR Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F110E5QR + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_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_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#define GPIO_PF3_TRCLK 0x00050C0E + +#define GPIO_PF4_T2CCP0 0x00051007 + +#endif // PART_LM4F110E5QR + +//***************************************************************************** +// +// LM4F110H5QR Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F110H5QR + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_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_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#define GPIO_PF3_TRCLK 0x00050C0E + +#define GPIO_PF4_T2CCP0 0x00051007 + +#endif // PART_LM4F110H5QR + +//***************************************************************************** +// +// LM4F111B2QR Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F111B2QR + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_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_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#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_LM4F111B2QR + +//***************************************************************************** +// +// LM4F111C4QR Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F111C4QR + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_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_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#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_LM4F111C4QR + +//***************************************************************************** +// +// LM4F111E5QR Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F111E5QR + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_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_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#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_LM4F111E5QR + +//***************************************************************************** +// +// LM4F111H5QR Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F111H5QR + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_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_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#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_LM4F111H5QR + +//***************************************************************************** +// +// LM4F112C4QC Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F112C4QC + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_C2O 0x00050809 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_U1DSR 0x00050C01 +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#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_PG0_LPC0PD_N 0x0006000F + +#define GPIO_PG1_I2C3SDA 0x00060403 +#define GPIO_PG1_T4CCP1 0x00060407 +#define GPIO_PG1_LPC0SCI_N 0x0006040F + +#define GPIO_PG2_I2C4SCL 0x00060803 +#define GPIO_PG2_T5CCP0 0x00060807 +#define GPIO_PG2_LPC0CLKRUN_N 0x0006080F + +#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_LM4F112C4QC + +//***************************************************************************** +// +// LM4F112E5QC Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F112E5QC + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_C2O 0x00050809 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_U1DSR 0x00050C01 +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#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_PG0_LPC0PD_N 0x0006000F + +#define GPIO_PG1_I2C3SDA 0x00060403 +#define GPIO_PG1_T4CCP1 0x00060407 +#define GPIO_PG1_LPC0SCI_N 0x0006040F + +#define GPIO_PG2_I2C4SCL 0x00060803 +#define GPIO_PG2_T5CCP0 0x00060807 +#define GPIO_PG2_LPC0CLKRUN_N 0x0006080F + +#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_LM4F112E5QC + +//***************************************************************************** +// +// LM4F112H5QC Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F112H5QC + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_C2O 0x00050809 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_U1DSR 0x00050C01 +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#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_PG0_LPC0PD_N 0x0006000F + +#define GPIO_PG1_I2C3SDA 0x00060403 +#define GPIO_PG1_T4CCP1 0x00060407 +#define GPIO_PG1_LPC0SCI_N 0x0006040F + +#define GPIO_PG2_I2C4SCL 0x00060803 +#define GPIO_PG2_T5CCP0 0x00060807 +#define GPIO_PG2_LPC0CLKRUN_N 0x0006080F + +#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_LM4F112H5QC + +//***************************************************************************** +// +// LM4F112H5QD Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F112H5QD + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_C2O 0x00050809 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_U1DSR 0x00050C01 +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#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_PL4_LPC0FRAME_N 0x000A100F + +#define GPIO_PL5_T2CCP1 0x000A1407 +#define GPIO_PL5_WT2CCP1 0x000A1408 +#define GPIO_PL5_LPC0RESET_N 0x000A140F + +#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_PM0_LPC0PD_N 0x000B000F + +#define GPIO_PM1_T4CCP1 0x000B0407 +#define GPIO_PM1_WT4CCP1 0x000B0408 +#define GPIO_PM1_LPC0SCI_N 0x000B040F + +#define GPIO_PM2_T5CCP0 0x000B0807 +#define GPIO_PM2_WT5CCP0 0x000B0808 +#define GPIO_PM2_LPC0CLKRUN_N 0x000B080F + +#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_LM4F112H5QD + +//***************************************************************************** +// +// LM4F120B2QR Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F120B2QR + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_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_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#define GPIO_PF3_TRCLK 0x00050C0E + +#define GPIO_PF4_T2CCP0 0x00051007 + +#endif // PART_LM4F120B2QR + +//***************************************************************************** +// +// LM4F120C4QR Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F120C4QR + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_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_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#define GPIO_PF3_TRCLK 0x00050C0E + +#define GPIO_PF4_T2CCP0 0x00051007 + +#endif // PART_LM4F120C4QR + +//***************************************************************************** +// +// LM4F120E5QR Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F120E5QR + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_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_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#define GPIO_PF3_TRCLK 0x00050C0E + +#define GPIO_PF4_T2CCP0 0x00051007 + +#endif // PART_LM4F120E5QR + +//***************************************************************************** +// +// LM4F120H5QR Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F120H5QR + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_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_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#define GPIO_PF3_TRCLK 0x00050C0E + +#define GPIO_PF4_T2CCP0 0x00051007 + +#endif // PART_LM4F120H5QR + +//***************************************************************************** +// +// LM4F121B2QR Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F121B2QR + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_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_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#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_LM4F121B2QR + +//***************************************************************************** +// +// LM4F121C4QR Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F121C4QR + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_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_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#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_LM4F121C4QR + +//***************************************************************************** +// +// LM4F121E5QR Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F121E5QR + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_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_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#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_LM4F121E5QR + +//***************************************************************************** +// +// LM4F121H5QR Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F121H5QR + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_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_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#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_LM4F121H5QR + +//***************************************************************************** +// +// LM4F122C4QC Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F122C4QC + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_C2O 0x00050809 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_U1DSR 0x00050C01 +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#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_PG0_LPC0PD_N 0x0006000F + +#define GPIO_PG1_I2C3SDA 0x00060403 +#define GPIO_PG1_T4CCP1 0x00060407 +#define GPIO_PG1_LPC0SCI_N 0x0006040F + +#define GPIO_PG2_I2C4SCL 0x00060803 +#define GPIO_PG2_T5CCP0 0x00060807 +#define GPIO_PG2_LPC0CLKRUN_N 0x0006080F + +#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_LM4F122C4QC + +//***************************************************************************** +// +// LM4F122E5QC Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F122E5QC + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_C2O 0x00050809 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_U1DSR 0x00050C01 +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#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_PG0_LPC0PD_N 0x0006000F + +#define GPIO_PG1_I2C3SDA 0x00060403 +#define GPIO_PG1_T4CCP1 0x00060407 +#define GPIO_PG1_LPC0SCI_N 0x0006040F + +#define GPIO_PG2_I2C4SCL 0x00060803 +#define GPIO_PG2_T5CCP0 0x00060807 +#define GPIO_PG2_LPC0CLKRUN_N 0x0006080F + +#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_LM4F122E5QC + +//***************************************************************************** +// +// LM4F122H5QC Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F122H5QC + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_C2O 0x00050809 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_U1DSR 0x00050C01 +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#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_PG0_LPC0PD_N 0x0006000F + +#define GPIO_PG1_I2C3SDA 0x00060403 +#define GPIO_PG1_T4CCP1 0x00060407 +#define GPIO_PG1_LPC0SCI_N 0x0006040F + +#define GPIO_PG2_I2C4SCL 0x00060803 +#define GPIO_PG2_T5CCP0 0x00060807 +#define GPIO_PG2_LPC0CLKRUN_N 0x0006080F + +#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_LM4F122H5QC + +//***************************************************************************** +// +// LM4F122H5QD Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F122H5QD + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_C2O 0x00050809 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_U1DSR 0x00050C01 +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#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_PL4_LPC0FRAME_N 0x000A100F + +#define GPIO_PL5_T2CCP1 0x000A1407 +#define GPIO_PL5_WT2CCP1 0x000A1408 +#define GPIO_PL5_LPC0RESET_N 0x000A140F + +#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_PM0_LPC0PD_N 0x000B000F + +#define GPIO_PM1_T4CCP1 0x000B0407 +#define GPIO_PM1_WT4CCP1 0x000B0408 +#define GPIO_PM1_LPC0SCI_N 0x000B040F + +#define GPIO_PM2_T5CCP0 0x000B0807 +#define GPIO_PM2_WT5CCP0 0x000B0808 +#define GPIO_PM2_LPC0CLKRUN_N 0x000B080F + +#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_LM4F122H5QD + +//***************************************************************************** +// +// LM4F130C4QR Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F130C4QR + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_USB0PFLT 0x00021C08 +#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_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_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_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#define GPIO_PF3_TRCLK 0x00050C0E + +#define GPIO_PF4_T2CCP0 0x00051007 +#define GPIO_PF4_USB0EPEN 0x00051008 + +#endif // PART_LM4F130C4QR + +//***************************************************************************** +// +// LM4F130E5QR Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F130E5QR + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_USB0PFLT 0x00021C08 +#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_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_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_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#define GPIO_PF3_TRCLK 0x00050C0E + +#define GPIO_PF4_T2CCP0 0x00051007 +#define GPIO_PF4_USB0EPEN 0x00051008 + +#endif // PART_LM4F130E5QR + +//***************************************************************************** +// +// LM4F130H5QR Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F130H5QR + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_USB0PFLT 0x00021C08 +#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_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_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_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#define GPIO_PF3_TRCLK 0x00050C0E + +#define GPIO_PF4_T2CCP0 0x00051007 +#define GPIO_PF4_USB0EPEN 0x00051008 + +#endif // PART_LM4F130H5QR + +//***************************************************************************** +// +// LM4F131C4QR Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F131C4QR + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_USB0PFLT 0x00021C08 +#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_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_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_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#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_LM4F131C4QR + +//***************************************************************************** +// +// LM4F131E5QR Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F131E5QR + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_USB0PFLT 0x00021C08 +#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_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_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_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#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_LM4F131E5QR + +//***************************************************************************** +// +// LM4F131H5QR Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F131H5QR + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_USB0PFLT 0x00021C08 +#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_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_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_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#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_LM4F131H5QR + +//***************************************************************************** +// +// LM4F132C4QC Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F132C4QC + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_USB0PFLT 0x00021C08 +#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_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_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_C2O 0x00050809 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_U1DSR 0x00050C01 +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#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_PG0_LPC0PD_N 0x0006000F + +#define GPIO_PG1_I2C3SDA 0x00060403 +#define GPIO_PG1_T4CCP1 0x00060407 +#define GPIO_PG1_LPC0SCI_N 0x0006040F + +#define GPIO_PG2_I2C4SCL 0x00060803 +#define GPIO_PG2_T5CCP0 0x00060807 +#define GPIO_PG2_LPC0CLKRUN_N 0x0006080F + +#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_LM4F132C4QC + +//***************************************************************************** +// +// LM4F132E5QC Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F132E5QC + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_USB0PFLT 0x00021C08 +#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_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_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_C2O 0x00050809 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_U1DSR 0x00050C01 +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#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_PG0_LPC0PD_N 0x0006000F + +#define GPIO_PG1_I2C3SDA 0x00060403 +#define GPIO_PG1_T4CCP1 0x00060407 +#define GPIO_PG1_LPC0SCI_N 0x0006040F + +#define GPIO_PG2_I2C4SCL 0x00060803 +#define GPIO_PG2_T5CCP0 0x00060807 +#define GPIO_PG2_LPC0CLKRUN_N 0x0006080F + +#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_LM4F132E5QC + +//***************************************************************************** +// +// LM4F132H5QC Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F132H5QC + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_USB0PFLT 0x00021C08 +#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_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_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_C2O 0x00050809 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_U1DSR 0x00050C01 +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#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_PG0_LPC0PD_N 0x0006000F + +#define GPIO_PG1_I2C3SDA 0x00060403 +#define GPIO_PG1_T4CCP1 0x00060407 +#define GPIO_PG1_LPC0SCI_N 0x0006040F + +#define GPIO_PG2_I2C4SCL 0x00060803 +#define GPIO_PG2_T5CCP0 0x00060807 +#define GPIO_PG2_LPC0CLKRUN_N 0x0006080F + +#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_LM4F132H5QC + +//***************************************************************************** +// +// LM4F132H5QD Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F132H5QD + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_USB0PFLT 0x00021C08 +#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_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_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_C2O 0x00050809 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_U1DSR 0x00050C01 +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#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_PL4_LPC0FRAME_N 0x000A100F + +#define GPIO_PL5_T2CCP1 0x000A1407 +#define GPIO_PL5_WT2CCP1 0x000A1408 +#define GPIO_PL5_LPC0RESET_N 0x000A140F + +#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_PM0_LPC0PD_N 0x000B000F + +#define GPIO_PM1_T4CCP1 0x000B0407 +#define GPIO_PM1_WT4CCP1 0x000B0408 +#define GPIO_PM1_LPC0SCI_N 0x000B040F + +#define GPIO_PM2_T5CCP0 0x000B0807 +#define GPIO_PM2_WT5CCP0 0x000B0808 +#define GPIO_PM2_LPC0CLKRUN_N 0x000B080F + +#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_LM4F132H5QD + +//***************************************************************************** +// +// LM4F230E5QR Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F230E5QR + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_M0PWM3 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_USB0PFLT 0x00021C08 +#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_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_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_M0FAULT0 0x00050804 +#define GPIO_PF2_M1PWM6 0x00050805 +#define GPIO_PF2_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_M1PWM7 0x00050C05 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#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_LM4F230E5QR + +//***************************************************************************** +// +// LM4F230H5QR Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F230H5QR + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_M0PWM3 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_USB0PFLT 0x00021C08 +#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_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_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_M0FAULT0 0x00050804 +#define GPIO_PF2_M1PWM6 0x00050805 +#define GPIO_PF2_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_M1PWM7 0x00050C05 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#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_LM4F230H5QR + +//***************************************************************************** +// +// LM4F231E5QR Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F231E5QR + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_M0PWM3 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_USB0PFLT 0x00021C08 +#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_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_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_M0FAULT0 0x00050804 +#define GPIO_PF2_M1PWM6 0x00050805 +#define GPIO_PF2_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_M0FAULT1 0x00050C04 +#define GPIO_PF3_M1PWM7 0x00050C05 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#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_LM4F231E5QR + +//***************************************************************************** +// +// LM4F231H5QR Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F231H5QR + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_M0PWM3 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_USB0PFLT 0x00021C08 +#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_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_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_M0FAULT0 0x00050804 +#define GPIO_PF2_M1PWM6 0x00050805 +#define GPIO_PF2_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_M0FAULT1 0x00050C04 +#define GPIO_PF3_M1PWM7 0x00050C05 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#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_LM4F231H5QR + +//***************************************************************************** +// +// LM4F232E5QC Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F232E5QC + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_M0PWM3 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_USB0PFLT 0x00021C08 +#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_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_M0FAULT0 0x00050804 +#define GPIO_PF2_M1PWM6 0x00050805 +#define GPIO_PF2_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_C2O 0x00050809 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_U1DSR 0x00050C01 +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_M0FAULT1 0x00050C04 +#define GPIO_PF3_M1PWM7 0x00050C05 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#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_PG0_LPC0PD_N 0x0006000F + +#define GPIO_PG1_I2C3SDA 0x00060403 +#define GPIO_PG1_M1FAULT2 0x00060405 +#define GPIO_PG1_PHB1 0x00060406 +#define GPIO_PG1_T4CCP1 0x00060407 +#define GPIO_PG1_LPC0SCI_N 0x0006040F + +#define GPIO_PG2_I2C4SCL 0x00060803 +#define GPIO_PG2_M0FAULT1 0x00060804 +#define GPIO_PG2_M1PWM0 0x00060805 +#define GPIO_PG2_T5CCP0 0x00060807 +#define GPIO_PG2_LPC0CLKRUN_N 0x0006080F + +#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_LM4F232E5QC + +//***************************************************************************** +// +// LM4F232H5BB Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F232H5BB + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_M0PWM3 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_USB0PFLT 0x00021C08 +#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_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_M0FAULT0 0x00050804 +#define GPIO_PF2_M1PWM6 0x00050805 +#define GPIO_PF2_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_C2O 0x00050809 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_U1DSR 0x00050C01 +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_M0FAULT1 0x00050C04 +#define GPIO_PF3_M1PWM7 0x00050C05 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#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_PL4_LPC0FRAME_N 0x000A100F + +#define GPIO_PL5_T2CCP1 0x000A1407 +#define GPIO_PL5_WT2CCP1 0x000A1408 +#define GPIO_PL5_LPC0RESET_N 0x000A140F + +#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_PM0_LPC0PD_N 0x000B000F + +#define GPIO_PM1_T4CCP1 0x000B0407 +#define GPIO_PM1_WT4CCP1 0x000B0408 +#define GPIO_PM1_LPC0SCI_N 0x000B040F + +#define GPIO_PM2_T5CCP0 0x000B0807 +#define GPIO_PM2_WT5CCP0 0x000B0808 +#define GPIO_PM2_LPC0CLKRUN_N 0x000B080F + +#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_LM4F232H5BB + +//***************************************************************************** +// +// LM4F232H5QC Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F232H5QC + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_M0PWM3 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_USB0PFLT 0x00021C08 +#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_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_M0FAULT0 0x00050804 +#define GPIO_PF2_M1PWM6 0x00050805 +#define GPIO_PF2_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_C2O 0x00050809 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_U1DSR 0x00050C01 +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_M0FAULT1 0x00050C04 +#define GPIO_PF3_M1PWM7 0x00050C05 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#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_PG0_LPC0PD_N 0x0006000F + +#define GPIO_PG1_I2C3SDA 0x00060403 +#define GPIO_PG1_M1FAULT2 0x00060405 +#define GPIO_PG1_PHB1 0x00060406 +#define GPIO_PG1_T4CCP1 0x00060407 +#define GPIO_PG1_LPC0SCI_N 0x0006040F + +#define GPIO_PG2_I2C4SCL 0x00060803 +#define GPIO_PG2_M0FAULT1 0x00060804 +#define GPIO_PG2_M1PWM0 0x00060805 +#define GPIO_PG2_T5CCP0 0x00060807 +#define GPIO_PG2_LPC0CLKRUN_N 0x0006080F + +#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_LM4F232H5QC + +//***************************************************************************** +// +// LM4F232H5QD Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4F232H5QD + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_M0PWM3 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_USB0PFLT 0x00021C08 +#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_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_M0FAULT0 0x00050804 +#define GPIO_PF2_M1PWM6 0x00050805 +#define GPIO_PF2_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_C2O 0x00050809 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_U1DSR 0x00050C01 +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_M0FAULT1 0x00050C04 +#define GPIO_PF3_M1PWM7 0x00050C05 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#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_PL4_LPC0FRAME_N 0x000A100F + +#define GPIO_PL5_T2CCP1 0x000A1407 +#define GPIO_PL5_WT2CCP1 0x000A1408 +#define GPIO_PL5_LPC0RESET_N 0x000A140F + +#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_PM0_LPC0PD_N 0x000B000F + +#define GPIO_PM1_T4CCP1 0x000B0407 +#define GPIO_PM1_WT4CCP1 0x000B0408 +#define GPIO_PM1_LPC0SCI_N 0x000B040F + +#define GPIO_PM2_T5CCP0 0x000B0807 +#define GPIO_PM2_WT5CCP0 0x000B0808 +#define GPIO_PM2_LPC0CLKRUN_N 0x000B080F + +#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_LM4F232H5QD + +//***************************************************************************** +// +// LM4FS1AH5BB Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4FS1AH5BB + +#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_T1CCP0 0x00011007 + +#define GPIO_PB5_T1CCP1 0x00011407 + +#define GPIO_PB6_I2C5SCL 0x00011803 +#define GPIO_PB6_T0CCP0 0x00011807 + +#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_PC5_U4TX 0x00021401 +#define GPIO_PC5_U1TX 0x00021402 +#define GPIO_PC5_WT0CCP1 0x00021407 + +#define GPIO_PC6_U3RX 0x00021801 +#define GPIO_PC6_WT1CCP0 0x00021807 + +#define GPIO_PC7_U3TX 0x00021C01 +#define GPIO_PC7_WT1CCP1 0x00021C07 + +#define GPIO_PD0_SSI1CLK 0x00030002 +#define GPIO_PD0_I2C3SCL 0x00030003 +#define GPIO_PD0_WT2CCP0 0x00030007 + +#define GPIO_PD1_SSI1FSS 0x00030402 +#define GPIO_PD1_I2C3SDA 0x00030403 +#define GPIO_PD1_WT2CCP1 0x00030407 + +#define GPIO_PD2_SSI1RX 0x00030802 +#define GPIO_PD2_WT3CCP0 0x00030807 + +#define GPIO_PD3_SSI1TX 0x00030C02 +#define GPIO_PD3_WT3CCP1 0x00030C07 + +#define GPIO_PD4_WT4CCP0 0x00031007 + +#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_PE4_U5RX 0x00041001 +#define GPIO_PE4_I2C2SCL 0x00041003 + +#define GPIO_PE5_U5TX 0x00041401 +#define GPIO_PE5_I2C2SDA 0x00041403 + +#define GPIO_PF0_SSI1RX 0x00050002 +#define GPIO_PF0_T0CCP0 0x00050007 +#define GPIO_PF0_NMI 0x00050008 +#define GPIO_PF0_TRD2 0x0005000E + +#define GPIO_PF1_SSI1TX 0x00050402 +#define GPIO_PF1_T0CCP1 0x00050407 +#define GPIO_PF1_TRD1 0x0005040E + +#define GPIO_PF2_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#define GPIO_PF3_TRCLK 0x00050C0E + +#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_WT2CCP0 0x00070007 + +#define GPIO_PH1_WT2CCP1 0x00070407 + +#define GPIO_PH2_FAN0PWM5 0x00070801 +#define GPIO_PH2_WT5CCP0 0x00070807 + +#define GPIO_PH3_FAN0TACH5 0x00070C01 +#define GPIO_PH3_WT5CCP1 0x00070C07 + +#define GPIO_PH4_WT3CCP0 0x00071007 + +#define GPIO_PH5_WT3CCP1 0x00071407 + +#define GPIO_PH6_WT4CCP0 0x00071807 + +#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_T3CCP0 0x00081007 + +#define GPIO_PJ5_T3CCP1 0x00081407 + +#define GPIO_PJ6_PECI0TX 0x00081801 + +#define GPIO_PK4_RTCCLK 0x00091007 + +#define GPIO_PK6_FAN0PWM1 0x00091801 +#define GPIO_PK6_WT1CCP0 0x00091807 + +#define GPIO_PK7_FAN0TACH1 0x00091C01 +#define GPIO_PK7_WT1CCP1 0x00091C07 + +#define GPIO_PL0_T0CCP0 0x000A0007 +#define GPIO_PL0_WT0CCP0 0x000A0008 +#define GPIO_PL0_LPC0AD3 0x000A000F + +#define GPIO_PL1_T0CCP1 0x000A0407 +#define GPIO_PL1_WT0CCP1 0x000A0408 +#define GPIO_PL1_LPC0AD2 0x000A040F + +#define GPIO_PL2_T1CCP0 0x000A0807 +#define GPIO_PL2_WT1CCP0 0x000A0808 +#define GPIO_PL2_LPC0AD1 0x000A080F + +#define GPIO_PL3_T1CCP1 0x000A0C07 +#define GPIO_PL3_WT1CCP1 0x000A0C08 +#define GPIO_PL3_LPC0AD0 0x000A0C0F + +#define GPIO_PL4_T2CCP0 0x000A1007 +#define GPIO_PL4_WT2CCP0 0x000A1008 +#define GPIO_PL4_LPC0FRAME_N 0x000A100F + +#define GPIO_PL5_T2CCP1 0x000A1407 +#define GPIO_PL5_WT2CCP1 0x000A1408 +#define GPIO_PL5_LPC0RESET_N 0x000A140F + +#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_PM0_LPC0PD_N 0x000B000F + +#define GPIO_PM1_T4CCP1 0x000B0407 +#define GPIO_PM1_WT4CCP1 0x000B0408 +#define GPIO_PM1_LPC0SCI_N 0x000B040F + +#define GPIO_PM2_T5CCP0 0x000B0807 +#define GPIO_PM2_WT5CCP0 0x000B0808 +#define GPIO_PM2_LPC0CLKRUN_N 0x000B080F + +#define GPIO_PM3_T5CCP1 0x000B0C07 +#define GPIO_PM3_WT5CCP1 0x000B0C08 + +#define GPIO_PM4_LPC0SERIRQ 0x000B100F + +#define GPIO_PM5_LPC0CLK 0x000B140F + +#define GPIO_PM6_FAN0PWM0 0x000B1801 +#define GPIO_PM6_WT0CCP0 0x000B1807 + +#define GPIO_PM7_FAN0TACH0 0x000B1C01 +#define GPIO_PM7_WT0CCP1 0x000B1C07 + +#define GPIO_PN2_FAN0PWM2 0x000C0801 +#define GPIO_PN2_WT2CCP0 0x000C0807 + +#define GPIO_PN3_FAN0TACH2 0x000C0C01 +#define GPIO_PN3_WT2CCP1 0x000C0C07 + +#define GPIO_PN4_FAN0PWM3 0x000C1001 +#define GPIO_PN4_WT3CCP0 0x000C1007 + +#define GPIO_PN5_FAN0TACH3 0x000C1401 +#define GPIO_PN5_WT3CCP1 0x000C1407 + +#define GPIO_PN6_FAN0PWM4 0x000C1801 +#define GPIO_PN6_WT4CCP0 0x000C1807 + +#define GPIO_PN7_FAN0TACH4 0x000C1C01 +#define GPIO_PN7_WT4CCP1 0x000C1C07 + +#define GPIO_PP0_T4CCP0 0x000D0007 + +#define GPIO_PP1_T4CCP1 0x000D0407 + +#define GPIO_PP2_T5CCP0 0x000D0807 + +#define GPIO_PP3_T5CCP1 0x000D0C07 + +#define GPIO_PP4_WT0CCP0 0x000D1007 + +#define GPIO_PP5_WT0CCP1 0x000D1407 + +#define GPIO_PP6_WT1CCP0 0x000D1807 + +#define GPIO_PP7_WT1CCP1 0x000D1C07 + +#define GPIO_PQ0_WT2CCP0 0x000E0007 + +#define GPIO_PQ1_WT2CCP1 0x000E0407 + +#define GPIO_PQ2_WT3CCP0 0x000E0807 + +#define GPIO_PQ3_WT3CCP1 0x000E0C07 + +#define GPIO_PQ4_WT4CCP0 0x000E1007 + +#define GPIO_PQ5_WT4CCP1 0x000E1407 + +#define GPIO_PQ6_WT5CCP0 0x000E1807 + +#define GPIO_PQ7_WT5CCP1 0x000E1C07 + +#endif // PART_LM4FS1AH5BB + +//***************************************************************************** +// +// LM4FS99H5BB Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4FS99H5BB + +#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_CAN0RX 0x00011008 +#define GPIO_PB4_T1CCP0 0x00011007 + +#define GPIO_PB5_SSI2FSS 0x00011402 +#define GPIO_PB5_M0PWM3 0x00011404 +#define GPIO_PB5_CAN0TX 0x00011408 +#define GPIO_PB5_T1CCP1 0x00011407 + +#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_USB0PFLT 0x00021C08 +#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_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_M0FAULT0 0x00050804 +#define GPIO_PF2_M1PWM6 0x00050805 +#define GPIO_PF2_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_C2O 0x00050809 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_U1DSR 0x00050C01 +#define GPIO_PF3_CAN0TX 0x00050C03 +#define GPIO_PF3_M0FAULT1 0x00050C04 +#define GPIO_PF3_M1PWM7 0x00050C05 +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#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_FAN0PWM5 0x00070801 +#define GPIO_PH2_SSI3RX 0x00070802 +#define GPIO_PH2_M0PWM2 0x00070804 +#define GPIO_PH2_M0FAULT2 0x00070806 +#define GPIO_PH2_WT5CCP0 0x00070807 + +#define GPIO_PH3_FAN0TACH5 0x00070C01 +#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_FAN0PWM7 0x00080802 +#define GPIO_PJ2_IDX0 0x00080805 +#define GPIO_PJ2_T2CCP0 0x00080807 + +#define GPIO_PJ3_U5TX 0x00080C01 +#define GPIO_PJ3_FAN0TACH7 0x00080C02 +#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_PJ6_PECI0TX 0x00081801 + +#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_FAN0PWM6 0x00091002 +#define GPIO_PK4_M0FAULT0 0x00091006 +#define GPIO_PK4_RTCCLK 0x00091007 +#define GPIO_PK4_C0O 0x00091008 + +#define GPIO_PK5_U7TX 0x00091401 +#define GPIO_PK5_FAN0TACH6 0x00091402 +#define GPIO_PK5_M0FAULT1 0x00091406 +#define GPIO_PK5_C1O 0x00091408 + +#define GPIO_PK6_FAN0PWM1 0x00091801 +#define GPIO_PK6_M0FAULT2 0x00091806 +#define GPIO_PK6_WT1CCP0 0x00091807 +#define GPIO_PK6_C2O 0x00091808 + +#define GPIO_PK7_FAN0TACH1 0x00091C01 +#define GPIO_PK7_M0FAULT3 0x00091C06 +#define GPIO_PK7_WT1CCP1 0x00091C07 + +#define GPIO_PL0_T0CCP0 0x000A0007 +#define GPIO_PL0_WT0CCP0 0x000A0008 +#define GPIO_PL0_LPC0AD3 0x000A000F + +#define GPIO_PL1_T0CCP1 0x000A0407 +#define GPIO_PL1_WT0CCP1 0x000A0408 +#define GPIO_PL1_LPC0AD2 0x000A040F + +#define GPIO_PL2_T1CCP0 0x000A0807 +#define GPIO_PL2_WT1CCP0 0x000A0808 +#define GPIO_PL2_LPC0AD1 0x000A080F + +#define GPIO_PL3_T1CCP1 0x000A0C07 +#define GPIO_PL3_WT1CCP1 0x000A0C08 +#define GPIO_PL3_LPC0AD0 0x000A0C0F + +#define GPIO_PL4_T2CCP0 0x000A1007 +#define GPIO_PL4_WT2CCP0 0x000A1008 +#define GPIO_PL4_LPC0FRAME_N 0x000A100F + +#define GPIO_PL5_T2CCP1 0x000A1407 +#define GPIO_PL5_WT2CCP1 0x000A1408 +#define GPIO_PL5_LPC0RESET_N 0x000A140F + +#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_PM0_LPC0PD_N 0x000B000F + +#define GPIO_PM1_T4CCP1 0x000B0407 +#define GPIO_PM1_WT4CCP1 0x000B0408 +#define GPIO_PM1_LPC0SCI_N 0x000B040F + +#define GPIO_PM2_T5CCP0 0x000B0807 +#define GPIO_PM2_WT5CCP0 0x000B0808 +#define GPIO_PM2_LPC0CLKRUN_N 0x000B080F + +#define GPIO_PM3_T5CCP1 0x000B0C07 +#define GPIO_PM3_WT5CCP1 0x000B0C08 + +#define GPIO_PM4_LPC0SERIRQ 0x000B100F + +#define GPIO_PM5_LPC0CLK 0x000B140F + +#define GPIO_PM6_FAN0PWM0 0x000B1801 +#define GPIO_PM6_M0PWM4 0x000B1802 +#define GPIO_PM6_WT0CCP0 0x000B1807 + +#define GPIO_PM7_FAN0TACH0 0x000B1C01 +#define GPIO_PM7_M0PWM5 0x000B1C02 +#define GPIO_PM7_WT0CCP1 0x000B1C07 + +#define GPIO_PN0_CAN0RX 0x000C0001 + +#define GPIO_PN1_CAN0TX 0x000C0401 + +#define GPIO_PN2_FAN0PWM2 0x000C0801 +#define GPIO_PN2_M0PWM6 0x000C0802 +#define GPIO_PN2_WT2CCP0 0x000C0807 + +#define GPIO_PN3_FAN0TACH2 0x000C0C01 +#define GPIO_PN3_M0PWM7 0x000C0C02 +#define GPIO_PN3_WT2CCP1 0x000C0C07 + +#define GPIO_PN4_FAN0PWM3 0x000C1001 +#define GPIO_PN4_M1PWM4 0x000C1002 +#define GPIO_PN4_WT3CCP0 0x000C1007 + +#define GPIO_PN5_FAN0TACH3 0x000C1401 +#define GPIO_PN5_M1PWM5 0x000C1402 +#define GPIO_PN5_WT3CCP1 0x000C1407 + +#define GPIO_PN6_FAN0PWM4 0x000C1801 +#define GPIO_PN6_M1PWM6 0x000C1802 +#define GPIO_PN6_WT4CCP0 0x000C1807 + +#define GPIO_PN7_FAN0TACH4 0x000C1C01 +#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_LM4FS99H5BB + +//***************************************************************************** +// +// LM4FSXAH5BB Port/Pin Mapping Definitions +// +//***************************************************************************** +#ifdef PART_LM4FSXAH5BB + +#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_T1CCP0 0x00011007 + +#define GPIO_PB5_T1CCP1 0x00011407 + +#define GPIO_PB6_I2C5SCL 0x00011803 +#define GPIO_PB6_T0CCP0 0x00011807 + +#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_U1RX 0x00021002 +#define GPIO_PC4_WT0CCP0 0x00021007 + +#define GPIO_PC5_U1TX 0x00021402 +#define GPIO_PC5_WT0CCP1 0x00021407 + +#define GPIO_PC6_WT1CCP0 0x00021807 + +#define GPIO_PC7_WT1CCP1 0x00021C07 + +#define GPIO_PD0_SSI1CLK 0x00030002 +#define GPIO_PD0_I2C3SCL 0x00030003 +#define GPIO_PD0_WT2CCP0 0x00030007 + +#define GPIO_PD1_SSI1FSS 0x00030402 +#define GPIO_PD1_I2C3SDA 0x00030403 +#define GPIO_PD1_WT2CCP1 0x00030407 + +#define GPIO_PD2_SSI1RX 0x00030802 +#define GPIO_PD2_WT3CCP0 0x00030807 + +#define GPIO_PD3_SSI1TX 0x00030C02 +#define GPIO_PD3_WT3CCP1 0x00030C07 + +#define GPIO_PD4_WT4CCP0 0x00031007 + +#define GPIO_PD5_WT4CCP1 0x00031407 + +#define GPIO_PD6_WT5CCP0 0x00031807 + +#define GPIO_PD7_WT5CCP1 0x00031C07 +#define GPIO_PD7_NMI 0x00031C08 + +#define GPIO_PE4_I2C2SCL 0x00041003 + +#define GPIO_PE5_I2C2SDA 0x00041403 + +#define GPIO_PF0_SSI1RX 0x00050002 +#define GPIO_PF0_T0CCP0 0x00050007 +#define GPIO_PF0_NMI 0x00050008 +#define GPIO_PF0_TRD2 0x0005000E + +#define GPIO_PF1_SSI1TX 0x00050402 +#define GPIO_PF1_T0CCP1 0x00050407 +#define GPIO_PF1_TRD1 0x0005040E + +#define GPIO_PF2_T1CCP0 0x00050807 +#define GPIO_PF2_SSI1CLK 0x00050802 +#define GPIO_PF2_TRD0 0x0005080E + +#define GPIO_PF3_T1CCP1 0x00050C07 +#define GPIO_PF3_SSI1FSS 0x00050C02 +#define GPIO_PF3_TRCLK 0x00050C0E + +#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_I2C1SCL 0x00061003 +#define GPIO_PG4_WT0CCP0 0x00061007 + +#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_WT2CCP0 0x00070007 + +#define GPIO_PH1_WT2CCP1 0x00070407 + +#define GPIO_PH2_FAN0PWM5 0x00070801 +#define GPIO_PH2_WT5CCP0 0x00070807 + +#define GPIO_PH3_FAN0TACH5 0x00070C01 +#define GPIO_PH3_WT5CCP1 0x00070C07 + +#define GPIO_PH4_WT3CCP0 0x00071007 + +#define GPIO_PH5_WT3CCP1 0x00071407 + +#define GPIO_PH6_WT4CCP0 0x00071807 + +#define GPIO_PH7_WT4CCP1 0x00071C07 + +#define GPIO_PJ0_T1CCP0 0x00080007 + +#define GPIO_PJ1_T1CCP1 0x00080407 + +#define GPIO_PJ2_T2CCP0 0x00080807 + +#define GPIO_PJ3_T2CCP1 0x00080C07 + +#define GPIO_PJ4_T3CCP0 0x00081007 + +#define GPIO_PJ5_T3CCP1 0x00081407 + +#define GPIO_PJ6_PECI0TX 0x00081801 + +#define GPIO_PK4_RTCCLK 0x00091007 + +#define GPIO_PK6_FAN0PWM1 0x00091801 +#define GPIO_PK6_WT1CCP0 0x00091807 + +#define GPIO_PK7_FAN0TACH1 0x00091C01 +#define GPIO_PK7_WT1CCP1 0x00091C07 + +#define GPIO_PL0_T0CCP0 0x000A0007 +#define GPIO_PL0_WT0CCP0 0x000A0008 +#define GPIO_PL0_LPC0AD3 0x000A000F + +#define GPIO_PL1_T0CCP1 0x000A0407 +#define GPIO_PL1_WT0CCP1 0x000A0408 +#define GPIO_PL1_LPC0AD2 0x000A040F + +#define GPIO_PL2_T1CCP0 0x000A0807 +#define GPIO_PL2_WT1CCP0 0x000A0808 +#define GPIO_PL2_LPC0AD1 0x000A080F + +#define GPIO_PL3_T1CCP1 0x000A0C07 +#define GPIO_PL3_WT1CCP1 0x000A0C08 +#define GPIO_PL3_LPC0AD0 0x000A0C0F + +#define GPIO_PL4_T2CCP0 0x000A1007 +#define GPIO_PL4_WT2CCP0 0x000A1008 +#define GPIO_PL4_LPC0FRAME_N 0x000A100F + +#define GPIO_PL5_T2CCP1 0x000A1407 +#define GPIO_PL5_WT2CCP1 0x000A1408 +#define GPIO_PL5_LPC0RESET_N 0x000A140F + +#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_PM0_LPC0PD_N 0x000B000F + +#define GPIO_PM1_T4CCP1 0x000B0407 +#define GPIO_PM1_WT4CCP1 0x000B0408 +#define GPIO_PM1_LPC0SCI_N 0x000B040F + +#define GPIO_PM2_T5CCP0 0x000B0807 +#define GPIO_PM2_WT5CCP0 0x000B0808 +#define GPIO_PM2_LPC0CLKRUN_N 0x000B080F + +#define GPIO_PM3_T5CCP1 0x000B0C07 +#define GPIO_PM3_WT5CCP1 0x000B0C08 + +#define GPIO_PM4_LPC0SERIRQ 0x000B100F + +#define GPIO_PM5_LPC0CLK 0x000B140F + +#define GPIO_PM6_FAN0PWM0 0x000B1801 +#define GPIO_PM6_WT0CCP0 0x000B1807 + +#define GPIO_PM7_FAN0TACH0 0x000B1C01 +#define GPIO_PM7_WT0CCP1 0x000B1C07 + +#define GPIO_PN2_FAN0PWM2 0x000C0801 +#define GPIO_PN2_WT2CCP0 0x000C0807 + +#define GPIO_PN3_FAN0TACH2 0x000C0C01 +#define GPIO_PN3_WT2CCP1 0x000C0C07 + +#define GPIO_PN4_FAN0PWM3 0x000C1001 +#define GPIO_PN4_WT3CCP0 0x000C1007 + +#define GPIO_PN5_FAN0TACH3 0x000C1401 +#define GPIO_PN5_WT3CCP1 0x000C1407 + +#define GPIO_PN6_FAN0PWM4 0x000C1801 +#define GPIO_PN6_WT4CCP0 0x000C1807 + +#define GPIO_PN7_FAN0TACH4 0x000C1C01 +#define GPIO_PN7_WT4CCP1 0x000C1C07 + +#define GPIO_PP0_T4CCP0 0x000D0007 + +#define GPIO_PP1_T4CCP1 0x000D0407 + +#define GPIO_PP2_T5CCP0 0x000D0807 + +#define GPIO_PP3_T5CCP1 0x000D0C07 + +#define GPIO_PP4_WT0CCP0 0x000D1007 + +#define GPIO_PP5_WT0CCP1 0x000D1407 + +#define GPIO_PP6_WT1CCP0 0x000D1807 + +#define GPIO_PP7_WT1CCP1 0x000D1C07 + +#define GPIO_PQ0_WT2CCP0 0x000E0007 + +#define GPIO_PQ1_WT2CCP1 0x000E0407 + +#define GPIO_PQ2_WT3CCP0 0x000E0807 + +#define GPIO_PQ3_WT3CCP1 0x000E0C07 + +#define GPIO_PQ4_WT4CCP0 0x000E1007 + +#define GPIO_PQ5_WT4CCP1 0x000E1407 + +#define GPIO_PQ6_WT5CCP0 0x000E1807 + +#define GPIO_PQ7_WT5CCP1 0x000E1C07 + +#endif // PART_LM4FSXAH5BB + //***************************************************************************** // // Pin Mapping Functions @@ -20272,6 +57218,28 @@ //***************************************************************************** #define PinTypeI2C(ulName) GPIOPinTypeI2C(ulName##_PORT, ulName##_PIN) +//***************************************************************************** +// +// Configures the specified Ethernet LED to function as an Ethernet LED pin. +// +// \param ulName is one of the valid names for the Ethernet LED pins. +// +// This function takes one of the valid names for an Ethernet LED pin and +// configures the pin for its Ethernet LED functionality depending on the part +// that is defined. +// +// The valid names for the pins are as follows: \b LED0 or \b LED1. +// +// sa GPIOPinTypeEthernetLED() in order to configure multiple Ethernet LED +// pins at once. +// +// \return None. +// +//***************************************************************************** +#define PinTypeEthernetLED(ulName) \ + GPIOPinTypeEthernetLED(ulName##_PORT, \ + ulName##_PIN) + //***************************************************************************** // // Configures the specified PWM pin to function as a PWM pin. diff --git a/bsp/lm3s8962/Libraries/driverlib/pwm.c b/bsp/lm3s8962/Libraries/driverlib/pwm.c index 3694a362fd..c6432735d1 100644 --- a/bsp/lm3s8962/Libraries/driverlib/pwm.c +++ b/bsp/lm3s8962/Libraries/driverlib/pwm.c @@ -2,7 +2,7 @@ // // pwm.c - API for the PWM modules // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -105,8 +105,8 @@ PWMOutValid(unsigned long ulPWMOut) //! Configures a PWM generator. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGen is the PWM generator to configure. Must be one of -//! \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. +//! \param ulGen is the PWM generator to configure. This parameter must be one +//! of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. //! \param ulConfig is the configuration for the PWM generator. //! //! This function is used to set the mode of operation for a PWM generator. @@ -115,31 +115,31 @@ PWMOutValid(unsigned long ulPWMOut) //! state. //! //! A PWM generator can count in two different modes: count down mode or count -//! up/down mode. In count down mode, it will count from a value down to zero, -//! and then reset to the preset value. This will produce left-aligned PWM -//! signals (that is the rising edge of the two PWM signals produced by the -//! generator will occur at the same time). In count up/down mode, it will -//! count up from zero to the preset value, count back down to zero, and then -//! repeat the process. This will produce center-aligned PWM signals (that is, +//! up/down mode. In count down mode, it counts from a value down to zero, +//! and then resets to the preset value, producing left-aligned PWM +//! signals (that is, the rising edge of the two PWM signals produced by the +//! generator occur at the same time). In count up/down mode, it counts up +//! from zero to the preset value, counts back down to zero, and then repeats +//! the process, producing center-aligned PWM signals (that is, //! the middle of the high/low period of the PWM signals produced by the -//! generator will occur at the same time). +//! generator occurs at the same time). //! //! When the PWM generator parameters (period and pulse width) are modified, -//! their affect on the output PWM signals can be delayed. In synchronous +//! their effect on the output PWM signals can be delayed. In synchronous //! mode, the parameter updates are not applied until a synchronization event -//! occurs. This allows multiple parameters to be modified and take affect -//! simultaneously, instead of one at a time. Additionally, parameters to -//! multiple PWM generators in synchronous mode can be updated simultaneously, -//! allowing them to be treated as if they were a unified generator. In -//! non-synchronous mode, the parameter updates are not delayed until a -//! synchronization event. In either mode, the parameter updates only occur -//! when the counter is at zero to help prevent oddly formed PWM signals during -//! the update (that is, a PWM pulse that is too short or too long). +//! occurs. This mode allows multiple parameters to be modified and take +//! effect simultaneously, instead of one at a time. Additionally, parameters +//! to multiple PWM generators in synchronous mode can be updated +//! simultaneously, allowing them to be treated as if they were a unified +//! generator. In non-synchronous mode, the parameter updates are not delayed +//! until a synchronization event. In either mode, the parameter updates only +//! occur when the counter is at zero to help prevent oddly formed PWM signals +//! during the update (that is, a PWM pulse that is too short or too long). //! //! The PWM generator can either pause or continue running when the processor -//! is stopped via the debugger. If configured to pause, it will continue to -//! count until it reaches zero, at which point it will pause until the -//! processor is restarted. If configured to continue running, it will keep +//! is stopped via the debugger. If configured to pause, it continues to +//! count until it reaches zero, at which point it pauses until the +//! processor is restarted. If configured to continue running, it keeps //! counting as if nothing had happened. //! //! The \e ulConfig parameter contains the desired configuration. It is the @@ -165,14 +165,14 @@ PWMOutValid(unsigned long ulPWMOut) //! whether extended fault source selection support is enabled or not //! //! Setting \b PWM_GEN_MODE_FAULT_MINPER allows an application to set the -//! minimum duration of a PWM fault signal. Fault will be signaled for at +//! minimum duration of a PWM fault signal. Faults are signaled for at //! least this time even if the external fault pin deasserts earlier. Care -//! should be taken when using this mode since during the fault signal period, -//! the fault interrupt from the PWM generator will remain asserted. The fault -//! interrupt handler may, therefore, reenter immediately if it exits prior to -//! expiration of the fault timer. +//! should be taken when using this mode because during the fault signal +//! period, the fault interrupt from the PWM generator remains asserted. The +//! fault interrupt handler may, therefore, reenter immediately if it exits +//! prior to expiration of the fault timer. //! -//! \note Changes to the counter mode will affect the period of the PWM signals +//! \note Changes to the counter mode affect the period of the PWM signals //! produced. PWMGenPeriodSet() and PWMPulseWidthSet() should be called after //! any changes to the counter mode of a generator. //! @@ -186,7 +186,7 @@ PWMGenConfigure(unsigned long ulBase, unsigned long ulGen, // // Check the arguments. // - ASSERT(ulBase == PWM_BASE); + ASSERT((ulBase == PWM0_BASE) || (ulBase == PWM1_BASE)); ASSERT(PWMGenValid(ulGen)); // @@ -238,11 +238,11 @@ PWMGenConfigure(unsigned long ulBase, unsigned long ulGen, //***************************************************************************** // -//! Set the period of a PWM generator. +//! Sets the period of a PWM generator. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGen is the PWM generator to be modified. Must be one of -//! \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. +//! \param ulGen is the PWM generator to be modified. This parameter must be +//! one of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. //! \param ulPeriod specifies the period of PWM generator output, measured //! in clock ticks. //! @@ -251,7 +251,7 @@ PWMGenConfigure(unsigned long ulBase, unsigned long ulGen, //! ticks between pulses on the generator block zero signal. //! //! \note Any subsequent calls made to this function before an update occurs -//! will cause the previous values to be overwritten. +//! cause the previous values to be overwritten. //! //! \return None. // @@ -263,7 +263,7 @@ PWMGenPeriodSet(unsigned long ulBase, unsigned long ulGen, // // Check the arguments. // - ASSERT(ulBase == PWM_BASE); + ASSERT((ulBase == PWM0_BASE) || (ulBase == PWM1_BASE)); ASSERT(PWMGenValid(ulGen)); // @@ -299,7 +299,7 @@ PWMGenPeriodSet(unsigned long ulBase, unsigned long ulGen, //! Gets the period of a PWM generator block. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGen is the PWM generator to query. Must be one of +//! \param ulGen is the PWM generator to query. This parameter must be one of //! \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. //! //! This function gets the period of the specified PWM generator block. The @@ -320,7 +320,7 @@ PWMGenPeriodGet(unsigned long ulBase, unsigned long ulGen) // // Check the arguments. // - ASSERT(ulBase == PWM_BASE); + ASSERT((ulBase == PWM0_BASE) || (ulBase == PWM1_BASE)); ASSERT(PWMGenValid(ulGen)); // @@ -352,8 +352,8 @@ PWMGenPeriodGet(unsigned long ulBase, unsigned long ulGen) //! Enables the timer/counter for a PWM generator block. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGen is the PWM generator to be enabled. Must be one of -//! \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. +//! \param ulGen is the PWM generator to be enabled. This parameter must be +//! one of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. //! //! This function allows the PWM clock to drive the timer/counter for the //! specified generator block. @@ -367,7 +367,7 @@ PWMGenEnable(unsigned long ulBase, unsigned long ulGen) // // Check the arguments. // - ASSERT(ulBase == PWM_BASE); + ASSERT((ulBase == PWM0_BASE) || (ulBase == PWM1_BASE)); ASSERT(PWMGenValid(ulGen)); // @@ -381,8 +381,8 @@ PWMGenEnable(unsigned long ulBase, unsigned long ulGen) //! Disables the timer/counter for a PWM generator block. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGen is the PWM generator to be disabled. Must be one of -//! \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. +//! \param ulGen is the PWM generator to be disabled. This parameter must be +//! one of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. //! //! This function blocks the PWM clock from driving the timer/counter for the //! specified generator block. @@ -396,7 +396,7 @@ PWMGenDisable(unsigned long ulBase, unsigned long ulGen) // // Check the arguments. // - ASSERT(ulBase == PWM_BASE); + ASSERT((ulBase == PWM0_BASE) || (ulBase == PWM1_BASE)); ASSERT(PWMGenValid(ulGen)); // @@ -410,16 +410,16 @@ PWMGenDisable(unsigned long ulBase, unsigned long ulGen) //! Sets the pulse width for the specified PWM output. //! //! \param ulBase is the base address of the PWM module. -//! \param ulPWMOut is the PWM output to modify. Must be one of \b PWM_OUT_0, -//! \b PWM_OUT_1, \b PWM_OUT_2, \b PWM_OUT_3, \b PWM_OUT_4, \b PWM_OUT_5, -//! \b PWM_OUT_6, or \b PWM_OUT_7. +//! \param ulPWMOut is the PWM output to modify. This parameter must be one +//! of \b PWM_OUT_0, \b PWM_OUT_1, \b PWM_OUT_2, \b PWM_OUT_3, \b PWM_OUT_4, +//! \b PWM_OUT_5, \b PWM_OUT_6, or \b PWM_OUT_7. //! \param ulWidth specifies the width of the positive portion of the pulse. //! //! This function sets the pulse width for the specified PWM output, where the //! pulse width is defined as the number of PWM clock ticks. //! //! \note Any subsequent calls made to this function before an update occurs -//! will cause the previous values to be overwritten. +//! cause the previous values to be overwritten. //! //! \return None. // @@ -433,7 +433,7 @@ PWMPulseWidthSet(unsigned long ulBase, unsigned long ulPWMOut, // // Check the arguments. // - ASSERT(ulBase == PWM_BASE); + ASSERT((ulBase == PWM0_BASE) || (ulBase == PWM1_BASE)); ASSERT(PWMOutValid(ulPWMOut)); // @@ -482,9 +482,9 @@ PWMPulseWidthSet(unsigned long ulBase, unsigned long ulPWMOut, //! Gets the pulse width of a PWM output. //! //! \param ulBase is the base address of the PWM module. -//! \param ulPWMOut is the PWM output to query. Must be one of \b PWM_OUT_0, -//! \b PWM_OUT_1, \b PWM_OUT_2, \b PWM_OUT_3, \b PWM_OUT_4, \b PWM_OUT_5, -//! \b PWM_OUT_6, or \b PWM_OUT_7. +//! \param ulPWMOut is the PWM output to query. This parameter must be one of +//! \b PWM_OUT_0, \b PWM_OUT_1, \b PWM_OUT_2, \b PWM_OUT_3, \b PWM_OUT_4, +//! \b PWM_OUT_5, \b PWM_OUT_6, or \b PWM_OUT_7. //! //! This function gets the currently programmed pulse width for the specified //! PWM output. If the update of the comparator for the specified output has @@ -503,7 +503,7 @@ PWMPulseWidthGet(unsigned long ulBase, unsigned long ulPWMOut) // // Check the arguments. // - ASSERT(ulBase == PWM_BASE); + ASSERT((ulBase == PWM0_BASE) || (ulBase == PWM1_BASE)); ASSERT(PWMOutValid(ulPWMOut)); // @@ -542,11 +542,11 @@ PWMPulseWidthGet(unsigned long ulBase, unsigned long ulPWMOut) //***************************************************************************** // -//! Enables the PWM dead band output, and sets the dead band delays. +//! Enables the PWM dead band output and sets the dead band delays. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGen is the PWM generator to modify. Must be one of -//! \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. +//! \param ulGen is the PWM generator to modify. This parameter must be one +//! of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. //! \param usRise specifies the width of delay from the rising edge. //! \param usFall specifies the width of delay from the falling edge. //! @@ -557,7 +557,7 @@ PWMPulseWidthGet(unsigned long ulBase, unsigned long ulPWMOut) //! //! \return None. // -//***************************************************************************** +//**************************************************************************** void PWMDeadBandEnable(unsigned long ulBase, unsigned long ulGen, unsigned short usRise, unsigned short usFall) @@ -565,7 +565,7 @@ PWMDeadBandEnable(unsigned long ulBase, unsigned long ulGen, // // Check the arguments. // - ASSERT(ulBase == PWM_BASE); + ASSERT((ulBase == PWM0_BASE) || (ulBase == PWM1_BASE)); ASSERT(PWMGenValid(ulGen)); ASSERT(usRise < 4096); ASSERT(usFall < 4096); @@ -592,7 +592,7 @@ PWMDeadBandEnable(unsigned long ulBase, unsigned long ulGen, //! Disables the PWM dead band output. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGen is the PWM generator to modify. Must be one of +//! \param ulGen is the PWM generator to modify. This parameter must be one of //! \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. //! //! This function disables the dead band mode for the specified PWM generator. @@ -607,7 +607,7 @@ PWMDeadBandDisable(unsigned long ulBase, unsigned long ulGen) // // Check the arguments. // - ASSERT(ulBase == PWM_BASE); + ASSERT((ulBase == PWM0_BASE) || (ulBase == PWM1_BASE)); ASSERT(PWMGenValid(ulGen)); // @@ -622,9 +622,9 @@ PWMDeadBandDisable(unsigned long ulBase, unsigned long ulGen) //! Synchronizes all pending updates. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGenBits are the PWM generator blocks to be updated. Must be the -//! logical OR of any of \b PWM_GEN_0_BIT, \b PWM_GEN_1_BIT, -//! \b PWM_GEN_2_BIT, or \b PWM_GEN_3_BIT. +//! \param ulGenBits are the PWM generator blocks to be updated. This +//! parameter must be the logical OR of any of \b PWM_GEN_0_BIT, +//! \b PWM_GEN_1_BIT, \b PWM_GEN_2_BIT, or \b PWM_GEN_3_BIT. //! //! For the selected PWM generators, this function causes all queued updates to //! the period or pulse width to be applied the next time the corresponding @@ -639,7 +639,7 @@ PWMSyncUpdate(unsigned long ulBase, unsigned long ulGenBits) // // Check the arguments. // - ASSERT(ulBase == PWM_BASE); + ASSERT((ulBase == PWM0_BASE) || (ulBase == PWM1_BASE)); ASSERT(!(ulGenBits & ~(PWM_GEN_0_BIT | PWM_GEN_1_BIT | PWM_GEN_2_BIT | PWM_GEN_3_BIT))); @@ -654,9 +654,9 @@ PWMSyncUpdate(unsigned long ulBase, unsigned long ulGenBits) //! Synchronizes the counters in one or multiple PWM generator blocks. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGenBits are the PWM generator blocks to be synchronized. Must be -//! the logical OR of any of \b PWM_GEN_0_BIT, \b PWM_GEN_1_BIT, -//! \b PWM_GEN_2_BIT, or \b PWM_GEN_3_BIT. +//! \param ulGenBits are the PWM generator blocks to be synchronized. This +//! parameter must be the logical OR of any of \b PWM_GEN_0_BIT, +//! \b PWM_GEN_1_BIT, \b PWM_GEN_2_BIT, or \b PWM_GEN_3_BIT. //! //! For the selected PWM module, this function synchronizes the time base //! of the generator blocks by causing the specified generator counters to be @@ -671,7 +671,7 @@ PWMSyncTimeBase(unsigned long ulBase, unsigned long ulGenBits) // // Check the arguments. // - ASSERT(ulBase == PWM_BASE); + ASSERT((ulBase == PWM0_BASE) || (ulBase == PWM1_BASE)); ASSERT(!(ulGenBits & ~(PWM_GEN_0_BIT | PWM_GEN_1_BIT | PWM_GEN_2_BIT | PWM_GEN_3_BIT))); @@ -687,17 +687,17 @@ PWMSyncTimeBase(unsigned long ulBase, unsigned long ulGenBits) //! Enables or disables PWM outputs. //! //! \param ulBase is the base address of the PWM module. -//! \param ulPWMOutBits are the PWM outputs to be modified. Must be the -//! logical OR of any of \b PWM_OUT_0_BIT, \b PWM_OUT_1_BIT, \b PWM_OUT_2_BIT, -//! \b PWM_OUT_3_BIT, \b PWM_OUT_4_BIT, \b PWM_OUT_5_BIT, \b PWM_OUT_6_BIT, -//! or \b PWM_OUT_7_BIT. +//! \param ulPWMOutBits are the PWM outputs to be modified. This parameter +//! must be the logical OR of any of \b PWM_OUT_0_BIT, \b PWM_OUT_1_BIT, +//! \b PWM_OUT_2_BIT, \b PWM_OUT_3_BIT, \b PWM_OUT_4_BIT, \b PWM_OUT_5_BIT, +//! \b PWM_OUT_6_BIT, or \b PWM_OUT_7_BIT. //! \param bEnable determines if the signal is enabled or disabled. //! -//! This function is used to enable or disable the selected PWM outputs. The +//! This function enables or disables the selected PWM outputs. The //! outputs are selected using the parameter \e ulPWMOutBits. The parameter //! \e bEnable determines the state of the selected outputs. If \e bEnable is //! \b true, then the selected PWM outputs are enabled, or placed in the active -//! state. If \e bEnable is \b false, then the selected outputs are disabled, +//! state. If \e bEnable is \b false, then the selected outputs are disabled //! or placed in the inactive state. //! //! \return None. @@ -710,13 +710,13 @@ PWMOutputState(unsigned long ulBase, unsigned long ulPWMOutBits, // // Check the arguments. // - ASSERT(ulBase == PWM_BASE); + ASSERT((ulBase == PWM0_BASE) || (ulBase == PWM1_BASE)); ASSERT(!(ulPWMOutBits & ~(PWM_OUT_0_BIT | PWM_OUT_1_BIT | PWM_OUT_2_BIT | PWM_OUT_3_BIT | PWM_OUT_4_BIT | PWM_OUT_5_BIT | PWM_OUT_6_BIT | PWM_OUT_7_BIT))); // - // Read the module's ENABLE output control register, and set or clear the + // Read the module's ENABLE output control register and set or clear the // requested bits. // if(bEnable == true) @@ -734,19 +734,19 @@ PWMOutputState(unsigned long ulBase, unsigned long ulPWMOutBits, //! Selects the inversion mode for PWM outputs. //! //! \param ulBase is the base address of the PWM module. -//! \param ulPWMOutBits are the PWM outputs to be modified. Must be the -//! logical OR of any of \b PWM_OUT_0_BIT, \b PWM_OUT_1_BIT, \b PWM_OUT_2_BIT, -//! \b PWM_OUT_3_BIT, \b PWM_OUT_4_BIT, \b PWM_OUT_5_BIT, \b PWM_OUT_6_BIT, or -//! \b PWM_OUT_7_BIT. +//! \param ulPWMOutBits are the PWM outputs to be modified. This parameter +//! must be the logical OR of any of \b PWM_OUT_0_BIT, \b PWM_OUT_1_BIT, +//! \b PWM_OUT_2_BIT, \b PWM_OUT_3_BIT, \b PWM_OUT_4_BIT, \b PWM_OUT_5_BIT, +//! \b PWM_OUT_6_BIT, or \b PWM_OUT_7_BIT. //! \param bInvert determines if the signal is inverted or passed through. //! //! This function is used to select the inversion mode for the selected PWM //! outputs. The outputs are selected using the parameter \e ulPWMOutBits. //! The parameter \e bInvert determines the inversion mode for the selected -//! outputs. If \e bInvert is \b true, this function will cause the specified -//! PWM output signals to be inverted, or made active low. If \e bInvert is -//! \b false, the specified output will be passed through as is, or be made -//! active high. +//! outputs. If \e bInvert is \b true, this function causes the specified +//! PWM output signals to be inverted or made active low. If \e bInvert is +//! \b false, the specified outputs are passed through as is or made active +//! high. //! //! \return None. // @@ -758,13 +758,13 @@ PWMOutputInvert(unsigned long ulBase, unsigned long ulPWMOutBits, // // Check the arguments. // - ASSERT(ulBase == PWM_BASE); + ASSERT((ulBase == PWM0_BASE) || (ulBase == PWM1_BASE)); ASSERT(!(ulPWMOutBits & ~(PWM_OUT_0_BIT | PWM_OUT_1_BIT | PWM_OUT_2_BIT | PWM_OUT_3_BIT | PWM_OUT_4_BIT | PWM_OUT_5_BIT | PWM_OUT_6_BIT | PWM_OUT_7_BIT))); // - // Read the module's INVERT output control register, and set or clear the + // Read the module's INVERT output control register and set or clear the // requested bits. // if(bInvert == true) @@ -783,20 +783,20 @@ PWMOutputInvert(unsigned long ulBase, unsigned long ulPWMOutBits, //! condition. //! //! \param ulBase is the base address of the PWM module. -//! \param ulPWMOutBits are the PWM outputs to be modified. Must be the -//! logical OR of any of \b PWM_OUT_0_BIT, \b PWM_OUT_1_BIT, \b PWM_OUT_2_BIT, -//! \b PWM_OUT_3_BIT, \b PWM_OUT_4_BIT, \b PWM_OUT_5_BIT, \b PWM_OUT_6_BIT, or -//! \b PWM_OUT_7_BIT. +//! \param ulPWMOutBits are the PWM outputs to be modified. This parameter +//! must be the logical OR of any of \b PWM_OUT_0_BIT, \b PWM_OUT_1_BIT, +//! \b PWM_OUT_2_BIT, \b PWM_OUT_3_BIT, \b PWM_OUT_4_BIT, \b PWM_OUT_5_BIT, +//! \b PWM_OUT_6_BIT, or \b PWM_OUT_7_BIT. //! \param bDriveHigh determines if the signal is driven high or low during an //! active fault condition. //! //! This function determines whether a PWM output pin that is suppressed in -//! response to a fault condition will be driven high or low. The affected -//! outputs are selected using the parameter \e ulPWMOutBits. The parameter +//! response to a fault condition is driven high or low. The affected outputs +//! are selected using the parameter \e ulPWMOutBits. The parameter //! \e bDriveHigh determines the output level for the pins identified by -//! \e ulPWMOutBits. If \e bDriveHigh is \b true then the selected outputs -//! will be driven high when a fault is detected. If it is \e false, the pins -//! will be driven low. +//! \e ulPWMOutBits. If \e bDriveHigh is \b true then the selected outputs are +//! driven high when a fault is detected. If it is \e false, the pins are +//! driven low. //! //! In a fault condition, pins which have not been configured to be suppressed //! via a call to PWMOutputFault() are unaffected by this function. @@ -814,14 +814,13 @@ PWMOutputFaultLevel(unsigned long ulBase, unsigned long ulPWMOutBits, // // Check the arguments. // - ASSERT(HWREG(SYSCTL_DC5) & SYSCTL_DC5_PWMEFLT); - ASSERT(ulBase == PWM_BASE); + ASSERT((ulBase == PWM0_BASE) || (ulBase == PWM1_BASE)); ASSERT(!(ulPWMOutBits & ~(PWM_OUT_0_BIT | PWM_OUT_1_BIT | PWM_OUT_2_BIT | PWM_OUT_3_BIT | PWM_OUT_4_BIT | PWM_OUT_5_BIT | PWM_OUT_6_BIT | PWM_OUT_7_BIT))); // - // Read the module's FAULT output control register, and set or clear the + // Read the module's FAULT output control register and set or clear the // requested bits. // if(bDriveHigh == true) @@ -839,10 +838,10 @@ PWMOutputFaultLevel(unsigned long ulBase, unsigned long ulPWMOutBits, //! Specifies the state of PWM outputs in response to a fault condition. //! //! \param ulBase is the base address of the PWM module. -//! \param ulPWMOutBits are the PWM outputs to be modified. Must be the -//! logical OR of any of \b PWM_OUT_0_BIT, \b PWM_OUT_1_BIT, \b PWM_OUT_2_BIT, -//! \b PWM_OUT_3_BIT, \b PWM_OUT_4_BIT, \b PWM_OUT_5_BIT, \b PWM_OUT_6_BIT, or -//! \b PWM_OUT_7_BIT. +//! \param ulPWMOutBits are the PWM outputs to be modified. This parameter +//! must be the logical OR of any of \b PWM_OUT_0_BIT, \b PWM_OUT_1_BIT, +//! \b PWM_OUT_2_BIT, \b PWM_OUT_3_BIT, \b PWM_OUT_4_BIT, \b PWM_OUT_5_BIT, +//! \b PWM_OUT_6_BIT, or \b PWM_OUT_7_BIT. //! \param bFaultSuppress determines if the signal is suppressed or passed //! through during an active fault condition. //! @@ -850,13 +849,13 @@ PWMOutputFaultLevel(unsigned long ulBase, unsigned long ulPWMOutBits, //! outputs. The outputs are selected using the parameter \e ulPWMOutBits. //! The parameter \e bFaultSuppress determines the fault handling //! characteristics for the selected outputs. If \e bFaultSuppress is \b true, -//! then the selected outputs will be made inactive. If \e bFaultSuppress is +//! then the selected outputs are made inactive. If \e bFaultSuppress is //! \b false, then the selected outputs are unaffected by the detected fault. //! //! On devices supporting extended PWM fault handling, the state the affected //! output pins are driven to can be configured with PWMOutputFaultLevel(). If //! not configured, or if the device does not support extended PWM fault -//! handling, affected outputs will be driven low on a fault condition. +//! handling, affected outputs are driven low on a fault condition. //! //! \return None. // @@ -868,13 +867,13 @@ PWMOutputFault(unsigned long ulBase, unsigned long ulPWMOutBits, // // Check the arguments. // - ASSERT(ulBase == PWM_BASE); + ASSERT((ulBase == PWM0_BASE) || (ulBase == PWM1_BASE)); ASSERT(!(ulPWMOutBits & ~(PWM_OUT_0_BIT | PWM_OUT_1_BIT | PWM_OUT_2_BIT | PWM_OUT_3_BIT | PWM_OUT_4_BIT | PWM_OUT_5_BIT | PWM_OUT_6_BIT | PWM_OUT_7_BIT))); // - // Read the module's FAULT output control register, and set or clear the + // Read the module's FAULT output control register and set or clear the // requested bits. // if(bFaultSuppress == true) @@ -887,19 +886,115 @@ PWMOutputFault(unsigned long ulBase, unsigned long ulPWMOutBits, } } +//***************************************************************************** +// +//! Gets the PWM generator interrupt number. +//! +//! \param ulBase is the base address of the PWM module. +//! \param ulGen is the PWM generator in question. This parameter must be one +//! of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. +//! +//! This function returns the interrupt number of the corresponding PWM +//! generator. +//! +//! \return Returns the interrupt number. +// +//***************************************************************************** +static unsigned long +PWMGenIntGet(unsigned long ulBase, unsigned long ulGen) +{ + // + // Determine the generator and PWM module in question. + // + switch(ulBase + ulGen) + { + // + // The first PWM generator in the first PWM module. + // + case PWM0_BASE + PWM_GEN_0: + { + return(INT_PWM0_0); + } + + // + // The second PWM generator in the first PWM module. + // + case PWM0_BASE + PWM_GEN_1: + { + return(INT_PWM0_1); + } + + // + // The third PWM generator in the first PWM module. + // + case PWM0_BASE + PWM_GEN_2: + { + return(INT_PWM0_2); + } + + // + // The fourth PWM generator in the first PWM module. + // + case PWM0_BASE + PWM_GEN_3: + { + return(INT_PWM0_3); + } + + // + // The first PWM generator in the second PWM module. + // + case PWM1_BASE + PWM_GEN_0: + { + return(INT_PWM1_0); + } + + // + // The first PWM generator in the second PWM module. + // + case PWM1_BASE + PWM_GEN_1: + { + return(INT_PWM1_1); + } + + // + // The first PWM generator in the second PWM module. + // + case PWM1_BASE + PWM_GEN_2: + { + return(INT_PWM1_2); + } + + // + // The first PWM generator in the second PWM module. + // + case PWM1_BASE + PWM_GEN_3: + { + return(INT_PWM1_3); + } + + // + // An unknown PWM module/generator was specified. + // + default: + { + return(0); + } + } +} + //***************************************************************************** // //! Registers an interrupt handler for the specified PWM generator block. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGen is the PWM generator in question. Must be one of -//! \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. +//! \param ulGen is the PWM generator in question. This parameter must be one +//! of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. //! \param pfnIntHandler is a pointer to the function to be called when the PWM //! generator interrupt occurs. //! -//! This function will ensure that the interrupt handler specified by +//! This function ensures that the interrupt handler specified by //! \e pfnIntHandler is called when an interrupt is detected for the specified -//! PWM generator block. This function will also enable the corresponding +//! PWM generator block. This function also enables the corresponding //! PWM generator interrupt in the interrupt controller; individual generator //! interrupts and interrupt sources must be enabled with PWMIntEnable() and //! PWMGenIntTrigEnable(). @@ -919,20 +1014,13 @@ PWMGenIntRegister(unsigned long ulBase, unsigned long ulGen, // // Check the arguments. // - ASSERT(ulBase == PWM_BASE); + ASSERT((ulBase == PWM0_BASE) || (ulBase == PWM1_BASE)); ASSERT(PWMGenValid(ulGen)); // // Get the interrupt number associated with the specified generator. // - if(ulGen == PWM_GEN_3) - { - ulInt = INT_PWM3; - } - else - { - ulInt = INT_PWM0 + (ulGen >> 6) - 1; - } + ulInt = PWMGenIntGet(ulBase, ulGen); // // Register the interrupt handler. @@ -950,11 +1038,11 @@ PWMGenIntRegister(unsigned long ulBase, unsigned long ulGen, //! Removes an interrupt handler for the specified PWM generator block. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGen is the PWM generator in question. Must be one of -//! \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. +//! \param ulGen is the PWM generator in question. This parameter must be one +//! of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. //! -//! This function will unregister the interrupt handler for the specified -//! PWM generator block. This function will also disable the corresponding +//! This function unregisters the interrupt handler for the specified +//! PWM generator block. This function also disables the corresponding //! PWM generator interrupt in the interrupt controller; individual generator //! interrupts and interrupt sources must be disabled with PWMIntDisable() and //! PWMGenIntTrigDisable(). @@ -973,20 +1061,13 @@ PWMGenIntUnregister(unsigned long ulBase, unsigned long ulGen) // // Check the arguments. // - ASSERT(ulBase == PWM_BASE); + ASSERT((ulBase == PWM0_BASE) || (ulBase == PWM1_BASE)); ASSERT(PWMGenValid(ulGen)); // // Get the interrupt number associated with the specified generator. // - if(ulGen == PWM_GEN_3) - { - ulInt = INT_PWM3; - } - else - { - ulInt = INT_PWM0 + (ulGen >> 6) - 1; - } + ulInt = PWMGenIntGet(ulBase, ulGen); // // Disable the PWMx interrupt. @@ -999,6 +1080,27 @@ PWMGenIntUnregister(unsigned long ulBase, unsigned long ulGen) IntUnregister(ulInt); } +//***************************************************************************** +// +//! Gets the PWM fault interrupt number. +//! +//! \param ulBase is the base address of the PWM module. +//! +//! This function returns the fault interrupt number of the corresponding +//! PWM module. +//! +//! \return Returns the interrupt number. +// +//***************************************************************************** +static unsigned long +PWMFaultIntGet(unsigned long ulBase) +{ + // + // Return the fault interrupt number. + // + return((ulBase == PWM0_BASE) ? INT_PWM0_FAULT : INT_PWM1_FAULT); +} + //***************************************************************************** // //! Registers an interrupt handler for a fault condition detected in a PWM @@ -1008,9 +1110,9 @@ PWMGenIntUnregister(unsigned long ulBase, unsigned long ulGen) //! \param pfnIntHandler is a pointer to the function to be called when the PWM //! fault interrupt occurs. //! -//! This function will ensure that the interrupt handler specified by +//! This function ensures that the interrupt handler specified by //! \e pfnIntHandler is called when a fault interrupt is detected for the -//! selected PWM module. This function will also enable the PWM fault +//! selected PWM module. This function also enables the PWM fault //! interrupt in the NVIC; the PWM fault interrupt must also be enabled at the //! module level using PWMIntEnable(). //! @@ -1023,20 +1125,27 @@ PWMGenIntUnregister(unsigned long ulBase, unsigned long ulGen) void PWMFaultIntRegister(unsigned long ulBase, void (*pfnIntHandler)(void)) { + unsigned long ulInt; + // // Check the arguments. // - ASSERT(ulBase == PWM_BASE); + ASSERT((ulBase == PWM0_BASE) || (ulBase == PWM1_BASE)); + + // + // Get the interrupt number associated with the specified module. + // + ulInt = PWMFaultIntGet(ulBase); // // Register the interrupt handler, returning an error if one occurs. // - IntRegister(INT_PWM_FAULT, pfnIntHandler); + IntRegister(ulInt, pfnIntHandler); // // Enable the PWM fault interrupt. // - IntEnable(INT_PWM_FAULT); + IntEnable(ulInt); } //***************************************************************************** @@ -1045,8 +1154,8 @@ PWMFaultIntRegister(unsigned long ulBase, void (*pfnIntHandler)(void)) //! //! \param ulBase is the base address of the PWM module. //! -//! This function will remove the interrupt handler for a PWM fault interrupt -//! from the selected PWM module. This function will also disable the PWM +//! This function removes the interrupt handler for a PWM fault interrupt +//! from the selected PWM module. This function also disables the PWM //! fault interrupt in the NVIC; the PWM fault interrupt must also be disabled //! at the module level using PWMIntDisable(). //! @@ -1059,20 +1168,27 @@ PWMFaultIntRegister(unsigned long ulBase, void (*pfnIntHandler)(void)) void PWMFaultIntUnregister(unsigned long ulBase) { + unsigned long ulInt; + // // Check the arguments. // - ASSERT(ulBase == PWM_BASE); + ASSERT((ulBase == PWM0_BASE) || (ulBase == PWM1_BASE)); + + // + // Get the interrupt number associated with the specified module. + // + ulInt = PWMFaultIntGet(ulBase); // // Disable the PWM fault interrupt. // - IntDisable(INT_PWM_FAULT); + IntDisable(ulInt); // // Unregister the interrupt handler, returning an error if one occurs. // - IntUnregister(INT_PWM_FAULT); + IntUnregister(ulInt); } //***************************************************************************** @@ -1081,12 +1197,13 @@ PWMFaultIntUnregister(unsigned long ulBase) //! //! \param ulBase is the base address of the PWM module. //! \param ulGen is the PWM generator to have interrupts and triggers enabled. -//! Must be one of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. +//! This parameter must be one of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or +//! \b PWM_GEN_3. //! \param ulIntTrig specifies the interrupts and triggers to be enabled. //! -//! Unmasks the specified interrupt(s) and trigger(s) by setting the -//! specified bits of the interrupt/trigger enable register for the specified -//! PWM generator. The \e ulIntTrig parameter is the logical OR of +//! This function unmasks the specified interrupt(s) and trigger(s) by setting +//! the specified bits of the interrupt/trigger enable register for the +//! specified PWM generator. The \e ulIntTrig parameter is the logical OR of //! \b PWM_INT_CNT_ZERO, \b PWM_INT_CNT_LOAD, \b PWM_INT_CNT_AU, //! \b PWM_INT_CNT_AD, \b PWM_INT_CNT_BU, \b PWM_INT_CNT_BD, //! \b PWM_TR_CNT_ZERO, \b PWM_TR_CNT_LOAD, \b PWM_TR_CNT_AU, \b PWM_TR_CNT_AD, @@ -1102,7 +1219,7 @@ PWMGenIntTrigEnable(unsigned long ulBase, unsigned long ulGen, // // Check the arguments. // - ASSERT(ulBase == PWM_BASE); + ASSERT((ulBase == PWM0_BASE) || (ulBase == PWM1_BASE)); ASSERT(PWMGenValid(ulGen)); ASSERT((ulIntTrig & ~(PWM_INT_CNT_ZERO | PWM_INT_CNT_LOAD | PWM_INT_CNT_AU | PWM_INT_CNT_AD | PWM_INT_CNT_BU | @@ -1122,12 +1239,13 @@ PWMGenIntTrigEnable(unsigned long ulBase, unsigned long ulGen, //! //! \param ulBase is the base address of the PWM module. //! \param ulGen is the PWM generator to have interrupts and triggers disabled. -//! Must be one of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. +//! This parameter must be one of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or +//! \b PWM_GEN_3. //! \param ulIntTrig specifies the interrupts and triggers to be disabled. //! -//! Masks the specified interrupt(s) and trigger(s) by clearing the -//! specified bits of the interrupt/trigger enable register for the specified -//! PWM generator. The \e ulIntTrig parameter is the logical OR of +//! This function masks the specified interrupt(s) and trigger(s) by clearing +//! the specified bits of the interrupt/trigger enable register for the +//! specified PWM generator. The \e ulIntTrig parameter is the logical OR of //! \b PWM_INT_CNT_ZERO, \b PWM_INT_CNT_LOAD, \b PWM_INT_CNT_AU, //! \b PWM_INT_CNT_AD, \b PWM_INT_CNT_BU, \b PWM_INT_CNT_BD, //! \b PWM_TR_CNT_ZERO, \b PWM_TR_CNT_LOAD, \b PWM_TR_CNT_AU, \b PWM_TR_CNT_AD, @@ -1143,7 +1261,7 @@ PWMGenIntTrigDisable(unsigned long ulBase, unsigned long ulGen, // // Check the arguments. // - ASSERT(ulBase == PWM_BASE); + ASSERT((ulBase == PWM0_BASE) || (ulBase == PWM1_BASE)); ASSERT(PWMGenValid(ulGen)); ASSERT((ulIntTrig & ~(PWM_INT_CNT_ZERO | PWM_INT_CNT_LOAD | PWM_INT_CNT_AU | PWM_INT_CNT_AD | PWM_INT_CNT_BU | @@ -1162,16 +1280,16 @@ PWMGenIntTrigDisable(unsigned long ulBase, unsigned long ulGen, //! Gets interrupt status for the specified PWM generator block. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGen is the PWM generator to query. Must be one of \b PWM_GEN_0, -//! \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. +//! \param ulGen is the PWM generator to query. This parameter must be one of +//! \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. //! \param bMasked specifies whether masked or raw interrupt status is //! returned. //! //! If \e bMasked is set as \b true, then the masked interrupt status is -//! returned; otherwise, the raw interrupt status will be returned. +//! returned; otherwise, the raw interrupt status is returned. //! -//! \return Returns the contents of the interrupt status register, or the -//! contents of the raw interrupt status register, for the specified +//! \return Returns the contents of the interrupt status register or the +//! contents of the raw interrupt status register for the specified //! PWM generator. // //***************************************************************************** @@ -1181,7 +1299,7 @@ PWMGenIntStatus(unsigned long ulBase, unsigned long ulGen, tBoolean bMasked) // // Check the arguments. // - ASSERT(ulBase == PWM_BASE); + ASSERT((ulBase == PWM0_BASE) || (ulBase == PWM1_BASE)); ASSERT(PWMGenValid(ulGen)); // @@ -1208,24 +1326,24 @@ PWMGenIntStatus(unsigned long ulBase, unsigned long ulGen, tBoolean bMasked) //! Clears the specified interrupt(s) for the specified PWM generator block. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGen is the PWM generator to query. Must be one of \b PWM_GEN_0, -//! \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. +//! \param ulGen is the PWM generator to query. This parameter must be one of +//! \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. //! \param ulInts specifies the interrupts to be cleared. //! -//! Clears the specified interrupt(s) by writing a 1 to the specified bits -//! of the interrupt status register for the specified PWM generator. The -//! \e ulInts parameter is the logical OR of \b PWM_INT_CNT_ZERO, -//! \b PWM_INT_CNT_LOAD, \b PWM_INT_CNT_AU, \b PWM_INT_CNT_AD, -//! \b PWM_INT_CNT_BU, or \b PWM_INT_CNT_BD. +//! This funciton clears the specified interrupt(s) by writing a 1 to the +//! specified bits of the interrupt status register for the specified PWM +//! generator. The \e ulInts parameter is the logical OR of +//! \b PWM_INT_CNT_ZERO, \b PWM_INT_CNT_LOAD, \b PWM_INT_CNT_AU, +//! \b PWM_INT_CNT_AD, \b PWM_INT_CNT_BU, or \b PWM_INT_CNT_BD. //! -//! \note Since there is a write buffer in the Cortex-M3 processor, it may take -//! several clock cycles before the interrupt source is actually cleared. +//! \note Because there is a write buffer in the Cortex-M processor, it may +//! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid //! returning from the interrupt handler before the interrupt source is //! actually cleared. Failure to do so may result in the interrupt handler -//! being immediately reentered (since NVIC still sees the interrupt source -//! asserted). +//! being immediately reentered (because the interrupt controller still sees +//! the interrupt source asserted). //! //! \return None. // @@ -1236,7 +1354,7 @@ PWMGenIntClear(unsigned long ulBase, unsigned long ulGen, unsigned long ulInts) // // Check the arguments. // - ASSERT(ulBase == PWM_BASE); + ASSERT((ulBase == PWM0_BASE) || (ulBase == PWM1_BASE)); ASSERT(PWMGenValid(ulGen)); ASSERT((ulInts & ~(PWM_INT_CNT_ZERO | PWM_INT_CNT_LOAD | PWM_INT_CNT_AU | PWM_INT_CNT_AD | PWM_INT_CNT_BU | PWM_INT_CNT_BD)) == @@ -1254,13 +1372,13 @@ PWMGenIntClear(unsigned long ulBase, unsigned long ulGen, unsigned long ulInts) //! Enables generator and fault interrupts for a PWM module. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGenFault contains the interrupts to be enabled. Must be a logical -//! OR of any of \b PWM_INT_GEN_0, \b PWM_INT_GEN_1, \b PWM_INT_GEN_2, -//! \b PWM_INT_GEN_3, \b PWM_INT_FAULT0, \b PWM_INT_FAULT1, \b PWM_INT_FAULT2, -//! or \b PWM_INT_FAULT3. +//! \param ulGenFault contains the interrupts to be enabled. This parameter +//! must be a logical OR of any of \b PWM_INT_GEN_0, \b PWM_INT_GEN_1, +//! \b PWM_INT_GEN_2, \b PWM_INT_GEN_3, \b PWM_INT_FAULT0, \b PWM_INT_FAULT1, +//! \b PWM_INT_FAULT2, or \b PWM_INT_FAULT3. //! -//! Unmasks the specified interrupt(s) by setting the specified bits of -//! the interrupt enable register for the selected PWM module. +//! This function unmasks the specified interrupt(s) by setting the specified +//! bits of the interrupt enable register for the selected PWM module. //! //! \return None. // @@ -1271,13 +1389,13 @@ PWMIntEnable(unsigned long ulBase, unsigned long ulGenFault) // // Check the arguments. // - ASSERT(ulBase == PWM_BASE); + ASSERT((ulBase == PWM0_BASE) || (ulBase == PWM1_BASE)); ASSERT((ulGenFault & ~(PWM_INT_GEN_0 | PWM_INT_GEN_1 | PWM_INT_GEN_2 | PWM_INT_GEN_3 | PWM_INT_FAULT0 | PWM_INT_FAULT1 | PWM_INT_FAULT2 | PWM_INT_FAULT3)) == 0); // - // Read the module's interrupt enable register, and enable interrupts + // Read the module's interrupt enable register and enable interrupts // for the specified PWM generators. // HWREG(ulBase + PWM_O_INTEN) |= ulGenFault; @@ -1288,13 +1406,13 @@ PWMIntEnable(unsigned long ulBase, unsigned long ulGenFault) //! Disables generator and fault interrupts for a PWM module. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGenFault contains the interrupts to be disabled. Must be a -//! logical OR of any of \b PWM_INT_GEN_0, \b PWM_INT_GEN_1, \b PWM_INT_GEN_2, -//! \b PWM_INT_GEN_3, \b PWM_INT_FAULT0, \b PWM_INT_FAULT1, \b PWM_INT_FAULT2, -//! or \b PWM_INT_FAULT3. +//! \param ulGenFault contains the interrupts to be disabled. This parameter +//! must be a logical OR of any of \b PWM_INT_GEN_0, \b PWM_INT_GEN_1, +//! \b PWM_INT_GEN_2, \b PWM_INT_GEN_3, \b PWM_INT_FAULT0, \b PWM_INT_FAULT1, +//! \b PWM_INT_FAULT2, or \b PWM_INT_FAULT3. //! -//! Masks the specified interrupt(s) by clearing the specified bits of -//! the interrupt enable register for the selected PWM module. +//! This function masks the specified interrupt(s) by clearing the specified +//! bits of the interrupt enable register for the selected PWM module. //! //! \return None. // @@ -1305,13 +1423,13 @@ PWMIntDisable(unsigned long ulBase, unsigned long ulGenFault) // // Check the arguments. // - ASSERT(ulBase == PWM_BASE); + ASSERT((ulBase == PWM0_BASE) || (ulBase == PWM1_BASE)); ASSERT((ulGenFault & ~(PWM_INT_GEN_0 | PWM_INT_GEN_1 | PWM_INT_GEN_2 | PWM_INT_GEN_3 | PWM_INT_FAULT0 | PWM_INT_FAULT1 | PWM_INT_FAULT2 | PWM_INT_FAULT3)) == 0); // - // Read the module's interrupt enable register, and disable interrupts + // Read the module's interrupt enable register and disable interrupts // for the specified PWM generators. // HWREG(ulBase + PWM_O_INTEN) &= ~(ulGenFault); @@ -1323,22 +1441,22 @@ PWMIntDisable(unsigned long ulBase, unsigned long ulGenFault) //! //! \param ulBase is the base address of the PWM module. //! -//! Clears the fault interrupt by writing to the appropriate bit of the -//! interrupt status register for the selected PWM module. +//! This function clears the fault interrupt by writing to the appropriate bit +//! of the interrupt status register for the selected PWM module. //! //! This function clears only the FAULT0 interrupt and is retained for //! backwards compatibility. It is recommended that PWMFaultIntClearExt() be -//! used instead since it supports all fault interrupts supported on devices +//! used instead because it supports all fault interrupts supported on devices //! with and without extended PWM fault handling support. //! -//! \note Since there is a write buffer in the Cortex-M3 processor, it may take -//! several clock cycles before the interrupt source is actually cleared. +//! \note Because there is a write buffer in the Cortex-M processor, it may +//! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid //! returning from the interrupt handler before the interrupt source is //! actually cleared. Failure to do so may result in the interrupt handler -//! being immediately reentered (since NVIC still sees the interrupt source -//! asserted). +//! being immediately reentered (because the interrupt controller still sees +//! the interrupt source asserted). //! //! \return None. // @@ -1349,7 +1467,7 @@ PWMFaultIntClear(unsigned long ulBase) // // Check the arguments. // - ASSERT(ulBase == PWM_BASE); + ASSERT((ulBase == PWM0_BASE) || (ulBase == PWM1_BASE)); // // Write the only writeable bit in the module's interrupt register. @@ -1366,7 +1484,7 @@ PWMFaultIntClear(unsigned long ulBase) //! returned. //! //! If \e bMasked is set as \b true, then the masked interrupt status is -//! returned; otherwise, the raw interrupt status will be returned. +//! returned; otherwise, the raw interrupt status is returned. //! //! \return The current interrupt status, enumerated as a bit field of //! \b PWM_INT_GEN_0, \b PWM_INT_GEN_1, \b PWM_INT_GEN_2, \b PWM_INT_GEN_3, @@ -1380,7 +1498,7 @@ PWMIntStatus(unsigned long ulBase, tBoolean bMasked) // // Check the arguments. // - ASSERT(ulBase == PWM_BASE); + ASSERT((ulBase == PWM0_BASE) || (ulBase == PWM1_BASE)); // // Read and return either the module's raw or enabled interrupt status. @@ -1402,10 +1520,10 @@ PWMIntStatus(unsigned long ulBase, tBoolean bMasked) //! \param ulBase is the base address of the PWM module. //! \param ulFaultInts specifies the fault interrupts to clear. //! -//! Clears one or more fault interrupts by writing to the appropriate bit of -//! the PWM interrupt status register. The parameter \e ulFaultInts must be -//! the logical OR of any of \b PWM_INT_FAULT0, \b PWM_INT_FAULT1, -//! \b PWM_INT_FAULT2, or \b PWM_INT_FAULT3. +//! This function clears one or more fault interrupts by writing to the +//! appropriate bit of the PWM interrupt status register. The parameter +//! \e ulFaultInts must be the logical OR of any of \b PWM_INT_FAULT0, +//! \b PWM_INT_FAULT1, \b PWM_INT_FAULT2, or \b PWM_INT_FAULT3. //! //! When running on a device supporting extended PWM fault handling, the fault //! interrupts are derived by performing a logical OR of each of the configured @@ -1415,13 +1533,14 @@ PWMIntStatus(unsigned long ulBase, tBoolean bMasked) //! generators. On a device without extended PWM fault handling, the interrupt //! is directly related to the state of the single FAULT pin. //! -//! \note Since there is a write buffer in the Cortex-M3 processor, it may take -//! several cycles before the interrupt source is actually cleared. Therefore, -//! it is recommended that the interrupt source be cleared early in the -//! interrupt handler (as opposed to the very last action) to avoid returning -//! from the interrupt handler before the interrupt source is actually cleared. -//! Failure to do so may result in the interrupt handler being immediately -//! reentered (since NVIC still sees the interrupt source asserted). +//! \note Because there is a write buffer in the Cortex-M processor, it may +//! take several clock cycles before the interrupt source is actually cleared. +//! Therefore, it is recommended that the interrupt source be cleared early in +//! the interrupt handler (as opposed to the very last action) to avoid +//! returning from the interrupt handler before the interrupt source is +//! actually cleared. Failure to do so may result in the interrupt handler +//! being immediately reentered (because the interrupt controller still sees +//! the interrupt source asserted). //! //! \return None. // @@ -1432,7 +1551,7 @@ PWMFaultIntClearExt(unsigned long ulBase, unsigned long ulFaultInts) // // Check the arguments. // - ASSERT(ulBase == PWM_BASE); + ASSERT((ulBase == PWM0_BASE) || (ulBase == PWM1_BASE)); ASSERT((ulFaultInts & ~(PWM_INT_FAULT0 | PWM_INT_FAULT1 | PWM_INT_FAULT2 | PWM_INT_FAULT3)) == 0); @@ -1448,17 +1567,18 @@ PWMFaultIntClearExt(unsigned long ulBase, unsigned long ulFaultInts) //! PWM generator. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGen is the PWM generator whose fault configuration is being set. -//! Must be one of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. +//! \param ulGen is the PWM generator for which fault configuration is being +//! set. This function must be one of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, +//! or \b PWM_GEN_3. //! \param ulMinFaultPeriod is the minimum fault active period expressed in //! PWM clock cycles. //! \param ulFaultSenses indicates which sense of each FAULT input should be //! considered the ``asserted'' state. Valid values are logical OR //! combinations of \b PWM_FAULTn_SENSE_HIGH and \b PWM_FAULTn_SENSE_LOW. //! -//! This function sets the minimum fault period for a given generator along -//! with the sense of each of the 4 possible fault inputs. The minimum fault -//! period is expressed in PWM clock cycles and takes effect only if +//! This function configures the minimum fault period for a given generator +//! along with the sense of each of the 4 possible fault inputs. The minimum +//! fault period is expressed in PWM clock cycles and takes effect only if //! PWMGenConfigure() is called with flag \b PWM_GEN_MODE_FAULT_PER set in the //! \e ulConfig parameter. When a fault input is asserted, the minimum fault //! period timer ensures that it remains asserted for at least the number of @@ -1478,8 +1598,7 @@ PWMGenFaultConfigure(unsigned long ulBase, unsigned long ulGen, // // Check the arguments. // - ASSERT(HWREG(SYSCTL_DC5) & SYSCTL_DC5_PWMEFLT); - ASSERT(ulBase == PWM_BASE); + ASSERT((ulBase == PWM0_BASE) || (ulBase == PWM1_BASE)); ASSERT(PWMGenValid(ulGen)); ASSERT(ulMinFaultPeriod < PWM_X_MINFLTPER_M); ASSERT((ulFaultSenses & ~(PWM_FAULT0_SENSE_HIGH | PWM_FAULT0_SENSE_LOW | @@ -1504,30 +1623,32 @@ PWMGenFaultConfigure(unsigned long ulBase, unsigned long ulGen, //! Configures the set of fault triggers for a given PWM generator. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGen is the PWM generator whose fault triggers are being set. Must -//! be one of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. +//! \param ulGen is the PWM generator for which fault triggers are being set. +//! This parameter must be one of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or +//! \b PWM_GEN_3. //! \param ulGroup indicates the subset of possible faults that are to be -//! configured. This must be \b PWM_FAULT_GROUP_0 or \b PWM_FAULT_GROUP_1. +//! configured. This parameter must be \b PWM_FAULT_GROUP_0 or +//! \b PWM_FAULT_GROUP_1. //! \param ulFaultTriggers defines the set of inputs that are to contribute //! towards generation of the fault signal to the given PWM generator. For -//! \b PWM_FAULT_GROUP_0, this will be the logical OR of \b PWM_FAULT_FAULT0, +//! \b PWM_FAULT_GROUP_0, this is the logical OR of \b PWM_FAULT_FAULT0, //! \b PWM_FAULT_FAULT1, \b PWM_FAULT_FAULT2, or \b PWM_FAULT_FAULT3. For -//! \b PWM_FAULT_GROUP_1, this will be the logical OR of \b PWM_FAULT_DCMP0, -//! \b PWM_FAULT_DCMP1, \b PWM_FAULT_DCMP2, \b PWM_FAULT_DCMP3, \b -//! PWM_FAULT_DCMP4, \b PWM_FAULT_DCMP5, \b PWM_FAULT_DCMP6, or \b -//! PWM_FAULT_DCMP7. +//! \b PWM_FAULT_GROUP_1, this is the logical OR of \b PWM_FAULT_DCMP0, +//! \b PWM_FAULT_DCMP1, \b PWM_FAULT_DCMP2, \b PWM_FAULT_DCMP3, +//! \b PWM_FAULT_DCMP4, \b PWM_FAULT_DCMP5, \b PWM_FAULT_DCMP6, or +//! \b PWM_FAULT_DCMP7. //! -//! This function allows selection of the set of fault inputs that will be -//! combined to generate a fault condition to a given PWM generator. By -//! default, all generators use only FAULT0 (for backwards compatibility) but -//! if PWMGenConfigure() is called with flag \b PWM_GEN_MODE_FAULT_SRC in the +//! This function allows selection of the set of fault inputs that is combined +//! to generate a fault condition to a given PWM generator. By default, all +//! generators use only FAULT0 (for backwards compatibility) but if +//! PWMGenConfigure() is called with flag \b PWM_GEN_MODE_FAULT_SRC in the //! \e ulConfig parameter, extended fault handling is enabled and this function //! must be called to configure the fault triggers. //! //! The fault signal to the PWM generator is generated by ORing together each -//! of the signals whose inputs are specified in the \e ulFaultTriggers -//! parameter after having adjusted the sense of each FAULTn input based on the -//! configuration previously set using a call to PWMGenFaultConfigure(). +//! of the signals specified in the \e ulFaultTriggers parameter after having +//! adjusted the sense of each FAULTn input based on the configuration +//! previously set using a call to PWMGenFaultConfigure(). //! //! \note This function is only available on devices supporting extended PWM //! fault handling. @@ -1542,8 +1663,7 @@ PWMGenFaultTriggerSet(unsigned long ulBase, unsigned long ulGen, // // Check for valid parameters. // - ASSERT(HWREG(SYSCTL_DC5) & SYSCTL_DC5_PWMEFLT); - ASSERT(ulBase == PWM_BASE); + ASSERT((ulBase == PWM0_BASE) || (ulBase == PWM1_BASE)); ASSERT(PWMGenValid(ulGen)); ASSERT((ulGroup == PWM_FAULT_GROUP_0) || (ulGroup == PWM_FAULT_GROUP_1)); ASSERT((ulGroup == PWM_FAULT_GROUP_0) && @@ -1576,25 +1696,25 @@ PWMGenFaultTriggerSet(unsigned long ulBase, unsigned long ulGen, //! generator. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGen is the PWM generator whose fault triggers are being queried. -//! Must be one of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. +//! \param ulGen is the PWM generator for which fault triggers are being +//! queried. This parameter must be one of \b PWM_GEN_0, \b PWM_GEN_1, +//! \b PWM_GEN_2, or \b PWM_GEN_3. //! \param ulGroup indicates the subset of faults that are being queried. This -//! must be \b PWM_FAULT_GROUP_0 or \b PWM_FAULT_GROUP_1. +//! parameter must be \b PWM_FAULT_GROUP_0 or \b PWM_FAULT_GROUP_1. //! //! This function allows an application to query the current set of inputs that -//! contribute towards the generation of a fault condition to a given PWM -//! generator. -//! +//! contribute to the generation of a fault condition to a given PWM generator. +//! //! \note This function is only available on devices supporting extended PWM //! fault handling. //! //! \return Returns the current fault triggers configured for the fault group -//! provided. For \b PWM_FAULT_GROUP_0, the returned value will be a logical -//! OR of \b PWM_FAULT_FAULT0, \b PWM_FAULT_FAULT1, \b PWM_FAULT_FAULT2, or -//! \b PWM_FAULT_FAULT3. For \b PWM_FAULT_GROUP_1, the return value will be -//! the logical OR of \b PWM_FAULT_DCMP0, \b PWM_FAULT_DCMP1, \b -//! PWM_FAULT_DCMP2, \b PWM_FAULT_DCMP3, \b PWM_FAULT_DCMP4, \b PWM_FAULT_DCMP5, -//! \b PWM_FAULT_DCMP6, or \b PWM_FAULT_DCMP7. +//! provided. For \b PWM_FAULT_GROUP_0, the returned value is a logical OR of +//! \b PWM_FAULT_FAULT0, \b PWM_FAULT_FAULT1, \b PWM_FAULT_FAULT2, or +//! \b PWM_FAULT_FAULT3. For \b PWM_FAULT_GROUP_1, the return value is the +//! logical OR of \b PWM_FAULT_DCMP0, \b PWM_FAULT_DCMP1, +//! \b PWM_FAULT_DCMP2, \b PWM_FAULT_DCMP3, \b PWM_FAULT_DCMP4, +//! \b PWM_FAULT_DCMP5, \b PWM_FAULT_DCMP6, or \b PWM_FAULT_DCMP7. // //***************************************************************************** unsigned long @@ -1604,8 +1724,7 @@ PWMGenFaultTriggerGet(unsigned long ulBase, unsigned long ulGen, // // Check for valid parameters. // - ASSERT(HWREG(SYSCTL_DC5) & SYSCTL_DC5_PWMEFLT); - ASSERT(ulBase == PWM_BASE); + ASSERT((ulBase == PWM0_BASE) || (ulBase == PWM1_BASE)); ASSERT(PWMGenValid(ulGen)); ASSERT((ulGroup == PWM_FAULT_GROUP_0) || (ulGroup == PWM_FAULT_GROUP_1)); @@ -1627,17 +1746,17 @@ PWMGenFaultTriggerGet(unsigned long ulBase, unsigned long ulGen, //! Returns the current state of the fault triggers for a given PWM generator. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGen is the PWM generator whose fault trigger states are being -//! queried. Must be one of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or -//! \b PWM_GEN_3. +//! \param ulGen is the PWM generator for which fault trigger states are being +//! queried. This parameter must be one of \b PWM_GEN_0, \b PWM_GEN_1, +//! \b PWM_GEN_2, or \b PWM_GEN_3. //! \param ulGroup indicates the subset of faults that are being queried. This -//! must be \b PWM_FAULT_GROUP_0 or \b PWM_FAULT_GROUP_1. +//! parameter must be \b PWM_FAULT_GROUP_0 or \b PWM_FAULT_GROUP_1. //! //! This function allows an application to query the current state of each of //! the fault trigger inputs to a given PWM generator. The current state of //! each fault trigger input is returned unless PWMGenConfigure() has //! previously been called with flag \b PWM_GEN_MODE_LATCH_FAULT in the -//! \e ulConfig parameter in which case the returned status is the latched +//! \e ulConfig parameter, in which case the returned status is the latched //! fault trigger status. //! //! If latched faults are configured, the application must call @@ -1648,12 +1767,12 @@ PWMGenFaultTriggerGet(unsigned long ulBase, unsigned long ulGen, //! //! \return Returns the current state of the fault triggers for the given PWM //! generator. A set bit indicates that the associated trigger is active. For -//! \b PWM_FAULT_GROUP_0, the returned value will be a logical OR of +//! \b PWM_FAULT_GROUP_0, the returned value is a logical OR of //! \b PWM_FAULT_FAULT0, \b PWM_FAULT_FAULT1, \b PWM_FAULT_FAULT2, or -//! \b PWM_FAULT_FAULT3. For \b PWM_FAULT_GROUP_1, the return value will be -//! the logical OR of \b PWM_FAULT_DCMP0, \b PWM_FAULT_DCMP1, \b -//! PWM_FAULT_DCMP2, \b PWM_FAULT_DCMP3, \b PWM_FAULT_DCMP4, \b PWM_FAULT_DCMP5, -//! \b PWM_FAULT_DCMP6, or \b PWM_FAULT_DCMP7. +//! \b PWM_FAULT_FAULT3. For \b PWM_FAULT_GROUP_1, the return value is the +//! logical OR of \b PWM_FAULT_DCMP0, \b PWM_FAULT_DCMP1, +//! \b PWM_FAULT_DCMP2, \b PWM_FAULT_DCMP3, \b PWM_FAULT_DCMP4, +//! \b PWM_FAULT_DCMP5, \b PWM_FAULT_DCMP6, or \b PWM_FAULT_DCMP7. // //***************************************************************************** unsigned long @@ -1663,8 +1782,7 @@ PWMGenFaultStatus(unsigned long ulBase, unsigned long ulGen, // // Check for valid parameters. // - ASSERT(HWREG(SYSCTL_DC5) & SYSCTL_DC5_PWMEFLT); - ASSERT(ulBase == PWM_BASE); + ASSERT((ulBase == PWM0_BASE) || (ulBase == PWM1_BASE)); ASSERT(PWMGenValid(ulGen)); ASSERT((ulGroup == PWM_FAULT_GROUP_0) || (ulGroup == PWM_FAULT_GROUP_1)); @@ -1686,17 +1804,18 @@ PWMGenFaultStatus(unsigned long ulBase, unsigned long ulGen, //! Clears one or more latched fault triggers for a given PWM generator. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGen is the PWM generator whose fault trigger states are being -//! queried. Must be one of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or -//! \b PWM_GEN_3. +//! \param ulGen is the PWM generator for which fault trigger states are being +//! queried. This parameter must be one of \b PWM_GEN_0, \b PWM_GEN_1, +//! \b PWM_GEN_2, or \b PWM_GEN_3. //! \param ulGroup indicates the subset of faults that are being queried. This -//! must be \b PWM_FAULT_GROUP_0 or \b PWM_FAULT_GROUP_1. +//! parameter must be \b PWM_FAULT_GROUP_0 or \b PWM_FAULT_GROUP_1. //! \param ulFaultTriggers is the set of fault triggers which are to be //! cleared. //! //! This function allows an application to clear the fault triggers for a given -//! PWM generator. This is only required if PWMGenConfigure() has previously -//! been called with flag \b PWM_GEN_MODE_LATCH_FAULT in parameter \e ulConfig. +//! PWM generator. This function is only required if PWMGenConfigure() has +//! previously been called with flag \b PWM_GEN_MODE_LATCH_FAULT in parameter +//! \e ulConfig. //! //! \note This function is only available on devices supporting extended PWM //! fault handling. @@ -1711,8 +1830,7 @@ PWMGenFaultClear(unsigned long ulBase, unsigned long ulGen, // // Check for valid parameters. // - ASSERT(HWREG(SYSCTL_DC5) & SYSCTL_DC5_PWMEFLT); - ASSERT(ulBase == PWM_BASE); + ASSERT((ulBase == PWM0_BASE) || (ulBase == PWM1_BASE)); ASSERT(PWMGenValid(ulGen)); ASSERT((ulGroup == PWM_FAULT_GROUP_0) || (ulGroup == PWM_FAULT_GROUP_1)); ASSERT((ulGroup == PWM_FAULT_GROUP_0) && diff --git a/bsp/lm3s8962/Libraries/driverlib/pwm.h b/bsp/lm3s8962/Libraries/driverlib/pwm.h index 9714bff935..520adbc072 100644 --- a/bsp/lm3s8962/Libraries/driverlib/pwm.h +++ b/bsp/lm3s8962/Libraries/driverlib/pwm.h @@ -2,7 +2,7 @@ // // pwm.h - API function protoypes for Pulse Width Modulation (PWM) ports // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm3s8962/Libraries/driverlib/qei.c b/bsp/lm3s8962/Libraries/driverlib/qei.c index 956fce3283..4c701a88a9 100644 --- a/bsp/lm3s8962/Libraries/driverlib/qei.c +++ b/bsp/lm3s8962/Libraries/driverlib/qei.c @@ -2,7 +2,7 @@ // // qei.c - Driver for the Quadrature Encoder with Index. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -43,8 +43,8 @@ //! //! \param ulBase is the base address of the quadrature encoder module. //! -//! This will enable operation of the quadrature encoder module. It must be -//! configured before it is enabled. +//! This function enables operation of the quadrature encoder module. The +//! module must be configured before it is enabled. //! //! \sa QEIConfigure() //! @@ -71,7 +71,7 @@ QEIEnable(unsigned long ulBase) //! //! \param ulBase is the base address of the quadrature encoder module. //! -//! This will disable operation of the quadrature encoder module. +//! This function disables operation of the quadrature encoder module. //! //! \return None. // @@ -99,22 +99,22 @@ QEIDisable(unsigned long ulBase) //! for a description of this parameter. //! \param ulMaxPosition specifies the maximum position value. //! -//! This will configure the operation of the quadrature encoder. The +//! This function configures the operation of the quadrature encoder. The //! \e ulConfig parameter provides the configuration of the encoder and is the //! logical OR of several values: //! -//! - \b QEI_CONFIG_CAPTURE_A or \b QEI_CONFIG_CAPTURE_A_B to specify if edges +//! - \b QEI_CONFIG_CAPTURE_A or \b QEI_CONFIG_CAPTURE_A_B specify if edges //! on channel A or on both channels A and B should be counted by the //! position integrator and velocity accumulator. -//! - \b QEI_CONFIG_NO_RESET or \b QEI_CONFIG_RESET_IDX to specify if the +//! - \b QEI_CONFIG_NO_RESET or \b QEI_CONFIG_RESET_IDX specify if the //! position integrator should be reset when the index pulse is detected. -//! - \b QEI_CONFIG_QUADRATURE or \b QEI_CONFIG_CLOCK_DIR to specify if +//! - \b QEI_CONFIG_QUADRATURE or \b QEI_CONFIG_CLOCK_DIR specify if //! quadrature signals are being provided on ChA and ChB, or if a direction //! signal and a clock are being provided instead. //! - \b QEI_CONFIG_NO_SWAP or \b QEI_CONFIG_SWAP to specify if the signals //! provided on ChA and ChB should be swapped before being processed. //! -//! \e ulMaxPosition is the maximum value of the position integrator, and is +//! \e ulMaxPosition is the maximum value of the position integrator and is //! the value used to reset the position capture when in index reset mode and //! moving in the reverse (negative) direction. //! @@ -150,11 +150,11 @@ QEIConfigure(unsigned long ulBase, unsigned long ulConfig, //! //! \param ulBase is the base address of the quadrature encoder module. //! -//! This returns the current position of the encoder. Depending upon the -//! configuration of the encoder, and the incident of an index pulse, this +//! This function returns the current position of the encoder. Depending upon +//! the configuration of the encoder, and the incident of an index pulse, this //! value may or may not contain the expected data (that is, if in reset on //! index mode, if an index pulse has not been encountered, the position -//! counter will not be aligned with the index pulse yet). +//! counter is not yet aligned with the index pulse). //! //! \return The current position of the encoder. // @@ -180,8 +180,8 @@ QEIPositionGet(unsigned long ulBase) //! \param ulBase is the base address of the quadrature encoder module. //! \param ulPosition is the new position for the encoder. //! -//! This sets the current position of the encoder; the encoder position will -//! then be measured relative to this value. +//! This function sets the current position of the encoder; the encoder +//! position is then measured relative to this value. //! //! \return None. // @@ -206,9 +206,10 @@ QEIPositionSet(unsigned long ulBase, unsigned long ulPosition) //! //! \param ulBase is the base address of the quadrature encoder module. //! -//! This returns the current direction of rotation. In this case, current -//! means the most recently detected direction of the encoder; it may not be -//! presently moving but this is the direction it last moved before it stopped. +//! This function returns the current direction of rotation. In this case, +//! current means the most recently detected direction of the encoder; it may +//! not be presently moving but this is the direction it last moved before it +//! stopped. //! //! \return Returns 1 if moving in the forward direction or -1 if moving in the //! reverse direction. @@ -234,9 +235,9 @@ QEIDirectionGet(unsigned long ulBase) //! //! \param ulBase is the base address of the quadrature encoder module. //! -//! This returns the error indicator for the quadrature encoder. It is an -//! error for both of the signals of the quadrature input to change at the same -//! time. +//! This function returns the error indicator for the quadrature encoder. It +//! is an error for both of the signals of the quadrature input to change at +//! the same time. //! //! \return Returns \b true if an error has occurred and \b false otherwise. // @@ -261,9 +262,9 @@ QEIErrorGet(unsigned long ulBase) //! //! \param ulBase is the base address of the quadrature encoder module. //! -//! This will enable operation of the velocity capture in the quadrature -//! encoder module. It must be configured before it is enabled. Velocity -//! capture will not occur if the quadrature encoder is not enabled. +//! This function enables operation of the velocity capture in the quadrature +//! encoder module. The module must be configured before velocity capture is +//! enabled. //! //! \sa QEIVelocityConfigure() and QEIEnable() //! @@ -290,7 +291,7 @@ QEIVelocityEnable(unsigned long ulBase) //! //! \param ulBase is the base address of the quadrature encoder module. //! -//! This will disable operation of the velocity capture in the quadrature +//! This function disables operation of the velocity capture in the quadrature //! encoder module. //! //! \return None. @@ -322,8 +323,8 @@ QEIVelocityDisable(unsigned long ulBase) //! \param ulPeriod specifies the number of clock ticks over which to measure //! the velocity; must be non-zero. //! -//! This will configure the operation of the velocity capture portion of the -//! quadrature encoder. The position increment signal is predivided as +//! This function configures the operation of the velocity capture portion of +//! the quadrature encoder. The position increment signal is predivided as //! specified by \e ulPreDiv before being accumulated by the velocity capture. //! The divided signal is accumulated over \e ulPeriod system clock before //! being saved and resetting the accumulator. @@ -360,10 +361,10 @@ QEIVelocityConfigure(unsigned long ulBase, unsigned long ulPreDiv, //! //! \param ulBase is the base address of the quadrature encoder module. //! -//! This returns the current speed of the encoder. The value returned is the -//! number of pulses detected in the specified time period; this number can be -//! multiplied by the number of time periods per second and divided by the -//! number of pulses per revolution to obtain the number of revolutions per +//! This function returns the current speed of the encoder. The value returned +//! is the number of pulses detected in the specified time period; this number +//! can be multiplied by the number of time periods per second and divided by +//! the number of pulses per revolution to obtain the number of revolutions per //! second. //! //! \return Returns the number of pulses captured in the given time period. @@ -391,11 +392,11 @@ QEIVelocityGet(unsigned long ulBase) //! \param pfnHandler is a pointer to the function to be called when the //! quadrature encoder interrupt occurs. //! -//! This sets the handler to be called when a quadrature encoder interrupt -//! occurs. This will enable the global interrupt in the interrupt controller; -//! specific quadrature encoder interrupts must be enabled via QEIIntEnable(). -//! It is the interrupt handler's responsibility to clear the interrupt source -//! via QEIIntClear(). +//! This function registers the handler to be called when a quadrature encoder +//! interrupt occurs. This function enables the global interrupt in the +//! interrupt controller; specific quadrature encoder interrupts must be +//! enabled via QEIIntEnable(). It is the interrupt handler's responsibility to +//! clear the interrupt source via QEIIntClear(). //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -435,9 +436,9 @@ QEIIntRegister(unsigned long ulBase, void (*pfnHandler)(void)) //! //! \param ulBase is the base address of the quadrature encoder module. //! -//! This function will clear the handler to be called when a quadrature encoder -//! interrupt occurs. This will also mask off the interrupt in the interrupt -//! controller so that the interrupt handler no longer is called. +//! This function unregisters the handler to be called when a quadrature +//! encoder interrupt occurs. This function also masks off the interrupt in +//! the interrupt controller so that the interrupt handler no longer is called. //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -480,9 +481,9 @@ QEIIntUnregister(unsigned long ulBase) //! Can be any of the \b QEI_INTERROR, \b QEI_INTDIR, \b QEI_INTTIMER, or //! \b QEI_INTINDEX values. //! -//! Enables the indicated quadrature encoder interrupt sources. Only the -//! sources that are enabled can be reflected to the processor interrupt; -//! disabled sources have no effect on the processor. +//! This function enables the indicated quadrature encoder interrupt sources. +//! Only the sources that are enabled can be reflected to the processor +//! interrupt; disabled sources have no effect on the processor. //! //! \return None. // @@ -507,12 +508,12 @@ QEIIntEnable(unsigned long ulBase, unsigned long ulIntFlags) //! //! \param ulBase is the base address of the quadrature encoder module. //! \param ulIntFlags is a bit mask of the interrupt sources to be disabled. -//! Can be any of the \b QEI_INTERROR, \b QEI_INTDIR, \b QEI_INTTIMER, or -//! \b QEI_INTINDEX values. +//! This parameter can be any of the \b QEI_INTERROR, \b QEI_INTDIR, +//! \b QEI_INTTIMER, or \b QEI_INTINDEX values. //! -//! Disables the indicated quadrature encoder interrupt sources. Only the -//! sources that are enabled can be reflected to the processor interrupt; -//! disabled sources have no effect on the processor. +//! This function disables the indicated quadrature encoder interrupt sources. +//! Only the sources that are enabled can be reflected to the processor +//! interrupt; disabled sources have no effect on the processor. //! //! \return None. // @@ -539,9 +540,9 @@ QEIIntDisable(unsigned long ulBase, unsigned long ulIntFlags) //! \param bMasked is false if the raw interrupt status is required and true if //! the masked interrupt status is required. //! -//! This returns the interrupt status for the quadrature encoder module. -//! Either the raw interrupt status or the status of interrupts that are -//! allowed to reflect to the processor can be returned. +//! This function returns the interrupt status for the quadrature encoder +//! module. Either the raw interrupt status or the status of interrupts that +//! are allowed to reflect to the processor can be returned. //! //! \return Returns the current interrupt status, enumerated as a bit field of //! \b QEI_INTERROR, \b QEI_INTDIR, \b QEI_INTTIMER, and \b QEI_INTINDEX. @@ -575,21 +576,22 @@ QEIIntStatus(unsigned long ulBase, tBoolean bMasked) //! //! \param ulBase is the base address of the quadrature encoder module. //! \param ulIntFlags is a bit mask of the interrupt sources to be cleared. -//! Can be any of the \b QEI_INTERROR, \b QEI_INTDIR, \b QEI_INTTIMER, or -//! \b QEI_INTINDEX values. +//! This parameter can be any of the \b QEI_INTERROR, \b QEI_INTDIR, +//! \b QEI_INTTIMER, or \b QEI_INTINDEX values. //! //! The specified quadrature encoder interrupt sources are cleared, so that -//! they no longer assert. This must be done in the interrupt handler to keep -//! it from being called again immediately upon exit. +//! they no longer assert. This function must be called in the interrupt +//! handler to keep the interrupt from being triggered again immediately upon +//! exit. //! -//! \note Since there is a write buffer in the Cortex-M3 processor, it may take -//! several clock cycles before the interrupt source is actually cleared. +//! \note Because there is a write buffer in the Cortex-M processor, it may +//! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid //! returning from the interrupt handler before the interrupt source is //! actually cleared. Failure to do so may result in the interrupt handler -//! being immediately reentered (since NVIC still sees the interrupt source -//! asserted). +//! being immediately reentered (because the interrupt controller still sees +//! the interrupt source asserted). //! //! \return None. // diff --git a/bsp/lm3s8962/Libraries/driverlib/qei.h b/bsp/lm3s8962/Libraries/driverlib/qei.h index 3f20a6a6fa..30c0858a51 100644 --- a/bsp/lm3s8962/Libraries/driverlib/qei.h +++ b/bsp/lm3s8962/Libraries/driverlib/qei.h @@ -2,7 +2,7 @@ // // qei.h - Prototypes for the Quadrature Encoder Driver. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm3s8962/Libraries/driverlib/rom.h b/bsp/lm3s8962/Libraries/driverlib/rom.h index 8a9928a66f..0f1a029eef 100644 --- a/bsp/lm3s8962/Libraries/driverlib/rom.h +++ b/bsp/lm3s8962/Libraries/driverlib/rom.h @@ -2,7 +2,7 @@ // // rom.h - Macros to facilitate calling functions in the ROM. // -// Copyright (c) 2007-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2007-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -55,6 +55,12 @@ #define ROM_SOFTWARETABLE ((unsigned long *)(ROM_APITABLE[21])) #define ROM_I2STABLE ((unsigned long *)(ROM_APITABLE[22])) #define ROM_EPITABLE ((unsigned long *)(ROM_APITABLE[23])) +#define ROM_FANTABLE ((unsigned long *)(ROM_APITABLE[25])) +#define ROM_FPUTABLE ((unsigned long *)(ROM_APITABLE[26])) +#define ROM_LPCTABLE ((unsigned long *)(ROM_APITABLE[27])) +#define ROM_PECITABLE ((unsigned long *)(ROM_APITABLE[28])) +#define ROM_SMBUSTABLE ((unsigned long *)(ROM_APITABLE[29])) +#define ROM_SYSEXCTABLE ((unsigned long *)(ROM_APITABLE[30])) //***************************************************************************** // @@ -63,7 +69,11 @@ //***************************************************************************** #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_ADCSequenceDataGet \ ((long (*)(unsigned long ulBase, \ unsigned long ulSequenceNum, \ @@ -71,21 +81,33 @@ #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_ADCIntDisable \ ((void (*)(unsigned long ulBase, \ unsigned long ulSequenceNum))ROM_ADCTABLE[1]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_ADCIntEnable \ ((void (*)(unsigned long ulBase, \ unsigned long ulSequenceNum))ROM_ADCTABLE[2]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_ADCIntStatus \ ((unsigned long (*)(unsigned long ulBase, \ unsigned long ulSequenceNum, \ @@ -93,28 +115,44 @@ #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_ADCIntClear \ ((void (*)(unsigned long ulBase, \ unsigned long ulSequenceNum))ROM_ADCTABLE[4]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_ADCSequenceEnable \ ((void (*)(unsigned long ulBase, \ unsigned long ulSequenceNum))ROM_ADCTABLE[5]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_ADCSequenceDisable \ ((void (*)(unsigned long ulBase, \ unsigned long ulSequenceNum))ROM_ADCTABLE[6]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_ADCSequenceConfigure \ ((void (*)(unsigned long ulBase, \ unsigned long ulSequenceNum, \ @@ -123,7 +161,11 @@ #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_ADCSequenceStepConfigure \ ((void (*)(unsigned long ulBase, \ unsigned long ulSequenceNum, \ @@ -132,85 +174,178 @@ #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_ADCSequenceOverflow \ ((long (*)(unsigned long ulBase, \ unsigned long ulSequenceNum))ROM_ADCTABLE[9]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_ADCSequenceOverflowClear \ ((void (*)(unsigned long ulBase, \ unsigned long ulSequenceNum))ROM_ADCTABLE[10]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_ADCSequenceUnderflow \ ((long (*)(unsigned long ulBase, \ unsigned long ulSequenceNum))ROM_ADCTABLE[11]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_ADCSequenceUnderflowClear \ ((void (*)(unsigned long ulBase, \ unsigned long ulSequenceNum))ROM_ADCTABLE[12]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_ADCProcessorTrigger \ ((void (*)(unsigned long ulBase, \ unsigned long ulSequenceNum))ROM_ADCTABLE[13]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_ADCHardwareOversampleConfigure \ ((void (*)(unsigned long ulBase, \ unsigned long ulFactor))ROM_ADCTABLE[14]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_ADCComparatorConfigure \ ((void (*)(unsigned long ulBase, \ unsigned long ulComp, \ unsigned long ulConfig))ROM_ADCTABLE[15]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_ADCComparatorRegionSet \ ((void (*)(unsigned long ulBase, \ unsigned long ulComp, \ unsigned long ulLowRef, \ unsigned long ulHighRef))ROM_ADCTABLE[16]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_ADCComparatorReset \ ((void (*)(unsigned long ulBase, \ unsigned long ulComp, \ tBoolean bTrigger, \ tBoolean bInterrupt))ROM_ADCTABLE[17]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_ADCComparatorIntDisable \ ((void (*)(unsigned long ulBase, \ unsigned long ulSequenceNum))ROM_ADCTABLE[18]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_ADCComparatorIntEnable \ ((void (*)(unsigned long ulBase, \ unsigned long ulSequenceNum))ROM_ADCTABLE[19]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_ADCComparatorIntStatus \ ((unsigned long (*)(unsigned long ulBase))ROM_ADCTABLE[20]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_ADCComparatorIntClear \ ((void (*)(unsigned long ulBase, \ unsigned long ulStatus))ROM_ADCTABLE[21]) #endif +#if defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_ADCReferenceSet \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulRef))ROM_ADCTABLE[22]) +#endif +#if defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_ADCReferenceGet \ + ((unsigned long (*)(unsigned long ulBase))ROM_ADCTABLE[23]) +#endif +#if defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_ADCPhaseDelaySet \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulPhase))ROM_ADCTABLE[24]) +#endif +#if defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_ADCPhaseDelayGet \ + ((unsigned long (*)(unsigned long ulBase))ROM_ADCTABLE[25]) +#endif +#if defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_ADCResolutionSet \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulResolution))ROM_ADCTABLE[26]) +#endif +#if defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_ADCResolutionGet \ + ((unsigned long (*)(unsigned long ulBase))ROM_ADCTABLE[27]) +#endif //***************************************************************************** // @@ -218,40 +353,68 @@ // //***************************************************************************** #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_CANIntClear \ ((void (*)(unsigned long ulBase, \ unsigned long ulIntClr))ROM_CANTABLE[0]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_CANInit \ ((void (*)(unsigned long ulBase))ROM_CANTABLE[1]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_CANEnable \ ((void (*)(unsigned long ulBase))ROM_CANTABLE[2]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_CANDisable \ ((void (*)(unsigned long ulBase))ROM_CANTABLE[3]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_CANBitTimingSet \ ((void (*)(unsigned long ulBase, \ tCANBitClkParms *pClkParms))ROM_CANTABLE[4]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_CANBitTimingGet \ ((void (*)(unsigned long ulBase, \ tCANBitClkParms *pClkParms))ROM_CANTABLE[5]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_CANMessageSet \ ((void (*)(unsigned long ulBase, \ unsigned long ulObjID, \ @@ -259,7 +422,11 @@ tMsgObjType eMsgType))ROM_CANTABLE[6]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_CANMessageGet \ ((void (*)(unsigned long ulBase, \ unsigned long ulObjID, \ @@ -267,54 +434,90 @@ tBoolean bClrPendingInt))ROM_CANTABLE[7]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_CANStatusGet \ ((unsigned long (*)(unsigned long ulBase, \ tCANStsReg eStatusReg))ROM_CANTABLE[8]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_CANMessageClear \ ((void (*)(unsigned long ulBase, \ unsigned long ulObjID))ROM_CANTABLE[9]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_CANIntEnable \ ((void (*)(unsigned long ulBase, \ unsigned long ulIntFlags))ROM_CANTABLE[10]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_CANIntDisable \ ((void (*)(unsigned long ulBase, \ unsigned long ulIntFlags))ROM_CANTABLE[11]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_CANIntStatus \ ((unsigned long (*)(unsigned long ulBase, \ tCANIntStsReg eIntStsReg))ROM_CANTABLE[12]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_CANRetryGet \ ((tBoolean (*)(unsigned long ulBase))ROM_CANTABLE[13]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_CANRetrySet \ ((void (*)(unsigned long ulBase, \ tBoolean bAutoRetry))ROM_CANTABLE[14]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_CANErrCntrGet \ ((tBoolean (*)(unsigned long ulBase, \ unsigned long *pulRxCount, \ unsigned long *pulTxCount))ROM_CANTABLE[15]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_CANBitRateSet \ ((unsigned long (*)(unsigned long ulBase, \ unsigned long ulSourceClock, \ @@ -328,14 +531,22 @@ //***************************************************************************** #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_ComparatorIntClear \ ((void (*)(unsigned long ulBase, \ unsigned long ulComp))ROM_COMPARATORTABLE[0]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_ComparatorConfigure \ ((void (*)(unsigned long ulBase, \ unsigned long ulComp, \ @@ -343,35 +554,55 @@ #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_ComparatorRefSet \ ((void (*)(unsigned long ulBase, \ unsigned long ulRef))ROM_COMPARATORTABLE[2]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_ComparatorValueGet \ ((tBoolean (*)(unsigned long ulBase, \ unsigned long ulComp))ROM_COMPARATORTABLE[3]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_ComparatorIntEnable \ ((void (*)(unsigned long ulBase, \ unsigned long ulComp))ROM_COMPARATORTABLE[4]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_ComparatorIntDisable \ ((void (*)(unsigned long ulBase, \ unsigned long ulComp))ROM_COMPARATORTABLE[5]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_ComparatorIntStatus \ ((tBoolean (*)(unsigned long ulBase, \ unsigned long ulComp, \ @@ -380,123 +611,189 @@ //***************************************************************************** // -// Macros for calling ROM functions in the Ethernet API. +// Macros for calling ROM functions in the EPI API. // //***************************************************************************** -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EPIIntStatus \ ((unsigned long (*)(unsigned long ulBase, \ tBoolean bMasked))ROM_EPITABLE[0]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EPIModeSet \ ((void (*)(unsigned long ulBase, \ unsigned long ulMode))ROM_EPITABLE[1]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EPIDividerSet \ ((void (*)(unsigned long ulBase, \ unsigned long ulDivider))ROM_EPITABLE[2]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EPIConfigSDRAMSet \ ((void (*)(unsigned long ulBase, \ unsigned long ulConfig, \ unsigned long ulRefresh))ROM_EPITABLE[3]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EPIConfigGPModeSet \ ((void (*)(unsigned long ulBase, \ unsigned long ulConfig, \ unsigned long ulFrameCount, \ unsigned long ulMaxWait))ROM_EPITABLE[4]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EPIConfigHB8Set \ ((void (*)(unsigned long ulBase, \ unsigned long ulConfig, \ unsigned long ulMaxWait))ROM_EPITABLE[5]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EPIConfigHB16Set \ ((void (*)(unsigned long ulBase, \ unsigned long ulConfig, \ unsigned long ulMaxWait))ROM_EPITABLE[6]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EPIAddressMapSet \ ((void (*)(unsigned long ulBase, \ unsigned long ulMap))ROM_EPITABLE[7]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EPINonBlockingReadConfigure \ ((void (*)(unsigned long ulBase, \ unsigned long ulChannel, \ unsigned long ulDataSize, \ unsigned long ulAddress))ROM_EPITABLE[8]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EPINonBlockingReadStart \ ((void (*)(unsigned long ulBase, \ unsigned long ulChannel, \ unsigned long ulCount))ROM_EPITABLE[9]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EPINonBlockingReadStop \ ((void (*)(unsigned long ulBase, \ unsigned long ulChannel))ROM_EPITABLE[10]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EPINonBlockingReadCount \ ((unsigned long (*)(unsigned long ulBase, \ unsigned long ulChannel))ROM_EPITABLE[11]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EPINonBlockingReadAvail \ ((unsigned long (*)(unsigned long ulBase))ROM_EPITABLE[12]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EPINonBlockingReadGet32 \ ((unsigned long (*)(unsigned long ulBase, \ unsigned long ulCount, \ unsigned long *pulBuf))ROM_EPITABLE[13]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EPINonBlockingReadGet16 \ ((unsigned long (*)(unsigned long ulBase, \ unsigned long ulCount, \ unsigned short *pusBuf))ROM_EPITABLE[14]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EPINonBlockingReadGet8 \ ((unsigned long (*)(unsigned long ulBase, \ unsigned long ulCount, \ unsigned char *pucBuf))ROM_EPITABLE[15]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EPIFIFOConfig \ ((void (*)(unsigned long ulBase, \ unsigned long ulConfig))ROM_EPITABLE[16]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EPIWriteFIFOCountGet \ ((unsigned long (*)(unsigned long ulBase))ROM_EPITABLE[17]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EPIIntEnable \ ((void (*)(unsigned long ulBase, \ unsigned long ulIntFlags))ROM_EPITABLE[18]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EPIIntDisable \ ((void (*)(unsigned long ulBase, \ unsigned long ulIntFlags))ROM_EPITABLE[19]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EPIIntErrorStatus \ ((unsigned long (*)(unsigned long ulBase))ROM_EPITABLE[20]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EPIIntErrorClear \ ((void (*)(unsigned long ulBase, \ unsigned long ulErrFlags))ROM_EPITABLE[21]) @@ -508,124 +805,279 @@ // //***************************************************************************** #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EthernetIntClear \ ((void (*)(unsigned long ulBase, \ unsigned long ulIntFlags))ROM_ETHERNETTABLE[0]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EthernetInitExpClk \ ((void (*)(unsigned long ulBase, \ unsigned long ulEthClk))ROM_ETHERNETTABLE[1]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EthernetConfigSet \ ((void (*)(unsigned long ulBase, \ unsigned long ulConfig))ROM_ETHERNETTABLE[2]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EthernetConfigGet \ ((unsigned long (*)(unsigned long ulBase))ROM_ETHERNETTABLE[3]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EthernetMACAddrSet \ ((void (*)(unsigned long ulBase, \ unsigned char *pucMACAddr))ROM_ETHERNETTABLE[4]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EthernetMACAddrGet \ ((void (*)(unsigned long ulBase, \ unsigned char *pucMACAddr))ROM_ETHERNETTABLE[5]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EthernetEnable \ ((void (*)(unsigned long ulBase))ROM_ETHERNETTABLE[6]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EthernetDisable \ ((void (*)(unsigned long ulBase))ROM_ETHERNETTABLE[7]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EthernetPacketAvail \ ((tBoolean (*)(unsigned long ulBase))ROM_ETHERNETTABLE[8]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EthernetSpaceAvail \ ((tBoolean (*)(unsigned long ulBase))ROM_ETHERNETTABLE[9]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EthernetPacketGetNonBlocking \ ((long (*)(unsigned long ulBase, \ unsigned char *pucBuf, \ long lBufLen))ROM_ETHERNETTABLE[10]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EthernetPacketGet \ ((long (*)(unsigned long ulBase, \ unsigned char *pucBuf, \ long lBufLen))ROM_ETHERNETTABLE[11]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EthernetPacketPutNonBlocking \ ((long (*)(unsigned long ulBase, \ unsigned char *pucBuf, \ long lBufLen))ROM_ETHERNETTABLE[12]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EthernetPacketPut \ ((long (*)(unsigned long ulBase, \ unsigned char *pucBuf, \ long lBufLen))ROM_ETHERNETTABLE[13]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EthernetIntEnable \ ((void (*)(unsigned long ulBase, \ unsigned long ulIntFlags))ROM_ETHERNETTABLE[14]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EthernetIntDisable \ ((void (*)(unsigned long ulBase, \ unsigned long ulIntFlags))ROM_ETHERNETTABLE[15]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EthernetIntStatus \ ((unsigned long (*)(unsigned long ulBase, \ tBoolean bMasked))ROM_ETHERNETTABLE[16]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EthernetPHYWrite \ ((void (*)(unsigned long ulBase, \ unsigned char ucRegAddr, \ unsigned long ulData))ROM_ETHERNETTABLE[17]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_EthernetPHYRead \ ((unsigned long (*)(unsigned long ulBase, \ unsigned char ucRegAddr))ROM_ETHERNETTABLE[18]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_UpdateEthernet \ ((void (*)(unsigned long ulClock))ROM_ETHERNETTABLE[19]) #endif +#if defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) +#define ROM_EthernetPHYAddrSet \ + ((void (*)(unsigned long ulBase, \ + unsigned char ucAddr))ROM_ETHERNETTABLE[20]) +#endif +#if defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) +#define ROM_EthernetPHYPowerOff \ + ((void (*)(unsigned long ulBase))ROM_ETHERNETTABLE[21]) +#endif +#if defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) +#define ROM_EthernetPHYPowerOn \ + ((void (*)(unsigned long ulBase))ROM_ETHERNETTABLE[22]) +#endif + +//***************************************************************************** +// +// Macros for calling ROM functions in the Fan API. +// +//***************************************************************************** +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_FanIntClear \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulFlags))ROM_FANTABLE[0]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_FanChannelConfigAuto \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulChannel, \ + unsigned long ulConfig))ROM_FANTABLE[1]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_FanChannelConfigManual \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulChannel, \ + unsigned long ulConfig))ROM_FANTABLE[2]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_FanChannelDisable \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulChannel))ROM_FANTABLE[3]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_FanChannelDutyGet \ + ((unsigned long (*)(unsigned long ulBase, \ + unsigned long ulChannel))ROM_FANTABLE[4]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_FanChannelDutySet \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulChannel, \ + unsigned long ulDuty))ROM_FANTABLE[5]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_FanChannelEnable \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulChannel))ROM_FANTABLE[6]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_FanChannelRPMGet \ + ((unsigned long (*)(unsigned long ulBase, \ + unsigned long ulChannel))ROM_FANTABLE[7]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_FanChannelRPMSet \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulChannel, \ + unsigned long ulRPM))ROM_FANTABLE[8]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_FanChannelStatus \ + ((unsigned long (*)(unsigned long ulBase, \ + unsigned long ulChannel))ROM_FANTABLE[9]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_FanChannelsGet \ + ((unsigned long (*)(unsigned long ulBase))ROM_FANTABLE[10]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_FanIntDisable \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulFlags))ROM_FANTABLE[11]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_FanIntEnable \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulFlags))ROM_FANTABLE[12]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_FanIntStatus \ + ((unsigned long (*)(unsigned long ulBase, \ + tBoolean bMasked))ROM_FANTABLE[13]) +#endif //***************************************************************************** // @@ -634,7 +1086,11 @@ //***************************************************************************** #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_FlashProgram \ ((long (*)(unsigned long *pulData, \ unsigned long ulAddress, \ @@ -642,86 +1098,180 @@ #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_FlashUsecGet \ ((unsigned long (*)(void))ROM_FLASHTABLE[1]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_FlashUsecSet \ ((void (*)(unsigned long ulClocks))ROM_FLASHTABLE[2]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_FlashErase \ ((long (*)(unsigned long ulAddress))ROM_FLASHTABLE[3]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_FlashProtectGet \ ((tFlashProtection (*)(unsigned long ulAddress))ROM_FLASHTABLE[4]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_FlashProtectSet \ ((long (*)(unsigned long ulAddress, \ tFlashProtection eProtect))ROM_FLASHTABLE[5]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_FlashProtectSave \ ((long (*)(void))ROM_FLASHTABLE[6]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_FlashUserGet \ ((long (*)(unsigned long *pulUser0, \ unsigned long *pulUser1))ROM_FLASHTABLE[7]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_FlashUserSet \ ((long (*)(unsigned long ulUser0, \ unsigned long ulUser1))ROM_FLASHTABLE[8]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_FlashUserSave \ ((long (*)(void))ROM_FLASHTABLE[9]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_FlashIntEnable \ ((void (*)(unsigned long ulIntFlags))ROM_FLASHTABLE[10]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_FlashIntDisable \ ((void (*)(unsigned long ulIntFlags))ROM_FLASHTABLE[11]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_FlashIntStatus \ ((unsigned long (*)(tBoolean bMasked))ROM_FLASHTABLE[12]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_FlashIntClear \ ((void (*)(unsigned long ulIntFlags))ROM_FLASHTABLE[13]) #endif +//***************************************************************************** +// +// Macros for calling ROM functions in the FPU API. +// +//***************************************************************************** +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_FPUEnable \ + ((void (*)(void))ROM_FPUTABLE[0]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_FPUDisable \ + ((void (*)(void))ROM_FPUTABLE[1]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_FPUFlushToZeroModeSet \ + ((void (*)(unsigned long ulMode))ROM_FPUTABLE[2]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_FPUHalfPrecisionModeSet \ + ((void (*)(unsigned long ulMode))ROM_FPUTABLE[3]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_FPULazyStackingEnable \ + ((void (*)(void))ROM_FPUTABLE[4]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_FPUNaNModeSet \ + ((void (*)(unsigned long ulMode))ROM_FPUTABLE[5]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_FPURoundingModeSet \ + ((void (*)(unsigned long ulMode))ROM_FPUTABLE[6]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_FPUStackingDisable \ + ((void (*)(void))ROM_FPUTABLE[7]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_FPUStackingEnable \ + ((void (*)(void))ROM_FPUTABLE[8]) +#endif + //***************************************************************************** // // Macros for calling ROM functions in the GPIO API. @@ -729,7 +1279,11 @@ //***************************************************************************** #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_GPIOPinWrite \ ((void (*)(unsigned long ulPort, \ unsigned char ucPins, \ @@ -737,7 +1291,11 @@ #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_GPIODirModeSet \ ((void (*)(unsigned long ulPort, \ unsigned char ucPins, \ @@ -745,14 +1303,22 @@ #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_GPIODirModeGet \ ((unsigned long (*)(unsigned long ulPort, \ unsigned char ucPin))ROM_GPIOTABLE[2]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_GPIOIntTypeSet \ ((void (*)(unsigned long ulPort, \ unsigned char ucPins, \ @@ -760,14 +1326,22 @@ #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_GPIOIntTypeGet \ ((unsigned long (*)(unsigned long ulPort, \ unsigned char ucPin))ROM_GPIOTABLE[4]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_GPIOPadConfigSet \ ((void (*)(unsigned long ulPort, \ unsigned char ucPins, \ @@ -776,7 +1350,11 @@ #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_GPIOPadConfigGet \ ((void (*)(unsigned long ulPort, \ unsigned char ucPin, \ @@ -785,147 +1363,287 @@ #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_GPIOPinIntEnable \ ((void (*)(unsigned long ulPort, \ unsigned char ucPins))ROM_GPIOTABLE[7]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_GPIOPinIntDisable \ ((void (*)(unsigned long ulPort, \ unsigned char ucPins))ROM_GPIOTABLE[8]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_GPIOPinIntStatus \ ((long (*)(unsigned long ulPort, \ tBoolean bMasked))ROM_GPIOTABLE[9]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_GPIOPinIntClear \ ((void (*)(unsigned long ulPort, \ unsigned char ucPins))ROM_GPIOTABLE[10]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_GPIOPinRead \ ((long (*)(unsigned long ulPort, \ unsigned char ucPins))ROM_GPIOTABLE[11]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_GPIOPinTypeCAN \ ((void (*)(unsigned long ulPort, \ unsigned char ucPins))ROM_GPIOTABLE[12]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_GPIOPinTypeComparator \ ((void (*)(unsigned long ulPort, \ unsigned char ucPins))ROM_GPIOTABLE[13]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_GPIOPinTypeGPIOInput \ ((void (*)(unsigned long ulPort, \ unsigned char ucPins))ROM_GPIOTABLE[14]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_GPIOPinTypeGPIOOutput \ ((void (*)(unsigned long ulPort, \ unsigned char ucPins))ROM_GPIOTABLE[15]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_GPIOPinTypeI2C \ ((void (*)(unsigned long ulPort, \ unsigned char ucPins))ROM_GPIOTABLE[16]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_GPIOPinTypePWM \ ((void (*)(unsigned long ulPort, \ unsigned char ucPins))ROM_GPIOTABLE[17]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_GPIOPinTypeQEI \ ((void (*)(unsigned long ulPort, \ unsigned char ucPins))ROM_GPIOTABLE[18]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_GPIOPinTypeSSI \ ((void (*)(unsigned long ulPort, \ unsigned char ucPins))ROM_GPIOTABLE[19]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_GPIOPinTypeTimer \ ((void (*)(unsigned long ulPort, \ unsigned char ucPins))ROM_GPIOTABLE[20]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_GPIOPinTypeUART \ ((void (*)(unsigned long ulPort, \ unsigned char ucPins))ROM_GPIOTABLE[21]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_GPIOPinTypeGPIOOutputOD \ ((void (*)(unsigned long ulPort, \ unsigned char ucPins))ROM_GPIOTABLE[22]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_GPIOPinTypeADC \ ((void (*)(unsigned long ulPort, \ unsigned char ucPins))ROM_GPIOTABLE[23]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_GPIOPinTypeUSBDigital \ ((void (*)(unsigned long ulPort, \ unsigned char ucPins))ROM_GPIOTABLE[24]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_GPIOPinTypeI2S \ ((void (*)(unsigned long ulPort, \ unsigned char ucPins))ROM_GPIOTABLE[25]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_GPIOPinConfigure \ ((void (*)(unsigned long ulPinConfig))ROM_GPIOTABLE[26]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_GPIOPinTypeEthernetLED \ ((void (*)(unsigned long ulPort, \ unsigned char ucPins))ROM_GPIOTABLE[27]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_GPIOPinTypeUSBAnalog \ ((void (*)(unsigned long ulPort, \ unsigned char ucPins))ROM_GPIOTABLE[28]) #endif +#if defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) +#define ROM_GPIOPinTypeEPI \ + ((void (*)(unsigned long ulPort, \ + unsigned char ucPins))ROM_GPIOTABLE[29]) +#endif +#if defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) +#define ROM_GPIOPinTypeEthernetMII \ + ((void (*)(unsigned long ulPort, \ + unsigned char ucPins))ROM_GPIOTABLE[30]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_GPIODMATriggerEnable \ + ((void (*)(unsigned long ulPort, \ + unsigned char ucPins))ROM_GPIOTABLE[31]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_GPIODMATriggerDisable \ + ((void (*)(unsigned long ulPort, \ + unsigned char ucPins))ROM_GPIOTABLE[32]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_GPIOADCTriggerEnable \ + ((void (*)(unsigned long ulPort, \ + unsigned char ucPins))ROM_GPIOTABLE[33]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_GPIOADCTriggerDisable \ + ((void (*)(unsigned long ulPort, \ + unsigned char ucPins))ROM_GPIOTABLE[34]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_GPIOPinTypeFan \ + ((void (*)(unsigned long ulPort, \ + unsigned char ucPins))ROM_GPIOTABLE[35]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_GPIOPinTypeLPC \ + ((void (*)(unsigned long ulPort, \ + unsigned char ucPins))ROM_GPIOTABLE[36]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_GPIOPinTypePECIRx \ + ((void (*)(unsigned long ulPort, \ + unsigned char ucPins))ROM_GPIOTABLE[37]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_GPIOPinTypePECITx \ + ((void (*)(unsigned long ulPort, \ + unsigned char ucPins))ROM_GPIOTABLE[38]) +#endif //***************************************************************************** // @@ -933,131 +1651,253 @@ // //***************************************************************************** #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_HibernateIntClear \ ((void (*)(unsigned long ulIntFlags))ROM_HIBERNATETABLE[0]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_HibernateEnableExpClk \ ((void (*)(unsigned long ulHibClk))ROM_HIBERNATETABLE[1]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_HibernateDisable \ ((void (*)(void))ROM_HIBERNATETABLE[2]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_HibernateClockSelect \ ((void (*)(unsigned long ulClockInput))ROM_HIBERNATETABLE[3]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_HibernateRTCEnable \ ((void (*)(void))ROM_HIBERNATETABLE[4]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_HibernateRTCDisable \ ((void (*)(void))ROM_HIBERNATETABLE[5]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_HibernateWakeSet \ ((void (*)(unsigned long ulWakeFlags))ROM_HIBERNATETABLE[6]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_HibernateWakeGet \ ((unsigned long (*)(void))ROM_HIBERNATETABLE[7]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_HibernateLowBatSet \ ((void (*)(unsigned long ulLowBatFlags))ROM_HIBERNATETABLE[8]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_HibernateLowBatGet \ ((unsigned long (*)(void))ROM_HIBERNATETABLE[9]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_HibernateRTCSet \ ((void (*)(unsigned long ulRTCValue))ROM_HIBERNATETABLE[10]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_HibernateRTCGet \ ((unsigned long (*)(void))ROM_HIBERNATETABLE[11]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_HibernateRTCMatch0Set \ ((void (*)(unsigned long ulMatch))ROM_HIBERNATETABLE[12]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_HibernateRTCMatch0Get \ ((unsigned long (*)(void))ROM_HIBERNATETABLE[13]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_HibernateRTCMatch1Set \ ((void (*)(unsigned long ulMatch))ROM_HIBERNATETABLE[14]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_HibernateRTCMatch1Get \ ((unsigned long (*)(void))ROM_HIBERNATETABLE[15]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_HibernateRTCTrimSet \ ((void (*)(unsigned long ulTrim))ROM_HIBERNATETABLE[16]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_HibernateRTCTrimGet \ ((unsigned long (*)(void))ROM_HIBERNATETABLE[17]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_HibernateDataSet \ ((void (*)(unsigned long *pulData, \ unsigned long ulCount))ROM_HIBERNATETABLE[18]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_HibernateDataGet \ ((void (*)(unsigned long *pulData, \ unsigned long ulCount))ROM_HIBERNATETABLE[19]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_HibernateRequest \ ((void (*)(void))ROM_HIBERNATETABLE[20]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_HibernateIntEnable \ ((void (*)(unsigned long ulIntFlags))ROM_HIBERNATETABLE[21]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_HibernateIntDisable \ ((void (*)(unsigned long ulIntFlags))ROM_HIBERNATETABLE[22]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_HibernateIntStatus \ ((unsigned long (*)(tBoolean bMasked))ROM_HIBERNATETABLE[23]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_HibernateIsActive \ - ((unsigned int (*)(void))ROM_HIBERNATETABLE[24]) + ((unsigned long (*)(void))ROM_HIBERNATETABLE[24]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_HibernateRTCSSMatch0Set \ + ((void (*)(unsigned long ulMatch))ROM_HIBERNATETABLE[25]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_HibernateRTCSSMatch0Get \ + ((unsigned long (*)(void))ROM_HIBERNATETABLE[26]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_HibernateRTCSSGet \ + ((unsigned long (*)(void))ROM_HIBERNATETABLE[27]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_HibernateClockConfig \ + ((void (*)(unsigned long ulConfig))ROM_HIBERNATETABLE[28]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_HibernateBatCheckStart \ + ((void (*)(void))ROM_HIBERNATETABLE[29]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_HibernateBatCheckDone \ + ((unsigned long (*)(void))ROM_HIBERNATETABLE[30]) #endif //***************************************************************************** @@ -1067,14 +1907,22 @@ //***************************************************************************** #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_I2CMasterDataPut \ ((void (*)(unsigned long ulBase, \ unsigned char ucData))ROM_I2CTABLE[0]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_I2CMasterInitExpClk \ ((void (*)(unsigned long ulBase, \ unsigned long ulI2CClk, \ @@ -1082,88 +1930,144 @@ #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_I2CSlaveInit \ ((void (*)(unsigned long ulBase, \ unsigned char ucSlaveAddr))ROM_I2CTABLE[2]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_I2CMasterEnable \ ((void (*)(unsigned long ulBase))ROM_I2CTABLE[3]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_I2CSlaveEnable \ ((void (*)(unsigned long ulBase))ROM_I2CTABLE[4]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_I2CMasterDisable \ ((void (*)(unsigned long ulBase))ROM_I2CTABLE[5]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_I2CSlaveDisable \ ((void (*)(unsigned long ulBase))ROM_I2CTABLE[6]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_I2CMasterIntEnable \ ((void (*)(unsigned long ulBase))ROM_I2CTABLE[7]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_I2CSlaveIntEnable \ ((void (*)(unsigned long ulBase))ROM_I2CTABLE[8]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_I2CMasterIntDisable \ ((void (*)(unsigned long ulBase))ROM_I2CTABLE[9]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_I2CSlaveIntDisable \ ((void (*)(unsigned long ulBase))ROM_I2CTABLE[10]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_I2CMasterIntStatus \ ((tBoolean (*)(unsigned long ulBase, \ tBoolean bMasked))ROM_I2CTABLE[11]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_I2CSlaveIntStatus \ ((tBoolean (*)(unsigned long ulBase, \ tBoolean bMasked))ROM_I2CTABLE[12]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_I2CMasterIntClear \ ((void (*)(unsigned long ulBase))ROM_I2CTABLE[13]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_I2CSlaveIntClear \ ((void (*)(unsigned long ulBase))ROM_I2CTABLE[14]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_I2CMasterSlaveAddrSet \ ((void (*)(unsigned long ulBase, \ unsigned char ucSlaveAddr, \ @@ -1171,192 +2075,361 @@ #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_I2CMasterBusy \ ((tBoolean (*)(unsigned long ulBase))ROM_I2CTABLE[16]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_I2CMasterBusBusy \ ((tBoolean (*)(unsigned long ulBase))ROM_I2CTABLE[17]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_I2CMasterControl \ ((void (*)(unsigned long ulBase, \ unsigned long ulCmd))ROM_I2CTABLE[18]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_I2CMasterErr \ ((unsigned long (*)(unsigned long ulBase))ROM_I2CTABLE[19]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_I2CMasterDataGet \ ((unsigned long (*)(unsigned long ulBase))ROM_I2CTABLE[20]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_I2CSlaveStatus \ ((unsigned long (*)(unsigned long ulBase))ROM_I2CTABLE[21]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_I2CSlaveDataPut \ ((void (*)(unsigned long ulBase, \ unsigned char ucData))ROM_I2CTABLE[22]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_I2CSlaveDataGet \ ((unsigned long (*)(unsigned long ulBase))ROM_I2CTABLE[23]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_UpdateI2C \ ((void (*)(void))ROM_I2CTABLE[24]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_I2CSlaveIntEnableEx \ ((void (*)(unsigned long ulBase, \ unsigned long ulIntFlags))ROM_I2CTABLE[25]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_I2CSlaveIntDisableEx \ ((void (*)(unsigned long ulBase, \ unsigned long ulIntFlags))ROM_I2CTABLE[26]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_I2CSlaveIntStatusEx \ ((unsigned long (*)(unsigned long ulBase, \ tBoolean bMasked))ROM_I2CTABLE[27]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_I2CSlaveIntClearEx \ ((void (*)(unsigned long ulBase, \ unsigned long ulIntFlags))ROM_I2CTABLE[28]) #endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_I2CMasterIntEnableEx \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulIntFlags))ROM_I2CTABLE[29]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_I2CMasterIntDisableEx \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulIntFlags))ROM_I2CTABLE[30]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_I2CMasterIntStatusEx \ + ((unsigned long (*)(unsigned long ulBase, \ + tBoolean bMasked))ROM_I2CTABLE[31]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_I2CMasterIntClearEx \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulIntFlags))ROM_I2CTABLE[32]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_I2CMasterTimeoutSet \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulValue))ROM_I2CTABLE[33]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_I2CSlaveACKOverride \ + ((void (*)(unsigned long ulBase, \ + tBoolean bEnable))ROM_I2CTABLE[34]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_I2CSlaveACKValueSet \ + ((void (*)(unsigned long ulBase, \ + tBoolean bACK))ROM_I2CTABLE[35]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_I2CSlaveAddressSet \ + ((void (*)(unsigned long ulBase, \ + unsigned char ucAddrNum, \ + unsigned char ucSlaveAddr))ROM_I2CTABLE[37]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_I2CMasterLineStateGet \ + ((unsigned long (*)(unsigned long ulBase))ROM_I2CTABLE[38]) +#endif //***************************************************************************** // // Macros for calling ROM functions in the I2S API. // //***************************************************************************** -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_I2SIntStatus \ ((unsigned long (*)(unsigned long ulBase, \ tBoolean bMasked))ROM_I2STABLE[0]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_I2STxEnable \ ((void (*)(unsigned long ulBase))ROM_I2STABLE[1]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_I2STxDisable \ ((void (*)(unsigned long ulBase))ROM_I2STABLE[2]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_I2STxDataPut \ ((void (*)(unsigned long ulBase, \ unsigned long ulData))ROM_I2STABLE[3]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_I2STxDataPutNonBlocking \ ((long (*)(unsigned long ulBase, \ unsigned long ulData))ROM_I2STABLE[4]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_I2STxConfigSet \ ((void (*)(unsigned long ulBase, \ unsigned long ulConfig))ROM_I2STABLE[5]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_I2STxFIFOLimitSet \ ((void (*)(unsigned long ulBase, \ unsigned long ulLevel))ROM_I2STABLE[6]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_I2STxFIFOLimitGet \ ((unsigned long (*)(unsigned long ulBase))ROM_I2STABLE[7]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_I2STxFIFOLevelGet \ ((unsigned long (*)(unsigned long ulBase))ROM_I2STABLE[8]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_I2SRxEnable \ ((void (*)(unsigned long ulBase))ROM_I2STABLE[9]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_I2SRxDisable \ ((void (*)(unsigned long ulBase))ROM_I2STABLE[10]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_I2SRxDataGet \ ((void (*)(unsigned long ulBase, \ unsigned long *pulData))ROM_I2STABLE[11]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_I2SRxDataGetNonBlocking \ ((long (*)(unsigned long ulBase, \ unsigned long *pulData))ROM_I2STABLE[12]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_I2SRxConfigSet \ ((void (*)(unsigned long ulBase, \ unsigned long ulConfig))ROM_I2STABLE[13]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_I2SRxFIFOLimitSet \ ((void (*)(unsigned long ulBase, \ unsigned long ulLevel))ROM_I2STABLE[14]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_I2SRxFIFOLimitGet \ ((unsigned long (*)(unsigned long ulBase))ROM_I2STABLE[15]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_I2SRxFIFOLevelGet \ ((unsigned long (*)(unsigned long ulBase))ROM_I2STABLE[16]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_I2STxRxEnable \ ((void (*)(unsigned long ulBase))ROM_I2STABLE[17]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_I2STxRxDisable \ ((void (*)(unsigned long ulBase))ROM_I2STABLE[18]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_I2STxRxConfigSet \ ((void (*)(unsigned long ulBase, \ unsigned long ulConfig))ROM_I2STABLE[19]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_I2SMasterClockSelect \ ((void (*)(unsigned long ulBase, \ unsigned long ulMClock))ROM_I2STABLE[20]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_I2SIntEnable \ ((void (*)(unsigned long ulBase, \ unsigned long ulIntFlags))ROM_I2STABLE[21]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_I2SIntDisable \ ((void (*)(unsigned long ulBase, \ unsigned long ulIntFlags))ROM_I2STABLE[22]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_I2SIntClear \ ((void (*)(unsigned long ulBase, \ unsigned long ulIntFlags))ROM_I2STABLE[23]) @@ -1369,59 +2442,319 @@ //***************************************************************************** #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_IntEnable \ ((void (*)(unsigned long ulInterrupt))ROM_INTERRUPTTABLE[0]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_IntMasterEnable \ ((tBoolean (*)(void))ROM_INTERRUPTTABLE[1]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_IntMasterDisable \ ((tBoolean (*)(void))ROM_INTERRUPTTABLE[2]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_IntDisable \ ((void (*)(unsigned long ulInterrupt))ROM_INTERRUPTTABLE[3]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_IntPriorityGroupingSet \ ((void (*)(unsigned long ulBits))ROM_INTERRUPTTABLE[4]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_IntPriorityGroupingGet \ ((unsigned long (*)(void))ROM_INTERRUPTTABLE[5]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_IntPrioritySet \ ((void (*)(unsigned long ulInterrupt, \ unsigned char ucPriority))ROM_INTERRUPTTABLE[6]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_IntPriorityGet \ ((long (*)(unsigned long ulInterrupt))ROM_INTERRUPTTABLE[7]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_IntPendSet \ ((void (*)(unsigned long ulInterrupt))ROM_INTERRUPTTABLE[8]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_IntPendClear \ ((void (*)(unsigned long ulInterrupt))ROM_INTERRUPTTABLE[9]) #endif +#if defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_IntPriorityMaskSet \ + ((void (*)(unsigned long ulPriorityMask))ROM_INTERRUPTTABLE[10]) +#endif +#if defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_IntPriorityMaskGet \ + ((unsigned long (*)(void))ROM_INTERRUPTTABLE[11]) +#endif + +//***************************************************************************** +// +// Macros for calling ROM functions in the LPC API. +// +//***************************************************************************** +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_LPCIntClear \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulIntFlags))ROM_LPCTABLE[0]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_LPCByteRead \ + ((unsigned char (*)(unsigned long ulBase, \ + unsigned long ulOffset))ROM_LPCTABLE[1]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_LPCByteWrite \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulOffset, \ + unsigned char ucData))ROM_LPCTABLE[2]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_LPCChannelConfigCOMxSet \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulChannel, \ + unsigned long ulConfig, \ + unsigned long ulAddress, \ + unsigned long ulOffset, \ + unsigned long ulCOMxMode))ROM_LPCTABLE[3]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_LPCChannelConfigGet \ + ((unsigned long (*)(unsigned long ulBase, \ + unsigned long ulChannel, \ + unsigned long *pulAddress, \ + unsigned long *pulOffset, \ + unsigned long *pulCOMxMode))ROM_LPCTABLE[4]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_LPCChannelConfigEPSet \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulChannel, \ + unsigned long ulConfig, \ + unsigned long ulAddress, \ + unsigned long ulOffset))ROM_LPCTABLE[5]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_LPCChannelConfigMBSet \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulChannel, \ + unsigned long ulConfig, \ + unsigned long ulAddress, \ + unsigned long ulOffset))ROM_LPCTABLE[6]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_LPCChannelDMAConfigGet \ + ((unsigned long (*)(unsigned long ulBase))ROM_LPCTABLE[7]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_LPCChannelDMAConfigSet \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulConfig, \ + unsigned long ulMask))ROM_LPCTABLE[8]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_LPCChannelDisable \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulChannel))ROM_LPCTABLE[9]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_LPCChannelEnable \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulChannel))ROM_LPCTABLE[10]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_LPCChannelStatusClear \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulChannel, \ + unsigned long ulStatus))ROM_LPCTABLE[11]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_LPCChannelStatusGet \ + ((unsigned long (*)(unsigned long ulBase, \ + unsigned long ulChannel))ROM_LPCTABLE[12]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_LPCChannelStatusSet \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulChannel, \ + unsigned long ulStatus))ROM_LPCTABLE[13]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_LPCCOMxIntClear \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulIntFlags))ROM_LPCTABLE[14]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_LPCCOMxIntDisable \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulIntFlags))ROM_LPCTABLE[15]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_LPCCOMxIntEnable \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulIntFlags))ROM_LPCTABLE[16]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_LPCCOMxIntStatus \ + ((unsigned long (*)(unsigned long ulBase, \ + tBoolean bMasked))ROM_LPCTABLE[17]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_LPCConfigGet \ + ((unsigned long (*)(unsigned long ulBase))ROM_LPCTABLE[18]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_LPCConfigSet \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulConfig))ROM_LPCTABLE[19]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_LPCHalfWordRead \ + ((unsigned short (*)(unsigned long ulBase, \ + unsigned long ulOffset))ROM_LPCTABLE[20]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_LPCHalfWordWrite \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulOffset, \ + unsigned short usData))ROM_LPCTABLE[21]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_LPCIRQClear \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulIRQ))ROM_LPCTABLE[22]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_LPCIRQConfig \ + ((void (*)(unsigned long ulBase, \ + tBoolean bIRQPulse, \ + tBoolean bIRQOnChange))ROM_LPCTABLE[23]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_LPCIRQGet \ + ((unsigned long (*)(unsigned long ulBase))ROM_LPCTABLE[24]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_LPCIRQSend \ + ((void (*)(unsigned long ulBase))ROM_LPCTABLE[25]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_LPCIRQSet \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulIRQ))ROM_LPCTABLE[26]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_LPCIntDisable \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulIntFlags))ROM_LPCTABLE[27]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_LPCIntEnable \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulIntFlags))ROM_LPCTABLE[28]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_LPCIntStatus \ + ((unsigned long (*)(unsigned long ulBase, \ + tBoolean bMasked))ROM_LPCTABLE[29]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_LPCSCIAssert \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulCount))ROM_LPCTABLE[30]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_LPCStatusGet \ + ((unsigned long (*)(unsigned long ulBase, \ + unsigned long *pulCount, \ + unsigned long *pulPoolSize))ROM_LPCTABLE[31]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_LPCWordRead \ + ((unsigned long (*)(unsigned long ulBase, \ + unsigned long ulOffset))ROM_LPCTABLE[32]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_LPCWordWrite \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulOffset, \ + unsigned long ulData))ROM_LPCTABLE[33]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_LPCChannelPoolAddressGet \ + ((unsigned long (*)(unsigned long ulBase, \ + unsigned long ulChannel))ROM_LPCTABLE[34]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_LPCStatusBlockAddressGet \ + ((unsigned (*)(unsigned long ulBase))ROM_LPCTABLE[35]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_LPCStatusBlockAddressSet \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulAddress, \ + tBoolean bEnabled))ROM_LPCTABLE[36]) +#endif //***************************************************************************** // @@ -1429,45 +2762,200 @@ // //***************************************************************************** #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_MPUEnable \ ((void (*)(unsigned long ulMPUConfig))ROM_MPUTABLE[0]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_MPUDisable \ ((void (*)(void))ROM_MPUTABLE[1]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_MPURegionCountGet \ ((unsigned long (*)(void))ROM_MPUTABLE[2]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_MPURegionEnable \ ((void (*)(unsigned long ulRegion))ROM_MPUTABLE[3]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_MPURegionDisable \ ((void (*)(unsigned long ulRegion))ROM_MPUTABLE[4]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_MPURegionSet \ ((void (*)(unsigned long ulRegion, \ unsigned long ulAddr, \ unsigned long ulFlags))ROM_MPUTABLE[5]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_MPURegionGet \ ((void (*)(unsigned long ulRegion, \ unsigned long *pulAddr, \ unsigned long *pulFlags))ROM_MPUTABLE[6]) #endif +//***************************************************************************** +// +// Macros for calling ROM functions in the PECI API. +// +//***************************************************************************** +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_PECIIntClear \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulIntFlags))ROM_PECITABLE[0]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_PECIAdvCmdSend \ + ((void (*)(unsigned long ulBase, \ + unsigned char ucCmd, \ + unsigned char ucHidRe, \ + unsigned char ucDomain, \ + unsigned char ucProcAdd, \ + unsigned long ulArg, \ + unsigned char ucSize, \ + unsigned long ulData0, \ + unsigned long ulData1))ROM_PECITABLE[1]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_PECIAdvCmdSendNonBlocking \ + ((unsigned long (*)(unsigned long ulBase, \ + unsigned char ucCmd, \ + unsigned char ucHidRe, \ + unsigned char ucDomain, \ + unsigned char ucProcAdd, \ + unsigned long ulArg, \ + unsigned char ucSize, \ + unsigned long ulData0, \ + unsigned long ulData1))ROM_PECITABLE[2]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_PECIAdvCmdStatusGet \ + ((unsigned long (*)(unsigned long ulBase, \ + unsigned long *pulData0, \ + unsigned long *pulData1))ROM_PECITABLE[3]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_PECIConfigGet \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulPECIClk, \ + unsigned long *pulBaud, \ + unsigned long *pulPoll, \ + unsigned long *pulOffset, \ + unsigned long *pulRetry))ROM_PECITABLE[4]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_PECIConfigSet \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulPECIClk, \ + unsigned long ulBaud, \ + unsigned long ulPoll, \ + unsigned long ulOffset, \ + unsigned long ulRetry))ROM_PECITABLE[5]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_PECIDomainMaxReadClear \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulDomain))ROM_PECITABLE[6]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_PECIDomainValueClear \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulDomain))ROM_PECITABLE[7]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_PECIDomainConfigGet \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulDomain, \ + unsigned long *pulHigh, \ + unsigned long *pulLow))ROM_PECITABLE[8]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_PECIDomainConfigSet \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulDomain, \ + unsigned long ulHigh, \ + unsigned long ulLow))ROM_PECITABLE[9]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_PECIDomainDisable \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulDomain))ROM_PECITABLE[10]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_PECIDomainEnable \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulDomain))ROM_PECITABLE[11]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_PECIDomainMaxReadGet \ + ((unsigned long (*)(unsigned long ulBase, \ + unsigned long ulDomain))ROM_PECITABLE[12]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_PECIDomainValueGet \ + ((unsigned long (*)(unsigned long ulBase, \ + unsigned long ulDomain))ROM_PECITABLE[13]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_PECIIntDisable \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulIntFlags))ROM_PECITABLE[14]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_PECIIntEnable \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulIntFlags, \ + unsigned long ulIntMode))ROM_PECITABLE[15]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_PECIIntStatus \ + ((unsigned long (*)(unsigned long ulBase, \ + tBoolean bMasked))ROM_PECITABLE[16]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_PECIBypassEnable \ + ((void (*)(unsigned long ulBase))ROM_PECITABLE[17]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_PECIBypassDisable \ + ((void (*)(unsigned long ulBase))ROM_PECITABLE[18]) +#endif + //***************************************************************************** // // Macros for calling ROM functions in the PWM API. @@ -1475,7 +2963,11 @@ //***************************************************************************** #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_PWMPulseWidthSet \ ((void (*)(unsigned long ulBase, \ unsigned long ulPWMOut, \ @@ -1483,7 +2975,11 @@ #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_PWMGenConfigure \ ((void (*)(unsigned long ulBase, \ unsigned long ulGen, \ @@ -1491,7 +2987,11 @@ #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_PWMGenPeriodSet \ ((void (*)(unsigned long ulBase, \ unsigned long ulGen, \ @@ -1499,35 +2999,55 @@ #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_PWMGenPeriodGet \ ((unsigned long (*)(unsigned long ulBase, \ unsigned long ulGen))ROM_PWMTABLE[3]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_PWMGenEnable \ ((void (*)(unsigned long ulBase, \ unsigned long ulGen))ROM_PWMTABLE[4]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_PWMGenDisable \ ((void (*)(unsigned long ulBase, \ unsigned long ulGen))ROM_PWMTABLE[5]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_PWMPulseWidthGet \ ((unsigned long (*)(unsigned long ulBase, \ unsigned long ulPWMOut))ROM_PWMTABLE[6]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_PWMDeadBandEnable \ ((void (*)(unsigned long ulBase, \ unsigned long ulGen, \ @@ -1536,28 +3056,44 @@ #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_PWMDeadBandDisable \ ((void (*)(unsigned long ulBase, \ unsigned long ulGen))ROM_PWMTABLE[8]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_PWMSyncUpdate \ ((void (*)(unsigned long ulBase, \ unsigned long ulGenBits))ROM_PWMTABLE[9]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_PWMSyncTimeBase \ ((void (*)(unsigned long ulBase, \ unsigned long ulGenBits))ROM_PWMTABLE[10]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_PWMOutputState \ ((void (*)(unsigned long ulBase, \ unsigned long ulPWMOutBits, \ @@ -1565,7 +3101,11 @@ #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_PWMOutputInvert \ ((void (*)(unsigned long ulBase, \ unsigned long ulPWMOutBits, \ @@ -1573,7 +3113,11 @@ #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_PWMOutputFault \ ((void (*)(unsigned long ulBase, \ unsigned long ulPWMOutBits, \ @@ -1581,7 +3125,11 @@ #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_PWMGenIntTrigEnable \ ((void (*)(unsigned long ulBase, \ unsigned long ulGen, \ @@ -1589,7 +3137,11 @@ #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_PWMGenIntTrigDisable \ ((void (*)(unsigned long ulBase, \ unsigned long ulGen, \ @@ -1597,7 +3149,11 @@ #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_PWMGenIntStatus \ ((unsigned long (*)(unsigned long ulBase, \ unsigned long ulGen, \ @@ -1605,7 +3161,11 @@ #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_PWMGenIntClear \ ((void (*)(unsigned long ulBase, \ unsigned long ulGen, \ @@ -1613,46 +3173,74 @@ #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_PWMIntEnable \ ((void (*)(unsigned long ulBase, \ unsigned long ulGenFault))ROM_PWMTABLE[18]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_PWMIntDisable \ ((void (*)(unsigned long ulBase, \ unsigned long ulGenFault))ROM_PWMTABLE[19]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_PWMFaultIntClear \ ((void (*)(unsigned long ulBase))ROM_PWMTABLE[20]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_PWMIntStatus \ ((unsigned long (*)(unsigned long ulBase, \ tBoolean bMasked))ROM_PWMTABLE[21]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_PWMOutputFaultLevel \ ((void (*)(unsigned long ulBase, \ unsigned long ulPWMOutBits, \ tBoolean bDriveHigh))ROM_PWMTABLE[22]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_PWMFaultIntClearExt \ ((void (*)(unsigned long ulBase, \ unsigned long ulFaultInts))ROM_PWMTABLE[23]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_PWMGenFaultConfigure \ ((void (*)(unsigned long ulBase, \ unsigned long ulGen, \ @@ -1660,7 +3248,11 @@ unsigned long ulFaultSenses))ROM_PWMTABLE[24]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_PWMGenFaultTriggerSet \ ((void (*)(unsigned long ulBase, \ unsigned long ulGen, \ @@ -1668,21 +3260,33 @@ unsigned long ulFaultTriggers))ROM_PWMTABLE[25]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_PWMGenFaultTriggerGet \ ((unsigned long (*)(unsigned long ulBase, \ unsigned long ulGen, \ unsigned long ulGroup))ROM_PWMTABLE[26]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_PWMGenFaultStatus \ ((unsigned long (*)(unsigned long ulBase, \ unsigned long ulGen, \ unsigned long ulGroup))ROM_PWMTABLE[27]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_PWMGenFaultClear \ ((void (*)(unsigned long ulBase, \ unsigned long ulGen, \ @@ -1697,25 +3301,41 @@ //***************************************************************************** #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_QEIPositionGet \ ((unsigned long (*)(unsigned long ulBase))ROM_QEITABLE[0]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_QEIEnable \ ((void (*)(unsigned long ulBase))ROM_QEITABLE[1]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_QEIDisable \ ((void (*)(unsigned long ulBase))ROM_QEITABLE[2]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_QEIConfigure \ ((void (*)(unsigned long ulBase, \ unsigned long ulConfig, \ @@ -1723,38 +3343,62 @@ #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_QEIPositionSet \ ((void (*)(unsigned long ulBase, \ unsigned long ulPosition))ROM_QEITABLE[4]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_QEIDirectionGet \ ((long (*)(unsigned long ulBase))ROM_QEITABLE[5]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_QEIErrorGet \ ((tBoolean (*)(unsigned long ulBase))ROM_QEITABLE[6]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_QEIVelocityEnable \ ((void (*)(unsigned long ulBase))ROM_QEITABLE[7]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_QEIVelocityDisable \ ((void (*)(unsigned long ulBase))ROM_QEITABLE[8]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_QEIVelocityConfigure \ ((void (*)(unsigned long ulBase, \ unsigned long ulPreDiv, \ @@ -1762,39 +3406,344 @@ #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_QEIVelocityGet \ ((unsigned long (*)(unsigned long ulBase))ROM_QEITABLE[10]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_QEIIntEnable \ ((void (*)(unsigned long ulBase, \ unsigned long ulIntFlags))ROM_QEITABLE[11]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_QEIIntDisable \ ((void (*)(unsigned long ulBase, \ unsigned long ulIntFlags))ROM_QEITABLE[12]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_QEIIntStatus \ ((unsigned long (*)(unsigned long ulBase, \ tBoolean bMasked))ROM_QEITABLE[13]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_QEIIntClear \ ((void (*)(unsigned long ulBase, \ unsigned long ulIntFlags))ROM_QEITABLE[14]) #endif +//***************************************************************************** +// +// Macros for calling ROM functions in the SMBus API. +// +//***************************************************************************** +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusMasterIntProcess \ + ((tSMBusStatus (*)(tSMBus *pSMBus))ROM_SMBUSTABLE[0]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusARPDisable \ + ((void (*)(tSMBus *pSMBus))ROM_SMBUSTABLE[1]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusARPEnable \ + ((void (*)(tSMBus *pSMBus))ROM_SMBUSTABLE[2]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusARPUDIDPacketDecode \ + ((void (*)(tSMBusUDID *pUDID, \ + unsigned char *pucAddress, \ + unsigned char *pucData))ROM_SMBUSTABLE[3]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusARPUDIDPacketEncode \ + ((void (*)(tSMBusUDID *pUDID, \ + unsigned char ucAddress, \ + unsigned char *pucData))ROM_SMBUSTABLE[4]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusMasterARPAssignAddress \ + ((tSMBusStatus (*)(tSMBus *pSMBus, \ + unsigned char *pucData))ROM_SMBUSTABLE[5]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusMasterARPGetUDIDDir \ + ((tSMBusStatus (*)(tSMBus *pSMBus, \ + unsigned char ucTargetAddress, \ + unsigned char *pucData))ROM_SMBUSTABLE[6]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusMasterARPGetUDIDGen \ + ((tSMBusStatus (*)(tSMBus *pSMBus, \ + unsigned char *pucData))ROM_SMBUSTABLE[7]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusMasterARPNotifyMaster \ + ((tSMBusStatus (*)(tSMBus *pSMBus, \ + unsigned char *pucData))ROM_SMBUSTABLE[8]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusMasterARPPrepareToARP \ + ((tSMBusStatus (*)(tSMBus *pSMBus))ROM_SMBUSTABLE[9]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusMasterARPResetDeviceDir \ + ((tSMBusStatus (*)(tSMBus *pSMBus, \ + unsigned char ucTargetAddress))ROM_SMBUSTABLE[10]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusMasterARPResetDeviceGen \ + ((tSMBusStatus (*)(tSMBus *pSMBus))ROM_SMBUSTABLE[11]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusMasterBlockProcessCall \ + ((tSMBusStatus (*)(tSMBus *pSMBus, \ + unsigned char ucTargetAddress, \ + unsigned char ucCommand, \ + unsigned char *pucTxData, \ + unsigned char ucTxSize, \ + unsigned char *pucRxData))ROM_SMBUSTABLE[12]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusMasterBlockWrite \ + ((tSMBusStatus (*)(tSMBus *pSMBus, \ + unsigned char ucTargetAddress, \ + unsigned char ucCommand, \ + unsigned char *pucData, \ + unsigned char ucSize))ROM_SMBUSTABLE[14]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusMasterByteReceive \ + ((tSMBusStatus (*)(tSMBus *pSMBus, \ + unsigned char ucTargetAddress, \ + unsigned char *pucData))ROM_SMBUSTABLE[15]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusMasterByteSend \ + ((tSMBusStatus (*)(tSMBus *pSMBus, \ + unsigned char ucTargetAddress, \ + unsigned char ucData))ROM_SMBUSTABLE[16]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusMasterByteWordRead \ + ((tSMBusStatus (*)(tSMBus *pSMBus, \ + unsigned char ucTargetAddress, \ + unsigned char ucCommand, \ + unsigned char *pucData, \ + unsigned char ucSize))ROM_SMBUSTABLE[17]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusMasterByteWordWrite \ + ((tSMBusStatus (*)(tSMBus *pSMBus, \ + unsigned char ucTargetAddress, \ + unsigned char ucCommand, \ + unsigned char *pucData, \ + unsigned char ucSize))ROM_SMBUSTABLE[18]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusMasterHostNotify \ + ((tSMBusStatus (*)(tSMBus *pSMBus, \ + unsigned char ucOwnSlaveAddress, \ + unsigned char *pucData))ROM_SMBUSTABLE[19]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusMasterI2CRead \ + ((tSMBusStatus (*)(tSMBus *pSMBus, \ + unsigned char ucTargetAddress, \ + unsigned char *pucData, \ + unsigned char ucSize))ROM_SMBUSTABLE[20]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusMasterI2CWrite \ + ((tSMBusStatus (*)(tSMBus *pSMBus, \ + unsigned char ucTargetAddress, \ + unsigned char *pucData, \ + unsigned char ucSize))ROM_SMBUSTABLE[21]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusMasterI2CWriteRead \ + ((tSMBusStatus (*)(tSMBus *pSMBus, \ + unsigned char ucTargetAddress, \ + unsigned char *pucTxData, \ + unsigned char ucTxSize, \ + unsigned char *pucRxData, \ + unsigned char ucRxSize))ROM_SMBUSTABLE[22]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusMasterInit \ + ((void (*)(tSMBus *pSMBus, \ + unsigned long ulI2CBase, \ + unsigned long ulSMBusClock))ROM_SMBUSTABLE[23]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusMasterIntEnable \ + ((void (*)(tSMBus *pSMBus))ROM_SMBUSTABLE[24]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusMasterProcessCall \ + ((tSMBusStatus (*)(tSMBus *pSMBus, \ + unsigned char ucTargetAddress, \ + unsigned char ucCommand, \ + unsigned char *pucTxData, \ + unsigned char *pucRxData))ROM_SMBUSTABLE[25]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusMasterQuickCommand \ + ((tSMBusStatus (*)(tSMBus *pSMBus, \ + unsigned char ucTargetAddress, \ + tBoolean bData))ROM_SMBUSTABLE[26]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusPECDisable \ + ((void (*)(tSMBus *pSMBus))ROM_SMBUSTABLE[27]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusPECEnable \ + ((void (*)(tSMBus *pSMBus))ROM_SMBUSTABLE[28]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusRxPacketSizeGet \ + ((unsigned char (*)(tSMBus *pSMBus))ROM_SMBUSTABLE[29]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusSlaveACKSend \ + ((void (*)(tSMBus *pSMBus, \ + tBoolean bACK))ROM_SMBUSTABLE[30]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusSlaveAddressSet \ + ((void (*)(tSMBus *pSMBus, \ + unsigned char ucAddressNum, \ + unsigned char ucSlaveAddress))ROM_SMBUSTABLE[31]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusSlaveARPFlagARGet \ + ((tBoolean (*)(tSMBus *pSMBus))ROM_SMBUSTABLE[32]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusSlaveARPFlagARSet \ + ((void (*)(tSMBus *pSMBus, \ + tBoolean bValue))ROM_SMBUSTABLE[33]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusSlaveARPFlagAVGet \ + ((tBoolean (*)(tSMBus *pSMBus))ROM_SMBUSTABLE[34]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusSlaveARPFlagAVSet \ + ((void (*)(tSMBus *pSMBus, \ + tBoolean bValue))ROM_SMBUSTABLE[35]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusSlaveBlockTransferDisable \ + ((void (*)(tSMBus *pSMBus))ROM_SMBUSTABLE[36]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusSlaveBlockTransferEnable \ + ((void (*)(tSMBus *pSMBus))ROM_SMBUSTABLE[37]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusSlaveCommandGet \ + ((unsigned char (*)(tSMBus *pSMBus))ROM_SMBUSTABLE[38]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusSlaveI2CDisable \ + ((void (*)(tSMBus *pSMBus))ROM_SMBUSTABLE[39]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusSlaveI2CEnable \ + ((void (*)(tSMBus *pSMBus))ROM_SMBUSTABLE[40]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusSlaveInit \ + ((void (*)(tSMBus *pSMBus, \ + unsigned long ulI2CBase))ROM_SMBUSTABLE[41]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusSlaveIntAddressGet \ + ((tSMBusStatus (*)(tSMBus *pSMBus))ROM_SMBUSTABLE[42]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusSlaveIntEnable \ + ((void (*)(tSMBus *pSMBus))ROM_SMBUSTABLE[43]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusSlaveIntProcess \ + ((tSMBusStatus (*)(tSMBus *pSMBus))ROM_SMBUSTABLE[44]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusSlaveManualACKDisable \ + ((void (*)(tSMBus *pSMBus))ROM_SMBUSTABLE[45]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusSlaveManualACKEnable \ + ((void (*)(tSMBus *pSMBus))ROM_SMBUSTABLE[46]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusSlaveManualACKStatusGet \ + ((tBoolean (*)(tSMBus *pSMBus))ROM_SMBUSTABLE[47]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusSlaveProcessCallDisable \ + ((void (*)(tSMBus *pSMBus))ROM_SMBUSTABLE[48]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusSlaveProcessCallEnable \ + ((void (*)(tSMBus *pSMBus))ROM_SMBUSTABLE[49]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusSlaveRxBufferSet \ + ((void (*)(tSMBus *pSMBus, \ + unsigned char *pucData, \ + unsigned char ucSize))ROM_SMBUSTABLE[50]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusSlaveTransferInit \ + ((void (*)(tSMBus *pSMBus))ROM_SMBUSTABLE[51]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusSlaveTxBufferSet \ + ((void (*)(tSMBus *pSMBus, \ + unsigned char *pucData, \ + unsigned char ucSize))ROM_SMBUSTABLE[52]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusSlaveUDIDSet \ + ((void (*)(tSMBus *pSMBus, \ + tSMBusUDID *pUDID))ROM_SMBUSTABLE[53]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SMBusStatusGet \ + ((tSMBusStatus (*)(tSMBus *pSMBus))ROM_SMBUSTABLE[54]) +#endif + //***************************************************************************** // // Macros for calling ROM functions in the SSI API. @@ -1802,14 +3751,22 @@ //***************************************************************************** #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SSIDataPut \ ((void (*)(unsigned long ulBase, \ unsigned long ulData))ROM_SSITABLE[0]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SSIConfigSetExpClk \ ((void (*)(unsigned long ulBase, \ unsigned long ulSSIClk, \ @@ -1820,87 +3777,148 @@ #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SSIEnable \ ((void (*)(unsigned long ulBase))ROM_SSITABLE[2]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SSIDisable \ ((void (*)(unsigned long ulBase))ROM_SSITABLE[3]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SSIIntEnable \ ((void (*)(unsigned long ulBase, \ unsigned long ulIntFlags))ROM_SSITABLE[4]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SSIIntDisable \ ((void (*)(unsigned long ulBase, \ unsigned long ulIntFlags))ROM_SSITABLE[5]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SSIIntStatus \ ((unsigned long (*)(unsigned long ulBase, \ tBoolean bMasked))ROM_SSITABLE[6]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SSIIntClear \ ((void (*)(unsigned long ulBase, \ unsigned long ulIntFlags))ROM_SSITABLE[7]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SSIDataPutNonBlocking \ ((long (*)(unsigned long ulBase, \ unsigned long ulData))ROM_SSITABLE[8]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SSIDataGet \ ((void (*)(unsigned long ulBase, \ unsigned long *pulData))ROM_SSITABLE[9]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SSIDataGetNonBlocking \ ((long (*)(unsigned long ulBase, \ unsigned long *pulData))ROM_SSITABLE[10]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_UpdateSSI \ ((void (*)(void))ROM_SSITABLE[11]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SSIDMAEnable \ ((void (*)(unsigned long ulBase, \ unsigned long ulDMAFlags))ROM_SSITABLE[12]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SSIDMADisable \ ((void (*)(unsigned long ulBase, \ unsigned long ulDMAFlags))ROM_SSITABLE[13]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SSIBusy \ ((tBoolean (*)(unsigned long ulBase))ROM_SSITABLE[14]) #endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SSIClockSourceGet \ + ((unsigned long (*)(unsigned long ulBase))ROM_SSITABLE[15]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SSIClockSourceSet \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulSource))ROM_SSITABLE[16]) +#endif //***************************************************************************** // @@ -1909,209 +3927,392 @@ //***************************************************************************** #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysCtlSleep \ ((void (*)(void))ROM_SYSCTLTABLE[0]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysCtlSRAMSizeGet \ ((unsigned long (*)(void))ROM_SYSCTLTABLE[1]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysCtlFlashSizeGet \ ((unsigned long (*)(void))ROM_SYSCTLTABLE[2]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysCtlPinPresent \ ((tBoolean (*)(unsigned long ulPin))ROM_SYSCTLTABLE[3]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysCtlPeripheralPresent \ ((tBoolean (*)(unsigned long ulPeripheral))ROM_SYSCTLTABLE[4]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysCtlPeripheralReset \ ((void (*)(unsigned long ulPeripheral))ROM_SYSCTLTABLE[5]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysCtlPeripheralEnable \ ((void (*)(unsigned long ulPeripheral))ROM_SYSCTLTABLE[6]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysCtlPeripheralDisable \ ((void (*)(unsigned long ulPeripheral))ROM_SYSCTLTABLE[7]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysCtlPeripheralSleepEnable \ ((void (*)(unsigned long ulPeripheral))ROM_SYSCTLTABLE[8]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysCtlPeripheralSleepDisable \ ((void (*)(unsigned long ulPeripheral))ROM_SYSCTLTABLE[9]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysCtlPeripheralDeepSleepEnable \ ((void (*)(unsigned long ulPeripheral))ROM_SYSCTLTABLE[10]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysCtlPeripheralDeepSleepDisable \ ((void (*)(unsigned long ulPeripheral))ROM_SYSCTLTABLE[11]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysCtlPeripheralClockGating \ ((void (*)(tBoolean bEnable))ROM_SYSCTLTABLE[12]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysCtlIntEnable \ ((void (*)(unsigned long ulInts))ROM_SYSCTLTABLE[13]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysCtlIntDisable \ ((void (*)(unsigned long ulInts))ROM_SYSCTLTABLE[14]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysCtlIntClear \ ((void (*)(unsigned long ulInts))ROM_SYSCTLTABLE[15]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysCtlIntStatus \ ((unsigned long (*)(tBoolean bMasked))ROM_SYSCTLTABLE[16]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_SysCtlLDOSet \ ((void (*)(unsigned long ulVoltage))ROM_SYSCTLTABLE[17]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_SysCtlLDOGet \ ((unsigned long (*)(void))ROM_SYSCTLTABLE[18]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysCtlReset \ ((void (*)(void))ROM_SYSCTLTABLE[19]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysCtlDeepSleep \ ((void (*)(void))ROM_SYSCTLTABLE[20]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysCtlResetCauseGet \ ((unsigned long (*)(void))ROM_SYSCTLTABLE[21]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysCtlResetCauseClear \ ((void (*)(unsigned long ulCauses))ROM_SYSCTLTABLE[22]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysCtlClockSet \ ((void (*)(unsigned long ulConfig))ROM_SYSCTLTABLE[23]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysCtlClockGet \ ((unsigned long (*)(void))ROM_SYSCTLTABLE[24]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysCtlPWMClockSet \ ((void (*)(unsigned long ulConfig))ROM_SYSCTLTABLE[25]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysCtlPWMClockGet \ ((unsigned long (*)(void))ROM_SYSCTLTABLE[26]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysCtlADCSpeedSet \ ((void (*)(unsigned long ulSpeed))ROM_SYSCTLTABLE[27]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysCtlADCSpeedGet \ ((unsigned long (*)(void))ROM_SYSCTLTABLE[28]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysCtlGPIOAHBEnable \ ((void (*)(unsigned long ulGPIOPeripheral))ROM_SYSCTLTABLE[29]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysCtlGPIOAHBDisable \ ((void (*)(unsigned long ulGPIOPeripheral))ROM_SYSCTLTABLE[30]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysCtlUSBPLLEnable \ ((void (*)(void))ROM_SYSCTLTABLE[31]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysCtlUSBPLLDisable \ ((void (*)(void))ROM_SYSCTLTABLE[32]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) #define ROM_SysCtlI2SMClkSet \ ((unsigned long (*)(unsigned long ulInputClock, \ unsigned long ulMClk))ROM_SYSCTLTABLE[33]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysCtlDelay \ ((void (*)(unsigned long ulCount))ROM_SYSCTLTABLE[34]) #endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SysCtlPeripheralReady \ + ((tBoolean (*)(unsigned long ulPeripheral))ROM_SYSCTLTABLE[35]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SysCtlPeripheralPowerOn \ + ((void (*)(unsigned long ulPeripheral))ROM_SYSCTLTABLE[36]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SysCtlPeripheralPowerOff \ + ((void (*)(unsigned long ulPeripheral))ROM_SYSCTLTABLE[37]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SysCtlMOSCConfigSet \ + ((void (*)(unsigned long ulConfig))ROM_SYSCTLTABLE[44]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SysCtlPIOSCCalibrate \ + ((unsigned long (*)(unsigned long ulType))ROM_SYSCTLTABLE[45]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SysCtlDeepSleepClockSet \ + ((void (*)(unsigned long ulConfig))ROM_SYSCTLTABLE[46]) +#endif + +//***************************************************************************** +// +// Macros for calling ROM functions in the SysExc API. +// +//***************************************************************************** +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SysExcIntStatus \ + ((unsigned long (*)(tBoolean bMasked))ROM_SYSEXCTABLE[0]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SysExcIntClear \ + ((void (*)(unsigned long ulIntFlags))ROM_SYSEXCTABLE[1]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SysExcIntDisable \ + ((void (*)(unsigned long ulIntFlags))ROM_SYSEXCTABLE[2]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_SysExcIntEnable \ + ((void (*)(unsigned long ulIntFlags))ROM_SYSEXCTABLE[3]) +#endif //***************************************************************************** // @@ -2120,43 +4321,71 @@ //***************************************************************************** #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysTickValueGet \ ((unsigned long (*)(void))ROM_SYSTICKTABLE[0]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysTickEnable \ ((void (*)(void))ROM_SYSTICKTABLE[1]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysTickDisable \ ((void (*)(void))ROM_SYSTICKTABLE[2]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysTickIntEnable \ ((void (*)(void))ROM_SYSTICKTABLE[3]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysTickIntDisable \ ((void (*)(void))ROM_SYSTICKTABLE[4]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysTickPeriodSet \ ((void (*)(unsigned long ulPeriod))ROM_SYSTICKTABLE[5]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_SysTickPeriodGet \ ((unsigned long (*)(void))ROM_SYSTICKTABLE[6]) #endif @@ -2168,35 +4397,55 @@ //***************************************************************************** #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_TimerIntClear \ ((void (*)(unsigned long ulBase, \ unsigned long ulIntFlags))ROM_TIMERTABLE[0]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_TimerEnable \ ((void (*)(unsigned long ulBase, \ unsigned long ulTimer))ROM_TIMERTABLE[1]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_TimerDisable \ ((void (*)(unsigned long ulBase, \ unsigned long ulTimer))ROM_TIMERTABLE[2]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_TimerConfigure \ ((void (*)(unsigned long ulBase, \ unsigned long ulConfig))ROM_TIMERTABLE[3]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_TimerControlLevel \ ((void (*)(unsigned long ulBase, \ unsigned long ulTimer, \ @@ -2204,15 +4453,17 @@ #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_TimerControlTrigger \ ((void (*)(unsigned long ulBase, \ unsigned long ulTimer, \ tBoolean bEnable))ROM_TIMERTABLE[5]) #endif -#if defined(TARGET_IS_DUSTDEVIL_RA0) || \ - defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_BLIZZARD_RA1) #define ROM_TimerControlEvent \ ((void (*)(unsigned long ulBase, \ unsigned long ulTimer, \ @@ -2220,7 +4471,11 @@ #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_TimerControlStall \ ((void (*)(unsigned long ulBase, \ unsigned long ulTimer, \ @@ -2228,19 +4483,31 @@ #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_TimerRTCEnable \ ((void (*)(unsigned long ulBase))ROM_TIMERTABLE[8]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_TimerRTCDisable \ ((void (*)(unsigned long ulBase))ROM_TIMERTABLE[9]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_TimerPrescaleSet \ ((void (*)(unsigned long ulBase, \ unsigned long ulTimer, \ @@ -2248,14 +4515,39 @@ #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_TimerPrescaleGet \ ((unsigned long (*)(unsigned long ulBase, \ unsigned long ulTimer))ROM_TIMERTABLE[11]) #endif +#if defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_TimerPrescaleMatchSet \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulTimer, \ + unsigned long ulValue))ROM_TIMERTABLE[12]) +#endif +#if defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_TimerPrescaleMatchGet \ + ((unsigned long (*)(unsigned long ulBase, \ + unsigned long ulTimer))ROM_TIMERTABLE[13]) +#endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_TimerLoadSet \ ((void (*)(unsigned long ulBase, \ unsigned long ulTimer, \ @@ -2263,21 +4555,33 @@ #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_TimerLoadGet \ ((unsigned long (*)(unsigned long ulBase, \ unsigned long ulTimer))ROM_TIMERTABLE[15]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_TimerValueGet \ ((unsigned long (*)(unsigned long ulBase, \ unsigned long ulTimer))ROM_TIMERTABLE[16]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_TimerMatchSet \ ((void (*)(unsigned long ulBase, \ unsigned long ulTimer, \ @@ -2285,32 +4589,79 @@ #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_TimerMatchGet \ ((unsigned long (*)(unsigned long ulBase, \ unsigned long ulTimer))ROM_TIMERTABLE[18]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_TimerIntEnable \ ((void (*)(unsigned long ulBase, \ unsigned long ulIntFlags))ROM_TIMERTABLE[19]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_TimerIntDisable \ ((void (*)(unsigned long ulBase, \ unsigned long ulIntFlags))ROM_TIMERTABLE[20]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_TimerIntStatus \ ((unsigned long (*)(unsigned long ulBase, \ tBoolean bMasked))ROM_TIMERTABLE[21]) #endif +#if defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_TimerControlWaitOnTrigger \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulTimer, \ + tBoolean bWait))ROM_TIMERTABLE[22]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_TimerLoadSet64 \ + ((void (*)(unsigned long ulBase, \ + unsigned long long ullValue))ROM_TIMERTABLE[23]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_TimerLoadGet64 \ + ((unsigned long long (*)(unsigned long ulBase))ROM_TIMERTABLE[24]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_TimerValueGet64 \ + ((unsigned long long (*)(unsigned long ulBase))ROM_TIMERTABLE[25]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_TimerMatchSet64 \ + ((void (*)(unsigned long ulBase, \ + unsigned long long ullValue))ROM_TIMERTABLE[26]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_TimerMatchGet64 \ + ((unsigned long long (*)(unsigned long ulBase))ROM_TIMERTABLE[27]) +#endif //***************************************************************************** // @@ -2319,27 +4670,43 @@ //***************************************************************************** #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_UARTCharPut \ ((void (*)(unsigned long ulBase, \ unsigned char ucData))ROM_UARTTABLE[0]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_UARTParityModeSet \ ((void (*)(unsigned long ulBase, \ unsigned long ulParity))ROM_UARTTABLE[1]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_UARTParityModeGet \ ((unsigned long (*)(unsigned long ulBase))ROM_UARTTABLE[2]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_UARTFIFOLevelSet \ ((void (*)(unsigned long ulBase, \ unsigned long ulTxLevel, \ @@ -2347,7 +4714,11 @@ #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_UARTFIFOLevelGet \ ((void (*)(unsigned long ulBase, \ unsigned long *pulTxLevel, \ @@ -2355,7 +4726,11 @@ #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_UARTConfigSetExpClk \ ((void (*)(unsigned long ulBase, \ unsigned long ulUARTClk, \ @@ -2364,7 +4739,11 @@ #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_UARTConfigGetExpClk \ ((void (*)(unsigned long ulBase, \ unsigned long ulUARTClk, \ @@ -2373,142 +4752,266 @@ #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_UARTEnable \ ((void (*)(unsigned long ulBase))ROM_UARTTABLE[7]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_UARTDisable \ ((void (*)(unsigned long ulBase))ROM_UARTTABLE[8]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_UARTEnableSIR \ ((void (*)(unsigned long ulBase, \ tBoolean bLowPower))ROM_UARTTABLE[9]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_UARTDisableSIR \ ((void (*)(unsigned long ulBase))ROM_UARTTABLE[10]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_UARTCharsAvail \ ((tBoolean (*)(unsigned long ulBase))ROM_UARTTABLE[11]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_UARTSpaceAvail \ ((tBoolean (*)(unsigned long ulBase))ROM_UARTTABLE[12]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_UARTCharGetNonBlocking \ ((long (*)(unsigned long ulBase))ROM_UARTTABLE[13]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_UARTCharGet \ ((long (*)(unsigned long ulBase))ROM_UARTTABLE[14]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_UARTCharPutNonBlocking \ ((tBoolean (*)(unsigned long ulBase, \ unsigned char ucData))ROM_UARTTABLE[15]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_UARTBreakCtl \ ((void (*)(unsigned long ulBase, \ tBoolean bBreakState))ROM_UARTTABLE[16]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_UARTIntEnable \ ((void (*)(unsigned long ulBase, \ unsigned long ulIntFlags))ROM_UARTTABLE[17]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_UARTIntDisable \ ((void (*)(unsigned long ulBase, \ unsigned long ulIntFlags))ROM_UARTTABLE[18]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_UARTIntStatus \ ((unsigned long (*)(unsigned long ulBase, \ tBoolean bMasked))ROM_UARTTABLE[19]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_UARTIntClear \ ((void (*)(unsigned long ulBase, \ unsigned long ulIntFlags))ROM_UARTTABLE[20]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_UpdateUART \ ((void (*)(void))ROM_UARTTABLE[21]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_UARTDMAEnable \ ((void (*)(unsigned long ulBase, \ unsigned long ulDMAFlags))ROM_UARTTABLE[22]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_UARTDMADisable \ ((void (*)(unsigned long ulBase, \ unsigned long ulDMAFlags))ROM_UARTTABLE[23]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_UARTFIFOEnable \ ((void (*)(unsigned long ulBase))ROM_UARTTABLE[24]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_UARTFIFODisable \ ((void (*)(unsigned long ulBase))ROM_UARTTABLE[25]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_UARTBusy \ ((tBoolean (*)(unsigned long ulBase))ROM_UARTTABLE[26]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_UARTTxIntModeSet \ ((void (*)(unsigned long ulBase, \ unsigned long ulMode))ROM_UARTTABLE[27]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_UARTTxIntModeGet \ ((unsigned long (*)(unsigned long ulBase))ROM_UARTTABLE[28]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_UARTRxErrorGet \ ((unsigned long (*)(unsigned long ulBase))ROM_UARTTABLE[29]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_UARTRxErrorClear \ ((void (*)(unsigned long ulBase))ROM_UARTTABLE[30]) #endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_UARTClockSourceSet \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulSource))ROM_UARTTABLE[31]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_UARTClockSourceGet \ + ((unsigned long (*)(unsigned long ulBase))ROM_UARTTABLE[32]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_UART9BitEnable \ + ((void (*)(unsigned long ulBase))ROM_UARTTABLE[33]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_UART9BitDisable \ + ((void (*)(unsigned long ulBase))ROM_UARTTABLE[34]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_UART9BitAddrSet \ + ((void (*)(unsigned long ulBase, \ + unsigned char ucAddr, \ + unsigned char ucMask))ROM_UARTTABLE[35]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_UART9BitAddrSend \ + ((void (*)(unsigned long ulBase, \ + unsigned char ucAddr))ROM_UARTTABLE[36]) +#endif //***************************************************************************** // @@ -2516,105 +5019,206 @@ // //***************************************************************************** #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_uDMAChannelTransferSet \ - ((void (*)(unsigned long ulChannel, \ + ((void (*)(unsigned long ulChannelStructIndex, \ unsigned long ulMode, \ void *pvSrcAddr, \ void *pvDstAddr, \ unsigned long ulTransferSize))ROM_UDMATABLE[0]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_uDMAEnable \ ((void (*)(void))ROM_UDMATABLE[1]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_uDMADisable \ ((void (*)(void))ROM_UDMATABLE[2]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_uDMAErrorStatusGet \ ((unsigned long (*)(void))ROM_UDMATABLE[3]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_uDMAErrorStatusClear \ ((void (*)(void))ROM_UDMATABLE[4]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_uDMAChannelEnable \ - ((void (*)(unsigned long ulChannel))ROM_UDMATABLE[5]) + ((void (*)(unsigned long ulChannelNum))ROM_UDMATABLE[5]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_uDMAChannelDisable \ - ((void (*)(unsigned long ulChannel))ROM_UDMATABLE[6]) + ((void (*)(unsigned long ulChannelNum))ROM_UDMATABLE[6]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_uDMAChannelIsEnabled \ - ((tBoolean (*)(unsigned long ulChannel))ROM_UDMATABLE[7]) + ((tBoolean (*)(unsigned long ulChannelNum))ROM_UDMATABLE[7]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_uDMAControlBaseSet \ ((void (*)(void *pControlTable))ROM_UDMATABLE[8]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_uDMAControlBaseGet \ ((void * (*)(void))ROM_UDMATABLE[9]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_uDMAChannelRequest \ - ((void (*)(unsigned long ulChannel))ROM_UDMATABLE[10]) + ((void (*)(unsigned long ulChannelNum))ROM_UDMATABLE[10]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_uDMAChannelAttributeEnable \ - ((void (*)(unsigned long ulChannel, \ + ((void (*)(unsigned long ulChannelNum, \ unsigned long ulAttr))ROM_UDMATABLE[11]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_uDMAChannelAttributeDisable \ - ((void (*)(unsigned long ulChannel, \ + ((void (*)(unsigned long ulChannelNum, \ unsigned long ulAttr))ROM_UDMATABLE[12]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_uDMAChannelAttributeGet \ - ((unsigned long (*)(unsigned long ulChannel))ROM_UDMATABLE[13]) + ((unsigned long (*)(unsigned long ulChannelNum))ROM_UDMATABLE[13]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_uDMAChannelControlSet \ - ((void (*)(unsigned long ulChannel, \ + ((void (*)(unsigned long ulChannelStructIndex, \ unsigned long ulControl))ROM_UDMATABLE[14]) #endif -#if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_uDMAChannelSizeGet \ - ((unsigned long (*)(unsigned long ulChannel))ROM_UDMATABLE[15]) + ((unsigned long (*)(unsigned long ulChannelStructIndex))ROM_UDMATABLE[15]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_uDMAChannelModeGet \ - ((unsigned long (*)(unsigned long ulChannel))ROM_UDMATABLE[16]) + ((unsigned long (*)(unsigned long ulChannelStructIndex))ROM_UDMATABLE[16]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_uDMAChannelSelectSecondary \ ((void (*)(unsigned long ulSecPeriphs))ROM_UDMATABLE[17]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_uDMAChannelSelectDefault \ ((void (*)(unsigned long ulDefPeriphs))ROM_UDMATABLE[18]) #endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_uDMAIntStatus \ + ((unsigned long (*)(void))ROM_UDMATABLE[19]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_uDMAIntClear \ + ((void (*)(unsigned long ulChanMask))ROM_UDMATABLE[20]) +#endif +#if defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_uDMAControlAlternateBaseGet \ + ((void * (*)(void))ROM_UDMATABLE[21]) +#endif +#if defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_uDMAChannelScatterGatherSet \ + ((void (*)(unsigned long ulChannelNum, \ + unsigned ulTaskCount, \ + void *pvTaskList, \ + unsigned long ulIsPeriphSG))ROM_UDMATABLE[22]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_uDMAChannelAssign \ + ((void (*)(unsigned long ulMapping))ROM_UDMATABLE[23]) +#endif //***************************************************************************** // @@ -2622,33 +5226,57 @@ // //***************************************************************************** #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBIntStatus \ ((unsigned long (*)(unsigned long ulBase))ROM_USBTABLE[0]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBDevAddrGet \ ((unsigned long (*)(unsigned long ulBase))ROM_USBTABLE[1]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBDevAddrSet \ ((void (*)(unsigned long ulBase, \ unsigned long ulAddress))ROM_USBTABLE[2]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBDevConnect \ ((void (*)(unsigned long ulBase))ROM_USBTABLE[3]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBDevDisconnect \ ((void (*)(unsigned long ulBase))ROM_USBTABLE[4]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBDevEndpointConfigSet \ ((void (*)(unsigned long ulBase, \ unsigned long ulEndpoint, \ @@ -2656,35 +5284,52 @@ unsigned long ulFlags))ROM_USBTABLE[5]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBDevEndpointDataAck \ ((void (*)(unsigned long ulBase, \ unsigned long ulEndpoint, \ tBoolean bIsLastPacket))ROM_USBTABLE[6]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBDevEndpointStall \ ((void (*)(unsigned long ulBase, \ unsigned long ulEndpoint, \ unsigned long ulFlags))ROM_USBTABLE[7]) #endif -#if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBDevEndpointStallClear \ ((void (*)(unsigned long ulBase, \ unsigned long ulEndpoint, \ unsigned long ulFlags))ROM_USBTABLE[8]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBDevEndpointStatusClear \ ((void (*)(unsigned long ulBase, \ unsigned long ulEndpoint, \ unsigned long ulFlags))ROM_USBTABLE[9]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBEndpointDataGet \ ((long (*)(unsigned long ulBase, \ unsigned long ulEndpoint, \ @@ -2692,7 +5337,11 @@ unsigned long *pulSize))ROM_USBTABLE[10]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBEndpointDataPut \ ((long (*)(unsigned long ulBase, \ unsigned long ulEndpoint, \ @@ -2700,33 +5349,53 @@ unsigned long ulSize))ROM_USBTABLE[11]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBEndpointDataSend \ ((long (*)(unsigned long ulBase, \ unsigned long ulEndpoint, \ unsigned long ulTransType))ROM_USBTABLE[12]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBEndpointDataToggleClear \ ((void (*)(unsigned long ulBase, \ unsigned long ulEndpoint, \ unsigned long ulFlags))ROM_USBTABLE[13]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBEndpointStatus \ ((unsigned long (*)(unsigned long ulBase, \ unsigned long ulEndpoint))ROM_USBTABLE[14]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBFIFOAddrGet \ ((unsigned long (*)(unsigned long ulBase, \ unsigned long ulEndpoint))ROM_USBTABLE[15]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBFIFOConfigGet \ ((void (*)(unsigned long ulBase, \ unsigned long ulEndpoint, \ @@ -2735,7 +5404,11 @@ unsigned long ulFlags))ROM_USBTABLE[16]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBFIFOConfigSet \ ((void (*)(unsigned long ulBase, \ unsigned long ulEndpoint, \ @@ -2743,26 +5416,40 @@ unsigned long ulFIFOSize, \ unsigned long ulFlags))ROM_USBTABLE[17]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBFIFOFlush \ ((void (*)(unsigned long ulBase, \ unsigned long ulEndpoint, \ unsigned long ulFlags))ROM_USBTABLE[18]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBFrameNumberGet \ ((unsigned long (*)(unsigned long ulBase))ROM_USBTABLE[19]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBHostAddrGet \ ((unsigned long (*)(unsigned long ulBase, \ unsigned long ulEndpoint, \ unsigned long ulFlags))ROM_USBTABLE[20]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBHostAddrSet \ ((void (*)(unsigned long ulBase, \ unsigned long ulEndpoint, \ @@ -2770,23 +5457,21 @@ unsigned long ulFlags))ROM_USBTABLE[21]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) -#define ROM_USBHostEndpointConfig \ - ((void (*)(unsigned long ulBase, \ - unsigned long ulEndpoint, \ - unsigned long ulMaxPacketSize, \ - unsigned long ulNAKPollInterval, \ - unsigned long ulTargetEndpoint, \ - unsigned long ulFlags))ROM_USBTABLE[22]) -#endif -#if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBHostEndpointDataAck \ ((void (*)(unsigned long ulBase, \ unsigned long ulEndpoint))ROM_USBTABLE[23]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBHostEndpointDataToggle \ ((void (*)(unsigned long ulBase, \ unsigned long ulEndpoint, \ @@ -2794,21 +5479,33 @@ unsigned long ulFlags))ROM_USBTABLE[24]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBHostEndpointStatusClear \ ((void (*)(unsigned long ulBase, \ unsigned long ulEndpoint, \ unsigned long ulFlags))ROM_USBTABLE[25]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBHostHubAddrGet \ ((unsigned long (*)(unsigned long ulBase, \ unsigned long ulEndpoint, \ unsigned long ulFlags))ROM_USBTABLE[26]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBHostHubAddrSet \ ((void (*)(unsigned long ulBase, \ unsigned long ulEndpoint, \ @@ -2816,147 +5513,271 @@ unsigned long ulFlags))ROM_USBTABLE[27]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBHostPwrDisable \ ((void (*)(unsigned long ulBase))ROM_USBTABLE[28]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBHostPwrEnable \ ((void (*)(unsigned long ulBase))ROM_USBTABLE[29]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBHostPwrConfig \ ((void (*)(unsigned long ulBase, \ unsigned long ulFlags))ROM_USBTABLE[30]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBHostPwrFaultDisable \ ((void (*)(unsigned long ulBase))ROM_USBTABLE[31]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBHostPwrFaultEnable \ ((void (*)(unsigned long ulBase))ROM_USBTABLE[32]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBHostRequestIN \ ((void (*)(unsigned long ulBase, \ unsigned long ulEndpoint))ROM_USBTABLE[33]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBHostRequestStatus \ ((void (*)(unsigned long ulBase))ROM_USBTABLE[34]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBHostReset \ ((void (*)(unsigned long ulBase, \ tBoolean bStart))ROM_USBTABLE[35]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBHostResume \ ((void (*)(unsigned long ulBase, \ tBoolean bStart))ROM_USBTABLE[36]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBHostSpeedGet \ ((unsigned long (*)(unsigned long ulBase))ROM_USBTABLE[37]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBHostSuspend \ ((void (*)(unsigned long ulBase))ROM_USBTABLE[38]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBIntDisable \ ((void (*)(unsigned long ulBase, \ unsigned long ulIntFlags))ROM_USBTABLE[39]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBIntEnable \ ((void (*)(unsigned long ulBase, \ unsigned long ulIntFlags))ROM_USBTABLE[40]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBDevEndpointConfigGet \ ((void (*)(unsigned long ulBase, \ unsigned long ulEndpoint, \ unsigned long *pulMaxPacketSize, \ unsigned long *pulFlags))ROM_USBTABLE[41]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBEndpointDMAEnable \ ((void (*)(unsigned long ulBase, \ unsigned long ulEndpoint, \ unsigned long ulFlags))ROM_USBTABLE[42]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBEndpointDMADisable \ ((void (*)(unsigned long ulBase, \ unsigned long ulEndpoint, \ unsigned long ulFlags))ROM_USBTABLE[43]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBEndpointDataAvail \ ((unsigned long (*)(unsigned long ulBase, \ unsigned long ulEndpoint))ROM_USBTABLE[44]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBOTGHostRequest \ ((void (*)(unsigned long ulBase, \ tBoolean bHNP))ROM_USBTABLE[45]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBModeGet \ ((unsigned long (*)(unsigned long ulBase))ROM_USBTABLE[46]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBEndpointDMAChannel \ ((void (*)(unsigned long ulBase, \ unsigned long ulEndpoint, \ unsigned long ulChannel))ROM_USBTABLE[47]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBIntDisableControl \ ((void (*)(unsigned long ulBase, \ unsigned long ulIntFlags))ROM_USBTABLE[48]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBIntEnableControl \ ((void (*)(unsigned long ulBase, \ unsigned long ulIntFlags))ROM_USBTABLE[49]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBIntStatusControl \ ((unsigned long (*)(unsigned long ulBase))ROM_USBTABLE[50]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBIntDisableEndpoint \ ((void (*)(unsigned long ulBase, \ unsigned long ulIntFlags))ROM_USBTABLE[51]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBIntEnableEndpoint \ ((void (*)(unsigned long ulBase, \ unsigned long ulIntFlags))ROM_USBTABLE[52]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBIntStatusEndpoint \ ((unsigned long (*)(unsigned long ulBase))ROM_USBTABLE[53]) #endif -#if defined(TARGET_IS_TEMPEST_RC1) +#if defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_USBHostMode \ ((void (*)(unsigned long ulBase))ROM_USBTABLE[54]) #endif +#if defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_USBDevMode \ + ((void (*)(unsigned long ulBase))ROM_USBTABLE[55]) +#endif +#if defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_USBPHYPowerOff \ + ((void (*)(unsigned long ulBase))ROM_USBTABLE[56]) +#endif +#if defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_USBPHYPowerOn \ + ((void (*)(unsigned long ulBase))ROM_USBTABLE[57]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_USBOTGMode \ + ((void (*)(unsigned long ulBase))ROM_USBTABLE[59]) +#endif //***************************************************************************** // @@ -2965,96 +5786,161 @@ //***************************************************************************** #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_WatchdogIntClear \ ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[0]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_WatchdogRunning \ ((tBoolean (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[1]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_WatchdogEnable \ ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[2]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_WatchdogResetEnable \ ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[3]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_WatchdogResetDisable \ ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[4]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_WatchdogLock \ ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[5]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_WatchdogUnlock \ ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[6]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_WatchdogLockState \ ((tBoolean (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[7]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_WatchdogReloadSet \ ((void (*)(unsigned long ulBase, \ unsigned long ulLoadVal))ROM_WATCHDOGTABLE[8]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_WatchdogReloadGet \ ((unsigned long (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[9]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_WatchdogValueGet \ ((unsigned long (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[10]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_WatchdogIntEnable \ ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[11]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_WatchdogIntStatus \ ((unsigned long (*)(unsigned long ulBase, \ tBoolean bMasked))ROM_WATCHDOGTABLE[12]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_WatchdogStallEnable \ ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[13]) #endif #if defined(TARGET_IS_DUSTDEVIL_RA0) || \ defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_WatchdogStallDisable \ ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[14]) #endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_WatchdogIntTypeSet \ + ((void (*)(unsigned long ulBase, \ + unsigned long ulType))ROM_WATCHDOGTABLE[15]) +#endif //***************************************************************************** // @@ -3062,20 +5948,44 @@ // //***************************************************************************** #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_Crc16Array \ ((unsigned short (*)(unsigned long ulWordLen, \ - unsigned long *pulData))ROM_SOFTWARETABLE[1]) + const unsigned long *pulData))ROM_SOFTWARETABLE[1]) #endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_Crc16Array3 \ ((void (*)(unsigned long ulWordLen, \ - unsigned long *pulData, \ + const unsigned long *pulData, \ unsigned short *pusCrc3))ROM_SOFTWARETABLE[2]) #endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_Crc16 \ + ((unsigned short (*)(unsigned short usCrc, \ + const unsigned char *pucData, \ + unsigned long ulCount))ROM_SOFTWARETABLE[3]) +#endif +#if defined(TARGET_IS_BLIZZARD_RA1) +#define ROM_Crc8CCITT \ + ((unsigned char (*)(unsigned char ucCrc, \ + const unsigned char *pucData, \ + unsigned long ulCount))ROM_SOFTWARETABLE[4]) +#endif #if defined(TARGET_IS_TEMPEST_RB1) || \ - defined(TARGET_IS_TEMPEST_RC1) + defined(TARGET_IS_TEMPEST_RC1) || \ + defined(TARGET_IS_TEMPEST_RC3) || \ + defined(TARGET_IS_TEMPEST_RC5) || \ + defined(TARGET_IS_FIRESTORM_RA2) || \ + defined(TARGET_IS_BLIZZARD_RA1) #define ROM_pvAESTable \ ((void *)&(ROM_SOFTWARETABLE[7])) #endif diff --git a/bsp/lm3s8962/Libraries/driverlib/rom_map.h b/bsp/lm3s8962/Libraries/driverlib/rom_map.h index 816292c4e0..f2c88ec67f 100644 --- a/bsp/lm3s8962/Libraries/driverlib/rom_map.h +++ b/bsp/lm3s8962/Libraries/driverlib/rom_map.h @@ -3,7 +3,7 @@ // rom_map.h - Macros to facilitate calling functions in the ROM when they are // available and in flash otherwise. // -// Copyright (c) 2008-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2008-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -19,7 +19,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -185,6 +185,48 @@ #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_ADCResolutionSet +#define MAP_ADCResolutionSet \ + ROM_ADCResolutionSet +#else +#define MAP_ADCResolutionSet \ + ADCResolutionSet +#endif +#ifdef ROM_ADCResolutionGet +#define MAP_ADCResolutionGet \ + ROM_ADCResolutionGet +#else +#define MAP_ADCResolutionGet \ + ADCResolutionGet +#endif //***************************************************************************** // @@ -368,7 +410,7 @@ //***************************************************************************** // -// Macros for the Ethernet API. +// Macros for the EPI API. // //***************************************************************************** #ifdef ROM_EPIIntStatus @@ -664,6 +706,131 @@ #define MAP_EthernetPHYRead \ EthernetPHYRead #endif +#ifdef ROM_EthernetPHYAddrSet +#define MAP_EthernetPHYAddrSet \ + ROM_EthernetPHYAddrSet +#else +#define MAP_EthernetPHYAddrSet \ + EthernetPHYAddrSet +#endif +#ifdef ROM_EthernetPHYPowerOff +#define MAP_EthernetPHYPowerOff \ + ROM_EthernetPHYPowerOff +#else +#define MAP_EthernetPHYPowerOff \ + EthernetPHYPowerOff +#endif +#ifdef ROM_EthernetPHYPowerOn +#define MAP_EthernetPHYPowerOn \ + ROM_EthernetPHYPowerOn +#else +#define MAP_EthernetPHYPowerOn \ + EthernetPHYPowerOn +#endif + +//***************************************************************************** +// +// Macros for the Fan API. +// +//***************************************************************************** +#ifdef ROM_FanIntClear +#define MAP_FanIntClear \ + ROM_FanIntClear +#else +#define MAP_FanIntClear \ + FanIntClear +#endif +#ifdef ROM_FanChannelConfigAuto +#define MAP_FanChannelConfigAuto \ + ROM_FanChannelConfigAuto +#else +#define MAP_FanChannelConfigAuto \ + FanChannelConfigAuto +#endif +#ifdef ROM_FanChannelConfigManual +#define MAP_FanChannelConfigManual \ + ROM_FanChannelConfigManual +#else +#define MAP_FanChannelConfigManual \ + FanChannelConfigManual +#endif +#ifdef ROM_FanChannelDisable +#define MAP_FanChannelDisable \ + ROM_FanChannelDisable +#else +#define MAP_FanChannelDisable \ + FanChannelDisable +#endif +#ifdef ROM_FanChannelDutyGet +#define MAP_FanChannelDutyGet \ + ROM_FanChannelDutyGet +#else +#define MAP_FanChannelDutyGet \ + FanChannelDutyGet +#endif +#ifdef ROM_FanChannelDutySet +#define MAP_FanChannelDutySet \ + ROM_FanChannelDutySet +#else +#define MAP_FanChannelDutySet \ + FanChannelDutySet +#endif +#ifdef ROM_FanChannelEnable +#define MAP_FanChannelEnable \ + ROM_FanChannelEnable +#else +#define MAP_FanChannelEnable \ + FanChannelEnable +#endif +#ifdef ROM_FanChannelRPMGet +#define MAP_FanChannelRPMGet \ + ROM_FanChannelRPMGet +#else +#define MAP_FanChannelRPMGet \ + FanChannelRPMGet +#endif +#ifdef ROM_FanChannelRPMSet +#define MAP_FanChannelRPMSet \ + ROM_FanChannelRPMSet +#else +#define MAP_FanChannelRPMSet \ + FanChannelRPMSet +#endif +#ifdef ROM_FanChannelStatus +#define MAP_FanChannelStatus \ + ROM_FanChannelStatus +#else +#define MAP_FanChannelStatus \ + FanChannelStatus +#endif +#ifdef ROM_FanChannelsGet +#define MAP_FanChannelsGet \ + ROM_FanChannelsGet +#else +#define MAP_FanChannelsGet \ + FanChannelsGet +#endif +#ifdef ROM_FanIntDisable +#define MAP_FanIntDisable \ + ROM_FanIntDisable +#else +#define MAP_FanIntDisable \ + FanIntDisable +#endif +#ifdef ROM_FanIntEnable +#define MAP_FanIntEnable \ + ROM_FanIntEnable +#else +#define MAP_FanIntEnable \ + FanIntEnable +#endif +#ifdef ROM_FanIntStatus +#define MAP_FanIntStatus \ + ROM_FanIntStatus +#else +#define MAP_FanIntStatus \ + FanIntStatus +#endif //***************************************************************************** // @@ -769,6 +936,75 @@ 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. @@ -977,6 +1213,76 @@ #define MAP_GPIOPinTypeUSBAnalog \ GPIOPinTypeUSBAnalog #endif +#ifdef ROM_GPIOPinTypeEPI +#define MAP_GPIOPinTypeEPI \ + ROM_GPIOPinTypeEPI +#else +#define MAP_GPIOPinTypeEPI \ + GPIOPinTypeEPI +#endif +#ifdef ROM_GPIOPinTypeEthernetMII +#define MAP_GPIOPinTypeEthernetMII \ + ROM_GPIOPinTypeEthernetMII +#else +#define MAP_GPIOPinTypeEthernetMII \ + GPIOPinTypeEthernetMII +#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_GPIOPinTypeFan +#define MAP_GPIOPinTypeFan \ + ROM_GPIOPinTypeFan +#else +#define MAP_GPIOPinTypeFan \ + GPIOPinTypeFan +#endif +#ifdef ROM_GPIOPinTypeLPC +#define MAP_GPIOPinTypeLPC \ + ROM_GPIOPinTypeLPC +#else +#define MAP_GPIOPinTypeLPC \ + GPIOPinTypeLPC +#endif +#ifdef ROM_GPIOPinTypePECIRx +#define MAP_GPIOPinTypePECIRx \ + ROM_GPIOPinTypePECIRx +#else +#define MAP_GPIOPinTypePECIRx \ + GPIOPinTypePECIRx +#endif +#ifdef ROM_GPIOPinTypePECITx +#define MAP_GPIOPinTypePECITx \ + ROM_GPIOPinTypePECITx +#else +#define MAP_GPIOPinTypePECITx \ + GPIOPinTypePECITx +#endif //***************************************************************************** // @@ -1158,6 +1464,48 @@ #define MAP_HibernateIsActive \ HibernateIsActive #endif +#ifdef ROM_HibernateRTCSSMatch0Set +#define MAP_HibernateRTCSSMatch0Set \ + ROM_HibernateRTCSSMatch0Set +#else +#define MAP_HibernateRTCSSMatch0Set \ + HibernateRTCSSMatch0Set +#endif +#ifdef ROM_HibernateRTCSSMatch0Get +#define MAP_HibernateRTCSSMatch0Get \ + ROM_HibernateRTCSSMatch0Get +#else +#define MAP_HibernateRTCSSMatch0Get \ + HibernateRTCSSMatch0Get +#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 //***************************************************************************** // @@ -1360,6 +1708,69 @@ #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 //***************************************************************************** // @@ -1610,6 +2021,285 @@ #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 + +//***************************************************************************** +// +// Macros for the LPC API. +// +//***************************************************************************** +#ifdef ROM_LPCIntClear +#define MAP_LPCIntClear \ + ROM_LPCIntClear +#else +#define MAP_LPCIntClear \ + LPCIntClear +#endif +#ifdef ROM_LPCByteRead +#define MAP_LPCByteRead \ + ROM_LPCByteRead +#else +#define MAP_LPCByteRead \ + LPCByteRead +#endif +#ifdef ROM_LPCByteWrite +#define MAP_LPCByteWrite \ + ROM_LPCByteWrite +#else +#define MAP_LPCByteWrite \ + LPCByteWrite +#endif +#ifdef ROM_LPCChannelConfigCOMxSet +#define MAP_LPCChannelConfigCOMxSet \ + ROM_LPCChannelConfigCOMxSet +#else +#define MAP_LPCChannelConfigCOMxSet \ + LPCChannelConfigCOMxSet +#endif +#ifdef ROM_LPCChannelConfigGet +#define MAP_LPCChannelConfigGet \ + ROM_LPCChannelConfigGet +#else +#define MAP_LPCChannelConfigGet \ + LPCChannelConfigGet +#endif +#ifdef ROM_LPCChannelConfigEPSet +#define MAP_LPCChannelConfigEPSet \ + ROM_LPCChannelConfigEPSet +#else +#define MAP_LPCChannelConfigEPSet \ + LPCChannelConfigEPSet +#endif +#ifdef ROM_LPCChannelConfigMBSet +#define MAP_LPCChannelConfigMBSet \ + ROM_LPCChannelConfigMBSet +#else +#define MAP_LPCChannelConfigMBSet \ + LPCChannelConfigMBSet +#endif +#ifdef ROM_LPCChannelDMAConfigGet +#define MAP_LPCChannelDMAConfigGet \ + ROM_LPCChannelDMAConfigGet +#else +#define MAP_LPCChannelDMAConfigGet \ + LPCChannelDMAConfigGet +#endif +#ifdef ROM_LPCChannelDMAConfigSet +#define MAP_LPCChannelDMAConfigSet \ + ROM_LPCChannelDMAConfigSet +#else +#define MAP_LPCChannelDMAConfigSet \ + LPCChannelDMAConfigSet +#endif +#ifdef ROM_LPCChannelDisable +#define MAP_LPCChannelDisable \ + ROM_LPCChannelDisable +#else +#define MAP_LPCChannelDisable \ + LPCChannelDisable +#endif +#ifdef ROM_LPCChannelEnable +#define MAP_LPCChannelEnable \ + ROM_LPCChannelEnable +#else +#define MAP_LPCChannelEnable \ + LPCChannelEnable +#endif +#ifdef ROM_LPCChannelStatusClear +#define MAP_LPCChannelStatusClear \ + ROM_LPCChannelStatusClear +#else +#define MAP_LPCChannelStatusClear \ + LPCChannelStatusClear +#endif +#ifdef ROM_LPCChannelStatusGet +#define MAP_LPCChannelStatusGet \ + ROM_LPCChannelStatusGet +#else +#define MAP_LPCChannelStatusGet \ + LPCChannelStatusGet +#endif +#ifdef ROM_LPCChannelStatusSet +#define MAP_LPCChannelStatusSet \ + ROM_LPCChannelStatusSet +#else +#define MAP_LPCChannelStatusSet \ + LPCChannelStatusSet +#endif +#ifdef ROM_LPCCOMxIntClear +#define MAP_LPCCOMxIntClear \ + ROM_LPCCOMxIntClear +#else +#define MAP_LPCCOMxIntClear \ + LPCCOMxIntClear +#endif +#ifdef ROM_LPCCOMxIntDisable +#define MAP_LPCCOMxIntDisable \ + ROM_LPCCOMxIntDisable +#else +#define MAP_LPCCOMxIntDisable \ + LPCCOMxIntDisable +#endif +#ifdef ROM_LPCCOMxIntEnable +#define MAP_LPCCOMxIntEnable \ + ROM_LPCCOMxIntEnable +#else +#define MAP_LPCCOMxIntEnable \ + LPCCOMxIntEnable +#endif +#ifdef ROM_LPCCOMxIntStatus +#define MAP_LPCCOMxIntStatus \ + ROM_LPCCOMxIntStatus +#else +#define MAP_LPCCOMxIntStatus \ + LPCCOMxIntStatus +#endif +#ifdef ROM_LPCConfigGet +#define MAP_LPCConfigGet \ + ROM_LPCConfigGet +#else +#define MAP_LPCConfigGet \ + LPCConfigGet +#endif +#ifdef ROM_LPCConfigSet +#define MAP_LPCConfigSet \ + ROM_LPCConfigSet +#else +#define MAP_LPCConfigSet \ + LPCConfigSet +#endif +#ifdef ROM_LPCHalfWordRead +#define MAP_LPCHalfWordRead \ + ROM_LPCHalfWordRead +#else +#define MAP_LPCHalfWordRead \ + LPCHalfWordRead +#endif +#ifdef ROM_LPCHalfWordWrite +#define MAP_LPCHalfWordWrite \ + ROM_LPCHalfWordWrite +#else +#define MAP_LPCHalfWordWrite \ + LPCHalfWordWrite +#endif +#ifdef ROM_LPCIRQClear +#define MAP_LPCIRQClear \ + ROM_LPCIRQClear +#else +#define MAP_LPCIRQClear \ + LPCIRQClear +#endif +#ifdef ROM_LPCIRQConfig +#define MAP_LPCIRQConfig \ + ROM_LPCIRQConfig +#else +#define MAP_LPCIRQConfig \ + LPCIRQConfig +#endif +#ifdef ROM_LPCIRQGet +#define MAP_LPCIRQGet \ + ROM_LPCIRQGet +#else +#define MAP_LPCIRQGet \ + LPCIRQGet +#endif +#ifdef ROM_LPCIRQSend +#define MAP_LPCIRQSend \ + ROM_LPCIRQSend +#else +#define MAP_LPCIRQSend \ + LPCIRQSend +#endif +#ifdef ROM_LPCIRQSet +#define MAP_LPCIRQSet \ + ROM_LPCIRQSet +#else +#define MAP_LPCIRQSet \ + LPCIRQSet +#endif +#ifdef ROM_LPCIntDisable +#define MAP_LPCIntDisable \ + ROM_LPCIntDisable +#else +#define MAP_LPCIntDisable \ + LPCIntDisable +#endif +#ifdef ROM_LPCIntEnable +#define MAP_LPCIntEnable \ + ROM_LPCIntEnable +#else +#define MAP_LPCIntEnable \ + LPCIntEnable +#endif +#ifdef ROM_LPCIntStatus +#define MAP_LPCIntStatus \ + ROM_LPCIntStatus +#else +#define MAP_LPCIntStatus \ + LPCIntStatus +#endif +#ifdef ROM_LPCSCIAssert +#define MAP_LPCSCIAssert \ + ROM_LPCSCIAssert +#else +#define MAP_LPCSCIAssert \ + LPCSCIAssert +#endif +#ifdef ROM_LPCStatusGet +#define MAP_LPCStatusGet \ + ROM_LPCStatusGet +#else +#define MAP_LPCStatusGet \ + LPCStatusGet +#endif +#ifdef ROM_LPCWordRead +#define MAP_LPCWordRead \ + ROM_LPCWordRead +#else +#define MAP_LPCWordRead \ + LPCWordRead +#endif +#ifdef ROM_LPCWordWrite +#define MAP_LPCWordWrite \ + ROM_LPCWordWrite +#else +#define MAP_LPCWordWrite \ + LPCWordWrite +#endif +#ifdef ROM_LPCChannelPoolAddressGet +#define MAP_LPCChannelPoolAddressGet \ + ROM_LPCChannelPoolAddressGet +#else +#define MAP_LPCChannelPoolAddressGet \ + LPCChannelPoolAddressGet +#endif +#ifdef ROM_LPCStatusBlockAddressGet +#define MAP_LPCStatusBlockAddressGet \ + ROM_LPCStatusBlockAddressGet +#else +#define MAP_LPCStatusBlockAddressGet \ + LPCStatusBlockAddressGet +#endif +#ifdef ROM_LPCStatusBlockAddressSet +#define MAP_LPCStatusBlockAddressSet \ + ROM_LPCStatusBlockAddressSet +#else +#define MAP_LPCStatusBlockAddressSet \ + LPCStatusBlockAddressSet +#endif //***************************************************************************** // @@ -1666,6 +2356,145 @@ MPURegionGet #endif +//***************************************************************************** +// +// Macros for the PECI API. +// +//***************************************************************************** +#ifdef ROM_PECIIntClear +#define MAP_PECIIntClear \ + ROM_PECIIntClear +#else +#define MAP_PECIIntClear \ + PECIIntClear +#endif +#ifdef ROM_PECIAdvCmdSend +#define MAP_PECIAdvCmdSend \ + ROM_PECIAdvCmdSend +#else +#define MAP_PECIAdvCmdSend \ + PECIAdvCmdSend +#endif +#ifdef ROM_PECIAdvCmdSendNonBlocking +#define MAP_PECIAdvCmdSendNonBlocking \ + ROM_PECIAdvCmdSendNonBlocking +#else +#define MAP_PECIAdvCmdSendNonBlocking \ + PECIAdvCmdSendNonBlocking +#endif +#ifdef ROM_PECIAdvCmdStatusGet +#define MAP_PECIAdvCmdStatusGet \ + ROM_PECIAdvCmdStatusGet +#else +#define MAP_PECIAdvCmdStatusGet \ + PECIAdvCmdStatusGet +#endif +#ifdef ROM_PECIConfigGet +#define MAP_PECIConfigGet \ + ROM_PECIConfigGet +#else +#define MAP_PECIConfigGet \ + PECIConfigGet +#endif +#ifdef ROM_PECIConfigSet +#define MAP_PECIConfigSet \ + ROM_PECIConfigSet +#else +#define MAP_PECIConfigSet \ + PECIConfigSet +#endif +#ifdef ROM_PECIDomainMaxReadClear +#define MAP_PECIDomainMaxReadClear \ + ROM_PECIDomainMaxReadClear +#else +#define MAP_PECIDomainMaxReadClear \ + PECIDomainMaxReadClear +#endif +#ifdef ROM_PECIDomainValueClear +#define MAP_PECIDomainValueClear \ + ROM_PECIDomainValueClear +#else +#define MAP_PECIDomainValueClear \ + PECIDomainValueClear +#endif +#ifdef ROM_PECIDomainConfigGet +#define MAP_PECIDomainConfigGet \ + ROM_PECIDomainConfigGet +#else +#define MAP_PECIDomainConfigGet \ + PECIDomainConfigGet +#endif +#ifdef ROM_PECIDomainConfigSet +#define MAP_PECIDomainConfigSet \ + ROM_PECIDomainConfigSet +#else +#define MAP_PECIDomainConfigSet \ + PECIDomainConfigSet +#endif +#ifdef ROM_PECIDomainDisable +#define MAP_PECIDomainDisable \ + ROM_PECIDomainDisable +#else +#define MAP_PECIDomainDisable \ + PECIDomainDisable +#endif +#ifdef ROM_PECIDomainEnable +#define MAP_PECIDomainEnable \ + ROM_PECIDomainEnable +#else +#define MAP_PECIDomainEnable \ + PECIDomainEnable +#endif +#ifdef ROM_PECIDomainMaxReadGet +#define MAP_PECIDomainMaxReadGet \ + ROM_PECIDomainMaxReadGet +#else +#define MAP_PECIDomainMaxReadGet \ + PECIDomainMaxReadGet +#endif +#ifdef ROM_PECIDomainValueGet +#define MAP_PECIDomainValueGet \ + ROM_PECIDomainValueGet +#else +#define MAP_PECIDomainValueGet \ + PECIDomainValueGet +#endif +#ifdef ROM_PECIIntDisable +#define MAP_PECIIntDisable \ + ROM_PECIIntDisable +#else +#define MAP_PECIIntDisable \ + PECIIntDisable +#endif +#ifdef ROM_PECIIntEnable +#define MAP_PECIIntEnable \ + ROM_PECIIntEnable +#else +#define MAP_PECIIntEnable \ + PECIIntEnable +#endif +#ifdef ROM_PECIIntStatus +#define MAP_PECIIntStatus \ + ROM_PECIIntStatus +#else +#define MAP_PECIIntStatus \ + PECIIntStatus +#endif +#ifdef ROM_PECIBypassEnable +#define MAP_PECIBypassEnable \ + ROM_PECIBypassEnable +#else +#define MAP_PECIBypassEnable \ + PECIBypassEnable +#endif +#ifdef ROM_PECIBypassDisable +#define MAP_PECIBypassDisable \ + ROM_PECIBypassDisable +#else +#define MAP_PECIBypassDisable \ + PECIBypassDisable +#endif + //***************************************************************************** // // Macros for the PWM API. @@ -1986,6 +2815,390 @@ QEIIntClear #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_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 + //***************************************************************************** // // Macros for the SSI API. @@ -2089,6 +3302,20 @@ #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 //***************************************************************************** // @@ -2340,6 +3567,82 @@ #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 + +//***************************************************************************** +// +// 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 //***************************************************************************** // @@ -2485,6 +3788,20 @@ #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 @@ -2541,6 +3858,48 @@ #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 //***************************************************************************** // @@ -2757,6 +4116,48 @@ #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 //***************************************************************************** // @@ -2896,6 +4297,41 @@ #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 //***************************************************************************** // @@ -3056,13 +4492,6 @@ #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 @@ -3287,6 +4716,34 @@ #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 //***************************************************************************** // @@ -3398,6 +4855,13 @@ #define MAP_WatchdogStallDisable \ WatchdogStallDisable #endif +#ifdef ROM_WatchdogIntTypeSet +#define MAP_WatchdogIntTypeSet \ + ROM_WatchdogIntTypeSet +#else +#define MAP_WatchdogIntTypeSet \ + WatchdogIntTypeSet +#endif //***************************************************************************** // diff --git a/bsp/lm3s8962/Libraries/driverlib/rvmdk/driverlib.lib b/bsp/lm3s8962/Libraries/driverlib/rvmdk/driverlib.lib deleted file mode 100644 index 0b6f9f04c1fb41b96ec268235c5ba5d0e0bdea17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1759182 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 z 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

r}lFXOe3t8Fw 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

_+o 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

x?=K5{V5mLH4}+rPUFCKr}$|H)io1IGdy+4 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'U%7NNiGc+*Pv$gMUsXr;}a{O8L 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
 //! Polarity Phase       Mode
@@ -66,26 +143,27 @@
 //! 
//! //! The \e ulMode parameter defines the operating mode of the SSI module. The -//! SSI module can operate as a master or slave; if a slave, the SSI can be -//! configured to disable output on its serial output line. The \e ulMode +//! SSI module can operate as a master or slave; if it is a slave, the SSI can +//! be configured to disable output on its serial output line. The \e ulMode //! parameter can be one of the following values: \b SSI_MODE_MASTER, //! \b SSI_MODE_SLAVE, or \b SSI_MODE_SLAVE_OD. //! //! The \e ulBitRate parameter defines the bit rate for the SSI. This bit rate //! must satisfy the following clock ratio criteria: //! -//! - FSSI >= 2 * bit rate (master mode) -//! - FSSI >= 12 * bit rate (slave modes) +//! - FSSI >= 2 * bit rate (master mode); this speed cannot exceed 25 MHz. +//! - FSSI >= 12 * bit rate or 6 * bit rate (slave modes), depending on the +//! capability of the specific microcontroller //! //! where FSSI is the frequency of the clock supplied to the SSI module. //! -//! The \e ulDataWidth parameter defines the width of the data transfers, and +//! The \e ulDataWidth parameter defines the width of the data transfers and //! can be a value between 4 and 16, inclusive. //! -//! The peripheral clock will be the same as the processor clock. This will be -//! the value returned by SysCtlClockGet(), or it can be explicitly hard coded -//! if it is constant and known (to save the code/execution overhead of a call -//! to SysCtlClockGet()). +//! The peripheral clock is the same as the processor clock. This value is +//! returned by SysCtlClockGet(), or it can be explicitly hard coded if it is +//! constant and known (to save the code/execution overhead of a call to +//! SysCtlClockGet()). //! //! This function replaces the original SSIConfig() API and performs the same //! actions. A macro is provided in ssi.h to map the original API to @@ -108,7 +186,7 @@ SSIConfigSetExpClk(unsigned long ulBase, unsigned long ulSSIClk, // // Check the arguments. // - ASSERT((ulBase == SSI0_BASE) || (ulBase == SSI1_BASE)); + ASSERT(SSIBaseValid(ulBase)); ASSERT((ulProtocol == SSI_FRF_MOTO_MODE_0) || (ulProtocol == SSI_FRF_MOTO_MODE_1) || (ulProtocol == SSI_FRF_MOTO_MODE_2) || @@ -170,7 +248,7 @@ SSIEnable(unsigned long ulBase) // // Check the arguments. // - ASSERT((ulBase == SSI0_BASE) || (ulBase == SSI1_BASE)); + ASSERT(SSIBaseValid(ulBase)); // // Read-modify-write the enable bit. @@ -195,7 +273,7 @@ SSIDisable(unsigned long ulBase) // // Check the arguments. // - ASSERT((ulBase == SSI0_BASE) || (ulBase == SSI1_BASE)); + ASSERT(SSIBaseValid(ulBase)); // // Read-modify-write the enable bit. @@ -211,11 +289,11 @@ SSIDisable(unsigned long ulBase) //! \param pfnHandler is a pointer to the function to be called when the //! synchronous serial interface interrupt occurs. //! -//! This sets the handler to be called when an SSI interrupt -//! occurs. This will enable the global interrupt in the interrupt controller; -//! specific SSI interrupts must be enabled via SSIIntEnable(). If necessary, -//! it is the interrupt handler's responsibility to clear the interrupt source -//! via SSIIntClear(). +//! This function registers the handler to be called when an SSI interrupt +//! occurs. This function enables the global interrupt in the interrupt +//! controller; specific SSI interrupts must be enabled via SSIIntEnable(). If +//! necessary, it is the interrupt handler's responsibility to clear the +//! interrupt source via SSIIntClear(). //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -231,12 +309,12 @@ SSIIntRegister(unsigned long ulBase, void (*pfnHandler)(void)) // // Check the arguments. // - ASSERT((ulBase == SSI0_BASE) || (ulBase == SSI1_BASE)); + ASSERT(SSIBaseValid(ulBase)); // // Determine the interrupt number based on the SSI port. // - ulInt = (ulBase == SSI0_BASE) ? INT_SSI0 : INT_SSI1; + ulInt = SSIIntNumberGet(ulBase); // // Register the interrupt handler, returning an error if an error occurs. @@ -255,8 +333,8 @@ SSIIntRegister(unsigned long ulBase, void (*pfnHandler)(void)) //! //! \param ulBase specifies the SSI module base address. //! -//! This function will clear the handler to be called when a SSI -//! interrupt occurs. This will also mask off the interrupt in the interrupt +//! This function clears the handler to be called when an SSI interrupt +//! occurs. This function also masks off the interrupt in the interrupt //! controller so that the interrupt handler no longer is called. //! //! \sa IntRegister() for important information about registering interrupt @@ -273,12 +351,12 @@ SSIIntUnregister(unsigned long ulBase) // // Check the arguments. // - ASSERT((ulBase == SSI0_BASE) || (ulBase == SSI1_BASE)); + ASSERT(SSIBaseValid(ulBase)); // // Determine the interrupt number based on the SSI port. // - ulInt = (ulBase == SSI0_BASE) ? INT_SSI0 : INT_SSI1; + ulInt = SSIIntNumberGet(ulBase); // // Disable the interrupt. @@ -298,10 +376,11 @@ SSIIntUnregister(unsigned long ulBase) //! \param ulBase specifies the SSI module base address. //! \param ulIntFlags is a bit mask of the interrupt sources to be enabled. //! -//! Enables the indicated SSI interrupt sources. Only the sources that are -//! enabled can be reflected to the processor interrupt; disabled sources have -//! no effect on the processor. The \e ulIntFlags parameter can be any of the -//! \b SSI_TXFF, \b SSI_RXFF, \b SSI_RXTO, or \b SSI_RXOR values. +//! This function enables the indicated SSI interrupt sources. Only the +//! sources that are enabled can be reflected to the processor interrupt; +//! disabled sources have no effect on the processor. The \e ulIntFlags +//! parameter can be any of the \b SSI_TXFF, \b SSI_RXFF, \b SSI_RXTO, or +//! \b SSI_RXOR values. //! //! \return None. // @@ -312,7 +391,7 @@ SSIIntEnable(unsigned long ulBase, unsigned long ulIntFlags) // // Check the arguments. // - ASSERT((ulBase == SSI0_BASE) || (ulBase == SSI1_BASE)); + ASSERT(SSIBaseValid(ulBase)); // // Enable the specified interrupts. @@ -327,9 +406,9 @@ SSIIntEnable(unsigned long ulBase, unsigned long ulIntFlags) //! \param ulBase specifies the SSI module base address. //! \param ulIntFlags is a bit mask of the interrupt sources to be disabled. //! -//! Disables the indicated SSI interrupt sources. The \e ulIntFlags parameter -//! can be any of the \b SSI_TXFF, \b SSI_RXFF, \b SSI_RXTO, or \b SSI_RXOR -//! values. +//! This function disables the indicated SSI interrupt sources. The +//! \e ulIntFlags parameter can be any of the \b SSI_TXFF, \b SSI_RXFF, +//! \b SSI_RXTO, or \b SSI_RXOR values. //! //! \return None. // @@ -340,7 +419,7 @@ SSIIntDisable(unsigned long ulBase, unsigned long ulIntFlags) // // Check the arguments. // - ASSERT((ulBase == SSI0_BASE) || (ulBase == SSI1_BASE)); + ASSERT(SSIBaseValid(ulBase)); // // Disable the specified interrupts. @@ -370,7 +449,7 @@ SSIIntStatus(unsigned long ulBase, tBoolean bMasked) // // Check the arguments. // - ASSERT((ulBase == SSI0_BASE) || (ulBase == SSI1_BASE)); + ASSERT(SSIBaseValid(ulBase)); // // Return either the interrupt status or the raw interrupt status as @@ -393,20 +472,20 @@ SSIIntStatus(unsigned long ulBase, tBoolean bMasked) //! \param ulBase specifies the SSI module base address. //! \param ulIntFlags is a bit mask of the interrupt sources to be cleared. //! -//! The specified SSI interrupt sources are cleared so that they no longer -//! assert. This function must be called in the interrupt handler to keep the -//! interrupts from being recognized again immediately upon exit. The +//! This function clears the specified SSI interrupt sources so that they no +//! longer assert. This function must be called in the interrupt handler to +//! keep the interrupts from being triggered again immediately upon exit. The //! \e ulIntFlags parameter can consist of either or both the \b SSI_RXTO and //! \b SSI_RXOR values. //! -//! \note Since there is a write buffer in the Cortex-M3 processor, it may take -//! several clock cycles before the interrupt source is actually cleared. +//! \note Because there is a write buffer in the Cortex-M processor, it may +//! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid //! returning from the interrupt handler before the interrupt source is //! actually cleared. Failure to do so may result in the interrupt handler -//! being immediately reentered (since NVIC still sees the interrupt source -//! asserted). +//! being immediately reentered (because the interrupt controller still sees +//! the interrupt source asserted). //! //! \return None. // @@ -417,7 +496,7 @@ SSIIntClear(unsigned long ulBase, unsigned long ulIntFlags) // // Check the arguments. // - ASSERT((ulBase == SSI0_BASE) || (ulBase == SSI1_BASE)); + ASSERT(SSIBaseValid(ulBase)); // // Clear the requested interrupt sources. @@ -449,7 +528,7 @@ SSIDataPut(unsigned long ulBase, unsigned long ulData) // // Check the arguments. // - ASSERT((ulBase == SSI0_BASE) || (ulBase == SSI1_BASE)); + ASSERT(SSIBaseValid(ulBase)); ASSERT((ulData & (0xfffffffe << (HWREG(ulBase + SSI_O_CR0) & SSI_CR0_DSS_M))) == 0); @@ -495,7 +574,7 @@ SSIDataPutNonBlocking(unsigned long ulBase, unsigned long ulData) // // Check the arguments. // - ASSERT((ulBase == SSI0_BASE) || (ulBase == SSI1_BASE)); + ASSERT(SSIBaseValid(ulBase)); ASSERT((ulData & (0xfffffffe << (HWREG(ulBase + SSI_O_CR0) & SSI_CR0_DSS_M))) == 0); @@ -540,7 +619,7 @@ SSIDataGet(unsigned long ulBase, unsigned long *pulData) // // Check the arguments. // - ASSERT((ulBase == SSI0_BASE) || (ulBase == SSI1_BASE)); + ASSERT(SSIBaseValid(ulBase)); // // Wait until there is data to be read. @@ -565,7 +644,7 @@ SSIDataGet(unsigned long ulBase, unsigned long *pulData) //! //! This function gets received data from the receive FIFO of the specified SSI //! module and places that data into the location specified by the \e ulData -//! parameter. If there is no data in the FIFO, then this function returns a +//! parameter. If there is no data in the FIFO, then this function returns a //! zero. //! //! This function replaces the original SSIDataNonBlockingGet() API and @@ -587,7 +666,7 @@ SSIDataGetNonBlocking(unsigned long ulBase, unsigned long *pulData) // // Check the arguments. // - ASSERT((ulBase == SSI0_BASE) || (ulBase == SSI1_BASE)); + ASSERT(SSIBaseValid(ulBase)); // // Check for data to read. @@ -610,7 +689,7 @@ SSIDataGetNonBlocking(unsigned long ulBase, unsigned long *pulData) //! \param ulBase is the base address of the SSI port. //! \param ulDMAFlags is a bit mask of the DMA features to enable. //! -//! The specified SSI DMA features are enabled. The SSI can be +//! This function enables the specified SSI DMA features. The SSI can be //! configured to use DMA for transmit and/or receive data transfers. //! The \e ulDMAFlags parameter is the logical OR of any of the following //! values: @@ -630,10 +709,10 @@ SSIDMAEnable(unsigned long ulBase, unsigned long ulDMAFlags) // // Check the arguments. // - ASSERT((ulBase == SSI0_BASE) || (ulBase == SSI1_BASE)); + ASSERT(SSIBaseValid(ulBase)); // - // Set the requested bits in the UART DMA control register. + // Set the requested bits in the SSI DMA control register. // HWREG(ulBase + SSI_O_DMACTL) |= ulDMAFlags; } @@ -661,10 +740,10 @@ SSIDMADisable(unsigned long ulBase, unsigned long ulDMAFlags) // // Check the arguments. // - ASSERT((ulBase == SSI0_BASE) || (ulBase == SSI1_BASE)); + ASSERT(SSIBaseValid(ulBase)); // - // Clear the requested bits in the UART DMA control register. + // Clear the requested bits in the SSI DMA control register. // HWREG(ulBase + SSI_O_DMACTL) &= ~ulDMAFlags; } @@ -675,10 +754,10 @@ SSIDMADisable(unsigned long ulBase, unsigned long ulDMAFlags) //! //! \param ulBase is the base address of the SSI port. //! -//! Allows the caller to determine whether all transmitted bytes have cleared -//! the transmitter hardware. If \b false is returned, then the transmit FIFO -//! is empty and all bits of the last transmitted word have left the hardware -//! shift register. +//! This function allows the caller to determine whether all transmitted bytes +//! have cleared the transmitter hardware. If \b false is returned, then the +//! transmit FIFO is empty and all bits of the last transmitted word have left +//! the hardware shift register. //! //! \return Returns \b true if the SSI is transmitting or \b false if all //! transmissions are complete. @@ -690,7 +769,7 @@ SSIBusy(unsigned long ulBase) // // Check the arguments. // - ASSERT((ulBase == SSI0_BASE) || (ulBase == SSI1_BASE)); + ASSERT(SSIBaseValid(ulBase)); // // Determine if the SSI is busy. @@ -698,6 +777,74 @@ SSIBusy(unsigned long ulBase) return((HWREG(ulBase + SSI_O_SR) & SSI_SR_BSY) ? true : false); } +//***************************************************************************** +// +//! Sets the data clock source for the specified SSI peripheral. +//! +//! \param ulBase is the base address of the SSI port. +//! \param ulSource is the baud clock source for the SSI. +//! +//! This function allows the baud clock source for the SSI to be selected. +//! The possible clock source are the system clock (\b SSI_CLOCK_SYSTEM) or +//! the precision internal oscillator (\b SSI_CLOCK_PIOSC). +//! +//! Changing the baud clock source changes the data rate generated by the +//! SSI. Therefore, the data rate should be reconfigured after any change to +//! the SSI clock source. +//! +//! \note The ability to specify the SSI baud clock source varies with the +//! Stellaris part and SSI in use. Please consult the data sheet for the part +//! you are using to determine whether this support is available. +//! +//! \return None. +// +//***************************************************************************** +void +SSIClockSourceSet(unsigned long ulBase, unsigned long ulSource) +{ + // + // Check the arguments. + // + ASSERT(SSIBaseValid(ulBase)); + ASSERT((ulSource == SSI_CLOCK_SYSTEM) || (ulSource == SSI_CLOCK_PIOSC)); + + // + // Set the SSI clock source. + // + HWREG(ulBase + SSI_O_CC) = ulSource; +} + +//***************************************************************************** +// +//! Gets the data clock source for the specified SSI peripheral. +//! +//! \param ulBase is the base address of the SSI port. +//! +//! This function returns the data clock source for the specified SSI. The +//! possible data clock source are the system clock (\b SSI_CLOCK_SYSTEM) or +//! the precision internal oscillator (\b SSI_CLOCK_PIOSC). +//! +//! \note The ability to specify the SSI data clock source varies with the +//! Stellaris part and SSI in use. Please consult the data sheet for the part +//! you are using to determine whether this support is available. +//! +//! \return None. +// +//***************************************************************************** +unsigned long +SSIClockSourceGet(unsigned long ulBase) +{ + // + // Check the arguments. + // + ASSERT(SSIBaseValid(ulBase)); + + // + // Return the SSI clock source. + // + return(HWREG(ulBase + SSI_O_CC)); +} + //***************************************************************************** // // Close the Doxygen group. diff --git a/bsp/lm3s8962/Libraries/driverlib/ssi.h b/bsp/lm3s8962/Libraries/driverlib/ssi.h index 6f409224cd..b0cfd1ec5b 100644 --- a/bsp/lm3s8962/Libraries/driverlib/ssi.h +++ b/bsp/lm3s8962/Libraries/driverlib/ssi.h @@ -2,7 +2,7 @@ // // ssi.h - Prototypes for the Synchronous Serial Interface Driver. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -71,6 +71,15 @@ extern "C" #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 0x00000001 + //***************************************************************************** // // Prototypes for the APIs. @@ -96,6 +105,8 @@ extern void SSIIntUnregister(unsigned long ulBase); extern void SSIDMAEnable(unsigned long ulBase, unsigned long ulDMAFlags); extern void SSIDMADisable(unsigned long ulBase, unsigned long ulDMAFlags); extern tBoolean SSIBusy(unsigned long ulBase); +extern void SSIClockSourceSet(unsigned long ulBase, unsigned long ulSource); +extern unsigned long SSIClockSourceGet(unsigned long ulBase); //***************************************************************************** // diff --git a/bsp/lm3s8962/Libraries/driverlib/sysctl.c b/bsp/lm3s8962/Libraries/driverlib/sysctl.c index a0d37d1eb9..43755758e4 100644 --- a/bsp/lm3s8962/Libraries/driverlib/sysctl.c +++ b/bsp/lm3s8962/Libraries/driverlib/sysctl.c @@ -2,7 +2,7 @@ // // sysctl.c - Driver for the system controller. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -152,9 +152,26 @@ static const unsigned long g_pulXtals[] = 13560000, 14318180, 16000000, - 16384000 + 16384000, + 18000000, + 20000000, + 24000000, + 25000000 }; +//***************************************************************************** +// +// The base addresses of the various peripheral control registers. +// +//***************************************************************************** +#define SYSCTL_PPBASE 0x400fe300 +#define SYSCTL_SRBASE 0x400fe500 +#define SYSCTL_RCGCBASE 0x400fe600 +#define SYSCTL_SCGCBASE 0x400fe700 +#define SYSCTL_DCGCBASE 0x400fe800 +#define SYSCTL_PCBASE 0x400fe900 +#define SYSCTL_PRBASE 0x400fea00 + //***************************************************************************** // //! \internal @@ -180,8 +197,10 @@ SysCtlPeripheralValid(unsigned long ulPeripheral) (ulPeripheral == SYSCTL_PERIPH_COMP0) || (ulPeripheral == SYSCTL_PERIPH_COMP1) || (ulPeripheral == SYSCTL_PERIPH_COMP2) || + (ulPeripheral == SYSCTL_PERIPH_EEPROM0) || (ulPeripheral == SYSCTL_PERIPH_EPI0) || (ulPeripheral == SYSCTL_PERIPH_ETH) || + (ulPeripheral == SYSCTL_PERIPH_FAN0) || (ulPeripheral == SYSCTL_PERIPH_GPIOA) || (ulPeripheral == SYSCTL_PERIPH_GPIOB) || (ulPeripheral == SYSCTL_PERIPH_GPIOC) || @@ -191,33 +210,143 @@ SysCtlPeripheralValid(unsigned long ulPeripheral) (ulPeripheral == SYSCTL_PERIPH_GPIOG) || (ulPeripheral == SYSCTL_PERIPH_GPIOH) || (ulPeripheral == SYSCTL_PERIPH_GPIOJ) || + (ulPeripheral == SYSCTL_PERIPH_GPIOK) || + (ulPeripheral == SYSCTL_PERIPH_GPIOL) || + (ulPeripheral == SYSCTL_PERIPH_GPIOM) || + (ulPeripheral == SYSCTL_PERIPH_GPION) || + (ulPeripheral == SYSCTL_PERIPH_GPIOP) || + (ulPeripheral == SYSCTL_PERIPH_GPIOQ) || (ulPeripheral == SYSCTL_PERIPH_HIBERNATE) || (ulPeripheral == SYSCTL_PERIPH_I2C0) || (ulPeripheral == SYSCTL_PERIPH_I2C1) || + (ulPeripheral == SYSCTL_PERIPH_I2C2) || + (ulPeripheral == SYSCTL_PERIPH_I2C3) || + (ulPeripheral == SYSCTL_PERIPH_I2C4) || + (ulPeripheral == SYSCTL_PERIPH_I2C5) || (ulPeripheral == SYSCTL_PERIPH_I2S0) || (ulPeripheral == SYSCTL_PERIPH_IEEE1588) || + (ulPeripheral == SYSCTL_PERIPH_LPC0) || (ulPeripheral == SYSCTL_PERIPH_MPU) || + (ulPeripheral == SYSCTL_PERIPH_PECI0) || (ulPeripheral == SYSCTL_PERIPH_PLL) || - (ulPeripheral == SYSCTL_PERIPH_PWM) || + (ulPeripheral == SYSCTL_PERIPH_PWM0) || + (ulPeripheral == SYSCTL_PERIPH_PWM1) || (ulPeripheral == SYSCTL_PERIPH_QEI0) || (ulPeripheral == SYSCTL_PERIPH_QEI1) || (ulPeripheral == SYSCTL_PERIPH_SSI0) || (ulPeripheral == SYSCTL_PERIPH_SSI1) || + (ulPeripheral == SYSCTL_PERIPH_SSI2) || + (ulPeripheral == SYSCTL_PERIPH_SSI3) || (ulPeripheral == SYSCTL_PERIPH_TEMP) || (ulPeripheral == SYSCTL_PERIPH_TIMER0) || (ulPeripheral == SYSCTL_PERIPH_TIMER1) || (ulPeripheral == SYSCTL_PERIPH_TIMER2) || (ulPeripheral == SYSCTL_PERIPH_TIMER3) || + (ulPeripheral == SYSCTL_PERIPH_TIMER4) || + (ulPeripheral == SYSCTL_PERIPH_TIMER5) || (ulPeripheral == SYSCTL_PERIPH_UART0) || (ulPeripheral == SYSCTL_PERIPH_UART1) || (ulPeripheral == SYSCTL_PERIPH_UART2) || + (ulPeripheral == SYSCTL_PERIPH_UART3) || + (ulPeripheral == SYSCTL_PERIPH_UART4) || + (ulPeripheral == SYSCTL_PERIPH_UART5) || + (ulPeripheral == SYSCTL_PERIPH_UART6) || + (ulPeripheral == SYSCTL_PERIPH_UART7) || (ulPeripheral == SYSCTL_PERIPH_UDMA) || (ulPeripheral == SYSCTL_PERIPH_USB0) || (ulPeripheral == SYSCTL_PERIPH_WDOG0) || - (ulPeripheral == SYSCTL_PERIPH_WDOG1)); + (ulPeripheral == SYSCTL_PERIPH_WDOG1) || + (ulPeripheral == SYSCTL_PERIPH_WTIMER0) || + (ulPeripheral == SYSCTL_PERIPH_WTIMER1) || + (ulPeripheral == SYSCTL_PERIPH_WTIMER2) || + (ulPeripheral == SYSCTL_PERIPH_WTIMER3) || + (ulPeripheral == SYSCTL_PERIPH_WTIMER4) || + (ulPeripheral == SYSCTL_PERIPH_WTIMER5)); } #endif +//***************************************************************************** +// +// A map of old peripheral defines to new peripheral defines. Note that the +// new peripheral defines will not work on parts that precede Blizzard class. +// +//***************************************************************************** +static const unsigned long g_ppulPeripheralMap[][2] = +{ + { SYSCTL_PERIPH_ADC0, SYSCTL_PERIPH2_ADC0 }, + { SYSCTL_PERIPH_ADC1, SYSCTL_PERIPH2_ADC1 }, + { SYSCTL_PERIPH_CAN0, SYSCTL_PERIPH2_CAN0 }, + { SYSCTL_PERIPH_CAN1, SYSCTL_PERIPH2_CAN1 }, + { SYSCTL_PERIPH_CAN2, SYSCTL_PERIPH2_CAN2 }, + { SYSCTL_PERIPH_COMP0, SYSCTL_PERIPH2_COMP0 }, + { SYSCTL_PERIPH_COMP1, SYSCTL_PERIPH2_COMP0 }, + { SYSCTL_PERIPH_COMP2, SYSCTL_PERIPH2_COMP0 }, + { SYSCTL_PERIPH_GPIOA, SYSCTL_PERIPH2_GPIOA }, + { SYSCTL_PERIPH_GPIOB, SYSCTL_PERIPH2_GPIOB }, + { SYSCTL_PERIPH_GPIOC, SYSCTL_PERIPH2_GPIOC }, + { SYSCTL_PERIPH_GPIOD, SYSCTL_PERIPH2_GPIOD }, + { SYSCTL_PERIPH_GPIOE, SYSCTL_PERIPH2_GPIOE }, + { SYSCTL_PERIPH_GPIOF, SYSCTL_PERIPH2_GPIOF }, + { SYSCTL_PERIPH_GPIOG, SYSCTL_PERIPH2_GPIOG }, + { SYSCTL_PERIPH_GPIOH, SYSCTL_PERIPH2_GPIOH }, + { SYSCTL_PERIPH_GPIOJ, SYSCTL_PERIPH2_GPIOJ }, + { SYSCTL_PERIPH_I2C0, SYSCTL_PERIPH2_I2C0 }, + { SYSCTL_PERIPH_I2C1, SYSCTL_PERIPH2_I2C1 }, + { SYSCTL_PERIPH_PWM0, SYSCTL_PERIPH2_PWM0 }, + { SYSCTL_PERIPH_QEI0, SYSCTL_PERIPH2_QEI0 }, + { SYSCTL_PERIPH_QEI1, SYSCTL_PERIPH2_QEI1 }, + { SYSCTL_PERIPH_SSI0, SYSCTL_PERIPH2_SSI0 }, + { SYSCTL_PERIPH_SSI1, SYSCTL_PERIPH2_SSI1 }, + { SYSCTL_PERIPH_TIMER0, SYSCTL_PERIPH2_TIMER0 }, + { SYSCTL_PERIPH_TIMER1, SYSCTL_PERIPH2_TIMER1 }, + { SYSCTL_PERIPH_TIMER2, SYSCTL_PERIPH2_TIMER2 }, + { SYSCTL_PERIPH_TIMER3, SYSCTL_PERIPH2_TIMER3 }, + { SYSCTL_PERIPH_UART0, SYSCTL_PERIPH2_UART0 }, + { SYSCTL_PERIPH_UART1, SYSCTL_PERIPH2_UART1 }, + { SYSCTL_PERIPH_UART2, SYSCTL_PERIPH2_UART2 }, + { SYSCTL_PERIPH_UDMA, SYSCTL_PERIPH2_UDMA }, + { SYSCTL_PERIPH_USB0, SYSCTL_PERIPH2_USB0 }, + { SYSCTL_PERIPH_WDOG0, SYSCTL_PERIPH2_WDOG0 }, + { SYSCTL_PERIPH_WDOG1, SYSCTL_PERIPH2_WDOG1 }, +}; + +//***************************************************************************** +// +// Maps a SYSCTL_PERIPH_foo identifier into its new-style SYSCTL_PERIPH2_foo +// identifier. +// +//***************************************************************************** +static unsigned long +SysCtlPeripheralMapToNew(unsigned long ulPeripheral) +{ + unsigned long ulIndex; + + // + // Loop throug the table of old-style identifiers. + // + for(ulIndex = 0; ulIndex < (sizeof(g_ppulPeripheralMap) / + sizeof(g_ppulPeripheralMap[0])); ulIndex++) + { + // + // See if this peripheral matches the old-style identifer. + // + if(g_ppulPeripheralMap[ulIndex][0] == ulPeripheral) + { + // + // Return the new-style identifier that corresponds to this + // peripheral. + // + return(g_ppulPeripheralMap[ulIndex][1]); + } + } + + // + // No old-style identifier was found, so return the identifier unchanged + // (on the assumption that it is already a new-style identifier). + // + return(ulPeripheral); +} + //***************************************************************************** // //! Gets the size of the SRAM. @@ -260,10 +389,10 @@ SysCtlFlashSizeGet(void) //! //! \param ulPin is the pin in question. //! -//! Determines if a particular pin is present in the device. The PWM, analog -//! comparators, ADC, and timers have a varying number of pins across members -//! of the Stellaris family; this will determine which are present on this -//! device. +//! This function determines if a particular pin is present in the device. The +//! PWM, analog comparators, ADC, and timers have a varying number of pins +//! across members of the Stellaris family; this function determines which pins +//! are present on this device. //! //! The \e ulPin argument must be only one of the following values: //! \b SYSCTL_PIN_PWM0, \b SYSCTL_PIN_PWM1, \b SYSCTL_PIN_PWM2, @@ -339,26 +468,36 @@ SysCtlPinPresent(unsigned long ulPin) //! //! \param ulPeripheral is the peripheral in question. //! -//! Determines if a particular peripheral is present in the device. Each -//! member of the Stellaris family has a different peripheral set; this will -//! determine which are present on this device. +//! This function determines if a particular peripheral is present in the +//! device. Each member of the Stellaris family has a different peripheral +//! set; this function determines which peripherals are present on this device. //! //! The \e ulPeripheral parameter must be only one of the following values: //! \b SYSCTL_PERIPH_ADC0, \b SYSCTL_PERIPH_ADC1, \b SYSCTL_PERIPH_CAN0, //! \b SYSCTL_PERIPH_CAN1, \b SYSCTL_PERIPH_CAN2, \b SYSCTL_PERIPH_COMP0, //! \b SYSCTL_PERIPH_COMP1, \b SYSCTL_PERIPH_COMP2, \b SYSCTL_PERIPH_EPI0, -//! \b SYSCTL_PERIPH_ETH, \b SYSCTL_PERIPH_GPIOA, \b SYSCTL_PERIPH_GPIOB, -//! \b SYSCTL_PERIPH_GPIOC, \b SYSCTL_PERIPH_GPIOD, \b SYSCTL_PERIPH_GPIOE, -//! \b SYSCTL_PERIPH_GPIOF, \b SYSCTL_PERIPH_GPIOG, \b SYSCTL_PERIPH_GPIOH, -//! \b SYSCTL_PERIPH_GPIOJ, \b SYSCTL_PERIPH_HIBERNATE, \b SYSCTL_PERIPH_I2C0, -//! \b SYSCTL_PERIPH_I2C1, \b SYSCTL_PERIPH_I2S0, \b SYSCTL_PERIPH_IEEE1588, -//! \b SYSCTL_PERIPH_MPU, \b SYSCTL_PERIPH_PLL, \b SYSCTL_PERIPH_PWM, -//! \b SYSCTL_PERIPH_QEI0, \b SYSCTL_PERIPH_QEI1, \b SYSCTL_PERIPH_SSI0, -//! \b SYSCTL_PERIPH_SSI1, \b SYSCTL_PERIPH_TIMER0, \b SYSCTL_PERIPH_TIMER1, -//! \b SYSCTL_PERIPH_TIMER2, \b SYSCTL_PERIPH_TIMER3, \b SYSCTL_PERIPH_TEMP, +//! \b SYSCTL_PERIPH_ETH, \b SYSCTL_PERIPH_FAN0, \b SYSCTL_PERIPH_GPIOA, +//! \b SYSCTL_PERIPH_GPIOB, \b SYSCTL_PERIPH_GPIOC, \b SYSCTL_PERIPH_GPIOD, +//! \b SYSCTL_PERIPH_GPIOE, \b SYSCTL_PERIPH_GPIOF, \b SYSCTL_PERIPH_GPIOG, +//! \b SYSCTL_PERIPH_GPIOH, \b SYSCTL_PERIPH_GPIOJ, \b SYSCTL_PERIPH_GPIOK, +//! \b SYSCTL_PERIPH_GPIOL, \b SYSCTL_PERIPH_GPIOM, \b SYSCTL_PERIPH_GPION, +//! \b SYSCTL_PERIPH_GPIOP, \b SYSCTL_PERIPH_GPIOQ, \b SYSCTL_PERIPH_HIBERNATE, +//! \b SYSCTL_PERIPH_I2C0, \b SYSCTL_PERIPH_I2C1, \b SYSCTL_PERIPH_I2C2, +//! \b SYSCTL_PERIPH_I2C3, \b SYSCTL_PERIPH_I2C4, \b SYSCTL_PERIPH_I2C5, +//! \b SYSCTL_PERIPH_I2S0, \b SYSCTL_PERIPH_IEEE1588, \b SYSCTL_PERIPH_LPC0, +//! \b SYSCTL_PERIPH_MPU, \b SYSCTL_PERIPH_PECI0, \b SYSCTL_PERIPH_PLL, +//! \b SYSCTL_PERIPH_PWM0, \b SYSCTL_PERIPH_PWM1, \b SYSCTL_PERIPH_QEI0, +//! \b SYSCTL_PERIPH_QEI1, \b SYSCTL_PERIPH_SSI0, \b SYSCTL_PERIPH_SSI1, +//! \b SYSCTL_PERIPH_SSI2, \b SYSCTL_PERIPH_SSI3, \b SYSCTL_PERIPH_TEMP, +//! \b SYSCTL_PERIPH_TIMER0, \b SYSCTL_PERIPH_TIMER1, \b SYSCTL_PERIPH_TIMER2, +//! \b SYSCTL_PERIPH_TIMER3, \b SYSCTL_PERIPH_TIMER4, \b SYSCTL_PERIPH_TIMER5, //! \b SYSCTL_PERIPH_UART0, \b SYSCTL_PERIPH_UART1, \b SYSCTL_PERIPH_UART2, -//! \b SYSCTL_PERIPH_UDMA, \b SYSCTL_PERIPH_USB0, \b SYSCTL_PERIPH_WDOG0, or -//! \b SYSCTL_PERIPH_WDOG1. +//! \b SYSCTL_PERIPH_UART3, \b SYSCTL_PERIPH_UART4, \b SYSCTL_PERIPH_UART5, +//! \b SYSCTL_PERIPH_UART6, \b SYSCTL_PERIPH_UART7, \b SYSCTL_PERIPH_UDMA, +//! \b SYSCTL_PERIPH_USB0, \b SYSCTL_PERIPH_WDOG0, \b SYSCTL_PERIPH_WDOG1, +//! \b SYSCTL_PERIPH_WTIMER0, \b SYSCTL_PERIPH_WTIMER1, +//! \b SYSCTL_PERIPH_WTIMER2, \b SYSCTL_PERIPH_WTIMER3, +//! \b SYSCTL_PERIPH_WTIMER4, or \b SYSCTL_PERIPH_WTIMER5, //! //! \return Returns \b true if the specified peripheral is present and \b false //! if it is not. @@ -373,12 +512,21 @@ SysCtlPeripheralPresent(unsigned long ulPeripheral) ASSERT(SysCtlPeripheralValid(ulPeripheral)); // - // Read the correct DC register and determine if this peripheral exists. + // See if the peripheral index is 15, indicating a peripheral that is + // accessed via the SYSCTL_PPperiph registers. // - if(ulPeripheral == SYSCTL_PERIPH_USB0) + if((ulPeripheral & 0xf0000000) == 0xf0000000) { // - // USB is a special case since the DC bit is missing for USB0. + // See if this peripheral is present. + // + return(HWREGBITW(SYSCTL_PPBASE + ((ulPeripheral & 0xff00) >> 8), + ulPeripheral & 0xff)); + } + else if(ulPeripheral == SYSCTL_PERIPH_USB0) + { + // + // USB is a special case because the DC bit is missing for USB0. // if(HWREG(SYSCTL_DC6) & SYSCTL_DC6_USB0_M) { @@ -400,6 +548,199 @@ SysCtlPeripheralPresent(unsigned long ulPeripheral) } } +//***************************************************************************** +// +//! Determines if a peripheral is ready. +//! +//! \param ulPeripheral is the peripheral in question. +//! +//! This function determines if a particular peripheral is ready to be +//! accessed. The peripheral may be in a non-ready state if it is not enabled, +//! is being held in reset, or is in the process of becoming ready after being +//! enabled or taken out of reset. +//! +//! The \e ulPeripheral paramter must be only one of the following values: +//! \b SYSCTL_PERIPH_ADC0, \b SYSCTL_PERIPH_ADC1, \b SYSCTL_PERIPH_CAN0, +//! \b SYSCTL_PERIPH_CAN1, \b SYSCTL_PERIPH_CAN2, \b SYSCTL_PERIPH_COMP0, +//! \b SYSCTL_PERIPH_COMP1, \b SYSCTL_PERIPH_COMP2, \b SYSCTL_PERIPH_EEPROM0, +//! \b SYSCTL_PERIPH_EPI0, \b SYSCTL_PERIPH_ETH, \b SYSCTL_PERIPH_FAN0, +//! \b SYSCTL_PERIPH_GPIOA, \b SYSCTL_PERIPH_GPIOB, \b SYSCTL_PERIPH_GPIOC, +//! \b SYSCTL_PERIPH_GPIOD, \b SYSCTL_PERIPH_GPIOE, \b SYSCTL_PERIPH_GPIOF, +//! \b SYSCTL_PERIPH_GPIOG, \b SYSCTL_PERIPH_GPIOH, \b SYSCTL_PERIPH_GPIOJ, +//! \b SYSCTL_PERIPH_GPIOK, \b SYSCTL_PERIPH_GPIOL, \b SYSCTL_PERIPH_GPIOM, +//! \b SYSCTL_PERIPH_GPION, \b SYSCTL_PERIPH_GPIOP, \b SYSCTL_PERIPH_GPIOQ, +//! \b SYSCTL_PERIPH_HIBERNATE, \b SYSCTL_PERIPH_I2C0, \b SYSCTL_PERIPH_I2C1, +//! \b SYSCTL_PERIPH_I2C2, \b SYSCTL_PERIPH_I2C3, \b SYSCTL_PERIPH_I2C4, +//! \b SYSCTL_PERIPH_I2C5, \b SYSCTL_PERIPH_I2S0, \b SYSCTL_PERIPH_LPC0, +//! \b SYSCTL_PERIPH_PECI0, \b SYSCTL_PERIPH_PWM0, \b SYSCTL_PERIPH_PWM1, +//! \b SYSCTL_PERIPH_QEI0, \b SYSCTL_PERIPH_QEI1, \b SYSCTL_PERIPH_SSI0, +//! \b SYSCTL_PERIPH_SSI1, \b SYSCTL_PERIPH_SSI2, \b SYSCTL_PERIPH_SSI3, +//! \b SYSCTL_PERIPH_TIMER0, \b SYSCTL_PERIPH_TIMER1, \b SYSCTL_PERIPH_TIMER2, +//! \b SYSCTL_PERIPH_TIMER3, \b SYSCTL_PERIPH_TIMER4, \b SYSCTL_PERIPH_TIMER5, +//! \b SYSCTL_PERIPH_UART0, \b SYSCTL_PERIPH_UART1, \b SYSCTL_PERIPH_UART2, +//! \b SYSCTL_PERIPH_UART3, \b SYSCTL_PERIPH_UART4, \b SYSCTL_PERIPH_UART5, +//! \b SYSCTL_PERIPH_UART6, \b SYSCTL_PERIPH_UART7, \b SYSCTL_PERIPH_UDMA, +//! \b SYSCTL_PERIPH_USB0, \b SYSCTL_PERIPH_WDOG0, \b SYSCTL_PERIPH_WDOG1, +//! \b SYSCTL_PERIPH_WTIMER0, \b SYSCTL_PERIPH_WTIMER1, +//! \b SYSCTL_PERIPH_WTIMER2, \b SYSCTL_PERIPH_WTIMER3, +//! \b SYSCTL_PERIPH_WTIMER4, or \b SYSCTL_PERIPH_WTIMER5. +//! +//! \note The ability to check for a peripheral being ready varies based on the +//! Stellaris part in use. Please consult the data sheet for the part you are +//! using to determine if this feature is available. +//! +//! \return Returns \b true if the specified peripheral is ready and \b false +//! if it is not. +// +//***************************************************************************** +tBoolean +SysCtlPeripheralReady(unsigned long ulPeripheral) +{ + // + // Check the arguments. + // + ASSERT(SysCtlPeripheralValid(ulPeripheral)); + + // + // Map the peripheral identifier to the new style identifiers. If it is + // already a new style identifier, this is a NOP. + // + ulPeripheral = SysCtlPeripheralMapToNew(ulPeripheral); + + // + // See if this peripheral is ready. + // + return(HWREGBITW(SYSCTL_PRBASE + ((ulPeripheral & 0xff00) >> 8), + ulPeripheral & 0xff)); +} + +//***************************************************************************** +// +//! Powers on a peripheral. +//! +//! \param ulPeripheral is the peripheral to be powered on. +//! +//! This function turns on the power to a peripheral. The peripheral continues +//! to receive power even when its clock is not enabled. +//! +//! The \e ulPeripheral paramter must be only one of the following values: +//! \b SYSCTL_PERIPH_ADC0, \b SYSCTL_PERIPH_ADC1, \b SYSCTL_PERIPH_CAN0, +//! \b SYSCTL_PERIPH_CAN1, \b SYSCTL_PERIPH_CAN2, \b SYSCTL_PERIPH_COMP0, +//! \b SYSCTL_PERIPH_COMP1, \b SYSCTL_PERIPH_COMP2, \b SYSCTL_PERIPH_EEPROM0, +//! \b SYSCTL_PERIPH_EPI0, \b SYSCTL_PERIPH_ETH, \b SYSCTL_PERIPH_FAN0, +//! \b SYSCTL_PERIPH_GPIOA, \b SYSCTL_PERIPH_GPIOB, \b SYSCTL_PERIPH_GPIOC, +//! \b SYSCTL_PERIPH_GPIOD, \b SYSCTL_PERIPH_GPIOE, \b SYSCTL_PERIPH_GPIOF, +//! \b SYSCTL_PERIPH_GPIOG, \b SYSCTL_PERIPH_GPIOH, \b SYSCTL_PERIPH_GPIOJ, +//! \b SYSCTL_PERIPH_GPIOK, \b SYSCTL_PERIPH_GPIOL, \b SYSCTL_PERIPH_GPIOM, +//! \b SYSCTL_PERIPH_GPION, \b SYSCTL_PERIPH_GPIOP, \b SYSCTL_PERIPH_GPIOQ, +//! \b SYSCTL_PERIPH_HIBERNATE, \b SYSCTL_PERIPH_I2C0, \b SYSCTL_PERIPH_I2C1, +//! \b SYSCTL_PERIPH_I2C2, \b SYSCTL_PERIPH_I2C3, \b SYSCTL_PERIPH_I2C4, +//! \b SYSCTL_PERIPH_I2C5, \b SYSCTL_PERIPH_I2S0, \b SYSCTL_PERIPH_LPC0, +//! \b SYSCTL_PERIPH_PECI0, \b SYSCTL_PERIPH_PWM0, \b SYSCTL_PERIPH_PWM1, +//! \b SYSCTL_PERIPH_QEI0, \b SYSCTL_PERIPH_QEI1, \b SYSCTL_PERIPH_SSI0, +//! \b SYSCTL_PERIPH_SSI1, \b SYSCTL_PERIPH_SSI2, \b SYSCTL_PERIPH_SSI3, +//! \b SYSCTL_PERIPH_TIMER0, \b SYSCTL_PERIPH_TIMER1, \b SYSCTL_PERIPH_TIMER2, +//! \b SYSCTL_PERIPH_TIMER3, \b SYSCTL_PERIPH_TIMER4, \b SYSCTL_PERIPH_TIMER5, +//! \b SYSCTL_PERIPH_UART0, \b SYSCTL_PERIPH_UART1, \b SYSCTL_PERIPH_UART2, +//! \b SYSCTL_PERIPH_UART3, \b SYSCTL_PERIPH_UART4, \b SYSCTL_PERIPH_UART5, +//! \b SYSCTL_PERIPH_UART6, \b SYSCTL_PERIPH_UART7, \b SYSCTL_PERIPH_UDMA, +//! \b SYSCTL_PERIPH_USB0, \b SYSCTL_PERIPH_WDOG0, \b SYSCTL_PERIPH_WDOG1, +//! \b SYSCTL_PERIPH_WTIMER0, \b SYSCTL_PERIPH_WTIMER1, +//! \b SYSCTL_PERIPH_WTIMER2, \b SYSCTL_PERIPH_WTIMER3, +//! \b SYSCTL_PERIPH_WTIMER4, or \b SYSCTL_PERIPH_WTIMER5. +//! +//! \note The ability to power off a peripheral varies based on the Stellaris +//! part in use. Please consult the data sheet for the part you are using to +//! determine if this feature is available. +//! +//! \return None. +// +//***************************************************************************** +void +SysCtlPeripheralPowerOn(unsigned long ulPeripheral) +{ + // + // Check the arguments. + // + ASSERT(SysCtlPeripheralValid(ulPeripheral)); + + // + // Map the peripheral identifier to the new style identifiers. If it is + // already a new style identifier, this is a NOP. + // + ulPeripheral = SysCtlPeripheralMapToNew(ulPeripheral); + + // + // Power on this peripheral. + // + HWREGBITW(SYSCTL_PCBASE + ((ulPeripheral & 0xff00) >> 8), + ulPeripheral & 0xff) = 1; +} + +//***************************************************************************** +// +//! Powers off a peripheral. +//! +//! \param ulPeripheral is the peripheral to be powered off. +//! +//! This function allows the power to a peripheral to be turned off. The +//! peripheral continues to receive power when its clock is enabled, but +//! the power is removed when its clock is disabled. +//! +//! The \e ulPeripheral paramter must be only one of the following values: +//! \b SYSCTL_PERIPH_ADC0, \b SYSCTL_PERIPH_ADC1, \b SYSCTL_PERIPH_CAN0, +//! \b SYSCTL_PERIPH_CAN1, \b SYSCTL_PERIPH_CAN2, \b SYSCTL_PERIPH_COMP0, +//! \b SYSCTL_PERIPH_COMP1, \b SYSCTL_PERIPH_COMP2, \b SYSCTL_PERIPH_EEPROM0, +//! \b SYSCTL_PERIPH_EPI0, \b SYSCTL_PERIPH_ETH, \b SYSCTL_PERIPH_FAN0, +//! \b SYSCTL_PERIPH_GPIOA, \b SYSCTL_PERIPH_GPIOB, \b SYSCTL_PERIPH_GPIOC, +//! \b SYSCTL_PERIPH_GPIOD, \b SYSCTL_PERIPH_GPIOE, \b SYSCTL_PERIPH_GPIOF, +//! \b SYSCTL_PERIPH_GPIOG, \b SYSCTL_PERIPH_GPIOH, \b SYSCTL_PERIPH_GPIOJ, +//! \b SYSCTL_PERIPH_GPIOK, \b SYSCTL_PERIPH_GPIOL, \b SYSCTL_PERIPH_GPIOM, +//! \b SYSCTL_PERIPH_GPION, \b SYSCTL_PERIPH_GPIOP, \b SYSCTL_PERIPH_GPIOQ, +//! \b SYSCTL_PERIPH_HIBERNATE, \b SYSCTL_PERIPH_I2C0, \b SYSCTL_PERIPH_I2C1, +//! \b SYSCTL_PERIPH_I2C2, \b SYSCTL_PERIPH_I2C3, \b SYSCTL_PERIPH_I2C4, +//! \b SYSCTL_PERIPH_I2C5, \b SYSCTL_PERIPH_I2S0, \b SYSCTL_PERIPH_LPC0, +//! \b SYSCTL_PERIPH_PECI0, \b SYSCTL_PERIPH_PWM0, \b SYSCTL_PERIPH_PWM1, +//! \b SYSCTL_PERIPH_QEI0, \b SYSCTL_PERIPH_QEI1, \b SYSCTL_PERIPH_SSI0, +//! \b SYSCTL_PERIPH_SSI1, \b SYSCTL_PERIPH_SSI2, \b SYSCTL_PERIPH_SSI3, +//! \b SYSCTL_PERIPH_TIMER0, \b SYSCTL_PERIPH_TIMER1, \b SYSCTL_PERIPH_TIMER2, +//! \b SYSCTL_PERIPH_TIMER3, \b SYSCTL_PERIPH_TIMER4, \b SYSCTL_PERIPH_TIMER5, +//! \b SYSCTL_PERIPH_UART0, \b SYSCTL_PERIPH_UART1, \b SYSCTL_PERIPH_UART2, +//! \b SYSCTL_PERIPH_UART3, \b SYSCTL_PERIPH_UART4, \b SYSCTL_PERIPH_UART5, +//! \b SYSCTL_PERIPH_UART6, \b SYSCTL_PERIPH_UART7, \b SYSCTL_PERIPH_UDMA, +//! \b SYSCTL_PERIPH_USB0, \b SYSCTL_PERIPH_WDOG0, \b SYSCTL_PERIPH_WDOG1, +//! \b SYSCTL_PERIPH_WTIMER0, \b SYSCTL_PERIPH_WTIMER1, +//! \b SYSCTL_PERIPH_WTIMER2, \b SYSCTL_PERIPH_WTIMER3, +//! \b SYSCTL_PERIPH_WTIMER4, or \b SYSCTL_PERIPH_WTIMER5. +//! +//! \note The ability to power off a peripheral varies based on the Stellaris +//! part in use. Please consult the data sheet for the part you are using to +//! determine if this feature is available. +//! +//! \return None. +// +//***************************************************************************** +void +SysCtlPeripheralPowerOff(unsigned long ulPeripheral) +{ + // + // Check the arguments. + // + ASSERT(SysCtlPeripheralValid(ulPeripheral)); + + // + // Map the peripheral identifier to the new style identifiers. If it is + // already a new style identifier, this is a NOP. + // + ulPeripheral = SysCtlPeripheralMapToNew(ulPeripheral); + + // + // Power off this peripheral. + // + HWREGBITW(SYSCTL_PCBASE + ((ulPeripheral & 0xff00) >> 8), + ulPeripheral & 0xff) = 0; +} + //***************************************************************************** // //! Performs a software reset of a peripheral. @@ -414,18 +755,28 @@ SysCtlPeripheralPresent(unsigned long ulPeripheral) //! The \e ulPeripheral parameter must be only one of the following values: //! \b SYSCTL_PERIPH_ADC0, \b SYSCTL_PERIPH_ADC1, \b SYSCTL_PERIPH_CAN0, //! \b SYSCTL_PERIPH_CAN1, \b SYSCTL_PERIPH_CAN2, \b SYSCTL_PERIPH_COMP0, -//! \b SYSCTL_PERIPH_COMP1, \b SYSCTL_PERIPH_COMP2, \b SYSCTL_PERIPH_EPI0, -//! \b SYSCTL_PERIPH_ETH, \b SYSCTL_PERIPH_GPIOA, \b SYSCTL_PERIPH_GPIOB, -//! \b SYSCTL_PERIPH_GPIOC, \b SYSCTL_PERIPH_GPIOD, \b SYSCTL_PERIPH_GPIOE, -//! \b SYSCTL_PERIPH_GPIOF, \b SYSCTL_PERIPH_GPIOG, \b SYSCTL_PERIPH_GPIOH, -//! \b SYSCTL_PERIPH_GPIOJ, \b SYSCTL_PERIPH_HIBERNATE, \b SYSCTL_PERIPH_I2C0, -//! \b SYSCTL_PERIPH_I2C1, \b SYSCTL_PERIPH_I2S0, \b SYSCTL_PERIPH_PWM, +//! \b SYSCTL_PERIPH_COMP1, \b SYSCTL_PERIPH_COMP2, \b SYSCTL_PERIPH_EEPROM0, +//! \b SYSCTL_PERIPH_EPI0, \b SYSCTL_PERIPH_ETH, \b SYSCTL_PERIPH_FAN0, +//! \b SYSCTL_PERIPH_GPIOA, \b SYSCTL_PERIPH_GPIOB, \b SYSCTL_PERIPH_GPIOC, +//! \b SYSCTL_PERIPH_GPIOD, \b SYSCTL_PERIPH_GPIOE, \b SYSCTL_PERIPH_GPIOF, +//! \b SYSCTL_PERIPH_GPIOG, \b SYSCTL_PERIPH_GPIOH, \b SYSCTL_PERIPH_GPIOJ, +//! \b SYSCTL_PERIPH_GPIOK, \b SYSCTL_PERIPH_GPIOL, \b SYSCTL_PERIPH_GPIOM, +//! \b SYSCTL_PERIPH_GPION, \b SYSCTL_PERIPH_GPIOP, \b SYSCTL_PERIPH_GPIOQ, +//! \b SYSCTL_PERIPH_HIBERNATE, \b SYSCTL_PERIPH_I2C0, \b SYSCTL_PERIPH_I2C1, +//! \b SYSCTL_PERIPH_I2C2, \b SYSCTL_PERIPH_I2C3, \b SYSCTL_PERIPH_I2C4, +//! \b SYSCTL_PERIPH_I2C5, \b SYSCTL_PERIPH_I2S0, \b SYSCTL_PERIPH_LPC0, +//! \b SYSCTL_PERIPH_PECI0, \b SYSCTL_PERIPH_PWM0, \b SYSCTL_PERIPH_PWM1, //! \b SYSCTL_PERIPH_QEI0, \b SYSCTL_PERIPH_QEI1, \b SYSCTL_PERIPH_SSI0, -//! \b SYSCTL_PERIPH_SSI1, \b SYSCTL_PERIPH_TIMER0, \b SYSCTL_PERIPH_TIMER1, -//! \b SYSCTL_PERIPH_TIMER2, \b SYSCTL_PERIPH_TIMER3, \b SYSCTL_PERIPH_TEMP, +//! \b SYSCTL_PERIPH_SSI1, \b SYSCTL_PERIPH_SSI2, \b SYSCTL_PERIPH_SSI3, +//! \b SYSCTL_PERIPH_TIMER0, \b SYSCTL_PERIPH_TIMER1, \b SYSCTL_PERIPH_TIMER2, +//! \b SYSCTL_PERIPH_TIMER3, \b SYSCTL_PERIPH_TIMER4, \b SYSCTL_PERIPH_TIMER5, //! \b SYSCTL_PERIPH_UART0, \b SYSCTL_PERIPH_UART1, \b SYSCTL_PERIPH_UART2, -//! \b SYSCTL_PERIPH_UDMA, \b SYSCTL_PERIPH_USB0, \b SYSCTL_PERIPH_WDOG0, or -//! \b SYSCTL_PERIPH_WDOG1. +//! \b SYSCTL_PERIPH_UART3, \b SYSCTL_PERIPH_UART4, \b SYSCTL_PERIPH_UART5, +//! \b SYSCTL_PERIPH_UART6, \b SYSCTL_PERIPH_UART7, \b SYSCTL_PERIPH_UDMA, +//! \b SYSCTL_PERIPH_USB0, \b SYSCTL_PERIPH_WDOG0, \b SYSCTL_PERIPH_WDOG1, +//! \b SYSCTL_PERIPH_WTIMER0, \b SYSCTL_PERIPH_WTIMER1, +//! \b SYSCTL_PERIPH_WTIMER2, \b SYSCTL_PERIPH_WTIMER3, +//! \b SYSCTL_PERIPH_WTIMER4, or \b SYSCTL_PERIPH_WTIMER5. //! //! \return None. // @@ -441,23 +792,51 @@ SysCtlPeripheralReset(unsigned long ulPeripheral) ASSERT(SysCtlPeripheralValid(ulPeripheral)); // - // Put the peripheral into the reset state. + // See if the peripheral index is 15, indicating a peripheral that is + // accessed via the SYSCTL_SRperiph registers. // - HWREG(g_pulSRCRRegs[SYSCTL_PERIPH_INDEX(ulPeripheral)]) |= - SYSCTL_PERIPH_MASK(ulPeripheral); - - // - // Delay for a little bit. - // - for(ulDelay = 0; ulDelay < 16; ulDelay++) + if((ulPeripheral & 0xf0000000) == 0xf0000000) { - } + // + // Put the peripheral into the reset state. + // + HWREGBITW(SYSCTL_SRBASE + ((ulPeripheral & 0xff00) >> 8), + ulPeripheral & 0xff) = 1; - // - // Take the peripheral out of the reset state. - // - HWREG(g_pulSRCRRegs[SYSCTL_PERIPH_INDEX(ulPeripheral)]) &= - ~SYSCTL_PERIPH_MASK(ulPeripheral); + // + // Delay for a little bit. + // + for(ulDelay = 0; ulDelay < 16; ulDelay++) + { + } + + // + // Take the peripheral out of the reset state. + // + HWREGBITW(SYSCTL_SRBASE + ((ulPeripheral & 0xff00) >> 8), + ulPeripheral & 0xff) = 0; + } + else + { + // + // Put the peripheral into the reset state. + // + HWREG(g_pulSRCRRegs[SYSCTL_PERIPH_INDEX(ulPeripheral)]) |= + SYSCTL_PERIPH_MASK(ulPeripheral); + + // + // Delay for a little bit. + // + for(ulDelay = 0; ulDelay < 16; ulDelay++) + { + } + + // + // Take the peripheral out of the reset state. + // + HWREG(g_pulSRCRRegs[SYSCTL_PERIPH_INDEX(ulPeripheral)]) &= + ~SYSCTL_PERIPH_MASK(ulPeripheral); + } } //***************************************************************************** @@ -466,29 +845,39 @@ SysCtlPeripheralReset(unsigned long ulPeripheral) //! //! \param ulPeripheral is the peripheral to enable. //! -//! Peripherals are enabled with this function. At power-up, all peripherals +//! This function enables peripherals. At power-up, all peripherals //! are disabled; they must be enabled in order to operate or respond to //! register reads/writes. //! //! The \e ulPeripheral parameter must be only one of the following values: //! \b SYSCTL_PERIPH_ADC0, \b SYSCTL_PERIPH_ADC1, \b SYSCTL_PERIPH_CAN0, //! \b SYSCTL_PERIPH_CAN1, \b SYSCTL_PERIPH_CAN2, \b SYSCTL_PERIPH_COMP0, -//! \b SYSCTL_PERIPH_COMP1, \b SYSCTL_PERIPH_COMP2, \b SYSCTL_PERIPH_EPI0, -//! \b SYSCTL_PERIPH_ETH, \b SYSCTL_PERIPH_GPIOA, \b SYSCTL_PERIPH_GPIOB, -//! \b SYSCTL_PERIPH_GPIOC, \b SYSCTL_PERIPH_GPIOD, \b SYSCTL_PERIPH_GPIOE, -//! \b SYSCTL_PERIPH_GPIOF, \b SYSCTL_PERIPH_GPIOG, \b SYSCTL_PERIPH_GPIOH, -//! \b SYSCTL_PERIPH_GPIOJ, \b SYSCTL_PERIPH_HIBERNATE, \b SYSCTL_PERIPH_I2C0, -//! \b SYSCTL_PERIPH_I2C1, \b SYSCTL_PERIPH_I2S0, \b SYSCTL_PERIPH_PWM, +//! \b SYSCTL_PERIPH_COMP1, \b SYSCTL_PERIPH_COMP2, \b SYSCTL_PERIPH_EEPROM0, +//! \b SYSCTL_PERIPH_EPI0, \b SYSCTL_PERIPH_ETH, \b SYSCTL_PERIPH_FAN0, +//! \b SYSCTL_PERIPH_GPIOA, \b SYSCTL_PERIPH_GPIOB, \b SYSCTL_PERIPH_GPIOC, +//! \b SYSCTL_PERIPH_GPIOD, \b SYSCTL_PERIPH_GPIOE, \b SYSCTL_PERIPH_GPIOF, +//! \b SYSCTL_PERIPH_GPIOG, \b SYSCTL_PERIPH_GPIOH, \b SYSCTL_PERIPH_GPIOJ, +//! \b SYSCTL_PERIPH_GPIOK, \b SYSCTL_PERIPH_GPIOL, \b SYSCTL_PERIPH_GPIOM, +//! \b SYSCTL_PERIPH_GPION, \b SYSCTL_PERIPH_GPIOP, \b SYSCTL_PERIPH_GPIOQ, +//! \b SYSCTL_PERIPH_HIBERNATE, \b SYSCTL_PERIPH_I2C0, \b SYSCTL_PERIPH_I2C1, +//! \b SYSCTL_PERIPH_I2C2, \b SYSCTL_PERIPH_I2C3, \b SYSCTL_PERIPH_I2C4, +//! \b SYSCTL_PERIPH_I2C5, \b SYSCTL_PERIPH_I2S0, \b SYSCTL_PERIPH_LPC0, +//! \b SYSCTL_PERIPH_PECI0, \b SYSCTL_PERIPH_PWM0, \b SYSCTL_PERIPH_PWM1, //! \b SYSCTL_PERIPH_QEI0, \b SYSCTL_PERIPH_QEI1, \b SYSCTL_PERIPH_SSI0, -//! \b SYSCTL_PERIPH_SSI1, \b SYSCTL_PERIPH_TIMER0, \b SYSCTL_PERIPH_TIMER1, -//! \b SYSCTL_PERIPH_TIMER2, \b SYSCTL_PERIPH_TIMER3, \b SYSCTL_PERIPH_TEMP, +//! \b SYSCTL_PERIPH_SSI1, \b SYSCTL_PERIPH_SSI2, \b SYSCTL_PERIPH_SSI3, +//! \b SYSCTL_PERIPH_TIMER0, \b SYSCTL_PERIPH_TIMER1, \b SYSCTL_PERIPH_TIMER2, +//! \b SYSCTL_PERIPH_TIMER3, \b SYSCTL_PERIPH_TIMER4, \b SYSCTL_PERIPH_TIMER5, //! \b SYSCTL_PERIPH_UART0, \b SYSCTL_PERIPH_UART1, \b SYSCTL_PERIPH_UART2, -//! \b SYSCTL_PERIPH_UDMA, \b SYSCTL_PERIPH_USB0, \b SYSCTL_PERIPH_WDOG0, or -//! \b SYSCTL_PERIPH_WDOG1. +//! \b SYSCTL_PERIPH_UART3, \b SYSCTL_PERIPH_UART4, \b SYSCTL_PERIPH_UART5, +//! \b SYSCTL_PERIPH_UART6, \b SYSCTL_PERIPH_UART7, \b SYSCTL_PERIPH_UDMA, +//! \b SYSCTL_PERIPH_USB0, \b SYSCTL_PERIPH_WDOG0, \b SYSCTL_PERIPH_WDOG1, +//! \b SYSCTL_PERIPH_WTIMER0, \b SYSCTL_PERIPH_WTIMER1, +//! \b SYSCTL_PERIPH_WTIMER2, \b SYSCTL_PERIPH_WTIMER3, +//! \b SYSCTL_PERIPH_WTIMER4, or \b SYSCTL_PERIPH_WTIMER5. //! //! \note It takes five clock cycles after the write to enable a peripheral //! before the the peripheral is actually enabled. During this time, attempts -//! to access the peripheral will result in a bus fault. Care should be taken +//! to access the peripheral result in a bus fault. Care should be taken //! to ensure that the peripheral is not accessed during this brief time //! period. //! @@ -504,10 +893,25 @@ SysCtlPeripheralEnable(unsigned long ulPeripheral) ASSERT(SysCtlPeripheralValid(ulPeripheral)); // - // Enable this peripheral. + // See if the peripheral index is 15, indicating a peripheral that is + // accessed via the SYSCTL_RCGCperiph registers. // - HWREG(g_pulRCGCRegs[SYSCTL_PERIPH_INDEX(ulPeripheral)]) |= - SYSCTL_PERIPH_MASK(ulPeripheral); + if((ulPeripheral & 0xf0000000) == 0xf0000000) + { + // + // Enable this peripheral. + // + HWREGBITW(SYSCTL_RCGCBASE + ((ulPeripheral & 0xff00) >> 8), + ulPeripheral & 0xff) = 1; + } + else + { + // + // Enable this peripheral. + // + HWREG(g_pulRCGCRegs[SYSCTL_PERIPH_INDEX(ulPeripheral)]) |= + SYSCTL_PERIPH_MASK(ulPeripheral); + } } //***************************************************************************** @@ -516,24 +920,34 @@ SysCtlPeripheralEnable(unsigned long ulPeripheral) //! //! \param ulPeripheral is the peripheral to disable. //! -//! Peripherals are disabled with this function. Once disabled, they will not -//! operate or respond to register reads/writes. +//! This function disables peripherals are disabled with this function. Once +//! disabled, they do not operate or respond to register reads/writes. //! //! The \e ulPeripheral parameter must be only one of the following values: //! \b SYSCTL_PERIPH_ADC0, \b SYSCTL_PERIPH_ADC1, \b SYSCTL_PERIPH_CAN0, //! \b SYSCTL_PERIPH_CAN1, \b SYSCTL_PERIPH_CAN2, \b SYSCTL_PERIPH_COMP0, -//! \b SYSCTL_PERIPH_COMP1, \b SYSCTL_PERIPH_COMP2, \b SYSCTL_PERIPH_EPI0, -//! \b SYSCTL_PERIPH_ETH, \b SYSCTL_PERIPH_GPIOA, \b SYSCTL_PERIPH_GPIOB, -//! \b SYSCTL_PERIPH_GPIOC, \b SYSCTL_PERIPH_GPIOD, \b SYSCTL_PERIPH_GPIOE, -//! \b SYSCTL_PERIPH_GPIOF, \b SYSCTL_PERIPH_GPIOG, \b SYSCTL_PERIPH_GPIOH, -//! \b SYSCTL_PERIPH_GPIOJ, \b SYSCTL_PERIPH_HIBERNATE, \b SYSCTL_PERIPH_I2C0, -//! \b SYSCTL_PERIPH_I2C1, \b SYSCTL_PERIPH_I2S0, \b SYSCTL_PERIPH_PWM, +//! \b SYSCTL_PERIPH_COMP1, \b SYSCTL_PERIPH_COMP2, \b SYSCTL_PERIPH_EEPROM0, +//! \b SYSCTL_PERIPH_EPI0, \b SYSCTL_PERIPH_ETH, \b SYSCTL_PERIPH_FAN0, +//! \b SYSCTL_PERIPH_GPIOA, \b SYSCTL_PERIPH_GPIOB, \b SYSCTL_PERIPH_GPIOC, +//! \b SYSCTL_PERIPH_GPIOD, \b SYSCTL_PERIPH_GPIOE, \b SYSCTL_PERIPH_GPIOF, +//! \b SYSCTL_PERIPH_GPIOG, \b SYSCTL_PERIPH_GPIOH, \b SYSCTL_PERIPH_GPIOJ, +//! \b SYSCTL_PERIPH_GPIOK, \b SYSCTL_PERIPH_GPIOL, \b SYSCTL_PERIPH_GPIOM, +//! \b SYSCTL_PERIPH_GPION, \b SYSCTL_PERIPH_GPIOP, \b SYSCTL_PERIPH_GPIOQ, +//! \b SYSCTL_PERIPH_HIBERNATE, \b SYSCTL_PERIPH_I2C0, \b SYSCTL_PERIPH_I2C1, +//! \b SYSCTL_PERIPH_I2C2, \b SYSCTL_PERIPH_I2C3, \b SYSCTL_PERIPH_I2C4, +//! \b SYSCTL_PERIPH_I2C5, \b SYSCTL_PERIPH_I2S0, \b SYSCTL_PERIPH_LPC0, +//! \b SYSCTL_PERIPH_PECI0, \b SYSCTL_PERIPH_PWM0, \b SYSCTL_PERIPH_PWM1, //! \b SYSCTL_PERIPH_QEI0, \b SYSCTL_PERIPH_QEI1, \b SYSCTL_PERIPH_SSI0, -//! \b SYSCTL_PERIPH_SSI1, \b SYSCTL_PERIPH_TIMER0, \b SYSCTL_PERIPH_TIMER1, -//! \b SYSCTL_PERIPH_TIMER2, \b SYSCTL_PERIPH_TIMER3, \b SYSCTL_PERIPH_TEMP, +//! \b SYSCTL_PERIPH_SSI1, \b SYSCTL_PERIPH_SSI2, \b SYSCTL_PERIPH_SSI3, +//! \b SYSCTL_PERIPH_TIMER0, \b SYSCTL_PERIPH_TIMER1, \b SYSCTL_PERIPH_TIMER2, +//! \b SYSCTL_PERIPH_TIMER3, \b SYSCTL_PERIPH_TIMER4, \b SYSCTL_PERIPH_TIMER5, //! \b SYSCTL_PERIPH_UART0, \b SYSCTL_PERIPH_UART1, \b SYSCTL_PERIPH_UART2, -//! \b SYSCTL_PERIPH_UDMA, \b SYSCTL_PERIPH_USB0, \b SYSCTL_PERIPH_WDOG0, or -//! \b SYSCTL_PERIPH_WDOG1. +//! \b SYSCTL_PERIPH_UART3, \b SYSCTL_PERIPH_UART4, \b SYSCTL_PERIPH_UART5, +//! \b SYSCTL_PERIPH_UART6, \b SYSCTL_PERIPH_UART7, \b SYSCTL_PERIPH_UDMA, +//! \b SYSCTL_PERIPH_USB0, \b SYSCTL_PERIPH_WDOG0, \b SYSCTL_PERIPH_WDOG1, +//! \b SYSCTL_PERIPH_WTIMER0, \b SYSCTL_PERIPH_WTIMER1, +//! \b SYSCTL_PERIPH_WTIMER2, \b SYSCTL_PERIPH_WTIMER3, +//! \b SYSCTL_PERIPH_WTIMER4, or \b SYSCTL_PERIPH_WTIMER5. //! //! \return None. // @@ -547,10 +961,25 @@ SysCtlPeripheralDisable(unsigned long ulPeripheral) ASSERT(SysCtlPeripheralValid(ulPeripheral)); // - // Disable this peripheral. + // See if the peripheral index is 15, indicating a peripheral that is + // accessed via the SYSCTL_RCGCperiph registers. // - HWREG(g_pulRCGCRegs[SYSCTL_PERIPH_INDEX(ulPeripheral)]) &= - ~SYSCTL_PERIPH_MASK(ulPeripheral); + if((ulPeripheral & 0xf0000000) == 0xf0000000) + { + // + // Disable this peripheral. + // + HWREGBITW(SYSCTL_RCGCBASE + ((ulPeripheral & 0xff00) >> 8), + ulPeripheral & 0xff) = 0; + } + else + { + // + // Disable this peripheral. + // + HWREG(g_pulRCGCRegs[SYSCTL_PERIPH_INDEX(ulPeripheral)]) &= + ~SYSCTL_PERIPH_MASK(ulPeripheral); + } } //***************************************************************************** @@ -560,9 +989,9 @@ SysCtlPeripheralDisable(unsigned long ulPeripheral) //! \param ulPeripheral is the peripheral to enable in sleep mode. //! //! This function allows a peripheral to continue operating when the processor -//! goes into sleep mode. Since the clocking configuration of the device does -//! not change, any peripheral can safely continue operating while the -//! processor is in sleep mode, and can therefore wake the processor from sleep +//! goes into sleep mode. Because the clocking configuration of the device +//! does not change, any peripheral can safely continue operating while the +//! processor is in sleep mode and can therefore wake the processor from sleep //! mode. //! //! Sleep mode clocking of peripherals must be enabled via @@ -572,18 +1001,28 @@ SysCtlPeripheralDisable(unsigned long ulPeripheral) //! The \e ulPeripheral parameter must be only one of the following values: //! \b SYSCTL_PERIPH_ADC0, \b SYSCTL_PERIPH_ADC1, \b SYSCTL_PERIPH_CAN0, //! \b SYSCTL_PERIPH_CAN1, \b SYSCTL_PERIPH_CAN2, \b SYSCTL_PERIPH_COMP0, -//! \b SYSCTL_PERIPH_COMP1, \b SYSCTL_PERIPH_COMP2, \b SYSCTL_PERIPH_EPI0, -//! \b SYSCTL_PERIPH_ETH, \b SYSCTL_PERIPH_GPIOA, \b SYSCTL_PERIPH_GPIOB, -//! \b SYSCTL_PERIPH_GPIOC, \b SYSCTL_PERIPH_GPIOD, \b SYSCTL_PERIPH_GPIOE, -//! \b SYSCTL_PERIPH_GPIOF, \b SYSCTL_PERIPH_GPIOG, \b SYSCTL_PERIPH_GPIOH, -//! \b SYSCTL_PERIPH_GPIOJ, \b SYSCTL_PERIPH_HIBERNATE, \b SYSCTL_PERIPH_I2C0, -//! \b SYSCTL_PERIPH_I2C1, \b SYSCTL_PERIPH_I2S0, \b SYSCTL_PERIPH_PWM, +//! \b SYSCTL_PERIPH_COMP1, \b SYSCTL_PERIPH_COMP2, \b SYSCTL_PERIPH_EEPROM0, +//! \b SYSCTL_PERIPH_EPI0, \b SYSCTL_PERIPH_ETH, \b SYSCTL_PERIPH_FAN0, +//! \b SYSCTL_PERIPH_GPIOA, \b SYSCTL_PERIPH_GPIOB, \b SYSCTL_PERIPH_GPIOC, +//! \b SYSCTL_PERIPH_GPIOD, \b SYSCTL_PERIPH_GPIOE, \b SYSCTL_PERIPH_GPIOF, +//! \b SYSCTL_PERIPH_GPIOG, \b SYSCTL_PERIPH_GPIOH, \b SYSCTL_PERIPH_GPIOJ, +//! \b SYSCTL_PERIPH_GPIOK, \b SYSCTL_PERIPH_GPIOL, \b SYSCTL_PERIPH_GPIOM, +//! \b SYSCTL_PERIPH_GPION, \b SYSCTL_PERIPH_GPIOP, \b SYSCTL_PERIPH_GPIOQ, +//! \b SYSCTL_PERIPH_HIBERNATE, \b SYSCTL_PERIPH_I2C0, \b SYSCTL_PERIPH_I2C1, +//! \b SYSCTL_PERIPH_I2C2, \b SYSCTL_PERIPH_I2C3, \b SYSCTL_PERIPH_I2C4, +//! \b SYSCTL_PERIPH_I2C5, \b SYSCTL_PERIPH_I2S0, \b SYSCTL_PERIPH_LPC0, +//! \b SYSCTL_PERIPH_PECI0, \b SYSCTL_PERIPH_PWM0, \b SYSCTL_PERIPH_PWM1, //! \b SYSCTL_PERIPH_QEI0, \b SYSCTL_PERIPH_QEI1, \b SYSCTL_PERIPH_SSI0, -//! \b SYSCTL_PERIPH_SSI1, \b SYSCTL_PERIPH_TIMER0, \b SYSCTL_PERIPH_TIMER1, -//! \b SYSCTL_PERIPH_TIMER2, \b SYSCTL_PERIPH_TIMER3, \b SYSCTL_PERIPH_TEMP, +//! \b SYSCTL_PERIPH_SSI1, \b SYSCTL_PERIPH_SSI2, \b SYSCTL_PERIPH_SSI3, +//! \b SYSCTL_PERIPH_TIMER0, \b SYSCTL_PERIPH_TIMER1, \b SYSCTL_PERIPH_TIMER2, +//! \b SYSCTL_PERIPH_TIMER3, \b SYSCTL_PERIPH_TIMER4, \b SYSCTL_PERIPH_TIMER5, //! \b SYSCTL_PERIPH_UART0, \b SYSCTL_PERIPH_UART1, \b SYSCTL_PERIPH_UART2, -//! \b SYSCTL_PERIPH_UDMA, \b SYSCTL_PERIPH_USB0, \b SYSCTL_PERIPH_WDOG0, or -//! \b SYSCTL_PERIPH_WDOG1. +//! \b SYSCTL_PERIPH_UART3, \b SYSCTL_PERIPH_UART4, \b SYSCTL_PERIPH_UART5, +//! \b SYSCTL_PERIPH_UART6, \b SYSCTL_PERIPH_UART7, \b SYSCTL_PERIPH_UDMA, +//! \b SYSCTL_PERIPH_USB0, \b SYSCTL_PERIPH_WDOG0, \b SYSCTL_PERIPH_WDOG1, +//! \b SYSCTL_PERIPH_WTIMER0, \b SYSCTL_PERIPH_WTIMER1, +//! \b SYSCTL_PERIPH_WTIMER2, \b SYSCTL_PERIPH_WTIMER3, +//! \b SYSCTL_PERIPH_WTIMER4, or \b SYSCTL_PERIPH_WTIMER5. //! //! \return None. // @@ -597,10 +1036,25 @@ SysCtlPeripheralSleepEnable(unsigned long ulPeripheral) ASSERT(SysCtlPeripheralValid(ulPeripheral)); // - // Enable this peripheral in sleep mode. + // See if the peripheral index is 15, indicating a peripheral that is + // accessed via the SYSCTL_SCGCperiph registers. // - HWREG(g_pulSCGCRegs[SYSCTL_PERIPH_INDEX(ulPeripheral)]) |= - SYSCTL_PERIPH_MASK(ulPeripheral); + if((ulPeripheral & 0xf0000000) == 0xf0000000) + { + // + // Enable this peripheral in sleep mode. + // + HWREGBITW(SYSCTL_SCGCBASE + ((ulPeripheral & 0xff00) >> 8), + ulPeripheral & 0xff) = 1; + } + else + { + // + // Enable this peripheral in sleep mode. + // + HWREG(g_pulSCGCRegs[SYSCTL_PERIPH_INDEX(ulPeripheral)]) |= + SYSCTL_PERIPH_MASK(ulPeripheral); + } } //***************************************************************************** @@ -612,7 +1066,7 @@ SysCtlPeripheralSleepEnable(unsigned long ulPeripheral) //! This function causes a peripheral to stop operating when the processor goes //! into sleep mode. Disabling peripherals while in sleep mode helps to lower //! the current draw of the device. If enabled (via SysCtlPeripheralEnable()), -//! the peripheral will automatically resume operation when the processor +//! the peripheral automatically resumes operation when the processor //! leaves sleep mode, maintaining its entire state from before sleep mode was //! entered. //! @@ -623,18 +1077,28 @@ SysCtlPeripheralSleepEnable(unsigned long ulPeripheral) //! The \e ulPeripheral parameter must be only one of the following values: //! \b SYSCTL_PERIPH_ADC0, \b SYSCTL_PERIPH_ADC1, \b SYSCTL_PERIPH_CAN0, //! \b SYSCTL_PERIPH_CAN1, \b SYSCTL_PERIPH_CAN2, \b SYSCTL_PERIPH_COMP0, -//! \b SYSCTL_PERIPH_COMP1, \b SYSCTL_PERIPH_COMP2, \b SYSCTL_PERIPH_EPI0, -//! \b SYSCTL_PERIPH_ETH, \b SYSCTL_PERIPH_GPIOA, \b SYSCTL_PERIPH_GPIOB, -//! \b SYSCTL_PERIPH_GPIOC, \b SYSCTL_PERIPH_GPIOD, \b SYSCTL_PERIPH_GPIOE, -//! \b SYSCTL_PERIPH_GPIOF, \b SYSCTL_PERIPH_GPIOG, \b SYSCTL_PERIPH_GPIOH, -//! \b SYSCTL_PERIPH_GPIOJ, \b SYSCTL_PERIPH_HIBERNATE, \b SYSCTL_PERIPH_I2C0, -//! \b SYSCTL_PERIPH_I2C1, \b SYSCTL_PERIPH_I2S0, \b SYSCTL_PERIPH_PWM, +//! \b SYSCTL_PERIPH_COMP1, \b SYSCTL_PERIPH_COMP2, \b SYSCTL_PERIPH_EEPROM0, +//! \b SYSCTL_PERIPH_EPI0, \b SYSCTL_PERIPH_ETH, \b SYSCTL_PERIPH_FAN0, +//! \b SYSCTL_PERIPH_GPIOA, \b SYSCTL_PERIPH_GPIOB, \b SYSCTL_PERIPH_GPIOC, +//! \b SYSCTL_PERIPH_GPIOD, \b SYSCTL_PERIPH_GPIOE, \b SYSCTL_PERIPH_GPIOF, +//! \b SYSCTL_PERIPH_GPIOG, \b SYSCTL_PERIPH_GPIOH, \b SYSCTL_PERIPH_GPIOJ, +//! \b SYSCTL_PERIPH_GPIOK, \b SYSCTL_PERIPH_GPIOL, \b SYSCTL_PERIPH_GPIOM, +//! \b SYSCTL_PERIPH_GPION, \b SYSCTL_PERIPH_GPIOP, \b SYSCTL_PERIPH_GPIOQ, +//! \b SYSCTL_PERIPH_HIBERNATE, \b SYSCTL_PERIPH_I2C0, \b SYSCTL_PERIPH_I2C1, +//! \b SYSCTL_PERIPH_I2C2, \b SYSCTL_PERIPH_I2C3, \b SYSCTL_PERIPH_I2C4, +//! \b SYSCTL_PERIPH_I2C5, \b SYSCTL_PERIPH_I2S0, \b SYSCTL_PERIPH_LPC0, +//! \b SYSCTL_PERIPH_PECI0, \b SYSCTL_PERIPH_PWM0, \b SYSCTL_PERIPH_PWM1, //! \b SYSCTL_PERIPH_QEI0, \b SYSCTL_PERIPH_QEI1, \b SYSCTL_PERIPH_SSI0, -//! \b SYSCTL_PERIPH_SSI1, \b SYSCTL_PERIPH_TIMER0, \b SYSCTL_PERIPH_TIMER1, -//! \b SYSCTL_PERIPH_TIMER2, \b SYSCTL_PERIPH_TIMER3, \b SYSCTL_PERIPH_TEMP, +//! \b SYSCTL_PERIPH_SSI1, \b SYSCTL_PERIPH_SSI2, \b SYSCTL_PERIPH_SSI3, +//! \b SYSCTL_PERIPH_TIMER0, \b SYSCTL_PERIPH_TIMER1, \b SYSCTL_PERIPH_TIMER2, +//! \b SYSCTL_PERIPH_TIMER3, \b SYSCTL_PERIPH_TIMER4, \b SYSCTL_PERIPH_TIMER5, //! \b SYSCTL_PERIPH_UART0, \b SYSCTL_PERIPH_UART1, \b SYSCTL_PERIPH_UART2, -//! \b SYSCTL_PERIPH_UDMA, \b SYSCTL_PERIPH_USB0, \b SYSCTL_PERIPH_WDOG0, or -//! \b SYSCTL_PERIPH_WDOG1. +//! \b SYSCTL_PERIPH_UART3, \b SYSCTL_PERIPH_UART4, \b SYSCTL_PERIPH_UART5, +//! \b SYSCTL_PERIPH_UART6, \b SYSCTL_PERIPH_UART7, \b SYSCTL_PERIPH_UDMA, +//! \b SYSCTL_PERIPH_USB0, \b SYSCTL_PERIPH_WDOG0, \b SYSCTL_PERIPH_WDOG1, +//! \b SYSCTL_PERIPH_WTIMER0, \b SYSCTL_PERIPH_WTIMER1, +//! \b SYSCTL_PERIPH_WTIMER2, \b SYSCTL_PERIPH_WTIMER3, +//! \b SYSCTL_PERIPH_WTIMER4, or \b SYSCTL_PERIPH_WTIMER5. //! //! \return None. // @@ -648,10 +1112,25 @@ SysCtlPeripheralSleepDisable(unsigned long ulPeripheral) ASSERT(SysCtlPeripheralValid(ulPeripheral)); // - // Disable this peripheral in sleep mode. + // See if the peripheral index is 15, indicating a peripheral that is + // accessed via the SYSCTL_SCGCperiph registers. // - HWREG(g_pulSCGCRegs[SYSCTL_PERIPH_INDEX(ulPeripheral)]) &= - ~SYSCTL_PERIPH_MASK(ulPeripheral); + if((ulPeripheral & 0xf0000000) == 0xf0000000) + { + // + // Disable this peripheral in sleep mode. + // + HWREGBITW(SYSCTL_SCGCBASE + ((ulPeripheral & 0xff00) >> 8), + ulPeripheral & 0xff) = 0; + } + else + { + // + // Disable this peripheral in sleep mode. + // + HWREG(g_pulSCGCRegs[SYSCTL_PERIPH_INDEX(ulPeripheral)]) &= + ~SYSCTL_PERIPH_MASK(ulPeripheral); + } } //***************************************************************************** @@ -661,11 +1140,11 @@ SysCtlPeripheralSleepDisable(unsigned long ulPeripheral) //! \param ulPeripheral is the peripheral to enable in deep-sleep mode. //! //! This function allows a peripheral to continue operating when the processor -//! goes into deep-sleep mode. Since the clocking configuration of the device -//! may change, not all peripherals can safely continue operating while the -//! processor is in sleep mode. Those that must run at a particular frequency -//! (such as a UART) will not work as expected if the clock changes. It is the -//! responsibility of the caller to make sensible choices. +//! goes into deep-sleep mode. Because the clocking configuration of the +//! device may change, not all peripherals can safely continue operating while +//! the processor is in sleep mode. Those that must run at a particular +//! frequency (such as a UART) do not work as expected if the clock changes. +//! It is the responsibility of the caller to make sensible choices. //! //! Deep-sleep mode clocking of peripherals must be enabled via //! SysCtlPeripheralClockGating(); if disabled, the peripheral deep-sleep mode @@ -675,18 +1154,28 @@ SysCtlPeripheralSleepDisable(unsigned long ulPeripheral) //! The \e ulPeripheral parameter must be only one of the following values: //! \b SYSCTL_PERIPH_ADC0, \b SYSCTL_PERIPH_ADC1, \b SYSCTL_PERIPH_CAN0, //! \b SYSCTL_PERIPH_CAN1, \b SYSCTL_PERIPH_CAN2, \b SYSCTL_PERIPH_COMP0, -//! \b SYSCTL_PERIPH_COMP1, \b SYSCTL_PERIPH_COMP2, \b SYSCTL_PERIPH_EPI0, -//! \b SYSCTL_PERIPH_ETH, \b SYSCTL_PERIPH_GPIOA, \b SYSCTL_PERIPH_GPIOB, -//! \b SYSCTL_PERIPH_GPIOC, \b SYSCTL_PERIPH_GPIOD, \b SYSCTL_PERIPH_GPIOE, -//! \b SYSCTL_PERIPH_GPIOF, \b SYSCTL_PERIPH_GPIOG, \b SYSCTL_PERIPH_GPIOH, -//! \b SYSCTL_PERIPH_GPIOJ, \b SYSCTL_PERIPH_HIBERNATE, \b SYSCTL_PERIPH_I2C0, -//! \b SYSCTL_PERIPH_I2C1, \b SYSCTL_PERIPH_I2S0, \b SYSCTL_PERIPH_PWM, +//! \b SYSCTL_PERIPH_COMP1, \b SYSCTL_PERIPH_COMP2, \b SYSCTL_PERIPH_EEPROM0, +//! \b SYSCTL_PERIPH_EPI0, \b SYSCTL_PERIPH_ETH, \b SYSCTL_PERIPH_FAN0, +//! \b SYSCTL_PERIPH_GPIOA, \b SYSCTL_PERIPH_GPIOB, \b SYSCTL_PERIPH_GPIOC, +//! \b SYSCTL_PERIPH_GPIOD, \b SYSCTL_PERIPH_GPIOE, \b SYSCTL_PERIPH_GPIOF, +//! \b SYSCTL_PERIPH_GPIOG, \b SYSCTL_PERIPH_GPIOH, \b SYSCTL_PERIPH_GPIOJ, +//! \b SYSCTL_PERIPH_GPIOK, \b SYSCTL_PERIPH_GPIOL, \b SYSCTL_PERIPH_GPIOM, +//! \b SYSCTL_PERIPH_GPION, \b SYSCTL_PERIPH_GPIOP, \b SYSCTL_PERIPH_GPIOQ, +//! \b SYSCTL_PERIPH_HIBERNATE, \b SYSCTL_PERIPH_I2C0, \b SYSCTL_PERIPH_I2C1, +//! \b SYSCTL_PERIPH_I2C2, \b SYSCTL_PERIPH_I2C3, \b SYSCTL_PERIPH_I2C4, +//! \b SYSCTL_PERIPH_I2C5, \b SYSCTL_PERIPH_I2S0, \b SYSCTL_PERIPH_LPC0, +//! \b SYSCTL_PERIPH_PECI0, \b SYSCTL_PERIPH_PWM0, \b SYSCTL_PERIPH_PWM1, //! \b SYSCTL_PERIPH_QEI0, \b SYSCTL_PERIPH_QEI1, \b SYSCTL_PERIPH_SSI0, -//! \b SYSCTL_PERIPH_SSI1, \b SYSCTL_PERIPH_TIMER0, \b SYSCTL_PERIPH_TIMER1, -//! \b SYSCTL_PERIPH_TIMER2, \b SYSCTL_PERIPH_TIMER3, \b SYSCTL_PERIPH_TEMP, +//! \b SYSCTL_PERIPH_SSI1, \b SYSCTL_PERIPH_SSI2, \b SYSCTL_PERIPH_SSI3, +//! \b SYSCTL_PERIPH_TIMER0, \b SYSCTL_PERIPH_TIMER1, \b SYSCTL_PERIPH_TIMER2, +//! \b SYSCTL_PERIPH_TIMER3, \b SYSCTL_PERIPH_TIMER4, \b SYSCTL_PERIPH_TIMER5, //! \b SYSCTL_PERIPH_UART0, \b SYSCTL_PERIPH_UART1, \b SYSCTL_PERIPH_UART2, -//! \b SYSCTL_PERIPH_UDMA, \b SYSCTL_PERIPH_USB0, \b SYSCTL_PERIPH_WDOG0, or -//! \b SYSCTL_PERIPH_WDOG1. +//! \b SYSCTL_PERIPH_UART3, \b SYSCTL_PERIPH_UART4, \b SYSCTL_PERIPH_UART5, +//! \b SYSCTL_PERIPH_UART6, \b SYSCTL_PERIPH_UART7, \b SYSCTL_PERIPH_UDMA, +//! \b SYSCTL_PERIPH_USB0, \b SYSCTL_PERIPH_WDOG0, \b SYSCTL_PERIPH_WDOG1, +//! \b SYSCTL_PERIPH_WTIMER0, \b SYSCTL_PERIPH_WTIMER1, +//! \b SYSCTL_PERIPH_WTIMER2, \b SYSCTL_PERIPH_WTIMER3, +//! \b SYSCTL_PERIPH_WTIMER4, or \b SYSCTL_PERIPH_WTIMER5. //! //! \return None. // @@ -700,10 +1189,25 @@ SysCtlPeripheralDeepSleepEnable(unsigned long ulPeripheral) ASSERT(SysCtlPeripheralValid(ulPeripheral)); // - // Enable this peripheral in deep-sleep mode. + // See if the peripheral index is 15, indicating a peripheral that is + // accessed via the SYSCTL_DCGCperiph registers. // - HWREG(g_pulDCGCRegs[SYSCTL_PERIPH_INDEX(ulPeripheral)]) |= - SYSCTL_PERIPH_MASK(ulPeripheral); + if((ulPeripheral & 0xf0000000) == 0xf0000000) + { + // + // Enable this peripheral in deep-sleep mode. + // + HWREGBITW(SYSCTL_DCGCBASE + ((ulPeripheral & 0xff00) >> 8), + ulPeripheral & 0xff) = 1; + } + else + { + // + // Enable this peripheral in deep-sleep mode. + // + HWREG(g_pulDCGCRegs[SYSCTL_PERIPH_INDEX(ulPeripheral)]) |= + SYSCTL_PERIPH_MASK(ulPeripheral); + } } //***************************************************************************** @@ -717,7 +1221,7 @@ SysCtlPeripheralDeepSleepEnable(unsigned long ulPeripheral) //! to lower the current draw of the device, and can keep peripherals that //! require a particular clock frequency from operating when the clock changes //! as a result of entering deep-sleep mode. If enabled (via -//! SysCtlPeripheralEnable()), the peripheral will automatically resume +//! SysCtlPeripheralEnable()), the peripheral automatically resumes //! operation when the processor leaves deep-sleep mode, maintaining its entire //! state from before deep-sleep mode was entered. //! @@ -729,18 +1233,28 @@ SysCtlPeripheralDeepSleepEnable(unsigned long ulPeripheral) //! The \e ulPeripheral parameter must be only one of the following values: //! \b SYSCTL_PERIPH_ADC0, \b SYSCTL_PERIPH_ADC1, \b SYSCTL_PERIPH_CAN0, //! \b SYSCTL_PERIPH_CAN1, \b SYSCTL_PERIPH_CAN2, \b SYSCTL_PERIPH_COMP0, -//! \b SYSCTL_PERIPH_COMP1, \b SYSCTL_PERIPH_COMP2, \b SYSCTL_PERIPH_EPI0, -//! \b SYSCTL_PERIPH_ETH, \b SYSCTL_PERIPH_GPIOA, \b SYSCTL_PERIPH_GPIOB, -//! \b SYSCTL_PERIPH_GPIOC, \b SYSCTL_PERIPH_GPIOD, \b SYSCTL_PERIPH_GPIOE, -//! \b SYSCTL_PERIPH_GPIOF, \b SYSCTL_PERIPH_GPIOG, \b SYSCTL_PERIPH_GPIOH, -//! \b SYSCTL_PERIPH_GPIOJ, \b SYSCTL_PERIPH_HIBERNATE, \b SYSCTL_PERIPH_I2C0, -//! \b SYSCTL_PERIPH_I2C1, \b SYSCTL_PERIPH_I2S0, \b SYSCTL_PERIPH_PWM, +//! \b SYSCTL_PERIPH_COMP1, \b SYSCTL_PERIPH_COMP2, \b SYSCTL_PERIPH_EEPROM0, +//! \b SYSCTL_PERIPH_EPI0, \b SYSCTL_PERIPH_ETH, \b SYSCTL_PERIPH_FAN0, +//! \b SYSCTL_PERIPH_GPIOA, \b SYSCTL_PERIPH_GPIOB, \b SYSCTL_PERIPH_GPIOC, +//! \b SYSCTL_PERIPH_GPIOD, \b SYSCTL_PERIPH_GPIOE, \b SYSCTL_PERIPH_GPIOF, +//! \b SYSCTL_PERIPH_GPIOG, \b SYSCTL_PERIPH_GPIOH, \b SYSCTL_PERIPH_GPIOJ, +//! \b SYSCTL_PERIPH_GPIOK, \b SYSCTL_PERIPH_GPIOL, \b SYSCTL_PERIPH_GPIOM, +//! \b SYSCTL_PERIPH_GPION, \b SYSCTL_PERIPH_GPIOP, \b SYSCTL_PERIPH_GPIOQ, +//! \b SYSCTL_PERIPH_HIBERNATE, \b SYSCTL_PERIPH_I2C0, \b SYSCTL_PERIPH_I2C1, +//! \b SYSCTL_PERIPH_I2C2, \b SYSCTL_PERIPH_I2C3, \b SYSCTL_PERIPH_I2C4, +//! \b SYSCTL_PERIPH_I2C5, \b SYSCTL_PERIPH_I2S0, \b SYSCTL_PERIPH_LPC0, +//! \b SYSCTL_PERIPH_PECI0, \b SYSCTL_PERIPH_PWM0, \b SYSCTL_PERIPH_PWM1, //! \b SYSCTL_PERIPH_QEI0, \b SYSCTL_PERIPH_QEI1, \b SYSCTL_PERIPH_SSI0, -//! \b SYSCTL_PERIPH_SSI1, \b SYSCTL_PERIPH_TIMER0, \b SYSCTL_PERIPH_TIMER1, -//! \b SYSCTL_PERIPH_TIMER2, \b SYSCTL_PERIPH_TIMER3, \b SYSCTL_PERIPH_TEMP, +//! \b SYSCTL_PERIPH_SSI1, \b SYSCTL_PERIPH_SSI2, \b SYSCTL_PERIPH_SSI3, +//! \b SYSCTL_PERIPH_TIMER0, \b SYSCTL_PERIPH_TIMER1, \b SYSCTL_PERIPH_TIMER2, +//! \b SYSCTL_PERIPH_TIMER3, \b SYSCTL_PERIPH_TIMER4, \b SYSCTL_PERIPH_TIMER5, //! \b SYSCTL_PERIPH_UART0, \b SYSCTL_PERIPH_UART1, \b SYSCTL_PERIPH_UART2, -//! \b SYSCTL_PERIPH_UDMA, \b SYSCTL_PERIPH_USB0, \b SYSCTL_PERIPH_WDOG0, or -//! \b SYSCTL_PERIPH_WDOG1. +//! \b SYSCTL_PERIPH_UART3, \b SYSCTL_PERIPH_UART4, \b SYSCTL_PERIPH_UART5, +//! \b SYSCTL_PERIPH_UART6, \b SYSCTL_PERIPH_UART7, \b SYSCTL_PERIPH_UDMA, +//! \b SYSCTL_PERIPH_USB0, \b SYSCTL_PERIPH_WDOG0, \b SYSCTL_PERIPH_WDOG1, +//! \b SYSCTL_PERIPH_WTIMER0, \b SYSCTL_PERIPH_WTIMER1, +//! \b SYSCTL_PERIPH_WTIMER2, \b SYSCTL_PERIPH_WTIMER3, +//! \b SYSCTL_PERIPH_WTIMER4, or \b SYSCTL_PERIPH_WTIMER5. //! //! \return None. // @@ -754,10 +1268,25 @@ SysCtlPeripheralDeepSleepDisable(unsigned long ulPeripheral) ASSERT(SysCtlPeripheralValid(ulPeripheral)); // - // Disable this peripheral in deep-sleep mode. + // See if the peripheral index is 15, indicating a peripheral that is + // accessed via the SYSCTL_DCGCperiph registers. // - HWREG(g_pulDCGCRegs[SYSCTL_PERIPH_INDEX(ulPeripheral)]) &= - ~SYSCTL_PERIPH_MASK(ulPeripheral); + if((ulPeripheral & 0xf0000000) == 0xf0000000) + { + // + // Disable this peripheral in deep-sleep mode. + // + HWREGBITW(SYSCTL_DCGCBASE + ((ulPeripheral & 0xff00) >> 8), + ulPeripheral & 0xff) = 0; + } + else + { + // + // Disable this peripheral in deep-sleep mode. + // + HWREG(g_pulDCGCRegs[SYSCTL_PERIPH_INDEX(ulPeripheral)]) &= + ~SYSCTL_PERIPH_MASK(ulPeripheral); + } } //***************************************************************************** @@ -769,10 +1298,10 @@ SysCtlPeripheralDeepSleepDisable(unsigned long ulPeripheral) //! //! This function controls how peripherals are clocked when the processor goes //! into sleep or deep-sleep mode. By default, the peripherals are clocked the -//! same as in run mode; if peripheral clock gating is enabled they are clocked -//! according to the configuration set by SysCtlPeripheralSleepEnable(), -//! SysCtlPeripheralSleepDisable(), SysCtlPeripheralDeepSleepEnable(), and -//! SysCtlPeripheralDeepSleepDisable(). +//! same as in run mode; if peripheral clock gating is enabled, they are +//! clocked according to the configuration set by +//! SysCtlPeripheralSleepEnable(), SysCtlPeripheralSleepDisable(), +//! SysCtlPeripheralDeepSleepEnable(), and SysCtlPeripheralDeepSleepDisable(). //! //! \return None. // @@ -800,20 +1329,24 @@ SysCtlPeripheralClockGating(tBoolean bEnable) //! \param pfnHandler is a pointer to the function to be called when the system //! control interrupt occurs. //! -//! This sets the handler to be called when a system control interrupt occurs. -//! This will enable the global interrupt in the interrupt controller; specific -//! system control interrupts must be enabled via SysCtlIntEnable(). It is the -//! interrupt handler's responsibility to clear the interrupt source via -//! SysCtlIntClear(). +//! This function registers the handler to be called when a system control +//! interrupt occurs. This function enables the global interrupt in the +//! interrupt controller; specific system control interrupts must be enabled +//! via SysCtlIntEnable(). It is the interrupt handler's responsibility to +//! clear the interrupt source via SysCtlIntClear(). //! //! System control can generate interrupts when the PLL achieves lock, if the //! internal LDO current limit is exceeded, if the internal oscillator fails, //! if the main oscillator fails, if the internal LDO output voltage droops too -//! much, if the external voltage droops too much, or if the PLL fails. +//! much, if the external voltage droops too much, or if the PLL fails. //! //! \sa IntRegister() for important information about registering interrupt //! handlers. //! +//! \note The events that cause system control interrupts vary based on the +//! Stellaris part in use. Please consult the data sheet for the part you are +//! using to determine which interrupt sources are available. +//! //! \return None. // //***************************************************************************** @@ -835,9 +1368,9 @@ SysCtlIntRegister(void (*pfnHandler)(void)) // //! Unregisters the interrupt handler for the system control interrupt. //! -//! This function will clear the handler to be called when a system control -//! interrupt occurs. This will also mask off the interrupt in the interrupt -//! controller so that the interrupt handler no longer is called. +//! This function unregisters the handler to be called when a system control +//! interrupt occurs. This function also masks off the interrupt in the +//! interrupt controller so that the interrupt handler no longer is called. //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -868,9 +1401,13 @@ SysCtlIntUnregister(void) //! \b SYSCTL_INT_IOSC_FAIL, \b SYSCTL_INT_MOSC_FAIL, \b SYSCTL_INT_POR, //! \b SYSCTL_INT_BOR, and/or \b SYSCTL_INT_PLL_FAIL. //! -//! Enables the indicated system control interrupt sources. Only the sources -//! that are enabled can be reflected to the processor interrupt; disabled -//! sources have no effect on the processor. +//! This function enables the indicated system control interrupt sources. Only +//! the sources that are enabled can be reflected to the processor interrupt; +//! disabled sources have no effect on the processor. +//! +//! \note The interrupt sources vary based on the Stellaris part in use. +//! Please consult the data sheet for the part you are using to determine +//! which interrupt sources are available. //! //! \return None. // @@ -893,9 +1430,13 @@ SysCtlIntEnable(unsigned long ulInts) //! \b SYSCTL_INT_IOSC_FAIL, \b SYSCTL_INT_MOSC_FAIL, \b SYSCTL_INT_POR, //! \b SYSCTL_INT_BOR, and/or \b SYSCTL_INT_PLL_FAIL. //! -//! Disables the indicated system control interrupt sources. Only the sources -//! that are enabled can be reflected to the processor interrupt; disabled -//! sources have no effect on the processor. +//! This function disables the indicated system control interrupt sources. +//! Only the sources that are enabled can be reflected to the processor +//! interrupt; disabled sources have no effect on the processor. +//! +//! \note The interrupt sources vary based on the Stellaris part in use. +//! Please consult the data sheet for the part you are using to determine +//! which interrupt sources are available. //! //! \return None. // @@ -919,17 +1460,21 @@ SysCtlIntDisable(unsigned long ulInts) //! \b SYSCTL_INT_BOR, and/or \b SYSCTL_INT_PLL_FAIL. //! //! The specified system control interrupt sources are cleared, so that they no -//! longer assert. This must be done in the interrupt handler to keep it from -//! being called again immediately upon exit. +//! longer assert. This function must be called in the interrupt handler to +//! keep it from being called again immediately upon exit. //! -//! \note Since there is a write buffer in the Cortex-M3 processor, it may take -//! several clock cycles before the interrupt source is actually cleared. +//! \note Because there is a write buffer in the Cortex-M processor, it may +//! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid //! returning from the interrupt handler before the interrupt source is //! actually cleared. Failure to do so may result in the interrupt handler -//! being immediately reentered (since NVIC still sees the interrupt source -//! asserted). +//! being immediately reentered (because the interrupt controller still sees +//! the interrupt source asserted). +//! +//! \note The interrupt sources vary based on the Stellaris part in use. +//! Please consult the data sheet for the part you are using to determine +//! which interrupt sources are available. //! //! \return None. // @@ -950,14 +1495,18 @@ SysCtlIntClear(unsigned long ulInts) //! \param bMasked is false if the raw interrupt status is required and true if //! the masked interrupt status is required. //! -//! This returns the interrupt status for the system controller. Either the -//! raw interrupt status or the status of interrupts that are allowed to -//! reflect to the processor can be returned. +//! This function returns the interrupt status for the system controller. +//! Either the raw interrupt status or the status of interrupts that are +//! allowed to reflect to the processor can be returned. //! //! \return The current interrupt status, enumerated as a bit field of //! \b SYSCTL_INT_PLL_LOCK, \b SYSCTL_INT_CUR_LIMIT, \b SYSCTL_INT_IOSC_FAIL, //! \b SYSCTL_INT_MOSC_FAIL, \b SYSCTL_INT_POR, \b SYSCTL_INT_BOR, and //! \b SYSCTL_INT_PLL_FAIL. +//! +//! \note The interrupt sources vary based on the Stellaris part in use. +//! Please consult the data sheet for the part you are using to determine +//! which interrupt sources are available. // //***************************************************************************** unsigned long @@ -987,8 +1536,11 @@ SysCtlIntStatus(tBoolean bMasked) //! \b SYSCTL_LDO_2_55V, \b SYSCTL_LDO_2_60V, \b SYSCTL_LDO_2_65V, //! \b SYSCTL_LDO_2_70V, or \b SYSCTL_LDO_2_75V. //! -//! This function sets the output voltage of the LDO. The default voltage is -//! 2.5 V; it can be adjusted +/- 10%. +//! This function sets the output voltage of the LDO. +//! +//! \note The default LDO voltage and the adjustment range varies with the +//! Stellaris part in use. Please consult the datasheet for the part you are +//! using to determine the default voltage and range available. //! //! \return None. // @@ -1024,7 +1576,7 @@ SysCtlLDOSet(unsigned long ulVoltage) //! This function determines the output voltage of the LDO, as specified by the //! control register. //! -//! \return Returns the current voltage of the LDO; will be one of +//! \return Returns the current voltage of the LDO; is one of //! \b SYSCTL_LDO_2_25V, \b SYSCTL_LDO_2_30V, \b SYSCTL_LDO_2_35V, //! \b SYSCTL_LDO_2_40V, \b SYSCTL_LDO_2_45V, \b SYSCTL_LDO_2_50V, //! \b SYSCTL_LDO_2_55V, \b SYSCTL_LDO_2_60V, \b SYSCTL_LDO_2_65V, @@ -1074,10 +1626,10 @@ SysCtlLDOConfigSet(unsigned long ulConfig) // //! Resets the device. //! -//! This function will perform a software reset of the entire device. The -//! processor and all peripherals will be reset and all device registers will -//! return to their default values (with the exception of the reset cause -//! register, which will maintain its current value but have the software reset +//! This function performs a software reset of the entire device. The +//! processor and all peripherals are reset and all device registers are +//! returned to their default values (with the exception of the reset cause +//! register, which maintains its current value but has the software reset //! bit set as well). //! //! \return This function does not return. @@ -1087,8 +1639,8 @@ void SysCtlReset(void) { // - // Perform a software reset request. This will cause the device to reset, - // no further code will be executed. + // Perform a software reset request. This request causes the device to + // reset, no further code is executed. // HWREG(NVIC_APINT) = NVIC_APINT_VECTKEY | NVIC_APINT_SYSRESETREQ; @@ -1105,7 +1657,7 @@ SysCtlReset(void) // //! Puts the processor into sleep mode. //! -//! This function places the processor into sleep mode; it will not return +//! This function places the processor into sleep mode; it does not return //! until the processor returns to run mode. The peripherals that are enabled //! via SysCtlPeripheralSleepEnable() continue to operate and can wake up the //! processor (if automatic clock gating is enabled with @@ -1128,7 +1680,7 @@ SysCtlSleep(void) // //! Puts the processor into deep-sleep mode. //! -//! This function places the processor into deep-sleep mode; it will not return +//! This function places the processor into deep-sleep mode; it does not return //! until the processor returns to run mode. The peripherals that are enabled //! via SysCtlPeripheralDeepSleepEnable() continue to operate and can wake up //! the processor (if automatic clock gating is enabled with @@ -1161,10 +1713,11 @@ SysCtlDeepSleep(void) // //! Gets the reason for a reset. //! -//! This function will return the reason(s) for a reset. Since the reset -//! reasons are sticky until either cleared by software or an external reset, +//! This function returns the reason(s) for a reset. Because the reset +//! reasons are sticky until either cleared by software or an external reset +//! (for Sandstorm-class devices) or a power-on reset (for all other classes), //! multiple reset reasons may be returned if multiple resets have occurred. -//! The reset reason will be a logical OR of \b SYSCTL_CAUSE_LDO, +//! The reset reason is a logical OR of \b SYSCTL_CAUSE_LDO, //! \b SYSCTL_CAUSE_SW, \b SYSCTL_CAUSE_WDOG, \b SYSCTL_CAUSE_BOR, //! \b SYSCTL_CAUSE_POR, and/or \b SYSCTL_CAUSE_EXT. //! @@ -1223,6 +1776,10 @@ SysCtlResetCauseClear(unsigned long ulCauses) //! When it detects a brown-out condition, it can either reset the device or //! generate a processor interrupt. //! +//! \note The availability of the resample feature is only available on +//! Sandstorm-class devices. Please consult the datasheet for the part you +//! are using to determine whether this feature is available. +//! //! \return None. // //***************************************************************************** @@ -1283,21 +1840,126 @@ SysCtlDelay(unsigned long ulCount) bx lr; } #endif +// +// For CCS implement this function in pure assembly. This prevents the TI +// compiler from doing funny things with the optimizer. +// #if defined(ccs) -volatile unsigned long g_ulInlineCCSWorkaround; -void -SysCtlDelay(unsigned long ulCount) -{ - __asm("delay?: subs r0, #1\n" - " bne.n delay?\n" + __asm(" .sect \".text:SysCtlDelay\"\n" + " .clink\n" + " .thumbfunc SysCtlDelay\n" + " .thumb\n" + " .global SysCtlDelay\n" + "SysCtlDelay:\n" + " subs r0, #1\n" + " bne.n SysCtlDelay\n" " bx lr\n"); +#endif + +//***************************************************************************** +// +//! Sets the configuration of the main oscillator (MOSC) control. +//! +//! \param ulConfig is the required configuration of the MOSC control. +//! +//! This function configures the control of the main oscillator. The +//! \e ulConfig is specified as follows: +//! +//! - \b SYSCTL_MOSC_VALIDATE enables the MOSC verification circuit that +//! detects a failure of the main oscillator (such as a loss of the clock). +//! - \b SYSCTL_MOSC_INTERRUPT indicates that a MOSC failure should generate an +//! interrupt instead of resetting the processor. +//! - \b SYSCTL_MOSC_NO_XTAL indicates that there is no crystal connected to +//! the OSC0/OSC1 pins, allowing power consumption to be reduced. +//! +//! \note The availability of MOSC control varies based on the Stellaris part +//! in use. Please consult the data sheet for the part you are using to +//! determine whether this support is available. In addition, the capability +//! of MOSC control varies based on the Stellaris part in use. +//! +//! \return None. +// +//***************************************************************************** +void +SysCtlMOSCConfigSet(unsigned long ulConfig) +{ + // + // Configure the MOSC control. + // + HWREG(SYSCTL_MOSCCTL) = ulConfig; +} + +//***************************************************************************** +// +//! Calibrates the precision internal oscillator. +//! +//! \param ulType is the type of calibration to perform. +//! +//! This function performs a calibration of the PIOSC. There are three types +//! of calibration available; the desired calibration type as specified in +//! \e ulType is one of: +//! +//! - \b SYSCTL_PIOSC_CAL_AUTO to perform automatic calibration using the +//! 32-kHz clock from the hibernate module as a reference. This type is +//! only possible on parts that have a hibernate module, and then only if +//! it is enabled and the hibernate module's RTC is also enabled. +//! +//! - \b SYSCTL_PIOSC_CAL_FACT to reset the PIOSC calibration to the factory +//! provided calibration. +//! +//! - \b SYSCTL_PIOSC_CAL_USER to set the PIOSC calibration to a user-supplied +//! value. The value to be used is ORed into the lower 7-bits of this value, +//! with 0x40 being the ``nominal'' value (in other words, if everything were +//! perfect, 0x40 provides exactly 16 MHz). Values larger than 0x40 +//! slow down PIOSC, and values smaller than 0x40 speed up PIOSC. +//! +//! \return None. +// +//***************************************************************************** +unsigned long +SysCtlPIOSCCalibrate(unsigned long ulType) +{ + // + // Perform the requested calibration. If performing user calibration, the + // UTEN bit must be set with one write, then the UT field in a second + // write, and the UPDATE bit in a final write. For other calibration + // types, a single write to set UPDATE or CAL is all that is required. + // + if(ulType & (SYSCTL_PIOSCCAL_UTEN | SYSCTL_PIOSCCAL_UPDATE)) + { + HWREG(SYSCTL_PIOSCCAL) = ulType & SYSCTL_PIOSCCAL_UTEN; + HWREG(SYSCTL_PIOSCCAL) = + ulType & (SYSCTL_PIOSCCAL_UTEN | SYSCTL_PIOSCCAL_UT_M); + } + HWREG(SYSCTL_PIOSCCAL) = ulType; // - // This is needed to keep TI compiler from optimizing away this code. + // See if an automatic calibration was requested. // - g_ulInlineCCSWorkaround += ulCount; + if(ulType & SYSCTL_PIOSCCAL_CAL) + { + // + // Wait for the automatic calibration to complete. + // + while((HWREG(SYSCTL_PIOSCSTAT) & SYSCTL_PIOSCSTAT_CR_M) == 0) + { + } + + // + // If the automatic calibration failed, return an error. + // + if((HWREG(SYSCTL_PIOSCSTAT) & SYSCTL_PIOSCSTAT_CR_M) != + SYSCTL_PIOSCSTAT_CRPASS) + { + return(0); + } + } + + // + // The calibration was successful. + // + return(1); } -#endif //***************************************************************************** // @@ -1315,7 +1977,9 @@ SysCtlDelay(unsigned long ulCount) //! The system clock divider is chosen with one of the following values: //! \b SYSCTL_SYSDIV_1, \b SYSCTL_SYSDIV_2, \b SYSCTL_SYSDIV_3, ... //! \b SYSCTL_SYSDIV_64. Only \b SYSCTL_SYSDIV_1 through \b SYSCTL_SYSDIV_16 -//! are valid on Sandstorm-class devices. +//! are valid on Sandstorm-class devices. Half-dividers, such as +//! \b SYSCTL_SYSDIV_2_5 and \b SYSCTL_SYSDIV_3_5. are available on Tempest-, +//! Firestorm-, and Blizzard-class devices. //! //! The use of the PLL is chosen with either \b SYSCTL_USE_PLL or //! \b SYSCTL_USE_OSC. @@ -1328,10 +1992,16 @@ SysCtlDelay(unsigned long ulCount) //! \b SYSCTL_XTAL_6_14MHZ, \b SYSCTL_XTAL_7_37MHZ, \b SYSCTL_XTAL_8MHZ, //! \b SYSCTL_XTAL_8_19MHZ, \b SYSCTL_XTAL_10MHZ, \b SYSCTL_XTAL_12MHZ, //! \b SYSCTL_XTAL_12_2MHZ, \b SYSCTL_XTAL_13_5MHZ, \b SYSCTL_XTAL_14_3MHZ, -//! \b SYSCTL_XTAL_16MHZ, or \b SYSCTL_XTAL_16_3MHZ. Values below -//! \b SYSCTL_XTAL_3_57MHZ are not valid when the PLL is in operation. On -//! Sandstorm- and Fury-class devices, values above \b SYSCTL_XTAL_8_19MHZ are -//! not valid. +//! \b SYSCTL_XTAL_16MHZ, \b SYSCTL_XTAL_16_3MHZ, \b SYSCTL_XTAL_18MHZ, +//! \b SYSCTL_XTAL_20MHZ, \b SYSCTL_XTAL_24MHZ, or \b SYSCTL_XTAL_25MHz. +//! Values below \b SYSCTL_XTAL_3_57MHZ are not valid when the PLL is in +//! operation on Sandstorm-, Fury-, Dustdevil-, Tempest-, and Firestorm-class. +//! devices. Values below \b SYSCTL_XTAL_5MHZ are not valid when the PLL is in +//! operation on Blizzard-class devices. Values below \b SYSCTL_XTAL_4MHZ +//! are never valid on Blizzard-class devices. On Sandstorm- and Fury-class +//! devices, values above \b SYSCTL_XTAL_8_19MHZ are not valid. On Dustdevil-, +//! Tempest-, and Firestorm-class devices, values above \b SYSCTL_XTAL_16_3MHZ +//! are not valid. //! //! The oscillator source is chosen with one of the following values: //! \b SYSCTL_OSC_MAIN, \b SYSCTL_OSC_INT, \b SYSCTL_OSC_INT4, @@ -1344,7 +2014,7 @@ SysCtlDelay(unsigned long ulCount) //! \b SYSCTL_INT_OSC_DIS and \b SYSCTL_MAIN_OSC_DIS flags, respectively. //! The external oscillator must be enabled in order to use an external clock //! source. Note that attempts to disable the oscillator used to clock the -//! device will be prevented by the hardware. +//! device is prevented by the hardware. //! //! To clock the system from an external source (such as an external crystal //! oscillator), use \b SYSCTL_USE_OSC \b | \b SYSCTL_OSC_MAIN. To clock the @@ -1354,10 +2024,10 @@ SysCtlDelay(unsigned long ulCount) //! crystal with one of the \b SYSCTL_XTAL_xxx values. //! //! \note If selecting the PLL as the system clock source (that is, via -//! \b SYSCTL_USE_PLL), this function will poll the PLL lock interrupt to +//! \b SYSCTL_USE_PLL), this function polls the PLL lock interrupt to //! determine when the PLL has locked. If an interrupt handler for the //! system control interrupt is in place, and it responds to and clears the -//! PLL lock interrupt, this function will delay until its timeout has occurred +//! PLL lock interrupt, this function delays until its timeout has occurred //! instead of completing as soon as PLL lock is achieved. //! //! \return None. @@ -1375,7 +2045,7 @@ SysCtlClockSet(unsigned long ulConfig) if(CLASS_IS_SANDSTORM && (ulConfig & SYSCTL_RCC2_USERCC2)) { // - // Return without changing the clocking since the requested + // Return without changing the clocking because the requested // configuration can not be achieved. // return; @@ -1383,8 +2053,8 @@ SysCtlClockSet(unsigned long ulConfig) // // Get the current value of the RCC and RCC2 registers. If using a - // Sandstorm-class device, the RCC2 register will read back as zero and the - // writes to it from within this function will be ignored. + // Sandstorm-class device, the RCC2 register reads back as zero and the + // writes to it from within this function are ignored. // ulRCC = HWREG(SYSCTL_RCC); ulRCC2 = HWREG(SYSCTL_RCC2); @@ -1447,21 +2117,36 @@ SysCtlClockSet(unsigned long ulConfig) } // - // Set the new crystal value, oscillator source, and PLL configuration. - // Since the OSCSRC2 field in RCC2 overlaps the XTAL field in RCC, the - // OSCSRC field has a special encoding within ulConfig to avoid the - // overlap. + // Set the new crystal value and oscillator source. Because the OSCSRC2 + // field in RCC2 overlaps the XTAL field in RCC, the OSCSRC field has a + // special encoding within ulConfig to avoid the overlap. // - ulRCC &= ~(SYSCTL_RCC_XTAL_M | SYSCTL_RCC_OSCSRC_M | - SYSCTL_RCC_PWRDN | SYSCTL_RCC_OEN); - ulRCC |= ulConfig & (SYSCTL_RCC_XTAL_M | SYSCTL_RCC_OSCSRC_M | - SYSCTL_RCC_PWRDN | SYSCTL_RCC_OEN); - ulRCC2 &= ~(SYSCTL_RCC2_USERCC2 | SYSCTL_RCC2_OSCSRC2_M | - SYSCTL_RCC2_PWRDN2); - ulRCC2 |= ulConfig & (SYSCTL_RCC2_USERCC2 | SYSCTL_RCC_OSCSRC_M | - SYSCTL_RCC2_PWRDN2); + ulRCC &= ~(SYSCTL_RCC_XTAL_M | SYSCTL_RCC_OSCSRC_M); + ulRCC |= ulConfig & (SYSCTL_RCC_XTAL_M | SYSCTL_RCC_OSCSRC_M); + ulRCC2 &= ~(SYSCTL_RCC2_USERCC2 | SYSCTL_RCC2_OSCSRC2_M); + ulRCC2 |= ulConfig & (SYSCTL_RCC2_USERCC2 | SYSCTL_RCC_OSCSRC_M); ulRCC2 |= (ulConfig & 0x00000008) << 3; + // + // Write the new RCC value. + // + HWREG(SYSCTL_RCC) = ulRCC; + HWREG(SYSCTL_RCC2) = ulRCC2; + + // + // Wait for a bit so that new crystal value and oscillator source can take + // effect. + // + SysCtlDelay(16); + + // + // Set the PLL configuration. + // + ulRCC &= ~(SYSCTL_RCC_PWRDN | SYSCTL_RCC_OEN); + ulRCC |= ulConfig & (SYSCTL_RCC_PWRDN | SYSCTL_RCC_OEN); + ulRCC2 &= ~(SYSCTL_RCC2_PWRDN2); + ulRCC2 |= ulConfig & SYSCTL_RCC2_PWRDN2; + // // Clear the PLL lock interrupt. // @@ -1481,15 +2166,9 @@ SysCtlClockSet(unsigned long ulConfig) HWREG(SYSCTL_RCC2) = ulRCC2; } - // - // Wait for a bit so that new crystal value and oscillator source can take - // effect. - // - SysCtlDelay(16); - // // Set the requested system divider and disable the appropriate - // oscillators. This will not get written immediately. + // oscillators. This value is not written immediately. // ulRCC &= ~(SYSCTL_RCC_SYSDIV_M | SYSCTL_RCC_USESYSDIV | SYSCTL_RCC_IOSCDIS | SYSCTL_RCC_MOSCDIS); @@ -1547,14 +2226,15 @@ SysCtlClockSet(unsigned long ulConfig) // //! Gets the processor clock rate. //! -//! This function determines the clock rate of the processor clock. This is -//! also the clock rate of all the peripheral modules (with the exception of -//! PWM, which has its own clock divider). +//! This function determines the clock rate of the processor clock, which is +//! also the clock rate of the peripheral modules (with the exception of +//! PWM, which has its own clock divider; other peripherals may have different +//! clocking, see the device data sheet for details). //! -//! \note This will not return accurate results if SysCtlClockSet() has not +//! \note This cannot return accurate results if SysCtlClockSet() has not //! been called to configure the clocking of the device, or if the device is //! directly clocked from a crystal (or a clock source) that is not one of the -//! supported crystal frequencies. In the later case, this function should be +//! supported crystal frequencies. In the latter case, this function should be //! modified to directly return the correct system clock rate. //! //! \return The processor clock rate. @@ -1564,11 +2244,12 @@ unsigned long SysCtlClockGet(void) { unsigned long ulRCC, ulRCC2, ulPLL, ulClk; + unsigned long ulPLL1; // // Read RCC and RCC2. For Sandstorm-class devices (which do not have - // RCC2), the RCC2 read will return 0, which indicates that RCC2 is - // disabled (since the SYSCTL_RCC2_USERCC2 bit is clear). + // RCC2), the RCC2 read returns 0, indicating that RCC2 is + // disabled (because the SYSCTL_RCC2_USERCC2 bit is clear). // ulRCC = HWREG(SYSCTL_RCC); ulRCC2 = HWREG(SYSCTL_RCC2); @@ -1612,7 +2293,7 @@ SysCtlClockGet(void) { // // The internal oscillator on a rev A2 Fury-class device and a - // rev A0 Dustdevil-class device is 12 MHz +/- 30%. + // Dustdevil-class device is 12 MHz +/- 30%. // ulClk = 12000000; } @@ -1647,7 +2328,7 @@ SysCtlClockGet(void) { // // The internal oscillator on a rev A2 Fury-class device and a - // rev A0 Dustdevil-class device is 12 MHz +/- 30%. + // Dustdevil-class device is 12 MHz +/- 30%. // ulClk = 12000000 / 4; } @@ -1662,19 +2343,19 @@ SysCtlClockGet(void) } // - // The internal 30 KHz oscillator is the source clock. + // The internal 30-KHz oscillator is the source clock. // case SYSCTL_RCC_OSCSRC_30: { // - // The internal 30 KHz oscillator has an accuracy of +/- 30%. + // The internal 30-KHz oscillator has an accuracy of +/- 30%. // ulClk = 30000; break; } // - // The 4.19 MHz clock from the hibernate module is the clock source. + // The 4.194304-MHz clock from the hibernate module is the clock source. // case SYSCTL_RCC2_OSCSRC2_419: { @@ -1683,7 +2364,7 @@ SysCtlClockGet(void) } // - // The 32 KHz clock from the hibernate module is the source clock. + // The 32.768-KHz clock from the hibernate module is the source clock. // case SYSCTL_RCC2_OSCSRC2_32: { @@ -1708,57 +2389,93 @@ SysCtlClockGet(void) (!(ulRCC2 & SYSCTL_RCC2_USERCC2) && !(ulRCC & SYSCTL_RCC_BYPASS))) { // - // Get the PLL configuration. + // See if this is a Blizzard-class device. // - ulPLL = HWREG(SYSCTL_PLLCFG); - - // - // See if this is a Sandstorm-class or Fury-class device. - // - if(CLASS_IS_SANDSTORM) + if(CLASS_IS_BLIZZARD) { // - // Compute the PLL output frequency based on its input frequency. - // The formula for a Sandstorm-class devices is - // "(xtal * (f + 2)) / (r + 2)". + // Read the two PLL frequency registers. The formula for a + // Blizzard-class device is "(xtal * m) / ((q + 1) * (n + 1))". // - ulClk = ((ulClk * (((ulPLL & SYSCTL_PLLCFG_F_M) >> - SYSCTL_PLLCFG_F_S) + 2)) / - (((ulPLL & SYSCTL_PLLCFG_R_M) >> - SYSCTL_PLLCFG_R_S) + 2)); + ulPLL = HWREG(SYSCTL_PLLFREQ0); + ulPLL1 = HWREG(SYSCTL_PLLFREQ1); + + // + // Divide the input clock by the dividers. + // + ulClk /= ((((ulPLL1 & SYSCTL_PLLFREQ1_Q_M) >> + SYSCTL_PLLFREQ1_Q_S) + 1) * + (((ulPLL1 & SYSCTL_PLLFREQ1_N_M) >> + SYSCTL_PLLFREQ1_N_S) + 1) * 2); + + // + // Multiply the clock by the multiplier, which is split into an + // integer part and a fractional part. + // + ulClk = ((ulClk * ((ulPLL & SYSCTL_PLLFREQ0_MINT_M) >> + SYSCTL_PLLFREQ0_MINT_S)) + + ((ulClk * ((ulPLL & SYSCTL_PLLFREQ0_MFRAC_M) >> + SYSCTL_PLLFREQ0_MFRAC_S)) >> 10)); } + + // + // Older device classes used a different PLL. + // else { // - // Compute the PLL output frequency based on its input frequency. - // The formula for a Fury-class device is - // "(xtal * f) / ((r + 1) * 2)". + // Get the PLL configuration. // - ulClk = ((ulClk * ((ulPLL & SYSCTL_PLLCFG_F_M) >> - SYSCTL_PLLCFG_F_S)) / - ((((ulPLL & SYSCTL_PLLCFG_R_M) >> - SYSCTL_PLLCFG_R_S) + 1) * 2)); - } + ulPLL = HWREG(SYSCTL_PLLCFG); - // - // See if the optional output divide by 2 is being used. - // - if(ulPLL & SYSCTL_PLLCFG_OD_2) - { - ulClk /= 2; - } + // + // See if this is a Sandstorm-class or Fury-class device. + // + if(CLASS_IS_SANDSTORM) + { + // + // Compute the PLL output frequency based on its input + // frequency. The formula for a Sandstorm-class devices is + // "(xtal * (f + 2)) / (r + 2)". + // + ulClk = ((ulClk * (((ulPLL & SYSCTL_PLLCFG_F_M) >> + SYSCTL_PLLCFG_F_S) + 2)) / + (((ulPLL & SYSCTL_PLLCFG_R_M) >> + SYSCTL_PLLCFG_R_S) + 2)); + } + else + { + // + // Compute the PLL output frequency based on its input + // frequency. The formula for a Fury-class device is + // "(xtal * f) / ((r + 1) * 2)". + // + ulClk = ((ulClk * ((ulPLL & SYSCTL_PLLCFG_F_M) >> + SYSCTL_PLLCFG_F_S)) / + ((((ulPLL & SYSCTL_PLLCFG_R_M) >> + SYSCTL_PLLCFG_R_S) + 1) * 2)); + } - // - // See if the optional output divide by 4 is being used. - // - if(ulPLL & SYSCTL_PLLCFG_OD_4) - { - ulClk /= 4; + // + // See if the optional output divide by 2 is being used. + // + if(ulPLL & SYSCTL_PLLCFG_OD_2) + { + ulClk /= 2; + } + + // + // See if the optional output divide by 4 is being used. + // + if(ulPLL & SYSCTL_PLLCFG_OD_4) + { + ulClk /= 4; + } } // // Force the system divider to be enabled. It is always used when - // using the PLL, but in some cases it will not read as being enabled. + // using the PLL, but in some cases it does not read as being enabled. // ulRCC |= SYSCTL_RCC_USESYSDIV; } @@ -1803,6 +2520,50 @@ SysCtlClockGet(void) return(ulClk); } +//***************************************************************************** +// +//! Sets the clocking of the device while in deep-sleep mode. +//! +//! \param ulConfig is the required configuration of the device clocking while +//! in deep-sleep mode. +//! +//! This function configures the clocking of the device while in deep-sleep +//! mode. The oscillator to be used and the system clock divider are +//! configured with this function. +//! +//! The \e ulConfig parameter is the logical OR of the following values: +//! +//! The system clock divider is chosen with one of the following values: +//! \b SYSCTL_DSLP_DIV_1, \b SYSCTL_DSLP_DIV_2, \b SYSCTL_DSLP_DIV_3, ... +//! \b SYSCTL_DSLP_DIV_64. +//! +//! The oscillator source is chosen with one of the following values: +//! \b SYSCTL_DSLP_OSC_MAIN, \b SYSCTL_DSLP_OSC_INT, \b SYSCTL_DSLP_OSC_INT30, +//! or \b SYSCTL_DSLP_OSC_EXT32. \b SYSCTL_OSC_EXT32 is only available on +//! devices with the hibernate module, and then only when the hibernate module +//! has been enabled. +//! +//! The precision internal oscillator can be powered down in deep-sleep mode by +//! specifying \b SYSCTL_DSLP_PIOSC_PD. If it is required for operation while +//! in deep-sleep (based on other configuration settings), it will not be +//! powered down. +//! +//! \note The availability of deep-sleep clocking configuration varies with the +//! Stellaris part in use. Please consult the datasheet for the part you are +//! using to determine whether this support is available. +//! +//! \return None. +// +//***************************************************************************** +void +SysCtlDeepSleepClockSet(unsigned long ulConfig) +{ + // + // Set the deep-sleep clock configuration. + // + HWREG(SYSCTL_DSLPCLKCFG) = ulConfig; +} + //***************************************************************************** // //! Sets the PWM clock configuration. @@ -1812,8 +2573,8 @@ SysCtlClockGet(void) //! \b SYSCTL_PWMDIV_8, \b SYSCTL_PWMDIV_16, \b SYSCTL_PWMDIV_32, or //! \b SYSCTL_PWMDIV_64. //! -//! This function sets the rate of the clock provided to the PWM module as a -//! ratio of the processor clock. This clock is used by the PWM module to +//! This function configures the rate of the clock provided to the PWM module +//! as a ratio of the processor clock. This clock is used by the PWM module to //! generate PWM signals; its rate forms the basis for all PWM signals. //! //! \note The clocking of the PWM is dependent upon the system clock rate as @@ -1839,7 +2600,7 @@ SysCtlPWMClockSet(unsigned long ulConfig) // // Check that there is a PWM block on this part. // - ASSERT(HWREG(SYSCTL_DC1) & SYSCTL_DC1_PWM); + ASSERT(HWREG(SYSCTL_DC1) & SYSCTL_DC1_PWM0); // // Set the PWM clock configuration into the run-mode clock configuration @@ -1856,7 +2617,7 @@ SysCtlPWMClockSet(unsigned long ulConfig) //! //! This function returns the current PWM clock configuration. //! -//! \return Returns the current PWM clock configuration; will be one of +//! \return Returns the current PWM clock configuration; is one of //! \b SYSCTL_PWMDIV_1, \b SYSCTL_PWMDIV_2, \b SYSCTL_PWMDIV_4, //! \b SYSCTL_PWMDIV_8, \b SYSCTL_PWMDIV_16, \b SYSCTL_PWMDIV_32, or //! \b SYSCTL_PWMDIV_64. @@ -1868,7 +2629,7 @@ SysCtlPWMClockGet(void) // // Check that there is a PWM block on this part. // - ASSERT(HWREG(SYSCTL_DC1) & SYSCTL_DC1_PWM); + ASSERT(HWREG(SYSCTL_DC1) & SYSCTL_DC1_PWM0); // // Return the current PWM clock configuration. Make sure that @@ -1899,10 +2660,10 @@ SysCtlPWMClockGet(void) //! \b SYSCTL_ADCSPEED_1MSPS, \b SYSCTL_ADCSPEED_500KSPS, //! \b SYSCTL_ADCSPEED_250KSPS, or \b SYSCTL_ADCSPEED_125KSPS. //! -//! This function sets the rate at which the ADC samples are captured by the -//! ADC block. The sampling speed may be limited by the hardware, so the +//! This function configures the rate at which the ADC samples are captured by +//! the ADC block. The sampling speed may be limited by the hardware, so the //! sample rate may end up being slower than requested. SysCtlADCSpeedGet() -//! will return the actual speed in use. +//! returns the actual speed in use. //! //! \return None. // @@ -1924,7 +2685,7 @@ SysCtlADCSpeedSet(unsigned long ulSpeed) ASSERT(HWREG(SYSCTL_DC1) & SYSCTL_DC1_ADC0); // - // Set the ADC speed in run, sleep, and deep-sleep mode. + // Set the ADC speed in run and sleep mode. // HWREG(SYSCTL_RCGC0) = ((HWREG(SYSCTL_RCGC0) & ~(SYSCTL_RCGC0_ADCSPD_M)) | ulSpeed); @@ -1938,7 +2699,7 @@ SysCtlADCSpeedSet(unsigned long ulSpeed) //! //! This function gets the current sample rate of the ADC. //! -//! \return Returns the current ADC sample rate; will be one of +//! \return Returns the current ADC sample rate; is one of //! \b SYSCTL_ADCSPEED_1MSPS, \b SYSCTL_ADCSPEED_500KSPS, //! \b SYSCTL_ADCSPEED_250KSPS, or \b SYSCTL_ADCSPEED_125KSPS. // @@ -1965,14 +2726,14 @@ SysCtlADCSpeedGet(void) //! verification timer should be enabled. //! //! This function allows the internal oscillator verification timer to be -//! enabled or disabled. When enabled, an interrupt will be generated if the +//! enabled or disabled. When enabled, an interrupt is generated if the //! internal oscillator ceases to operate. //! //! The internal oscillator verification timer is only available on //! Sandstorm-class devices. //! //! \note Both oscillators (main and internal) must be enabled for this -//! verification timer to operate as the main oscillator will verify the +//! verification timer to operate as the main oscillator verifies the //! internal oscillator. //! //! \return None. @@ -2003,14 +2764,14 @@ SysCtlIOSCVerificationSet(tBoolean bEnable) //! verification timer should be enabled. //! //! This function allows the main oscillator verification timer to be enabled -//! or disabled. When enabled, an interrupt will be generated if the main +//! or disabled. When enabled, an interrupt is generated if the main //! oscillator ceases to operate. //! //! The main oscillator verification timer is only available on //! Sandstorm-class devices. //! //! \note Both oscillators (main and internal) must be enabled for this -//! verification timer to operate as the internal oscillator will verify the +//! verification timer to operate as the internal oscillator verifies the //! main oscillator. //! //! \return None. @@ -2040,7 +2801,7 @@ SysCtlMOSCVerificationSet(tBoolean bEnable) //! should be enabled. //! //! This function allows the PLL verification timer to be enabled or disabled. -//! When enabled, an interrupt will be generated if the PLL ceases to operate. +//! When enabled, an interrupt is generated if the PLL ceases to operate. //! //! The PLL verification timer is only available on Sandstorm-class devices. //! @@ -2111,7 +2872,7 @@ SysCtlClkVerificationClear(void) //! The \e ulGPIOPeripheral argument must be only one of the following values: //! \b SYSCTL_PERIPH_GPIOA, \b SYSCTL_PERIPH_GPIOB, \b SYSCTL_PERIPH_GPIOC, //! \b SYSCTL_PERIPH_GPIOD, \b SYSCTL_PERIPH_GPIOE, \b SYSCTL_PERIPH_GPIOF, -//! \b SYSCTL_PERIPH_GPIOG, or \b SYSCTL_PERIPH_GPIOH. +//! \b SYSCTL_PERIPH_GPIOG, \b SYSCTL_PERIPH_GPIOH, or \b SYSCTL_PERIPH_GPIOJ. //! //! \return None. // @@ -2135,7 +2896,7 @@ SysCtlGPIOAHBEnable(unsigned long ulGPIOPeripheral) // // Enable this GPIO for AHB access. // - HWREG(SYSCTL_GPIOHSCTL) |= ulGPIOPeripheral & 0xFFFF; + HWREG(SYSCTL_GPIOHBCTL) |= ulGPIOPeripheral & 0xFFFF; } //***************************************************************************** @@ -2146,12 +2907,12 @@ SysCtlGPIOAHBEnable(unsigned long ulGPIOPeripheral) //! //! This function disables the specified GPIO peripheral for access from the //! Advanced Host Bus (AHB). Once disabled, the GPIO peripheral is accessed -//! from the legacy Advanced Peripheral Bus (AHB). +//! from the legacy Advanced Peripheral Bus (APB). //! //! The \b ulGPIOPeripheral argument must be only one of the following values: //! \b SYSCTL_PERIPH_GPIOA, \b SYSCTL_PERIPH_GPIOB, \b SYSCTL_PERIPH_GPIOC, //! \b SYSCTL_PERIPH_GPIOD, \b SYSCTL_PERIPH_GPIOE, \b SYSCTL_PERIPH_GPIOF, -//! \b SYSCTL_PERIPH_GPIOG, or \b SYSCTL_PERIPH_GPIOH. +//! \b SYSCTL_PERIPH_GPIOG, \b SYSCTL_PERIPH_GPIOH, or \b SYSCTL_PERIPH_GPIOJ. //! //! \return None. // @@ -2175,14 +2936,14 @@ SysCtlGPIOAHBDisable(unsigned long ulGPIOPeripheral) // // Disable this GPIO for AHB access. // - HWREG(SYSCTL_GPIOHSCTL) &= ~(ulGPIOPeripheral & 0xFFFF); + HWREG(SYSCTL_GPIOHBCTL) &= ~(ulGPIOPeripheral & 0xFFFF); } //***************************************************************************** // //! Powers up the USB PLL. //! -//! This function will enable the USB controller's PLL which is used by it's +//! This function enables the USB controller's PLL, which is used by it's //! physical layer. This call is necessary before connecting to any external //! devices. //! @@ -2202,9 +2963,9 @@ SysCtlUSBPLLEnable(void) // //! Powers down the USB PLL. //! -//! This function will disable the USB controller's PLL which is used by it's +//! This function disables the USB controller's PLL, which is used by it's //! physical layer. The USB registers are still accessible, but the physical -//! layer will no longer function. +//! layer no longer functions. //! //! \return None. // @@ -2213,7 +2974,7 @@ void SysCtlUSBPLLDisable(void) { // - // Turn of USB PLL. + // Turn off the USB PLL. // HWREG(SYSCTL_RCC2) |= SYSCTL_RCC2_USBPWRDN; } @@ -2222,20 +2983,20 @@ SysCtlUSBPLLDisable(void) // //! Sets the MCLK frequency provided to the I2S module. //! -//! \param ulInputClock is the input clock to the MCLK divider. If this is -//! zero, the value is computed from the current PLL configuration. -//! \param ulMClk is the desired MCLK frequency. If this is zero, MCLK output -//! is disabled. +//! \param ulInputClock is the input clock to the MCLK divider. If this value +//! is zero, the value is computed from the current PLL configuration. +//! \param ulMClk is the desired MCLK frequency. If this value is zero, MCLK +//! output is disabled. //! -//! This function sets the dividers to provide MCLK to the I2S module. A MCLK -//! divider will be chosen that produces the MCLK frequency that is the closest +//! This function confgiures the dividers to provide MCLK to the I2S module. A +//! MCLK divider is chosen that produces the MCLK frequency that is the closest //! possible to the requested frequency, which may be above or below the //! requested frequency. //! -//! The actual MCLK frequency will be returned. It is the responsibility of -//! the application to determine if the selected MCLK is acceptable; in general -//! the human ear can not discern the frequency difference if it is within 0.3% -//! of the desired frequency (though there is a very small percentage of the +//! The actual MCLK frequency is returned. It is the responsibility of the +//! application to determine if the selected MCLK is acceptable; in general the +//! human ear can not discern the frequency difference if it is within 0.3% of +//! the desired frequency (although there is a very small percentage of the //! population that can discern lower frequency deviations). //! //! \return Returns the actual MCLK frequency. diff --git a/bsp/lm3s8962/Libraries/driverlib/sysctl.h b/bsp/lm3s8962/Libraries/driverlib/sysctl.h index cc24395ec6..a718c67b25 100644 --- a/bsp/lm3s8962/Libraries/driverlib/sysctl.h +++ b/bsp/lm3s8962/Libraries/driverlib/sysctl.h @@ -2,7 +2,7 @@ // // sysctl.h - Prototypes for the system control driver. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -55,7 +55,10 @@ extern "C" #endif #define SYSCTL_PERIPH_ADC0 0x00100001 // ADC0 #define SYSCTL_PERIPH_ADC1 0x00100002 // ADC1 +#ifndef DEPRECATED #define SYSCTL_PERIPH_PWM 0x00100010 // PWM +#endif +#define SYSCTL_PERIPH_PWM0 0x00100010 // PWM #define SYSCTL_PERIPH_CAN0 0x00100100 // CAN 0 #define SYSCTL_PERIPH_CAN1 0x00100200 // CAN 1 #define SYSCTL_PERIPH_CAN2 0x00100400 // CAN 2 @@ -103,6 +106,72 @@ extern "C" #define SYSCTL_PERIPH_PLL 0x30000010 // PLL #define SYSCTL_PERIPH_TEMP 0x30000020 // Temperature sensor #define SYSCTL_PERIPH_MPU 0x30000080 // Cortex M3 MPU +#define SYSCTL_PERIPH2_ADC0 0xf0003800 // ADC 0 +#define SYSCTL_PERIPH2_ADC1 0xf0003801 // ADC 1 +#define SYSCTL_PERIPH2_CAN0 0xf0003400 // CAN 0 +#define SYSCTL_PERIPH2_CAN1 0xf0003401 // CAN 1 +#define SYSCTL_PERIPH2_CAN2 0xf0003402 // CAN 2 +#define SYSCTL_PERIPH2_COMP0 0xf0003c00 // Analog comparator 0 +#define SYSCTL_PERIPH_EEPROM0 0xf0005800 // EEPROM 0 +#define SYSCTL_PERIPH_FAN0 0xf0005400 // FAN 0 +#define SYSCTL_PERIPH2_GPIOA 0xf0000800 // GPIO A +#define SYSCTL_PERIPH2_GPIOB 0xf0000801 // GPIO B +#define SYSCTL_PERIPH2_GPIOC 0xf0000802 // GPIO C +#define SYSCTL_PERIPH2_GPIOD 0xf0000803 // GPIO D +#define SYSCTL_PERIPH2_GPIOE 0xf0000804 // GPIO E +#define SYSCTL_PERIPH2_GPIOF 0xf0000805 // GPIO F +#define SYSCTL_PERIPH2_GPIOG 0xf0000806 // GPIO G +#define SYSCTL_PERIPH2_GPIOH 0xf0000807 // GPIO H +#define SYSCTL_PERIPH2_GPIOJ 0xf0000808 // GPIO J +#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_PERIPH2_HIB 0xf0001400 // Hibernation module +#define SYSCTL_PERIPH2_I2C0 0xf0002000 // I2C 0 +#define SYSCTL_PERIPH2_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_LPC0 0xf0004800 // LPC 0 +#define SYSCTL_PERIPH_PECI0 0xf0005000 // PECI 0 +#define SYSCTL_PERIPH2_PWM0 0xf0004000 // PWM 0 +#define SYSCTL_PERIPH_PWM1 0xf0004001 // PWM 1 +#define SYSCTL_PERIPH2_QEI0 0xf0004400 // QEI 0 +#define SYSCTL_PERIPH2_QEI1 0xf0004401 // QEI 1 +#define SYSCTL_PERIPH2_SSI0 0xf0001c00 // SSI 0 +#define SYSCTL_PERIPH2_SSI1 0xf0001c01 // SSI 1 +#define SYSCTL_PERIPH_SSI2 0xf0001c02 // SSI 2 +#define SYSCTL_PERIPH_SSI3 0xf0001c03 // SSI 3 +#define SYSCTL_PERIPH2_TIMER0 0xf0000400 // Timer 0 +#define SYSCTL_PERIPH2_TIMER1 0xf0000401 // Timer 1 +#define SYSCTL_PERIPH2_TIMER2 0xf0000402 // Timer 2 +#define SYSCTL_PERIPH2_TIMER3 0xf0000403 // Timer 3 +#define SYSCTL_PERIPH_TIMER4 0xf0000404 // Timer 4 +#define SYSCTL_PERIPH_TIMER5 0xf0000405 // Timer 5 +#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 +#define SYSCTL_PERIPH2_UART0 0xf0001800 // UART 0 +#define SYSCTL_PERIPH2_UART1 0xf0001801 // UART 1 +#define SYSCTL_PERIPH2_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_PERIPH2_UDMA 0xf0000c00 // uDMA +#define SYSCTL_PERIPH2_USB0 0xf0002800 // USB 0 +#define SYSCTL_PERIPH2_WDOG0 0xf0000000 // Watchdog 0 +#define SYSCTL_PERIPH2_WDOG1 0xf0000001 // Watchdog 1 //***************************************************************************** // @@ -194,6 +263,7 @@ extern "C" // //***************************************************************************** #define SYSCTL_CAUSE_LDO 0x00000020 // LDO power not OK reset +#define SYSCTL_CAUSE_WDOG1 0x00000020 // Watchdog1 reset #define SYSCTL_CAUSE_SW 0x00000010 // Software reset #define SYSCTL_CAUSE_WDOG 0x00000008 // Watchdog reset #define SYSCTL_CAUSE_BOR 0x00000004 // Brown-out reset @@ -393,16 +463,115 @@ extern "C" #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_EXT4_19 0x80000028 // Osc source is ext. 4.19 MHz #define SYSCTL_OSC_EXT32 0x80000038 // Osc source is ext. 32 KHz -#define SYSCTL_INT_PIOSC_DIS 0x00000004 // Disable interal precision osc. #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 ulConfig 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 + +//***************************************************************************** +// +// The following are values that can be passed to the SysCtlPIOSCCalibrate() +// API as the ulType 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 ulConfig 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 + //***************************************************************************** // // Prototypes for the APIs. @@ -412,6 +581,9 @@ extern unsigned long SysCtlSRAMSizeGet(void); extern unsigned long SysCtlFlashSizeGet(void); extern tBoolean SysCtlPinPresent(unsigned long ulPin); extern tBoolean SysCtlPeripheralPresent(unsigned long ulPeripheral); +extern tBoolean SysCtlPeripheralReady(unsigned long ulPeripheral); +extern void SysCtlPeripheralPowerOn(unsigned long ulPeripheral); +extern void SysCtlPeripheralPowerOff(unsigned long ulPeripheral); extern void SysCtlPeripheralReset(unsigned long ulPeripheral); extern void SysCtlPeripheralEnable(unsigned long ulPeripheral); extern void SysCtlPeripheralDisable(unsigned long ulPeripheral); @@ -437,8 +609,11 @@ extern void SysCtlResetCauseClear(unsigned long ulCauses); extern void SysCtlBrownOutConfigSet(unsigned long ulConfig, unsigned long ulDelay); extern void SysCtlDelay(unsigned long ulCount); +extern void SysCtlMOSCConfigSet(unsigned long ulConfig); +extern unsigned long SysCtlPIOSCCalibrate(unsigned long ulType); extern void SysCtlClockSet(unsigned long ulConfig); extern unsigned long SysCtlClockGet(void); +extern void SysCtlDeepSleepClockSet(unsigned long ulConfig); extern void SysCtlPWMClockSet(unsigned long ulConfig); extern unsigned long SysCtlPWMClockGet(void); extern void SysCtlADCSpeedSet(unsigned long ulSpeed); diff --git a/bsp/lm3s8962/Libraries/driverlib/sysexc.c b/bsp/lm3s8962/Libraries/driverlib/sysexc.c new file mode 100644 index 0000000000..c3129e4c53 --- /dev/null +++ b/bsp/lm3s8962/Libraries/driverlib/sysexc.c @@ -0,0 +1,241 @@ +//***************************************************************************** +// +// sysexc.c - Routines for the System Exception Module. +// +// Copyright (c) 2011 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 8264 of the Stellaris Peripheral Driver Library. +// +//***************************************************************************** + +//***************************************************************************** +// +//! \addtogroup sysexc_api +//! @{ +// +//***************************************************************************** + +#include "inc/hw_ints.h" +#include "inc/hw_sysexc.h" +#include "inc/hw_types.h" +#include "interrupt.h" + +//***************************************************************************** +// +//! Registers an interrupt handler for the system exception interrupt. +//! +//! \param pfnHandler is a pointer to the function to be called when the system +//! exception interrupt occurs. +//! +//! This function places the address of the system exception interrupt handler +//! into the interrupt vector table in SRAM. This function also enables the +//! global interrupt in the interrupt controller; specific system exception +//! interrupts must be enabled via SysExcIntEnable(). It is the interrupt +//! handler's responsibility to clear the interrupt source. +//! +//! \sa IntRegister() for important information about registering interrupt +//! handlers. +//! +//! \return None. +// +//***************************************************************************** +void +SysExcIntRegister(void (*pfnHandler)(void)) +{ + // + // Register the interrupt handler. + // + IntRegister(INT_SYSEXC, pfnHandler); + + // + // Enable the system exception interrupt. + // + IntEnable(INT_SYSEXC); +} + +//***************************************************************************** +// +//! Unregisters the system exception interrupt handler. +//! +//! This function removes the system exception interrupt handler from the +//! vector table in SRAM. This function also masks off the system exception +//! interrupt in the interrupt controller so that the interrupt handler is no +//! longer called. +//! +//! \sa IntRegister() for important information about registering interrupt +//! handlers. +//! +//! \return None. +// +//***************************************************************************** +void +SysExcIntUnregister(void) +{ + // + // Disable the system exception interrupt. + // + IntDisable(INT_SYSEXC); + + // + // Unregister the system exception interrupt handler. + // + IntUnregister(INT_SYSEXC); +} + +//***************************************************************************** +// +//! Enables individual system exception interrupt sources. +//! +//! \param ulIntFlags is the bit mask of the interrupt sources to be enabled. +//! +//! This function enables the indicated system exception interrupt sources. +//! Only the sources that are enabled can be reflected to the processor +//! interrupt; disabled sources have no effect on the processor. +//! +//! The \e ulIntFlags parameter is the logical OR of any of the following: +//! +//! - \b SYSEXC_INT_FP_IXC - Floating-point inexact exception interrupt +//! - \b SYSEXC_INT_FP_OFC - Floating-point overflow exception interrupt +//! - \b SYSEXC_INT_FP_UFC - Floating-point underflow exception interrupt +//! - \b SYSEXC_INT_FP_IOC - Floating-point invalid operation interrupt +//! - \b SYSEXC_INT_FP_DZC - Floating-point divide by zero exception interrupt +//! - \b SYSEXC_INT_FP_IDC - Floating-point input denormal exception interrupt +//! +//! \return None. +// +//***************************************************************************** +void +SysExcIntEnable(unsigned long ulIntFlags) +{ + // + // Enable the specified interrupts. + // + HWREG(SYSEXC_IM) |= ulIntFlags; +} + +//***************************************************************************** +// +//! Disables individual system exception interrupt sources. +//! +//! \param ulIntFlags is the bit mask of the interrupt sources to be disabled. +//! +//! This function disables the indicated system exception interrupt sources. +//! Only sources that are enabled can be reflected to the processor interrupt; +//! disabled sources have no effect on the processor. +//! +//! The \e ulIntFlags parameter is the logical OR of any of the following: +//! +//! - \b SYSEXC_INT_FP_IXC - Floating-point inexact exception interrupt +//! - \b SYSEXC_INT_FP_OFC - Floating-point overflow exception interrupt +//! - \b SYSEXC_INT_FP_UFC - Floating-point underflow exception interrupt +//! - \b SYSEXC_INT_FP_IOC - Floating-point invalid operation interrupt +//! - \b SYSEXC_INT_FP_DZC - Floating-point divide by zero exception interrupt +//! - \b SYSEXC_INT_FP_IDC - Floating-point input denormal exception interrupt +//! +//! \return None. +// +//***************************************************************************** +void +SysExcIntDisable(unsigned long ulIntFlags) +{ + // + // Disable the specified interrupts. + // + HWREG(SYSEXC_IM) &= ~(ulIntFlags); +} + +//***************************************************************************** +// +//! Gets the current system exception interrupt status. +//! +//! \param bMasked is \b false if the raw interrupt status is required and +//! \b true if the masked interrupt status is required. +//! +//! This function returns the system exception interrupt status. Either the +//! raw interrupt status or the status of interrupts that are allowed to +//! reflect to the processor can be returned. +//! +//! \return Returns the current system exception interrupt status, enumerated +//! as the logical OR of \b SYSEXC_INT_FP_IXC, \b SYSEXC_INT_FP_OFC, +//! \b SYSEXC_INT_FP_UFC, \b SYSEXC_INT_FP_IOC, \b SYSEXC_INT_FP_DZC, and +//! \b SYSEXC_INT_FP_IDC. +// +//***************************************************************************** +unsigned long +SysExcIntStatus(tBoolean bMasked) +{ + // + // Return either the interrupt status or the raw interrupt status as + // requested. + // + if(bMasked) + { + return(HWREG(SYSEXC_MIS)); + } + else + { + return(HWREG(SYSEXC_RIS)); + } +} + +//***************************************************************************** +// +//! Clears system exception interrupt sources. +//! +//! \param ulIntFlags is a bit mask of the interrupt sources to be cleared. +//! +//! This function clears the specified system exception interrupt sources, so +//! that they no longer assert. This function must be called in the interrupt +//! handler to keep the interrupt from being recognized again immediately upon +//! exit. +//! +//! The \e ulIntFlags parameter is the logical OR of any of the following: +//! +//! - \b SYSEXC_INT_FP_IXC - Floating-point inexact exception interrupt +//! - \b SYSEXC_INT_FP_OFC - Floating-point overflow exception interrupt +//! - \b SYSEXC_INT_FP_UFC - Floating-point underflow exception interrupt +//! - \b SYSEXC_INT_FP_IOC - Floating-point invalid operation interrupt +//! - \b SYSEXC_INT_FP_DZC - Floating-point divide by zero exception interrupt +//! - \b SYSEXC_INT_FP_IDC - Floating-point input denormal exception interrupt +//! +//! \note Because there is a write buffer in the Cortex-M processor, it may +//! take several clock cycles before the interrupt source is actually cleared. +//! Therefore, it is recommended that the interrupt source be cleared early in +//! the interrupt handler (as opposed to the very last action) to avoid +//! returning from the interrupt handler before the interrupt source is +//! actually cleared. Failure to do so may result in the interrupt handler +//! being immediately reentered (because the interrupt controller still sees +//! the interrupt source asserted). +//! +//! \return None. +// +//***************************************************************************** +void +SysExcIntClear(unsigned long ulIntFlags) +{ + // + // Clear the requested interrupt sources. + // + HWREG(SYSEXC_IC) = ulIntFlags; +} + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** diff --git a/bsp/lm3s8962/Libraries/driverlib/sysexc.h b/bsp/lm3s8962/Libraries/driverlib/sysexc.h new file mode 100644 index 0000000000..78088cb05a --- /dev/null +++ b/bsp/lm3s8962/Libraries/driverlib/sysexc.h @@ -0,0 +1,74 @@ +//***************************************************************************** +// +// sysexc.h - Prototypes for the System Exception Module routines. +// +// Copyright (c) 2011 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 8264 of the Stellaris Peripheral Driver Library. +// +//***************************************************************************** + +#ifndef __SYSEXC_H__ +#define __SYSEXC_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 SysExcIntEnable, SysExcIntDisable, and +// SysExcIntClear as the ulIntFlags parameter, and returned from +// SysExcIntStatus. +// +//***************************************************************************** +#define SYSEXC_INT_FP_IXC 0x00000020 // FP Inexact exception interrupt +#define SYSEXC_INT_FP_OFC 0x00000010 // FP Overflow exception interrupt +#define SYSEXC_INT_FP_UFC 0x00000008 // FP Underflow exception interrupt +#define SYSEXC_INT_FP_IOC 0x00000004 // FP Invalid operation interrupt +#define SYSEXC_INT_FP_DZC 0x00000002 // FP Divide by zero exception int +#define SYSEXC_INT_FP_IDC 0x00000001 // FP Input denormal exception int + +//***************************************************************************** +// +// Prototypes. +// +//***************************************************************************** +extern void SysExcIntRegister(void (*pfnHandler)(void)); +extern void SysExcIntUnregister(void); +extern void SysExcIntEnable(unsigned long ulIntFlags); +extern void SysExcIntDisable(unsigned long ulIntFlags); +extern unsigned long SysExcIntStatus(tBoolean bMasked); +extern void SysExcIntClear(unsigned long ulIntFlags); + +//***************************************************************************** +// +// Mark the end of the C bindings section for C++ compilers. +// +//***************************************************************************** +#ifdef __cplusplus +} +#endif + +#endif // __SYSEXC_H__ diff --git a/bsp/lm3s8962/Libraries/driverlib/systick.c b/bsp/lm3s8962/Libraries/driverlib/systick.c index c2251b06aa..1fb10993c9 100644 --- a/bsp/lm3s8962/Libraries/driverlib/systick.c +++ b/bsp/lm3s8962/Libraries/driverlib/systick.c @@ -2,7 +2,7 @@ // // systick.c - Driver for the SysTick timer in NVIC. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -40,15 +40,15 @@ // //! Enables the SysTick counter. //! -//! This will start the SysTick counter. If an interrupt handler has been -//! registered, it will be called when the SysTick counter rolls over. +//! This function starts the SysTick counter. If an interrupt handler has been +//! registered, it is called when the SysTick counter rolls over. //! -//! \note Calling this function will cause the SysTick counter to (re)commence +//! \note Calling this function causes the SysTick counter to (re)commence //! counting from its current value. The counter is not automatically reloaded //! with the period as specified in a previous call to SysTickPeriodSet(). If //! an immediate reload is required, the \b NVIC_ST_CURRENT register must be -//! written to force this. Any write to this register clears the SysTick -//! counter to 0 and will cause a reload with the supplied period on the next +//! written to force the reload. Any write to this register clears the SysTick +//! counter to 0 and causes a reload with the supplied period on the next //! clock. //! //! \return None. @@ -67,8 +67,8 @@ SysTickEnable(void) // //! Disables the SysTick counter. //! -//! This will stop the SysTick counter. If an interrupt handler has been -//! registered, it will no longer be called until SysTick is restarted. +//! This function stops the SysTick counter. If an interrupt handler has been +//! registered, it is not called until SysTick is restarted. //! //! \return None. // @@ -89,7 +89,8 @@ SysTickDisable(void) //! \param pfnHandler is a pointer to the function to be called when the //! SysTick interrupt occurs. //! -//! This sets the handler to be called when a SysTick interrupt occurs. +//! This function registers the handler to be called when a SysTick interrupt +//! occurs. //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -115,7 +116,7 @@ SysTickIntRegister(void (*pfnHandler)(void)) // //! Unregisters the interrupt handler for the SysTick interrupt. //! -//! This function will clear the handler to be called when a SysTick interrupt +//! This function unregisters the handler to be called when a SysTick interrupt //! occurs. //! //! \sa IntRegister() for important information about registering interrupt @@ -142,12 +143,12 @@ SysTickIntUnregister(void) // //! Enables the SysTick interrupt. //! -//! This function will enable the SysTick interrupt, allowing it to be +//! This function enables the SysTick interrupt, allowing it to be //! reflected to the processor. //! -//! \note The SysTick interrupt handler does not need to clear the SysTick -//! interrupt source as this is done automatically by NVIC when the interrupt -//! handler is called. +//! \note The SysTick interrupt handler is not required to clear the SysTick +//! interrupt source because it is cleared automatically by the NVIC when the +//! interrupt handler is called. //! //! \return None. // @@ -165,7 +166,7 @@ SysTickIntEnable(void) // //! Disables the SysTick interrupt. //! -//! This function will disable the SysTick interrupt, preventing it from being +//! This function disables the SysTick interrupt, preventing it from being //! reflected to the processor. //! //! \return None. @@ -185,16 +186,16 @@ SysTickIntDisable(void) //! Sets the period of the SysTick counter. //! //! \param ulPeriod is the number of clock ticks in each period of the SysTick -//! counter; must be between 1 and 16,777,216, inclusive. +//! counter and must be between 1 and 16,777,216, inclusive. //! -//! This function sets the rate at which the SysTick counter wraps; this +//! This function sets the rate at which the SysTick counter wraps, which //! equates to the number of processor clocks between interrupts. //! //! \note Calling this function does not cause the SysTick counter to reload //! immediately. If an immediate reload is required, the \b NVIC_ST_CURRENT //! register must be written. Any write to this register clears the SysTick -//! counter to 0 and will cause a reload with the \e ulPeriod supplied here on -//! the next clock after the SysTick is enabled. +//! counter to 0 and causes a reload with the \e ulPeriod supplied here on +//! the next clock after SysTick is enabled. //! //! \return None. // @@ -217,7 +218,7 @@ SysTickPeriodSet(unsigned long ulPeriod) // //! Gets the period of the SysTick counter. //! -//! This function returns the rate at which the SysTick counter wraps; this +//! This function returns the rate at which the SysTick counter wraps, which //! equates to the number of processor clocks between interrupts. //! //! \return Returns the period of the SysTick counter. @@ -236,8 +237,8 @@ SysTickPeriodGet(void) // //! Gets the current value of the SysTick counter. //! -//! This function returns the current value of the SysTick counter; this will -//! be a value between the period - 1 and zero, inclusive. +//! This function returns the current value of the SysTick counter, which is +//! a value between the period - 1 and zero, inclusive. //! //! \return Returns the current value of the SysTick counter. // diff --git a/bsp/lm3s8962/Libraries/driverlib/systick.h b/bsp/lm3s8962/Libraries/driverlib/systick.h index 94251df94b..fc33f25eef 100644 --- a/bsp/lm3s8962/Libraries/driverlib/systick.h +++ b/bsp/lm3s8962/Libraries/driverlib/systick.h @@ -2,7 +2,7 @@ // // systick.h - Prototypes for the SysTick driver. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm3s8962/Libraries/driverlib/timer.c b/bsp/lm3s8962/Libraries/driverlib/timer.c index c103148868..ae255e058b 100644 --- a/bsp/lm3s8962/Libraries/driverlib/timer.c +++ b/bsp/lm3s8962/Libraries/driverlib/timer.c @@ -2,7 +2,7 @@ // // timer.c - Driver for the timer module. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -37,6 +37,27 @@ #include "driverlib/interrupt.h" #include "driverlib/timer.h" +//***************************************************************************** +// +// A mapping of timer base address to interupt number. +// +//***************************************************************************** +static const unsigned long g_ppulTimerIntMap[][2] = +{ + { TIMER0_BASE, INT_TIMER0A }, + { TIMER1_BASE, INT_TIMER1A }, + { TIMER2_BASE, INT_TIMER2A }, + { TIMER3_BASE, INT_TIMER3A }, + { TIMER4_BASE, INT_TIMER4A }, + { TIMER5_BASE, INT_TIMER5A }, + { WTIMER0_BASE, INT_WTIMER0A }, + { WTIMER1_BASE, INT_WTIMER1A }, + { WTIMER2_BASE, INT_WTIMER2A }, + { WTIMER3_BASE, INT_WTIMER3A }, + { WTIMER4_BASE, INT_WTIMER4A }, + { WTIMER5_BASE, INT_WTIMER5A }, +}; + //***************************************************************************** // //! \internal @@ -55,10 +76,57 @@ static tBoolean TimerBaseValid(unsigned long ulBase) { return((ulBase == TIMER0_BASE) || (ulBase == TIMER1_BASE) || - (ulBase == TIMER2_BASE) || (ulBase == TIMER3_BASE)); + (ulBase == TIMER2_BASE) || (ulBase == TIMER3_BASE) || + (ulBase == TIMER4_BASE) || (ulBase == TIMER5_BASE) || + (ulBase == WTIMER0_BASE) || (ulBase == WTIMER1_BASE) || + (ulBase == WTIMER2_BASE) || (ulBase == WTIMER3_BASE) || + (ulBase == WTIMER4_BASE) || (ulBase == WTIMER5_BASE)); } #endif +//***************************************************************************** +// +//! \internal +//! Gets the timer interrupt number. +//! +//! \param ulBase is the base address of the timer module. +//! +//! Given a timer base address, this function returns the corresponding +//! interrupt number. +//! +//! \return Returns a timer interrupt number, or -1 if \e ulBase is invalid. +// +//***************************************************************************** +static long +TimerIntNumberGet(unsigned long ulBase) +{ + unsigned long ulIdx; + + // + // Loop through the table that maps timer base addresses to interrupt + // numbers. + // + for(ulIdx = 0; ulIdx < (sizeof(g_ppulTimerIntMap) / + sizeof(g_ppulTimerIntMap[0])); ulIdx++) + { + // + // See if this base address matches. + // + if(g_ppulTimerIntMap[ulIdx][0] == ulBase) + { + // + // Return the corresponding interrupt number. + // + return(g_ppulTimerIntMap[ulIdx][1]); + } + } + + // + // The base address could not be found, so return an error. + // + return(-1); +} + //***************************************************************************** // //! Enables the timer(s). @@ -67,7 +135,7 @@ TimerBaseValid(unsigned long ulBase) //! \param ulTimer specifies the timer(s) to enable; must be one of \b TIMER_A, //! \b TIMER_B, or \b TIMER_BOTH. //! -//! This will enable operation of the timer module. The timer must be +//! This function enables operation of the timer module. The timer must be //! configured before it is enabled. //! //! \return None. @@ -97,7 +165,7 @@ TimerEnable(unsigned long ulBase, unsigned long ulTimer) //! \param ulTimer specifies the timer(s) to disable; must be one of //! \b TIMER_A, \b TIMER_B, or \b TIMER_BOTH. //! -//! This will disable operation of the timer module. +//! This function disables operation of the timer module. //! //! \return None. // @@ -127,33 +195,43 @@ TimerDisable(unsigned long ulBase, unsigned long ulTimer) //! \param ulConfig is the configuration for the timer. //! //! This function configures the operating mode of the timer(s). The timer -//! module is disabled before being configured, and is left in the disabled -//! state. The configuration is specified in \e ulConfig as one of the -//! following values: +//! module is disabled before being configured and is left in the disabled +//! state. There are two types of timers; a 16/32-bit variety and a 32/64-bit +//! variety. The 16/32-bit variety is comprised of two 16-bit timers that can +//! operate independently or be concatenated to form a 32-bit timer. +//! Similarly, the 32/64-bit variety is comprised of two 32-bit timers that can +//! operate independently or be concatenated to form a 64-bit timer. //! -//! - \b TIMER_CFG_32_BIT_OS - 32-bit one-shot timer -//! - \b TIMER_CFG_32_BIT_OS_UP - 32-bit one-shot timer that counts up instead -//! of down (not available on all parts) -//! - \b TIMER_CFG_32_BIT_PER - 32-bit periodic timer -//! - \b TIMER_CFG_32_BIT_PER_UP - 32-bit periodic timer that counts up instead -//! of down (not available on all parts) -//! - \b TIMER_CFG_32_RTC - 32-bit real time clock timer -//! - \b TIMER_CFG_16_BIT_PAIR - Two 16-bit timers +//! The configuration is specified in \e ulConfig as one of the following +//! values: //! -//! When configured for a pair of 16-bit timers, each timer is separately +//! - \b TIMER_CFG_ONE_SHOT - Full-width one-shot timer +//! - \b TIMER_CFG_ONE_SHOT_UP - Full-width one-shot timer that counts up +//! instead of down (not available on all parts) +//! - \b TIMER_CFG_PERIODIC - Full-width periodic timer +//! - \b TIMER_CFG_PERIODIC_UP - Full-width periodic timer that counts up +//! instead of down (not available on all parts) +//! - \b TIMER_CFG_RTC - Full-width real time clock timer +//! - \b TIMER_CFG_SPLIT_PAIR - Two half-width timers +//! +//! When configured for a pair of half-width timers, each timer is separately //! configured. The first timer is configured by setting \e ulConfig to //! the result of a logical OR operation between one of the following values //! and \e ulConfig: //! -//! - \b TIMER_CFG_A_ONE_SHOT - 16-bit one-shot timer -//! - \b TIMER_CFG_A_ONE_SHOT_UP - 16-bit one-shot timer that counts up instead -//! of down (not available on all parts) -//! - \b TIMER_CFG_A_PERIODIC - 16-bit periodic timer -//! - \b TIMER_CFG_A_PERIODIC_UP - 16-bit periodic timer that counts up instead -//! of down (not available on all parts) -//! - \b TIMER_CFG_A_CAP_COUNT - 16-bit edge count capture -//! - \b TIMER_CFG_A_CAP_TIME - 16-bit edge time capture -//! - \b TIMER_CFG_A_PWM - 16-bit PWM output +//! - \b TIMER_CFG_A_ONE_SHOT - Half-width one-shot timer +//! - \b TIMER_CFG_A_ONE_SHOT_UP - Half-width one-shot timer that counts up +//! instead of down (not available on all parts) +//! - \b TIMER_CFG_A_PERIODIC - Half-width periodic timer +//! - \b TIMER_CFG_A_PERIODIC_UP - Half-width periodic timer that counts up +//! instead of down (not available on all parts) +//! - \b TIMER_CFG_A_CAP_COUNT - Half-width edge count capture +//! - \b TIMER_CFG_A_CAP_COUNT_UP - Half-width edge count capture that counts +//! up instead of down (not available on all parts) +//! - \b TIMER_CFG_A_CAP_TIME - Half-width edge time capture +//! - \b TIMER_CFG_A_CAP_TIME_UP - Half-width edge time capture that counts up +//! instead of down (not available on all parts) +//! - \b TIMER_CFG_A_PWM - Half-width PWM output //! //! Similarly, the second timer is configured by setting \e ulConfig to //! the result of a logical OR operation between one of the corresponding @@ -169,13 +247,13 @@ TimerConfigure(unsigned long ulBase, unsigned long ulConfig) // Check the arguments. // ASSERT(TimerBaseValid(ulBase)); - ASSERT((ulConfig == TIMER_CFG_32_BIT_OS) || - (ulConfig == TIMER_CFG_32_BIT_OS_UP) || - (ulConfig == TIMER_CFG_32_BIT_PER) || - (ulConfig == TIMER_CFG_32_BIT_PER_UP) || - (ulConfig == TIMER_CFG_32_RTC) || - ((ulConfig & 0xff000000) == TIMER_CFG_16_BIT_PAIR)); - ASSERT(((ulConfig & 0xff000000) != TIMER_CFG_16_BIT_PAIR) || + ASSERT((ulConfig == TIMER_CFG_ONE_SHOT) || + (ulConfig == TIMER_CFG_ONE_SHOT_UP) || + (ulConfig == TIMER_CFG_PERIODIC) || + (ulConfig == TIMER_CFG_PERIODIC_UP) || + (ulConfig == TIMER_CFG_RTC) || + ((ulConfig & 0xff000000) == TIMER_CFG_SPLIT_PAIR)); + ASSERT(((ulConfig & 0xff000000) != TIMER_CFG_SPLIT_PAIR) || ((((ulConfig & 0x000000ff) == TIMER_CFG_A_ONE_SHOT) || ((ulConfig & 0x000000ff) == TIMER_CFG_A_ONE_SHOT_UP) || ((ulConfig & 0x000000ff) == TIMER_CFG_A_PERIODIC) || @@ -188,7 +266,9 @@ TimerConfigure(unsigned long ulBase, unsigned long ulConfig) ((ulConfig & 0x0000ff00) == TIMER_CFG_B_PERIODIC) || ((ulConfig & 0x0000ff00) == TIMER_CFG_B_PERIODIC_UP) || ((ulConfig & 0x0000ff00) == TIMER_CFG_B_CAP_COUNT) || + ((ulConfig & 0x0000ff00) == TIMER_CFG_B_CAP_COUNT_UP) || ((ulConfig & 0x0000ff00) == TIMER_CFG_B_CAP_TIME) || + ((ulConfig & 0x0000ff00) == TIMER_CFG_B_CAP_TIME_UP) || ((ulConfig & 0x0000ff00) == TIMER_CFG_B_PWM)))); // @@ -205,8 +285,9 @@ TimerConfigure(unsigned long ulBase, unsigned long ulConfig) // Set the configuration of the A and B timers. Note that the B timer // configuration is ignored by the hardware in 32-bit modes. // - HWREG(ulBase + TIMER_O_TAMR) = ulConfig & 255; - HWREG(ulBase + TIMER_O_TBMR) = (ulConfig >> 8) & 255; + HWREG(ulBase + TIMER_O_TAMR) = (ulConfig & 255) | TIMER_TAMR_TAPWMIE; + HWREG(ulBase + TIMER_O_TBMR) = + ((ulConfig >> 8) & 255) | TIMER_TBMR_TBPWMIE; } //***************************************************************************** @@ -218,9 +299,9 @@ TimerConfigure(unsigned long ulBase, unsigned long ulConfig) //! \b TIMER_B, or \b TIMER_BOTH. //! \param bInvert specifies the output level. //! -//! This function sets the PWM output level for the specified timer. If the -//! \e bInvert parameter is \b true, then the timer's output will be made -//! active low; otherwise, it will be made active high. +//! This function configures the PWM output level for the specified timer. If +//! the \e bInvert parameter is \b true, then the timer's output is made active +//! low; otherwise, it is made active high. //! //! \return None. // @@ -247,15 +328,15 @@ TimerControlLevel(unsigned long ulBase, unsigned long ulTimer, //***************************************************************************** // -//! Enables or disables the trigger output. +//! Enables or disables the ADC trigger output. //! //! \param ulBase is the base address of the timer module. //! \param ulTimer specifies the timer to adjust; must be one of \b TIMER_A, //! \b TIMER_B, or \b TIMER_BOTH. -//! \param bEnable specifies the desired trigger state. +//! \param bEnable specifies the desired ADC trigger state. //! -//! This function controls the trigger output for the specified timer. If the -//! \e bEnable parameter is \b true, then the timer's output trigger is +//! This function controls the ADC trigger output for the specified timer. If +//! the \e bEnable parameter is \b true, then the timer's ADC output trigger is //! enabled; otherwise it is disabled. //! //! \return None. @@ -274,6 +355,7 @@ TimerControlTrigger(unsigned long ulBase, unsigned long ulTimer, // // Set the trigger output as requested. + // Set the ADC trigger output as requested. // ulTimer &= TIMER_CTL_TAOTE | TIMER_CTL_TBOTE; HWREG(ulBase + TIMER_O_CTL) = (bEnable ? @@ -292,8 +374,8 @@ TimerControlTrigger(unsigned long ulBase, unsigned long ulTimer, //! \b TIMER_EVENT_POS_EDGE, \b TIMER_EVENT_NEG_EDGE, or //! \b TIMER_EVENT_BOTH_EDGES. //! -//! This function sets the signal edge(s) that will trigger the timer when in -//! capture mode. +//! This function configures the signal edge(s) that triggers the timer when +//! in capture mode. //! //! \return None. // @@ -312,10 +394,9 @@ TimerControlEvent(unsigned long ulBase, unsigned long ulTimer, // // Set the event type. // - ulEvent &= ulTimer & (TIMER_CTL_TAEVENT_M | TIMER_CTL_TBEVENT_M); - HWREG(ulBase + TIMER_O_CTL) = ((HWREG(ulBase + TIMER_O_CTL) & - ~(TIMER_CTL_TAEVENT_M | - TIMER_CTL_TBEVENT_M)) | ulEvent); + ulTimer &= TIMER_CTL_TAEVENT_M | TIMER_CTL_TBEVENT_M; + HWREG(ulBase + TIMER_O_CTL) = ((HWREG(ulBase + TIMER_O_CTL) & ~ulTimer) | + (ulEvent & ulTimer)); } //***************************************************************************** @@ -328,8 +409,8 @@ TimerControlEvent(unsigned long ulBase, unsigned long ulTimer, //! \param bStall specifies the response to a stall signal. //! //! This function controls the stall response for the specified timer. If the -//! \e bStall parameter is \b true, then the timer will stop counting if the -//! processor enters debug mode; otherwise the timer will keep running while in +//! \e bStall parameter is \b true, then the timer stops counting if the +//! processor enters debug mode; otherwise the timer keeps running while in //! debug mode. //! //! \return None. @@ -337,7 +418,7 @@ TimerControlEvent(unsigned long ulBase, unsigned long ulTimer, //***************************************************************************** void TimerControlStall(unsigned long ulBase, unsigned long ulTimer, - tBoolean bStall) + tBoolean bStall) { // // Check the arguments. @@ -369,7 +450,8 @@ TimerControlStall(unsigned long ulBase, unsigned long ulTimer, //! count to its timeout in order for this timer to start counting. Refer to //! the part's data sheet for a description of the trigger chain. //! -//! \note This functionality is not available on all parts. +//! \note This functionality is not available on all parts. This function +//! should not be used for Timer 0A or Wide Timer 0A. //! //! \return None. // @@ -401,7 +483,7 @@ TimerControlWaitOnTrigger(unsigned long ulBase, unsigned long ulTimer, } // - // Set the wait on trigger mode for timer A. + // Set the wait on trigger mode for timer B. // if((ulTimer & TIMER_B) != 0) { @@ -423,7 +505,7 @@ TimerControlWaitOnTrigger(unsigned long ulBase, unsigned long ulTimer, //! \param ulBase is the base address of the timer module. //! //! This function causes the timer to start counting when in RTC mode. If not -//! configured for RTC mode, this will do nothing. +//! configured for RTC mode, this function does nothing. //! //! \return None. // @@ -474,12 +556,19 @@ TimerRTCDisable(unsigned long ulBase) //! \param ulBase is the base address of the timer module. //! \param ulTimer specifies the timer(s) to adjust; must be one of \b TIMER_A, //! \b TIMER_B, or \b TIMER_BOTH. -//! \param ulValue is the timer prescale value; must be between 0 and 255, -//! inclusive. +//! \param ulValue is the timer prescale value which must be between 0 and 255 +//! (inclusive) for 16/32-bit timers and between 0 and 65535 (inclusive) for +//! 32/64-bit timers. //! -//! This function sets the value of the input clock prescaler. The prescaler -//! is only operational when in 16-bit mode and is used to extend the range of -//! the 16-bit timer modes. +//! This function configures the value of the input clock prescaler. The +//! prescaler is only operational when in half-width mode and is used to extend +//! the range of the half-width timer modes. The prescaler provides the least +//! significant bits when counting down in periodic and one-shot modes; in all +//! other modes, the prescaler provides the most significant bits. +//! +//! \note The availability of the prescaler varies with the Stellaris part and +//! timer mode in use. Please consult the datasheet for the part you are using +//! to determine whether this support is available. //! //! \return None. // @@ -522,8 +611,14 @@ TimerPrescaleSet(unsigned long ulBase, unsigned long ulTimer, //! \b TIMER_B. //! //! This function gets the value of the input clock prescaler. The prescaler -//! is only operational when in 16-bit mode and is used to extend the range of -//! the 16-bit timer modes. +//! is only operational when in half-width mode and is used to extend the range +//! of the half-width timer modes. The prescaler provides the least significant +//! bits when counting down in periodic and one-shot modes; in all other modes, +//! the prescaler provides the most significant bits. +//! +//! \note The availability of the prescaler varies with the Stellaris part and +//! timer mode in use. Please consult the datasheet for the part you are using +//! to determine whether this support is available. //! //! \return The value of the timer prescaler. // @@ -552,14 +647,20 @@ TimerPrescaleGet(unsigned long ulBase, unsigned long ulTimer) //! \param ulBase is the base address of the timer module. //! \param ulTimer specifies the timer(s) to adjust; must be one of \b TIMER_A, //! \b TIMER_B, or \b TIMER_BOTH. -//! \param ulValue is the timer prescale match value; must be between 0 and -//! 255, inclusive. +//! \param ulValue is the timer prescale match value which must be between 0 +//! and 255 (inclusive) for 16/32-bit timers and between 0 and 65535 +//! (inclusive) for 32/64-bit timers. //! -//! This function sets the value of the input clock prescaler match value. -//! When in a 16-bit mode that uses the counter match and the prescaler, the -//! prescale match effectively extends the range of the counter to 24-bits. +//! This function configures the value of the input clock prescaler match +//! value. When in a half-width mode that uses the counter match and the +//! prescaler, the prescale match effectively extends the range of the match. +//! The prescaler provides the least significant bits when counting down in +//! periodic and one-shot modes; in all other modes, the prescaler provides the +//! most significant bits. //! -//! \note This functionality is not available on all parts. +//! \note The availability of the prescaler match varies with the Stellaris +//! part and timer mode in use. Please consult the datasheet for the part you +//! are using to determine whether this support is available. //! //! \return None. // @@ -602,10 +703,15 @@ TimerPrescaleMatchSet(unsigned long ulBase, unsigned long ulTimer, //! \b TIMER_B. //! //! This function gets the value of the input clock prescaler match value. -//! When in a 16-bit mode that uses the counter match and prescaler, the -//! prescale match effectively extends the range of the counter to 24-bits. +//! When in a half-width mode that uses the counter match and prescaler, the +//! prescale match effectively extends the range of the match. The prescaler +//! provides the least significant bits when counting down in periodic and +//! one-shot modes; in all other modes, the prescaler provides the most +//! significant bits. //! -//! \note This functionality is not available on all parts. +//! \note The availability of the prescaler match varies with the Stellaris +//! part and timer mode in use. Please consult the datasheet for the part you +//! are using to determine whether this support is available. //! //! \return The value of the timer prescale match. // @@ -634,11 +740,15 @@ TimerPrescaleMatchGet(unsigned long ulBase, unsigned long ulTimer) //! \param ulBase is the base address of the timer module. //! \param ulTimer specifies the timer(s) to adjust; must be one of \b TIMER_A, //! \b TIMER_B, or \b TIMER_BOTH. Only \b TIMER_A should be used when the -//! timer is configured for 32-bit operation. +//! timer is configured for full-width operation. //! \param ulValue is the load value. //! -//! This function sets the timer load value; if the timer is running then the -//! value will be immediately loaded into the timer. +//! This function configures the timer load value; if the timer is running then +//! the value is immediately loaded into the timer. +//! +//! \note This function can be used for both full- and half-width modes of +//! 16/32-bit timers and for half-width modes of 32/64-bit timers. Use +//! TimerLoadSet64() for full-width modes of 32/64-bit timers. //! //! \return None. // @@ -678,11 +788,15 @@ TimerLoadSet(unsigned long ulBase, unsigned long ulTimer, //! \param ulBase is the base address of the timer module. //! \param ulTimer specifies the timer; must be one of \b TIMER_A or //! \b TIMER_B. Only \b TIMER_A should be used when the timer is configured -//! for 32-bit operation. +//! for full-width operation. //! //! This function gets the currently programmed interval load value for the //! specified timer. //! +//! \note This function can be used for both full- and half-width modes of +//! 16/32-bit timers and for half-width modes of 32/64-bit timers. Use +//! TimerLoadGet64() for full-width modes of 32/64-bit timers. +//! //! \return Returns the load value for the timer. // //***************************************************************************** @@ -702,6 +816,79 @@ TimerLoadGet(unsigned long ulBase, unsigned long ulTimer) HWREG(ulBase + TIMER_O_TBILR)); } +//***************************************************************************** +// +//! Sets the timer load value for a 64-bit timer. +//! +//! \param ulBase is the base address of the timer module. +//! \param ullValue is the load value. +//! +//! This function configures the timer load value for a 64-bit timer; if the +//! timer is running, then the value is immediately loaded into the timer. +//! +//! \return None. +// +//***************************************************************************** +void +TimerLoadSet64(unsigned long ulBase, unsigned long long ullValue) +{ + // + // Check the arguments. + // + ASSERT(TimerBaseValid(ulBase)); + + // + // Set the timer load value. The upper 32-bits must be written before the + // lower 32-bits in order to adhere to the hardware interlocks on the + // 64-bit value. + // + HWREG(ulBase + TIMER_O_TBILR) = ullValue >> 32; + HWREG(ulBase + TIMER_O_TAILR) = ullValue & 0xffffffff; +} + +//***************************************************************************** +// +//! Gets the timer load value for a 64-bit timer. +//! +//! \param ulBase is the base address of the timer module. +//! +//! This function gets the currently programmed interval load value for the +//! specified 64-bit timer. +//! +//! \return Returns the load value for the timer. +// +//***************************************************************************** +unsigned long long +TimerLoadGet64(unsigned long ulBase) +{ + unsigned long ulHigh1, ulHigh2, ulLow; + + // + // Check the arguments. + // + ASSERT(TimerBaseValid(ulBase)); + + // + // Read the 64-bit load value. A read of the low 32-bits is performed + // between two reads of the upper 32-bits; if the upper 32-bit values match + // then the 64-bit value is consistent. If they do not match, then the + // read is performed again until they do match (it should never execute the + // loop body more than twice). + // + do + { + ulHigh1 = HWREG(ulBase + TIMER_O_TBILR); + ulLow = HWREG(ulBase + TIMER_O_TAILR); + ulHigh2 = HWREG(ulBase + TIMER_O_TBILR); + } + while(ulHigh1 != ulHigh2); + + // + // Return the load value. + // + return(((unsigned long long)ulHigh1 << 32) | (unsigned long long)ulLow); +} + //***************************************************************************** // //! Gets the current timer value. @@ -709,10 +896,14 @@ TimerLoadGet(unsigned long ulBase, unsigned long ulTimer) //! \param ulBase is the base address of the timer module. //! \param ulTimer specifies the timer; must be one of \b TIMER_A or //! \b TIMER_B. Only \b TIMER_A should be used when the timer is configured -//! for 32-bit operation. +//! for full-width operation. //! //! This function reads the current value of the specified timer. //! +//! \note This function can be used for both full- and half-width modes of +//! 16/32-bit timers and for half-width modes of 32/64-bit timers. Use +//! TimerValueGet64() for full-width modes of 32/64-bit timers. +//! //! \return Returns the current value of the timer. // //***************************************************************************** @@ -732,6 +923,48 @@ TimerValueGet(unsigned long ulBase, unsigned long ulTimer) HWREG(ulBase + TIMER_O_TBR)); } +//***************************************************************************** +// +//! Gets the current 64-bit timer value. +//! +//! \param ulBase is the base address of the timer module. +//! +//! This function reads the current value of the specified timer. +//! +//! \return Returns the current value of the timer. +// +//***************************************************************************** +unsigned long long +TimerValueGet64(unsigned long ulBase) +{ + unsigned long ulHigh1, ulHigh2, ulLow; + + // + // Check the arguments. + // + ASSERT(TimerBaseValid(ulBase)); + + // + // Read the 64-bit timer value. A read of the low 32-bits is performed + // between two reads of the upper 32-bits; if the upper 32-bit values match + // then the 64-bit value is consistent. If they do not match, then the + // read is performed again until they do match (it should never execute the + // loop body more than twice). + // + do + { + ulHigh1 = HWREG(ulBase + TIMER_O_TBR); + ulLow = HWREG(ulBase + TIMER_O_TAR); + ulHigh2 = HWREG(ulBase + TIMER_O_TBR); + } + while(ulHigh1 != ulHigh2); + + // + // Return the timer value. + // + return(((unsigned long long)ulHigh1 << 32) | (unsigned long long)ulLow); +} + //***************************************************************************** // //! Sets the timer match value. @@ -739,12 +972,18 @@ TimerValueGet(unsigned long ulBase, unsigned long ulTimer) //! \param ulBase is the base address of the timer module. //! \param ulTimer specifies the timer(s) to adjust; must be one of \b TIMER_A, //! \b TIMER_B, or \b TIMER_BOTH. Only \b TIMER_A should be used when the -//! timer is configured for 32-bit operation. +//! timer is configured for full-width operation. //! \param ulValue is the match value. //! -//! This function sets the match value for a timer. This is used in capture -//! count mode to determine when to interrupt the processor and in PWM mode to -//! determine the duty cycle of the output signal. +//! This function configures the match value for a timer. This value is used +//! in capture count mode to determine when to interrupt the processor and in +//! PWM mode to determine the duty cycle of the output signal. On some +//! Stellaris devices, match interrupts can also be generated in periodic and +//! one-shot modes. +//! +//! \note This function can be used for both full- and half-width modes of +//! 16/32-bit timers and for half-width modes of 32/64-bit timers. Use +//! TimerMatchSet64() for full-width modes of 32/64-bit timers. //! //! \return None. // @@ -784,10 +1023,14 @@ TimerMatchSet(unsigned long ulBase, unsigned long ulTimer, //! \param ulBase is the base address of the timer module. //! \param ulTimer specifies the timer; must be one of \b TIMER_A or //! \b TIMER_B. Only \b TIMER_A should be used when the timer is configured -//! for 32-bit operation. +//! for full-width operation. //! //! This function gets the match value for the specified timer. //! +//! \note This function can be used for both full- and half-width modes of +//! 16/32-bit timers and for half-width modes of 32/64-bit timers. Use +//! TimerMatchGet64() for full-width modes of 32/64-bit timers. +//! //! \return Returns the match value for the timer. // //***************************************************************************** @@ -807,6 +1050,79 @@ TimerMatchGet(unsigned long ulBase, unsigned long ulTimer) HWREG(ulBase + TIMER_O_TBMATCHR)); } +//***************************************************************************** +// +//! Sets the timer match value for a 64-bit timer. +//! +//! \param ulBase is the base address of the timer module. +//! \param ullValue is the match value. +//! +//! This function configures the match value for a timer. This value is used +//! in capture count mode to determine when to interrupt the processor and in +//! PWM mode to determine the duty cycle of the output signal. +//! +//! \return None. +// +//***************************************************************************** +void +TimerMatchSet64(unsigned long ulBase, unsigned long long ullValue) +{ + // + // Check the arguments. + // + ASSERT(TimerBaseValid(ulBase)); + + // + // Set the timer match value. The upper 32-bits must be written before the + // lower 32-bits in order to adhere to the hardware interlocks on the + // 64-bit value. + // + HWREG(ulBase + TIMER_O_TBMATCHR) = ullValue >> 32; + HWREG(ulBase + TIMER_O_TAMATCHR) = ullValue & 0xffffffff; +} + +//***************************************************************************** +// +//! Gets the timer match value for a 64-bit timer. +//! +//! \param ulBase is the base address of the timer module. +//! +//! This function gets the match value for the specified timer. +//! +//! \return Returns the match value for the timer. +// +//***************************************************************************** +unsigned long long +TimerMatchGet64(unsigned long ulBase) +{ + unsigned long ulHigh1, ulHigh2, ulLow; + + // + // Check the arguments. + // + ASSERT(TimerBaseValid(ulBase)); + + // + // Read the 64-bit match value. A read of the low 32-bits is performed + // between two reads of the upper 32-bits; if the upper 32-bit values match + // then the 64-bit value is consistent. If they do not match, then the + // read is performed again until they do match (it should never execute the + // loop body more than twice). + // + do + { + ulHigh1 = HWREG(ulBase + TIMER_O_TBMATCHR); + ulLow = HWREG(ulBase + TIMER_O_TAMATCHR); + ulHigh2 = HWREG(ulBase + TIMER_O_TBMATCHR); + } + while(ulHigh1 != ulHigh2); + + // + // Return the match value. + // + return(((unsigned long long)ulHigh1 << 32) | (unsigned long long)ulLow); +} + //***************************************************************************** // //! Registers an interrupt handler for the timer interrupt. @@ -817,10 +1133,11 @@ TimerMatchGet(unsigned long ulBase, unsigned long ulTimer) //! \param pfnHandler is a pointer to the function to be called when the timer //! interrupt occurs. //! -//! This sets the handler to be called when a timer interrupt occurs. This -//! will enable the global interrupt in the interrupt controller; specific -//! timer interrupts must be enabled via TimerIntEnable(). It is the interrupt -//! handler's responsibility to clear the interrupt source via TimerIntClear(). +//! This function registers the handler to be called when a timer interrupt +//! occurs. In addition, this function enables the global interrupt in the +//! interrupt controller; specific timer interrupts must be enabled via +//! TimerIntEnable(). It is the interrupt handler's responsibility to clear the +//! interrupt source via TimerIntClear(). //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -842,9 +1159,7 @@ TimerIntRegister(unsigned long ulBase, unsigned long ulTimer, // // Get the interrupt number for this timer module. // - ulBase = ((ulBase == TIMER0_BASE) ? INT_TIMER0A : - ((ulBase == TIMER1_BASE) ? INT_TIMER1A : - ((ulBase == TIMER2_BASE) ? INT_TIMER2A : INT_TIMER3A))); + ulBase = TimerIntNumberGet(ulBase); // // Register an interrupt handler for timer A if requested. @@ -887,9 +1202,9 @@ TimerIntRegister(unsigned long ulBase, unsigned long ulTimer, //! \param ulTimer specifies the timer(s); must be one of \b TIMER_A, //! \b TIMER_B, or \b TIMER_BOTH. //! -//! This function will clear the handler to be called when a timer interrupt -//! occurs. This will also mask off the interrupt in the interrupt controller -//! so that the interrupt handler no longer is called. +//! This function unregisters the handler to be called when a timer interrupt +//! occurs. This function also masks off the interrupt in the interrupt +//! controller so that the interrupt handler is no longer called. //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -910,9 +1225,7 @@ TimerIntUnregister(unsigned long ulBase, unsigned long ulTimer) // // Get the interrupt number for this timer module. // - ulBase = ((ulBase == TIMER0_BASE) ? INT_TIMER0A : - ((ulBase == TIMER1_BASE) ? INT_TIMER1A : - ((ulBase == TIMER2_BASE) ? INT_TIMER2A : INT_TIMER3A))); + ulBase = TimerIntNumberGet(ulBase); // // Unregister the interrupt handler for timer A if requested. @@ -954,9 +1267,9 @@ TimerIntUnregister(unsigned long ulBase, unsigned long ulTimer) //! \param ulBase is the base address of the timer module. //! \param ulIntFlags is the bit mask of the interrupt sources to be enabled. //! -//! Enables the indicated timer interrupt sources. Only the sources that are -//! enabled can be reflected to the processor interrupt; disabled sources have -//! no effect on the processor. +//! This function enables the indicated timer interrupt sources. Only the +//! sources that are enabled can be reflected to the processor interrupt; +//! disabled sources have no effect on the processor. //! //! The \e ulIntFlags parameter must be the logical OR of any combination of //! the following: @@ -993,9 +1306,9 @@ TimerIntEnable(unsigned long ulBase, unsigned long ulIntFlags) //! \param ulBase is the base address of the timer module. //! \param ulIntFlags is the bit mask of the interrupt sources to be disabled. //! -//! Disables the indicated timer interrupt sources. Only the sources that are -//! enabled can be reflected to the processor interrupt; disabled sources have -//! no effect on the processor. +//! This function disables the indicated timer interrupt sources. Only the +//! sources that are enabled can be reflected to the processor interrupt; +//! disabled sources have no effect on the processor. //! //! The \e ulIntFlags parameter has the same definition as the \e ulIntFlags //! parameter to TimerIntEnable(). @@ -1025,9 +1338,9 @@ TimerIntDisable(unsigned long ulBase, unsigned long ulIntFlags) //! \param bMasked is false if the raw interrupt status is required and true if //! the masked interrupt status is required. //! -//! This returns the interrupt status for the timer module. Either the raw -//! interrupt status or the status of interrupts that are allowed to reflect to -//! the processor can be returned. +//! This function returns the interrupt status for the timer module. Either +//! the raw interrupt status or the status of interrupts that are allowed to +//! reflect to the processor can be returned. //! //! \return The current interrupt status, enumerated as a bit field of //! values described in TimerIntEnable(). @@ -1057,20 +1370,20 @@ TimerIntStatus(unsigned long ulBase, tBoolean bMasked) //! \param ulIntFlags is a bit mask of the interrupt sources to be cleared. //! //! The specified timer interrupt sources are cleared, so that they no longer -//! assert. This must be done in the interrupt handler to keep it from being -//! called again immediately upon exit. +//! assert. This function must be called in the interrupt handler to keep the +//! interrupt from being triggered again immediately upon exit. //! //! The \e ulIntFlags parameter has the same definition as the \e ulIntFlags //! parameter to TimerIntEnable(). //! -//! \note Since there is a write buffer in the Cortex-M3 processor, it may take -//! several clock cycles before the interrupt source is actually cleared. +//! \note Because there is a write buffer in the Cortex-M processor, it may +//! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid //! returning from the interrupt handler before the interrupt source is //! actually cleared. Failure to do so may result in the interrupt handler -//! being immediately reentered (since NVIC still sees the interrupt source -//! asserted). +//! being immediately reentered (because the interrupt controller still sees +//! the interrupt source asserted). //! //! \return None. // @@ -1089,15 +1402,76 @@ TimerIntClear(unsigned long ulBase, unsigned long ulIntFlags) HWREG(ulBase + TIMER_O_ICR) = ulIntFlags; } +//***************************************************************************** +// +//! Synchronizes the counters in a set of timers. +//! +//! \param ulBase is the base address of the timer module. This parameter must +//! be the base address of Timer0 (in other words, \b TIMER0_BASE). +//! \param ulTimers is the set of timers to synchronize. +//! +//! This function synchronizes the counters in a specified set of timers. +//! When a timer is running in half-width mode, each half can be included or +//! excluded in the synchronization event. When a timer is running in +//! full-width mode, only the A timer can be synchronized (specifying the B +//! timer has no effect). +//! +//! The \e ulTimers parameter is the logical OR of any of the following +//! defines: +//! +//! - \b TIMER_0A_SYNC +//! - \b TIMER_0B_SYNC +//! - \b TIMER_1A_SYNC +//! - \b TIMER_1B_SYNC +//! - \b TIMER_2A_SYNC +//! - \b TIMER_2B_SYNC +//! - \b TIMER_3A_SYNC +//! - \b TIMER_3B_SYNC +//! - \b TIMER_4A_SYNC +//! - \b TIMER_4B_SYNC +//! - \b TIMER_5A_SYNC +//! - \b TIMER_5B_SYNC +//! - \b WTIMER_0A_SYNC +//! - \b WTIMER_0B_SYNC +//! - \b WTIMER_1A_SYNC +//! - \b WTIMER_1B_SYNC +//! - \b WTIMER_2A_SYNC +//! - \b WTIMER_2B_SYNC +//! - \b WTIMER_3A_SYNC +//! - \b WTIMER_3B_SYNC +//! - \b WTIMER_4A_SYNC +//! - \b WTIMER_4B_SYNC +//! - \b WTIMER_5A_SYNC +//! - \b WTIMER_5B_SYNC +//! +//! \note This functionality is not available on all parts. +//! +//! \return None. +// +//***************************************************************************** +void +TimerSynchronize(unsigned long ulBase, unsigned long ulTimers) +{ + // + // Check the arguments. + // + ASSERT(ulBase == TIMER0_BASE); + + // + // Synchronize the specified timers. + // + HWREG(ulBase + TIMER_O_SYNC) = ulTimers; +} + //***************************************************************************** // // Puts the timer into its reset state. // // \param ulBase is the base address of the timer module. // -// The specified timer is disabled, and all its interrupts are disabled, -// cleared, and unregistered. Then the timer registers are set to their reset -// value. +// This function disables the specified timer, and all its interrupts are +// disabled, cleared, and unregistered. Then the timer registers are set to +// their reset value. // // \return None. // @@ -1127,7 +1501,7 @@ TimerQuiesce(unsigned long ulBase) HWREG(ulBase + TIMER_O_ICR) = 0xFFFFFFFF; // - // Unregister the interrupt handler. This also disables interrupts to the + // Unregister the interrupt handler, which also disables interrupts to the // core. // TimerIntUnregister(ulBase, TIMER_BOTH); diff --git a/bsp/lm3s8962/Libraries/driverlib/timer.h b/bsp/lm3s8962/Libraries/driverlib/timer.h index eb76f42094..c27ac8d18e 100644 --- a/bsp/lm3s8962/Libraries/driverlib/timer.h +++ b/bsp/lm3s8962/Libraries/driverlib/timer.h @@ -2,7 +2,7 @@ // // timer.h - Prototypes for the timer module // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -41,26 +41,32 @@ extern "C" // Values that can be passed to TimerConfigure as the ulConfig parameter. // //***************************************************************************** -#define TIMER_CFG_32_BIT_OS 0x00000001 // 32-bit one-shot timer -#define TIMER_CFG_32_BIT_OS_UP 0x00000011 // 32-bit one-shot up-count timer -#define TIMER_CFG_32_BIT_PER 0x00000002 // 32-bit periodic timer -#define TIMER_CFG_32_BIT_PER_UP 0x00000012 // 32-bit periodic up-count timer -#define TIMER_CFG_32_RTC 0x01000000 // 32-bit RTC timer -#define TIMER_CFG_16_BIT_PAIR 0x04000000 // Two 16-bit timers -#define TIMER_CFG_A_ONE_SHOT 0x00000001 // Timer A one-shot timer -#define TIMER_CFG_A_ONE_SHOT_UP 0x00000011 // Timer A one-shot up-count timer -#define TIMER_CFG_A_PERIODIC 0x00000002 // Timer A periodic timer -#define TIMER_CFG_A_PERIODIC_UP 0x00000012 // Timer A periodic up-count timer -#define TIMER_CFG_A_CAP_COUNT 0x00000003 // Timer A event counter -#define TIMER_CFG_A_CAP_TIME 0x00000007 // Timer A event timer -#define TIMER_CFG_A_PWM 0x0000000A // Timer A PWM output -#define TIMER_CFG_B_ONE_SHOT 0x00000100 // Timer B one-shot timer -#define TIMER_CFG_B_ONE_SHOT_UP 0x00001100 // Timer B one-shot up-count timer -#define TIMER_CFG_B_PERIODIC 0x00000200 // Timer B periodic timer -#define TIMER_CFG_B_PERIODIC_UP 0x00001200 // Timer B periodic up-count timer -#define TIMER_CFG_B_CAP_COUNT 0x00000300 // Timer B event counter -#define TIMER_CFG_B_CAP_TIME 0x00000700 // Timer B event timer -#define TIMER_CFG_B_PWM 0x00000A00 // Timer B PWM output +#define TIMER_CFG_ONE_SHOT 0x00000021 // Full-width one-shot timer +#define TIMER_CFG_ONE_SHOT_UP 0x00000031 // Full-width one-shot up-count + // timer +#define TIMER_CFG_PERIODIC 0x00000022 // Full-width periodic timer +#define TIMER_CFG_PERIODIC_UP 0x00000032 // Full-width periodic up-count + // timer +#define TIMER_CFG_RTC 0x01000000 // Full-width RTC timer +#define TIMER_CFG_SPLIT_PAIR 0x04000000 // Two half-width timers +#define TIMER_CFG_A_ONE_SHOT 0x00000021 // Timer A one-shot timer +#define TIMER_CFG_A_ONE_SHOT_UP 0x00000031 // Timer A one-shot up-count timer +#define TIMER_CFG_A_PERIODIC 0x00000022 // Timer A periodic timer +#define TIMER_CFG_A_PERIODIC_UP 0x00000032 // Timer A periodic up-count timer +#define TIMER_CFG_A_CAP_COUNT 0x00000003 // Timer A event counter +#define TIMER_CFG_A_CAP_COUNT_UP 0x00000013 // Timer A event up-counter +#define TIMER_CFG_A_CAP_TIME 0x00000007 // Timer A event timer +#define TIMER_CFG_A_CAP_TIME_UP 0x00000017 // Timer A event up-count timer +#define TIMER_CFG_A_PWM 0x0000000A // Timer A PWM output +#define TIMER_CFG_B_ONE_SHOT 0x00002100 // Timer B one-shot timer +#define TIMER_CFG_B_ONE_SHOT_UP 0x00003100 // Timer B one-shot up-count timer +#define TIMER_CFG_B_PERIODIC 0x00002200 // Timer B periodic timer +#define TIMER_CFG_B_PERIODIC_UP 0x00003200 // Timer B periodic up-count timer +#define TIMER_CFG_B_CAP_COUNT 0x00000300 // Timer B event counter +#define TIMER_CFG_B_CAP_COUNT_UP 0x00001300 // Timer B event up-counter +#define TIMER_CFG_B_CAP_TIME 0x00000700 // Timer B event timer +#define TIMER_CFG_B_CAP_TIME_UP 0x00001700 // Timer B event up-count timer +#define TIMER_CFG_B_PWM 0x00000A00 // Timer B PWM output //***************************************************************************** // @@ -97,6 +103,36 @@ extern "C" #define TIMER_B 0x0000ff00 // Timer B #define TIMER_BOTH 0x0000ffff // Timer Both +//***************************************************************************** +// +// Values that can be passed to TimerSynchronize as the ulTimers parameter. +// +//***************************************************************************** +#define TIMER_0A_SYNC 0x00000001 // Synchronize Timer 0A +#define TIMER_0B_SYNC 0x00000002 // Synchronize Timer 0B +#define TIMER_1A_SYNC 0x00000004 // Synchronize Timer 1A +#define TIMER_1B_SYNC 0x00000008 // Synchronize Timer 1B +#define TIMER_2A_SYNC 0x00000010 // Synchronize Timer 2A +#define TIMER_2B_SYNC 0x00000020 // Synchronize Timer 2B +#define TIMER_3A_SYNC 0x00000040 // Synchronize Timer 3A +#define TIMER_3B_SYNC 0x00000080 // Synchronize Timer 3B +#define TIMER_4A_SYNC 0x00000100 // Synchronize Timer 4A +#define TIMER_4B_SYNC 0x00000200 // Synchronize Timer 4B +#define TIMER_5A_SYNC 0x00000400 // Synchronize Timer 5A +#define TIMER_5B_SYNC 0x00000800 // Synchronize Timer 5B +#define WTIMER_0A_SYNC 0x00001000 // Synchronize Wide Timer 0A +#define WTIMER_0B_SYNC 0x00002000 // Synchronize Wide Timer 0B +#define WTIMER_1A_SYNC 0x00004000 // Synchronize Wide Timer 1A +#define WTIMER_1B_SYNC 0x00008000 // Synchronize Wide Timer 1B +#define WTIMER_2A_SYNC 0x00010000 // Synchronize Wide Timer 2A +#define WTIMER_2B_SYNC 0x00020000 // Synchronize Wide Timer 2B +#define WTIMER_3A_SYNC 0x00040000 // Synchronize Wide Timer 3A +#define WTIMER_3B_SYNC 0x00080000 // Synchronize Wide Timer 3B +#define WTIMER_4A_SYNC 0x00100000 // Synchronize Wide Timer 4A +#define WTIMER_4B_SYNC 0x00200000 // Synchronize Wide Timer 4B +#define WTIMER_5A_SYNC 0x00400000 // Synchronize Wide Timer 5A +#define WTIMER_5B_SYNC 0x00800000 // Synchronize Wide Timer 5B + //***************************************************************************** // // Prototypes for the APIs. @@ -129,12 +165,17 @@ extern unsigned long TimerPrescaleMatchGet(unsigned long ulBase, extern void TimerLoadSet(unsigned long ulBase, unsigned long ulTimer, unsigned long ulValue); extern unsigned long TimerLoadGet(unsigned long ulBase, unsigned long ulTimer); +extern void TimerLoadSet64(unsigned long ulBase, unsigned long long ullValue); +extern unsigned long long TimerLoadGet64(unsigned long ulBase); extern unsigned long TimerValueGet(unsigned long ulBase, unsigned long ulTimer); +extern unsigned long long TimerValueGet64(unsigned long ulBase); extern void TimerMatchSet(unsigned long ulBase, unsigned long ulTimer, unsigned long ulValue); extern unsigned long TimerMatchGet(unsigned long ulBase, unsigned long ulTimer); +extern void TimerMatchSet64(unsigned long ulBase, unsigned long long ullValue); +extern unsigned long long TimerMatchGet64(unsigned long ulBase); extern void TimerIntRegister(unsigned long ulBase, unsigned long ulTimer, void (*pfnHandler)(void)); extern void TimerIntUnregister(unsigned long ulBase, unsigned long ulTimer); @@ -142,6 +183,7 @@ extern void TimerIntEnable(unsigned long ulBase, unsigned long ulIntFlags); extern void TimerIntDisable(unsigned long ulBase, unsigned long ulIntFlags); extern unsigned long TimerIntStatus(unsigned long ulBase, tBoolean bMasked); extern void TimerIntClear(unsigned long ulBase, unsigned long ulIntFlags); +extern void TimerSynchronize(unsigned long ulBase, unsigned long ulTimers); //***************************************************************************** // @@ -153,6 +195,20 @@ extern void TimerIntClear(unsigned long ulBase, unsigned long ulIntFlags); extern void TimerQuiesce(unsigned long ulBase); #endif +//***************************************************************************** +// +// These values for TimerConfigure have been deprecated. +// +//***************************************************************************** +#ifndef DEPRECATED +#define TIMER_CFG_32_BIT_OS 0x00000021 // 32-bit one-shot timer +#define TIMER_CFG_32_BIT_OS_UP 0x00000031 // 32-bit one-shot up-count timer +#define TIMER_CFG_32_BIT_PER 0x00000022 // 32-bit periodic timer +#define TIMER_CFG_32_BIT_PER_UP 0x00000032 // 32-bit periodic up-count timer +#define TIMER_CFG_32_RTC 0x01000000 // 32-bit RTC timer +#define TIMER_CFG_16_BIT_PAIR 0x04000000 // Two 16-bit timers +#endif + //***************************************************************************** // // Mark the end of the C bindings section for C++ compilers. diff --git a/bsp/lm3s8962/Libraries/driverlib/uart.c b/bsp/lm3s8962/Libraries/driverlib/uart.c index b03e4d6a06..5323cb86d5 100644 --- a/bsp/lm3s8962/Libraries/driverlib/uart.c +++ b/bsp/lm3s8962/Libraries/driverlib/uart.c @@ -2,7 +2,7 @@ // // uart.c - Driver for the UART. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -49,6 +49,23 @@ (CLASS_IS_DUSTDEVIL && REVISION_IS_A0)) ? \ 16 : 8) +//***************************************************************************** +// +// A mapping of UART base address to interupt number. +// +//***************************************************************************** +static const unsigned long g_ppulUARTIntMap[][2] = +{ + { UART0_BASE, INT_UART0 }, + { UART1_BASE, INT_UART1 }, + { UART2_BASE, INT_UART2 }, + { UART3_BASE, INT_UART3 }, + { UART4_BASE, INT_UART4 }, + { UART5_BASE, INT_UART5 }, + { UART6_BASE, INT_UART6 }, + { UART7_BASE, INT_UART7 }, +}; + //***************************************************************************** // //! \internal @@ -67,10 +84,55 @@ static tBoolean UARTBaseValid(unsigned long ulBase) { return((ulBase == UART0_BASE) || (ulBase == UART1_BASE) || - (ulBase == UART2_BASE)); + (ulBase == UART2_BASE) || (ulBase == UART3_BASE) || + (ulBase == UART4_BASE) || (ulBase == UART5_BASE) || + (ulBase == UART6_BASE) || (ulBase == UART7_BASE)); } #endif +//***************************************************************************** +// +//! \internal +//! Gets the UART interrupt number. +//! +//! \param ulBase is the base address of the UART port. +//! +//! Given a UART base address, this function returns the corresponding +//! interrupt number. +//! +//! \return Returns a UART interrupt number, or -1 if \e ulBase is invalid. +// +//***************************************************************************** +static long +UARTIntNumberGet(unsigned long ulBase) +{ + unsigned long ulIdx; + + // + // Loop through the table that maps UART base addresses to interrupt + // numbers. + // + for(ulIdx = 0; ulIdx < (sizeof(g_ppulUARTIntMap) / + sizeof(g_ppulUARTIntMap[0])); ulIdx++) + { + // + // See if this base address matches. + // + if(g_ppulUARTIntMap[ulIdx][0] == ulBase) + { + // + // Return the corresponding interrupt number. + // + return(g_ppulUARTIntMap[ulIdx][1]); + } + } + + // + // The base address could not be found, so return an error. + // + return(-1); +} + //***************************************************************************** // //! Sets the type of parity. @@ -78,11 +140,12 @@ UARTBaseValid(unsigned long ulBase) //! \param ulBase is the base address of the UART port. //! \param ulParity specifies the type of parity to use. //! -//! Sets the type of parity to use for transmitting and expect when receiving. -//! The \e ulParity parameter must be one of \b UART_CONFIG_PAR_NONE, -//! \b UART_CONFIG_PAR_EVEN, \b UART_CONFIG_PAR_ODD, \b UART_CONFIG_PAR_ONE, -//! or \b UART_CONFIG_PAR_ZERO. The last two allow direct control of the -//! parity bit; it is always either one or zero based on the mode. +//! This function configures the type of parity to use for transmitting and +//! expect when receiving. The \e ulParity parameter must be one of +//! \b UART_CONFIG_PAR_NONE, \b UART_CONFIG_PAR_EVEN, \b UART_CONFIG_PAR_ODD, +//! \b UART_CONFIG_PAR_ONE, or \b UART_CONFIG_PAR_ZERO. The last two +//! parameters allow direct control of the parity bit; it is always either one +//! or zero based on the mode. //! //! \return None. // @@ -149,8 +212,8 @@ UARTParityModeGet(unsigned long ulBase) //! \b UART_FIFO_RX1_8, \b UART_FIFO_RX2_8, \b UART_FIFO_RX4_8, //! \b UART_FIFO_RX6_8, or \b UART_FIFO_RX7_8. //! -//! This function sets the FIFO level at which transmit and receive interrupts -//! are generated. +//! This function configures the FIFO level at which transmit and receive +//! interrupts are generated. //! //! \return None. // @@ -193,7 +256,7 @@ UARTFIFOLevelSet(unsigned long ulBase, unsigned long ulTxLevel, //! \b UART_FIFO_RX4_8, \b UART_FIFO_RX6_8, or \b UART_FIFO_RX7_8. //! //! This function gets the FIFO level at which transmit and receive interrupts -//! are xogenerated. +//! are generated. //! //! \return None. // @@ -245,10 +308,15 @@ UARTFIFOLevelGet(unsigned long ulBase, unsigned long *pulTxLevel, //! select the parity mode (no parity bit, even parity bit, odd parity bit, //! parity bit always one, and parity bit always zero, respectively). //! -//! The peripheral clock will be the same as the processor clock. This will be -//! the value returned by SysCtlClockGet(), or it can be explicitly hard coded -//! if it is constant and known (to save the code/execution overhead of a call -//! to SysCtlClockGet()). +//! The peripheral clock is the same as the processor clock. The frequency of +//! the system clock is the value returned by SysCtlClockGet(), or it can be +//! explicitly hard coded if it is constant and known (to save the +//! code/execution overhead of a call to SysCtlClockGet()). +//! +//! For Stellaris parts that have the ability to specify the UART baud clock +//! source (via UARTClockSourceSet()), the peripheral clock can be changed to +//! PIOSC. In this case, the peripheral clock should be specified as +//! 16,000,000 (the nominal rate of PIOSC). //! //! This function replaces the original UARTConfigSet() API and performs the //! same actions. A macro is provided in uart.h to map the original @@ -336,17 +404,22 @@ UARTConfigSetExpClk(unsigned long ulBase, unsigned long ulUARTClk, //! \param pulBaud is a pointer to storage for the baud rate. //! \param pulConfig is a pointer to storage for the data format. //! -//! The baud rate and data format for the UART is determined, given an -//! explicitly provided peripheral clock (hence the ExpClk suffix). The +//! This function determines the baud rate and data format for the UART, given +//! an explicitly provided peripheral clock (hence the ExpClk suffix). The //! returned baud rate is the actual baud rate; it may not be the exact baud //! rate requested or an ``official'' baud rate. The data format returned in //! \e pulConfig is enumerated the same as the \e ulConfig parameter of //! UARTConfigSetExpClk(). //! -//! The peripheral clock will be the same as the processor clock. This will be -//! the value returned by SysCtlClockGet(), or it can be explicitly hard coded -//! if it is constant and known (to save the code/execution overhead of a call -//! to SysCtlClockGet()). +//! The peripheral clock is the same as the processor clock. The frequency of +//! the system clock is the value returned by SysCtlClockGet(), or it can be +//! explicitly hard coded if it is constant and known (to save the +//! code/execution overhead of a call to SysCtlClockGet()). +//! +//! For Stellaris parts that have the ability to specify the UART baud clock +//! source (via UARTClockSourceSet()), the peripheral clock can be changed to +//! PIOSC. In this case, the peripheral clock should be specified as +//! 16,000,000 (the nominal rate of PIOSC). //! //! This function replaces the original UARTConfigGet() API and performs the //! same actions. A macro is provided in uart.h to map the original @@ -399,8 +472,8 @@ UARTConfigGetExpClk(unsigned long ulBase, unsigned long ulUARTClk, //! //! \param ulBase is the base address of the UART port. //! -//! Sets the UARTEN, TXE, and RXE bits, and enables the transmit and receive -//! FIFOs. +//! This function sets the UARTEN, TXE, and RXE bits and enables the transmit +//! and receive FIFOs. //! //! \return None. // @@ -431,7 +504,7 @@ UARTEnable(unsigned long ulBase) //! //! \param ulBase is the base address of the UART port. //! -//! Clears the UARTEN, TXE, and RXE bits, then waits for the end of +//! This function clears the UARTEN, TXE, and RXE bits, waits for the end of //! transmission of the current character, and flushes the transmit FIFO. //! //! \return None. @@ -495,7 +568,7 @@ UARTFIFOEnable(unsigned long ulBase) //! //! \param ulBase is the base address of the UART port. //! -//! This functions disables the transmit and receive FIFOs in the UART. +//! This function disables the transmit and receive FIFOs in the UART. //! //! \return None. // @@ -521,10 +594,18 @@ UARTFIFODisable(unsigned long ulBase) //! \param ulBase is the base address of the UART port. //! \param bLowPower indicates if SIR Low Power Mode is to be used. //! -//! Enables the SIREN control bit for IrDA mode on the UART. If the -//! \e bLowPower flag is set, then SIRLP bit will also be set. +//! This function enables the SIREN control bit for IrDA mode on the UART. If +//! the \e bLowPower flag is set, then SIRLP bit is also set. This +//! function only has an effect if the UART has not been enabled +//! by a call to UARTEnable(). The call UARTEnableSIR() must be made before +//! a call to UARTConfigSetExpClk() because the UARTConfigSetExpClk() function +//! calls the UARTEnable() function. Another option is to call UARTDisable() +//! followed by UARTEnableSIR() and then enable the UART by calling +//! UARTEnable(). //! -//! \note SIR (IrDA) operation is not supported on Sandstorm-class devices. +//! \note The availability of SIR (IrDA) operation varies with the Stellaris +//! part in use. Please consult the datasheet for the part you are using to +//! determine whether this support is available. //! //! \return None. // @@ -556,9 +637,17 @@ UARTEnableSIR(unsigned long ulBase, tBoolean bLowPower) //! //! \param ulBase is the base address of the UART port. //! -//! Clears the SIREN (IrDA) and SIRLP (Low Power) bits. +//! This function clears the SIREN (IrDA) and SIRLP (Low Power) bits. This +//! function only has an effect if the UART has not been enabled by a +//! call to UARTEnable(). The call UARTEnableSIR() must be made before +//! a call to UARTConfigSetExpClk() because the UARTConfigSetExpClk() function +//! calls the UARTEnable() function. Another option is to call UARTDisable() +//! followed by UARTEnableSIR() and then enable the UART by calling +//! UARTEnable(). //! -//! \note SIR (IrDA) operation is not supported on Sandstorm-class devices. +//! \note The availability of SIR (IrDA) operation varies with the Stellaris +//! part in use. Please consult the datasheet for the part you are using to +//! determine whether this support is available. //! //! \return None. // @@ -579,17 +668,17 @@ UARTDisableSIR(unsigned long ulBase) //***************************************************************************** // -//! Enables ISO 7816 smart card mode on the specified UART. +//! Enables ISO7816 smart card mode on the specified UART. //! //! \param ulBase is the base address of the UART port. //! -//! Enables the SMART control bit for ISO 7816 smart card mode on the UART. -//! This call also sets 8 bit word length and even parity as required by ISO -//! 7816. +//! This function enables the SMART control bit for the ISO7816 smart card mode +//! on the UART. This call also sets 8-bit word length and even parity as +//! required by ISO7816. //! -//! \note The availability of ISO 7816 smart card mode varies with the -//! Stellaris part and UART in use. Please consult the datasheet for the part -//! you are using to determine whether this support is available. +//! \note The availability of SIR (IrDA) operation varies with the Stellaris +//! part in use. Please consult the datasheet for the part you are using to +//! determine whether this support is available. //! //! \return None. // @@ -603,13 +692,12 @@ UARTSmartCardEnable(unsigned long ulBase) // Check the arguments. // ASSERT(!CLASS_IS_SANDSTORM && !CLASS_IS_FURY && !CLASS_IS_DUSTDEVIL); - ASSERT((ulBase == UART0_BASE) || (ulBase == UART1_BASE) || - (ulBase == UART2_BASE)); + ASSERT(UARTBaseValid(ulBase)); // - // Set 8 bit word length, even parity, 2 stop bits (even though the STP2 - // bit is ignored when in smartcard mode, this lets the caller read back - // the actual setting in use). + // Set 8-bit word length, even parity, 2 stop bits (note that although the + // STP2 bit is ignored when in smartcard mode, this code lets the caller + // read back the actual setting in use). // ulVal = HWREG(ulBase + UART_O_LCRH); ulVal &= ~(UART_LCRH_SPS | UART_LCRH_EPS | UART_LCRH_PEN | @@ -625,15 +713,16 @@ UARTSmartCardEnable(unsigned long ulBase) //***************************************************************************** // -//! Disables ISO 7816 smart card mode on the specified UART. +//! Disables ISO7816 smart card mode on the specified UART. //! //! \param ulBase is the base address of the UART port. //! -//! Clears the SMART (ISO 7816 smart card) bits in the UART control register. +//! This function clears the SMART (ISO7816 smart card) bit in the UART +//! control register. //! -//! \note The availability of ISO 7816 smart card mode varies with the -//! Stellaris part and UART in use. Please consult the datasheet for the part -//! you are using to determine whether this support is available. +//! \note The availability of ISO7816 smart card mode varies with the +//! Stellaris part in use. Please consult the datasheet for the part you are +//! using to determine whether this support is available. //! //! \return None. // @@ -645,8 +734,7 @@ UARTSmartCardDisable(unsigned long ulBase) // Check the arguments. // ASSERT(!CLASS_IS_SANDSTORM && !CLASS_IS_FURY && !CLASS_IS_DUSTDEVIL); - ASSERT((ulBase == UART0_BASE) || (ulBase == UART1_BASE) || - (ulBase == UART2_BASE)); + ASSERT(UARTBaseValid(ulBase)); // // Disable the SMART bit. @@ -662,16 +750,17 @@ UARTSmartCardDisable(unsigned long ulBase) //! \param ulControl is a bit-mapped flag indicating which modem control bits //! should be set. //! -//! Sets the states of the DTR or RTS modem handshake outputs from the UART. +//! This function configures the states of the DTR or RTS modem handshake +//! outputs from the UART. //! //! The \e ulControl parameter is the logical OR of any of the following: //! //! - \b UART_OUTPUT_DTR - The Modem Control DTR signal //! - \b UART_OUTPUT_RTS - The Modem Control RTS signal //! -//! \note The availability of hardware modem handshake signals varies with the -//! Stellaris part and UART in use. Please consult the datasheet for the part -//! you are using to determine whether this support is available. +//! \note The availability of ISO7816 smart card mode varies with the +//! Stellaris part in use. Please consult the datasheet for the part you are +//! using to determine whether this support is available. //! //! \return None. // @@ -704,7 +793,8 @@ UARTModemControlSet(unsigned long ulBase, unsigned long ulControl) //! \param ulControl is a bit-mapped flag indicating which modem control bits //! should be set. //! -//! Clears the states of the DTR or RTS modem handshake outputs from the UART. +//! This function clears the states of the DTR or RTS modem handshake outputs +//! from the UART. //! //! The \e ulControl parameter is the logical OR of any of the following: //! @@ -744,15 +834,15 @@ UARTModemControlClear(unsigned long ulBase, unsigned long ulControl) //! //! \param ulBase is the base address of the UART port. //! -//! Returns the current states of each of the two UART modem control signals, -//! DTR and RTS. +//! This function returns the current states of each of the two UART modem +//! control signals, DTR and RTS. //! //! \note The availability of hardware modem handshake signals varies with the //! Stellaris part and UART in use. Please consult the datasheet for the part //! you are using to determine whether this support is available. //! -//! \return Returns the states of the handshake output signals. This will be a -//! logical logical OR combination of values \b UART_OUTPUT_RTS and +//! \return Returns the states of the handshake output signals. This value is +//! a logical OR combination of values \b UART_OUTPUT_RTS and //! \b UART_OUTPUT_DTR where the presence of each flag indicates that the //! associated signal is asserted. // @@ -775,16 +865,16 @@ UARTModemControlGet(unsigned long ulBase) //! //! \param ulBase is the base address of the UART port. //! -//! Returns the current states of each of the four UART modem status signals, -//! RI, DCD, DSR and CTS. +//! This function returns the current states of each of the four UART modem +//! status signals, RI, DCD, DSR and CTS. //! //! \note The availability of hardware modem handshake signals varies with the //! Stellaris part and UART in use. Please consult the datasheet for the part //! you are using to determine whether this support is available. //! -//! \return Returns the states of the handshake output signals. This will be a -//! logical logical OR combination of values \b UART_INPUT_RI, \b -//! UART_INPUT_DCD, \b UART_INPUT_CTS and \b UART_INPUT_DSR where the +//! \return Returns the states of the handshake output signals. This value +//! is a logical OR combination of values \b UART_INPUT_RI, +//! \b UART_INPUT_DCD, \b UART_INPUT_CTS and \b UART_INPUT_DSR where the //! presence of each flag indicates that the associated signal is asserted. // //***************************************************************************** @@ -806,17 +896,18 @@ UARTModemStatusGet(unsigned long ulBase) //! Sets the UART hardware flow control mode to be used. //! //! \param ulBase is the base address of the UART port. -//! \param ulMode indicates the flow control modes to be used. This is a -//! logical OR combination of values \b UART_FLOWCONTROL_TX and \b -//! UART_FLOWCONTROL_RX to enable hardware transmit (CTS) and receive (RTS) +//! \param ulMode indicates the flow control modes to be used. This parameter +//! is a logical OR combination of values \b UART_FLOWCONTROL_TX and +//! \b UART_FLOWCONTROL_RX to enable hardware transmit (CTS) and receive (RTS) //! flow control or \b UART_FLOWCONTROL_NONE to disable hardware flow control. //! -//! Sets the required hardware flow control modes. If \e ulMode contains -//! flag \b UART_FLOWCONTROL_TX, data is only transmitted if the incoming CTS -//! signal is asserted. If \e ulMode contains flag \b UART_FLOWCONTROL_RX, -//! the RTS output is controlled by the hardware and is asserted only when -//! there is space available in the receive FIFO. If no hardware flow control -//! is required, UART_FLOWCONTROL_NONE should be passed. +//! This function configures the required hardware flow control modes. If +//! \e ulMode contains flag \b UART_FLOWCONTROL_TX, data is only transmitted +//! if the incoming CTS signal is asserted. If \e ulMode contains flag +//! \b UART_FLOWCONTROL_RX, the RTS output is controlled by the hardware and is +//! asserted only when there is space available in the receive FIFO. If no +//! hardware flow control is required, \b UART_FLOWCONTROL_NONE should be +//! passed. //! //! \note The availability of hardware flow control varies with the Stellaris //! part and UART in use. Please consult the datasheet for the part you are @@ -832,8 +923,7 @@ UARTFlowControlSet(unsigned long ulBase, unsigned long ulMode) // Check the arguments. // ASSERT(!CLASS_IS_SANDSTORM && !CLASS_IS_FURY && !CLASS_IS_DUSTDEVIL); - ASSERT((ulBase == UART0_BASE) || (ulBase == UART1_BASE) || - (ulBase == UART2_BASE)); + ASSERT(UARTBaseValid(ulBase)); ASSERT((ulMode & ~(UART_FLOWCONTROL_TX | UART_FLOWCONTROL_RX)) == 0); // @@ -850,17 +940,17 @@ UARTFlowControlSet(unsigned long ulBase, unsigned long ulMode) //! //! \param ulBase is the base address of the UART port. //! -//! Returns the current hardware flow control mode. +//! This function returns the current hardware flow control mode. //! //! \note The availability of hardware flow control varies with the Stellaris //! part and UART in use. Please consult the datasheet for the part you are //! using to determine whether this support is available. //! -//! \return Returns the current flow control mode in use. This is a +//! \return Returns the current flow control mode in use. This value is a //! logical OR combination of values \b UART_FLOWCONTROL_TX if transmit //! (CTS) flow control is enabled and \b UART_FLOWCONTROL_RX if receive (RTS) -//! flow control is in use. If hardware flow control is disabled, \b -//! UART_FLOWCONTROL_NONE will be returned. +//! flow control is in use. If hardware flow control is disabled, +//! \b UART_FLOWCONTROL_NONE is returned. // //***************************************************************************** unsigned long @@ -870,8 +960,7 @@ UARTFlowControlGet(unsigned long ulBase) // Check the arguments. // ASSERT(!CLASS_IS_SANDSTORM && !CLASS_IS_FURY && !CLASS_IS_DUSTDEVIL); - ASSERT((ulBase == UART0_BASE) || (ulBase == UART1_BASE) || - (ulBase == UART2_BASE)); + ASSERT(UARTBaseValid(ulBase)); return(HWREG(ulBase + UART_O_CTL) & (UART_FLOWCONTROL_TX | UART_FLOWCONTROL_RX)); @@ -891,9 +980,9 @@ UARTFlowControlGet(unsigned long ulBase) //! default, the transmit interrupt is asserted when the FIFO level falls past //! a threshold set via a call to UARTFIFOLevelSet(). Alternatively, if this //! function is called with \e ulMode set to \b UART_TXINT_MODE_EOT, the -//! transmit interrupt will only be asserted once the transmitter is completely -//! idle - the transmit FIFO is empty and all bits, including any stop bits, -//! have cleared the transmitter. +//! transmit interrupt is asserted once the transmitter is completely idle - +//! the transmit FIFO is empty and all bits, including any stop bits, have +//! cleared the transmitter. //! //! \note The availability of end-of-transmission mode varies with the //! Stellaris part in use. Please consult the datasheet for the part you are @@ -908,8 +997,7 @@ UARTTxIntModeSet(unsigned long ulBase, unsigned long ulMode) // // Check the arguments. // - ASSERT((ulBase == UART0_BASE) || (ulBase == UART1_BASE) || - (ulBase == UART2_BASE)); + ASSERT(UARTBaseValid(ulBase)); ASSERT((ulMode == UART_TXINT_MODE_EOT) || (ulMode == UART_TXINT_MODE_FIFO)); @@ -928,12 +1016,12 @@ UARTTxIntModeSet(unsigned long ulBase, unsigned long ulMode) //! \param ulBase is the base address of the UART port. //! //! This function returns the current operating mode for the UART transmit -//! interrupt. The return value will be \b UART_TXINT_MODE_EOT if the -//! transmit interrupt is currently set to be asserted once the transmitter is +//! interrupt. The return value is \b UART_TXINT_MODE_EOT if the transmit +//! interrupt is currently configured to be asserted once the transmitter is //! completely idle - the transmit FIFO is empty and all bits, including any -//! stop bits, have cleared the transmitter. The return value will be \b -//! UART_TXINT_MODE_FIFO if the interrupt is set to be asserted based upon the -//! level of the transmit FIFO. +//! stop bits, have cleared the transmitter. The return value is +//! \b UART_TXINT_MODE_FIFO if the interrupt is configured to be asserted based +//! on the level of the transmit FIFO. //! //! \note The availability of end-of-transmission mode varies with the //! Stellaris part in use. Please consult the datasheet for the part you are @@ -948,8 +1036,7 @@ UARTTxIntModeGet(unsigned long ulBase) // // Check the arguments. // - ASSERT((ulBase == UART0_BASE) || (ulBase == UART1_BASE) || - (ulBase == UART2_BASE)); + ASSERT(UARTBaseValid(ulBase)); // // Return the current transmit interrupt mode. @@ -1018,7 +1105,8 @@ UARTSpaceAvail(unsigned long ulBase) //! //! \param ulBase is the base address of the UART port. //! -//! Gets a character from the receive FIFO for the specified port. +//! This function gets a character from the receive FIFO for the specified +//! port. //! //! This function replaces the original UARTCharNonBlockingGet() API and //! performs the same actions. A macro is provided in uart.h to map @@ -1063,9 +1151,9 @@ UARTCharGetNonBlocking(unsigned long ulBase) //! //! \param ulBase is the base address of the UART port. //! -//! Gets a character from the receive FIFO for the specified port. If there -//! are no characters available, this function waits until a character is -//! received before returning. +//! This function gets a character from the receive FIFO for the specified +//! port. If there are no characters available, this function waits until a +//! character is received before returning. //! //! \return Returns the character read from the specified port, cast as a //! \e long. @@ -1099,9 +1187,10 @@ UARTCharGet(unsigned long ulBase) //! \param ulBase is the base address of the UART port. //! \param ucData is the character to be transmitted. //! -//! Writes the character \e ucData to the transmit FIFO for the specified port. -//! This function does not block, so if there is no space available, then a -//! \b false is returned, and the application must retry the function later. +//! This function writes the character \e ucData to the transmit FIFO for the +//! specified port. This function does not block, so if there is no space +//! available, then a \b false is returned and the application must retry the +//! function later. //! //! This function replaces the original UARTCharNonBlockingPut() API and //! performs the same actions. A macro is provided in uart.h to map @@ -1151,9 +1240,9 @@ UARTCharPutNonBlocking(unsigned long ulBase, unsigned char ucData) //! \param ulBase is the base address of the UART port. //! \param ucData is the character to be transmitted. //! -//! Sends the character \e ucData to the transmit FIFO for the specified port. -//! If there is no space available in the transmit FIFO, this function waits -//! until there is space available before returning. +//! This function sends the character \e ucData to the transmit FIFO for the +//! specified port. If there is no space available in the transmit FIFO, this +//! function waits until there is space available before returning. //! //! \return None. // @@ -1217,10 +1306,10 @@ UARTBreakCtl(unsigned long ulBase, tBoolean bBreakState) //! //! \param ulBase is the base address of the UART port. //! -//! Allows the caller to determine whether all transmitted bytes have cleared -//! the transmitter hardware. If \b false is returned, the transmit FIFO is -//! empty and all bits of the last transmitted character, including all stop -//! bits, have left the hardware shift register. +//! This function allows the caller to determine whether all transmitted bytes +//! have cleared the transmitter hardware. If \b false is returned, the +//! transmit FIFO is empty and all bits of the last transmitted character, +//! including all stop bits, have left the hardware shift register. //! //! \return Returns \b true if the UART is transmitting or \b false if all //! transmissions are complete. @@ -1249,8 +1338,8 @@ UARTBusy(unsigned long ulBase) //! UART interrupt occurs. //! //! This function does the actual registering of the interrupt handler. This -//! will enable the global interrupt in the interrupt controller; specific UART -//! interrupts must be enabled via UARTIntEnable(). It is the interrupt +//! function enables the global interrupt in the interrupt controller; specific +//! UART interrupts must be enabled via UARTIntEnable(). It is the interrupt //! handler's responsibility to clear the interrupt source. //! //! \sa IntRegister() for important information about registering interrupt @@ -1272,8 +1361,7 @@ UARTIntRegister(unsigned long ulBase, void (*pfnHandler)(void)) // // Determine the interrupt number based on the UART port. // - ulInt = ((ulBase == UART0_BASE) ? INT_UART0 : - ((ulBase == UART1_BASE) ? INT_UART1 : INT_UART2)); + ulInt = UARTIntNumberGet(ulBase); // // Register the interrupt handler. @@ -1293,9 +1381,9 @@ UARTIntRegister(unsigned long ulBase, void (*pfnHandler)(void)) //! \param ulBase is the base address of the UART port. //! //! This function does the actual unregistering of the interrupt handler. It -//! will clear the handler to be called when a UART interrupt occurs. This -//! will also mask off the interrupt in the interrupt controller so that the -//! interrupt handler no longer is called. +//! clears the handler to be called when a UART interrupt occurs. This +//! function also masks off the interrupt in the interrupt controller so that +//! the interrupt handler no longer is called. //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -1316,8 +1404,7 @@ UARTIntUnregister(unsigned long ulBase) // // Determine the interrupt number based on the UART port. // - ulInt = ((ulBase == UART0_BASE) ? INT_UART0 : - ((ulBase == UART1_BASE) ? INT_UART1 : INT_UART2)); + ulInt = UARTIntNumberGet(ulBase); // // Disable the interrupt. @@ -1337,12 +1424,13 @@ UARTIntUnregister(unsigned long ulBase) //! \param ulBase is the base address of the UART port. //! \param ulIntFlags is the bit mask of the interrupt sources to be enabled. //! -//! Enables the indicated UART interrupt sources. Only the sources that are -//! enabled can be reflected to the processor interrupt; disabled sources have -//! no effect on the processor. +//! This function enables the indicated UART interrupt sources. Only the +//! sources that are enabled can be reflected to the processor interrupt; +//! disabled sources have no effect on the processor. //! //! The \e ulIntFlags parameter is the logical OR of any of the following: //! +//! - \b UART_INT_9BIT - 9-bit Address Match interrupt //! - \b UART_INT_OE - Overrun Error interrupt //! - \b UART_INT_BE - Break Error interrupt //! - \b UART_INT_PE - Parity Error interrupt @@ -1379,9 +1467,9 @@ UARTIntEnable(unsigned long ulBase, unsigned long ulIntFlags) //! \param ulBase is the base address of the UART port. //! \param ulIntFlags is the bit mask of the interrupt sources to be disabled. //! -//! Disables the indicated UART interrupt sources. Only the sources that are -//! enabled can be reflected to the processor interrupt; disabled sources have -//! no effect on the processor. +//! This function disables the indicated UART interrupt sources. Only the +//! sources that are enabled can be reflected to the processor interrupt; +//! disabled sources have no effect on the processor. //! //! The \e ulIntFlags parameter has the same definition as the \e ulIntFlags //! parameter to UARTIntEnable(). @@ -1411,9 +1499,9 @@ UARTIntDisable(unsigned long ulBase, unsigned long ulIntFlags) //! \param bMasked is \b false if the raw interrupt status is required and //! \b true if the masked interrupt status is required. //! -//! This returns the interrupt status for the specified UART. Either the raw -//! interrupt status or the status of interrupts that are allowed to reflect to -//! the processor can be returned. +//! This function returns the interrupt status for the specified UART. Either +//! the raw interrupt status or the status of interrupts that are allowed to +//! reflect to the processor can be returned. //! //! \return Returns the current interrupt status, enumerated as a bit field of //! values described in UARTIntEnable(). @@ -1450,19 +1538,19 @@ UARTIntStatus(unsigned long ulBase, tBoolean bMasked) //! //! The specified UART interrupt sources are cleared, so that they no longer //! assert. This function must be called in the interrupt handler to keep the -//! interrupt from being recognized again immediately upon exit. +//! interrupt from being triggered again immediately upon exit. //! //! The \e ulIntFlags parameter has the same definition as the \e ulIntFlags //! parameter to UARTIntEnable(). //! -//! \note Since there is a write buffer in the Cortex-M3 processor, it may take -//! several clock cycles before the interrupt source is actually cleared. +//! \note Because there is a write buffer in the Cortex-M processor, it may +//! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid //! returning from the interrupt handler before the interrupt source is //! actually cleared. Failure to do so may result in the interrupt handler -//! being immediately reentered (since NVIC still sees the interrupt source -//! asserted). +//! being immediately reentered (because the interrupt controller still sees +//! the interrupt source asserted). //! //! \return None. // @@ -1489,7 +1577,7 @@ UARTIntClear(unsigned long ulBase, unsigned long ulIntFlags) //! \param ulDMAFlags is a bit mask of the DMA features to enable. //! //! The specified UART DMA features are enabled. The UART can be -//! configured to use DMA for transmit or receive, and to disable +//! configured to use DMA for transmit or receive and to disable //! receive if an error occurs. The \e ulDMAFlags parameter is the //! logical OR of any of the following values: //! @@ -1558,8 +1646,8 @@ UARTDMADisable(unsigned long ulBase, unsigned long ulDMAFlags) //! This function returns the current state of each of the 4 receiver error //! sources. The returned errors are equivalent to the four error bits //! returned via the previous call to UARTCharGet() or UARTCharGetNonBlocking() -//! with the exception that the overrun error is set immediately the overrun -//! occurs rather than when a character is next read. +//! with the exception that the overrun error is set immediately when the +//! overrun occurs rather than when a character is next read. //! //! \return Returns a logical OR combination of the receiver error flags, //! \b UART_RXERROR_FRAMING, \b UART_RXERROR_PARITY, \b UART_RXERROR_BREAK @@ -1603,12 +1691,240 @@ UARTRxErrorClear(unsigned long ulBase) ASSERT(UARTBaseValid(ulBase)); // - // Any write to the Error Clear Register will clear all bits which are + // Any write to the Error Clear Register clears all bits which are // currently set. // HWREG(ulBase + UART_O_ECR) = 0; } +//***************************************************************************** +// +//! Sets the baud clock source for the specified UART. +//! +//! \param ulBase is the base address of the UART port. +//! \param ulSource is the baud clock source for the UART. +//! +//! This function allows the baud clock source for the UART to be selected. +//! The possible clock source are the system clock (\b UART_CLOCK_SYSTEM) or +//! the precision internal oscillator (\b UART_CLOCK_PIOSC). +//! +//! Changing the baud clock source changes the baud rate generated by the +//! UART. Therefore, the baud rate should be reconfigured after any change to +//! the baud clock source. +//! +//! \note The ability to specify the UART baud clock source varies with the +//! Stellaris part in use. Please consult the datasheet for the part you are +//! using to determine whether this support is available. +//! +//! \return None. +// +//***************************************************************************** +void +UARTClockSourceSet(unsigned long ulBase, unsigned long ulSource) +{ + // + // Check the arguments. + // + ASSERT(UARTBaseValid(ulBase)); + ASSERT((ulSource == UART_CLOCK_SYSTEM) || (ulSource == UART_CLOCK_PIOSC)); + + // + // Set the UART clock source. + // + HWREG(ulBase + UART_O_CC) = ulSource; +} + +//***************************************************************************** +// +//! Gets the baud clock source for the specified UART. +//! +//! \param ulBase is the base address of the UART port. +//! +//! This function returns the baud clock source for the specified UART. The +//! possible baud clock source are the system clock (\b UART_CLOCK_SYSTEM) or +//! the precision internal oscillator (\b UART_CLOCK_PIOSC). +//! +//! \note The ability to specify the UART baud clock source varies with the +//! Stellaris part in use. Please consult the datasheet for the part you are +//! using to determine whether this support is available. +//! +//! \return None. +// +//***************************************************************************** +unsigned long +UARTClockSourceGet(unsigned long ulBase) +{ + // + // Check the arguments. + // + ASSERT(UARTBaseValid(ulBase)); + + // + // Return the UART clock source. + // + return(HWREG(ulBase + UART_O_CC)); +} + +//***************************************************************************** +// +//! Enables 9-bit mode on the specified UART. +//! +//! \param ulBase is the base address of the UART port. +//! +//! This function enables the 9-bit operational mode of the UART. +//! +//! \note The availability of 9-bit mode varies with the Stellaris part in use. +//! Please consult the datasheet for the part you are using to determine +//! whether this support is available. +//! +//! \return None. +// +//***************************************************************************** +void +UART9BitEnable(unsigned long ulBase) +{ + // + // Check the arguments. + // + ASSERT(UARTBaseValid(ulBase)); + + // + // Enable 9-bit mode. + // + HWREG(ulBase + UART_O_9BITADDR) |= UART_9BITADDR_9BITEN; +} + +//***************************************************************************** +// +//! Disables 9-bit mode on the specified UART. +//! +//! \param ulBase is the base address of the UART port. +//! +//! This function disables the 9-bit operational mode of the UART. +//! +//! \note The availability of 9-bit mode varies with the Stellaris part in use. +//! Please consult the datasheet for the part you are using to determine +//! whether this support is available. +//! +//! \return None. +// +//***************************************************************************** +void +UART9BitDisable(unsigned long ulBase) +{ + // + // Check the arguments. + // + ASSERT(UARTBaseValid(ulBase)); + + // + // Disable 9-bit mode. + // + HWREG(ulBase + UART_O_9BITADDR) &= ~UART_9BITADDR_9BITEN; +} + +//***************************************************************************** +// +//! Sets the device address(es) for 9-bit mode. +//! +//! \param ulBase is the base address of the UART port. +//! \param ucAddr is the device address. +//! \param ucMask is the device address mask. +//! +//! This function configures the device address or range of device addresses +//! that respond to requests on the 9-bit UART port. The received address is +//! masked with the mask and then compared against the given address, allowing +//! either a single address (if \b ucMask is 0xff) or a set of addresses to be +//! matched. +//! +//! \note The availability of 9-bit mode varies with the Stellaris part in use. +//! Please consult the datasheet for the part you are using to determine +//! whether this support is available. +//! +//! \return None. +// +//***************************************************************************** +void +UART9BitAddrSet(unsigned long ulBase, unsigned char ucAddr, + unsigned char ucMask) +{ + // + // Check the arguments. + // + ASSERT(UARTBaseValid(ulBase)); + + // + // Set the address and mask. + // + HWREG(ulBase + UART_O_9BITADDR) = ucAddr << UART_9BITADDR_ADDR_S; + HWREG(ulBase + UART_O_9BITAMASK) = ucMask << UART_9BITAMASK_MASK_S; +} + +//***************************************************************************** +// +//! Sends an address character from the specified port when operating in 9-bit +//! mode. +//! +//! \param ulBase is the base address of the UART port. +//! \param ucAddr is the address to be transmitted. +//! +//! This function waits until all data has been sent from the specified port +//! and then sends the given address as an address byte. It then waits until +//! the address byte has been transmitted before returning. +//! +//! The normal data functions (UARTCharPut(), UARTCharPutNonBlocking(), +//! UARTCharGet(), and UARTCharGetNonBlocking()) are used to send and receive +//! data characters in 9-bit mode. +//! +//! \note The availability of 9-bit mode varies with the Stellaris part in use. +//! Please consult the datasheet for the part you are using to determine +//! whether this support is available. +//! +//! \return None. +// +//***************************************************************************** +void +UART9BitAddrSend(unsigned long ulBase, unsigned char ucAddr) +{ + unsigned long ulLCRH; + + // + // Check the arguments. + // + ASSERT(UARTBaseValid(ulBase)); + + // + // Wait until the FIFO is empty and the UART is not busy. + // + while(HWREG(ulBase + UART_O_FR) & (UART_FR_TXFE | UART_FR_BUSY)) + { + } + + // + // Force the address/data bit to 1 to indicate this is an address byte. + // + ulLCRH = HWREG(ulBase + UART_O_LCRH); + HWREG(ulBase + UART_O_LCRH) = ((ulLCRH & ~UART_LCRH_EPS) | UART_LCRH_SPS | + UART_LCRH_PEN); + + // + // Send the address. + // + HWREG(ulBase + UART_O_DR) = ucAddr; + + // + // Wait until the address has been sent. + // + while(HWREG(ulBase + UART_O_FR) & (UART_FR_TXFE | UART_FR_BUSY)) + { + } + + // + // Restore the address/data setting. + // + HWREG(ulBase + UART_O_LCRH) = ulLCRH; +} + //***************************************************************************** // // Close the Doxygen group. diff --git a/bsp/lm3s8962/Libraries/driverlib/uart.h b/bsp/lm3s8962/Libraries/driverlib/uart.h index 735a83f64b..7a91483769 100644 --- a/bsp/lm3s8962/Libraries/driverlib/uart.h +++ b/bsp/lm3s8962/Libraries/driverlib/uart.h @@ -2,7 +2,7 @@ // // uart.h - Defines and Macros for the UART. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -42,6 +42,7 @@ extern "C" // as the ulIntFlags parameter, and returned from UARTIntStatus. // //***************************************************************************** +#define UART_INT_9BIT 0x1000 // 9-bit address match interrupt #define UART_INT_OE 0x400 // Overrun Error Interrupt Mask #define UART_INT_BE 0x200 // Break Error Interrupt Mask #define UART_INT_PE 0x100 // Parity Error Interrupt Mask @@ -159,6 +160,15 @@ extern "C" #define UART_TXINT_MODE_FIFO 0x00000000 #define UART_TXINT_MODE_EOT 0x00000010 +//***************************************************************************** +// +// Values that can be passed to UARTClockSourceSet() or returned from +// UARTClockSourceGet(). +// +//***************************************************************************** +#define UART_CLOCK_SYSTEM 0x00000000 +#define UART_CLOCK_PIOSC 0x00000001 + //***************************************************************************** // // API Function prototypes @@ -212,6 +222,13 @@ extern void UARTFlowControlSet(unsigned long ulBase, unsigned long ulMode); extern unsigned long UARTFlowControlGet(unsigned long ulBase); extern void UARTTxIntModeSet(unsigned long ulBase, unsigned long ulMode); extern unsigned long UARTTxIntModeGet(unsigned long ulBase); +extern void UARTClockSourceSet(unsigned long ulBase, unsigned long ulSource); +extern unsigned long UARTClockSourceGet(unsigned long ulBase); +extern void UART9BitEnable(unsigned long ulBase); +extern void UART9BitDisable(unsigned long ulBase); +extern void UART9BitAddrSet(unsigned long ulBase, unsigned char ucAddr, + unsigned char ucMask); +extern void UART9BitAddrSend(unsigned long ulBase, unsigned char ucAddr); //***************************************************************************** // diff --git a/bsp/lm3s8962/Libraries/driverlib/udma.c b/bsp/lm3s8962/Libraries/driverlib/udma.c index 9924d9d3dc..4124b52312 100644 --- a/bsp/lm3s8962/Libraries/driverlib/udma.c +++ b/bsp/lm3s8962/Libraries/driverlib/udma.c @@ -2,7 +2,7 @@ // // udma.c - Driver for the micro-DMA controller. // -// Copyright (c) 2007-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2007-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -29,6 +29,7 @@ // //***************************************************************************** +#include "inc/hw_sysctl.h" #include "inc/hw_types.h" #include "inc/hw_udma.h" #include "driverlib/debug.h" @@ -59,7 +60,7 @@ uDMAEnable(void) //! Disables the uDMA controller for use. //! //! This function disables the uDMA controller. Once disabled, the uDMA -//! controller will not operate until re-enabled with uDMAEnable(). +//! controller cannot operate until re-enabled with uDMAEnable(). //! //! \return None. // @@ -97,8 +98,9 @@ uDMAErrorStatusGet(void) // //! Clears the uDMA error interrupt. //! -//! This function clears a pending uDMA error interrupt. It should be called -//! from within the uDMA error interrupt handler to clear the interrupt. +//! This function clears a pending uDMA error interrupt. This function should +//! be called from within the uDMA error interrupt handler to clear the +//! interrupt. //! //! \return None. // @@ -116,165 +118,102 @@ uDMAErrorStatusClear(void) // //! Enables a uDMA channel for operation. //! -//! \param ulChannel is the channel number to enable. +//! \param ulChannelNum is the channel number to enable. //! //! This function enables a specific uDMA channel for use. This function must //! be used to enable a channel before it can be used to perform a uDMA //! transfer. //! -//! When a uDMA transfer is completed, the channel will be automatically -//! disabled by the uDMA controller. Therefore, this function should be called -//! prior to starting up any new transfer. -//! -//! The \e ulChannel parameter must be one of the following: -//! -//! - \b UDMA_CHANNEL_UART0RX for UART 0 receive channel -//! - \b UDMA_CHANNEL_UART0TX for UART 0 transmit channel -//! - \b UDMA_CHANNEL_UART1RX for UART 1 receive channel -//! - \b UDMA_CHANNEL_UART1TX for UART 1 transmit channel -//! - \b UDMA_CHANNEL_SSI0RX for SSI 0 receive channel -//! - \b UDMA_CHANNEL_SSI0TX for SSI 0 transmit channel -//! - \b UDMA_CHANNEL_SSI1RX for SSI 1 receive channel -//! - \b UDMA_CHANNEL_SSI1TX for SSI 1 transmit channel -//! - \b UDMA_CHANNEL_SW for the software dedicated uDMA channel -//! -//! And for microcontrollers that have a USB peripheral: -//! -//! - \b UDMA_CHANNEL_USBEP1RX for USB endpoint 1 receive -//! - \b UDMA_CHANNEL_USBEP1TX for USB endpoint 1 transmit -//! - \b UDMA_CHANNEL_USBEP2RX for USB endpoint 2 receive -//! - \b UDMA_CHANNEL_USBEP2TX for USB endpoint 2 transmit -//! - \b UDMA_CHANNEL_USBEP3RX for USB endpoint 3 receive -//! - \b UDMA_CHANNEL_USBEP3TX for USB endpoint 3 transmit +//! When a uDMA transfer is completed, the channel is automatically disabled by +//! the uDMA controller. Therefore, this function should be called prior to +//! starting up any new transfer. //! //! \return None. // //***************************************************************************** void -uDMAChannelEnable(unsigned long ulChannel) +uDMAChannelEnable(unsigned long ulChannelNum) { // // Check the arguments. // - ASSERT(ulChannel < 32); + ASSERT((ulChannelNum & 0xffff) < 32); // // Set the bit for this channel in the enable set register. // - HWREG(UDMA_ENASET) = 1 << ulChannel; + HWREG(UDMA_ENASET) = 1 << (ulChannelNum & 0x1f); } //***************************************************************************** // //! Disables a uDMA channel for operation. //! -//! \param ulChannel is the channel number to disable. +//! \param ulChannelNum is the channel number to disable. //! //! This function disables a specific uDMA channel. Once disabled, a channel -//! will not respond to uDMA transfer requests until re-enabled via +//! cannot respond to uDMA transfer requests until re-enabled via //! uDMAChannelEnable(). //! -//! The \e ulChannel parameter must be one of the following: -//! -//! - \b UDMA_CHANNEL_UART0RX for UART 0 receive channel -//! - \b UDMA_CHANNEL_UART0TX for UART 0 transmit channel -//! - \b UDMA_CHANNEL_UART1RX for UART 1 receive channel -//! - \b UDMA_CHANNEL_UART1TX for UART 1 transmit channel -//! - \b UDMA_CHANNEL_SSI0RX for SSI 0 receive channel -//! - \b UDMA_CHANNEL_SSI0TX for SSI 0 transmit channel -//! - \b UDMA_CHANNEL_SSI1RX for SSI 1 receive channel -//! - \b UDMA_CHANNEL_SSI1TX for SSI 1 transmit channel -//! - \b UDMA_CHANNEL_SW for the software dedicated uDMA channel -//! -//! And for microcontrollers that have a USB peripheral: -//! -//! - \b UDMA_CHANNEL_USBEP1RX for USB endpoint 1 receive -//! - \b UDMA_CHANNEL_USBEP1TX for USB endpoint 1 transmit -//! - \b UDMA_CHANNEL_USBEP2RX for USB endpoint 2 receive -//! - \b UDMA_CHANNEL_USBEP2TX for USB endpoint 2 transmit -//! - \b UDMA_CHANNEL_USBEP3RX for USB endpoint 3 receive -//! - \b UDMA_CHANNEL_USBEP3TX for USB endpoint 3 transmit -//! //! \return None. // //***************************************************************************** void -uDMAChannelDisable(unsigned long ulChannel) +uDMAChannelDisable(unsigned long ulChannelNum) { // // Check the arguments. // - ASSERT(ulChannel < 32); + ASSERT((ulChannelNum & 0xffff) < 32); // // Set the bit for this channel in the enable clear register. // - HWREG(UDMA_ENACLR) = 1 << ulChannel; + HWREG(UDMA_ENACLR) = 1 << (ulChannelNum & 0x1f); } //***************************************************************************** // //! Checks if a uDMA channel is enabled for operation. //! -//! \param ulChannel is the channel number to check. +//! \param ulChannelNum is the channel number to check. //! //! This function checks to see if a specific uDMA channel is enabled. This -//! can be used to check the status of a transfer, since the channel will -//! be automatically disabled at the end of a transfer. -//! -//! The \e ulChannel parameter must be one of the following: -//! -//! - \b UDMA_CHANNEL_UART0RX for UART 0 receive channel -//! - \b UDMA_CHANNEL_UART0TX for UART 0 transmit channel -//! - \b UDMA_CHANNEL_UART1RX for UART 1 receive channel -//! - \b UDMA_CHANNEL_UART1TX for UART 1 transmit channel -//! - \b UDMA_CHANNEL_SSI0RX for SSI 0 receive channel -//! - \b UDMA_CHANNEL_SSI0TX for SSI 0 transmit channel -//! - \b UDMA_CHANNEL_SSI1RX for SSI 1 receive channel -//! - \b UDMA_CHANNEL_SSI1TX for SSI 1 transmit channel -//! - \b UDMA_CHANNEL_SW for the software dedicated uDMA channel -//! -//! And for microcontrollers that have a USB peripheral: -//! -//! - \b UDMA_CHANNEL_USBEP1RX for USB endpoint 1 receive -//! - \b UDMA_CHANNEL_USBEP1TX for USB endpoint 1 transmit -//! - \b UDMA_CHANNEL_USBEP2RX for USB endpoint 2 receive -//! - \b UDMA_CHANNEL_USBEP2TX for USB endpoint 2 transmit -//! - \b UDMA_CHANNEL_USBEP3RX for USB endpoint 3 receive -//! - \b UDMA_CHANNEL_USBEP3TX for USB endpoint 3 transmit +//! function can be used to check the status of a transfer, as the channel is +//! automatically disabled at the end of a transfer. //! //! \return Returns \b true if the channel is enabled, \b false if disabled. // //***************************************************************************** tBoolean -uDMAChannelIsEnabled(unsigned long ulChannel) +uDMAChannelIsEnabled(unsigned long ulChannelNum) { // // Check the arguments. // - ASSERT(ulChannel < 32); + ASSERT((ulChannelNum & 0xffff) < 32); // - // AND the specified channel bit with the enable register, and return the + // AND the specified channel bit with the enable register and return the // result. // - return((HWREG(UDMA_ENASET) & (1 << ulChannel)) ? true : false); + return((HWREG(UDMA_ENASET) & (1 << (ulChannelNum & 0x1f))) ? true : false); } //***************************************************************************** // //! Sets the base address for the channel control table. //! -//! \param pControlTable is a pointer to the 1024 byte aligned base address +//! \param pControlTable is a pointer to the 1024-byte-aligned base address //! of the uDMA channel control table. //! -//! This function sets the base address of the channel control table. This -//! table resides in system memory and holds control information for each uDMA -//! channel. The table must be aligned on a 1024 byte boundary. The base -//! address must be set before any of the channel functions can be used. +//! This function configures the base address of the channel control table. +//! This table resides in system memory and holds control information for each +//! uDMA channel. The table must be aligned on a 1024-byte boundary. The base +//! address must be configured before any of the channel functions can be used. //! //! The size of the channel control table depends on the number of uDMA -//! channels, and which transfer modes are used. Refer to the introductory +//! channels and the transfer modes that are used. Refer to the introductory //! text and the microcontroller datasheet for more information about the //! channel control table. //! @@ -312,100 +251,82 @@ void * uDMAControlBaseGet(void) { // - // Read the current value of the control base register, and return it to + // Read the current value of the control base register and return it to // the caller. // return((void *)HWREG(UDMA_CTLBASE)); } +//***************************************************************************** +// +//! Gets the base address for the channel control table alternate structures. +//! +//! This function gets the base address of the second half of the channel +//! control table that holds the alternate control structures for each channel. +//! +//! \return Returns a pointer to the base address of the second half of the +//! channel control table. +// +//***************************************************************************** +void * +uDMAControlAlternateBaseGet(void) +{ + // + // Read the current value of the control base register and return it to + // the caller. + // + return((void *)HWREG(UDMA_ALTBASE)); +} + //***************************************************************************** // //! Requests a uDMA channel to start a transfer. //! -//! \param ulChannel is the channel number on which to request a uDMA transfer. +//! \param ulChannelNum is the channel number on which to request a uDMA +//! transfer. //! //! This function allows software to request a uDMA channel to begin a -//! transfer. This could be used for performing a memory to memory transfer, -//! or if for some reason a transfer needs to be initiated by software instead -//! of the peripheral associated with that channel. -//! -//! The \e ulChannel parameter must be one of the following: -//! -//! - \b UDMA_CHANNEL_UART0RX for UART 0 receive channel -//! - \b UDMA_CHANNEL_UART0TX for UART 0 transmit channel -//! - \b UDMA_CHANNEL_UART1RX for UART 1 receive channel -//! - \b UDMA_CHANNEL_UART1TX for UART 1 transmit channel -//! - \b UDMA_CHANNEL_SSI0RX for SSI 0 receive channel -//! - \b UDMA_CHANNEL_SSI0TX for SSI 0 transmit channel -//! - \b UDMA_CHANNEL_SSI1RX for SSI 1 receive channel -//! - \b UDMA_CHANNEL_SSI1TX for SSI 1 transmit channel -//! - \b UDMA_CHANNEL_SW for the software dedicated uDMA channel -//! -//! And for microcontrollers that have a USB peripheral: -//! -//! - \b UDMA_CHANNEL_USBEP1RX for USB endpoint 1 receive -//! - \b UDMA_CHANNEL_USBEP1TX for USB endpoint 1 transmit -//! - \b UDMA_CHANNEL_USBEP2RX for USB endpoint 2 receive -//! - \b UDMA_CHANNEL_USBEP2TX for USB endpoint 2 transmit -//! - \b UDMA_CHANNEL_USBEP3RX for USB endpoint 3 receive -//! - \b UDMA_CHANNEL_USBEP3TX for USB endpoint 3 transmit +//! transfer. This function could be used for performing a memory-to-memory +//! transfer or if for some reason, a transfer needs to be initiated by software +//! instead of the peripheral associated with that channel. //! //! \note If the channel is \b UDMA_CHANNEL_SW and interrupts are used, then -//! the completion will be signaled on the uDMA dedicated interrupt. If a -//! peripheral channel is used, then the completion will be signaled on the +//! the completion is signaled on the uDMA dedicated interrupt. If a +//! peripheral channel is used, then the completion is signaled on the //! peripheral's interrupt. //! //! \return None. // //***************************************************************************** void -uDMAChannelRequest(unsigned long ulChannel) +uDMAChannelRequest(unsigned long ulChannelNum) { // // Check the arguments. // - ASSERT(ulChannel < 32); + ASSERT((ulChannelNum & 0xffff) < 32); // // Set the bit for this channel in the software uDMA request register. // - HWREG(UDMA_SWREQ) = 1 << ulChannel; + HWREG(UDMA_SWREQ) = 1 << (ulChannelNum & 0x1f); } //***************************************************************************** // //! Enables attributes of a uDMA channel. //! -//! \param ulChannel is the channel to configure. +//! \param ulChannelNum is the channel to configure. //! \param ulAttr is a combination of attributes for the channel. //! -//! The \e ulChannel parameter must be one of the following: -//! -//! - \b UDMA_CHANNEL_UART0RX for UART 0 receive channel -//! - \b UDMA_CHANNEL_UART0TX for UART 0 transmit channel -//! - \b UDMA_CHANNEL_UART1RX for UART 1 receive channel -//! - \b UDMA_CHANNEL_UART1TX for UART 1 transmit channel -//! - \b UDMA_CHANNEL_SSI0RX for SSI 0 receive channel -//! - \b UDMA_CHANNEL_SSI0TX for SSI 0 transmit channel -//! - \b UDMA_CHANNEL_SSI1RX for SSI 1 receive channel -//! - \b UDMA_CHANNEL_SSI1TX for SSI 1 transmit channel -//! - \b UDMA_CHANNEL_SW for the software dedicated uDMA channel -//! -//! And for microcontrollers that have a USB peripheral: -//! -//! - \b UDMA_CHANNEL_USBEP1RX for USB endpoint 1 receive -//! - \b UDMA_CHANNEL_USBEP1TX for USB endpoint 1 transmit -//! - \b UDMA_CHANNEL_USBEP2RX for USB endpoint 2 receive -//! - \b UDMA_CHANNEL_USBEP2TX for USB endpoint 2 transmit -//! - \b UDMA_CHANNEL_USBEP3RX for USB endpoint 3 receive -//! - \b UDMA_CHANNEL_USBEP3TX for USB endpoint 3 transmit +//! This function is used to enable attributes of a uDMA channel. //! //! The \e ulAttr parameter is the logical OR of any of the following: //! -//! - \b UDMA_ATTR_USEBURST is used to restrict transfers to use only a burst +//! - \b UDMA_ATTR_USEBURST is used to restrict transfers to use only burst //! mode. //! - \b UDMA_ATTR_ALTSELECT is used to select the alternate control structure -//! for this channel. +//! for this channel (it is very unlikely that this flag should be used). //! - \b UDMA_ATTR_HIGH_PRIORITY is used to set this channel to high priority. //! - \b UDMA_ATTR_REQMASK is used to mask the hardware request signal from the //! peripheral for this channel. @@ -414,21 +335,28 @@ uDMAChannelRequest(unsigned long ulChannel) // //***************************************************************************** void -uDMAChannelAttributeEnable(unsigned long ulChannel, unsigned long ulAttr) +uDMAChannelAttributeEnable(unsigned long ulChannelNum, unsigned long ulAttr) { // // Check the arguments. // - ASSERT(ulChannel < 32); + ASSERT((ulChannelNum & 0xffff) < 32); ASSERT((ulAttr & ~(UDMA_ATTR_USEBURST | UDMA_ATTR_ALTSELECT | UDMA_ATTR_HIGH_PRIORITY | UDMA_ATTR_REQMASK)) == 0); + // + // In case a channel selector macro (like UDMA_CH0_USB0EP1RX) was + // passed as the ulChannelNum parameter, extract just the channel number + // from this parameter. + // + ulChannelNum &= 0x1f; + // // Set the useburst bit for this channel if set in ulConfig. // if(ulAttr & UDMA_ATTR_USEBURST) { - HWREG(UDMA_USEBURSTSET) = 1 << ulChannel; + HWREG(UDMA_USEBURSTSET) = 1 << ulChannelNum; } // @@ -437,7 +365,7 @@ uDMAChannelAttributeEnable(unsigned long ulChannel, unsigned long ulAttr) // if(ulAttr & UDMA_ATTR_ALTSELECT) { - HWREG(UDMA_ALTSET) = 1 << ulChannel; + HWREG(UDMA_ALTSET) = 1 << ulChannelNum; } // @@ -445,7 +373,7 @@ uDMAChannelAttributeEnable(unsigned long ulChannel, unsigned long ulAttr) // if(ulAttr & UDMA_ATTR_HIGH_PRIORITY) { - HWREG(UDMA_PRIOSET) = 1 << ulChannel; + HWREG(UDMA_PRIOSET) = 1 << ulChannelNum; } // @@ -453,7 +381,7 @@ uDMAChannelAttributeEnable(unsigned long ulChannel, unsigned long ulAttr) // if(ulAttr & UDMA_ATTR_REQMASK) { - HWREG(UDMA_REQMASKSET) = 1 << ulChannel; + HWREG(UDMA_REQMASKSET) = 1 << ulChannelNum; } } @@ -461,35 +389,14 @@ uDMAChannelAttributeEnable(unsigned long ulChannel, unsigned long ulAttr) // //! Disables attributes of a uDMA channel. //! -//! \param ulChannel is the channel to configure. +//! \param ulChannelNum is the channel to configure. //! \param ulAttr is a combination of attributes for the channel. //! //! This function is used to disable attributes of a uDMA channel. //! -//! The \e ulChannel parameter must be one of the following: -//! -//! - \b UDMA_CHANNEL_UART0RX for UART 0 receive channel -//! - \b UDMA_CHANNEL_UART0TX for UART 0 transmit channel -//! - \b UDMA_CHANNEL_UART1RX for UART 1 receive channel -//! - \b UDMA_CHANNEL_UART1TX for UART 1 transmit channel -//! - \b UDMA_CHANNEL_SSI0RX for SSI 0 receive channel -//! - \b UDMA_CHANNEL_SSI0TX for SSI 0 transmit channel -//! - \b UDMA_CHANNEL_SSI1RX for SSI 1 receive channel -//! - \b UDMA_CHANNEL_SSI1TX for SSI 1 transmit channel -//! - \b UDMA_CHANNEL_SW for the software dedicated uDMA channel -//! -//! And for microcontrollers that have a USB peripheral: -//! -//! - \b UDMA_CHANNEL_USBEP1RX for USB endpoint 1 receive -//! - \b UDMA_CHANNEL_USBEP1TX for USB endpoint 1 transmit -//! - \b UDMA_CHANNEL_USBEP2RX for USB endpoint 2 receive -//! - \b UDMA_CHANNEL_USBEP2TX for USB endpoint 2 transmit -//! - \b UDMA_CHANNEL_USBEP3RX for USB endpoint 3 receive -//! - \b UDMA_CHANNEL_USBEP3TX for USB endpoint 3 transmit -//! //! The \e ulAttr parameter is the logical OR of any of the following: //! -//! - \b UDMA_ATTR_USEBURST is used to restrict transfers to use only a burst +//! - \b UDMA_ATTR_USEBURST is used to restrict transfers to use only burst //! mode. //! - \b UDMA_ATTR_ALTSELECT is used to select the alternate control structure //! for this channel. @@ -501,21 +408,28 @@ uDMAChannelAttributeEnable(unsigned long ulChannel, unsigned long ulAttr) // //***************************************************************************** void -uDMAChannelAttributeDisable(unsigned long ulChannel, unsigned long ulAttr) +uDMAChannelAttributeDisable(unsigned long ulChannelNum, unsigned long ulAttr) { // // Check the arguments. // - ASSERT(ulChannel < 32); + ASSERT((ulChannelNum & 0xffff) < 32); ASSERT((ulAttr & ~(UDMA_ATTR_USEBURST | UDMA_ATTR_ALTSELECT | UDMA_ATTR_HIGH_PRIORITY | UDMA_ATTR_REQMASK)) == 0); + // + // In case a channel selector macro (like UDMA_CH0_USB0EP1RX) was + // passed as the ulChannelNum parameter, extract just the channel number + // from this parameter. + // + ulChannelNum &= 0x1f; + // // Clear the useburst bit for this channel if set in ulConfig. // if(ulAttr & UDMA_ATTR_USEBURST) { - HWREG(UDMA_USEBURSTCLR) = 1 << ulChannel; + HWREG(UDMA_USEBURSTCLR) = 1 << ulChannelNum; } // @@ -524,7 +438,7 @@ uDMAChannelAttributeDisable(unsigned long ulChannel, unsigned long ulAttr) // if(ulAttr & UDMA_ATTR_ALTSELECT) { - HWREG(UDMA_ALTCLR) = 1 << ulChannel; + HWREG(UDMA_ALTCLR) = 1 << ulChannelNum; } // @@ -532,7 +446,7 @@ uDMAChannelAttributeDisable(unsigned long ulChannel, unsigned long ulAttr) // if(ulAttr & UDMA_ATTR_HIGH_PRIORITY) { - HWREG(UDMA_PRIOCLR) = 1 << ulChannel; + HWREG(UDMA_PRIOCLR) = 1 << ulChannelNum; } // @@ -540,7 +454,7 @@ uDMAChannelAttributeDisable(unsigned long ulChannel, unsigned long ulAttr) // if(ulAttr & UDMA_ATTR_REQMASK) { - HWREG(UDMA_REQMASKCLR) = 1 << ulChannel; + HWREG(UDMA_REQMASKCLR) = 1 << ulChannelNum; } } @@ -548,35 +462,14 @@ uDMAChannelAttributeDisable(unsigned long ulChannel, unsigned long ulAttr) // //! Gets the enabled attributes of a uDMA channel. //! -//! \param ulChannel is the channel to configure. +//! \param ulChannelNum is the channel to configure. //! //! This function returns a combination of flags representing the attributes of //! the uDMA channel. //! -//! The \e ulChannel parameter must be one of the following: -//! -//! - \b UDMA_CHANNEL_UART0RX for UART 0 receive channel -//! - \b UDMA_CHANNEL_UART0TX for UART 0 transmit channel -//! - \b UDMA_CHANNEL_UART1RX for UART 1 receive channel -//! - \b UDMA_CHANNEL_UART1TX for UART 1 transmit channel -//! - \b UDMA_CHANNEL_SSI0RX for SSI 0 receive channel -//! - \b UDMA_CHANNEL_SSI0TX for SSI 0 transmit channel -//! - \b UDMA_CHANNEL_SSI1RX for SSI 1 receive channel -//! - \b UDMA_CHANNEL_SSI1TX for SSI 1 transmit channel -//! - \b UDMA_CHANNEL_SW for the software dedicated uDMA channel -//! -//! And for microcontrollers that have a USB peripheral: -//! -//! - \b UDMA_CHANNEL_USBEP1RX for USB endpoint 1 receive -//! - \b UDMA_CHANNEL_USBEP1TX for USB endpoint 1 transmit -//! - \b UDMA_CHANNEL_USBEP2RX for USB endpoint 2 receive -//! - \b UDMA_CHANNEL_USBEP2TX for USB endpoint 2 transmit -//! - \b UDMA_CHANNEL_USBEP3RX for USB endpoint 3 receive -//! - \b UDMA_CHANNEL_USBEP3TX for USB endpoint 3 transmit -//! //! \return Returns the logical OR of the attributes of the uDMA channel, which //! can be any of the following: -//! - \b UDMA_ATTR_USEBURST is used to restrict transfers to use only a burst +//! - \b UDMA_ATTR_USEBURST is used to restrict transfers to use only burst //! mode. //! - \b UDMA_ATTR_ALTSELECT is used to select the alternate control structure //! for this channel. @@ -586,19 +479,26 @@ uDMAChannelAttributeDisable(unsigned long ulChannel, unsigned long ulAttr) // //***************************************************************************** unsigned long -uDMAChannelAttributeGet(unsigned long ulChannel) +uDMAChannelAttributeGet(unsigned long ulChannelNum) { unsigned long ulAttr = 0; // // Check the arguments. // - ASSERT(ulChannel < 32); + ASSERT((ulChannelNum & 0xffff) < 32); + + // + // In case a channel selector macro (like UDMA_CH0_USB0EP1RX) was + // passed as the ulChannelNum parameter, extract just the channel number + // from this parameter. + // + ulChannelNum &= 0x1f; // // Check to see if useburst bit is set for this channel. // - if(HWREG(UDMA_USEBURSTSET) & (1 << ulChannel)) + if(HWREG(UDMA_USEBURSTSET) & (1 << ulChannelNum)) { ulAttr |= UDMA_ATTR_USEBURST; } @@ -606,7 +506,7 @@ uDMAChannelAttributeGet(unsigned long ulChannel) // // Check to see if the alternate control bit is set for this channel. // - if(HWREG(UDMA_ALTSET) & (1 << ulChannel)) + if(HWREG(UDMA_ALTSET) & (1 << ulChannelNum)) { ulAttr |= UDMA_ATTR_ALTSELECT; } @@ -614,7 +514,7 @@ uDMAChannelAttributeGet(unsigned long ulChannel) // // Check to see if the high priority bit is set for this channel. // - if(HWREG(UDMA_PRIOSET) & (1 << ulChannel)) + if(HWREG(UDMA_PRIOSET) & (1 << ulChannelNum)) { ulAttr |= UDMA_ATTR_HIGH_PRIORITY; } @@ -622,7 +522,7 @@ uDMAChannelAttributeGet(unsigned long ulChannel) // // Check to see if the request mask bit is set for this channel. // - if(HWREG(UDMA_REQMASKSET) & (1 << ulChannel)) + if(HWREG(UDMA_REQMASKSET) & (1 << ulChannelNum)) { ulAttr |= UDMA_ATTR_REQMASK; } @@ -635,20 +535,19 @@ uDMAChannelAttributeGet(unsigned long ulChannel) //***************************************************************************** // -//! Sets the control parameters for a uDMA channel. +//! Sets the control parameters for a uDMA channel control structure. //! -//! \param ulChannel is the logical OR of the uDMA channel number with -//! \b UDMA_PRI_SELECT or \b UDMA_ALT_SELECT. +//! \param ulChannelStructIndex is the logical OR of the uDMA channel number +//! with \b UDMA_PRI_SELECT or \b UDMA_ALT_SELECT. //! \param ulControl is logical OR of several control values to set the control //! parameters for the channel. //! //! This function is used to set control parameters for a uDMA transfer. These -//! are typically parameters that are not changed often. +//! parameters are typically not changed often. //! -//! The \e ulChannel parameter is one of the choices documented in the -//! uDMAChannelEnable() function. It should be the logical OR of the channel -//! with one of \b UDMA_PRI_SELECT or \b UDMA_ALT_SELECT to choose whether -//! the primary or alternate data structure is used. +//! The \e ulChannelStructIndex parameter should be the logical OR of the +//! channel number with one of \b UDMA_PRI_SELECT or \b UDMA_ALT_SELECT to +//! choose whether the primary or alternate data structure is used. //! //! The \e ulControl parameter is the logical OR of five values: the data size, //! the source address increment, the destination address increment, the @@ -683,16 +582,24 @@ uDMAChannelAttributeGet(unsigned long ulChannel) // //***************************************************************************** void -uDMAChannelControlSet(unsigned long ulChannel, unsigned long ulControl) +uDMAChannelControlSet(unsigned long ulChannelStructIndex, + unsigned long ulControl) { tDMAControlTable *pCtl; // // Check the arguments. // - ASSERT(ulChannel < 64); + ASSERT((ulChannelStructIndex & 0xffff) < 64); ASSERT(HWREG(UDMA_CTLBASE) != 0); + // + // In case a channel selector macro (like UDMA_CH0_USB0EP1RX) was + // passed as the ulChannelStructIndex parameter, extract just the channel + // index from this parameter. + // + ulChannelStructIndex &= 0x3f; + // // Get the base address of the control table. // @@ -702,47 +609,47 @@ uDMAChannelControlSet(unsigned long ulChannel, unsigned long ulControl) // Get the current control word value and mask off the fields to be // changed, then OR in the new settings. // - pCtl[ulChannel].ulControl = ((pCtl[ulChannel].ulControl & - ~(UDMA_CHCTL_DSTINC_M | - UDMA_CHCTL_DSTSIZE_M | - UDMA_CHCTL_SRCINC_M | - UDMA_CHCTL_SRCSIZE_M | - UDMA_CHCTL_ARBSIZE_M | - UDMA_CHCTL_NXTUSEBURST)) | - ulControl); + pCtl[ulChannelStructIndex].ulControl = + ((pCtl[ulChannelStructIndex].ulControl & + ~(UDMA_CHCTL_DSTINC_M | + UDMA_CHCTL_DSTSIZE_M | + UDMA_CHCTL_SRCINC_M | + UDMA_CHCTL_SRCSIZE_M | + UDMA_CHCTL_ARBSIZE_M | + UDMA_CHCTL_NXTUSEBURST)) | + ulControl); } //***************************************************************************** // -//! Sets the transfer parameters for a uDMA channel. +//! Sets the transfer parameters for a uDMA channel control structure. //! -//! \param ulChannel is the logical or of the uDMA channel number with either -//! \b UDMA_PRI_SELECT or \b UDMA_ALT_SELECT. +//! \param ulChannelStructIndex is the logical OR of the uDMA channel number +//! with either \b UDMA_PRI_SELECT or \b UDMA_ALT_SELECT. //! \param ulMode is the type of uDMA transfer. //! \param pvSrcAddr is the source address for the transfer. //! \param pvDstAddr is the destination address for the transfer. //! \param ulTransferSize is the number of data items to transfer. //! -//! This function is used to set the parameters for a uDMA transfer. These are -//! typically parameters that are changed often. The function +//! This function is used to configure the parameters for a uDMA transfer. +//! These parameters are typically changed often. The function //! uDMAChannelControlSet() MUST be called at least once for this channel prior //! to calling this function. //! -//! The \e ulChannel parameter is one of the choices documented in the -//! uDMAChannelEnable() function. It should be the logical OR of the channel -//! with either \b UDMA_PRI_SELECT or \b UDMA_ALT_SELECT to choose whether the -//! primary or alternate data structure is used. +//! The \e ulChannelStructIndex parameter should be the logical OR of the +//! channel number with one of \b UDMA_PRI_SELECT or \b UDMA_ALT_SELECT to +//! choose whether the primary or alternate data structure is used. //! //! The \e ulMode parameter should be one of the following values: //! //! - \b UDMA_MODE_STOP stops the uDMA transfer. The controller sets the mode //! to this value at the end of a transfer. //! - \b UDMA_MODE_BASIC to perform a basic transfer based on request. -//! - \b UDMA_MODE_AUTO to perform a transfer that will always complete once -//! started even if request is removed. +//! - \b UDMA_MODE_AUTO to perform a transfer that always completes once +//! started even if the request is removed. //! - \b UDMA_MODE_PINGPONG to set up a transfer that switches between the -//! primary and alternate control structures for the channel. This allows -//! use of ping-pong buffering for uDMA transfers. +//! primary and alternate control structures for the channel. This mode +//! allows use of ping-pong buffering for uDMA transfers. //! - \b UDMA_MODE_MEM_SCATTER_GATHER to set up a memory scatter-gather //! transfer. //! - \b UDMA_MODE_PER_SCATTER_GATHER to set up a peripheral scatter-gather @@ -750,58 +657,65 @@ uDMAChannelControlSet(unsigned long ulChannel, unsigned long ulControl) //! //! The \e pvSrcAddr and \e pvDstAddr parameters are pointers to the first //! location of the data to be transferred. These addresses should be aligned -//! according to the item size. The compiler will take care of this if the -//! pointers are pointing to storage of the appropriate data type. +//! according to the item size. The compiler takes care of this alignment if +//! the pointers are pointing to storage of the appropriate data type. //! //! The \e ulTransferSize parameter is the number of data items, not the number //! of bytes. //! -//! The two scatter/gather modes, memory and peripheral, are actually different +//! The two scatter-gather modes, memory and peripheral, are actually different //! depending on whether the primary or alternate control structure is -//! selected. This function will look for the \b UDMA_PRI_SELECT and -//! \b UDMA_ALT_SELECT flag along with the channel number and will set the -//! scatter/gather mode as appropriate for the primary or alternate control +//! selected. This function looks for the \b UDMA_PRI_SELECT and +//! \b UDMA_ALT_SELECT flag along with the channel number and sets the +//! scatter-gather mode as appropriate for the primary or alternate control //! structure. //! //! The channel must also be enabled using uDMAChannelEnable() after calling -//! this function. The transfer will not begin until the channel has been set -//! up and enabled. Note that the channel is automatically disabled after the -//! transfer is completed, meaning that uDMAChannelEnable() must be called -//! again after setting up the next transfer. +//! this function. The transfer does not begin until the channel has been +//! configured and enabled. Note that the channel is automatically disabled +//! after the transfer is completed, meaning that uDMAChannelEnable() must be +//! called again after setting up the next transfer. //! //! \note Great care must be taken to not modify a channel control structure -//! that is in use or else the results will be unpredictable, including the +//! that is in use or else the results are unpredictable, including the //! possibility of undesired data transfers to or from memory or peripherals. //! For BASIC and AUTO modes, it is safe to make changes when the channel is //! disabled, or the uDMAChannelModeGet() returns \b UDMA_MODE_STOP. For //! PINGPONG or one of the SCATTER_GATHER modes, it is safe to modify the //! primary or alternate control structure only when the other is being used. -//! The uDMAChannelModeGet() function will return \b UDMA_MODE_STOP when a +//! The uDMAChannelModeGet() function returns \b UDMA_MODE_STOP when a //! channel control structure is inactive and safe to modify. //! //! \return None. // //***************************************************************************** void -uDMAChannelTransferSet(unsigned long ulChannel, unsigned long ulMode, - void *pvSrcAddr, void *pvDstAddr, +uDMAChannelTransferSet(unsigned long ulChannelStructIndex, + unsigned long ulMode, void *pvSrcAddr, void *pvDstAddr, unsigned long ulTransferSize) { tDMAControlTable *pControlTable; unsigned long ulControl; - unsigned long ulSize; unsigned long ulInc; + unsigned long ulBufferBytes; // // Check the arguments. // - ASSERT(ulChannel < 64); + ASSERT((ulChannelStructIndex & 0xffff) < 64); ASSERT(HWREG(UDMA_CTLBASE) != 0); ASSERT(ulMode <= UDMA_MODE_PER_SCATTER_GATHER); ASSERT((unsigned long)pvSrcAddr >= 0x20000000); ASSERT((unsigned long)pvDstAddr >= 0x20000000); ASSERT((ulTransferSize != 0) && (ulTransferSize <= 1024)); + // + // In case a channel selector macro (like UDMA_CH0_USB0EP1RX) was + // passed as the ulChannelStructIndex parameter, extract just the channel + // index from this parameter. + // + ulChannelStructIndex &= 0x3f; + // // Get the base address of the control table. // @@ -811,13 +725,13 @@ uDMAChannelTransferSet(unsigned long ulChannel, unsigned long ulMode, // Get the current control word value and mask off the mode and size // fields. // - ulControl = (pControlTable[ulChannel].ulControl & + ulControl = (pControlTable[ulChannelStructIndex].ulControl & ~(UDMA_CHCTL_XFERSIZE_M | UDMA_CHCTL_XFERMODE_M)); // // Adjust the mode if the alt control structure is selected. // - if(ulChannel & UDMA_ALT_SELECT) + if(ulChannelStructIndex & UDMA_ALT_SELECT) { if((ulMode == UDMA_MODE_MEM_SCATTER_GATHER) || (ulMode == UDMA_MODE_PER_SCATTER_GATHER)) @@ -827,22 +741,11 @@ uDMAChannelTransferSet(unsigned long ulChannel, unsigned long ulMode, } // - // Set the transfer size and mode in the control word (but dont write the + // Set the transfer size and mode in the control word (but don't write the // control word yet as it could kick off a transfer). // ulControl |= ulMode | ((ulTransferSize - 1) << 4); - // - // Get the data item size from the control word (set previously). - // - ulSize = (ulControl & UDMA_CHCTL_DSTSIZE_M) >> 28; - - // - // Convert the transfer size to be in units of bytes. Shift (multiply) to - // get the value in bytes, based on the data item size. - // - ulTransferSize = ulTransferSize << ulSize; - // // Get the address increment value for the source, from the control word. // @@ -855,19 +758,21 @@ uDMAChannelTransferSet(unsigned long ulChannel, unsigned long ulMode, // if(ulInc != UDMA_SRC_INC_NONE) { - pvSrcAddr = (void *)((unsigned long)pvSrcAddr + ulTransferSize - 1); + ulInc = ulInc >> 26; + ulBufferBytes = ulTransferSize << ulInc; + pvSrcAddr = (void *)((unsigned long)pvSrcAddr + ulBufferBytes - 1); } // // Load the source ending address into the control block. // - pControlTable[ulChannel].pvSrcEndAddr = pvSrcAddr; + pControlTable[ulChannelStructIndex].pvSrcEndAddr = pvSrcAddr; // // Get the address increment value for the destination, from the control // word. // - ulInc = (ulControl & UDMA_CHCTL_DSTINC_M); + ulInc = ulControl & UDMA_CHCTL_DSTINC_M; // // Compute the ending destination address of the transfer. If the @@ -876,43 +781,145 @@ uDMAChannelTransferSet(unsigned long ulChannel, unsigned long ulMode, // if(ulInc != UDMA_DST_INC_NONE) { - pvDstAddr = (void *)((unsigned long)pvDstAddr + ulTransferSize - 1); + // + // There is a special case if this is setting up a scatter-gather + // transfer. The destination pointer must point to the end of + // the alternate structure for this channel instead of calculating + // the end of the buffer in the normal way. + // + if((ulMode == UDMA_MODE_MEM_SCATTER_GATHER) || + (ulMode == UDMA_MODE_PER_SCATTER_GATHER)) + { + pvDstAddr = + (void *)&pControlTable[ulChannelStructIndex | + UDMA_ALT_SELECT].ulSpare; + } + // + // Not a scatter-gather transfer, calculate end pointer normally. + // + else + { + ulInc = ulInc >> 30; + ulBufferBytes = ulTransferSize << ulInc; + pvDstAddr = (void *)((unsigned long)pvDstAddr + ulBufferBytes - 1); + } } // // Load the destination ending address into the control block. // - pControlTable[ulChannel].pvDstEndAddr = pvDstAddr; + pControlTable[ulChannelStructIndex].pvDstEndAddr = pvDstAddr; // // Write the new control word value. // - pControlTable[ulChannel].ulControl = ulControl; + pControlTable[ulChannelStructIndex].ulControl = ulControl; } //***************************************************************************** // -//! Gets the current transfer size for a uDMA channel. +//! Configures a uDMA channel for scatter-gather mode. //! -//! \param ulChannel is the logical or of the uDMA channel number with either -//! \b UDMA_PRI_SELECT or \b UDMA_ALT_SELECT. +//! \param ulChannelNum is the uDMA channel number. +//! \param ulTaskCount is the number of scatter-gather tasks to execute. +//! \param pvTaskList is a pointer to the beginning of the scatter-gather +//! task list. +//! \param ulIsPeriphSG is a flag to indicate it is a peripheral scatter-gather +//! transfer (else it is memory scatter-gather transfer) +//! +//! This function is used to configure a channel for scatter-gather mode. +//! The caller must have already set up a task list and must pass a pointer to +//! the start of the task list as the \e pvTaskList parameter. The +//! \e ulTaskCount parameter is the count of tasks in the task list, not the +//! size of the task list. The flag \e bIsPeriphSG should be used to indicate +//! if scatter-gather should be configured for peripheral or memory +//! operation. +//! +//! \sa uDMATaskStructEntry +//! +//! \return None. +// +//***************************************************************************** +void +uDMAChannelScatterGatherSet(unsigned long ulChannelNum, unsigned ulTaskCount, + void *pvTaskList, unsigned long ulIsPeriphSG) +{ + tDMAControlTable *pControlTable; + tDMAControlTable *pTaskTable; + + // + // Check the parameters + // + ASSERT((ulChannelNum & 0xffff) < 32); + ASSERT(HWREG(UDMA_CTLBASE) != 0); + ASSERT(pvTaskList != 0); + ASSERT(ulTaskCount <= 1024); + ASSERT(ulTaskCount != 0); + + // + // In case a channel selector macro (like UDMA_CH0_USB0EP1RX) was + // passed as the ulChannelNum parameter, extract just the channel number + // from this parameter. + // + ulChannelNum &= 0x1f; + + // + // Get the base address of the control table. + // + pControlTable = (tDMAControlTable *)HWREG(UDMA_CTLBASE); + + // + // Get a handy pointer to the task list + // + pTaskTable = (tDMAControlTable *)pvTaskList; + + // + // Compute the ending address for the source pointer. This address is the + // last element of the last task in the task table + // + pControlTable[ulChannelNum].pvSrcEndAddr = + &pTaskTable[ulTaskCount - 1].ulSpare; + + // + // Compute the ending address for the destination pointer. This address + // is the end of the alternate structure for this channel. + // + pControlTable[ulChannelNum].pvDstEndAddr = + &pControlTable[ulChannelNum | UDMA_ALT_SELECT].ulSpare; + + // + // Compute the control word. Most configurable items are fixed for + // scatter-gather. Item and increment sizes are all 32-bit and arb + // size must be 4. The count is the number of items in the task list + // times 4 (4 words per task). + // + pControlTable[ulChannelNum].ulControl = + (UDMA_CHCTL_DSTINC_32 | UDMA_CHCTL_DSTSIZE_32 | + UDMA_CHCTL_SRCINC_32 | UDMA_CHCTL_SRCSIZE_32 | + UDMA_CHCTL_ARBSIZE_4 | + (((ulTaskCount * 4) - 1) << UDMA_CHCTL_XFERSIZE_S) | + (ulIsPeriphSG ? UDMA_CHCTL_XFERMODE_PER_SG : + UDMA_CHCTL_XFERMODE_MEM_SG)); +} + +//***************************************************************************** +// +//! Gets the current transfer size for a uDMA channel control structure. +//! +//! \param ulChannelStructIndex is the logical OR of the uDMA channel number +//! with either \b UDMA_PRI_SELECT or \b UDMA_ALT_SELECT. //! //! This function is used to get the uDMA transfer size for a channel. The //! transfer size is the number of items to transfer, where the size of an item //! might be 8, 16, or 32 bits. If a partial transfer has already occurred, -//! then the number of remaining items will be returned. If the transfer is -//! complete, then 0 will be returned. -//! -//! The \e ulChannel parameter is one of the choices documented in the -//! uDMAChannelEnable() function. It should be the logical OR of the channel -//! with either \b UDMA_PRI_SELECT or \b UDMA_ALT_SELECT to choose whether -//! the primary or alternate data structure is used. +//! then the number of remaining items is returned. If the transfer is +//! complete, then 0 is returned. //! //! \return Returns the number of items remaining to transfer. // //***************************************************************************** unsigned long -uDMAChannelSizeGet(unsigned long ulChannel) +uDMAChannelSizeGet(unsigned long ulChannelStructIndex) { tDMAControlTable *pControlTable; unsigned long ulControl; @@ -920,9 +927,16 @@ uDMAChannelSizeGet(unsigned long ulChannel) // // Check the arguments. // - ASSERT(ulChannel < 64); + ASSERT((ulChannelStructIndex & 0xffff) < 64); ASSERT(HWREG(UDMA_CTLBASE) != 0); + // + // In case a channel selector macro (like UDMA_CH0_USB0EP1RX) was + // passed as the ulChannelStructIndex parameter, extract just the channel + // index from this parameter. + // + ulChannelStructIndex &= 0x3f; + // // Get the base address of the control table. // @@ -932,8 +946,8 @@ uDMAChannelSizeGet(unsigned long ulChannel) // Get the current control word value and mask off all but the size field // and the mode field. // - ulControl = pControlTable[ulChannel].ulControl & - (UDMA_CHCTL_XFERSIZE_M | UDMA_CHCTL_XFERMODE_M); + ulControl = (pControlTable[ulChannelStructIndex].ulControl & + (UDMA_CHCTL_XFERSIZE_M | UDMA_CHCTL_XFERMODE_M)); // // If the size field and mode field are 0 then the transfer is finished @@ -959,28 +973,23 @@ uDMAChannelSizeGet(unsigned long ulChannel) //***************************************************************************** // -//! Gets the transfer mode for a uDMA channel. +//! Gets the transfer mode for a uDMA channel control structure. //! -//! \param ulChannel is the logical or of the uDMA channel number with either -//! \b UDMA_PRI_SELECT or \b UDMA_ALT_SELECT. +//! \param ulChannelStructIndex is the logical OR of the uDMA channel number +//! with either \b UDMA_PRI_SELECT or \b UDMA_ALT_SELECT. //! -//! This function is used to get the transfer mode for the uDMA channel. It -//! can be used to query the status of a transfer on a channel. When the -//! transfer is complete the mode will be \b UDMA_MODE_STOP. -//! -//! The \e ulChannel parameter is one of the choices documented in the -//! uDMAChannelEnable() function. It should be the logical OR of the channel -//! with either \b UDMA_PRI_SELECT or \b UDMA_ALT_SELECT to choose whether the -//! primary or alternate data structure is used. +//! This function is used to get the transfer mode for the uDMA channel and +//! to query the status of a transfer on a channel. When the transfer is +//! complete the mode is \b UDMA_MODE_STOP. //! //! \return Returns the transfer mode of the specified channel and control -//! structure, which will be one of the following values: \b UDMA_MODE_STOP, +//! structure, which is one of the following values: \b UDMA_MODE_STOP, //! \b UDMA_MODE_BASIC, \b UDMA_MODE_AUTO, \b UDMA_MODE_PINGPONG, //! \b UDMA_MODE_MEM_SCATTER_GATHER, or \b UDMA_MODE_PER_SCATTER_GATHER. // //***************************************************************************** unsigned long -uDMAChannelModeGet(unsigned long ulChannel) +uDMAChannelModeGet(unsigned long ulChannelStructIndex) { tDMAControlTable *pControlTable; unsigned long ulControl; @@ -988,9 +997,16 @@ uDMAChannelModeGet(unsigned long ulChannel) // // Check the arguments. // - ASSERT(ulChannel < 64); + ASSERT((ulChannelStructIndex & 0xffff) < 64); ASSERT(HWREG(UDMA_CTLBASE) != 0); + // + // In case a channel selector macro (like UDMA_CH0_USB0EP1RX) was + // passed as the ulChannelStructIndex parameter, extract just the channel + // index from this parameter. + // + ulChannelStructIndex &= 0x3f; + // // Get the base address of the control table. // @@ -999,7 +1015,8 @@ uDMAChannelModeGet(unsigned long ulChannel) // // Get the current control word value and mask off all but the mode field. // - ulControl = pControlTable[ulChannel].ulControl & UDMA_CHCTL_XFERMODE_M; + ulControl = (pControlTable[ulChannelStructIndex].ulControl & + UDMA_CHCTL_XFERMODE_M); // // Check if scatter/gather mode, and if so, mask off the alt bit. @@ -1020,18 +1037,17 @@ uDMAChannelModeGet(unsigned long ulChannel) // //! Selects the secondary peripheral for a set of uDMA channels. //! -//! \param ulSecPeriphs is the logical or of the uDMA channels for which to -//! use the secondary peripheral, instead of the default peripheral. +//! \param ulSecPeriphs is the logical OR of the uDMA channels for which to use +//! the secondary peripheral, instead of the default peripheral. //! -//! This function is used to select the secondary peripheral assignment for -//! a set of uDMA channels. By selecting the secondary peripheral assignment -//! for a channel, the default peripheral assignment is no longer available -//! for that channel. +//! This function is used to select the secondary peripheral assignment for a +//! set of uDMA channels. By selecting the secondary peripheral assignment for +//! a channel, the default peripheral assignment is no longer available for +//! that channel. //! -//! The parameter \e ulSecPeriphs can be the logical OR of any of the -//! following macros. If one of the macros below is in the list passed -//! to this function, then the secondary peripheral (marked as \b _SEC_) -//! will be selected. +//! The parameter \e ulSecPeriphs can be the logical OR of any of the following +//! macros. If one of the macros below is in the list passed to this function, +//! then the secondary peripheral (marked as \b _SEC_) is selected. //! //! - \b UDMA_DEF_USBEP1RX_SEC_UART2RX //! - \b UDMA_DEF_USBEP1TX_SEC_UART2TX @@ -1073,23 +1089,22 @@ uDMAChannelSelectSecondary(unsigned long ulSecPeriphs) // // Select the secondary peripheral for the specified channels. // - HWREG(UDMA_CHALT) |= ulSecPeriphs; + HWREG(UDMA_CHASGN) |= ulSecPeriphs; } //***************************************************************************** // //! Selects the default peripheral for a set of uDMA channels. //! -//! \param ulDefPeriphs is the logical or of the uDMA channels for which to -//! use the default peripheral, instead of the secondary peripheral. +//! \param ulDefPeriphs is the logical OR of the uDMA channels for which to use +//! the default peripheral, instead of the secondary peripheral. //! -//! This function is used to select the default peripheral assignment for -//! a set of uDMA channels. +//! This function is used to select the default peripheral assignment for a set +//! of uDMA channels. //! -//! The parameter \e ulDefPeriphs can be the logical OR of any of the -//! following macros. If one of the macros below is in the list passed -//! to this function, then the default peripheral (marked as \b _DEF_) -//! will be selected. +//! The parameter \e ulDefPeriphs can be the logical OR of any of the following +//! macros. If one of the macros below is in the list passed to this function, +//! then the default peripheral (marked as \b _DEF_) is selected. //! //! - \b UDMA_DEF_USBEP1RX_SEC_UART2RX //! - \b UDMA_DEF_USBEP1TX_SEC_UART2TX @@ -1131,7 +1146,7 @@ uDMAChannelSelectDefault(unsigned long ulDefPeriphs) // // Select the default peripheral for the specified channels. // - HWREG(UDMA_CHALT) &= ~ulDefPeriphs; + HWREG(UDMA_CHASGN) &= ~ulDefPeriphs; } //***************************************************************************** @@ -1142,9 +1157,9 @@ uDMAChannelSelectDefault(unsigned long ulDefPeriphs) //! \param pfnHandler is a pointer to the function to be called when the //! interrupt is activated. //! -//! This sets and enables the handler to be called when the uDMA controller -//! generates an interrupt. The \e ulIntChannel parameter should be one of the -//! following: +//! This function registers and enables the handler to be called when the uDMA +//! controller generates an interrupt. The \e ulIntChannel parameter should be +//! one of the following: //! //! - \b UDMA_INT_SW to register an interrupt handler to process interrupts //! from the uDMA software channel (UDMA_CHANNEL_SW) @@ -1154,8 +1169,8 @@ uDMAChannelSelectDefault(unsigned long ulDefPeriphs) //! \sa IntRegister() for important information about registering interrupt //! handlers. //! -//! \note The interrupt handler for uDMA is for transfer completion when the -//! channel UDMA_CHANNEL_SW is used, and for error interrupts. The +//! \note The interrupt handler for the uDMA is for transfer completion when +//! the channel UDMA_CHANNEL_SW is used and for error interrupts. The //! interrupts for each peripheral channel are handled through the individual //! peripheral interrupt handlers. //! @@ -1188,7 +1203,7 @@ uDMAIntRegister(unsigned long ulIntChannel, void (*pfnHandler)(void)) //! //! \param ulIntChannel identifies which uDMA interrupt to unregister. //! -//! This function will disable and clear the handler to be called for the +//! This function disables and unregisters the handler to be called for the //! specified uDMA interrupt. The \e ulIntChannel parameter should be one of //! \b UDMA_INT_SW or \b UDMA_INT_ERR as documented for the function //! uDMAIntRegister(). @@ -1213,6 +1228,138 @@ uDMAIntUnregister(unsigned long ulIntChannel) IntUnregister(ulIntChannel); } +//***************************************************************************** +// +//! Gets the uDMA controller channel interrupt status. +//! +//! This function is used to get the interrupt status of the uDMA controller. +//! The returned value is a 32-bit bit mask that indicates which channels are +//! requesting an interrupt. This function can be used from within an +//! interrupt handler to determine or confirm which uDMA channel has requested +//! an interrupt. +//! +//! \note This function is only available on devices that have the DMA Channel +//! Interrupt Status Register (DMACHIS). Please consult the data sheet for +//! your part. +//! +//! \return Returns a 32-bit mask which indicates requesting uDMA channels. +//! There is a bit for each channel and a 1 indicates that the channel +//! is requesting an interrupt. Multiple bits can be set. +// +//***************************************************************************** +unsigned long +uDMAIntStatus(void) +{ + // + // Check feature availability + // + ASSERT(!CLASS_IS_SANDSTORM); + ASSERT(!CLASS_IS_FURY); + ASSERT(!CLASS_IS_DUSTDEVIL); + ASSERT(!CLASS_IS_TEMPEST); + + // + // Return the value of the uDMA interrupt status register + // + return(HWREG(UDMA_CHIS)); +} + +//***************************************************************************** +// +//! Clears uDMA interrupt status. +//! +//! \param ulChanMask is a 32-bit mask with one bit for each uDMA channel. +//! +//! This function clears bits in the uDMA interrupt status register according +//! to which bits are set in \e ulChanMask. There is one bit for each channel. +//! If a a bit is set in \e ulChanMask, then that corresponding channel's +//! interrupt status is cleared (if it was set). +//! +//! \note This function is only available on devices that have the DMA Channel +//! Interrupt Status Register (DMACHIS). Please consult the data sheet for +//! your part. +//! +//! \return None. +// +//***************************************************************************** +void +uDMAIntClear(unsigned long ulChanMask) +{ + // + // Check feature availability + // + ASSERT(!CLASS_IS_SANDSTORM); + ASSERT(!CLASS_IS_FURY); + ASSERT(!CLASS_IS_DUSTDEVIL); + ASSERT(!CLASS_IS_TEMPEST); + + // + // Clear the requested bits in the uDMA interrupt status register + // + HWREG(UDMA_CHIS) = ulChanMask; +} + +//***************************************************************************** +// +//! Assigns a peripheral mapping for a uDMA channel. +//! +//! \param ulMapping is a macro specifying the peripheral assignment for +//! a channel. +//! +//! This function assigns a peripheral mapping to a uDMA channel. It is +//! used to select which peripheral is used for a uDMA channel. The parameter +//! \e ulMapping should be one of the macros named \b UDMA_CHn_tttt from the +//! header file \e udma.h. For example, to assign uDMA channel 0 to the +//! UART2 RX channel, the parameter should be the macro \b UDMA_CH0_UART2RX. +//! +//! Please consult the Stellaris data sheet for a table showing all the +//! possible peripheral assignments for the uDMA channels for a particular +//! device. +//! +//! \note This function is only available on devices that have the DMA Channel +//! Map Select registers (DMACHMAP0-3). Please consult the data sheet for +//! your part. +//! +//! \return None. +// +//***************************************************************************** +void +uDMAChannelAssign(unsigned long ulMapping) +{ + unsigned long ulMapReg; + unsigned long ulMapShift; + unsigned long ulChannelNum; + + // + // Check the parameters + // + ASSERT((ulMapping & 0xffffff00) < 0x00050000); + ASSERT(!CLASS_IS_SANDSTORM); + ASSERT(!CLASS_IS_FURY); + ASSERT(!CLASS_IS_DUSTDEVIL); + ASSERT(!CLASS_IS_TEMPEST); + ASSERT(!CLASS_IS_FIRESTORM); + + // + // Extract the channel number and map encoding value from the parameter. + // + ulChannelNum = ulMapping & 0xff; + ulMapping = ulMapping >> 16; + + // + // Find the uDMA channel mapping register and shift value to use for this + // channel + // + ulMapReg = UDMA_CHMAP0 + ((ulChannelNum / 8) * 4); + ulMapShift = (ulChannelNum % 8) * 4; + + // + // Set the channel map encoding for this channel + // + HWREG(ulMapReg) = (HWREG(ulMapReg) & ~(0xf << ulMapShift)) | + ulMapping << ulMapShift; +} + //***************************************************************************** // // Close the Doxygen group. diff --git a/bsp/lm3s8962/Libraries/driverlib/udma.h b/bsp/lm3s8962/Libraries/driverlib/udma.h index 8f3fdf540e..a217ae5048 100644 --- a/bsp/lm3s8962/Libraries/driverlib/udma.h +++ b/bsp/lm3s8962/Libraries/driverlib/udma.h @@ -2,7 +2,7 @@ // // udma.h - Prototypes and macros for the uDMA controller. // -// Copyright (c) 2007-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2007-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -36,6 +36,13 @@ extern "C" { #endif +//***************************************************************************** +// +//! \addtogroup udma_api +//! @{ +// +//***************************************************************************** + //***************************************************************************** // // A structure that defines an entry in the channel control table. These @@ -67,6 +74,104 @@ typedef struct } tDMAControlTable; +//***************************************************************************** +// +//! A helper macro for building scatter-gather task table entries. +//! +//! \param ulTransferCount is the count of items to transfer for this task. +//! \param ulItemSize is the bit size of the items to transfer for this task. +//! \param ulSrcIncrement is the bit size increment for source data. +//! \param pvSrcAddr is the starting address of the data to transfer. +//! \param ulDstIncrement is the bit size increment for destination data. +//! \param pvDstAddr is the starting address of the destination data. +//! \param ulArbSize is the arbitration size to use for the transfer task. +//! \param ulMode is the transfer mode for this task. +//! +//! This macro is intended to be used to help populate a table of uDMA tasks +//! for a scatter-gather transfer. This macro will calculate the values for +//! the fields of a task structure entry based on the input parameters. +//! +//! There are specific requirements for the values of each parameter. No +//! checking is done so it is up to the caller to ensure that correct values +//! are used for the parameters. +//! +//! The \e ulTransferCount parameter is the number of items that will be +//! transferred by this task. It must be in the range 1-1024. +//! +//! The \e ulItemSize parameter is the bit size of the transfer data. It must +//! be one of \b UDMA_SIZE_8, \b UDMA_SIZE_16, or \b UDMA_SIZE_32. +//! +//! The \e ulSrcIncrement parameter is the increment size for the source data. +//! It must be one of \b UDMA_SRC_INC_8, \b UDMA_SRC_INC_16, +//! \b UDMA_SRC_INC_32, or \b UDMA_SRC_INC_NONE. +//! +//! The \e pvSrcAddr parameter is a void pointer to the beginning of the source +//! data. +//! +//! The \e ulDstIncrement parameter is the increment size for the destination +//! data. It must be one of \b UDMA_DST_INC_8, \b UDMA_DST_INC_16, +//! \b UDMA_DST_INC_32, or \b UDMA_DST_INC_NONE. +//! +//! The \e pvDstAddr parameter is a void pointer to the beginning of the +//! location where the data will be transferred. +//! +//! The \e ulArbSize parameter is the arbitration size for the transfer, and +//! must be one of \b UDMA_ARB_1, \b UDMA_ARB_2, \b UDMA_ARB_4, and so on +//! up to \b UDMA_ARB_1024. This is used to select the arbitration size in +//! powers of 2, from 1 to 1024. +//! +//! The \e ulMode parameter is the mode to use for this transfer task. It +//! must be one of \b UDMA_MODE_BASIC, \b UDMA_MODE_AUTO, +//! \b UDMA_MODE_MEM_SCATTER_GATHER, or \b UDMA_MODE_PER_SCATTER_GATHER. Note +//! that normally all tasks will be one of the scatter-gather modes while the +//! last task is a task list will be AUTO or BASIC. +//! +//! This macro is intended to be used to initialize individual entries of +//! a structure of tDMAControlTable type, like this: +//! +//! \verbatim +//! tDMAControlTable MyTaskList[] = +//! { +//! uDMATaskStructEntry(Task1Count, UDMA_SIZE_8, +//! UDMA_SRC_INC_8, MySourceBuf, +//! UDMA_DST_INC_8, MyDestBuf, +//! UDMA_ARB_8, UDMA_MODE_MEM_SCATTER_GATHER), +//! uDMATaskStructEntry(Task2Count, ... ), +//! } +//! \endverbatim +//! +//! \return Nothing; this is not a function. +// +//***************************************************************************** +#define uDMATaskStructEntry(ulTransferCount, \ + ulItemSize, \ + ulSrcIncrement, \ + pvSrcAddr, \ + ulDstIncrement, \ + pvDstAddr, \ + ulArbSize, \ + ulMode) \ + { \ + (((ulSrcIncrement) == UDMA_SRC_INC_NONE) ? (void *)(pvSrcAddr) : \ + ((void *)(&((unsigned char *)(pvSrcAddr))[((ulTransferCount) << \ + ((ulSrcIncrement) >> 26)) - 1]))), \ + (((ulDstIncrement) == UDMA_DST_INC_NONE) ? (void *)(pvDstAddr) : \ + ((void *)(&((unsigned char *)(pvDstAddr))[((ulTransferCount) << \ + ((ulDstIncrement) >> 30)) - 1]))), \ + (ulSrcIncrement) | (ulDstIncrement) | (ulItemSize) | (ulArbSize) | \ + (((ulTransferCount) - 1) << 4) | \ + ((((ulMode) == UDMA_MODE_MEM_SCATTER_GATHER) || \ + ((ulMode) == UDMA_MODE_PER_SCATTER_GATHER)) ? \ + (ulMode) | UDMA_MODE_ALT_SELECT : (ulMode)), 0 \ + } + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** + //***************************************************************************** // // Flags that can be passed to uDMAChannelAttributeEnable(), @@ -287,6 +392,301 @@ tDMAControlTable; #define UDMA_DEF_I2S0TX_SEC_RESERVED \ 0x20000000 +//***************************************************************************** +// +// Values that can be passed to uDMAChannelMapConfigure() to select peripheral +// mapping for each channel. The channels named RESERVED may be assigned +// to a peripheral in future parts. +// +//***************************************************************************** +// +// Channel 0 +// +#define UDMA_CH0_USB0EP1RX 0x00000000 +#define UDMA_CH0_UART2RX 0x00010000 +#define UDMA_CH0_RESERVED2 0x00020000 +#define UDMA_CH0_TIMER4A 0x00030000 +#define UDMA_CH0_RESERVED4 0x00040000 + +// +// Channel 1 +// +#define UDMA_CH1_USB0EP1TX 0x00000001 +#define UDMA_CH1_UART2TX 0x00010001 +#define UDMA_CH1_RESERVED2 0x00020001 +#define UDMA_CH1_TIMER4B 0x00030001 +#define UDMA_CH1_RESERVED4 0x00040001 + +// +// Channel 2 +// +#define UDMA_CH2_USB0EP2RX 0x00000002 +#define UDMA_CH2_TIMER3A 0x00010002 +#define UDMA_CH2_RESERVED2 0x00020002 +#define UDMA_CH2_RESERVED3 0x00030002 +#define UDMA_CH2_RESERVED4 0x00040002 + +// +// Channel 3 +// +#define UDMA_CH3_USB0EP2TX 0x00000003 +#define UDMA_CH3_TIMER3B 0x00010003 +#define UDMA_CH3_RESERVED2 0x00020003 +#define UDMA_CH3_LPC0_3 0x00030003 +#define UDMA_CH3_RESERVED4 0x00040003 + +// +// Channel 4 +// +#define UDMA_CH4_USB0EP3RX 0x00000004 +#define UDMA_CH4_TIMER2A 0x00010004 +#define UDMA_CH4_RESERVED2 0x00020004 +#define UDMA_CH4_GPIOA 0x00030004 +#define UDMA_CH4_RESERVED4 0x00040004 + +// +// Channel 5 +// +#define UDMA_CH5_USB0EP3TX 0x00000005 +#define UDMA_CH5_TIMER2B 0x00010005 +#define UDMA_CH5_RESERVED2 0x00020005 +#define UDMA_CH5_GPIOB 0x00030005 +#define UDMA_CH5_RESERVED4 0x00040005 + +// +// Channel 6 +// +#define UDMA_CH6_RESERVED0 0x00000006 +#define UDMA_CH6_TIMER2A 0x00010006 +#define UDMA_CH6_UART5RX 0x00020006 +#define UDMA_CH6_GPIOC 0x00030006 +#define UDMA_CH6_I2C0RX 0x00040006 + +// +// Channel 7 +// +#define UDMA_CH7_RESERVED0 0x00000007 +#define UDMA_CH7_TIMER2B 0x00010007 +#define UDMA_CH7_UART5TX 0x00020007 +#define UDMA_CH7_GPIOD 0x00030007 +#define UDMA_CH7_I2C0TX 0x00040007 + +// +// Channel 8 +// +#define UDMA_CH8_UART0RX 0x00000008 +#define UDMA_CH8_UART1RX 0x00010008 +#define UDMA_CH8_RESERVED2 0x00020008 +#define UDMA_CH8_TIMER5A 0x00030008 +#define UDMA_CH8_I2C1RX 0x00040008 + +// +// Channel 9 +// +#define UDMA_CH9_UART0TX 0x00000009 +#define UDMA_CH9_UART1TX 0x00010009 +#define UDMA_CH9_RESERVED2 0x00020009 +#define UDMA_CH9_TIMER5B 0x00030009 +#define UDMA_CH9_I2C1TX 0x00040009 + +// +// Channel 10 +// +#define UDMA_CH10_SSI0RX 0x0000000A +#define UDMA_CH10_SSI1RX 0x0001000A +#define UDMA_CH10_UART6RX 0x0002000A +#define UDMA_CH10_WTIMER0A 0x0003000A +#define UDMA_CH10_I2C2RX 0x0004000A + +// +// Channel 11 +// +#define UDMA_CH11_SSI0TX 0x0000000B +#define UDMA_CH11_SSI1TX 0x0001000B +#define UDMA_CH11_UART6TX 0x0002000B +#define UDMA_CH11_WTIMER0B 0x0003000B +#define UDMA_CH11_I2C2TX 0x0004000B + +// +// Channel 12 +// +#define UDMA_CH12_RESERVED0 0x0000000C +#define UDMA_CH12_UART2RX 0x0001000C +#define UDMA_CH12_SSI2RX 0x0002000C +#define UDMA_CH12_WTIMER1A 0x0003000C +#define UDMA_CH12_GPIOK 0x0004000C + +// +// Channel 13 +// +#define UDMA_CH13_RESERVED0 0x0000000D +#define UDMA_CH13_UART2TX 0x0001000D +#define UDMA_CH13_SSI2TX 0x0002000D +#define UDMA_CH13_WTIMER1B 0x0003000D +#define UDMA_CH13_GPIOL 0x0004000D + +// +// Channel 14 +// +#define UDMA_CH14_ADC0_0 0x0000000E +#define UDMA_CH14_TIMER2A 0x0001000E +#define UDMA_CH14_SSI3RX 0x0002000E +#define UDMA_CH14_GPIOE 0x0003000E +#define UDMA_CH14_GPIOM 0x0004000E + +// +// Channel 15 +// +#define UDMA_CH15_ADC0_1 0x0000000F +#define UDMA_CH15_TIMER2B 0x0001000F +#define UDMA_CH15_SSI3TX 0x0002000F +#define UDMA_CH15_GPIOF 0x0003000F +#define UDMA_CH15_GPION 0x0004000F + +// +// Channel 16 +// +#define UDMA_CH16_ADC0_2 0x00000010 +#define UDMA_CH16_RESERVED1 0x00010010 +#define UDMA_CH16_UART3RX 0x00020010 +#define UDMA_CH16_WTIMER2A 0x00030010 +#define UDMA_CH16_GPIOP 0x00040010 + +// +// Channel 17 +// +#define UDMA_CH17_ADC0_3 0x00000011 +#define UDMA_CH17_RESERVED1 0x00010011 +#define UDMA_CH17_UART3TX 0x00020011 +#define UDMA_CH17_WTIMER2B 0x00030011 +#define UDMA_CH17_RESERVED4 0x00040011 + +// +// Channel 18 +// +#define UDMA_CH18_TIMER0A 0x00000012 +#define UDMA_CH18_TIMER1A 0x00010012 +#define UDMA_CH18_UART4RX 0x00020012 +#define UDMA_CH18_GPIOB 0x00030012 +#define UDMA_CH18_I2C3RX 0x00040012 + +// +// Channel 19 +// +#define UDMA_CH19_TIMER0B 0x00000013 +#define UDMA_CH19_TIMER1B 0x00010013 +#define UDMA_CH19_UART4TX 0x00020013 +#define UDMA_CH19_GPIOG 0x00030013 +#define UDMA_CH19_I2C3TX 0x00040013 + +// +// Channel 20 +// +#define UDMA_CH20_TIMER1A 0x00000014 +#define UDMA_CH20_RESERVED1 0x00010014 +#define UDMA_CH20_UART7RX 0x00020014 +#define UDMA_CH20_GPIOH 0x00030014 +#define UDMA_CH20_I2C4RX 0x00040014 + +// +// Channel 21 +// +#define UDMA_CH21_TIMER1B 0x00000015 +#define UDMA_CH21_RESERVED1 0x00010015 +#define UDMA_CH21_UART7TX 0x00020015 +#define UDMA_CH21_GPIOJ 0x00030015 +#define UDMA_CH21_I2C4TX 0x00040015 + +// +// Channel 22 +// +#define UDMA_CH22_UART1RX 0x00000016 +#define UDMA_CH22_RESERVED1 0x00010016 +#define UDMA_CH22_RESERVED2 0x00020016 +#define UDMA_CH22_LPC0_2 0x00030016 +#define UDMA_CH22_I2C5RX 0x00040016 + +// +// Channel 23 +// +#define UDMA_CH23_UART1TX 0x00000017 +#define UDMA_CH23_RESERVED1 0x00010017 +#define UDMA_CH23_RESERVED2 0x00020017 +#define UDMA_CH23_LPC0_1 0x00030017 +#define UDMA_CH23_I2C5TX 0x00040017 + +// +// Channel 24 +// +#define UDMA_CH24_SSI1RX 0x00000018 +#define UDMA_CH24_ADC1_0 0x00010018 +#define UDMA_CH24_RESERVED2 0x00020018 +#define UDMA_CH24_WTIMER3A 0x00030018 +#define UDMA_CH24_GPIOQ 0x00040018 + +// +// Channel 25 +// +#define UDMA_CH25_SSI1TX 0x00000019 +#define UDMA_CH25_ADC1_1 0x00010019 +#define UDMA_CH25_RESERVED2 0x00020019 +#define UDMA_CH25_WTIMER3B 0x00030019 +#define UDMA_CH25_RESERVED4 0x00040019 + +// +// Channel 26 +// +#define UDMA_CH26_RESERVED0 0x0000001A +#define UDMA_CH26_ADC1_2 0x0001001A +#define UDMA_CH26_RESERVED2 0x0002001A +#define UDMA_CH26_WTIMER4A 0x0003001A +#define UDMA_CH26_RESERVED4 0x0004001A + +// +// Channel 27 +// +#define UDMA_CH27_RESERVED0 0x0000001B +#define UDMA_CH27_ADC1_3 0x0001001B +#define UDMA_CH27_RESERVED2 0x0002001B +#define UDMA_CH27_WTIMER4B 0x0003001B +#define UDMA_CH27_RESERVED4 0x0004001B + +// +// Channel 28 +// +#define UDMA_CH28_RESERVED0 0x0000001C +#define UDMA_CH28_RESERVED1 0x0001001C +#define UDMA_CH28_RESERVED2 0x0002001C +#define UDMA_CH28_WTIMER5A 0x0003001C +#define UDMA_CH28_RESERVED4 0x0004001C + +// +// Channel 29 +// +#define UDMA_CH29_RESERVED0 0x0000001D +#define UDMA_CH29_RESERVED1 0x0001001D +#define UDMA_CH29_RESERVED2 0x0002001D +#define UDMA_CH29_WTIMER5B 0x0003001D +#define UDMA_CH29_RESERVED4 0x0004001D + +// +// Channel 30 +// +#define UDMA_CH30_SW 0x0000001E +#define UDMA_CH30_RESERVED1 0x0001001E +#define UDMA_CH30_RESERVED2 0x0002001E +#define UDMA_CH30_RESERVED3 0x0003001E +#define UDMA_CH30_RESERVED4 0x0004001E + +// +// Channel 31 +// +#define UDMA_CH31_RESERVED0 0x0000001F +#define UDMA_CH31_RESERVED1 0x0001001F +#define UDMA_CH31_RESERVED2 0x0002001F +#define UDMA_CH31_LPC0_0 0x0003001F +#define UDMA_CH31_RESERVED4 0x0004001F + //***************************************************************************** // // API Function prototypes @@ -296,30 +696,37 @@ extern void uDMAEnable(void); extern void uDMADisable(void); extern unsigned long uDMAErrorStatusGet(void); extern void uDMAErrorStatusClear(void); -extern void uDMAChannelEnable(unsigned long ulChannel); -extern void uDMAChannelDisable(unsigned long ulChannel); -extern tBoolean uDMAChannelIsEnabled(unsigned long ulChannel); +extern void uDMAChannelEnable(unsigned long ulChannelNum); +extern void uDMAChannelDisable(unsigned long ulChannelNum); +extern tBoolean uDMAChannelIsEnabled(unsigned long ulChannelNum); extern void uDMAControlBaseSet(void *pControlTable); extern void *uDMAControlBaseGet(void); -extern void uDMAChannelRequest(unsigned long ulChannel); -extern void uDMAChannelAttributeEnable(unsigned long ulChannel, +extern void *uDMAControlAlternateBaseGet(void); +extern void uDMAChannelRequest(unsigned long ulChannelNum); +extern void uDMAChannelAttributeEnable(unsigned long ulChannelNum, unsigned long ulAttr); -extern void uDMAChannelAttributeDisable(unsigned long ulChannel, +extern void uDMAChannelAttributeDisable(unsigned long ulChannelNum, unsigned long ulAttr); -extern unsigned long uDMAChannelAttributeGet(unsigned long ulChannel); -extern void uDMAChannelControlSet(unsigned long ulChannel, +extern unsigned long uDMAChannelAttributeGet(unsigned long ulChannelNum); +extern void uDMAChannelControlSet(unsigned long ulChannelStructIndex, unsigned long ulControl); -extern void uDMAChannelTransferSet(unsigned long ulChannel, +extern void uDMAChannelTransferSet(unsigned long ulChannelStructIndex, unsigned long ulMode, void *pvSrcAddr, void *pvDstAddr, unsigned long ulTransferSize); -extern unsigned long uDMAChannelSizeGet(unsigned long ulChannel); -extern unsigned long uDMAChannelModeGet(unsigned long ulChannel); +extern void uDMAChannelScatterGatherSet(unsigned long ulChannelNum, + unsigned ulTaskCount, void *pvTaskList, + unsigned long ulIsPeriphSG); +extern unsigned long uDMAChannelSizeGet(unsigned long ulChannelStructIndex); +extern unsigned long uDMAChannelModeGet(unsigned long ulChannelStructIndex); extern void uDMAIntRegister(unsigned long ulIntChannel, void (*pfnHandler)(void)); extern void uDMAIntUnregister(unsigned long ulIntChannel); extern void uDMAChannelSelectDefault(unsigned long ulDefPeriphs); extern void uDMAChannelSelectSecondary(unsigned long ulSecPeriphs); +extern unsigned long uDMAIntStatus(void); +extern void uDMAIntClear(unsigned long ulChanMask); +extern void uDMAChannelAssign(unsigned long ulMapping); //***************************************************************************** // @@ -330,4 +737,4 @@ extern void uDMAChannelSelectSecondary(unsigned long ulSecPeriphs); } #endif -#endif // __UDMA_H__ +#endif // __UDMA_H__ diff --git a/bsp/lm3s8962/Libraries/driverlib/usb.c b/bsp/lm3s8962/Libraries/driverlib/usb.c index 9df7d83f15..654948d014 100644 --- a/bsp/lm3s8962/Libraries/driverlib/usb.c +++ b/bsp/lm3s8962/Libraries/driverlib/usb.c @@ -2,7 +2,7 @@ // // usb.c - Driver for the USB Interface. // -// Copyright (c) 2007-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2007-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -85,7 +85,7 @@ // \param ucValue is the value to write to the register. // // This function is used to access the indexed registers for each endpoint. -// The only registers that are indexed are the FIFO configuration registers +// The only registers that are indexed are the FIFO configuration registers, // which are not used after configuration. // // \return None. @@ -150,7 +150,7 @@ USBIndexWrite(unsigned long ulBase, unsigned long ulEndpoint, // // This function is used internally to access the indexed registers for each // endpoint. The only registers that are indexed are the FIFO configuration -// registers which are not used after configuration. +// registers, which are not used after configuration. // // \return The value in the register requested. // @@ -215,7 +215,7 @@ USBIndexRead(unsigned long ulBase, unsigned long ulEndpoint, //! //! \param ulBase specifies the USB module base address. //! -//! When used in host mode, this function will put the USB bus in the suspended +//! When used in host mode, this function puts the USB bus in the suspended //! state. //! //! \note This function should only be called in host mode. @@ -246,7 +246,7 @@ USBHostSuspend(unsigned long ulBase) //! bus. //! //! When this function is called with the \e bStart parameter set to \b true, -//! this function will cause the start of a reset condition on the USB bus. +//! this function causes the start of a reset condition on the USB bus. //! The caller should then delay at least 20ms before calling this function //! again with the \e bStart parameter set to \b false. //! @@ -284,17 +284,17 @@ USBHostReset(unsigned long ulBase, tBoolean bStart) //! \param bStart specifies if the USB controller is entering or leaving the //! resume signaling state. //! -//! When in device mode this function will bring the USB controller out of the +//! When in device mode, this function brings the USB controller out of the //! suspend state. This call should first be made with the \e bStart parameter //! set to \b true to start resume signaling. The device application should //! then delay at least 10ms but not more than 15ms before calling this //! function with the \e bStart parameter set to \b false. //! -//! When in host mode this function will signal devices to leave the suspend +//! When in host mode, this function signals devices to leave the suspend //! state. This call should first be made with the \e bStart parameter set to //! \b true to start resume signaling. The host application should then delay //! at least 20ms before calling this function with the \e bStart parameter set -//! to \b false. This will cause the controller to complete the resume +//! to \b false. This action causes the controller to complete the resume //! signaling on the USB bus. //! //! \return None. @@ -327,7 +327,7 @@ USBHostResume(unsigned long ulBase, tBoolean bStart) //! //! \param ulBase specifies the USB module base address. //! -//! This function will return the current speed of the USB bus. +//! This function returns the current speed of the USB bus. //! //! \note This function should only be called in host mode. //! @@ -371,16 +371,15 @@ USBHostSpeedGet(unsigned long ulBase) //! //! \param ulBase specifies the USB module base address. //! -//! This function will read the source of the interrupt for the USB controller. +//! This function reads the source of the interrupt for the USB controller. //! There are three groups of interrupt sources, IN Endpoints, OUT Endpoints, -//! and general status changes. This call will return the current status for +//! and general status changes. This call returns the current status for //! all of these interrupts. The bit values returned should be compared //! against the \b USB_HOST_IN, \b USB_HOST_OUT, \b USB_HOST_EP0, //! \b USB_DEV_IN, \b USB_DEV_OUT, and \b USB_DEV_EP0 values. //! -//! \note This call will clear the source of all of the general status -//! interrupts. -//! +//! \note This call clears the source of all of the general status interrupts. +//! //! \note WARNING: This API cannot be used on endpoint numbers greater than //! endpoint 3 so USBIntStatusControl() or USBIntStatusEndpoint() should be //! used instead. @@ -436,7 +435,7 @@ USBIntStatus(unsigned long ulBase) if(HWREG(USB0_BASE + USB_O_IDVISC) & USB_IDVRIS_ID) { // - // Indicate a id detection was detected. + // Indicate an id detection was detected. // ulStatus |= USB_INT_MODE_DETECT; @@ -460,12 +459,12 @@ USBIntStatus(unsigned long ulBase) //! \param ulBase specifies the USB module base address. //! \param ulFlags specifies which interrupts to disable. //! -//! This function will disable the USB controller from generating the +//! This function disables the USB controller from generating the //! interrupts indicated by the \e ulFlags parameter. There are three groups //! of interrupt sources, IN Endpoints, OUT Endpoints, and general status //! changes, specified by \b USB_INT_HOST_IN, \b USB_INT_HOST_OUT, //! \b USB_INT_DEV_IN, \b USB_INT_DEV_OUT, and \b USB_INT_STATUS. If -//! \b USB_INT_ALL is specified then all interrupts will be disabled. +//! \b USB_INT_ALL is specified, then all interrupts are disabled. //! //! \note WARNING: This API cannot be used on endpoint numbers greater than //! endpoint 3 so USBIntDisableControl() or USBIntDisableEndpoint() should be @@ -485,7 +484,7 @@ USBIntDisable(unsigned long ulBase, unsigned long ulFlags) ASSERT((ulFlags & ~(USB_INT_ALL)) == 0); // - // If any transmit interrupts were disabled then write the transmit + // If any transmit interrupts were disabled, then write the transmit // interrupt settings out to the hardware. // if(ulFlags & (USB_INT_HOST_OUT | USB_INT_DEV_IN | USB_INT_EP0)) @@ -495,8 +494,8 @@ USBIntDisable(unsigned long ulBase, unsigned long ulFlags) } // - // If any receive interrupts were disabled then write the receive interrupt - // settings out to the hardware. + // If any receive interrupts were disabled, then write the receive + // interrupt settings out to the hardware. // if(ulFlags & (USB_INT_HOST_IN | USB_INT_DEV_OUT)) { @@ -506,8 +505,8 @@ USBIntDisable(unsigned long ulBase, unsigned long ulFlags) } // - // If any general interrupts were disabled then write the general interrupt - // settings out to the hardware. + // If any general interrupts were disabled, then write the general + // interrupt settings out to the hardware. // if(ulFlags & USB_INT_STATUS) { @@ -540,19 +539,19 @@ USBIntDisable(unsigned long ulBase, unsigned long ulFlags) //! \param ulBase specifies the USB module base address. //! \param ulFlags specifies which interrupts to enable. //! -//! This function will enable the USB controller's ability to generate the +//! This function enables the USB controller's ability to generate the //! interrupts indicated by the \e ulFlags parameter. There are three //! groups of interrupt sources, IN Endpoints, OUT Endpoints, and //! general status changes, specified by \b USB_INT_HOST_IN, //! \b USB_INT_HOST_OUT, \b USB_INT_DEV_IN, \b USB_INT_DEV_OUT, and -//! \b USB_STATUS. If \b USB_INT_ALL is specified then all interrupts will be +//! \b USB_STATUS. If \b USB_INT_ALL is specified then all interrupts are //! enabled. //! //! \note A call must be made to enable the interrupt in the main interrupt //! controller to receive interrupts. The USBIntRegister() API performs this -//! controller level interrupt enable. However if static interrupt handlers -//! are used then then a call to IntEnable() must be made in order to allow any -//! USB interrupts to occur. +//! controller-level interrupt enable. However if static interrupt handlers +//! are used, then then a call to IntEnable() must be made in order to allow +//! any USB interrupts to occur. //! //! \note WARNING: This API cannot be used on endpoint numbers greater than //! endpoint 3 so USBIntEnableControl() or USBIntEnableEndpoint() should be @@ -572,7 +571,7 @@ USBIntEnable(unsigned long ulBase, unsigned long ulFlags) ASSERT((ulFlags & (~USB_INT_ALL)) == 0); // - // If any transmit interrupts were enabled then write the transmit + // If any transmit interrupts were enabled, then write the transmit // interrupt settings out to the hardware. // if(ulFlags & (USB_INT_HOST_OUT | USB_INT_DEV_IN | USB_INT_EP0)) @@ -582,8 +581,8 @@ USBIntEnable(unsigned long ulBase, unsigned long ulFlags) } // - // If any receive interrupts were enabled then write the receive interrupt - // settings out to the hardware. + // If any receive interrupts were enabled, then write the receive + // interrupt settings out to the hardware. // if(ulFlags & (USB_INT_HOST_IN | USB_INT_DEV_OUT)) { @@ -593,8 +592,8 @@ USBIntEnable(unsigned long ulBase, unsigned long ulFlags) } // - // If any general interrupts were enabled then write the general interrupt - // settings out to the hardware. + // If any general interrupts were enabled, then write the general + // interrupt settings out to the hardware. // if(ulFlags & USB_INT_STATUS) { @@ -622,12 +621,12 @@ USBIntEnable(unsigned long ulBase, unsigned long ulFlags) //***************************************************************************** // -//! Disable control interrupts on a given USB controller. +//! Disables control interrupts on a given USB controller. //! //! \param ulBase specifies the USB module base address. //! \param ulFlags specifies which control interrupts to disable. //! -//! This function will disable the control interrupts for the USB controller +//! This function disables the control interrupts for the USB controller //! specified by the \e ulBase parameter. The \e ulFlags parameter specifies //! which control interrupts to disable. The flags passed in the \e ulFlags //! parameters should be the definitions that start with \b USB_INTCTRL_* and @@ -673,12 +672,12 @@ USBIntDisableControl(unsigned long ulBase, unsigned long ulFlags) //***************************************************************************** // -//! Enable control interrupts on a given USB controller. +//! Enables control interrupts on a given USB controller. //! //! \param ulBase specifies the USB module base address. //! \param ulFlags specifies which control interrupts to enable. //! -//! This function will enable the control interrupts for the USB controller +//! This function enables the control interrupts for the USB controller //! specified by the \e ulBase parameter. The \e ulFlags parameter specifies //! which control interrupts to enable. The flags passed in the \e ulFlags //! parameters should be the definitions that start with \b USB_INTCTRL_* and @@ -697,8 +696,8 @@ USBIntEnableControl(unsigned long ulBase, unsigned long ulFlags) ASSERT((ulFlags & (~USB_INTCTRL_ALL)) == 0); // - // If any general interrupts were enabled then write the general interrupt - // settings out to the hardware. + // If any general interrupts were enabled, then write the general + // interrupt settings out to the hardware. // if(ulFlags & USB_INTCTRL_STATUS) { @@ -728,17 +727,17 @@ USBIntEnableControl(unsigned long ulBase, unsigned long ulFlags) //! //! \param ulBase specifies the USB module base address. //! -//! This function will read control interrupt status for a USB controller. -//! This call will return the current status for control interrupts only, the -//! endpoint interrupt status is retrieved by calling USBIntStatusEndpoint(). -//! The bit values returned should be compared against the \b USB_INTCTRL_* +//! This function reads control interrupt status for a USB controller. This +//! call returns the current status for control interrupts only, the endpoint +//! interrupt status is retrieved by calling USBIntStatusEndpoint(). The bit +//! values returned should be compared against the \b USB_INTCTRL_* //! values. //! //! The following are the meanings of all \b USB_INCTRL_ flags and the modes //! for which they are valid. These values apply to any calls to -//! USBIntStatusControl(), USBIntEnableControl(), and USBIntDisableConrol(). +//! USBIntStatusControl(), USBIntEnableControl(), and USBIntDisableControl(). //! Some of these flags are only valid in the following modes as indicated in -//! the parenthesis: Host, Device, and OTG. +//! the parentheses: Host, Device, and OTG. //! //! - \b USB_INTCTRL_ALL - A full mask of all control interrupt sources. //! - \b USB_INTCTRL_VBUS_ERR - A VBUS error has occurred (Host Only). @@ -758,9 +757,8 @@ USBIntEnableControl(unsigned long ulBase, unsigned long ulFlags) //! (OTG Only) //! - \b USB_INTCTRL_POWER_FAULT - Power Fault detected. (Host Only) //! -//! \note This call will clear the source of all of the control status -//! interrupts. -//! +//! \note This call clears the source of all of the control status interrupts. +//! //! \return Returns the status of the control interrupts for a USB controller. // //***************************************************************************** @@ -799,7 +797,7 @@ USBIntStatusControl(unsigned long ulBase) if(HWREG(USB0_BASE + USB_O_IDVISC) & USB_IDVRIS_ID) { // - // Indicate a id detection was detected. + // Indicate an id detection. // ulStatus |= USB_INTCTRL_MODE_DETECT; @@ -817,14 +815,14 @@ USBIntStatusControl(unsigned long ulBase) //***************************************************************************** // -//! Disable endpoint interrupts on a given USB controller. +//! Disables endpoint interrupts on a given USB controller. //! //! \param ulBase specifies the USB module base address. //! \param ulFlags specifies which endpoint interrupts to disable. //! -//! This function will disable endpoint interrupts for the USB controller -//! specified by the \e ulBase parameter. The \e ulFlags parameter specifies -//! which endpoint interrupts to disable. The flags passed in the \e ulFlags +//! This function disables endpoint interrupts for the USB controller specified +//! by the \e ulBase parameter. The \e ulFlags parameter specifies which +//! endpoint interrupts to disable. The flags passed in the \e ulFlags //! parameters should be the definitions that start with \b USB_INTEP_* and not //! any other \b USB_INT flags. //! @@ -840,14 +838,14 @@ USBIntDisableEndpoint(unsigned long ulBase, unsigned long ulFlags) ASSERT(ulBase == USB0_BASE); // - // If any transmit interrupts were disabled then write the transmit + // If any transmit interrupts were disabled, then write the transmit // interrupt settings out to the hardware. // HWREGH(ulBase + USB_O_TXIE) &= ~(ulFlags & (USB_INTEP_HOST_OUT | USB_INTEP_DEV_IN | USB_INTEP_0)); // - // If any receive interrupts were disabled then write the receive interrupt + // If any receive interrupts were disabled, then write the receive interrupt // settings out to the hardware. // HWREGH(ulBase + USB_O_RXIE) &= @@ -857,14 +855,14 @@ USBIntDisableEndpoint(unsigned long ulBase, unsigned long ulFlags) //***************************************************************************** // -//! Enable endpoint interrupts on a given USB controller. +//! Enables endpoint interrupts on a given USB controller. //! //! \param ulBase specifies the USB module base address. //! \param ulFlags specifies which endpoint interrupts to enable. //! -//! This function will enable endpoint interrupts for the USB controller -//! specified by the \e ulBase parameter. The \e ulFlags parameter specifies -//! which endpoint interrupts to enable. The flags passed in the \e ulFlags +//! This function enables endpoint interrupts for the USB controller specified +//! by the \e ulBase parameter. The \e ulFlags parameter specifies which +//! endpoint interrupts to enable. The flags passed in the \e ulFlags //! parameters should be the definitions that start with \b USB_INTEP_* and not //! any other \b USB_INT flags. //! @@ -899,15 +897,15 @@ USBIntEnableEndpoint(unsigned long ulBase, unsigned long ulFlags) //! //! \param ulBase specifies the USB module base address. //! -//! This function will read endpoint interrupt status for a USB controller. -//! This call will return the current status for endpoint interrupts only, the -//! control interrupt status is retrieved by calling USBIntStatusControl(). -//! The bit values returned should be compared against the \b USB_INTEP_* -//! values. These are grouped into classes for \b USB_INTEP_HOST_* and +//! This function reads endpoint interrupt status for a USB controller. This +//! call returns the current status for endpoint interrupts only, the control +//! interrupt status is retrieved by calling USBIntStatusControl(). The bit +//! values returned should be compared against the \b USB_INTEP_* values. +//! These values are grouped into classes for \b USB_INTEP_HOST_* and //! \b USB_INTEP_DEV_* values to handle both host and device modes with all //! endpoints. //! -//! \note This call will clear the source of all of the endpoint interrupts. +//! \note This call clears the source of all of the endpoint interrupts. //! //! \return Returns the status of the endpoint interrupts for a USB controller. // @@ -943,11 +941,11 @@ USBIntStatusEndpoint(unsigned long ulBase) //! \param pfnHandler is a pointer to the function to be called when a USB //! interrupt occurs. //! -//! This sets the handler to be called when a USB interrupt occurs. This will -//! also enable the global USB interrupt in the interrupt controller. The -//! specific desired USB interrupts must be enabled via a separate call to +//! This function registers the handler to be called when a USB interrupt +//! occurs and enables the global USB interrupt in the interrupt controller. +//! The specific desired USB interrupts must be enabled via a separate call to //! USBIntEnable(). It is the interrupt handler's responsibility to clear the -//! interrupt sources via a calls to USBIntStatusControl() and +//! interrupt sources via calls to USBIntStatusControl() and //! USBIntStatusEndpoint(). //! //! \sa IntRegister() for important information about registering interrupt @@ -981,8 +979,8 @@ USBIntRegister(unsigned long ulBase, void(*pfnHandler)(void)) //! //! \param ulBase specifies the USB module base address. //! -//! This function unregister the interrupt handler. This function will also -//! disable the USB interrupt in the interrupt controller. +//! This function unregisters the interrupt handler. This function also +//! disables the USB interrupt in the interrupt controller. //! //! \sa IntRegister() for important information about registering or //! unregistering interrupt handlers. @@ -998,15 +996,15 @@ USBIntUnregister(unsigned long ulBase) // ASSERT(ulBase == USB0_BASE); + // + // Disable the USB interrupt. + // + IntDisable(INT_USB0); + // // Unregister the interrupt handler. // IntUnregister(INT_USB0); - - // - // Disable the CAN interrupt. - // - IntDisable(INT_USB0); } //***************************************************************************** @@ -1016,11 +1014,10 @@ USBIntUnregister(unsigned long ulBase) //! \param ulBase specifies the USB module base address. //! \param ulEndpoint is the endpoint to access. //! -//! This function will return the status of a given endpoint. If any of these -//! status bits need to be cleared, then these these values must be cleared by -//! calling the USBDevEndpointStatusClear() or USBHostEndpointStatusClear() -//! functions. -//! +//! This function returns the status of a given endpoint. If any of these +//! status bits must be cleared, then the USBDevEndpointStatusClear() or the +//! USBHostEndpointStatusClear() functions should be called. +//! //! The following are the status flags for host mode: //! //! - \b USB_HOST_IN_PID_ERROR - PID error on the given endpoint. @@ -1121,9 +1118,9 @@ USBEndpointStatus(unsigned long ulBase, unsigned long ulEndpoint) //! //! \param ulBase specifies the USB module base address. //! \param ulEndpoint is the endpoint to access. -//! \param ulFlags are the status bits that will be cleared. +//! \param ulFlags are the status bits that should be cleared. //! -//! This function will clear the status of any bits that are passed in the +//! This function clears the status of any bits that are passed in the //! \e ulFlags parameter. The \e ulFlags parameter can take the value returned //! from the USBEndpointStatus() call. //! @@ -1170,9 +1167,9 @@ USBHostEndpointStatusClear(unsigned long ulBase, unsigned long ulEndpoint, //! //! \param ulBase specifies the USB module base address. //! \param ulEndpoint is the endpoint to access. -//! \param ulFlags are the status bits that will be cleared. +//! \param ulFlags are the status bits that should be cleared. //! -//! This function will clear the status of any bits that are passed in the +//! This function clears the status of any bits that are passed in the //! \e ulFlags parameter. The \e ulFlags parameter can take the value returned //! from the USBEndpointStatus() call. //! @@ -1199,8 +1196,8 @@ USBDevEndpointStatusClear(unsigned long ulBase, unsigned long ulEndpoint, (ulEndpoint == USB_EP_14) || (ulEndpoint == USB_EP_15)); // - // If this is endpoint 0 then the bits have different meaning and map into - // the TX memory location. + // If this is endpoint 0, then the bits have different meaning and map + // into the TX memory location. // if(ulEndpoint == USB_EP_0) { @@ -1259,9 +1256,9 @@ USBDevEndpointStatusClear(unsigned long ulBase, unsigned long ulEndpoint, //! //! This function is used to force the state of the data toggle in host mode. //! If the value passed in the \e bDataToggle parameter is \b false, then the -//! data toggle will be set to the DATA0 state, and if it is \b true it will be -//! set to the DATA1 state. The \e ulFlags parameter can be \b USB_EP_HOST_IN -//! or \b USB_EP_HOST_OUT to access the desired portion of this endpoint. The +//! data toggle is set to the DATA0 state, and if it is \b true it is set to +//! the DATA1 state. The \e ulFlags parameter can be \b USB_EP_HOST_IN or +//! \b USB_EP_HOST_OUT to access the desired portion of this endpoint. The //! \e ulFlags parameter is ignored for endpoint zero. //! //! \note This function should only be called in host mode. @@ -1352,13 +1349,13 @@ USBHostEndpointDataToggle(unsigned long ulBase, unsigned long ulEndpoint, //***************************************************************************** // -//! Sets the Data toggle on an endpoint to zero. +//! Sets the data toggle on an endpoint to zero. //! //! \param ulBase specifies the USB module base address. //! \param ulEndpoint specifies the endpoint to reset the data toggle. //! \param ulFlags specifies whether to access the IN or OUT endpoint. //! -//! This function will cause the controller to clear the data toggle for an +//! This function causes the USB controller to clear the data toggle for an //! endpoint. This call is not valid for endpoint zero and can be made with //! host or device controllers. //! @@ -1408,11 +1405,11 @@ USBEndpointDataToggleClear(unsigned long ulBase, unsigned long ulEndpoint, //! \param ulEndpoint specifies the endpoint to stall. //! \param ulFlags specifies whether to stall the IN or OUT endpoint. //! -//! This function will cause to endpoint number passed in to go into a stall -//! condition. If the \e ulFlags parameter is \b USB_EP_DEV_IN then the stall -//! will be issued on the IN portion of this endpoint. If the \e ulFlags -//! parameter is \b USB_EP_DEV_OUT then the stall will be issued on the OUT -//! portion of this endpoint. +//! This function causes the endpoint number passed in to go into a stall +//! condition. If the \e ulFlags parameter is \b USB_EP_DEV_IN, then the stall +//! is issued on the IN portion of this endpoint. If the \e ulFlags parameter +//! is \b USB_EP_DEV_OUT, then the stall is issued on the OUT portion of this +//! endpoint. //! //! \note This function should only be called in device mode. //! @@ -1475,11 +1472,11 @@ USBDevEndpointStall(unsigned long ulBase, unsigned long ulEndpoint, //! \param ulFlags specifies whether to remove the stall condition from the IN //! or the OUT portion of this endpoint. //! -//! This function will cause the endpoint number passed in to exit the stall -//! condition. If the \e ulFlags parameter is \b USB_EP_DEV_IN then the stall -//! will be cleared on the IN portion of this endpoint. If the \e ulFlags -//! parameter is \b USB_EP_DEV_OUT then the stall will be cleared on the OUT -//! portion of this endpoint. +//! This function causes the endpoint number passed in to exit the stall +//! condition. If the \e ulFlags parameter is \b USB_EP_DEV_IN, then the stall +//! is cleared on the IN portion of this endpoint. If the \e ulFlags parameter +//! is \b USB_EP_DEV_OUT, then the stall is cleared on the OUT portion of this +//! endpoint. //! //! \note This function should only be called in device mode. //! @@ -1550,8 +1547,8 @@ USBDevEndpointStallClear(unsigned long ulBase, unsigned long ulEndpoint, //! //! \param ulBase specifies the USB module base address. //! -//! This function will cause the soft connect feature of the USB controller to -//! be enabled. Call USBDisconnect() to remove the USB device from the bus. +//! This function causes the soft connect feature of the USB controller to +//! be enabled. Call USBDevDisconnect() to remove the USB device from the bus. //! //! \note This function should only be called in device mode. //! @@ -1578,7 +1575,7 @@ USBDevConnect(unsigned long ulBase) //! //! \param ulBase specifies the USB module base address. //! -//! This function will cause the soft connect feature of the USB controller to +//! This function causes the soft connect feature of the USB controller to //! remove the device from the USB bus. A call to USBDevConnect() is needed to //! reconnect to the bus. //! @@ -1608,8 +1605,8 @@ USBDevDisconnect(unsigned long ulBase) //! \param ulBase specifies the USB module base address. //! \param ulAddress is the address to use for a device. //! -//! This function will set the device address on the USB bus. This address was -//! likely received via a SET ADDRESS command from the host controller. +//! This function configures the device address on the USB bus. This address +//! was likely received via a SET ADDRESS command from the host controller. //! //! \note This function should only be called in device mode. //! @@ -1636,7 +1633,7 @@ USBDevAddrSet(unsigned long ulBase, unsigned long ulAddress) //! //! \param ulBase specifies the USB module base address. //! -//! This function will return the current device address. This address was set +//! This function returns the current device address. This address was set //! by a call to USBDevAddrSet(). //! //! \note This function should only be called in device mode. @@ -1666,18 +1663,19 @@ USBDevAddrGet(unsigned long ulBase) //! \param ulEndpoint is the endpoint to access. //! \param ulMaxPayload is the maximum payload for this endpoint. //! \param ulNAKPollInterval is the either the NAK timeout limit or the polling -//! interval depending on the type of endpoint. +//! interval, depending on the type of endpoint. //! \param ulTargetEndpoint is the endpoint that the host endpoint is //! targeting. //! \param ulFlags are used to configure other endpoint settings. //! -//! This function will set the basic configuration for the transmit or receive +//! This function sets the basic configuration for the transmit or receive //! portion of an endpoint in host mode. The \e ulFlags parameter determines //! some of the configuration while the other parameters provide the rest. The //! \e ulFlags parameter determines whether this is an IN endpoint -//! (USB_EP_HOST_IN or USB_EP_DEV_IN) or an OUT endpoint (USB_EP_HOST_OUT or -//! USB_EP_DEV_OUT), whether this is a Full speed endpoint (USB_EP_SPEED_FULL) -//! or a Low speed endpoint (USB_EP_SPEED_LOW). +//! (\b USB_EP_HOST_IN or \b USB_EP_DEV_IN) or an OUT endpoint +//! (\b USB_EP_HOST_OUT or \b USB_EP_DEV_OUT), whether this is a Full speed +//! endpoint (\b USB_EP_SPEED_FULL) or a Low speed endpoint +//! (\b USB_EP_SPEED_LOW). //! //! The \b USB_EP_MODE_ flags control the type of the endpoint. //! - \b USB_EP_MODE_CTRL is a control endpoint. @@ -1693,18 +1691,18 @@ USBDevAddrGet(unsigned long ulBase) //! isochronous or interrupt endpoint, this value is the polling interval for //! this endpoint. //! -//! For interrupt endpoints the polling interval is simply the number of +//! For interrupt endpoints, the polling interval is simply the number of //! frames between polling an interrupt endpoint. For isochronous endpoints //! this value represents a polling interval of 2 ^ (\e ulNAKPollInterval - 1) //! frames. When used as a NAK timeout, the \e ulNAKPollInterval value //! specifies 2 ^ (\e ulNAKPollInterval - 1) frames before issuing a time out. //! There are two special time out values that can be specified when setting -//! the \e ulNAKPollInterval value. The first is \b MAX_NAK_LIMIT which is the -//! maximum value that can be passed in this variable. The other is -//! \b DISABLE_NAK_LIMIT which indicates that there should be no limit on the +//! the \e ulNAKPollInterval value. The first is \b MAX_NAK_LIMIT, which is +//! the maximum value that can be passed in this variable. The other is +//! \b DISABLE_NAK_LIMIT, which indicates that there should be no limit on the //! number of NAKs. //! -//! The \b USB_EP_DMA_MODE_ flags enables the type of DMA used to access the +//! The \b USB_EP_DMA_MODE_ flags enable the type of DMA used to access the //! endpoint's data FIFOs. The choice of the DMA mode depends on how the DMA //! controller is configured and how it is being used. See the ``Using USB //! with the uDMA Controller'' section for more information on DMA @@ -1712,15 +1710,15 @@ USBDevAddrGet(unsigned long ulBase) //! //! When configuring the OUT portion of an endpoint, the \b USB_EP_AUTO_SET bit //! is specified to cause the transmission of data on the USB bus to start -//! as soon as the number of bytes specified by \e ulMaxPayload have been +//! as soon as the number of bytes specified by \e ulMaxPayload has been //! written into the OUT FIFO for this endpoint. //! //! When configuring the IN portion of an endpoint, the \b USB_EP_AUTO_REQUEST //! bit can be specified to trigger the request for more data once the FIFO has //! been drained enough to fit \e ulMaxPayload bytes. The \b USB_EP_AUTO_CLEAR //! bit can be used to clear the data packet ready flag automatically once the -//! data has been read from the FIFO. If this is not used, this flag must be -//! manually cleared via a call to USBDevEndpointStatusClear() or +//! data has been read from the FIFO. If this option is not used, this flag +//! must be manually cleared via a call to USBDevEndpointStatusClear() or //! USBHostEndpointStatusClear(). //! //! \note This function should only be called in host mode. @@ -1764,7 +1762,7 @@ USBHostEndpointConfig(unsigned long ulBase, unsigned long ulEndpoint, // // Set the transfer type information. // - HWREGB(ulBase + EP_OFFSET(ulEndpoint) + USB_O_TYPE0) = + HWREGB(ulBase + USB_O_TYPE0) = ((ulFlags & USB_EP_SPEED_FULL) ? USB_TYPE0_SPEED_FULL : USB_TYPE0_SPEED_LOW); } @@ -1942,9 +1940,9 @@ USBHostEndpointConfig(unsigned long ulBase, unsigned long ulEndpoint, //! \param ulMaxPacketSize is the maximum packet size for this endpoint. //! \param ulFlags are used to configure other endpoint settings. //! -//! This function will set the basic configuration for an endpoint in device -//! mode. Endpoint zero does not have a dynamic configuration, so this -//! function should not be called for endpoint zero. The \e ulFlags parameter +//! This function sets the basic configuration for an endpoint in device mode. +//! Endpoint zero does not have a dynamic configuration, so this function +//! should not be called for endpoint zero. The \e ulFlags parameter //! determines some of the configuration while the other parameters provide the //! rest. //! @@ -1955,7 +1953,7 @@ USBHostEndpointConfig(unsigned long ulBase, unsigned long ulEndpoint, //! - \b USB_EP_MODE_BULK is a bulk endpoint. //! - \b USB_EP_MODE_INT is an interrupt endpoint. //! -//! The \b USB_EP_DMA_MODE_ flags determines the type of DMA access to the +//! The \b USB_EP_DMA_MODE_ flags determine the type of DMA access to the //! endpoint data FIFOs. The choice of the DMA mode depends on how the DMA //! controller is configured and how it is being used. See the ``Using USB //! with the uDMA Controller'' section for more information on DMA @@ -1964,7 +1962,7 @@ USBHostEndpointConfig(unsigned long ulBase, unsigned long ulEndpoint, //! When configuring an IN endpoint, the \b USB_EP_AUTO_SET bit can be //! specified to cause the automatic transmission of data on the USB bus as //! soon as \e ulMaxPacketSize bytes of data are written into the FIFO for -//! this endpoint. This is commonly used with DMA as no interaction is +//! this endpoint. This option is commonly used with DMA as no interaction is //! required to start the transmission of data. //! //! When configuring an OUT endpoint, the \b USB_EP_AUTO_REQUEST bit is @@ -1972,9 +1970,9 @@ USBHostEndpointConfig(unsigned long ulBase, unsigned long ulEndpoint, //! drained enough to receive \e ulMaxPacketSize more bytes of data. Also for //! OUT endpoints, the \b USB_EP_AUTO_CLEAR bit can be used to clear the data //! packet ready flag automatically once the data has been read from the FIFO. -//! If this is not used, this flag must be manually cleared via a call to -//! USBDevEndpointStatusClear(). Both of these settings can be used to remove -//! the need for extra calls when using the controller in DMA mode. +//! If this option is not used, this flag must be manually cleared via a call +//! to USBDevEndpointStatusClear(). Both of these settings can be used to +//! remove the need for extra calls when using the controller in DMA mode. //! //! \note This function should only be called in device mode. //! @@ -2119,14 +2117,14 @@ USBDevEndpointConfigSet(unsigned long ulBase, unsigned long ulEndpoint, //! //! \param ulBase specifies the USB module base address. //! \param ulEndpoint is the endpoint to access. -//! \param pulMaxPacketSize is a pointer which will be written with the -//! maximum packet size for this endpoint. -//! \param pulFlags is a pointer which will be written with the current -//! endpoint settings. On entry to the function, this pointer must contain -//! either \b USB_EP_DEV_IN or \b USB_EP_DEV_OUT to indicate whether the IN or -//! OUT endpoint is to be queried. +//! \param pulMaxPacketSize is a pointer which is written with the maximum +//! packet size for this endpoint. +//! \param pulFlags is a pointer which is written with the current endpoint +//! settings. On entry to the function, this pointer must contain either +//! \b USB_EP_DEV_IN or \b USB_EP_DEV_OUT to indicate whether the IN or OUT +//! endpoint is to be queried. //! -//! This function will return the basic configuration for an endpoint in device +//! This function returns the basic configuration for an endpoint in device //! mode. The values returned in \e *pulMaxPacketSize and \e *pulFlags are //! equivalent to the \e ulMaxPacketSize and \e ulFlags previously passed to //! USBDevEndpointConfigSet() for this endpoint. @@ -2216,9 +2214,9 @@ USBDevEndpointConfigGet(unsigned long ulBase, unsigned long ulEndpoint, // // The hardware doesn't differentiate between bulk, interrupt // and control mode for the endpoint so we just set something - // that isn't isochronous. This ensures that anyone modifying - // the returned flags in preparation for a call to - // USBDevEndpointConfigSet will not see an unexpected mode change. + // that isn't isochronous. This protocol ensures that anyone + // modifying the returned flags in preparation for a call to + // USBDevEndpointConfigSet do not see an unexpected mode change. // If they decode the returned mode, however, they may be in for // a surprise. // @@ -2281,9 +2279,9 @@ USBDevEndpointConfigGet(unsigned long ulBase, unsigned long ulEndpoint, // // The hardware doesn't differentiate between bulk, interrupt // and control mode for the endpoint so we just set something - // that isn't isochronous. This ensures that anyone modifying - // the returned flags in preparation for a call to - // USBDevEndpointConfigSet will not see an unexpected mode change. + // that isn't isochronous. This protocol ensures that anyone + // modifying the returned flags in preparation for a call to + // USBDevEndpointConfigSet do not see an unexpected mode change. // If they decode the returned mode, however, they may be in for // a surprise. // @@ -2299,27 +2297,28 @@ USBDevEndpointConfigGet(unsigned long ulBase, unsigned long ulEndpoint, //! \param ulBase specifies the USB module base address. //! \param ulEndpoint is the endpoint to access. //! \param ulFIFOAddress is the starting address for the FIFO. -//! \param ulFIFOSize is the size of the FIFO in bytes. +//! \param ulFIFOSize is the size of the FIFO specified by one of the +//! USB_FIFO_SZ_ values. //! \param ulFlags specifies what information to set in the FIFO configuration. //! -//! This function will set the starting FIFO RAM address and size of the FIFO +//! This function configures the starting FIFO RAM address and size of the FIFO //! for a given endpoint. Endpoint zero does not have a dynamically -//! configurable FIFO so this function should not be called for endpoint zero. +//! configurable FIFO, so this function should not be called for endpoint zero. //! The \e ulFIFOSize parameter should be one of the values in the -//! \b USB_FIFO_SZ_ values. If the endpoint is going to use double buffering +//! \b USB_FIFO_SZ_ values. If the endpoint is going to use double buffering, //! it should use the values with the \b _DB at the end of the value. For -//! example, use \b USB_FIFO_SZ_16_DB to configure an endpoint to have a 16 -//! byte double buffered FIFO. If a double buffered FIFO is used, then the -//! actual size of the FIFO will be twice the size indicated by the -//! \e ulFIFOSize parameter. This means that the \b USB_FIFO_SZ_16_DB value -//! will use 32 bytes of the USB controller's FIFO memory. +//! example, use \b USB_FIFO_SZ_16_DB to configure an endpoint to have a 16- +//! byte, double-buffered FIFO. If a double-buffered FIFO is used, then the +//! actual size of the FIFO is twice the size indicated by the \e ulFIFOSize +//! parameter. For example, the \b USB_FIFO_SZ_16_DB value uses 32 bytes of +//! the USB controller's FIFO memory. //! //! The \e ulFIFOAddress value should be a multiple of 8 bytes and directly //! indicates the starting address in the USB controller's FIFO RAM. For //! example, a value of 64 indicates that the FIFO should start 64 bytes into //! the USB controller's FIFO memory. The \e ulFlags value specifies whether //! the endpoint's OUT or IN FIFO should be configured. If in host mode, use -//! \b USB_EP_HOST_OUT or \b USB_EP_HOST_IN, and if in device mode use +//! \b USB_EP_HOST_OUT or \b USB_EP_HOST_IN, and if in device mode, use //! \b USB_EP_DEV_OUT or \b USB_EP_DEV_IN. //! //! \return None. @@ -2373,16 +2372,17 @@ USBFIFOConfigSet(unsigned long ulBase, unsigned long ulEndpoint, //! \param ulBase specifies the USB module base address. //! \param ulEndpoint is the endpoint to access. //! \param pulFIFOAddress is the starting address for the FIFO. -//! \param pulFIFOSize is the size of the FIFO in bytes. +//! \param pulFIFOSize is the size of the FIFO as specified by one of the +//! USB_FIFO_SZ_ values. //! \param ulFlags specifies what information to retrieve from the FIFO //! configuration. //! -//! This function will return the starting address and size of the FIFO for a +//! This function returns the starting address and size of the FIFO for a //! given endpoint. Endpoint zero does not have a dynamically configurable -//! FIFO so this function should not be called for endpoint zero. The +//! FIFO, so this function should not be called for endpoint zero. The //! \e ulFlags parameter specifies whether the endpoint's OUT or IN FIFO should //! be read. If in host mode, the \e ulFlags parameter should be -//! \b USB_EP_HOST_OUT or \b USB_EP_HOST_IN, and if in device mode the +//! \b USB_EP_HOST_OUT or \b USB_EP_HOST_IN, and if in device mode, the //! \e ulFlags parameter should be either \b USB_EP_DEV_OUT or //! \b USB_EP_DEV_IN. //! @@ -2444,9 +2444,9 @@ USBFIFOConfigGet(unsigned long ulBase, unsigned long ulEndpoint, //! \param ulFlags specifies which direction and what mode to use when enabling //! DMA. //! -//! This function will enable DMA on a given endpoint and set the mode according -//! to the values in the \e ulFlags parameter. The \e ulFlags parameter should -//! have \b USB_EP_DEV_IN or \b USB_EP_DEV_OUT set. +//! This function enables DMA on a given endpoint and configures the mode +//! according to the values in the \e ulFlags parameter. The \e ulFlags +//! parameter should have \b USB_EP_DEV_IN or \b USB_EP_DEV_OUT set. //! //! \return None. // @@ -2461,7 +2461,7 @@ USBEndpointDMAEnable(unsigned long ulBase, unsigned long ulEndpoint, if(ulFlags & USB_EP_DEV_IN) { // - // Enable DMA on the transmit end point. + // Enable DMA on the transmit endpoint. // HWREGB(ulBase + EP_OFFSET(ulEndpoint) + USB_O_TXCSRH1) |= USB_TXCSRH1_DMAEN; @@ -2469,7 +2469,7 @@ USBEndpointDMAEnable(unsigned long ulBase, unsigned long ulEndpoint, else { // - // Enable DMA on the receive end point. + // Enable DMA on the receive endpoint. // HWREGB(ulBase + EP_OFFSET(ulEndpoint) + USB_O_RXCSRH1) |= USB_RXCSRH1_DMAEN; @@ -2484,9 +2484,9 @@ USBEndpointDMAEnable(unsigned long ulBase, unsigned long ulEndpoint, //! \param ulEndpoint is the endpoint to access. //! \param ulFlags specifies which direction to disable. //! -//! This function will disable DMA on a given end point to allow non-DMA -//! USB transactions to generate interrupts normally. The ulFlags should be -//! \b USB_EP_DEV_IN or \b USB_EP_DEV_OUT all other bits are ignored. +//! This function disables DMA on a given endpoint to allow non-DMA USB +//! transactions to generate interrupts normally. The ulFlags should be +//! \b USB_EP_DEV_IN or \b USB_EP_DEV_OUT; all other bits are ignored. //! //! \return None. // @@ -2496,7 +2496,7 @@ USBEndpointDMADisable(unsigned long ulBase, unsigned long ulEndpoint, unsigned long ulFlags) { // - // If this was a request to disable DMA on the IN portion of the end point + // If this was a request to disable DMA on the IN portion of the endpoint // then handle it. // if(ulFlags & USB_EP_DEV_IN) @@ -2524,13 +2524,13 @@ USBEndpointDMADisable(unsigned long ulBase, unsigned long ulEndpoint, //! \param ulBase specifies the USB module base address. //! \param ulEndpoint is the endpoint to access. //! -//! This function will return the number of bytes of data currently available -//! in the FIFO for the given receive (OUT) endpoint. It may be used prior to +//! This function returns the number of bytes of data currently available in +//! the FIFO for the given receive (OUT) endpoint. It may be used prior to //! calling USBEndpointDataGet() to determine the size of buffer required to //! hold the newly-received packet. //! -//! \return This call will return the number of bytes available in a given -//! endpoint FIFO. +//! \return This call returns the number of bytes available in a given endpoint +//! FIFO. // //***************************************************************************** unsigned long @@ -2587,18 +2587,18 @@ USBEndpointDataAvail(unsigned long ulBase, unsigned long ulEndpoint) //! \param pucData is a pointer to the data area used to return the data from //! the FIFO. //! \param pulSize is initially the size of the buffer passed into this call -//! via the \e pucData parameter. It will be set to the amount of data -//! returned in the buffer. +//! via the \e pucData parameter. It is set to the amount of data returned in +//! the buffer. //! -//! This function will return the data from the FIFO for the given endpoint. +//! This function returns the data from the FIFO for the given endpoint. //! The \e pulSize parameter should indicate the size of the buffer passed in -//! the \e pulData parameter. The data in the \e pulSize parameter will be -//! changed to match the amount of data returned in the \e pucData parameter. -//! If a zero byte packet was received this call will not return a error but -//! will instead just return a zero in the \e pulSize parameter. The only -//! error case occurs when there is no data packet available. +//! the \e pulData parameter. The data in the \e pulSize parameter is changed +//! to match the amount of data returned in the \e pucData parameter. If a +//! zero-byte packet is received, this call does not return an error but +//! instead just returns a zero in the \e pulSize parameter. The only error +//! case occurs when there is no data packet available. //! -//! \return This call will return 0, or -1 if no packet was received. +//! \return This call returns 0, or -1 if no packet was received. // //***************************************************************************** long @@ -2693,7 +2693,7 @@ USBEndpointDataGet(unsigned long ulBase, unsigned long ulEndpoint, //! //! \param ulBase specifies the USB module base address. //! \param ulEndpoint is the endpoint to access. -//! \param bIsLastPacket indicates if this is the last packet. +//! \param bIsLastPacket indicates if this packet is the last one. //! //! This function acknowledges that the data was read from the endpoint's FIFO. //! The \e bIsLastPacket parameter is set to a \b true value if this is the @@ -2802,13 +2802,13 @@ USBHostEndpointDataAck(unsigned long ulBase, unsigned long ulEndpoint) //! data to put into the FIFO. //! \param ulSize is the amount of data to put into the FIFO. //! -//! This function will put the data from the \e pucData parameter into the FIFO -//! for this endpoint. If a packet is already pending for transmission then -//! this call will not put any of the data into the FIFO and will return -1. -//! Care should be taken to not write more data than can fit into the FIFO -//! allocated by the call to USBFIFOConfig(). +//! This function puts the data from the \e pucData parameter into the FIFO +//! for this endpoint. If a packet is already pending for transmission, then +//! this call does not put any of the data into the FIFO and returns -1. Care +//! should be taken to not write more data than can fit into the FIFO +//! allocated by the call to USBFIFOConfigSet(). //! -//! \return This call will return 0 on success, or -1 to indicate that the FIFO +//! \return This call returns 0 on success, or -1 to indicate that the FIFO //! is in use and cannot be written. // //***************************************************************************** @@ -2879,21 +2879,21 @@ USBEndpointDataPut(unsigned long ulBase, unsigned long ulEndpoint, //! \param ulEndpoint is the endpoint to access. //! \param ulTransType is set to indicate what type of data is being sent. //! -//! This function will start the transfer of data from the FIFO for a given -//! endpoint. This is necessary if the \b USB_EP_AUTO_SET bit was not enabled -//! for the endpoint. Setting the \e ulTransType parameter will allow the -//! appropriate signaling on the USB bus for the type of transaction being +//! This function starts the transfer of data from the FIFO for a given +//! endpoint. This function should be called if the \b USB_EP_AUTO_SET bit was +//! not enabled for the endpoint. Setting the \e ulTransType parameter allows +//! the appropriate signaling on the USB bus for the type of transaction being //! requested. The \e ulTransType parameter should be one of the following: //! -//! - USB_TRANS_OUT for OUT transaction on any endpoint in host mode. -//! - USB_TRANS_IN for IN transaction on any endpoint in device mode. -//! - USB_TRANS_IN_LAST for the last IN transactions on endpoint zero in a +//! - \b USB_TRANS_OUT for OUT transaction on any endpoint in host mode. +//! - \b USB_TRANS_IN for IN transaction on any endpoint in device mode. +//! - \b USB_TRANS_IN_LAST for the last IN transaction on endpoint zero in a //! sequence of IN transactions. -//! - USB_TRANS_SETUP for setup transactions on endpoint zero. -//! - USB_TRANS_STATUS for status results on endpoint zero. +//! - \b USB_TRANS_SETUP for setup transactions on endpoint zero. +//! - \b USB_TRANS_STATUS for status results on endpoint zero. //! -//! \return This call will return 0 on success, or -1 if a transmission is -//! already in progress. +//! \return This call returns 0 on success, or -1 if a transmission is already +//! in progress. // //***************************************************************************** long @@ -2903,7 +2903,7 @@ USBEndpointDataSend(unsigned long ulBase, unsigned long ulEndpoint, unsigned long ulTxPktRdy; // - // CHeck the arguments. + // Check the arguments. // ASSERT(ulBase == USB0_BASE); ASSERT((ulEndpoint == USB_EP_0) || (ulEndpoint == USB_EP_1) || @@ -2954,7 +2954,7 @@ USBEndpointDataSend(unsigned long ulBase, unsigned long ulEndpoint, //! \param ulEndpoint is the endpoint to access. //! \param ulFlags specifies if the IN or OUT endpoint should be accessed. //! -//! This function will force the controller to flush out the data in the FIFO. +//! This function forces the USB controller to flush out the data in the FIFO. //! The function can be called with either host or device controllers and //! requires the \e ulFlags parameter be one of \b USB_EP_HOST_OUT, //! \b USB_EP_HOST_IN, \b USB_EP_DEV_OUT, or \b USB_EP_DEV_IN. @@ -3041,11 +3041,12 @@ USBFIFOFlush(unsigned long ulBase, unsigned long ulEndpoint, //! \param ulBase specifies the USB module base address. //! \param ulEndpoint is the endpoint to access. //! -//! This function will schedule a request for an IN transaction. When the USB -//! device being communicated with responds the data, the data can be retrieved -//! by calling USBEndpointDataGet() or via a DMA transfer. +//! This function schedules a request for an IN transaction. When the USB +//! device being communicated with responds with the data, the data can be +//! retrieved by calling USBEndpointDataGet() or via a DMA transfer. //! -//! \note This function should only be called in host mode. +//! \note This function should only be called in host mode and only for IN +//! endpoints. //! //! \return None. // @@ -3086,17 +3087,72 @@ USBHostRequestIN(unsigned long ulBase, unsigned long ulEndpoint) HWREGB(ulBase + ulRegister) = USB_RXCSRL1_REQPKT; } +//***************************************************************************** +// +//! Clears a scheduled IN transaction for an endpoint in host mode. +//! +//! \param ulBase specifies the USB module base address. +//! \param ulEndpoint is the endpoint to access. +//! +//! This function clears a previously scheduled IN transaction if it is +//! still pending. This function should be used to safely disable any +//! scheduled IN transactions if the endpoint specified by \e ulEndpoint +//! is reconfigured for communications with other devices. +//! +//! \note This function should only be called in host mode and only for IN +//! endpoints. +//! +//! \return None. +// +//***************************************************************************** +void +USBHostRequestINClear(unsigned long ulBase, unsigned long ulEndpoint) +{ + unsigned long ulRegister; + + // + // Check the arguments. + // + ASSERT(ulBase == USB0_BASE); + ASSERT((ulEndpoint == USB_EP_0) || (ulEndpoint == USB_EP_1) || + (ulEndpoint == USB_EP_2) || (ulEndpoint == USB_EP_3) || + (ulEndpoint == USB_EP_4) || (ulEndpoint == USB_EP_5) || + (ulEndpoint == USB_EP_6) || (ulEndpoint == USB_EP_7) || + (ulEndpoint == USB_EP_8) || (ulEndpoint == USB_EP_9) || + (ulEndpoint == USB_EP_10) || (ulEndpoint == USB_EP_11) || + (ulEndpoint == USB_EP_12) || (ulEndpoint == USB_EP_13) || + (ulEndpoint == USB_EP_14) || (ulEndpoint == USB_EP_15)); + + // + // Endpoint zero uses a different offset than the other endpoints. + // + if(ulEndpoint == USB_EP_0) + { + ulRegister = USB_O_CSRL0; + } + else + { + ulRegister = USB_O_RXCSRL1 + EP_OFFSET(ulEndpoint); + } + + // + // Clear the request for an IN transaction. + // + HWREGB(ulBase + ulRegister) &= ~USB_RXCSRL1_REQPKT; +} + //***************************************************************************** // //! Issues a request for a status IN transaction on endpoint zero. //! //! \param ulBase specifies the USB module base address. //! -//! This function is used to cause a request for an status IN transaction from +//! This function is used to cause a request for a status IN transaction from //! a device on endpoint zero. This function can only be used with endpoint //! zero as that is the only control endpoint that supports this ability. This -//! is used to complete the last phase of a control transaction to a device and -//! an interrupt will be signaled when the status packet has been received. +//! function is used to complete the last phase of a control transaction to a +//! device and an interrupt is signaled when the status packet has been +//! received. //! //! \return None. // @@ -3126,10 +3182,10 @@ USBHostRequestStatus(unsigned long ulBase) //! endpoint. //! \param ulFlags determines if this is an IN or an OUT endpoint. //! -//! This function will set the functional address for a device that is using +//! This function configures the functional address for a device that is using //! this endpoint for communication. This \e ulAddr parameter is the address -//! of the target device that this endpoint will be used to communicate with. -//! The \e ulFlags parameter indicates if the IN or OUT endpoint should be set. +//! of the target device that this endpoint is communicating with. The +//! \e ulFlags parameter indicates if the IN or OUT endpoint should be set. //! //! \note This function should only be called in host mode. //! @@ -3227,16 +3283,21 @@ USBHostAddrGet(unsigned long ulBase, unsigned long ulEndpoint, //***************************************************************************** // -//! Set the hub address for the device that is connected to an endpoint. +//! Sets the hub address for the device that is connected to an endpoint. //! //! \param ulBase specifies the USB module base address. //! \param ulEndpoint is the endpoint to access. -//! \param ulAddr is the hub address for the device using this endpoint. +//! \param ulAddr is the hub address and port for the device using this +//! endpoint. The hub address must be defined in bits 8 through 15 with the +//! port number in bits 0 through 6. //! \param ulFlags determines if this is an IN or an OUT endpoint. //! -//! This function will set the hub address for a device that is using this +//! This function configures the hub address for a device that is using this //! endpoint for communication. The \e ulFlags parameter determines if the -//! device address for the IN or the OUT endpoint is set by this call. +//! device address for the IN or the OUT endpoint is configured by this call +//! and sets the speed of the downstream device. Valid values are one of \b +//! USB_EP_HOST_OUT or \b USB_EP_HOST_IN optionally ORed with \b +//! USB_EP_SPEED_LOW. //! //! \note This function should only be called in host mode. //! @@ -3266,28 +3327,45 @@ USBHostHubAddrSet(unsigned long ulBase, unsigned long ulEndpoint, if(ulFlags & USB_EP_HOST_OUT) { // - // Set the hub transmit address for this endpoint. + // Set the hub transmit address and port number for this endpoint. // - HWREGB(ulBase + USB_O_TXHUBADDR0 + (ulEndpoint >> 1)) = ulAddr; + HWREGH(ulBase + USB_O_TXHUBADDR0 + (ulEndpoint >> 1)) = ulAddr; } else { // - // Set the hub receive address for this endpoint. + // Set the hub receive address and port number for this endpoint. // - HWREGB(ulBase + USB_O_TXHUBADDR0 + 4 + (ulEndpoint >> 1)) = ulAddr; + HWREGH(ulBase + USB_O_TXHUBADDR0 + 4 + (ulEndpoint >> 1)) = ulAddr; + } + + // + // Set the speed of communication for endpoint 0. This configuration is + // done here because it changes on a transaction-by-transaction basis for + // EP0. For other endpoints, this is set in USBHostEndpointConfig(). + // + if(ulEndpoint == USB_EP_0) + { + if(ulFlags & USB_EP_SPEED_FULL) + { + HWREGB(ulBase + USB_O_TYPE0) = USB_TYPE0_SPEED_FULL; + } + else + { + HWREGB(ulBase + USB_O_TYPE0) = USB_TYPE0_SPEED_LOW; + } } } //***************************************************************************** // -//! Get the current device hub address for this endpoint. +//! Gets the current device hub address for this endpoint. //! //! \param ulBase specifies the USB module base address. //! \param ulEndpoint is the endpoint to access. //! \param ulFlags determines if this is an IN or an OUT endpoint. //! -//! This function will return the current hub address that an endpoint is using +//! This function returns the current hub address that an endpoint is using //! to communicate with a device. The \e ulFlags parameter determines if the //! device address for the IN or OUT endpoint is returned. //! @@ -3341,12 +3419,11 @@ USBHostHubAddrGet(unsigned long ulBase, unsigned long ulEndpoint, //! \param ulFlags specifies the configuration of the power fault. //! //! This function controls how the USB controller uses its external power -//! control pins(USBnPFTL and USBnEPEN). The flags specify the power +//! control pins (USBnPFLT and USBnEPEN). The flags specify the power //! fault level sensitivity, the power fault action, and the power enable level //! and source. //! -//! One of the following can be selected as the power fault level -//! sensitivity: +//! One of the following can be selected as the power fault level sensitivity: //! //! - \b USB_HOST_PWRFLT_LOW - An external power fault is indicated by the pin //! being driven low. @@ -3357,7 +3434,7 @@ USBHostHubAddrGet(unsigned long ulBase, unsigned long ulEndpoint, //! //! - \b USB_HOST_PWRFLT_EP_NONE - No automatic action when power fault //! detected. -//! - \b USB_HOST_PWRFLT_EP_TRI - Automatically Tri-state the USBnEPEN pin on a +//! - \b USB_HOST_PWRFLT_EP_TRI - Automatically tri-state the USBnEPEN pin on a //! power fault. //! - \b USB_HOST_PWRFLT_EP_LOW - Automatically drive USBnEPEN pin low on a //! power fault. @@ -3366,21 +3443,23 @@ USBHostHubAddrGet(unsigned long ulBase, unsigned long ulEndpoint, //! //! One of the following can be selected as the power enable level and source: //! -//! - \b USB_HOST_PWREN_MAN_LOW - USBEPEN is driven low by the USB controller +//! - \b USB_HOST_PWREN_MAN_LOW - USBnEPEN is driven low by the USB controller //! when USBHostPwrEnable() is called. -//! - \b USB_HOST_PWREN_MAN_HIGH - USBEPEN is driven high by the USB controller -//! when USBHostPwrEnable() is called. -//! - \b USB_HOST_PWREN_AUTOLOW - USBEPEN is driven low by the USB controller +//! - \b USB_HOST_PWREN_MAN_HIGH - USBnEPEN is driven high by the USB +//! controller when USBHostPwrEnable() is +//! called. +//! - \b USB_HOST_PWREN_AUTOLOW - USBnEPEN is driven low by the USB controller //! automatically if USBOTGSessionRequest() has //! enabled a session. -//! - \b USB_HOST_PWREN_AUTOHIGH - USBEPEN is driven high by the USB controller -//! automatically if USBOTGSessionRequest() has -//! enabled a session. +//! - \b USB_HOST_PWREN_AUTOHIGH - USBnEPEN is driven high by the USB +//! controller automatically if +//! USBOTGSessionRequest() has enabled a +//! session. //! //! On devices that support the VBUS glitch filter, the -//! \b USB_HOST_PWREN_FILTER can be added to ignore small short drops in VBUS -//! level caused by high power consumption. This is mainly used to avoid -//! causing VBUS errors caused by devices with high in-rush current. +//! \b USB_HOST_PWREN_FILTER can be added to ignore small, short drops in VBUS +//! level caused by high power consumption. This feature is mainly used to +//! avoid causing VBUS errors caused by devices with high in-rush current. //! //! \note The following values have been deprecated and should no longer be //! used. @@ -3390,8 +3469,8 @@ USBHostHubAddrGet(unsigned long ulBase, unsigned long ulEndpoint, //! enabled. //! - \b USB_HOST_PWREN_VBLOW - Automatically drive USBnEPEN low when power is //! enabled. -//! - \b USB_HOST_PWREN_VBHIGH - Automatically drive USBnEPEN high when power is -//! enabled. +//! - \b USB_HOST_PWREN_VBHIGH - Automatically drive USBnEPEN high when power +//! is enabled. //! //! \note This function should only be called on microcontrollers that support //! host mode or OTG operation. @@ -3406,8 +3485,9 @@ USBHostPwrConfig(unsigned long ulBase, unsigned long ulFlags) // Check the arguments. // ASSERT(ulBase == USB0_BASE); - ASSERT((ulFlags & ~(USB_EPC_PFLTACT_M | USB_EPC_PFLTAEN | - USB_EPC_PFLTSEN_HIGH | USB_EPC_EPEN_M)) == 0); + ASSERT((ulFlags & ~(USB_HOST_PWREN_FILTER | USB_EPC_PFLTACT_M | + USB_EPC_PFLTAEN | USB_EPC_PFLTSEN_HIGH | + USB_EPC_EPEN_M)) == 0); // // If requested, enable VBUS droop detection on parts that support this @@ -3416,8 +3496,8 @@ USBHostPwrConfig(unsigned long ulBase, unsigned long ulFlags) HWREG(ulBase + USB_O_VDC) = ulFlags >> 16; // - // Set the power fault configuration as specified. This will not change - // whether fault detection is enabled or not. + // Set the power fault configuration as specified. This configuration + // does not change whether fault detection is enabled or not. // HWREGH(ulBase + USB_O_EPC) = (ulFlags | (HWREGH(ulBase + USB_O_EPC) & @@ -3432,7 +3512,7 @@ USBHostPwrConfig(unsigned long ulBase, unsigned long ulFlags) //! \param ulBase specifies the USB module base address. //! //! This function enables power fault detection in the USB controller. If the -//! USBPFLT pin is not in use this function should not be used. +//! USBnPFLT pin is not in use, this function should not be used. //! //! \note This function should only be called in host mode. //! @@ -3486,8 +3566,8 @@ USBHostPwrFaultDisable(unsigned long ulBase) //! //! \param ulBase specifies the USB module base address. //! -//! This function enables the USBEPEN signal to enable an external power supply -//! in host mode operation. +//! This function enables the USBnEPEN signal, which enables an external power +//! supply in host mode operation. //! //! \note This function should only be called in host mode. //! @@ -3514,8 +3594,8 @@ USBHostPwrEnable(unsigned long ulBase) //! //! \param ulBase specifies the USB module base address. //! -//! This function disables the USBEPEN signal to disable an external power -//! supply in host mode operation. +//! This function disables the USBnEPEN signal, which disables an external +//! power supply in host mode operation. //! //! \note This function should only be called in host mode. //! @@ -3570,7 +3650,7 @@ USBFrameNumberGet(unsigned long ulBase) //! //! This function is used in OTG mode to start a session request or end a //! session. If the \e bStart parameter is set to \b true, then this function -//! start a session and if it is \b false it will end a session. +//! starts a session and if it is \b false it ends a session. //! //! \return None. // @@ -3603,10 +3683,10 @@ USBOTGSessionRequest(unsigned long ulBase, tBoolean bStart) //! \param ulBase specifies the USB module base address. //! \param ulEndpoint specifies which endpoint's FIFO address to return. //! -//! This function returns the actual physical address of the FIFO. This is -//! needed when the USB is going to be used with the uDMA controller and the -//! source or destination address needs to be set to the physical FIFO address -//! for a given endpoint. +//! This function returns the actual physical address of the FIFO. This +//! address is needed when the USB is going to be used with the uDMA +//! controller and the source or destination address must be set to the +//! physical FIFO address for a given endpoint. //! //! \return None. // @@ -3631,7 +3711,7 @@ USBFIFOAddrGet(unsigned long ulBase, unsigned long ulEndpoint) //! //! For OTG controllers: //! -//! The function will return on of the following values on OTG controllers: +//! The function returns one of the following values on OTG controllers: //! \b USB_OTG_MODE_ASIDE_HOST, \b USB_OTG_MODE_ASIDE_DEV, //! \b USB_OTG_MODE_BSIDE_HOST, \b USB_OTG_MODE_BSIDE_DEV, //! \b USB_OTG_MODE_NONE. @@ -3646,15 +3726,15 @@ USBFIFOAddrGet(unsigned long ulBase, unsigned long ulEndpoint) //! on the B-side of the cable. //! //! \b USB_OTG_MODE_BSIDE_DEV indicates that the controller is in device mode -//! on the B-side of the cable. If and OTG session request is started with no -//! cable in place this is the default mode for the controller. +//! on the B-side of the cable. If an OTG session request is started with no +//! cable in place, this mode is the default. //! //! \b USB_OTG_MODE_NONE indicates that the controller is not attempting to //! determine its role in the system. //! //! For Dual Mode controllers: //! -//! The function will return on of the following values: +//! The function returns one of the following values: //! \b USB_DUAL_MODE_HOST, \b USB_DUAL_MODE_DEVICE, or //! \b USB_DUAL_MODE_NONE. //! @@ -3705,14 +3785,14 @@ USBModeGet(unsigned long ulBase) //! //! This function is used to configure which DMA channel to use with a given //! endpoint. Receive DMA channels can only be used with receive endpoints -//! and transmit DMA channels can only be used with transmit endpoints. This -//! allows the 3 receive and 3 transmit DMA channels to be mapped to any -//! endpoint other than 0. The values that should be passed into the \e -//! ulChannel value are the UDMA_CHANNEL_USBEP* values defined in udma.h. +//! and transmit DMA channels can only be used with transmit endpoints. As a +//! result, the 3 receive and 3 transmit DMA channels can be mapped to any +//! endpoint other than 0. The values that should be passed into the +//! \e ulChannel value are the UDMA_CHANNEL_USBEP* values defined in udma.h. //! //! \note This function only has an effect on microcontrollers that have the //! ability to change the DMA channel for an endpoint. Calling this function -//! on other devices will have no effect. +//! on other devices has no effect. //! //! \return None. //! @@ -3738,7 +3818,7 @@ USBEndpointDMAChannel(unsigned long ulBase, unsigned long ulEndpoint, ASSERT(ulChannel <= UDMA_CHANNEL_USBEP3TX); // - // The input select mask needs to be shifted into the correct position + // The input select mask must be shifted into the correct position // based on the channel. // ulMask = 0xf << (ulChannel * 4); @@ -3766,9 +3846,10 @@ USBEndpointDMAChannel(unsigned long ulBase, unsigned long ulEndpoint, //! //! \param ulBase specifies the USB module base address. //! -//! This function changes the mode of the USB controller to host mode. This -//! is only valid on microcontrollers that have the host and device -//! capabilities and not the OTG capabilities. +//! This function changes the mode of the USB controller to host mode. +//! +//! \note This function should only be called on microcontrollers that support +//! OTG operation and have the DEVMODOTG bit in the USBGPCS register. //! //! \return None. // @@ -3796,9 +3877,10 @@ USBHostMode(unsigned long ulBase) //! //! \param ulBase specifies the USB module base address. //! -//! This function changes the mode of the USB controller to device mode. This -//! is only valid on microcontrollers that have the host and device -//! capabilities and not the OTG capabilities. +//! This function changes the mode of the USB controller to device mode. +//! +//! \note This function should only be called on microcontrollers that support +//! OTG operation and have the DEVMODOTG bit in the USBGPCS register. //! //! \return None. // @@ -3817,6 +3899,79 @@ USBDevMode(unsigned long ulBase) HWREGB(ulBase + USB_O_GPCS) = USB_GPCS_DEVMODOTG | USB_GPCS_DEVMOD; } +//***************************************************************************** +// +//! Change the mode of the USB controller to OTG. +//! +//! \param ulBase specifies the USB module base address. +//! +//! This function changes the mode of the USB controller to OTG mode. This +//! function is only valid on microcontrollers that have the OTG capabilities. +//! +//! \return None. +// +//***************************************************************************** +void +USBOTGMode(unsigned long ulBase) +{ + // + // Check the arguments. + // + ASSERT(ulBase == USB0_BASE); + + // + // Disable the override of the USB controller mode when running on an OTG + // device. + // + HWREGB(ulBase + USB_O_GPCS) = 0; +} + +//***************************************************************************** +// +//! Powers off the USB PHY. +//! +//! \param ulBase specifies the USB module base address. +//! +//! This function powers off the USB PHY, reducing the current consuption +//! of the device. While in the powered-off state, the USB controller is +//! unable to operate. +//! +//! \return None. +// +//***************************************************************************** +void +USBPHYPowerOff(unsigned long ulBase) +{ + // + // Set the PWRDNPHY bit in the PHY, putting it into its low power mode. + // + HWREGB(ulBase + USB_O_POWER) |= USB_POWER_PWRDNPHY; +} + +//***************************************************************************** +// +//! Powers on the USB PHY. +//! +//! \param ulBase specifies the USB module base address. +//! +//! This function powers on the USB PHY, enabling it return to normal +//! operation. By default, the PHY is powered on, so this function should +//! only be called if USBPHYPowerOff() has previously been called. +//! +//! \return None. +// +//***************************************************************************** +void +USBPHYPowerOn(unsigned long ulBase) +{ + // + // Clear the PWRDNPHY bit in the PHY, putting it into normal operating + // mode. + // + HWREGB(ulBase + USB_O_POWER) &= ~USB_POWER_PWRDNPHY; +} + + //***************************************************************************** // // Close the Doxygen group. diff --git a/bsp/lm3s8962/Libraries/driverlib/usb.h b/bsp/lm3s8962/Libraries/driverlib/usb.h index 5c5b8638eb..66a94d0876 100644 --- a/bsp/lm3s8962/Libraries/driverlib/usb.h +++ b/bsp/lm3s8962/Libraries/driverlib/usb.h @@ -2,7 +2,7 @@ // // usb.h - Prototypes for the USB Interface Driver. // -// Copyright (c) 2007-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2007-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -152,6 +152,7 @@ extern "C" // USB_DEV_* values are used when the USB controller is in device mode. // //***************************************************************************** +#define USB_HOST_IN_STATUS 0xFFFF0000 // Mask of all host IN interrupts #define USB_HOST_IN_PID_ERROR 0x01000000 // Stall on this endpoint received #define USB_HOST_IN_NOT_COMP 0x00100000 // Device failed to respond #define USB_HOST_IN_STALL 0x00400000 // Stall on this endpoint received @@ -163,6 +164,7 @@ extern "C" // device #define USB_HOST_IN_FIFO_FULL 0x00020000 // RX FIFO full #define USB_HOST_IN_PKTRDY 0x00010000 // Data packet ready +#define USB_HOST_OUT_STATUS 0x0000FFFF // Mask of all host OUT interrupts #define USB_HOST_OUT_NAK_TO 0x00000080 // NAK received for more than the // specified timeout period #define USB_HOST_OUT_NOT_COMP 0x00000080 // No response from device @@ -474,6 +476,8 @@ extern void USBHostPwrConfig(unsigned long ulBase, unsigned long ulFlags); extern void USBHostPwrFaultDisable(unsigned long ulBase); extern void USBHostPwrFaultEnable(unsigned long ulBase); extern void USBHostRequestIN(unsigned long ulBase, unsigned long ulEndpoint); +extern void USBHostRequestINClear(unsigned long ulBase, + unsigned long ulEndpoint); extern void USBHostRequestStatus(unsigned long ulBase); extern void USBHostReset(unsigned long ulBase, tBoolean bStart); extern void USBHostResume(unsigned long ulBase, tBoolean bStart); @@ -497,8 +501,10 @@ extern void USBEndpointDMAChannel(unsigned long ulBase, unsigned long ulEndpoint, unsigned long ulChannel); extern void USBHostMode(unsigned long ulBase); -extern void USBHostMode(unsigned long ulBase); extern void USBDevMode(unsigned long ulBase); +extern void USBOTGMode(unsigned long ulBase); +extern void USBPHYPowerOff(unsigned long ulBase); +extern void USBPHYPowerOn(unsigned long ulBase); //***************************************************************************** // diff --git a/bsp/lm3s8962/Libraries/driverlib/watchdog.c b/bsp/lm3s8962/Libraries/driverlib/watchdog.c index 6e33ea52fd..b3961c9494 100644 --- a/bsp/lm3s8962/Libraries/driverlib/watchdog.c +++ b/bsp/lm3s8962/Libraries/driverlib/watchdog.c @@ -2,7 +2,7 @@ // // watchdog.c - Driver for the Watchdog Timer Module. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -43,9 +43,9 @@ //! //! \param ulBase is the base address of the watchdog timer module. //! -//! This will check to see if the watchdog timer is enabled. +//! This function checks to see if the watchdog timer is enabled. //! -//! \return Returns \b true if the watchdog timer is enabled, and \b false +//! \return Returns \b true if the watchdog timer is enabled and \b false //! if it is not. // //***************************************************************************** @@ -69,10 +69,9 @@ WatchdogRunning(unsigned long ulBase) //! //! \param ulBase is the base address of the watchdog timer module. //! -//! This will enable the watchdog timer counter and interrupt. +//! This function enables the watchdog timer counter and interrupt. //! -//! \note This function will have no effect if the watchdog timer has -//! been locked. +//! \note This function has no effect if the watchdog timer has been locked. //! //! \sa WatchdogLock(), WatchdogUnlock() //! @@ -99,12 +98,11 @@ WatchdogEnable(unsigned long ulBase) //! //! \param ulBase is the base address of the watchdog timer module. //! -//! Enables the capability of the watchdog timer to issue a reset to the -//! processor upon a second timeout condition. -//! -//! \note This function will have no effect if the watchdog timer has -//! been locked. +//! This function enables the capability of the watchdog timer to issue a reset +//! to the processor after a second timeout condition. //! +//! \note This function has no effect if the watchdog timer has been locked. +//! //! \sa WatchdogLock(), WatchdogUnlock() //! //! \return None. @@ -130,11 +128,10 @@ WatchdogResetEnable(unsigned long ulBase) //! //! \param ulBase is the base address of the watchdog timer module. //! -//! Disables the capability of the watchdog timer to issue a reset to the -//! processor upon a second timeout condition. +//! This function disables the capability of the watchdog timer to issue a +//! reset to the processor after a second timeout condition. //! -//! \note This function will have no effect if the watchdog timer has -//! been locked. +//! \note This function has no effect if the watchdog timer has been locked. //! //! \sa WatchdogLock(), WatchdogUnlock() //! @@ -161,7 +158,8 @@ WatchdogResetDisable(unsigned long ulBase) //! //! \param ulBase is the base address of the watchdog timer module. //! -//! Locks out write access to the watchdog timer configuration registers. +//! This function locks out write access to the watchdog timer configuration +//! registers. //! //! \return None. // @@ -187,7 +185,8 @@ WatchdogLock(unsigned long ulBase) //! //! \param ulBase is the base address of the watchdog timer module. //! -//! Enables write access to the watchdog timer configuration registers. +//! This function enables write access to the watchdog timer configuration +//! registers. //! //! \return None. // @@ -212,7 +211,7 @@ WatchdogUnlock(unsigned long ulBase) //! //! \param ulBase is the base address of the watchdog timer module. //! -//! Returns the lock state of the watchdog timer registers. +//! This function returns the lock state of the watchdog timer registers. //! //! \return Returns \b true if the watchdog timer registers are locked, and //! \b false if they are not locked. @@ -239,14 +238,13 @@ WatchdogLockState(unsigned long ulBase) //! \param ulBase is the base address of the watchdog timer module. //! \param ulLoadVal is the load value for the watchdog timer. //! -//! This function sets the value to load into the watchdog timer when the count -//! reaches zero for the first time; if the watchdog timer is running when this -//! function is called, then the value will be immediately loaded into the -//! watchdog timer counter. If the \e ulLoadVal parameter is 0, then an +//! This function configures the value to load into the watchdog timer when the +//! count reaches zero for the first time; if the watchdog timer is running +//! when this function is called, then the value is immediately loaded into the +//! watchdog timer counter. If the \e ulLoadVal parameter is 0, then an //! interrupt is immediately generated. //! -//! \note This function will have no effect if the watchdog timer has -//! been locked. +//! \note This function has no effect if the watchdog timer has been locked. //! //! \sa WatchdogLock(), WatchdogUnlock(), WatchdogReloadGet() //! @@ -322,21 +320,27 @@ WatchdogValueGet(unsigned long ulBase) //***************************************************************************** // -//! Registers an interrupt handler for watchdog timer interrupt. +//! Registers an interrupt handler for the watchdog timer interrupt. //! //! \param ulBase is the base address of the watchdog timer module. //! \param pfnHandler is a pointer to the function to be called when the //! watchdog timer interrupt occurs. //! //! This function does the actual registering of the interrupt handler. This -//! will enable the global interrupt in the interrupt controller; the watchdog -//! timer interrupt must be enabled via WatchdogEnable(). It is the interrupt -//! handler's responsibility to clear the interrupt source via +//! function also enables the global interrupt in the interrupt controller; the +//! watchdog timer interrupt must be enabled via WatchdogEnable(). It is the +//! interrupt handler's responsibility to clear the interrupt source via //! WatchdogIntClear(). //! //! \sa IntRegister() for important information about registering interrupt //! handlers. //! +//! \note For parts with a watchdog timer module that has the ability to +//! generate an NMI instead of a standard interrupt, this function registers +//! the standard watchdog interrupt handler. To register the NMI watchdog +//! handler, use IntRegister() to register the handler for the +//! \b FAULT_NMI interrupt. +//! //! \return None. // //***************************************************************************** @@ -366,13 +370,19 @@ WatchdogIntRegister(unsigned long ulBase, void (*pfnHandler)(void)) //! \param ulBase is the base address of the watchdog timer module. //! //! This function does the actual unregistering of the interrupt handler. This -//! function will clear the handler to be called when a watchdog timer -//! interrupt occurs. This will also mask off the interrupt in the interrupt +//! function clears the handler to be called when a watchdog timer interrupt +//! occurs. This function also masks off the interrupt in the interrupt //! controller so that the interrupt handler no longer is called. //! //! \sa IntRegister() for important information about registering interrupt //! handlers. //! +//! \note For parts with a watchdog timer module that has the ability to +//! generate an NMI instead of a standard interrupt, this function unregisters +//! the standard watchdog interrupt handler. To unregister the NMI watchdog +//! handler, use IntUnregister() to unregister the handler for the +//! \b FAULT_NMI interrupt. +//! //! \return None. // //***************************************************************************** @@ -401,10 +411,9 @@ WatchdogIntUnregister(unsigned long ulBase) //! //! \param ulBase is the base address of the watchdog timer module. //! -//! Enables the watchdog timer interrupt. +//! This function enables the watchdog timer interrupt. //! -//! \note This function will have no effect if the watchdog timer has -//! been locked. +//! \note This function has no effect if the watchdog timer has been locked. //! //! \sa WatchdogLock(), WatchdogUnlock(), WatchdogEnable() //! @@ -433,9 +442,9 @@ WatchdogIntEnable(unsigned long ulBase) //! \param bMasked is \b false if the raw interrupt status is required and //! \b true if the masked interrupt status is required. //! -//! This returns the interrupt status for the watchdog timer module. Either -//! the raw interrupt status or the status of interrupt that is allowed to -//! reflect to the processor can be returned. +//! This function returns the interrupt status for the watchdog timer module. +//! Either the raw interrupt status or the status of interrupt that is allowed +//! to reflect to the processor can be returned. //! //! \return Returns the current interrupt status, where a 1 indicates that the //! watchdog interrupt is active, and a 0 indicates that it is not active. @@ -472,14 +481,14 @@ WatchdogIntStatus(unsigned long ulBase, tBoolean bMasked) //! The watchdog timer interrupt source is cleared, so that it no longer //! asserts. //! -//! \note Since there is a write buffer in the Cortex-M3 processor, it may take -//! several clock cycles before the interrupt source is actually cleared. +//! \note Because there is a write buffer in the Cortex-M processor, it may +//! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid //! returning from the interrupt handler before the interrupt source is //! actually cleared. Failure to do so may result in the interrupt handler -//! being immediately reentered (since NVIC still sees the interrupt source -//! asserted). +//! being immediately reentered (because the interrupt controller still sees +//! the interrupt source asserted). //! //! \return None. // @@ -498,6 +507,46 @@ WatchdogIntClear(unsigned long ulBase) HWREG(ulBase + WDT_O_ICR) = WDT_INT_TIMEOUT; } +//***************************************************************************** +// +//! Sets the type of interrupt generated by the watchdog. +//! +//! \param ulBase is the base address of the watchdog timer module. +//! \param ulType is the type of interrupt to generate. +//! +//! This function sets the type of interrupt that is generated if the watchdog +//! timer expires. \e ulType can be either \b WATCHDOG_INT_TYPE_INT to +//! generate a standard interrupt (the default) or \b WATCHDOG_INT_TYPE_NMI to +//! generate a non-maskable interrupt (NMI). +//! +//! When configured to generate an NMI, the watchdog interrupt must still be +//! enabled with WatchdogIntEnable(), and it must still be cleared inside the +//! NMI handler with WatchdogIntClear(). +//! +//! \note The ability to select an NMI interrupt varies with the Stellaris part +//! in use. Please consult the datasheet for the part you are using to +//! determine whether this support is available. +//! +//! \return None. +// +//***************************************************************************** +void +WatchdogIntTypeSet(unsigned long ulBase, unsigned long ulType) +{ + // + // Check the arguments. + // + ASSERT((ulBase == WATCHDOG0_BASE) || (ulBase == WATCHDOG1_BASE)); + ASSERT((ulType == WATCHDOG_INT_TYPE_INT) || + (ulType == WATCHDOG_INT_TYPE_NMI)); + + // + // Set the interrupt type. + // + HWREG(ulBase + WDT_O_CTL) = + (HWREG(ulBase + WDT_O_CTL) & ~WDT_CTL_INTTYPE) | ulType; +} + //***************************************************************************** // //! Enables stalling of the watchdog timer during debug events. @@ -507,9 +556,9 @@ WatchdogIntClear(unsigned long ulBase) //! This function allows the watchdog timer to stop counting when the processor //! is stopped by the debugger. By doing so, the watchdog is prevented from //! expiring (typically almost immediately from a human time perspective) and -//! resetting the system (if reset is enabled). The watchdog will instead -//! expired after the appropriate number of processor cycles have been executed -//! while debugging (or at the appropriate time after the processor has been +//! resetting the system (if reset is enabled). The watchdog instead expires +//! after the appropriate number of processor cycles have been executed while +//! debugging (or at the appropriate time after the processor has been //! restarted). //! //! \return None. diff --git a/bsp/lm3s8962/Libraries/driverlib/watchdog.h b/bsp/lm3s8962/Libraries/driverlib/watchdog.h index d1c6e5cf12..5efdcdbb23 100644 --- a/bsp/lm3s8962/Libraries/driverlib/watchdog.h +++ b/bsp/lm3s8962/Libraries/driverlib/watchdog.h @@ -2,7 +2,7 @@ // // watchdog.h - Prototypes for the Watchdog Timer API // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -36,6 +36,14 @@ extern "C" { #endif +//***************************************************************************** +// +// The type of interrupt that can be generated by the watchdog. +// +//***************************************************************************** +#define WATCHDOG_INT_TYPE_INT 0x00000000 +#define WATCHDOG_INT_TYPE_NMI 0x00000004 + //***************************************************************************** // // Prototypes for the APIs. @@ -56,6 +64,7 @@ extern void WatchdogIntUnregister(unsigned long ulBase); extern void WatchdogIntEnable(unsigned long ulBase); extern unsigned long WatchdogIntStatus(unsigned long ulBase, tBoolean bMasked); extern void WatchdogIntClear(unsigned long ulBase); +extern void WatchdogIntTypeSet(unsigned long ulBase, unsigned long ulType); extern void WatchdogStallEnable(unsigned long ulBase); extern void WatchdogStallDisable(unsigned long ulBase); diff --git a/bsp/lm3s8962/Libraries/inc/asmdefs.h b/bsp/lm3s8962/Libraries/inc/asmdefs.h index 811f821078..cc9b5ef2f4 100644 --- a/bsp/lm3s8962/Libraries/inc/asmdefs.h +++ b/bsp/lm3s8962/Libraries/inc/asmdefs.h @@ -2,7 +2,7 @@ // // asmdefs.h - Macros to allow assembly code be portable among toolchains. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** diff --git a/bsp/lm3s8962/Libraries/inc/cr_project.xml b/bsp/lm3s8962/Libraries/inc/cr_project.xml deleted file mode 100644 index dec7adeb03..0000000000 --- a/bsp/lm3s8962/Libraries/inc/cr_project.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - diff --git a/bsp/lm3s8962/Libraries/inc/hw_adc.h b/bsp/lm3s8962/Libraries/inc/hw_adc.h index 8981d6a8d2..4e02573cf8 100644 --- a/bsp/lm3s8962/Libraries/inc/hw_adc.h +++ b/bsp/lm3s8962/Libraries/inc/hw_adc.h @@ -2,7 +2,7 @@ // // hw_adc.h - Macros used when accessing the ADC hardware. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** @@ -37,6 +37,7 @@ #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 @@ -55,6 +56,8 @@ #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_SSMUX1 0x00000060 // ADC Sample Sequence Input // Multiplexer Select 1 #define ADC_O_SSCTL1 0x00000064 // ADC Sample Sequence Control 1 @@ -65,6 +68,8 @@ #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_SSMUX2 0x00000080 // ADC Sample Sequence Input // Multiplexer Select 2 #define ADC_O_SSCTL2 0x00000084 // ADC Sample Sequence Control 2 @@ -75,6 +80,8 @@ #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_SSMUX3 0x000000A0 // ADC Sample Sequence Input // Multiplexer Select 3 #define ADC_O_SSCTL3 0x000000A4 // ADC Sample Sequence Control 3 @@ -85,6 +92,8 @@ #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_TMLB 0x00000100 // ADC Test Mode Loopback #define ADC_O_DCRIC 0x00000D00 // ADC Digital Comparator Reset // Initial Conditions @@ -104,6 +113,9 @@ #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 //***************************************************************************** // @@ -237,6 +249,24 @@ #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 0x03000000 // PWM Unit Select +#define ADC_TSSEL_PS3_0 0x00000000 // PWM Unit 0 +#define ADC_TSSEL_PS3_1 0x01000000 // PWM Unit 1 +#define ADC_TSSEL_PS2_M 0x00030000 // PWM Unit Select +#define ADC_TSSEL_PS2_0 0x00000000 // PWM Unit 0 +#define ADC_TSSEL_PS2_1 0x00010000 // PWM Unit 1 +#define ADC_TSSEL_PS1_M 0x00000300 // PWM Unit Select +#define ADC_TSSEL_PS1_0 0x00000000 // PWM Unit 0 +#define ADC_TSSEL_PS1_1 0x00000100 // PWM Unit 1 +#define ADC_TSSEL_PS0_M 0x00000003 // PWM Unit Select +#define ADC_TSSEL_PS0_0 0x00000000 // PWM Unit 0 +#define ADC_TSSEL_PS0_1 0x00000001 // PWM Unit 1 + //***************************************************************************** // // The following are defines for the bit fields in the ADC_O_SSPRI register. @@ -339,6 +369,19 @@ // The following are defines for the bit fields in the ADC_O_CTL register. // //***************************************************************************** +#define ADC_CTL_RES 0x00000010 // Sample Resolution +#define ADC_CTL_VREF_M 0x00000003 // Voltage Reference Select +#define ADC_CTL_VREF_INTERNAL 0x00000000 // The internal reference as the + // voltage reference +#define ADC_CTL_VREF_EXT_3V 0x00000001 // A 3.0 V external VREFA input is + // the voltage reference. The ADC + // conversion range is 0.0 V to the + // external reference value +#define ADC_CTL_VREF_EXT_1V 0x00000003 // A 1.0 V external VREFA input is + // the voltage reference. The ADC + // conversion range is 0.0 V to + // three times the external + // reference value #define ADC_CTL_VREF 0x00000001 // Voltage Reference Select //***************************************************************************** @@ -406,7 +449,7 @@ // The following are defines for the bit fields in the ADC_O_SSFIFO0 register. // //***************************************************************************** -#define ADC_SSFIFO0_DATA_M 0x000003FF // Conversion Result Data +#define ADC_SSFIFO0_DATA_M 0x00000FFF // Conversion Result Data #define ADC_SSFIFO0_DATA_S 0 //***************************************************************************** @@ -472,6 +515,28 @@ #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. @@ -513,7 +578,7 @@ // The following are defines for the bit fields in the ADC_O_SSFIFO1 register. // //***************************************************************************** -#define ADC_SSFIFO1_DATA_M 0x000003FF // Conversion Result Data +#define ADC_SSFIFO1_DATA_M 0x00000FFF // Conversion Result Data #define ADC_SSFIFO1_DATA_S 0 //***************************************************************************** @@ -559,6 +624,20 @@ #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. @@ -600,7 +679,7 @@ // The following are defines for the bit fields in the ADC_O_SSFIFO2 register. // //***************************************************************************** -#define ADC_SSFIFO2_DATA_M 0x000003FF // Conversion Result Data +#define ADC_SSFIFO2_DATA_M 0x00000FFF // Conversion Result Data #define ADC_SSFIFO2_DATA_S 0 //***************************************************************************** @@ -646,6 +725,20 @@ #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. @@ -669,7 +762,7 @@ // The following are defines for the bit fields in the ADC_O_SSFIFO3 register. // //***************************************************************************** -#define ADC_SSFIFO3_DATA_M 0x000003FF // Conversion Result Data +#define ADC_SSFIFO3_DATA_M 0x00000FFF // Conversion Result Data #define ADC_SSFIFO3_DATA_S 0 //***************************************************************************** @@ -700,6 +793,14 @@ #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_TMLB register. @@ -942,8 +1043,8 @@ // The following are defines for the bit fields in the ADC_O_DCCMP0 register. // //***************************************************************************** -#define ADC_DCCMP0_COMP1_M 0x03FF0000 // Compare 1 -#define ADC_DCCMP0_COMP0_M 0x000003FF // Compare 0 +#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 @@ -952,8 +1053,8 @@ // The following are defines for the bit fields in the ADC_O_DCCMP1 register. // //***************************************************************************** -#define ADC_DCCMP1_COMP1_M 0x03FF0000 // Compare 1 -#define ADC_DCCMP1_COMP0_M 0x000003FF // Compare 0 +#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 @@ -962,8 +1063,8 @@ // The following are defines for the bit fields in the ADC_O_DCCMP2 register. // //***************************************************************************** -#define ADC_DCCMP2_COMP1_M 0x03FF0000 // Compare 1 -#define ADC_DCCMP2_COMP0_M 0x000003FF // Compare 0 +#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 @@ -972,8 +1073,8 @@ // The following are defines for the bit fields in the ADC_O_DCCMP3 register. // //***************************************************************************** -#define ADC_DCCMP3_COMP1_M 0x03FF0000 // Compare 1 -#define ADC_DCCMP3_COMP0_M 0x000003FF // Compare 0 +#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 @@ -982,8 +1083,8 @@ // The following are defines for the bit fields in the ADC_O_DCCMP4 register. // //***************************************************************************** -#define ADC_DCCMP4_COMP1_M 0x03FF0000 // Compare 1 -#define ADC_DCCMP4_COMP0_M 0x000003FF // Compare 0 +#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 @@ -992,8 +1093,8 @@ // The following are defines for the bit fields in the ADC_O_DCCMP5 register. // //***************************************************************************** -#define ADC_DCCMP5_COMP1_M 0x03FF0000 // Compare 1 -#define ADC_DCCMP5_COMP0_M 0x000003FF // Compare 0 +#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 @@ -1002,8 +1103,8 @@ // The following are defines for the bit fields in the ADC_O_DCCMP6 register. // //***************************************************************************** -#define ADC_DCCMP6_COMP1_M 0x03FF0000 // Compare 1 -#define ADC_DCCMP6_COMP0_M 0x000003FF // Compare 0 +#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 @@ -1012,11 +1113,54 @@ // The following are defines for the bit fields in the ADC_O_DCCMP7 register. // //***************************************************************************** -#define ADC_DCCMP7_COMP1_M 0x03FF0000 // Compare 1 -#define ADC_DCCMP7_COMP0_M 0x000003FF // Compare 0 +#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 // Either the system clock (if the + // PLL bypass is in effect) or the + // 16 MHz clock derived from PLL / + // 25 (default) +#define ADC_CC_CS_PIOSC 0x00000001 // PIOSC + //***************************************************************************** // // The following are defines for the the interpretation of the data in the diff --git a/bsp/lm3s8962/Libraries/inc/hw_can.h b/bsp/lm3s8962/Libraries/inc/hw_can.h index c4bdc08f0f..c1b3ae9a7c 100644 --- a/bsp/lm3s8962/Libraries/inc/hw_can.h +++ b/bsp/lm3s8962/Libraries/inc/hw_can.h @@ -2,7 +2,7 @@ // // hw_can.h - Defines and macros used when accessing the CAN controllers. // -// Copyright (c) 2006-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2006-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** diff --git a/bsp/lm3s8962/Libraries/inc/hw_comp.h b/bsp/lm3s8962/Libraries/inc/hw_comp.h index 34d42dbb42..18e3b8262a 100644 --- a/bsp/lm3s8962/Libraries/inc/hw_comp.h +++ b/bsp/lm3s8962/Libraries/inc/hw_comp.h @@ -2,7 +2,7 @@ // // hw_comp.h - Macros used when accessing the comparator hardware. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** @@ -44,6 +44,8 @@ #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 //***************************************************************************** // @@ -182,6 +184,18 @@ #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 definitions are deprecated. diff --git a/bsp/lm3s8962/Libraries/inc/hw_eeprom.h b/bsp/lm3s8962/Libraries/inc/hw_eeprom.h new file mode 100644 index 0000000000..6428bdecc8 --- /dev/null +++ b/bsp/lm3s8962/Libraries/inc/hw_eeprom.h @@ -0,0 +1,206 @@ +//***************************************************************************** +// +// hw_eeprom.h - Macros used when accessing the EEPROM controller. +// +// Copyright (c) 2011 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 8264 of the Stellaris 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_EEHIDE 0x400AF050 // EEPROM Block Hide +#define EEPROM_EEDBGME 0x400AF080 // EEPROM Debug Mass Erase +#define EEPROM_EEPROMPP 0x400AFFC0 // EEPROM + +//***************************************************************************** +// +// 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 +#define EEPROM_EEDONE_INVPL 0x00000100 // Invalid Program Voltage Level + +//***************************************************************************** +// +// The following are defines for the bit fields in the EEPROM_EESUPP register. +// +//***************************************************************************** +#define EEPROM_EESUPP_START 0x00000001 // Start Erase +#define EEPROM_EESUPP_EREQ 0x00000002 // Erase Required +#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_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_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_EEPROMPP +// register. +// +//***************************************************************************** +#define EEPROM_EEPROMPP_SIZE_M 0x0000001F // EEPROM Size +#define EEPROM_EEPROMPP_SIZE_S 0 + +#endif // __HW_EEPROM_H__ diff --git a/bsp/lm3s8962/Libraries/inc/hw_epi.h b/bsp/lm3s8962/Libraries/inc/hw_epi.h index c434b84622..ab7d076ca2 100644 --- a/bsp/lm3s8962/Libraries/inc/hw_epi.h +++ b/bsp/lm3s8962/Libraries/inc/hw_epi.h @@ -2,7 +2,7 @@ // // hw_epi.h - Macros for use in accessing the EPI registers. // -// Copyright (c) 2008-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2008-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** @@ -206,6 +206,18 @@ #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_WRWS_M 0x000000C0 // CS1n Write Wait States +#define EPI_HB8CFG2_WRWS_0 0x00000000 // No wait states +#define EPI_HB8CFG2_WRWS_1 0x00000040 // 1 wait state +#define EPI_HB8CFG2_WRWS_2 0x00000080 // 2 wait states +#define EPI_HB8CFG2_WRWS_3 0x000000C0 // 3 wait states +#define EPI_HB8CFG2_RDWS_M 0x00000030 // CS1n Read Wait States +#define EPI_HB8CFG2_RDWS_0 0x00000000 // No wait states +#define EPI_HB8CFG2_RDWS_1 0x00000010 // 1 wait state +#define EPI_HB8CFG2_RDWS_2 0x00000020 // 2 wait states +#define EPI_HB8CFG2_RDWS_3 0x00000030 // 3 wait states //***************************************************************************** // @@ -219,6 +231,18 @@ #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_WRWS_M 0x000000C0 // CS1n Write Wait States +#define EPI_HB16CFG2_WRWS_0 0x00000000 // No wait states +#define EPI_HB16CFG2_WRWS_1 0x00000040 // 1 wait state +#define EPI_HB16CFG2_WRWS_2 0x00000080 // 2 wait states +#define EPI_HB16CFG2_WRWS_3 0x000000C0 // 3 wait states +#define EPI_HB16CFG2_RDWS_M 0x00000030 // CS1n Read Wait States +#define EPI_HB16CFG2_RDWS_0 0x00000000 // No wait states +#define EPI_HB16CFG2_RDWS_1 0x00000010 // 1 wait state +#define EPI_HB16CFG2_RDWS_2 0x00000020 // 2 wait states +#define EPI_HB16CFG2_RDWS_3 0x00000030 // 3 wait states //***************************************************************************** // diff --git a/bsp/lm3s8962/Libraries/inc/hw_ethernet.h b/bsp/lm3s8962/Libraries/inc/hw_ethernet.h index 80ba508547..91da8867c1 100644 --- a/bsp/lm3s8962/Libraries/inc/hw_ethernet.h +++ b/bsp/lm3s8962/Libraries/inc/hw_ethernet.h @@ -2,7 +2,7 @@ // // hw_ethernet.h - Macros used when accessing the Ethernet hardware. // -// Copyright (c) 2006-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2006-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** @@ -45,6 +45,7 @@ #define MAC_O_THR 0x0000001C // Ethernet MAC Threshold #define MAC_O_MCTL 0x00000020 // Ethernet MAC Management Control #define MAC_O_MDV 0x00000024 // Ethernet MAC Management Divider +#define MAC_O_MADD 0x00000028 // Ethernet MAC Management Address #define MAC_O_MTXD 0x0000002C // Ethernet MAC Management Transmit // Data #define MAC_O_MRXD 0x00000030 // Ethernet MAC Management Receive @@ -176,6 +177,14 @@ #define MAC_MDV_DIV_M 0x000000FF // Clock Divider #define MAC_MDV_DIV_S 0 +//***************************************************************************** +// +// The following are defines for the bit fields in the MAC_O_MADD register. +// +//***************************************************************************** +#define MAC_MADD_PHYADR_M 0x0000001F // PHY Address +#define MAC_MADD_PHYADR_S 0 + //***************************************************************************** // // The following are defines for the bit fields in the MAC_O_MTXD register. diff --git a/bsp/lm3s8962/Libraries/inc/hw_fan.h b/bsp/lm3s8962/Libraries/inc/hw_fan.h new file mode 100644 index 0000000000..22f9f05553 --- /dev/null +++ b/bsp/lm3s8962/Libraries/inc/hw_fan.h @@ -0,0 +1,636 @@ +//***************************************************************************** +// +// hw_fan.h - Macros used when accessing the fan control hardware. +// +// Copyright (c) 2010-2011 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 8264 of the Stellaris Firmware Development Package. +// +//***************************************************************************** + +#ifndef __HW_FAN_H__ +#define __HW_FAN_H__ + +//***************************************************************************** +// +// The following are defines for the Fan Control register offsets. +// +//***************************************************************************** +#define FAN_O_STS 0x00000000 // FAN Status +#define FAN_O_CTL 0x00000004 // FAN Control +#define FAN_O_CH0 0x00000010 // FAN Channel Command +#define FAN_O_CMD0 0x00000014 // FAN Channel Command +#define FAN_O_CST0 0x00000018 // FAN Channel Status +#define FAN_O_CH1 0x00000020 // FAN Channel Setup +#define FAN_O_CMD1 0x00000024 // FAN Channel Command +#define FAN_O_CST1 0x00000028 // FAN Channel Status +#define FAN_O_CH2 0x00000030 // FAN Channel Setup +#define FAN_O_CMD2 0x00000034 // FAN Channel Command +#define FAN_O_CST2 0x00000038 // FAN Channel Status +#define FAN_O_CH3 0x00000040 // FAN Channel Setup +#define FAN_O_CMD3 0x00000044 // FAN Channel Command +#define FAN_O_CST3 0x00000048 // FAN Channel Status +#define FAN_O_CH4 0x00000050 // FAN Channel Setup +#define FAN_O_CMD4 0x00000054 // FAN Channel Command +#define FAN_O_CST4 0x00000058 // FAN Channel Status +#define FAN_O_CH5 0x00000060 // FAN Channel Setup +#define FAN_O_CMD5 0x00000064 // FAN Channel Command +#define FAN_O_CST5 0x00000068 // FAN Channel Status +#define FAN_O_CH6 0x00000070 // FAN Channel Setup +#define FAN_O_CMD6 0x00000074 // FAN Channel Command +#define FAN_O_CST6 0x00000078 // FAN Channel Status +#define FAN_O_CH7 0x00000080 // FAN Channel Setup +#define FAN_O_CMD7 0x00000084 // FAN Channel Command +#define FAN_O_CST7 0x00000088 // FAN Channel Status +#define FAN_O_IM 0x00000090 // FAN Interrupt Mask +#define FAN_O_RIS 0x00000094 // FAN Raw Interrupt Status +#define FAN_O_MIS 0x00000098 // FAN Masked Interrupt Status +#define FAN_O_IC 0x0000009C // FAN Interrupt Clear +#define FAN_O_PP 0x00000FC0 // FAN Peripheral Properties + +//***************************************************************************** +// +// The following are defines for the bit fields in the FAN_O_STS register. +// +//***************************************************************************** +#define FAN_STS_FANCNT_M 0x000F0000 // Fan Count +#define FAN_STS_ST5_M 0x00000C00 // Fan 5 Status +#define FAN_STS_ST5_STALLED 0x00000000 // Stalled +#define FAN_STS_ST5_CHANGING 0x00000400 // Changing +#define FAN_STS_ST5_LOCKED 0x00000800 // Locked +#define FAN_STS_ST5_UNBALANCED 0x00000C00 // Unbalanced Spin +#define FAN_STS_ST4_M 0x00000300 // Fan 4 Status +#define FAN_STS_ST3_M 0x000000C0 // Fan 3 Status +#define FAN_STS_ST2_M 0x00000030 // Fan 2 Status +#define FAN_STS_ST1_M 0x0000000C // Fan 1 Status +#define FAN_STS_ST0_M 0x00000003 // Fan 0 Status +#define FAN_STS_FANCNT_S 16 +#define FAN_STS_ST4_S 8 +#define FAN_STS_ST3_S 6 +#define FAN_STS_ST2_S 4 +#define FAN_STS_ST1_S 2 +#define FAN_STS_ST0_S 0 + +//***************************************************************************** +// +// The following are defines for the bit fields in the FAN_O_CTL register. +// +//***************************************************************************** +#define FAN_CTL_E5 0x00000020 // Fan 5 Enable +#define FAN_CTL_E4 0x00000010 // Fan 4 Enable +#define FAN_CTL_E3 0x00000008 // Fan 3 Enable +#define FAN_CTL_E2 0x00000004 // Fan 2 Enable +#define FAN_CTL_E1 0x00000002 // Fan 1 Enable +#define FAN_CTL_E0 0x00000001 // Fan 0 Enable + +//***************************************************************************** +// +// The following are defines for the bit fields in the FAN_O_CH0 register. +// +//***************************************************************************** +#define FAN_CH0_ASTART 0x00008000 // Auto Restart +#define FAN_CH0_ACCEL 0x00004000 // Acceleration and Deceleration + // Rule +#define FAN_CH0_HYST_M 0x00003800 // Hysteresis Adjustment on PID + // Adjust +#define FAN_CH0_STPER_M 0x00000700 // Start Period +#define FAN_CH0_START_M 0x000000C0 // Fast Start Rule +#define FAN_CH0_START_NOFAST 0x00000000 // No fast start +#define FAN_CH0_START_50DC 0x00000040 // 50% duty cycle +#define FAN_CH0_START_75DC 0x00000080 // 75% duty cycle +#define FAN_CH0_START_100DC 0x000000C0 // 100% duty cycle +#define FAN_CH0_AVG_M 0x00000030 // Averaging of Tachometer +#define FAN_CH0_AVG_0 0x00000000 // No averaging +#define FAN_CH0_AVG_2 0x00000010 // Average 2 edges +#define FAN_CH0_AVG_4 0x00000020 // Average 4 edges +#define FAN_CH0_AVG_8 0x00000030 // Average 8 edges +#define FAN_CH0_PPR_M 0x0000000C // Pulse per Revolution on + // Tachometer +#define FAN_CH0_PPR_1 0x00000000 // 1 pulse per revolution +#define FAN_CH0_PPR_2 0x00000004 // 2 pulses per revolution +#define FAN_CH0_PPR_4 0x00000008 // 4 pulses per revolution +#define FAN_CH0_PPR_8 0x0000000C // 8 pulses per revolution +#define FAN_CH0_MAN 0x00000001 // Control Type +#define FAN_CH0_HYST_S 11 +#define FAN_CH0_STPER_S 8 + +//***************************************************************************** +// +// The following are defines for the bit fields in the FAN_O_CMD0 register. +// +//***************************************************************************** +#define FAN_CMD0_DC_M 0x01FF0000 // PWM Duty Cycle +#define FAN_CMD0_RPM_M 0x00001FFF // Fan Speed (in RPM) +#define FAN_CMD0_DC_S 16 +#define FAN_CMD0_RPM_S 0 + +//***************************************************************************** +// +// The following are defines for the bit fields in the FAN_O_CST0 register. +// +//***************************************************************************** +#define FAN_CST0_COUNT_M 0x07FF0000 // Last Read Tachometer Count +#define FAN_CST0_RPM_M 0x00001FFF // Last Read RPM Speed Computed +#define FAN_CST0_COUNT_S 16 +#define FAN_CST0_RPM_S 0 + +//***************************************************************************** +// +// The following are defines for the bit fields in the FAN_O_CH1 register. +// +//***************************************************************************** +#define FAN_CH1_ASTART 0x00008000 // Auto Restart +#define FAN_CH1_ACCEL 0x00004000 // Acceleration and Deceleration + // Rule +#define FAN_CH1_HYST_M 0x00003800 // Hysteresis Adjustment on PID + // Adjust +#define FAN_CH1_STPER_M 0x00000700 // Start Period +#define FAN_CH1_START_M 0x000000C0 // Fast Start Rule +#define FAN_CH1_START_NOFAST 0x00000000 // No fast start +#define FAN_CH1_START_50DC 0x00000040 // 50% duty cycle +#define FAN_CH1_START_75DC 0x00000080 // 75% duty cycle +#define FAN_CH1_START_100DC 0x000000C0 // 100% duty cycle +#define FAN_CH1_AVG_M 0x00000030 // Averaging of Tachometer +#define FAN_CH1_AVG_0 0x00000000 // No averaging +#define FAN_CH1_AVG_2 0x00000010 // Average 2 edges +#define FAN_CH1_AVG_4 0x00000020 // Average 4 edges +#define FAN_CH1_AVG_8 0x00000030 // Average 8 edges +#define FAN_CH1_PPR_M 0x0000000C // Pulse per Revolution on + // Tachometer +#define FAN_CH1_PPR_1 0x00000000 // 1 pulse per revolution +#define FAN_CH1_PPR_2 0x00000004 // 2 pulses per revolution +#define FAN_CH1_PPR_4 0x00000008 // 4 pulses per revolution +#define FAN_CH1_PPR_8 0x0000000C // 8 pulses per revolution +#define FAN_CH1_MAN 0x00000001 // Control Type +#define FAN_CH1_HYST_S 11 +#define FAN_CH1_STPER_S 8 + +//***************************************************************************** +// +// The following are defines for the bit fields in the FAN_O_CMD1 register. +// +//***************************************************************************** +#define FAN_CMD1_DC_M 0x01FF0000 // PWM Duty Cycle +#define FAN_CMD1_RPM_M 0x00001FFF // Fan Speed (in RPM) +#define FAN_CMD1_DC_S 16 +#define FAN_CMD1_RPM_S 0 + +//***************************************************************************** +// +// The following are defines for the bit fields in the FAN_O_CST1 register. +// +//***************************************************************************** +#define FAN_CST1_COUNT_M 0x07FF0000 // Last Read Tachometer Count +#define FAN_CST1_RPM_M 0x00001FFF // Last Read RPM Speed Computed +#define FAN_CST1_COUNT_S 16 +#define FAN_CST1_RPM_S 0 + +//***************************************************************************** +// +// The following are defines for the bit fields in the FAN_O_CH2 register. +// +//***************************************************************************** +#define FAN_CH2_ASTART 0x00008000 // Auto Restart +#define FAN_CH2_ACCEL 0x00004000 // Acceleration and Deceleration + // Rule +#define FAN_CH2_HYST_M 0x00003800 // Hysteresis Adjustment on PID + // Adjust +#define FAN_CH2_STPER_M 0x00000700 // Start Period +#define FAN_CH2_START_M 0x000000C0 // Fast Start Rule +#define FAN_CH2_START_NOFAST 0x00000000 // No fast start +#define FAN_CH2_START_50DC 0x00000040 // 50% duty cycle +#define FAN_CH2_START_75DC 0x00000080 // 75% duty cycle +#define FAN_CH2_START_100DC 0x000000C0 // 100% duty cycle +#define FAN_CH2_AVG_M 0x00000030 // Averaging of Tachometer +#define FAN_CH2_AVG_0 0x00000000 // No averaging +#define FAN_CH2_AVG_2 0x00000010 // Average 2 edges +#define FAN_CH2_AVG_4 0x00000020 // Average 4 edges +#define FAN_CH2_AVG_8 0x00000030 // Average 8 edges +#define FAN_CH2_PPR_M 0x0000000C // Pulse per Revolution on + // Tachometer +#define FAN_CH2_PPR_1 0x00000000 // 1 pulse per revolution +#define FAN_CH2_PPR_2 0x00000004 // 2 pulses per revolution +#define FAN_CH2_PPR_4 0x00000008 // 4 pulses per revolution +#define FAN_CH2_PPR_8 0x0000000C // 8 pulses per revolution +#define FAN_CH2_MAN 0x00000001 // Control Type +#define FAN_CH2_HYST_S 11 +#define FAN_CH2_STPER_S 8 + +//***************************************************************************** +// +// The following are defines for the bit fields in the FAN_O_CMD2 register. +// +//***************************************************************************** +#define FAN_CMD2_DC_M 0x01FF0000 // PWM Duty Cycle +#define FAN_CMD2_RPM_M 0x00001FFF // Fan Speed (in RPM) +#define FAN_CMD2_DC_S 16 +#define FAN_CMD2_RPM_S 0 + +//***************************************************************************** +// +// The following are defines for the bit fields in the FAN_O_CST2 register. +// +//***************************************************************************** +#define FAN_CST2_COUNT_M 0x07FF0000 // Last Read Tachometer Count +#define FAN_CST2_RPM_M 0x00001FFF // Last Read RPM Speed Computed +#define FAN_CST2_COUNT_S 16 +#define FAN_CST2_RPM_S 0 + +//***************************************************************************** +// +// The following are defines for the bit fields in the FAN_O_CH3 register. +// +//***************************************************************************** +#define FAN_CH3_ASTART 0x00008000 // Auto Restart +#define FAN_CH3_ACCEL 0x00004000 // Acceleration and Deceleration + // Rule +#define FAN_CH3_HYST_M 0x00003800 // Hysteresis Adjustment on PID + // Adjust +#define FAN_CH3_STPER_M 0x00000700 // Start Period +#define FAN_CH3_START_M 0x000000C0 // Fast Start Rule +#define FAN_CH3_START_NOFAST 0x00000000 // No fast start +#define FAN_CH3_START_50DC 0x00000040 // 50% duty cycle +#define FAN_CH3_START_75DC 0x00000080 // 75% duty cycle +#define FAN_CH3_START_100DC 0x000000C0 // 100% duty cycle +#define FAN_CH3_AVG_M 0x00000030 // Averaging of Tachometer +#define FAN_CH3_AVG_0 0x00000000 // No averaging +#define FAN_CH3_AVG_2 0x00000010 // Average 2 edges +#define FAN_CH3_AVG_4 0x00000020 // Average 4 edges +#define FAN_CH3_AVG_8 0x00000030 // Average 8 edges +#define FAN_CH3_PPR_M 0x0000000C // Pulse per Revolution on + // Tachometer +#define FAN_CH3_PPR_1 0x00000000 // 1 pulse per revolution +#define FAN_CH3_PPR_2 0x00000004 // 2 pulses per revolution +#define FAN_CH3_PPR_4 0x00000008 // 4 pulses per revolution +#define FAN_CH3_PPR_8 0x0000000C // 8 pulses per revolution +#define FAN_CH3_MAN 0x00000001 // Control Type +#define FAN_CH3_HYST_S 11 +#define FAN_CH3_STPER_S 8 + +//***************************************************************************** +// +// The following are defines for the bit fields in the FAN_O_CMD3 register. +// +//***************************************************************************** +#define FAN_CMD3_DC_M 0x01FF0000 // PWM Duty Cycle +#define FAN_CMD3_RPM_M 0x00001FFF // Fan Speed (in RPM) +#define FAN_CMD3_DC_S 16 +#define FAN_CMD3_RPM_S 0 + +//***************************************************************************** +// +// The following are defines for the bit fields in the FAN_O_CST3 register. +// +//***************************************************************************** +#define FAN_CST3_COUNT_M 0x07FF0000 // Last Read Tachometer Count +#define FAN_CST3_RPM_M 0x00001FFF // Last Read RPM Speed Computed +#define FAN_CST3_COUNT_S 16 +#define FAN_CST3_RPM_S 0 + +//***************************************************************************** +// +// The following are defines for the bit fields in the FAN_O_CH4 register. +// +//***************************************************************************** +#define FAN_CH4_ASTART 0x00008000 // Auto Restart +#define FAN_CH4_ACCEL 0x00004000 // Acceleration and Deceleration + // Rule +#define FAN_CH4_HYST_M 0x00003800 // Hysteresis Adjustment on PID + // Adjust +#define FAN_CH4_STPER_M 0x00000700 // Start Period +#define FAN_CH4_START_M 0x000000C0 // Fast Start Rule +#define FAN_CH4_START_NOFAST 0x00000000 // No fast start +#define FAN_CH4_START_50DC 0x00000040 // 50% duty cycle +#define FAN_CH4_START_75DC 0x00000080 // 75% duty cycle +#define FAN_CH4_START_100DC 0x000000C0 // 100% duty cycle +#define FAN_CH4_AVG_M 0x00000030 // Averaging of Tachometer +#define FAN_CH4_AVG_0 0x00000000 // No averaging +#define FAN_CH4_AVG_2 0x00000010 // Average 2 edges +#define FAN_CH4_AVG_4 0x00000020 // Average 4 edges +#define FAN_CH4_AVG_8 0x00000030 // Average 8 edges +#define FAN_CH4_PPR_M 0x0000000C // Pulse per Revolution on + // Tachometer +#define FAN_CH4_PPR_1 0x00000000 // 1 pulse per revolution +#define FAN_CH4_PPR_2 0x00000004 // 2 pulses per revolution +#define FAN_CH4_PPR_4 0x00000008 // 4 pulses per revolution +#define FAN_CH4_PPR_8 0x0000000C // 8 pulses per revolution +#define FAN_CH4_MAN 0x00000001 // Control Type +#define FAN_CH4_HYST_S 11 +#define FAN_CH4_STPER_S 8 + +//***************************************************************************** +// +// The following are defines for the bit fields in the FAN_O_CMD4 register. +// +//***************************************************************************** +#define FAN_CMD4_DC_M 0x01FF0000 // PWM Duty Cycle +#define FAN_CMD4_RPM_M 0x00001FFF // Fan Speed (in RPM) +#define FAN_CMD4_DC_S 16 +#define FAN_CMD4_RPM_S 0 + +//***************************************************************************** +// +// The following are defines for the bit fields in the FAN_O_CST4 register. +// +//***************************************************************************** +#define FAN_CST4_COUNT_M 0x07FF0000 // Last Read Tachometer Count +#define FAN_CST4_RPM_M 0x00001FFF // Last Read RPM Speed Computed +#define FAN_CST4_COUNT_S 16 +#define FAN_CST4_RPM_S 0 + +//***************************************************************************** +// +// The following are defines for the bit fields in the FAN_O_CH5 register. +// +//***************************************************************************** +#define FAN_CH5_ASTART 0x00008000 // Auto Restart +#define FAN_CH5_ACCEL 0x00004000 // Acceleration and Deceleration + // Rule +#define FAN_CH5_HYST_M 0x00003800 // Hysteresis Adjustment on PID + // Adjust +#define FAN_CH5_STPER_M 0x00000700 // Start Period +#define FAN_CH5_START_M 0x000000C0 // Fast Start Rule +#define FAN_CH5_START_NOFAST 0x00000000 // No fast start +#define FAN_CH5_START_50DC 0x00000040 // 50% duty cycle +#define FAN_CH5_START_75DC 0x00000080 // 75% duty cycle +#define FAN_CH5_START_100DC 0x000000C0 // 100% duty cycle +#define FAN_CH5_AVG_M 0x00000030 // Averaging of Tachometer +#define FAN_CH5_AVG_0 0x00000000 // No averaging +#define FAN_CH5_AVG_2 0x00000010 // Average 2 edges +#define FAN_CH5_AVG_4 0x00000020 // Average 4 edges +#define FAN_CH5_AVG_8 0x00000030 // Average 8 edges +#define FAN_CH5_PPR_M 0x0000000C // Pulse per Revolution on + // Tachometer +#define FAN_CH5_PPR_1 0x00000000 // 1 pulse per revolution +#define FAN_CH5_PPR_2 0x00000004 // 2 pulses per revolution +#define FAN_CH5_PPR_4 0x00000008 // 4 pulses per revolution +#define FAN_CH5_PPR_8 0x0000000C // 8 pulses per revolution +#define FAN_CH5_MAN 0x00000001 // Control Type +#define FAN_CH5_HYST_S 11 +#define FAN_CH5_STPER_S 8 + +//***************************************************************************** +// +// The following are defines for the bit fields in the FAN_O_CMD5 register. +// +//***************************************************************************** +#define FAN_CMD5_DC_M 0x01FF0000 // PWM Duty Cycle +#define FAN_CMD5_RPM_M 0x00001FFF // Fan Speed (in RPM) +#define FAN_CMD5_DC_S 16 +#define FAN_CMD5_RPM_S 0 + +//***************************************************************************** +// +// The following are defines for the bit fields in the FAN_O_CST5 register. +// +//***************************************************************************** +#define FAN_CST5_COUNT_M 0x07FF0000 // Last Read Tachometer Count +#define FAN_CST5_RPM_M 0x00001FFF // Last Read RPM Speed Computed +#define FAN_CST5_COUNT_S 16 +#define FAN_CST5_RPM_S 0 + +//***************************************************************************** +// +// The following are defines for the bit fields in the FAN_O_CH6 register. +// +//***************************************************************************** +#define FAN_CH6_MAN 0x00000001 // Control Type +#define FAN_CH6_PPR_M 0x0000000C // Pulse per Revolution on + // Tachometer +#define FAN_CH6_PPR_1 0x00000000 // 1 pulse per revolution +#define FAN_CH6_PPR_2 0x00000004 // 2 pulses per revolution +#define FAN_CH6_PPR_4 0x00000008 // 4 pulses per revolution +#define FAN_CH6_PPR_8 0x0000000C // 8 pulses per revolution +#define FAN_CH6_AVG_M 0x00000030 // Averaging of Tachometer +#define FAN_CH6_AVG_0 0x00000000 // No averaging +#define FAN_CH6_AVG_2 0x00000010 // Average 2 edges +#define FAN_CH6_AVG_4 0x00000020 // Average 4 edges +#define FAN_CH6_AVG_8 0x00000030 // Average 8 edges +#define FAN_CH6_START_M 0x000000C0 // Fast Start Rule +#define FAN_CH6_START_NOFAST 0x00000000 // No fast start +#define FAN_CH6_START_50DC 0x00000040 // 50% duty cycle +#define FAN_CH6_START_75DC 0x00000080 // 75% duty cycle +#define FAN_CH6_START_100DC 0x000000C0 // 100% duty cycle +#define FAN_CH6_STPER_M 0x00000700 // Start Period +#define FAN_CH6_HYST_M 0x00003800 // Hysteresis Adjustment on PID + // Adjust +#define FAN_CH6_ACCEL 0x00004000 // Acceleration and Deceleration + // Rule +#define FAN_CH6_ASTART 0x00008000 // Auto Restart +#define FAN_CH6_STPER_S 8 +#define FAN_CH6_HYST_S 11 + +//***************************************************************************** +// +// The following are defines for the bit fields in the FAN_O_CMD6 register. +// +//***************************************************************************** +#define FAN_CMD6_RPM_M 0x00001FFF // Fan Speed (in RPM) +#define FAN_CMD6_DC_M 0x01FF0000 // PWM Duty Cycle +#define FAN_CMD6_RPM_S 0 +#define FAN_CMD6_DC_S 16 + +//***************************************************************************** +// +// The following are defines for the bit fields in the FAN_O_CST6 register. +// +//***************************************************************************** +#define FAN_CST6_RPM_M 0x00001FFF // Last Read RPM Speed Computed +#define FAN_CST6_COUNT_M 0x07FF0000 // Last Read Tachometer Count +#define FAN_CST6_RPM_S 0 +#define FAN_CST6_COUNT_S 16 + +//***************************************************************************** +// +// The following are defines for the bit fields in the FAN_O_CH7 register. +// +//***************************************************************************** +#define FAN_CH7_MAN 0x00000001 // Control Type +#define FAN_CH7_PPR_M 0x0000000C // Pulse per Revolution on + // Tachometer +#define FAN_CH7_PPR_1 0x00000000 // 1 pulse per revolution +#define FAN_CH7_PPR_2 0x00000004 // 2 pulses per revolution +#define FAN_CH7_PPR_4 0x00000008 // 4 pulses per revolution +#define FAN_CH7_PPR_8 0x0000000C // 8 pulses per revolution +#define FAN_CH7_AVG_M 0x00000030 // Averaging of Tachometer +#define FAN_CH7_AVG_0 0x00000000 // No averaging +#define FAN_CH7_AVG_2 0x00000010 // Average 2 edges +#define FAN_CH7_AVG_4 0x00000020 // Average 4 edges +#define FAN_CH7_AVG_8 0x00000030 // Average 8 edges +#define FAN_CH7_START_M 0x000000C0 // Fast Start Rule +#define FAN_CH7_START_NOFAST 0x00000000 // No fast start +#define FAN_CH7_START_50DC 0x00000040 // 50% duty cycle +#define FAN_CH7_START_75DC 0x00000080 // 75% duty cycle +#define FAN_CH7_START_100DC 0x000000C0 // 100% duty cycle +#define FAN_CH7_STPER_M 0x00000700 // Start Period +#define FAN_CH7_HYST_M 0x00003800 // Hysteresis Adjustment on PID + // Adjust +#define FAN_CH7_ACCEL 0x00004000 // Acceleration and Deceleration + // Rule +#define FAN_CH7_ASTART 0x00008000 // Auto Restart +#define FAN_CH7_STPER_S 8 +#define FAN_CH7_HYST_S 11 + +//***************************************************************************** +// +// The following are defines for the bit fields in the FAN_O_CMD7 register. +// +//***************************************************************************** +#define FAN_CMD7_RPM_M 0x00001FFF // Fan Speed (in RPM) +#define FAN_CMD7_DC_M 0x01FF0000 // PWM Duty Cycle +#define FAN_CMD7_RPM_S 0 +#define FAN_CMD7_DC_S 16 + +//***************************************************************************** +// +// The following are defines for the bit fields in the FAN_O_CST7 register. +// +//***************************************************************************** +#define FAN_CST7_RPM_M 0x00001FFF // Last Read RPM Speed Computed +#define FAN_CST7_COUNT_M 0x07FF0000 // Last Read Tachometer Count +#define FAN_CST7_RPM_S 0 +#define FAN_CST7_COUNT_S 16 + +//***************************************************************************** +// +// The following are defines for the bit fields in the FAN_O_IM register. +// +//***************************************************************************** +#define FAN_IM_C5INT1IM 0x00400000 // Channel 5 Interrupt 1 Mask +#define FAN_IM_C5INT0IM 0x00200000 // Channel 5 Interrupt 0 Mask +#define FAN_IM_C5STALLIM 0x00100000 // Channel 5 Stall Interrupt Mask +#define FAN_IM_C4INT1IM 0x00040000 // Channel 4 Interrupt 1 Mask +#define FAN_IM_C4INT0IM 0x00020000 // Channel 4 Interrupt 0 Mask +#define FAN_IM_C4STALLIM 0x00010000 // Channel 4 Stall Interrupt Mask +#define FAN_IM_C3INT1IM 0x00004000 // Channel 3 Interrupt 1 Mask +#define FAN_IM_C3INT0IM 0x00002000 // Channel 3 Interrupt 0 Mask +#define FAN_IM_C3STALLIM 0x00001000 // Channel 3 Stall Interrupt Mask +#define FAN_IM_C2INT1IM 0x00000400 // Channel 2 Interrupt 1 Mask +#define FAN_IM_C2INT0IM 0x00000200 // Channel 2 Interrupt 0 Mask +#define FAN_IM_C2STALLIM 0x00000100 // Channel 2 Stall Interrupt Mask +#define FAN_IM_C1INT1IM 0x00000040 // Channel 1 Interrupt 1 Mask +#define FAN_IM_C1INT0IM 0x00000020 // Channel 1 Interrupt 0 Mask +#define FAN_IM_C1STALLIM 0x00000010 // Channel 1 Stall Interrupt Mask +#define FAN_IM_C0INT1IM 0x00000004 // Channel 0 Interrupt 1 Mask +#define FAN_IM_C0INT0IM 0x00000002 // Channel 0 Interrupt 0 Mask +#define FAN_IM_C0STALLIM 0x00000001 // Channel 0 Stall Interrupt Mask + +//***************************************************************************** +// +// The following are defines for the bit fields in the FAN_O_RIS register. +// +//***************************************************************************** +#define FAN_RIS_C5INT1RIS 0x00400000 // Channel 5 Raw Interrupt 1 Status +#define FAN_RIS_C5INT0RIS 0x00200000 // Channel 5 Raw Interrupt 0 Status +#define FAN_RIS_C5STALLRIS 0x00100000 // Channel 5 Raw Stall Interrupt + // Status +#define FAN_RIS_C4INT1RIS 0x00040000 // Channel 4 Raw Interrupt 1 Status +#define FAN_RIS_C4INT0RIS 0x00020000 // Channel 4 Raw Interrupt 0 Status +#define FAN_RIS_C4STALLRIS 0x00010000 // Channel 4 Raw Stall Interrupt + // Status +#define FAN_RIS_C3INT1RIS 0x00004000 // Channel 3 Raw Interrupt 1 Status +#define FAN_RIS_C3INT0RIS 0x00002000 // Channel 3 Raw Interrupt 0 Status +#define FAN_RIS_C3STALLRIS 0x00001000 // Channel 3 Raw Stall Interrupt + // Status +#define FAN_RIS_C2INT1RIS 0x00000400 // Channel 2 Raw Interrupt 1 Status +#define FAN_RIS_C2INT0RIS 0x00000200 // Channel 2 Raw Interrupt 0 Status +#define FAN_RIS_C2STALLRIS 0x00000100 // Channel 2 Raw Stall Interrupt + // Status +#define FAN_RIS_C1INT1RIS 0x00000040 // Channel 1 Raw Interrupt 1 Status +#define FAN_RIS_C1INT0RIS 0x00000020 // Channel 1 Raw Interrupt 0 Status +#define FAN_RIS_C1STALLRIS 0x00000010 // Channel 1 Raw Stall Interrupt + // Status +#define FAN_RIS_C0INT1RIS 0x00000004 // Channel 0 Raw Interrupt 1 Status +#define FAN_RIS_C0INT0RIS 0x00000002 // Channel 0 Raw Interrupt 0 Status +#define FAN_RIS_C0STALLRIS 0x00000001 // Channel 0 Raw Stall Interrupt + // Status + +//***************************************************************************** +// +// The following are defines for the bit fields in the FAN_O_MIS register. +// +//***************************************************************************** +#define FAN_MIS_C5INT1MIS 0x00400000 // Channel 5 Masked Interrupt 1 + // Status +#define FAN_MIS_C5INT0MIS 0x00200000 // Channel 5 Masked Interrupt 0 + // Status +#define FAN_MIS_C5STALLMIS 0x00100000 // Channel 5 Masked Stall Interrupt + // Status +#define FAN_MIS_C54NT1MIS 0x00040000 // Channel 4 Masked Interrupt 1 + // Status +#define FAN_MIS_C4INT0MIS 0x00020000 // Channel 4 Masked Interrupt 0 + // Status +#define FAN_MIS_C4STALLMIS 0x00010000 // Channel 4 Masked Stall Interrupt + // Status +#define FAN_MIS_C3INT1MIS 0x00004000 // Channel 3 Masked Interrupt 1 + // Status +#define FAN_MIS_C3INT0MIS 0x00002000 // Channel 3 Masked Interrupt 0 + // Status +#define FAN_MIS_C3STALLMIS 0x00001000 // Channel 3 Masked Stall Interrupt + // Status +#define FAN_MIS_C2INT1MIS 0x00000400 // Channel 2 Masked Interrupt 1 + // Status +#define FAN_MIS_C2INT0MIS 0x00000200 // Channel 2 Masked Interrupt 0 + // Status +#define FAN_MIS_C2STALLMIS 0x00000100 // Channel 2 Masked Stall Interrupt + // Status +#define FAN_MIS_C1INT1MIS 0x00000040 // Channel 1 Masked Interrupt 1 + // Status +#define FAN_MIS_C1INT0MIS 0x00000020 // Channel 1 Masked Interrupt 0 + // Status +#define FAN_MIS_C1STALLMIS 0x00000010 // Channel 1 Masked Stall Interrupt + // Status +#define FAN_MIS_C0INT1MIS 0x00000004 // Channel 0 Masked Interrupt 1 + // Status +#define FAN_MIS_C0INT0MIS 0x00000002 // Channel 0 Masked Interrupt 0 + // Status +#define FAN_MIS_C0STALLMIS 0x00000001 // Channel 0 Masked Stall Interrupt + // Status + +//***************************************************************************** +// +// The following are defines for the bit fields in the FAN_O_IC register. +// +//***************************************************************************** +#define FAN_IC_C5INT1IC 0x00400000 // Channel 5 Interrupt 1 Clear +#define FAN_IC_C5INT0IC 0x00200000 // Channel 5 Interrupt 0 Clear +#define FAN_IC_C5STALLIC 0x00100000 // Channel 5 Stall Interrupt Clear +#define FAN_IC_C4INT1IC 0x00040000 // Channel 4 Interrupt 1 Clear +#define FAN_IC_C4INT0IC 0x00020000 // Channel 4 Interrupt 0 Clear +#define FAN_IC_C4STALLIC 0x00010000 // Channel 4 Stall Interrupt Clear +#define FAN_IC_C3INT1IC 0x00004000 // Channel 3 Interrupt 1 Clear +#define FAN_IC_C53INT0IC 0x00002000 // Channel 3 Interrupt 0 Clear +#define FAN_IC_C3STALLIC 0x00001000 // Channel 3 Stall Interrupt Clear +#define FAN_IC_C2INT1IC 0x00000400 // Channel 2 Interrupt 1 Clear +#define FAN_IC_C2INT0IC 0x00000200 // Channel 2 Interrupt 0 Clear +#define FAN_IC_C2STALLIC 0x00000100 // Channel 2 Stall Interrupt Clear +#define FAN_IC_C1INT1IC 0x00000040 // Channel 1 Interrupt 1 Clear +#define FAN_IC_C1INT0IC 0x00000020 // Channel 1 Interrupt 0 Clear +#define FAN_IC_C1STALLIC 0x00000010 // Channel 1 Stall Interrupt Clear +#define FAN_IC_C0INT1IC 0x00000004 // Channel 0 Interrupt 1 Clear +#define FAN_IC_C0INT0IC 0x00000002 // Channel 0 Interrupt 0 Clear +#define FAN_IC_C0STALLIC 0x00000001 // Channel 0 Stall Interrupt Clear + +//***************************************************************************** +// +// The following are defines for the bit fields in the FAN_O_PP register. +// +//***************************************************************************** +#define FAN_PP_CHAN_M 0x0000000F // Channel Count +#define FAN_PP_CHAN_S 0 + +#endif // __HW_FAN_H__ diff --git a/bsp/lm3s8962/Libraries/inc/hw_flash.h b/bsp/lm3s8962/Libraries/inc/hw_flash.h index 19b4c2b559..7a8c0697b3 100644 --- a/bsp/lm3s8962/Libraries/inc/hw_flash.h +++ b/bsp/lm3s8962/Libraries/inc/hw_flash.h @@ -2,7 +2,7 @@ // // hw_flash.h - Macros used when accessing the flash controller. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** @@ -42,8 +42,10 @@ #define FLASH_FWBVAL 0x400FD030 // Flash Write Buffer Valid #define FLASH_FCTL 0x400FD0F8 // Flash Control #define FLASH_FWBN 0x400FD100 // Flash Write Buffer n +#define FLASH_FSIZE 0x400FDFC0 // Flash Size +#define FLASH_SSIZE 0x400FDFC4 // SRAM Size +#define FLASH_ROMSWMAP 0x400FDFCC // ROM Software Map #define FLASH_RMCTL 0x400FE0F0 // ROM Control -#define FLASH_RMVER 0x400FE0F4 // ROM Version Register #define FLASH_FMPRE 0x400FE130 // Flash Memory Protection Read // Enable #define FLASH_FMPPE 0x400FE134 // Flash Memory Protection Program @@ -63,6 +65,14 @@ // 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_FMPPE0 0x400FE400 // Flash Memory Protection Program // Enable 0 #define FLASH_FMPPE1 0x400FE404 // Flash Memory Protection Program @@ -71,13 +81,21 @@ // 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 //***************************************************************************** // // 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_M 0x0007FFFF // Address Offset #define FLASH_FMA_OFFSET_S 0 //***************************************************************************** @@ -104,6 +122,12 @@ // The following are defines for the bit fields in the FLASH_FCRIS register. // //***************************************************************************** +#define FLASH_FCRIS_PROGRIS 0x00002000 // PROGVER Raw Interrupt Status +#define FLASH_FCRIS_ERRIS 0x00000800 // ERVER Raw Interrupt Status +#define FLASH_FCRIS_INVDRIS 0x00000400 // Invalid Data Raw Interrupt + // Status +#define FLASH_FCRIS_VOLTRIS 0x00000200 // VOLTSTAT 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 @@ -112,6 +136,11 @@ // 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 @@ -120,6 +149,16 @@ // 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 @@ -155,6 +194,44 @@ //***************************************************************************** #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_8KB 0x00000003 // 8 KB of Flash +#define FLASH_FSIZE_SIZE_16KB 0x00000007 // 16 KB of Flash +#define FLASH_FSIZE_SIZE_32KB 0x0000000F // 32 KB of Flash +#define FLASH_FSIZE_SIZE_64KB 0x0000001F // 64 KB of Flash +#define FLASH_FSIZE_SIZE_96KB 0x0000002F // 96 KB of Flash +#define FLASH_FSIZE_SIZE_128KB 0x0000003F // 128 KB of Flash +#define FLASH_FSIZE_SIZE_192KB 0x0000005F // 192 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_2KB 0x00000007 // 2 KB of SRAM +#define FLASH_SSIZE_SIZE_4KB 0x0000000F // 4 KB of SRAM +#define FLASH_SSIZE_SIZE_6KB 0x00000017 // 6 KB of SRAM +#define FLASH_SSIZE_SIZE_8KB 0x0000001F // 8 KB of SRAM +#define FLASH_SSIZE_SIZE_12KB 0x0000002F // 12 KB of SRAM +#define FLASH_SSIZE_SIZE_16KB 0x0000003F // 16 KB of SRAM +#define FLASH_SSIZE_SIZE_20KB 0x0000004F // 20 KB of SRAM +#define FLASH_SSIZE_SIZE_24KB 0x0000005F // 24 KB of SRAM +#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. @@ -162,27 +239,6 @@ //***************************************************************************** #define FLASH_RMCTL_BA 0x00000001 // Boot Alias -//***************************************************************************** -// -// The following are defines for the bit fields in the FLASH_RMVER register. -// -//***************************************************************************** -#define FLASH_RMVER_CONT_M 0xFF000000 // ROM Contents -#define FLASH_RMVER_CONT_LM 0x00000000 // Stellaris Boot Loader & - // DriverLib -#define FLASH_RMVER_CONT_LM_AES 0x02000000 // Stellaris Boot Loader & - // DriverLib with AES -#define FLASH_RMVER_CONT_LM_AES_SAFERTOS \ - 0x03000000 // Stellaris Boot Loader & - // DriverLib with AES and SAFERTOS -#define FLASH_RMVER_CONT_LM_AES2 \ - 0x05000000 // Stellaris Boot Loader & - // DriverLib with AES -#define FLASH_RMVER_VER_M 0x0000FF00 // ROM Version -#define FLASH_RMVER_REV_M 0x000000FF // ROM Revision -#define FLASH_RMVER_VER_S 8 -#define FLASH_RMVER_REV_S 0 - //***************************************************************************** // // The following are defines for the bit fields in the FLASH_USECRL register. @@ -323,6 +379,13 @@ //***************************************************************************** #ifndef DEPRECATED +//***************************************************************************** +// +// The following are deprecated defines for the FLASH register offsets. +// +//***************************************************************************** +#define FLASH_RMVER 0x400FE0F4 // ROM Version Register + //***************************************************************************** // // The following are deprecated defines for the bit fields in the FLASH_FMC @@ -360,6 +423,28 @@ #define FLASH_FCMISC_PROGRAM 0x00000002 // Programming status #define FLASH_FCMISC_ACCESS 0x00000001 // Invalid access status +//***************************************************************************** +// +// The following are deprecated defines for the bit fields in the FLASH_RMVER +// register. +// +//***************************************************************************** +#define FLASH_RMVER_CONT_M 0xFF000000 // ROM Contents +#define FLASH_RMVER_CONT_LM 0x00000000 // Stellaris Boot Loader & + // DriverLib +#define FLASH_RMVER_CONT_LM_AES 0x02000000 // Stellaris Boot Loader & + // DriverLib with AES +#define FLASH_RMVER_CONT_LM_AES_SAFERTOS \ + 0x03000000 // Stellaris Boot Loader & + // DriverLib with AES and SAFERTOS +#define FLASH_RMVER_CONT_LM_AES2 \ + 0x05000000 // Stellaris Boot Loader & + // DriverLib with AES +#define FLASH_RMVER_VER_M 0x0000FF00 // ROM Version +#define FLASH_RMVER_REV_M 0x000000FF // ROM Revision +#define FLASH_RMVER_VER_S 8 +#define FLASH_RMVER_REV_S 0 + //***************************************************************************** // // The following are deprecated defines for the bit fields in the FLASH_USECRL diff --git a/bsp/lm3s8962/Libraries/inc/hw_gpio.h b/bsp/lm3s8962/Libraries/inc/hw_gpio.h index 4558688f01..b2eaa072d9 100644 --- a/bsp/lm3s8962/Libraries/inc/hw_gpio.h +++ b/bsp/lm3s8962/Libraries/inc/hw_gpio.h @@ -2,7 +2,7 @@ // // hw_gpio.h - Defines and Macros for GPIO hardware. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** @@ -52,6 +52,9 @@ #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 //***************************************************************************** // @@ -70,460 +73,10 @@ //***************************************************************************** // -// The following are defines for the bit fields in the GPIO_PCTL register for -// port A. +// The following are defines for the bit fields in the GPIO_O_SI register. // //***************************************************************************** -#define GPIO_PCTL_PA0_M 0x0000000F // PA0 mask -#define GPIO_PCTL_PA0_U0RX 0x00000001 // U0RX on PA0 -#define GPIO_PCTL_PA0_I2C1SCL 0x00000008 // I2C1SCL on PA0 -#define GPIO_PCTL_PA0_U1RX 0x00000009 // U1RX on PA0 -#define GPIO_PCTL_PA1_M 0x000000F0 // PA1 mask -#define GPIO_PCTL_PA1_U0TX 0x00000010 // U0TX on PA1 -#define GPIO_PCTL_PA1_I2C1SDA 0x00000080 // I2C1SDA on PA1 -#define GPIO_PCTL_PA1_U1TX 0x00000090 // U1TX on PA1 -#define GPIO_PCTL_PA2_M 0x00000F00 // PA2 mask -#define GPIO_PCTL_PA2_SSI0CLK 0x00000100 // SSI0CLK on PA2 -#define GPIO_PCTL_PA2_PWM4 0x00000400 // PWM4 on PA2 -#define GPIO_PCTL_PA2_I2S0RXSD 0x00000900 // I2S0RXSD on PA2 -#define GPIO_PCTL_PA3_M 0x0000F000 // PA3 mask -#define GPIO_PCTL_PA3_SSI0FSS 0x00001000 // SSI0FSS on PA3 -#define GPIO_PCTL_PA3_PWM5 0x00004000 // PWM5 on PA3 -#define GPIO_PCTL_PA3_I2S0RXMCLK \ - 0x00009000 // I2S0RXMCLK on PA3 -#define GPIO_PCTL_PA4_M 0x000F0000 // PA4 mask -#define GPIO_PCTL_PA4_SSI0RX 0x00010000 // SSI0RX on PA4 -#define GPIO_PCTL_PA4_PWM6 0x00040000 // PWM6 on PA4 -#define GPIO_PCTL_PA4_CAN0RX 0x00050000 // CAN0RX on PA4 -#define GPIO_PCTL_PA4_I2S0TXSCK 0x00090000 // I2S0TXSCK on PA4 -#define GPIO_PCTL_PA5_M 0x00F00000 // PA5 mask -#define GPIO_PCTL_PA5_SSI0TX 0x00100000 // SSI0TX on PA5 -#define GPIO_PCTL_PA5_PWM7 0x00400000 // PWM7 on PA5 -#define GPIO_PCTL_PA5_CAN0TX 0x00500000 // CAN0TX on PA5 -#define GPIO_PCTL_PA5_I2S0TXWS 0x00900000 // I2S0TXWS on PA5 -#define GPIO_PCTL_PA6_M 0x0F000000 // PA6 mask -#define GPIO_PCTL_PA6_I2C1SCL 0x01000000 // I2C1SCL on PA6 -#define GPIO_PCTL_PA6_CCP1 0x02000000 // CCP1 on PA6 -#define GPIO_PCTL_PA6_PWM0 0x04000000 // PWM0 on PA6 -#define GPIO_PCTL_PA6_PWM4 0x05000000 // PWM4 on PA6 -#define GPIO_PCTL_PA6_CAN0RX 0x06000000 // CAN0RX on PA6 -#define GPIO_PCTL_PA6_USB0EPEN 0x08000000 // USB0EPEN on PA6 -#define GPIO_PCTL_PA6_U1CTS 0x09000000 // U1CTS on PA6 -#define GPIO_PCTL_PA7_M 0xF0000000 // PA7 mask -#define GPIO_PCTL_PA7_I2C1SDA 0x10000000 // I2C1SDA on PA7 -#define GPIO_PCTL_PA7_CCP4 0x20000000 // CCP4 on PA7 -#define GPIO_PCTL_PA7_PWM1 0x40000000 // PWM1 on PA7 -#define GPIO_PCTL_PA7_PWM5 0x50000000 // PWM5 on PA7 -#define GPIO_PCTL_PA7_CAN0TX 0x60000000 // CAN0TX on PA7 -#define GPIO_PCTL_PA7_CCP3 0x70000000 // CCP3 on PA7 -#define GPIO_PCTL_PA7_USB0PFLT 0x80000000 // USB0PFLT on PA7 -#define GPIO_PCTL_PA7_U1DCD 0x90000000 // U1DCD on PA7 - -//***************************************************************************** -// -// The following are defines for the bit fields in the GPIO_PCTL register for -// port B. -// -//***************************************************************************** -#define GPIO_PCTL_PB0_M 0x0000000F // PB0 mask -#define GPIO_PCTL_PB0_CCP0 0x00000001 // CCP0 on PB0 -#define GPIO_PCTL_PB0_PWM2 0x00000002 // PWM2 on PB0 -#define GPIO_PCTL_PB0_U1RX 0x00000005 // U1RX on PB0 -#define GPIO_PCTL_PB1_M 0x000000F0 // PB1 mask -#define GPIO_PCTL_PB1_CCP2 0x00000010 // CCP2 on PB1 -#define GPIO_PCTL_PB1_PWM3 0x00000020 // PWM3 on PB1 -#define GPIO_PCTL_PB1_CCP1 0x00000040 // CCP1 on PB1 -#define GPIO_PCTL_PB1_U1TX 0x00000050 // U1TX on PB1 -#define GPIO_PCTL_PB2_M 0x00000F00 // PB2 mask -#define GPIO_PCTL_PB2_I2C0SCL 0x00000100 // I2C0SCL on PB2 -#define GPIO_PCTL_PB2_IDX0 0x00000200 // IDX0 on PB2 -#define GPIO_PCTL_PB2_CCP3 0x00000400 // CCP3 on PB2 -#define GPIO_PCTL_PB2_CCP0 0x00000500 // CCP0 on PB2 -#define GPIO_PCTL_PB2_USB0EPEN 0x00000800 // USB0EPEN on PB2 -#define GPIO_PCTL_PB3_M 0x0000F000 // PB3 mask -#define GPIO_PCTL_PB3_I2C0SDA 0x00001000 // I2C0SDA on PB3 -#define GPIO_PCTL_PB3_FAULT0 0x00002000 // FAULT0 on PB3 -#define GPIO_PCTL_PB3_FAULT3 0x00004000 // FAULT3 on PB3 -#define GPIO_PCTL_PB3_USB0PFLT 0x00008000 // USB0PFLT on PB3 -#define GPIO_PCTL_PB4_M 0x000F0000 // PB4 mask -#define GPIO_PCTL_PB4_U2RX 0x00040000 // U2RX on PB4 -#define GPIO_PCTL_PB4_CAN0RX 0x00050000 // CAN0RX on PB4 -#define GPIO_PCTL_PB4_IDX0 0x00060000 // IDX0 on PB4 -#define GPIO_PCTL_PB4_U1RX 0x00070000 // U1RX on PB4 -#define GPIO_PCTL_PB4_EPI0S23 0x00080000 // EPI0S23 on PB4 -#define GPIO_PCTL_PB5_M 0x00F00000 // PB5 mask -#define GPIO_PCTL_PB5_C0O 0x00100000 // C0O on PB5 -#define GPIO_PCTL_PB5_CCP5 0x00200000 // CCP5 on PB5 -#define GPIO_PCTL_PB5_CCP6 0x00300000 // CCP6 on PB5 -#define GPIO_PCTL_PB5_CCP0 0x00400000 // CCP0 on PB5 -#define GPIO_PCTL_PB5_CAN0TX 0x00500000 // CAN0TX on PB5 -#define GPIO_PCTL_PB5_CCP2 0x00600000 // CCP2 on PB5 -#define GPIO_PCTL_PB5_U1TX 0x00700000 // U1TX on PB5 -#define GPIO_PCTL_PB5_EPI0S22 0x00800000 // EPI0S22 on PB5 -#define GPIO_PCTL_PB6_M 0x0F000000 // PB6 mask -#define GPIO_PCTL_PB6_CCP1 0x01000000 // CCP1 on PB6 -#define GPIO_PCTL_PB6_CCP7 0x02000000 // CCP7 on PB6 -#define GPIO_PCTL_PB6_C0O 0x03000000 // C0O on PB6 -#define GPIO_PCTL_PB6_FAULT1 0x04000000 // FAULT1 on PB6 -#define GPIO_PCTL_PB6_IDX0 0x05000000 // IDX0 on PB6 -#define GPIO_PCTL_PB6_CCP5 0x06000000 // CCP5 on PB6 -#define GPIO_PCTL_PB6_I2S0TXSCK 0x09000000 // I2S0TXSCK on PB6 -#define GPIO_PCTL_PB7_M 0xF0000000 // PB7 mask -#define GPIO_PCTL_PB7_NMI 0x40000000 // NMI on PB7 - -//***************************************************************************** -// -// The following are defines for the bit fields in the GPIO_PCTL register for -// port C. -// -//***************************************************************************** -#define GPIO_PCTL_PC0_M 0x0000000F // PC0 mask -#define GPIO_PCTL_PC0_TCK 0x00000003 // TCK on PC0 -#define GPIO_PCTL_PC1_M 0x000000F0 // PC1 mask -#define GPIO_PCTL_PC1_TMS 0x00000030 // TMS on PC1 -#define GPIO_PCTL_PC2_M 0x00000F00 // PC2 mask -#define GPIO_PCTL_PC2_TDI 0x00000300 // TDI on PC2 -#define GPIO_PCTL_PC3_M 0x0000F000 // PC3 mask -#define GPIO_PCTL_PC3_TDO 0x00003000 // TDO on PC3 -#define GPIO_PCTL_PC4_M 0x000F0000 // PC4 mask -#define GPIO_PCTL_PC4_CCP5 0x00010000 // CCP5 on PC4 -#define GPIO_PCTL_PC4_PHA0 0x00020000 // PHA0 on PC4 -#define GPIO_PCTL_PC4_PWM6 0x00040000 // PWM6 on PC4 -#define GPIO_PCTL_PC4_CCP2 0x00050000 // CCP2 on PC4 -#define GPIO_PCTL_PC4_CCP4 0x00060000 // CCP4 on PC4 -#define GPIO_PCTL_PC4_EPI0S2 0x00080000 // EPI0S2 on PC4 -#define GPIO_PCTL_PC4_CCP1 0x00090000 // CCP1 on PC4 -#define GPIO_PCTL_PC5_M 0x00F00000 // PC5 mask -#define GPIO_PCTL_PC5_CCP1 0x00100000 // CCP1 on PC5 -#define GPIO_PCTL_PC5_C1O 0x00200000 // C1O on PC5 -#define GPIO_PCTL_PC5_C0O 0x00300000 // C0O on PC5 -#define GPIO_PCTL_PC5_FAULT2 0x00400000 // FAULT2 on PC5 -#define GPIO_PCTL_PC5_CCP3 0x00500000 // CCP3 on PC5 -#define GPIO_PCTL_PC5_USB0EPEN 0x00600000 // USB0EPEN on PC5 -#define GPIO_PCTL_PC5_EPI0S3 0x00800000 // EPI0S3 on PC5 -#define GPIO_PCTL_PC6_M 0x0F000000 // PC6 mask -#define GPIO_PCTL_PC6_CCP3 0x01000000 // CCP3 on PC6 -#define GPIO_PCTL_PC6_PHB0 0x02000000 // PHB0 on PC6 -#define GPIO_PCTL_PC6_C2O 0x03000000 // C2O on PC6 -#define GPIO_PCTL_PC6_PWM7 0x04000000 // PWM7 on PC6 -#define GPIO_PCTL_PC6_U1RX 0x05000000 // U1RX on PC6 -#define GPIO_PCTL_PC6_CCP0 0x06000000 // CCP0 on PC6 -#define GPIO_PCTL_PC6_USB0PFLT 0x07000000 // USB0PFLT on PC6 -#define GPIO_PCTL_PC6_EPI0S4 0x08000000 // EPI0S4 on PC6 -#define GPIO_PCTL_PC7_M 0xF0000000 // PC7 mask -#define GPIO_PCTL_PC7_CCP4 0x10000000 // CCP4 on PC7 -#define GPIO_PCTL_PC7_PHB0 0x20000000 // PHB0 on PC7 -#define GPIO_PCTL_PC7_CCP0 0x40000000 // CCP0 on PC7 -#define GPIO_PCTL_PC7_U1TX 0x50000000 // U1TX on PC7 -#define GPIO_PCTL_PC7_USB0PFLT 0x60000000 // USB0PFLT on PC7 -#define GPIO_PCTL_PC7_C1O 0x70000000 // C1O on PC7 -#define GPIO_PCTL_PC7_EPI0S5 0x80000000 // EPI0S5 on PC7 - -//***************************************************************************** -// -// The following are defines for the bit fields in the GPIO_PCTL register for -// port D. -// -//***************************************************************************** -#define GPIO_PCTL_PD0_M 0x0000000F // PD0 mask -#define GPIO_PCTL_PD0_PWM0 0x00000001 // PWM0 on PD0 -#define GPIO_PCTL_PD0_CAN0RX 0x00000002 // CAN0RX on PD0 -#define GPIO_PCTL_PD0_IDX0 0x00000003 // IDX0 on PD0 -#define GPIO_PCTL_PD0_U2RX 0x00000004 // U2RX on PD0 -#define GPIO_PCTL_PD0_U1RX 0x00000005 // U1RX on PD0 -#define GPIO_PCTL_PD0_CCP6 0x00000006 // CCP6 on PD0 -#define GPIO_PCTL_PD0_I2S0RXSCK 0x00000008 // I2S0RXSCK on PD0 -#define GPIO_PCTL_PD0_U1CTS 0x00000009 // U1CTS on PD0 -#define GPIO_PCTL_PD1_M 0x000000F0 // PD1 mask -#define GPIO_PCTL_PD1_PWM1 0x00000010 // PWM1 on PD1 -#define GPIO_PCTL_PD1_CAN0TX 0x00000020 // CAN0TX on PD1 -#define GPIO_PCTL_PD1_PHA0 0x00000030 // PHA0 on PD1 -#define GPIO_PCTL_PD1_U2TX 0x00000040 // U2TX on PD1 -#define GPIO_PCTL_PD1_U1TX 0x00000050 // U1TX on PD1 -#define GPIO_PCTL_PD1_CCP7 0x00000060 // CCP7 on PD1 -#define GPIO_PCTL_PD1_I2S0RXWS 0x00000080 // I2S0RXWS on PD1 -#define GPIO_PCTL_PD1_U1DCD 0x00000090 // U1DCD on PD1 -#define GPIO_PCTL_PD1_CCP2 0x000000A0 // CCP2 on PD1 -#define GPIO_PCTL_PD1_PHB1 0x000000B0 // PHB1 on PD1 -#define GPIO_PCTL_PD2_M 0x00000F00 // PD2 mask -#define GPIO_PCTL_PD2_U1RX 0x00000100 // U1RX on PD2 -#define GPIO_PCTL_PD2_CCP6 0x00000200 // CCP6 on PD2 -#define GPIO_PCTL_PD2_PWM2 0x00000300 // PWM2 on PD2 -#define GPIO_PCTL_PD2_CCP5 0x00000400 // CCP5 on PD2 -#define GPIO_PCTL_PD2_EPI0S20 0x00000800 // EPI0S20 on PD2 -#define GPIO_PCTL_PD3_M 0x0000F000 // PD3 mask -#define GPIO_PCTL_PD3_U1TX 0x00001000 // U1TX on PD3 -#define GPIO_PCTL_PD3_CCP7 0x00002000 // CCP7 on PD3 -#define GPIO_PCTL_PD3_PWM3 0x00003000 // PWM3 on PD3 -#define GPIO_PCTL_PD3_CCP0 0x00004000 // CCP0 on PD3 -#define GPIO_PCTL_PD3_EPI0S21 0x00008000 // EPI0S21 on PD3 -#define GPIO_PCTL_PD4_M 0x000F0000 // PD4 mask -#define GPIO_PCTL_PD4_CCP0 0x00010000 // CCP0 on PD4 -#define GPIO_PCTL_PD4_CCP3 0x00020000 // CCP3 on PD4 -#define GPIO_PCTL_PD4_I2S0RXSD 0x00080000 // I2S0RXSD on PD4 -#define GPIO_PCTL_PD4_U1RI 0x00090000 // U1RI on PD4 -#define GPIO_PCTL_PD4_EPI0S19 0x000A0000 // EPI0S19 on PD4 -#define GPIO_PCTL_PD5_M 0x00F00000 // PD5 mask -#define GPIO_PCTL_PD5_CCP2 0x00100000 // CCP2 on PD5 -#define GPIO_PCTL_PD5_CCP4 0x00200000 // CCP4 on PD5 -#define GPIO_PCTL_PD5_I2S0RXMCLK \ - 0x00800000 // I2S0RXMCLK on PD5 -#define GPIO_PCTL_PD5_U2RX 0x00900000 // U2RX on PD5 -#define GPIO_PCTL_PD5_EPI0S28 0x00A00000 // EPI0S28 on PD5 -#define GPIO_PCTL_PD6_M 0x0F000000 // PD6 mask -#define GPIO_PCTL_PD6_FAULT0 0x01000000 // FAULT0 on PD6 -#define GPIO_PCTL_PD6_I2S0TXSCK 0x08000000 // I2S0TXSCK on PD6 -#define GPIO_PCTL_PD6_U2TX 0x09000000 // U2TX on PD6 -#define GPIO_PCTL_PD6_EPI0S29 0x0A000000 // EPI0S29 on PD6 -#define GPIO_PCTL_PD7_M 0xF0000000 // PD7 mask -#define GPIO_PCTL_PD7_IDX0 0x10000000 // IDX0 on PD7 -#define GPIO_PCTL_PD7_C0O 0x20000000 // C0O on PD7 -#define GPIO_PCTL_PD7_CCP1 0x30000000 // CCP1 on PD7 -#define GPIO_PCTL_PD7_I2S0TXWS 0x80000000 // I2S0TXWS on PD7 -#define GPIO_PCTL_PD7_U1DTR 0x90000000 // U1DTR on PD7 -#define GPIO_PCTL_PD7_EPI0S30 0xA0000000 // EPI0S30 on PD7 - -//***************************************************************************** -// -// The following are defines for the bit fields in the GPIO_PCTL register for -// port E. -// -//***************************************************************************** -#define GPIO_PCTL_PE0_M 0x0000000F // PE0 mask -#define GPIO_PCTL_PE0_PWM4 0x00000001 // PWM4 on PE0 -#define GPIO_PCTL_PE0_SSI1CLK 0x00000002 // SSI1CLK on PE0 -#define GPIO_PCTL_PE0_CCP3 0x00000003 // CCP3 on PE0 -#define GPIO_PCTL_PE0_EPI0S8 0x00000008 // EPI0S8 on PE0 -#define GPIO_PCTL_PE0_USB0PFLT 0x00000009 // USB0PFLT on PE0 -#define GPIO_PCTL_PE1_M 0x000000F0 // PE1 mask -#define GPIO_PCTL_PE1_PWM5 0x00000010 // PWM5 on PE1 -#define GPIO_PCTL_PE1_SSI1FSS 0x00000020 // SSI1FSS on PE1 -#define GPIO_PCTL_PE1_FAULT0 0x00000030 // FAULT0 on PE1 -#define GPIO_PCTL_PE1_CCP2 0x00000040 // CCP2 on PE1 -#define GPIO_PCTL_PE1_CCP6 0x00000050 // CCP6 on PE1 -#define GPIO_PCTL_PE1_EPI0S9 0x00000080 // EPI0S9 on PE1 -#define GPIO_PCTL_PE2_M 0x00000F00 // PE2 mask -#define GPIO_PCTL_PE2_CCP4 0x00000100 // CCP4 on PE2 -#define GPIO_PCTL_PE2_SSI1RX 0x00000200 // SSI1RX on PE2 -#define GPIO_PCTL_PE2_PHB1 0x00000300 // PHB1 on PE2 -#define GPIO_PCTL_PE2_PHA0 0x00000400 // PHA0 on PE2 -#define GPIO_PCTL_PE2_CCP2 0x00000500 // CCP2 on PE2 -#define GPIO_PCTL_PE2_EPI0S24 0x00000800 // EPI0S24 on PE2 -#define GPIO_PCTL_PE3_M 0x0000F000 // PE3 mask -#define GPIO_PCTL_PE3_CCP1 0x00001000 // CCP1 on PE3 -#define GPIO_PCTL_PE3_SSI1TX 0x00002000 // SSI1TX on PE3 -#define GPIO_PCTL_PE3_PHA1 0x00003000 // PHA1 on PE3 -#define GPIO_PCTL_PE3_PHB0 0x00004000 // PHB0 on PE3 -#define GPIO_PCTL_PE3_CCP7 0x00005000 // CCP7 on PE3 -#define GPIO_PCTL_PE3_EPI0S25 0x00008000 // EPI0S25 on PE3 -#define GPIO_PCTL_PE4_M 0x000F0000 // PE4 mask -#define GPIO_PCTL_PE4_CCP3 0x00010000 // CCP3 on PE4 -#define GPIO_PCTL_PE4_FAULT0 0x00040000 // FAULT0 on PE4 -#define GPIO_PCTL_PE4_U2TX 0x00050000 // U2TX on PE4 -#define GPIO_PCTL_PE4_CCP2 0x00060000 // CCP2 on PE4 -#define GPIO_PCTL_PE4_I2S0TXWS 0x00090000 // I2S0TXWS on PE4 -#define GPIO_PCTL_PE5_M 0x00F00000 // PE5 mask -#define GPIO_PCTL_PE5_CCP5 0x00100000 // CCP5 on PE5 -#define GPIO_PCTL_PE5_I2S0TXSD 0x00900000 // I2S0TXSD on PE5 -#define GPIO_PCTL_PE6_M 0x0F000000 // PE6 mask -#define GPIO_PCTL_PE6_PWM4 0x01000000 // PWM4 on PE6 -#define GPIO_PCTL_PE6_C1O 0x02000000 // C1O on PE6 -#define GPIO_PCTL_PE6_U1CTS 0x09000000 // U1CTS on PE6 -#define GPIO_PCTL_PE7_M 0xF0000000 // PE7 mask -#define GPIO_PCTL_PE7_PWM5 0x10000000 // PWM5 on PE7 -#define GPIO_PCTL_PE7_C2O 0x20000000 // C2O on PE7 -#define GPIO_PCTL_PE7_U1DCD 0x90000000 // U1DCD on PE7 - -//***************************************************************************** -// -// The following are defines for the bit fields in the GPIO_PCTL register for -// port F. -// -//***************************************************************************** -#define GPIO_PCTL_PF0_M 0x0000000F // PF0 mask -#define GPIO_PCTL_PF0_CAN1RX 0x00000001 // CAN1RX on PF0 -#define GPIO_PCTL_PF0_PHB0 0x00000002 // PHB0 on PF0 -#define GPIO_PCTL_PF0_PWM0 0x00000003 // PWM0 on PF0 -#define GPIO_PCTL_PF0_I2S0TXSD 0x00000008 // I2S0TXSD on PF0 -#define GPIO_PCTL_PF0_U1DSR 0x00000009 // U1DSR on PF0 -#define GPIO_PCTL_PF1_M 0x000000F0 // PF1 mask -#define GPIO_PCTL_PF1_CAN1TX 0x00000010 // CAN1TX on PF1 -#define GPIO_PCTL_PF1_IDX1 0x00000020 // IDX1 on PF1 -#define GPIO_PCTL_PF1_PWM1 0x00000030 // PWM1 on PF1 -#define GPIO_PCTL_PF1_I2S0TXMCLK \ - 0x00000080 // I2S0TXMCLK on PF1 -#define GPIO_PCTL_PF1_U1RTS 0x00000090 // U1RTS on PF1 -#define GPIO_PCTL_PF1_CCP3 0x000000A0 // CCP3 on PF1 -#define GPIO_PCTL_PF2_M 0x00000F00 // PF2 mask -#define GPIO_PCTL_PF2_LED1 0x00000100 // LED1 on PF2 -#define GPIO_PCTL_PF2_PWM4 0x00000200 // PWM4 on PF2 -#define GPIO_PCTL_PF2_PWM2 0x00000400 // PWM2 on PF2 -#define GPIO_PCTL_PF2_SSI1CLK 0x00000900 // SSI1CLK on PF2 -#define GPIO_PCTL_PF3_M 0x0000F000 // PF3 mask -#define GPIO_PCTL_PF3_LED0 0x00001000 // LED0 on PF3 -#define GPIO_PCTL_PF3_PWM5 0x00002000 // PWM5 on PF3 -#define GPIO_PCTL_PF3_PWM3 0x00004000 // PWM3 on PF3 -#define GPIO_PCTL_PF3_SSI1FSS 0x00009000 // SSI1FSS on PF3 -#define GPIO_PCTL_PF4_M 0x000F0000 // PF4 mask -#define GPIO_PCTL_PF4_CCP0 0x00010000 // CCP0 on PF4 -#define GPIO_PCTL_PF4_C0O 0x00020000 // C0O on PF4 -#define GPIO_PCTL_PF4_FAULT0 0x00040000 // FAULT0 on PF4 -#define GPIO_PCTL_PF4_EPI0S12 0x00080000 // EPI0S12 on PF4 -#define GPIO_PCTL_PF4_SSI1RX 0x00090000 // SSI1RX on PF4 -#define GPIO_PCTL_PF5_M 0x00F00000 // PF5 mask -#define GPIO_PCTL_PF5_CCP2 0x00100000 // CCP2 on PF5 -#define GPIO_PCTL_PF5_C1O 0x00200000 // C1O on PF5 -#define GPIO_PCTL_PF5_EPI0S15 0x00800000 // EPI0S15 on PF5 -#define GPIO_PCTL_PF5_SSI1TX 0x00900000 // SSI1TX on PF5 -#define GPIO_PCTL_PF6_M 0x0F000000 // PF6 mask -#define GPIO_PCTL_PF6_CCP1 0x01000000 // CCP1 on PF6 -#define GPIO_PCTL_PF6_C2O 0x02000000 // C2O on PF6 -#define GPIO_PCTL_PF6_PHA0 0x04000000 // PHA0 on PF6 -#define GPIO_PCTL_PF6_I2S0TXMCLK \ - 0x09000000 // I2S0TXMCLK on PF6 -#define GPIO_PCTL_PF6_U1RTS 0x0A000000 // U1RTS on PF6 -#define GPIO_PCTL_PF7_M 0xF0000000 // PF7 mask -#define GPIO_PCTL_PF7_CCP4 0x10000000 // CCP4 on PF7 -#define GPIO_PCTL_PF7_PHB0 0x40000000 // PHB0 on PF7 -#define GPIO_PCTL_PF7_EPI0S12 0x80000000 // EPI0S12 on PF7 -#define GPIO_PCTL_PF7_FAULT1 0x90000000 // FAULT1 on PF7 - -//***************************************************************************** -// -// The following are defines for the bit fields in the GPIO_PCTL register for -// port G. -// -//***************************************************************************** -#define GPIO_PCTL_PG0_M 0x0000000F // PG0 mask -#define GPIO_PCTL_PG0_U2RX 0x00000001 // U2RX on PG0 -#define GPIO_PCTL_PG0_PWM0 0x00000002 // PWM0 on PG0 -#define GPIO_PCTL_PG0_I2C1SCL 0x00000003 // I2C1SCL on PG0 -#define GPIO_PCTL_PG0_PWM4 0x00000004 // PWM4 on PG0 -#define GPIO_PCTL_PG0_USB0EPEN 0x00000007 // USB0EPEN on PG0 -#define GPIO_PCTL_PG0_EPI0S13 0x00000008 // EPI0S13 on PG0 -#define GPIO_PCTL_PG1_M 0x000000F0 // PG1 mask -#define GPIO_PCTL_PG1_U2TX 0x00000010 // U2TX on PG1 -#define GPIO_PCTL_PG1_PWM1 0x00000020 // PWM1 on PG1 -#define GPIO_PCTL_PG1_I2C1SDA 0x00000030 // I2C1SDA on PG1 -#define GPIO_PCTL_PG1_PWM5 0x00000040 // PWM5 on PG1 -#define GPIO_PCTL_PG1_EPI0S14 0x00000080 // EPI0S14 on PG1 -#define GPIO_PCTL_PG2_M 0x00000F00 // PG2 mask -#define GPIO_PCTL_PG2_PWM0 0x00000100 // PWM0 on PG2 -#define GPIO_PCTL_PG2_FAULT0 0x00000400 // FAULT0 on PG2 -#define GPIO_PCTL_PG2_IDX1 0x00000800 // IDX1 on PG2 -#define GPIO_PCTL_PG2_I2S0RXSD 0x00000900 // I2S0RXSD on PG2 -#define GPIO_PCTL_PG3_M 0x0000F000 // PG3 mask -#define GPIO_PCTL_PG3_PWM1 0x00001000 // PWM1 on PG3 -#define GPIO_PCTL_PG3_FAULT2 0x00004000 // FAULT2 on PG3 -#define GPIO_PCTL_PG3_FAULT0 0x00008000 // FAULT0 on PG3 -#define GPIO_PCTL_PG3_I2S0RXMCLK \ - 0x00009000 // I2S0RXMCLK on PG3 -#define GPIO_PCTL_PG4_M 0x000F0000 // PG4 mask -#define GPIO_PCTL_PG4_CCP3 0x00010000 // CCP3 on PG4 -#define GPIO_PCTL_PG4_FAULT1 0x00040000 // FAULT1 on PG4 -#define GPIO_PCTL_PG4_EPI0S15 0x00080000 // EPI0S15 on PG4 -#define GPIO_PCTL_PG4_PWM6 0x00090000 // PWM6 on PG4 -#define GPIO_PCTL_PG4_U1RI 0x000A0000 // U1RI on PG4 -#define GPIO_PCTL_PG5_M 0x00F00000 // PG5 mask -#define GPIO_PCTL_PG5_CCP5 0x00100000 // CCP5 on PG5 -#define GPIO_PCTL_PG5_IDX0 0x00400000 // IDX0 on PG5 -#define GPIO_PCTL_PG5_FAULT1 0x00500000 // FAULT1 on PG5 -#define GPIO_PCTL_PG5_PWM7 0x00800000 // PWM7 on PG5 -#define GPIO_PCTL_PG5_I2S0RXSCK 0x00900000 // I2S0RXSCK on PG5 -#define GPIO_PCTL_PG5_U1DTR 0x00A00000 // U1DTR on PG5 -#define GPIO_PCTL_PG6_M 0x0F000000 // PG6 mask -#define GPIO_PCTL_PG6_PHA1 0x01000000 // PHA1 on PG6 -#define GPIO_PCTL_PG6_PWM6 0x04000000 // PWM6 on PG6 -#define GPIO_PCTL_PG6_FAULT1 0x08000000 // FAULT1 on PG6 -#define GPIO_PCTL_PG6_I2S0RXWS 0x09000000 // I2S0RXWS on PG6 -#define GPIO_PCTL_PG6_U1RI 0x0A000000 // U1RI on PG6 -#define GPIO_PCTL_PG7_M 0xF0000000 // PG7 mask -#define GPIO_PCTL_PG7_PHB1 0x10000000 // PHB1 on PG7 -#define GPIO_PCTL_PG7_PWM7 0x40000000 // PWM7 on PG7 -#define GPIO_PCTL_PG7_CCP5 0x80000000 // CCP5 on PG7 -#define GPIO_PCTL_PG7_EPI0S31 0x90000000 // EPI0S31 on PG7 - -//***************************************************************************** -// -// The following are defines for the bit fields in the GPIO_PCTL register for -// port H. -// -//***************************************************************************** -#define GPIO_PCTL_PH0_M 0x0000000F // PH0 mask -#define GPIO_PCTL_PH0_CCP6 0x00000001 // CCP6 on PH0 -#define GPIO_PCTL_PH0_PWM2 0x00000002 // PWM2 on PH0 -#define GPIO_PCTL_PH0_EPI0S6 0x00000008 // EPI0S6 on PH0 -#define GPIO_PCTL_PH0_PWM4 0x00000009 // PWM4 on PH0 -#define GPIO_PCTL_PH1_M 0x000000F0 // PH1 mask -#define GPIO_PCTL_PH1_CCP7 0x00000010 // CCP7 on PH1 -#define GPIO_PCTL_PH1_PWM3 0x00000020 // PWM3 on PH1 -#define GPIO_PCTL_PH1_EPI0S7 0x00000080 // EPI0S7 on PH1 -#define GPIO_PCTL_PH1_PWM5 0x00000090 // PWM5 on PH1 -#define GPIO_PCTL_PH2_M 0x00000F00 // PH2 mask -#define GPIO_PCTL_PH2_IDX1 0x00000100 // IDX1 on PH2 -#define GPIO_PCTL_PH2_C1O 0x00000200 // C1O on PH2 -#define GPIO_PCTL_PH2_FAULT3 0x00000400 // FAULT3 on PH2 -#define GPIO_PCTL_PH2_EPI0S1 0x00000800 // EPI0S1 on PH2 -#define GPIO_PCTL_PH3_M 0x0000F000 // PH3 mask -#define GPIO_PCTL_PH3_PHB0 0x00001000 // PHB0 on PH3 -#define GPIO_PCTL_PH3_FAULT0 0x00002000 // FAULT0 on PH3 -#define GPIO_PCTL_PH3_USB0EPEN 0x00004000 // USB0EPEN on PH3 -#define GPIO_PCTL_PH3_EPI0S0 0x00008000 // EPI0S0 on PH3 -#define GPIO_PCTL_PH4_M 0x000F0000 // PH4 mask -#define GPIO_PCTL_PH4_USB0PFLT 0x00040000 // USB0PFLT on PH4 -#define GPIO_PCTL_PH4_EPI0S10 0x00080000 // EPI0S10 on PH4 -#define GPIO_PCTL_PH4_SSI1CLK 0x000B0000 // SSI1CLK on PH4 -#define GPIO_PCTL_PH5_M 0x00F00000 // PH5 mask -#define GPIO_PCTL_PH5_EPI0S11 0x00800000 // EPI0S11 on PH5 -#define GPIO_PCTL_PH5_FAULT2 0x00A00000 // FAULT2 on PH5 -#define GPIO_PCTL_PH5_SSI1FSS 0x00B00000 // SSI1FSS on PH5 -#define GPIO_PCTL_PH6_M 0x0F000000 // PH6 mask -#define GPIO_PCTL_PH6_EPI0S26 0x08000000 // EPI0S26 on PH6 -#define GPIO_PCTL_PH6_PWM4 0x0A000000 // PWM4 on PH6 -#define GPIO_PCTL_PH6_SSI1RX 0x0B000000 // SSI1RX on PH6 -#define GPIO_PCTL_PH7_M 0xF0000000 // PH7 mask -#define GPIO_PCTL_PH7_EPI0S27 0x80000000 // EPI0S27 on PH7 -#define GPIO_PCTL_PH7_PWM5 0xA0000000 // PWM5 on PH7 -#define GPIO_PCTL_PH7_SSI1TX 0xB0000000 // SSI1TX on PH7 - -//***************************************************************************** -// -// The following are defines for the bit fields in the GPIO_PCTL register for -// port J. -// -//***************************************************************************** -#define GPIO_PCTL_PJ0_M 0x0000000F // PJ0 mask -#define GPIO_PCTL_PJ0_EPI0S16 0x00000008 // EPI0S16 on PJ0 -#define GPIO_PCTL_PJ0_PWM0 0x0000000A // PWM0 on PJ0 -#define GPIO_PCTL_PJ0_I2C1SCL 0x0000000B // I2C1SCL on PJ0 -#define GPIO_PCTL_PJ1_M 0x000000F0 // PJ1 mask -#define GPIO_PCTL_PJ1_EPI0S17 0x00000080 // EPI0S17 on PJ1 -#define GPIO_PCTL_PJ1_USB0PFLT 0x00000090 // USB0PFLT on PJ1 -#define GPIO_PCTL_PJ1_PWM1 0x000000A0 // PWM1 on PJ1 -#define GPIO_PCTL_PJ1_I2C1SDA 0x000000B0 // I2C1SDA on PJ1 -#define GPIO_PCTL_PJ2_M 0x00000F00 // PJ2 mask -#define GPIO_PCTL_PJ2_EPI0S18 0x00000800 // EPI0S18 on PJ2 -#define GPIO_PCTL_PJ2_CCP0 0x00000900 // CCP0 on PJ2 -#define GPIO_PCTL_PJ2_FAULT0 0x00000A00 // FAULT0 on PJ2 -#define GPIO_PCTL_PJ3_M 0x0000F000 // PJ3 mask -#define GPIO_PCTL_PJ3_EPI0S19 0x00008000 // EPI0S19 on PJ3 -#define GPIO_PCTL_PJ3_U1CTS 0x00009000 // U1CTS on PJ3 -#define GPIO_PCTL_PJ3_CCP6 0x0000A000 // CCP6 on PJ3 -#define GPIO_PCTL_PJ4_M 0x000F0000 // PJ4 mask -#define GPIO_PCTL_PJ4_EPI0S28 0x00080000 // EPI0S28 on PJ4 -#define GPIO_PCTL_PJ4_U1DCD 0x00090000 // U1DCD on PJ4 -#define GPIO_PCTL_PJ4_CCP4 0x000A0000 // CCP4 on PJ4 -#define GPIO_PCTL_PJ5_M 0x00F00000 // PJ5 mask -#define GPIO_PCTL_PJ5_EPI0S29 0x00800000 // EPI0S29 on PJ5 -#define GPIO_PCTL_PJ5_U1DSR 0x00900000 // U1DSR on PJ5 -#define GPIO_PCTL_PJ5_CCP2 0x00A00000 // CCP2 on PJ5 -#define GPIO_PCTL_PJ6_M 0x0F000000 // PJ6 mask -#define GPIO_PCTL_PJ6_EPI0S30 0x08000000 // EPI0S30 on PJ6 -#define GPIO_PCTL_PJ6_U1RTS 0x09000000 // U1RTS on PJ6 -#define GPIO_PCTL_PJ6_CCP1 0x0A000000 // CCP1 on PJ6 -#define GPIO_PCTL_PJ7_M 0xF0000000 // PJ7 mask -#define GPIO_PCTL_PJ7_U1DTR 0x90000000 // U1DTR on PJ7 -#define GPIO_PCTL_PJ7_CCP0 0xA0000000 // CCP0 on PJ7 +#define GPIO_SI_SUM 0x00000001 // Summary Interrupt //***************************************************************************** // diff --git a/bsp/lm3s8962/Libraries/inc/hw_hibernate.h b/bsp/lm3s8962/Libraries/inc/hw_hibernate.h index 39a07e8a6b..46de994bc5 100644 --- a/bsp/lm3s8962/Libraries/inc/hw_hibernate.h +++ b/bsp/lm3s8962/Libraries/inc/hw_hibernate.h @@ -2,7 +2,7 @@ // // hw_hibernate.h - Defines and Macros for the Hibernation module. // -// Copyright (c) 2007-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2007-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** @@ -41,6 +41,7 @@ // 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_DATA 0x400FC030 // Hibernation Data //***************************************************************************** @@ -81,6 +82,17 @@ // //***************************************************************************** #define HIB_CTL_WRC 0x80000000 // Write Complete/Capable +#define HIB_CTL_OSCHYS 0x00040000 // 32 +#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 @@ -96,6 +108,8 @@ // 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 @@ -107,6 +121,8 @@ // 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 @@ -119,6 +135,8 @@ // 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 @@ -133,6 +151,8 @@ // The following are defines for the bit fields in the HIB_IC register. // //***************************************************************************** +#define HIB_IC_WC 0x00000010 // Write Complete/Capable Masked + // Interrupt Clear #define HIB_IC_EXTW 0x00000008 // External Wake-Up Masked // Interrupt Clear #define HIB_IC_LOWBAT 0x00000004 // Low Battery Voltage Masked @@ -150,6 +170,16 @@ #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. diff --git a/bsp/lm3s8962/Libraries/inc/hw_i2c.h b/bsp/lm3s8962/Libraries/inc/hw_i2c.h index 22368b1737..dccfdafada 100644 --- a/bsp/lm3s8962/Libraries/inc/hw_i2c.h +++ b/bsp/lm3s8962/Libraries/inc/hw_i2c.h @@ -2,7 +2,7 @@ // // hw_i2c.h - Macros used when accessing the I2C master and slave hardware. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** @@ -47,7 +47,13 @@ #define I2C_O_MMIS 0x00000018 // I2C Master Masked Interrupt // Status #define I2C_O_MICR 0x0000001C // I2C Master Interrupt Clear +#define I2C_O_SOAR2 0x0000001C // I2C Slave Own Address 2 #define I2C_O_MCR 0x00000020 // I2C Master Configuration +#define I2C_O_SACKCTL 0x00000020 // I2C ACK Control +#define I2C_O_MCLKOCNT 0x00000024 // I2C Master Clock Low Timeout + // Count +#define I2C_O_MBMON 0x0000002C // I2C Master Bus Monitor +#define I2C_O_PP 0x00000FC0 // I2C Peripheral Properties //***************************************************************************** // @@ -71,6 +77,9 @@ // The following are defines for the bit fields in the I2C_O_SCSR register. // //***************************************************************************** +#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_TREQ 0x00000002 // Transmit Request #define I2C_SCSR_DA 0x00000001 // Device Active @@ -81,9 +90,12 @@ // 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_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 @@ -142,6 +154,7 @@ // 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 // Interrupt Mask //***************************************************************************** @@ -149,6 +162,8 @@ // 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 // Raw Interrupt Status //***************************************************************************** @@ -176,6 +191,8 @@ // 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 //***************************************************************************** @@ -183,8 +200,18 @@ // 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 // 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_MCR register. @@ -194,6 +221,37 @@ #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_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_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_PP register. +// +//***************************************************************************** +#define I2C_PP_HS 0x00000001 // High-Speed Capable + //***************************************************************************** // // The following definitions are deprecated. diff --git a/bsp/lm3s8962/Libraries/inc/hw_i2s.h b/bsp/lm3s8962/Libraries/inc/hw_i2s.h index af9658252f..d139a79834 100644 --- a/bsp/lm3s8962/Libraries/inc/hw_i2s.h +++ b/bsp/lm3s8962/Libraries/inc/hw_i2s.h @@ -2,7 +2,7 @@ // // hw_i2s.h - Macros for use in accessing the I2S registers. // -// Copyright (c) 2008-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2008-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** diff --git a/bsp/lm3s8962/Libraries/inc/hw_ints.h b/bsp/lm3s8962/Libraries/inc/hw_ints.h index daa5917e85..e2becd15b8 100644 --- a/bsp/lm3s8962/Libraries/inc/hw_ints.h +++ b/bsp/lm3s8962/Libraries/inc/hw_ints.h @@ -2,7 +2,7 @@ // // hw_ints.h - Macros that define the interrupt assignment on Stellaris. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** @@ -54,10 +54,10 @@ #define INT_UART1 22 // UART1 Rx and Tx #define INT_SSI0 23 // SSI0 Rx and Tx #define INT_I2C0 24 // I2C0 Master and Slave -#define INT_PWM_FAULT 25 // PWM Fault -#define INT_PWM0 26 // PWM Generator 0 -#define INT_PWM1 27 // PWM Generator 1 -#define INT_PWM2 28 // PWM Generator 2 +#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 // Quadrature Encoder 0 #define INT_ADC0SS0 30 // ADC0 Sequence 0 #define INT_ADC0SS1 31 // ADC0 Sequence 1 @@ -90,7 +90,7 @@ #define INT_ETH 58 // Ethernet #define INT_HIBERNATE 59 // Hibernation module #define INT_USB0 60 // USB 0 Controller -#define INT_PWM3 61 // PWM Generator 3 +#define INT_PWM0_3 61 // PWM0 Generator 3 #define INT_UDMA 62 // uDMA controller #define INT_UDMAERR 63 // uDMA Error #define INT_ADC1SS0 64 // ADC1 Sequence 0 @@ -100,13 +100,69 @@ #define INT_I2S0 68 // I2S0 #define INT_EPI0 69 // EPI0 #define INT_GPIOJ 70 // GPIO Port J +#define INT_GPIOK 71 // GPIO Port K +#define INT_GPIOL 72 // GPIO Port L +#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 // Timer 4A +#define INT_TIMER4B 87 // Timer 4B +#define INT_TIMER5A 108 // Timer 5A +#define INT_TIMER5B 109 // Timer 5B +#define INT_WTIMER0A 110 // Wide Timer 0A +#define INT_WTIMER0B 111 // Wide Timer 0B +#define INT_WTIMER1A 112 // Wide Timer 1A +#define INT_WTIMER1B 113 // Wide Timer 1B +#define INT_WTIMER2A 114 // Wide Timer 2A +#define INT_WTIMER2B 115 // Wide Timer 2B +#define INT_WTIMER3A 116 // Wide Timer 3A +#define INT_WTIMER3B 117 // Wide Timer 3B +#define INT_WTIMER4A 118 // Wide Timer 4A +#define INT_WTIMER4B 119 // Wide Timer 4B +#define INT_WTIMER5A 120 // Wide Timer 5A +#define INT_WTIMER5B 121 // Wide Timer 5B +#define INT_SYSEXC 122 // System Exception (imprecise) +#define INT_PECI0 123 // PECI 0 +#define INT_LPC0 124 // LPC 0 +#define INT_I2C4 125 // I2C4 +#define INT_I2C5 126 // I2C5 +#define INT_GPIOM 127 // GPIO Port M +#define INT_GPION 128 // GPIO Port N +#define INT_FAN0 130 // FAN 0 +#define INT_GPIOP0 132 // GPIO Port P (Summary or P0) +#define INT_GPIOP1 133 // GPIO Port P1 +#define INT_GPIOP2 134 // GPIO Port P2 +#define INT_GPIOP3 135 // GPIO Port P3 +#define INT_GPIOP4 136 // GPIO Port P4 +#define INT_GPIOP5 137 // GPIO Port P5 +#define INT_GPIOP6 138 // GPIO Port P6 +#define INT_GPIOP7 139 // GPIO Port P7 +#define INT_GPIOQ0 140 // GPIO Port Q (Summary or Q0) +#define INT_GPIOQ1 141 // GPIO Port Q1 +#define INT_GPIOQ2 142 // GPIO Port Q2 +#define INT_GPIOQ3 143 // GPIO Port Q3 +#define INT_GPIOQ4 144 // GPIO Port Q4 +#define INT_GPIOQ5 145 // GPIO Port Q5 +#define INT_GPIOQ6 146 // GPIO Port Q6 +#define INT_GPIOQ7 147 // GPIO Port Q7 +#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 //***************************************************************************** // // The following are defines for the total number of interrupts. // //***************************************************************************** -#define NUM_INTERRUPTS 71 +#define NUM_INTERRUPTS 155 //***************************************************************************** // @@ -130,11 +186,16 @@ //***************************************************************************** #define INT_SSI 23 // SSI Rx and Tx #define INT_I2C 24 // I2C Master and Slave +#define INT_PWM_FAULT 25 // PWM Fault +#define INT_PWM0 26 // PWM Generator 0 +#define INT_PWM1 27 // PWM Generator 1 +#define INT_PWM2 28 // PWM Generator 2 #define INT_QEI 29 // Quadrature Encoder #define INT_ADC0 30 // ADC Sequence 0 #define INT_ADC1 31 // ADC Sequence 1 #define INT_ADC2 32 // ADC Sequence 2 #define INT_ADC3 33 // ADC Sequence 3 +#define INT_PWM3 61 // PWM Generator 3 #endif diff --git a/bsp/lm3s8962/Libraries/inc/hw_lpc.h b/bsp/lm3s8962/Libraries/inc/hw_lpc.h new file mode 100644 index 0000000000..d39523f069 --- /dev/null +++ b/bsp/lm3s8962/Libraries/inc/hw_lpc.h @@ -0,0 +1,974 @@ +//***************************************************************************** +// +// hw_lpc.h - Macros used when accessing the LPC hardware. +// +// Copyright (c) 2010-2011 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 8264 of the Stellaris Firmware Development Package. +// +//***************************************************************************** + +#ifndef __HW_LPC_H__ +#define __HW_LPC_H__ + +//***************************************************************************** +// +// The following are defines for the LPC register addresses. +// +//***************************************************************************** +#define LPC_O_CTL 0x00000000 // LPC Control +#define LPC_O_STS 0x00000004 // LPC Status +#define LPC_O_IRQCTL 0x00000008 // LPC IRQ Control +#define LPC_O_IRQST 0x0000000C // LPC IRQ Status +#define LPC_O_CH0CTL 0x00000010 // LPC Channel 0 Control +#define LPC_O_CH0ST 0x00000014 // LPC Channel 0 Status +#define LPC_O_CH0ADR 0x00000018 // LPC Channel 0 Address +#define LPC_O_CH1CTL 0x00000020 // LPC Channel 1 Control +#define LPC_O_CH1ST 0x00000024 // LPC Channel 1 Status +#define LPC_O_CH1ADR 0x00000028 // LPC Channel 1 Address +#define LPC_O_CH2CTL 0x00000030 // LPC Channel 2 Control +#define LPC_O_CH2ST 0x00000034 // LPC Channel 2 Status +#define LPC_O_CH2ADR 0x00000038 // LPC Channel 2 Address +#define LPC_O_CH3CTL 0x00000040 // LPC Channel 3 Control +#define LPC_O_CH3ST 0x00000044 // LPC Channel 3 Status +#define LPC_O_CH3ADR 0x00000048 // LPC Channel 3 Address +#define LPC_O_CH4CTL 0x00000050 // LPC Channel 4 Control +#define LPC_O_CH4ST 0x00000054 // LPC Channel 4 Status +#define LPC_O_CH4ADR 0x00000058 // LPC Channel 4 Address +#define LPC_O_CH5CTL 0x00000060 // LPC Channel 5 Control +#define LPC_O_CH5ST 0x00000064 // LPC Channel 5 Status +#define LPC_O_CH5ADR 0x00000068 // LPC Channel 5 Address +#define LPC_O_CH6CTL 0x00000070 // LPC Channel 6 Control +#define LPC_O_CH6ST 0x00000074 // LPC Channel 6 Status +#define LPC_O_CH6ADR 0x00000078 // LPC Channel 6 Address +#define LPC_O_CH7CTL 0x00000080 // LPC Channel 7 / COMx Control +#define LPC_O_CH7ST 0x00000084 // LPC Channel 7 / COMx Status +#define LPC_O_CH7ADR 0x00000088 // LPC Channel 7 / COMx Address +#define LPC_O_STSADDR 0x000000A0 // LPC Status Block Address +#define LPC_O_IM 0x00000100 // LPC Interrupt Mask +#define LPC_O_RIS 0x00000104 // LPC Raw Interrupt Status +#define LPC_O_MIS 0x00000108 // LPC Masked Interrupt Status +#define LPC_O_IC 0x0000010C // LPC Interrupt Clear +#define LPC_O_DMACX 0x00000120 // LPC DMA and COMx Control +#define LPC_O_POOL 0x00000400 // LPC Register Pool +#define LPC_O_PP 0x00000FC0 // LPC Peripheral Properties + +//***************************************************************************** +// +// The following are defines for the bit fields in the LPC_O_CTL register. +// +//***************************************************************************** +#define LPC_CTL_SCICNT_M 0x00000C00 // LPC0SCI Pulse Length +#define LPC_CTL_SCICNT_0 0x00000000 // No pulse occurs on the LPC0SCI + // pin +#define LPC_CTL_SCICNT_2 0x00000400 // The pulse on the LPC0SCI pin is + // 2 LPC0CLK periods +#define LPC_CTL_SCICNT_4 0x00000800 // The pulse on the LPC0SCI pin is + // 4 LPC0CLK periods +#define LPC_CTL_SCICNT_8 0x00000C00 // The pulse on the LPC0SCI pin is + // 8 LPC0CLK periods +#define LPC_CTL_SCI 0x00000200 // Start SCI Pulse +#define LPC_CTL_WAKE 0x00000100 // Restart the LPC Bus +#define LPC_CTL_CE7 0x00000080 // Enable Channel 7 +#define LPC_CTL_CE6 0x00000040 // Enable Channel 6 +#define LPC_CTL_CE5 0x00000020 // Enable Channel 5 +#define LPC_CTL_CE4 0x00000010 // Enable Channel 4 +#define LPC_CTL_CE3 0x00000008 // Enable Channel 3 +#define LPC_CTL_CE2 0x00000004 // Enable Channel 2 +#define LPC_CTL_CE1 0x00000002 // Enable Channel 1 +#define LPC_CTL_CE0 0x00000001 // Enable Channel 0 + +//***************************************************************************** +// +// The following are defines for the bit fields in the LPC_O_STS register. +// +//***************************************************************************** +#define LPC_STS_CHCNT_M 0x00700000 // Number of Channels +#define LPC_STS_POOLSZ_M 0x00070000 // Register Pool Size +#define LPC_STS_POOLSZ_256 0x00010000 // 256 bytes +#define LPC_STS_POOLSZ_512 0x00020000 // 512 bytes +#define LPC_STS_POOLSZ_768 0x00030000 // 768 bytes +#define LPC_STS_POOLSZ_1024 0x00040000 // 1024 bytes +#define LPC_STS_RST 0x00000400 // LPC is in Reset +#define LPC_STS_BUSY 0x00000200 // LPC is Busy +#define LPC_STS_SLEEP 0x00000100 // LPC is in Sleep Mode +#define LPC_STS_CA7 0x00000080 // Channel 7 Active +#define LPC_STS_CA6 0x00000040 // Channel 6 Active +#define LPC_STS_CA5 0x00000020 // Channel 5 Active +#define LPC_STS_CA4 0x00000010 // Channel 4 Active +#define LPC_STS_CA3 0x00000008 // Channel 3 Active +#define LPC_STS_CA2 0x00000004 // Channel 2 Active +#define LPC_STS_CA1 0x00000002 // Channel 1 Active +#define LPC_STS_CA0 0x00000001 // Channel 0 Active +#define LPC_STS_CHCNT_S 20 + +//***************************************************************************** +// +// The following are defines for the bit fields in the LPC_O_IRQCTL register. +// +//***************************************************************************** +#define LPC_IRQCTL_I15 0x80000000 // Manual IRQ15 State +#define LPC_IRQCTL_I14 0x40000000 // Manual IRQ14 State +#define LPC_IRQCTL_I13 0x20000000 // Manual IRQ13 State +#define LPC_IRQCTL_I12 0x10000000 // Manual IRQ12 State +#define LPC_IRQCTL_I11 0x08000000 // Manual IRQ11 State +#define LPC_IRQCTL_I10 0x04000000 // Manual IRQ10 State +#define LPC_IRQCTL_I9 0x02000000 // Manual IRQ9 State +#define LPC_IRQCTL_I8 0x01000000 // Manual IRQ8 State +#define LPC_IRQCTL_I7 0x00800000 // Manual IRQ7 State +#define LPC_IRQCTL_I6 0x00400000 // Manual IRQ6 State +#define LPC_IRQCTL_I5 0x00200000 // Manual IRQ5 State +#define LPC_IRQCTL_I4 0x00100000 // Manual IRQ4 State +#define LPC_IRQCTL_I3 0x00080000 // Manual IRQ3 State +#define LPC_IRQCTL_I2 0x00040000 // Manual IRQ2 State +#define LPC_IRQCTL_I1 0x00020000 // Manual IRQ1 State +#define LPC_IRQCTL_AH 0x00010000 // Active High Control +#define LPC_IRQCTL_PULSE 0x00000004 // Pulse IRQ States +#define LPC_IRQCTL_ONCHG 0x00000002 // Initiate on Change +#define LPC_IRQCTL_SND 0x00000001 // Initiate Immediately + +//***************************************************************************** +// +// The following are defines for the bit fields in the LPC_O_IRQST register. +// +//***************************************************************************** +#define LPC_IRQST_I15 0x80000000 // Host IRQ15 State +#define LPC_IRQST_I14 0x40000000 // IRQ14 State +#define LPC_IRQST_I13 0x20000000 // IRQ13 State +#define LPC_IRQST_I12 0x10000000 // IRQ12 State +#define LPC_IRQST_I11 0x08000000 // IRQ11 State +#define LPC_IRQST_I10 0x04000000 // IRQ10 State +#define LPC_IRQST_I9 0x02000000 // IRQ9 State +#define LPC_IRQST_I8 0x01000000 // IRQ8 State +#define LPC_IRQST_I7 0x00800000 // IRQ7 State +#define LPC_IRQST_I6 0x00400000 // IRQ6 State +#define LPC_IRQST_I5 0x00200000 // IRQ5 State +#define LPC_IRQST_I4 0x00100000 // IRQ4 State +#define LPC_IRQST_I3 0x00080000 // IRQ3 State +#define LPC_IRQST_I2 0x00040000 // IRQ2 State +#define LPC_IRQST_I1 0x00020000 // IRQ1 State +#define LPC_IRQST_I0 0x00010000 // IRQ0 State +#define LPC_IRQST_SIRQ 0x00000004 // Pulse IRQ States +#define LPC_IRQST_CONT 0x00000001 // Initiate Immediately + +//***************************************************************************** +// +// The following are defines for the bit fields in the LPC_O_CH0CTL register. +// +//***************************************************************************** +#define LPC_CH0CTL_IRQSEL2_M 0xF0000000 // IRQ Select 2 +#define LPC_CH0CTL_IRQSEL1_M 0x0F000000 // IRQ Select 1 +#define LPC_CH0CTL_IRQSEL0_M 0x00F00000 // IRQ Select 0 +#define LPC_CH0CTL_IRQEN2 0x00080000 // IRQ Enable 2 +#define LPC_CH0CTL_CX 0x00080000 // IRQ Enable 2 +#define LPC_CH0CTL_IRQEN1 0x00040000 // IRQ Enable 1 +#define LPC_CH0CTL_IRQEN0_M 0x00030000 // IRQ Enable 0 +#define LPC_CH0CTL_IRQEN0_DIS 0x00000000 // Trigger disabled +#define LPC_CH0CTL_IRQEN0_TRIG1 0x00010000 // Trigger 1 +#define LPC_CH0CTL_IRQEN0_TRIG2 0x00020000 // Trigger 2 +#define LPC_CH0CTL_IRQEN0_TRIG3 0x00030000 // Trigger 3 +#define LPC_CH0CTL_ARBDIS 0x00008000 // Arbitration Disabled +#define LPC_CH0CTL_OFFSET_M 0x00003FE0 // Base Offset in Register Pool +#define LPC_CH0CTL_AMASK_M 0x0000001C // Address Mask for Ranges +#define LPC_CH0CTL_AMASK_4 0x00000000 // Address mask of 0x3; mailbox + // size of 4 bytes for an endpoint + // range or used for single + // endpoints +#define LPC_CH0CTL_AMASK_8 0x00000004 // Address mask of 0x7; mailbox + // size of 8 bytes +#define LPC_CH0CTL_AMASK_16 0x00000008 // Address mask of 0xF; mailbox + // size of 16 bytes +#define LPC_CH0CTL_AMASK_32 0x0000000C // Address mask of 0x1F; mailbox + // size of 32 bytes +#define LPC_CH0CTL_AMASK_64 0x00000010 // Address mask of 0x3F; mailbox + // size of 64 bytes +#define LPC_CH0CTL_AMASK_128 0x00000014 // Address mask of 0x7F; mailbox + // size of 128 bytes +#define LPC_CH0CTL_AMASK_256 0x00000018 // Address mask of 0xFF; mailbox + // size of 256 bytes +#define LPC_CH0CTL_AMASK_512 0x0000001C // Address mask of 0x1FF; mailbox + // size of 512 bytes +#define LPC_CH0CTL_TYPE 0x00000001 // Channel Type +#define LPC_CH0CTL_IRQSEL2_S 28 +#define LPC_CH0CTL_IRQSEL1_S 24 +#define LPC_CH0CTL_IRQSEL0_S 20 +#define LPC_CH0CTL_OFFSET_S 5 + +//***************************************************************************** +// +// The following are defines for the bit fields in the LPC_O_CH0ST register. +// +//***************************************************************************** +#define LPC_CH0ST_USER_M 0x00001F00 // User Data +#define LPC_CH0ST_LASTHW 0x00000080 // Last Host Write +#define LPC_CH0ST_HW1ST 0x00000040 // First Host Write +#define LPC_CH0ST_LASTSW 0x00000020 // Last Slave Write +#define LPC_CH0ST_SW1ST 0x00000010 // First Slave Write +#define LPC_CH0ST_CMD 0x00000008 // Command or Data +#define LPC_CH0ST_FRMH 0x00000002 // From-Host Transaction +#define LPC_CH0ST_TOH 0x00000001 // To-Host Transaction +#define LPC_CH0ST_USER_S 8 + +//***************************************************************************** +// +// The following are defines for the bit fields in the LPC_O_CH0ADR register. +// +//***************************************************************************** +#define LPC_CH0ADR_ADDRH_M 0xFFFF0000 // Upper Address Match +#define LPC_CH0ADR_ADDRL_M 0x0000FFF8 // Lower Address Match +#define LPC_CH0ADR_ADDRL1 0x00000002 // Endpoint Match Bit 1 +#define LPC_CH0ADR_ADDRH_S 16 +#define LPC_CH0ADR_ADDRL_S 3 + +//***************************************************************************** +// +// The following are defines for the bit fields in the LPC_O_CH1CTL register. +// +//***************************************************************************** +#define LPC_CH1CTL_IRQSEL2_M 0xF0000000 // IRQ Select 2 +#define LPC_CH1CTL_IRQSEL1_M 0x0F000000 // IRQ Select 1 +#define LPC_CH1CTL_IRQSEL0_M 0x00F00000 // IRQ Select 0 +#define LPC_CH1CTL_IRQEN2 0x00080000 // IRQ Enable 2 +#define LPC_CH1CTL_CX 0x00080000 // IRQ Enable 2 +#define LPC_CH1CTL_IRQEN1 0x00040000 // IRQ Enable 1 +#define LPC_CH1CTL_IRQEN0_M 0x00030000 // IRQ Enable 0 +#define LPC_CH1CTL_IRQEN0_DIS 0x00000000 // Trigger disabled +#define LPC_CH1CTL_IRQEN0_TRIG1 0x00010000 // Trigger 1 +#define LPC_CH1CTL_IRQEN0_TRGI2 0x00020000 // Trigger 2 +#define LPC_CH1CTL_IRQEN0_TRGI3 0x00030000 // Trigger 3 +#define LPC_CH1CTL_ARBDIS 0x00008000 // Arbitration Disabled +#define LPC_CH1CTL_OFFSET_M 0x00003FE0 // Base Offset in Register Pool +#define LPC_CH1CTL_AMASK_M 0x0000001C // Address Mask for Ranges +#define LPC_CH1CTL_AMASK_4 0x00000000 // Address mask of 0x3; mailbox + // size of 4 bytes for an endpoint + // range or used for single + // endpoints +#define LPC_CH1CTL_AMASK_8 0x00000004 // Address mask of 0x7; mailbox + // size of 8 bytes +#define LPC_CH1CTL_AMASK_16 0x00000008 // Address mask of 0xF; mailbox + // size of 16 bytes +#define LPC_CH1CTL_AMASK_32 0x0000000C // Address mask of 0x1F; mailbox + // size of 32 bytes +#define LPC_CH1CTL_AMASK_64 0x00000010 // Address mask of 0x3F; mailbox + // size of 64 bytes +#define LPC_CH1CTL_AMASK_128 0x00000014 // Address mask of 0x7F; mailbox + // size of 128 bytes +#define LPC_CH1CTL_AMASK_256 0x00000018 // Address mask of 0xFF; mailbox + // size of 256 bytes +#define LPC_CH1CTL_AMASK_512 0x0000001C // Address mask of 0x1FF; mailbox + // size of 512 bytes +#define LPC_CH1CTL_TYPE 0x00000001 // Channel Type +#define LPC_CH1CTL_IRQSEL2_S 28 +#define LPC_CH1CTL_IRQSEL1_S 24 +#define LPC_CH1CTL_IRQSEL0_S 20 +#define LPC_CH1CTL_OFFSET_S 5 + +//***************************************************************************** +// +// The following are defines for the bit fields in the LPC_O_CH1ST register. +// +//***************************************************************************** +#define LPC_CH1ST_USER_M 0x00001F00 // User Data +#define LPC_CH1ST_LASTHW 0x00000080 // Last Host Write +#define LPC_CH1ST_HW1ST 0x00000040 // First Host Write +#define LPC_CH1ST_LASTSW 0x00000020 // Last Slave Write +#define LPC_CH1ST_SW1ST 0x00000010 // First Slave Write +#define LPC_CH1ST_CMD 0x00000008 // Command or Data +#define LPC_CH1ST_FRMH 0x00000002 // From-Host Transaction +#define LPC_CH1ST_TOH 0x00000001 // To-Host Transaction +#define LPC_CH1ST_USER_S 8 + +//***************************************************************************** +// +// The following are defines for the bit fields in the LPC_O_CH1ADR register. +// +//***************************************************************************** +#define LPC_CH1ADR_ADDRH_M 0xFFFF0000 // Upper Address Match +#define LPC_CH1ADR_ADDRL_M 0x0000FFF8 // Lower Address Match +#define LPC_CH1ADR_ADDRL1 0x00000002 // Endpoint Match Bit 1 +#define LPC_CH1ADR_ADDRH_S 16 +#define LPC_CH1ADR_ADDRL_S 3 + +//***************************************************************************** +// +// The following are defines for the bit fields in the LPC_O_CH2CTL register. +// +//***************************************************************************** +#define LPC_CH2CTL_IRQSEL2_M 0xF0000000 // IRQ Select 2 +#define LPC_CH2CTL_IRQSEL1_M 0x0F000000 // IRQ Select 1 +#define LPC_CH2CTL_IRQSEL0_M 0x00F00000 // IRQ Select 0 +#define LPC_CH2CTL_CX 0x00080000 // IRQ Enable 2 +#define LPC_CH2CTL_IRQEN2 0x00080000 // IRQ Enable 2 +#define LPC_CH2CTL_IRQEN1 0x00040000 // IRQ Enable 1 +#define LPC_CH2CTL_IRQEN0_M 0x00030000 // IRQ Enable 0 +#define LPC_CH2CTL_IRQEN0_DIS 0x00000000 // Trigger disabled +#define LPC_CH2CTL_IRQEN0_TRIG1 0x00010000 // Trigger 1 +#define LPC_CH2CTL_IRQEN0_TRIG2 0x00020000 // Trigger 2 +#define LPC_CH2CTL_IRQEN0_TRIG3 0x00030000 // Trigger 3 +#define LPC_CH2CTL_ARBDIS 0x00008000 // Arbitration Disabled +#define LPC_CH2CTL_OFFSET_M 0x00003FE0 // Base Offset in Register Pool +#define LPC_CH2CTL_AMASK_M 0x0000001C // Address Mask for Ranges +#define LPC_CH2CTL_AMASK_4 0x00000000 // Address mask of 0x3; mailbox + // size of 4 bytes for an endpoint + // range or used for single + // endpoints +#define LPC_CH2CTL_AMASK_8 0x00000004 // Address mask of 0x7; mailbox + // size of 8 bytes +#define LPC_CH2CTL_AMASK_16 0x00000008 // Address mask of 0xF; mailbox + // size of 16 bytes +#define LPC_CH2CTL_AMASK_32 0x0000000C // Address mask of 0x1F; mailbox + // size of 32 bytes +#define LPC_CH2CTL_AMASK_64 0x00000010 // Address mask of 0x3F; mailbox + // size of 64 bytes +#define LPC_CH2CTL_AMASK_128 0x00000014 // Address mask of 0x7F; mailbox + // size of 128 bytes +#define LPC_CH2CTL_AMASK_256 0x00000018 // Address mask of 0xFF; mailbox + // size of 256 bytes +#define LPC_CH2CTL_AMASK_512 0x0000001C // Address mask of 0x1FF; mailbox + // size of 512 bytes +#define LPC_CH2CTL_TYPE 0x00000001 // Channel Type +#define LPC_CH2CTL_IRQSEL2_S 28 +#define LPC_CH2CTL_IRQSEL1_S 24 +#define LPC_CH2CTL_IRQSEL0_S 20 +#define LPC_CH2CTL_OFFSET_S 5 + +//***************************************************************************** +// +// The following are defines for the bit fields in the LPC_O_CH2ST register. +// +//***************************************************************************** +#define LPC_CH2ST_USER_M 0x00001F00 // User Data +#define LPC_CH2ST_LASTHW 0x00000080 // Last Host Write +#define LPC_CH2ST_HW1ST 0x00000040 // First Host Write +#define LPC_CH2ST_LASTSW 0x00000020 // Last Slave Write +#define LPC_CH2ST_SW1ST 0x00000010 // First Slave Write +#define LPC_CH2ST_CMD 0x00000008 // Command or Data +#define LPC_CH2ST_FRMH 0x00000002 // From-Host Transaction +#define LPC_CH2ST_TOH 0x00000001 // To-Host Transaction +#define LPC_CH2ST_USER_S 8 + +//***************************************************************************** +// +// The following are defines for the bit fields in the LPC_O_CH2ADR register. +// +//***************************************************************************** +#define LPC_CH2ADR_ADDRH_M 0xFFFF0000 // Upper Address Match +#define LPC_CH2ADR_ADDRL_M 0x0000FFF8 // Lower Address Match +#define LPC_CH2ADR_ADDRL1 0x00000002 // Endpoint Match Bit 1 +#define LPC_CH2ADR_ADDRH_S 16 +#define LPC_CH2ADR_ADDRL_S 3 + +//***************************************************************************** +// +// The following are defines for the bit fields in the LPC_O_CH3CTL register. +// +//***************************************************************************** +#define LPC_CH3CTL_IRQSEL2_M 0xF0000000 // IRQ Select 2 +#define LPC_CH3CTL_IRQSEL1_M 0x0F000000 // IRQ Select 1 +#define LPC_CH3CTL_IRQSEL0_M 0x00F00000 // IRQ Select 0 +#define LPC_CH3CTL_IRQEN2 0x00080000 // IRQ Enable 2 +#define LPC_CH3CTL_CX 0x00080000 // IRQ Enable 2 +#define LPC_CH3CTL_IRQEN1 0x00040000 // IRQ Enable 1 +#define LPC_CH3CTL_IRQEN0_M 0x00030000 // IRQ Enable 0 +#define LPC_CH3CTL_IRQEN0_DIS 0x00000000 // Trigger disabled +#define LPC_CH3CTL_IRQEN0_TRIG1 0x00010000 // Trigger 1 +#define LPC_CH3CTL_IRQEN0_TRIG2 0x00020000 // Trigger 2 +#define LPC_CH3CTL_IRQEN0_TRIG3 0x00030000 // Trigger 3 +#define LPC_CH3CTL_ARBDIS 0x00008000 // Arbitration Disabled +#define LPC_CH3CTL_OFFSET_M 0x00003FE0 // Base Offset in Register Pool +#define LPC_CH3CTL_AMASK_M 0x0000001C // Address Mask for Ranges +#define LPC_CH3CTL_AMASK_4 0x00000000 // Address mask of 0x3; mailbox + // size of 4 bytes for an endpoint + // range or used for single + // endpoints +#define LPC_CH3CTL_AMASK_8 0x00000004 // Address mask of 0x7; mailbox + // size of 8 bytes +#define LPC_CH3CTL_AMASK_16 0x00000008 // Address mask of 0xF; mailbox + // size of 16 bytes +#define LPC_CH3CTL_AMASK_32 0x0000000C // Address mask of 0x1F; mailbox + // size of 32 bytes +#define LPC_CH3CTL_AMASK_64 0x00000010 // Address mask of 0x3F; mailbox + // size of 64 bytes +#define LPC_CH3CTL_AMASK_128 0x00000014 // Address mask of 0x7F; mailbox + // size of 128 bytes +#define LPC_CH3CTL_AMASK_256 0x00000018 // Address mask of 0xFF; mailbox + // size of 256 bytes +#define LPC_CH3CTL_AMASK_512 0x0000001C // Address mask of 0x1FF; mailbox + // size of 512 bytes +#define LPC_CH3CTL_TYPE 0x00000001 // Channel Type +#define LPC_CH3CTL_IRQSEL2_S 28 +#define LPC_CH3CTL_IRQSEL1_S 24 +#define LPC_CH3CTL_IRQSEL0_S 20 +#define LPC_CH3CTL_OFFSET_S 5 + +//***************************************************************************** +// +// The following are defines for the bit fields in the LPC_O_CH3ST register. +// +//***************************************************************************** +#define LPC_CH3ST_USER_M 0x00001F00 // User Data +#define LPC_CH3ST_LASTHW 0x00000080 // Last Host Write +#define LPC_CH3ST_HW1ST 0x00000040 // First Host Write +#define LPC_CH3ST_LASTSW 0x00000020 // Last Slave Write +#define LPC_CH3ST_SW1ST 0x00000010 // First Slave Write +#define LPC_CH3ST_CMD 0x00000008 // Command or Data +#define LPC_CH3ST_FRMH 0x00000002 // From-Host Transaction +#define LPC_CH3ST_TOH 0x00000001 // To-Host Transaction +#define LPC_CH3ST_USER_S 8 + +//***************************************************************************** +// +// The following are defines for the bit fields in the LPC_O_CH3ADR register. +// +//***************************************************************************** +#define LPC_CH3ADR_ADDRH_M 0xFFFF0000 // Upper Address Match +#define LPC_CH3ADR_ADDRL_M 0x0000FFF8 // Lower Address Match +#define LPC_CH3ADR_ADDRL1 0x00000002 // Endpoint Match Bit 1 +#define LPC_CH3ADR_ADDRH_S 16 +#define LPC_CH3ADR_ADDRL_S 3 + +//***************************************************************************** +// +// The following are defines for the bit fields in the LPC_O_CH4CTL register. +// +//***************************************************************************** +#define LPC_CH4CTL_IRQSEL2_M 0xF0000000 // IRQ Select 2 +#define LPC_CH4CTL_IRQSEL1_M 0x0F000000 // IRQ Select 1 +#define LPC_CH4CTL_IRQSEL0_M 0x00F00000 // IRQ Select 0 +#define LPC_CH4CTL_CX 0x00080000 // IRQ Enable 2 +#define LPC_CH4CTL_IRQEN2 0x00080000 // IRQ Enable 2 +#define LPC_CH4CTL_IRQEN1 0x00040000 // IRQ Enable 1 +#define LPC_CH4CTL_IRQEN0_M 0x00030000 // IRQ Enable 0 +#define LPC_CH4CTL_IRQEN0_DIS 0x00000000 // Trigger disabled +#define LPC_CH4CTL_IRQEN0_TRIG1 0x00010000 // Trigger 1 +#define LPC_CH4CTL_IRQEN0_TRIG2 0x00020000 // Trigger 2 +#define LPC_CH4CTL_IRQEN0_TRIG3 0x00030000 // Trigger 3 +#define LPC_CH4CTL_ARBDIS 0x00008000 // Arbitration Disabled +#define LPC_CH4CTL_OFFSET_M 0x00003FE0 // Base Offset in Register Pool +#define LPC_CH4CTL_AMASK_M 0x0000001C // Address Mask for Ranges +#define LPC_CH4CTL_AMASK_4 0x00000000 // Address mask of 0x3; mailbox + // size of 4 bytes for an endpoint + // range or used for single + // endpoints +#define LPC_CH4CTL_AMASK_8 0x00000004 // Address mask of 0x7; mailbox + // size of 8 bytes +#define LPC_CH4CTL_AMASK_16 0x00000008 // Address mask of 0xF; mailbox + // size of 16 bytes +#define LPC_CH4CTL_AMASK_32 0x0000000C // Address mask of 0x1F; mailbox + // size of 32 bytes +#define LPC_CH4CTL_AMASK_64 0x00000010 // Address mask of 0x3F; mailbox + // size of 64 bytes +#define LPC_CH4CTL_AMASK_128 0x00000014 // Address mask of 0x7F; mailbox + // size of 128 bytes +#define LPC_CH4CTL_AMASK_256 0x00000018 // Address mask of 0xFF; mailbox + // size of 256 bytes +#define LPC_CH4CTL_AMASK_512 0x0000001C // Address mask of 0x1FF; mailbox + // size of 512 bytes +#define LPC_CH4CTL_TYPE 0x00000001 // Channel Type +#define LPC_CH4CTL_IRQSEL2_S 28 +#define LPC_CH4CTL_IRQSEL1_S 24 +#define LPC_CH4CTL_IRQSEL0_S 20 +#define LPC_CH4CTL_OFFSET_S 5 + +//***************************************************************************** +// +// The following are defines for the bit fields in the LPC_O_CH4ST register. +// +//***************************************************************************** +#define LPC_CH4ST_USER_M 0x00001F00 // User Data +#define LPC_CH4ST_LASTHW 0x00000080 // Last Host Write +#define LPC_CH4ST_HW1ST 0x00000040 // First Host Write +#define LPC_CH4ST_LASTSW 0x00000020 // Last Slave Write +#define LPC_CH4ST_SW1ST 0x00000010 // First Slave Write +#define LPC_CH4ST_CMD 0x00000008 // Command or Data +#define LPC_CH4ST_FRMH 0x00000002 // From-Host Transaction +#define LPC_CH4ST_TOH 0x00000001 // To-Host Transaction +#define LPC_CH4ST_USER_S 8 + +//***************************************************************************** +// +// The following are defines for the bit fields in the LPC_O_CH4ADR register. +// +//***************************************************************************** +#define LPC_CH4ADR_ADDRH_M 0xFFFF0000 // Upper Address Match +#define LPC_CH4ADR_ADDRL_M 0x0000FFF8 // Lower Address Match +#define LPC_CH4ADR_ADDRH_S 16 +#define LPC_CH4ADR_ADDRL_S 3 + +//***************************************************************************** +// +// The following are defines for the bit fields in the LPC_O_CH5CTL register. +// +//***************************************************************************** +#define LPC_CH5CTL_IRQSEL2_M 0xF0000000 // IRQ Select 2 +#define LPC_CH5CTL_IRQSEL1_M 0x0F000000 // IRQ Select 1 +#define LPC_CH5CTL_IRQSEL0_M 0x00F00000 // IRQ Select 0 +#define LPC_CH5CTL_IRQEN2 0x00080000 // IRQ Enable 2 +#define LPC_CH5CTL_CX 0x00080000 // IRQ Enable 2 +#define LPC_CH5CTL_IRQEN1 0x00040000 // IRQ Enable 1 +#define LPC_CH5CTL_IRQEN0_M 0x00030000 // IRQ Enable 0 +#define LPC_CH5CTL_IRQEN0_DIS 0x00000000 // Trigger disabled +#define LPC_CH5CTL_IRQEN0_TRIG1 0x00010000 // Trigger 1 +#define LPC_CH5CTL_IRQEN0_TRIG2 0x00020000 // Trigger 2 +#define LPC_CH5CTL_IRQEN0_TRIG3 0x00030000 // Trigger 3 +#define LPC_CH5CTL_ARBDIS 0x00008000 // Arbitration Disabled +#define LPC_CH5CTL_OFFSET_M 0x00003FE0 // Base Offset in Register Pool +#define LPC_CH5CTL_AMASK_M 0x0000001C // Address Mask for Ranges +#define LPC_CH5CTL_AMASK_4 0x00000000 // Address mask of 0x3; mailbox + // size of 4 bytes for an endpoint + // range or used for single + // endpoints +#define LPC_CH5CTL_AMASK_8 0x00000004 // Address mask of 0x7; mailbox + // size of 8 bytes +#define LPC_CH5CTL_AMASK_16 0x00000008 // Address mask of 0xF; mailbox + // size of 16 bytes +#define LPC_CH5CTL_AMASK_32 0x0000000C // Address mask of 0x1F; mailbox + // size of 32 bytes +#define LPC_CH5CTL_AMASK_64 0x00000010 // Address mask of 0x3F; mailbox + // size of 64 bytes +#define LPC_CH5CTL_AMASK_128 0x00000014 // Address mask of 0x7F; mailbox + // size of 128 bytes +#define LPC_CH5CTL_AMASK_256 0x00000018 // Address mask of 0xFF; mailbox + // size of 256 bytes +#define LPC_CH5CTL_AMASK_512 0x0000001C // Address mask of 0x1FF; mailbox + // size of 512 bytes +#define LPC_CH5CTL_TYPE 0x00000001 // Channel Type +#define LPC_CH5CTL_IRQSEL2_S 28 +#define LPC_CH5CTL_IRQSEL1_S 24 +#define LPC_CH5CTL_IRQSEL0_S 20 +#define LPC_CH5CTL_OFFSET_S 5 + +//***************************************************************************** +// +// The following are defines for the bit fields in the LPC_O_CH5ST register. +// +//***************************************************************************** +#define LPC_CH5ST_USER_M 0x00001F00 // User Data +#define LPC_CH5ST_LASTHW 0x00000080 // Last Host Write +#define LPC_CH5ST_HW1ST 0x00000040 // First Host Write +#define LPC_CH5ST_LASTSW 0x00000020 // Last Slave Write +#define LPC_CH5ST_SW1ST 0x00000010 // First Slave Write +#define LPC_CH5ST_CMD 0x00000008 // Command or Data +#define LPC_CH5ST_FRMH 0x00000002 // From-Host Transaction +#define LPC_CH5ST_TOH 0x00000001 // To-Host Transaction +#define LPC_CH5ST_USER_S 8 + +//***************************************************************************** +// +// The following are defines for the bit fields in the LPC_O_CH5ADR register. +// +//***************************************************************************** +#define LPC_CH5ADR_ADDRH_M 0xFFFF0000 // Upper Address Match +#define LPC_CH5ADR_ADDRL_M 0x0000FFF8 // Lower Address Match +#define LPC_CH5ADR_ADDRH_S 16 +#define LPC_CH5ADR_ADDRL_S 3 + +//***************************************************************************** +// +// The following are defines for the bit fields in the LPC_O_CH6CTL register. +// +//***************************************************************************** +#define LPC_CH6CTL_IRQSEL2_M 0xF0000000 // IRQ Select 2 +#define LPC_CH6CTL_IRQSEL1_M 0x0F000000 // IRQ Select 1 +#define LPC_CH6CTL_IRQSEL0_M 0x00F00000 // IRQ Select 0 +#define LPC_CH6CTL_CX 0x00080000 // IRQ Enable 2 +#define LPC_CH6CTL_IRQEN2 0x00080000 // IRQ Enable 2 +#define LPC_CH6CTL_IRQEN1 0x00040000 // IRQ Enable 1 +#define LPC_CH6CTL_IRQEN0_M 0x00030000 // IRQ Enable 0 +#define LPC_CH6CTL_IRQEN0_DIS 0x00000000 // Trigger disabled +#define LPC_CH6CTL_IRQEN0_TRIG1 0x00010000 // Trigger 1 +#define LPC_CH6CTL_IRQEN0_TRIG2 0x00020000 // Trigger 2 +#define LPC_CH6CTL_IRQEN0_TRIG3 0x00030000 // Trigger 3 +#define LPC_CH6CTL_ARBDIS 0x00008000 // Arbitration Disabled +#define LPC_CH6CTL_OFFSET_M 0x00003FE0 // Base Offset in Register Pool +#define LPC_CH6CTL_AMASK_M 0x0000001C // Address Mask for Ranges +#define LPC_CH6CTL_AMASK_4 0x00000000 // Address mask of 0x3; mailbox + // size of 4 bytes for an endpoint + // range or used for single + // endpoints +#define LPC_CH6CTL_AMASK_8 0x00000004 // Address mask of 0x7; mailbox + // size of 8 bytes +#define LPC_CH6CTL_AMASK_16 0x00000008 // Address mask of 0xF; mailbox + // size of 16 bytes +#define LPC_CH6CTL_AMASK_32 0x0000000C // Address mask of 0x1F; mailbox + // size of 32 bytes +#define LPC_CH6CTL_AMASK_64 0x00000010 // Address mask of 0x3F; mailbox + // size of 64 bytes +#define LPC_CH6CTL_AMASK_128 0x00000014 // Address mask of 0x7F; mailbox + // size of 128 bytes +#define LPC_CH6CTL_AMASK_256 0x00000018 // Address mask of 0xFF; mailbox + // size of 256 bytes +#define LPC_CH6CTL_AMASK_512 0x0000001C // Address mask of 0x1FF; mailbox + // size of 512 bytes +#define LPC_CH6CTL_TYPE 0x00000001 // Channel Type +#define LPC_CH6CTL_IRQSEL2_S 28 +#define LPC_CH6CTL_IRQSEL1_S 24 +#define LPC_CH6CTL_IRQSEL0_S 20 +#define LPC_CH6CTL_OFFSET_S 5 + +//***************************************************************************** +// +// The following are defines for the bit fields in the LPC_O_CH6ST register. +// +//***************************************************************************** +#define LPC_CH6ST_USER_M 0x00001F00 // User Data +#define LPC_CH6ST_LASTHW 0x00000080 // Last Host Write +#define LPC_CH6ST_HW1ST 0x00000040 // First Host Write +#define LPC_CH6ST_LASTSW 0x00000020 // Last Slave Write +#define LPC_CH6ST_SW1ST 0x00000010 // First Slave Write +#define LPC_CH6ST_CMD 0x00000008 // Command or Data +#define LPC_CH6ST_FRMH 0x00000002 // From-Host Transaction +#define LPC_CH6ST_TOH 0x00000001 // To-Host Transaction +#define LPC_CH6ST_USER_S 8 + +//***************************************************************************** +// +// The following are defines for the bit fields in the LPC_O_CH6ADR register. +// +//***************************************************************************** +#define LPC_CH6ADR_ADDRH_M 0xFFFF0000 // Upper Address Match +#define LPC_CH6ADR_ADDRL_M 0x0000FFF8 // Lower Address Match +#define LPC_CH6ADR_ADDRH_S 16 +#define LPC_CH6ADR_ADDRL_S 3 + +//***************************************************************************** +// +// The following are defines for the bit fields in the LPC_O_CH7CTL register. +// +//***************************************************************************** +#define LPC_CH7CTL_IRQSEL2_M 0xF0000000 // IRQ Select 2 +#define LPC_CH7CTL_IRQSEL1_M 0x0F000000 // IRQ Select 1 +#define LPC_CH7CTL_IRQSEL0_M 0x00F00000 // IRQ Select 0 +#define LPC_CH7CTL_CX 0x00080000 // IRQ Enable 2 +#define LPC_CH7CTL_IRQEN2 0x00080000 // IRQ Enable 2 +#define LPC_CH7CTL_IRQEN1 0x00040000 // IRQ Enable 1 +#define LPC_CH7CTL_IRQEN0_M 0x00030000 // IRQ Enable 0 +#define LPC_CH7CTL_IRQEN0_AUTO 0x00000000 // The automatic IRQ trigger is + // disabled +#define LPC_CH7CTL_IRQEN0_MST 0x00010000 // If TYPE is set, the IRQ selected + // by IRQSEL0 is triggered when the + // master wins arbitration (the + // HW1ST bit is set) +#define LPC_CH7CTL_IRQEN0_SLV 0x00020000 // If TYPE is set, the IRQ selected + // by IRQSEL0 is triggered when the + // slave wins arbitration (the + // SW1ST bit is set) +#define LPC_CH7CTL_IRQEN0_TRIG3 0x00030000 // Trigger 3 +#define LPC_CH7CTL_ARBDIS 0x00008000 // Arbitration Disabled +#define LPC_CH7CTL_OFFSET_M 0x00003FE0 // Base Offset in Register Pool +#define LPC_CH7CTL_AMASK_M 0x0000001C // Address Mask for Ranges +#define LPC_CH7CTL_AMASK_4 0x00000000 // Address mask of 0x3; mailbox + // size of 4 bytes for an endpoint + // range or used for single + // endpoints +#define LPC_CH7CTL_AMASK_8 0x00000004 // Address mask of 0x7; mailbox + // size of 8 bytes +#define LPC_CH7CTL_AMASK_16 0x00000008 // Address mask of 0xF; mailbox + // size of 16 bytes +#define LPC_CH7CTL_AMASK_32 0x0000000C // Address mask of 0x1F; mailbox + // size of 32 bytes +#define LPC_CH7CTL_AMASK_64 0x00000010 // Address mask of 0x3F; mailbox + // size of 64 bytes +#define LPC_CH7CTL_AMASK_128 0x00000014 // Address mask of 0x7F; mailbox + // size of 128 bytes +#define LPC_CH7CTL_AMASK_256 0x00000018 // Address mask of 0xFF; mailbox + // size of 256 bytes +#define LPC_CH7CTL_AMASK_512 0x0000001C // Address mask of 0x1FF; mailbox + // size of 512 bytes +#define LPC_CH7CTL_TYPE 0x00000001 // Channel Type +#define LPC_CH7CTL_IRQSEL2_S 28 +#define LPC_CH7CTL_IRQSEL1_S 24 +#define LPC_CH7CTL_IRQSEL0_S 20 +#define LPC_CH7CTL_OFFSET_S 5 + +//***************************************************************************** +// +// The following are defines for the bit fields in the LPC_O_CH7ST register. +// +//***************************************************************************** +#define LPC_CH7ST_USER_M 0x00001F00 // User Data +#define LPC_CH7ST_LASTHW 0x00000080 // Last Host Write +#define LPC_CH7ST_HW1ST 0x00000040 // Host Wrote First +#define LPC_CH7ST_LASTSW 0x00000020 // Last Slave Write +#define LPC_CH7ST_SW1ST 0x00000010 // Slave Wrote First +#define LPC_CH7ST_CMD 0x00000008 // Command or Data +#define LPC_CH7ST_FRMH 0x00000002 // From-Host Transaction +#define LPC_CH7ST_TOH 0x00000001 // To-Host Transaction +#define LPC_CH7ST_USER_S 8 + +//***************************************************************************** +// +// The following are defines for the bit fields in the LPC_O_CH7ADR register. +// +//***************************************************************************** +#define LPC_CH7ADR_ADDRH_M 0xFFFF0000 // Upper Address Match +#define LPC_CH7ADR_ADDRL_M 0x0000FFF8 // Lower Address Match +#define LPC_CH7ADR_ADDRH_S 16 +#define LPC_CH7ADR_ADDRL_S 3 + +//***************************************************************************** +// +// The following are defines for the bit fields in the LPC_O_STSADDR register. +// +//***************************************************************************** +#define LPC_STSADDR_ADDRH_M 0xFFFF0000 // Upper Address Match +#define LPC_STSADDR_ADDRL_M 0x0000FFF8 // Lower Address Match +#define LPC_STSADDR_ENA 0x00000001 // Enable Status Block +#define LPC_STSADDR_ADDRH_S 16 +#define LPC_STSADDR_ADDRL_S 3 + +//***************************************************************************** +// +// The following are defines for the bit fields in the LPC_O_IM register. +// +//***************************************************************************** +#define LPC_IM_RSTIM 0x80000000 // Reset State Interrupt Mask +#define LPC_IM_SLEEPIM 0x40000000 // Sleep State Interrupt Mask +#define LPC_IM_COMXIM 0x20000000 // COMx Interrupt Mask +#define LPC_IM_SIRQIM 0x10000000 // SERIRQ Frame Complete Interrupt + // Mask +#define LPC_IM_CH6IM3 0x08000000 // Channel 6 Interrupt Mask 3 +#define LPC_IM_CH6IM2 0x04000000 // Channel 6 Interrupt Mask 2 +#define LPC_IM_CH6IM1 0x02000000 // Channel 6 Interrupt Mask 1 +#define LPC_IM_CH6IM0 0x01000000 // Channel 6 Interrupt Mask 0 +#define LPC_IM_CH5IM3 0x00800000 // Channel 5 Interrupt Mask 3 +#define LPC_IM_CH5IM2 0x00400000 // Channel 5 Interrupt Mask 2 +#define LPC_IM_CH5IM1 0x00200000 // Channel 5 Interrupt Mask 1 +#define LPC_IM_CH5IM0 0x00100000 // Channel 5 Interrupt Mask 0 +#define LPC_IM_CH4IM3 0x00080000 // Channel 4 Interrupt Mask 3 +#define LPC_IM_CH4IM2 0x00040000 // Channel 4 Interrupt Mask 2 +#define LPC_IM_CH4IM1 0x00020000 // Channel 4 Interrupt Mask 1 +#define LPC_IM_CH4IM0 0x00010000 // Channel 4 Interrupt Mask 0 +#define LPC_IM_CH3IM3 0x00008000 // Channel 3 Interrupt Mask 3 +#define LPC_IM_CH3IM2 0x00004000 // Channel 3 Interrupt Mask 2 +#define LPC_IM_CH3IM1 0x00002000 // Channel 3 Interrupt Mask 1 +#define LPC_IM_CH3IM0 0x00001000 // Channel 3 Interrupt Mask 0 +#define LPC_IM_CH2IM3 0x00000800 // Channel 2 Interrupt Mask 3 +#define LPC_IM_CH2IM2 0x00000400 // Channel 2 Interrupt Mask 2 +#define LPC_IM_CH2IM1 0x00000200 // Channel 2 Interrupt Mask 1 +#define LPC_IM_CH2IM0 0x00000100 // Channel 2 Interrupt Mask 0 +#define LPC_IM_CH1IM3 0x00000080 // Channel 1 Interrupt Mask 3 +#define LPC_IM_CH1IM2 0x00000040 // Channel 1 Interrupt Mask 2 +#define LPC_IM_CH1IM1 0x00000020 // Channel 1 Interrupt Mask 1 +#define LPC_IM_CH1IM0 0x00000010 // Channel 1 Interrupt Mask 0 +#define LPC_IM_CH0IM3 0x00000008 // Channel 0 Interrupt Mask 3 +#define LPC_IM_CH0IM2 0x00000004 // Channel 0 Interrupt Mask 2 +#define LPC_IM_CH0IM1 0x00000002 // Channel 0 Interrupt Mask 1 +#define LPC_IM_CH0IM0 0x00000001 // Channel 0 Interrupt Mask 0 + +//***************************************************************************** +// +// The following are defines for the bit fields in the LPC_O_RIS register. +// +//***************************************************************************** +#define LPC_RIS_RSTRIS 0x80000000 // Reset State Raw Interrupt Status +#define LPC_RIS_SLEEPRIS 0x40000000 // Sleep State Raw Interrupt Status +#define LPC_RIS_COMXRIS 0x20000000 // COMx Raw Interrupt Status +#define LPC_RIS_SIRQRIS 0x10000000 // SERIRQ Frame Complete Raw + // Interrupt Status +#define LPC_RIS_CH6RIS3 0x08000000 // Channel 6 Raw Interrupt Status 3 +#define LPC_RIS_CH6RIS2 0x04000000 // Channel 6 Raw Interrupt Status 2 +#define LPC_RIS_CH6RIS1 0x02000000 // Channel 6 Raw Interrupt Status 1 +#define LPC_RIS_CH6RIS0 0x01000000 // Channel 6 Raw Interrupt Status 0 +#define LPC_RIS_CH5RIS3 0x00800000 // Channel 5 Raw Interrupt Status 3 +#define LPC_RIS_CH5RIS2 0x00400000 // Channel 5 Raw Interrupt Status 2 +#define LPC_RIS_CH5RIS1 0x00200000 // Channel 5 Raw Interrupt Status 1 +#define LPC_RIS_CH5RIS0 0x00100000 // Channel 5 Raw Interrupt Status 0 +#define LPC_RIS_CH4RIS3 0x00080000 // Channel 4 Raw Interrupt Status 3 +#define LPC_RIS_CH4RIS2 0x00040000 // Channel 4 Raw Interrupt Status 2 +#define LPC_RIS_CH4RIS1 0x00020000 // Channel 4 Raw Interrupt Status 1 +#define LPC_RIS_CH4RIS0 0x00010000 // Channel 4 Raw Interrupt Status 0 +#define LPC_RIS_CH3RIS3 0x00008000 // Channel 3 Raw Interrupt Status 3 +#define LPC_RIS_CH3RIS2 0x00004000 // Channel 3 Raw Interrupt Status 2 +#define LPC_RIS_CH3RIS1 0x00002000 // Channel 3 Raw Interrupt Status 1 +#define LPC_RIS_CH3RIS0 0x00001000 // Channel 3 Raw Interrupt Status 0 +#define LPC_RIS_CH2RIS3 0x00000800 // Channel 2 Raw Interrupt Status 3 +#define LPC_RIS_CH2RIS2 0x00000400 // Channel 2 Raw Interrupt Status 2 +#define LPC_RIS_CH2RIS1 0x00000200 // Channel 2 Raw Interrupt Status 1 +#define LPC_RIS_CH2RIS0 0x00000100 // Channel 2 Raw Interrupt Status 0 +#define LPC_RIS_CH1RIS3 0x00000080 // Channel 1 Raw Interrupt Status 3 +#define LPC_RIS_CH1RIS2 0x00000040 // Channel 1 Raw Interrupt Status 2 +#define LPC_RIS_CH1RIS1 0x00000020 // Channel 1 Raw Interrupt Status 1 +#define LPC_RIS_CH1RIS0 0x00000010 // Channel 1 Raw Interrupt Status 0 +#define LPC_RIS_CH0RIS3 0x00000008 // Channel 0 Raw Interrupt Status 3 +#define LPC_RIS_CH0RIS2 0x00000004 // Channel 0 Raw Interrupt Status 2 +#define LPC_RIS_CH0RIS1 0x00000002 // Channel 0 Raw Interrupt Status 1 +#define LPC_RIS_CH0RIS0 0x00000001 // Channel 0 Raw Interrupt Status 0 + +//***************************************************************************** +// +// The following are defines for the bit fields in the LPC_O_MIS register. +// +//***************************************************************************** +#define LPC_MIS_RSTMIS 0x80000000 // Reset State Masked Interrupt + // Status +#define LPC_MIS_SLEEPMIS 0x40000000 // Sleep State Masked Interrupt + // Status +#define LPC_MIS_COMXMIS 0x20000000 // COMx Masked Interrupt Status +#define LPC_MIS_SIRQMIS 0x10000000 // SERIRQ Frame Complete Masked + // Interrupt Status +#define LPC_MIS_CH6MIS3 0x08000000 // Channel 6 Masked Interrupt + // Status 3 +#define LPC_MIS_CH6MIS2 0x04000000 // Channel 6 Masked Interrupt + // Status 2 +#define LPC_MIS_CH6MIS1 0x02000000 // Channel 6 Masked Interrupt + // Status 1 +#define LPC_MIS_CH6MIS0 0x01000000 // Channel 6 Masked Interrupt + // Status 0 +#define LPC_MIS_CH5MIS3 0x00800000 // Channel 5 Masked Interrupt + // Status 3 +#define LPC_MIS_CH5MIS2 0x00400000 // Channel 5 Masked Interrupt + // Status 2 +#define LPC_MIS_CH5MIS1 0x00200000 // Channel 5 Masked Interrupt + // Status 1 +#define LPC_MIS_CH5MIS0 0x00100000 // Channel 5 Masked Interrupt + // Status 0 +#define LPC_MIS_CH4MIS3 0x00080000 // Channel 4 Masked Interrupt + // Status 3 +#define LPC_MIS_CH4MIS2 0x00040000 // Channel 4 Masked Interrupt + // Status 2 +#define LPC_MIS_CH4MIS1 0x00020000 // Channel 4 Masked Interrupt + // Status 1 +#define LPC_MIS_CH4MIS0 0x00010000 // Channel 4 Masked Interrupt + // Status 0 +#define LPC_MIS_CH3MIS3 0x00008000 // Channel 3 Masked Interrupt + // Status 3 +#define LPC_MIS_CH3MIS2 0x00004000 // Channel 3 Masked Interrupt + // Status 2 +#define LPC_MIS_CH3MIS1 0x00002000 // Channel 3 Masked Interrupt + // Status 1 +#define LPC_MIS_CH3MIS0 0x00001000 // Channel 3 Masked Interrupt + // Status 0 +#define LPC_MIS_CH2MIS3 0x00000800 // Channel 2 Masked Interrupt + // Status 3 +#define LPC_MIS_CH2MIS2 0x00000400 // Channel 2 Masked Interrupt + // Status 2 +#define LPC_MIS_CH2MIS1 0x00000200 // Channel 2 Masked Interrupt + // Status 1 +#define LPC_MIS_CH2MIS0 0x00000100 // Channel 2 Masked Interrupt + // Status 0 +#define LPC_MIS_CH1MIS3 0x00000080 // Channel 1 Masked Interrupt + // Status 3 +#define LPC_MIS_CH1MIS2 0x00000040 // Channel 1 Masked Interrupt + // Status 2 +#define LPC_MIS_CH1MIS1 0x00000020 // Channel 1 Masked Interrupt + // Status 1 +#define LPC_MIS_CH1MIS0 0x00000010 // Channel 1 Masked Interrupt + // Status 0 +#define LPC_MIS_CH0MIS3 0x00000008 // Channel 0 Masked Interrupt + // Status 3 +#define LPC_MIS_CH0MIS2 0x00000004 // Channel 0 Masked Interrupt + // Status 2 +#define LPC_MIS_CH0MIS1 0x00000002 // Channel 0 Masked Interrupt + // Status 1 +#define LPC_MIS_CH0MIS0 0x00000001 // Channel 0 Masked Interrupt + // Status 0 + +//***************************************************************************** +// +// The following are defines for the bit fields in the LPC_O_IC register. +// +//***************************************************************************** +#define LPC_IC_RSTIC 0x80000000 // Reset State Interrupt Clear +#define LPC_IC_SLEEPIC 0x40000000 // Sleep State Interrupt Clear +#define LPC_IC_COMXIC 0x20000000 // COMx Interrupt Clear +#define LPC_IC_SIRQRIC 0x10000000 // SERIRQ Frame Complete Interrupt + // Clear +#define LPC_IC_CH6IC3 0x08000000 // Channel 6 Interrupt Clear 3 +#define LPC_IC_CH6IC2 0x04000000 // Channel 6 Interrupt Clear 2 +#define LPC_IC_CH6IC1 0x02000000 // Channel 6 Interrupt Clear 1 +#define LPC_IC_CH6IC0 0x01000000 // Channel 6 Interrupt Clear 0 +#define LPC_IC_CH5IC3 0x00800000 // Channel 5 Interrupt Clear 3 +#define LPC_IC_CH5IC2 0x00400000 // Channel 5 Interrupt Clear 2 +#define LPC_IC_CH5IC1 0x00200000 // Channel 5 Interrupt Clear 1 +#define LPC_IC_CH5IC0 0x00100000 // Channel 5 Interrupt Clear 0 +#define LPC_IC_CH4IC3 0x00080000 // Channel 4 Interrupt Clear 3 +#define LPC_IC_CH4IC2 0x00040000 // Channel 4 Interrupt Clear 2 +#define LPC_IC_CH4IC1 0x00020000 // Channel 4 Interrupt Clear 1 +#define LPC_IC_CH4IC0 0x00010000 // Channel 4 Interrupt Clear 0 +#define LPC_IC_CH3IC3 0x00008000 // Channel 3 Interrupt Clear 3 +#define LPC_IC_CH3IC2 0x00004000 // Channel 3 Interrupt Clear 2 +#define LPC_IC_CH3IC1 0x00002000 // Channel 3 Interrupt Clear 1 +#define LPC_IC_CH3IC0 0x00001000 // Channel 3 Interrupt Clear 0 +#define LPC_IC_CH2IC3 0x00000800 // Channel 2 Interrupt Clear 3 +#define LPC_IC_CH2IC2 0x00000400 // Channel 2 Interrupt Clear 2 +#define LPC_IC_CH2IC1 0x00000200 // Channel 2 Interrupt Clear 1 +#define LPC_IC_CH2IC0 0x00000100 // Channel 2 Interrupt Clear 0 +#define LPC_IC_CH1IC3 0x00000080 // Channel 1 Interrupt Clear 3 +#define LPC_IC_CH1IC2 0x00000040 // Channel 1 Interrupt Clear 2 +#define LPC_IC_CH1IC1 0x00000020 // Channel 1 Interrupt Clear 1 +#define LPC_IC_CH1IC0 0x00000010 // Channel 1 Interrupt Clear 0 +#define LPC_IC_CH0IC3 0x00000008 // Channel 0 Interrupt Clear 3 +#define LPC_IC_CH0IC2 0x00000004 // Channel 0 Interrupt Clear 2 +#define LPC_IC_CH0IC1 0x00000002 // Channel 0 Interrupt Clear 1 +#define LPC_IC_CH0IC0 0x00000001 // Channel 0 Interrupt Clear 0 + +//***************************************************************************** +// +// The following are defines for the bit fields in the LPC_O_DMACX register. +// +//***************************************************************************** +#define LPC_DMACX_CXRES 0x02000000 // Raw Event State for COMx +#define LPC_DMACX_CXTXRES 0x01000000 // Raw Event State for COMx TX +#define LPC_DMACX_CXRXRES 0x00800000 // Raw Event State for COMx RX +#define LPC_DMACX_CXEM 0x00200000 // Event Mask for COMx +#define LPC_DMACX_CXTXEM 0x00100000 // Event Mask for COMx TX +#define LPC_DMACX_CXRXEM 0x00080000 // Event Mask for COMx RX +#define LPC_DMACX_CXACT_M 0x00060000 // COMx Action +#define LPC_DMACX_CXACT_FRMHNML 0x00000000 // Treat as normal FRMH model and + // let be full (and so marked as + // full) +#define LPC_DMACX_CXACT_FRMHIGN 0x00020000 // Ignore FRMH bytes and continue + // to mark FRMH as empty +#define LPC_DMACX_CXACT_FRMHDMA 0x00040000 // COMx DMA on FRMH byte (e.g. to + // memory) +#define LPC_DMACX_CXACT_UARTDMA 0x00060000 // COMx DMA model with UART +#define LPC_DMACX_COMX 0x00010000 // COMx Handling +#define LPC_DMACX_C3W 0x00000080 // Write Control for Channel 3 +#define LPC_DMACX_C3R 0x00000040 // Read Control for Channel 3 +#define LPC_DMACX_C2W 0x00000020 // Write Control for Channel 2 +#define LPC_DMACX_C2R 0x00000010 // Read Control for Channel 2 +#define LPC_DMACX_C1W 0x00000008 // Write Control for Channel 1 +#define LPC_DMACX_C1R 0x00000004 // Read Control for Channel 1 +#define LPC_DMACX_C0W 0x00000002 // Write Control for Channel 0 +#define LPC_DMACX_C0R 0x00000001 // Read Control for Channel 0 + +//***************************************************************************** +// +// The following are defines for the bit fields in the LPC_O_POOL register. +// +//***************************************************************************** +#define LPC_POOL_BYTE3_M 0xFF000000 // Byte 3 +#define LPC_POOL_BYTE2_M 0x00FF0000 // Byte 2 +#define LPC_POOL_BYTE1_M 0x0000FF00 // Byte 1 +#define LPC_POOL_BYTE0_M 0x000000FF // Byte 0 +#define LPC_POOL_BYTE3_S 24 +#define LPC_POOL_BYTE2_S 16 +#define LPC_POOL_BYTE1_S 8 +#define LPC_POOL_BYTE0_S 0 + +//***************************************************************************** +// +// The following are defines for the bit fields in the LPC_O_PP register. +// +//***************************************************************************** +#define LPC_PP_COMX 0x00000010 // COMx Support Available +#define LPC_PP_CHANCNT_M 0x0000000F // Number of Channels (Excluding + // COMx) +#define LPC_PP_CHANCNT_S 0 + +#endif // __HW_LPC_H__ diff --git a/bsp/lm3s8962/Libraries/inc/hw_memmap.h b/bsp/lm3s8962/Libraries/inc/hw_memmap.h index 04d75f729b..1a50ad9f2b 100644 --- a/bsp/lm3s8962/Libraries/inc/hw_memmap.h +++ b/bsp/lm3s8962/Libraries/inc/hw_memmap.h @@ -2,7 +2,7 @@ // // hw_memmap.h - Macros defining the memory map of Stellaris. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** @@ -41,24 +41,40 @@ #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_MASTER_BASE 0x40020000 // I2C0 Master #define I2C0_SLAVE_BASE 0x40020800 // I2C0 Slave #define I2C1_MASTER_BASE 0x40021000 // I2C1 Master #define I2C1_SLAVE_BASE 0x40021800 // I2C1 Slave +#define I2C2_MASTER_BASE 0x40022000 // I2C2 Master +#define I2C2_SLAVE_BASE 0x40022800 // I2C2 Slave +#define I2C3_MASTER_BASE 0x40023000 // I2C3 Master +#define I2C3_SLAVE_BASE 0x40023800 // I2C3 Slave #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 PWM_BASE 0x40028000 // PWM +#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 @@ -68,6 +84,10 @@ #define CAN2_BASE 0x40042000 // CAN2 #define ETH_BASE 0x40048000 // Ethernet #define MAC_BASE 0x40048000 // Ethernet +#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 I2S0_BASE 0x40054000 // I2S0 #define GPIO_PORTA_AHB_BASE 0x40058000 // GPIO Port A (high speed) @@ -79,7 +99,23 @@ #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 LPC0_BASE 0x40080000 // Low Pin Count Interface (LPC) +#define FAN0_BASE 0x40084000 // Fan Control (FAN) +#define EEPROM_BASE 0x400AF000 // EEPROM memory +#define PECI0_BASE 0x400B0000 // Platform Environment Control + // Interface (PECI) +#define I2C4_MASTER_BASE 0x400C0000 // I2C4 Master +#define I2C4_SLAVE_BASE 0x400C0800 // I2C4 Slave +#define I2C5_MASTER_BASE 0x400C1000 // I2C5 Master +#define I2C5_SLAVE_BASE 0x400C1800 // I2C5 Slave #define EPI0_BASE 0x400D0000 // EPI0 +#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 @@ -107,6 +143,7 @@ #define SSI_BASE 0x40008000 // SSI #define I2C_MASTER_BASE 0x40020000 // I2C Master #define I2C_SLAVE_BASE 0x40020800 // I2C Slave +#define PWM_BASE 0x40028000 // PWM #define QEI_BASE 0x4002C000 // QEI #define ADC_BASE 0x40038000 // ADC diff --git a/bsp/lm3s8962/Libraries/inc/hw_nvic.h b/bsp/lm3s8962/Libraries/inc/hw_nvic.h index da01d3ec14..cdb06304b8 100644 --- a/bsp/lm3s8962/Libraries/inc/hw_nvic.h +++ b/bsp/lm3s8962/Libraries/inc/hw_nvic.h @@ -2,7 +2,7 @@ // // hw_nvic.h - Macros used when accessing the NVIC hardware. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** @@ -31,59 +31,110 @@ // //***************************************************************************** #define NVIC_INT_TYPE 0xE000E004 // Interrupt Controller Type Reg -#define NVIC_ST_CTRL 0xE000E010 // SysTick Control and Status Reg +#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_ST_CAL 0xE000E01C // SysTick Calibration Value Reg -#define NVIC_EN0 0xE000E100 // IRQ 0 to 31 Set Enable Register -#define NVIC_EN1 0xE000E104 // IRQ 32 to 63 Set Enable Register -#define NVIC_DIS0 0xE000E180 // IRQ 0 to 31 Clear Enable Reg -#define NVIC_DIS1 0xE000E184 // IRQ 32 to 63 Clear Enable Reg -#define NVIC_PEND0 0xE000E200 // IRQ 0 to 31 Set Pending Register -#define NVIC_PEND1 0xE000E204 // IRQ 32 to 63 Set Pending Reg -#define NVIC_UNPEND0 0xE000E280 // IRQ 0 to 31 Clear Pending Reg -#define NVIC_UNPEND1 0xE000E284 // IRQ 32 to 63 Clear Pending Reg -#define NVIC_ACTIVE0 0xE000E300 // IRQ 0 to 31 Active Register -#define NVIC_ACTIVE1 0xE000E304 // IRQ 32 to 63 Active Register -#define NVIC_PRI0 0xE000E400 // IRQ 0 to 3 Priority Register -#define NVIC_PRI1 0xE000E404 // IRQ 4 to 7 Priority Register -#define NVIC_PRI2 0xE000E408 // IRQ 8 to 11 Priority Register -#define NVIC_PRI3 0xE000E40C // IRQ 12 to 15 Priority Register -#define NVIC_PRI4 0xE000E410 // IRQ 16 to 19 Priority Register -#define NVIC_PRI5 0xE000E414 // IRQ 20 to 23 Priority Register -#define NVIC_PRI6 0xE000E418 // IRQ 24 to 27 Priority Register -#define NVIC_PRI7 0xE000E41C // IRQ 28 to 31 Priority Register -#define NVIC_PRI8 0xE000E420 // IRQ 32 to 35 Priority Register -#define NVIC_PRI9 0xE000E424 // IRQ 36 to 39 Priority Register -#define NVIC_PRI10 0xE000E428 // IRQ 40 to 43 Priority Register -#define NVIC_PRI11 0xE000E42C // IRQ 44 to 47 Priority Register -#define NVIC_PRI12 0xE000E430 // IRQ 48 to 51 Priority Register -#define NVIC_PRI13 0xE000E434 // IRQ 52 to 55 Priority Register -#define NVIC_CPUID 0xE000ED00 // CPUID Base Register -#define NVIC_INT_CTRL 0xE000ED04 // Interrupt Control State Register -#define NVIC_VTABLE 0xE000ED08 // Vector Table Offset Register -#define NVIC_APINT 0xE000ED0C // App. Int & Reset Control Reg -#define NVIC_SYS_CTRL 0xE000ED10 // System Control Register -#define NVIC_CFG_CTRL 0xE000ED14 // Configuration Control Register -#define NVIC_SYS_PRI1 0xE000ED18 // Sys. Handlers 4 to 7 Priority -#define NVIC_SYS_PRI2 0xE000ED1C // Sys. Handlers 8 to 11 Priority -#define NVIC_SYS_PRI3 0xE000ED20 // Sys. Handlers 12 to 15 Priority +#define NVIC_EN0 0xE000E100 // Interrupt 0-31 Set Enable +#define NVIC_EN1 0xE000E104 // Interrupt 32-54 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-131 Set Enable +#define NVIC_DIS0 0xE000E180 // Interrupt 0-31 Clear Enable +#define NVIC_DIS1 0xE000E184 // Interrupt 32-54 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-131 Clear Enable +#define NVIC_PEND0 0xE000E200 // Interrupt 0-31 Set Pending +#define NVIC_PEND1 0xE000E204 // Interrupt 32-54 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-131 Set Pending +#define NVIC_UNPEND0 0xE000E280 // Interrupt 0-31 Clear Pending +#define NVIC_UNPEND1 0xE000E284 // Interrupt 32-54 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-131 Clear Pending +#define NVIC_ACTIVE0 0xE000E300 // Interrupt 0-31 Active Bit +#define NVIC_ACTIVE1 0xE000E304 // Interrupt 32-54 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-131 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-53 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_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 Reg -#define NVIC_HFAULT_STAT 0xE000ED2C // Hard Fault Status Register +#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 // Mem Manage Address Register -#define NVIC_FAULT_ADDR 0xE000ED38 // Bus Fault Address Register -#define NVIC_MPU_TYPE 0xE000ED90 // MPU Type Register -#define NVIC_MPU_CTRL 0xE000ED94 // MPU Control Register -#define NVIC_MPU_NUMBER 0xE000ED98 // MPU Region Number Register -#define NVIC_MPU_BASE 0xE000ED9C // MPU Region Base Address Register -#define NVIC_MPU_ATTR 0xE000EDA0 // MPU Region Attribute & Size Reg +#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 Reg +#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 //***************************************************************************** // @@ -93,22 +144,35 @@ #define NVIC_INT_TYPE_LINES_M 0x0000001F // Number of interrupt lines (x32) #define NVIC_INT_TYPE_LINES_S 0 +//***************************************************************************** +// +// 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_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 // Counter mode +#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 // Counter load value +#define NVIC_ST_RELOAD_M 0x00FFFFFF // Reload Value #define NVIC_ST_RELOAD_S 0 //***************************************************************************** @@ -117,7 +181,7 @@ // register. // //***************************************************************************** -#define NVIC_ST_CURRENT_M 0x00FFFFFF // Counter current value +#define NVIC_ST_CURRENT_M 0x00FFFFFF // Current Value #define NVIC_ST_CURRENT_S 0 //***************************************************************************** @@ -135,540 +199,962 @@ // The following are defines for the bit fields in the NVIC_EN0 register. // //***************************************************************************** -#define NVIC_EN0_INT31 0x80000000 // Interrupt 31 enable -#define NVIC_EN0_INT30 0x40000000 // Interrupt 30 enable -#define NVIC_EN0_INT29 0x20000000 // Interrupt 29 enable -#define NVIC_EN0_INT28 0x10000000 // Interrupt 28 enable -#define NVIC_EN0_INT27 0x08000000 // Interrupt 27 enable -#define NVIC_EN0_INT26 0x04000000 // Interrupt 26 enable -#define NVIC_EN0_INT25 0x02000000 // Interrupt 25 enable -#define NVIC_EN0_INT24 0x01000000 // Interrupt 24 enable -#define NVIC_EN0_INT23 0x00800000 // Interrupt 23 enable -#define NVIC_EN0_INT22 0x00400000 // Interrupt 22 enable -#define NVIC_EN0_INT21 0x00200000 // Interrupt 21 enable -#define NVIC_EN0_INT20 0x00100000 // Interrupt 20 enable -#define NVIC_EN0_INT19 0x00080000 // Interrupt 19 enable -#define NVIC_EN0_INT18 0x00040000 // Interrupt 18 enable -#define NVIC_EN0_INT17 0x00020000 // Interrupt 17 enable -#define NVIC_EN0_INT16 0x00010000 // Interrupt 16 enable -#define NVIC_EN0_INT15 0x00008000 // Interrupt 15 enable -#define NVIC_EN0_INT14 0x00004000 // Interrupt 14 enable -#define NVIC_EN0_INT13 0x00002000 // Interrupt 13 enable -#define NVIC_EN0_INT12 0x00001000 // Interrupt 12 enable -#define NVIC_EN0_INT11 0x00000800 // Interrupt 11 enable -#define NVIC_EN0_INT10 0x00000400 // Interrupt 10 enable -#define NVIC_EN0_INT9 0x00000200 // Interrupt 9 enable -#define NVIC_EN0_INT8 0x00000100 // Interrupt 8 enable -#define NVIC_EN0_INT7 0x00000080 // Interrupt 7 enable -#define NVIC_EN0_INT6 0x00000040 // Interrupt 6 enable -#define NVIC_EN0_INT5 0x00000020 // Interrupt 5 enable -#define NVIC_EN0_INT4 0x00000010 // Interrupt 4 enable -#define NVIC_EN0_INT3 0x00000008 // Interrupt 3 enable -#define NVIC_EN0_INT2 0x00000004 // Interrupt 2 enable -#define NVIC_EN0_INT1 0x00000002 // Interrupt 1 enable +#define NVIC_EN0_INT_M 0xFFFFFFFF // Interrupt Enable #define NVIC_EN0_INT0 0x00000001 // Interrupt 0 enable +#define NVIC_EN0_INT1 0x00000002 // Interrupt 1 enable +#define NVIC_EN0_INT2 0x00000004 // Interrupt 2 enable +#define NVIC_EN0_INT3 0x00000008 // Interrupt 3 enable +#define NVIC_EN0_INT4 0x00000010 // Interrupt 4 enable +#define NVIC_EN0_INT5 0x00000020 // Interrupt 5 enable +#define NVIC_EN0_INT6 0x00000040 // Interrupt 6 enable +#define NVIC_EN0_INT7 0x00000080 // Interrupt 7 enable +#define NVIC_EN0_INT8 0x00000100 // Interrupt 8 enable +#define NVIC_EN0_INT9 0x00000200 // Interrupt 9 enable +#define NVIC_EN0_INT10 0x00000400 // Interrupt 10 enable +#define NVIC_EN0_INT11 0x00000800 // Interrupt 11 enable +#define NVIC_EN0_INT12 0x00001000 // Interrupt 12 enable +#define NVIC_EN0_INT13 0x00002000 // Interrupt 13 enable +#define NVIC_EN0_INT14 0x00004000 // Interrupt 14 enable +#define NVIC_EN0_INT15 0x00008000 // Interrupt 15 enable +#define NVIC_EN0_INT16 0x00010000 // Interrupt 16 enable +#define NVIC_EN0_INT17 0x00020000 // Interrupt 17 enable +#define NVIC_EN0_INT18 0x00040000 // Interrupt 18 enable +#define NVIC_EN0_INT19 0x00080000 // Interrupt 19 enable +#define NVIC_EN0_INT20 0x00100000 // Interrupt 20 enable +#define NVIC_EN0_INT21 0x00200000 // Interrupt 21 enable +#define NVIC_EN0_INT22 0x00400000 // Interrupt 22 enable +#define NVIC_EN0_INT23 0x00800000 // Interrupt 23 enable +#define NVIC_EN0_INT24 0x01000000 // Interrupt 24 enable +#define NVIC_EN0_INT25 0x02000000 // Interrupt 25 enable +#define NVIC_EN0_INT26 0x04000000 // Interrupt 26 enable +#define NVIC_EN0_INT27 0x08000000 // Interrupt 27 enable +#define NVIC_EN0_INT28 0x10000000 // Interrupt 28 enable +#define NVIC_EN0_INT29 0x20000000 // Interrupt 29 enable +#define NVIC_EN0_INT30 0x40000000 // Interrupt 30 enable +#define NVIC_EN0_INT31 0x80000000 // Interrupt 31 enable //***************************************************************************** // // The following are defines for the bit fields in the NVIC_EN1 register. // //***************************************************************************** -#define NVIC_EN1_INT59 0x08000000 // Interrupt 59 enable -#define NVIC_EN1_INT58 0x04000000 // Interrupt 58 enable -#define NVIC_EN1_INT57 0x02000000 // Interrupt 57 enable -#define NVIC_EN1_INT56 0x01000000 // Interrupt 56 enable -#define NVIC_EN1_INT55 0x00800000 // Interrupt 55 enable -#define NVIC_EN1_INT54 0x00400000 // Interrupt 54 enable -#define NVIC_EN1_INT53 0x00200000 // Interrupt 53 enable -#define NVIC_EN1_INT52 0x00100000 // Interrupt 52 enable -#define NVIC_EN1_INT51 0x00080000 // Interrupt 51 enable -#define NVIC_EN1_INT50 0x00040000 // Interrupt 50 enable -#define NVIC_EN1_INT49 0x00020000 // Interrupt 49 enable -#define NVIC_EN1_INT48 0x00010000 // Interrupt 48 enable -#define NVIC_EN1_INT47 0x00008000 // Interrupt 47 enable -#define NVIC_EN1_INT46 0x00004000 // Interrupt 46 enable -#define NVIC_EN1_INT45 0x00002000 // Interrupt 45 enable -#define NVIC_EN1_INT44 0x00001000 // Interrupt 44 enable -#define NVIC_EN1_INT43 0x00000800 // Interrupt 43 enable -#define NVIC_EN1_INT42 0x00000400 // Interrupt 42 enable -#define NVIC_EN1_INT41 0x00000200 // Interrupt 41 enable -#define NVIC_EN1_INT40 0x00000100 // Interrupt 40 enable -#define NVIC_EN1_INT39 0x00000080 // Interrupt 39 enable -#define NVIC_EN1_INT38 0x00000040 // Interrupt 38 enable -#define NVIC_EN1_INT37 0x00000020 // Interrupt 37 enable -#define NVIC_EN1_INT36 0x00000010 // Interrupt 36 enable -#define NVIC_EN1_INT35 0x00000008 // Interrupt 35 enable -#define NVIC_EN1_INT34 0x00000004 // Interrupt 34 enable -#define NVIC_EN1_INT33 0x00000002 // Interrupt 33 enable +#define NVIC_EN1_INT_M 0xFFFFFFFF // Interrupt Enable #define NVIC_EN1_INT32 0x00000001 // Interrupt 32 enable +#define NVIC_EN1_INT33 0x00000002 // Interrupt 33 enable +#define NVIC_EN1_INT34 0x00000004 // Interrupt 34 enable +#define NVIC_EN1_INT35 0x00000008 // Interrupt 35 enable +#define NVIC_EN1_INT36 0x00000010 // Interrupt 36 enable +#define NVIC_EN1_INT37 0x00000020 // Interrupt 37 enable +#define NVIC_EN1_INT38 0x00000040 // Interrupt 38 enable +#define NVIC_EN1_INT39 0x00000080 // Interrupt 39 enable +#define NVIC_EN1_INT40 0x00000100 // Interrupt 40 enable +#define NVIC_EN1_INT41 0x00000200 // Interrupt 41 enable +#define NVIC_EN1_INT42 0x00000400 // Interrupt 42 enable +#define NVIC_EN1_INT43 0x00000800 // Interrupt 43 enable +#define NVIC_EN1_INT44 0x00001000 // Interrupt 44 enable +#define NVIC_EN1_INT45 0x00002000 // Interrupt 45 enable +#define NVIC_EN1_INT46 0x00004000 // Interrupt 46 enable +#define NVIC_EN1_INT47 0x00008000 // Interrupt 47 enable +#define NVIC_EN1_INT48 0x00010000 // Interrupt 48 enable +#define NVIC_EN1_INT49 0x00020000 // Interrupt 49 enable +#define NVIC_EN1_INT50 0x00040000 // Interrupt 50 enable +#define NVIC_EN1_INT51 0x00080000 // Interrupt 51 enable +#define NVIC_EN1_INT52 0x00100000 // Interrupt 52 enable +#define NVIC_EN1_INT53 0x00200000 // Interrupt 53 enable +#define NVIC_EN1_INT54 0x00400000 // Interrupt 54 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 0x0000000F // Interrupt Enable //***************************************************************************** // // The following are defines for the bit fields in the NVIC_DIS0 register. // //***************************************************************************** -#define NVIC_DIS0_INT31 0x80000000 // Interrupt 31 disable -#define NVIC_DIS0_INT30 0x40000000 // Interrupt 30 disable -#define NVIC_DIS0_INT29 0x20000000 // Interrupt 29 disable -#define NVIC_DIS0_INT28 0x10000000 // Interrupt 28 disable -#define NVIC_DIS0_INT27 0x08000000 // Interrupt 27 disable -#define NVIC_DIS0_INT26 0x04000000 // Interrupt 26 disable -#define NVIC_DIS0_INT25 0x02000000 // Interrupt 25 disable -#define NVIC_DIS0_INT24 0x01000000 // Interrupt 24 disable -#define NVIC_DIS0_INT23 0x00800000 // Interrupt 23 disable -#define NVIC_DIS0_INT22 0x00400000 // Interrupt 22 disable -#define NVIC_DIS0_INT21 0x00200000 // Interrupt 21 disable -#define NVIC_DIS0_INT20 0x00100000 // Interrupt 20 disable -#define NVIC_DIS0_INT19 0x00080000 // Interrupt 19 disable -#define NVIC_DIS0_INT18 0x00040000 // Interrupt 18 disable -#define NVIC_DIS0_INT17 0x00020000 // Interrupt 17 disable -#define NVIC_DIS0_INT16 0x00010000 // Interrupt 16 disable -#define NVIC_DIS0_INT15 0x00008000 // Interrupt 15 disable -#define NVIC_DIS0_INT14 0x00004000 // Interrupt 14 disable -#define NVIC_DIS0_INT13 0x00002000 // Interrupt 13 disable -#define NVIC_DIS0_INT12 0x00001000 // Interrupt 12 disable -#define NVIC_DIS0_INT11 0x00000800 // Interrupt 11 disable -#define NVIC_DIS0_INT10 0x00000400 // Interrupt 10 disable -#define NVIC_DIS0_INT9 0x00000200 // Interrupt 9 disable -#define NVIC_DIS0_INT8 0x00000100 // Interrupt 8 disable -#define NVIC_DIS0_INT7 0x00000080 // Interrupt 7 disable -#define NVIC_DIS0_INT6 0x00000040 // Interrupt 6 disable -#define NVIC_DIS0_INT5 0x00000020 // Interrupt 5 disable -#define NVIC_DIS0_INT4 0x00000010 // Interrupt 4 disable -#define NVIC_DIS0_INT3 0x00000008 // Interrupt 3 disable -#define NVIC_DIS0_INT2 0x00000004 // Interrupt 2 disable -#define NVIC_DIS0_INT1 0x00000002 // Interrupt 1 disable +#define NVIC_DIS0_INT_M 0xFFFFFFFF // Interrupt Disable #define NVIC_DIS0_INT0 0x00000001 // Interrupt 0 disable +#define NVIC_DIS0_INT1 0x00000002 // Interrupt 1 disable +#define NVIC_DIS0_INT2 0x00000004 // Interrupt 2 disable +#define NVIC_DIS0_INT3 0x00000008 // Interrupt 3 disable +#define NVIC_DIS0_INT4 0x00000010 // Interrupt 4 disable +#define NVIC_DIS0_INT5 0x00000020 // Interrupt 5 disable +#define NVIC_DIS0_INT6 0x00000040 // Interrupt 6 disable +#define NVIC_DIS0_INT7 0x00000080 // Interrupt 7 disable +#define NVIC_DIS0_INT8 0x00000100 // Interrupt 8 disable +#define NVIC_DIS0_INT9 0x00000200 // Interrupt 9 disable +#define NVIC_DIS0_INT10 0x00000400 // Interrupt 10 disable +#define NVIC_DIS0_INT11 0x00000800 // Interrupt 11 disable +#define NVIC_DIS0_INT12 0x00001000 // Interrupt 12 disable +#define NVIC_DIS0_INT13 0x00002000 // Interrupt 13 disable +#define NVIC_DIS0_INT14 0x00004000 // Interrupt 14 disable +#define NVIC_DIS0_INT15 0x00008000 // Interrupt 15 disable +#define NVIC_DIS0_INT16 0x00010000 // Interrupt 16 disable +#define NVIC_DIS0_INT17 0x00020000 // Interrupt 17 disable +#define NVIC_DIS0_INT18 0x00040000 // Interrupt 18 disable +#define NVIC_DIS0_INT19 0x00080000 // Interrupt 19 disable +#define NVIC_DIS0_INT20 0x00100000 // Interrupt 20 disable +#define NVIC_DIS0_INT21 0x00200000 // Interrupt 21 disable +#define NVIC_DIS0_INT22 0x00400000 // Interrupt 22 disable +#define NVIC_DIS0_INT23 0x00800000 // Interrupt 23 disable +#define NVIC_DIS0_INT24 0x01000000 // Interrupt 24 disable +#define NVIC_DIS0_INT25 0x02000000 // Interrupt 25 disable +#define NVIC_DIS0_INT26 0x04000000 // Interrupt 26 disable +#define NVIC_DIS0_INT27 0x08000000 // Interrupt 27 disable +#define NVIC_DIS0_INT28 0x10000000 // Interrupt 28 disable +#define NVIC_DIS0_INT29 0x20000000 // Interrupt 29 disable +#define NVIC_DIS0_INT30 0x40000000 // Interrupt 30 disable +#define NVIC_DIS0_INT31 0x80000000 // Interrupt 31 disable //***************************************************************************** // // The following are defines for the bit fields in the NVIC_DIS1 register. // //***************************************************************************** -#define NVIC_DIS1_INT59 0x08000000 // Interrupt 59 disable -#define NVIC_DIS1_INT58 0x04000000 // Interrupt 58 disable -#define NVIC_DIS1_INT57 0x02000000 // Interrupt 57 disable -#define NVIC_DIS1_INT56 0x01000000 // Interrupt 56 disable -#define NVIC_DIS1_INT55 0x00800000 // Interrupt 55 disable -#define NVIC_DIS1_INT54 0x00400000 // Interrupt 54 disable -#define NVIC_DIS1_INT53 0x00200000 // Interrupt 53 disable -#define NVIC_DIS1_INT52 0x00100000 // Interrupt 52 disable -#define NVIC_DIS1_INT51 0x00080000 // Interrupt 51 disable -#define NVIC_DIS1_INT50 0x00040000 // Interrupt 50 disable -#define NVIC_DIS1_INT49 0x00020000 // Interrupt 49 disable -#define NVIC_DIS1_INT48 0x00010000 // Interrupt 48 disable -#define NVIC_DIS1_INT47 0x00008000 // Interrupt 47 disable -#define NVIC_DIS1_INT46 0x00004000 // Interrupt 46 disable -#define NVIC_DIS1_INT45 0x00002000 // Interrupt 45 disable -#define NVIC_DIS1_INT44 0x00001000 // Interrupt 44 disable -#define NVIC_DIS1_INT43 0x00000800 // Interrupt 43 disable -#define NVIC_DIS1_INT42 0x00000400 // Interrupt 42 disable -#define NVIC_DIS1_INT41 0x00000200 // Interrupt 41 disable -#define NVIC_DIS1_INT40 0x00000100 // Interrupt 40 disable -#define NVIC_DIS1_INT39 0x00000080 // Interrupt 39 disable -#define NVIC_DIS1_INT38 0x00000040 // Interrupt 38 disable -#define NVIC_DIS1_INT37 0x00000020 // Interrupt 37 disable -#define NVIC_DIS1_INT36 0x00000010 // Interrupt 36 disable -#define NVIC_DIS1_INT35 0x00000008 // Interrupt 35 disable -#define NVIC_DIS1_INT34 0x00000004 // Interrupt 34 disable -#define NVIC_DIS1_INT33 0x00000002 // Interrupt 33 disable +#define NVIC_DIS1_INT_M 0xFFFFFFFF // Interrupt Disable #define NVIC_DIS1_INT32 0x00000001 // Interrupt 32 disable +#define NVIC_DIS1_INT33 0x00000002 // Interrupt 33 disable +#define NVIC_DIS1_INT34 0x00000004 // Interrupt 34 disable +#define NVIC_DIS1_INT35 0x00000008 // Interrupt 35 disable +#define NVIC_DIS1_INT36 0x00000010 // Interrupt 36 disable +#define NVIC_DIS1_INT37 0x00000020 // Interrupt 37 disable +#define NVIC_DIS1_INT38 0x00000040 // Interrupt 38 disable +#define NVIC_DIS1_INT39 0x00000080 // Interrupt 39 disable +#define NVIC_DIS1_INT40 0x00000100 // Interrupt 40 disable +#define NVIC_DIS1_INT41 0x00000200 // Interrupt 41 disable +#define NVIC_DIS1_INT42 0x00000400 // Interrupt 42 disable +#define NVIC_DIS1_INT43 0x00000800 // Interrupt 43 disable +#define NVIC_DIS1_INT44 0x00001000 // Interrupt 44 disable +#define NVIC_DIS1_INT45 0x00002000 // Interrupt 45 disable +#define NVIC_DIS1_INT46 0x00004000 // Interrupt 46 disable +#define NVIC_DIS1_INT47 0x00008000 // Interrupt 47 disable +#define NVIC_DIS1_INT48 0x00010000 // Interrupt 48 disable +#define NVIC_DIS1_INT49 0x00020000 // Interrupt 49 disable +#define NVIC_DIS1_INT50 0x00040000 // Interrupt 50 disable +#define NVIC_DIS1_INT51 0x00080000 // Interrupt 51 disable +#define NVIC_DIS1_INT52 0x00100000 // Interrupt 52 disable +#define NVIC_DIS1_INT53 0x00200000 // Interrupt 53 disable +#define NVIC_DIS1_INT54 0x00400000 // Interrupt 54 disable +#define NVIC_DIS1_INT55 0x00800000 // Interrupt 55 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 0x0000000F // Interrupt Disable //***************************************************************************** // // The following are defines for the bit fields in the NVIC_PEND0 register. // //***************************************************************************** -#define NVIC_PEND0_INT31 0x80000000 // Interrupt 31 pend -#define NVIC_PEND0_INT30 0x40000000 // Interrupt 30 pend -#define NVIC_PEND0_INT29 0x20000000 // Interrupt 29 pend -#define NVIC_PEND0_INT28 0x10000000 // Interrupt 28 pend -#define NVIC_PEND0_INT27 0x08000000 // Interrupt 27 pend -#define NVIC_PEND0_INT26 0x04000000 // Interrupt 26 pend -#define NVIC_PEND0_INT25 0x02000000 // Interrupt 25 pend -#define NVIC_PEND0_INT24 0x01000000 // Interrupt 24 pend -#define NVIC_PEND0_INT23 0x00800000 // Interrupt 23 pend -#define NVIC_PEND0_INT22 0x00400000 // Interrupt 22 pend -#define NVIC_PEND0_INT21 0x00200000 // Interrupt 21 pend -#define NVIC_PEND0_INT20 0x00100000 // Interrupt 20 pend -#define NVIC_PEND0_INT19 0x00080000 // Interrupt 19 pend -#define NVIC_PEND0_INT18 0x00040000 // Interrupt 18 pend -#define NVIC_PEND0_INT17 0x00020000 // Interrupt 17 pend -#define NVIC_PEND0_INT16 0x00010000 // Interrupt 16 pend -#define NVIC_PEND0_INT15 0x00008000 // Interrupt 15 pend -#define NVIC_PEND0_INT14 0x00004000 // Interrupt 14 pend -#define NVIC_PEND0_INT13 0x00002000 // Interrupt 13 pend -#define NVIC_PEND0_INT12 0x00001000 // Interrupt 12 pend -#define NVIC_PEND0_INT11 0x00000800 // Interrupt 11 pend -#define NVIC_PEND0_INT10 0x00000400 // Interrupt 10 pend -#define NVIC_PEND0_INT9 0x00000200 // Interrupt 9 pend -#define NVIC_PEND0_INT8 0x00000100 // Interrupt 8 pend -#define NVIC_PEND0_INT7 0x00000080 // Interrupt 7 pend -#define NVIC_PEND0_INT6 0x00000040 // Interrupt 6 pend -#define NVIC_PEND0_INT5 0x00000020 // Interrupt 5 pend -#define NVIC_PEND0_INT4 0x00000010 // Interrupt 4 pend -#define NVIC_PEND0_INT3 0x00000008 // Interrupt 3 pend -#define NVIC_PEND0_INT2 0x00000004 // Interrupt 2 pend -#define NVIC_PEND0_INT1 0x00000002 // Interrupt 1 pend +#define NVIC_PEND0_INT_M 0xFFFFFFFF // Interrupt Set Pending #define NVIC_PEND0_INT0 0x00000001 // Interrupt 0 pend +#define NVIC_PEND0_INT1 0x00000002 // Interrupt 1 pend +#define NVIC_PEND0_INT2 0x00000004 // Interrupt 2 pend +#define NVIC_PEND0_INT3 0x00000008 // Interrupt 3 pend +#define NVIC_PEND0_INT4 0x00000010 // Interrupt 4 pend +#define NVIC_PEND0_INT5 0x00000020 // Interrupt 5 pend +#define NVIC_PEND0_INT6 0x00000040 // Interrupt 6 pend +#define NVIC_PEND0_INT7 0x00000080 // Interrupt 7 pend +#define NVIC_PEND0_INT8 0x00000100 // Interrupt 8 pend +#define NVIC_PEND0_INT9 0x00000200 // Interrupt 9 pend +#define NVIC_PEND0_INT10 0x00000400 // Interrupt 10 pend +#define NVIC_PEND0_INT11 0x00000800 // Interrupt 11 pend +#define NVIC_PEND0_INT12 0x00001000 // Interrupt 12 pend +#define NVIC_PEND0_INT13 0x00002000 // Interrupt 13 pend +#define NVIC_PEND0_INT14 0x00004000 // Interrupt 14 pend +#define NVIC_PEND0_INT15 0x00008000 // Interrupt 15 pend +#define NVIC_PEND0_INT16 0x00010000 // Interrupt 16 pend +#define NVIC_PEND0_INT17 0x00020000 // Interrupt 17 pend +#define NVIC_PEND0_INT18 0x00040000 // Interrupt 18 pend +#define NVIC_PEND0_INT19 0x00080000 // Interrupt 19 pend +#define NVIC_PEND0_INT20 0x00100000 // Interrupt 20 pend +#define NVIC_PEND0_INT21 0x00200000 // Interrupt 21 pend +#define NVIC_PEND0_INT22 0x00400000 // Interrupt 22 pend +#define NVIC_PEND0_INT23 0x00800000 // Interrupt 23 pend +#define NVIC_PEND0_INT24 0x01000000 // Interrupt 24 pend +#define NVIC_PEND0_INT25 0x02000000 // Interrupt 25 pend +#define NVIC_PEND0_INT26 0x04000000 // Interrupt 26 pend +#define NVIC_PEND0_INT27 0x08000000 // Interrupt 27 pend +#define NVIC_PEND0_INT28 0x10000000 // Interrupt 28 pend +#define NVIC_PEND0_INT29 0x20000000 // Interrupt 29 pend +#define NVIC_PEND0_INT30 0x40000000 // Interrupt 30 pend +#define NVIC_PEND0_INT31 0x80000000 // Interrupt 31 pend //***************************************************************************** // // The following are defines for the bit fields in the NVIC_PEND1 register. // //***************************************************************************** -#define NVIC_PEND1_INT59 0x08000000 // Interrupt 59 pend -#define NVIC_PEND1_INT58 0x04000000 // Interrupt 58 pend -#define NVIC_PEND1_INT57 0x02000000 // Interrupt 57 pend -#define NVIC_PEND1_INT56 0x01000000 // Interrupt 56 pend -#define NVIC_PEND1_INT55 0x00800000 // Interrupt 55 pend -#define NVIC_PEND1_INT54 0x00400000 // Interrupt 54 pend -#define NVIC_PEND1_INT53 0x00200000 // Interrupt 53 pend -#define NVIC_PEND1_INT52 0x00100000 // Interrupt 52 pend -#define NVIC_PEND1_INT51 0x00080000 // Interrupt 51 pend -#define NVIC_PEND1_INT50 0x00040000 // Interrupt 50 pend -#define NVIC_PEND1_INT49 0x00020000 // Interrupt 49 pend -#define NVIC_PEND1_INT48 0x00010000 // Interrupt 48 pend -#define NVIC_PEND1_INT47 0x00008000 // Interrupt 47 pend -#define NVIC_PEND1_INT46 0x00004000 // Interrupt 46 pend -#define NVIC_PEND1_INT45 0x00002000 // Interrupt 45 pend -#define NVIC_PEND1_INT44 0x00001000 // Interrupt 44 pend -#define NVIC_PEND1_INT43 0x00000800 // Interrupt 43 pend -#define NVIC_PEND1_INT42 0x00000400 // Interrupt 42 pend -#define NVIC_PEND1_INT41 0x00000200 // Interrupt 41 pend -#define NVIC_PEND1_INT40 0x00000100 // Interrupt 40 pend -#define NVIC_PEND1_INT39 0x00000080 // Interrupt 39 pend -#define NVIC_PEND1_INT38 0x00000040 // Interrupt 38 pend -#define NVIC_PEND1_INT37 0x00000020 // Interrupt 37 pend -#define NVIC_PEND1_INT36 0x00000010 // Interrupt 36 pend -#define NVIC_PEND1_INT35 0x00000008 // Interrupt 35 pend -#define NVIC_PEND1_INT34 0x00000004 // Interrupt 34 pend -#define NVIC_PEND1_INT33 0x00000002 // Interrupt 33 pend +#define NVIC_PEND1_INT_M 0xFFFFFFFF // Interrupt Set Pending #define NVIC_PEND1_INT32 0x00000001 // Interrupt 32 pend +#define NVIC_PEND1_INT33 0x00000002 // Interrupt 33 pend +#define NVIC_PEND1_INT34 0x00000004 // Interrupt 34 pend +#define NVIC_PEND1_INT35 0x00000008 // Interrupt 35 pend +#define NVIC_PEND1_INT36 0x00000010 // Interrupt 36 pend +#define NVIC_PEND1_INT37 0x00000020 // Interrupt 37 pend +#define NVIC_PEND1_INT38 0x00000040 // Interrupt 38 pend +#define NVIC_PEND1_INT39 0x00000080 // Interrupt 39 pend +#define NVIC_PEND1_INT40 0x00000100 // Interrupt 40 pend +#define NVIC_PEND1_INT41 0x00000200 // Interrupt 41 pend +#define NVIC_PEND1_INT42 0x00000400 // Interrupt 42 pend +#define NVIC_PEND1_INT43 0x00000800 // Interrupt 43 pend +#define NVIC_PEND1_INT44 0x00001000 // Interrupt 44 pend +#define NVIC_PEND1_INT45 0x00002000 // Interrupt 45 pend +#define NVIC_PEND1_INT46 0x00004000 // Interrupt 46 pend +#define NVIC_PEND1_INT47 0x00008000 // Interrupt 47 pend +#define NVIC_PEND1_INT48 0x00010000 // Interrupt 48 pend +#define NVIC_PEND1_INT49 0x00020000 // Interrupt 49 pend +#define NVIC_PEND1_INT50 0x00040000 // Interrupt 50 pend +#define NVIC_PEND1_INT51 0x00080000 // Interrupt 51 pend +#define NVIC_PEND1_INT52 0x00100000 // Interrupt 52 pend +#define NVIC_PEND1_INT53 0x00200000 // Interrupt 53 pend +#define NVIC_PEND1_INT54 0x00400000 // Interrupt 54 pend +#define NVIC_PEND1_INT55 0x00800000 // Interrupt 55 pend + +//***************************************************************************** +// +// 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 0x0000000F // Interrupt Set Pending //***************************************************************************** // // The following are defines for the bit fields in the NVIC_UNPEND0 register. // //***************************************************************************** -#define NVIC_UNPEND0_INT31 0x80000000 // Interrupt 31 unpend -#define NVIC_UNPEND0_INT30 0x40000000 // Interrupt 30 unpend -#define NVIC_UNPEND0_INT29 0x20000000 // Interrupt 29 unpend -#define NVIC_UNPEND0_INT28 0x10000000 // Interrupt 28 unpend -#define NVIC_UNPEND0_INT27 0x08000000 // Interrupt 27 unpend -#define NVIC_UNPEND0_INT26 0x04000000 // Interrupt 26 unpend -#define NVIC_UNPEND0_INT25 0x02000000 // Interrupt 25 unpend -#define NVIC_UNPEND0_INT24 0x01000000 // Interrupt 24 unpend -#define NVIC_UNPEND0_INT23 0x00800000 // Interrupt 23 unpend -#define NVIC_UNPEND0_INT22 0x00400000 // Interrupt 22 unpend -#define NVIC_UNPEND0_INT21 0x00200000 // Interrupt 21 unpend -#define NVIC_UNPEND0_INT20 0x00100000 // Interrupt 20 unpend -#define NVIC_UNPEND0_INT19 0x00080000 // Interrupt 19 unpend -#define NVIC_UNPEND0_INT18 0x00040000 // Interrupt 18 unpend -#define NVIC_UNPEND0_INT17 0x00020000 // Interrupt 17 unpend -#define NVIC_UNPEND0_INT16 0x00010000 // Interrupt 16 unpend -#define NVIC_UNPEND0_INT15 0x00008000 // Interrupt 15 unpend -#define NVIC_UNPEND0_INT14 0x00004000 // Interrupt 14 unpend -#define NVIC_UNPEND0_INT13 0x00002000 // Interrupt 13 unpend -#define NVIC_UNPEND0_INT12 0x00001000 // Interrupt 12 unpend -#define NVIC_UNPEND0_INT11 0x00000800 // Interrupt 11 unpend -#define NVIC_UNPEND0_INT10 0x00000400 // Interrupt 10 unpend -#define NVIC_UNPEND0_INT9 0x00000200 // Interrupt 9 unpend -#define NVIC_UNPEND0_INT8 0x00000100 // Interrupt 8 unpend -#define NVIC_UNPEND0_INT7 0x00000080 // Interrupt 7 unpend -#define NVIC_UNPEND0_INT6 0x00000040 // Interrupt 6 unpend -#define NVIC_UNPEND0_INT5 0x00000020 // Interrupt 5 unpend -#define NVIC_UNPEND0_INT4 0x00000010 // Interrupt 4 unpend -#define NVIC_UNPEND0_INT3 0x00000008 // Interrupt 3 unpend -#define NVIC_UNPEND0_INT2 0x00000004 // Interrupt 2 unpend -#define NVIC_UNPEND0_INT1 0x00000002 // Interrupt 1 unpend +#define NVIC_UNPEND0_INT_M 0xFFFFFFFF // Interrupt Clear Pending #define NVIC_UNPEND0_INT0 0x00000001 // Interrupt 0 unpend +#define NVIC_UNPEND0_INT1 0x00000002 // Interrupt 1 unpend +#define NVIC_UNPEND0_INT2 0x00000004 // Interrupt 2 unpend +#define NVIC_UNPEND0_INT3 0x00000008 // Interrupt 3 unpend +#define NVIC_UNPEND0_INT4 0x00000010 // Interrupt 4 unpend +#define NVIC_UNPEND0_INT5 0x00000020 // Interrupt 5 unpend +#define NVIC_UNPEND0_INT6 0x00000040 // Interrupt 6 unpend +#define NVIC_UNPEND0_INT7 0x00000080 // Interrupt 7 unpend +#define NVIC_UNPEND0_INT8 0x00000100 // Interrupt 8 unpend +#define NVIC_UNPEND0_INT9 0x00000200 // Interrupt 9 unpend +#define NVIC_UNPEND0_INT10 0x00000400 // Interrupt 10 unpend +#define NVIC_UNPEND0_INT11 0x00000800 // Interrupt 11 unpend +#define NVIC_UNPEND0_INT12 0x00001000 // Interrupt 12 unpend +#define NVIC_UNPEND0_INT13 0x00002000 // Interrupt 13 unpend +#define NVIC_UNPEND0_INT14 0x00004000 // Interrupt 14 unpend +#define NVIC_UNPEND0_INT15 0x00008000 // Interrupt 15 unpend +#define NVIC_UNPEND0_INT16 0x00010000 // Interrupt 16 unpend +#define NVIC_UNPEND0_INT17 0x00020000 // Interrupt 17 unpend +#define NVIC_UNPEND0_INT18 0x00040000 // Interrupt 18 unpend +#define NVIC_UNPEND0_INT19 0x00080000 // Interrupt 19 unpend +#define NVIC_UNPEND0_INT20 0x00100000 // Interrupt 20 unpend +#define NVIC_UNPEND0_INT21 0x00200000 // Interrupt 21 unpend +#define NVIC_UNPEND0_INT22 0x00400000 // Interrupt 22 unpend +#define NVIC_UNPEND0_INT23 0x00800000 // Interrupt 23 unpend +#define NVIC_UNPEND0_INT24 0x01000000 // Interrupt 24 unpend +#define NVIC_UNPEND0_INT25 0x02000000 // Interrupt 25 unpend +#define NVIC_UNPEND0_INT26 0x04000000 // Interrupt 26 unpend +#define NVIC_UNPEND0_INT27 0x08000000 // Interrupt 27 unpend +#define NVIC_UNPEND0_INT28 0x10000000 // Interrupt 28 unpend +#define NVIC_UNPEND0_INT29 0x20000000 // Interrupt 29 unpend +#define NVIC_UNPEND0_INT30 0x40000000 // Interrupt 30 unpend +#define NVIC_UNPEND0_INT31 0x80000000 // Interrupt 31 unpend //***************************************************************************** // // The following are defines for the bit fields in the NVIC_UNPEND1 register. // //***************************************************************************** -#define NVIC_UNPEND1_INT59 0x08000000 // Interrupt 59 unpend -#define NVIC_UNPEND1_INT58 0x04000000 // Interrupt 58 unpend -#define NVIC_UNPEND1_INT57 0x02000000 // Interrupt 57 unpend -#define NVIC_UNPEND1_INT56 0x01000000 // Interrupt 56 unpend -#define NVIC_UNPEND1_INT55 0x00800000 // Interrupt 55 unpend -#define NVIC_UNPEND1_INT54 0x00400000 // Interrupt 54 unpend -#define NVIC_UNPEND1_INT53 0x00200000 // Interrupt 53 unpend -#define NVIC_UNPEND1_INT52 0x00100000 // Interrupt 52 unpend -#define NVIC_UNPEND1_INT51 0x00080000 // Interrupt 51 unpend -#define NVIC_UNPEND1_INT50 0x00040000 // Interrupt 50 unpend -#define NVIC_UNPEND1_INT49 0x00020000 // Interrupt 49 unpend -#define NVIC_UNPEND1_INT48 0x00010000 // Interrupt 48 unpend -#define NVIC_UNPEND1_INT47 0x00008000 // Interrupt 47 unpend -#define NVIC_UNPEND1_INT46 0x00004000 // Interrupt 46 unpend -#define NVIC_UNPEND1_INT45 0x00002000 // Interrupt 45 unpend -#define NVIC_UNPEND1_INT44 0x00001000 // Interrupt 44 unpend -#define NVIC_UNPEND1_INT43 0x00000800 // Interrupt 43 unpend -#define NVIC_UNPEND1_INT42 0x00000400 // Interrupt 42 unpend -#define NVIC_UNPEND1_INT41 0x00000200 // Interrupt 41 unpend -#define NVIC_UNPEND1_INT40 0x00000100 // Interrupt 40 unpend -#define NVIC_UNPEND1_INT39 0x00000080 // Interrupt 39 unpend -#define NVIC_UNPEND1_INT38 0x00000040 // Interrupt 38 unpend -#define NVIC_UNPEND1_INT37 0x00000020 // Interrupt 37 unpend -#define NVIC_UNPEND1_INT36 0x00000010 // Interrupt 36 unpend -#define NVIC_UNPEND1_INT35 0x00000008 // Interrupt 35 unpend -#define NVIC_UNPEND1_INT34 0x00000004 // Interrupt 34 unpend -#define NVIC_UNPEND1_INT33 0x00000002 // Interrupt 33 unpend +#define NVIC_UNPEND1_INT_M 0xFFFFFFFF // Interrupt Clear Pending #define NVIC_UNPEND1_INT32 0x00000001 // Interrupt 32 unpend +#define NVIC_UNPEND1_INT33 0x00000002 // Interrupt 33 unpend +#define NVIC_UNPEND1_INT34 0x00000004 // Interrupt 34 unpend +#define NVIC_UNPEND1_INT35 0x00000008 // Interrupt 35 unpend +#define NVIC_UNPEND1_INT36 0x00000010 // Interrupt 36 unpend +#define NVIC_UNPEND1_INT37 0x00000020 // Interrupt 37 unpend +#define NVIC_UNPEND1_INT38 0x00000040 // Interrupt 38 unpend +#define NVIC_UNPEND1_INT39 0x00000080 // Interrupt 39 unpend +#define NVIC_UNPEND1_INT40 0x00000100 // Interrupt 40 unpend +#define NVIC_UNPEND1_INT41 0x00000200 // Interrupt 41 unpend +#define NVIC_UNPEND1_INT42 0x00000400 // Interrupt 42 unpend +#define NVIC_UNPEND1_INT43 0x00000800 // Interrupt 43 unpend +#define NVIC_UNPEND1_INT44 0x00001000 // Interrupt 44 unpend +#define NVIC_UNPEND1_INT45 0x00002000 // Interrupt 45 unpend +#define NVIC_UNPEND1_INT46 0x00004000 // Interrupt 46 unpend +#define NVIC_UNPEND1_INT47 0x00008000 // Interrupt 47 unpend +#define NVIC_UNPEND1_INT48 0x00010000 // Interrupt 48 unpend +#define NVIC_UNPEND1_INT49 0x00020000 // Interrupt 49 unpend +#define NVIC_UNPEND1_INT50 0x00040000 // Interrupt 50 unpend +#define NVIC_UNPEND1_INT51 0x00080000 // Interrupt 51 unpend +#define NVIC_UNPEND1_INT52 0x00100000 // Interrupt 52 unpend +#define NVIC_UNPEND1_INT53 0x00200000 // Interrupt 53 unpend +#define NVIC_UNPEND1_INT54 0x00400000 // Interrupt 54 unpend +#define NVIC_UNPEND1_INT55 0x00800000 // Interrupt 55 unpend + +//***************************************************************************** +// +// 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 0x0000000F // Interrupt Clear Pending //***************************************************************************** // // The following are defines for the bit fields in the NVIC_ACTIVE0 register. // //***************************************************************************** -#define NVIC_ACTIVE0_INT31 0x80000000 // Interrupt 31 active -#define NVIC_ACTIVE0_INT30 0x40000000 // Interrupt 30 active -#define NVIC_ACTIVE0_INT29 0x20000000 // Interrupt 29 active -#define NVIC_ACTIVE0_INT28 0x10000000 // Interrupt 28 active -#define NVIC_ACTIVE0_INT27 0x08000000 // Interrupt 27 active -#define NVIC_ACTIVE0_INT26 0x04000000 // Interrupt 26 active -#define NVIC_ACTIVE0_INT25 0x02000000 // Interrupt 25 active -#define NVIC_ACTIVE0_INT24 0x01000000 // Interrupt 24 active -#define NVIC_ACTIVE0_INT23 0x00800000 // Interrupt 23 active -#define NVIC_ACTIVE0_INT22 0x00400000 // Interrupt 22 active -#define NVIC_ACTIVE0_INT21 0x00200000 // Interrupt 21 active -#define NVIC_ACTIVE0_INT20 0x00100000 // Interrupt 20 active -#define NVIC_ACTIVE0_INT19 0x00080000 // Interrupt 19 active -#define NVIC_ACTIVE0_INT18 0x00040000 // Interrupt 18 active -#define NVIC_ACTIVE0_INT17 0x00020000 // Interrupt 17 active -#define NVIC_ACTIVE0_INT16 0x00010000 // Interrupt 16 active -#define NVIC_ACTIVE0_INT15 0x00008000 // Interrupt 15 active -#define NVIC_ACTIVE0_INT14 0x00004000 // Interrupt 14 active -#define NVIC_ACTIVE0_INT13 0x00002000 // Interrupt 13 active -#define NVIC_ACTIVE0_INT12 0x00001000 // Interrupt 12 active -#define NVIC_ACTIVE0_INT11 0x00000800 // Interrupt 11 active -#define NVIC_ACTIVE0_INT10 0x00000400 // Interrupt 10 active -#define NVIC_ACTIVE0_INT9 0x00000200 // Interrupt 9 active -#define NVIC_ACTIVE0_INT8 0x00000100 // Interrupt 8 active -#define NVIC_ACTIVE0_INT7 0x00000080 // Interrupt 7 active -#define NVIC_ACTIVE0_INT6 0x00000040 // Interrupt 6 active -#define NVIC_ACTIVE0_INT5 0x00000020 // Interrupt 5 active -#define NVIC_ACTIVE0_INT4 0x00000010 // Interrupt 4 active -#define NVIC_ACTIVE0_INT3 0x00000008 // Interrupt 3 active -#define NVIC_ACTIVE0_INT2 0x00000004 // Interrupt 2 active -#define NVIC_ACTIVE0_INT1 0x00000002 // Interrupt 1 active +#define NVIC_ACTIVE0_INT_M 0xFFFFFFFF // Interrupt Active #define NVIC_ACTIVE0_INT0 0x00000001 // Interrupt 0 active +#define NVIC_ACTIVE0_INT1 0x00000002 // Interrupt 1 active +#define NVIC_ACTIVE0_INT2 0x00000004 // Interrupt 2 active +#define NVIC_ACTIVE0_INT3 0x00000008 // Interrupt 3 active +#define NVIC_ACTIVE0_INT4 0x00000010 // Interrupt 4 active +#define NVIC_ACTIVE0_INT5 0x00000020 // Interrupt 5 active +#define NVIC_ACTIVE0_INT6 0x00000040 // Interrupt 6 active +#define NVIC_ACTIVE0_INT7 0x00000080 // Interrupt 7 active +#define NVIC_ACTIVE0_INT8 0x00000100 // Interrupt 8 active +#define NVIC_ACTIVE0_INT9 0x00000200 // Interrupt 9 active +#define NVIC_ACTIVE0_INT10 0x00000400 // Interrupt 10 active +#define NVIC_ACTIVE0_INT11 0x00000800 // Interrupt 11 active +#define NVIC_ACTIVE0_INT12 0x00001000 // Interrupt 12 active +#define NVIC_ACTIVE0_INT13 0x00002000 // Interrupt 13 active +#define NVIC_ACTIVE0_INT14 0x00004000 // Interrupt 14 active +#define NVIC_ACTIVE0_INT15 0x00008000 // Interrupt 15 active +#define NVIC_ACTIVE0_INT16 0x00010000 // Interrupt 16 active +#define NVIC_ACTIVE0_INT17 0x00020000 // Interrupt 17 active +#define NVIC_ACTIVE0_INT18 0x00040000 // Interrupt 18 active +#define NVIC_ACTIVE0_INT19 0x00080000 // Interrupt 19 active +#define NVIC_ACTIVE0_INT20 0x00100000 // Interrupt 20 active +#define NVIC_ACTIVE0_INT21 0x00200000 // Interrupt 21 active +#define NVIC_ACTIVE0_INT22 0x00400000 // Interrupt 22 active +#define NVIC_ACTIVE0_INT23 0x00800000 // Interrupt 23 active +#define NVIC_ACTIVE0_INT24 0x01000000 // Interrupt 24 active +#define NVIC_ACTIVE0_INT25 0x02000000 // Interrupt 25 active +#define NVIC_ACTIVE0_INT26 0x04000000 // Interrupt 26 active +#define NVIC_ACTIVE0_INT27 0x08000000 // Interrupt 27 active +#define NVIC_ACTIVE0_INT28 0x10000000 // Interrupt 28 active +#define NVIC_ACTIVE0_INT29 0x20000000 // Interrupt 29 active +#define NVIC_ACTIVE0_INT30 0x40000000 // Interrupt 30 active +#define NVIC_ACTIVE0_INT31 0x80000000 // Interrupt 31 active //***************************************************************************** // // The following are defines for the bit fields in the NVIC_ACTIVE1 register. // //***************************************************************************** -#define NVIC_ACTIVE1_INT59 0x08000000 // Interrupt 59 active -#define NVIC_ACTIVE1_INT58 0x04000000 // Interrupt 58 active -#define NVIC_ACTIVE1_INT57 0x02000000 // Interrupt 57 active -#define NVIC_ACTIVE1_INT56 0x01000000 // Interrupt 56 active -#define NVIC_ACTIVE1_INT55 0x00800000 // Interrupt 55 active -#define NVIC_ACTIVE1_INT54 0x00400000 // Interrupt 54 active -#define NVIC_ACTIVE1_INT53 0x00200000 // Interrupt 53 active -#define NVIC_ACTIVE1_INT52 0x00100000 // Interrupt 52 active -#define NVIC_ACTIVE1_INT51 0x00080000 // Interrupt 51 active -#define NVIC_ACTIVE1_INT50 0x00040000 // Interrupt 50 active -#define NVIC_ACTIVE1_INT49 0x00020000 // Interrupt 49 active -#define NVIC_ACTIVE1_INT48 0x00010000 // Interrupt 48 active -#define NVIC_ACTIVE1_INT47 0x00008000 // Interrupt 47 active -#define NVIC_ACTIVE1_INT46 0x00004000 // Interrupt 46 active -#define NVIC_ACTIVE1_INT45 0x00002000 // Interrupt 45 active -#define NVIC_ACTIVE1_INT44 0x00001000 // Interrupt 44 active -#define NVIC_ACTIVE1_INT43 0x00000800 // Interrupt 43 active -#define NVIC_ACTIVE1_INT42 0x00000400 // Interrupt 42 active -#define NVIC_ACTIVE1_INT41 0x00000200 // Interrupt 41 active -#define NVIC_ACTIVE1_INT40 0x00000100 // Interrupt 40 active -#define NVIC_ACTIVE1_INT39 0x00000080 // Interrupt 39 active -#define NVIC_ACTIVE1_INT38 0x00000040 // Interrupt 38 active -#define NVIC_ACTIVE1_INT37 0x00000020 // Interrupt 37 active -#define NVIC_ACTIVE1_INT36 0x00000010 // Interrupt 36 active -#define NVIC_ACTIVE1_INT35 0x00000008 // Interrupt 35 active -#define NVIC_ACTIVE1_INT34 0x00000004 // Interrupt 34 active -#define NVIC_ACTIVE1_INT33 0x00000002 // Interrupt 33 active +#define NVIC_ACTIVE1_INT_M 0xFFFFFFFF // Interrupt Active #define NVIC_ACTIVE1_INT32 0x00000001 // Interrupt 32 active +#define NVIC_ACTIVE1_INT33 0x00000002 // Interrupt 33 active +#define NVIC_ACTIVE1_INT34 0x00000004 // Interrupt 34 active +#define NVIC_ACTIVE1_INT35 0x00000008 // Interrupt 35 active +#define NVIC_ACTIVE1_INT36 0x00000010 // Interrupt 36 active +#define NVIC_ACTIVE1_INT37 0x00000020 // Interrupt 37 active +#define NVIC_ACTIVE1_INT38 0x00000040 // Interrupt 38 active +#define NVIC_ACTIVE1_INT39 0x00000080 // Interrupt 39 active +#define NVIC_ACTIVE1_INT40 0x00000100 // Interrupt 40 active +#define NVIC_ACTIVE1_INT41 0x00000200 // Interrupt 41 active +#define NVIC_ACTIVE1_INT42 0x00000400 // Interrupt 42 active +#define NVIC_ACTIVE1_INT43 0x00000800 // Interrupt 43 active +#define NVIC_ACTIVE1_INT44 0x00001000 // Interrupt 44 active +#define NVIC_ACTIVE1_INT45 0x00002000 // Interrupt 45 active +#define NVIC_ACTIVE1_INT46 0x00004000 // Interrupt 46 active +#define NVIC_ACTIVE1_INT47 0x00008000 // Interrupt 47 active +#define NVIC_ACTIVE1_INT48 0x00010000 // Interrupt 48 active +#define NVIC_ACTIVE1_INT49 0x00020000 // Interrupt 49 active +#define NVIC_ACTIVE1_INT50 0x00040000 // Interrupt 50 active +#define NVIC_ACTIVE1_INT51 0x00080000 // Interrupt 51 active +#define NVIC_ACTIVE1_INT52 0x00100000 // Interrupt 52 active +#define NVIC_ACTIVE1_INT53 0x00200000 // Interrupt 53 active +#define NVIC_ACTIVE1_INT54 0x00400000 // Interrupt 54 active +#define NVIC_ACTIVE1_INT55 0x00800000 // Interrupt 55 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 0x0000000F // Interrupt Active //***************************************************************************** // // The following are defines for the bit fields in the NVIC_PRI0 register. // //***************************************************************************** -#define NVIC_PRI0_INT3_M 0xFF000000 // Interrupt 3 priority mask -#define NVIC_PRI0_INT2_M 0x00FF0000 // Interrupt 2 priority mask -#define NVIC_PRI0_INT1_M 0x0000FF00 // Interrupt 1 priority mask -#define NVIC_PRI0_INT0_M 0x000000FF // Interrupt 0 priority mask -#define NVIC_PRI0_INT3_S 24 -#define NVIC_PRI0_INT2_S 16 -#define NVIC_PRI0_INT1_S 8 -#define NVIC_PRI0_INT0_S 0 +#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 0xFF000000 // Interrupt 7 priority mask -#define NVIC_PRI1_INT6_M 0x00FF0000 // Interrupt 6 priority mask -#define NVIC_PRI1_INT5_M 0x0000FF00 // Interrupt 5 priority mask -#define NVIC_PRI1_INT4_M 0x000000FF // Interrupt 4 priority mask -#define NVIC_PRI1_INT7_S 24 -#define NVIC_PRI1_INT6_S 16 -#define NVIC_PRI1_INT5_S 8 -#define NVIC_PRI1_INT4_S 0 +#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 0xFF000000 // Interrupt 11 priority mask -#define NVIC_PRI2_INT10_M 0x00FF0000 // Interrupt 10 priority mask -#define NVIC_PRI2_INT9_M 0x0000FF00 // Interrupt 9 priority mask -#define NVIC_PRI2_INT8_M 0x000000FF // Interrupt 8 priority mask -#define NVIC_PRI2_INT11_S 24 -#define NVIC_PRI2_INT10_S 16 -#define NVIC_PRI2_INT9_S 8 -#define NVIC_PRI2_INT8_S 0 +#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 0xFF000000 // Interrupt 15 priority mask -#define NVIC_PRI3_INT14_M 0x00FF0000 // Interrupt 14 priority mask -#define NVIC_PRI3_INT13_M 0x0000FF00 // Interrupt 13 priority mask -#define NVIC_PRI3_INT12_M 0x000000FF // Interrupt 12 priority mask -#define NVIC_PRI3_INT15_S 24 -#define NVIC_PRI3_INT14_S 16 -#define NVIC_PRI3_INT13_S 8 -#define NVIC_PRI3_INT12_S 0 +#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 0xFF000000 // Interrupt 19 priority mask -#define NVIC_PRI4_INT18_M 0x00FF0000 // Interrupt 18 priority mask -#define NVIC_PRI4_INT17_M 0x0000FF00 // Interrupt 17 priority mask -#define NVIC_PRI4_INT16_M 0x000000FF // Interrupt 16 priority mask -#define NVIC_PRI4_INT19_S 24 -#define NVIC_PRI4_INT18_S 16 -#define NVIC_PRI4_INT17_S 8 -#define NVIC_PRI4_INT16_S 0 +#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 0xFF000000 // Interrupt 23 priority mask -#define NVIC_PRI5_INT22_M 0x00FF0000 // Interrupt 22 priority mask -#define NVIC_PRI5_INT21_M 0x0000FF00 // Interrupt 21 priority mask -#define NVIC_PRI5_INT20_M 0x000000FF // Interrupt 20 priority mask -#define NVIC_PRI5_INT23_S 24 -#define NVIC_PRI5_INT22_S 16 -#define NVIC_PRI5_INT21_S 8 -#define NVIC_PRI5_INT20_S 0 +#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 0xFF000000 // Interrupt 27 priority mask -#define NVIC_PRI6_INT26_M 0x00FF0000 // Interrupt 26 priority mask -#define NVIC_PRI6_INT25_M 0x0000FF00 // Interrupt 25 priority mask -#define NVIC_PRI6_INT24_M 0x000000FF // Interrupt 24 priority mask -#define NVIC_PRI6_INT27_S 24 -#define NVIC_PRI6_INT26_S 16 -#define NVIC_PRI6_INT25_S 8 -#define NVIC_PRI6_INT24_S 0 +#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 0xFF000000 // Interrupt 31 priority mask -#define NVIC_PRI7_INT30_M 0x00FF0000 // Interrupt 30 priority mask -#define NVIC_PRI7_INT29_M 0x0000FF00 // Interrupt 29 priority mask -#define NVIC_PRI7_INT28_M 0x000000FF // Interrupt 28 priority mask -#define NVIC_PRI7_INT31_S 24 -#define NVIC_PRI7_INT30_S 16 -#define NVIC_PRI7_INT29_S 8 -#define NVIC_PRI7_INT28_S 0 +#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 0xFF000000 // Interrupt 35 priority mask -#define NVIC_PRI8_INT34_M 0x00FF0000 // Interrupt 34 priority mask -#define NVIC_PRI8_INT33_M 0x0000FF00 // Interrupt 33 priority mask -#define NVIC_PRI8_INT32_M 0x000000FF // Interrupt 32 priority mask -#define NVIC_PRI8_INT35_S 24 -#define NVIC_PRI8_INT34_S 16 -#define NVIC_PRI8_INT33_S 8 -#define NVIC_PRI8_INT32_S 0 +#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 0xFF000000 // Interrupt 39 priority mask -#define NVIC_PRI9_INT38_M 0x00FF0000 // Interrupt 38 priority mask -#define NVIC_PRI9_INT37_M 0x0000FF00 // Interrupt 37 priority mask -#define NVIC_PRI9_INT36_M 0x000000FF // Interrupt 36 priority mask -#define NVIC_PRI9_INT39_S 24 -#define NVIC_PRI9_INT38_S 16 -#define NVIC_PRI9_INT37_S 8 -#define NVIC_PRI9_INT36_S 0 +#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 0xFF000000 // Interrupt 43 priority mask -#define NVIC_PRI10_INT42_M 0x00FF0000 // Interrupt 42 priority mask -#define NVIC_PRI10_INT41_M 0x0000FF00 // Interrupt 41 priority mask -#define NVIC_PRI10_INT40_M 0x000000FF // Interrupt 40 priority mask -#define NVIC_PRI10_INT43_S 24 -#define NVIC_PRI10_INT42_S 16 -#define NVIC_PRI10_INT41_S 8 -#define NVIC_PRI10_INT40_S 0 +#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_CPUID register. // //***************************************************************************** -#define NVIC_CPUID_IMP_M 0xFF000000 // Implementer -#define NVIC_CPUID_VAR_M 0x00F00000 // Variant -#define NVIC_CPUID_PARTNO_M 0x0000FFF0 // Processor part number -#define NVIC_CPUID_REV_M 0x0000000F // Revision +#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_CM3 0x0000C230 // Cortex-M3 processor +#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 // Pend a NMI -#define NVIC_INT_CTRL_PEND_SV 0x10000000 // Pend a PendSV -#define NVIC_INT_CTRL_UNPEND_SV 0x08000000 // Unpend a PendSV -#define NVIC_INT_CTRL_PENDSTSET 0x04000000 // Set pending SysTick interrupt -#define NVIC_INT_CTRL_PENDSTCLR 0x02000000 // Clear pending SysTick interrupt -#define NVIC_INT_CTRL_ISR_PRE 0x00800000 // Debug interrupt handling -#define NVIC_INT_CTRL_ISR_PEND 0x00400000 // Debug interrupt pending -#define NVIC_INT_CTRL_VEC_PEN_M 0x003FF000 // Highest pending exception -#define NVIC_INT_CTRL_RET_BASE 0x00000800 // Return to base -#define NVIC_INT_CTRL_VEC_ACT_M 0x000003FF // Current active exception +#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_PEN_S 12 #define NVIC_INT_CTRL_VEC_ACT_S 0 @@ -677,19 +1163,19 @@ // The following are defines for the bit fields in the NVIC_VTABLE register. // //***************************************************************************** -#define NVIC_VTABLE_BASE 0x20000000 // Vector table base -#define NVIC_VTABLE_OFFSET_M 0x1FFFFF00 // Vector table offset -#define NVIC_VTABLE_OFFSET_S 8 +#define NVIC_VTABLE_BASE 0x20000000 // Vector Table Base +#define NVIC_VTABLE_OFFSET_M 0x1FFFFC00 // 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 // Vector key mask +#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 // Priority group +#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 @@ -698,65 +1184,64 @@ #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 info -#define NVIC_APINT_VECT_RESET 0x00000001 // System reset +#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 // Wakeup on pend -#define NVIC_SYS_CTRL_SLEEPDEEP 0x00000004 // Deep sleep enable -#define NVIC_SYS_CTRL_SLEEPEXIT 0x00000002 // Sleep on ISR exit +#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_BFHFNMIGN 0x00000100 // Ignore bus fault in NMI/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_DEEP_PEND 0x00000004 // Allow deep interrupt trigger -#define NVIC_CFG_CTRL_MAIN_PEND 0x00000002 // Allow main interrupt trigger -#define NVIC_CFG_CTRL_BASE_THR 0x00000001 // Thread state control +#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_RES_M 0xFF000000 // Priority of reserved handler -#define NVIC_SYS_PRI1_USAGE_M 0x00FF0000 // Priority of usage fault handler -#define NVIC_SYS_PRI1_BUS_M 0x0000FF00 // Priority of bus fault handler -#define NVIC_SYS_PRI1_MEM_M 0x000000FF // Priority of mem manage handler -#define NVIC_SYS_PRI1_USAGE_S 16 -#define NVIC_SYS_PRI1_BUS_S 8 -#define NVIC_SYS_PRI1_MEM_S 0 +#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 0xFF000000 // Priority of SVCall handler -#define NVIC_SYS_PRI2_RES_M 0x00FFFFFF // Priority of reserved handlers -#define NVIC_SYS_PRI2_SVC_S 24 +#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 0xFF000000 // Priority of Sys Tick handler -#define NVIC_SYS_PRI3_PENDSV_M 0x00FF0000 // Priority of PendSV handler -#define NVIC_SYS_PRI3_RES_M 0x0000FF00 // Priority of reserved handler -#define NVIC_SYS_PRI3_DEBUG_M 0x000000FF // Priority of debug handler -#define NVIC_SYS_PRI3_TICK_S 24 -#define NVIC_SYS_PRI3_PENDSV_S 16 -#define NVIC_SYS_PRI3_DEBUG_S 0 +#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 //***************************************************************************** // @@ -764,18 +1249,21 @@ // 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 // Mem manage fault enable -#define NVIC_SYS_HND_CTRL_SVC 0x00008000 // SVCall is pended -#define NVIC_SYS_HND_CTRL_BUSP 0x00004000 // Bus fault is pended -#define NVIC_SYS_HND_CTRL_TICK 0x00000800 // Sys tick is active -#define NVIC_SYS_HND_CTRL_PNDSV 0x00000400 // PendSV is active -#define NVIC_SYS_HND_CTRL_MON 0x00000100 // Monitor is active -#define NVIC_SYS_HND_CTRL_SVCA 0x00000080 // SVCall is active -#define NVIC_SYS_HND_CTRL_USGA 0x00000008 // Usage fault is active -#define NVIC_SYS_HND_CTRL_BUSA 0x00000002 // Bus fault is active -#define NVIC_SYS_HND_CTRL_MEMA 0x00000001 // Mem manage is active +#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 //***************************************************************************** // @@ -783,23 +1271,30 @@ // register. // //***************************************************************************** -#define NVIC_FAULT_STAT_DIV0 0x02000000 // Divide by zero fault -#define NVIC_FAULT_STAT_UNALIGN 0x01000000 // Unaligned access fault -#define NVIC_FAULT_STAT_NOCP 0x00080000 // No coprocessor fault -#define NVIC_FAULT_STAT_INVPC 0x00040000 // Invalid PC fault -#define NVIC_FAULT_STAT_INVSTAT 0x00020000 // Invalid state fault -#define NVIC_FAULT_STAT_UNDEF 0x00010000 // Undefined instruction fault -#define NVIC_FAULT_STAT_BFARV 0x00008000 // BFAR is valid -#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 fault -#define NVIC_FAULT_STAT_MMARV 0x00000080 // MMAR is valid -#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 +#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 //***************************************************************************** // @@ -807,9 +1302,9 @@ // register. // //***************************************************************************** -#define NVIC_HFAULT_STAT_DBG 0x80000000 // Debug event -#define NVIC_HFAULT_STAT_FORCED 0x40000000 // Cannot execute fault handler -#define NVIC_HFAULT_STAT_VECT 0x00000002 // Vector table read fault +#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 //***************************************************************************** // @@ -828,7 +1323,7 @@ // The following are defines for the bit fields in the NVIC_MM_ADDR register. // //***************************************************************************** -#define NVIC_MM_ADDR_M 0xFFFFFFFF // Data fault address +#define NVIC_MM_ADDR_M 0xFFFFFFFF // Fault Address #define NVIC_MM_ADDR_S 0 //***************************************************************************** @@ -837,17 +1332,33 @@ // register. // //***************************************************************************** -#define NVIC_FAULT_ADDR_M 0xFFFFFFFF // Data bus fault address +#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_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 @@ -856,9 +1367,9 @@ // The following are defines for the bit fields in the NVIC_MPU_CTRL register. // //***************************************************************************** -#define NVIC_MPU_CTRL_PRIVDEFEN 0x00000004 // MPU default region in priv mode -#define NVIC_MPU_CTRL_HFNMIENA 0x00000002 // MPU enabled during faults -#define NVIC_MPU_CTRL_ENABLE 0x00000001 // MPU enable +#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 //***************************************************************************** // @@ -866,7 +1377,7 @@ // register. // //***************************************************************************** -#define NVIC_MPU_NUMBER_M 0x000000FF // MPU region to access +#define NVIC_MPU_NUMBER_M 0x00000007 // MPU Region to Access #define NVIC_MPU_NUMBER_S 0 //***************************************************************************** @@ -874,10 +1385,10 @@ // 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 0x0000000F // Region number -#define NVIC_MPU_BASE_ADDR_S 8 +#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 //***************************************************************************** @@ -886,19 +1397,19 @@ // //***************************************************************************** #define NVIC_MPU_ATTR_M 0xFFFF0000 // Attributes +#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_BUFFRABLE 0x00010000 // Bufferable -#define NVIC_MPU_ATTR_CACHEABLE 0x00020000 // Cacheable -#define NVIC_MPU_ATTR_SHAREABLE 0x00040000 // Shareable -#define NVIC_MPU_ATTR_TEX_M 0x00380000 // Type extension mask #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_AP_M 0x07000000 // Access permissions mask -#define NVIC_MPU_ATTR_XN 0x10000000 // Execute disable -#define NVIC_MPU_ATTR_SRD_M 0x0000FF00 // Sub-region disable mask +#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 @@ -907,7 +1418,7 @@ #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_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 @@ -936,7 +1447,94 @@ #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 +#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 //***************************************************************************** // @@ -1020,7 +1618,47 @@ // The following are defines for the bit fields in the NVIC_SW_TRIG register. // //***************************************************************************** -#define NVIC_SW_TRIG_INTID_M 0x000003FF // Interrupt to trigger +#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__ diff --git a/bsp/lm3s8962/Libraries/inc/hw_peci.h b/bsp/lm3s8962/Libraries/inc/hw_peci.h new file mode 100644 index 0000000000..012a0c821e --- /dev/null +++ b/bsp/lm3s8962/Libraries/inc/hw_peci.h @@ -0,0 +1,375 @@ +//***************************************************************************** +// +// hw_peci.h - Macros used when accessing the PECI hardware. +// +// Copyright (c) 2010-2011 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 8264 of the Stellaris Firmware Development Package. +// +//***************************************************************************** + +#ifndef __HW_PECI_H__ +#define __HW_PECI_H__ + +//***************************************************************************** +// +// The following are defines for the PECI register addresses. +// +//***************************************************************************** +#define PECI_O_CTL 0x00000000 // PECI Control +#define PECI_O_DIV 0x00000004 // PECI Poll-Rate Divider +#define PECI_O_CMP 0x00000008 // PECI Comparator +#define PECI_O_M0D0C 0x00000010 // PECI Microprocessor 0 / Domain 0 + // Control +#define PECI_O_M0D1C 0x00000014 // PECI Microprocessor 0 / Domain 1 + // Control +#define PECI_O_M1D0C 0x00000018 // PECI Microprocessor 1 / Domain 0 + // Control +#define PECI_O_M1D1C 0x0000001C // PECI Microprocessor 1 / Domain 1 + // Control +#define PECI_O_M0D0 0x00000040 // PECI Microprocessor 0 / Domain 0 + // Value +#define PECI_O_M0D1 0x00000044 // PECI Microprocessor 0 / Domain 1 + // Value +#define PECI_O_M1D0 0x00000048 // PECI Microprocessor 1 / Domain 0 + // Value +#define PECI_O_M1D1 0x0000004C // PECI Microprocessor 1 / Domain 1 + // Value +#define PECI_O_IM 0x00000080 // PECI Interrupt Mask +#define PECI_O_RIS 0x00000084 // PECI Raw Interrupt Status +#define PECI_O_MIS 0x00000088 // PECI Masked Interrupt Status +#define PECI_O_IC 0x0000008C // PECI Interrupt Clear +#define PECI_O_ACADDR 0x00000100 // PECI Advanced Command Address +#define PECI_O_ACARG 0x00000104 // PECI Advanced Command Argument +#define PECI_O_ACRDWR0 0x00000108 // PECI Advanced Command Data 0 +#define PECI_O_ACRDWR1 0x0000010C // PECI Advanced Command Data 1 +#define PECI_O_ACCMD 0x00000110 // PECI Advanced Command +#define PECI_O_ACCODE 0x00000114 // PECI Advanced Command Completion + // Code + +//***************************************************************************** +// +// The following are defines for the bit fields in the PECI_O_CTL register. +// +//***************************************************************************** +#define PECI_CTL_OFFSET_M 0xFFFF0000 // Offset Value +#define PECI_CTL_CRETRY_M 0x00007000 // Number of Controller Retries +#define PECI_CTL_BYERR 0x00000800 // Number of Retries +#define PECI_CTL_RXINV 0x00000400 // Invert PECI RX Input +#define PECI_CTL_M1D1EN 0x00000008 // Enable Microprocessor 1 and + // Domain 1 +#define PECI_CTL_M1D0EN 0x00000004 // Enable Microprocessor 1 and + // Domain 0 +#define PECI_CTL_M0D1EN 0x00000002 // Enable Microprocessor 0 and + // Domain 1 +#define PECI_CTL_M0D0EN 0x00000001 // Enable Microprocessor 0 and + // Domain 0 +#define PECI_CTL_OFFSET_S 16 +#define PECI_CTL_CRETRY_S 12 + +//***************************************************************************** +// +// The following are defines for the bit fields in the PECI_O_DIV register. +// +//***************************************************************************** +#define PECI_DIV_BAUD_M 0xFFFF0000 // Initial Baud Rate +#define PECI_DIV_POLL_M 0x0000FFFF // Counter for Inter-Poll Delay +#define PECI_DIV_BAUD_S 16 +#define PECI_DIV_POLL_S 0 + +//***************************************************************************** +// +// The following are defines for the bit fields in the PECI_O_CMP register. +// +//***************************************************************************** +#define PECI_CMP_VREF_M 0x00000007 // Resistor Ladder Voltage Ref +#define PECI_CMP_VREF_0_5000V 0x00000000 // 0.5000 +#define PECI_CMP_VREF_0_5125V 0x00000001 // 0.5125 +#define PECI_CMP_VREF_0_5250V 0x00000002 // 0.5250 +#define PECI_CMP_VREF_0_5375V 0x00000003 // 0.5375 +#define PECI_CMP_VREF_0_5500V 0x00000004 // 0.5500 +#define PECI_CMP_VREF_0_5625V 0x00000005 // 0.5625 +#define PECI_CMP_VREF_0_6000V 0x00000006 // 0.6000 +#define PECI_CMP_VREF_0_6625V 0x00000007 // 0.6625 + +//***************************************************************************** +// +// The following are defines for the bit fields in the PECI_O_M0D0C register. +// +//***************************************************************************** +#define PECI_M0D0C_HITHR_M 0xFFFF0000 // High Threshold +#define PECI_M0D0C_LOTHR_M 0x0000FFFF // Low Threshold +#define PECI_M0D0C_HITHR_S 16 +#define PECI_M0D0C_LOTHR_S 0 + +//***************************************************************************** +// +// The following are defines for the bit fields in the PECI_O_M0D1C register. +// +//***************************************************************************** +#define PECI_M0D1C_HITHR_M 0xFFFF0000 // High Threshold +#define PECI_M0D1C_LOTHR_M 0x0000FFFF // Low Threshold +#define PECI_M0D1C_HITHR_S 16 +#define PECI_M0D1C_LOTHR_S 0 + +//***************************************************************************** +// +// The following are defines for the bit fields in the PECI_O_M1D0C register. +// +//***************************************************************************** +#define PECI_M1D0C_HITHR_M 0xFFFF0000 // High Threshold +#define PECI_M1D0C_LOTHR_M 0x0000FFFF // Low Threshold +#define PECI_M1D0C_HITHR_S 16 +#define PECI_M1D0C_LOTHR_S 0 + +//***************************************************************************** +// +// The following are defines for the bit fields in the PECI_O_M1D1C register. +// +//***************************************************************************** +#define PECI_M1D1C_HITHR_M 0xFFFF0000 // High Threshold +#define PECI_M1D1C_LOTHR_M 0x0000FFFF // Low Threshold +#define PECI_M1D1C_HITHR_S 16 +#define PECI_M1D1C_LOTHR_S 0 + +//***************************************************************************** +// +// The following are defines for the bit fields in the PECI_O_M0D0 register. +// +//***************************************************************************** +#define PECI_M0D0_MAXREAD_M 0xFFFF0000 // Highest Value Read +#define PECI_M0D0_VALUE_M 0x0000FFFF // Last Value Read +#define PECI_M0D0_VALUE_MCRCTX 0x000081F9 // Microprocessor abort CRC error + // on transmitted data +#define PECI_M0D0_VALUE_CRCRX 0x000081FA // CRC error on received data +#define PECI_M0D0_VALUE_CRCTX 0x000081FB // CRC error on transmitted data +#define PECI_M0D0_VALUE_NEG 0x000081FC // Negotiation error +#define PECI_M0D0_VALUE_TO 0x000081FD // Timeout error +#define PECI_M0D0_MAXREAD_S 16 + +//***************************************************************************** +// +// The following are defines for the bit fields in the PECI_O_M0D1 register. +// +//***************************************************************************** +#define PECI_M0D1_MAXREAD_M 0xFFFF0000 // Highest Value Read +#define PECI_M0D1_VALUE_M 0x0000FFFF // Last Value Read +#define PECI_M0D1_VALUE_MCRCTX 0x000081F9 // Microprocessor abort CRC error + // on transmitted data +#define PECI_M0D1_VALUE_CRCRX 0x000081FA // CRC error on received data +#define PECI_M0D1_VALUE_CRCTX 0x000081FB // CRC error on transmitted data +#define PECI_M0D1_VALUE_NEG 0x000081FC // Negotiation error +#define PECI_M0D1_VALUE_TO 0x000081FD // Timeout error +#define PECI_M0D1_MAXREAD_S 16 + +//***************************************************************************** +// +// The following are defines for the bit fields in the PECI_O_M1D0 register. +// +//***************************************************************************** +#define PECI_M1D0_MAXREAD_M 0xFFFF0000 // Highest Value Read +#define PECI_M1D0_VALUE_M 0x0000FFFF // Last Value Read +#define PECI_M1D0_VALUE_MCRCTX 0x000081F9 // Microprocessor abort CRC error + // on transmitted data +#define PECI_M1D0_VALUE_CRCRX 0x000081FA // CRC error on received data +#define PECI_M1D0_VALUE_CRCTX 0x000081FB // CRC error on transmitted data +#define PECI_M1D0_VALUE_NEG 0x000081FC // Negotiation error +#define PECI_M1D0_VALUE_TO 0x000081FD // Timeout error +#define PECI_M1D0_MAXREAD_S 16 + +//***************************************************************************** +// +// The following are defines for the bit fields in the PECI_O_M1D1 register. +// +//***************************************************************************** +#define PECI_M1D1_MAXREAD_M 0xFFFF0000 // Highest Value Read +#define PECI_M1D1_VALUE_M 0x0000FFFF // Last Value Read +#define PECI_M1D1_VALUE_MCRCTX 0x000081F9 // Microprocessor abort CRC error + // on transmitted data +#define PECI_M1D1_VALUE_CRCRX 0x000081FA // CRC error on received data +#define PECI_M1D1_VALUE_CRCTX 0x000081FB // CRC error on transmitted data +#define PECI_M1D1_VALUE_NEG 0x000081FC // Negotiation error +#define PECI_M1D1_VALUE_TO 0x000081FD // Timeout error +#define PECI_M1D1_MAXREAD_S 16 + +//***************************************************************************** +// +// The following are defines for the bit fields in the PECI_O_IM register. +// +//***************************************************************************** +#define PECI_IM_M1D1IM_M 0x00C00000 // Microprocessor 1 and Domain 1 + // Interrupt Mask +#define PECI_IM_M1D1IM_HIGH 0x00400000 // Interrupt when value is above + // high threshold +#define PECI_IM_M1D1IM_CROSSUP 0x00800000 // Interrupt when crossing above + // either threshold +#define PECI_IM_M1D1IM_CROSSANY 0x00C00000 // Interrupt when crossing either + // threshold in either direction +#define PECI_IM_M1D0IM_M 0x00300000 // Microprocessor 1 and Domain 0 + // Interrupt Mask +#define PECI_IM_M0D1IM_M 0x000C0000 // Microprocessor 0 and Domain 1 + // Interrupt Mask +#define PECI_IM_M0D0IM_M 0x00030000 // Microprocessor 0 and Domain 0 + // Interrupt Mask +#define PECI_IM_ACIM 0x00000004 // Advanced Command Interrupt Mask +#define PECI_IM_ERRIM 0x00000002 // Error Detected Interrupt Mask +#define PECI_IM_POLLIM 0x00000001 // Poll Completed Interrupt Mask +#define PECI_IM_M1D0IM_S 20 +#define PECI_IM_M0D1IM_S 18 +#define PECI_IM_M0D0IM_S 16 + +//***************************************************************************** +// +// The following are defines for the bit fields in the PECI_O_RIS register. +// +//***************************************************************************** +#define PECI_RIS_M1D1RIS_M 0x00C00000 // Microprocessor 1 and Domain 1 + // Raw Interrupt Status +#define PECI_RIS_M1D0RIS_M 0x00300000 // Microprocessor 1 and Domain 0 + // Raw Interrupt Status +#define PECI_RIS_M0D1RIS_M 0x000C0000 // Microprocessor 0 and Domain 1 + // Raw Interrupt Status +#define PECI_RIS_M0D0RIS_M 0x00030000 // Microprocessor 0 and Domain 0 + // Raw Interrupt Status +#define PECI_RIS_ACRIS 0x00000004 // Advanced Command Raw Interrupt + // Status +#define PECI_RIS_ERRRIS 0x00000002 // Error Detected Raw Interrupt + // Status +#define PECI_RIS_POLLRIS 0x00000001 // Poll Completed Raw Interrupt + // Status +#define PECI_RIS_M1D1RIS_S 22 +#define PECI_RIS_M1D0RIS_S 20 +#define PECI_RIS_M0D1RIS_S 18 +#define PECI_RIS_M0D0RIS_S 16 + +//***************************************************************************** +// +// The following are defines for the bit fields in the PECI_O_MIS register. +// +//***************************************************************************** +#define PECI_MIS_M1D1MIS_M 0x00C00000 // Microprocessor 1 and Domain 1 + // Masked Interrupt Status +#define PECI_MIS_M1D0MIS_M 0x00300000 // Microprocessor 1 and Domain 0 + // Masked Interrupt Status +#define PECI_MIS_M0D1MIS_M 0x000C0000 // Microprocessor 0 and Domain 1 + // Masked Interrupt Status +#define PECI_MIS_M0D0MIS_M 0x00030000 // Microprocessor 0 and Domain 0 + // Masked Interrupt Status +#define PECI_MIS_ACMIS 0x00000004 // Advanced Command Masked + // Interrupt Status +#define PECI_MIS_ERRMIS 0x00000002 // Error Detected Masked Interrupt + // Status +#define PECI_MIS_POLLMIS 0x00000001 // Poll Completed Masked Interrupt + // Status +#define PECI_MIS_M1D1MIS_S 22 +#define PECI_MIS_M1D0MIS_S 20 +#define PECI_MIS_M0D1MIS_S 18 +#define PECI_MIS_M0D0MIS_S 16 + +//***************************************************************************** +// +// The following are defines for the bit fields in the PECI_O_IC register. +// +//***************************************************************************** +#define PECI_IC_M1D1IC_M 0x00C00000 // Microprocessor 1 and Domain 1 + // Interrupt Clear +#define PECI_IC_M1D0IC_M 0x00300000 // Microprocessor 1 and Domain 0 + // Interrupt Clear +#define PECI_IC_M0D1IC_M 0x000C0000 // Microprocessor 0 and Domain 1 + // Interrupt Clear +#define PECI_IC_M0D0IC_M 0x00030000 // Microprocessor 0 and Domain 0 + // Interrupt Clear +#define PECI_IC_ACIC 0x00000004 // Advanced Command Interrupt Clear +#define PECI_IC_ERRIC 0x00000002 // Error Detected Interrupt Clear +#define PECI_IC_POLLIC 0x00000001 // Poll Completed Interrupt Clear +#define PECI_IC_M1D1IC_S 22 +#define PECI_IC_M1D0IC_S 20 +#define PECI_IC_M0D1IC_S 18 +#define PECI_IC_M0D0IC_S 16 + +//***************************************************************************** +// +// The following are defines for the bit fields in the PECI_O_ACADDR register. +// +//***************************************************************************** +#define PECI_ACADDR_HIDRE_M 0xFF000000 // HostID and Retry +#define PECI_ACADDR_SIZE_M 0x00FF0000 // Size Override +#define PECI_ACADDR_DOMAIN_M 0x0000FF00 // Domain Select +#define PECI_ACADDR_PROCADD_M 0x000000FF // Processor Address +#define PECI_ACADDR_HIDRE_S 24 +#define PECI_ACADDR_SIZE_S 16 +#define PECI_ACADDR_DOMAIN_S 8 +#define PECI_ACADDR_PROCADD_S 0 + +//***************************************************************************** +// +// The following are defines for the bit fields in the PECI_O_ACARG register. +// +//***************************************************************************** +#define PECI_ACARG_ARG3_M 0xFF000000 // Argument 3 +#define PECI_ACARG_ARG2_M 0x00FF0000 // Argument 2 +#define PECI_ACARG_ARG1_M 0x0000FF00 // Argument 1 +#define PECI_ACARG_ARG0_M 0x000000FF // Argument 0 +#define PECI_ACARG_ARG3_S 24 +#define PECI_ACARG_ARG2_S 16 +#define PECI_ACARG_ARG1_S 8 +#define PECI_ACARG_ARG0_S 0 + +//***************************************************************************** +// +// The following are defines for the bit fields in the PECI_O_ACRDWR0 register. +// +//***************************************************************************** +#define PECI_ACRDWR0_D3_M 0xFF000000 // Data 3 +#define PECI_ACRDWR0_D2_M 0x00FF0000 // Data 2 +#define PECI_ACRDWR0_D1_M 0x0000FF00 // Data 1 +#define PECI_ACRDWR0_D0_M 0x000000FF // Data 0 +#define PECI_ACRDWR0_D3_S 24 +#define PECI_ACRDWR0_D2_S 16 +#define PECI_ACRDWR0_D1_S 8 +#define PECI_ACRDWR0_D0_S 0 + +//***************************************************************************** +// +// The following are defines for the bit fields in the PECI_O_ACRDWR1 register. +// +//***************************************************************************** +#define PECI_ACRDWR1_D3_M 0xFF000000 // Data 3 +#define PECI_ACRDWR1_D2_M 0x00FF0000 // Data 2 +#define PECI_ACRDWR1_D1_M 0x0000FF00 // Data 1 +#define PECI_ACRDWR1_D0_M 0x000000FF // Data 0 +#define PECI_ACRDWR1_D3_S 24 +#define PECI_ACRDWR1_D2_S 16 +#define PECI_ACRDWR1_D1_S 8 +#define PECI_ACRDWR1_D0_S 0 + +//***************************************************************************** +// +// The following are defines for the bit fields in the PECI_O_ACCMD register. +// +//***************************************************************************** +#define PECI_ACCMD_CMD_M 0x000000FF // Base Command +#define PECI_ACCMD_CMD_S 0 + +//***************************************************************************** +// +// The following are defines for the bit fields in the PECI_O_ACCODE register. +// +//***************************************************************************** +#define PECI_ACCODE_CODE_M 0xFFFFFFFF // Signed Completion Code + +#endif // __HW_PECI_H__ diff --git a/bsp/lm3s8962/Libraries/inc/hw_pwm.h b/bsp/lm3s8962/Libraries/inc/hw_pwm.h index 2e7e41ac1d..82d55e9198 100644 --- a/bsp/lm3s8962/Libraries/inc/hw_pwm.h +++ b/bsp/lm3s8962/Libraries/inc/hw_pwm.h @@ -2,7 +2,7 @@ // // hw_pwm.h - Defines and Macros for Pulse Width Modulation (PWM) ports. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** @@ -125,6 +125,8 @@ #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_PC 0x00000FC4 // PWM Peripheral Configuration //***************************************************************************** // @@ -594,6 +596,33 @@ #define PWM_X_FLTSTAT1_DCMP1 0x00000002 // Digital Comparator 1 Trigger #define PWM_X_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 +#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_PC register. +// +//***************************************************************************** +#define PWM_PC_PWMDIV_M 0x000000FF // PWM Clock Divisor +#define PWM_PC_PWMDIV_2 0x00000000 // /2 +#define PWM_PC_PWMDIV_4 0x00000001 // /4 +#define PWM_PC_PWMDIV_8 0x00000002 // /8 +#define PWM_PC_PWMDIV_16 0x00000003 // /16 +#define PWM_PC_PWMDIV_32 0x00000004 // /32 +#define PWM_PC_PWMDIV_64 0x00000007 // /64 (default) +#define PWM_PC_USEOPWMDIV 0x00000100 // Enable PWM Clock Divisor + //***************************************************************************** // // The following are defines for the PWM Generator standard offsets. diff --git a/bsp/lm3s8962/Libraries/inc/hw_qei.h b/bsp/lm3s8962/Libraries/inc/hw_qei.h index 22a4811fd5..0348852ffe 100644 --- a/bsp/lm3s8962/Libraries/inc/hw_qei.h +++ b/bsp/lm3s8962/Libraries/inc/hw_qei.h @@ -2,7 +2,7 @@ // // hw_qei.h - Macros used when accessing the QEI hardware. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** diff --git a/bsp/lm3s8962/Libraries/inc/hw_ssi.h b/bsp/lm3s8962/Libraries/inc/hw_ssi.h index 9a5bc99ae3..40be6a6de3 100644 --- a/bsp/lm3s8962/Libraries/inc/hw_ssi.h +++ b/bsp/lm3s8962/Libraries/inc/hw_ssi.h @@ -2,7 +2,7 @@ // // hw_ssi.h - Macros used when accessing the SSI hardware. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** @@ -40,6 +40,7 @@ #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_CC 0x00000FC8 // SSI Clock Configuration //***************************************************************************** // @@ -167,6 +168,17 @@ #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 // Either the system clock (if the + // PLL bypass is in effect) or the + // PLL output (default) +#define SSI_CC_CS_PIOSC 0x00000001 // PIOSC + //***************************************************************************** // // The following definitions are deprecated. diff --git a/bsp/lm3s8962/Libraries/inc/hw_sysctl.h b/bsp/lm3s8962/Libraries/inc/hw_sysctl.h index ffc63e7a9f..34ae0b5f21 100644 --- a/bsp/lm3s8962/Libraries/inc/hw_sysctl.h +++ b/bsp/lm3s8962/Libraries/inc/hw_sysctl.h @@ -2,7 +2,7 @@ // // hw_sysctl.h - Macros used when accessing the system control hardware. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** @@ -54,7 +54,6 @@ #define SYSCTL_RESC 0x400FE05C // Reset Cause #define SYSCTL_RCC 0x400FE060 // Run-Mode Clock Configuration #define SYSCTL_PLLCFG 0x400FE064 // XTAL to PLL Translation -#define SYSCTL_GPIOHSCTL 0x400FE06C // GPIO High-Speed Control #define SYSCTL_GPIOHBCTL 0x400FE06C // GPIO High-Performance Bus // Control #define SYSCTL_RCC2 0x400FE070 // Run-Mode Clock Configuration 2 @@ -78,17 +77,280 @@ #define SYSCTL_DCGC2 0x400FE128 // Deep Sleep Mode Clock Gating // Control Register 2 #define SYSCTL_DSLPCLKCFG 0x400FE144 // Deep Sleep Clock Configuration -#define SYSCTL_CLKVCLR 0x400FE150 // Clock Verification Clear +#define SYSCTL_SYSPROP 0x400FE14C // System Properties #define SYSCTL_PIOSCCAL 0x400FE150 // Precision Internal Oscillator // Calibration +#define SYSCTL_CLKVCLR 0x400FE150 // Clock Verification Clear #define SYSCTL_PIOSCSTAT 0x400FE154 // Precision Internal Oscillator // Statistics #define SYSCTL_LDOARST 0x400FE160 // Allow Unregulated LDO to Reset // the Part +#define SYSCTL_PLLFREQ0 0x400FE160 // PLL Frequency 0 +#define SYSCTL_PLLFREQ1 0x400FE164 // PLL Frequency +#define SYSCTL_PLLSTAT 0x400FE168 // PLL Status #define SYSCTL_I2SMCLKCFG 0x400FE170 // I2S MCLK Configuration #define SYSCTL_DC9 0x400FE190 // Device Capabilities 9 ADC // Digital Comparators #define SYSCTL_NVMSTAT 0x400FE1A0 // Non-Volatile Memory Information +#define SYSCTL_PPWD 0x400FE300 // Watchdog Timer Peripheral + // Present +#define SYSCTL_PPTIMER 0x400FE304 // 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_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_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 Peripheral Present +#define SYSCTL_PPEEPROM 0x400FE358 // EEPROM Peripheral Present +#define SYSCTL_PPWTIMER 0x400FE35C // Wide Timer Peripheral Present +#define SYSCTL_SRWD 0x400FE500 // Watchdog Timer Software Reset +#define SYSCTL_SRTIMER 0x400FE504 // 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_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_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_SRLPC 0x400FE548 // Low Pin Count Interface Software + // Reset +#define SYSCTL_SRPECI 0x400FE550 // Platform Environment Control + // Interface Software Reset +#define SYSCTL_SRFAN 0x400FE554 // FAN Software Reset +#define SYSCTL_SREEPROM 0x400FE558 // EEPROM Software Reset +#define SYSCTL_SRWTIMER 0x400FE55C // Wide Timer Software Reset +#define SYSCTL_RCGCWD 0x400FE600 // Watchdog Timer Run Mode Clock + // Gating Control +#define SYSCTL_RCGCTIMER 0x400FE604 // 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_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_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_RCGCLPC 0x400FE648 // Low Pin Count Interface Run Mode + // Clock Gating Control +#define SYSCTL_RCGCPECI 0x400FE650 // Platform Environment Control + // Interface Run Mode Clock Gating + // Control +#define SYSCTL_RCGCFAN 0x400FE654 // FAN Run Mode Clock Gating + // Control +#define SYSCTL_RCGCEEPROM 0x400FE658 // EEPROM Run Mode Clock Gating + // Control +#define SYSCTL_RCGCWTIMER 0x400FE65C // Wide Timer Run Mode Clock Gating + // Control +#define SYSCTL_SCGCWD 0x400FE700 // Watchdog Timer Sleep Mode Clock + // Gating Control +#define SYSCTL_SCGCTIMER 0x400FE704 // 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_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_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_SCGCLPC 0x400FE748 // Low Pin Count Interface Sleep + // Mode Clock Gating Control +#define SYSCTL_SCGCPECI 0x400FE750 // Platform Environment Control + // Interface Sleep Mode Clock + // Gating Control +#define SYSCTL_SCGCFAN 0x400FE754 // FAN Sleep Mode Clock Gating + // Control +#define SYSCTL_SCGCEEPROM 0x400FE758 // EEPROM Sleep Mode Clock Gating + // Control +#define SYSCTL_SCGCWTIMER 0x400FE75C // Wide Timer Sleep Mode Clock + // Gating Control +#define SYSCTL_DCGCWD 0x400FE800 // Watchdog Timer Deep-Sleep Mode + // Clock Gating Control +#define SYSCTL_DCGCTIMER 0x400FE804 // 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_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_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_DCGCLPC 0x400FE848 // Low Pin Count Interface + // Deep-Sleep Mode Clock Gating + // Control +#define SYSCTL_DCGCPECI 0x400FE850 // Platform Environment Control + // Interface Deep-Sleep Mode Clock + // Gating Control +#define SYSCTL_DCGCFAN 0x400FE854 // FAN Deep-Sleep Mode Clock Gating + // Control +#define SYSCTL_DCGCEEPROM 0x400FE858 // EEPROM Deep-Sleep Mode Clock + // Gating Control +#define SYSCTL_DCGCWTIMER 0x400FE85C // Wide Timer Deep-Sleep Mode Clock + // Gating Control +#define SYSCTL_PCWD 0x400FE900 // Watchdog Timer Power Control +#define SYSCTL_PCTIMER 0x400FE904 // 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_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_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_PCLPC 0x400FE948 // Low Pin Count Interface Power + // Control +#define SYSCTL_PCPECI 0x400FE950 // Platform Environment Control + // Interface Power Control +#define SYSCTL_PCFAN 0x400FE954 // Fan Power Control +#define SYSCTL_PCEEPROM 0x400FE958 // EEPROM Power Control +#define SYSCTL_PCWTIMER 0x400FE95C // Wide Timer Power Control +#define SYSCTL_PRWD 0x400FEA00 // Watchdog Timer Peripheral Ready +#define SYSCTL_PRTIMER 0x400FEA04 // 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_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_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_PRLPC 0x400FEA48 // Low Pin Count Interface + // Peripheral Ready +#define SYSCTL_PRPECI 0x400FEA50 // Platform Environment Control + // Interface Peripheral Ready +#define SYSCTL_PRFAN 0x400FEA54 // FAN Peripheral Ready +#define SYSCTL_PREEPROM 0x400FEA58 // EEPROM Peripheral Ready +#define SYSCTL_PRWTIMER 0x400FEA5C // Wide Timer Peripheral Ready //***************************************************************************** // @@ -111,6 +373,12 @@ #define SYSCTL_DID0_CLASS_TEMPEST \ 0x00040000 // Stellaris(R) Tempest-class // microcontrollers +#define SYSCTL_DID0_CLASS_BLIZZARD \ + 0x00050000 // Stellaris(R) Blizzard-class + // microcontrollers +#define SYSCTL_DID0_CLASS_FIRESTORM \ + 0x00060000 // Stellaris(R) Firestorm-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 @@ -180,6 +448,7 @@ #define SYSCTL_DID1_PRTNO_1150 0x00C10000 // LM3S1150 #define SYSCTL_DID1_PRTNO_1162 0x00C40000 // LM3S1162 #define SYSCTL_DID1_PRTNO_1165 0x00C20000 // LM3S1165 +#define SYSCTL_DID1_PRTNO_1166 0x00EC0000 // LM3S1166 #define SYSCTL_DID1_PRTNO_1332 0x00C60000 // LM3S1332 #define SYSCTL_DID1_PRTNO_1435 0x00BC0000 // LM3S1435 #define SYSCTL_DID1_PRTNO_1439 0x00BA0000 // LM3S1439 @@ -189,10 +458,12 @@ #define SYSCTL_DID1_PRTNO_1607 0x00060000 // LM3S1607 #define SYSCTL_DID1_PRTNO_1608 0x00DA0000 // LM3S1608 #define SYSCTL_DID1_PRTNO_1620 0x00C00000 // LM3S1620 +#define SYSCTL_DID1_PRTNO_1621 0x00CD0000 // LM3S1621 #define SYSCTL_DID1_PRTNO_1625 0x00030000 // LM3S1625 #define SYSCTL_DID1_PRTNO_1626 0x00040000 // LM3S1626 #define SYSCTL_DID1_PRTNO_1627 0x00050000 // LM3S1627 #define SYSCTL_DID1_PRTNO_1635 0x00B30000 // LM3S1635 +#define SYSCTL_DID1_PRTNO_1636 0x00EB0000 // LM3S1636 #define SYSCTL_DID1_PRTNO_1637 0x00BD0000 // LM3S1637 #define SYSCTL_DID1_PRTNO_1651 0x00B10000 // LM3S1651 #define SYSCTL_DID1_PRTNO_1751 0x00B90000 // LM3S1751 @@ -206,14 +477,29 @@ #define SYSCTL_DID1_PRTNO_1958 0x00BE0000 // LM3S1958 #define SYSCTL_DID1_PRTNO_1960 0x00B50000 // LM3S1960 #define SYSCTL_DID1_PRTNO_1968 0x00B80000 // LM3S1968 +#define SYSCTL_DID1_PRTNO_1969 0x00EA0000 // LM3S1969 +#define SYSCTL_DID1_PRTNO_1B21 0x00CE0000 // LM3S1B21 +#define SYSCTL_DID1_PRTNO_1C21 0x00CA0000 // LM3S1C21 +#define SYSCTL_DID1_PRTNO_1C26 0x00CB0000 // LM3S1C26 +#define SYSCTL_DID1_PRTNO_1C58 0x00980000 // LM3S1C58 +#define SYSCTL_DID1_PRTNO_1D21 0x00B00000 // LM3S1D21 +#define SYSCTL_DID1_PRTNO_1D26 0x00CC0000 // LM3S1D26 +#define SYSCTL_DID1_PRTNO_1F11 0x001D0000 // LM3S1F11 +#define SYSCTL_DID1_PRTNO_1F16 0x001B0000 // LM3S1F16 +#define SYSCTL_DID1_PRTNO_1G21 0x00AF0000 // LM3S1G21 +#define SYSCTL_DID1_PRTNO_1G58 0x00950000 // LM3S1G58 +#define SYSCTL_DID1_PRTNO_1H11 0x001E0000 // LM3S1H11 +#define SYSCTL_DID1_PRTNO_1H16 0x001C0000 // LM3S1H16 #define SYSCTL_DID1_PRTNO_1J11 0x000F0000 // LM3S1J11 #define SYSCTL_DID1_PRTNO_1J16 0x003C0000 // LM3S1J16 #define SYSCTL_DID1_PRTNO_1N11 0x000E0000 // LM3S1N11 #define SYSCTL_DID1_PRTNO_1N16 0x003B0000 // LM3S1N16 #define SYSCTL_DID1_PRTNO_1P51 0x00B20000 // LM3S1P51 #define SYSCTL_DID1_PRTNO_1R21 0x009E0000 // LM3S1R21 +#define SYSCTL_DID1_PRTNO_1R26 0x00C90000 // LM3S1R26 #define SYSCTL_DID1_PRTNO_1W16 0x00300000 // LM3S1W16 #define SYSCTL_DID1_PRTNO_1Z16 0x002F0000 // LM3S1Z16 +#define SYSCTL_DID1_PRTNO_2016 0x00D40000 // LM3S2016 #define SYSCTL_DID1_PRTNO_2110 0x00510000 // LM3S2110 #define SYSCTL_DID1_PRTNO_2139 0x00840000 // LM3S2139 #define SYSCTL_DID1_PRTNO_2276 0x00390000 // LM3S2276 @@ -235,13 +521,17 @@ #define SYSCTL_DID1_PRTNO_2793 0x006D0000 // LM3S2793 #define SYSCTL_DID1_PRTNO_2911 0x00E30000 // LM3S2911 #define SYSCTL_DID1_PRTNO_2918 0x00E20000 // LM3S2918 +#define SYSCTL_DID1_PRTNO_2919 0x00ED0000 // LM3S2919 #define SYSCTL_DID1_PRTNO_2939 0x00540000 // LM3S2939 #define SYSCTL_DID1_PRTNO_2948 0x008F0000 // LM3S2948 #define SYSCTL_DID1_PRTNO_2950 0x00580000 // LM3S2950 #define SYSCTL_DID1_PRTNO_2965 0x00550000 // LM3S2965 #define SYSCTL_DID1_PRTNO_2B93 0x006C0000 // LM3S2B93 +#define SYSCTL_DID1_PRTNO_2D93 0x00940000 // LM3S2D93 +#define SYSCTL_DID1_PRTNO_2U93 0x00930000 // LM3S2U93 #define SYSCTL_DID1_PRTNO_3634 0x00080000 // LM3S3634 #define SYSCTL_DID1_PRTNO_3651 0x00430000 // LM3S3651 +#define SYSCTL_DID1_PRTNO_3654 0x00C80000 // LM3S3654 #define SYSCTL_DID1_PRTNO_3739 0x00440000 // LM3S3739 #define SYSCTL_DID1_PRTNO_3748 0x00490000 // LM3S3748 #define SYSCTL_DID1_PRTNO_3749 0x00450000 // LM3S3749 @@ -266,15 +556,28 @@ #define SYSCTL_DID1_PRTNO_5951 0x000B0000 // LM3S5951 #define SYSCTL_DID1_PRTNO_5956 0x004E0000 // LM3S5956 #define SYSCTL_DID1_PRTNO_5B91 0x00680000 // LM3S5B91 +#define SYSCTL_DID1_PRTNO_5C31 0x002E0000 // LM3S5C31 +#define SYSCTL_DID1_PRTNO_5C36 0x002C0000 // LM3S5C36 +#define SYSCTL_DID1_PRTNO_5C51 0x005E0000 // LM3S5C51 +#define SYSCTL_DID1_PRTNO_5C56 0x005B0000 // LM3S5C56 +#define SYSCTL_DID1_PRTNO_5D51 0x005F0000 // LM3S5D51 +#define SYSCTL_DID1_PRTNO_5D56 0x005C0000 // LM3S5D56 +#define SYSCTL_DID1_PRTNO_5D91 0x00870000 // LM3S5D91 +#define SYSCTL_DID1_PRTNO_5G31 0x002D0000 // LM3S5G31 +#define SYSCTL_DID1_PRTNO_5G36 0x001F0000 // LM3S5G36 +#define SYSCTL_DID1_PRTNO_5G51 0x005D0000 // LM3S5G51 +#define SYSCTL_DID1_PRTNO_5G56 0x004F0000 // LM3S5G56 #define SYSCTL_DID1_PRTNO_5K31 0x00090000 // LM3S5K31 #define SYSCTL_DID1_PRTNO_5K36 0x004A0000 // LM3S5K36 #define SYSCTL_DID1_PRTNO_5P31 0x000A0000 // LM3S5P31 #define SYSCTL_DID1_PRTNO_5P36 0x00480000 // LM3S5P36 +#define SYSCTL_DID1_PRTNO_5P3B 0x00B60000 // LM3S5P3B #define SYSCTL_DID1_PRTNO_5P51 0x000D0000 // LM3S5P51 #define SYSCTL_DID1_PRTNO_5P56 0x004C0000 // LM3S5P56 #define SYSCTL_DID1_PRTNO_5R31 0x00070000 // LM3S5R31 #define SYSCTL_DID1_PRTNO_5R36 0x004B0000 // LM3S5R36 #define SYSCTL_DID1_PRTNO_5T36 0x00470000 // LM3S5T36 +#define SYSCTL_DID1_PRTNO_5U91 0x007F0000 // LM3S5U91 #define SYSCTL_DID1_PRTNO_5Y36 0x00460000 // LM3S5Y36 #define SYSCTL_DID1_PRTNO_6100 0x00A10000 // LM3S6100 #define SYSCTL_DID1_PRTNO_6110 0x00740000 // LM3S6110 @@ -289,12 +592,18 @@ #define SYSCTL_DID1_PRTNO_6637 0x008B0000 // LM3S6637 #define SYSCTL_DID1_PRTNO_6730 0x00A30000 // LM3S6730 #define SYSCTL_DID1_PRTNO_6753 0x00770000 // LM3S6753 +#define SYSCTL_DID1_PRTNO_6816 0x00D10000 // LM3S6816 #define SYSCTL_DID1_PRTNO_6911 0x00E90000 // LM3S6911 +#define SYSCTL_DID1_PRTNO_6916 0x00D30000 // LM3S6916 #define SYSCTL_DID1_PRTNO_6918 0x00E80000 // LM3S6918 #define SYSCTL_DID1_PRTNO_6938 0x00890000 // LM3S6938 #define SYSCTL_DID1_PRTNO_6950 0x00720000 // LM3S6950 #define SYSCTL_DID1_PRTNO_6952 0x00780000 // LM3S6952 #define SYSCTL_DID1_PRTNO_6965 0x00730000 // LM3S6965 +#define SYSCTL_DID1_PRTNO_6C11 0x00AA0000 // LM3S6C11 +#define SYSCTL_DID1_PRTNO_6C65 0x00AC0000 // LM3S6C65 +#define SYSCTL_DID1_PRTNO_6G11 0x009F0000 // LM3S6G11 +#define SYSCTL_DID1_PRTNO_6G65 0x00AB0000 // LM3S6G65 #define SYSCTL_DID1_PRTNO_8530 0x00640000 // LM3S8530 #define SYSCTL_DID1_PRTNO_8538 0x008E0000 // LM3S8538 #define SYSCTL_DID1_PRTNO_8630 0x00610000 // LM3S8630 @@ -307,19 +616,136 @@ #define SYSCTL_DID1_PRTNO_8962 0x00A60000 // LM3S8962 #define SYSCTL_DID1_PRTNO_8970 0x00620000 // LM3S8970 #define SYSCTL_DID1_PRTNO_8971 0x00D70000 // LM3S8971 +#define SYSCTL_DID1_PRTNO_8C62 0x00AE0000 // LM3S8C62 +#define SYSCTL_DID1_PRTNO_8G62 0x00AD0000 // LM3S8G62 +#define SYSCTL_DID1_PRTNO_9781 0x00CF0000 // LM3S9781 #define SYSCTL_DID1_PRTNO_9790 0x00670000 // LM3S9790 #define SYSCTL_DID1_PRTNO_9792 0x006B0000 // LM3S9792 +#define SYSCTL_DID1_PRTNO_9971 0x002D0000 // LM3S9971 #define SYSCTL_DID1_PRTNO_9997 0x00200000 // LM3S9997 +#define SYSCTL_DID1_PRTNO_9B81 0x00D00000 // LM3S9B81 #define SYSCTL_DID1_PRTNO_9B90 0x00660000 // LM3S9B90 #define SYSCTL_DID1_PRTNO_9B92 0x006A0000 // LM3S9B92 #define SYSCTL_DID1_PRTNO_9B95 0x006E0000 // LM3S9B95 #define SYSCTL_DID1_PRTNO_9B96 0x006F0000 // LM3S9B96 +#define SYSCTL_DID1_PRTNO_9BN2 0x001D0000 // LM3S9BN2 +#define SYSCTL_DID1_PRTNO_9BN5 0x001E0000 // LM3S9BN5 +#define SYSCTL_DID1_PRTNO_9BN6 0x001F0000 // LM3S9BN6 +#define SYSCTL_DID1_PRTNO_9C97 0x00700000 // LM3S9C97 +#define SYSCTL_DID1_PRTNO_9CN5 0x007A0000 // LM3S9CN5 +#define SYSCTL_DID1_PRTNO_9D81 0x00A90000 // LM3S9D81 +#define SYSCTL_DID1_PRTNO_9D90 0x007E0000 // LM3S9D90 +#define SYSCTL_DID1_PRTNO_9D92 0x00920000 // LM3S9D92 +#define SYSCTL_DID1_PRTNO_9D95 0x00C80000 // LM3S9D95 +#define SYSCTL_DID1_PRTNO_9D96 0x009D0000 // LM3S9D96 +#define SYSCTL_DID1_PRTNO_9DN5 0x007B0000 // LM3S9DN5 +#define SYSCTL_DID1_PRTNO_9DN6 0x007C0000 // LM3S9DN6 +#define SYSCTL_DID1_PRTNO_9G97 0x00600000 // LM3S9G97 +#define SYSCTL_DID1_PRTNO_9GN5 0x00790000 // LM3S9GN5 +#define SYSCTL_DID1_PRTNO_9L71 0x001B0000 // LM3S9L71 #define SYSCTL_DID1_PRTNO_9L97 0x00180000 // LM3S9L97 +#define SYSCTL_DID1_PRTNO_9U81 0x00A80000 // LM3S9U81 +#define SYSCTL_DID1_PRTNO_9U90 0x007D0000 // LM3S9U90 +#define SYSCTL_DID1_PRTNO_9U92 0x00900000 // LM3S9U92 +#define SYSCTL_DID1_PRTNO_9U95 0x00B70000 // LM3S9U95 +#define SYSCTL_DID1_PRTNO_9U96 0x009B0000 // LM3S9U96 +#define SYSCTL_DID1_PRTNO_LM4F110B2QR \ + 0x00180000 // LM4F110B2QR +#define SYSCTL_DID1_PRTNO_LM4F110C4QR \ + 0x00190000 // LM4F110C4QR +#define SYSCTL_DID1_PRTNO_LM4F110E5QR \ + 0x00100000 // LM4F110E5QR +#define SYSCTL_DID1_PRTNO_LM4F110H5QR \ + 0x00110000 // LM4F110H5QR +#define SYSCTL_DID1_PRTNO_LM4F111B2QR \ + 0x00220000 // LM4F111B2QR +#define SYSCTL_DID1_PRTNO_LM4F111C4QR \ + 0x00230000 // LM4F111C4QR +#define SYSCTL_DID1_PRTNO_LM4F111E5QR \ + 0x00200000 // LM4F111E5QR +#define SYSCTL_DID1_PRTNO_LM4F111H5QR \ + 0x00210000 // LM4F111H5QR +#define SYSCTL_DID1_PRTNO_LM4F112C4QC \ + 0x00360000 // LM4F112C4QC +#define SYSCTL_DID1_PRTNO_LM4F112E5QC \ + 0x00300000 // LM4F112E5QC +#define SYSCTL_DID1_PRTNO_LM4F112H5QC \ + 0x00310000 // LM4F112H5QC +#define SYSCTL_DID1_PRTNO_LM4F112H5QD \ + 0x00350000 // LM4F112H5QD +#define SYSCTL_DID1_PRTNO_LM4F120B2QR \ + 0x00010000 // LM4F120B2QR +#define SYSCTL_DID1_PRTNO_LM4F120C4QR \ + 0x00020000 // LM4F120C4QR +#define SYSCTL_DID1_PRTNO_LM4F120E5QR \ + 0x00030000 // LM4F120E5QR +#define SYSCTL_DID1_PRTNO_LM4F120H5QR \ + 0x00040000 // LM4F120H5QR +#define SYSCTL_DID1_PRTNO_LM4F121B2QR \ + 0x00080000 // LM4F121B2QR +#define SYSCTL_DID1_PRTNO_LM4F121C4QR \ + 0x00090000 // LM4F121C4QR +#define SYSCTL_DID1_PRTNO_LM4F121E5QR \ + 0x000A0000 // LM4F121E5QR +#define SYSCTL_DID1_PRTNO_LM4F121H5QR \ + 0x000B0000 // LM4F121H5QR +#define SYSCTL_DID1_PRTNO_LM4F122C4QC \ + 0x00D00000 // LM4F122C4QC +#define SYSCTL_DID1_PRTNO_LM4F122E5QC \ + 0x00D10000 // LM4F122E5QC +#define SYSCTL_DID1_PRTNO_LM4F122H5QC \ + 0x00D20000 // LM4F122H5QC +#define SYSCTL_DID1_PRTNO_LM4F122H5QD \ + 0x00D60000 // LM4F122H5QD +#define SYSCTL_DID1_PRTNO_LM4F130C4QR \ + 0x00480000 // LM4F130C4QR +#define SYSCTL_DID1_PRTNO_LM4F130E5QR \ + 0x00400000 // LM4F130E5QR +#define SYSCTL_DID1_PRTNO_LM4F130H5QR \ + 0x00410000 // LM4F130H5QR +#define SYSCTL_DID1_PRTNO_LM4F131C4QR \ + 0x00520000 // LM4F131C4QR +#define SYSCTL_DID1_PRTNO_LM4F131E5QR \ + 0x00500000 // LM4F131E5QR +#define SYSCTL_DID1_PRTNO_LM4F131H5QR \ + 0x00510000 // LM4F131H5QR +#define SYSCTL_DID1_PRTNO_LM4F132C4QC \ + 0x00660000 // LM4F132C4QC +#define SYSCTL_DID1_PRTNO_LM4F132E5QC \ + 0x00600000 // LM4F132E5QC +#define SYSCTL_DID1_PRTNO_LM4F132H5QC \ + 0x00610000 // LM4F132H5QC +#define SYSCTL_DID1_PRTNO_LM4F132H5QD \ + 0x00650000 // LM4F132H5QD +#define SYSCTL_DID1_PRTNO_LM4F230E5QR \ + 0x00A00000 // LM4F230E5QR +#define SYSCTL_DID1_PRTNO_LM4F230H5QR \ + 0x00A10000 // LM4F230H5QR +#define SYSCTL_DID1_PRTNO_LM4F231E5QR \ + 0x00B00000 // LM4F231E5QR +#define SYSCTL_DID1_PRTNO_LM4F231H5QR \ + 0x00B10000 // LM4F231H5QR +#define SYSCTL_DID1_PRTNO_LM4F232E5QC \ + 0x00C00000 // LM4F232E5QC +#define SYSCTL_DID1_PRTNO_LM4F232H5BB \ + 0x00E30000 // LM4F232H5BB +#define SYSCTL_DID1_PRTNO_LM4F232H5QC \ + 0x00C10000 // LM4F232H5QC +#define SYSCTL_DID1_PRTNO_LM4F232H5QD \ + 0x00C50000 // LM4F232H5QD +#define SYSCTL_DID1_PRTNO_LM4FS1AH5BB \ + 0x00E50000 // LM4FS1AH5BB +#define SYSCTL_DID1_PRTNO_LM4FS99H5BB \ + 0x00E40000 // LM4FS99H5BB +#define SYSCTL_DID1_PRTNO_LM4FSXAH5BB \ + 0x00E00000 // LM4FSXAH5BB #define SYSCTL_DID1_PINCNT_M 0x0000E000 // Package Pin Count #define SYSCTL_DID1_PINCNT_28 0x00000000 // 28 pin package -#define SYSCTL_DID1_PINCNT_48 0x00002000 // 48 pin package +#define SYSCTL_DID1_PINCNT_48 0x00002000 // 48-pin package #define SYSCTL_DID1_PINCNT_100 0x00004000 // 100-pin package #define SYSCTL_DID1_PINCNT_64 0x00006000 // 64-pin package +#define SYSCTL_DID1_PINCNT_144 0x00008000 // 144-pin package +#define SYSCTL_DID1_PINCNT_157 0x0000A000 // 157-pin package #define SYSCTL_DID1_TEMP_M 0x000000E0 // Temperature Range #define SYSCTL_DID1_TEMP_C 0x00000000 // Commercial temperature range (0C // to 70C) @@ -364,7 +790,10 @@ #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 +#define SYSCTL_DC0_FLASHSZ_384K 0x000000BF // 384 KB of Flash +#define SYSCTL_DC0_FLASHSZ_512K 0x000000FF // 512 KB of Flash #define SYSCTL_DC0_SRAMSZ_S 16 // SRAM size shift #define SYSCTL_DC0_FLASHSZ_S 0 // Flash size shift @@ -377,7 +806,8 @@ #define SYSCTL_DC1_CAN2 0x04000000 // CAN Module 2 Present #define SYSCTL_DC1_CAN1 0x02000000 // CAN Module 1 Present #define SYSCTL_DC1_CAN0 0x01000000 // CAN Module 0 Present -#define SYSCTL_DC1_PWM 0x00100000 // PWM Module 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 @@ -387,18 +817,21 @@ // 6 minimum #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_ADCSPD_M 0x00000F00 // Max ADC Speed -#define SYSCTL_DC1_ADCSPD_125K 0x00000000 // 125Ksps ADC -#define SYSCTL_DC1_ADCSPD_250K 0x00000100 // 250K samples/second -#define SYSCTL_DC1_ADCSPD_500K 0x00000200 // 500K samples/second -#define SYSCTL_DC1_ADCSPD_1M 0x00000300 // 1M samples/second #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 @@ -423,7 +856,9 @@ #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 @@ -652,7 +1087,7 @@ #define SYSCTL_SRCR0_CAN2 0x04000000 // CAN2 Reset Control #define SYSCTL_SRCR0_CAN1 0x02000000 // CAN1 Reset Control #define SYSCTL_SRCR0_CAN0 0x01000000 // CAN0 Reset Control -#define SYSCTL_SRCR0_PWM 0x00100000 // PWM 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 @@ -833,6 +1268,10 @@ #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 +#define SYSCTL_RCC_XTAL_20MHZ 0x00000600 // 20.0 MHz +#define SYSCTL_RCC_XTAL_24MHZ 0x00000640 // 24.0 MHz +#define SYSCTL_RCC_XTAL_25MHZ 0x00000680 // 25.0 MHz #define SYSCTL_RCC_PLLVER 0x00000400 // PLL Verification #define SYSCTL_RCC_OSCSRC_M 0x00000030 // Oscillator Source #define SYSCTL_RCC_OSCSRC_MAIN 0x00000000 // MOSC @@ -864,21 +1303,6 @@ #define SYSCTL_PLLCFG_F_S 5 #define SYSCTL_PLLCFG_R_S 0 -//***************************************************************************** -// -// The following are defines for the bit fields in the SYSCTL_GPIOHSCTL -// register. -// -//***************************************************************************** -#define SYSCTL_GPIOHSCTL_PORTH 0x00000080 // Port H High-Speed -#define SYSCTL_GPIOHSCTL_PORTG 0x00000040 // Port G High-Speed -#define SYSCTL_GPIOHSCTL_PORTF 0x00000020 // Port F High-Speed -#define SYSCTL_GPIOHSCTL_PORTE 0x00000010 // Port E High-Speed -#define SYSCTL_GPIOHSCTL_PORTD 0x00000008 // Port D High-Speed -#define SYSCTL_GPIOHSCTL_PORTC 0x00000004 // Port C High-Speed -#define SYSCTL_GPIOHSCTL_PORTB 0x00000002 // Port B High-Speed -#define SYSCTL_GPIOHSCTL_PORTA 0x00000001 // Port A High-Speed - //***************************************************************************** // // The following are defines for the bit fields in the SYSCTL_GPIOHBCTL @@ -994,6 +1418,8 @@ // 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 //***************************************************************************** @@ -1005,7 +1431,7 @@ #define SYSCTL_RCGC0_CAN2 0x04000000 // CAN2 Clock Gating Control #define SYSCTL_RCGC0_CAN1 0x02000000 // CAN1 Clock Gating Control #define SYSCTL_RCGC0_CAN0 0x01000000 // CAN0 Clock Gating Control -#define SYSCTL_RCGC0_PWM 0x00100000 // PWM 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_ADCSPD_M 0x00000F00 // ADC Sample Speed @@ -1084,7 +1510,7 @@ #define SYSCTL_SCGC0_CAN2 0x04000000 // CAN2 Clock Gating Control #define SYSCTL_SCGC0_CAN1 0x02000000 // CAN1 Clock Gating Control #define SYSCTL_SCGC0_CAN0 0x01000000 // CAN0 Clock Gating Control -#define SYSCTL_SCGC0_PWM 0x00100000 // PWM 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 @@ -1163,7 +1589,7 @@ #define SYSCTL_DCGC0_CAN2 0x04000000 // CAN2 Clock Gating Control #define SYSCTL_DCGC0_CAN1 0x02000000 // CAN1 Clock Gating Control #define SYSCTL_DCGC0_CAN0 0x01000000 // CAN0 Clock Gating Control -#define SYSCTL_DCGC0_PWM 0x00100000 // PWM 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 @@ -1288,15 +1714,17 @@ #define SYSCTL_DSLPCLKCFG_O_IO 0x00000010 // PIOSC #define SYSCTL_DSLPCLKCFG_O_30 0x00000030 // 30 kHz #define SYSCTL_DSLPCLKCFG_O_32 0x00000070 // 32.768 kHz +#define SYSCTL_DSLPCLKCFG_PIOSCPD \ + 0x00000002 // PIOSC Power Down Request #define SYSCTL_DSLPCLKCFG_IOSC 0x00000001 // IOSC Clock Source #define SYSCTL_DSLPCLKCFG_D_S 23 //***************************************************************************** // -// The following are defines for the bit fields in the SYSCTL_CLKVCLR register. +// The following are defines for the bit fields in the SYSCTL_SYSPROP register. // //***************************************************************************** -#define SYSCTL_CLKVCLR_VERCLR 0x00000001 // Clock Verification Clear +#define SYSCTL_SYSPROP_FPU 0x00000001 // FPU Present //***************************************************************************** // @@ -1310,6 +1738,13 @@ #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_CLKVCLR register. +// +//***************************************************************************** +#define SYSCTL_CLKVCLR_VERCLR 0x00000001 // Clock Verification Clear + //***************************************************************************** // // The following are defines for the bit fields in the SYSCTL_PIOSCSTAT @@ -1335,6 +1770,35 @@ //***************************************************************************** #define SYSCTL_LDOARST_LDOARST 0x00000001 // LDO Reset +//***************************************************************************** +// +// 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_I2SMCLKCFG @@ -1383,6 +1847,1470 @@ #define SYSCTL_NVMSTAT_FWB 0x00000001 // 32 Word Flash Write Buffer // Active +//***************************************************************************** +// +// 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 // Timer 5 Present +#define SYSCTL_PPTIMER_P4 0x00000010 // Timer 4 Present +#define SYSCTL_PPTIMER_P3 0x00000008 // Timer 3 Present +#define SYSCTL_PPTIMER_P2 0x00000004 // Timer 2 Present +#define SYSCTL_PPTIMER_P1 0x00000002 // Timer 1 Present +#define SYSCTL_PPTIMER_P0 0x00000001 // 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_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 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 // Wide Timer 5 Present +#define SYSCTL_PPWTIMER_P4 0x00000010 // Wide Timer 4 Present +#define SYSCTL_PPWTIMER_P3 0x00000008 // Wide Timer 3 Present +#define SYSCTL_PPWTIMER_P2 0x00000004 // Wide Timer 2 Present +#define SYSCTL_PPWTIMER_P1 0x00000002 // Wide Timer 1 Present +#define SYSCTL_PPWTIMER_P0 0x00000001 // Wide 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 // Timer 5 Software Reset +#define SYSCTL_SRTIMER_R4 0x00000010 // Timer 4 Software Reset +#define SYSCTL_SRTIMER_R3 0x00000008 // Timer 3 Software Reset +#define SYSCTL_SRTIMER_R2 0x00000004 // Timer 2 Software Reset +#define SYSCTL_SRTIMER_R1 0x00000002 // Timer 1 Software Reset +#define SYSCTL_SRTIMER_R0 0x00000001 // Timer 0 Software Reset + +//***************************************************************************** +// +// The following are defines for the bit fields in the SYSCTL_SRGPIO register. +// +//***************************************************************************** +#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_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 + // 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_SRLPC register. +// +//***************************************************************************** +#define SYSCTL_SRLPC_R0 0x00000001 // LPC Module Software Reset + +//***************************************************************************** +// +// The following are defines for the bit fields in the SYSCTL_SRPECI register. +// +//***************************************************************************** +#define SYSCTL_SRPECI_R0 0x00000001 // PECI Module Software Reset + +//***************************************************************************** +// +// The following are defines for the bit fields in the SYSCTL_SRFAN register. +// +//***************************************************************************** +#define SYSCTL_SRFAN_R0 0x00000001 // FAN Module 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 // Wide Timer 5 Software Reset +#define SYSCTL_SRWTIMER_R4 0x00000010 // Wide Timer 4 Software Reset +#define SYSCTL_SRWTIMER_R3 0x00000008 // Wide Timer 3 Software Reset +#define SYSCTL_SRWTIMER_R2 0x00000004 // Wide Timer 2 Software Reset +#define SYSCTL_SRWTIMER_R1 0x00000002 // Wide Timer 1 Software Reset +#define SYSCTL_SRWTIMER_R0 0x00000001 // Wide 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 // Timer 5 Run Mode Clock Gating + // Control +#define SYSCTL_RCGCTIMER_R4 0x00000010 // Timer 4 Run Mode Clock Gating + // Control +#define SYSCTL_RCGCTIMER_R3 0x00000008 // Timer 3 Run Mode Clock Gating + // Control +#define SYSCTL_RCGCTIMER_R2 0x00000004 // Timer 2 Run Mode Clock Gating + // Control +#define SYSCTL_RCGCTIMER_R1 0x00000002 // Timer 1 Run Mode Clock Gating + // Control +#define SYSCTL_RCGCTIMER_R0 0x00000001 // Timer 0 Run Mode Clock Gating + // Control + +//***************************************************************************** +// +// The following are defines for the bit fields in the SYSCTL_RCGCGPIO +// register. +// +//***************************************************************************** +#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_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 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_RCGCLPC register. +// +//***************************************************************************** +#define SYSCTL_RCGCLPC_R0 0x00000001 // LPC Module Run Mode Clock Gating + // Control + +//***************************************************************************** +// +// The following are defines for the bit fields in the SYSCTL_RCGCPECI +// register. +// +//***************************************************************************** +#define SYSCTL_RCGCPECI_R0 0x00000001 // PECI Module Run Mode Clock + // Gating Control + +//***************************************************************************** +// +// The following are defines for the bit fields in the SYSCTL_RCGCFAN register. +// +//***************************************************************************** +#define SYSCTL_RCGCFAN_R0 0x00000001 // FAN Module 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 // Wide Timer 5 Run Mode Clock + // Gating Control +#define SYSCTL_RCGCWTIMER_R4 0x00000010 // Wide Timer 4 Run Mode Clock + // Gating Control +#define SYSCTL_RCGCWTIMER_R3 0x00000008 // Wide Timer 3 Run Mode Clock + // Gating Control +#define SYSCTL_RCGCWTIMER_R2 0x00000004 // Wide Timer 2 Run Mode Clock + // Gating Control +#define SYSCTL_RCGCWTIMER_R1 0x00000002 // Wide Timer 1 Run Mode Clock + // Gating Control +#define SYSCTL_RCGCWTIMER_R0 0x00000001 // Wide 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 // Timer 5 Sleep Mode Clock Gating + // Control +#define SYSCTL_SCGCTIMER_S4 0x00000010 // Timer 4 Sleep Mode Clock Gating + // Control +#define SYSCTL_SCGCTIMER_S3 0x00000008 // Timer 3 Sleep Mode Clock Gating + // Control +#define SYSCTL_SCGCTIMER_S2 0x00000004 // Timer 2 Sleep Mode Clock Gating + // Control +#define SYSCTL_SCGCTIMER_S1 0x00000002 // Timer 1 Sleep Mode Clock Gating + // Control +#define SYSCTL_SCGCTIMER_S0 0x00000001 // Timer 0 Sleep Mode Clock Gating + // Control + +//***************************************************************************** +// +// The following are defines for the bit fields in the SYSCTL_SCGCGPIO +// register. +// +//***************************************************************************** +#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_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 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_SCGCLPC register. +// +//***************************************************************************** +#define SYSCTL_SCGCLPC_S0 0x00000001 // LPC Module Sleep Mode Clock + // Gating Control + +//***************************************************************************** +// +// The following are defines for the bit fields in the SYSCTL_SCGCPECI +// register. +// +//***************************************************************************** +#define SYSCTL_SCGCPECI_S0 0x00000001 // PECI Module Sleep Mode Clock + // Gating Control + +//***************************************************************************** +// +// The following are defines for the bit fields in the SYSCTL_SCGCFAN register. +// +//***************************************************************************** +#define SYSCTL_SCGCFAN_S0 0x00000001 // FAN Module 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 // Wide Timer 5 Sleep Mode Clock + // Gating Control +#define SYSCTL_SCGCWTIMER_S4 0x00000010 // Wide Timer 4 Sleep Mode Clock + // Gating Control +#define SYSCTL_SCGCWTIMER_S3 0x00000008 // Wide Timer 3 Sleep Mode Clock + // Gating Control +#define SYSCTL_SCGCWTIMER_S2 0x00000004 // Wide Timer 2 Sleep Mode Clock + // Gating Control +#define SYSCTL_SCGCWTIMER_S1 0x00000002 // Wide Timer 1 Sleep Mode Clock + // Gating Control +#define SYSCTL_SCGCWTIMER_S0 0x00000001 // Wide 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 // Timer 5 Deep-Sleep Mode Clock + // Gating Control +#define SYSCTL_DCGCTIMER_D4 0x00000010 // Timer 4 Deep-Sleep Mode Clock + // Gating Control +#define SYSCTL_DCGCTIMER_D3 0x00000008 // Timer 3 Deep-Sleep Mode Clock + // Gating Control +#define SYSCTL_DCGCTIMER_D2 0x00000004 // Timer 2 Deep-Sleep Mode Clock + // Gating Control +#define SYSCTL_DCGCTIMER_D1 0x00000002 // Timer 1 Deep-Sleep Mode Clock + // Gating Control +#define SYSCTL_DCGCTIMER_D0 0x00000001 // Timer 0 Deep-Sleep Mode Clock + // Gating Control + +//***************************************************************************** +// +// The following are defines for the bit fields in the SYSCTL_DCGCGPIO +// register. +// +//***************************************************************************** +#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 // 0Mode 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 + // 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_DCGCLPC register. +// +//***************************************************************************** +#define SYSCTL_DCGCLPC_D0 0x00000001 // LPC Module Deep-Sleep Mode Clock + // Gating Control + +//***************************************************************************** +// +// The following are defines for the bit fields in the SYSCTL_DCGCPECI +// register. +// +//***************************************************************************** +#define SYSCTL_DCGCPECI_D0 0x00000001 // PECI Module Deep-Sleep Mode + // Clock Gating Control + +//***************************************************************************** +// +// The following are defines for the bit fields in the SYSCTL_DCGCFAN register. +// +//***************************************************************************** +#define SYSCTL_DCGCFAN_D0 0x00000001 // FAN Module 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 // Wide Timer 5 Deep-Sleep Mode + // Clock Gating Control +#define SYSCTL_DCGCWTIMER_D4 0x00000010 // Wide Timer 4 Deep-Sleep Mode + // Clock Gating Control +#define SYSCTL_DCGCWTIMER_D3 0x00000008 // Wide Timer 3 Deep-Sleep Mode + // Clock Gating Control +#define SYSCTL_DCGCWTIMER_D2 0x00000004 // Wide Timer 2 Deep-Sleep Mode + // Clock Gating Control +#define SYSCTL_DCGCWTIMER_D1 0x00000002 // Wide Timer 1 Deep-Sleep Mode + // Clock Gating Control +#define SYSCTL_DCGCWTIMER_D0 0x00000001 // Wide Timer 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_P5 0x00000020 // Timer 5 Power Control +#define SYSCTL_PCTIMER_P4 0x00000010 // Timer 4 Power Control +#define SYSCTL_PCTIMER_P3 0x00000008 // Timer 3 Power Control +#define SYSCTL_PCTIMER_P2 0x00000004 // Timer 2 Power Control +#define SYSCTL_PCTIMER_P1 0x00000002 // Timer 1 Power Control +#define SYSCTL_PCTIMER_P0 0x00000001 // Timer 0 Power Control + +//***************************************************************************** +// +// The following are defines for the bit fields in the SYSCTL_PCGPIO register. +// +//***************************************************************************** +#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_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_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_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_P1 0x00000002 // PWM Module 1 Power Control +#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_P1 0x00000002 // QEI Module 1 Power Control +#define SYSCTL_PCQEI_P0 0x00000001 // QEI Module 0 Power Control + +//***************************************************************************** +// +// The following are defines for the bit fields in the SYSCTL_PCLPC register. +// +//***************************************************************************** +#define SYSCTL_PCLPC_P0 0x00000001 // LPC Module Power Control + +//***************************************************************************** +// +// The following are defines for the bit fields in the SYSCTL_PCPECI register. +// +//***************************************************************************** +#define SYSCTL_PCPECI_P0 0x00000001 // PECI Module Power Control + +//***************************************************************************** +// +// The following are defines for the bit fields in the SYSCTL_PCFAN register. +// +//***************************************************************************** +#define SYSCTL_PCFAN_P0 0x00000001 // FAN Module Power Control + +//***************************************************************************** +// +// The following are defines for the bit fields in the SYSCTL_PCEEPROM +// register. +// +//***************************************************************************** +#define SYSCTL_PCEEPROM_P0 0x00000001 // EEPROM Module Power Control + +//***************************************************************************** +// +// The following are defines for the bit fields in the SYSCTL_PCWTIMER +// register. +// +//***************************************************************************** +#define SYSCTL_PCWTIMER_P5 0x00000020 // Wide Timer 5 Power Control +#define SYSCTL_PCWTIMER_P4 0x00000010 // Wide Timer 4 Power Control +#define SYSCTL_PCWTIMER_P3 0x00000008 // Wide Timer 3 Power Control +#define SYSCTL_PCWTIMER_P2 0x00000004 // Wide Timer 2 Power Control +#define SYSCTL_PCWTIMER_P1 0x00000002 // Wide Timer 1 Power Control +#define SYSCTL_PCWTIMER_P0 0x00000001 // Wide Timer 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_R5 0x00000020 // Timer 5 Peripheral Ready +#define SYSCTL_PRTIMER_R4 0x00000010 // Timer 4 Peripheral Ready +#define SYSCTL_PRTIMER_R3 0x00000008 // Timer 3 Peripheral Ready +#define SYSCTL_PRTIMER_R2 0x00000004 // Timer 2 Peripheral Ready +#define SYSCTL_PRTIMER_R1 0x00000002 // Timer 1 Peripheral Ready +#define SYSCTL_PRTIMER_R0 0x00000001 // Timer 0 Peripheral Ready + +//***************************************************************************** +// +// The following are defines for the bit fields in the SYSCTL_PRGPIO register. +// +//***************************************************************************** +#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_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 + // 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_PRLPC register. +// +//***************************************************************************** +#define SYSCTL_PRLPC_R0 0x00000001 // LPC Module Peripheral Ready + +//***************************************************************************** +// +// The following are defines for the bit fields in the SYSCTL_PRPECI register. +// +//***************************************************************************** +#define SYSCTL_PRPECI_R0 0x00000001 // PECI Module Peripheral Ready + +//***************************************************************************** +// +// The following are defines for the bit fields in the SYSCTL_PRFAN register. +// +//***************************************************************************** +#define SYSCTL_PRFAN_R0 0x00000001 // FAN Module 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 // Wide Timer 5 Peripheral Ready +#define SYSCTL_PRWTIMER_R4 0x00000010 // Wide Timer 4 Peripheral Ready +#define SYSCTL_PRWTIMER_R3 0x00000008 // Wide Timer 3 Peripheral Ready +#define SYSCTL_PRWTIMER_R2 0x00000004 // Wide Timer 2 Peripheral Ready +#define SYSCTL_PRWTIMER_R1 0x00000002 // Wide Timer 1 Peripheral Ready +#define SYSCTL_PRWTIMER_R0 0x00000001 // Wide Timer 0 Peripheral Ready + //***************************************************************************** // // The following definitions are deprecated. @@ -1396,6 +3324,7 @@ // addresses. // //***************************************************************************** +#define SYSCTL_GPIOHSCTL 0x400FE06C // GPIO High-Speed Control #define SYSCTL_USER0 0x400FE1E0 // NV User Register 0 #define SYSCTL_USER1 0x400FE1E4 // NV User Register 1 @@ -1446,9 +3375,15 @@ // register. // //***************************************************************************** +#define SYSCTL_DC1_PWM 0x00100000 // PWM Module Present #define SYSCTL_DC1_ADC 0x00010000 // ADC Module Present #define SYSCTL_DC1_SYSDIV_MASK 0x0000F000 // Minimum system divider mask #define SYSCTL_DC1_ADCSPD_MASK 0x00000F00 // ADC speed mask +#define SYSCTL_DC1_ADCSPD_M 0x00000F00 // Max ADC Speed +#define SYSCTL_DC1_ADCSPD_125K 0x00000000 // 125Ksps ADC +#define SYSCTL_DC1_ADCSPD_250K 0x00000100 // 250K samples/second +#define SYSCTL_DC1_ADCSPD_500K 0x00000200 // 500K samples/second +#define SYSCTL_DC1_ADCSPD_1M 0x00000300 // 1M samples/second #define SYSCTL_DC1_WDOG 0x00000008 // Watchdog present #define SYSCTL_DC1_WDT 0x00000008 // Watchdog Timer Present @@ -1501,6 +3436,7 @@ // register. // //***************************************************************************** +#define SYSCTL_SRCR0_PWM 0x00100000 // PWM Reset Control #define SYSCTL_SRCR0_ADC 0x00010000 // ADC0 Reset Control #define SYSCTL_SRCR0_WDT 0x00000008 // WDT Reset Control @@ -1545,6 +3481,21 @@ #define SYSCTL_PLLCFG_F_SHIFT 5 #define SYSCTL_PLLCFG_R_SHIFT 0 +//***************************************************************************** +// +// The following are deprecated defines for the bit fields in the +// SYSCTL_GPIOHSCTL register. +// +//***************************************************************************** +#define SYSCTL_GPIOHSCTL_PORTA 0x00000001 // Port A High-Speed +#define SYSCTL_GPIOHSCTL_PORTB 0x00000002 // Port B High-Speed +#define SYSCTL_GPIOHSCTL_PORTC 0x00000004 // Port C High-Speed +#define SYSCTL_GPIOHSCTL_PORTD 0x00000008 // Port D High-Speed +#define SYSCTL_GPIOHSCTL_PORTE 0x00000010 // Port E High-Speed +#define SYSCTL_GPIOHSCTL_PORTF 0x00000020 // Port F High-Speed +#define SYSCTL_GPIOHSCTL_PORTG 0x00000040 // Port G High-Speed +#define SYSCTL_GPIOHSCTL_PORTH 0x00000080 // Port H High-Speed + //***************************************************************************** // // The following are deprecated defines for the bit fields in the SYSCTL_RCC2 @@ -1562,6 +3513,7 @@ // register. // //***************************************************************************** +#define SYSCTL_RCGC0_PWM 0x00100000 // PWM Clock Gating Control #define SYSCTL_RCGC0_ADC 0x00010000 // ADC0 Clock Gating Control #define SYSCTL_RCGC0_WDT 0x00000008 // WDT Clock Gating Control @@ -1571,6 +3523,7 @@ // register. // //***************************************************************************** +#define SYSCTL_SCGC0_PWM 0x00100000 // PWM Clock Gating Control #define SYSCTL_SCGC0_ADC 0x00010000 // ADC0 Clock Gating Control #define SYSCTL_SCGC0_WDT 0x00000008 // WDT Clock Gating Control @@ -1580,6 +3533,7 @@ // register. // //***************************************************************************** +#define SYSCTL_DCGC0_PWM 0x00100000 // PWM Clock Gating Control #define SYSCTL_DCGC0_ADC 0x00010000 // ADC0 Clock Gating Control #define SYSCTL_DCGC0_WDT 0x00000008 // WDT Clock Gating Control diff --git a/bsp/lm3s8962/Libraries/inc/hw_sysexc.h b/bsp/lm3s8962/Libraries/inc/hw_sysexc.h new file mode 100644 index 0000000000..4dce20dec3 --- /dev/null +++ b/bsp/lm3s8962/Libraries/inc/hw_sysexc.h @@ -0,0 +1,89 @@ +//***************************************************************************** +// +// hw_sysexc.h - Macros used when accessing the system exception module. +// +// Copyright (c) 2011 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 8264 of the Stellaris 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 Raw 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_IXCRIS 0x00000020 // Inexact Exception Flag +#define SYSEXC_RIS_OFCRIS 0x00000010 // Overflow Exception Flag +#define SYSEXC_RIS_UFCRIS 0x00000008 // Underflow Exception Flag +#define SYSEXC_RIS_IOCRIS 0x00000004 // Invalid Operation Flag +#define SYSEXC_RIS_DZCRIS 0x00000002 // Divide By 0 Exception Flag +#define SYSEXC_RIS_IDCRIS 0x00000001 // Input Denormal Exception Flag + +//***************************************************************************** +// +// The following are defines for the bit fields in the SYSEXC_IM register. +// +//***************************************************************************** +#define SYSEXC_IM_IXCIM 0x00000020 // Inexact Exception Flag +#define SYSEXC_IM_OFCIM 0x00000010 // Overflow Exception Flag +#define SYSEXC_IM_UFCIM 0x00000008 // Underflow Exception Flag +#define SYSEXC_IM_IOCIM 0x00000004 // Invalid Operation Flag +#define SYSEXC_IM_DZCIM 0x00000002 // Divide By 0 Exception Flag +#define SYSEXC_IM_IDCIM 0x00000001 // Input Denormal Exception Flag + +//***************************************************************************** +// +// The following are defines for the bit fields in the SYSEXC_MIS register. +// +//***************************************************************************** +#define SYSEXC_MIS_IXCMIS 0x00000020 // Inexact Exception Flag +#define SYSEXC_MIS_OFCMIS 0x00000010 // Overflow Exception Flag +#define SYSEXC_MIS_UFCMIS 0x00000008 // Underflow Exception Flag +#define SYSEXC_MIS_IOCMIS 0x00000004 // Invalid Operation Flag +#define SYSEXC_MIS_DZCMIS 0x00000002 // Divide By 0 Exception Flag +#define SYSEXC_MIS_IDCMIS 0x00000001 // Input Denormal Exception Flag + +//***************************************************************************** +// +// The following are defines for the bit fields in the SYSEXC_IC register. +// +//***************************************************************************** +#define SYSEXC_IC_IXCIC 0x00000020 // Inexact Exception Flag +#define SYSEXC_IC_OFCIC 0x00000010 // Overflow Exception Flag +#define SYSEXC_IC_UFCIC 0x00000008 // Underflow Exception Flag +#define SYSEXC_IC_IOCIC 0x00000004 // Invalid Operation Flag +#define SYSEXC_IC_DZCIC 0x00000002 // Divide By 0 Exception Flag +#define SYSEXC_IC_IDCIC 0x00000001 // Input Denormal Exception Flag + +#endif // __HW_SYSEXC_H__ diff --git a/bsp/lm3s8962/Libraries/inc/hw_timer.h b/bsp/lm3s8962/Libraries/inc/hw_timer.h index 3a75bc9c65..b1d35979a8 100644 --- a/bsp/lm3s8962/Libraries/inc/hw_timer.h +++ b/bsp/lm3s8962/Libraries/inc/hw_timer.h @@ -2,7 +2,7 @@ // // hw_timer.h - Defines and macros used when accessing the timer. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** @@ -34,6 +34,7 @@ #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 @@ -50,6 +51,12 @@ #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_PP 0x00000FC0 // GPTM Peripheral Properties //***************************************************************************** // @@ -69,6 +76,13 @@ // 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 @@ -87,6 +101,13 @@ // 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 @@ -125,11 +146,175 @@ #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 16/32-Bit Timer + // 5 +#define TIMER_SYNC_SYNCT5_NONE 0x00000000 // GPTM 16/32-Bit Timer 5 is not + // affected +#define TIMER_SYNC_SYNCT5_TA 0x00000400 // A timeout event for Timer A of + // GPTM 16/32-Bit Timer 5 is + // triggered +#define TIMER_SYNC_SYNCT5_TB 0x00000800 // A timeout event for Timer B of + // GPTM 16/32-Bit Timer 5 is + // triggered +#define TIMER_SYNC_SYNCT5_TATB 0x00000C00 // A timeout event for both Timer A + // and Timer B of GPTM 16/32-Bit + // Timer 5 is triggered +#define TIMER_SYNC_SYNCT4_M 0x00000300 // Synchronize GPTM 16/32-Bit Timer + // 4 +#define TIMER_SYNC_SYNCT4_NONE 0x00000000 // GPTM 16/32-Bit Timer 4 is not + // affected +#define TIMER_SYNC_SYNCT4_TA 0x00000100 // A timeout event for Timer A of + // GPTM 16/32-Bit Timer 4 is + // triggered +#define TIMER_SYNC_SYNCT4_TB 0x00000200 // A timeout event for Timer B of + // GPTM 16/32-Bit Timer 4 is + // triggered +#define TIMER_SYNC_SYNCT4_TATB 0x00000300 // A timeout event for both Timer A + // and Timer B of GPTM 16/32-Bit + // Timer 4 is triggered +#define TIMER_SYNC_SYNCT3_M 0x000000C0 // Synchronize GPTM 16/32-Bit Timer + // 3 +#define TIMER_SYNC_SYNCT3_NONE 0x00000000 // GPTM 16/32-Bit Timer 3 is not + // affected +#define TIMER_SYNC_SYNCT3_TA 0x00000040 // A timeout event for Timer A of + // GPTM 16/32-Bit Timer 3 is + // triggered +#define TIMER_SYNC_SYNCT3_TB 0x00000080 // A timeout event for Timer B of + // GPTM 16/32-Bit Timer 3 is + // triggered +#define TIMER_SYNC_SYNCT3_TATB 0x000000C0 // A timeout event for both Timer A + // and Timer B of GPTM 16/32-Bit + // Timer 3 is triggered +#define TIMER_SYNC_SYNCT2_M 0x00000030 // Synchronize GPTM 16/32-Bit Timer + // 2 +#define TIMER_SYNC_SYNCT2_NONE 0x00000000 // GPTM 16/32-Bit Timer 2 is not + // affected +#define TIMER_SYNC_SYNCT2_TA 0x00000010 // A timeout event for Timer A of + // GPTM 16/32-Bit Timer 2 is + // triggered +#define TIMER_SYNC_SYNCT2_TB 0x00000020 // A timeout event for Timer B of + // GPTM 16/32-Bit Timer 2 is + // triggered +#define TIMER_SYNC_SYNCT2_TATB 0x00000030 // A timeout event for both Timer A + // and Timer B of GPTM 16/32-Bit + // Timer 2 is triggered +#define TIMER_SYNC_SYNCT1_M 0x0000000C // Synchronize GPTM 16/32-Bit Timer + // 1 +#define TIMER_SYNC_SYNCT1_NONE 0x00000000 // GPTM 16/32-Bit Timer 1 is not + // affected +#define TIMER_SYNC_SYNCT1_TA 0x00000004 // A timeout event for Timer A of + // GPTM 16/32-Bit Timer 1 is + // triggered +#define TIMER_SYNC_SYNCT1_TB 0x00000008 // A timeout event for Timer B of + // GPTM 16/32-Bit Timer 1 is + // triggered +#define TIMER_SYNC_SYNCT1_TATB 0x0000000C // A timeout event for both Timer A + // and Timer B of GPTM 16/32-Bit + // Timer 1 is triggered +#define TIMER_SYNC_SYNCT0_M 0x00000003 // Synchronize GPTM 16/32-Bit Timer + // 0 +#define TIMER_SYNC_SYNCT0_NONE 0x00000000 // GPTM 16/32-Bit Timer 0 is not + // affected +#define TIMER_SYNC_SYNCT0_TA 0x00000001 // A timeout event for Timer A of + // GPTM 16/32-Bit Timer 0 is + // triggered +#define TIMER_SYNC_SYNCT0_TB 0x00000002 // A timeout event for Timer B of + // GPTM 16/32-Bit Timer 0 is + // triggered +#define TIMER_SYNC_SYNCT0_TATB 0x00000003 // A timeout event for both Timer A + // and Timer B of GPTM 16/32-Bit + // Timer 0 is triggered + //***************************************************************************** // // The following are defines for the bit fields in the TIMER_O_IMR register. // //***************************************************************************** +#define TIMER_IMR_WUEIM 0x00010000 // 32/64-Bit GPTM Write Update + // Error Interrupt Mask #define TIMER_IMR_TBMIM 0x00000800 // GPTM Timer B Mode Match // Interrupt Mask #define TIMER_IMR_CBEIM 0x00000400 // GPTM Capture B Event Interrupt @@ -153,6 +338,8 @@ // The following are defines for the bit fields in the TIMER_O_RIS register. // //***************************************************************************** +#define TIMER_RIS_WUERIS 0x00010000 // 32/64-Bit GPTM Write Update + // Error Raw Interrupt Status #define TIMER_RIS_TBMRIS 0x00000800 // GPTM Timer B Mode Match Raw // Interrupt #define TIMER_RIS_CBERIS 0x00000400 // GPTM Capture B Event Raw @@ -176,6 +363,8 @@ // The following are defines for the bit fields in the TIMER_O_MIS register. // //***************************************************************************** +#define TIMER_MIS_WUEMIS 0x00010000 // 32/64-Bit GPTM Write Update + // Error Masked Interrupt Status #define TIMER_MIS_TBMMIS 0x00000800 // GPTM Timer B Mode Match Masked // Interrupt #define TIMER_MIS_CBEMIS 0x00000400 // GPTM Capture B Event Masked @@ -199,6 +388,8 @@ // The following are defines for the bit fields in the TIMER_O_ICR register. // //***************************************************************************** +#define TIMER_ICR_WUECINT 0x00010000 // 32/64-Bit GPTM Write Update + // Error Interrupt Clear #define TIMER_ICR_TBMCINT 0x00000800 // GPTM Timer B Mode Match // Interrupt Clear #define TIMER_ICR_CBECINT 0x00000400 // GPTM Capture B Event Interrupt @@ -222,21 +413,27 @@ // 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_TAILRH_M 0xFFFF0000 // GPTM Timer A Interval Load // Register High #define TIMER_TAILR_TAILRL_M 0x0000FFFF // GPTM Timer A Interval Load // Register Low #define TIMER_TAILR_TAILRH_S 16 #define TIMER_TAILR_TAILRL_S 0 +#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_TBILRL_M 0x0000FFFF // GPTM Timer B Interval Load // Register #define TIMER_TBILR_TBILRL_S 0 +#define TIMER_TBILR_S 0 //***************************************************************************** // @@ -244,10 +441,12 @@ // register. // //***************************************************************************** +#define TIMER_TAMATCHR_TAMR_M 0xFFFFFFFF // GPTM Timer A Match Register #define TIMER_TAMATCHR_TAMRH_M 0xFFFF0000 // GPTM Timer A Match Register High #define TIMER_TAMATCHR_TAMRL_M 0x0000FFFF // GPTM Timer A Match Register Low #define TIMER_TAMATCHR_TAMRH_S 16 #define TIMER_TAMATCHR_TAMRL_S 0 +#define TIMER_TAMATCHR_TAMR_S 0 //***************************************************************************** // @@ -255,7 +454,9 @@ // register. // //***************************************************************************** +#define TIMER_TBMATCHR_TBMR_M 0xFFFFFFFF // GPTM Timer B Match Register #define TIMER_TBMATCHR_TBMRL_M 0x0000FFFF // GPTM Timer B Match Register Low +#define TIMER_TBMATCHR_TBMR_S 0 #define TIMER_TBMATCHR_TBMRL_S 0 //***************************************************************************** @@ -263,7 +464,9 @@ // 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 //***************************************************************************** @@ -271,7 +474,9 @@ // 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 //***************************************************************************** @@ -279,7 +484,10 @@ // 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 //***************************************************************************** @@ -287,7 +495,10 @@ // 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 //***************************************************************************** @@ -295,36 +506,97 @@ // 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_TARH_M 0xFFFF0000 // GPTM Timer A Register High #define TIMER_TAR_TARL_M 0x0000FFFF // GPTM Timer A Register Low #define TIMER_TAR_TARH_S 16 #define TIMER_TAR_TARL_S 0 +#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_TBRL_M 0x00FFFFFF // GPTM Timer B #define TIMER_TBR_TBRL_S 0 +#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_TAVH_M 0xFFFF0000 // GPTM Timer A Value High #define TIMER_TAV_TAVL_M 0x0000FFFF // GPTM Timer A Register Low #define TIMER_TAV_TAVH_S 16 #define TIMER_TAV_TAVL_S 0 +#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_TBVL_M 0x0000FFFF // GPTM Timer B Register #define TIMER_TBV_TBVL_S 0 +#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 //***************************************************************************** // diff --git a/bsp/lm3s8962/Libraries/inc/hw_types.h b/bsp/lm3s8962/Libraries/inc/hw_types.h index d4e449777f..f08046f45a 100644 --- a/bsp/lm3s8962/Libraries/inc/hw_types.h +++ b/bsp/lm3s8962/Libraries/inc/hw_types.h @@ -2,7 +2,7 @@ // // hw_types.h - Common types and macros. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** @@ -115,6 +115,18 @@ typedef unsigned char tBoolean; (SYSCTL_DID0_VER_1 | SYSCTL_DID0_CLASS_TEMPEST)) #endif +#ifndef CLASS_IS_FIRESTORM +#define CLASS_IS_FIRESTORM \ + ((HWREG(SYSCTL_DID0) & (SYSCTL_DID0_VER_M | SYSCTL_DID0_CLASS_M)) == \ + (SYSCTL_DID0_VER_1 | SYSCTL_DID0_CLASS_FIRESTORM)) +#endif + +#ifndef CLASS_IS_BLIZZARD +#define CLASS_IS_BLIZZARD \ + ((HWREG(SYSCTL_DID0) & (SYSCTL_DID0_VER_M | SYSCTL_DID0_CLASS_M)) == \ + (SYSCTL_DID0_VER_1 | SYSCTL_DID0_CLASS_BLIZZARD)) +#endif + #ifndef REVISION_IS_A0 #define REVISION_IS_A0 \ ((HWREG(SYSCTL_DID0) & (SYSCTL_DID0_MAJ_M | SYSCTL_DID0_MIN_M)) == \ @@ -163,6 +175,18 @@ typedef unsigned char tBoolean; (SYSCTL_DID0_MAJ_REVC | SYSCTL_DID0_MIN_2)) #endif +#ifndef REVISION_IS_C3 +#define REVISION_IS_C3 \ + ((HWREG(SYSCTL_DID0) & (SYSCTL_DID0_MAJ_M | SYSCTL_DID0_MIN_M)) == \ + (SYSCTL_DID0_MAJ_REVC | SYSCTL_DID0_MIN_3)) +#endif + +#ifndef REVISION_IS_C5 +#define REVISION_IS_C5 \ + ((HWREG(SYSCTL_DID0) & (SYSCTL_DID0_MAJ_M | SYSCTL_DID0_MIN_M)) == \ + (SYSCTL_DID0_MAJ_REVC | SYSCTL_DID0_MIN_5)) +#endif + //***************************************************************************** // // Deprecated silicon class and revision detection macros. diff --git a/bsp/lm3s8962/Libraries/inc/hw_uart.h b/bsp/lm3s8962/Libraries/inc/hw_uart.h index 8a7832a47d..daf55d1312 100644 --- a/bsp/lm3s8962/Libraries/inc/hw_uart.h +++ b/bsp/lm3s8962/Libraries/inc/hw_uart.h @@ -2,7 +2,7 @@ // // hw_uart.h - Macros and defines used when accessing the UART hardware. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** @@ -49,6 +49,10 @@ #define UART_O_LCTL 0x00000090 // UART LIN Control #define UART_O_LSS 0x00000094 // UART LIN Snap Shot #define UART_O_LTIM 0x00000098 // UART LIN Timer +#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 //***************************************************************************** // @@ -185,6 +189,7 @@ #define UART_IM_LME1IM 0x00004000 // LIN Mode Edge 1 Interrupt Mask #define UART_IM_LMSBIM 0x00002000 // LIN Mode Sync Break Interrupt // Mask +#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 @@ -215,6 +220,7 @@ // Status #define UART_RIS_LMSBRIS 0x00002000 // LIN Mode Sync Break Raw // Interrupt Status +#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 @@ -249,6 +255,8 @@ // Status #define UART_MIS_LMSBMIS 0x00002000 // LIN Mode Sync Break Masked // Interrupt Status +#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 @@ -277,10 +285,11 @@ // The following are defines for the bit fields in the UART_O_ICR register. // //***************************************************************************** -#define UART_ICR_LME5MIC 0x00008000 // LIN Mode Edge 5 Interrupt Clear -#define UART_ICR_LME1MIC 0x00004000 // LIN Mode Edge 1 Interrupt Clear -#define UART_ICR_LMSBMIC 0x00002000 // LIN Mode Sync Break Interrupt +#define UART_ICR_LME5IC 0x00008000 // LIN Mode Edge 5 Interrupt Clear +#define UART_ICR_LME1IC 0x00004000 // LIN Mode Edge 1 Interrupt Clear +#define UART_ICR_LMSBIC 0x00002000 // LIN Mode Sync Break Interrupt // Clear +#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 @@ -335,6 +344,45 @@ #define UART_LTIM_TIMER_M 0x0000FFFF // Timer Value #define UART_LTIM_TIMER_S 0 +//***************************************************************************** +// +// 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_RANGE_M 0x0000FF00 // Self Address Range for 9-Bit + // Mode +#define UART_9BITAMASK_MASK_M 0x000000FF // Self Address Mask for 9-Bit Mode +#define UART_9BITAMASK_RANGE_S 8 +#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 // The system clock (default) +#define UART_CC_CS_PIOSC 0x00000001 // PIOSC + //***************************************************************************** // // The following definitions are deprecated. @@ -418,6 +466,10 @@ // register. // //***************************************************************************** +#define UART_ICR_LME5MIC 0x00008000 // LIN Mode Edge 5 Interrupt Clear +#define UART_ICR_LME1MIC 0x00004000 // LIN Mode Edge 1 Interrupt Clear +#define UART_ICR_LMSBMIC 0x00002000 // LIN Mode Sync Break Interrupt + // Clear #define UART_RSR_ANY (UART_RSR_OE | UART_RSR_BE | UART_RSR_PE | \ UART_RSR_FE) diff --git a/bsp/lm3s8962/Libraries/inc/hw_udma.h b/bsp/lm3s8962/Libraries/inc/hw_udma.h index 8fb06da885..59466e6eca 100644 --- a/bsp/lm3s8962/Libraries/inc/hw_udma.h +++ b/bsp/lm3s8962/Libraries/inc/hw_udma.h @@ -2,7 +2,7 @@ // // hw_udma.h - Macros for use in accessing the UDMA registers. // -// Copyright (c) 2007-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2007-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** @@ -52,7 +52,12 @@ #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_CHALT 0x400FF500 // DMA Channel Alternate Select +#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 //***************************************************************************** // @@ -201,11 +206,109 @@ //***************************************************************************** // -// The following are defines for the bit fields in the UDMA_CHALT register. +// The following are defines for the bit fields in the UDMA_CHASGN register. // //***************************************************************************** -#define UDMA_CHALT_M 0xFFFFFFFF // Channel [n] Alternate Assignment - // Select +#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 //***************************************************************************** // @@ -298,6 +401,14 @@ //***************************************************************************** #ifndef DEPRECATED +//***************************************************************************** +// +// The following are deprecated defines for the Micro Direct Memory Access +// register addresses. +// +//***************************************************************************** +#define UDMA_CHALT 0x400FF500 // DMA Channel Alternate Select + //***************************************************************************** // // The following are deprecated defines for the bit fields in the UDMA_ENASET @@ -306,6 +417,15 @@ //***************************************************************************** #define UDMA_ENASET_CHENSET_M 0xFFFFFFFF // Channel [n] Enable Set +//***************************************************************************** +// +// The following are deprecated defines for the bit fields in the UDMA_CHALT +// register. +// +//***************************************************************************** +#define UDMA_CHALT_M 0xFFFFFFFF // Channel [n] Alternate Assignment + // Select + #endif #endif // __HW_UDMA_H__ diff --git a/bsp/lm3s8962/Libraries/inc/hw_usb.h b/bsp/lm3s8962/Libraries/inc/hw_usb.h index 73c5e8e217..abee8349bc 100644 --- a/bsp/lm3s8962/Libraries/inc/hw_usb.h +++ b/bsp/lm3s8962/Libraries/inc/hw_usb.h @@ -2,7 +2,7 @@ // // hw_usb.h - Macros for use in accessing the USB registers. // -// Copyright (c) 2007-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2007-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** @@ -629,6 +629,7 @@ #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 //***************************************************************************** // @@ -4569,11 +4570,29 @@ #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 definitions are deprecated. diff --git a/bsp/lm3s8962/Libraries/inc/hw_watchdog.h b/bsp/lm3s8962/Libraries/inc/hw_watchdog.h index 9b52ffc700..d00c90240d 100644 --- a/bsp/lm3s8962/Libraries/inc/hw_watchdog.h +++ b/bsp/lm3s8962/Libraries/inc/hw_watchdog.h @@ -2,7 +2,7 @@ // // hw_watchdog.h - Macros used when accessing the Watchdog Timer hardware. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** @@ -61,6 +61,7 @@ // //***************************************************************************** #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 diff --git a/bsp/lm3s8962/Libraries/inc/inc.sgxx b/bsp/lm3s8962/Libraries/inc/inc.sgxx deleted file mode 100644 index 68b958950b392334da84e2b886b48f5caf35803e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1184 zcmWIWW@Zs#U|`^2a9XBr+r_*`xD3eK0v3^B&?_j)&q_@$2@T<7U_Sl2%?E@_E4UdL zS@x%KFt7+}GB9l3xcOO3O#lG^iJt$FlueveA4@j@7B|2ytiFs-@GGd(&ysh;Ll!fa=s+$>^PRR zK%r@7$gG)@g<>Ym;t_F8dagQcirCVoDM}F$I&2I9aCbWb-MwSJSI!$I1_lvf1_mAm zpu3CHD=LuPehTPr5Jq!*>5RKYvke4V-~SeoynkJSbL|pIr+2?t-j=q@t4`x?V(NTt zQ)@a??Q+?bNzx+^dNu69$)h_#*-@l%2wze^u z|0;E^{=)mSt+obdB)xk5=rSF$B;+wN<5RGg$ceuzE`%lD5}bF)WNSwJOI4+hPpue#881-CkzTTW?S1!x zS00IQjG3l>W~=%#Rdr%vBO!wRI zsWe}v%1y3BOkw{#NQLBR(#F1ZNEUhUP^rD4fUk`6D-zqeb&BMc{FA&hkEH+ zuNZx=hsEKd7grY4uH?GD-e|{sjiBqhs{qg#t{miYPR%+AzGc#>39{+qVV$-^#Uo$=C^seo&?c2QZ zNd4(QUo80M9XUSPqQvESdz#E^og;OL-;SJb{jpQ%@6;FXTkac(-x2q?uI?LO5PxDu zfsUWsq6eO8syQW1vnM`Sr@X_PJI^iXq2e^lvWYy=hC5cYuugLA*{NSKgIjW&Q`?e= z=F$_+OD81Gu-tt7U-cg$g%pXjzQ;aoOAc4QEVyJn=gX7E+YfU}Ep%o5yxSi?Du}Xb z?ms`VTvPqXyd{p$40w%>|C;xrVv%#-?MfTwIon<2?WL<;FRXnQaKD=0|7f|(a%HQz z?d|g{b=d9yZO;36U3|r(zuBQ5|Mk8$5AbGWl4Hh|*Cl{Co`Hc8h?g{iScsg@3d#9s nIS1J^%p8bp+76IuDESd+B9^=u;LXYgvY8187Xay3%pe{BF0Kb} diff --git a/bsp/lm3s8962/Libraries/inc/lm3s8962.h b/bsp/lm3s8962/Libraries/inc/lm3s8962.h deleted file mode 100644 index 4e9aa86be6..0000000000 --- a/bsp/lm3s8962/Libraries/inc/lm3s8962.h +++ /dev/null @@ -1,5034 +0,0 @@ -//***************************************************************************** -// -// lm3s8962.h - LM3S8962 Register Definitions -// -// Copyright (c) 2007-2010 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 6459 of the Stellaris Firmware Development Package. -// -//***************************************************************************** - -#ifndef __LM3S8962_H__ -#define __LM3S8962_H__ - -//***************************************************************************** -// -// Watchdog Timer registers (WATCHDOG0) -// -//***************************************************************************** -#define WATCHDOG0_LOAD_R (*((volatile unsigned long *)0x40000000)) -#define WATCHDOG0_VALUE_R (*((volatile unsigned long *)0x40000004)) -#define WATCHDOG0_CTL_R (*((volatile unsigned long *)0x40000008)) -#define WATCHDOG0_ICR_R (*((volatile unsigned long *)0x4000000C)) -#define WATCHDOG0_RIS_R (*((volatile unsigned long *)0x40000010)) -#define WATCHDOG0_MIS_R (*((volatile unsigned long *)0x40000014)) -#define WATCHDOG0_TEST_R (*((volatile unsigned long *)0x40000418)) -#define WATCHDOG0_LOCK_R (*((volatile unsigned long *)0x40000C00)) - -//***************************************************************************** -// -// GPIO registers (PORTA) -// -//***************************************************************************** -#define GPIO_PORTA_DATA_BITS_R ((volatile unsigned long *)0x40004000) -#define GPIO_PORTA_DATA_R (*((volatile unsigned long *)0x400043FC)) -#define GPIO_PORTA_DIR_R (*((volatile unsigned long *)0x40004400)) -#define GPIO_PORTA_IS_R (*((volatile unsigned long *)0x40004404)) -#define GPIO_PORTA_IBE_R (*((volatile unsigned long *)0x40004408)) -#define GPIO_PORTA_IEV_R (*((volatile unsigned long *)0x4000440C)) -#define GPIO_PORTA_IM_R (*((volatile unsigned long *)0x40004410)) -#define GPIO_PORTA_RIS_R (*((volatile unsigned long *)0x40004414)) -#define GPIO_PORTA_MIS_R (*((volatile unsigned long *)0x40004418)) -#define GPIO_PORTA_ICR_R (*((volatile unsigned long *)0x4000441C)) -#define GPIO_PORTA_AFSEL_R (*((volatile unsigned long *)0x40004420)) -#define GPIO_PORTA_DR2R_R (*((volatile unsigned long *)0x40004500)) -#define GPIO_PORTA_DR4R_R (*((volatile unsigned long *)0x40004504)) -#define GPIO_PORTA_DR8R_R (*((volatile unsigned long *)0x40004508)) -#define GPIO_PORTA_ODR_R (*((volatile unsigned long *)0x4000450C)) -#define GPIO_PORTA_PUR_R (*((volatile unsigned long *)0x40004510)) -#define GPIO_PORTA_PDR_R (*((volatile unsigned long *)0x40004514)) -#define GPIO_PORTA_SLR_R (*((volatile unsigned long *)0x40004518)) -#define GPIO_PORTA_DEN_R (*((volatile unsigned long *)0x4000451C)) -#define GPIO_PORTA_LOCK_R (*((volatile unsigned long *)0x40004520)) -#define GPIO_PORTA_CR_R (*((volatile unsigned long *)0x40004524)) - -//***************************************************************************** -// -// GPIO registers (PORTB) -// -//***************************************************************************** -#define GPIO_PORTB_DATA_BITS_R ((volatile unsigned long *)0x40005000) -#define GPIO_PORTB_DATA_R (*((volatile unsigned long *)0x400053FC)) -#define GPIO_PORTB_DIR_R (*((volatile unsigned long *)0x40005400)) -#define GPIO_PORTB_IS_R (*((volatile unsigned long *)0x40005404)) -#define GPIO_PORTB_IBE_R (*((volatile unsigned long *)0x40005408)) -#define GPIO_PORTB_IEV_R (*((volatile unsigned long *)0x4000540C)) -#define GPIO_PORTB_IM_R (*((volatile unsigned long *)0x40005410)) -#define GPIO_PORTB_RIS_R (*((volatile unsigned long *)0x40005414)) -#define GPIO_PORTB_MIS_R (*((volatile unsigned long *)0x40005418)) -#define GPIO_PORTB_ICR_R (*((volatile unsigned long *)0x4000541C)) -#define GPIO_PORTB_AFSEL_R (*((volatile unsigned long *)0x40005420)) -#define GPIO_PORTB_DR2R_R (*((volatile unsigned long *)0x40005500)) -#define GPIO_PORTB_DR4R_R (*((volatile unsigned long *)0x40005504)) -#define GPIO_PORTB_DR8R_R (*((volatile unsigned long *)0x40005508)) -#define GPIO_PORTB_ODR_R (*((volatile unsigned long *)0x4000550C)) -#define GPIO_PORTB_PUR_R (*((volatile unsigned long *)0x40005510)) -#define GPIO_PORTB_PDR_R (*((volatile unsigned long *)0x40005514)) -#define GPIO_PORTB_SLR_R (*((volatile unsigned long *)0x40005518)) -#define GPIO_PORTB_DEN_R (*((volatile unsigned long *)0x4000551C)) -#define GPIO_PORTB_LOCK_R (*((volatile unsigned long *)0x40005520)) -#define GPIO_PORTB_CR_R (*((volatile unsigned long *)0x40005524)) - -//***************************************************************************** -// -// GPIO registers (PORTC) -// -//***************************************************************************** -#define GPIO_PORTC_DATA_BITS_R ((volatile unsigned long *)0x40006000) -#define GPIO_PORTC_DATA_R (*((volatile unsigned long *)0x400063FC)) -#define GPIO_PORTC_DIR_R (*((volatile unsigned long *)0x40006400)) -#define GPIO_PORTC_IS_R (*((volatile unsigned long *)0x40006404)) -#define GPIO_PORTC_IBE_R (*((volatile unsigned long *)0x40006408)) -#define GPIO_PORTC_IEV_R (*((volatile unsigned long *)0x4000640C)) -#define GPIO_PORTC_IM_R (*((volatile unsigned long *)0x40006410)) -#define GPIO_PORTC_RIS_R (*((volatile unsigned long *)0x40006414)) -#define GPIO_PORTC_MIS_R (*((volatile unsigned long *)0x40006418)) -#define GPIO_PORTC_ICR_R (*((volatile unsigned long *)0x4000641C)) -#define GPIO_PORTC_AFSEL_R (*((volatile unsigned long *)0x40006420)) -#define GPIO_PORTC_DR2R_R (*((volatile unsigned long *)0x40006500)) -#define GPIO_PORTC_DR4R_R (*((volatile unsigned long *)0x40006504)) -#define GPIO_PORTC_DR8R_R (*((volatile unsigned long *)0x40006508)) -#define GPIO_PORTC_ODR_R (*((volatile unsigned long *)0x4000650C)) -#define GPIO_PORTC_PUR_R (*((volatile unsigned long *)0x40006510)) -#define GPIO_PORTC_PDR_R (*((volatile unsigned long *)0x40006514)) -#define GPIO_PORTC_SLR_R (*((volatile unsigned long *)0x40006518)) -#define GPIO_PORTC_DEN_R (*((volatile unsigned long *)0x4000651C)) -#define GPIO_PORTC_LOCK_R (*((volatile unsigned long *)0x40006520)) -#define GPIO_PORTC_CR_R (*((volatile unsigned long *)0x40006524)) - -//***************************************************************************** -// -// GPIO registers (PORTD) -// -//***************************************************************************** -#define GPIO_PORTD_DATA_BITS_R ((volatile unsigned long *)0x40007000) -#define GPIO_PORTD_DATA_R (*((volatile unsigned long *)0x400073FC)) -#define GPIO_PORTD_DIR_R (*((volatile unsigned long *)0x40007400)) -#define GPIO_PORTD_IS_R (*((volatile unsigned long *)0x40007404)) -#define GPIO_PORTD_IBE_R (*((volatile unsigned long *)0x40007408)) -#define GPIO_PORTD_IEV_R (*((volatile unsigned long *)0x4000740C)) -#define GPIO_PORTD_IM_R (*((volatile unsigned long *)0x40007410)) -#define GPIO_PORTD_RIS_R (*((volatile unsigned long *)0x40007414)) -#define GPIO_PORTD_MIS_R (*((volatile unsigned long *)0x40007418)) -#define GPIO_PORTD_ICR_R (*((volatile unsigned long *)0x4000741C)) -#define GPIO_PORTD_AFSEL_R (*((volatile unsigned long *)0x40007420)) -#define GPIO_PORTD_DR2R_R (*((volatile unsigned long *)0x40007500)) -#define GPIO_PORTD_DR4R_R (*((volatile unsigned long *)0x40007504)) -#define GPIO_PORTD_DR8R_R (*((volatile unsigned long *)0x40007508)) -#define GPIO_PORTD_ODR_R (*((volatile unsigned long *)0x4000750C)) -#define GPIO_PORTD_PUR_R (*((volatile unsigned long *)0x40007510)) -#define GPIO_PORTD_PDR_R (*((volatile unsigned long *)0x40007514)) -#define GPIO_PORTD_SLR_R (*((volatile unsigned long *)0x40007518)) -#define GPIO_PORTD_DEN_R (*((volatile unsigned long *)0x4000751C)) -#define GPIO_PORTD_LOCK_R (*((volatile unsigned long *)0x40007520)) -#define GPIO_PORTD_CR_R (*((volatile unsigned long *)0x40007524)) - -//***************************************************************************** -// -// SSI registers (SSI0) -// -//***************************************************************************** -#define SSI0_CR0_R (*((volatile unsigned long *)0x40008000)) -#define SSI0_CR1_R (*((volatile unsigned long *)0x40008004)) -#define SSI0_DR_R (*((volatile unsigned long *)0x40008008)) -#define SSI0_SR_R (*((volatile unsigned long *)0x4000800C)) -#define SSI0_CPSR_R (*((volatile unsigned long *)0x40008010)) -#define SSI0_IM_R (*((volatile unsigned long *)0x40008014)) -#define SSI0_RIS_R (*((volatile unsigned long *)0x40008018)) -#define SSI0_MIS_R (*((volatile unsigned long *)0x4000801C)) -#define SSI0_ICR_R (*((volatile unsigned long *)0x40008020)) - -//***************************************************************************** -// -// UART registers (UART0) -// -//***************************************************************************** -#define UART0_DR_R (*((volatile unsigned long *)0x4000C000)) -#define UART0_RSR_R (*((volatile unsigned long *)0x4000C004)) -#define UART0_ECR_R (*((volatile unsigned long *)0x4000C004)) -#define UART0_FR_R (*((volatile unsigned long *)0x4000C018)) -#define UART0_ILPR_R (*((volatile unsigned long *)0x4000C020)) -#define UART0_IBRD_R (*((volatile unsigned long *)0x4000C024)) -#define UART0_FBRD_R (*((volatile unsigned long *)0x4000C028)) -#define UART0_LCRH_R (*((volatile unsigned long *)0x4000C02C)) -#define UART0_CTL_R (*((volatile unsigned long *)0x4000C030)) -#define UART0_IFLS_R (*((volatile unsigned long *)0x4000C034)) -#define UART0_IM_R (*((volatile unsigned long *)0x4000C038)) -#define UART0_RIS_R (*((volatile unsigned long *)0x4000C03C)) -#define UART0_MIS_R (*((volatile unsigned long *)0x4000C040)) -#define UART0_ICR_R (*((volatile unsigned long *)0x4000C044)) - -//***************************************************************************** -// -// UART registers (UART1) -// -//***************************************************************************** -#define UART1_DR_R (*((volatile unsigned long *)0x4000D000)) -#define UART1_RSR_R (*((volatile unsigned long *)0x4000D004)) -#define UART1_ECR_R (*((volatile unsigned long *)0x4000D004)) -#define UART1_FR_R (*((volatile unsigned long *)0x4000D018)) -#define UART1_ILPR_R (*((volatile unsigned long *)0x4000D020)) -#define UART1_IBRD_R (*((volatile unsigned long *)0x4000D024)) -#define UART1_FBRD_R (*((volatile unsigned long *)0x4000D028)) -#define UART1_LCRH_R (*((volatile unsigned long *)0x4000D02C)) -#define UART1_CTL_R (*((volatile unsigned long *)0x4000D030)) -#define UART1_IFLS_R (*((volatile unsigned long *)0x4000D034)) -#define UART1_IM_R (*((volatile unsigned long *)0x4000D038)) -#define UART1_RIS_R (*((volatile unsigned long *)0x4000D03C)) -#define UART1_MIS_R (*((volatile unsigned long *)0x4000D040)) -#define UART1_ICR_R (*((volatile unsigned long *)0x4000D044)) - -//***************************************************************************** -// -// I2C registers (I2C0 MASTER) -// -//***************************************************************************** -#define I2C0_MASTER_MSA_R (*((volatile unsigned long *)0x40020000)) -#define I2C0_MASTER_SOAR_R (*((volatile unsigned long *)0x40020000)) -#define I2C0_MASTER_SCSR_R (*((volatile unsigned long *)0x40020004)) -#define I2C0_MASTER_MCS_R (*((volatile unsigned long *)0x40020004)) -#define I2C0_MASTER_SDR_R (*((volatile unsigned long *)0x40020008)) -#define I2C0_MASTER_MDR_R (*((volatile unsigned long *)0x40020008)) -#define I2C0_MASTER_MTPR_R (*((volatile unsigned long *)0x4002000C)) -#define I2C0_MASTER_SIMR_R (*((volatile unsigned long *)0x4002000C)) -#define I2C0_MASTER_SRIS_R (*((volatile unsigned long *)0x40020010)) -#define I2C0_MASTER_MIMR_R (*((volatile unsigned long *)0x40020010)) -#define I2C0_MASTER_MRIS_R (*((volatile unsigned long *)0x40020014)) -#define I2C0_MASTER_SMIS_R (*((volatile unsigned long *)0x40020014)) -#define I2C0_MASTER_SICR_R (*((volatile unsigned long *)0x40020018)) -#define I2C0_MASTER_MMIS_R (*((volatile unsigned long *)0x40020018)) -#define I2C0_MASTER_MICR_R (*((volatile unsigned long *)0x4002001C)) -#define I2C0_MASTER_MCR_R (*((volatile unsigned long *)0x40020020)) - -//***************************************************************************** -// -// I2C registers (I2C0 SLAVE) -// -//***************************************************************************** -#define I2C0_SLAVE_MSA_R (*((volatile unsigned long *)0x40020800)) -#define I2C0_SLAVE_SOAR_R (*((volatile unsigned long *)0x40020800)) -#define I2C0_SLAVE_SCSR_R (*((volatile unsigned long *)0x40020804)) -#define I2C0_SLAVE_MCS_R (*((volatile unsigned long *)0x40020804)) -#define I2C0_SLAVE_SDR_R (*((volatile unsigned long *)0x40020808)) -#define I2C0_SLAVE_MDR_R (*((volatile unsigned long *)0x40020808)) -#define I2C0_SLAVE_MTPR_R (*((volatile unsigned long *)0x4002080C)) -#define I2C0_SLAVE_SIMR_R (*((volatile unsigned long *)0x4002080C)) -#define I2C0_SLAVE_SRIS_R (*((volatile unsigned long *)0x40020810)) -#define I2C0_SLAVE_MIMR_R (*((volatile unsigned long *)0x40020810)) -#define I2C0_SLAVE_MRIS_R (*((volatile unsigned long *)0x40020814)) -#define I2C0_SLAVE_SMIS_R (*((volatile unsigned long *)0x40020814)) -#define I2C0_SLAVE_SICR_R (*((volatile unsigned long *)0x40020818)) -#define I2C0_SLAVE_MMIS_R (*((volatile unsigned long *)0x40020818)) -#define I2C0_SLAVE_MICR_R (*((volatile unsigned long *)0x4002081C)) -#define I2C0_SLAVE_MCR_R (*((volatile unsigned long *)0x40020820)) - -//***************************************************************************** -// -// GPIO registers (PORTE) -// -//***************************************************************************** -#define GPIO_PORTE_DATA_BITS_R ((volatile unsigned long *)0x40024000) -#define GPIO_PORTE_DATA_R (*((volatile unsigned long *)0x400243FC)) -#define GPIO_PORTE_DIR_R (*((volatile unsigned long *)0x40024400)) -#define GPIO_PORTE_IS_R (*((volatile unsigned long *)0x40024404)) -#define GPIO_PORTE_IBE_R (*((volatile unsigned long *)0x40024408)) -#define GPIO_PORTE_IEV_R (*((volatile unsigned long *)0x4002440C)) -#define GPIO_PORTE_IM_R (*((volatile unsigned long *)0x40024410)) -#define GPIO_PORTE_RIS_R (*((volatile unsigned long *)0x40024414)) -#define GPIO_PORTE_MIS_R (*((volatile unsigned long *)0x40024418)) -#define GPIO_PORTE_ICR_R (*((volatile unsigned long *)0x4002441C)) -#define GPIO_PORTE_AFSEL_R (*((volatile unsigned long *)0x40024420)) -#define GPIO_PORTE_DR2R_R (*((volatile unsigned long *)0x40024500)) -#define GPIO_PORTE_DR4R_R (*((volatile unsigned long *)0x40024504)) -#define GPIO_PORTE_DR8R_R (*((volatile unsigned long *)0x40024508)) -#define GPIO_PORTE_ODR_R (*((volatile unsigned long *)0x4002450C)) -#define GPIO_PORTE_PUR_R (*((volatile unsigned long *)0x40024510)) -#define GPIO_PORTE_PDR_R (*((volatile unsigned long *)0x40024514)) -#define GPIO_PORTE_SLR_R (*((volatile unsigned long *)0x40024518)) -#define GPIO_PORTE_DEN_R (*((volatile unsigned long *)0x4002451C)) -#define GPIO_PORTE_LOCK_R (*((volatile unsigned long *)0x40024520)) -#define GPIO_PORTE_CR_R (*((volatile unsigned long *)0x40024524)) - -//***************************************************************************** -// -// GPIO registers (PORTF) -// -//***************************************************************************** -#define GPIO_PORTF_DATA_BITS_R ((volatile unsigned long *)0x40025000) -#define GPIO_PORTF_DATA_R (*((volatile unsigned long *)0x400253FC)) -#define GPIO_PORTF_DIR_R (*((volatile unsigned long *)0x40025400)) -#define GPIO_PORTF_IS_R (*((volatile unsigned long *)0x40025404)) -#define GPIO_PORTF_IBE_R (*((volatile unsigned long *)0x40025408)) -#define GPIO_PORTF_IEV_R (*((volatile unsigned long *)0x4002540C)) -#define GPIO_PORTF_IM_R (*((volatile unsigned long *)0x40025410)) -#define GPIO_PORTF_RIS_R (*((volatile unsigned long *)0x40025414)) -#define GPIO_PORTF_MIS_R (*((volatile unsigned long *)0x40025418)) -#define GPIO_PORTF_ICR_R (*((volatile unsigned long *)0x4002541C)) -#define GPIO_PORTF_AFSEL_R (*((volatile unsigned long *)0x40025420)) -#define GPIO_PORTF_DR2R_R (*((volatile unsigned long *)0x40025500)) -#define GPIO_PORTF_DR4R_R (*((volatile unsigned long *)0x40025504)) -#define GPIO_PORTF_DR8R_R (*((volatile unsigned long *)0x40025508)) -#define GPIO_PORTF_ODR_R (*((volatile unsigned long *)0x4002550C)) -#define GPIO_PORTF_PUR_R (*((volatile unsigned long *)0x40025510)) -#define GPIO_PORTF_PDR_R (*((volatile unsigned long *)0x40025514)) -#define GPIO_PORTF_SLR_R (*((volatile unsigned long *)0x40025518)) -#define GPIO_PORTF_DEN_R (*((volatile unsigned long *)0x4002551C)) -#define GPIO_PORTF_LOCK_R (*((volatile unsigned long *)0x40025520)) -#define GPIO_PORTF_CR_R (*((volatile unsigned long *)0x40025524)) - -//***************************************************************************** -// -// GPIO registers (PORTG) -// -//***************************************************************************** -#define GPIO_PORTG_DATA_BITS_R ((volatile unsigned long *)0x40026000) -#define GPIO_PORTG_DATA_R (*((volatile unsigned long *)0x400263FC)) -#define GPIO_PORTG_DIR_R (*((volatile unsigned long *)0x40026400)) -#define GPIO_PORTG_IS_R (*((volatile unsigned long *)0x40026404)) -#define GPIO_PORTG_IBE_R (*((volatile unsigned long *)0x40026408)) -#define GPIO_PORTG_IEV_R (*((volatile unsigned long *)0x4002640C)) -#define GPIO_PORTG_IM_R (*((volatile unsigned long *)0x40026410)) -#define GPIO_PORTG_RIS_R (*((volatile unsigned long *)0x40026414)) -#define GPIO_PORTG_MIS_R (*((volatile unsigned long *)0x40026418)) -#define GPIO_PORTG_ICR_R (*((volatile unsigned long *)0x4002641C)) -#define GPIO_PORTG_AFSEL_R (*((volatile unsigned long *)0x40026420)) -#define GPIO_PORTG_DR2R_R (*((volatile unsigned long *)0x40026500)) -#define GPIO_PORTG_DR4R_R (*((volatile unsigned long *)0x40026504)) -#define GPIO_PORTG_DR8R_R (*((volatile unsigned long *)0x40026508)) -#define GPIO_PORTG_ODR_R (*((volatile unsigned long *)0x4002650C)) -#define GPIO_PORTG_PUR_R (*((volatile unsigned long *)0x40026510)) -#define GPIO_PORTG_PDR_R (*((volatile unsigned long *)0x40026514)) -#define GPIO_PORTG_SLR_R (*((volatile unsigned long *)0x40026518)) -#define GPIO_PORTG_DEN_R (*((volatile unsigned long *)0x4002651C)) -#define GPIO_PORTG_LOCK_R (*((volatile unsigned long *)0x40026520)) -#define GPIO_PORTG_CR_R (*((volatile unsigned long *)0x40026524)) - -//***************************************************************************** -// -// PWM registers (PWM) -// -//***************************************************************************** -#define PWM_CTL_R (*((volatile unsigned long *)0x40028000)) -#define PWM_SYNC_R (*((volatile unsigned long *)0x40028004)) -#define PWM_ENABLE_R (*((volatile unsigned long *)0x40028008)) -#define PWM_INVERT_R (*((volatile unsigned long *)0x4002800C)) -#define PWM_FAULT_R (*((volatile unsigned long *)0x40028010)) -#define PWM_INTEN_R (*((volatile unsigned long *)0x40028014)) -#define PWM_RIS_R (*((volatile unsigned long *)0x40028018)) -#define PWM_ISC_R (*((volatile unsigned long *)0x4002801C)) -#define PWM_STATUS_R (*((volatile unsigned long *)0x40028020)) -#define PWM_0_CTL_R (*((volatile unsigned long *)0x40028040)) -#define PWM_0_INTEN_R (*((volatile unsigned long *)0x40028044)) -#define PWM_0_RIS_R (*((volatile unsigned long *)0x40028048)) -#define PWM_0_ISC_R (*((volatile unsigned long *)0x4002804C)) -#define PWM_0_LOAD_R (*((volatile unsigned long *)0x40028050)) -#define PWM_0_COUNT_R (*((volatile unsigned long *)0x40028054)) -#define PWM_0_CMPA_R (*((volatile unsigned long *)0x40028058)) -#define PWM_0_CMPB_R (*((volatile unsigned long *)0x4002805C)) -#define PWM_0_GENA_R (*((volatile unsigned long *)0x40028060)) -#define PWM_0_GENB_R (*((volatile unsigned long *)0x40028064)) -#define PWM_0_DBCTL_R (*((volatile unsigned long *)0x40028068)) -#define PWM_0_DBRISE_R (*((volatile unsigned long *)0x4002806C)) -#define PWM_0_DBFALL_R (*((volatile unsigned long *)0x40028070)) -#define PWM_1_CTL_R (*((volatile unsigned long *)0x40028080)) -#define PWM_1_INTEN_R (*((volatile unsigned long *)0x40028084)) -#define PWM_1_RIS_R (*((volatile unsigned long *)0x40028088)) -#define PWM_1_ISC_R (*((volatile unsigned long *)0x4002808C)) -#define PWM_1_LOAD_R (*((volatile unsigned long *)0x40028090)) -#define PWM_1_COUNT_R (*((volatile unsigned long *)0x40028094)) -#define PWM_1_CMPA_R (*((volatile unsigned long *)0x40028098)) -#define PWM_1_CMPB_R (*((volatile unsigned long *)0x4002809C)) -#define PWM_1_GENA_R (*((volatile unsigned long *)0x400280A0)) -#define PWM_1_GENB_R (*((volatile unsigned long *)0x400280A4)) -#define PWM_1_DBCTL_R (*((volatile unsigned long *)0x400280A8)) -#define PWM_1_DBRISE_R (*((volatile unsigned long *)0x400280AC)) -#define PWM_1_DBFALL_R (*((volatile unsigned long *)0x400280B0)) -#define PWM_2_CTL_R (*((volatile unsigned long *)0x400280C0)) -#define PWM_2_INTEN_R (*((volatile unsigned long *)0x400280C4)) -#define PWM_2_RIS_R (*((volatile unsigned long *)0x400280C8)) -#define PWM_2_ISC_R (*((volatile unsigned long *)0x400280CC)) -#define PWM_2_LOAD_R (*((volatile unsigned long *)0x400280D0)) -#define PWM_2_COUNT_R (*((volatile unsigned long *)0x400280D4)) -#define PWM_2_CMPA_R (*((volatile unsigned long *)0x400280D8)) -#define PWM_2_CMPB_R (*((volatile unsigned long *)0x400280DC)) -#define PWM_2_GENA_R (*((volatile unsigned long *)0x400280E0)) -#define PWM_2_GENB_R (*((volatile unsigned long *)0x400280E4)) -#define PWM_2_DBCTL_R (*((volatile unsigned long *)0x400280E8)) -#define PWM_2_DBRISE_R (*((volatile unsigned long *)0x400280EC)) -#define PWM_2_DBFALL_R (*((volatile unsigned long *)0x400280F0)) - -//***************************************************************************** -// -// QEI registers (QEI0) -// -//***************************************************************************** -#define QEI0_CTL_R (*((volatile unsigned long *)0x4002C000)) -#define QEI0_STAT_R (*((volatile unsigned long *)0x4002C004)) -#define QEI0_POS_R (*((volatile unsigned long *)0x4002C008)) -#define QEI0_MAXPOS_R (*((volatile unsigned long *)0x4002C00C)) -#define QEI0_LOAD_R (*((volatile unsigned long *)0x4002C010)) -#define QEI0_TIME_R (*((volatile unsigned long *)0x4002C014)) -#define QEI0_COUNT_R (*((volatile unsigned long *)0x4002C018)) -#define QEI0_SPEED_R (*((volatile unsigned long *)0x4002C01C)) -#define QEI0_INTEN_R (*((volatile unsigned long *)0x4002C020)) -#define QEI0_RIS_R (*((volatile unsigned long *)0x4002C024)) -#define QEI0_ISC_R (*((volatile unsigned long *)0x4002C028)) - -//***************************************************************************** -// -// QEI registers (QEI1) -// -//***************************************************************************** -#define QEI1_CTL_R (*((volatile unsigned long *)0x4002D000)) -#define QEI1_STAT_R (*((volatile unsigned long *)0x4002D004)) -#define QEI1_POS_R (*((volatile unsigned long *)0x4002D008)) -#define QEI1_MAXPOS_R (*((volatile unsigned long *)0x4002D00C)) -#define QEI1_LOAD_R (*((volatile unsigned long *)0x4002D010)) -#define QEI1_TIME_R (*((volatile unsigned long *)0x4002D014)) -#define QEI1_COUNT_R (*((volatile unsigned long *)0x4002D018)) -#define QEI1_SPEED_R (*((volatile unsigned long *)0x4002D01C)) -#define QEI1_INTEN_R (*((volatile unsigned long *)0x4002D020)) -#define QEI1_RIS_R (*((volatile unsigned long *)0x4002D024)) -#define QEI1_ISC_R (*((volatile unsigned long *)0x4002D028)) - -//***************************************************************************** -// -// Timer registers (TIMER0) -// -//***************************************************************************** -#define TIMER0_CFG_R (*((volatile unsigned long *)0x40030000)) -#define TIMER0_TAMR_R (*((volatile unsigned long *)0x40030004)) -#define TIMER0_TBMR_R (*((volatile unsigned long *)0x40030008)) -#define TIMER0_CTL_R (*((volatile unsigned long *)0x4003000C)) -#define TIMER0_IMR_R (*((volatile unsigned long *)0x40030018)) -#define TIMER0_RIS_R (*((volatile unsigned long *)0x4003001C)) -#define TIMER0_MIS_R (*((volatile unsigned long *)0x40030020)) -#define TIMER0_ICR_R (*((volatile unsigned long *)0x40030024)) -#define TIMER0_TAILR_R (*((volatile unsigned long *)0x40030028)) -#define TIMER0_TBILR_R (*((volatile unsigned long *)0x4003002C)) -#define TIMER0_TAMATCHR_R (*((volatile unsigned long *)0x40030030)) -#define TIMER0_TBMATCHR_R (*((volatile unsigned long *)0x40030034)) -#define TIMER0_TAPR_R (*((volatile unsigned long *)0x40030038)) -#define TIMER0_TBPR_R (*((volatile unsigned long *)0x4003003C)) -#define TIMER0_TAPMR_R (*((volatile unsigned long *)0x40030040)) -#define TIMER0_TBPMR_R (*((volatile unsigned long *)0x40030044)) -#define TIMER0_TAR_R (*((volatile unsigned long *)0x40030048)) -#define TIMER0_TBR_R (*((volatile unsigned long *)0x4003004C)) - -//***************************************************************************** -// -// Timer registers (TIMER1) -// -//***************************************************************************** -#define TIMER1_CFG_R (*((volatile unsigned long *)0x40031000)) -#define TIMER1_TAMR_R (*((volatile unsigned long *)0x40031004)) -#define TIMER1_TBMR_R (*((volatile unsigned long *)0x40031008)) -#define TIMER1_CTL_R (*((volatile unsigned long *)0x4003100C)) -#define TIMER1_IMR_R (*((volatile unsigned long *)0x40031018)) -#define TIMER1_RIS_R (*((volatile unsigned long *)0x4003101C)) -#define TIMER1_MIS_R (*((volatile unsigned long *)0x40031020)) -#define TIMER1_ICR_R (*((volatile unsigned long *)0x40031024)) -#define TIMER1_TAILR_R (*((volatile unsigned long *)0x40031028)) -#define TIMER1_TBILR_R (*((volatile unsigned long *)0x4003102C)) -#define TIMER1_TAMATCHR_R (*((volatile unsigned long *)0x40031030)) -#define TIMER1_TBMATCHR_R (*((volatile unsigned long *)0x40031034)) -#define TIMER1_TAPR_R (*((volatile unsigned long *)0x40031038)) -#define TIMER1_TBPR_R (*((volatile unsigned long *)0x4003103C)) -#define TIMER1_TAPMR_R (*((volatile unsigned long *)0x40031040)) -#define TIMER1_TBPMR_R (*((volatile unsigned long *)0x40031044)) -#define TIMER1_TAR_R (*((volatile unsigned long *)0x40031048)) -#define TIMER1_TBR_R (*((volatile unsigned long *)0x4003104C)) - -//***************************************************************************** -// -// Timer registers (TIMER2) -// -//***************************************************************************** -#define TIMER2_CFG_R (*((volatile unsigned long *)0x40032000)) -#define TIMER2_TAMR_R (*((volatile unsigned long *)0x40032004)) -#define TIMER2_TBMR_R (*((volatile unsigned long *)0x40032008)) -#define TIMER2_CTL_R (*((volatile unsigned long *)0x4003200C)) -#define TIMER2_IMR_R (*((volatile unsigned long *)0x40032018)) -#define TIMER2_RIS_R (*((volatile unsigned long *)0x4003201C)) -#define TIMER2_MIS_R (*((volatile unsigned long *)0x40032020)) -#define TIMER2_ICR_R (*((volatile unsigned long *)0x40032024)) -#define TIMER2_TAILR_R (*((volatile unsigned long *)0x40032028)) -#define TIMER2_TBILR_R (*((volatile unsigned long *)0x4003202C)) -#define TIMER2_TAMATCHR_R (*((volatile unsigned long *)0x40032030)) -#define TIMER2_TBMATCHR_R (*((volatile unsigned long *)0x40032034)) -#define TIMER2_TAPR_R (*((volatile unsigned long *)0x40032038)) -#define TIMER2_TBPR_R (*((volatile unsigned long *)0x4003203C)) -#define TIMER2_TAPMR_R (*((volatile unsigned long *)0x40032040)) -#define TIMER2_TBPMR_R (*((volatile unsigned long *)0x40032044)) -#define TIMER2_TAR_R (*((volatile unsigned long *)0x40032048)) -#define TIMER2_TBR_R (*((volatile unsigned long *)0x4003204C)) - -//***************************************************************************** -// -// Timer registers (TIMER3) -// -//***************************************************************************** -#define TIMER3_CFG_R (*((volatile unsigned long *)0x40033000)) -#define TIMER3_TAMR_R (*((volatile unsigned long *)0x40033004)) -#define TIMER3_TBMR_R (*((volatile unsigned long *)0x40033008)) -#define TIMER3_CTL_R (*((volatile unsigned long *)0x4003300C)) -#define TIMER3_IMR_R (*((volatile unsigned long *)0x40033018)) -#define TIMER3_RIS_R (*((volatile unsigned long *)0x4003301C)) -#define TIMER3_MIS_R (*((volatile unsigned long *)0x40033020)) -#define TIMER3_ICR_R (*((volatile unsigned long *)0x40033024)) -#define TIMER3_TAILR_R (*((volatile unsigned long *)0x40033028)) -#define TIMER3_TBILR_R (*((volatile unsigned long *)0x4003302C)) -#define TIMER3_TAMATCHR_R (*((volatile unsigned long *)0x40033030)) -#define TIMER3_TBMATCHR_R (*((volatile unsigned long *)0x40033034)) -#define TIMER3_TAPR_R (*((volatile unsigned long *)0x40033038)) -#define TIMER3_TBPR_R (*((volatile unsigned long *)0x4003303C)) -#define TIMER3_TAPMR_R (*((volatile unsigned long *)0x40033040)) -#define TIMER3_TBPMR_R (*((volatile unsigned long *)0x40033044)) -#define TIMER3_TAR_R (*((volatile unsigned long *)0x40033048)) -#define TIMER3_TBR_R (*((volatile unsigned long *)0x4003304C)) - -//***************************************************************************** -// -// ADC registers (ADC0) -// -//***************************************************************************** -#define ADC0_ACTSS_R (*((volatile unsigned long *)0x40038000)) -#define ADC0_RIS_R (*((volatile unsigned long *)0x40038004)) -#define ADC0_IM_R (*((volatile unsigned long *)0x40038008)) -#define ADC0_ISC_R (*((volatile unsigned long *)0x4003800C)) -#define ADC0_OSTAT_R (*((volatile unsigned long *)0x40038010)) -#define ADC0_EMUX_R (*((volatile unsigned long *)0x40038014)) -#define ADC0_USTAT_R (*((volatile unsigned long *)0x40038018)) -#define ADC0_SSPRI_R (*((volatile unsigned long *)0x40038020)) -#define ADC0_PSSI_R (*((volatile unsigned long *)0x40038028)) -#define ADC0_SAC_R (*((volatile unsigned long *)0x40038030)) -#define ADC0_SSMUX0_R (*((volatile unsigned long *)0x40038040)) -#define ADC0_SSCTL0_R (*((volatile unsigned long *)0x40038044)) -#define ADC0_SSFIFO0_R (*((volatile unsigned long *)0x40038048)) -#define ADC0_SSFSTAT0_R (*((volatile unsigned long *)0x4003804C)) -#define ADC0_SSMUX1_R (*((volatile unsigned long *)0x40038060)) -#define ADC0_SSCTL1_R (*((volatile unsigned long *)0x40038064)) -#define ADC0_SSFIFO1_R (*((volatile unsigned long *)0x40038068)) -#define ADC0_SSFSTAT1_R (*((volatile unsigned long *)0x4003806C)) -#define ADC0_SSMUX2_R (*((volatile unsigned long *)0x40038080)) -#define ADC0_SSCTL2_R (*((volatile unsigned long *)0x40038084)) -#define ADC0_SSFIFO2_R (*((volatile unsigned long *)0x40038088)) -#define ADC0_SSFSTAT2_R (*((volatile unsigned long *)0x4003808C)) -#define ADC0_SSMUX3_R (*((volatile unsigned long *)0x400380A0)) -#define ADC0_SSCTL3_R (*((volatile unsigned long *)0x400380A4)) -#define ADC0_SSFIFO3_R (*((volatile unsigned long *)0x400380A8)) -#define ADC0_SSFSTAT3_R (*((volatile unsigned long *)0x400380AC)) -#define ADC0_TMLB_R (*((volatile unsigned long *)0x40038100)) - -//***************************************************************************** -// -// Comparator registers (COMP) -// -//***************************************************************************** -#define COMP_ACMIS_R (*((volatile unsigned long *)0x4003C000)) -#define COMP_ACRIS_R (*((volatile unsigned long *)0x4003C004)) -#define COMP_ACINTEN_R (*((volatile unsigned long *)0x4003C008)) -#define COMP_ACREFCTL_R (*((volatile unsigned long *)0x4003C010)) -#define COMP_ACSTAT0_R (*((volatile unsigned long *)0x4003C020)) -#define COMP_ACCTL0_R (*((volatile unsigned long *)0x4003C024)) - -//***************************************************************************** -// -// CAN registers (CAN0) -// -//***************************************************************************** -#define CAN0_CTL_R (*((volatile unsigned long *)0x40040000)) -#define CAN0_STS_R (*((volatile unsigned long *)0x40040004)) -#define CAN0_ERR_R (*((volatile unsigned long *)0x40040008)) -#define CAN0_BIT_R (*((volatile unsigned long *)0x4004000C)) -#define CAN0_INT_R (*((volatile unsigned long *)0x40040010)) -#define CAN0_TST_R (*((volatile unsigned long *)0x40040014)) -#define CAN0_BRPE_R (*((volatile unsigned long *)0x40040018)) -#define CAN0_IF1CRQ_R (*((volatile unsigned long *)0x40040020)) -#define CAN0_IF1CMSK_R (*((volatile unsigned long *)0x40040024)) -#define CAN0_IF1MSK1_R (*((volatile unsigned long *)0x40040028)) -#define CAN0_IF1MSK2_R (*((volatile unsigned long *)0x4004002C)) -#define CAN0_IF1ARB1_R (*((volatile unsigned long *)0x40040030)) -#define CAN0_IF1ARB2_R (*((volatile unsigned long *)0x40040034)) -#define CAN0_IF1MCTL_R (*((volatile unsigned long *)0x40040038)) -#define CAN0_IF1DA1_R (*((volatile unsigned long *)0x4004003C)) -#define CAN0_IF1DA2_R (*((volatile unsigned long *)0x40040040)) -#define CAN0_IF1DB1_R (*((volatile unsigned long *)0x40040044)) -#define CAN0_IF1DB2_R (*((volatile unsigned long *)0x40040048)) -#define CAN0_IF2CRQ_R (*((volatile unsigned long *)0x40040080)) -#define CAN0_IF2CMSK_R (*((volatile unsigned long *)0x40040084)) -#define CAN0_IF2MSK1_R (*((volatile unsigned long *)0x40040088)) -#define CAN0_IF2MSK2_R (*((volatile unsigned long *)0x4004008C)) -#define CAN0_IF2ARB1_R (*((volatile unsigned long *)0x40040090)) -#define CAN0_IF2ARB2_R (*((volatile unsigned long *)0x40040094)) -#define CAN0_IF2MCTL_R (*((volatile unsigned long *)0x40040098)) -#define CAN0_IF2DA1_R (*((volatile unsigned long *)0x4004009C)) -#define CAN0_IF2DA2_R (*((volatile unsigned long *)0x400400A0)) -#define CAN0_IF2DB1_R (*((volatile unsigned long *)0x400400A4)) -#define CAN0_IF2DB2_R (*((volatile unsigned long *)0x400400A8)) -#define CAN0_TXRQ1_R (*((volatile unsigned long *)0x40040100)) -#define CAN0_TXRQ2_R (*((volatile unsigned long *)0x40040104)) -#define CAN0_NWDA1_R (*((volatile unsigned long *)0x40040120)) -#define CAN0_NWDA2_R (*((volatile unsigned long *)0x40040124)) -#define CAN0_MSG1INT_R (*((volatile unsigned long *)0x40040140)) -#define CAN0_MSG2INT_R (*((volatile unsigned long *)0x40040144)) -#define CAN0_MSG1VAL_R (*((volatile unsigned long *)0x40040160)) -#define CAN0_MSG2VAL_R (*((volatile unsigned long *)0x40040164)) - -//***************************************************************************** -// -// Ethernet MAC registers (MAC) -// -//***************************************************************************** -#define MAC_RIS_R (*((volatile unsigned long *)0x40048000)) -#define MAC_IACK_R (*((volatile unsigned long *)0x40048000)) -#define MAC_IM_R (*((volatile unsigned long *)0x40048004)) -#define MAC_RCTL_R (*((volatile unsigned long *)0x40048008)) -#define MAC_TCTL_R (*((volatile unsigned long *)0x4004800C)) -#define MAC_DATA_R (*((volatile unsigned long *)0x40048010)) -#define MAC_IA0_R (*((volatile unsigned long *)0x40048014)) -#define MAC_IA1_R (*((volatile unsigned long *)0x40048018)) -#define MAC_THR_R (*((volatile unsigned long *)0x4004801C)) -#define MAC_MCTL_R (*((volatile unsigned long *)0x40048020)) -#define MAC_MDV_R (*((volatile unsigned long *)0x40048024)) -#define MAC_MTXD_R (*((volatile unsigned long *)0x4004802C)) -#define MAC_MRXD_R (*((volatile unsigned long *)0x40048030)) -#define MAC_NP_R (*((volatile unsigned long *)0x40048034)) -#define MAC_TR_R (*((volatile unsigned long *)0x40048038)) -#define MAC_TS_R (*((volatile unsigned long *)0x4004803C)) - -//***************************************************************************** -// -// Ethernet Controller PHY registers (MAC) -// -//***************************************************************************** -#define PHY_MR0 0x00000000 // Ethernet PHY Management Register - // 0 - Control -#define PHY_MR1 0x00000001 // Ethernet PHY Management Register - // 1 - Status -#define PHY_MR2 0x00000002 // Ethernet PHY Management Register - // 2 - PHY Identifier 1 -#define PHY_MR3 0x00000003 // Ethernet PHY Management Register - // 3 - PHY Identifier 2 -#define PHY_MR4 0x00000004 // Ethernet PHY Management Register - // 4 - Auto-Negotiation - // Advertisement -#define PHY_MR5 0x00000005 // Ethernet PHY Management Register - // 5 - Auto-Negotiation Link - // Partner Base Page Ability -#define PHY_MR6 0x00000006 // Ethernet PHY Management Register - // 6 - Auto-Negotiation Expansion -#define PHY_MR16 0x00000010 // Ethernet PHY Management Register - // 16 - Vendor-Specific -#define PHY_MR17 0x00000011 // Ethernet PHY Management Register - // 17 - Mode Control/Status -#define PHY_MR18 0x00000012 // Ethernet PHY Management Register - // 18 - Diagnostic -#define PHY_MR19 0x00000013 // Ethernet PHY Management Register - // 19 - Transceiver Control -#define PHY_MR23 0x00000017 // Ethernet PHY Management Register - // 23 - LED Configuration -#define PHY_MR24 0x00000018 // Ethernet PHY Management Register - // 24 -MDI/MDIX Control - -//***************************************************************************** -// -// Hibernation module registers (HIB) -// -//***************************************************************************** -#define HIB_RTCC_R (*((volatile unsigned long *)0x400FC000)) -#define HIB_RTCM0_R (*((volatile unsigned long *)0x400FC004)) -#define HIB_RTCM1_R (*((volatile unsigned long *)0x400FC008)) -#define HIB_RTCLD_R (*((volatile unsigned long *)0x400FC00C)) -#define HIB_CTL_R (*((volatile unsigned long *)0x400FC010)) -#define HIB_IM_R (*((volatile unsigned long *)0x400FC014)) -#define HIB_RIS_R (*((volatile unsigned long *)0x400FC018)) -#define HIB_MIS_R (*((volatile unsigned long *)0x400FC01C)) -#define HIB_IC_R (*((volatile unsigned long *)0x400FC020)) -#define HIB_RTCT_R (*((volatile unsigned long *)0x400FC024)) -#define HIB_DATA_R (*((volatile unsigned long *)0x400FC030)) - -//***************************************************************************** -// -// FLASH registers (FLASH CTRL) -// -//***************************************************************************** -#define FLASH_FMA_R (*((volatile unsigned long *)0x400FD000)) -#define FLASH_FMD_R (*((volatile unsigned long *)0x400FD004)) -#define FLASH_FMC_R (*((volatile unsigned long *)0x400FD008)) -#define FLASH_FCRIS_R (*((volatile unsigned long *)0x400FD00C)) -#define FLASH_FCIM_R (*((volatile unsigned long *)0x400FD010)) -#define FLASH_FCMISC_R (*((volatile unsigned long *)0x400FD014)) -#define FLASH_USECRL_R (*((volatile unsigned long *)0x400FE140)) -#define FLASH_USERDBG_R (*((volatile unsigned long *)0x400FE1D0)) -#define FLASH_USERREG0_R (*((volatile unsigned long *)0x400FE1E0)) -#define FLASH_USERREG1_R (*((volatile unsigned long *)0x400FE1E4)) -#define FLASH_FMPRE0_R (*((volatile unsigned long *)0x400FE200)) -#define FLASH_FMPRE1_R (*((volatile unsigned long *)0x400FE204)) -#define FLASH_FMPRE2_R (*((volatile unsigned long *)0x400FE208)) -#define FLASH_FMPRE3_R (*((volatile unsigned long *)0x400FE20C)) -#define FLASH_FMPPE0_R (*((volatile unsigned long *)0x400FE400)) -#define FLASH_FMPPE1_R (*((volatile unsigned long *)0x400FE404)) -#define FLASH_FMPPE2_R (*((volatile unsigned long *)0x400FE408)) -#define FLASH_FMPPE3_R (*((volatile unsigned long *)0x400FE40C)) - -//***************************************************************************** -// -// System Control registers (SYSCTL) -// -//***************************************************************************** -#define SYSCTL_DID0_R (*((volatile unsigned long *)0x400FE000)) -#define SYSCTL_DID1_R (*((volatile unsigned long *)0x400FE004)) -#define SYSCTL_DC0_R (*((volatile unsigned long *)0x400FE008)) -#define SYSCTL_DC1_R (*((volatile unsigned long *)0x400FE010)) -#define SYSCTL_DC2_R (*((volatile unsigned long *)0x400FE014)) -#define SYSCTL_DC3_R (*((volatile unsigned long *)0x400FE018)) -#define SYSCTL_DC4_R (*((volatile unsigned long *)0x400FE01C)) -#define SYSCTL_PBORCTL_R (*((volatile unsigned long *)0x400FE030)) -#define SYSCTL_LDOPCTL_R (*((volatile unsigned long *)0x400FE034)) -#define SYSCTL_SRCR0_R (*((volatile unsigned long *)0x400FE040)) -#define SYSCTL_SRCR1_R (*((volatile unsigned long *)0x400FE044)) -#define SYSCTL_SRCR2_R (*((volatile unsigned long *)0x400FE048)) -#define SYSCTL_RIS_R (*((volatile unsigned long *)0x400FE050)) -#define SYSCTL_IMC_R (*((volatile unsigned long *)0x400FE054)) -#define SYSCTL_MISC_R (*((volatile unsigned long *)0x400FE058)) -#define SYSCTL_RESC_R (*((volatile unsigned long *)0x400FE05C)) -#define SYSCTL_RCC_R (*((volatile unsigned long *)0x400FE060)) -#define SYSCTL_PLLCFG_R (*((volatile unsigned long *)0x400FE064)) -#define SYSCTL_RCC2_R (*((volatile unsigned long *)0x400FE070)) -#define SYSCTL_RCGC0_R (*((volatile unsigned long *)0x400FE100)) -#define SYSCTL_RCGC1_R (*((volatile unsigned long *)0x400FE104)) -#define SYSCTL_RCGC2_R (*((volatile unsigned long *)0x400FE108)) -#define SYSCTL_SCGC0_R (*((volatile unsigned long *)0x400FE110)) -#define SYSCTL_SCGC1_R (*((volatile unsigned long *)0x400FE114)) -#define SYSCTL_SCGC2_R (*((volatile unsigned long *)0x400FE118)) -#define SYSCTL_DCGC0_R (*((volatile unsigned long *)0x400FE120)) -#define SYSCTL_DCGC1_R (*((volatile unsigned long *)0x400FE124)) -#define SYSCTL_DCGC2_R (*((volatile unsigned long *)0x400FE128)) -#define SYSCTL_DSLPCLKCFG_R (*((volatile unsigned long *)0x400FE144)) - -//***************************************************************************** -// -// NVIC registers (NVIC) -// -//***************************************************************************** -#define NVIC_INT_TYPE_R (*((volatile unsigned long *)0xE000E004)) -#define NVIC_ST_CTRL_R (*((volatile unsigned long *)0xE000E010)) -#define NVIC_ST_RELOAD_R (*((volatile unsigned long *)0xE000E014)) -#define NVIC_ST_CURRENT_R (*((volatile unsigned long *)0xE000E018)) -#define NVIC_ST_CAL_R (*((volatile unsigned long *)0xE000E01C)) -#define NVIC_EN0_R (*((volatile unsigned long *)0xE000E100)) -#define NVIC_EN1_R (*((volatile unsigned long *)0xE000E104)) -#define NVIC_DIS0_R (*((volatile unsigned long *)0xE000E180)) -#define NVIC_DIS1_R (*((volatile unsigned long *)0xE000E184)) -#define NVIC_PEND0_R (*((volatile unsigned long *)0xE000E200)) -#define NVIC_PEND1_R (*((volatile unsigned long *)0xE000E204)) -#define NVIC_UNPEND0_R (*((volatile unsigned long *)0xE000E280)) -#define NVIC_UNPEND1_R (*((volatile unsigned long *)0xE000E284)) -#define NVIC_ACTIVE0_R (*((volatile unsigned long *)0xE000E300)) -#define NVIC_ACTIVE1_R (*((volatile unsigned long *)0xE000E304)) -#define NVIC_PRI0_R (*((volatile unsigned long *)0xE000E400)) -#define NVIC_PRI1_R (*((volatile unsigned long *)0xE000E404)) -#define NVIC_PRI2_R (*((volatile unsigned long *)0xE000E408)) -#define NVIC_PRI3_R (*((volatile unsigned long *)0xE000E40C)) -#define NVIC_PRI4_R (*((volatile unsigned long *)0xE000E410)) -#define NVIC_PRI5_R (*((volatile unsigned long *)0xE000E414)) -#define NVIC_PRI6_R (*((volatile unsigned long *)0xE000E418)) -#define NVIC_PRI7_R (*((volatile unsigned long *)0xE000E41C)) -#define NVIC_PRI8_R (*((volatile unsigned long *)0xE000E420)) -#define NVIC_PRI9_R (*((volatile unsigned long *)0xE000E424)) -#define NVIC_PRI10_R (*((volatile unsigned long *)0xE000E428)) -#define NVIC_CPUID_R (*((volatile unsigned long *)0xE000ED00)) -#define NVIC_INT_CTRL_R (*((volatile unsigned long *)0xE000ED04)) -#define NVIC_VTABLE_R (*((volatile unsigned long *)0xE000ED08)) -#define NVIC_APINT_R (*((volatile unsigned long *)0xE000ED0C)) -#define NVIC_SYS_CTRL_R (*((volatile unsigned long *)0xE000ED10)) -#define NVIC_CFG_CTRL_R (*((volatile unsigned long *)0xE000ED14)) -#define NVIC_SYS_PRI1_R (*((volatile unsigned long *)0xE000ED18)) -#define NVIC_SYS_PRI2_R (*((volatile unsigned long *)0xE000ED1C)) -#define NVIC_SYS_PRI3_R (*((volatile unsigned long *)0xE000ED20)) -#define NVIC_SYS_HND_CTRL_R (*((volatile unsigned long *)0xE000ED24)) -#define NVIC_FAULT_STAT_R (*((volatile unsigned long *)0xE000ED28)) -#define NVIC_HFAULT_STAT_R (*((volatile unsigned long *)0xE000ED2C)) -#define NVIC_DEBUG_STAT_R (*((volatile unsigned long *)0xE000ED30)) -#define NVIC_MM_ADDR_R (*((volatile unsigned long *)0xE000ED34)) -#define NVIC_FAULT_ADDR_R (*((volatile unsigned long *)0xE000ED38)) -#define NVIC_MPU_TYPE_R (*((volatile unsigned long *)0xE000ED90)) -#define NVIC_MPU_CTRL_R (*((volatile unsigned long *)0xE000ED94)) -#define NVIC_MPU_NUMBER_R (*((volatile unsigned long *)0xE000ED98)) -#define NVIC_MPU_BASE_R (*((volatile unsigned long *)0xE000ED9C)) -#define NVIC_MPU_ATTR_R (*((volatile unsigned long *)0xE000EDA0)) -#define NVIC_DBG_CTRL_R (*((volatile unsigned long *)0xE000EDF0)) -#define NVIC_DBG_XFER_R (*((volatile unsigned long *)0xE000EDF4)) -#define NVIC_DBG_DATA_R (*((volatile unsigned long *)0xE000EDF8)) -#define NVIC_DBG_INT_R (*((volatile unsigned long *)0xE000EDFC)) -#define NVIC_SW_TRIG_R (*((volatile unsigned long *)0xE000EF00)) - -//***************************************************************************** -// -// 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_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_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 0x1ACCE551 // Unlocks the GPIO_CR register - -//***************************************************************************** -// -// 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 // Texas Instruments 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_SOD 0x00000008 // SSI Slave Mode Output Disable -#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 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 - -//***************************************************************************** -// -// 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_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_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_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 - -//***************************************************************************** -// -// The following are defines for the bit fields in the UART_O_RIS register. -// -//***************************************************************************** -#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 - -//***************************************************************************** -// -// The following are defines for the bit fields in the UART_O_MIS register. -// -//***************************************************************************** -#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 - -//***************************************************************************** -// -// The following are defines for the bit fields in the UART_O_ICR register. -// -//***************************************************************************** -#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 - -//***************************************************************************** -// -// 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_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_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_MCS register. -// -//***************************************************************************** -#define I2C_MCS_BUSBSY 0x00000040 // Bus Busy -#define I2C_MCS_IDLE 0x00000020 // I2C Idle -#define I2C_MCS_ARBLST 0x00000010 // Arbitration Lost -#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_START 0x00000002 // Generate START -#define I2C_MCS_ERROR 0x00000002 // Error -#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_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_MDR register. -// -//***************************************************************************** -#define I2C_MDR_DATA_M 0x000000FF // Data Transferred -#define I2C_MDR_DATA_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the I2C_O_MTPR register. -// -//***************************************************************************** -#define I2C_MTPR_TPR_M 0x0000007F // SCL Clock Period -#define I2C_MTPR_TPR_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the I2C_O_SIMR register. -// -//***************************************************************************** -#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_DATARIS 0x00000001 // Data Raw Interrupt Status - -//***************************************************************************** -// -// The following are defines for the bit fields in the I2C_O_MIMR register. -// -//***************************************************************************** -#define I2C_MIMR_IM 0x00000001 // Interrupt Mask - -//***************************************************************************** -// -// The following are defines for the bit fields in the I2C_O_MRIS register. -// -//***************************************************************************** -#define I2C_MRIS_RIS 0x00000001 // Raw Interrupt Status - -//***************************************************************************** -// -// The following are defines for the bit fields in the I2C_O_SMIS register. -// -//***************************************************************************** -#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_DATAIC 0x00000001 // Data Interrupt Clear - -//***************************************************************************** -// -// The following are defines for the bit fields in the I2C_O_MMIS register. -// -//***************************************************************************** -#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_IC 0x00000001 // Interrupt Clear - -//***************************************************************************** -// -// The following are defines for the bit fields in the I2C_O_MCR register. -// -//***************************************************************************** -#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 PWM_O_CTL register. -// -//***************************************************************************** -#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_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_PWM5EN 0x00000020 // PWM5 Output Enable -#define PWM_ENABLE_PWM4EN 0x00000010 // PWM4 Output Enable -#define PWM_ENABLE_PWM3EN 0x00000008 // PWM3 Output Enable -#define PWM_ENABLE_PWM2EN 0x00000004 // PWM2 Output Enable -#define PWM_ENABLE_PWM1EN 0x00000002 // PWM1 Output Enable -#define PWM_ENABLE_PWM0EN 0x00000001 // PWM0 Output Enable - -//***************************************************************************** -// -// The following are defines for the bit fields in the PWM_O_INVERT register. -// -//***************************************************************************** -#define PWM_INVERT_PWM5INV 0x00000020 // Invert PWM5 Signal -#define PWM_INVERT_PWM4INV 0x00000010 // Invert PWM4 Signal -#define PWM_INVERT_PWM3INV 0x00000008 // Invert PWM3 Signal -#define PWM_INVERT_PWM2INV 0x00000004 // Invert PWM2 Signal -#define PWM_INVERT_PWM1INV 0x00000002 // Invert PWM1 Signal -#define PWM_INVERT_PWM0INV 0x00000001 // Invert PWM0 Signal - -//***************************************************************************** -// -// The following are defines for the bit fields in the PWM_O_FAULT register. -// -//***************************************************************************** -#define PWM_FAULT_FAULT5 0x00000020 // PWM5 Fault -#define PWM_FAULT_FAULT4 0x00000010 // PWM4 Fault -#define PWM_FAULT_FAULT3 0x00000008 // PWM3 Fault -#define PWM_FAULT_FAULT2 0x00000004 // PWM2 Fault -#define PWM_FAULT_FAULT1 0x00000002 // PWM1 Fault -#define PWM_FAULT_FAULT0 0x00000001 // PWM0 Fault - -//***************************************************************************** -// -// The following are defines for the bit fields in the PWM_O_INTEN register. -// -//***************************************************************************** -#define PWM_INTEN_INTFAULT 0x00010000 // Fault 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_INTFAULT 0x00010000 // Fault 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_INTFAULT 0x00010000 // Fault Interrupt Asserted -#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_FAULT 0x00000001 // Fault Interrupt Status - -//***************************************************************************** -// -// The following are defines for the bit fields in the PWM_O_X_CTL register. -// -//***************************************************************************** -#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 QEI_O_CTL register. -// -//***************************************************************************** -#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 - -//***************************************************************************** -// -// 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 // 32-bit timer configuration -#define TIMER_CFG_32_BIT_RTC 0x00000001 // 32-bit real-time clock (RTC) - // counter configuration -#define TIMER_CFG_16_BIT 0x00000004 // 16-bit timer configuration. The - // function is controlled by bits - // 1:0 of GPTMTAMR and GPTMTBMR - -//***************************************************************************** -// -// The following are defines for the bit fields in the TIMER_O_TAMR register. -// -//***************************************************************************** -#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_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 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_IMR register. -// -//***************************************************************************** -#define TIMER_IMR_CBEIM 0x00000400 // GPTM Capture B Event Interrupt - // Mask -#define TIMER_IMR_CBMIM 0x00000200 // GPTM Capture B Match Interrupt - // Mask -#define TIMER_IMR_TBTOIM 0x00000100 // GPTM Timer B Time-Out Interrupt - // Mask -#define TIMER_IMR_RTCIM 0x00000008 // GPTM RTC Interrupt Mask -#define TIMER_IMR_CAEIM 0x00000004 // GPTM Capture A Event Interrupt - // Mask -#define TIMER_IMR_CAMIM 0x00000002 // GPTM Capture A 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_CBERIS 0x00000400 // GPTM Capture B Event Raw - // Interrupt -#define TIMER_RIS_CBMRIS 0x00000200 // GPTM Capture B Match Raw - // Interrupt -#define TIMER_RIS_TBTORIS 0x00000100 // GPTM Timer B Time-Out Raw - // Interrupt -#define TIMER_RIS_RTCRIS 0x00000008 // GPTM RTC Raw Interrupt -#define TIMER_RIS_CAERIS 0x00000004 // GPTM Capture A Event Raw - // Interrupt -#define TIMER_RIS_CAMRIS 0x00000002 // GPTM Capture A 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_CBEMIS 0x00000400 // GPTM Capture B Event Masked - // Interrupt -#define TIMER_MIS_CBMMIS 0x00000200 // GPTM Capture B Match Masked - // Interrupt -#define TIMER_MIS_TBTOMIS 0x00000100 // GPTM Timer B Time-Out Masked - // Interrupt -#define TIMER_MIS_RTCMIS 0x00000008 // GPTM RTC Masked Interrupt -#define TIMER_MIS_CAEMIS 0x00000004 // GPTM Capture A Event Masked - // Interrupt -#define TIMER_MIS_CAMMIS 0x00000002 // GPTM Capture A 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_CBECINT 0x00000400 // GPTM Capture B Event Interrupt - // Clear -#define TIMER_ICR_CBMCINT 0x00000200 // GPTM Capture B Match Interrupt - // Clear -#define TIMER_ICR_TBTOCINT 0x00000100 // GPTM Timer B Time-Out Interrupt - // Clear -#define TIMER_ICR_RTCCINT 0x00000008 // GPTM RTC Interrupt Clear -#define TIMER_ICR_CAECINT 0x00000004 // GPTM Capture A Event Interrupt - // Clear -#define TIMER_ICR_CAMCINT 0x00000002 // GPTM Capture A 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_TAILRH_M 0xFFFF0000 // GPTM Timer A Interval Load - // Register High -#define TIMER_TAILR_TAILRL_M 0x0000FFFF // GPTM Timer A Interval Load - // Register Low -#define TIMER_TAILR_TAILRH_S 16 -#define TIMER_TAILR_TAILRL_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the TIMER_O_TBILR register. -// -//***************************************************************************** -#define TIMER_TBILR_TBILRL_M 0x0000FFFF // GPTM Timer B Interval Load - // Register -#define TIMER_TBILR_TBILRL_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the TIMER_O_TAMATCHR -// register. -// -//***************************************************************************** -#define TIMER_TAMATCHR_TAMRH_M 0xFFFF0000 // GPTM Timer A Match Register High -#define TIMER_TAMATCHR_TAMRL_M 0x0000FFFF // GPTM Timer A Match Register Low -#define TIMER_TAMATCHR_TAMRH_S 16 -#define TIMER_TAMATCHR_TAMRL_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the TIMER_O_TBMATCHR -// register. -// -//***************************************************************************** -#define TIMER_TBMATCHR_TBMRL_M 0x0000FFFF // GPTM Timer B Match Register Low -#define TIMER_TBMATCHR_TBMRL_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the TIMER_O_TAPR register. -// -//***************************************************************************** -#define TIMER_TAPR_TAPSR_M 0x000000FF // GPTM Timer A Prescale -#define TIMER_TAPR_TAPSR_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the TIMER_O_TBPR register. -// -//***************************************************************************** -#define TIMER_TBPR_TBPSR_M 0x000000FF // GPTM Timer B Prescale -#define TIMER_TBPR_TBPSR_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the TIMER_O_TAPMR register. -// -//***************************************************************************** -#define TIMER_TAPMR_TAPSMR_M 0x000000FF // GPTM TimerA Prescale Match -#define TIMER_TAPMR_TAPSMR_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the TIMER_O_TBPMR register. -// -//***************************************************************************** -#define TIMER_TBPMR_TBPSMR_M 0x000000FF // GPTM TimerB Prescale Match -#define TIMER_TBPMR_TBPSMR_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the TIMER_O_TAR register. -// -//***************************************************************************** -#define TIMER_TAR_TARH_M 0xFFFF0000 // GPTM Timer A Register High -#define TIMER_TAR_TARL_M 0x0000FFFF // GPTM Timer A Register Low -#define TIMER_TAR_TARH_S 16 -#define TIMER_TAR_TARL_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the TIMER_O_TBR register. -// -//***************************************************************************** -#define TIMER_TBR_TBRL_M 0x0000FFFF // GPTM Timer B -#define TIMER_TBR_TBRL_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the ADC_O_ACTSS register. -// -//***************************************************************************** -#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_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_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_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_EXTERNAL 0x00004000 // External (GPIO PB4) -#define ADC_EMUX_EM3_TIMER 0x00005000 // Timer -#define ADC_EMUX_EM3_PWM0 0x00006000 // PWM0 -#define ADC_EMUX_EM3_PWM1 0x00007000 // PWM1 -#define ADC_EMUX_EM3_PWM2 0x00008000 // PWM2 -#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_EXTERNAL 0x00000400 // External (GPIO PB4) -#define ADC_EMUX_EM2_TIMER 0x00000500 // Timer -#define ADC_EMUX_EM2_PWM0 0x00000600 // PWM0 -#define ADC_EMUX_EM2_PWM1 0x00000700 // PWM1 -#define ADC_EMUX_EM2_PWM2 0x00000800 // PWM2 -#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_EXTERNAL 0x00000040 // External (GPIO PB4) -#define ADC_EMUX_EM1_TIMER 0x00000050 // Timer -#define ADC_EMUX_EM1_PWM0 0x00000060 // PWM0 -#define ADC_EMUX_EM1_PWM1 0x00000070 // PWM1 -#define ADC_EMUX_EM1_PWM2 0x00000080 // PWM2 -#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_EXTERNAL 0x00000004 // External (GPIO PB4) -#define ADC_EMUX_EM0_TIMER 0x00000005 // Timer -#define ADC_EMUX_EM0_PWM0 0x00000006 // PWM0 -#define ADC_EMUX_EM0_PWM1 0x00000007 // PWM1 -#define ADC_EMUX_EM0_PWM2 0x00000008 // PWM2 -#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_SSPRI register. -// -//***************************************************************************** -#define ADC_SSPRI_SS3_M 0x00003000 // SS3 Priority -#define ADC_SSPRI_SS3_1ST 0x00000000 // First priority -#define ADC_SSPRI_SS3_2ND 0x00001000 // Second priority -#define ADC_SSPRI_SS3_3RD 0x00002000 // Third priority -#define ADC_SSPRI_SS3_4TH 0x00003000 // Fourth priority -#define ADC_SSPRI_SS2_M 0x00000300 // SS2 Priority -#define ADC_SSPRI_SS2_1ST 0x00000000 // First priority -#define ADC_SSPRI_SS2_2ND 0x00000100 // Second priority -#define ADC_SSPRI_SS2_3RD 0x00000200 // Third priority -#define ADC_SSPRI_SS2_4TH 0x00000300 // Fourth priority -#define ADC_SSPRI_SS1_M 0x00000030 // SS1 Priority -#define ADC_SSPRI_SS1_1ST 0x00000000 // First priority -#define ADC_SSPRI_SS1_2ND 0x00000010 // Second priority -#define ADC_SSPRI_SS1_3RD 0x00000020 // Third priority -#define ADC_SSPRI_SS1_4TH 0x00000030 // Fourth priority -#define ADC_SSPRI_SS0_M 0x00000003 // SS0 Priority -#define ADC_SSPRI_SS0_1ST 0x00000000 // First priority -#define ADC_SSPRI_SS0_2ND 0x00000001 // Second priority -#define ADC_SSPRI_SS0_3RD 0x00000002 // Third priority -#define ADC_SSPRI_SS0_4TH 0x00000003 // Fourth priority - -//***************************************************************************** -// -// The following are defines for the bit fields in the ADC_O_PSSI register. -// -//***************************************************************************** -#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_SSMUX0 register. -// -//***************************************************************************** -#define ADC_SSMUX0_MUX7_M 0x30000000 // 8th Sample Input Select -#define ADC_SSMUX0_MUX6_M 0x03000000 // 7th Sample Input Select -#define ADC_SSMUX0_MUX5_M 0x00300000 // 6th Sample Input Select -#define ADC_SSMUX0_MUX4_M 0x00030000 // 5th Sample Input Select -#define ADC_SSMUX0_MUX3_M 0x00003000 // 4th Sample Input Select -#define ADC_SSMUX0_MUX2_M 0x00000300 // 3rd Sample Input Select -#define ADC_SSMUX0_MUX1_M 0x00000030 // 2nd Sample Input Select -#define ADC_SSMUX0_MUX0_M 0x00000003 // 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 Diff 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 Diff 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 Diff 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 Diff 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 Diff 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 Diff 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 Diff 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 Diff Input Select - -//***************************************************************************** -// -// The following are defines for the bit fields in the ADC_O_SSFIFO0 register. -// -//***************************************************************************** -#define ADC_SSFIFO0_DATA_M 0x000003FF // 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_SSMUX1 register. -// -//***************************************************************************** -#define ADC_SSMUX1_MUX3_M 0x00003000 // 4th Sample Input Select -#define ADC_SSMUX1_MUX2_M 0x00000300 // 3rd Sample Input Select -#define ADC_SSMUX1_MUX1_M 0x00000030 // 2nd Sample Input Select -#define ADC_SSMUX1_MUX0_M 0x00000003 // 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 Diff 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 Diff 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 Diff 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 Diff Input Select - -//***************************************************************************** -// -// The following are defines for the bit fields in the ADC_O_SSFIFO1 register. -// -//***************************************************************************** -#define ADC_SSFIFO1_DATA_M 0x000003FF // 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_SSMUX2 register. -// -//***************************************************************************** -#define ADC_SSMUX2_MUX3_M 0x00003000 // 4th Sample Input Select -#define ADC_SSMUX2_MUX2_M 0x00000300 // 3rd Sample Input Select -#define ADC_SSMUX2_MUX1_M 0x00000030 // 2nd Sample Input Select -#define ADC_SSMUX2_MUX0_M 0x00000003 // 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 Diff 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 Diff 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 Diff 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 Diff Input Select - -//***************************************************************************** -// -// The following are defines for the bit fields in the ADC_O_SSFIFO2 register. -// -//***************************************************************************** -#define ADC_SSFIFO2_DATA_M 0x000003FF // 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_SSMUX3 register. -// -//***************************************************************************** -#define ADC_SSMUX3_MUX0_M 0x00000003 // 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 // 1st Sample Interrupt Enable -#define ADC_SSCTL3_END0 0x00000002 // 1st Sample is End of Sequence -#define ADC_SSCTL3_D0 0x00000001 // 1st Sample Diff Input Select - -//***************************************************************************** -// -// The following are defines for the bit fields in the ADC_O_SSFIFO3 register. -// -//***************************************************************************** -#define ADC_SSFIFO3_DATA_M 0x000003FF // 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_TMLB register. -// -//***************************************************************************** -#define ADC_TMLB_LB 0x00000001 // Loopback Mode Enable - -//***************************************************************************** -// -// The following are defines for the the interpretation of the data in the -// SSFIFOx when the ADC TMLB is enabled. -// -//***************************************************************************** -#define ADC_SSFIFO_TMLB_CNT_M 0x000003C0 // Continuous Sample Counter -#define ADC_SSFIFO_TMLB_CONT 0x00000020 // Continuation Sample Indicator -#define ADC_SSFIFO_TMLB_DIFF 0x00000010 // Differential Sample Indicator -#define ADC_SSFIFO_TMLB_TS 0x00000008 // Temp Sensor Sample Indicator -#define ADC_SSFIFO_TMLB_MUX_M 0x00000007 // Analog Input Indicator -#define ADC_SSFIFO_TMLB_CNT_S 6 // Sample counter shift -#define ADC_SSFIFO_TMLB_MUX_S 0 // Input channel number shift - -//***************************************************************************** -// -// The following are defines for the bit fields in the COMP_O_ACMIS register. -// -//***************************************************************************** -#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_IN0 0x00000001 // Comparator 0 Interrupt Status - -//***************************************************************************** -// -// The following are defines for the bit fields in the COMP_O_ACINTEN register. -// -//***************************************************************************** -#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 - // (VIREF) -#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 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_RSVD 0x00000000 // 0 is not a valid message number; - // it is interpreted as 0x20, or - // object 32 -#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_RSVD 0x00000000 // 0 is not a valid message number; - // it is interpreted as 0x20, or - // object 32 -#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 MAC_O_RIS register. -// -//***************************************************************************** -#define MAC_RIS_PHYINT 0x00000040 // PHY Interrupt -#define MAC_RIS_MDINT 0x00000020 // MII Transaction Complete -#define MAC_RIS_RXER 0x00000010 // Receive Error -#define MAC_RIS_FOV 0x00000008 // FIFO Overrun -#define MAC_RIS_TXEMP 0x00000004 // Transmit FIFO Empty -#define MAC_RIS_TXER 0x00000002 // Transmit Error -#define MAC_RIS_RXINT 0x00000001 // Packet Received - -//***************************************************************************** -// -// The following are defines for the bit fields in the MAC_O_IACK register. -// -//***************************************************************************** -#define MAC_IACK_PHYINT 0x00000040 // Clear PHY Interrupt -#define MAC_IACK_MDINT 0x00000020 // Clear MII Transaction Complete -#define MAC_IACK_RXER 0x00000010 // Clear Receive Error -#define MAC_IACK_FOV 0x00000008 // Clear FIFO Overrun -#define MAC_IACK_TXEMP 0x00000004 // Clear Transmit FIFO Empty -#define MAC_IACK_TXER 0x00000002 // Clear Transmit Error -#define MAC_IACK_RXINT 0x00000001 // Clear Packet Received - -//***************************************************************************** -// -// The following are defines for the bit fields in the MAC_O_IM register. -// -//***************************************************************************** -#define MAC_IM_PHYINTM 0x00000040 // Mask PHY Interrupt -#define MAC_IM_MDINTM 0x00000020 // Mask MII Transaction Complete -#define MAC_IM_RXERM 0x00000010 // Mask Receive Error -#define MAC_IM_FOVM 0x00000008 // Mask FIFO Overrun -#define MAC_IM_TXEMPM 0x00000004 // Mask Transmit FIFO Empty -#define MAC_IM_TXERM 0x00000002 // Mask Transmit Error -#define MAC_IM_RXINTM 0x00000001 // Mask Packet Received - -//***************************************************************************** -// -// The following are defines for the bit fields in the MAC_O_RCTL register. -// -//***************************************************************************** -#define MAC_RCTL_RSTFIFO 0x00000010 // Clear Receive FIFO -#define MAC_RCTL_BADCRC 0x00000008 // Enable Reject Bad CRC -#define MAC_RCTL_PRMS 0x00000004 // Enable Promiscuous Mode -#define MAC_RCTL_AMUL 0x00000002 // Enable Multicast Frames -#define MAC_RCTL_RXEN 0x00000001 // Enable Receiver - -//***************************************************************************** -// -// The following are defines for the bit fields in the MAC_O_TCTL register. -// -//***************************************************************************** -#define MAC_TCTL_DUPLEX 0x00000010 // Enable Duplex Mode -#define MAC_TCTL_CRC 0x00000004 // Enable CRC Generation -#define MAC_TCTL_PADEN 0x00000002 // Enable Packet Padding -#define MAC_TCTL_TXEN 0x00000001 // Enable Transmitter - -//***************************************************************************** -// -// The following are defines for the bit fields in the MAC_O_DATA register. -// -//***************************************************************************** -#define MAC_DATA_TXDATA_M 0xFFFFFFFF // Transmit FIFO Data -#define MAC_DATA_RXDATA_M 0xFFFFFFFF // Receive FIFO Data -#define MAC_DATA_RXDATA_S 0 -#define MAC_DATA_TXDATA_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the MAC_O_IA0 register. -// -//***************************************************************************** -#define MAC_IA0_MACOCT4_M 0xFF000000 // MAC Address Octet 4 -#define MAC_IA0_MACOCT3_M 0x00FF0000 // MAC Address Octet 3 -#define MAC_IA0_MACOCT2_M 0x0000FF00 // MAC Address Octet 2 -#define MAC_IA0_MACOCT1_M 0x000000FF // MAC Address Octet 1 -#define MAC_IA0_MACOCT4_S 24 -#define MAC_IA0_MACOCT3_S 16 -#define MAC_IA0_MACOCT2_S 8 -#define MAC_IA0_MACOCT1_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the MAC_O_IA1 register. -// -//***************************************************************************** -#define MAC_IA1_MACOCT6_M 0x0000FF00 // MAC Address Octet 6 -#define MAC_IA1_MACOCT5_M 0x000000FF // MAC Address Octet 5 -#define MAC_IA1_MACOCT6_S 8 -#define MAC_IA1_MACOCT5_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the MAC_O_THR register. -// -//***************************************************************************** -#define MAC_THR_THRESH_M 0x0000003F // Threshold Value -#define MAC_THR_THRESH_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the MAC_O_MCTL register. -// -//***************************************************************************** -#define MAC_MCTL_REGADR_M 0x000000F8 // MII Register Address -#define MAC_MCTL_WRITE 0x00000002 // MII Register Transaction Type -#define MAC_MCTL_START 0x00000001 // MII Register Transaction Enable -#define MAC_MCTL_REGADR_S 3 - -//***************************************************************************** -// -// The following are defines for the bit fields in the MAC_O_MDV register. -// -//***************************************************************************** -#define MAC_MDV_DIV_M 0x000000FF // Clock Divider -#define MAC_MDV_DIV_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the MAC_O_MTXD register. -// -//***************************************************************************** -#define MAC_MTXD_MDTX_M 0x0000FFFF // MII Register Transmit Data -#define MAC_MTXD_MDTX_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the MAC_O_MRXD register. -// -//***************************************************************************** -#define MAC_MRXD_MDRX_M 0x0000FFFF // MII Register Receive Data -#define MAC_MRXD_MDRX_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the MAC_O_NP register. -// -//***************************************************************************** -#define MAC_NP_NPR_M 0x0000003F // Number of Packets in Receive - // FIFO -#define MAC_NP_NPR_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the MAC_O_TR register. -// -//***************************************************************************** -#define MAC_TR_NEWTX 0x00000001 // New Transmission - -//***************************************************************************** -// -// The following are defines for the bit fields in the MAC_O_TS register. -// -//***************************************************************************** -#define MAC_TS_TSEN 0x00000001 // Time Stamp Enable - -//***************************************************************************** -// -// The following are defines for the bit fields in the PHY_MR0 register. -// -//***************************************************************************** -#define PHY_MR0_RESET 0x00008000 // Reset Registers -#define PHY_MR0_LOOPBK 0x00004000 // Loopback Mode -#define PHY_MR0_SPEEDSL 0x00002000 // Speed Select -#define PHY_MR0_ANEGEN 0x00001000 // Auto-Negotiation Enable -#define PHY_MR0_PWRDN 0x00000800 // Power Down -#define PHY_MR0_ISO 0x00000400 // Isolate -#define PHY_MR0_RANEG 0x00000200 // Restart Auto-Negotiation -#define PHY_MR0_DUPLEX 0x00000100 // Set Duplex Mode -#define PHY_MR0_COLT 0x00000080 // Collision Test - -//***************************************************************************** -// -// The following are defines for the bit fields in the PHY_MR1 register. -// -//***************************************************************************** -#define PHY_MR1_100X_F 0x00004000 // 100BASE-TX Full-Duplex Mode -#define PHY_MR1_100X_H 0x00002000 // 100BASE-TX Half-Duplex Mode -#define PHY_MR1_10T_F 0x00001000 // 10BASE-T Full-Duplex Mode -#define PHY_MR1_10T_H 0x00000800 // 10BASE-T Half-Duplex Mode -#define PHY_MR1_MFPS 0x00000040 // Management Frames with Preamble - // Suppressed -#define PHY_MR1_ANEGC 0x00000020 // Auto-Negotiation Complete -#define PHY_MR1_RFAULT 0x00000010 // Remote Fault -#define PHY_MR1_ANEGA 0x00000008 // Auto-Negotiation -#define PHY_MR1_LINK 0x00000004 // Link Made -#define PHY_MR1_JAB 0x00000002 // Jabber Condition -#define PHY_MR1_EXTD 0x00000001 // Extended Capabilities - -//***************************************************************************** -// -// The following are defines for the bit fields in the PHY_MR2 register. -// -//***************************************************************************** -#define PHY_MR2_OUI_M 0x0000FFFF // Organizationally Unique - // Identifier[21:6] -#define PHY_MR2_OUI_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the PHY_MR3 register. -// -//***************************************************************************** -#define PHY_MR3_OUI_M 0x0000FC00 // Organizationally Unique - // Identifier[5:0] -#define PHY_MR3_MN_M 0x000003F0 // Model Number -#define PHY_MR3_RN_M 0x0000000F // Revision Number -#define PHY_MR3_OUI_S 10 -#define PHY_MR3_MN_S 4 -#define PHY_MR3_RN_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the PHY_MR4 register. -// -//***************************************************************************** -#define PHY_MR4_NP 0x00008000 // Next Page -#define PHY_MR4_RF 0x00002000 // Remote Fault -#define PHY_MR4_A3 0x00000100 // Technology Ability Field [3] -#define PHY_MR4_A2 0x00000080 // Technology Ability Field [2] -#define PHY_MR4_A1 0x00000040 // Technology Ability Field [1] -#define PHY_MR4_A0 0x00000020 // Technology Ability Field [0] -#define PHY_MR4_S_M 0x0000001F // Selector Field -#define PHY_MR4_S_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the PHY_MR5 register. -// -//***************************************************************************** -#define PHY_MR5_NP 0x00008000 // Next Page -#define PHY_MR5_ACK 0x00004000 // Acknowledge -#define PHY_MR5_RF 0x00002000 // Remote Fault -#define PHY_MR5_A_M 0x00001FE0 // Technology Ability Field -#define PHY_MR5_S_M 0x0000001F // Selector Field -#define PHY_MR5_S_8023 0x00000001 // IEEE Std 802.3 -#define PHY_MR5_S_8029 0x00000002 // IEEE Std 802.9 ISLAN-16T -#define PHY_MR5_S_8025 0x00000003 // IEEE Std 802.5 -#define PHY_MR5_S_1394 0x00000004 // IEEE Std 1394 -#define PHY_MR5_A_S 5 - -//***************************************************************************** -// -// The following are defines for the bit fields in the PHY_MR6 register. -// -//***************************************************************************** -#define PHY_MR6_PDF 0x00000010 // Parallel Detection Fault -#define PHY_MR6_LPNPA 0x00000008 // Link Partner is Next Page Able -#define PHY_MR6_PRX 0x00000002 // New Page Received -#define PHY_MR6_LPANEGA 0x00000001 // Link Partner is Auto-Negotiation - // Able - -//***************************************************************************** -// -// The following are defines for the bit fields in the PHY_MR16 register. -// -//***************************************************************************** -#define PHY_MR16_RPTR 0x00008000 // Repeater Mode -#define PHY_MR16_INPOL 0x00004000 // Interrupt Polarity -#define PHY_MR16_TXHIM 0x00001000 // Transmit High Impedance Mode -#define PHY_MR16_SQEI 0x00000800 // SQE Inhibit Testing -#define PHY_MR16_NL10 0x00000400 // Natural Loopback Mode -#define PHY_MR16_APOL 0x00000020 // Auto-Polarity Disable -#define PHY_MR16_RVSPOL 0x00000010 // Receive Data Polarity -#define PHY_MR16_PCSBP 0x00000002 // PCS Bypass -#define PHY_MR16_RXCC 0x00000001 // Receive Clock Control - -//***************************************************************************** -// -// The following are defines for the bit fields in the PHY_MR17 register. -// -//***************************************************************************** -#define PHY_MR17_JABBER_IE 0x00008000 // Jabber Interrupt Enable -#define PHY_MR17_RXER_IE 0x00004000 // Receive Error Interrupt Enable -#define PHY_MR17_PRX_IE 0x00002000 // Page Received Interrupt Enable -#define PHY_MR17_PDF_IE 0x00001000 // Parallel Detection Fault - // Interrupt Enable -#define PHY_MR17_LPACK_IE 0x00000800 // LP Acknowledge Interrupt Enable -#define PHY_MR17_LSCHG_IE 0x00000400 // Link Status Change Interrupt - // Enable -#define PHY_MR17_RFAULT_IE 0x00000200 // Remote Fault Interrupt Enable -#define PHY_MR17_ANEGCOMP_IE 0x00000100 // Auto-Negotiation Complete - // Interrupt Enable -#define PHY_MR17_JABBER_INT 0x00000080 // Jabber Event Interrupt -#define PHY_MR17_RXER_INT 0x00000040 // Receive Error Interrupt -#define PHY_MR17_PRX_INT 0x00000020 // Page Receive Interrupt -#define PHY_MR17_PDF_INT 0x00000010 // Parallel Detection Fault - // Interrupt -#define PHY_MR17_LPACK_INT 0x00000008 // LP Acknowledge Interrupt -#define PHY_MR17_LSCHG_INT 0x00000004 // Link Status Change Interrupt -#define PHY_MR17_RFAULT_INT 0x00000002 // Remote Fault Interrupt -#define PHY_MR17_ANEGCOMP_INT 0x00000001 // Auto-Negotiation Complete - // Interrupt - -//***************************************************************************** -// -// The following are defines for the bit fields in the PHY_MR18 register. -// -//***************************************************************************** -#define PHY_MR18_ANEGF 0x00001000 // Auto-Negotiation Failure -#define PHY_MR18_DPLX 0x00000800 // Duplex Mode -#define PHY_MR18_RATE 0x00000400 // Rate -#define PHY_MR18_RXSD 0x00000200 // Receive Detection -#define PHY_MR18_RX_LOCK 0x00000100 // Receive PLL Lock - -//***************************************************************************** -// -// The following are defines for the bit fields in the PHY_MR19 register. -// -//***************************************************************************** -#define PHY_MR19_TXO_M 0x0000C000 // Transmit Amplitude Selection -#define PHY_MR19_TXO_00DB 0x00000000 // Gain set for 0.0dB of insertion - // loss -#define PHY_MR19_TXO_04DB 0x00004000 // Gain set for 0.4dB of insertion - // loss -#define PHY_MR19_TXO_08DB 0x00008000 // Gain set for 0.8dB of insertion - // loss -#define PHY_MR19_TXO_12DB 0x0000C000 // Gain set for 1.2dB of insertion - // loss - -//***************************************************************************** -// -// The following are defines for the bit fields in the PHY_MR23 register. -// -//***************************************************************************** -#define PHY_MR23_LED1_M 0x000000F0 // LED1 Source -#define PHY_MR23_LED1_LINK 0x00000000 // Link OK -#define PHY_MR23_LED1_RXTX 0x00000010 // RX or TX Activity (Default LED1) -#define PHY_MR23_LED1_100 0x00000050 // 100BASE-TX mode -#define PHY_MR23_LED1_10 0x00000060 // 10BASE-T mode -#define PHY_MR23_LED1_DUPLEX 0x00000070 // Full-Duplex -#define PHY_MR23_LED1_LINKACT 0x00000080 // Link OK & Blink=RX or TX - // Activity -#define PHY_MR23_LED0_M 0x0000000F // LED0 Source -#define PHY_MR23_LED0_LINK 0x00000000 // Link OK (Default LED0) -#define PHY_MR23_LED0_RXTX 0x00000001 // RX or TX Activity -#define PHY_MR23_LED0_100 0x00000005 // 100BASE-TX mode -#define PHY_MR23_LED0_10 0x00000006 // 10BASE-T mode -#define PHY_MR23_LED0_DUPLEX 0x00000007 // Full-Duplex -#define PHY_MR23_LED0_LINKACT 0x00000008 // Link OK & Blink=RX or TX - // Activity - -//***************************************************************************** -// -// The following are defines for the bit fields in the PHY_MR24 register. -// -//***************************************************************************** -#define PHY_MR24_PD_MODE 0x00000080 // Parallel Detection Mode -#define PHY_MR24_AUTO_SW 0x00000040 // Auto-Switching Enable -#define PHY_MR24_MDIX 0x00000020 // Auto-Switching Configuration -#define PHY_MR24_MDIX_CM 0x00000010 // Auto-Switching Complete -#define PHY_MR24_MDIX_SD_M 0x0000000F // Auto-Switching Seed -#define PHY_MR24_MDIX_SD_S 0 - -//***************************************************************************** -// -// 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_RTCM1 register. -// -//***************************************************************************** -#define HIB_RTCM1_M 0xFFFFFFFF // RTC Match 1 -#define HIB_RTCM1_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_VABORT 0x00000080 // Power Cut Abort Enable -#define HIB_CTL_CLK32EN 0x00000040 // Clocking Enable -#define HIB_CTL_LOWBATEN 0x00000020 // Low Battery Monitoring Enable -#define HIB_CTL_PINWEN 0x00000010 // External WAKE Pin Enable -#define HIB_CTL_RTCWEN 0x00000008 // RTC Wake-up Enable -#define HIB_CTL_CLKSEL 0x00000004 // Hibernation Module Clock Select -#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_EXTW 0x00000008 // External Wake-Up Interrupt Mask -#define HIB_IM_LOWBAT 0x00000004 // Low Battery Voltage Interrupt - // Mask -#define HIB_IM_RTCALT1 0x00000002 // RTC Alert 1 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_EXTW 0x00000008 // External Wake-Up Raw Interrupt - // Status -#define HIB_RIS_LOWBAT 0x00000004 // Low Battery Voltage Raw - // Interrupt Status -#define HIB_RIS_RTCALT1 0x00000002 // RTC Alert 1 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_EXTW 0x00000008 // External Wake-Up Masked - // Interrupt Status -#define HIB_MIS_LOWBAT 0x00000004 // Low Battery Voltage Masked - // Interrupt Status -#define HIB_MIS_RTCALT1 0x00000002 // RTC Alert 1 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_EXTW 0x00000008 // External Wake-Up Masked - // Interrupt Clear -#define HIB_IC_LOWBAT 0x00000004 // Low Battery Voltage Masked - // Interrupt Clear -#define HIB_IC_RTCALT1 0x00000002 // RTC Alert1 Masked 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_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_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_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_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_USECRL register. -// -//***************************************************************************** -#define FLASH_USECRL_M 0x000000FF // Microsecond Reload Value -#define FLASH_USECRL_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the FLASH_USERDBG register. -// -//***************************************************************************** -#define FLASH_USERDBG_NW 0x80000000 // User Debug Not Written -#define FLASH_USERDBG_DATA_M 0x7FFFFFFC // User Data -#define FLASH_USERDBG_DBG1 0x00000002 // Debug Control 1 -#define FLASH_USERDBG_DBG0 0x00000001 // Debug Control 0 -#define FLASH_USERDBG_DATA_S 2 - -//***************************************************************************** -// -// The following are defines for the bit fields in the FLASH_USERREG0 register. -// -//***************************************************************************** -#define FLASH_USERREG0_NW 0x80000000 // Not Written -#define FLASH_USERREG0_DATA_M 0x7FFFFFFF // User Data -#define FLASH_USERREG0_DATA_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the FLASH_USERREG1 register. -// -//***************************************************************************** -#define FLASH_USERREG1_NW 0x80000000 // Not Written -#define FLASH_USERREG1_DATA_M 0x7FFFFFFF // User Data -#define FLASH_USERREG1_DATA_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 - -//***************************************************************************** -// -// 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_FURY 0x00010000 // Stellaris(R) Fury-class devices -#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 // Second version of the DID1 - // register format -#define SYSCTL_DID1_FAM_M 0x0F000000 // Family -#define SYSCTL_DID1_FAM_STELLARIS \ - 0x00000000 // Stellaris family of - // microcontollers, that is, all - // devices with external part - // numbers starting with LM3S -#define SYSCTL_DID1_PRTNO_M 0x00FF0000 // Part Number -#define SYSCTL_DID1_PRTNO_8962 0x00A60000 // LM3S8962 -#define SYSCTL_DID1_PINCNT_M 0x0000E000 // Package Pin Count -#define SYSCTL_DID1_PINCNT_100 0x00004000 // 100-pin package -#define SYSCTL_DID1_TEMP_M 0x000000E0 // Temperature Range -#define SYSCTL_DID1_TEMP_C 0x00000000 // Commercial temperature range (0C - // to 70C) -#define SYSCTL_DID1_TEMP_I 0x00000020 // Industrial temperature range - // (-40C to 85C) -#define SYSCTL_DID1_TEMP_E 0x00000040 // Extended temperature range (-40C - // to 105C) -#define SYSCTL_DID1_PKG_M 0x00000018 // Package Type -#define SYSCTL_DID1_PKG_SOIC 0x00000000 // SOIC package -#define SYSCTL_DID1_PKG_QFP 0x00000008 // LQFP 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_64KB 0x00FF0000 // 64 KB of SRAM -#define SYSCTL_DC0_FLASHSZ_M 0x0000FFFF // Flash Size -#define SYSCTL_DC0_FLASHSZ_256K 0x0000007F // 256 KB of Flash -#define SYSCTL_DC0_SRAMSZ_S 16 // SRAM size shift -#define SYSCTL_DC0_FLASHSZ_S 0 // Flash size shift - -//***************************************************************************** -// -// The following are defines for the bit fields in the SYSCTL_DC1 register. -// -//***************************************************************************** -#define SYSCTL_DC1_CAN0 0x01000000 // CAN Module 0 Present -#define SYSCTL_DC1_PWM 0x00100000 // PWM Module Present -#define SYSCTL_DC1_ADC 0x00010000 // ADC Module Present -#define SYSCTL_DC1_MINSYSDIV_M 0x0000F000 // System Clock Divider -#define SYSCTL_DC1_MINSYSDIV_50 0x00003000 // Specifies a 50-MHz CPU clock - // with a PLL divider of 4 -#define SYSCTL_DC1_ADCSPD_M 0x00000300 // Max ADC Speed -#define SYSCTL_DC1_ADCSPD_500K 0x00000200 // 500K 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_WDT 0x00000008 // Watchdog Timer 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_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_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_SSI0 0x00000010 // SSI Module 0 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_CCP1 0x02000000 // CCP1 Pin Present -#define SYSCTL_DC3_CCP0 0x01000000 // CCP0 Pin Present -#define SYSCTL_DC3_ADC3 0x00080000 // ADC3 Pin Present -#define SYSCTL_DC3_ADC2 0x00040000 // ADC2 Pin Present -#define SYSCTL_DC3_ADC1 0x00020000 // ADC1 Pin Present -#define SYSCTL_DC3_ADC0 0x00010000 // ADC0 Pin Present -#define SYSCTL_DC3_PWMFAULT 0x00008000 // PWM Fault 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_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_PBORCTL register. -// -//***************************************************************************** -#define SYSCTL_PBORCTL_BORIOR 0x00000002 // BOR Interrupt or Reset - -//***************************************************************************** -// -// The following are defines for the bit fields in the SYSCTL_LDOPCTL register. -// -//***************************************************************************** -#define SYSCTL_LDOPCTL_M 0x0000003F // LDO Output Voltage -#define SYSCTL_LDOPCTL_2_50V 0x00000000 // 2.50 -#define SYSCTL_LDOPCTL_2_45V 0x00000001 // 2.45 -#define SYSCTL_LDOPCTL_2_40V 0x00000002 // 2.40 -#define SYSCTL_LDOPCTL_2_35V 0x00000003 // 2.35 -#define SYSCTL_LDOPCTL_2_30V 0x00000004 // 2.30 -#define SYSCTL_LDOPCTL_2_25V 0x00000005 // 2.25 -#define SYSCTL_LDOPCTL_2_75V 0x0000001B // 2.75 -#define SYSCTL_LDOPCTL_2_70V 0x0000001C // 2.70 -#define SYSCTL_LDOPCTL_2_65V 0x0000001D // 2.65 -#define SYSCTL_LDOPCTL_2_60V 0x0000001E // 2.60 -#define SYSCTL_LDOPCTL_2_55V 0x0000001F // 2.55 - -//***************************************************************************** -// -// The following are defines for the bit fields in the SYSCTL_SRCR0 register. -// -//***************************************************************************** -#define SYSCTL_SRCR0_CAN0 0x01000000 // CAN0 Reset Control -#define SYSCTL_SRCR0_PWM 0x00100000 // PWM Reset Control -#define SYSCTL_SRCR0_ADC 0x00010000 // ADC0 Reset Control -#define SYSCTL_SRCR0_HIB 0x00000040 // HIB Reset Control -#define SYSCTL_SRCR0_WDT 0x00000008 // WDT Reset Control - -//***************************************************************************** -// -// The following are defines for the bit fields in the SYSCTL_SRCR1 register. -// -//***************************************************************************** -#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_I2C0 0x00001000 // I2C0 Reset Control -#define SYSCTL_SRCR1_QEI1 0x00000200 // QEI1 Reset Control -#define SYSCTL_SRCR1_QEI0 0x00000100 // QEI0 Reset Control -#define SYSCTL_SRCR1_SSI0 0x00000010 // SSI0 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_EPHY0 0x40000000 // PHY0 Reset Control -#define SYSCTL_SRCR2_EMAC0 0x10000000 // MAC0 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_PLLLRIS 0x00000040 // PLL Lock 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_PLLLIM 0x00000040 // PLL Lock Interrupt Mask -#define SYSCTL_IMC_BORIM 0x00000002 // Brown-Out Reset Interrupt Mask - -//***************************************************************************** -// -// The following are defines for the bit fields in the SYSCTL_MISC register. -// -//***************************************************************************** -#define SYSCTL_MISC_PLLLMIS 0x00000040 // PLL Lock Masked Interrupt Status -#define SYSCTL_MISC_BORMIS 0x00000002 // BOR Masked Interrupt Status - -//***************************************************************************** -// -// The following are defines for the bit fields in the SYSCTL_RESC register. -// -//***************************************************************************** -#define SYSCTL_RESC_SW 0x00000010 // Software Reset -#define SYSCTL_RESC_WDT 0x00000008 // Watchdog Timer 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_SYSDIV_2 0x00800000 // System clock /2 -#define SYSCTL_RCC_SYSDIV_3 0x01000000 // System clock /3 -#define SYSCTL_RCC_SYSDIV_4 0x01800000 // System clock /4 -#define SYSCTL_RCC_SYSDIV_5 0x02000000 // System clock /5 -#define SYSCTL_RCC_SYSDIV_6 0x02800000 // System clock /6 -#define SYSCTL_RCC_SYSDIV_7 0x03000000 // System clock /7 -#define SYSCTL_RCC_SYSDIV_8 0x03800000 // System clock /8 -#define SYSCTL_RCC_SYSDIV_9 0x04000000 // System clock /9 -#define SYSCTL_RCC_SYSDIV_10 0x04800000 // System clock /10 -#define SYSCTL_RCC_SYSDIV_11 0x05000000 // System clock /11 -#define SYSCTL_RCC_SYSDIV_12 0x05800000 // System clock /12 -#define SYSCTL_RCC_SYSDIV_13 0x06000000 // System clock /13 -#define SYSCTL_RCC_SYSDIV_14 0x06800000 // System clock /14 -#define SYSCTL_RCC_SYSDIV_15 0x07000000 // System clock /15 -#define SYSCTL_RCC_SYSDIV_16 0x07800000 // System clock /16 -#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 0x000003C0 // Crystal Value -#define SYSCTL_RCC_XTAL_1MHZ 0x00000000 // 1 MHz -#define SYSCTL_RCC_XTAL_1_84MHZ 0x00000040 // 1.8432 MHz -#define SYSCTL_RCC_XTAL_2MHZ 0x00000080 // 2 MHz -#define SYSCTL_RCC_XTAL_2_45MHZ 0x000000C0 // 2.4576 MHz -#define SYSCTL_RCC_XTAL_3_57MHZ 0x00000100 // 3.579545 MHz -#define SYSCTL_RCC_XTAL_3_68MHZ 0x00000140 // 3.6864 MHz -#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_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 // 30 kHz -#define SYSCTL_RCC_IOSCDIS 0x00000002 // Internal Oscillator Disable -#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_PLLCFG register. -// -//***************************************************************************** -#define SYSCTL_PLLCFG_F_M 0x00003FE0 // PLL F Value -#define SYSCTL_PLLCFG_R_M 0x0000001F // PLL R Value -#define SYSCTL_PLLCFG_F_S 5 -#define SYSCTL_PLLCFG_R_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the SYSCTL_RCC2 register. -// -//***************************************************************************** -#define SYSCTL_RCC2_USERCC2 0x80000000 // Use RCC2 -#define SYSCTL_RCC2_SYSDIV2_M 0x1F800000 // System Clock Divisor 2 -#define SYSCTL_RCC2_SYSDIV2_2 0x00800000 // System clock /2 -#define SYSCTL_RCC2_SYSDIV2_3 0x01000000 // System clock /3 -#define SYSCTL_RCC2_SYSDIV2_4 0x01800000 // System clock /4 -#define SYSCTL_RCC2_SYSDIV2_5 0x02000000 // System clock /5 -#define SYSCTL_RCC2_SYSDIV2_6 0x02800000 // System clock /6 -#define SYSCTL_RCC2_SYSDIV2_7 0x03000000 // System clock /7 -#define SYSCTL_RCC2_SYSDIV2_8 0x03800000 // System clock /8 -#define SYSCTL_RCC2_SYSDIV2_9 0x04000000 // System clock /9 -#define SYSCTL_RCC2_SYSDIV2_10 0x04800000 // System clock /10 -#define SYSCTL_RCC2_SYSDIV2_11 0x05000000 // System clock /11 -#define SYSCTL_RCC2_SYSDIV2_12 0x05800000 // System clock /12 -#define SYSCTL_RCC2_SYSDIV2_13 0x06000000 // System clock /13 -#define SYSCTL_RCC2_SYSDIV2_14 0x06800000 // System clock /14 -#define SYSCTL_RCC2_SYSDIV2_15 0x07000000 // System clock /15 -#define SYSCTL_RCC2_SYSDIV2_16 0x07800000 // System clock /16 -#define SYSCTL_RCC2_SYSDIV2_17 0x08000000 // System clock /17 -#define SYSCTL_RCC2_SYSDIV2_18 0x08800000 // System clock /18 -#define SYSCTL_RCC2_SYSDIV2_19 0x09000000 // System clock /19 -#define SYSCTL_RCC2_SYSDIV2_20 0x09800000 // System clock /20 -#define SYSCTL_RCC2_SYSDIV2_21 0x0A000000 // System clock /21 -#define SYSCTL_RCC2_SYSDIV2_22 0x0A800000 // System clock /22 -#define SYSCTL_RCC2_SYSDIV2_23 0x0B000000 // System clock /23 -#define SYSCTL_RCC2_SYSDIV2_24 0x0B800000 // System clock /24 -#define SYSCTL_RCC2_SYSDIV2_25 0x0C000000 // System clock /25 -#define SYSCTL_RCC2_SYSDIV2_26 0x0C800000 // System clock /26 -#define SYSCTL_RCC2_SYSDIV2_27 0x0D000000 // System clock /27 -#define SYSCTL_RCC2_SYSDIV2_28 0x0D800000 // System clock /28 -#define SYSCTL_RCC2_SYSDIV2_29 0x0E000000 // System clock /29 -#define SYSCTL_RCC2_SYSDIV2_30 0x0E800000 // System clock /30 -#define SYSCTL_RCC2_SYSDIV2_31 0x0F000000 // System clock /31 -#define SYSCTL_RCC2_SYSDIV2_32 0x0F800000 // System clock /32 -#define SYSCTL_RCC2_SYSDIV2_33 0x10000000 // System clock /33 -#define SYSCTL_RCC2_SYSDIV2_34 0x10800000 // System clock /34 -#define SYSCTL_RCC2_SYSDIV2_35 0x11000000 // System clock /35 -#define SYSCTL_RCC2_SYSDIV2_36 0x11800000 // System clock /36 -#define SYSCTL_RCC2_SYSDIV2_37 0x12000000 // System clock /37 -#define SYSCTL_RCC2_SYSDIV2_38 0x12800000 // System clock /38 -#define SYSCTL_RCC2_SYSDIV2_39 0x13000000 // System clock /39 -#define SYSCTL_RCC2_SYSDIV2_40 0x13800000 // System clock /40 -#define SYSCTL_RCC2_SYSDIV2_41 0x14000000 // System clock /41 -#define SYSCTL_RCC2_SYSDIV2_42 0x14800000 // System clock /42 -#define SYSCTL_RCC2_SYSDIV2_43 0x15000000 // System clock /43 -#define SYSCTL_RCC2_SYSDIV2_44 0x15800000 // System clock /44 -#define SYSCTL_RCC2_SYSDIV2_45 0x16000000 // System clock /45 -#define SYSCTL_RCC2_SYSDIV2_46 0x16800000 // System clock /46 -#define SYSCTL_RCC2_SYSDIV2_47 0x17000000 // System clock /47 -#define SYSCTL_RCC2_SYSDIV2_48 0x17800000 // System clock /48 -#define SYSCTL_RCC2_SYSDIV2_49 0x18000000 // System clock /49 -#define SYSCTL_RCC2_SYSDIV2_50 0x18800000 // System clock /50 -#define SYSCTL_RCC2_SYSDIV2_51 0x19000000 // System clock /51 -#define SYSCTL_RCC2_SYSDIV2_52 0x19800000 // System clock /52 -#define SYSCTL_RCC2_SYSDIV2_53 0x1A000000 // System clock /53 -#define SYSCTL_RCC2_SYSDIV2_54 0x1A800000 // System clock /54 -#define SYSCTL_RCC2_SYSDIV2_55 0x1B000000 // System clock /55 -#define SYSCTL_RCC2_SYSDIV2_56 0x1B800000 // System clock /56 -#define SYSCTL_RCC2_SYSDIV2_57 0x1C000000 // System clock /57 -#define SYSCTL_RCC2_SYSDIV2_58 0x1C800000 // System clock /58 -#define SYSCTL_RCC2_SYSDIV2_59 0x1D000000 // System clock /59 -#define SYSCTL_RCC2_SYSDIV2_60 0x1D800000 // System clock /60 -#define SYSCTL_RCC2_SYSDIV2_61 0x1E000000 // System clock /61 -#define SYSCTL_RCC2_SYSDIV2_62 0x1E800000 // System clock /62 -#define SYSCTL_RCC2_SYSDIV2_63 0x1F000000 // System clock /63 -#define SYSCTL_RCC2_SYSDIV2_64 0x1F800000 // System clock /64 -#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 // 30 kHz -#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_RCGC0 register. -// -//***************************************************************************** -#define SYSCTL_RCGC0_CAN0 0x01000000 // CAN0 Clock Gating Control -#define SYSCTL_RCGC0_PWM 0x00100000 // PWM Clock Gating Control -#define SYSCTL_RCGC0_ADC 0x00010000 // ADC0 Clock Gating Control -#define SYSCTL_RCGC0_ADCSPD_M 0x00000300 // ADC Sample Speed -#define SYSCTL_RCGC0_ADCSPD125K 0x00000000 // 125K samples/second -#define SYSCTL_RCGC0_ADCSPD250K 0x00000100 // 250K samples/second -#define SYSCTL_RCGC0_ADCSPD500K 0x00000200 // 500K samples/second -#define SYSCTL_RCGC0_HIB 0x00000040 // HIB Clock Gating Control -#define SYSCTL_RCGC0_WDT 0x00000008 // WDT Clock Gating Control - -//***************************************************************************** -// -// The following are defines for the bit fields in the SYSCTL_RCGC1 register. -// -//***************************************************************************** -#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_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_SSI0 0x00000010 // SSI0 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_EPHY0 0x40000000 // PHY0 Clock Gating Control -#define SYSCTL_RCGC2_EMAC0 0x10000000 // MAC0 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_CAN0 0x01000000 // CAN0 Clock Gating Control -#define SYSCTL_SCGC0_PWM 0x00100000 // PWM Clock Gating Control -#define SYSCTL_SCGC0_ADC 0x00010000 // ADC0 Clock Gating Control -#define SYSCTL_SCGC0_ADCSPD_M 0x00000300 // ADC Sample Speed -#define SYSCTL_SCGC0_ADCSPD125K 0x00000000 // 125K samples/second -#define SYSCTL_SCGC0_ADCSPD250K 0x00000100 // 250K samples/second -#define SYSCTL_SCGC0_ADCSPD500K 0x00000200 // 500K samples/second -#define SYSCTL_SCGC0_HIB 0x00000040 // HIB Clock Gating Control -#define SYSCTL_SCGC0_WDT 0x00000008 // WDT Clock Gating Control - -//***************************************************************************** -// -// The following are defines for the bit fields in the SYSCTL_SCGC1 register. -// -//***************************************************************************** -#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_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_SSI0 0x00000010 // SSI0 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_EPHY0 0x40000000 // PHY0 Clock Gating Control -#define SYSCTL_SCGC2_EMAC0 0x10000000 // MAC0 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_CAN0 0x01000000 // CAN0 Clock Gating Control -#define SYSCTL_DCGC0_PWM 0x00100000 // PWM Clock Gating Control -#define SYSCTL_DCGC0_ADC 0x00010000 // ADC0 Clock Gating Control -#define SYSCTL_DCGC0_HIB 0x00000040 // HIB Clock Gating Control -#define SYSCTL_DCGC0_WDT 0x00000008 // WDT Clock Gating Control - -//***************************************************************************** -// -// The following are defines for the bit fields in the SYSCTL_DCGC1 register. -// -//***************************************************************************** -#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_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_SSI0 0x00000010 // SSI0 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_EPHY0 0x40000000 // PHY0 Clock Gating Control -#define SYSCTL_DCGC2_EMAC0 0x10000000 // MAC0 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_D_1 0x00000000 // System clock /1 -#define SYSCTL_DSLPCLKCFG_D_2 0x00800000 // System clock /2 -#define SYSCTL_DSLPCLKCFG_D_3 0x01000000 // System clock /3 -#define SYSCTL_DSLPCLKCFG_D_4 0x01800000 // System clock /4 -#define SYSCTL_DSLPCLKCFG_D_5 0x02000000 // System clock /5 -#define SYSCTL_DSLPCLKCFG_D_6 0x02800000 // System clock /6 -#define SYSCTL_DSLPCLKCFG_D_7 0x03000000 // System clock /7 -#define SYSCTL_DSLPCLKCFG_D_8 0x03800000 // System clock /8 -#define SYSCTL_DSLPCLKCFG_D_9 0x04000000 // System clock /9 -#define SYSCTL_DSLPCLKCFG_D_10 0x04800000 // System clock /10 -#define SYSCTL_DSLPCLKCFG_D_11 0x05000000 // System clock /11 -#define SYSCTL_DSLPCLKCFG_D_12 0x05800000 // System clock /12 -#define SYSCTL_DSLPCLKCFG_D_13 0x06000000 // System clock /13 -#define SYSCTL_DSLPCLKCFG_D_14 0x06800000 // System clock /14 -#define SYSCTL_DSLPCLKCFG_D_15 0x07000000 // System clock /15 -#define SYSCTL_DSLPCLKCFG_D_16 0x07800000 // System clock /16 -#define SYSCTL_DSLPCLKCFG_D_17 0x08000000 // System clock /17 -#define SYSCTL_DSLPCLKCFG_D_18 0x08800000 // System clock /18 -#define SYSCTL_DSLPCLKCFG_D_19 0x09000000 // System clock /19 -#define SYSCTL_DSLPCLKCFG_D_20 0x09800000 // System clock /20 -#define SYSCTL_DSLPCLKCFG_D_21 0x0A000000 // System clock /21 -#define SYSCTL_DSLPCLKCFG_D_22 0x0A800000 // System clock /22 -#define SYSCTL_DSLPCLKCFG_D_23 0x0B000000 // System clock /23 -#define SYSCTL_DSLPCLKCFG_D_24 0x0B800000 // System clock /24 -#define SYSCTL_DSLPCLKCFG_D_25 0x0C000000 // System clock /25 -#define SYSCTL_DSLPCLKCFG_D_26 0x0C800000 // System clock /26 -#define SYSCTL_DSLPCLKCFG_D_27 0x0D000000 // System clock /27 -#define SYSCTL_DSLPCLKCFG_D_28 0x0D800000 // System clock /28 -#define SYSCTL_DSLPCLKCFG_D_29 0x0E000000 // System clock /29 -#define SYSCTL_DSLPCLKCFG_D_30 0x0E800000 // System clock /30 -#define SYSCTL_DSLPCLKCFG_D_31 0x0F000000 // System clock /31 -#define SYSCTL_DSLPCLKCFG_D_32 0x0F800000 // System clock /32 -#define SYSCTL_DSLPCLKCFG_D_33 0x10000000 // System clock /33 -#define SYSCTL_DSLPCLKCFG_D_34 0x10800000 // System clock /34 -#define SYSCTL_DSLPCLKCFG_D_35 0x11000000 // System clock /35 -#define SYSCTL_DSLPCLKCFG_D_36 0x11800000 // System clock /36 -#define SYSCTL_DSLPCLKCFG_D_37 0x12000000 // System clock /37 -#define SYSCTL_DSLPCLKCFG_D_38 0x12800000 // System clock /38 -#define SYSCTL_DSLPCLKCFG_D_39 0x13000000 // System clock /39 -#define SYSCTL_DSLPCLKCFG_D_40 0x13800000 // System clock /40 -#define SYSCTL_DSLPCLKCFG_D_41 0x14000000 // System clock /41 -#define SYSCTL_DSLPCLKCFG_D_42 0x14800000 // System clock /42 -#define SYSCTL_DSLPCLKCFG_D_43 0x15000000 // System clock /43 -#define SYSCTL_DSLPCLKCFG_D_44 0x15800000 // System clock /44 -#define SYSCTL_DSLPCLKCFG_D_45 0x16000000 // System clock /45 -#define SYSCTL_DSLPCLKCFG_D_46 0x16800000 // System clock /46 -#define SYSCTL_DSLPCLKCFG_D_47 0x17000000 // System clock /47 -#define SYSCTL_DSLPCLKCFG_D_48 0x17800000 // System clock /48 -#define SYSCTL_DSLPCLKCFG_D_49 0x18000000 // System clock /49 -#define SYSCTL_DSLPCLKCFG_D_50 0x18800000 // System clock /50 -#define SYSCTL_DSLPCLKCFG_D_51 0x19000000 // System clock /51 -#define SYSCTL_DSLPCLKCFG_D_52 0x19800000 // System clock /52 -#define SYSCTL_DSLPCLKCFG_D_53 0x1A000000 // System clock /53 -#define SYSCTL_DSLPCLKCFG_D_54 0x1A800000 // System clock /54 -#define SYSCTL_DSLPCLKCFG_D_55 0x1B000000 // System clock /55 -#define SYSCTL_DSLPCLKCFG_D_56 0x1B800000 // System clock /56 -#define SYSCTL_DSLPCLKCFG_D_57 0x1C000000 // System clock /57 -#define SYSCTL_DSLPCLKCFG_D_58 0x1C800000 // System clock /58 -#define SYSCTL_DSLPCLKCFG_D_59 0x1D000000 // System clock /59 -#define SYSCTL_DSLPCLKCFG_D_60 0x1D800000 // System clock /60 -#define SYSCTL_DSLPCLKCFG_D_61 0x1E000000 // System clock /61 -#define SYSCTL_DSLPCLKCFG_D_62 0x1E800000 // System clock /62 -#define SYSCTL_DSLPCLKCFG_D_63 0x1F000000 // System clock /63 -#define SYSCTL_DSLPCLKCFG_D_64 0x1F800000 // System clock /64 -#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 // 30 kHz -#define SYSCTL_DSLPCLKCFG_O_32 0x00000070 // 32.768 kHz -#define SYSCTL_DSLPCLKCFG_D_S 23 - -//***************************************************************************** -// -// The following are defines for the bit fields in the NVIC_INT_TYPE register. -// -//***************************************************************************** -#define NVIC_INT_TYPE_LINES_M 0x0000001F // Number of interrupt lines (x32) -#define NVIC_INT_TYPE_LINES_S 0 - -//***************************************************************************** -// -// 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 // Counter mode - -//***************************************************************************** -// -// The following are defines for the bit fields in the NVIC_ST_RELOAD register. -// -//***************************************************************************** -#define NVIC_ST_RELOAD_M 0x00FFFFFF // Counter load 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 // Counter current value -#define NVIC_ST_CURRENT_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the NVIC_ST_CAL register. -// -//***************************************************************************** -#define NVIC_ST_CAL_NOREF 0x80000000 // No reference clock -#define NVIC_ST_CAL_SKEW 0x40000000 // Clock skew -#define NVIC_ST_CAL_ONEMS_M 0x00FFFFFF // 1ms reference value -#define NVIC_ST_CAL_ONEMS_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the NVIC_EN0 register. -// -//***************************************************************************** -#define NVIC_EN0_INT31 0x80000000 // Interrupt 31 enable -#define NVIC_EN0_INT30 0x40000000 // Interrupt 30 enable -#define NVIC_EN0_INT29 0x20000000 // Interrupt 29 enable -#define NVIC_EN0_INT28 0x10000000 // Interrupt 28 enable -#define NVIC_EN0_INT27 0x08000000 // Interrupt 27 enable -#define NVIC_EN0_INT26 0x04000000 // Interrupt 26 enable -#define NVIC_EN0_INT25 0x02000000 // Interrupt 25 enable -#define NVIC_EN0_INT24 0x01000000 // Interrupt 24 enable -#define NVIC_EN0_INT23 0x00800000 // Interrupt 23 enable -#define NVIC_EN0_INT22 0x00400000 // Interrupt 22 enable -#define NVIC_EN0_INT21 0x00200000 // Interrupt 21 enable -#define NVIC_EN0_INT20 0x00100000 // Interrupt 20 enable -#define NVIC_EN0_INT19 0x00080000 // Interrupt 19 enable -#define NVIC_EN0_INT18 0x00040000 // Interrupt 18 enable -#define NVIC_EN0_INT17 0x00020000 // Interrupt 17 enable -#define NVIC_EN0_INT16 0x00010000 // Interrupt 16 enable -#define NVIC_EN0_INT15 0x00008000 // Interrupt 15 enable -#define NVIC_EN0_INT14 0x00004000 // Interrupt 14 enable -#define NVIC_EN0_INT13 0x00002000 // Interrupt 13 enable -#define NVIC_EN0_INT12 0x00001000 // Interrupt 12 enable -#define NVIC_EN0_INT11 0x00000800 // Interrupt 11 enable -#define NVIC_EN0_INT10 0x00000400 // Interrupt 10 enable -#define NVIC_EN0_INT9 0x00000200 // Interrupt 9 enable -#define NVIC_EN0_INT8 0x00000100 // Interrupt 8 enable -#define NVIC_EN0_INT7 0x00000080 // Interrupt 7 enable -#define NVIC_EN0_INT6 0x00000040 // Interrupt 6 enable -#define NVIC_EN0_INT5 0x00000020 // Interrupt 5 enable -#define NVIC_EN0_INT4 0x00000010 // Interrupt 4 enable -#define NVIC_EN0_INT3 0x00000008 // Interrupt 3 enable -#define NVIC_EN0_INT2 0x00000004 // Interrupt 2 enable -#define NVIC_EN0_INT1 0x00000002 // Interrupt 1 enable -#define NVIC_EN0_INT0 0x00000001 // Interrupt 0 enable - -//***************************************************************************** -// -// The following are defines for the bit fields in the NVIC_EN1 register. -// -//***************************************************************************** -#define NVIC_EN1_INT59 0x08000000 // Interrupt 59 enable -#define NVIC_EN1_INT58 0x04000000 // Interrupt 58 enable -#define NVIC_EN1_INT57 0x02000000 // Interrupt 57 enable -#define NVIC_EN1_INT56 0x01000000 // Interrupt 56 enable -#define NVIC_EN1_INT55 0x00800000 // Interrupt 55 enable -#define NVIC_EN1_INT54 0x00400000 // Interrupt 54 enable -#define NVIC_EN1_INT53 0x00200000 // Interrupt 53 enable -#define NVIC_EN1_INT52 0x00100000 // Interrupt 52 enable -#define NVIC_EN1_INT51 0x00080000 // Interrupt 51 enable -#define NVIC_EN1_INT50 0x00040000 // Interrupt 50 enable -#define NVIC_EN1_INT49 0x00020000 // Interrupt 49 enable -#define NVIC_EN1_INT48 0x00010000 // Interrupt 48 enable -#define NVIC_EN1_INT47 0x00008000 // Interrupt 47 enable -#define NVIC_EN1_INT46 0x00004000 // Interrupt 46 enable -#define NVIC_EN1_INT45 0x00002000 // Interrupt 45 enable -#define NVIC_EN1_INT44 0x00001000 // Interrupt 44 enable -#define NVIC_EN1_INT43 0x00000800 // Interrupt 43 enable -#define NVIC_EN1_INT42 0x00000400 // Interrupt 42 enable -#define NVIC_EN1_INT41 0x00000200 // Interrupt 41 enable -#define NVIC_EN1_INT40 0x00000100 // Interrupt 40 enable -#define NVIC_EN1_INT39 0x00000080 // Interrupt 39 enable -#define NVIC_EN1_INT38 0x00000040 // Interrupt 38 enable -#define NVIC_EN1_INT37 0x00000020 // Interrupt 37 enable -#define NVIC_EN1_INT36 0x00000010 // Interrupt 36 enable -#define NVIC_EN1_INT35 0x00000008 // Interrupt 35 enable -#define NVIC_EN1_INT34 0x00000004 // Interrupt 34 enable -#define NVIC_EN1_INT33 0x00000002 // Interrupt 33 enable -#define NVIC_EN1_INT32 0x00000001 // Interrupt 32 enable - -//***************************************************************************** -// -// The following are defines for the bit fields in the NVIC_DIS0 register. -// -//***************************************************************************** -#define NVIC_DIS0_INT31 0x80000000 // Interrupt 31 disable -#define NVIC_DIS0_INT30 0x40000000 // Interrupt 30 disable -#define NVIC_DIS0_INT29 0x20000000 // Interrupt 29 disable -#define NVIC_DIS0_INT28 0x10000000 // Interrupt 28 disable -#define NVIC_DIS0_INT27 0x08000000 // Interrupt 27 disable -#define NVIC_DIS0_INT26 0x04000000 // Interrupt 26 disable -#define NVIC_DIS0_INT25 0x02000000 // Interrupt 25 disable -#define NVIC_DIS0_INT24 0x01000000 // Interrupt 24 disable -#define NVIC_DIS0_INT23 0x00800000 // Interrupt 23 disable -#define NVIC_DIS0_INT22 0x00400000 // Interrupt 22 disable -#define NVIC_DIS0_INT21 0x00200000 // Interrupt 21 disable -#define NVIC_DIS0_INT20 0x00100000 // Interrupt 20 disable -#define NVIC_DIS0_INT19 0x00080000 // Interrupt 19 disable -#define NVIC_DIS0_INT18 0x00040000 // Interrupt 18 disable -#define NVIC_DIS0_INT17 0x00020000 // Interrupt 17 disable -#define NVIC_DIS0_INT16 0x00010000 // Interrupt 16 disable -#define NVIC_DIS0_INT15 0x00008000 // Interrupt 15 disable -#define NVIC_DIS0_INT14 0x00004000 // Interrupt 14 disable -#define NVIC_DIS0_INT13 0x00002000 // Interrupt 13 disable -#define NVIC_DIS0_INT12 0x00001000 // Interrupt 12 disable -#define NVIC_DIS0_INT11 0x00000800 // Interrupt 11 disable -#define NVIC_DIS0_INT10 0x00000400 // Interrupt 10 disable -#define NVIC_DIS0_INT9 0x00000200 // Interrupt 9 disable -#define NVIC_DIS0_INT8 0x00000100 // Interrupt 8 disable -#define NVIC_DIS0_INT7 0x00000080 // Interrupt 7 disable -#define NVIC_DIS0_INT6 0x00000040 // Interrupt 6 disable -#define NVIC_DIS0_INT5 0x00000020 // Interrupt 5 disable -#define NVIC_DIS0_INT4 0x00000010 // Interrupt 4 disable -#define NVIC_DIS0_INT3 0x00000008 // Interrupt 3 disable -#define NVIC_DIS0_INT2 0x00000004 // Interrupt 2 disable -#define NVIC_DIS0_INT1 0x00000002 // Interrupt 1 disable -#define NVIC_DIS0_INT0 0x00000001 // Interrupt 0 disable - -//***************************************************************************** -// -// The following are defines for the bit fields in the NVIC_DIS1 register. -// -//***************************************************************************** -#define NVIC_DIS1_INT59 0x08000000 // Interrupt 59 disable -#define NVIC_DIS1_INT58 0x04000000 // Interrupt 58 disable -#define NVIC_DIS1_INT57 0x02000000 // Interrupt 57 disable -#define NVIC_DIS1_INT56 0x01000000 // Interrupt 56 disable -#define NVIC_DIS1_INT55 0x00800000 // Interrupt 55 disable -#define NVIC_DIS1_INT54 0x00400000 // Interrupt 54 disable -#define NVIC_DIS1_INT53 0x00200000 // Interrupt 53 disable -#define NVIC_DIS1_INT52 0x00100000 // Interrupt 52 disable -#define NVIC_DIS1_INT51 0x00080000 // Interrupt 51 disable -#define NVIC_DIS1_INT50 0x00040000 // Interrupt 50 disable -#define NVIC_DIS1_INT49 0x00020000 // Interrupt 49 disable -#define NVIC_DIS1_INT48 0x00010000 // Interrupt 48 disable -#define NVIC_DIS1_INT47 0x00008000 // Interrupt 47 disable -#define NVIC_DIS1_INT46 0x00004000 // Interrupt 46 disable -#define NVIC_DIS1_INT45 0x00002000 // Interrupt 45 disable -#define NVIC_DIS1_INT44 0x00001000 // Interrupt 44 disable -#define NVIC_DIS1_INT43 0x00000800 // Interrupt 43 disable -#define NVIC_DIS1_INT42 0x00000400 // Interrupt 42 disable -#define NVIC_DIS1_INT41 0x00000200 // Interrupt 41 disable -#define NVIC_DIS1_INT40 0x00000100 // Interrupt 40 disable -#define NVIC_DIS1_INT39 0x00000080 // Interrupt 39 disable -#define NVIC_DIS1_INT38 0x00000040 // Interrupt 38 disable -#define NVIC_DIS1_INT37 0x00000020 // Interrupt 37 disable -#define NVIC_DIS1_INT36 0x00000010 // Interrupt 36 disable -#define NVIC_DIS1_INT35 0x00000008 // Interrupt 35 disable -#define NVIC_DIS1_INT34 0x00000004 // Interrupt 34 disable -#define NVIC_DIS1_INT33 0x00000002 // Interrupt 33 disable -#define NVIC_DIS1_INT32 0x00000001 // Interrupt 32 disable - -//***************************************************************************** -// -// The following are defines for the bit fields in the NVIC_PEND0 register. -// -//***************************************************************************** -#define NVIC_PEND0_INT31 0x80000000 // Interrupt 31 pend -#define NVIC_PEND0_INT30 0x40000000 // Interrupt 30 pend -#define NVIC_PEND0_INT29 0x20000000 // Interrupt 29 pend -#define NVIC_PEND0_INT28 0x10000000 // Interrupt 28 pend -#define NVIC_PEND0_INT27 0x08000000 // Interrupt 27 pend -#define NVIC_PEND0_INT26 0x04000000 // Interrupt 26 pend -#define NVIC_PEND0_INT25 0x02000000 // Interrupt 25 pend -#define NVIC_PEND0_INT24 0x01000000 // Interrupt 24 pend -#define NVIC_PEND0_INT23 0x00800000 // Interrupt 23 pend -#define NVIC_PEND0_INT22 0x00400000 // Interrupt 22 pend -#define NVIC_PEND0_INT21 0x00200000 // Interrupt 21 pend -#define NVIC_PEND0_INT20 0x00100000 // Interrupt 20 pend -#define NVIC_PEND0_INT19 0x00080000 // Interrupt 19 pend -#define NVIC_PEND0_INT18 0x00040000 // Interrupt 18 pend -#define NVIC_PEND0_INT17 0x00020000 // Interrupt 17 pend -#define NVIC_PEND0_INT16 0x00010000 // Interrupt 16 pend -#define NVIC_PEND0_INT15 0x00008000 // Interrupt 15 pend -#define NVIC_PEND0_INT14 0x00004000 // Interrupt 14 pend -#define NVIC_PEND0_INT13 0x00002000 // Interrupt 13 pend -#define NVIC_PEND0_INT12 0x00001000 // Interrupt 12 pend -#define NVIC_PEND0_INT11 0x00000800 // Interrupt 11 pend -#define NVIC_PEND0_INT10 0x00000400 // Interrupt 10 pend -#define NVIC_PEND0_INT9 0x00000200 // Interrupt 9 pend -#define NVIC_PEND0_INT8 0x00000100 // Interrupt 8 pend -#define NVIC_PEND0_INT7 0x00000080 // Interrupt 7 pend -#define NVIC_PEND0_INT6 0x00000040 // Interrupt 6 pend -#define NVIC_PEND0_INT5 0x00000020 // Interrupt 5 pend -#define NVIC_PEND0_INT4 0x00000010 // Interrupt 4 pend -#define NVIC_PEND0_INT3 0x00000008 // Interrupt 3 pend -#define NVIC_PEND0_INT2 0x00000004 // Interrupt 2 pend -#define NVIC_PEND0_INT1 0x00000002 // Interrupt 1 pend -#define NVIC_PEND0_INT0 0x00000001 // Interrupt 0 pend - -//***************************************************************************** -// -// The following are defines for the bit fields in the NVIC_PEND1 register. -// -//***************************************************************************** -#define NVIC_PEND1_INT59 0x08000000 // Interrupt 59 pend -#define NVIC_PEND1_INT58 0x04000000 // Interrupt 58 pend -#define NVIC_PEND1_INT57 0x02000000 // Interrupt 57 pend -#define NVIC_PEND1_INT56 0x01000000 // Interrupt 56 pend -#define NVIC_PEND1_INT55 0x00800000 // Interrupt 55 pend -#define NVIC_PEND1_INT54 0x00400000 // Interrupt 54 pend -#define NVIC_PEND1_INT53 0x00200000 // Interrupt 53 pend -#define NVIC_PEND1_INT52 0x00100000 // Interrupt 52 pend -#define NVIC_PEND1_INT51 0x00080000 // Interrupt 51 pend -#define NVIC_PEND1_INT50 0x00040000 // Interrupt 50 pend -#define NVIC_PEND1_INT49 0x00020000 // Interrupt 49 pend -#define NVIC_PEND1_INT48 0x00010000 // Interrupt 48 pend -#define NVIC_PEND1_INT47 0x00008000 // Interrupt 47 pend -#define NVIC_PEND1_INT46 0x00004000 // Interrupt 46 pend -#define NVIC_PEND1_INT45 0x00002000 // Interrupt 45 pend -#define NVIC_PEND1_INT44 0x00001000 // Interrupt 44 pend -#define NVIC_PEND1_INT43 0x00000800 // Interrupt 43 pend -#define NVIC_PEND1_INT42 0x00000400 // Interrupt 42 pend -#define NVIC_PEND1_INT41 0x00000200 // Interrupt 41 pend -#define NVIC_PEND1_INT40 0x00000100 // Interrupt 40 pend -#define NVIC_PEND1_INT39 0x00000080 // Interrupt 39 pend -#define NVIC_PEND1_INT38 0x00000040 // Interrupt 38 pend -#define NVIC_PEND1_INT37 0x00000020 // Interrupt 37 pend -#define NVIC_PEND1_INT36 0x00000010 // Interrupt 36 pend -#define NVIC_PEND1_INT35 0x00000008 // Interrupt 35 pend -#define NVIC_PEND1_INT34 0x00000004 // Interrupt 34 pend -#define NVIC_PEND1_INT33 0x00000002 // Interrupt 33 pend -#define NVIC_PEND1_INT32 0x00000001 // Interrupt 32 pend - -//***************************************************************************** -// -// The following are defines for the bit fields in the NVIC_UNPEND0 register. -// -//***************************************************************************** -#define NVIC_UNPEND0_INT31 0x80000000 // Interrupt 31 unpend -#define NVIC_UNPEND0_INT30 0x40000000 // Interrupt 30 unpend -#define NVIC_UNPEND0_INT29 0x20000000 // Interrupt 29 unpend -#define NVIC_UNPEND0_INT28 0x10000000 // Interrupt 28 unpend -#define NVIC_UNPEND0_INT27 0x08000000 // Interrupt 27 unpend -#define NVIC_UNPEND0_INT26 0x04000000 // Interrupt 26 unpend -#define NVIC_UNPEND0_INT25 0x02000000 // Interrupt 25 unpend -#define NVIC_UNPEND0_INT24 0x01000000 // Interrupt 24 unpend -#define NVIC_UNPEND0_INT23 0x00800000 // Interrupt 23 unpend -#define NVIC_UNPEND0_INT22 0x00400000 // Interrupt 22 unpend -#define NVIC_UNPEND0_INT21 0x00200000 // Interrupt 21 unpend -#define NVIC_UNPEND0_INT20 0x00100000 // Interrupt 20 unpend -#define NVIC_UNPEND0_INT19 0x00080000 // Interrupt 19 unpend -#define NVIC_UNPEND0_INT18 0x00040000 // Interrupt 18 unpend -#define NVIC_UNPEND0_INT17 0x00020000 // Interrupt 17 unpend -#define NVIC_UNPEND0_INT16 0x00010000 // Interrupt 16 unpend -#define NVIC_UNPEND0_INT15 0x00008000 // Interrupt 15 unpend -#define NVIC_UNPEND0_INT14 0x00004000 // Interrupt 14 unpend -#define NVIC_UNPEND0_INT13 0x00002000 // Interrupt 13 unpend -#define NVIC_UNPEND0_INT12 0x00001000 // Interrupt 12 unpend -#define NVIC_UNPEND0_INT11 0x00000800 // Interrupt 11 unpend -#define NVIC_UNPEND0_INT10 0x00000400 // Interrupt 10 unpend -#define NVIC_UNPEND0_INT9 0x00000200 // Interrupt 9 unpend -#define NVIC_UNPEND0_INT8 0x00000100 // Interrupt 8 unpend -#define NVIC_UNPEND0_INT7 0x00000080 // Interrupt 7 unpend -#define NVIC_UNPEND0_INT6 0x00000040 // Interrupt 6 unpend -#define NVIC_UNPEND0_INT5 0x00000020 // Interrupt 5 unpend -#define NVIC_UNPEND0_INT4 0x00000010 // Interrupt 4 unpend -#define NVIC_UNPEND0_INT3 0x00000008 // Interrupt 3 unpend -#define NVIC_UNPEND0_INT2 0x00000004 // Interrupt 2 unpend -#define NVIC_UNPEND0_INT1 0x00000002 // Interrupt 1 unpend -#define NVIC_UNPEND0_INT0 0x00000001 // Interrupt 0 unpend - -//***************************************************************************** -// -// The following are defines for the bit fields in the NVIC_UNPEND1 register. -// -//***************************************************************************** -#define NVIC_UNPEND1_INT59 0x08000000 // Interrupt 59 unpend -#define NVIC_UNPEND1_INT58 0x04000000 // Interrupt 58 unpend -#define NVIC_UNPEND1_INT57 0x02000000 // Interrupt 57 unpend -#define NVIC_UNPEND1_INT56 0x01000000 // Interrupt 56 unpend -#define NVIC_UNPEND1_INT55 0x00800000 // Interrupt 55 unpend -#define NVIC_UNPEND1_INT54 0x00400000 // Interrupt 54 unpend -#define NVIC_UNPEND1_INT53 0x00200000 // Interrupt 53 unpend -#define NVIC_UNPEND1_INT52 0x00100000 // Interrupt 52 unpend -#define NVIC_UNPEND1_INT51 0x00080000 // Interrupt 51 unpend -#define NVIC_UNPEND1_INT50 0x00040000 // Interrupt 50 unpend -#define NVIC_UNPEND1_INT49 0x00020000 // Interrupt 49 unpend -#define NVIC_UNPEND1_INT48 0x00010000 // Interrupt 48 unpend -#define NVIC_UNPEND1_INT47 0x00008000 // Interrupt 47 unpend -#define NVIC_UNPEND1_INT46 0x00004000 // Interrupt 46 unpend -#define NVIC_UNPEND1_INT45 0x00002000 // Interrupt 45 unpend -#define NVIC_UNPEND1_INT44 0x00001000 // Interrupt 44 unpend -#define NVIC_UNPEND1_INT43 0x00000800 // Interrupt 43 unpend -#define NVIC_UNPEND1_INT42 0x00000400 // Interrupt 42 unpend -#define NVIC_UNPEND1_INT41 0x00000200 // Interrupt 41 unpend -#define NVIC_UNPEND1_INT40 0x00000100 // Interrupt 40 unpend -#define NVIC_UNPEND1_INT39 0x00000080 // Interrupt 39 unpend -#define NVIC_UNPEND1_INT38 0x00000040 // Interrupt 38 unpend -#define NVIC_UNPEND1_INT37 0x00000020 // Interrupt 37 unpend -#define NVIC_UNPEND1_INT36 0x00000010 // Interrupt 36 unpend -#define NVIC_UNPEND1_INT35 0x00000008 // Interrupt 35 unpend -#define NVIC_UNPEND1_INT34 0x00000004 // Interrupt 34 unpend -#define NVIC_UNPEND1_INT33 0x00000002 // Interrupt 33 unpend -#define NVIC_UNPEND1_INT32 0x00000001 // Interrupt 32 unpend - -//***************************************************************************** -// -// The following are defines for the bit fields in the NVIC_ACTIVE0 register. -// -//***************************************************************************** -#define NVIC_ACTIVE0_INT31 0x80000000 // Interrupt 31 active -#define NVIC_ACTIVE0_INT30 0x40000000 // Interrupt 30 active -#define NVIC_ACTIVE0_INT29 0x20000000 // Interrupt 29 active -#define NVIC_ACTIVE0_INT28 0x10000000 // Interrupt 28 active -#define NVIC_ACTIVE0_INT27 0x08000000 // Interrupt 27 active -#define NVIC_ACTIVE0_INT26 0x04000000 // Interrupt 26 active -#define NVIC_ACTIVE0_INT25 0x02000000 // Interrupt 25 active -#define NVIC_ACTIVE0_INT24 0x01000000 // Interrupt 24 active -#define NVIC_ACTIVE0_INT23 0x00800000 // Interrupt 23 active -#define NVIC_ACTIVE0_INT22 0x00400000 // Interrupt 22 active -#define NVIC_ACTIVE0_INT21 0x00200000 // Interrupt 21 active -#define NVIC_ACTIVE0_INT20 0x00100000 // Interrupt 20 active -#define NVIC_ACTIVE0_INT19 0x00080000 // Interrupt 19 active -#define NVIC_ACTIVE0_INT18 0x00040000 // Interrupt 18 active -#define NVIC_ACTIVE0_INT17 0x00020000 // Interrupt 17 active -#define NVIC_ACTIVE0_INT16 0x00010000 // Interrupt 16 active -#define NVIC_ACTIVE0_INT15 0x00008000 // Interrupt 15 active -#define NVIC_ACTIVE0_INT14 0x00004000 // Interrupt 14 active -#define NVIC_ACTIVE0_INT13 0x00002000 // Interrupt 13 active -#define NVIC_ACTIVE0_INT12 0x00001000 // Interrupt 12 active -#define NVIC_ACTIVE0_INT11 0x00000800 // Interrupt 11 active -#define NVIC_ACTIVE0_INT10 0x00000400 // Interrupt 10 active -#define NVIC_ACTIVE0_INT9 0x00000200 // Interrupt 9 active -#define NVIC_ACTIVE0_INT8 0x00000100 // Interrupt 8 active -#define NVIC_ACTIVE0_INT7 0x00000080 // Interrupt 7 active -#define NVIC_ACTIVE0_INT6 0x00000040 // Interrupt 6 active -#define NVIC_ACTIVE0_INT5 0x00000020 // Interrupt 5 active -#define NVIC_ACTIVE0_INT4 0x00000010 // Interrupt 4 active -#define NVIC_ACTIVE0_INT3 0x00000008 // Interrupt 3 active -#define NVIC_ACTIVE0_INT2 0x00000004 // Interrupt 2 active -#define NVIC_ACTIVE0_INT1 0x00000002 // Interrupt 1 active -#define NVIC_ACTIVE0_INT0 0x00000001 // Interrupt 0 active - -//***************************************************************************** -// -// The following are defines for the bit fields in the NVIC_ACTIVE1 register. -// -//***************************************************************************** -#define NVIC_ACTIVE1_INT59 0x08000000 // Interrupt 59 active -#define NVIC_ACTIVE1_INT58 0x04000000 // Interrupt 58 active -#define NVIC_ACTIVE1_INT57 0x02000000 // Interrupt 57 active -#define NVIC_ACTIVE1_INT56 0x01000000 // Interrupt 56 active -#define NVIC_ACTIVE1_INT55 0x00800000 // Interrupt 55 active -#define NVIC_ACTIVE1_INT54 0x00400000 // Interrupt 54 active -#define NVIC_ACTIVE1_INT53 0x00200000 // Interrupt 53 active -#define NVIC_ACTIVE1_INT52 0x00100000 // Interrupt 52 active -#define NVIC_ACTIVE1_INT51 0x00080000 // Interrupt 51 active -#define NVIC_ACTIVE1_INT50 0x00040000 // Interrupt 50 active -#define NVIC_ACTIVE1_INT49 0x00020000 // Interrupt 49 active -#define NVIC_ACTIVE1_INT48 0x00010000 // Interrupt 48 active -#define NVIC_ACTIVE1_INT47 0x00008000 // Interrupt 47 active -#define NVIC_ACTIVE1_INT46 0x00004000 // Interrupt 46 active -#define NVIC_ACTIVE1_INT45 0x00002000 // Interrupt 45 active -#define NVIC_ACTIVE1_INT44 0x00001000 // Interrupt 44 active -#define NVIC_ACTIVE1_INT43 0x00000800 // Interrupt 43 active -#define NVIC_ACTIVE1_INT42 0x00000400 // Interrupt 42 active -#define NVIC_ACTIVE1_INT41 0x00000200 // Interrupt 41 active -#define NVIC_ACTIVE1_INT40 0x00000100 // Interrupt 40 active -#define NVIC_ACTIVE1_INT39 0x00000080 // Interrupt 39 active -#define NVIC_ACTIVE1_INT38 0x00000040 // Interrupt 38 active -#define NVIC_ACTIVE1_INT37 0x00000020 // Interrupt 37 active -#define NVIC_ACTIVE1_INT36 0x00000010 // Interrupt 36 active -#define NVIC_ACTIVE1_INT35 0x00000008 // Interrupt 35 active -#define NVIC_ACTIVE1_INT34 0x00000004 // Interrupt 34 active -#define NVIC_ACTIVE1_INT33 0x00000002 // Interrupt 33 active -#define NVIC_ACTIVE1_INT32 0x00000001 // Interrupt 32 active - -//***************************************************************************** -// -// The following are defines for the bit fields in the NVIC_PRI0 register. -// -//***************************************************************************** -#define NVIC_PRI0_INT3_M 0xFF000000 // Interrupt 3 priority mask -#define NVIC_PRI0_INT2_M 0x00FF0000 // Interrupt 2 priority mask -#define NVIC_PRI0_INT1_M 0x0000FF00 // Interrupt 1 priority mask -#define NVIC_PRI0_INT0_M 0x000000FF // Interrupt 0 priority mask -#define NVIC_PRI0_INT3_S 24 -#define NVIC_PRI0_INT2_S 16 -#define NVIC_PRI0_INT1_S 8 -#define NVIC_PRI0_INT0_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the NVIC_PRI1 register. -// -//***************************************************************************** -#define NVIC_PRI1_INT7_M 0xFF000000 // Interrupt 7 priority mask -#define NVIC_PRI1_INT6_M 0x00FF0000 // Interrupt 6 priority mask -#define NVIC_PRI1_INT5_M 0x0000FF00 // Interrupt 5 priority mask -#define NVIC_PRI1_INT4_M 0x000000FF // Interrupt 4 priority mask -#define NVIC_PRI1_INT7_S 24 -#define NVIC_PRI1_INT6_S 16 -#define NVIC_PRI1_INT5_S 8 -#define NVIC_PRI1_INT4_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the NVIC_PRI2 register. -// -//***************************************************************************** -#define NVIC_PRI2_INT11_M 0xFF000000 // Interrupt 11 priority mask -#define NVIC_PRI2_INT10_M 0x00FF0000 // Interrupt 10 priority mask -#define NVIC_PRI2_INT9_M 0x0000FF00 // Interrupt 9 priority mask -#define NVIC_PRI2_INT8_M 0x000000FF // Interrupt 8 priority mask -#define NVIC_PRI2_INT11_S 24 -#define NVIC_PRI2_INT10_S 16 -#define NVIC_PRI2_INT9_S 8 -#define NVIC_PRI2_INT8_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the NVIC_PRI3 register. -// -//***************************************************************************** -#define NVIC_PRI3_INT15_M 0xFF000000 // Interrupt 15 priority mask -#define NVIC_PRI3_INT14_M 0x00FF0000 // Interrupt 14 priority mask -#define NVIC_PRI3_INT13_M 0x0000FF00 // Interrupt 13 priority mask -#define NVIC_PRI3_INT12_M 0x000000FF // Interrupt 12 priority mask -#define NVIC_PRI3_INT15_S 24 -#define NVIC_PRI3_INT14_S 16 -#define NVIC_PRI3_INT13_S 8 -#define NVIC_PRI3_INT12_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the NVIC_PRI4 register. -// -//***************************************************************************** -#define NVIC_PRI4_INT19_M 0xFF000000 // Interrupt 19 priority mask -#define NVIC_PRI4_INT18_M 0x00FF0000 // Interrupt 18 priority mask -#define NVIC_PRI4_INT17_M 0x0000FF00 // Interrupt 17 priority mask -#define NVIC_PRI4_INT16_M 0x000000FF // Interrupt 16 priority mask -#define NVIC_PRI4_INT19_S 24 -#define NVIC_PRI4_INT18_S 16 -#define NVIC_PRI4_INT17_S 8 -#define NVIC_PRI4_INT16_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the NVIC_PRI5 register. -// -//***************************************************************************** -#define NVIC_PRI5_INT23_M 0xFF000000 // Interrupt 23 priority mask -#define NVIC_PRI5_INT22_M 0x00FF0000 // Interrupt 22 priority mask -#define NVIC_PRI5_INT21_M 0x0000FF00 // Interrupt 21 priority mask -#define NVIC_PRI5_INT20_M 0x000000FF // Interrupt 20 priority mask -#define NVIC_PRI5_INT23_S 24 -#define NVIC_PRI5_INT22_S 16 -#define NVIC_PRI5_INT21_S 8 -#define NVIC_PRI5_INT20_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the NVIC_PRI6 register. -// -//***************************************************************************** -#define NVIC_PRI6_INT27_M 0xFF000000 // Interrupt 27 priority mask -#define NVIC_PRI6_INT26_M 0x00FF0000 // Interrupt 26 priority mask -#define NVIC_PRI6_INT25_M 0x0000FF00 // Interrupt 25 priority mask -#define NVIC_PRI6_INT24_M 0x000000FF // Interrupt 24 priority mask -#define NVIC_PRI6_INT27_S 24 -#define NVIC_PRI6_INT26_S 16 -#define NVIC_PRI6_INT25_S 8 -#define NVIC_PRI6_INT24_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the NVIC_PRI7 register. -// -//***************************************************************************** -#define NVIC_PRI7_INT31_M 0xFF000000 // Interrupt 31 priority mask -#define NVIC_PRI7_INT30_M 0x00FF0000 // Interrupt 30 priority mask -#define NVIC_PRI7_INT29_M 0x0000FF00 // Interrupt 29 priority mask -#define NVIC_PRI7_INT28_M 0x000000FF // Interrupt 28 priority mask -#define NVIC_PRI7_INT31_S 24 -#define NVIC_PRI7_INT30_S 16 -#define NVIC_PRI7_INT29_S 8 -#define NVIC_PRI7_INT28_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the NVIC_PRI8 register. -// -//***************************************************************************** -#define NVIC_PRI8_INT35_M 0xFF000000 // Interrupt 35 priority mask -#define NVIC_PRI8_INT34_M 0x00FF0000 // Interrupt 34 priority mask -#define NVIC_PRI8_INT33_M 0x0000FF00 // Interrupt 33 priority mask -#define NVIC_PRI8_INT32_M 0x000000FF // Interrupt 32 priority mask -#define NVIC_PRI8_INT35_S 24 -#define NVIC_PRI8_INT34_S 16 -#define NVIC_PRI8_INT33_S 8 -#define NVIC_PRI8_INT32_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the NVIC_PRI9 register. -// -//***************************************************************************** -#define NVIC_PRI9_INT39_M 0xFF000000 // Interrupt 39 priority mask -#define NVIC_PRI9_INT38_M 0x00FF0000 // Interrupt 38 priority mask -#define NVIC_PRI9_INT37_M 0x0000FF00 // Interrupt 37 priority mask -#define NVIC_PRI9_INT36_M 0x000000FF // Interrupt 36 priority mask -#define NVIC_PRI9_INT39_S 24 -#define NVIC_PRI9_INT38_S 16 -#define NVIC_PRI9_INT37_S 8 -#define NVIC_PRI9_INT36_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the NVIC_PRI10 register. -// -//***************************************************************************** -#define NVIC_PRI10_INT43_M 0xFF000000 // Interrupt 43 priority mask -#define NVIC_PRI10_INT42_M 0x00FF0000 // Interrupt 42 priority mask -#define NVIC_PRI10_INT41_M 0x0000FF00 // Interrupt 41 priority mask -#define NVIC_PRI10_INT40_M 0x000000FF // Interrupt 40 priority mask -#define NVIC_PRI10_INT43_S 24 -#define NVIC_PRI10_INT42_S 16 -#define NVIC_PRI10_INT41_S 8 -#define NVIC_PRI10_INT40_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the NVIC_CPUID register. -// -//***************************************************************************** -#define NVIC_CPUID_IMP_M 0xFF000000 // Implementer -#define NVIC_CPUID_VAR_M 0x00F00000 // Variant -#define NVIC_CPUID_PARTNO_M 0x0000FFF0 // Processor part number -#define NVIC_CPUID_REV_M 0x0000000F // Revision - -//***************************************************************************** -// -// The following are defines for the bit fields in the NVIC_INT_CTRL register. -// -//***************************************************************************** -#define NVIC_INT_CTRL_NMI_SET 0x80000000 // Pend a NMI -#define NVIC_INT_CTRL_PEND_SV 0x10000000 // Pend a PendSV -#define NVIC_INT_CTRL_UNPEND_SV 0x08000000 // Unpend a PendSV -#define NVIC_INT_CTRL_PENDSTSET 0x04000000 // Set pending SysTick interrupt -#define NVIC_INT_CTRL_PENDSTCLR 0x02000000 // Clear pending SysTick interrupt -#define NVIC_INT_CTRL_ISR_PRE 0x00800000 // Debug interrupt handling -#define NVIC_INT_CTRL_ISR_PEND 0x00400000 // Debug interrupt pending -#define NVIC_INT_CTRL_VEC_PEN_M 0x003FF000 // Highest pending exception -#define NVIC_INT_CTRL_RET_BASE 0x00000800 // Return to base -#define NVIC_INT_CTRL_VEC_ACT_M 0x000003FF // Current active exception -#define NVIC_INT_CTRL_VEC_PEN_S 12 -#define NVIC_INT_CTRL_VEC_ACT_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the NVIC_VTABLE register. -// -//***************************************************************************** -#define NVIC_VTABLE_BASE 0x20000000 // Vector table base -#define NVIC_VTABLE_OFFSET_M 0x1FFFFF00 // Vector table offset -#define NVIC_VTABLE_OFFSET_S 8 - -//***************************************************************************** -// -// The following are defines for the bit fields in the NVIC_APINT register. -// -//***************************************************************************** -#define NVIC_APINT_VECTKEY_M 0xFFFF0000 // Vector key mask -#define NVIC_APINT_VECTKEY 0x05FA0000 // Vector key -#define NVIC_APINT_ENDIANESS 0x00008000 // Data endianess -#define NVIC_APINT_PRIGROUP_M 0x00000700 // Priority group -#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 info -#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 // Wakeup on pend -#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_BFHFNMIGN 0x00000100 // Ignore bus fault in NMI/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_DEEP_PEND 0x00000004 // Allow deep interrupt trigger -#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_RES_M 0xFF000000 // Priority of reserved handler -#define NVIC_SYS_PRI1_USAGE_M 0x00FF0000 // Priority of usage fault handler -#define NVIC_SYS_PRI1_BUS_M 0x0000FF00 // Priority of bus fault handler -#define NVIC_SYS_PRI1_MEM_M 0x000000FF // Priority of mem manage handler -#define NVIC_SYS_PRI1_USAGE_S 16 -#define NVIC_SYS_PRI1_BUS_S 8 -#define NVIC_SYS_PRI1_MEM_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the NVIC_SYS_PRI2 register. -// -//***************************************************************************** -#define NVIC_SYS_PRI2_SVC_M 0xFF000000 // Priority of SVCall handler -#define NVIC_SYS_PRI2_RES_M 0x00FFFFFF // Priority of reserved handlers -#define NVIC_SYS_PRI2_SVC_S 24 - -//***************************************************************************** -// -// The following are defines for the bit fields in the NVIC_SYS_PRI3 register. -// -//***************************************************************************** -#define NVIC_SYS_PRI3_TICK_M 0xFF000000 // Priority of Sys Tick handler -#define NVIC_SYS_PRI3_PENDSV_M 0x00FF0000 // Priority of PendSV handler -#define NVIC_SYS_PRI3_RES_M 0x0000FF00 // Priority of reserved handler -#define NVIC_SYS_PRI3_DEBUG_M 0x000000FF // Priority of debug handler -#define NVIC_SYS_PRI3_TICK_S 24 -#define NVIC_SYS_PRI3_PENDSV_S 16 -#define NVIC_SYS_PRI3_DEBUG_S 0 - -//***************************************************************************** -// -// 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 // Mem manage fault enable -#define NVIC_SYS_HND_CTRL_SVC 0x00008000 // SVCall is pended -#define NVIC_SYS_HND_CTRL_BUSP 0x00004000 // Bus fault is pended -#define NVIC_SYS_HND_CTRL_TICK 0x00000800 // Sys tick is active -#define NVIC_SYS_HND_CTRL_PNDSV 0x00000400 // PendSV is active -#define NVIC_SYS_HND_CTRL_MON 0x00000100 // Monitor is active -#define NVIC_SYS_HND_CTRL_SVCA 0x00000080 // SVCall is active -#define NVIC_SYS_HND_CTRL_USGA 0x00000008 // Usage fault is active -#define NVIC_SYS_HND_CTRL_BUSA 0x00000002 // Bus fault is active -#define NVIC_SYS_HND_CTRL_MEMA 0x00000001 // Mem manage is active - -//***************************************************************************** -// -// The following are defines for the bit fields in the NVIC_FAULT_STAT -// register. -// -//***************************************************************************** -#define NVIC_FAULT_STAT_DIV0 0x02000000 // Divide by zero fault -#define NVIC_FAULT_STAT_UNALIGN 0x01000000 // Unaligned access fault -#define NVIC_FAULT_STAT_NOCP 0x00080000 // No coprocessor fault -#define NVIC_FAULT_STAT_INVPC 0x00040000 // Invalid PC fault -#define NVIC_FAULT_STAT_INVSTAT 0x00020000 // Invalid state fault -#define NVIC_FAULT_STAT_UNDEF 0x00010000 // Undefined instruction fault -#define NVIC_FAULT_STAT_BFARV 0x00008000 // BFAR is valid -#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 fault -#define NVIC_FAULT_STAT_MMARV 0x00000080 // MMAR is valid -#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 // Cannot execute fault handler -#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 // Data 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 // Data bus fault address -#define NVIC_FAULT_ADDR_S 0 - -//***************************************************************************** -// -// 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 in priv mode -#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 0x000000FF // 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 0x0000000F // Region number -#define NVIC_MPU_BASE_ADDR_S 8 -#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_M 0xFFFF0000 // Attributes -#define NVIC_MPU_ATTR_AP_NO_NO 0x00000000 // prv: no access, usr: no access -#define NVIC_MPU_ATTR_BUFFRABLE 0x00010000 // Bufferable -#define NVIC_MPU_ATTR_CACHEABLE 0x00020000 // Cacheable -#define NVIC_MPU_ATTR_SHAREABLE 0x00040000 // Shareable -#define NVIC_MPU_ATTR_TEX_M 0x00380000 // Type extension mask -#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_AP_M 0x07000000 // Access permissions mask -#define NVIC_MPU_ATTR_XN 0x10000000 // Execute disable -#define NVIC_MPU_ATTR_SRD_M 0x0000FF00 // Sub-region disable mask -#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_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 0x000003FF // Interrupt to trigger -#define NVIC_SW_TRIG_INTID_S 0 - -//***************************************************************************** -// -// The following definitions are deprecated. -// -//***************************************************************************** -#ifndef DEPRECATED - -//***************************************************************************** -// -// Deprecated defines for the Watchdog -// -//***************************************************************************** -#define WATCHDOG_LOAD_R (*((volatile unsigned long *)0x40000000)) -#define WATCHDOG_VALUE_R (*((volatile unsigned long *)0x40000004)) -#define WATCHDOG_CTL_R (*((volatile unsigned long *)0x40000008)) -#define WATCHDOG_ICR_R (*((volatile unsigned long *)0x4000000C)) -#define WATCHDOG_RIS_R (*((volatile unsigned long *)0x40000010)) -#define WATCHDOG_MIS_R (*((volatile unsigned long *)0x40000014)) -#define WATCHDOG_TEST_R (*((volatile unsigned long *)0x40000418)) -#define WATCHDOG_LOCK_R (*((volatile unsigned long *)0x40000C00)) - -//***************************************************************************** -// -// Deprecated defines for the bit fields in the I2C_O_SICR register. -// -//***************************************************************************** -#define I2C_SICR_IC 0x00000001 // Clear Interrupt - -//***************************************************************************** -// -// Deprecated defines for the bit fields in the I2C_O_SMIS register. -// -//***************************************************************************** -#define I2C_SMIS_MIS 0x00000001 // Masked Interrupt Status - -//***************************************************************************** -// -// Deprecated defines for the bit fields in the I2C_O_SRIS register. -// -//***************************************************************************** -#define I2C_SRIS_RIS 0x00000001 // Raw Interrupt Status - -//***************************************************************************** -// -// Deprecated defines for the bit fields in the I2C_O_SIMR register. -// -//***************************************************************************** -#define I2C_SIMR_IM 0x00000001 // Interrupt Mask - -//***************************************************************************** -// -// Deprecated defines for the bit fields in the the interpretation of the data -// in the SSFIFOx when the ADC TMLB is enabled. register. -// -//***************************************************************************** -#define ADC_TMLB_CNT_M 0x000003C0 // Continuous Sample Counter -#define ADC_TMLB_CONT 0x00000020 // Continuation Sample Indicator -#define ADC_TMLB_DIFF 0x00000010 // Differential Sample Indicator -#define ADC_TMLB_TS 0x00000008 // Temp Sensor Sample Indicator -#define ADC_TMLB_MUX_M 0x00000007 // Analog Input Indicator -#define ADC_TMLB_CNT_S 6 // Sample counter shift -#define ADC_TMLB_MUX_S 0 // Input channel number shift - -//***************************************************************************** -// -// Deprecated defines for the ADC register offsets. -// -//***************************************************************************** -#define ADC_ACTSS_R (*((volatile unsigned long *)0x40038000)) -#define ADC_RIS_R (*((volatile unsigned long *)0x40038004)) -#define ADC_IM_R (*((volatile unsigned long *)0x40038008)) -#define ADC_ISC_R (*((volatile unsigned long *)0x4003800C)) -#define ADC_OSTAT_R (*((volatile unsigned long *)0x40038010)) -#define ADC_EMUX_R (*((volatile unsigned long *)0x40038014)) -#define ADC_USTAT_R (*((volatile unsigned long *)0x40038018)) -#define ADC_SSPRI_R (*((volatile unsigned long *)0x40038020)) -#define ADC_PSSI_R (*((volatile unsigned long *)0x40038028)) -#define ADC_SAC_R (*((volatile unsigned long *)0x40038030)) -#define ADC_SSMUX0_R (*((volatile unsigned long *)0x40038040)) -#define ADC_SSCTL0_R (*((volatile unsigned long *)0x40038044)) -#define ADC_SSFIFO0_R (*((volatile unsigned long *)0x40038048)) -#define ADC_SSFSTAT0_R (*((volatile unsigned long *)0x4003804C)) -#define ADC_SSMUX1_R (*((volatile unsigned long *)0x40038060)) -#define ADC_SSCTL1_R (*((volatile unsigned long *)0x40038064)) -#define ADC_SSFIFO1_R (*((volatile unsigned long *)0x40038068)) -#define ADC_SSFSTAT1_R (*((volatile unsigned long *)0x4003806C)) -#define ADC_SSMUX2_R (*((volatile unsigned long *)0x40038080)) -#define ADC_SSCTL2_R (*((volatile unsigned long *)0x40038084)) -#define ADC_SSFIFO2_R (*((volatile unsigned long *)0x40038088)) -#define ADC_SSFSTAT2_R (*((volatile unsigned long *)0x4003808C)) -#define ADC_SSMUX3_R (*((volatile unsigned long *)0x400380A0)) -#define ADC_SSCTL3_R (*((volatile unsigned long *)0x400380A4)) -#define ADC_SSFIFO3_R (*((volatile unsigned long *)0x400380A8)) -#define ADC_SSFSTAT3_R (*((volatile unsigned long *)0x400380AC)) -#define ADC_TMLB_R (*((volatile unsigned long *)0x40038100)) - -//***************************************************************************** -// -// Deprecated defines for the bit fields in the FLASH_FMC register. -// -//***************************************************************************** -#define FLASH_FMC_WRKEY_M 0xFFFF0000 // Flash Memory Write Key -#define FLASH_FMC_WRKEY_S 16 - -//***************************************************************************** -// -// Deprecated defines for the bit fields in the SYSCTL_DID1 register. -// -//***************************************************************************** -#define SYSCTL_DID1_PKG_28SOIC 0x00000000 // SOIC package -#define SYSCTL_DID1_PKG_48QFP 0x00000008 // QFP package - -//***************************************************************************** -// -// Deprecated defines for the NVIC register addresses. -// -//***************************************************************************** -#define NVIC_MPU_R (*((volatile unsigned long *)0xE000ED9C)) - -#endif - -#endif // __LM3S8962_H__ diff --git a/bsp/lm3s8962/project.Uv2 b/bsp/lm3s8962/project.Uv2 index 16179a344b..2168aad07d 100644 --- a/bsp/lm3s8962/project.Uv2 +++ b/bsp/lm3s8962/project.Uv2 @@ -22,19 +22,24 @@ File 3,1, File 3,1, File 3,1, File 3,1, +File 3,1, File 3,1, File 3,1, +File 3,1, File 3,1, File 3,1, File 3,1, File 3,1, File 3,1, File 3,1, +File 3,1, File 3,1, +File 3,1, File 3,1, File 3,1, File 3,1, File 3,1, +File 3,1, File 3,1, File 3,1, File 3,1, @@ -177,7 +182,7 @@ Options 1,0,0 // Target 'RT-Thread-lm3s' RV_STAVEC () ADSCCFLG { 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } ADSCMISC () - ADSCDEFN () + ADSCDEFN (PART_LM3S8962) ADSCUDEF () ADSCINCD (..\..\components\net\lwip\src\include\ipv4;..\..\include;..\..\components\net\lwip\src\include;drivers;..\..\components\dfs;.;Libraries;applications;..\..\components\net\lwip\src\arch\include;..\..\libcpu\arm\cortex-m3;..\..\components\net\lwip\src;..\..\libcpu\arm\common;..\..\components\finsh;..\..\components\net\lwip\src\include\netif;..\..\components\dfs\include) ADSASFLG { 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } diff --git a/bsp/lm3s8962/rtconfig.py b/bsp/lm3s8962/rtconfig.py index caef9a28a4..9c753dee70 100644 --- a/bsp/lm3s8962/rtconfig.py +++ b/bsp/lm3s8962/rtconfig.py @@ -3,6 +3,9 @@ ARCH='arm' CPU='cortex-m3' CROSS_TOOL = 'keil' +#device options +PART_TYPE = 'PART_LM3S8962' + if CROSS_TOOL == 'gcc': PLATFORM = 'gcc' EXEC_PATH = 'E:/Program Files/CodeSourcery/Sourcery G++ Lite/bin' diff --git a/bsp/lm4f232/Libraries/SConscript b/bsp/lm4f232/Libraries/SConscript index 27ff3b7105..784d61658a 100644 --- a/bsp/lm4f232/Libraries/SConscript +++ b/bsp/lm4f232/Libraries/SConscript @@ -6,6 +6,10 @@ from building import * cwd = GetCurrentDir() src = Glob('driverlib/*.c') +# cortex-m3 no FPU. +if rtconfig.PART_TYPE.startswith('PART_LM4F') != True: + SrcRemove(src, 'fpu.c') + # add for startup script if rtconfig.CROSS_TOOL == 'gcc': src += ['startup/gcc/start_gcc.s'] @@ -16,6 +20,7 @@ elif rtconfig.CROSS_TOOL == 'iar': CPPPATH = [cwd] -group = DefineGroup('Libraries', src, depend = [''], CPPPATH = CPPPATH) +CPPDEFINES = [rtconfig.PART_TYPE] +group = DefineGroup('Libraries', src, depend = [''], CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES) Return('group') diff --git a/bsp/lm4f232/Libraries/driverlib/Makefile b/bsp/lm4f232/Libraries/driverlib/Makefile deleted file mode 100644 index 7d4fb09a66..0000000000 --- a/bsp/lm4f232/Libraries/driverlib/Makefile +++ /dev/null @@ -1,35 +0,0 @@ -#****************************************************************************** -# -# Makefile - Rules for building the driver library. -# -# Copyright (c) 2011 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 8049 of the Stellaris Peripheral Driver Library. -# -#****************************************************************************** - -all: - @make -f Makefile.driverlib-cm3 - @make -f Makefile.driverlib-cm4f - -clean: - @make -f Makefile.driverlib-cm3 clean - @make -f Makefile.driverlib-cm4f clean - -realclean: - @make -f Makefile.driverlib-cm3 realclean - @make -f Makefile.driverlib-cm4f realclean diff --git a/bsp/lm4f232/Libraries/driverlib/Makefile.driverlib-cm4f b/bsp/lm4f232/Libraries/driverlib/Makefile.driverlib-cm4f deleted file mode 100644 index cf8a4edfe0..0000000000 --- a/bsp/lm4f232/Libraries/driverlib/Makefile.driverlib-cm4f +++ /dev/null @@ -1,106 +0,0 @@ -#****************************************************************************** -# -# Makefile.driverlib-cm4f - Rules for building the driver library. -# -# Copyright (c) 2005-2011 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 8049 of the Stellaris Peripheral Driver Library. -# -#****************************************************************************** - -# -# Defines the directory suffix that this project uses. -# -SUFFIX=-cm4f - -# -# Set the processor variant. -# -VARIANT=cm4f - -# -# The base directory for StellarisWare. -# -ROOT=.. - -# -# Include the common make definitions. -# -include ${ROOT}/makedefs - -# -# Where to find header files that do not live in the source directory. -# -IPATH=.. - -# -# The default rule, which causes the driver library to be built. -# -all: ${COMPILER}-cm4f -all: ${COMPILER}-cm4f/libdriver-cm4f.a - -# -# The rule to clean out all the build products. -# -clean: - @rm -rf ${COMPILER}-cm4f ${wildcard *~} - -# -# The rule to create the target directory. -# -${COMPILER}-cm4f: - @mkdir -p ${COMPILER}-cm4f - -# -# Rules for building the driver library. -# -${COMPILER}-cm4f/libdriver-cm4f.a: ${COMPILER}-cm4f/adc.o -${COMPILER}-cm4f/libdriver-cm4f.a: ${COMPILER}-cm4f/can.o -${COMPILER}-cm4f/libdriver-cm4f.a: ${COMPILER}-cm4f/comp.o -${COMPILER}-cm4f/libdriver-cm4f.a: ${COMPILER}-cm4f/cpu.o -${COMPILER}-cm4f/libdriver-cm4f.a: ${COMPILER}-cm4f/eeprom.o -${COMPILER}-cm4f/libdriver-cm4f.a: ${COMPILER}-cm4f/epi.o -${COMPILER}-cm4f/libdriver-cm4f.a: ${COMPILER}-cm4f/ethernet.o -${COMPILER}-cm4f/libdriver-cm4f.a: ${COMPILER}-cm4f/fan.o -${COMPILER}-cm4f/libdriver-cm4f.a: ${COMPILER}-cm4f/flash.o -${COMPILER}-cm4f/libdriver-cm4f.a: ${COMPILER}-cm4f/fpu.o -${COMPILER}-cm4f/libdriver-cm4f.a: ${COMPILER}-cm4f/gpio.o -${COMPILER}-cm4f/libdriver-cm4f.a: ${COMPILER}-cm4f/hibernate.o -${COMPILER}-cm4f/libdriver-cm4f.a: ${COMPILER}-cm4f/i2c.o -${COMPILER}-cm4f/libdriver-cm4f.a: ${COMPILER}-cm4f/i2s.o -${COMPILER}-cm4f/libdriver-cm4f.a: ${COMPILER}-cm4f/interrupt.o -${COMPILER}-cm4f/libdriver-cm4f.a: ${COMPILER}-cm4f/lpc.o -${COMPILER}-cm4f/libdriver-cm4f.a: ${COMPILER}-cm4f/mpu.o -${COMPILER}-cm4f/libdriver-cm4f.a: ${COMPILER}-cm4f/peci.o -${COMPILER}-cm4f/libdriver-cm4f.a: ${COMPILER}-cm4f/pwm.o -${COMPILER}-cm4f/libdriver-cm4f.a: ${COMPILER}-cm4f/qei.o -${COMPILER}-cm4f/libdriver-cm4f.a: ${COMPILER}-cm4f/ssi.o -${COMPILER}-cm4f/libdriver-cm4f.a: ${COMPILER}-cm4f/sysctl.o -${COMPILER}-cm4f/libdriver-cm4f.a: ${COMPILER}-cm4f/sysexc.o -${COMPILER}-cm4f/libdriver-cm4f.a: ${COMPILER}-cm4f/systick.o -${COMPILER}-cm4f/libdriver-cm4f.a: ${COMPILER}-cm4f/timer.o -${COMPILER}-cm4f/libdriver-cm4f.a: ${COMPILER}-cm4f/uart.o -${COMPILER}-cm4f/libdriver-cm4f.a: ${COMPILER}-cm4f/udma.o -${COMPILER}-cm4f/libdriver-cm4f.a: ${COMPILER}-cm4f/usb.o -${COMPILER}-cm4f/libdriver-cm4f.a: ${COMPILER}-cm4f/watchdog.o - -# -# Include the automatically generated dependency files. -# -ifneq (${MAKECMDGOALS},clean) --include ${wildcard ${COMPILER}-cm4f/*.d} __dummy__ -endif diff --git a/bsp/lm4f232/Libraries/driverlib/adc.c b/bsp/lm4f232/Libraries/driverlib/adc.c index b03c91aa91..c306389a5b 100644 --- a/bsp/lm4f232/Libraries/driverlib/adc.c +++ b/bsp/lm4f232/Libraries/driverlib/adc.c @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -72,10 +72,10 @@ static unsigned char g_pucOversampleFactor[3]; //! ADC sample sequence interrupt occurs. //! //! This function sets the handler to be called when a sample sequence -//! interrupt occurs. This will enable the global interrupt in the interrupt -//! controller; the sequence interrupt must be enabled with ADCIntEnable(). It -//! is the interrupt handler's responsibility to clear the interrupt source via -//! ADCIntClear(). +//! interrupt occurs. This function enables the global interrupt in the +//! interrupt controller; the sequence interrupt must be enabled with +//! ADCIntEnable(). It is the interrupt handler's responsibility to clear the +//! interrupt source via ADCIntClear(). //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -119,9 +119,9 @@ ADCIntRegister(unsigned long ulBase, unsigned long ulSequenceNum, //! \param ulBase is the base address of the ADC module. //! \param ulSequenceNum is the sample sequence number. //! -//! This function unregisters the interrupt handler. This will disable the -//! global interrupt in the interrupt controller; the sequence interrupt must -//! be disabled via ADCIntDisable(). +//! This function unregisters the interrupt handler. This function disables +//! the global interrupt in the interrupt controller; the sequence interrupt +//! must be disabled via ADCIntDisable(). //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -227,9 +227,9 @@ ADCIntEnable(unsigned long ulBase, unsigned long ulSequenceNum) //! \param bMasked is false if the raw interrupt status is required and true if //! the masked interrupt status is required. //! -//! This returns the interrupt status for the specified sample sequence. -//! Either the raw interrupt status or the status of interrupts that are -//! allowed to reflect to the processor can be returned. +//! This function returns the interrupt status for the specified sample +//! sequence. Either the raw interrupt status or the status of interrupts that +//! are allowed to reflect to the processor can be returned. //! //! \return The current raw or masked interrupt status. // @@ -283,10 +283,10 @@ ADCIntStatus(unsigned long ulBase, unsigned long ulSequenceNum, //! \param ulSequenceNum is the sample sequence number. //! //! The specified sample sequence interrupt is cleared, so that it no longer -//! asserts. This must be done in the interrupt handler to keep it from being -//! called again immediately upon exit. +//! asserts. This function must be called in the interrupt handler to keep +//! the interrupt from being triggered again immediately upon exit. //! -//! \note Because there is a write buffer in the Cortex-M3 processor, it may +//! \note Because there is a write buffer in the Cortex-M processor, it may //! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid @@ -381,10 +381,10 @@ ADCSequenceDisable(unsigned long ulBase, unsigned long ulSequenceNum) //! respect to the other sample sequences. //! //! This function configures the initiation criteria for a sample sequence. -//! Valid sample sequences range from zero to three; sequence zero will capture -//! up to eight samples, sequences one and two will capture up to four samples, -//! and sequence three will capture a single sample. The trigger condition and -//! priority (with respect to other sample sequence execution) is set. +//! Valid sample sequencers range from zero to three; sequencer zero captures +//! up to eight samples, sequencers one and two capture up to four samples, +//! and sequencer three captures a single sample. The trigger condition and +//! priority (with respect to other sample sequencer execution) are set. //! //! The \e ulTrigger parameter can take on the following values: //! @@ -397,7 +397,9 @@ ADCSequenceDisable(unsigned long ulBase, unsigned long ulSequenceNum) //! - \b ADC_TRIGGER_COMP2 - A trigger generated by the third analog //! comparator; configured with ComparatorConfigure(). //! - \b ADC_TRIGGER_EXTERNAL - A trigger generated by an input from the Port -//! B4 pin. +//! B4 pin. Note that some microcontrollers can +//! select from any GPIO using the +//! GPIOADCTriggerEnable() function. //! - \b ADC_TRIGGER_TIMER - A trigger generated by a timer; configured with //! TimerControlTrigger(). //! - \b ADC_TRIGGER_PWM0 - A trigger generated by the first PWM generator; @@ -475,31 +477,32 @@ ADCSequenceConfigure(unsigned long ulBase, unsigned long ulSequenceNum, //! \param ulStep is the step to be configured. //! \param ulConfig is the configuration of this step; must be a logical OR of //! \b ADC_CTL_TS, \b ADC_CTL_IE, \b ADC_CTL_END, \b ADC_CTL_D, one of the -//! input channel selects (\b ADC_CTL_CH0 through \b ADC_CTL_CH15), and one of +//! input channel selects (\b ADC_CTL_CH0 through \b ADC_CTL_CH23), and one of //! the digital comparator selects (\b ADC_CTL_CMP0 through \b ADC_CTL_CMP7). //! -//! This function will set the configuration of the ADC for one step of a -//! sample sequence. The ADC can be configured for single-ended or -//! differential operation (the \b ADC_CTL_D bit selects differential -//! operation when set), the channel to be sampled can be chosen (the -//! \b ADC_CTL_CH0 through \b ADC_CTL_CH15 values), and the internal -//! temperature sensor can be selected (the \b ADC_CTL_TS bit). Additionally, -//! this step can be defined as the last in the sequence (the \b ADC_CTL_END -//! bit) and it can be configured to cause an interrupt when the step is -//! complete (the \b ADC_CTL_IE bit). If the digital comparators are present -//! on the device, this step may also be configured to send the ADC sample to -//! the selected comparator using \b ADC_CTL_CMP0 through \b ADC_CTL_CMP7. -//! The configuration is used by the ADC at the appropriate time when the -//! trigger for this sequence occurs. +//! This function configures the ADC for one step of a sample sequence. The +//! ADC can be configured for single-ended or differential operation +//! (the \b ADC_CTL_D bit selects differential operation when set), the +//! channel to be sampled can be chosen (the \b ADC_CTL_CH0 through +//! \b ADC_CTL_CH23 values), and the internal temperature sensor can be +//! selected (the \b ADC_CTL_TS bit). Additionally, this step can be defined +//! as the last in the sequence (the \b ADC_CTL_END bit) and it can be +//! configured to cause an interrupt when the step is complete (the +//! \b ADC_CTL_IE bit). If the digital comparators are present on the device, +//! this step may also be configured to send the ADC sample to the selected +//! comparator using \b ADC_CTL_CMP0 through \b ADC_CTL_CMP7. The configuration +//! is used by the ADC at the appropriate time when the trigger for +//! this sequence occurs. //! //! \note If the Digitial Comparator is present and enabled using the -//! \b ADC_CTL_CMP0 through \b ADC_CTL_CMP7 selects, the ADC sample will NOT be +//! \b ADC_CTL_CMP0 through \b ADC_CTL_CMP7 selects, the ADC sample is NOT //! written into the ADC sequence data FIFO. //! //! The \e ulStep parameter determines the order in which the samples are //! captured by the ADC when the trigger occurs. It can range from zero to -//! seven for the first sample sequence, from zero to three for the second and -//! third sample sequence, and can only be zero for the fourth sample sequence. +//! seven for the first sample sequencer, from zero to three for the second and +//! third sample sequencer, and can only be zero for the fourth sample +//! sequencer. //! //! Differential mode only works with adjacent channel pairs (for example, 0 //! and 1). The channel select must be the number of the channel pair to @@ -601,9 +604,9 @@ ADCSequenceStepConfigure(unsigned long ulBase, unsigned long ulSequenceNum, //! \param ulBase is the base address of the ADC module. //! \param ulSequenceNum is the sample sequence number. //! -//! This determines if a sample sequence overflow has occurred. This will -//! happen if the captured samples are not read from the FIFO before the next -//! trigger occurs. +//! This function determines if a sample sequence overflow has occurred. +//! Overflow happens if the captured samples are not read from the FIFO before +//! the next trigger occurs. //! //! \return Returns zero if there was not an overflow, and non-zero if there //! was. @@ -631,9 +634,9 @@ ADCSequenceOverflow(unsigned long ulBase, unsigned long ulSequenceNum) //! \param ulBase is the base address of the ADC module. //! \param ulSequenceNum is the sample sequence number. //! -//! This will clear an overflow condition on one of the sample sequences. The -//! overflow condition must be cleared in order to detect a subsequent overflow -//! condition (it otherwise causes no harm). +//! This function clears an overflow condition on one of the sample sequences. +//! The overflow condition must be cleared in order to detect a subsequent +//! overflow condition (it otherwise causes no harm). //! //! \return None. // @@ -660,8 +663,8 @@ ADCSequenceOverflowClear(unsigned long ulBase, unsigned long ulSequenceNum) //! \param ulBase is the base address of the ADC module. //! \param ulSequenceNum is the sample sequence number. //! -//! This determines if a sample sequence underflow has occurred. This will -//! happen if too many samples are read from the FIFO. +//! This function determines if a sample sequence underflow has occurred. +//! Underflow happens if too many samples are read from the FIFO. //! //! \return Returns zero if there was not an underflow, and non-zero if there //! was. @@ -689,8 +692,8 @@ ADCSequenceUnderflow(unsigned long ulBase, unsigned long ulSequenceNum) //! \param ulBase is the base address of the ADC module. //! \param ulSequenceNum is the sample sequence number. //! -//! This will clear an underflow condition on one of the sample sequences. The -//! underflow condition must be cleared in order to detect a subsequent +//! This function clears an underflow condition on one of the sample sequencers. +//! The underflow condition must be cleared in order to detect a subsequent //! underflow condition (it otherwise causes no harm). //! //! \return None. @@ -719,12 +722,12 @@ ADCSequenceUnderflowClear(unsigned long ulBase, unsigned long ulSequenceNum) //! \param ulSequenceNum is the sample sequence number. //! \param pulBuffer is the address where the data is stored. //! -//! This function copies data from the specified sample sequence output FIFO to -//! a memory resident buffer. The number of samples available in the hardware -//! FIFO are copied into the buffer, which is assumed to be large enough to -//! hold that many samples. This will only return the samples that are -//! presently available, which may not be the entire sample sequence if it is -//! in the process of being executed. +//! This function copies data from the specified sample sequencer output FIFO +//! to a memory resident buffer. The number of samples available in the +//! hardware FIFO are copied into the buffer, which is assumed to be large +//! enough to hold that many samples. This function only returns the samples +//! that are presently available, which may not be the entire sample sequence +//! if it is in the process of being executed. //! //! \return Returns the number of samples copied to the buffer. // @@ -949,7 +952,7 @@ ADCSoftwareOversampleStepConfigure(unsigned long ulBase, //! This function copies data from the specified sample sequence output FIFO to //! a memory resident buffer with software oversampling applied. The requested //! number of samples are copied into the data buffer; if there are not enough -//! samples in the hardware FIFO to satisfy this many oversampled data items +//! samples in the hardware FIFO to satisfy this many oversampled data items, //! then incorrect results are returned. It is the caller's responsibility to //! read only the samples that are available and wait until enough data is //! available, for example as a result of receiving an interrupt. @@ -1012,21 +1015,18 @@ ADCSoftwareOversampleDataGet(unsigned long ulBase, unsigned long ulSequenceNum, //! be used to provide better resolution on the sampled data. Oversampling is //! accomplished by averaging multiple samples from the same analog input. Six //! different oversampling rates are supported; 2x, 4x, 8x, 16x, 32x, and 64x. -//! Specifying an oversampling factor of zero will disable hardware +//! Specifying an oversampling factor of zero disables hardware //! oversampling. //! //! Hardware oversampling applies uniformly to all sample sequencers. It does //! not reduce the depth of the sample sequencers like the software -//! oversampling APIs; each sample written into the sample sequence FIFO is a +//! oversampling APIs; each sample written into the sample sequencer FIFO is a //! fully oversampled analog input reading. //! //! Enabling hardware averaging increases the precision of the ADC at the cost //! of throughput. For example, enabling 4x oversampling reduces the //! throughput of a 250 Ksps ADC to 62.5 Ksps. //! -//! \note Hardware oversampling is available beginning with Rev C0 of the -//! Stellaris microcontroller. -//! //! \return None. // //***************************************************************************** @@ -1064,7 +1064,7 @@ ADCHardwareOversampleConfigure(unsigned long ulBase, unsigned long ulFactor) //! \param ulComp is the index of the comparator to configure. //! \param ulConfig is the configuration of the comparator. //! -//! This function will configure a comparator. The \e ulConfig parameter is +//! This function configures a comparator. The \e ulConfig parameter is //! the result of a logical OR operation between the \b ADC_COMP_TRIG_xxx, and //! \b ADC_COMP_INT_xxx values. //! @@ -1191,7 +1191,7 @@ ADCComparatorRegionSet(unsigned long ulBase, unsigned long ulComp, //! \param bInterrupt is the flag to indicate reset of Interrupt conditions. //! //! Because the digital comparator uses current and previous ADC values, this -//! function is provide to allow the comparator to be reset to its initial +//! function allows the comparator to be reset to its initial //! value to prevent stale data from being used when a sequence is enabled. //! //! \return None. @@ -1285,8 +1285,8 @@ ADCComparatorIntEnable(unsigned long ulBase, unsigned long ulSequenceNum) //! //! \param ulBase is the base address of the ADC module. //! -//! This returns the digitial comparator interrupt status bits. This status -//! is sequence agnostic. +//! This function returns the digitial comparator interrupt status bits. This +//! status is sequence agnostic. //! //! \return The current comparator interrupt status. // @@ -1366,7 +1366,7 @@ ADCReferenceSet(unsigned long ulBase, unsigned long ulRef) // // Set the reference. // - HWREG(ulBase + ADC_O_CTL) = (HWREG(ulBase + ADC_O_CTL) & ~ADC_CTL_VREF) | + HWREG(ulBase + ADC_O_CTL) = (HWREG(ulBase + ADC_O_CTL) & ~ADC_CTL_VREF_M) | ulRef; } @@ -1397,7 +1397,7 @@ ADCReferenceGet(unsigned long ulBase) // // Return the value of the reference. // - return(HWREG(ulBase + ADC_O_CTL) & ADC_CTL_VREF); + return(HWREG(ulBase + ADC_O_CTL) & ADC_CTL_VREF_M); } //***************************************************************************** @@ -1411,8 +1411,8 @@ ADCReferenceGet(unsigned long ulBase) //! of \b ADC_RES_12BIT or \b ADC_RES_10BIT. //! //! \note The ADC resolution can only be set on parts that are capable of -//! greater than 10-bit conversions. Consult the data sheet for your part to -//! determine if it is capable of 12-bit conversions. +//! changing ADC resolution mode. Consult the data sheet for your part to +//! determine if it is capable of operating in more than one resolution mode. //! //! \return None. // @@ -1443,9 +1443,9 @@ ADCResolutionSet(unsigned long ulBase, unsigned long ulResolution) //! \b ADC_RES_10BIT. //! //! \note The value returned by this function is only meaningful if used on a -//! part that is capable of higher than 10-bit ADC resolution. Consult the -//! data sheet for your part to determine if it is capable of 12-bit -//! conversions. +//! part that is capable of changing ADC resolution mode. Consult the +//! data sheet for your part to determine if it is capable of operating in +//! more than one resolution mode. //! //! \return The current setting of the ADC resolution. // diff --git a/bsp/lm4f232/Libraries/driverlib/adc.h b/bsp/lm4f232/Libraries/driverlib/adc.h index 86e7b979da..ea1a734e50 100644 --- a/bsp/lm4f232/Libraries/driverlib/adc.h +++ b/bsp/lm4f232/Libraries/driverlib/adc.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/driverlib/can.c b/bsp/lm4f232/Libraries/driverlib/can.c index 69333be6df..e0f5f7ee18 100644 --- a/bsp/lm4f232/Libraries/driverlib/can.c +++ b/bsp/lm4f232/Libraries/driverlib/can.c @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -151,8 +151,8 @@ CANBaseValid(unsigned long ulBase) //! //! \param ulBase is the base address of the selected CAN controller //! -//! Given a CAN controller base address, returns the corresponding interrupt -//! number. +//! Given a CAN controller base address, this function returns the +//! corresponding interrupt number. //! //! This function replaces the original CANGetIntNumber() API and performs the //! same actions. A macro is provided in can.h to map the original @@ -552,7 +552,7 @@ CANInit(unsigned long ulBase) //! \param ulBase is the base address of the CAN controller to enable. //! //! Enables the CAN controller for message processing. Once enabled, the -//! controller will automatically transmit any pending frames, and process any +//! controller automatically transmits any pending frames, and processes any //! received frames. The controller can be stopped by calling CANDisable(). //! Prior to calling CANEnable(), CANInit() should have been called to //! initialize the controller and the CAN bus clock should be configured by @@ -583,7 +583,7 @@ CANEnable(unsigned long ulBase) //! \param ulBase is the base address of the CAN controller to disable. //! //! Disables the CAN controller for message processing. When disabled, the -//! controller will no longer automatically process data on the CAN bus. The +//! controller no longer automatically processes data on the CAN bus. The //! controller can be restarted by calling CANEnable(). The state of the CAN //! controller and the message objects in the controller are left as they were //! before this call was made. @@ -614,7 +614,7 @@ CANDisable(unsigned long ulBase) //! \param pClkParms is a pointer to a structure to hold the timing parameters. //! //! This function reads the current configuration of the CAN controller bit -//! clock timing, and stores the resulting information in the structure +//! clock timing and stores the resulting information in the structure //! supplied by the caller. Refer to CANBitTimingSet() for the meaning of the //! values that are returned in the structure pointed to by \e pClkParms. //! @@ -668,24 +668,24 @@ CANBitTimingGet(unsigned long ulBase, tCANBitClkParms *pClkParms) //***************************************************************************** // -//! This function is used to set the CAN bit timing values to a nominal setting -//! based on a desired bit rate. +//! Sets the CAN bit timing values to a nominal setting based on a desired +//! bit rate. //! //! \param ulBase is the base address of the CAN controller. //! \param ulSourceClock is the system clock for the device in Hz. //! \param ulBitRate is the desired bit rate. //! -//! This function will set the CAN bit timing for the bit rate passed in the -//! \e ulBitRate parameter based on the \e ulSourceClock parameter. Since the -//! CAN clock is based off of the system clock the calling function should pass +//! This function sets the CAN bit timing for the bit rate passed in the +//! \e ulBitRate parameter based on the \e ulSourceClock parameter. Because the +//! CAN clock is based off of the system clock, the calling function should pass //! in the source clock rate either by retrieving it from SysCtlClockGet() or //! using a specific value in Hz. The CAN bit timing is calculated assuming a -//! minimal amount of propagation delay, which will work for most cases where +//! minimal amount of propagation delay, which works for most cases where //! the network length is short. If tighter timing requirements or longer //! network lengths are needed, then the CANBitTimingSet() function is //! available for full customization of all of the CAN bit timing values. -//! Since not all bit rates can be matched exactly, the bit rate is set to the -//! value closest to the desired bit rate without being higher than the +//! Because not all bit rates can be matched exactly, the bit rate is set to +//! the value closest to the desired bit rate without being higher than the //! \e ulBitRate value. //! //! \note On some devices the source clock is fixed at 8MHz so the @@ -832,12 +832,12 @@ CANBitRateSet(unsigned long ulBase, unsigned long ulSourceClock, //! quantum time is determined by the \e pClkParms->ulQuantumPrescaler value, //! which specifies the divisor for the CAN module clock. //! -//! The total bit time, in quanta, will be the sum of the two Seg parameters, +//! The total bit time, in quanta, is the sum of the two Seg parameters, //! as follows: //! //! bit_time_q = ulSyncPropPhase1Seg + ulPhase2Seg + 1 //! -//! Note that the Sync_Seg is always one quantum in duration, and will be added +//! Note that the Sync_Seg is always one quantum in duration, and is added //! to derive the correct duration of Prop_Seg and Phase1_Seg. //! //! The equation to determine the actual bit rate is as follows: @@ -845,8 +845,8 @@ CANBitRateSet(unsigned long ulBase, unsigned long ulSourceClock, //! CAN Clock / //! ((\e ulSyncPropPhase1Seg + \e ulPhase2Seg + 1) * (\e ulQuantumPrescaler)) //! -//! This means that with \e ulSyncPropPhase1Seg = 4, \e ulPhase2Seg = 1, -//! \e ulQuantumPrescaler = 2 and an 8 MHz CAN clock, that the bit rate will be +//! Thus with \e ulSyncPropPhase1Seg = 4, \e ulPhase2Seg = 1, +//! \e ulQuantumPrescaler = 2 and an 8 MHz CAN clock, the bit rate is //! (8 MHz) / ((5 + 2 + 1) * 2) or 500 Kbit/sec. //! //! This function replaces the original CANSetBitTiming() API and performs the @@ -987,7 +987,7 @@ CANIntRegister(unsigned long ulBase, void (*pfnHandler)(void)) //! \param ulBase is the base address of the controller. //! //! This function unregisters the previously registered interrupt handler and -//! disables the interrupt on the interrupt controller. +//! disables the interrupt in the interrupt controller. //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -1028,8 +1028,8 @@ CANIntUnregister(unsigned long ulBase) //! \param ulBase is the base address of the CAN controller. //! \param ulIntFlags is the bit mask of the interrupt sources to be enabled. //! -//! Enables specific interrupt sources of the CAN controller. Only enabled -//! sources will cause a processor interrupt. +//! This function enables specific interrupt sources of the CAN controller. +//! Only enabled sources cause a processor interrupt. //! //! The \e ulIntFlags parameter is the logical OR of any of the following: //! @@ -1043,7 +1043,7 @@ CANIntUnregister(unsigned long ulBase) //! an interrupt, that message object must have interrupts enabled (see //! CANMessageSet()). \b CAN_INT_ERROR will generate an interrupt if the //! controller enters the ``bus off'' condition, or if the error counters reach -//! a limit. \b CAN_INT_STATUS will generate an interrupt under quite a few +//! a limit. \b CAN_INT_STATUS generates an interrupt under quite a few //! status conditions and may provide more interrupts than the application //! needs to handle. When an interrupt occurs, use CANIntStatus() to determine //! the cause. @@ -1106,19 +1106,19 @@ CANIntDisable(unsigned long ulBase, unsigned long ulIntFlags) //! \param ulBase is the base address of the CAN controller. //! \param eIntStsReg indicates which interrupt status register to read //! -//! Returns the value of one of two interrupt status registers. The interrupt -//! status register read is determined by the \e eIntStsReg parameter, which -//! can have one of the following values: +//! This function returns the value of one of two interrupt status registers. +//! The interrupt status register read is determined by the \e eIntStsReg +//! parameter, which can have one of the following values: //! //! - \b CAN_INT_STS_CAUSE - indicates the cause of the interrupt //! - \b CAN_INT_STS_OBJECT - indicates pending interrupts of all message //! objects //! //! \b CAN_INT_STS_CAUSE returns the value of the controller interrupt register -//! and indicates the cause of the interrupt. It will be a value of +//! and indicates the cause of the interrupt. The value returned is //! \b CAN_INT_INTID_STATUS if the cause is a status interrupt. In this case, //! the status register should be read with the CANStatusGet() function. -//! Calling this function to read the status will also clear the status +//! Calling this function to read the status also clears the status //! interrupt. If the value of the interrupt register is in the range 1-32, //! then this indicates the number of the highest priority message object that //! has an interrupt pending. The message object interrupt can be cleared by @@ -1128,9 +1128,9 @@ CANIntDisable(unsigned long ulBase, unsigned long ulIntFlags) //! cleared before returning from the interrupt. //! //! \b CAN_INT_STS_OBJECT returns a bit mask indicating which message objects -//! have pending interrupts. This can be used to discover all of the pending -//! interrupts at once, as opposed to repeatedly reading the interrupt register -//! by using \b CAN_INT_STS_CAUSE. +//! have pending interrupts. This value can be used to discover all of the +//! pending interrupts at once, as opposed to repeatedly reading the interrupt +//! register by using \b CAN_INT_STS_CAUSE. //! //! \return Returns the value of one of the interrupt status registers. // @@ -1205,14 +1205,14 @@ CANIntStatus(unsigned long ulBase, tCANIntStsReg eIntStsReg) //! - 1-32 - Clears the specified message object interrupt //! //! It is not necessary to use this function to clear an interrupt. This -//! should only be used if the application wants to clear an interrupt source -//! without taking the normal interrupt action. +//! function should only be used if the application wants to clear an interrupt +//! source without taking the normal interrupt action. //! //! Normally, the status interrupt is cleared by reading the controller status //! using CANStatusGet(). A specific message object interrupt is normally //! cleared by reading the message object using CANMessageGet(). //! -//! \note Because there is a write buffer in the Cortex-M3 processor, it may +//! \note Because there is a write buffer in the Cortex-M processor, it may //! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid @@ -1277,9 +1277,9 @@ CANIntClear(unsigned long ulBase, unsigned long ulIntClr) //! \param ulBase is the base address of the CAN controller. //! \param bAutoRetry enables automatic retransmission. //! -//! Enables or disables automatic retransmission of messages with detected -//! errors. If \e bAutoRetry is \b true, then automatic retransmission is -//! enabled, otherwise it is disabled. +//! This function enables or disables automatic retransmission of messages with +//! detected errors. If \e bAutoRetry is \b true, then automatic retransmission +//! is enabled, otherwise it is disabled. //! //! \return None. // @@ -1326,7 +1326,7 @@ CANRetrySet(unsigned long ulBase, tBoolean bAutoRetry) //! //! \param ulBase is the base address of the CAN controller. //! -//! Reads the current setting for the automatic retransmission in the CAN +//! This function reads the current setting for automatic retransmission in the CAN //! controller and returns it to the caller. //! //! \return Returns \b true if automatic retransmission is enabled, \b false @@ -1365,7 +1365,8 @@ CANRetryGet(unsigned long ulBase) //! \param ulBase is the base address of the CAN controller. //! \param eStatusReg is the status register to read. //! -//! Reads a status register of the CAN controller and returns it to the caller. +//! This function reads a status register of the CAN controller and returns it +//! to the caller. //! The different status registers are: //! //! - \b CAN_STS_CONTROL - the main controller status @@ -1374,9 +1375,9 @@ CANRetryGet(unsigned long ulBase) //! - \b CAN_STS_MSGVAL - bit mask of objects with valid configuration //! //! When reading the main controller status register, a pending status -//! interrupt will be cleared. This should be used in the interrupt handler -//! for the CAN controller if the cause is a status interrupt. The controller -//! status register fields are as follows: +//! interrupt is cleared. This parameter should be used in the interrupt +//! handler for the CAN controller if the cause is a status interrupt. The +//! controller status register fields are as follows: //! //! - \b CAN_STATUS_BUS_OFF - controller is in bus-off condition //! - \b CAN_STATUS_EWARN - an error counter has reached a limit of at least 96 @@ -1396,20 +1397,21 @@ CANRetryGet(unsigned long ulBase) //! dominant mode //! - \b CAN_STATUS_LEC_CRC - CRC error in received message //! -//! The remaining status registers are 32-bit bit maps to the message objects. -//! They can be used to quickly obtain information about the status of all the -//! message objects without needing to query each one. They contain the -//! following information: +//! The remaining status registers consist of 32-bit-wide bit maps to the +//! message objects. They can be used to quickly obtain information about the +//! status of all the message objects without needing to query each one. They +//! contain the following information: //! -//! - \b CAN_STS_TXREQUEST - if a message object's TxRequest bit is set, that -//! means that a transmission is pending on that object. The application can -//! use this to determine which objects are still waiting to send a message. -//! - \b CAN_STS_NEWDAT - if a message object's NewDat bit is set, that means -//! that a new message has been received in that object, and has not yet been -//! picked up by the host application -//! - \b CAN_STS_MSGVAL - if a message object's MsgVal bit is set, that means -//! it has a valid configuration programmed. The host application can use this -//! to determine which message objects are empty/unused. +//! - \b CAN_STS_TXREQUEST - if a message object's TXRQST bit is set, a +//! transmission is pending on that object. The application can use this +//! information to determine which objects are still waiting to send a +//! message. +//! - \b CAN_STS_NEWDAT - if a message object's NEWDAT bit is set, a new +//! message has been received in that object, and has not yet been picked up +//! by the host application +//! - \b CAN_STS_MSGVAL - if a message object's MSGVAL bit is set, the object +//! has a valid configuration programmed. The host application can use this +//! information to determine which message objects are empty/unused. //! //! \return Returns the value of the status register. // @@ -1488,14 +1490,14 @@ CANStatusGet(unsigned long ulBase, tCANStsReg eStatusReg) //! \param pulRxCount is a pointer to storage for the receive error counter. //! \param pulTxCount is a pointer to storage for the transmit error counter. //! -//! Reads the error counter register and returns the transmit and receive error -//! counts to the caller along with a flag indicating if the controller receive -//! counter has reached the error passive limit. The values of the receive and -//! transmit error counters are returned through the pointers provided as -//! parameters. +//! This function reads the error counter register and returns the transmit and +//! receive error counts to the caller along with a flag indicating if the +//! controller receive counter has reached the error passive limit. The values +//! of the receive and transmit error counters are returned through the pointers +//! provided as parameters. //! -//! After this call, \e *pulRxCount will hold the current receive error count -//! and \e *pulTxCount will hold the current transmit error count. +//! After this call, \e *pulRxCount holds the current receive error count +//! and \e *pulTxCount holds the current transmit error count. //! //! \return Returns \b true if the receive error count has reached the error //! passive limit, and \b false if the error count is below the error passive @@ -1542,10 +1544,10 @@ CANErrCntrGet(unsigned long ulBase, unsigned long *pulRxCount, //! \param eMsgType indicates the type of message for this object. //! //! This function is used to configure any one of the 32 message objects in the -//! CAN controller. A message object can be configured as any type of CAN -//! message object as well as several options for automatic transmission and -//! reception. This call also allows the message object to be configured to -//! generate interrupts on completion of message receipt or transmission. The +//! CAN controller. A message object can be configured to be any type of CAN +//! message object as well as to use automatic transmission and reception. +//! This call also allows the message object to be configured to generate +//! interrupts on completion of message receipt or transmission. The //! message object can also be configured with a filter/mask so that actions //! are only taken when a message that meets certain parameters is seen on the //! CAN bus. @@ -1570,13 +1572,13 @@ CANErrCntrGet(unsigned long ulBase, unsigned long *pulRxCount, //! - Set \b MSG_OBJ_RX_INT_ENABLE flag to enable interrupt on receipt. //! - Set \b MSG_OBJ_USE_ID_FILTER flag to enable filtering based on the //! identifier mask specified by \e ulMsgIDMask. -//! - \e ulMsgLen - the number of bytes in the message data. This should be -//! non-zero even for a remote frame; it should match the expected bytes of the -//! data responding data frame. +//! - \e ulMsgLen - the number of bytes in the message data. This parameter +//! should be non-zero even for a remote frame; it should match the expected +//! bytes of data in the responding data frame. //! - \e pucMsgData - points to a buffer containing up to 8 bytes of data for a //! data frame. //! -//! \b Example: To send a data frame or remote frame(in response to a remote +//! \b Example: To send a data frame or remote frame (in response to a remote //! request), take the following steps: //! //! -# Set \e eMsgType to \b MSG_OBJ_TYPE_TX. @@ -1598,7 +1600,7 @@ CANErrCntrGet(unsigned long ulBase, unsigned long *pulRxCount, //! -# Set \e pMsgObject->ulFlags as follows: //! - Set \b MSG_OBJ_RX_INT_ENABLE flag to be interrupted when the data frame //! is received. -//! - Set \b MSG_OBJ_USE_ID_FILTER flag to enable identifier based filtering. +//! - Set \b MSG_OBJ_USE_ID_FILTER flag to enable identifier-based filtering. //! -# Set \e pMsgObject->ulMsgLen to the number of bytes in the expected data //! frame. //! -# The buffer pointed to by \e pMsgObject->pucMsgData is not used by this @@ -1606,7 +1608,7 @@ CANErrCntrGet(unsigned long ulBase, unsigned long *pulRxCount, //! -# Call this function with \e ulObjID set to one of the 32 object buffers. //! //! If you specify a message object buffer that already contains a message -//! definition, it will be overwritten. +//! definition, it is overwritten. //! //! \return None. // @@ -1944,27 +1946,27 @@ CANMessageSet(unsigned long ulBase, unsigned long ulObjID, //! cleared. //! //! This function is used to read the contents of one of the 32 message objects -//! in the CAN controller, and return it to the caller. The data returned is +//! in the CAN controller and return it to the caller. The data returned is //! stored in the fields of the caller-supplied structure pointed to by //! \e pMsgObject. The data consists of all of the parts of a CAN message, //! plus some control and status information. //! -//! Normally this is used to read a message object that has received and stored -//! a CAN message with a certain identifier. However, this could also be used -//! to read the contents of a message object in order to load the fields of the -//! structure in case only part of the structure needs to be changed from a -//! previous setting. +//! Normally, this function is used to read a message object that has received +//! and stored a CAN message with a certain identifier. However, this function +//! could also be used to read the contents of a message object in order to +//! load the fields of the structure in case only part of the structure must +//! be changed from a previous setting. //! -//! When using CANMessageGet, all of the same fields of the structure are +//! When using CANMessageGet(), all of the same fields of the structure are //! populated in the same way as when the CANMessageSet() function is used, //! with the following exceptions: //! //! \e pMsgObject->ulFlags: //! -//! - \b MSG_OBJ_NEW_DATA indicates if this is new data since the last time it +//! - \b MSG_OBJ_NEW_DATA indicates if this data is new since the last time it //! was read //! - \b MSG_OBJ_DATA_LOST indicates that at least one message was received on -//! this message object, and not read by the host before being overwritten. +//! this message object and not read by the host before being overwritten. //! //! \return None. // @@ -2204,8 +2206,8 @@ CANMessageGet(unsigned long ulBase, unsigned long ulObjID, //! \param ulObjID is the message object number to disable (1-32). //! //! This function frees the specified message object from use. Once a message -//! object has been ``cleared,'' it will no longer automatically send or -//! receive messages, or generate interrupts. +//! object has been ``cleared,'' it no longer automatically sends or +//! receives messages, nor does it generate interrupts. //! //! \return None. // diff --git a/bsp/lm4f232/Libraries/driverlib/can.h b/bsp/lm4f232/Libraries/driverlib/can.h index 38352940eb..369a4f009a 100644 --- a/bsp/lm4f232/Libraries/driverlib/can.h +++ b/bsp/lm4f232/Libraries/driverlib/can.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/driverlib/comp.c b/bsp/lm4f232/Libraries/driverlib/comp.c index 3e946cc775..0ed7d8377d 100644 --- a/bsp/lm4f232/Libraries/driverlib/comp.c +++ b/bsp/lm4f232/Libraries/driverlib/comp.c @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -212,7 +212,7 @@ ComparatorValueGet(unsigned long ulBase, unsigned long ulComp) //! \param pfnHandler is a pointer to the function to be called when the //! comparator interrupt occurs. //! -//! This sets the handler to be called when the comparator interrupt occurs +//! This function sets the handler to be called when the comparator interrupt occurs //! and enables the interrupt in the interrupt controller. It is the interrupt //! handler's responsibility to clear the interrupt source via //! ComparatorIntClear(). @@ -257,7 +257,7 @@ ComparatorIntRegister(unsigned long ulBase, unsigned long ulComp, //! \param ulComp is the index of the comparator. //! //! This function clears the handler to be called when a comparator interrupt -//! occurs. This will also mask off the interrupt in the interrupt controller +//! occurs. This function also masks off the interrupt in the interrupt controller //! so that the interrupt handler no longer is called. //! //! \sa IntRegister() for important information about registering interrupt @@ -299,7 +299,7 @@ ComparatorIntUnregister(unsigned long ulBase, unsigned long ulComp) //! \param ulComp is the index of the comparator. //! //! This function enables generation of an interrupt from the specified -//! comparator. Only comparators whose interrupts are enabled can be reflected +//! comparator. Only enabled comparator interrupts can be reflected //! to the processor. //! //! \return None. @@ -328,7 +328,7 @@ ComparatorIntEnable(unsigned long ulBase, unsigned long ulComp) //! \param ulComp is the index of the comparator. //! //! This function disables generation of an interrupt from the specified -//! comparator. Only comparators whose interrupts are enabled can be reflected +//! comparator. Only enabled comparator interrupts can be reflected //! to the processor. //! //! \return None. @@ -358,7 +358,7 @@ ComparatorIntDisable(unsigned long ulBase, unsigned long ulComp) //! \param bMasked is \b false if the raw interrupt status is required and //! \b true if the masked interrupt status is required. //! -//! This returns the interrupt status for the comparator. Either the raw or +//! This function returns the interrupt status for the comparator. Either the raw or //! the masked interrupt status can be returned. //! //! \return \b true if the interrupt is asserted and \b false if it is not @@ -401,7 +401,7 @@ ComparatorIntStatus(unsigned long ulBase, unsigned long ulComp, //! being called again immediately upon exit. Note that for a level-triggered //! interrupt, the interrupt cannot be cleared until it stops asserting. //! -//! \note Because there is a write buffer in the Cortex-M3 processor, it may +//! \note Because there is a write buffer in the Cortex-M processor, it may //! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid diff --git a/bsp/lm4f232/Libraries/driverlib/comp.h b/bsp/lm4f232/Libraries/driverlib/comp.h index 274fb2887d..894295687a 100644 --- a/bsp/lm4f232/Libraries/driverlib/comp.h +++ b/bsp/lm4f232/Libraries/driverlib/comp.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/driverlib/cpu.c b/bsp/lm4f232/Libraries/driverlib/cpu.c index 8ee10fe60d..80b74ab393 100644 --- a/bsp/lm4f232/Libraries/driverlib/cpu.c +++ b/bsp/lm4f232/Libraries/driverlib/cpu.c @@ -19,7 +19,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/driverlib/cpu.h b/bsp/lm4f232/Libraries/driverlib/cpu.h index b5c6c26e3a..edb76b775b 100644 --- a/bsp/lm4f232/Libraries/driverlib/cpu.h +++ b/bsp/lm4f232/Libraries/driverlib/cpu.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/driverlib/cr_driverlib-cm4f.xml b/bsp/lm4f232/Libraries/driverlib/cr_driverlib-cm4f.xml deleted file mode 100644 index 301eebbaa1..0000000000 --- a/bsp/lm4f232/Libraries/driverlib/cr_driverlib-cm4f.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - - - {(Makefile|Makefile\..*|ccs-.*|codered-.*|ewarm-.*|gcc-.*|rvmdk-.*|sourcerygxx-.*)} - {.*\.(ewd|ewp|eww|icf|Opt|sct|sgxx|Uv2|uvopt|uvproj|xml|ld|cmd)} - - - inc - - - codered - - - DEBUG - - - NDEBUG - - - __CODE_RED - __NEWLIB__ - codered - - - -Os - - - -Os - - - -Os - - - -Os - - - ${workspace_loc:/} - - diff --git a/bsp/lm4f232/Libraries/driverlib/debug.h b/bsp/lm4f232/Libraries/driverlib/debug.h index ae07377e40..a0fa0f8100 100644 --- a/bsp/lm4f232/Libraries/driverlib/debug.h +++ b/bsp/lm4f232/Libraries/driverlib/debug.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/driverlib/driverlib-cm4f.ewp b/bsp/lm4f232/Libraries/driverlib/driverlib-cm4f.ewp deleted file mode 100644 index 2e466a01df..0000000000 --- a/bsp/lm4f232/Libraries/driverlib/driverlib-cm4f.ewp +++ /dev/null @@ -1,857 +0,0 @@ - - - - 1 - - Debug - - ARM - - 1 - - General - 3 - - 14 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 19 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 7 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 5 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Source - - $PROJ_DIR$\adc.c - - - $PROJ_DIR$\can.c - - - $PROJ_DIR$\comp.c - - - $PROJ_DIR$\cpu.c - - - $PROJ_DIR$\eeprom.c - - - $PROJ_DIR$\epi.c - - - $PROJ_DIR$\ethernet.c - - - $PROJ_DIR$\fan.c - - - $PROJ_DIR$\flash.c - - - $PROJ_DIR$\fpu.c - - - $PROJ_DIR$\gpio.c - - - $PROJ_DIR$\hibernate.c - - - $PROJ_DIR$\i2c.c - - - $PROJ_DIR$\i2s.c - - - $PROJ_DIR$\interrupt.c - - - $PROJ_DIR$\lpc.c - - - $PROJ_DIR$\mpu.c - - - $PROJ_DIR$\peci.c - - - $PROJ_DIR$\pwm.c - - - $PROJ_DIR$\qei.c - - - $PROJ_DIR$\ssi.c - - - $PROJ_DIR$\sysctl.c - - - $PROJ_DIR$\sysexc.c - - - $PROJ_DIR$\systick.c - - - $PROJ_DIR$\timer.c - - - $PROJ_DIR$\uart.c - - - $PROJ_DIR$\udma.c - - - $PROJ_DIR$\usb.c - - - $PROJ_DIR$\watchdog.c - - - diff --git a/bsp/lm4f232/Libraries/driverlib/driverlib-cm4f.sgxx b/bsp/lm4f232/Libraries/driverlib/driverlib-cm4f.sgxx deleted file mode 100644 index f7d58e766d97989b57fc9e139bcf0ba5be614347..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3495 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 e(_g^qT<-sXDpLchbEpOYD9+dR`B?N2Vjz}~B diff --git a/bsp/lm4f232/Libraries/driverlib/driverlib-cm4f.uvopt b/bsp/lm4f232/Libraries/driverlib/driverlib-cm4f.uvopt deleted file mode 100644 index 9b33e69d09..0000000000 --- a/bsp/lm4f232/Libraries/driverlib/driverlib-cm4f.uvopt +++ /dev/null @@ -1,636 +0,0 @@ - - - - 1.0 - -
### uVision Project, (C) Keil Software
- - - *.c - *.s*; *.src; *.a* - *.obj - *.lib - *.txt; *.h; *.inc - *.plm - *.cpp - - - - 0 - 0 - - - - driverlib-cm4f - 0x4 - ARM-ADS - - 8000000 - - 1 - 1 - 1 - 0 - - - 1 - 65535 - 0 - 0 - 0 - - - 79 - 66 - 8 - .\rvmdk-cm4f\ - - - 1 - 1 - 1 - 0 - 1 - 1 - 0 - 1 - 0 - 0 - 0 - 0 - - - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 0 - 0 - - - 1 - 0 - 1 - - 255 - - - 0 - Data Sheet - DATASHTS\Luminary\LM4F110B2QR.PDF - - - - SARMCM3.DLL - -MPU - DCM.DLL - -pCM4 - SARMCM3.DLL - -MPU - TCM.DLL - -pCM4 - - - 1 - 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 0 - 1 - 1 - 1 - 0 - 1 - 0 - 0 - 3 - - - - - - - - - - - BIN\lmidk-agdi.dll - - - - 0 - lmidk-agdi - -O4622 -S3 -FO29 - - - - 0 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - - - - - - Source - 1 - 0 - 0 - - 1 - 1 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - .\adc.c - adc.c - - - 1 - 2 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - .\can.c - can.c - - - 1 - 3 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - .\comp.c - comp.c - - - 1 - 4 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - .\cpu.c - cpu.c - - - 1 - 5 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - .\eeprom.c - eeprom.c - - - 1 - 6 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - .\epi.c - epi.c - - - 1 - 7 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - .\ethernet.c - ethernet.c - - - 1 - 8 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - .\fan.c - fan.c - - - 1 - 9 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - .\flash.c - flash.c - - - 1 - 10 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - .\fpu.c - fpu.c - - - 1 - 11 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - .\gpio.c - gpio.c - - - 1 - 12 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - .\hibernate.c - hibernate.c - - - 1 - 13 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - .\i2c.c - i2c.c - - - 1 - 14 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - .\i2s.c - i2s.c - - - 1 - 15 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - .\interrupt.c - interrupt.c - - - 1 - 16 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - .\lpc.c - lpc.c - - - 1 - 17 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - .\mpu.c - mpu.c - - - 1 - 18 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - .\peci.c - peci.c - - - 1 - 19 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - .\pwm.c - pwm.c - - - 1 - 20 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - .\qei.c - qei.c - - - 1 - 21 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - .\ssi.c - ssi.c - - - 1 - 22 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - .\sysctl.c - sysctl.c - - - 1 - 23 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - .\sysexc.c - sysexc.c - - - 1 - 24 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - .\systick.c - systick.c - - - 1 - 25 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - .\timer.c - timer.c - - - 1 - 26 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - .\uart.c - uart.c - - - 1 - 27 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - .\udma.c - udma.c - - - 1 - 28 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - .\usb.c - usb.c - - - 1 - 29 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - .\watchdog.c - watchdog.c - - - - - Documentation - 1 - 0 - 0 - - 2 - 30 - 5 - 0 - 1 - 0 - 0 - 1 - 1 - 0 - .\readme.txt - readme.txt - - 44 - 0 - 1 - - -1 - -1 - - - -1 - -1 - - - 0 - 0 - 729 - 300 - - - - - - - 1 - 0 - - 100 - 0 - - - .\readme.txt - 0 - 1 - 1 - - - - - -
diff --git a/bsp/lm4f232/Libraries/driverlib/driverlib-cm4f.uvproj b/bsp/lm4f232/Libraries/driverlib/driverlib-cm4f.uvproj deleted file mode 100644 index 5f49a5a8a6..0000000000 --- a/bsp/lm4f232/Libraries/driverlib/driverlib-cm4f.uvproj +++ /dev/null @@ -1,550 +0,0 @@ - - - - 1.1 - -
### uVision Project, (C) Keil Software
- - - - driverlib-cm4f - 0x4 - ARM-ADS - - - LM4F110B2QR - Texas Instruments - IRAM(0x20000000-0x20002FFF) IROM(0-0x7FFF) CLOCK(8000000) CPUTYPE("Cortex-M4") FPU2 - - "STARTUP\Luminary\Startup.s" ("Luminary Startup Code") - UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0LM4F_32 -FS00 -FL08000) - 5919 - LM4Fxxxx.H - - - - - - - - - - SFD\Luminary\LM4F110B2QR.SFR - 0 - - - - Luminary\ - Luminary\ - - 0 - 0 - 0 - 0 - 1 - - .\rvmdk-cm4f\ - driverlib-cm4f - 0 - 1 - 0 - 1 - 1 - .\rvmdk-cm4f\ - 1 - 0 - 0 - - 0 - 0 - - - 0 - 0 - - - 0 - 0 - - - 0 - 0 - - - 0 - 0 - - - 0 - 0 - - 0 - - - - 0 - 0 - 0 - 0 - 0 - 1 - 0 - 0 - 0 - 0 - 3 - - - - - SARMCM3.DLL - -MPU - DCM.DLL - -pCM4 - SARMCM3.DLL - -MPU - TCM.DLL - -pCM4 - - - - 1 - 0 - 0 - 0 - 16 - - - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 0 - - - 0 - 1 - 0 - 1 - 1 - 1 - 0 - 1 - - 0 - 3 - - - - - - - - - - - - - - BIN\lmidk-agdi.dll - - - - - 1 - 0 - 0 - 0 - 1 - 4097 - - BIN\lmidk-agdi.dll - - - - - - 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 0 - 1 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "Cortex-M4" - - 0 - 0 - 0 - 1 - 1 - 0 - 0 - 2 - 0 - 0 - 8 - 1 - 0 - 0 - 3 - 3 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 1 - 0 - 0 - 0 - 0 - 1 - 0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x20000000 - 0x3000 - - - 1 - 0x0 - 0x8000 - - - 0 - 0x0 - 0x0 - - - 1 - 0x0 - 0x0 - - - 1 - 0x0 - 0x0 - - - 1 - 0x0 - 0x0 - - - 1 - 0x0 - 0x8000 - - - 1 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x20000000 - 0x3000 - - - 0 - 0x0 - 0x0 - - - - - - 0 - 3 - 1 - 0 - 1 - 0 - 0 - 0 - 0 - 0 - 2 - 0 - - - rvmdk - - ..; - - - - 1 - 0 - 0 - 0 - 0 - 0 - 0 - - - - - - - - - 0 - 0 - 0 - 0 - 1 - 0 - 0x00000000 - 0x20000000 - - - - - - - - - - - - Source - - - adc.c - 1 - .\adc.c - - - can.c - 1 - .\can.c - - - comp.c - 1 - .\comp.c - - - cpu.c - 1 - .\cpu.c - - - eeprom.c - 1 - .\eeprom.c - - - epi.c - 1 - .\epi.c - - - ethernet.c - 1 - .\ethernet.c - - - fan.c - 1 - .\fan.c - - - flash.c - 1 - .\flash.c - - - fpu.c - 1 - .\fpu.c - - - gpio.c - 1 - .\gpio.c - - - hibernate.c - 1 - .\hibernate.c - - - i2c.c - 1 - .\i2c.c - - - i2s.c - 1 - .\i2s.c - - - interrupt.c - 1 - .\interrupt.c - - - lpc.c - 1 - .\lpc.c - - - mpu.c - 1 - .\mpu.c - - - peci.c - 1 - .\peci.c - - - pwm.c - 1 - .\pwm.c - - - qei.c - 1 - .\qei.c - - - ssi.c - 1 - .\ssi.c - - - sysctl.c - 1 - .\sysctl.c - - - sysexc.c - 1 - .\sysexc.c - - - systick.c - 1 - .\systick.c - - - timer.c - 1 - .\timer.c - - - uart.c - 1 - .\uart.c - - - udma.c - 1 - .\udma.c - - - usb.c - 1 - .\usb.c - - - watchdog.c - 1 - .\watchdog.c - - - - - Documentation - - - readme.txt - 5 - .\readme.txt - - - - - - - -
diff --git a/bsp/lm4f232/Libraries/driverlib/eeprom.c b/bsp/lm4f232/Libraries/driverlib/eeprom.c index d065049118..8096899155 100644 --- a/bsp/lm4f232/Libraries/driverlib/eeprom.c +++ b/bsp/lm4f232/Libraries/driverlib/eeprom.c @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -68,7 +68,7 @@ //***************************************************************************** // // This function implements a workaround for a bug in Blizzard rev A silicon. -// It ensure that only the 1KB flash sector containing a given EEPROM address +// It ensures that only the 1KB flash sector containing a given EEPROM address // is erased if an erase/copy operation is required as a result of a following // EEPROM write. // @@ -97,7 +97,7 @@ EEPROMSetSectorMask(unsigned long ulAddress) //***************************************************************************** // // Clear the FSM sector erase mask to ensure that any following main array flash -// erase operations will operate as expected. +// erase operations operate as expected. // //***************************************************************************** static void @@ -137,18 +137,18 @@ EEPROMWaitForDone(void) //! //! This function must be called after SysCtlPeripheralEnable() and before //! the EEPROM is accessed to check for errors resulting from power failure -//! during a previous write operation. The function will detect these errors -//! and perform as much recovery as possible before returning information to -//! the caller on whether or not a previous data write was lost and will need -//! to be retried. +//! during a previous write operation. The function detects these errors +//! and performs as much recovery as possible before returning information to +//! the caller on whether or not a previous data write was lost and must +//! be retried. //! //! In cases where \b EEPROM_INIT_RETRY is returned, the application is //! responsible for determining which data write may have been lost and -//! rewriting this data. If \b EEPROM_INIT_ERROR is returned, this indicates -//! that the EEPROM was unable to recover its state. This condition may or -//! may not be resolved on future resets depending upon the cause of the -//! fault. For example, if the supply voltage is unstable, retrying the -//! operation once the voltage is stabilized may clear the error. +//! rewriting this data. If \b EEPROM_INIT_ERROR is returned, the EEPROM was +//! unable to recover its state. This condition may or may not be resolved on +//! future resets depending upon the cause of the fault. For example, if the +//! supply voltage is unstable, retrying the operation once the voltage is +//! stabilized may clear the error. //! //! Failure to call this function after a reset may lead to permanent data loss //! if the EEPROM is later written! @@ -268,7 +268,7 @@ EEPROMBlockCountGet(void) //! Reads data from the EEPROM. //! //! \param pulData is a pointer to storage for the data read from the EEPROM. -//! This must point to at least \e ulCount bytes of available memory. +//! This pointer must point to at least \e ulCount bytes of available memory. //! \param ulAddress is the byte address within the EEPROM from which data is //! to be read. This value must be a multiple of 4. //! \param ulCount is the number of bytes of data to read from the EEPROM. @@ -410,7 +410,7 @@ EEPROMProgram(unsigned long *pulData, unsigned long ulAddress, // // Make sure we completed the write without errors. Note that we - // must check this per-word since write permission can be set per + // must check this per-word because write permission can be set per // block resulting in only a section of the write not being performed. // if(ulStatus & (EEPROM_EEDONE_NOPERM | EEPROM_EEDONE_INVPL)) @@ -520,7 +520,7 @@ EEPROMProgramNonBlocking(unsigned long ulData, unsigned long ulAddress) // //! Erases the EEPROM and returns it to the factory default condition. //! -//! This function will completely erase the EEPROM and remove any and +//! This function completely erases the EEPROM and removes any and //! all access protection on its blocks, leaving the device in the factory //! default condition. After this operation, all EEPROM words contain the //! value 0xFFFFFFFF and all blocks are accessible for both read and write @@ -538,6 +538,14 @@ EEPROMProgramNonBlocking(unsigned long ulData, unsigned long ulAddress) unsigned long EEPROMMassErase(void) { + // + // This is a workaround for a silicon problem on Blizzard rev A. + // + if(CLASS_IS_BLIZZARD && REVISION_IS_A0) + { + EEPROMClearSectorMask(); + } + // // Start the mass erase processing // @@ -549,7 +557,7 @@ EEPROMMassErase(void) EEPROMWaitForDone(); // - // Reset the peripheral. This si required so that all protection + // Reset the peripheral. This is required so that all protection // mechanisms and passwords are reset now that the EEPROM data has been // scrubbed. // @@ -618,9 +626,10 @@ EEPROMBlockProtectGet(unsigned long ulBlock) //! access to the EEPROM peripheral as a whole. Protection settings applied to //! blocks numbered 1 and above are layered above any protection set on block 0 //! such that the effective protection on each block is the logical OR of the -//! protection flags set for block 0 and for the target block. This allows -//! global protection options to be set for the whole device via block 0 and -//! more restrictive protection settings to be set on a block-by-block basis. +//! protection flags set for block 0 and for the target block. This protocol +//! allows global protection options to be set for the whole device via block +//! 0 and more restrictive protection settings to be set on a block-by-block +//! basis. //! //! The protection flags indicate access permissions as follow: //! @@ -1022,9 +1031,9 @@ EEPROMIntStatus(tBoolean bMasked) // // If asked for the unmasked interrupt status, infer that an interrupt // is pending if the WORKING bit of the EEDONE register is clear. The - // actual interrupt will fire on the high to low transition of this bit + // actual interrupt fires on the high to low transition of this bit // but we don't have access to an unmasked interrupt status for the - // EEPROM since it's handled via the flash controller so we have to + // EEPROM because it's handled via the flash controller so we have to // make do with this instead. // return((HWREG(EEPROM_EEDONE) & EEPROM_EEDONE_WORKING) ? diff --git a/bsp/lm4f232/Libraries/driverlib/eeprom.h b/bsp/lm4f232/Libraries/driverlib/eeprom.h index 591f251b8d..00ac97e883 100644 --- a/bsp/lm4f232/Libraries/driverlib/eeprom.h +++ b/bsp/lm4f232/Libraries/driverlib/eeprom.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/driverlib/epi.c b/bsp/lm4f232/Libraries/driverlib/epi.c index 1a92dd3dd6..9bb281f7b8 100644 --- a/bsp/lm4f232/Libraries/driverlib/epi.c +++ b/bsp/lm4f232/Libraries/driverlib/epi.c @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -53,7 +53,7 @@ //! - \b EPI_MODE_HB16 - use with host-bus 16-bit interface //! - \b EPI_MODE_DISABLE - disable the EPI module //! -//! Selection of any of the above modes will enable the EPI module, except +//! Selection of any of the above modes enables the EPI module, except //! for \b EPI_MODE_DISABLE which should be used to disable the module. //! //! \return None. @@ -86,15 +86,15 @@ EPIModeSet(unsigned long ulBase, unsigned long ulMode) //! \param ulDivider is the value of the clock divider to be applied to //! the external interface (0-65535). //! -//! This functions sets the clock divider(s) that is used to determine the +//! This function sets the clock divider(s) that is used to determine the //! clock rate of the external interface. The \e ulDivider value is used to -//! derive the EPI clock rate from the system clock based upon the following +//! derive the EPI clock rate from the system clock based on the following //! formula. //! //! EPIClock = (Divider == 0) ? SysClk : (SysClk / (((Divider / 2) + 1) * 2)) //! //! For example, a divider value of 1 results in an EPI clock rate of half -//! the system clock, value of 2 or 3 yield one quarter of the system clock and +//! the system clock, value of 2 or 3 yields one quarter of the system clock and //! a value of 4 results in one sixth of the system clock rate. //! //! In cases where a dual chip select mode is in use and different clock rates @@ -292,8 +292,8 @@ EPIConfigHB8Set(unsigned long ulBase, unsigned long ulConfig, //! or \b EPI_HB16_RDWAIT_3 to select the number of read wait states (default //! is 0 wait states) //! - \b EPI_HB16_WORD_ACCESS - use Word Access mode to route bytes to the -//! correct byte lanes allowing data to be stored in bits [31:8]. If absent, -//! all data transfers use bits [7:0]. +//! correct byte lanes allowing data to be stored in bits [31:16]. If absent, +//! all data transfers use bits [15:0]. //! - \b EPI_HB16_BSEL - enables byte selects. In this mode, two EPI signals //! operate as byte selects allowing 8-bit transfers. If this flag is not //! specified, data must be read and written using only 16-bit transfers. @@ -367,9 +367,8 @@ EPIConfigHB16Set(unsigned long ulBase, unsigned long ulConfig, //! //! This function is used to configure the interface when used in //! general-purpose operation as chosen with the function EPIModeSet(). The -//! parameter -//! \e ulConfig is the logical OR of any of the following: -//! +//! parameter \e ulConfig is the logical OR of any of the following: +//! //! - \b EPI_GPMODE_CLKPIN - interface clock is output on a pin //! - \b EPI_GPMODE_CLKGATE - clock is stopped when there is no transaction, //! otherwise it is free-running @@ -381,13 +380,13 @@ EPIConfigHB16Set(unsigned long ulBase, unsigned long ulConfig, //! - \b EPI_GPMODE_FRAME50 - framing signal is 50/50 duty cycle, otherwise it //! is a pulse //! - \b EPI_GPMODE_READWRITE - read and write strobes are emitted on pins -//! - \b EPI_GPMODE_WRITE2CYCLE - a two cycle write is used, otherwise a +//! - \b EPI_GPMODE_WRITE2CYCLE - a two-cycle write is used, otherwise a //! single-cycle write is used -//! - \b EPI_GPMODE_READ2CYCLE - a two cycle read is used, otherwise a +//! - \b EPI_GPMODE_READ2CYCLE - a two-cycle read is used, otherwise a //! single-cycle read is used //! - \b EPI_GPMODE_ASIZE_NONE, \b EPI_GPMODE_ASIZE_4, //! \b EPI_GPMODE_ASIZE_12, or \b EPI_GPMODE_ASIZE_20 to choose no address -//! bus, or and address bus size of 4, 12, or 20 bits +//! bus or an address bus size of 4, 12, or 20 bits //! - \b EPI_GPMODE_DSIZE_8, \b EPI_GPMODE_DSIZE_16, //! \b EPI_GPMODE_DSIZE_24, or \b EPI_GPMODE_DSIZE_32 to select a data bus //! size of 8, 16, 24, or 32 bits @@ -406,7 +405,7 @@ EPIConfigHB16Set(unsigned long ulBase, unsigned long ulConfig, //! external clock enable is used, this parameter determines the maximum //! number of clocks to wait when the external clock enable signal is holding //! off a transaction. A value of 0 means to wait forever. If a non-zero -//! value is used and exceeded, an interrupt will occur and the transaction +//! value is used and exceeded, an interrupt occurs and the transaction //! aborted. //! //! \return None. @@ -515,7 +514,7 @@ EPIAddressMapSet(unsigned long ulBase, unsigned long ulMap) //! Once configured, the non-blocking read is started by calling //! EPINonBlockingReadStart(). If the addresses to be read from the device //! are in a sequence, it is not necessary to call this function multiple -//! times. Until it is changed, the EPI module will remember the last address +//! times. Until it is changed, the EPI module stores the last address //! that was used for a non-blocking read (per channel). //! //! \return None. @@ -561,9 +560,9 @@ EPINonBlockingReadConfigure(unsigned long ulBase, unsigned long ulChannel, //! //! This function starts a non-blocking read that was previously configured //! with the function EPINonBlockingReadConfigure(). Once this function is -//! called, the EPI module will begin reading data from the external device -//! into the read FIFO. The EPI will stop reading when the FIFO fills up -//! and resume reading when the application drains the FIFO, until the +//! called, the EPI module begins reading data from the external device +//! into the read FIFO. The EPI stops reading when the FIFO fills up +//! and resumes reading when the application drains the FIFO, until the //! total specified count of data items has been read. //! //! Once a read transaction is completed and the FIFO drained, another @@ -627,7 +626,7 @@ EPINonBlockingReadStop(unsigned long ulBase, unsigned long ulChannel) ulOffset = ulChannel * (EPI_O_RPSTD1 - EPI_O_RPSTD0); // - // Write a 0 to the read count register, which will cancel the transaction. + // Write a 0 to the read count register, which cancels the transaction. // HWREG(ulBase + EPI_O_RPSTD0 + ulOffset) = 0; } @@ -705,7 +704,7 @@ EPINonBlockingReadAvail(unsigned long ulBase) //! be stored. //! //! This function reads 32-bit data items from the read FIFO and stores -//! the values in a caller supplied buffer. The function will read and store +//! the values in a caller-supplied buffer. The function reads and stores //! data from the FIFO until there is no more data in the FIFO or the maximum //! count is reached as specified in the parameter \e ulCount. The actual //! count of items is returned. @@ -727,8 +726,8 @@ EPINonBlockingReadGet32(unsigned long ulBase, unsigned long ulCount, ASSERT(pulBuf); // - // Read from the FIFO while there are any items to read, and - // the callers specified count is not exceeded. + // Read from the FIFO while there are any items to read and + // the caller's specified count is not exceeded. // while(HWREG(ulBase + EPI_O_RFIFOCNT) && ulCount--) { @@ -756,11 +755,11 @@ EPINonBlockingReadGet32(unsigned long ulBase, unsigned long ulCount, //! //! \param ulBase is the EPI module base address. //! \param ulCount is the maximum count of items to read. -//! \param pusBuf is the caller supplied buffer where the read data should +//! \param pusBuf is the caller-supplied buffer where the read data should //! be stored. //! //! This function reads 16-bit data items from the read FIFO and stores -//! the values in a caller supplied buffer. The function will read and store +//! the values in a caller-supplied buffer. The function reads and stores //! data from the FIFO until there is no more data in the FIFO or the maximum //! count is reached as specified in the parameter \e ulCount. The actual //! count of items is returned. @@ -783,12 +782,12 @@ EPINonBlockingReadGet16(unsigned long ulBase, unsigned long ulCount, // // Read from the FIFO while there are any items to read, and - // the callers specified count is not exceeded. + // the caller's specified count is not exceeded. // while(HWREG(ulBase + EPI_O_RFIFOCNT) && ulCount--) { // - // Read from the FIFO and store in the caller supplied buffer. + // Read from the FIFO and store in the caller-supplied buffer. // *pusBuf = (unsigned short)HWREG(ulBase + EPI_O_READFIFO); @@ -811,11 +810,11 @@ EPINonBlockingReadGet16(unsigned long ulBase, unsigned long ulCount, //! //! \param ulBase is the EPI module base address. //! \param ulCount is the maximum count of items to read. -//! \param pucBuf is the caller supplied buffer where the read data should +//! \param pucBuf is the caller-supplied buffer where the read data should //! be stored. //! //! This function reads 8-bit data items from the read FIFO and stores -//! the values in a caller supplied buffer. The function will read and store +//! the values in a caller-supplied buffer. The function reads and stores //! data from the FIFO until there is no more data in the FIFO or the maximum //! count is reached as specified in the parameter \e ulCount. The actual //! count of items is returned. @@ -838,7 +837,7 @@ EPINonBlockingReadGet8(unsigned long ulBase, unsigned long ulCount, // // Read from the FIFO while there are any items to read, and - // the callers specified count is not exceeded. + // the caller's specified count is not exceeded. // while(HWREG(ulBase + EPI_O_RFIFOCNT) && ulCount--) { @@ -1140,7 +1139,7 @@ EPIIntRegister(unsigned long ulBase, void (*pfnHandler)(void)) //! //! \param ulBase is the EPI module base address. //! -//! This function will disable and clear the handler to be called when the +//! This function disables and clears the handler to be called when the //! EPI interrupt occurs. //! //! \sa IntRegister() for important information about registering interrupt diff --git a/bsp/lm4f232/Libraries/driverlib/epi.h b/bsp/lm4f232/Libraries/driverlib/epi.h index 25b3d45076..54d8b1511c 100644 --- a/bsp/lm4f232/Libraries/driverlib/epi.h +++ b/bsp/lm4f232/Libraries/driverlib/epi.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/driverlib/ethernet.c b/bsp/lm4f232/Libraries/driverlib/ethernet.c index 6941369fdc..9597ec99df 100644 --- a/bsp/lm4f232/Libraries/driverlib/ethernet.c +++ b/bsp/lm4f232/Libraries/driverlib/ethernet.c @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -44,11 +44,11 @@ //! \param ulBase is the base address of the controller. //! \param ulEthClk is the rate of the clock supplied to the Ethernet module. //! -//! This function will prepare the Ethernet controller for first time use in +//! This function prepares the Ethernet controller for first-time use in //! a given hardware/software configuration. This function should be called //! before any other Ethernet API functions are called. //! -//! The peripheral clock is the same as the processor clock. This is the value +//! The peripheral clock is the same as the processor clock. This value is //! returned by SysCtlClockGet(), or it can be explicitly hard-coded if it is //! constant and known (to save the code/execution overhead of a call to //! SysCtlClockGet()). @@ -112,14 +112,16 @@ EthernetInitExpClk(unsigned long ulBase, unsigned long ulEthClk) //! //! The Ethernet controller provides three control registers that are used //! to configure the controller's operation. The transmit control register -//! provides settings to enable full duplex operation, to auto-generate the +//! provides settings to enable full-duplex operation, to auto-generate the //! frame check sequence, and to pad the transmit packets to the minimum //! length as required by the IEEE standard. The receive control register //! provides settings to enable reception of packets with bad frame check //! sequence values and to enable multi-cast or promiscuous modes. The //! timestamp control register provides settings that enable support logic in //! the controller that allow the use of the General Purpose Timer 3 to capture -//! timestamps for the transmitted and received packets. +//! timestamps for the transmitted and received packets. Note that not all +//! devices support this functionality; see the data sheet to determine if +//! this feature is supported. //! //! The \e ulConfig parameter is the logical OR of the following values: //! @@ -183,11 +185,11 @@ EthernetConfigSet(unsigned long ulBase, unsigned long ulConfig) //! //! \param ulBase is the base address of the controller. //! -//! This function will query the control registers of the Ethernet controller -//! and return a bit-mapped configuration value. +//! This function queries the control registers of the Ethernet controller +//! and returns a bit-mapped configuration value. //! //! \sa The description of the EthernetConfigSet() function provides detailed -//! information for the bit-mapped configuration values that is returned. +//! information for the bit-mapped configuration values that are returned. //! //! \return Returns the bit-mapped Ethernet controller configuration value. // @@ -219,7 +221,7 @@ EthernetConfigGet(unsigned long ulBase) //! \param ulBase is the base address of the controller. //! \param pucMACAddr is the pointer to the array of MAC-48 address octets. //! -//! This function will program the IEEE-defined MAC-48 address specified in +//! This function programs the IEEE-defined MAC-48 address specified in //! \e pucMACAddr into the Ethernet controller. This address is used by the //! Ethernet controller for hardware-level filtering of incoming Ethernet //! packets (when promiscuous mode is not enabled). @@ -282,7 +284,7 @@ EthernetMACAddrSet(unsigned long ulBase, unsigned char *pucMACAddr) //! \param pucMACAddr is the pointer to the location in which to store the //! array of MAC-48 address octets. //! -//! This function will read the currently programmed MAC address into the +//! This function reads the currently programmed MAC address into the //! \e pucMACAddr buffer. //! //! \sa Refer to EthernetMACAddrSet() API description for more details about @@ -329,8 +331,8 @@ EthernetMACAddrGet(unsigned long ulBase, unsigned char *pucMACAddr) //! the EthernetMACAddrSet() function, this API function can be called to //! enable the controller for normal operation. //! -//! This function will enable the controller's transmitter and receiver, and -//! will reset the receive FIFO. +//! This function enables the controller's transmitter and receiver, and +//! resets the receive FIFO. //! //! \return None. // @@ -371,8 +373,8 @@ EthernetEnable(unsigned long ulBase) //! \param ulBase is the base address of the controller. //! //! When terminating operations on the Ethernet interface, this function should -//! be called. This function will disable the transmitter and receiver, and -//! will clear out the receive FIFO. +//! be called. This function disables the transmitter and receiver, and +//! clears out the receive FIFO. //! //! \return None. // @@ -447,7 +449,7 @@ EthernetPacketAvail(unsigned long ulBase) //! packet at a time. After the packet has been written into the FIFO, the //! transmit request bit must be set to enable the transmission of the packet. //! Only after the packet has been transmitted can a new packet be written -//! into the FIFO. This function will simply check to see if a packet is +//! into the FIFO. This function simply checks to see if a packet is //! in progress. If so, there is no space available in the transmit FIFO. //! //! \return Returns \b true if a space is available in the transmit FIFO, and @@ -608,20 +610,20 @@ EthernetPacketGetInternal(unsigned long ulBase, unsigned char *pucBuf, //! \param lBufLen is the maximum number of bytes to be read into the buffer. //! //! This function reads a packet from the receive FIFO of the controller and -//! places it into \e pucBuf. If no packet is available the function will -//! return immediately. Otherwise, the function will read the entire packet -//! from the receive FIFO. If there are more bytes in the packet than will fit -//! into \e pucBuf (as specified by \e lBufLen), the function will return the -//! negated length of the packet and the buffer will contain \e lBufLen bytes -//! of the packet. Otherwise, the function will return the length of the -//! packet that was read and \e pucBuf will contain the entire packet +//! places it into \e pucBuf. If no packet is available the function +//! returns immediately. Otherwise, the function reads the entire packet +//! from the receive FIFO. If there are more bytes in the packet than can fit +//! into \e pucBuf (as specified by \e lBufLen), the function returns the +//! negated length of the packet and the buffer contains \e lBufLen bytes +//! of the packet. Otherwise, the function returns the length of the +//! packet that was read and \e pucBuf contains the entire packet //! (excluding the frame check sequence bytes). //! //! This function replaces the original EthernetPacketNonBlockingGet() API and //! performs the same actions. A macro is provided in ethernet.h to //! map the original API to this API. //! -//! \note This function will return immediately if no packet is available. +//! \note This function returns immediately if no packet is available. //! //! \return Returns \b 0 if no packet is available, the negated packet length //! \b -n if the packet is too large for \e pucBuf, and the packet length \b n @@ -662,16 +664,16 @@ EthernetPacketGetNonBlocking(unsigned long ulBase, unsigned char *pucBuf, //! \param lBufLen is the maximum number of bytes to be read into the buffer. //! //! This function reads a packet from the receive FIFO of the controller and -//! places it into \e pucBuf. The function will wait until a packet is -//! available in the FIFO. Then the function will read the entire packet -//! from the receive FIFO. If there are more bytes in the packet than will -//! fit into \e pucBuf (as specified by \e lBufLen), the function will return -//! the negated length of the packet and the buffer will contain \e lBufLen -//! bytes of the packet. Otherwise, the function will return the length of -//! the packet that was read and \e pucBuf will contain the entire packet +//! places it into \e pucBuf. The function waits until a packet is +//! available in the FIFO. Then the function reads the entire packet +//! from the receive FIFO. If there are more bytes in the packet than can +//! fit into \e pucBuf (as specified by \e lBufLen), the function returns +//! the negated length of the packet and the buffer contains \e lBufLen +//! bytes of the packet. Otherwise, the function returns the length of +//! the packet that was read and \e pucBuf contains the entire packet //! (excluding the frame check sequence bytes). //! -//! \note This function is blocking and will not return until a packet arrives. +//! \note This function is blocking and does not return until a packet arrives. //! //! \return Returns the negated packet length \b -n if the packet is too large //! for \e pucBuf, and returns the packet length \b n otherwise. @@ -831,10 +833,10 @@ EthernetPacketPutInternal(unsigned long ulBase, unsigned char *pucBuf, //! This function writes \e lBufLen bytes of the packet contained in \e pucBuf //! into the transmit FIFO of the controller and then activates the //! transmitter for this packet. If no space is available in the FIFO, the -//! function will return immediately. If space is available, the -//! function will return once \e lBufLen bytes of the packet have been placed -//! into the FIFO and the transmitter has been started. The function will not -//! wait for the transmission to complete. The function will return the +//! function returns immediately. If space is available, the +//! function returns once \e lBufLen bytes of the packet have been placed +//! into the FIFO and the transmitter has been started. The function does not +//! wait for the transmission to complete. The function returns the //! negated \e lBufLen if the length is larger than the space available in //! the transmit FIFO. //! @@ -842,7 +844,7 @@ EthernetPacketPutInternal(unsigned long ulBase, unsigned char *pucBuf, //! performs the same actions. A macro is provided in ethernet.h to //! map the original API to this API. //! -//! \note This function does not block and will return immediately if no space +//! \note This function does not block and returns immediately if no space //! is available for the transmit packet. //! //! \return Returns \b 0 if no space is available in the transmit FIFO, the @@ -885,14 +887,14 @@ EthernetPacketPutNonBlocking(unsigned long ulBase, unsigned char *pucBuf, //! //! This function writes \e lBufLen bytes of the packet contained in \e pucBuf //! into the transmit FIFO of the controller and then activates the transmitter -//! for this packet. This function will wait until the transmit FIFO is empty. -//! Once space is available, the function will return once \e lBufLen bytes of +//! for this packet. This function waits until the transmit FIFO is empty. +//! Once space is available, the function returns once \e lBufLen bytes of //! the packet have been placed into the FIFO and the transmitter has been -//! started. The function will not wait for the transmission to complete. The -//! function will return the negated \e lBufLen if the length is larger than +//! started. The function does not wait for the transmission to complete. The +//! function returns the negated \e lBufLen if the length is larger than //! the space available in the transmit FIFO. //! -//! \note This function blocks and will wait until space is available for the +//! \note This function blocks and waits until space is available for the //! transmit packet before returning. //! //! \return Returns the negated packet length \b -lBufLen if the packet is too @@ -932,9 +934,10 @@ EthernetPacketPut(unsigned long ulBase, unsigned char *pucBuf, //! enabled Ethernet interrupts occur. //! //! This function sets the handler to be called when the Ethernet interrupt -//! occurs. This will enable the global interrupt in the interrupt controller; -//! specific Ethernet interrupts must be enabled via EthernetIntEnable(). It -//! is the interrupt handler's responsibility to clear the interrupt source. +//! occurs. This function enables the global interrupt in the interrupt +//! controller; specific Ethernet interrupts must be enabled via +//! EthernetIntEnable(). It is the interrupt handler's responsibility to clear +//! the interrupt source. //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -968,9 +971,9 @@ EthernetIntRegister(unsigned long ulBase, void (*pfnHandler)(void)) //! //! \param ulBase is the base address of the controller. //! -//! This function unregisters the interrupt handler. This will disable the -//! global interrupt in the interrupt controller so that the interrupt handler -//! no longer is called. +//! This function unregisters the interrupt handler. This function disables +//! the global interrupt in the interrupt controller so that the interrupt +//! handler no longer is called. //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -1004,16 +1007,17 @@ EthernetIntUnregister(unsigned long ulBase) //! \param ulBase is the base address of the controller. //! \param ulIntFlags is the bit mask of the interrupt sources to be enabled. //! -//! Enables the indicated Ethernet interrupt sources. Only the sources that -//! are enabled can be reflected to the processor interrupt; disabled sources -//! have no effect on the processor. +//! This function enables the indicated Ethernet interrupt sources. Only the +//! sources that are enabled can be reflected to the processor interrupt; +//! disabled sources have no effect on the processor. //! //! The \e ulIntFlags parameter is the logical OR of any of the following: //! //! - \b ETH_INT_PHY - An interrupt from the PHY has occurred. The integrated -//! PHY supports a number of interrupt conditions. The PHY register, PHY_MR17, -//! must be read to determine which PHY interrupt has occurred. This register -//! can be read using the EthernetPHYRead() API function. +//! PHY supports a number of interrupt conditions. The appropriate PHY +//! register, PHY_MR17 or PHY_MR29 depending on the device class, must be read +//! to determine which PHY interrupt has occurred. This register can be read +//! using the EthernetPHYRead() API function. //! - \b ETH_INT_MDIO - This interrupt indicates that a transaction on the //! management interface has completed successfully. //! - \b ETH_INT_RXER - This interrupt indicates that an error has occurred @@ -1092,9 +1096,9 @@ EthernetIntDisable(unsigned long ulBase, unsigned long ulIntFlags) //! \param bMasked is false if the raw interrupt status is required and true //! if the masked interrupt status is required. //! -//! This returns the interrupt status for the Ethernet controller. Either the -//! raw interrupt status or the status of interrupts that are allowed to -//! reflect to the processor can be returned. +//! This function returns the interrupt status for the Ethernet controller. +//! Either the raw interrupt status or the status of interrupts that are +//! allowed to reflect to the processor can be returned. //! //! \return Returns the current interrupt status, enumerated as a bit field of //! values described in EthernetIntEnable(). @@ -1137,13 +1141,13 @@ EthernetIntStatus(unsigned long ulBase, tBoolean bMasked) //! \param ulIntFlags is a bit mask of the interrupt sources to be cleared. //! //! The specified Ethernet interrupt sources are cleared so that they no longer -//! assert. This must be done in the interrupt handler to keep it from being -//! called again immediately upon exit. +//! assert. This function must be called in the interrupt handler to keep the +//! interrupt from being triggered again immediately upon exit. //! //! The \e ulIntFlags parameter has the same definition as the \e ulIntFlags //! parameter to EthernetIntEnable(). //! -//! \note Because there is a write buffer in the Cortex-M3 processor, it may +//! \note Because there is a write buffer in the Cortex-M processor, it may //! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid @@ -1180,9 +1184,9 @@ EthernetIntClear(unsigned long ulBase, unsigned long ulIntFlags) //! \param ucAddr is the address of the PHY. //! //! This function sets the address of the PHY that is accessed via -//! EthernetPHYRead() and EthernePHYWrite(). This is only needed when -//! connecting to an external PHY via MII, and should not be used on devices -//! that have integrated PHYs. +//! EthernetPHYRead() and EthernePHYWrite(). This configuration is only needed +//! when connecting to an external PHY via MII, and should not be used on +//! devices that have integrated PHYs. //! //! \return None. // @@ -1216,7 +1220,7 @@ EthernetPHYAddrSet(unsigned long ulBase, unsigned char ucAddr) //! \param ucRegAddr is the address of the PHY register to be accessed. //! \param ulData is the data to be written to the PHY register. //! -//! This function will write the \e ulData to the PHY register specified by +//! This function writes the \e ulData to the PHY register specified by //! \e ucRegAddr. //! //! \return None. @@ -1264,7 +1268,7 @@ EthernetPHYWrite(unsigned long ulBase, unsigned char ucRegAddr, //! \param ulBase is the base address of the controller. //! \param ucRegAddr is the address of the PHY register to be accessed. //! -//! This function will return the contents of the PHY register specified by +//! This function returns the contents of the PHY register specified by //! \e ucRegAddr. //! //! \return Returns the 16-bit value read from the PHY. @@ -1310,8 +1314,8 @@ EthernetPHYRead(unsigned long ulBase, unsigned char ucRegAddr) //! //! \param ulBase is the base address of the controller. //! -//! This function will power off the Ethernet PHY, reducing the current -//! consuption of the device. While in the powered off state, the Ethernet +//! This function powers off the Ethernet PHY, reducing the current +//! consumption of the device. While in the powered off state, the Ethernet //! controller is unable to connect to the Ethernet. //! //! \return None. @@ -1335,9 +1339,9 @@ EthernetPHYPowerOff(unsigned long ulBase) //! //! \param ulBase is the base address of the controller. //! -//! This function will power on the Ethernet PHY, enabling it return to normal -//! operation. By default, the PHY is powered on, so this function only needs -//! to be called if EthernetPHYPowerOff() has previously been called. +//! This function powers on the Ethernet PHY, enabling it return to normal +//! operation. By default, the PHY is powered on, so this function is only +//! called if EthernetPHYPowerOff() has previously been called. //! //! \return None. // diff --git a/bsp/lm4f232/Libraries/driverlib/ethernet.h b/bsp/lm4f232/Libraries/driverlib/ethernet.h index 43fabe7586..015d4b1981 100644 --- a/bsp/lm4f232/Libraries/driverlib/ethernet.h +++ b/bsp/lm4f232/Libraries/driverlib/ethernet.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/driverlib/fan.c b/bsp/lm4f232/Libraries/driverlib/fan.c index 40eb9f70cb..eb1b887e5d 100644 --- a/bsp/lm4f232/Libraries/driverlib/fan.c +++ b/bsp/lm4f232/Libraries/driverlib/fan.c @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -386,9 +386,10 @@ FanChannelRPMGet(unsigned long ulBase, unsigned long ulChannel) //! \param ulBase is the base address of the FAN module. //! \param ulFlags is the logical OR of all the interrupts to be enabled. //! -//! This enables one or more interrupts from the FAN module. The \e ulFlags -//! parameter is the logical OR of all the possible interrupts that can be -//! enabled. For each channel, the following interrupt flags are available: +//! This function enables one or more interrupts from the FAN module. The +//! \e ulFlags parameter is the logical OR of all the possible interrupts that +//! can be enabled. For each channel, the following interrupt flags are +//! available: //! //! - \b FAN_CHn_INT_STALL means that a stall was detected (in either mode). //! - \b FAN_CHn_INT_AUTO_SPEED_ERROR means that in automatic mode, the cooling @@ -403,7 +404,7 @@ FanChannelRPMGet(unsigned long ulBase, unsigned long ulChannel) //! configured for manual mode. The following alternate set of flag names is //! available for convenience to use in manual mode: //! -//! - \b FAN_CHn_INT_MANUAL_SPEED_UPDATE means that in manual mode the speed +//! - \b FAN_CHn_INT_MANUAL_SPEED_UPDATE means that in manual mode, the speed //! was calculated. //! - \b FAN_CHn_INT_MANUAL_SPEED_CHANGE means that in manual mode, the speed //! changed. @@ -504,9 +505,9 @@ FanIntStatus(unsigned long ulBase, tBoolean bMasked) //! \param ulBase is the base address of the FAN module. //! \param ulFlags is the logical OR of all the interrupts to be cleared. //! -//! This clears one or more interrupts from the FAN module. The \e ulFlags -//! parameter is the logical OR of all the possible interrupts that can be -//! cleared. For a list of possible interrupt flags, refer to the +//! This function clears one or more interrupts from the FAN module. The +//! \e ulFlags parameter is the logical OR of all the possible interrupts that +//! can be cleared. For a list of possible interrupt flags, refer to the //! documentation for the function FanIntEnable(). //! //! \return None. diff --git a/bsp/lm4f232/Libraries/driverlib/fan.h b/bsp/lm4f232/Libraries/driverlib/fan.h index b3b023ec10..1b9fb94059 100644 --- a/bsp/lm4f232/Libraries/driverlib/fan.h +++ b/bsp/lm4f232/Libraries/driverlib/fan.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/driverlib/flash.c b/bsp/lm4f232/Libraries/driverlib/flash.c index ac0e4f3cbc..48dcd7af29 100644 --- a/bsp/lm4f232/Libraries/driverlib/flash.c +++ b/bsp/lm4f232/Libraries/driverlib/flash.c @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -70,7 +70,8 @@ static const unsigned long g_pulFMPRERegs[] = //! Gets the number of processor clocks per micro-second. //! //! This function returns the number of clocks per micro-second, as presently -//! known by the flash controller. +//! known by the flash controller. This function is only valid on Sandstorm- +//! and Fury-class devices. //! //! \return Returns the number of processor clocks per micro-second. // @@ -93,7 +94,7 @@ FlashUsecGet(void) //! This function is used to tell the flash controller the number of processor //! clocks per micro-second. This value must be programmed correctly or the //! flash most likely will not program correctly; it has no affect on reading -//! flash. +//! flash. This function is only valid on Sandstorm- and Fury-class devices. //! //! \return None. // @@ -113,11 +114,11 @@ FlashUsecSet(unsigned long ulClocks) //! //! \param ulAddress is the start address of the flash block to be erased. //! -//! This function will erase a 1 kB block of the on-chip flash. After erasing, +//! This function erases a 1-kB block of the on-chip flash. After erasing, //! the block is filled with 0xFF bytes. Read-only and execute-only blocks //! cannot be erased. //! -//! This function will not return until the block has been erased. +//! This function does not return until the block has been erased. //! //! \return Returns 0 on success, or -1 if an invalid block address was //! specified or the block is write-protected. @@ -175,16 +176,16 @@ FlashErase(unsigned long ulAddress) //! \param ulCount is the number of bytes to be programmed. Must be a multiple //! of four. //! -//! This function will program a sequence of words into the on-chip flash. +//! This function programs a sequence of words into the on-chip flash. //! Each word in a page of flash can only be programmed one time between an -//! erase of that page; programming a word multiple times will result in an +//! erase of that page; programming a word multiple times results in an //! unpredictable value in that word of flash. //! -//! Since the flash is programmed one word at a time, the starting address and -//! byte count must both be multiples of four. It is up to the caller to +//! Because the flash is programmed one word at a time, the starting address +//! and byte count must both be multiples of four. It is up to the caller to //! verify the programmed contents, if such verification is required. //! -//! This function will not return until the data has been programmed. +//! This function does not return until the data has been programmed. //! //! \return Returns 0 on success, or -1 if a programming error is encountered. // @@ -298,7 +299,7 @@ FlashProgram(unsigned long *pulData, unsigned long ulAddress, //! //! \param ulAddress is the start address of the flash block to be queried. //! -//! This function will get the current protection for the specified 2 kB block +//! This function gets the current protection for the specified 2-kB block //! of flash. Each block can be read/write, read-only, or execute-only. //! Read/write blocks can be read, executed, erased, and programmed. Read-only //! blocks can be read and executed. Execute-only blocks can only be executed; @@ -391,17 +392,17 @@ FlashProtectGet(unsigned long ulAddress) //! \param eProtect is the protection to be applied to the block. Can be one //! of \b FlashReadWrite, \b FlashReadOnly, or \b FlashExecuteOnly. //! -//! This function will set the protection for the specified 2 kB block of -//! flash. Blocks which are read/write can be made read-only or execute-only. -//! Blocks which are read-only can be made execute-only. Blocks which are +//! This function sets the protection for the specified 2-kB block of +//! flash. Blocks that are read/write can be made read-only or execute-only. +//! Blocks that are read-only can be made execute-only. Blocks that are //! execute-only cannot have their protection modified. Attempts to make the -//! block protection less stringent (that is, read-only to read/write) will -//! result in a failure (and be prevented by the hardware). +//! block protection less stringent (that is, read-only to read/write) +//! result in a failure (and are prevented by the hardware). //! //! Changes to the flash protection are maintained only until the next reset. -//! This allows the application to be executed in the desired flash protection -//! environment to check for inappropriate flash access (via the flash -//! interrupt). To make the flash protection permanent, use the +//! This protocol allows the application to be executed in the desired flash +//! protection environment to check for inappropriate flash access (via the +//! flash interrupt). To make the flash protection permanent, use the //! FlashProtectSave() function. //! //! \return Returns 0 on success, or -1 if an invalid address or an invalid @@ -556,11 +557,11 @@ FlashProtectSet(unsigned long ulAddress, tFlashProtection eProtect) // //! Saves the flash protection settings. //! -//! This function will make the currently programmed flash protection settings -//! permanent. This is a non-reversible operation; a chip reset or power cycle -//! will not change the flash protection. +//! This function makes the currently programmed flash protection settings +//! permanent. On some devices, this operation is non-reversible; a chip reset +//! or power cycle does not change the flash protection. //! -//! This function will not return until the protection has been saved. +//! This function does not return until the protection has been saved. //! //! \return Returns 0 on success, or -1 if a hardware error is encountered. // @@ -605,8 +606,8 @@ FlashProtectSave(void) //! \param pulUser0 is a pointer to the location to store USER Register 0. //! \param pulUser1 is a pointer to the location to store USER Register 1. //! -//! This function will read the contents of user registers (0 and 1), and -//! store them in the specified locations. +//! This function reads the contents of user registers (0 and 1), and +//! stores them in the specified locations. //! //! \return Returns 0 on success, or -1 if a hardware error is encountered. // @@ -647,7 +648,7 @@ FlashUserGet(unsigned long *pulUser0, unsigned long *pulUser1) //! \param ulUser0 is the value to store in USER Register 0. //! \param ulUser1 is the value to store in USER Register 1. //! -//! This function will set the contents of the user registers (0 and 1) to +//! This function sets the contents of the user registers (0 and 1) to //! the specified values. //! //! \return Returns 0 on success, or -1 if a hardware error is encountered. @@ -680,11 +681,11 @@ FlashUserSet(unsigned long ulUser0, unsigned long ulUser1) // //! Saves the user registers. //! -//! This function will make the currently programmed user register settings -//! permanent. This is a non-reversible operation; a chip reset or power cycle -//! will not change this setting. +//! This function makes the currently programmed user register settings +//! permanent. On some devices, this operation is non-reversible; a chip reset +//! or power cycle does not change this setting. //! -//! This function will not return until the protection has been saved. +//! This function does not return until the protection has been saved. //! //! \return Returns 0 on success, or -1 if a hardware error is encountered. // @@ -740,8 +741,8 @@ FlashUserSave(void) //! \param pfnHandler is a pointer to the function to be called when the flash //! interrupt occurs. //! -//! This sets the handler to be called when the flash interrupt occurs. The -//! flash controller can generate an interrupt when an invalid flash access +//! This function sets the handler to be called when the flash interrupt occurs. +//! The flash controller can generate an interrupt when an invalid flash access //! occurs, such as trying to program or erase a read-only block, or trying to //! read from an execute-only block. It can also generate an interrupt when a //! program or erase operation has completed. The interrupt is automatically @@ -771,9 +772,9 @@ FlashIntRegister(void (*pfnHandler)(void)) // //! Unregisters the interrupt handler for the flash interrupt. //! -//! This function will clear the handler to be called when the flash interrupt -//! occurs. This will also mask off the interrupt in the interrupt controller -//! so that the interrupt handler is no longer called. +//! This function clears the handler to be called when the flash interrupt +//! occurs. This function also masks off the interrupt in the interrupt +//! controller so that the interrupt handler is no longer called. //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -802,9 +803,9 @@ FlashIntUnregister(void) //! \param ulIntFlags is a bit mask of the interrupt sources to be enabled. //! Can be any of the \b FLASH_INT_PROGRAM or \b FLASH_INT_ACCESS values. //! -//! Enables the indicated flash controller interrupt sources. Only the sources -//! that are enabled can be reflected to the processor interrupt; disabled -//! sources have no effect on the processor. +//! This function enables the indicated flash controller interrupt sources. +//! Only the sources that are enabled can be reflected to the processor +//! interrupt; disabled sources have no effect on the processor. //! //! \return None. // @@ -825,9 +826,9 @@ FlashIntEnable(unsigned long ulIntFlags) //! \param ulIntFlags is a bit mask of the interrupt sources to be disabled. //! Can be any of the \b FLASH_INT_PROGRAM or \b FLASH_INT_ACCESS values. //! -//! Disables the indicated flash controller interrupt sources. Only the -//! sources that are enabled can be reflected to the processor interrupt; -//! disabled sources have no effect on the processor. +//! This function disables the indicated flash controller interrupt sources. +//! Only the sources that are enabled can be reflected to the processor +//! interrupt; disabled sources have no effect on the processor. //! //! \return None. // @@ -848,9 +849,9 @@ FlashIntDisable(unsigned long ulIntFlags) //! \param bMasked is false if the raw interrupt status is required and true if //! the masked interrupt status is required. //! -//! This returns the interrupt status for the flash controller. Either the raw -//! interrupt status or the status of interrupts that are allowed to reflect to -//! the processor can be returned. +//! This function returns the interrupt status for the flash controller. +//! Either the raw interrupt status or the status of interrupts that are +//! allowed to reflect to the processor can be returned. //! //! \return The current interrupt status, enumerated as a bit field of //! \b FLASH_INT_PROGRAM and \b FLASH_INT_ACCESS. @@ -881,10 +882,10 @@ FlashIntStatus(tBoolean bMasked) //! Can be any of the \b FLASH_INT_PROGRAM or \b FLASH_INT_AMISC values. //! //! The specified flash controller interrupt sources are cleared, so that they -//! no longer assert. This must be done in the interrupt handler to keep it -//! from being called again immediately upon exit. +//! no longer assert. This function must be called in the interrupt handler +//! to keep the interrupt from being triggered again immediately upon exit. //! -//! \note Because there is a write buffer in the Cortex-M3 processor, it may +//! \note Because there is a write buffer in the Cortex-M processor, it may //! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid diff --git a/bsp/lm4f232/Libraries/driverlib/flash.h b/bsp/lm4f232/Libraries/driverlib/flash.h index e5a5357018..e089d43e7a 100644 --- a/bsp/lm4f232/Libraries/driverlib/flash.h +++ b/bsp/lm4f232/Libraries/driverlib/flash.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/driverlib/fpu.c b/bsp/lm4f232/Libraries/driverlib/fpu.c index aeb9ad29cc..a61be4c95e 100644 --- a/bsp/lm4f232/Libraries/driverlib/fpu.c +++ b/bsp/lm4f232/Libraries/driverlib/fpu.c @@ -19,7 +19,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -122,10 +122,10 @@ FPUStackingEnable(void) //! interrupt handler, the floating-point context is only restored if it was //! saved (as the result of executing a floating-point instruction). //! -//! This provides a compromise between fast interrupt response (because the -//! floating-point state is not saved on interrupt entry) and the ability to -//! use floating-point in interrupt handlers (because the floating-point state -//! is saved if floating-point instructions are used). +//! This method provides a compromise between fast interrupt response (because +//! the floating-point state is not saved on interrupt entry) and the ability +//! to use floating-point in interrupt handlers (because the floating-point +//! state is saved if floating-point instructions are used). //! //! \return None. // @@ -166,7 +166,7 @@ FPUStackingDisable(void) // //! Selects the format of half-precision floating-point values. //! -//! \param ulMode is the format for half-precision floating-point values; which +//! \param ulMode is the format for half-precision floating-point value, which //! is either \b FPU_HALF_IEEE or \b FPU_HALF_ALTERNATE. //! //! This function selects between the IEEE half-precision floating-point diff --git a/bsp/lm4f232/Libraries/driverlib/fpu.h b/bsp/lm4f232/Libraries/driverlib/fpu.h index f4310a2e57..30d25d5cff 100644 --- a/bsp/lm4f232/Libraries/driverlib/fpu.h +++ b/bsp/lm4f232/Libraries/driverlib/fpu.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/driverlib/gpio.c b/bsp/lm4f232/Libraries/driverlib/gpio.c index 22389d1a6f..0e88fdbe11 100644 --- a/bsp/lm4f232/Libraries/driverlib/gpio.c +++ b/bsp/lm4f232/Libraries/driverlib/gpio.c @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -102,7 +102,8 @@ GPIOBaseValid(unsigned long ulPort) //! //! \param ulPort is the base address of the GPIO port. //! -//! Given a GPIO base address, returns the corresponding interrupt number. +//! Given a GPIO base address, this function returns the corresponding +//! interrupt number. //! //! \return Returns a GPIO interrupt number, or -1 if \e ulPort is invalid. // @@ -236,8 +237,8 @@ GPIOGetIntNumber(unsigned long ulPort) //! \param ucPins is the bit-packed representation of the pin(s). //! \param ulPinIO is the pin direction and/or mode. //! -//! This function will set the specified pin(s) on the selected GPIO port -//! as either an input or output under software control, or it will set the +//! This function configures the specified pin(s) on the selected GPIO port +//! as either input or output under software control, or it configures the //! pin to be under hardware control. //! //! The parameter \e ulPinIO is an enumerated data type that can be one of @@ -354,7 +355,7 @@ GPIODirModeGet(unsigned long ulPort, unsigned char ucPin) //! giving each pin a separate interrupt vector. To use this feature, the //! \b GPIO_DISCRETE_INT can be included to enable an interrupt per pin. The //! \b GPIO_DISCRETE_INT is not available on all devices or all GPIO ports, -//! consult the data sheet to insure that the device and the GPIO port supports +//! consult the data sheet to ensure that the device and the GPIO port supports //! discrete interrupts. //! //! The pin(s) are specified using a bit-packed byte, where each bit that is @@ -402,9 +403,9 @@ GPIOIntTypeSet(unsigned long ulPort, unsigned char ucPins, //! \param ucPin is the pin number. //! //! This function gets the interrupt type for a specified pin on the selected -//! GPIO port. The pin can be configured as a falling edge, rising edge, or -//! both edge detected interrupt, or it can be configured as a low level or -//! high level detected interrupt. The type of interrupt detection mechanism +//! GPIO port. The pin can be configured as a falling-edge, rising-edge, or +//! both-edges detected interrupt, or it can be configured as a low-level or +//! high-level detected interrupt. The type of interrupt detection mechanism //! is returned as an enumerated data type. //! //! \return Returns one of the enumerated data types described for @@ -749,9 +750,9 @@ GPIOPinIntClear(unsigned long ulPort, unsigned char ucPins) //! \param pfnIntHandler is a pointer to the GPIO port interrupt handling //! function. //! -//! This function will ensure that the interrupt handler specified by +//! This function ensures that the interrupt handler specified by //! \e pfnIntHandler is called when an interrupt is detected from the selected -//! GPIO port. This function will also enable the corresponding GPIO interrupt +//! GPIO port. This function also enables the corresponding GPIO interrupt //! in the interrupt controller; individual pin interrupts and interrupt //! sources must be enabled with GPIOPinIntEnable(). //! @@ -791,8 +792,8 @@ GPIOPortIntRegister(unsigned long ulPort, void (*pfnIntHandler)(void)) //! //! \param ulPort is the base address of the GPIO port. //! -//! This function will unregister the interrupt handler for the specified -//! GPIO port. This function will also disable the corresponding +//! This function unregisters the interrupt handler for the specified +//! GPIO port. This function also disables the corresponding //! GPIO port interrupt in the interrupt controller; individual GPIO interrupts //! and interrupt sources must be disabled with GPIOPinIntDisable(). //! @@ -901,15 +902,16 @@ GPIOPinWrite(unsigned long ulPort, unsigned char ucPins, unsigned char ucVal) //! \param ucPins is the bit-packed representation of the pin(s). //! //! The analog-to-digital converter input pins must be properly configured -//! to function correctly on DustDevil-class devices. This function provides -//! the proper configuration for those pin(s). +//! to function correctly on devices that are not Sandstorm- or Fury-class. +//! This function provides the proper configuration for those pin(s). //! //! The pin(s) are specified using a bit-packed byte, where each bit that is //! set identifies the pin to be accessed, and where bit 0 of the byte //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! -//! \note This cannot be used to turn any pin into an ADC input; it only -//! configures an ADC input pin for proper operation. +//! \note This function cannot be used to turn any pin into an ADC input; it +//! only configures an ADC input pin for proper operation. Devices with +//! flexible pin muxing also require a GPIOPinConfigure() function call. //! //! \return None. // @@ -949,8 +951,9 @@ GPIOPinTypeADC(unsigned long ulPort, unsigned char ucPins) //! set identifies the pin to be accessed, and where bit 0 of the byte //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! -//! \note This cannot be used to turn any pin into a CAN pin; it only -//! configures a CAN pin for proper operation. +//! \note This function cannot be used to turn any pin into a CAN pin; it only +//! configures a CAN pin for proper operation. Devices with flexible pin +//! muxing also require a GPIOPinConfigure() function call. //! //! \return None. // @@ -989,8 +992,10 @@ GPIOPinTypeCAN(unsigned long ulPort, unsigned char ucPins) //! set identifies the pin to be accessed, and where bit 0 of the byte //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! -//! \note This cannot be used to turn any pin into an analog comparator input; -//! it only configures an analog comparator pin for proper operation. +//! \note This function cannot be used to turn any pin into an analog comparator +//! input; it only configures an analog comparator pin for proper operation. +//! Devices with flexible pin muxing also require a GPIOPinConfigure() +//! function call. //! //! \return None. // @@ -1031,9 +1036,10 @@ GPIOPinTypeComparator(unsigned long ulPort, unsigned char ucPins) //! set identifies the pin to be accessed, and where bit 0 of the byte //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! -//! \note This cannot be used to turn any pin into an external peripheral -//! interface pin; it only configures an external peripheral interface pin for -//! proper operation. +//! \note This function cannot be used to turn any pin into an external +//! peripheral interface pin; it only configures an external peripheral +//! interface pin for proper operation. Devices with flexible pin muxing also +//! require a GPIOPinConfigure() function call. //! //! \return None. // @@ -1072,8 +1078,9 @@ GPIOPinTypeEPI(unsigned long ulPort, unsigned char ucPins) //! set identifies the pin to be accessed, and where bit 0 of the byte //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! -//! \note This cannot be used to turn any pin into an Ethernet LED pin; it only -//! configures an Ethernet LED pin for proper operation. +//! \note This function cannot be used to turn any pin into an Ethernet LED pin; +//! it only configures an Ethernet LED pin for proper operation. Devices with +//! flexible pin muxing also require a GPIOPinConfigure() function call. //! //! \return None. // @@ -1112,8 +1119,9 @@ GPIOPinTypeEthernetLED(unsigned long ulPort, unsigned char ucPins) //! set identifies the pin to be accessed, and where bit 0 of the byte //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! -//! \note This cannot be used to turn any pin into an Ethernet MII pin; it only -//! configures an Ethernet MII pin for proper operation. +//! \note This function cannot be used to turn any pin into an Ethernet MII pin; +//! it only configures an Ethernet MII pin for proper operation. Devices with +//! flexible pin muxing also require a GPIOPinConfigure() function call. //! //! \return None. // @@ -1153,8 +1161,9 @@ GPIOPinTypeEthernetMII(unsigned long ulPort, unsigned char ucPins) //! set identifies the pin to be accessed, and where bit 0 of the byte //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! -//! \note This cannot be used to turn any pin into a fan pin; it only -//! configures a fan pin for proper operation. +//! \note This function cannot be used to turn any pin into a fan pin; it only +//! configures a fan pin for proper operation. Devices with flexible pin +//! muxing also require a GPIOPinConfigure() function call. //! //! \return None. // @@ -1194,6 +1203,9 @@ GPIOPinTypeFan(unsigned long ulPort, unsigned char ucPins) //! set identifies the pin to be accessed, and where bit 0 of the byte //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! +//! \note Devices with flexible pin muxing also require a GPIOPinConfigure() +//! function call. +//! //! \return None. // //***************************************************************************** @@ -1232,6 +1244,9 @@ GPIOPinTypeGPIOInput(unsigned long ulPort, unsigned char ucPins) //! set identifies the pin to be accessed, and where bit 0 of the byte //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! +//! \note Devices with flexible pin muxing also require a GPIOPinConfigure() +//! function call. +//! //! \return None. // //***************************************************************************** @@ -1270,6 +1285,9 @@ GPIOPinTypeGPIOOutput(unsigned long ulPort, unsigned char ucPins) //! set identifies the pin to be accessed, and where bit 0 of the byte //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! +//! \note Devices with flexible pin muxing also require a GPIOPinConfigure() +//! function call. +//! //! \return None. // //***************************************************************************** @@ -1307,8 +1325,9 @@ GPIOPinTypeGPIOOutputOD(unsigned long ulPort, unsigned char ucPins) //! set identifies the pin to be accessed, and where bit 0 of the byte //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! -//! \note This cannot be used to turn any pin into an I2C pin; it only -//! configures an I2C pin for proper operation. +//! \note This function cannot be used to turn any pin into an I2C pin; it +//! only configures an I2C pin for proper operation. Devices with flexible pin +//! muxing also require a GPIOPinConfigure() function call. //! //! \return None. // @@ -1347,8 +1366,10 @@ GPIOPinTypeI2C(unsigned long ulPort, unsigned char ucPins) //! set identifies the pin to be accessed, and where bit 0 of the byte //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! -//! \note This cannot be used to turn any pin into an I2C SCL pin; it only -//! configures an I2C SCL pin for proper operation. +//! \note This function should only be used for Blizzard-class devices. It +//! cannot be used to turn any pin into an I2C SCL pin; it only configures an +//! I2C SCL pin for proper operation. Devices with flexible pin muxing also +//! require a GPIOPinConfigure() function call. //! //! \return None. // @@ -1395,8 +1416,9 @@ GPIOPinTypeI2CSCL(unsigned long ulPort, unsigned char ucPins) //! set identifies the pin to be accessed, and where bit 0 of the byte //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! -//! \note This cannot be used to turn any pin into a I2S pin; it only -//! configures a I2S pin for proper operation. +//! \note This function cannot be used to turn any pin into a I2S pin; it only +//! configures a I2S pin for proper operation. Devices with flexible pin +//! muxing also require a GPIOPinConfigure() function call. //! //! \return None. // @@ -1436,8 +1458,9 @@ GPIOPinTypeI2S(unsigned long ulPort, unsigned char ucPins) //! set identifies the pin to be accessed, and where bit 0 of the byte //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! -//! \note This cannot be used to turn any pin into a LPC pin; it only -//! configures a LPC pin for proper operation. +//! \note This function cannot be used to turn any pin into a LPC pin; it only +//! configures a LPC pin for proper operation. Devices with flexible pin +//! muxing also require a GPIOPinConfigure() function call. //! //! \return None. // @@ -1476,8 +1499,9 @@ GPIOPinTypeLPC(unsigned long ulPort, unsigned char ucPins) //! identifies the pin to be accessed, and where bit 0 of the byte represents //! GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! -//! \note This cannot be used to turn any pin into a PECI receive pin; it only -//! configures a PECI receive pin for proper operation. +//! \note This function cannot be used to turn any pin into a PECI receive pin; +//! it only configures a PECI receive pin for proper operation. Devices with +//! flexible pin muxing also require a GPIOPinConfigure() function call. //! //! \return None. // @@ -1516,8 +1540,9 @@ GPIOPinTypePECIRx(unsigned long ulPort, unsigned char ucPins) //! identifies the pin to be accessed, and where bit 0 of the byte represents //! GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! -//! \note This cannot be used to turn any pin into a PECI transmit pin; it only -//! configures a PECI transmit pin for proper operation. +//! \note This function cannot be used to turn any pin into a PECI transmit pin; +//! it only configures a PECI transmit pin for proper operation. Devices with +//! flexible pin muxing also require a GPIOPinConfigure() function call. //! //! \return None. // @@ -1557,8 +1582,9 @@ GPIOPinTypePECITx(unsigned long ulPort, unsigned char ucPins) //! set identifies the pin to be accessed, and where bit 0 of the byte //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! -//! \note This cannot be used to turn any pin into a PWM pin; it only -//! configures a PWM pin for proper operation. +//! \note This function cannot be used to turn any pin into a PWM pin; it only +//! configures a PWM pin for proper operation. Devices wtih flexible pin +//! muxing also require a GPIOPinConfigure() function call. //! //! \return None. // @@ -1598,8 +1624,9 @@ GPIOPinTypePWM(unsigned long ulPort, unsigned char ucPins) //! set identifies the pin to be accessed, and where bit 0 of the byte //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! -//! \note This cannot be used to turn any pin into a QEI pin; it only -//! configures a QEI pin for proper operation. +//! \note This function cannot be used to turn any pin into a QEI pin; it only +//! configures a QEI pin for proper operation. Devices with flexible pin +//! muxing also require a GPIOPinConfigure() function call. //! //! \return None. // @@ -1639,8 +1666,9 @@ GPIOPinTypeQEI(unsigned long ulPort, unsigned char ucPins) //! set identifies the pin to be accessed, and where bit 0 of the byte //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! -//! \note This cannot be used to turn any pin into a SSI pin; it only -//! configures a SSI pin for proper operation. +//! \note This function cannot be used to turn any pin into a SSI pin; it only +//! configures a SSI pin for proper operation. Devices with flexible pin +//! muxing also require a GPIOPinConfigure() function call. //! //! \return None. // @@ -1680,8 +1708,9 @@ GPIOPinTypeSSI(unsigned long ulPort, unsigned char ucPins) //! set identifies the pin to be accessed, and where bit 0 of the byte //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! -//! \note This cannot be used to turn any pin into a timer pin; it only -//! configures a timer pin for proper operation. +//! \note This function cannot be used to turn any pin into a timer pin; it +//! only configures a timer pin for proper operation. Devices with flexible +//! pin muxing also require a GPIOPinConfigure() function call. //! //! \return None. // @@ -1721,8 +1750,9 @@ GPIOPinTypeTimer(unsigned long ulPort, unsigned char ucPins) //! set identifies the pin to be accessed, and where bit 0 of the byte //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! -//! \note This cannot be used to turn any pin into a UART pin; it only -//! configures a UART pin for proper operation. +//! \note This function cannot be used to turn any pin into a UART pin; it +//! only configures a UART pin for proper operation. Devices with flexible +//! pin muxing also require a GPIOPinConfigure() function call. //! //! \return None. // @@ -1762,8 +1792,9 @@ GPIOPinTypeUART(unsigned long ulPort, unsigned char ucPins) //! set identifies the pin to be accessed, and where bit 0 of the byte //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! -//! \note This cannot be used to turn any pin into a USB pin; it only -//! configures a USB pin for proper operation. +//! \note This function cannot be used to turn any pin into a USB pin; it only +//! configures a USB pin for proper operation. Devices with flexible pin +//! muxing also require a GPIOPinConfigure() function call. //! //! \return None. // @@ -1807,8 +1838,9 @@ GPIOPinTypeUSBAnalog(unsigned long ulPort, unsigned char ucPins) //! set identifies the pin to be accessed, and where bit 0 of the byte //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. //! -//! \note This cannot be used to turn any pin into a USB pin; it only -//! configures a USB pin for proper operation. +//! \note This function cannot be used to turn any pin into a USB pin; it only +//! configures a USB pin for proper operation. Devices with flexible pin +//! muxing also require a GPIOPinConfigure() function call. //! //! \return None. // @@ -1843,10 +1875,11 @@ GPIOPinTypeUSBDigital(unsigned long ulPort, unsigned char ucPins) //! associated with a particular GPIO pin. Only one peripheral function at a //! time can be associated with a GPIO pin, and each peripheral function should //! only be associated with a single GPIO pin at a time (despite the fact that -//! many of them can be associated with more than one GPIO pin). +//! many of them can be associated with more than one GPIO pin). To fully +//! configure a pin, a GPIOPinType*() function should also be called. //! //! The available mappings are supplied on a per-device basis in -//! pin_map.h. The \b PART_IS_ define will enable the +//! pin_map.h. The \b PART_IS_ define enables the //! appropriate set of defines for the device that is being used. //! //! \note This function is not valid on Sandstorm, Fury, and Dustdevil-class @@ -1907,11 +1940,11 @@ GPIOPinConfigure(unsigned long ulPinConfig) //! //! This function enables a GPIO pin to be used as a trigger to start a uDMA //! transaction. Any GPIO pin can be configured to be an external trigger for -//! the uDMA. The GPIO pin will still generate interrupts if the interrupt is +//! the uDMA. The GPIO pin still generates interrupts if the interrupt is //! enabled for the selected pin. //! //! \note This function is not available on all devices, consult the data sheet -//! to insure that the device you are using supports GPIO DMA Control. +//! to ensure that the device you are using supports GPIO DMA Control. //! //! \return None. // @@ -1937,12 +1970,12 @@ GPIODMATriggerEnable(unsigned long ulPort, unsigned char ucPins) //! \param ulPort is the base address of the GPIO port. //! \param ucPins is the bit-packed representation of the pin(s). //! -//! This function disables a GPIO pin to be used as a trigger to start a uDMA -//! transaction. This function can be used to disable this feature if it was -//! enabled via a call to GPIODMATriggerEnable(). +//! This function disables a GPIO pin from being used as a trigger to start a +//! uDMA transaction. This function can be used to disable this feature if it +//! was enabled via a call to GPIODMATriggerEnable(). //! //! \note This function is not available on all devices, consult the data sheet -//! to insure that the device you are using supports GPIO DMA Control. +//! to ensure that the device you are using supports GPIO DMA Control. //! //! \return None. // @@ -1970,11 +2003,13 @@ GPIODMATriggerDisable(unsigned long ulPort, unsigned char ucPins) //! //! This function enables a GPIO pin to be used as a trigger to start an ADC //! sequence. Any GPIO pin can be configured to be an external trigger for -//! an ADC sequence. The GPIO pin will still generate interrupts if the -//! interrupt is enabled for the selected pin. +//! an ADC sequence. The GPIO pin still generates interrupts if the +//! interrupt is enabled for the selected pin. To enable the use of a GPIO pin +//! to trigger the ADC module, the ADCSequenceConfigure() function must be called +//! with the ADC_TRIGGER_EXTERNAL parameter. //! //! \note This function is not available on all devices, consult the data sheet -//! to insure that the device you are using supports GPIO ADC Control. +//! to ensure that the device you are using supports GPIO ADC Control. //! //! \return None. // @@ -2005,7 +2040,7 @@ GPIOADCTriggerEnable(unsigned long ulPort, unsigned char ucPins) //! enabled via a call to GPIOADCTriggerEnable(). //! //! \note This function is not available on all devices, consult the data sheet -//! to insure that the device you are using supports GPIO ADC Control. +//! to ensure that the device you are using supports GPIO ADC Control. //! //! \return None. // diff --git a/bsp/lm4f232/Libraries/driverlib/gpio.h b/bsp/lm4f232/Libraries/driverlib/gpio.h index ba7d00b650..5320682910 100644 --- a/bsp/lm4f232/Libraries/driverlib/gpio.h +++ b/bsp/lm4f232/Libraries/driverlib/gpio.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/driverlib/hibernate.c b/bsp/lm4f232/Libraries/driverlib/hibernate.c index 6c6b23136d..97d0d7fc48 100644 --- a/bsp/lm4f232/Libraries/driverlib/hibernate.c +++ b/bsp/lm4f232/Libraries/driverlib/hibernate.c @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -69,9 +69,9 @@ static unsigned long g_ulWriteDelay; //! \param None. //! //! On non-Fury-class devices, the hibernate module provides an indication when -//! any write is completed. This is used to pace writes to the module. This -//! function merely polls this bit and returns as soon as it is set. At this -//! point, it is safe to perform another write to the module. +//! any write is completed. This mechanism is used to pace writes to the +//! module. This function merely polls this bit and returns as soon as it is +//! set. At this point, it is safe to perform another write to the module. //! //! \return None. // @@ -108,10 +108,10 @@ HibernateWriteComplete(void) //! \param ulHibClk is the rate of the clock supplied to the Hibernation //! module. //! -//! Enables the Hibernation module for operation. This function should be -//! called before any of the Hibernation module features are used. +//! This function enables the Hibernation module for operation. This function +//! should be called before any of the Hibernation module features are used. //! -//! The peripheral clock is the same as the processor clock. This is the value +//! The peripheral clock is the same as the processor clock. This value is //! returned by SysCtlClockGet(), or it can be explicitly hard-coded if it is //! constant and known (to save the code/execution overhead of a call to //! SysCtlClockGet()). @@ -156,8 +156,8 @@ HibernateEnableExpClk(unsigned long ulHibClk) // //! Disables the Hibernation module for operation. //! -//! Disables the Hibernation module for operation. After this function is -//! called, none of the Hibernation module features are available. +//! This function disables the Hibernation module for operation. After this +//! function is called, none of the Hibernation module features are available. //! //! \return None. // @@ -182,10 +182,10 @@ HibernateDisable(void) //! //! \param ulClockInput specifies the clock input. //! -//! Configures the clock input for the Hibernation module. The configuration -//! option chosen depends entirely on hardware design. The clock input for the -//! module will either be a 32.768 kHz oscillator or a 4.194304 MHz crystal. -//! The \e ulClockFlags parameter must be one of the following: +//! This function configures the clock input for the Hibernation module. The +//! configuration option chosen depends entirely on hardware design. The clock +//! input for the module is either a 32.768 kHz oscillator or a 4.194304 MHz +//! crystal. The \e ulClockFlags parameter must be one of the following: //! //! - \b HIBERNATE_CLOCK_SEL_RAW - use the raw signal from a 32.768 kHz //! oscillator. @@ -289,10 +289,10 @@ HibernateClockConfig(unsigned long ulConfig) // //! Enables the RTC feature of the Hibernation module. //! -//! Enables the RTC in the Hibernation module. The RTC can be used to wake the -//! processor from hibernation at a certain time, or to generate interrupts at -//! certain times. This function must be called before using any of the RTC -//! features of the Hibernation module. +//! This function enables the RTC in the Hibernation module. The RTC can be +//! used to wake the processor from hibernation at a certain time, or to +//! generate interrupts at certain times. This function must be called before +//! using any of the RTC features of the Hibernation module. //! //! \return None. // @@ -315,8 +315,9 @@ HibernateRTCEnable(void) // //! Disables the RTC feature of the Hibernation module. //! -//! Disables the RTC in the Hibernation module. After calling this function -//! the RTC features of the Hibernation module will not be available. +//! This function disables the RTC in the Hibernation module. After calling +//! this function, the RTC features of the Hibernation module are not +//! available. //! //! \return None. // @@ -350,6 +351,7 @@ HibernateRTCDisable(void) //! indicate that the battery level is low. //! //! \note A hibernation request is held off if a battery check is in progress. +//! This function is only available on some Stellaris devices. //! //! \return None. // @@ -373,15 +375,17 @@ HibernateBatCheckStart(void) //! Returns if a forced battery check has completed. //! //! This function returns if the forced battery check initiated by a call to -//! the HibernateBatCheckStart() function has completed. This function will -//! return a non-zero value until the battery level check has completed. Once +//! the HibernateBatCheckStart() function has completed. This function +//! returns a non-zero value until the battery level check has completed. Once //! this function returns a value of zero, the hibernation module has completed //! the battery check and the HibernateIntStatus() function can be used to //! check if the battery was low by checking if the value returned has the //! \b HIBERNATE_INT_LOW_BAT set. //! +//! \note This function is only available on some Stellaris devices. +//! //! \return The value is zero when the battery level check has completed or -//! non-zero if the check is still in process. +//! non-zero if the check is still in process. // //***************************************************************************** unsigned long @@ -399,15 +403,18 @@ HibernateBatCheckDone(void) //! //! \param ulWakeFlags specifies which conditions should be used for waking. //! -//! Enables the conditions under which the Hibernation module will wake. The -//! \e ulWakeFlags parameter is the logical OR of any combination of the -//! following: +//! This function enables the conditions under which the Hibernation module +//! wakes. The \e ulWakeFlags parameter is the logical OR of any combination +//! of the following: //! //! - \b HIBERNATE_WAKE_PIN - wake when the external wake pin is asserted. //! - \b HIBERNATE_WAKE_RTC - wake when one of the RTC matches occurs. //! - \b HIBERNATE_WAKE_LOW_BAT - wake from hibernate due to a low battery //! level being detected. //! +//! \note The \b HIBERNATE_WAKE_LOW_BAT parameter is only available on some +//! Stellaris devices. +//! //! \return None. // //***************************************************************************** @@ -438,14 +445,18 @@ HibernateWakeSet(unsigned long ulWakeFlags) // //! Gets the currently configured wake conditions for the Hibernation module. //! -//! Returns the flags representing the wake configuration for the Hibernation -//! module. The return value is a combination of the following flags: +//! This function returns the flags representing the wake configuration for the +//! Hibernation module. The return value is a combination of the following +//! flags: //! //! - \b HIBERNATE_WAKE_PIN - wake when the external wake pin is asserted. //! - \b HIBERNATE_WAKE_RTC - wake when one of the RTC matches occurs. //! - \b HIBERNATE_WAKE_LOW_BAT - wake from hibernate due to a low battery //! level being detected. //! +//! \note The \b HIBERNATE_WAKE_LOW_BAT parameter is only available on some +//! Stellaris devices. +//! //! \return Returns flags indicating the configured wake conditions. // //***************************************************************************** @@ -466,11 +477,11 @@ HibernateWakeGet(void) //! //! \param ulLowBatFlags specifies behavior of low battery detection. //! -//! Enables the low battery detection and whether hibernation is allowed if a -//! low battery is detected. If low battery detection is enabled, then a low -//! battery condition is indicated in the raw interrupt status register, and -//! can also trigger an interrupt. Optionally, hibernation can be aborted if a -//! low battery is detected. +//! This function enables the low battery detection and whether hibernation is +//! allowed if a low battery is detected. If low battery detection is enabled, +//! then a low battery condition is indicated in the raw interrupt status +//! register, and can also trigger an interrupt. Optionally, hibernation can be +//! aborted if a low battery is detected. //! //! The \e ulLowBatFlags parameter is one of the following values: //! @@ -492,6 +503,9 @@ HibernateWakeGet(void) //! HibernateLowBatSet(HIBERNATE_LOW_BAT_ABORT | HIBERNATE_LOW_BAT_2_1V); //! \endverbatim //! +//! \note The parameters with the specific voltage levels are only available on +//! some Stellaris devices. +//! //! \return None. // //***************************************************************************** @@ -521,8 +535,8 @@ HibernateLowBatSet(unsigned long ulLowBatFlags) // //! Gets the currently configured low battery detection behavior. //! -//! Returns a value representing the currently configured low battery detection -//! behavior. +//! This function returns a value representing the currently configured low +//! battery detection behavior. //! //! The return value is a combination of the values described in the //! HibernateLowBatSet() function. @@ -546,8 +560,8 @@ HibernateLowBatGet(void) //! //! \param ulRTCValue is the new value for the RTC. //! -//! Sets the value of the RTC. The RTC will count seconds if the hardware is -//! configured correctly. The RTC must be enabled by calling +//! This function sets the value of the RTC. The RTC count seconds if the +//! hardware is configured correctly. The RTC must be enabled by calling //! HibernateRTCEnable() before calling this function. //! //! \return None. @@ -571,7 +585,7 @@ HibernateRTCSet(unsigned long ulRTCValue) // //! Gets the value of the real time clock (RTC) counter. //! -//! Gets the value of the RTC and returns it to the caller. +//! This function gets the value of the RTC and returns it to the caller. //! //! \return Returns the value of the RTC. // @@ -591,9 +605,10 @@ HibernateRTCGet(void) //! //! \param ulMatch is the value for the match register. //! -//! Sets the match 0 register for the RTC. The Hibernation module can be -//! configured to wake from hibernation, and/or generate an interrupt when the -//! value of the RTC counter is the same as the match register. +//! This function sets the match 0 register for the RTC. The Hibernation +//! module can be configured to wake from hibernation, and/or generate an +//! interrupt when the value of the RTC counter is the same as the match +//! register. //! //! \return None. // @@ -616,7 +631,7 @@ HibernateRTCMatch0Set(unsigned long ulMatch) // //! Gets the value of the RTC match 0 register. //! -//! Gets the value of the match 0 register for the RTC. +//! This function gets the value of the match 0 register for the RTC. //! //! \return Returns the value of the match register. // @@ -636,9 +651,10 @@ HibernateRTCMatch0Get(void) //! //! \param ulMatch is the value for the match register. //! -//! Sets the match 1 register for the RTC. The Hibernation module can be -//! configured to wake from hibernation, and/or generate an interrupt when the -//! value of the RTC counter is the same as the match register. +//! This function sets the match 1 register for the RTC. The Hibernation +//! module can be configured to wake from hibernation, and/or generate an +//! interrupt when the value of the RTC counter is the same as the match +//! register. //! //! \note The Hibernation RTC Match 1 feature is not available on all Stellaris //! devices. Please consult the data sheet for the Stellaris device that you @@ -665,7 +681,7 @@ HibernateRTCMatch1Set(unsigned long ulMatch) // //! Gets the value of the RTC match 1 register. //! -//! Gets the value of the match 1 register for the RTC. +//! This function gets the value of the match 1 register for the RTC. //! //! \note The Hibernation RTC Match 1 feature is not available on all Stellaris //! devices. Please consult the data sheet for the Stellaris device that you @@ -689,10 +705,11 @@ HibernateRTCMatch1Get(void) //! //! \param ulMatch is the value for the sub second match register. //! -//! Sets the sub second match 0 register for the RTC in 1/32768 of a second -//! increments. The Hibernation module can be configured to wake from -//! hibernation, and/or generate an interrupt when the value of the RTC counter -//! is the same as the match combined with the sub second match register. +//! This function sets the sub second match 0 register for the RTC in 1/32768 +//! of a second increments. The Hibernation module can be configured to wake +//! from hibernation, and/or generate an interrupt when the value of the RTC +//! counter is the same as the match combined with the sub second match +//! register. //! //! \note The Hibernation sub second RTC Match 0 feature is not available on //! all Stellaris devices. Please consult the data sheet for the Stellaris @@ -742,7 +759,7 @@ HibernateRTCSSMatch0Get(void) // //! Returns the current value of the RTC sub second count. //! -//! This function will return the current value of the sub second count for the +//! This function returns the current value of the sub second count for the //! for the RTC in 1/32768 of a second increments. //! //! \note The Hibernation sub second RTC Match 0 feature is not available on @@ -767,14 +784,14 @@ HibernateRTCSSGet(void) //! //! \param ulTrim is the new value for the pre-divider trim register. //! -//! Sets the value of the pre-divider trim register. The input time source is -//! divided by the pre-divider to achieve a one-second clock rate. Once every -//! 64 seconds, the value of the pre-divider trim register is applied to the -//! predivider to allow fine-tuning of the RTC rate, in order to make -//! corrections to the rate. The software application can make adjustments to -//! the predivider trim register to account for variations in the accuracy of -//! the input time source. The nominal value is 0x7FFF, and it can be adjusted -//! up or down in order to fine-tune the RTC rate. +//! This function sets the value of the pre-divider trim register. The input +//! time source is divided by the pre-divider to achieve a one-second clock +//! rate. Once every 64 seconds, the value of the pre-divider trim register is +//! applied to the predivider to allow fine-tuning of the RTC rate, in order +//! to make corrections to the rate. The software application can make +//! adjustments to the predivider trim register to account for variations in +//! the accuracy of the input time source. The nominal value is 0x7FFF, and it +//! can be adjusted up or down in order to fine-tune the RTC rate. //! //! \return None. // @@ -802,9 +819,9 @@ HibernateRTCTrimSet(unsigned long ulTrim) // //! Gets the value of the RTC predivider trim register. //! -//! Gets the value of the pre-divider trim register. This function can be used -//! to get the current value of the trim register prior to making an adjustment -//! by using the HibernateRTCTrimSet() function. +//! This function gets the value of the pre-divider trim register. This +//! function can be used to get the current value of the trim register prior +//! to making an adjustment by using the HibernateRTCTrimSet() function. //! //! \return None. // @@ -820,17 +837,17 @@ HibernateRTCTrimGet(void) //***************************************************************************** // -//! Stores data in the non-volatile memory of the Hibernation module. +//! Stores data in the battery-backed memory of the Hibernation module. //! //! \param pulData points to the data that the caller wants to store in the //! memory of the Hibernation module. //! \param ulCount is the count of 32-bit words to store. //! -//! Stores a set of data in the Hibernation module non-volatile memory. This -//! memory is preserved when the power to the processor is turned off, and can -//! be used to store application state information which will be available when -//! the processor wakes. Up to 64 32-bit words can be stored in the -//! non-volatile memory. The data can be restored by calling the +//! Stores a set of data in the Hibernation module battery-backed memory. +//! This memory is preserved when the power to the processor is turned off, +//! and can be used to store application state information which is available +//! when the processor wakes. Up to 64 32-bit words can be stored in the +//! battery-backed memory. The data can be restored by calling the //! HibernateDataGet() function. //! //! \note The amount of memory available in the Hibernation module varies @@ -858,7 +875,7 @@ HibernateDataSet(unsigned long *pulData, unsigned long ulCount) for(ulIdx = 0; ulIdx < ulCount; ulIdx++) { // - // Write a word to the non-volatile storage area. + // Write a word to the battery-backed storage area. // HWREG(HIB_DATA + (ulIdx * 4)) = pulData[ulIdx]; @@ -871,16 +888,18 @@ HibernateDataSet(unsigned long *pulData, unsigned long ulCount) //***************************************************************************** // -//! Reads a set of data from the non-volatile memory of the Hibernation module. +//! Reads a set of data from the battery-backed memory of the Hibernation +//! module. //! //! \param pulData points to a location where the data that is read from the -//! Hibernation module will be stored. +//! Hibernation module is stored. //! \param ulCount is the count of 32-bit words to read. //! -//! Retrieves a set of data from the Hibernation module non-volatile memory -//! that was previously stored with the HibernateDataSet() function. The -//! caller must ensure that \e pulData points to a large enough memory block to -//! hold all the data that is read from the non-volatile memory. +//! This function retrieves a set of data from the Hibernation module battery- +//! backed memory that was previously stored with the HibernateDataSet() +//! function. The caller must ensure that \e pulData points to a large enough +//! memory block to hold all the data that is read from the battery-backed +//! memory. //! //! \note The amount of memory available in the Hibernation module varies //! across Stellaris devices. Please consult the data sheet for the Stellaris @@ -907,7 +926,7 @@ HibernateDataGet(unsigned long *pulData, unsigned long ulCount) for(ulIdx = 0; ulIdx < ulCount; ulIdx++) { // - // Read a word from the non-volatile storage area. No delay is + // Read a word from the battery-backed storage area. No delay is // required between reads. // pulData[ulIdx] = HWREG(HIB_DATA + (ulIdx * 4)); @@ -920,24 +939,25 @@ HibernateDataGet(unsigned long *pulData, unsigned long ulCount) //! //! This function requests the Hibernation module to disable the external //! regulator, thus removing power from the processor and all peripherals. The -//! Hibernation module will remain powered from the battery or auxiliary power +//! Hibernation module remains powered from the battery or auxiliary power //! supply. //! -//! The Hibernation module will re-enable the external regulator when one of +//! The Hibernation module re-enables the external regulator when one of //! the configured wake conditions occurs (such as RTC match or external -//! \b WAKE pin). When the power is restored the processor will go through a -//! normal power-on reset. The processor can retrieve saved state information -//! with the HibernateDataGet() function. Prior to calling the function to -//! request hibernation mode, the conditions for waking must have already been -//! set by using the HibernateWakeSet() function. +//! \b WAKE pin). When the power is restored the processor goes through a +//! power-on reset although the Hibernation module is not reset. The processor +//! can retrieve saved state information with the HibernateDataGet() function. +//! Prior to calling the function to request hibernation mode, the conditions +//! for waking must have already been set by using the HibernateWakeSet() +//! function. //! //! Note that this function may return because some time may elapse before the //! power is actually removed, or it may not be removed at all. For this -//! reason, the processor will continue to execute instructions for some time +//! reason, the processor continues to execute instructions for some time //! and the caller should be prepared for this function to return. There are //! various reasons why the power may not be removed. For example, if the //! HibernateLowBatSet() function was used to configure an abort if low -//! battery is detected, then the power will not be removed if the battery +//! battery is detected, then the power is not removed if the battery //! voltage is too low. There may be other reasons, related to the external //! circuit design, that a request for hibernation may not actually occur. //! @@ -968,7 +988,8 @@ HibernateRequest(void) //! //! \param ulIntFlags is the bit mask of the interrupts to be enabled. //! -//! Enables the specified interrupt sources from the Hibernation module. +//! This function enables the specified interrupt sources from the Hibernation +//! module. //! //! The \e ulIntFlags parameter must be the logical OR of any combination of //! the following: @@ -979,10 +1000,10 @@ HibernateRequest(void) //! - \b HIBERNATE_INT_RTC_MATCH_0 - RTC match 0 interrupt //! - \b HIBERNATE_INT_RTC_MATCH_1 - RTC match 1 interrupt //! -//! \note The \b HIBERNATE_INT_RTC_MATCH_1 setting is not available on all -//! Stellaris devices. Please consult the data sheet for the Stellaris device -//! that you are using to determine if the Hibernation RTC Match 1 feature is -//! available. +//! \note The \b HIBERNATE_INT_WR_COMPLETE and \b HIBERNATE_INT_RTC_MATCH_1 +//! settings are not available on all Stellaris devices. Please consult the +//! data sheet for the Stellaris device that you are using to determine if +//! these interrupt sources are available. //! //! \return None. // @@ -1015,7 +1036,8 @@ HibernateIntEnable(unsigned long ulIntFlags) //! //! \param ulIntFlags is the bit mask of the interrupts to be disabled. //! -//! Disables the specified interrupt sources from the Hibernation module. +//! This function disables the specified interrupt sources from the +//! Hibernation module. //! //! The \e ulIntFlags parameter has the same definition as the \e ulIntFlags //! parameter to the HibernateIntEnable() function. @@ -1052,9 +1074,10 @@ HibernateIntDisable(unsigned long ulIntFlags) //! \param pfnHandler points to the function to be called when a hibernation //! interrupt occurs. //! -//! Registers the interrupt handler in the system interrupt controller. The -//! interrupt is enabled at the global level, but individual interrupt sources -//! must still be enabled with a call to HibernateIntEnable(). +//! This function registers the interrupt handler in the system interrupt +//! controller. The interrupt is enabled at the global level, but individual +//! interrupt sources must still be enabled with a call to +//! HibernateIntEnable(). //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -1080,9 +1103,9 @@ HibernateIntRegister(void (*pfnHandler)(void)) // //! Unregisters an interrupt handler for the Hibernation module interrupt. //! -//! Unregisters the interrupt handler in the system interrupt controller. The -//! interrupt is disabled at the global level, and the interrupt handler will -//! no longer be called. +//! This function unregisters the interrupt handler in the system interrupt +//! controller. The interrupt is disabled at the global level, and the +//! interrupt handler is longer called. //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -1111,9 +1134,9 @@ HibernateIntUnregister(void) //! \param bMasked is false to retrieve the raw interrupt status, and true to //! retrieve the masked interrupt status. //! -//! Returns the interrupt status of the Hibernation module. The caller can use -//! this to determine the cause of a hibernation interrupt. Either the masked -//! or raw interrupt status can be returned. +//! This function returns the interrupt status of the Hibernation module. The +//! caller can use this function to determine the cause of a hibernation +//! interrupt. Either the masked or raw interrupt status can be returned. //! //! \return Returns the interrupt status as a bit field with the values as //! described in the HibernateIntEnable() function. @@ -1141,13 +1164,14 @@ HibernateIntStatus(tBoolean bMasked) //! //! \param ulIntFlags is the bit mask of the interrupts to be cleared. //! -//! Clears the specified interrupt sources. This must be done from within the -//! interrupt handler or else the handler is called again upon exit. +//! This function clears the specified interrupt sources. This function must +//! be called within the interrupt handler or else the handler is called again +//! upon exit. //! //! The \e ulIntFlags parameter has the same definition as the \e ulIntFlags //! parameter to the HibernateIntEnable() function. //! -//! \note Because there is a write buffer in the Cortex-M3 processor, it may +//! \note Because there is a write buffer in the Cortex-M processor, it may //! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid diff --git a/bsp/lm4f232/Libraries/driverlib/hibernate.h b/bsp/lm4f232/Libraries/driverlib/hibernate.h index 48ec1e054b..87cdf3d558 100644 --- a/bsp/lm4f232/Libraries/driverlib/hibernate.h +++ b/bsp/lm4f232/Libraries/driverlib/hibernate.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/driverlib/i2c.c b/bsp/lm4f232/Libraries/driverlib/i2c.c index 7c1b8c6d60..87d363e9f6 100644 --- a/bsp/lm4f232/Libraries/driverlib/i2c.c +++ b/bsp/lm4f232/Libraries/driverlib/i2c.c @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -106,9 +106,10 @@ I2CSlaveBaseValid(unsigned long ulBase) //! //! \param ulBase is the base address of the I2C Master module. //! -//! Given a I2C base address, returns the corresponding interrupt number. +//! Given a I2C base address, this function returns the corresponding +//! interrupt number. //! -//! \return Returns a I2C interrupt number, or -1 if \e ulBase is invalid. +//! \return Returns an I2C interrupt number, or -1 if \e ulBase is invalid. // //***************************************************************************** static long @@ -149,15 +150,14 @@ I2CIntNumberGet(unsigned long ulBase) //! \param ulI2CClk is the rate of the clock supplied to the I2C module. //! \param bFast set up for fast data transfers //! -//! This function initializes operation of the I2C Master block. Upon -//! successful initialization of the I2C block, this function will have set the -//! bus speed for the master, and will have enabled the I2C Master block. +//! This function initializes operation of the I2C Master block by configuring +//! the bus speed for the master and enabling the I2C Master block. //! //! If the parameter \e bFast is \b true, then the master block is set up to //! transfer data at 400 kbps; otherwise, it is set up to transfer data at //! 100 kbps. //! -//! The peripheral clock is the same as the processor clock. This is the value +//! The peripheral clock is the same as the processor clock. This value is //! returned by SysCtlClockGet(), or it can be explicitly hard coded if it is //! constant and known (to save the code/execution overhead of a call to //! SysCtlClockGet()). @@ -215,9 +215,8 @@ I2CMasterInitExpClk(unsigned long ulBase, unsigned long ulI2CClk, //! \param ulBase is the base address of the I2C Slave module. //! \param ucSlaveAddr 7-bit slave address //! -//! This function initializes operation of the I2C Slave block. Upon -//! successful initialization of the I2C blocks, this function will have set -//! the slave address and have enabled the I2C Slave block. +//! This function initializes operation of the I2C Slave block by configuring +//! the slave address and enabling the I2C Slave block. //! //! The parameter \e ucSlaveAddr is the value that is compared against the //! slave address sent by an I2C master. @@ -255,7 +254,10 @@ I2CSlaveInit(unsigned long ulBase, unsigned char ucSlaveAddr) //! //! This function writes the specified slave address. The \e ulAddrNum field //! dictates which slave address is configured. For example, a value of 0 -//! configures the primary address and a value of 1 the secondary. +//! configures the primary address and a value of 1, the secondary. +//! +//! \note Not all Stellaris devices support a secondary address. Please consult +//! the device data sheet to know if this feature is supported. //! //! \return None. // @@ -302,7 +304,7 @@ I2CSlaveAddressSet(unsigned long ulBase, unsigned char ucAddrNum, //! //! \param ulBase is the base address of the I2C Master module. //! -//! This will enable operation of the I2C Master block. +//! This function enables operation of the I2C Master block. //! //! \return None. // @@ -327,7 +329,7 @@ I2CMasterEnable(unsigned long ulBase) //! //! \param ulBase is the base address of the I2C Slave module. //! -//! This will enable operation of the I2C Slave block. +//! This fucntion enables operation of the I2C Slave block. //! //! \return None. // @@ -358,7 +360,7 @@ I2CSlaveEnable(unsigned long ulBase) //! //! \param ulBase is the base address of the I2C Master module. //! -//! This will disable operation of the I2C master block. +//! This function disables operation of the I2C master block. //! //! \return None. // @@ -383,7 +385,7 @@ I2CMasterDisable(unsigned long ulBase) //! //! \param ulBase is the base address of the I2C Slave module. //! -//! This will disable operation of the I2C slave block. +//! This function disables operation of the I2C slave block. //! //! \return None. // @@ -416,9 +418,9 @@ I2CSlaveDisable(unsigned long ulBase) //! \param pfnHandler is a pointer to the function to be called when the //! I2C interrupt occurs. //! -//! This sets the handler to be called when an I2C interrupt occurs. This will -//! enable the global interrupt in the interrupt controller; specific I2C -//! interrupts must be enabled via I2CMasterIntEnable() and +//! This function sets the handler to be called when an I2C interrupt occurs. +//! This function enables the global interrupt in the interrupt controller; +//! specific I2C interrupts must be enabled via I2CMasterIntEnable() and //! I2CSlaveIntEnable(). If necessary, it is the interrupt handler's //! responsibility to clear the interrupt source via I2CMasterIntClear() and //! I2CSlaveIntClear(). @@ -461,9 +463,9 @@ I2CIntRegister(unsigned long ulBase, void (*pfnHandler)(void)) //! //! \param ulBase is the base address of the I2C Master module. //! -//! This function will clear the handler to be called when an I2C interrupt -//! occurs. This will also mask off the interrupt in the interrupt controller -//! so that the interrupt handler no longer is called. +//! This function clears the handler to be called when an I2C interrupt +//! occurs. This function also masks off the interrupt in the interrupt r +//! controlle so that the interrupt handler no longer is called. //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -503,7 +505,7 @@ I2CIntUnregister(unsigned long ulBase) //! //! \param ulBase is the base address of the I2C Master module. //! -//! Enables the I2C Master interrupt source. +//! This function enables the I2C Master interrupt source. //! //! \return None. // @@ -529,15 +531,19 @@ I2CMasterIntEnable(unsigned long ulBase) //! \param ulBase is the base address of the I2C Master module. //! \param ulIntFlags is the bit mask of the interrupt sources to be enabled. //! -//! Enables the indicated I2C Master interrupt sources. Only the sources that -//! are enabled can be reflected to the processor interrupt; disabled sources -//! have no effect on the processor. +//! This function enables the indicated I2C Master interrupt sources. Only the +//! sources that are enabled can be reflected to the processor interrupt; +//! disabled sources have no effect on the processor. //! //! The \e ulIntFlags parameter is the logical OR of any of the following: //! //! - \b I2C_MASTER_INT_TIMEOUT - Clock Timeout interrupt //! - \b I2C_MASTER_INT_DATA - Data interrupt //! +//! \note Not all Stellaris devices support the Clock Timeout interrupt. +//! Please consult the device data sheet to know if this feature is +//! supported. +//! //! \return None. // //***************************************************************************** @@ -561,7 +567,7 @@ I2CMasterIntEnableEx(unsigned long ulBase, unsigned long ulIntFlags) //! //! \param ulBase is the base address of the I2C Slave module. //! -//! Enables the I2C Slave interrupt source. +//! This function enables the I2C Slave interrupt source. //! //! \return None. // @@ -587,9 +593,9 @@ I2CSlaveIntEnable(unsigned long ulBase) //! \param ulBase is the base address of the I2C Slave module. //! \param ulIntFlags is the bit mask of the interrupt sources to be enabled. //! -//! Enables the indicated I2C Slave interrupt sources. Only the sources that -//! are enabled can be reflected to the processor interrupt; disabled sources -//! have no effect on the processor. +//! This function enables the indicated I2C Slave interrupt sources. Only the +//! sources that are enabled can be reflected to the processor interrupt; +//! disabled sources have no effect on the processor. //! //! The \e ulIntFlags parameter is the logical OR of any of the following: //! @@ -597,6 +603,10 @@ I2CSlaveIntEnable(unsigned long ulBase) //! - \b I2C_SLAVE_INT_START - Start condition detected interrupt //! - \b I2C_SLAVE_INT_DATA - Data interrupt //! +//! \note Not all Stellaris devices support the Stop and Start condition +//! interrupts. Please consult the device data sheet to know if these features +//! are supported. +//! //! \return None. // //***************************************************************************** @@ -620,7 +630,7 @@ I2CSlaveIntEnableEx(unsigned long ulBase, unsigned long ulIntFlags) //! //! \param ulBase is the base address of the I2C Master module. //! -//! Disables the I2C Master interrupt source. +//! This function disables the I2C Master interrupt source. //! //! \return None. // @@ -646,9 +656,9 @@ I2CMasterIntDisable(unsigned long ulBase) //! \param ulBase is the base address of the I2C Master module. //! \param ulIntFlags is the bit mask of the interrupt sources to be disabled. //! -//! Disables the indicated I2C Master interrupt sources. Only the sources that -//! are enabled can be reflected to the processor interrupt; disabled sources -//! have no effect on the processor. +//! This function disables the indicated I2C Master interrupt sources. Only +//! the sources that are enabled can be reflected to the processor interrupt; +//! disabled sources have no effect on the processor. //! //! The \e ulIntFlags parameter has the same definition as the \e ulIntFlags //! parameter to I2CMasterIntEnableEx(). @@ -676,7 +686,7 @@ I2CMasterIntDisableEx(unsigned long ulBase, unsigned long ulIntFlags) //! //! \param ulBase is the base address of the I2C Slave module. //! -//! Disables the I2C Slave interrupt source. +//! This function disables the I2C Slave interrupt source. //! //! \return None. // @@ -702,9 +712,9 @@ I2CSlaveIntDisable(unsigned long ulBase) //! \param ulBase is the base address of the I2C Slave module. //! \param ulIntFlags is the bit mask of the interrupt sources to be disabled. //! -//! Disables the indicated I2C Slave interrupt sources. Only the sources that -//! are enabled can be reflected to the processor interrupt; disabled sources -//! have no effect on the processor. +//! This function disables the indicated I2C Slave interrupt sources. Only +//! the sources that are enabled can be reflected to the processor interrupt; +//! disabled sources have no effect on the processor. //! //! The \e ulIntFlags parameter has the same definition as the \e ulIntFlags //! parameter to I2CSlaveIntEnableEx(). @@ -734,8 +744,8 @@ I2CSlaveIntDisableEx(unsigned long ulBase, unsigned long ulIntFlags) //! \param bMasked is false if the raw interrupt status is requested and //! true if the masked interrupt status is requested. //! -//! This returns the interrupt status for the I2C Master module. Either the -//! raw interrupt status or the status of interrupts that are allowed to +//! This function returns the interrupt status for the I2C Master module. +//! Either the raw interrupt status or the status of interrupts that are allowed to //! reflect to the processor can be returned. //! //! \return The current interrupt status, returned as \b true if active @@ -772,9 +782,9 @@ I2CMasterIntStatus(unsigned long ulBase, tBoolean bMasked) //! \param bMasked is false if the raw interrupt status is requested and //! true if the masked interrupt status is requested. //! -//! This returns the interrupt status for the I2C Master module. Either the -//! raw interrupt status or the status of interrupts that are allowed to -//! reflect to the processor can be returned. +//! This function returns the interrupt status for the I2C Master module. +//! Either the raw interrupt status or the status of interrupts that are +//! allowed to reflect to the processor can be returned. //! //! \return Returns the current interrupt status, enumerated as a bit field of //! values described in I2CMasterIntEnableEx(). @@ -810,9 +820,9 @@ I2CMasterIntStatusEx(unsigned long ulBase, tBoolean bMasked) //! \param bMasked is false if the raw interrupt status is requested and //! true if the masked interrupt status is requested. //! -//! This returns the interrupt status for the I2C Slave module. Either the raw -//! interrupt status or the status of interrupts that are allowed to reflect to -//! the processor can be returned. +//! This function returns the interrupt status for the I2C Slave module. +//! Either the raw interrupt status or the status of interrupts that are +//! allowed to reflect to the processor can be returned. //! //! \return The current interrupt status, returned as \b true if active //! or \b false if not active. @@ -848,9 +858,9 @@ I2CSlaveIntStatus(unsigned long ulBase, tBoolean bMasked) //! \param bMasked is false if the raw interrupt status is requested and //! true if the masked interrupt status is requested. //! -//! This returns the interrupt status for the I2C Slave module. Either the raw -//! interrupt status or the status of interrupts that are allowed to reflect to -//! the processor can be returned. +//! This function returns the interrupt status for the I2C Slave module. +//! Either the raw interrupt status or the status of interrupts that are +//! allowed to reflect to the processor can be returned. //! //! \return Returns the current interrupt status, enumerated as a bit field of //! values described in I2CSlaveIntEnableEx(). @@ -899,10 +909,10 @@ I2CSlaveIntStatusEx(unsigned long ulBase, tBoolean bMasked) //! \param ulBase is the base address of the I2C Master module. //! //! The I2C Master interrupt source is cleared, so that it no longer asserts. -//! This must be done in the interrupt handler to keep it from being called -//! again immediately upon exit. +//! This function must be called in the interrupt handler to keep the interrupt +//! from being triggered again immediately upon exit. //! -//! \note Because there is a write buffer in the Cortex-M3 processor, it may +//! \note Because there is a write buffer in the Cortex-M processor, it may //! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid @@ -943,13 +953,13 @@ I2CMasterIntClear(unsigned long ulBase) //! \param ulIntFlags is a bit mask of the interrupt sources to be cleared. //! //! The specified I2C Master interrupt sources are cleared, so that they no -//! longer assert. This must be done in the interrupt handler to keep it from -//! being called again immediately upon exit. +//! longer assert. This function must be called in the interrupt handler to +//! keep the interrupt from being triggered again immediately upon exit. //! //! The \e ulIntFlags parameter has the same definition as the \e ulIntFlags //! parameter to I2CMasterIntEnableEx(). //! -//! \note Because there is a write buffer in the Cortex-M3 processor, it may +//! \note Because there is a write buffer in the Cortex-M processor, it may //! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid @@ -982,10 +992,10 @@ I2CMasterIntClearEx(unsigned long ulBase, unsigned long ulIntFlags) //! \param ulBase is the base address of the I2C Slave module. //! //! The I2C Slave interrupt source is cleared, so that it no longer asserts. -//! This must be done in the interrupt handler to keep it from being called -//! again immediately upon exit. +//! This function must be called in the interrupt handler to keep the interrupt +//! from being triggered again immediately upon exit. //! -//! \note Because there is a write buffer in the Cortex-M3 processor, it may +//! \note Because there is a write buffer in the Cortex-M processor, it may //! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid @@ -1019,13 +1029,13 @@ I2CSlaveIntClear(unsigned long ulBase) //! \param ulIntFlags is a bit mask of the interrupt sources to be cleared. //! //! The specified I2C Slave interrupt sources are cleared, so that they no -//! longer assert. This must be done in the interrupt handler to keep it from -//! being called again immediately upon exit. +//! longer assert. This function must be called in the interrupt handler to +//! keep the interrupt from being triggered again immediately upon exit. //! //! The \e ulIntFlags parameter has the same definition as the \e ulIntFlags //! parameter to I2CSlaveIntEnableEx(). //! -//! \note Because there is a write buffer in the Cortex-M3 processor, it may +//! \note Because there is a write buffer in the Cortex-M processor, it may //! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid @@ -1053,16 +1063,16 @@ I2CSlaveIntClearEx(unsigned long ulBase, unsigned long ulIntFlags) //***************************************************************************** // -//! Sets the address that the I2C Master will place on the bus. +//! Sets the address that the I2C Master places on the bus. //! //! \param ulBase is the base address of the I2C Master module. //! \param ucSlaveAddr 7-bit slave address //! \param bReceive flag indicating the type of communication with the slave //! -//! This function will set the address that the I2C Master will place on the +//! This function configures the address that the I2C Master places on the //! bus when initiating a transaction. When the \e bReceive parameter is set -//! to \b true, the address will indicate that the I2C Master is initiating a -//! read from the slave; otherwise the address will indicate that the I2C +//! to \b true, the address indicates that the I2C Master is initiating a +//! read from the slave; otherwise the address indicates that the I2C //! Master is initiating a write to the slave. //! //! \return None. @@ -1093,6 +1103,9 @@ I2CMasterSlaveAddrSet(unsigned long ulBase, unsigned char ucSlaveAddr, //! This function returns the state of the I2C bus by providing the real time //! values of the SDA and SCL pins. //! +//! \note Not all Stellaris devices support this function. Please consult the +//! device data sheet to know if this feature is supported. +//! //! \return Returns the state of the bus with SDA in bit position 1 and SCL in //! bit position 0. // @@ -1185,7 +1198,7 @@ I2CMasterBusBusy(unsigned long ulBase) //! Controls the state of the I2C Master module. //! //! \param ulBase is the base address of the I2C Master module. -//! \param ulCmd command to be issued to the I2C Master module +//! \param ulCmd command to be issued to the I2C Master module. //! //! This function is used to control the state of the Master module send and //! receive operations. The \e ucCmd parameter can be one of the following @@ -1285,9 +1298,9 @@ I2CMasterErr(unsigned long ulBase) //! Transmits a byte from the I2C Master. //! //! \param ulBase is the base address of the I2C Master module. -//! \param ucData data to be transmitted from the I2C Master +//! \param ucData data to be transmitted from the I2C Master. //! -//! This function will place the supplied data into I2C Master Data Register. +//! This function places the supplied data into I2C Master Data Register. //! //! \return None. // @@ -1344,6 +1357,9 @@ I2CMasterDataGet(unsigned long ulBase) //! upper 8-bits being programmable. For example, to program a timeout of 20ms //! with a 100kHz SCL frequency, \e ulValue would be 0x7d. //! +//! \note Not all Stellaris devices support this function. Please consult the +//! device data sheet to know if this feature is supported. +//! //! \return None. // //***************************************************************************** @@ -1371,6 +1387,9 @@ I2CMasterTimeoutSet(unsigned long ulBase, unsigned long ulValue) //! This function enables or disables ACK override, allowing the user //! application to drive the value on SDA during the ACK cycle. //! +//! \note Not all Stellaris devices support this function. Please consult the +//! device data sheet to know if this feature is supported. +//! //! \return None. // //***************************************************************************** @@ -1436,7 +1455,7 @@ I2CSlaveACKValueSet(unsigned long ulBase, tBoolean bACK) //! //! \param ulBase is the base address of the I2C Slave module. //! -//! This function will return the action requested from a master, if any. +//! This function returns the action requested from a master, if any. //! Possible values are: //! //! - \b I2C_SLAVE_ACT_NONE @@ -1457,6 +1476,10 @@ I2CSlaveACKValueSet(unsigned long ulBase, tBoolean bACK) //! slave address was matched, \b I2C_SLAVE_ACT_QCMD to indicate that a quick //! command was received, and \b I2C_SLAVE_ACT_QCMD_DATA to indicate that the //! data bit was set when the quick command was received. +//! +//! \note Not all Stellaris devices support the second I2C slave's own address +//! or the quick command function. Please consult the device data sheet to +//! know if these features are supported. // //***************************************************************************** unsigned long @@ -1480,7 +1503,7 @@ I2CSlaveStatus(unsigned long ulBase) //! \param ulBase is the base address of the I2C Slave module. //! \param ucData data to be transmitted from the I2C Slave //! -//! This function will place the supplied data into I2C Slave Data Register. +//! This function places the supplied data into I2C Slave Data Register. //! //! \return None. // diff --git a/bsp/lm4f232/Libraries/driverlib/i2c.h b/bsp/lm4f232/Libraries/driverlib/i2c.h index 318e6e955a..e85a9cad40 100644 --- a/bsp/lm4f232/Libraries/driverlib/i2c.h +++ b/bsp/lm4f232/Libraries/driverlib/i2c.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/driverlib/i2s.c b/bsp/lm4f232/Libraries/driverlib/i2s.c index fe7dc610d4..3cd12ffb64 100644 --- a/bsp/lm4f232/Libraries/driverlib/i2s.c +++ b/bsp/lm4f232/Libraries/driverlib/i2s.c @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -101,9 +101,9 @@ I2STxDisable(unsigned long ulBase) //! Writes data samples to the I2S transmit FIFO with blocking. //! //! \param ulBase is the I2S module base address. -//! \param ulData is the single or dual channel I2S data. +//! \param ulData is the single- or dual-channel I2S data. //! -//! This function writes a single channel sample or combined left-right +//! This function writes a single-channel sample or combined left-right //! samples to the I2S transmit FIFO. The format of the sample is determined //! by the configuration that was used with the function I2STxConfigSet(). //! If the transmit mode is \b I2S_MODE_DUAL_STEREO then the \e ulData @@ -122,7 +122,7 @@ I2STxDisable(unsigned long ulBase) //! contain the left sample, and the next 8 bits contain the right sample, //! with the upper 16 bits unused. //! -//! If there is no room in the transmit FIFO, then this function will wait +//! If there is no room in the transmit FIFO, then this function waits //! in a polling loop until the data can be written. //! //! \return None. @@ -154,9 +154,9 @@ I2STxDataPut(unsigned long ulBase, unsigned long ulData) //! Writes data samples to the I2S transmit FIFO without blocking. //! //! \param ulBase is the I2S module base address. -//! \param ulData is the single or dual channel I2S data. +//! \param ulData is the single- or dual-channel I2S data. //! -//! This function writes a single channel sample or combined left-right +//! This function writes a single-channel sample or combined left-right //! samples to the I2S transmit FIFO. The format of the sample is determined //! by the configuration that was used with the function I2STxConfigSet(). //! If the transmit mode is \b I2S_MODE_DUAL_STEREO then the \e ulData @@ -165,7 +165,7 @@ I2STxDataPut(unsigned long ulBase, unsigned long ulData) //! transmit mode is \b I2S_MODE_COMPACT_STEREO_16 or //! \b I2S_MODE_COMPACT_STEREO_8, then the \e ulData parameter contains both //! the left and right samples. If the transmit mode is -//! \b I2S_MODE_SINGLE_MONO then the \e ulData parameter contains the single +//! \b I2S_MODE_SINGLE_MONO then the \e ulData parameter contains the single- //! channel sample. //! //! For the compact modes, both the left and right samples are written at @@ -175,7 +175,7 @@ I2STxDataPut(unsigned long ulBase, unsigned long ulData) //! contain the left sample, and the next 8 bits contain the right sample, //! with the upper 16 bits unused. //! -//! If there is no room in the transmit FIFO, then this function will return +//! If there is no room in the transmit FIFO, then this function returns //! immediately without writing any data to the FIFO. //! //! \return The number of elements written to the I2S transmit FIFO (1 or 0). @@ -256,7 +256,7 @@ I2STxConfigSet(unsigned long ulBase, unsigned long ulConfig) // // If compact 8 mode is used, then need to adjust some bits // before writing the config register. Also set the FIFO - // config register for 8 bit compact samples. + // config register for 8-bit compact samples. // ulConfig &= ~I2S_CONFIG_MODE_MONO; HWREG(ulBase + I2S_O_TXFIFOCFG) = I2S_TXFIFOCFG_CSS; @@ -265,14 +265,14 @@ I2STxConfigSet(unsigned long ulBase, unsigned long ulConfig) { // // If compact 8 mode is not used, then set the FIFO config - // register for 16 bit. This is okay if a compact mode is - // not used. + // register for 16 bit. This setting is okay if a compact + // mode is not used. // HWREG(ulBase + I2S_O_TXFIFOCFG) = 0; } // - // Write the configuration register. Since all the fields are + // Write the configuration register. Because all the fields are // specified by the configuration parameter, it is not necessary // to do a read-modify-write. // @@ -287,8 +287,8 @@ I2STxConfigSet(unsigned long ulBase, unsigned long ulConfig) //! \param ulLevel is the FIFO service request limit. //! //! This function is used to set the transmit FIFO fullness level at which a -//! service request will occur. The service request is used to generate an -//! interrupt or a DMA transfer request. The transmit FIFO will generate a +//! service request occurs. The service request is used to generate an +//! interrupt or a DMA transfer request. The transmit FIFO generates a //! service request when the number of items in the FIFO is less than the level //! specified in the \e ulLevel parameter. For example, if \e ulLevel is 8, //! then a service request is generated when there are less than 8 samples @@ -297,9 +297,9 @@ I2STxConfigSet(unsigned long ulBase, unsigned long ulConfig) //! For the purposes of counting the FIFO level, a left-right sample pair //! counts as 2, whether the mode is dual or compact stereo. When mono mode is //! used, internally the mono sample is still treated as a sample pair, so a -//! single mono sample counts as 2. Since the FIFO always deals with sample +//! single mono sample counts as 2. Because the FIFO always deals with sample //! pairs, the level must be an even number from 0 to 16. The maximum value is -//! 16, which will cause a service request when there is any room in the FIFO. +//! 16, which causes a service request when there is any room in the FIFO. //! The minimum value is 0, which disables the service request. //! //! \return None. @@ -357,14 +357,14 @@ I2STxFIFOLimitGet(unsigned long ulBase) //! For the purposes of measuring the FIFO level, a left-right sample pair //! counts as 2, whether the mode is dual or compact stereo. When mono mode is //! used, internally the mono sample is still treated as a sample pair, so a -//! single mono sample counts as 2. Since the FIFO always deals with sample +//! single mono sample counts as 2. Because the FIFO always deals with sample //! pairs, normally the level is an even number from 0 to 16. If dual stereo //! mode is used and only the left sample has been written without the matching //! right sample, then the FIFO level is an odd value. If the FIFO level is //! odd, it indicates a left-right sample mismatch. //! -//! \return Returns the number of samples in the transmit FIFO, which will -//! normally be an even number. +//! \return Returns the number of samples in the transmit FIFO, which is +//! normally an even number. // //***************************************************************************** unsigned long @@ -465,7 +465,7 @@ I2SRxDisable(unsigned long ulBase) //! contain the left sample, and the next 8 bits contain the right sample, //! with the upper 16 bits unused. //! -//! If there is no data in the receive FIFO, then this function will wait +//! If there is no data in the receive FIFO, then this function waits //! in a polling loop until data is available. //! //! \return None. @@ -517,7 +517,7 @@ I2SRxDataGet(unsigned long ulBase, unsigned long *pulData) //! contain the left sample, and the next 8 bits contain the right sample, //! with the upper 16 bits unused. //! -//! If there is no data in the receive FIFO, then this function will return +//! If there is no data in the receive FIFO, then this function returns //! immediately without reading any data from the FIFO. //! //! \return The number of elements read from the I2S receive FIFO (1 or 0). @@ -608,14 +608,14 @@ I2SRxConfigSet(unsigned long ulBase, unsigned long ulConfig) } // - // The "mono" bits needs to be removed from the configuration word + // The "mono" bits must be removed from the configuration word // prior to writing to hardware, because the RX configuration register // does not actually use these bits. // ulConfig &= ~I2S_CONFIG_MODE_MONO; // - // Write the configuration register. Since all the fields are + // Write the configuration register. Because all the fields are // specified by the configuration parameter, it is not necessary // to do a read-modify-write. // @@ -630,8 +630,8 @@ I2SRxConfigSet(unsigned long ulBase, unsigned long ulConfig) //! \param ulLevel is the FIFO service request limit. //! //! This function is used to set the receive FIFO fullness level at which a -//! service request will occur. The service request is used to generate an -//! interrupt or a DMA transfer request. The receive FIFO will generate a +//! service request occurs. The service request is used to generate an +//! interrupt or a DMA transfer request. The receive FIFO generates a //! service request when the number of items in the FIFO is greater than the //! level specified in the \e ulLevel parameter. For example, if \e ulLevel is //! 4, then a service request is generated when there are more than 4 samples @@ -640,9 +640,9 @@ I2SRxConfigSet(unsigned long ulBase, unsigned long ulConfig) //! For the purposes of counting the FIFO level, a left-right sample pair //! counts as 2, whether the mode is dual or compact stereo. When mono mode is //! used, internally the mono sample is still treated as a sample pair, so a -//! single mono sample counts as 2. Since the FIFO always deals with sample +//! single mono sample counts as 2. Because the FIFO always deals with sample //! pairs, the level must be an even number from 0 to 16. The minimum value is -//! 0, which will cause a service request when there is any data available in +//! 0, which causes a service request when there is any data available in //! the FIFO. The maximum value is 16, which disables the service request //! (because there cannot be more than 16 items in the FIFO). //! @@ -687,7 +687,7 @@ I2SRxFIFOLimitGet(unsigned long ulBase) // // Read and return the FIFO limit. The lower bit is masked - // because it always reads as 1, and has no meaning. + // because it always reads as 1 and has no meaning. // return(HWREG(ulBase + I2S_O_RXLIMIT) & 0xFFFE); } @@ -702,14 +702,14 @@ I2SRxFIFOLimitGet(unsigned long ulBase) //! For the purposes of measuring the FIFO level, a left-right sample pair //! counts as 2, whether the mode is dual or compact stereo. When mono mode is //! used, internally the mono sample is still treated as a sample pair, so a -//! single mono sample counts as 2. Since the FIFO always deals with sample +//! single mono sample counts as 2. Because the FIFO always deals with sample //! pairs, normally the level is an even number from 0 to 16. If dual stereo //! mode is used and only the left sample has been read without reading the //! matching right sample, then the FIFO level is an odd value. If the FIFO //! level is odd, it indicates a left-right sample mismatch. //! -//! \return Returns the number of samples in the transmit FIFO, which will -//! normally be an even number. +//! \return Returns the number of samples in the transmit FIFO, which is +//! normally an even number. // //***************************************************************************** unsigned long @@ -735,7 +735,7 @@ I2SRxFIFOLevelGet(unsigned long ulBase) //! This function simultaneously enables the transmit and receive modules for //! operation, providing a synchronized SCLK and LRCLK. The module should be //! enabled after configuration. When the module is disabled, no data or -//! clocks will be generated on the I2S signals. +//! clocks are generated on the I2S signals. //! //! \return None. // @@ -771,7 +771,7 @@ I2STxRxEnable(unsigned long ulBase) //! \param ulBase is the I2S module base address. //! //! This function simultaneously disables the transmit and receive modules. -//! When the module is disabled, no data or clocks will be generated on the I2S +//! When the module is disabled, no data or clocks are generated on the I2S //! signals. //! //! \return None. @@ -806,10 +806,10 @@ I2STxRxDisable(unsigned long ulBase) //! \b I2S_CONFIG_FORMAT_LEFT_JUST for left justified format, or //! \b I2S_CONFIG_FORMAT_RIGHT_JUST for right justified format. //! - \b I2S_CONFIG_SCLK_INVERT to invert the polarity of the serial bit clock. -//! - \b I2S_CONFIG_MODE_DUAL for dual channel stereo, +//! - \b I2S_CONFIG_MODE_DUAL for dual-channel stereo, //! \b I2S_CONFIG_MODE_COMPACT_16 for 16-bit compact stereo mode, //! \b I2S_CONFIG_MODE_COMPACT_8 for 8-bit compact stereo mode, or -//! \b I2S_CONFIG_MODE_MONO for single channel mono format. +//! \b I2S_CONFIG_MODE_MONO for single-channel mono format. //! - \b I2S_CONFIG_CLK_MASTER or \b I2S_CONFIG_CLK_SLAVE to select whether //! the I2S transmitter is the clock master or slave. //! - \b I2S_CONFIG_SAMPLE_SIZE_32, \b _24, \b _20, \b _16, or \b _8 @@ -861,8 +861,8 @@ I2STxRxConfigSet(unsigned long ulBase, unsigned long ulConfig) } // - // Write the configuration register. Since all the fields are specified by - // the configuration parameter, it is not necessary to do a + // Write the configuration register. Because all the fields are specified + // by the configuration parameter, it is not necessary to do a // read-modify-write. // HWREG(ulBase + I2S_O_TXCFG) = ulConfig; @@ -878,7 +878,7 @@ I2STxRxConfigSet(unsigned long ulBase, unsigned long ulConfig) //! choices. //! //! This function selects whether the master clock is sourced from the device -//! internal PLL, or comes from an external pin. The I2S serial bit clock +//! internal PLL or comes from an external pin. The I2S serial bit clock //! (SCLK) and left-right word clock (LRCLK) are derived from the I2S master //! clock. The transmit and receive modules can be configured independently. //! The \e ulMClock parameter is chosen from the following: @@ -1019,13 +1019,13 @@ I2SIntStatus(unsigned long ulBase, tBoolean bMasked) //! \param ulBase is the I2S module base address. //! \param ulIntFlags is a bit mask of the interrupt sources to be cleared. //! -//! This function clears the specified pending I2S interrupts. This must -//! be done in the interrupt handler to keep the handler from being called -//! again immediately upon exit. The \e ulIntFlags parameter can be the -//! logical OR of any of the following values: \b I2S_INT_RXERR, +//! This function clears the specified pending I2S interrupts. This function +//! must be called in the interrupt handler to keep the interrupt from being +//! triggered again immediately upon exit. The \e ulIntFlags parameter can be +//! the logical OR of any of the following values: \b I2S_INT_RXERR, //! \b I2S_INT_RXREQ, \b I2S_INT_TXERR, or \b I2S_INT_TXREQ. //! -//! \note Because there is a write buffer in the Cortex-M3 processor, it may +//! \note Because there is a write buffer in the Cortex-M processor, it may //! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid @@ -1061,9 +1061,9 @@ I2SIntClear(unsigned long ulBase, unsigned long ulIntFlags) //! \param pfnHandler is a pointer to the function to be called when the //! interrupt is activated. //! -//! This sets and enables the handler to be called when the I2S controller -//! generates an interrupt. Specific I2S interrupts must still be enabled -//! with the I2SIntEnable() function. It is the responsibility of the +//! This function sets and enables the handler to be called when the I2S +//! controller generates an interrupt. Specific I2S interrupts must still be +//! enabled with the I2SIntEnable() function. It is the responsibility of the //! interrupt handler to clear any pending interrupts with I2SIntClear(). //! //! \sa IntRegister() for important information about registering interrupt @@ -1098,7 +1098,7 @@ I2SIntRegister(unsigned long ulBase, void (*pfnHandler)(void)) //! //! \param ulBase is the I2S module base address. //! -//! This function will disable and clear the handler to be called when the +//! This function disables and clears the handler to be called when the //! I2S interrupt occurs. //! //! \sa IntRegister() for important information about registering interrupt diff --git a/bsp/lm4f232/Libraries/driverlib/i2s.h b/bsp/lm4f232/Libraries/driverlib/i2s.h index e011f26faf..f7abacf8c6 100644 --- a/bsp/lm4f232/Libraries/driverlib/i2s.h +++ b/bsp/lm4f232/Libraries/driverlib/i2s.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/driverlib/interrupt.c b/bsp/lm4f232/Libraries/driverlib/interrupt.c index 4149308185..7eed9758b0 100644 --- a/bsp/lm4f232/Libraries/driverlib/interrupt.c +++ b/bsp/lm4f232/Libraries/driverlib/interrupt.c @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -166,14 +166,14 @@ void (*g_pfnRAMVectors[NUM_INTERRUPTS])(void) __attribute__ ((aligned(1024))); // //! Enables the processor interrupt. //! -//! Allows the processor to respond to interrupts. This does not affect the -//! set of interrupts enabled in the interrupt controller; it just gates the -//! single interrupt from the controller to the processor. +//! This function allows the processor to respond to interrupts. This function +//! does not affect the set of interrupts enabled in the interrupt controller; +//! it just gates the single interrupt from the controller to the processor. //! //! \note Previously, this function had no return value. As such, it was //! possible to include interrupt.h and call this function without //! having included hw_types.h. Now that the return is a -//! tBoolean, a compiler error will occur in this case. The solution +//! tBoolean, a compiler error occurs in this case. The solution //! is to include hw_types.h before including interrupt.h. //! //! \return Returns \b true if interrupts were disabled when the function was @@ -193,14 +193,15 @@ IntMasterEnable(void) // //! Disables the processor interrupt. //! -//! Prevents the processor from receiving interrupts. This does not affect the -//! set of interrupts enabled in the interrupt controller; it just gates the -//! single interrupt from the controller to the processor. +//! This function prevents the processor from receiving interrupts. This +//! function does not affect the set of interrupts enabled in the interrupt +//! controller; it just gates the single interrupt from the controller to the +//! processor. //! //! \note Previously, this function had no return value. As such, it was //! possible to include interrupt.h and call this function without //! having included hw_types.h. Now that the return is a -//! tBoolean, a compiler error will occur in this case. The solution +//! tBoolean, a compiler error occurs in this case. The solution //! is to include hw_types.h before including interrupt.h. //! //! \return Returns \b true if interrupts were already disabled when the @@ -226,15 +227,15 @@ IntMasterDisable(void) //! This function is used to specify the handler function to be called when the //! given interrupt is asserted to the processor. When the interrupt occurs, //! if it is enabled (via IntEnable()), the handler function is called in -//! interrupt context. Since the handler function can preempt other code, care -//! must be taken to protect memory or peripherals that are accessed by the -//! handler and other non-handler code. +//! interrupt context. Because the handler function can preempt other code, +//! care must be taken to protect memory or peripherals that are accessed by +//! the handler and other non-handler code. //! //! \note The use of this function (directly or indirectly via a peripheral //! driver interrupt register function) moves the interrupt vector table from //! flash to SRAM. Therefore, care must be taken when linking the application //! to ensure that the SRAM vector table is located at the beginning of SRAM; -//! otherwise NVIC will not look in the correct portion of memory for the +//! otherwise the NVIC does not look in the correct portion of memory for the //! vector table (it requires the vector table be on a 1 kB memory alignment). //! Normally, the SRAM vector table is so placed via the use of linker scripts. //! See the discussion of compile-time versus run-time interrupt handler @@ -275,7 +276,7 @@ IntRegister(unsigned long ulInterrupt, void (*pfnHandler)(void)) } // - // Point NVIC at the RAM vector table. + // Point the NVIC at the RAM vector table. // HWREG(NVIC_VTABLE) = (unsigned long)g_pfnRAMVectors; } @@ -399,7 +400,7 @@ IntPriorityGroupingGet(void) //! correspond to higher interrupt priorities; priority 0 is the highest //! interrupt priority. //! -//! The hardware priority mechanism will only look at the upper N bits of the +//! The hardware priority mechanism only looks at the upper N bits of the //! priority level (where N is 3 for the Stellaris family), so any //! prioritization must be performed in those bits. The remaining bits can be //! used to sub-prioritize the interrupt sources, and may be used by the @@ -587,13 +588,13 @@ IntDisable(unsigned long ulInterrupt) //! //! \param ulInterrupt specifies the interrupt to be pended. //! -//! The specified interrupt is pended in the interrupt controller. This will -//! cause the interrupt controller to execute the corresponding interrupt -//! handler at the next available time, based on the current interrupt state -//! priorities. For example, if called by a higher priority interrupt handler, -//! the specified interrupt handler will not be called until after the current -//! interrupt handler has completed execution. The interrupt must have been -//! enabled for it to be called. +//! The specified interrupt is pended in the interrupt controller. Pending an +//! interrupt causes the interrupt controller to execute the corresponding +//! interrupt handler at the next available time, based on the current +//! interrupt state priorities. For example, if called by a higher priority +//! interrupt handler, the specified interrupt handler is not called until +//! after the current interrupt handler has completed execution. The interrupt +//! must have been enabled for it to be called. //! //! \return None. // @@ -646,10 +647,10 @@ IntPendSet(unsigned long ulInterrupt) //! //! \param ulInterrupt specifies the interrupt to be unpended. //! -//! The specified interrupt is unpended in the interrupt controller. This will -//! cause any previously generated interrupts that have not been handled yet -//! (due to higher priority interrupts or the interrupt no having been enabled -//! yet) to be discarded. +//! The specified interrupt is unpended in the interrupt controller. Unpending +//! an interrupt causes any previously generated interrupts that have not been +//! handled yet (due to higher priority interrupts or the interrupt not having +//! been enabled yet) to be discarded. //! //! \return None. // @@ -696,16 +697,16 @@ IntPendClear(unsigned long ulInterrupt) //! \param ulPriorityMask is the priority level that is masked. //! //! This function sets the interrupt priority masking level so that all -//! interrupts at the specified or lesser priority level is masked. This -//! can be used to globally disable a set of interrupts with priority below -//! a predetermined threshold. A value of 0 disables priority +//! interrupts at the specified or lesser priority level are masked. Masking +//! interrupts can be used to globally disable a set of interrupts with +//! priority below a predetermined threshold. A value of 0 disables priority //! masking. //! //! Smaller numbers correspond to higher interrupt priorities. So for example -//! a priority level mask of 4 will allow interrupts of priority level 0-3, -//! and interrupts with a numerical priority of 4 and greater is blocked. +//! a priority level mask of 4 allows interrupts of priority level 0-3, +//! and interrupts with a numerical priority of 4 and greater are blocked. //! -//! The hardware priority mechanism will only look at the upper N bits of the +//! The hardware priority mechanism only looks at the upper N bits of the //! priority level (where N is 3 for the Stellaris family), so any //! prioritization must be performed in those bits. //! @@ -728,10 +729,10 @@ IntPriorityMaskSet(unsigned long ulPriorityMask) //! masking is disabled. //! //! Smaller numbers correspond to higher interrupt priorities. So for example -//! a priority level mask of 4 will allow interrupts of priority level 0-3, -//! and interrupts with a numerical priority of 4 and greater is blocked. +//! a priority level mask of 4 allows interrupts of priority level 0-3, +//! and interrupts with a numerical priority of 4 and greater are blocked. //! -//! The hardware priority mechanism will only look at the upper N bits of the +//! The hardware priority mechanism only looks at the upper N bits of the //! priority level (where N is 3 for the Stellaris family), so any //! prioritization must be performed in those bits. //! diff --git a/bsp/lm4f232/Libraries/driverlib/interrupt.h b/bsp/lm4f232/Libraries/driverlib/interrupt.h index b821209742..5ab98d6431 100644 --- a/bsp/lm4f232/Libraries/driverlib/interrupt.h +++ b/bsp/lm4f232/Libraries/driverlib/interrupt.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/driverlib/lpc.c b/bsp/lm4f232/Libraries/driverlib/lpc.c index be412b6876..0e8cab7821 100644 --- a/bsp/lm4f232/Libraries/driverlib/lpc.c +++ b/bsp/lm4f232/Libraries/driverlib/lpc.c @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -79,7 +79,7 @@ LPCChannelValid(unsigned long ulChannel) //! //! The \e ulConfig parameter is the logical OR of the following values: //! - \b LPC_CFG_WAKE - Force assertion of the LPC0CLKRUN signal when the -//! LPC bus is powered down (LPC0PD asserted). +//! LPC bus is powered down (LPC0PD is asserted). //! //! \return None. // @@ -478,11 +478,11 @@ LPCIRQSend(unsigned long ulBase) //! \param pfnHandler is a pointer to the function to be called when the //! LPC interrupt occurs. //! -//! This sets the handler to be called when an LPC interrupt occurs. This -//! will enable the global interrupt in the interrupt controller; specific -//! LPC interrupts must be enabled via LPCIntEnable(). If necessary, it is -//! the interrupt handler's responsibility to clear the interrupt source via -//! LPCIntClear(). +//! This function registers the handler to be called when an LPC interrupt +//! occurs. This function enables the global interrupt in the interrupt +//! controller; specific LPC interrupts must be enabled via LPCIntEnable(). If +//! necessary, it is the interrupt handler's responsibility to clear the +//! interrupt source via LPCIntClear(). //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -516,9 +516,9 @@ LPCIntRegister(unsigned long ulBase, void (*pfnHandler)(void)) //! //! \param ulBase specifies the LPC module base address. //! -//! This function will clear the handler to be called when an LPC interrupt -//! occurs. This will also mask off the interrupt in the interrupt controller -//! so that the interrupt handler no longer is called. +//! This function unregisters the handler to be called when an LPC interrupt +//! occurs. This fucntion also masks off the interrupt in the interrupt +//! controller so that the interrupt handler is no longer called. //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -552,9 +552,9 @@ LPCIntUnregister(unsigned long ulBase) //! \param ulBase specifies the LPC module base address. //! \param ulIntFlags is a bit mask of the interrupt sources to be enabled. //! -//! Enables the indicated LPC interrupt sources. Only the sources that are -//! enabled can be reflected to the processor interrupt; disabled sources have -//! no effect on the processor. +//! This function enables the indicated LPC interrupt sources. Only the +//! sources that are enabled can be reflected to the processor interrupt; +//! disabled sources have no effect on the processor. //! //! The \e ulIntFlags parameter can be any of the following values: //! \b LPC_INT_RST, \b LPC_INT_SLEEP, \b LPC_INT_COMx, \b LPC_INT_SIRQ, @@ -588,9 +588,9 @@ LPCIntEnable(unsigned long ulBase, unsigned long ulIntFlags) //! \param ulBase specifies the LPC module base address. //! \param ulIntFlags is a bit mask of the interrupt sources to be disabled. //! -//! Disables the indicated LPC interrupt sources. Only the sources that are -//! enabled can be reflected to the processor interrupt; disabled sources have -//! no effect on the processor. +//! This funciton disables the indicated LPC interrupt sources. Only the +//! sources that are enabled can be reflected to the processor interrupt; +//! disabled sources have no effect on the processor. //! //! \sa The description of the LPCIntEnable() function provides detailed //! information for the bit-mapped values in \e ulIntFlags. @@ -734,7 +734,7 @@ LPCChannelEnable(unsigned long ulBase, unsigned long ulChannel) //! \param ulBase specifies the LPC module base address. //! \param ulChannel specifies the LPC channel to disable. //! -//! The specified LPC Channel is disabled. +//! This function disables the specified LPC Channel. //! //! \sa The description of the LPCChannelEnable() function provides detailed //! information for the values that can be usd for the \e ulChannel parameter. @@ -769,7 +769,7 @@ LPCChannelDisable(unsigned long ulBase, unsigned long ulChannel) //! \param ulAddress specifies the LPC bus address (IO and/or MEM) for this //! channel. //! -//! The specified LPC Channel is enabled as an endpoint. +//! This function enables the specified LPC Channel as an endpoint. //! //! \return None. // @@ -821,7 +821,7 @@ LPCChannelConfigEPSet(unsigned long ulBase, unsigned long ulChannel, //! \param ulAddress specifies the LPC bus address (IO and/or MEM) for this //! channel. //! -//! The specified LPC Channel is enabled as a mailbox. +//! This function enables the specified LPC Channel as a mailbox. //! //! \return None. // @@ -946,7 +946,8 @@ LPCChannelConfigCOMxSet(unsigned long ulBase, unsigned long ulChannel, //! \param pulAddress is a pointer to storage for the channel bus address. //! \param pulCOMxMode is a pointer to storage for the channel COMx mode. //! -//! The configuration for the specified channel is determined and returned. +//! This function determines and returns the configuration for the specified +//! channel. //! //! \return Returns the bit-mapped channel control register value. // @@ -979,8 +980,7 @@ LPCChannelConfigGet(unsigned long ulBase, unsigned long ulChannel, } // - // Get the IO/Memory address that this endpoint will respond - // to. + // Get the IO/Memory address that this endpoint responds to. // if(pulAddress) { @@ -1008,10 +1008,10 @@ LPCChannelConfigGet(unsigned long ulBase, unsigned long ulChannel, //! \param ulBase specifies the LPC module base address. //! \param ulChannel specifies the LPC channel to configure. //! -//! The absolute address of the channel pool is calculated from the channel -//! configuration setting and returned. +//! Thos function calculates the absolute address of the channel pool from the +//! channel configuration setting and returns it. //! -//! \return Returns absolute base address of the channel pool. +//! \return Returns the absolute base address of the channel pool. // //***************************************************************************** unsigned long @@ -1056,7 +1056,8 @@ LPCChannelPoolAddressGet(unsigned long ulBase, unsigned long ulChannel) //! \param ulBase specifies the LPC module base address. //! \param ulChannel specifies the LPC Channel. //! -//! Reads the status word from an LPC channel and returns it to the caller. +//! This function reads the status word from an LPC channel and returns it to +//! the caller. //! //! \return content of the channel status register. // @@ -1084,7 +1085,8 @@ LPCChannelStatusGet(unsigned long ulBase, unsigned long ulChannel) //! \param ulChannel specifies the LPC Channel. //! \param ulStatus is the user bit values to set. //! -//! Sets the selected user bits of the status word for an LPC channel. +//! This function sets the selected user bits of the status word for an LPC +//! channel. //! //! \return None // @@ -1103,7 +1105,7 @@ LPCChannelStatusSet(unsigned long ulBase, unsigned long ulChannel, ASSERT((ulStatus & (~LPC_CH0ST_USER_M)) == 0); // - // Read thestatus from the LPC Channel, and set new values for + // Read the status from the LPC Channel, and set new values for // the user bits. // ulTemp = HWREG(ulBase + LPC_O_CH0ST + (ulChannel * 0x10)); @@ -1119,7 +1121,8 @@ LPCChannelStatusSet(unsigned long ulBase, unsigned long ulChannel, //! \param ulChannel specifies the LPC Channel. //! \param ulStatus is the user bit values to clear. //! -//! Sets the selected user bits of the status word for an LPC channel. +//! This function sets the selected user bits of the status word for an LPC +//! channel. //! //! \return None // @@ -1138,7 +1141,7 @@ LPCChannelStatusClear(unsigned long ulBase, unsigned long ulChannel, ASSERT((ulStatus & (~LPC_CH0ST_USER_M)) == 0); // - // Read thestatus from the LPC Channel, and set new values for + // Read the status from the LPC Channel, and set new values for // the user bits. // ulTemp = HWREG(ulBase + LPC_O_CH0ST + (ulChannel * 0x10)); @@ -1154,8 +1157,8 @@ LPCChannelStatusClear(unsigned long ulBase, unsigned long ulChannel, //! \param ulConfig specifies the DMA channel configuration. //! \param ulMask specifies the configuration mask to be used. //! -//! Sets the specified DMA channel operation based on the \e ulConfig -//! parameter. +//! This function sets the specified DMA channel operation based on the +//! \e ulConfig parameter. //! //! \return None. // @@ -1192,7 +1195,7 @@ LPCChannelDMAConfigSet(unsigned long ulBase, unsigned long ulConfig, //! //! \param ulBase specifies the LPC module base address. //! -//! Returns the configuration of the LPC DMA channels. +//! This function returns the configuration of the LPC DMA channels. //! //! \return Returns the bit-mapped DMA channel configuration. // @@ -1219,7 +1222,7 @@ LPCChannelDMAConfigGet(unsigned long ulBase) //! \param ulOffset specifies the offset from the beginning of the LPC channel //! pool. //! -//! This function may be called to read a byte from the channel pool. +//! This function reads a byte from the channel pool. //! //! \return Returns the byte read from the pool memory. // @@ -1249,7 +1252,7 @@ LPCByteRead(unsigned long ulBase, unsigned long ulOffset) //! pool. //! \param ucData specifies the byte to write. //! -//! Ths function may be called to write a byte to the channel pool. +//! This function writes a byte to the channel pool. //! //! \return None // @@ -1279,8 +1282,8 @@ LPCByteWrite(unsigned long ulBase, unsigned long ulOffset, //! \param ulOffset specifies the offset from the beginning of the LPC channel //! pool. //! -//! This function may be called to read a half-word from the channel pool. The -//! \e ulOffset specified must be half-word aligned. +//! This function reads a half-word from the channel pool. The \e ulOffset +//! specified must be half-word aligned. //! //! \return Returns the half-word read from the pool memory. // @@ -1311,8 +1314,8 @@ LPCHalfWordRead(unsigned long ulBase, unsigned long ulOffset) //! pool. //! \param usData specifies the byte to write. //! -//! Ths function may be called to write a half-word to the channel pool. The -//! \e ulOffset specified must be half-word aligned. +//! This function writes a half-word to the channel pool. The \e ulOffset +//! specified must be half-word aligned. //! //! \return None // @@ -1343,10 +1346,10 @@ LPCHalfWordWrite(unsigned long ulBase, unsigned long ulOffset, //! \param ulOffset specifies the offset from the beginning of the LPC channel //! pool. //! -//! This function may be called to read a word from the channel pool. The -//! \e ulOffset specified must be word aligned. +//! This function reads a word from the channel pool. The \e ulOffset +//! specified must be word aligned. //! -//! \return Returns the half-word read from the pool memory. +//! \return Returns the word read from the pool memory. // //***************************************************************************** unsigned long @@ -1368,15 +1371,15 @@ LPCWordRead(unsigned long ulBase, unsigned long ulOffset) //***************************************************************************** // -//! Writes a byte to the LPC channel pool. +//! Writes a word to the LPC channel pool. //! //! \param ulBase specifies the LPC module base address. //! \param ulOffset specifies the offset from the beginning of the LPC channel //! pool. -//! \param ulData specifies the byte to write. +//! \param ulData specifies the word to write. //! -//! Ths function may be called to write a half-word to the channel pool. The -//! \e ulOffset specified must be half-word aligned. +//! This function writes a word to the channel pool. The \e ulOffset +//! specified must be word aligned. //! //! \return None // @@ -1406,8 +1409,8 @@ LPCWordWrite(unsigned long ulBase, unsigned long ulOffset, //! \param ulBase specifies the LPC module base address. //! \param ulIntFlags is a bit mask of the interrupt sources to be enabled. //! -//! Enables the indicated COMx interrupt sources to trigger the COMx interrupt -//! in the primary LPC interrupt registers. +//! This function enables the indicated COMx interrupt sources to trigger the +//! COMx interrupt in the primary LPC interrupt registers. //! //! \return None. // @@ -1435,8 +1438,8 @@ LPCCOMxIntEnable(unsigned long ulBase, unsigned long ulIntFlags) //! \param ulBase specifies the LPC module base address. //! \param ulIntFlags is a bit mask of the interrupt sources to be disabled. //! -//! Disables the indicated COMx interrupt sources from triggering the COMx -//! interrupt in the primary LPC interrupt registers. +//! This function disables the indicated COMx interrupt sources from triggering +//! the COMx interrupt in the primary LPC interrupt registers. //! //! \return None. // @@ -1500,8 +1503,8 @@ LPCCOMxIntStatus(unsigned long ulBase, tBoolean bMasked) //! \param ulBase specifies the LPC module base address. //! \param ulIntFlags is a bit mask of the interrupt sources to be cleared. //! -//! The specified COMx interrupt sources are cleared so that they no longer -//! assert. +//! This function clears the specified COMx interrupt sources so that they no +//! longer assert. //! //! \return None. // diff --git a/bsp/lm4f232/Libraries/driverlib/lpc.h b/bsp/lm4f232/Libraries/driverlib/lpc.h index 8fd9c96b09..ec67c6578c 100644 --- a/bsp/lm4f232/Libraries/driverlib/lpc.h +++ b/bsp/lm4f232/Libraries/driverlib/lpc.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/driverlib/mpu.c b/bsp/lm4f232/Libraries/driverlib/mpu.c index 1bef83f5d9..a0bc0c404e 100644 --- a/bsp/lm4f232/Libraries/driverlib/mpu.c +++ b/bsp/lm4f232/Libraries/driverlib/mpu.c @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -42,13 +42,13 @@ //! //! \param ulMPUConfig is the logical OR of the possible configurations. //! -//! This function enables the Cortex-M3 memory protection unit. It also +//! This function enables the Cortex-M memory protection unit. It also //! configures the default behavior when in privileged mode and while handling //! a hard fault or NMI. Prior to enabling the MPU, at least one region must //! be set by calling MPURegionSet() or else by enabling the default region for //! privileged mode by passing the \b MPU_CONFIG_PRIV_DEFAULT flag to -//! MPUEnable(). Once the MPU is enabled, a memory management fault are -//! generated for any memory access violations. +//! MPUEnable(). Once the MPU is enabled, a memory management fault is +//! generated for memory access violations. //! //! The \e ulMPUConfig parameter should be the logical OR of any of the //! following: @@ -62,8 +62,8 @@ //! disabled while in one of these exception handlers and the default //! memory map is applied. //! - \b MPU_CONFIG_NONE chooses none of the above options. In this case, -//! no default memory map is provided in privileged mode, and the MPU will -//! not be enabled in the fault handlers. +//! no default memory map is provided in privileged mode, and the MPU isl +//! not enabled in the fault handlers. //! //! \return None. // @@ -88,7 +88,7 @@ MPUEnable(unsigned long ulMPUConfig) // //! Disables the MPU for use. //! -//! This function disables the Cortex-M3 memory protection unit. When the +//! This function disables the Cortex-M memory protection unit. When the //! MPU is disabled, the default memory map is used and memory management //! faults are not generated. //! @@ -108,9 +108,8 @@ MPUDisable(void) // //! Gets the count of regions supported by the MPU. //! -//! This function is used to get the number of regions that are supported by -//! the MPU. This is the total number that are supported, including regions -//! that are already programmed. +//! This function is used to get the total number of regions that are supported +//! by the MPU, including regions that are already programmed. //! //! \return The number of memory protection regions that are available //! for programming using MPURegionSet(). @@ -120,7 +119,7 @@ unsigned long MPURegionCountGet(void) { // - // Read the DREGION field of the MPU type register, and mask off + // Read the DREGION field of the MPU type register and mask off // the bits of interest to get the count of regions. // return((HWREG(NVIC_MPU_TYPE) & NVIC_MPU_TYPE_DREGION_M) @@ -134,9 +133,9 @@ MPURegionCountGet(void) //! \param ulRegion is the region number to enable. //! //! This function is used to enable a memory protection region. The region -//! should already be set up with the MPURegionSet() function. Once enabled, -//! the memory protection rules of the region are applied and access violations -//! will cause a memory management fault. +//! should already be configured with the MPURegionSet() function. Once +//! enabled, the memory protection rules of the region are applied and access +//! violations cause a memory management fault. //! //! \return None. // @@ -167,7 +166,7 @@ MPURegionEnable(unsigned long ulRegion) //! \param ulRegion is the region number to disable. //! //! This function is used to disable a previously enabled memory protection -//! region. The region will remain configured if it is not overwritten with +//! region. The region remains configured if it is not overwritten with //! another call to MPURegionSet(), and can be enabled again by calling //! MPURegionEnable(). //! @@ -203,16 +202,16 @@ MPURegionDisable(unsigned long ulRegion) //! \param ulFlags is a set of flags to define the attributes of the region. //! //! This function sets up the protection rules for a region. The region has -//! a base address and a set of attributes including the size, which must -//! be a power of 2. The base address parameter, \e ulAddr, must be aligned -//! according to the size. +//! a base address and a set of attributes including the size. The base +//! address parameter, \e ulAddr, must be aligned according to the size, and +//! the size must be a power of 2. //! //! The \e ulFlags parameter is the logical OR of all of the attributes //! of the region. It is a combination of choices for region size, //! execute permission, read/write permissions, disabled sub-regions, //! and a flag to determine if the region is enabled. //! -//! The size flag determines the size of a region, and must be one of the +//! The size flag determines the size of a region and must be one of the //! following: //! //! - \b MPU_RGN_SIZE_32B @@ -262,8 +261,8 @@ MPURegionDisable(unsigned long ulRegion) //! //! The region is automatically divided into 8 equally-sized sub-regions by //! the MPU. Sub-regions can only be used in regions of size 256 bytes -//! or larger. Any of these 8 sub-regions can be disabled. This allows -//! for creation of ``holes'' in a region which can be left open, or overlaid +//! or larger. Any of these 8 sub-regions can be disabled, allowing for +//! creation of ``holes'' in a region which can be left open, or overlaid //! by another region with different attributes. Any of the 8 sub-regions //! can be disabled with a logical OR of any of the following flags: //! @@ -292,7 +291,7 @@ MPURegionDisable(unsigned long ulRegion) //! MPU_SUB_RGN_DISABLE_2 | MPU_RGN_ENABLE) //! //! -//! \note This function will write to multiple registers and is not protected +//! \note This function writes to multiple registers and is not protected //! from interrupts. It is possible that an interrupt which accesses a //! region may occur while that region is in the process of being changed. //! The safest way to handle this is to disable a region before changing it. @@ -382,8 +381,9 @@ MPURegionGet(unsigned long ulRegion, unsigned long *pulAddr, //! \param pfnHandler is a pointer to the function to be called when the //! memory management fault occurs. //! -//! This sets and enables the handler to be called when the MPU generates -//! a memory management fault due to a protection region access violation. +//! This function sets and enables the handler to be called when the MPU +//! generates a memory management fault due to a protection region access +//! violation. //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -414,7 +414,7 @@ MPUIntRegister(void (*pfnHandler)(void)) // //! Unregisters an interrupt handler for the memory management fault. //! -//! This function will disable and clear the handler to be called when a +//! This function disables and clears the handler to be called when a //! memory management fault occurs. //! //! \sa IntRegister() for important information about registering interrupt diff --git a/bsp/lm4f232/Libraries/driverlib/mpu.h b/bsp/lm4f232/Libraries/driverlib/mpu.h index 8b8bbbca66..655228da60 100644 --- a/bsp/lm4f232/Libraries/driverlib/mpu.h +++ b/bsp/lm4f232/Libraries/driverlib/mpu.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/driverlib/peci.c b/bsp/lm4f232/Libraries/driverlib/peci.c index a6d3c88b0c..e07cfc54af 100644 --- a/bsp/lm4f232/Libraries/driverlib/peci.c +++ b/bsp/lm4f232/Libraries/driverlib/peci.c @@ -19,7 +19,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -99,7 +99,7 @@ PECIDomainValid(unsigned long ulDomain) //! host/domain combination can be configured/enabled with a call to //! PECIDomainEnable(). //! -//! The peripheral clock is the same as the processor clock. This is the value +//! The peripheral clock is the same as the processor clock. This value is //! returned by SysCtlClockGet(), or it can be explicitly hard coded if it is //! constant and known (to save the code/execution overhead of a call to //! SysCtlClockGet()). @@ -185,7 +185,7 @@ PECIConfigSet(unsigned long ulBase, unsigned long ulPECIClk, //! rates being used; they may not be the same as the requested rates, due to //! rounding in the calculations. //! -//! The peripheral clock is the same as the processor clock. This is the value +//! The peripheral clock is the same as the processor clock. This value is //! returned by SysCtlClockGet(), or it can be explicitly hard coded if it is //! constant and known (to save the code/execution overhead of a call to //! SysCtlClockGet()). @@ -295,8 +295,8 @@ PECIBypassDisable(unsigned long ulBase) //! //! This function configures the specified PECI domain for temperature //! monitoring operations. The values for \e ulHigh and \e ulLow can be -//! specified as a value relative to the maximum temperature allowed, or it -//! can be specified as an absolute temperature (if an offset was programmed +//! specified as values relative to the maximum temperature allowed, or they +//! can be specified as absolute temperatures if an offset was programmed //! in the PECIConfigSet() function. //! //! The \e ulDomain parameter can be one of the following values: @@ -339,8 +339,8 @@ PECIDomainConfigSet(unsigned long ulBase, unsigned long ulDomain, //! //! This function configures the specified PECI domain for temperature //! monitoring operations. The values for \e ulHigh and \e ulLow can be -//! specified as a value relative to the maximum temperature allowed, or it -//! can be specified as an absolute temperature (if an offset was programmed +//! specified as values relative to the maximum temperature allowed, or they +//! can be specified as absolute temperatures if an offset was programmed //! in the PECIConfigSet() function. //! //! The \e ulDomain parameter can be one of the following values: @@ -574,11 +574,11 @@ PECIDomainMaxReadClear(unsigned long ulBase, unsigned long ulDomain) //! \param pfnHandler is a pointer to the function to be called when the //! PECI interrupt occurs. //! -//! This sets the handler to be called when an PECI interrupt occurs. This -//! will enable the global interrupt in the interrupt controller; specific -//! PECI interrupts must be enabled via PECIIntEnable(). If necessary, it is -//! the interrupt handler's responsibility to clear the interrupt source via -//! PECIIntClear(). +//! This function registers the handler to be called when an PECI interrupt +//! occurs. This function enables the global interrupt in the interrupt +//! controller; specific PECI interrupts must be enabled via PECIIntEnable(). +//! If necessary, it is the interrupt handler's responsibility to clear the +//! interrupt source via PECIIntClear(). //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -612,9 +612,9 @@ PECIIntRegister(unsigned long ulBase, void (*pfnHandler)(void)) //! //! \param ulBase specifies the PECI module base address. //! -//! This function will clear the handler to be called when a PECI interrupt -//! occurs. This will also mask off the interrupt in the interrupt controller -//! so that the interrupt handler no longer is called. +//! This function unregisters the handler to be called when a PECI interrupt +//! occurs. This function also masks off the interrupt in the interrupt +//! controller so that the interrupt handler no longer is called. //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -649,9 +649,9 @@ PECIIntUnregister(unsigned long ulBase) //! \param ulIntFlags is a bit mask of the interrupt sources to be enabled. //! \param ulIntMode is the mode for the PECI domain interrupts. //! -//! Enables the indicated PECI interrupt sources. Only the sources that are -//! enabled can be reflected to the processor interrupt; disabled sources have -//! no effect on the processor. +//! This function enables the indicated PECI interrupt sources. Only the +//! sources that are enabled can be reflected to the processor interrupt; +//! disabled sources have no effect on the processor. //! //! The \e ulIntFlags parameter can be any of the following values: //! \b PECI_READ, \b PECI_ERR, \b PECI_AC, \b PECI_M0D0, \b PECI_M0D1, @@ -692,8 +692,8 @@ PECIIntEnable(unsigned long ulBase, unsigned long ulIntFlags, // // Set/Enable the bit/bit-fields based on the value in the flags and mode - // parameter. The flags parameter will alter the bits in the lower half - // of the mask, while the mode will alter the bit fields in the upper + // parameter. The flags parameter alters the bits in the lower half + // of the mask, while the mode alters the bit fields in the upper // half of the mask. // ulTemp |= (0x0000FFFF & ulIntFlags); @@ -708,9 +708,9 @@ PECIIntEnable(unsigned long ulBase, unsigned long ulIntFlags, //! \param ulBase specifies the PECI module base address. //! \param ulIntFlags is a bit mask of the interrupt sources to be disabled. //! -//! Disables the indicated PECI interrupt sources. Only the sources that are -//! enabled can be reflected to the processor interrupt; disabled sources have -//! no effect on the processor. +//! This function disables the indicated PECI interrupt sources. Only the +//! sources that are enabled can be reflected to the processor interrupt; +//! disabled sources have no effect on the processor. //! //! The \e ulIntFlags parameter can be any of the following values: //! \b PECI_READ, \b PECI_ERR, \b PECI_AC, \b PECI_M0D0, \b PECI_M0D1, @@ -785,12 +785,12 @@ PECIIntStatus(unsigned long ulBase, tBoolean bMasked) //! \param ulBase specifies the PECI module base address. //! \param ulIntFlags is a bit mask of the interrupt sources to be cleared. //! -//! The specified PECI interrupt sources are cleared so that they no longer -//! assert. This function must be called in the interrupt handler to keep the -//! interrupts from being recognized again immediately upon exit. The -//! \e ulIntFlags parameter can consist of any combination of the \b PECI_READ, -//! \b PECI_ERR, \b PECI_AC, \b PECI_M0D0, \b PECI_M0D1, \b PECI_M1D0, or -//! \b PECI_M1D1 values. +//! This function clears the specified PECI interrupt sources so that they no +//! longer assert. This function must be called in the interrupt handler to +//! keep the interrupts from being recognized again immediately upon exit. +//! The \e ulIntFlags parameter can consist of any combination of the +//! \b PECI_READ, \b PECI_ERR, \b PECI_AC, \b PECI_M0D0, \b PECI_M0D1, +//! \b PECI_M1D0, or \b PECI_M1D1 values. //! //! \note Because there is a write buffer in the Cortex-M processor, it may //! take several clock cycles before the interrupt source is actually cleared. diff --git a/bsp/lm4f232/Libraries/driverlib/peci.h b/bsp/lm4f232/Libraries/driverlib/peci.h index c81223184c..e1b0b9016b 100644 --- a/bsp/lm4f232/Libraries/driverlib/peci.h +++ b/bsp/lm4f232/Libraries/driverlib/peci.h @@ -19,7 +19,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/driverlib/pin_map.h b/bsp/lm4f232/Libraries/driverlib/pin_map.h index 60bf360def..51c4a2e342 100644 --- a/bsp/lm4f232/Libraries/driverlib/pin_map.h +++ b/bsp/lm4f232/Libraries/driverlib/pin_map.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/driverlib/pwm.c b/bsp/lm4f232/Libraries/driverlib/pwm.c index e527200662..c6432735d1 100644 --- a/bsp/lm4f232/Libraries/driverlib/pwm.c +++ b/bsp/lm4f232/Libraries/driverlib/pwm.c @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -105,8 +105,8 @@ PWMOutValid(unsigned long ulPWMOut) //! Configures a PWM generator. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGen is the PWM generator to configure. Must be one of -//! \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. +//! \param ulGen is the PWM generator to configure. This parameter must be one +//! of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. //! \param ulConfig is the configuration for the PWM generator. //! //! This function is used to set the mode of operation for a PWM generator. @@ -115,31 +115,31 @@ PWMOutValid(unsigned long ulPWMOut) //! state. //! //! A PWM generator can count in two different modes: count down mode or count -//! up/down mode. In count down mode, it will count from a value down to zero, -//! and then reset to the preset value. This will produce left-aligned PWM -//! signals (that is the rising edge of the two PWM signals produced by the -//! generator will occur at the same time). In count up/down mode, it will -//! count up from zero to the preset value, count back down to zero, and then -//! repeat the process. This will produce center-aligned PWM signals (that is, +//! up/down mode. In count down mode, it counts from a value down to zero, +//! and then resets to the preset value, producing left-aligned PWM +//! signals (that is, the rising edge of the two PWM signals produced by the +//! generator occur at the same time). In count up/down mode, it counts up +//! from zero to the preset value, counts back down to zero, and then repeats +//! the process, producing center-aligned PWM signals (that is, //! the middle of the high/low period of the PWM signals produced by the -//! generator will occur at the same time). +//! generator occurs at the same time). //! //! When the PWM generator parameters (period and pulse width) are modified, -//! their affect on the output PWM signals can be delayed. In synchronous +//! their effect on the output PWM signals can be delayed. In synchronous //! mode, the parameter updates are not applied until a synchronization event -//! occurs. This allows multiple parameters to be modified and take affect -//! simultaneously, instead of one at a time. Additionally, parameters to -//! multiple PWM generators in synchronous mode can be updated simultaneously, -//! allowing them to be treated as if they were a unified generator. In -//! non-synchronous mode, the parameter updates are not delayed until a -//! synchronization event. In either mode, the parameter updates only occur -//! when the counter is at zero to help prevent oddly formed PWM signals during -//! the update (that is, a PWM pulse that is too short or too long). +//! occurs. This mode allows multiple parameters to be modified and take +//! effect simultaneously, instead of one at a time. Additionally, parameters +//! to multiple PWM generators in synchronous mode can be updated +//! simultaneously, allowing them to be treated as if they were a unified +//! generator. In non-synchronous mode, the parameter updates are not delayed +//! until a synchronization event. In either mode, the parameter updates only +//! occur when the counter is at zero to help prevent oddly formed PWM signals +//! during the update (that is, a PWM pulse that is too short or too long). //! //! The PWM generator can either pause or continue running when the processor -//! is stopped via the debugger. If configured to pause, it will continue to -//! count until it reaches zero, at which point it will pause until the -//! processor is restarted. If configured to continue running, it will keep +//! is stopped via the debugger. If configured to pause, it continues to +//! count until it reaches zero, at which point it pauses until the +//! processor is restarted. If configured to continue running, it keeps //! counting as if nothing had happened. //! //! The \e ulConfig parameter contains the desired configuration. It is the @@ -165,14 +165,14 @@ PWMOutValid(unsigned long ulPWMOut) //! whether extended fault source selection support is enabled or not //! //! Setting \b PWM_GEN_MODE_FAULT_MINPER allows an application to set the -//! minimum duration of a PWM fault signal. Faults will be signaled for at +//! minimum duration of a PWM fault signal. Faults are signaled for at //! least this time even if the external fault pin deasserts earlier. Care -//! should be taken when using this mode since during the fault signal period, -//! the fault interrupt from the PWM generator will remain asserted. The fault -//! interrupt handler may, therefore, reenter immediately if it exits prior to -//! expiration of the fault timer. +//! should be taken when using this mode because during the fault signal +//! period, the fault interrupt from the PWM generator remains asserted. The +//! fault interrupt handler may, therefore, reenter immediately if it exits +//! prior to expiration of the fault timer. //! -//! \note Changes to the counter mode will affect the period of the PWM signals +//! \note Changes to the counter mode affect the period of the PWM signals //! produced. PWMGenPeriodSet() and PWMPulseWidthSet() should be called after //! any changes to the counter mode of a generator. //! @@ -238,11 +238,11 @@ PWMGenConfigure(unsigned long ulBase, unsigned long ulGen, //***************************************************************************** // -//! Set the period of a PWM generator. +//! Sets the period of a PWM generator. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGen is the PWM generator to be modified. Must be one of -//! \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. +//! \param ulGen is the PWM generator to be modified. This parameter must be +//! one of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. //! \param ulPeriod specifies the period of PWM generator output, measured //! in clock ticks. //! @@ -251,7 +251,7 @@ PWMGenConfigure(unsigned long ulBase, unsigned long ulGen, //! ticks between pulses on the generator block zero signal. //! //! \note Any subsequent calls made to this function before an update occurs -//! will cause the previous values to be overwritten. +//! cause the previous values to be overwritten. //! //! \return None. // @@ -299,7 +299,7 @@ PWMGenPeriodSet(unsigned long ulBase, unsigned long ulGen, //! Gets the period of a PWM generator block. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGen is the PWM generator to query. Must be one of +//! \param ulGen is the PWM generator to query. This parameter must be one of //! \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. //! //! This function gets the period of the specified PWM generator block. The @@ -352,8 +352,8 @@ PWMGenPeriodGet(unsigned long ulBase, unsigned long ulGen) //! Enables the timer/counter for a PWM generator block. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGen is the PWM generator to be enabled. Must be one of -//! \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. +//! \param ulGen is the PWM generator to be enabled. This parameter must be +//! one of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. //! //! This function allows the PWM clock to drive the timer/counter for the //! specified generator block. @@ -381,8 +381,8 @@ PWMGenEnable(unsigned long ulBase, unsigned long ulGen) //! Disables the timer/counter for a PWM generator block. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGen is the PWM generator to be disabled. Must be one of -//! \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. +//! \param ulGen is the PWM generator to be disabled. This parameter must be +//! one of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. //! //! This function blocks the PWM clock from driving the timer/counter for the //! specified generator block. @@ -410,16 +410,16 @@ PWMGenDisable(unsigned long ulBase, unsigned long ulGen) //! Sets the pulse width for the specified PWM output. //! //! \param ulBase is the base address of the PWM module. -//! \param ulPWMOut is the PWM output to modify. Must be one of \b PWM_OUT_0, -//! \b PWM_OUT_1, \b PWM_OUT_2, \b PWM_OUT_3, \b PWM_OUT_4, \b PWM_OUT_5, -//! \b PWM_OUT_6, or \b PWM_OUT_7. +//! \param ulPWMOut is the PWM output to modify. This parameter must be one +//! of \b PWM_OUT_0, \b PWM_OUT_1, \b PWM_OUT_2, \b PWM_OUT_3, \b PWM_OUT_4, +//! \b PWM_OUT_5, \b PWM_OUT_6, or \b PWM_OUT_7. //! \param ulWidth specifies the width of the positive portion of the pulse. //! //! This function sets the pulse width for the specified PWM output, where the //! pulse width is defined as the number of PWM clock ticks. //! //! \note Any subsequent calls made to this function before an update occurs -//! will cause the previous values to be overwritten. +//! cause the previous values to be overwritten. //! //! \return None. // @@ -482,9 +482,9 @@ PWMPulseWidthSet(unsigned long ulBase, unsigned long ulPWMOut, //! Gets the pulse width of a PWM output. //! //! \param ulBase is the base address of the PWM module. -//! \param ulPWMOut is the PWM output to query. Must be one of \b PWM_OUT_0, -//! \b PWM_OUT_1, \b PWM_OUT_2, \b PWM_OUT_3, \b PWM_OUT_4, \b PWM_OUT_5, -//! \b PWM_OUT_6, or \b PWM_OUT_7. +//! \param ulPWMOut is the PWM output to query. This parameter must be one of +//! \b PWM_OUT_0, \b PWM_OUT_1, \b PWM_OUT_2, \b PWM_OUT_3, \b PWM_OUT_4, +//! \b PWM_OUT_5, \b PWM_OUT_6, or \b PWM_OUT_7. //! //! This function gets the currently programmed pulse width for the specified //! PWM output. If the update of the comparator for the specified output has @@ -542,11 +542,11 @@ PWMPulseWidthGet(unsigned long ulBase, unsigned long ulPWMOut) //***************************************************************************** // -//! Enables the PWM dead band output, and sets the dead band delays. +//! Enables the PWM dead band output and sets the dead band delays. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGen is the PWM generator to modify. Must be one of -//! \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. +//! \param ulGen is the PWM generator to modify. This parameter must be one +//! of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. //! \param usRise specifies the width of delay from the rising edge. //! \param usFall specifies the width of delay from the falling edge. //! @@ -557,7 +557,7 @@ PWMPulseWidthGet(unsigned long ulBase, unsigned long ulPWMOut) //! //! \return None. // -//***************************************************************************** +//**************************************************************************** void PWMDeadBandEnable(unsigned long ulBase, unsigned long ulGen, unsigned short usRise, unsigned short usFall) @@ -592,7 +592,7 @@ PWMDeadBandEnable(unsigned long ulBase, unsigned long ulGen, //! Disables the PWM dead band output. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGen is the PWM generator to modify. Must be one of +//! \param ulGen is the PWM generator to modify. This parameter must be one of //! \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. //! //! This function disables the dead band mode for the specified PWM generator. @@ -622,9 +622,9 @@ PWMDeadBandDisable(unsigned long ulBase, unsigned long ulGen) //! Synchronizes all pending updates. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGenBits are the PWM generator blocks to be updated. Must be the -//! logical OR of any of \b PWM_GEN_0_BIT, \b PWM_GEN_1_BIT, -//! \b PWM_GEN_2_BIT, or \b PWM_GEN_3_BIT. +//! \param ulGenBits are the PWM generator blocks to be updated. This +//! parameter must be the logical OR of any of \b PWM_GEN_0_BIT, +//! \b PWM_GEN_1_BIT, \b PWM_GEN_2_BIT, or \b PWM_GEN_3_BIT. //! //! For the selected PWM generators, this function causes all queued updates to //! the period or pulse width to be applied the next time the corresponding @@ -654,9 +654,9 @@ PWMSyncUpdate(unsigned long ulBase, unsigned long ulGenBits) //! Synchronizes the counters in one or multiple PWM generator blocks. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGenBits are the PWM generator blocks to be synchronized. Must be -//! the logical OR of any of \b PWM_GEN_0_BIT, \b PWM_GEN_1_BIT, -//! \b PWM_GEN_2_BIT, or \b PWM_GEN_3_BIT. +//! \param ulGenBits are the PWM generator blocks to be synchronized. This +//! parameter must be the logical OR of any of \b PWM_GEN_0_BIT, +//! \b PWM_GEN_1_BIT, \b PWM_GEN_2_BIT, or \b PWM_GEN_3_BIT. //! //! For the selected PWM module, this function synchronizes the time base //! of the generator blocks by causing the specified generator counters to be @@ -687,17 +687,17 @@ PWMSyncTimeBase(unsigned long ulBase, unsigned long ulGenBits) //! Enables or disables PWM outputs. //! //! \param ulBase is the base address of the PWM module. -//! \param ulPWMOutBits are the PWM outputs to be modified. Must be the -//! logical OR of any of \b PWM_OUT_0_BIT, \b PWM_OUT_1_BIT, \b PWM_OUT_2_BIT, -//! \b PWM_OUT_3_BIT, \b PWM_OUT_4_BIT, \b PWM_OUT_5_BIT, \b PWM_OUT_6_BIT, -//! or \b PWM_OUT_7_BIT. +//! \param ulPWMOutBits are the PWM outputs to be modified. This parameter +//! must be the logical OR of any of \b PWM_OUT_0_BIT, \b PWM_OUT_1_BIT, +//! \b PWM_OUT_2_BIT, \b PWM_OUT_3_BIT, \b PWM_OUT_4_BIT, \b PWM_OUT_5_BIT, +//! \b PWM_OUT_6_BIT, or \b PWM_OUT_7_BIT. //! \param bEnable determines if the signal is enabled or disabled. //! -//! This function is used to enable or disable the selected PWM outputs. The +//! This function enables or disables the selected PWM outputs. The //! outputs are selected using the parameter \e ulPWMOutBits. The parameter //! \e bEnable determines the state of the selected outputs. If \e bEnable is //! \b true, then the selected PWM outputs are enabled, or placed in the active -//! state. If \e bEnable is \b false, then the selected outputs are disabled, +//! state. If \e bEnable is \b false, then the selected outputs are disabled //! or placed in the inactive state. //! //! \return None. @@ -716,7 +716,7 @@ PWMOutputState(unsigned long ulBase, unsigned long ulPWMOutBits, PWM_OUT_6_BIT | PWM_OUT_7_BIT))); // - // Read the module's ENABLE output control register, and set or clear the + // Read the module's ENABLE output control register and set or clear the // requested bits. // if(bEnable == true) @@ -734,18 +734,18 @@ PWMOutputState(unsigned long ulBase, unsigned long ulPWMOutBits, //! Selects the inversion mode for PWM outputs. //! //! \param ulBase is the base address of the PWM module. -//! \param ulPWMOutBits are the PWM outputs to be modified. Must be the -//! logical OR of any of \b PWM_OUT_0_BIT, \b PWM_OUT_1_BIT, \b PWM_OUT_2_BIT, -//! \b PWM_OUT_3_BIT, \b PWM_OUT_4_BIT, \b PWM_OUT_5_BIT, \b PWM_OUT_6_BIT, or -//! \b PWM_OUT_7_BIT. +//! \param ulPWMOutBits are the PWM outputs to be modified. This parameter +//! must be the logical OR of any of \b PWM_OUT_0_BIT, \b PWM_OUT_1_BIT, +//! \b PWM_OUT_2_BIT, \b PWM_OUT_3_BIT, \b PWM_OUT_4_BIT, \b PWM_OUT_5_BIT, +//! \b PWM_OUT_6_BIT, or \b PWM_OUT_7_BIT. //! \param bInvert determines if the signal is inverted or passed through. //! //! This function is used to select the inversion mode for the selected PWM //! outputs. The outputs are selected using the parameter \e ulPWMOutBits. //! The parameter \e bInvert determines the inversion mode for the selected -//! outputs. If \e bInvert is \b true, this function will cause the specified -//! PWM output signals to be inverted, or made active low. If \e bInvert is -//! \b false, the specified outputs are passed through as is, or be made active +//! outputs. If \e bInvert is \b true, this function causes the specified +//! PWM output signals to be inverted or made active low. If \e bInvert is +//! \b false, the specified outputs are passed through as is or made active //! high. //! //! \return None. @@ -764,7 +764,7 @@ PWMOutputInvert(unsigned long ulBase, unsigned long ulPWMOutBits, PWM_OUT_6_BIT | PWM_OUT_7_BIT))); // - // Read the module's INVERT output control register, and set or clear the + // Read the module's INVERT output control register and set or clear the // requested bits. // if(bInvert == true) @@ -783,10 +783,10 @@ PWMOutputInvert(unsigned long ulBase, unsigned long ulPWMOutBits, //! condition. //! //! \param ulBase is the base address of the PWM module. -//! \param ulPWMOutBits are the PWM outputs to be modified. Must be the -//! logical OR of any of \b PWM_OUT_0_BIT, \b PWM_OUT_1_BIT, \b PWM_OUT_2_BIT, -//! \b PWM_OUT_3_BIT, \b PWM_OUT_4_BIT, \b PWM_OUT_5_BIT, \b PWM_OUT_6_BIT, or -//! \b PWM_OUT_7_BIT. +//! \param ulPWMOutBits are the PWM outputs to be modified. This parameter +//! must be the logical OR of any of \b PWM_OUT_0_BIT, \b PWM_OUT_1_BIT, +//! \b PWM_OUT_2_BIT, \b PWM_OUT_3_BIT, \b PWM_OUT_4_BIT, \b PWM_OUT_5_BIT, +//! \b PWM_OUT_6_BIT, or \b PWM_OUT_7_BIT. //! \param bDriveHigh determines if the signal is driven high or low during an //! active fault condition. //! @@ -820,7 +820,7 @@ PWMOutputFaultLevel(unsigned long ulBase, unsigned long ulPWMOutBits, PWM_OUT_6_BIT | PWM_OUT_7_BIT))); // - // Read the module's FAULT output control register, and set or clear the + // Read the module's FAULT output control register and set or clear the // requested bits. // if(bDriveHigh == true) @@ -838,10 +838,10 @@ PWMOutputFaultLevel(unsigned long ulBase, unsigned long ulPWMOutBits, //! Specifies the state of PWM outputs in response to a fault condition. //! //! \param ulBase is the base address of the PWM module. -//! \param ulPWMOutBits are the PWM outputs to be modified. Must be the -//! logical OR of any of \b PWM_OUT_0_BIT, \b PWM_OUT_1_BIT, \b PWM_OUT_2_BIT, -//! \b PWM_OUT_3_BIT, \b PWM_OUT_4_BIT, \b PWM_OUT_5_BIT, \b PWM_OUT_6_BIT, or -//! \b PWM_OUT_7_BIT. +//! \param ulPWMOutBits are the PWM outputs to be modified. This parameter +//! must be the logical OR of any of \b PWM_OUT_0_BIT, \b PWM_OUT_1_BIT, +//! \b PWM_OUT_2_BIT, \b PWM_OUT_3_BIT, \b PWM_OUT_4_BIT, \b PWM_OUT_5_BIT, +//! \b PWM_OUT_6_BIT, or \b PWM_OUT_7_BIT. //! \param bFaultSuppress determines if the signal is suppressed or passed //! through during an active fault condition. //! @@ -873,7 +873,7 @@ PWMOutputFault(unsigned long ulBase, unsigned long ulPWMOutBits, PWM_OUT_6_BIT | PWM_OUT_7_BIT))); // - // Read the module's FAULT output control register, and set or clear the + // Read the module's FAULT output control register and set or clear the // requested bits. // if(bFaultSuppress == true) @@ -891,10 +891,10 @@ PWMOutputFault(unsigned long ulBase, unsigned long ulPWMOutBits, //! Gets the PWM generator interrupt number. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGen is the PWM generator in question. Must be one of -//! \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. +//! \param ulGen is the PWM generator in question. This parameter must be one +//! of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. //! -//! This function will return the interrupt number of the corresponding PWM +//! This function returns the interrupt number of the corresponding PWM //! generator. //! //! \return Returns the interrupt number. @@ -987,14 +987,14 @@ PWMGenIntGet(unsigned long ulBase, unsigned long ulGen) //! Registers an interrupt handler for the specified PWM generator block. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGen is the PWM generator in question. Must be one of -//! \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. +//! \param ulGen is the PWM generator in question. This parameter must be one +//! of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. //! \param pfnIntHandler is a pointer to the function to be called when the PWM //! generator interrupt occurs. //! -//! This function will ensure that the interrupt handler specified by +//! This function ensures that the interrupt handler specified by //! \e pfnIntHandler is called when an interrupt is detected for the specified -//! PWM generator block. This function will also enable the corresponding +//! PWM generator block. This function also enables the corresponding //! PWM generator interrupt in the interrupt controller; individual generator //! interrupts and interrupt sources must be enabled with PWMIntEnable() and //! PWMGenIntTrigEnable(). @@ -1038,11 +1038,11 @@ PWMGenIntRegister(unsigned long ulBase, unsigned long ulGen, //! Removes an interrupt handler for the specified PWM generator block. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGen is the PWM generator in question. Must be one of -//! \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. +//! \param ulGen is the PWM generator in question. This parameter must be one +//! of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. //! -//! This function will unregister the interrupt handler for the specified -//! PWM generator block. This function will also disable the corresponding +//! This function unregisters the interrupt handler for the specified +//! PWM generator block. This function also disables the corresponding //! PWM generator interrupt in the interrupt controller; individual generator //! interrupts and interrupt sources must be disabled with PWMIntDisable() and //! PWMGenIntTrigDisable(). @@ -1086,7 +1086,7 @@ PWMGenIntUnregister(unsigned long ulBase, unsigned long ulGen) //! //! \param ulBase is the base address of the PWM module. //! -//! This function will return the fault interrupt number of the corresponding +//! This function returns the fault interrupt number of the corresponding //! PWM module. //! //! \return Returns the interrupt number. @@ -1110,9 +1110,9 @@ PWMFaultIntGet(unsigned long ulBase) //! \param pfnIntHandler is a pointer to the function to be called when the PWM //! fault interrupt occurs. //! -//! This function will ensure that the interrupt handler specified by +//! This function ensures that the interrupt handler specified by //! \e pfnIntHandler is called when a fault interrupt is detected for the -//! selected PWM module. This function will also enable the PWM fault +//! selected PWM module. This function also enables the PWM fault //! interrupt in the NVIC; the PWM fault interrupt must also be enabled at the //! module level using PWMIntEnable(). //! @@ -1154,8 +1154,8 @@ PWMFaultIntRegister(unsigned long ulBase, void (*pfnIntHandler)(void)) //! //! \param ulBase is the base address of the PWM module. //! -//! This function will remove the interrupt handler for a PWM fault interrupt -//! from the selected PWM module. This function will also disable the PWM +//! This function removes the interrupt handler for a PWM fault interrupt +//! from the selected PWM module. This function also disables the PWM //! fault interrupt in the NVIC; the PWM fault interrupt must also be disabled //! at the module level using PWMIntDisable(). //! @@ -1197,12 +1197,13 @@ PWMFaultIntUnregister(unsigned long ulBase) //! //! \param ulBase is the base address of the PWM module. //! \param ulGen is the PWM generator to have interrupts and triggers enabled. -//! Must be one of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. +//! This parameter must be one of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or +//! \b PWM_GEN_3. //! \param ulIntTrig specifies the interrupts and triggers to be enabled. //! -//! Unmasks the specified interrupt(s) and trigger(s) by setting the -//! specified bits of the interrupt/trigger enable register for the specified -//! PWM generator. The \e ulIntTrig parameter is the logical OR of +//! This function unmasks the specified interrupt(s) and trigger(s) by setting +//! the specified bits of the interrupt/trigger enable register for the +//! specified PWM generator. The \e ulIntTrig parameter is the logical OR of //! \b PWM_INT_CNT_ZERO, \b PWM_INT_CNT_LOAD, \b PWM_INT_CNT_AU, //! \b PWM_INT_CNT_AD, \b PWM_INT_CNT_BU, \b PWM_INT_CNT_BD, //! \b PWM_TR_CNT_ZERO, \b PWM_TR_CNT_LOAD, \b PWM_TR_CNT_AU, \b PWM_TR_CNT_AD, @@ -1238,12 +1239,13 @@ PWMGenIntTrigEnable(unsigned long ulBase, unsigned long ulGen, //! //! \param ulBase is the base address of the PWM module. //! \param ulGen is the PWM generator to have interrupts and triggers disabled. -//! Must be one of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. +//! This parameter must be one of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or +//! \b PWM_GEN_3. //! \param ulIntTrig specifies the interrupts and triggers to be disabled. //! -//! Masks the specified interrupt(s) and trigger(s) by clearing the -//! specified bits of the interrupt/trigger enable register for the specified -//! PWM generator. The \e ulIntTrig parameter is the logical OR of +//! This function masks the specified interrupt(s) and trigger(s) by clearing +//! the specified bits of the interrupt/trigger enable register for the +//! specified PWM generator. The \e ulIntTrig parameter is the logical OR of //! \b PWM_INT_CNT_ZERO, \b PWM_INT_CNT_LOAD, \b PWM_INT_CNT_AU, //! \b PWM_INT_CNT_AD, \b PWM_INT_CNT_BU, \b PWM_INT_CNT_BD, //! \b PWM_TR_CNT_ZERO, \b PWM_TR_CNT_LOAD, \b PWM_TR_CNT_AU, \b PWM_TR_CNT_AD, @@ -1278,16 +1280,16 @@ PWMGenIntTrigDisable(unsigned long ulBase, unsigned long ulGen, //! Gets interrupt status for the specified PWM generator block. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGen is the PWM generator to query. Must be one of \b PWM_GEN_0, -//! \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. +//! \param ulGen is the PWM generator to query. This parameter must be one of +//! \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. //! \param bMasked specifies whether masked or raw interrupt status is //! returned. //! //! If \e bMasked is set as \b true, then the masked interrupt status is //! returned; otherwise, the raw interrupt status is returned. //! -//! \return Returns the contents of the interrupt status register, or the -//! contents of the raw interrupt status register, for the specified +//! \return Returns the contents of the interrupt status register or the +//! contents of the raw interrupt status register for the specified //! PWM generator. // //***************************************************************************** @@ -1324,17 +1326,17 @@ PWMGenIntStatus(unsigned long ulBase, unsigned long ulGen, tBoolean bMasked) //! Clears the specified interrupt(s) for the specified PWM generator block. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGen is the PWM generator to query. Must be one of \b PWM_GEN_0, -//! \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. +//! \param ulGen is the PWM generator to query. This parameter must be one of +//! \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. //! \param ulInts specifies the interrupts to be cleared. //! -//! Clears the specified interrupt(s) by writing a 1 to the specified bits -//! of the interrupt status register for the specified PWM generator. The -//! \e ulInts parameter is the logical OR of \b PWM_INT_CNT_ZERO, -//! \b PWM_INT_CNT_LOAD, \b PWM_INT_CNT_AU, \b PWM_INT_CNT_AD, -//! \b PWM_INT_CNT_BU, or \b PWM_INT_CNT_BD. +//! This funciton clears the specified interrupt(s) by writing a 1 to the +//! specified bits of the interrupt status register for the specified PWM +//! generator. The \e ulInts parameter is the logical OR of +//! \b PWM_INT_CNT_ZERO, \b PWM_INT_CNT_LOAD, \b PWM_INT_CNT_AU, +//! \b PWM_INT_CNT_AD, \b PWM_INT_CNT_BU, or \b PWM_INT_CNT_BD. //! -//! \note Because there is a write buffer in the Cortex-M3 processor, it may +//! \note Because there is a write buffer in the Cortex-M processor, it may //! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid @@ -1370,13 +1372,13 @@ PWMGenIntClear(unsigned long ulBase, unsigned long ulGen, unsigned long ulInts) //! Enables generator and fault interrupts for a PWM module. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGenFault contains the interrupts to be enabled. Must be a logical -//! OR of any of \b PWM_INT_GEN_0, \b PWM_INT_GEN_1, \b PWM_INT_GEN_2, -//! \b PWM_INT_GEN_3, \b PWM_INT_FAULT0, \b PWM_INT_FAULT1, \b PWM_INT_FAULT2, -//! or \b PWM_INT_FAULT3. +//! \param ulGenFault contains the interrupts to be enabled. This parameter +//! must be a logical OR of any of \b PWM_INT_GEN_0, \b PWM_INT_GEN_1, +//! \b PWM_INT_GEN_2, \b PWM_INT_GEN_3, \b PWM_INT_FAULT0, \b PWM_INT_FAULT1, +//! \b PWM_INT_FAULT2, or \b PWM_INT_FAULT3. //! -//! Unmasks the specified interrupt(s) by setting the specified bits of -//! the interrupt enable register for the selected PWM module. +//! This function unmasks the specified interrupt(s) by setting the specified +//! bits of the interrupt enable register for the selected PWM module. //! //! \return None. // @@ -1393,7 +1395,7 @@ PWMIntEnable(unsigned long ulBase, unsigned long ulGenFault) PWM_INT_FAULT2 | PWM_INT_FAULT3)) == 0); // - // Read the module's interrupt enable register, and enable interrupts + // Read the module's interrupt enable register and enable interrupts // for the specified PWM generators. // HWREG(ulBase + PWM_O_INTEN) |= ulGenFault; @@ -1404,13 +1406,13 @@ PWMIntEnable(unsigned long ulBase, unsigned long ulGenFault) //! Disables generator and fault interrupts for a PWM module. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGenFault contains the interrupts to be disabled. Must be a -//! logical OR of any of \b PWM_INT_GEN_0, \b PWM_INT_GEN_1, \b PWM_INT_GEN_2, -//! \b PWM_INT_GEN_3, \b PWM_INT_FAULT0, \b PWM_INT_FAULT1, \b PWM_INT_FAULT2, -//! or \b PWM_INT_FAULT3. +//! \param ulGenFault contains the interrupts to be disabled. This parameter +//! must be a logical OR of any of \b PWM_INT_GEN_0, \b PWM_INT_GEN_1, +//! \b PWM_INT_GEN_2, \b PWM_INT_GEN_3, \b PWM_INT_FAULT0, \b PWM_INT_FAULT1, +//! \b PWM_INT_FAULT2, or \b PWM_INT_FAULT3. //! -//! Masks the specified interrupt(s) by clearing the specified bits of -//! the interrupt enable register for the selected PWM module. +//! This function masks the specified interrupt(s) by clearing the specified +//! bits of the interrupt enable register for the selected PWM module. //! //! \return None. // @@ -1427,7 +1429,7 @@ PWMIntDisable(unsigned long ulBase, unsigned long ulGenFault) PWM_INT_FAULT2 | PWM_INT_FAULT3)) == 0); // - // Read the module's interrupt enable register, and disable interrupts + // Read the module's interrupt enable register and disable interrupts // for the specified PWM generators. // HWREG(ulBase + PWM_O_INTEN) &= ~(ulGenFault); @@ -1439,15 +1441,15 @@ PWMIntDisable(unsigned long ulBase, unsigned long ulGenFault) //! //! \param ulBase is the base address of the PWM module. //! -//! Clears the fault interrupt by writing to the appropriate bit of the -//! interrupt status register for the selected PWM module. +//! This function clears the fault interrupt by writing to the appropriate bit +//! of the interrupt status register for the selected PWM module. //! //! This function clears only the FAULT0 interrupt and is retained for //! backwards compatibility. It is recommended that PWMFaultIntClearExt() be -//! used instead since it supports all fault interrupts supported on devices +//! used instead because it supports all fault interrupts supported on devices //! with and without extended PWM fault handling support. //! -//! \note Because there is a write buffer in the Cortex-M3 processor, it may +//! \note Because there is a write buffer in the Cortex-M processor, it may //! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid @@ -1518,10 +1520,10 @@ PWMIntStatus(unsigned long ulBase, tBoolean bMasked) //! \param ulBase is the base address of the PWM module. //! \param ulFaultInts specifies the fault interrupts to clear. //! -//! Clears one or more fault interrupts by writing to the appropriate bit of -//! the PWM interrupt status register. The parameter \e ulFaultInts must be -//! the logical OR of any of \b PWM_INT_FAULT0, \b PWM_INT_FAULT1, -//! \b PWM_INT_FAULT2, or \b PWM_INT_FAULT3. +//! This function clears one or more fault interrupts by writing to the +//! appropriate bit of the PWM interrupt status register. The parameter +//! \e ulFaultInts must be the logical OR of any of \b PWM_INT_FAULT0, +//! \b PWM_INT_FAULT1, \b PWM_INT_FAULT2, or \b PWM_INT_FAULT3. //! //! When running on a device supporting extended PWM fault handling, the fault //! interrupts are derived by performing a logical OR of each of the configured @@ -1531,7 +1533,7 @@ PWMIntStatus(unsigned long ulBase, tBoolean bMasked) //! generators. On a device without extended PWM fault handling, the interrupt //! is directly related to the state of the single FAULT pin. //! -//! \note Because there is a write buffer in the Cortex-M3 processor, it may +//! \note Because there is a write buffer in the Cortex-M processor, it may //! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid @@ -1565,17 +1567,18 @@ PWMFaultIntClearExt(unsigned long ulBase, unsigned long ulFaultInts) //! PWM generator. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGen is the PWM generator whose fault configuration is being set. -//! Must be one of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. +//! \param ulGen is the PWM generator for which fault configuration is being +//! set. This function must be one of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, +//! or \b PWM_GEN_3. //! \param ulMinFaultPeriod is the minimum fault active period expressed in //! PWM clock cycles. //! \param ulFaultSenses indicates which sense of each FAULT input should be //! considered the ``asserted'' state. Valid values are logical OR //! combinations of \b PWM_FAULTn_SENSE_HIGH and \b PWM_FAULTn_SENSE_LOW. //! -//! This function sets the minimum fault period for a given generator along -//! with the sense of each of the 4 possible fault inputs. The minimum fault -//! period is expressed in PWM clock cycles and takes effect only if +//! This function configures the minimum fault period for a given generator +//! along with the sense of each of the 4 possible fault inputs. The minimum +//! fault period is expressed in PWM clock cycles and takes effect only if //! PWMGenConfigure() is called with flag \b PWM_GEN_MODE_FAULT_PER set in the //! \e ulConfig parameter. When a fault input is asserted, the minimum fault //! period timer ensures that it remains asserted for at least the number of @@ -1620,10 +1623,12 @@ PWMGenFaultConfigure(unsigned long ulBase, unsigned long ulGen, //! Configures the set of fault triggers for a given PWM generator. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGen is the PWM generator whose fault triggers are being set. Must -//! be one of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. +//! \param ulGen is the PWM generator for which fault triggers are being set. +//! This parameter must be one of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or +//! \b PWM_GEN_3. //! \param ulGroup indicates the subset of possible faults that are to be -//! configured. This must be \b PWM_FAULT_GROUP_0 or \b PWM_FAULT_GROUP_1. +//! configured. This parameter must be \b PWM_FAULT_GROUP_0 or +//! \b PWM_FAULT_GROUP_1. //! \param ulFaultTriggers defines the set of inputs that are to contribute //! towards generation of the fault signal to the given PWM generator. For //! \b PWM_FAULT_GROUP_0, this is the logical OR of \b PWM_FAULT_FAULT0, @@ -1641,9 +1646,9 @@ PWMGenFaultConfigure(unsigned long ulBase, unsigned long ulGen, //! must be called to configure the fault triggers. //! //! The fault signal to the PWM generator is generated by ORing together each -//! of the signals whose inputs are specified in the \e ulFaultTriggers -//! parameter after having adjusted the sense of each FAULTn input based on the -//! configuration previously set using a call to PWMGenFaultConfigure(). +//! of the signals specified in the \e ulFaultTriggers parameter after having +//! adjusted the sense of each FAULTn input based on the configuration +//! previously set using a call to PWMGenFaultConfigure(). //! //! \note This function is only available on devices supporting extended PWM //! fault handling. @@ -1691,15 +1696,15 @@ PWMGenFaultTriggerSet(unsigned long ulBase, unsigned long ulGen, //! generator. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGen is the PWM generator whose fault triggers are being queried. -//! Must be one of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or \b PWM_GEN_3. +//! \param ulGen is the PWM generator for which fault triggers are being +//! queried. This parameter must be one of \b PWM_GEN_0, \b PWM_GEN_1, +//! \b PWM_GEN_2, or \b PWM_GEN_3. //! \param ulGroup indicates the subset of faults that are being queried. This -//! must be \b PWM_FAULT_GROUP_0 or \b PWM_FAULT_GROUP_1. +//! parameter must be \b PWM_FAULT_GROUP_0 or \b PWM_FAULT_GROUP_1. //! //! This function allows an application to query the current set of inputs that -//! contribute towards the generation of a fault condition to a given PWM -//! generator. -//! +//! contribute to the generation of a fault condition to a given PWM generator. +//! //! \note This function is only available on devices supporting extended PWM //! fault handling. //! @@ -1741,17 +1746,17 @@ PWMGenFaultTriggerGet(unsigned long ulBase, unsigned long ulGen, //! Returns the current state of the fault triggers for a given PWM generator. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGen is the PWM generator whose fault trigger states are being -//! queried. Must be one of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or -//! \b PWM_GEN_3. +//! \param ulGen is the PWM generator for which fault trigger states are being +//! queried. This parameter must be one of \b PWM_GEN_0, \b PWM_GEN_1, +//! \b PWM_GEN_2, or \b PWM_GEN_3. //! \param ulGroup indicates the subset of faults that are being queried. This -//! must be \b PWM_FAULT_GROUP_0 or \b PWM_FAULT_GROUP_1. +//! parameter must be \b PWM_FAULT_GROUP_0 or \b PWM_FAULT_GROUP_1. //! //! This function allows an application to query the current state of each of //! the fault trigger inputs to a given PWM generator. The current state of //! each fault trigger input is returned unless PWMGenConfigure() has //! previously been called with flag \b PWM_GEN_MODE_LATCH_FAULT in the -//! \e ulConfig parameter in which case the returned status is the latched +//! \e ulConfig parameter, in which case the returned status is the latched //! fault trigger status. //! //! If latched faults are configured, the application must call @@ -1799,17 +1804,18 @@ PWMGenFaultStatus(unsigned long ulBase, unsigned long ulGen, //! Clears one or more latched fault triggers for a given PWM generator. //! //! \param ulBase is the base address of the PWM module. -//! \param ulGen is the PWM generator whose fault trigger states are being -//! queried. Must be one of \b PWM_GEN_0, \b PWM_GEN_1, \b PWM_GEN_2, or -//! \b PWM_GEN_3. +//! \param ulGen is the PWM generator for which fault trigger states are being +//! queried. This parameter must be one of \b PWM_GEN_0, \b PWM_GEN_1, +//! \b PWM_GEN_2, or \b PWM_GEN_3. //! \param ulGroup indicates the subset of faults that are being queried. This -//! must be \b PWM_FAULT_GROUP_0 or \b PWM_FAULT_GROUP_1. +//! parameter must be \b PWM_FAULT_GROUP_0 or \b PWM_FAULT_GROUP_1. //! \param ulFaultTriggers is the set of fault triggers which are to be //! cleared. //! //! This function allows an application to clear the fault triggers for a given -//! PWM generator. This is only required if PWMGenConfigure() has previously -//! been called with flag \b PWM_GEN_MODE_LATCH_FAULT in parameter \e ulConfig. +//! PWM generator. This function is only required if PWMGenConfigure() has +//! previously been called with flag \b PWM_GEN_MODE_LATCH_FAULT in parameter +//! \e ulConfig. //! //! \note This function is only available on devices supporting extended PWM //! fault handling. diff --git a/bsp/lm4f232/Libraries/driverlib/pwm.h b/bsp/lm4f232/Libraries/driverlib/pwm.h index e45af7d377..520adbc072 100644 --- a/bsp/lm4f232/Libraries/driverlib/pwm.h +++ b/bsp/lm4f232/Libraries/driverlib/pwm.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/driverlib/qei.c b/bsp/lm4f232/Libraries/driverlib/qei.c index a24780f576..4c701a88a9 100644 --- a/bsp/lm4f232/Libraries/driverlib/qei.c +++ b/bsp/lm4f232/Libraries/driverlib/qei.c @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -43,8 +43,8 @@ //! //! \param ulBase is the base address of the quadrature encoder module. //! -//! This will enable operation of the quadrature encoder module. It must be -//! configured before it is enabled. +//! This function enables operation of the quadrature encoder module. The +//! module must be configured before it is enabled. //! //! \sa QEIConfigure() //! @@ -71,7 +71,7 @@ QEIEnable(unsigned long ulBase) //! //! \param ulBase is the base address of the quadrature encoder module. //! -//! This will disable operation of the quadrature encoder module. +//! This function disables operation of the quadrature encoder module. //! //! \return None. // @@ -99,22 +99,22 @@ QEIDisable(unsigned long ulBase) //! for a description of this parameter. //! \param ulMaxPosition specifies the maximum position value. //! -//! This will configure the operation of the quadrature encoder. The +//! This function configures the operation of the quadrature encoder. The //! \e ulConfig parameter provides the configuration of the encoder and is the //! logical OR of several values: //! -//! - \b QEI_CONFIG_CAPTURE_A or \b QEI_CONFIG_CAPTURE_A_B to specify if edges +//! - \b QEI_CONFIG_CAPTURE_A or \b QEI_CONFIG_CAPTURE_A_B specify if edges //! on channel A or on both channels A and B should be counted by the //! position integrator and velocity accumulator. -//! - \b QEI_CONFIG_NO_RESET or \b QEI_CONFIG_RESET_IDX to specify if the +//! - \b QEI_CONFIG_NO_RESET or \b QEI_CONFIG_RESET_IDX specify if the //! position integrator should be reset when the index pulse is detected. -//! - \b QEI_CONFIG_QUADRATURE or \b QEI_CONFIG_CLOCK_DIR to specify if +//! - \b QEI_CONFIG_QUADRATURE or \b QEI_CONFIG_CLOCK_DIR specify if //! quadrature signals are being provided on ChA and ChB, or if a direction //! signal and a clock are being provided instead. //! - \b QEI_CONFIG_NO_SWAP or \b QEI_CONFIG_SWAP to specify if the signals //! provided on ChA and ChB should be swapped before being processed. //! -//! \e ulMaxPosition is the maximum value of the position integrator, and is +//! \e ulMaxPosition is the maximum value of the position integrator and is //! the value used to reset the position capture when in index reset mode and //! moving in the reverse (negative) direction. //! @@ -150,11 +150,11 @@ QEIConfigure(unsigned long ulBase, unsigned long ulConfig, //! //! \param ulBase is the base address of the quadrature encoder module. //! -//! This returns the current position of the encoder. Depending upon the -//! configuration of the encoder, and the incident of an index pulse, this +//! This function returns the current position of the encoder. Depending upon +//! the configuration of the encoder, and the incident of an index pulse, this //! value may or may not contain the expected data (that is, if in reset on //! index mode, if an index pulse has not been encountered, the position -//! counter will not be aligned with the index pulse yet). +//! counter is not yet aligned with the index pulse). //! //! \return The current position of the encoder. // @@ -180,8 +180,8 @@ QEIPositionGet(unsigned long ulBase) //! \param ulBase is the base address of the quadrature encoder module. //! \param ulPosition is the new position for the encoder. //! -//! This sets the current position of the encoder; the encoder position will -//! then be measured relative to this value. +//! This function sets the current position of the encoder; the encoder +//! position is then measured relative to this value. //! //! \return None. // @@ -206,9 +206,10 @@ QEIPositionSet(unsigned long ulBase, unsigned long ulPosition) //! //! \param ulBase is the base address of the quadrature encoder module. //! -//! This returns the current direction of rotation. In this case, current -//! means the most recently detected direction of the encoder; it may not be -//! presently moving but this is the direction it last moved before it stopped. +//! This function returns the current direction of rotation. In this case, +//! current means the most recently detected direction of the encoder; it may +//! not be presently moving but this is the direction it last moved before it +//! stopped. //! //! \return Returns 1 if moving in the forward direction or -1 if moving in the //! reverse direction. @@ -234,9 +235,9 @@ QEIDirectionGet(unsigned long ulBase) //! //! \param ulBase is the base address of the quadrature encoder module. //! -//! This returns the error indicator for the quadrature encoder. It is an -//! error for both of the signals of the quadrature input to change at the same -//! time. +//! This function returns the error indicator for the quadrature encoder. It +//! is an error for both of the signals of the quadrature input to change at +//! the same time. //! //! \return Returns \b true if an error has occurred and \b false otherwise. // @@ -261,9 +262,9 @@ QEIErrorGet(unsigned long ulBase) //! //! \param ulBase is the base address of the quadrature encoder module. //! -//! This will enable operation of the velocity capture in the quadrature -//! encoder module. It must be configured before it is enabled. Velocity -//! capture will not occur if the quadrature encoder is not enabled. +//! This function enables operation of the velocity capture in the quadrature +//! encoder module. The module must be configured before velocity capture is +//! enabled. //! //! \sa QEIVelocityConfigure() and QEIEnable() //! @@ -290,7 +291,7 @@ QEIVelocityEnable(unsigned long ulBase) //! //! \param ulBase is the base address of the quadrature encoder module. //! -//! This will disable operation of the velocity capture in the quadrature +//! This function disables operation of the velocity capture in the quadrature //! encoder module. //! //! \return None. @@ -322,8 +323,8 @@ QEIVelocityDisable(unsigned long ulBase) //! \param ulPeriod specifies the number of clock ticks over which to measure //! the velocity; must be non-zero. //! -//! This will configure the operation of the velocity capture portion of the -//! quadrature encoder. The position increment signal is predivided as +//! This function configures the operation of the velocity capture portion of +//! the quadrature encoder. The position increment signal is predivided as //! specified by \e ulPreDiv before being accumulated by the velocity capture. //! The divided signal is accumulated over \e ulPeriod system clock before //! being saved and resetting the accumulator. @@ -360,10 +361,10 @@ QEIVelocityConfigure(unsigned long ulBase, unsigned long ulPreDiv, //! //! \param ulBase is the base address of the quadrature encoder module. //! -//! This returns the current speed of the encoder. The value returned is the -//! number of pulses detected in the specified time period; this number can be -//! multiplied by the number of time periods per second and divided by the -//! number of pulses per revolution to obtain the number of revolutions per +//! This function returns the current speed of the encoder. The value returned +//! is the number of pulses detected in the specified time period; this number +//! can be multiplied by the number of time periods per second and divided by +//! the number of pulses per revolution to obtain the number of revolutions per //! second. //! //! \return Returns the number of pulses captured in the given time period. @@ -391,11 +392,11 @@ QEIVelocityGet(unsigned long ulBase) //! \param pfnHandler is a pointer to the function to be called when the //! quadrature encoder interrupt occurs. //! -//! This sets the handler to be called when a quadrature encoder interrupt -//! occurs. This will enable the global interrupt in the interrupt controller; -//! specific quadrature encoder interrupts must be enabled via QEIIntEnable(). -//! It is the interrupt handler's responsibility to clear the interrupt source -//! via QEIIntClear(). +//! This function registers the handler to be called when a quadrature encoder +//! interrupt occurs. This function enables the global interrupt in the +//! interrupt controller; specific quadrature encoder interrupts must be +//! enabled via QEIIntEnable(). It is the interrupt handler's responsibility to +//! clear the interrupt source via QEIIntClear(). //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -435,9 +436,9 @@ QEIIntRegister(unsigned long ulBase, void (*pfnHandler)(void)) //! //! \param ulBase is the base address of the quadrature encoder module. //! -//! This function will clear the handler to be called when a quadrature encoder -//! interrupt occurs. This will also mask off the interrupt in the interrupt -//! controller so that the interrupt handler no longer is called. +//! This function unregisters the handler to be called when a quadrature +//! encoder interrupt occurs. This function also masks off the interrupt in +//! the interrupt controller so that the interrupt handler no longer is called. //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -480,9 +481,9 @@ QEIIntUnregister(unsigned long ulBase) //! Can be any of the \b QEI_INTERROR, \b QEI_INTDIR, \b QEI_INTTIMER, or //! \b QEI_INTINDEX values. //! -//! Enables the indicated quadrature encoder interrupt sources. Only the -//! sources that are enabled can be reflected to the processor interrupt; -//! disabled sources have no effect on the processor. +//! This function enables the indicated quadrature encoder interrupt sources. +//! Only the sources that are enabled can be reflected to the processor +//! interrupt; disabled sources have no effect on the processor. //! //! \return None. // @@ -507,12 +508,12 @@ QEIIntEnable(unsigned long ulBase, unsigned long ulIntFlags) //! //! \param ulBase is the base address of the quadrature encoder module. //! \param ulIntFlags is a bit mask of the interrupt sources to be disabled. -//! Can be any of the \b QEI_INTERROR, \b QEI_INTDIR, \b QEI_INTTIMER, or -//! \b QEI_INTINDEX values. +//! This parameter can be any of the \b QEI_INTERROR, \b QEI_INTDIR, +//! \b QEI_INTTIMER, or \b QEI_INTINDEX values. //! -//! Disables the indicated quadrature encoder interrupt sources. Only the -//! sources that are enabled can be reflected to the processor interrupt; -//! disabled sources have no effect on the processor. +//! This function disables the indicated quadrature encoder interrupt sources. +//! Only the sources that are enabled can be reflected to the processor +//! interrupt; disabled sources have no effect on the processor. //! //! \return None. // @@ -539,9 +540,9 @@ QEIIntDisable(unsigned long ulBase, unsigned long ulIntFlags) //! \param bMasked is false if the raw interrupt status is required and true if //! the masked interrupt status is required. //! -//! This returns the interrupt status for the quadrature encoder module. -//! Either the raw interrupt status or the status of interrupts that are -//! allowed to reflect to the processor can be returned. +//! This function returns the interrupt status for the quadrature encoder +//! module. Either the raw interrupt status or the status of interrupts that +//! are allowed to reflect to the processor can be returned. //! //! \return Returns the current interrupt status, enumerated as a bit field of //! \b QEI_INTERROR, \b QEI_INTDIR, \b QEI_INTTIMER, and \b QEI_INTINDEX. @@ -575,14 +576,15 @@ QEIIntStatus(unsigned long ulBase, tBoolean bMasked) //! //! \param ulBase is the base address of the quadrature encoder module. //! \param ulIntFlags is a bit mask of the interrupt sources to be cleared. -//! Can be any of the \b QEI_INTERROR, \b QEI_INTDIR, \b QEI_INTTIMER, or -//! \b QEI_INTINDEX values. +//! This parameter can be any of the \b QEI_INTERROR, \b QEI_INTDIR, +//! \b QEI_INTTIMER, or \b QEI_INTINDEX values. //! //! The specified quadrature encoder interrupt sources are cleared, so that -//! they no longer assert. This must be done in the interrupt handler to keep -//! it from being called again immediately upon exit. +//! they no longer assert. This function must be called in the interrupt +//! handler to keep the interrupt from being triggered again immediately upon +//! exit. //! -//! \note Because there is a write buffer in the Cortex-M3 processor, it may +//! \note Because there is a write buffer in the Cortex-M processor, it may //! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid diff --git a/bsp/lm4f232/Libraries/driverlib/qei.h b/bsp/lm4f232/Libraries/driverlib/qei.h index 78a6c02d67..30c0858a51 100644 --- a/bsp/lm4f232/Libraries/driverlib/qei.h +++ b/bsp/lm4f232/Libraries/driverlib/qei.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/driverlib/readme.txt b/bsp/lm4f232/Libraries/driverlib/readme.txt index ac63debee5..7c6f97ea54 100644 --- a/bsp/lm4f232/Libraries/driverlib/readme.txt +++ b/bsp/lm4f232/Libraries/driverlib/readme.txt @@ -18,4 +18,4 @@ 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 8049 of the Stellaris Peripheral Driver Library. +This is part of revision 8264 of the Stellaris Peripheral Driver Library. diff --git a/bsp/lm4f232/Libraries/driverlib/rom.h b/bsp/lm4f232/Libraries/driverlib/rom.h index d5ba474130..0f1a029eef 100644 --- a/bsp/lm4f232/Libraries/driverlib/rom.h +++ b/bsp/lm4f232/Libraries/driverlib/rom.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/driverlib/rom_map.h b/bsp/lm4f232/Libraries/driverlib/rom_map.h index 8d729a681e..f2c88ec67f 100644 --- a/bsp/lm4f232/Libraries/driverlib/rom_map.h +++ b/bsp/lm4f232/Libraries/driverlib/rom_map.h @@ -19,7 +19,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/driverlib/ssi.c b/bsp/lm4f232/Libraries/driverlib/ssi.c index ec650b5e88..d46b29b474 100644 --- a/bsp/lm4f232/Libraries/driverlib/ssi.c +++ b/bsp/lm4f232/Libraries/driverlib/ssi.c @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -53,7 +53,7 @@ static const unsigned long g_ppulSSIIntMap[][2] = //***************************************************************************** // //! \internal -//! Checks a SSI base address. +//! Checks an SSI base address. //! //! \param ulBase specifies the SSI module base address. //! @@ -81,7 +81,7 @@ SSIBaseValid(unsigned long ulBase) //! //! Given a SSI base address, returns the corresponding interrupt number. //! -//! \return Returns a SSI interrupt number, or -1 if \e ulBase is invalid. +//! \return Returns an SSI interrupt number, or -1 if \e ulBase is invalid. // //***************************************************************************** static long @@ -132,7 +132,7 @@ SSIIntNumberGet(unsigned long ulBase) //! \e ulProtocol parameter can be one of the following values: //! \b SSI_FRF_MOTO_MODE_0, \b SSI_FRF_MOTO_MODE_1, \b SSI_FRF_MOTO_MODE_2, //! \b SSI_FRF_MOTO_MODE_3, \b SSI_FRF_TI, or \b SSI_FRF_NMW. The Motorola -//! frame formats imply the following polarity and phase configurations: +//! frame formats encode the following polarity and phase configurations: //! //!
 //! Polarity Phase       Mode
@@ -143,23 +143,24 @@ SSIIntNumberGet(unsigned long ulBase)
 //! 
//! //! The \e ulMode parameter defines the operating mode of the SSI module. The -//! SSI module can operate as a master or slave; if a slave, the SSI can be -//! configured to disable output on its serial output line. The \e ulMode +//! SSI module can operate as a master or slave; if it is a slave, the SSI can +//! be configured to disable output on its serial output line. The \e ulMode //! parameter can be one of the following values: \b SSI_MODE_MASTER, //! \b SSI_MODE_SLAVE, or \b SSI_MODE_SLAVE_OD. //! //! The \e ulBitRate parameter defines the bit rate for the SSI. This bit rate //! must satisfy the following clock ratio criteria: //! -//! - FSSI >= 2 * bit rate (master mode) -//! - FSSI >= 12 * bit rate (slave modes) +//! - FSSI >= 2 * bit rate (master mode); this speed cannot exceed 25 MHz. +//! - FSSI >= 12 * bit rate or 6 * bit rate (slave modes), depending on the +//! capability of the specific microcontroller //! //! where FSSI is the frequency of the clock supplied to the SSI module. //! -//! The \e ulDataWidth parameter defines the width of the data transfers, and +//! The \e ulDataWidth parameter defines the width of the data transfers and //! can be a value between 4 and 16, inclusive. //! -//! The peripheral clock is the same as the processor clock. This is the value +//! The peripheral clock is the same as the processor clock. This value is //! returned by SysCtlClockGet(), or it can be explicitly hard coded if it is //! constant and known (to save the code/execution overhead of a call to //! SysCtlClockGet()). @@ -288,11 +289,11 @@ SSIDisable(unsigned long ulBase) //! \param pfnHandler is a pointer to the function to be called when the //! synchronous serial interface interrupt occurs. //! -//! This sets the handler to be called when an SSI interrupt -//! occurs. This will enable the global interrupt in the interrupt controller; -//! specific SSI interrupts must be enabled via SSIIntEnable(). If necessary, -//! it is the interrupt handler's responsibility to clear the interrupt source -//! via SSIIntClear(). +//! This function registers the handler to be called when an SSI interrupt +//! occurs. This function enables the global interrupt in the interrupt +//! controller; specific SSI interrupts must be enabled via SSIIntEnable(). If +//! necessary, it is the interrupt handler's responsibility to clear the +//! interrupt source via SSIIntClear(). //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -332,8 +333,8 @@ SSIIntRegister(unsigned long ulBase, void (*pfnHandler)(void)) //! //! \param ulBase specifies the SSI module base address. //! -//! This function will clear the handler to be called when a SSI -//! interrupt occurs. This will also mask off the interrupt in the interrupt +//! This function clears the handler to be called when an SSI interrupt +//! occurs. This function also masks off the interrupt in the interrupt //! controller so that the interrupt handler no longer is called. //! //! \sa IntRegister() for important information about registering interrupt @@ -375,10 +376,11 @@ SSIIntUnregister(unsigned long ulBase) //! \param ulBase specifies the SSI module base address. //! \param ulIntFlags is a bit mask of the interrupt sources to be enabled. //! -//! Enables the indicated SSI interrupt sources. Only the sources that are -//! enabled can be reflected to the processor interrupt; disabled sources have -//! no effect on the processor. The \e ulIntFlags parameter can be any of the -//! \b SSI_TXFF, \b SSI_RXFF, \b SSI_RXTO, or \b SSI_RXOR values. +//! This function enables the indicated SSI interrupt sources. Only the +//! sources that are enabled can be reflected to the processor interrupt; +//! disabled sources have no effect on the processor. The \e ulIntFlags +//! parameter can be any of the \b SSI_TXFF, \b SSI_RXFF, \b SSI_RXTO, or +//! \b SSI_RXOR values. //! //! \return None. // @@ -404,9 +406,9 @@ SSIIntEnable(unsigned long ulBase, unsigned long ulIntFlags) //! \param ulBase specifies the SSI module base address. //! \param ulIntFlags is a bit mask of the interrupt sources to be disabled. //! -//! Disables the indicated SSI interrupt sources. The \e ulIntFlags parameter -//! can be any of the \b SSI_TXFF, \b SSI_RXFF, \b SSI_RXTO, or \b SSI_RXOR -//! values. +//! This function disables the indicated SSI interrupt sources. The +//! \e ulIntFlags parameter can be any of the \b SSI_TXFF, \b SSI_RXFF, +//! \b SSI_RXTO, or \b SSI_RXOR values. //! //! \return None. // @@ -470,13 +472,13 @@ SSIIntStatus(unsigned long ulBase, tBoolean bMasked) //! \param ulBase specifies the SSI module base address. //! \param ulIntFlags is a bit mask of the interrupt sources to be cleared. //! -//! The specified SSI interrupt sources are cleared so that they no longer -//! assert. This function must be called in the interrupt handler to keep the -//! interrupts from being recognized again immediately upon exit. The +//! This function clears the specified SSI interrupt sources so that they no +//! longer assert. This function must be called in the interrupt handler to +//! keep the interrupts from being triggered again immediately upon exit. The //! \e ulIntFlags parameter can consist of either or both the \b SSI_RXTO and //! \b SSI_RXOR values. //! -//! \note Because there is a write buffer in the Cortex-M3 processor, it may +//! \note Because there is a write buffer in the Cortex-M processor, it may //! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid @@ -687,7 +689,7 @@ SSIDataGetNonBlocking(unsigned long ulBase, unsigned long *pulData) //! \param ulBase is the base address of the SSI port. //! \param ulDMAFlags is a bit mask of the DMA features to enable. //! -//! The specified SSI DMA features are enabled. The SSI can be +//! This function enables the specified SSI DMA features. The SSI can be //! configured to use DMA for transmit and/or receive data transfers. //! The \e ulDMAFlags parameter is the logical OR of any of the following //! values: @@ -752,10 +754,10 @@ SSIDMADisable(unsigned long ulBase, unsigned long ulDMAFlags) //! //! \param ulBase is the base address of the SSI port. //! -//! Allows the caller to determine whether all transmitted bytes have cleared -//! the transmitter hardware. If \b false is returned, then the transmit FIFO -//! is empty and all bits of the last transmitted word have left the hardware -//! shift register. +//! This function allows the caller to determine whether all transmitted bytes +//! have cleared the transmitter hardware. If \b false is returned, then the +//! transmit FIFO is empty and all bits of the last transmitted word have left +//! the hardware shift register. //! //! \return Returns \b true if the SSI is transmitting or \b false if all //! transmissions are complete. @@ -786,7 +788,7 @@ SSIBusy(unsigned long ulBase) //! The possible clock source are the system clock (\b SSI_CLOCK_SYSTEM) or //! the precision internal oscillator (\b SSI_CLOCK_PIOSC). //! -//! Changing the baud clock source will change the data rate generated by the +//! Changing the baud clock source changes the data rate generated by the //! SSI. Therefore, the data rate should be reconfigured after any change to //! the SSI clock source. //! diff --git a/bsp/lm4f232/Libraries/driverlib/ssi.h b/bsp/lm4f232/Libraries/driverlib/ssi.h index ac4f3aef3f..b0cfd1ec5b 100644 --- a/bsp/lm4f232/Libraries/driverlib/ssi.h +++ b/bsp/lm4f232/Libraries/driverlib/ssi.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/driverlib/sysctl.c b/bsp/lm4f232/Libraries/driverlib/sysctl.c index 9da020b674..43755758e4 100644 --- a/bsp/lm4f232/Libraries/driverlib/sysctl.c +++ b/bsp/lm4f232/Libraries/driverlib/sysctl.c @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -268,7 +268,7 @@ SysCtlPeripheralValid(unsigned long ulPeripheral) //***************************************************************************** // // A map of old peripheral defines to new peripheral defines. Note that the -// new peripheral defines will not work on old parts. +// new peripheral defines will not work on parts that precede Blizzard class. // //***************************************************************************** static const unsigned long g_ppulPeripheralMap[][2] = @@ -389,10 +389,10 @@ SysCtlFlashSizeGet(void) //! //! \param ulPin is the pin in question. //! -//! Determines if a particular pin is present in the device. The PWM, analog -//! comparators, ADC, and timers have a varying number of pins across members -//! of the Stellaris family; this will determine which are present on this -//! device. +//! This function determines if a particular pin is present in the device. The +//! PWM, analog comparators, ADC, and timers have a varying number of pins +//! across members of the Stellaris family; this function determines which pins +//! are present on this device. //! //! The \e ulPin argument must be only one of the following values: //! \b SYSCTL_PIN_PWM0, \b SYSCTL_PIN_PWM1, \b SYSCTL_PIN_PWM2, @@ -468,9 +468,9 @@ SysCtlPinPresent(unsigned long ulPin) //! //! \param ulPeripheral is the peripheral in question. //! -//! Determines if a particular peripheral is present in the device. Each -//! member of the Stellaris family has a different peripheral set; this will -//! determine which are present on this device. +//! This function determines if a particular peripheral is present in the +//! device. Each member of the Stellaris family has a different peripheral +//! set; this function determines which peripherals are present on this device. //! //! The \e ulPeripheral parameter must be only one of the following values: //! \b SYSCTL_PERIPH_ADC0, \b SYSCTL_PERIPH_ADC1, \b SYSCTL_PERIPH_CAN0, @@ -526,7 +526,7 @@ SysCtlPeripheralPresent(unsigned long ulPeripheral) else if(ulPeripheral == SYSCTL_PERIPH_USB0) { // - // USB is a special case since the DC bit is missing for USB0. + // USB is a special case because the DC bit is missing for USB0. // if(HWREG(SYSCTL_DC6) & SYSCTL_DC6_USB0_M) { @@ -554,10 +554,10 @@ SysCtlPeripheralPresent(unsigned long ulPeripheral) //! //! \param ulPeripheral is the peripheral in question. //! -//! Determines if a particular peripheral is ready to be accessed. The -//! peripheral may be in a non-ready state if it is not enabled, is being held -//! in reset, or is in the process of becoming ready after be enabled or taken -//! out of reset. +//! This function determines if a particular peripheral is ready to be +//! accessed. The peripheral may be in a non-ready state if it is not enabled, +//! is being held in reset, or is in the process of becoming ready after being +//! enabled or taken out of reset. //! //! The \e ulPeripheral paramter must be only one of the following values: //! \b SYSCTL_PERIPH_ADC0, \b SYSCTL_PERIPH_ADC1, \b SYSCTL_PERIPH_CAN0, @@ -586,7 +586,7 @@ SysCtlPeripheralPresent(unsigned long ulPeripheral) //! \b SYSCTL_PERIPH_WTIMER4, or \b SYSCTL_PERIPH_WTIMER5. //! //! \note The ability to check for a peripheral being ready varies based on the -//! Stellaris part in use. Please consult the datasheet for the part you are +//! Stellaris part in use. Please consult the data sheet for the part you are //! using to determine if this feature is available. //! //! \return Returns \b true if the specified peripheral is ready and \b false @@ -620,8 +620,8 @@ SysCtlPeripheralReady(unsigned long ulPeripheral) //! //! \param ulPeripheral is the peripheral to be powered on. //! -//! This function turns on the power to a peripheral. It will continue to -//! receive power even when its clock is not enabled. +//! This function turns on the power to a peripheral. The peripheral continues +//! to receive power even when its clock is not enabled. //! //! The \e ulPeripheral paramter must be only one of the following values: //! \b SYSCTL_PERIPH_ADC0, \b SYSCTL_PERIPH_ADC1, \b SYSCTL_PERIPH_CAN0, @@ -650,7 +650,7 @@ SysCtlPeripheralReady(unsigned long ulPeripheral) //! \b SYSCTL_PERIPH_WTIMER4, or \b SYSCTL_PERIPH_WTIMER5. //! //! \note The ability to power off a peripheral varies based on the Stellaris -//! part in use. Please consult the datasheet for the part you are using to +//! part in use. Please consult the data sheet for the part you are using to //! determine if this feature is available. //! //! \return None. @@ -684,8 +684,8 @@ SysCtlPeripheralPowerOn(unsigned long ulPeripheral) //! \param ulPeripheral is the peripheral to be powered off. //! //! This function allows the power to a peripheral to be turned off. The -//! peripheral will continue to receive power when its clock is enabled, but -//! the power will be removed when its clock is disabled. +//! peripheral continues to receive power when its clock is enabled, but +//! the power is removed when its clock is disabled. //! //! The \e ulPeripheral paramter must be only one of the following values: //! \b SYSCTL_PERIPH_ADC0, \b SYSCTL_PERIPH_ADC1, \b SYSCTL_PERIPH_CAN0, @@ -714,7 +714,7 @@ SysCtlPeripheralPowerOn(unsigned long ulPeripheral) //! \b SYSCTL_PERIPH_WTIMER4, or \b SYSCTL_PERIPH_WTIMER5. //! //! \note The ability to power off a peripheral varies based on the Stellaris -//! part in use. Please consult the datasheet for the part you are using to +//! part in use. Please consult the data sheet for the part you are using to //! determine if this feature is available. //! //! \return None. @@ -793,7 +793,7 @@ SysCtlPeripheralReset(unsigned long ulPeripheral) // // See if the peripheral index is 15, indicating a peripheral that is - // accessed via the SSYCTL_SRperiph registers. + // accessed via the SYSCTL_SRperiph registers. // if((ulPeripheral & 0xf0000000) == 0xf0000000) { @@ -845,7 +845,7 @@ SysCtlPeripheralReset(unsigned long ulPeripheral) //! //! \param ulPeripheral is the peripheral to enable. //! -//! Peripherals are enabled with this function. At power-up, all peripherals +//! This function enables peripherals. At power-up, all peripherals //! are disabled; they must be enabled in order to operate or respond to //! register reads/writes. //! @@ -877,7 +877,7 @@ SysCtlPeripheralReset(unsigned long ulPeripheral) //! //! \note It takes five clock cycles after the write to enable a peripheral //! before the the peripheral is actually enabled. During this time, attempts -//! to access the peripheral will result in a bus fault. Care should be taken +//! to access the peripheral result in a bus fault. Care should be taken //! to ensure that the peripheral is not accessed during this brief time //! period. //! @@ -920,8 +920,8 @@ SysCtlPeripheralEnable(unsigned long ulPeripheral) //! //! \param ulPeripheral is the peripheral to disable. //! -//! Peripherals are disabled with this function. Once disabled, they will not -//! operate or respond to register reads/writes. +//! This function disables peripherals are disabled with this function. Once +//! disabled, they do not operate or respond to register reads/writes. //! //! The \e ulPeripheral parameter must be only one of the following values: //! \b SYSCTL_PERIPH_ADC0, \b SYSCTL_PERIPH_ADC1, \b SYSCTL_PERIPH_CAN0, @@ -989,9 +989,9 @@ SysCtlPeripheralDisable(unsigned long ulPeripheral) //! \param ulPeripheral is the peripheral to enable in sleep mode. //! //! This function allows a peripheral to continue operating when the processor -//! goes into sleep mode. Since the clocking configuration of the device does -//! not change, any peripheral can safely continue operating while the -//! processor is in sleep mode, and can therefore wake the processor from sleep +//! goes into sleep mode. Because the clocking configuration of the device +//! does not change, any peripheral can safely continue operating while the +//! processor is in sleep mode and can therefore wake the processor from sleep //! mode. //! //! Sleep mode clocking of peripherals must be enabled via @@ -1066,7 +1066,7 @@ SysCtlPeripheralSleepEnable(unsigned long ulPeripheral) //! This function causes a peripheral to stop operating when the processor goes //! into sleep mode. Disabling peripherals while in sleep mode helps to lower //! the current draw of the device. If enabled (via SysCtlPeripheralEnable()), -//! the peripheral will automatically resume operation when the processor +//! the peripheral automatically resumes operation when the processor //! leaves sleep mode, maintaining its entire state from before sleep mode was //! entered. //! @@ -1140,11 +1140,11 @@ SysCtlPeripheralSleepDisable(unsigned long ulPeripheral) //! \param ulPeripheral is the peripheral to enable in deep-sleep mode. //! //! This function allows a peripheral to continue operating when the processor -//! goes into deep-sleep mode. Since the clocking configuration of the device -//! may change, not all peripherals can safely continue operating while the -//! processor is in sleep mode. Those that must run at a particular frequency -//! (such as a UART) will not work as expected if the clock changes. It is the -//! responsibility of the caller to make sensible choices. +//! goes into deep-sleep mode. Because the clocking configuration of the +//! device may change, not all peripherals can safely continue operating while +//! the processor is in sleep mode. Those that must run at a particular +//! frequency (such as a UART) do not work as expected if the clock changes. +//! It is the responsibility of the caller to make sensible choices. //! //! Deep-sleep mode clocking of peripherals must be enabled via //! SysCtlPeripheralClockGating(); if disabled, the peripheral deep-sleep mode @@ -1221,7 +1221,7 @@ SysCtlPeripheralDeepSleepEnable(unsigned long ulPeripheral) //! to lower the current draw of the device, and can keep peripherals that //! require a particular clock frequency from operating when the clock changes //! as a result of entering deep-sleep mode. If enabled (via -//! SysCtlPeripheralEnable()), the peripheral will automatically resume +//! SysCtlPeripheralEnable()), the peripheral automatically resumes //! operation when the processor leaves deep-sleep mode, maintaining its entire //! state from before deep-sleep mode was entered. //! @@ -1298,10 +1298,10 @@ SysCtlPeripheralDeepSleepDisable(unsigned long ulPeripheral) //! //! This function controls how peripherals are clocked when the processor goes //! into sleep or deep-sleep mode. By default, the peripherals are clocked the -//! same as in run mode; if peripheral clock gating is enabled they are clocked -//! according to the configuration set by SysCtlPeripheralSleepEnable(), -//! SysCtlPeripheralSleepDisable(), SysCtlPeripheralDeepSleepEnable(), and -//! SysCtlPeripheralDeepSleepDisable(). +//! same as in run mode; if peripheral clock gating is enabled, they are +//! clocked according to the configuration set by +//! SysCtlPeripheralSleepEnable(), SysCtlPeripheralSleepDisable(), +//! SysCtlPeripheralDeepSleepEnable(), and SysCtlPeripheralDeepSleepDisable(). //! //! \return None. // @@ -1329,20 +1329,24 @@ SysCtlPeripheralClockGating(tBoolean bEnable) //! \param pfnHandler is a pointer to the function to be called when the system //! control interrupt occurs. //! -//! This sets the handler to be called when a system control interrupt occurs. -//! This will enable the global interrupt in the interrupt controller; specific -//! system control interrupts must be enabled via SysCtlIntEnable(). It is the -//! interrupt handler's responsibility to clear the interrupt source via -//! SysCtlIntClear(). +//! This function registers the handler to be called when a system control +//! interrupt occurs. This function enables the global interrupt in the +//! interrupt controller; specific system control interrupts must be enabled +//! via SysCtlIntEnable(). It is the interrupt handler's responsibility to +//! clear the interrupt source via SysCtlIntClear(). //! //! System control can generate interrupts when the PLL achieves lock, if the //! internal LDO current limit is exceeded, if the internal oscillator fails, //! if the main oscillator fails, if the internal LDO output voltage droops too -//! much, if the external voltage droops too much, or if the PLL fails. +//! much, if the external voltage droops too much, or if the PLL fails. //! //! \sa IntRegister() for important information about registering interrupt //! handlers. //! +//! \note The events that cause system control interrupts vary based on the +//! Stellaris part in use. Please consult the data sheet for the part you are +//! using to determine which interrupt sources are available. +//! //! \return None. // //***************************************************************************** @@ -1364,9 +1368,9 @@ SysCtlIntRegister(void (*pfnHandler)(void)) // //! Unregisters the interrupt handler for the system control interrupt. //! -//! This function will clear the handler to be called when a system control -//! interrupt occurs. This will also mask off the interrupt in the interrupt -//! controller so that the interrupt handler no longer is called. +//! This function unregisters the handler to be called when a system control +//! interrupt occurs. This function also masks off the interrupt in the +//! interrupt controller so that the interrupt handler no longer is called. //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -1397,9 +1401,13 @@ SysCtlIntUnregister(void) //! \b SYSCTL_INT_IOSC_FAIL, \b SYSCTL_INT_MOSC_FAIL, \b SYSCTL_INT_POR, //! \b SYSCTL_INT_BOR, and/or \b SYSCTL_INT_PLL_FAIL. //! -//! Enables the indicated system control interrupt sources. Only the sources -//! that are enabled can be reflected to the processor interrupt; disabled -//! sources have no effect on the processor. +//! This function enables the indicated system control interrupt sources. Only +//! the sources that are enabled can be reflected to the processor interrupt; +//! disabled sources have no effect on the processor. +//! +//! \note The interrupt sources vary based on the Stellaris part in use. +//! Please consult the data sheet for the part you are using to determine +//! which interrupt sources are available. //! //! \return None. // @@ -1422,9 +1430,13 @@ SysCtlIntEnable(unsigned long ulInts) //! \b SYSCTL_INT_IOSC_FAIL, \b SYSCTL_INT_MOSC_FAIL, \b SYSCTL_INT_POR, //! \b SYSCTL_INT_BOR, and/or \b SYSCTL_INT_PLL_FAIL. //! -//! Disables the indicated system control interrupt sources. Only the sources -//! that are enabled can be reflected to the processor interrupt; disabled -//! sources have no effect on the processor. +//! This function disables the indicated system control interrupt sources. +//! Only the sources that are enabled can be reflected to the processor +//! interrupt; disabled sources have no effect on the processor. +//! +//! \note The interrupt sources vary based on the Stellaris part in use. +//! Please consult the data sheet for the part you are using to determine +//! which interrupt sources are available. //! //! \return None. // @@ -1448,10 +1460,10 @@ SysCtlIntDisable(unsigned long ulInts) //! \b SYSCTL_INT_BOR, and/or \b SYSCTL_INT_PLL_FAIL. //! //! The specified system control interrupt sources are cleared, so that they no -//! longer assert. This must be done in the interrupt handler to keep it from -//! being called again immediately upon exit. +//! longer assert. This function must be called in the interrupt handler to +//! keep it from being called again immediately upon exit. //! -//! \note Because there is a write buffer in the Cortex-M3 processor, it may +//! \note Because there is a write buffer in the Cortex-M processor, it may //! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid @@ -1460,6 +1472,10 @@ SysCtlIntDisable(unsigned long ulInts) //! being immediately reentered (because the interrupt controller still sees //! the interrupt source asserted). //! +//! \note The interrupt sources vary based on the Stellaris part in use. +//! Please consult the data sheet for the part you are using to determine +//! which interrupt sources are available. +//! //! \return None. // //***************************************************************************** @@ -1479,14 +1495,18 @@ SysCtlIntClear(unsigned long ulInts) //! \param bMasked is false if the raw interrupt status is required and true if //! the masked interrupt status is required. //! -//! This returns the interrupt status for the system controller. Either the -//! raw interrupt status or the status of interrupts that are allowed to -//! reflect to the processor can be returned. +//! This function returns the interrupt status for the system controller. +//! Either the raw interrupt status or the status of interrupts that are +//! allowed to reflect to the processor can be returned. //! //! \return The current interrupt status, enumerated as a bit field of //! \b SYSCTL_INT_PLL_LOCK, \b SYSCTL_INT_CUR_LIMIT, \b SYSCTL_INT_IOSC_FAIL, //! \b SYSCTL_INT_MOSC_FAIL, \b SYSCTL_INT_POR, \b SYSCTL_INT_BOR, and //! \b SYSCTL_INT_PLL_FAIL. +//! +//! \note The interrupt sources vary based on the Stellaris part in use. +//! Please consult the data sheet for the part you are using to determine +//! which interrupt sources are available. // //***************************************************************************** unsigned long @@ -1606,10 +1626,10 @@ SysCtlLDOConfigSet(unsigned long ulConfig) // //! Resets the device. //! -//! This function will perform a software reset of the entire device. The -//! processor and all peripherals are reset and all device registers will -//! return to their default values (with the exception of the reset cause -//! register, which will maintain its current value but have the software reset +//! This function performs a software reset of the entire device. The +//! processor and all peripherals are reset and all device registers are +//! returned to their default values (with the exception of the reset cause +//! register, which maintains its current value but has the software reset //! bit set as well). //! //! \return This function does not return. @@ -1619,8 +1639,8 @@ void SysCtlReset(void) { // - // Perform a software reset request. This will cause the device to reset, - // no further code is executed. + // Perform a software reset request. This request causes the device to + // reset, no further code is executed. // HWREG(NVIC_APINT) = NVIC_APINT_VECTKEY | NVIC_APINT_SYSRESETREQ; @@ -1637,7 +1657,7 @@ SysCtlReset(void) // //! Puts the processor into sleep mode. //! -//! This function places the processor into sleep mode; it will not return +//! This function places the processor into sleep mode; it does not return //! until the processor returns to run mode. The peripherals that are enabled //! via SysCtlPeripheralSleepEnable() continue to operate and can wake up the //! processor (if automatic clock gating is enabled with @@ -1660,7 +1680,7 @@ SysCtlSleep(void) // //! Puts the processor into deep-sleep mode. //! -//! This function places the processor into deep-sleep mode; it will not return +//! This function places the processor into deep-sleep mode; it does not return //! until the processor returns to run mode. The peripherals that are enabled //! via SysCtlPeripheralDeepSleepEnable() continue to operate and can wake up //! the processor (if automatic clock gating is enabled with @@ -1693,8 +1713,9 @@ SysCtlDeepSleep(void) // //! Gets the reason for a reset. //! -//! This function will return the reason(s) for a reset. Since the reset -//! reasons are sticky until either cleared by software or an external reset, +//! This function returns the reason(s) for a reset. Because the reset +//! reasons are sticky until either cleared by software or an external reset +//! (for Sandstorm-class devices) or a power-on reset (for all other classes), //! multiple reset reasons may be returned if multiple resets have occurred. //! The reset reason is a logical OR of \b SYSCTL_CAUSE_LDO, //! \b SYSCTL_CAUSE_SW, \b SYSCTL_CAUSE_WDOG, \b SYSCTL_CAUSE_BOR, @@ -1755,6 +1776,10 @@ SysCtlResetCauseClear(unsigned long ulCauses) //! When it detects a brown-out condition, it can either reset the device or //! generate a processor interrupt. //! +//! \note The availability of the resample feature is only available on +//! Sandstorm-class devices. Please consult the datasheet for the part you +//! are using to determine whether this feature is available. +//! //! \return None. // //***************************************************************************** @@ -1848,11 +1873,9 @@ SysCtlDelay(unsigned long ulCount) //! the OSC0/OSC1 pins, allowing power consumption to be reduced. //! //! \note The availability of MOSC control varies based on the Stellaris part -//! in use. Please consult the datasheet for the part you are using to -//! determine whether this support is available. -//! -//! \note The capability of MOSC control varies based on the Stellaris part in -//! use. +//! in use. Please consult the data sheet for the part you are using to +//! determine whether this support is available. In addition, the capability +//! of MOSC control varies based on the Stellaris part in use. //! //! \return None. // @@ -1877,9 +1900,9 @@ SysCtlMOSCConfigSet(unsigned long ulConfig) //! \e ulType is one of: //! //! - \b SYSCTL_PIOSC_CAL_AUTO to perform automatic calibration using the -//! 32 kHz clock from the hibernate module as a reference. This is only -//! possible on parts that have a hibernate module and then only if it is -//! enabled and the hibernate module's RTC is also enabled. +//! 32-kHz clock from the hibernate module as a reference. This type is +//! only possible on parts that have a hibernate module, and then only if +//! it is enabled and the hibernate module's RTC is also enabled. //! //! - \b SYSCTL_PIOSC_CAL_FACT to reset the PIOSC calibration to the factory //! provided calibration. @@ -1887,8 +1910,8 @@ SysCtlMOSCConfigSet(unsigned long ulConfig) //! - \b SYSCTL_PIOSC_CAL_USER to set the PIOSC calibration to a user-supplied //! value. The value to be used is ORed into the lower 7-bits of this value, //! with 0x40 being the ``nominal'' value (in other words, if everything were -//! perfect, this would provide exactly 16 MHz). Values larger than 0x40 -//! will slow down PIOSC, and values smaller than 0x40 will speed up PIOSC. +//! perfect, 0x40 provides exactly 16 MHz). Values larger than 0x40 +//! slow down PIOSC, and values smaller than 0x40 speed up PIOSC. //! //! \return None. // @@ -1954,7 +1977,9 @@ SysCtlPIOSCCalibrate(unsigned long ulType) //! The system clock divider is chosen with one of the following values: //! \b SYSCTL_SYSDIV_1, \b SYSCTL_SYSDIV_2, \b SYSCTL_SYSDIV_3, ... //! \b SYSCTL_SYSDIV_64. Only \b SYSCTL_SYSDIV_1 through \b SYSCTL_SYSDIV_16 -//! are valid on Sandstorm-class devices. +//! are valid on Sandstorm-class devices. Half-dividers, such as +//! \b SYSCTL_SYSDIV_2_5 and \b SYSCTL_SYSDIV_3_5. are available on Tempest-, +//! Firestorm-, and Blizzard-class devices. //! //! The use of the PLL is chosen with either \b SYSCTL_USE_PLL or //! \b SYSCTL_USE_OSC. @@ -1967,10 +1992,16 @@ SysCtlPIOSCCalibrate(unsigned long ulType) //! \b SYSCTL_XTAL_6_14MHZ, \b SYSCTL_XTAL_7_37MHZ, \b SYSCTL_XTAL_8MHZ, //! \b SYSCTL_XTAL_8_19MHZ, \b SYSCTL_XTAL_10MHZ, \b SYSCTL_XTAL_12MHZ, //! \b SYSCTL_XTAL_12_2MHZ, \b SYSCTL_XTAL_13_5MHZ, \b SYSCTL_XTAL_14_3MHZ, -//! \b SYSCTL_XTAL_16MHZ, or \b SYSCTL_XTAL_16_3MHZ. Values below -//! \b SYSCTL_XTAL_3_57MHZ are not valid when the PLL is in operation. On -//! Sandstorm- and Fury-class devices, values above \b SYSCTL_XTAL_8_19MHZ are -//! not valid. +//! \b SYSCTL_XTAL_16MHZ, \b SYSCTL_XTAL_16_3MHZ, \b SYSCTL_XTAL_18MHZ, +//! \b SYSCTL_XTAL_20MHZ, \b SYSCTL_XTAL_24MHZ, or \b SYSCTL_XTAL_25MHz. +//! Values below \b SYSCTL_XTAL_3_57MHZ are not valid when the PLL is in +//! operation on Sandstorm-, Fury-, Dustdevil-, Tempest-, and Firestorm-class. +//! devices. Values below \b SYSCTL_XTAL_5MHZ are not valid when the PLL is in +//! operation on Blizzard-class devices. Values below \b SYSCTL_XTAL_4MHZ +//! are never valid on Blizzard-class devices. On Sandstorm- and Fury-class +//! devices, values above \b SYSCTL_XTAL_8_19MHZ are not valid. On Dustdevil-, +//! Tempest-, and Firestorm-class devices, values above \b SYSCTL_XTAL_16_3MHZ +//! are not valid. //! //! The oscillator source is chosen with one of the following values: //! \b SYSCTL_OSC_MAIN, \b SYSCTL_OSC_INT, \b SYSCTL_OSC_INT4, @@ -1993,10 +2024,10 @@ SysCtlPIOSCCalibrate(unsigned long ulType) //! crystal with one of the \b SYSCTL_XTAL_xxx values. //! //! \note If selecting the PLL as the system clock source (that is, via -//! \b SYSCTL_USE_PLL), this function will poll the PLL lock interrupt to +//! \b SYSCTL_USE_PLL), this function polls the PLL lock interrupt to //! determine when the PLL has locked. If an interrupt handler for the //! system control interrupt is in place, and it responds to and clears the -//! PLL lock interrupt, this function will delay until its timeout has occurred +//! PLL lock interrupt, this function delays until its timeout has occurred //! instead of completing as soon as PLL lock is achieved. //! //! \return None. @@ -2014,7 +2045,7 @@ SysCtlClockSet(unsigned long ulConfig) if(CLASS_IS_SANDSTORM && (ulConfig & SYSCTL_RCC2_USERCC2)) { // - // Return without changing the clocking since the requested + // Return without changing the clocking because the requested // configuration can not be achieved. // return; @@ -2022,8 +2053,8 @@ SysCtlClockSet(unsigned long ulConfig) // // Get the current value of the RCC and RCC2 registers. If using a - // Sandstorm-class device, the RCC2 register will read back as zero and the - // writes to it from within this function is ignored. + // Sandstorm-class device, the RCC2 register reads back as zero and the + // writes to it from within this function are ignored. // ulRCC = HWREG(SYSCTL_RCC); ulRCC2 = HWREG(SYSCTL_RCC2); @@ -2086,7 +2117,7 @@ SysCtlClockSet(unsigned long ulConfig) } // - // Set the new crystal value and oscillator source. Since the OSCSRC2 + // Set the new crystal value and oscillator source. Because the OSCSRC2 // field in RCC2 overlaps the XTAL field in RCC, the OSCSRC field has a // special encoding within ulConfig to avoid the overlap. // @@ -2137,7 +2168,7 @@ SysCtlClockSet(unsigned long ulConfig) // // Set the requested system divider and disable the appropriate - // oscillators. This will not get written immediately. + // oscillators. This value is not written immediately. // ulRCC &= ~(SYSCTL_RCC_SYSDIV_M | SYSCTL_RCC_USESYSDIV | SYSCTL_RCC_IOSCDIS | SYSCTL_RCC_MOSCDIS); @@ -2195,14 +2226,15 @@ SysCtlClockSet(unsigned long ulConfig) // //! Gets the processor clock rate. //! -//! This function determines the clock rate of the processor clock. This is -//! also the clock rate of all the peripheral modules (with the exception of -//! PWM, which has its own clock divider). +//! This function determines the clock rate of the processor clock, which is +//! also the clock rate of the peripheral modules (with the exception of +//! PWM, which has its own clock divider; other peripherals may have different +//! clocking, see the device data sheet for details). //! -//! \note This will not return accurate results if SysCtlClockSet() has not +//! \note This cannot return accurate results if SysCtlClockSet() has not //! been called to configure the clocking of the device, or if the device is //! directly clocked from a crystal (or a clock source) that is not one of the -//! supported crystal frequencies. In the later case, this function should be +//! supported crystal frequencies. In the latter case, this function should be //! modified to directly return the correct system clock rate. //! //! \return The processor clock rate. @@ -2216,8 +2248,8 @@ SysCtlClockGet(void) // // Read RCC and RCC2. For Sandstorm-class devices (which do not have - // RCC2), the RCC2 read will return 0, which indicates that RCC2 is - // disabled (since the SYSCTL_RCC2_USERCC2 bit is clear). + // RCC2), the RCC2 read returns 0, indicating that RCC2 is + // disabled (because the SYSCTL_RCC2_USERCC2 bit is clear). // ulRCC = HWREG(SYSCTL_RCC); ulRCC2 = HWREG(SYSCTL_RCC2); @@ -2261,7 +2293,7 @@ SysCtlClockGet(void) { // // The internal oscillator on a rev A2 Fury-class device and a - // rev A0 Dustdevil-class device is 12 MHz +/- 30%. + // Dustdevil-class device is 12 MHz +/- 30%. // ulClk = 12000000; } @@ -2296,7 +2328,7 @@ SysCtlClockGet(void) { // // The internal oscillator on a rev A2 Fury-class device and a - // rev A0 Dustdevil-class device is 12 MHz +/- 30%. + // Dustdevil-class device is 12 MHz +/- 30%. // ulClk = 12000000 / 4; } @@ -2311,19 +2343,19 @@ SysCtlClockGet(void) } // - // The internal 30 KHz oscillator is the source clock. + // The internal 30-KHz oscillator is the source clock. // case SYSCTL_RCC_OSCSRC_30: { // - // The internal 30 KHz oscillator has an accuracy of +/- 30%. + // The internal 30-KHz oscillator has an accuracy of +/- 30%. // ulClk = 30000; break; } // - // The 4.19 MHz clock from the hibernate module is the clock source. + // The 4.194304-MHz clock from the hibernate module is the clock source. // case SYSCTL_RCC2_OSCSRC2_419: { @@ -2332,7 +2364,7 @@ SysCtlClockGet(void) } // - // The 32 KHz clock from the hibernate module is the source clock. + // The 32.768-KHz clock from the hibernate module is the source clock. // case SYSCTL_RCC2_OSCSRC2_32: { @@ -2363,7 +2395,7 @@ SysCtlClockGet(void) { // // Read the two PLL frequency registers. The formula for a - // Garnet-class device is "(xtal * m) / ((q + 1) * (n + 1))". + // Blizzard-class device is "(xtal * m) / ((q + 1) * (n + 1))". // ulPLL = HWREG(SYSCTL_PLLFREQ0); ulPLL1 = HWREG(SYSCTL_PLLFREQ1); @@ -2443,7 +2475,7 @@ SysCtlClockGet(void) // // Force the system divider to be enabled. It is always used when - // using the PLL, but in some cases it will not read as being enabled. + // using the PLL, but in some cases it does not read as being enabled. // ulRCC |= SYSCTL_RCC_USESYSDIV; } @@ -2541,8 +2573,8 @@ SysCtlDeepSleepClockSet(unsigned long ulConfig) //! \b SYSCTL_PWMDIV_8, \b SYSCTL_PWMDIV_16, \b SYSCTL_PWMDIV_32, or //! \b SYSCTL_PWMDIV_64. //! -//! This function sets the rate of the clock provided to the PWM module as a -//! ratio of the processor clock. This clock is used by the PWM module to +//! This function configures the rate of the clock provided to the PWM module +//! as a ratio of the processor clock. This clock is used by the PWM module to //! generate PWM signals; its rate forms the basis for all PWM signals. //! //! \note The clocking of the PWM is dependent upon the system clock rate as @@ -2628,10 +2660,10 @@ SysCtlPWMClockGet(void) //! \b SYSCTL_ADCSPEED_1MSPS, \b SYSCTL_ADCSPEED_500KSPS, //! \b SYSCTL_ADCSPEED_250KSPS, or \b SYSCTL_ADCSPEED_125KSPS. //! -//! This function sets the rate at which the ADC samples are captured by the -//! ADC block. The sampling speed may be limited by the hardware, so the +//! This function configures the rate at which the ADC samples are captured by +//! the ADC block. The sampling speed may be limited by the hardware, so the //! sample rate may end up being slower than requested. SysCtlADCSpeedGet() -//! will return the actual speed in use. +//! returns the actual speed in use. //! //! \return None. // @@ -2653,7 +2685,7 @@ SysCtlADCSpeedSet(unsigned long ulSpeed) ASSERT(HWREG(SYSCTL_DC1) & SYSCTL_DC1_ADC0); // - // Set the ADC speed in run, sleep, and deep-sleep mode. + // Set the ADC speed in run and sleep mode. // HWREG(SYSCTL_RCGC0) = ((HWREG(SYSCTL_RCGC0) & ~(SYSCTL_RCGC0_ADCSPD_M)) | ulSpeed); @@ -2701,7 +2733,7 @@ SysCtlADCSpeedGet(void) //! Sandstorm-class devices. //! //! \note Both oscillators (main and internal) must be enabled for this -//! verification timer to operate as the main oscillator will verify the +//! verification timer to operate as the main oscillator verifies the //! internal oscillator. //! //! \return None. @@ -2739,7 +2771,7 @@ SysCtlIOSCVerificationSet(tBoolean bEnable) //! Sandstorm-class devices. //! //! \note Both oscillators (main and internal) must be enabled for this -//! verification timer to operate as the internal oscillator will verify the +//! verification timer to operate as the internal oscillator verifies the //! main oscillator. //! //! \return None. @@ -2840,7 +2872,7 @@ SysCtlClkVerificationClear(void) //! The \e ulGPIOPeripheral argument must be only one of the following values: //! \b SYSCTL_PERIPH_GPIOA, \b SYSCTL_PERIPH_GPIOB, \b SYSCTL_PERIPH_GPIOC, //! \b SYSCTL_PERIPH_GPIOD, \b SYSCTL_PERIPH_GPIOE, \b SYSCTL_PERIPH_GPIOF, -//! \b SYSCTL_PERIPH_GPIOG, or \b SYSCTL_PERIPH_GPIOH. +//! \b SYSCTL_PERIPH_GPIOG, \b SYSCTL_PERIPH_GPIOH, or \b SYSCTL_PERIPH_GPIOJ. //! //! \return None. // @@ -2875,12 +2907,12 @@ SysCtlGPIOAHBEnable(unsigned long ulGPIOPeripheral) //! //! This function disables the specified GPIO peripheral for access from the //! Advanced Host Bus (AHB). Once disabled, the GPIO peripheral is accessed -//! from the legacy Advanced Peripheral Bus (AHB). +//! from the legacy Advanced Peripheral Bus (APB). //! //! The \b ulGPIOPeripheral argument must be only one of the following values: //! \b SYSCTL_PERIPH_GPIOA, \b SYSCTL_PERIPH_GPIOB, \b SYSCTL_PERIPH_GPIOC, //! \b SYSCTL_PERIPH_GPIOD, \b SYSCTL_PERIPH_GPIOE, \b SYSCTL_PERIPH_GPIOF, -//! \b SYSCTL_PERIPH_GPIOG, or \b SYSCTL_PERIPH_GPIOH. +//! \b SYSCTL_PERIPH_GPIOG, \b SYSCTL_PERIPH_GPIOH, or \b SYSCTL_PERIPH_GPIOJ. //! //! \return None. // @@ -2911,7 +2943,7 @@ SysCtlGPIOAHBDisable(unsigned long ulGPIOPeripheral) // //! Powers up the USB PLL. //! -//! This function will enable the USB controller's PLL which is used by it's +//! This function enables the USB controller's PLL, which is used by it's //! physical layer. This call is necessary before connecting to any external //! devices. //! @@ -2931,9 +2963,9 @@ SysCtlUSBPLLEnable(void) // //! Powers down the USB PLL. //! -//! This function will disable the USB controller's PLL which is used by it's +//! This function disables the USB controller's PLL, which is used by it's //! physical layer. The USB registers are still accessible, but the physical -//! layer will no longer function. +//! layer no longer functions. //! //! \return None. // @@ -2942,7 +2974,7 @@ void SysCtlUSBPLLDisable(void) { // - // Turn of USB PLL. + // Turn off the USB PLL. // HWREG(SYSCTL_RCC2) |= SYSCTL_RCC2_USBPWRDN; } @@ -2951,20 +2983,20 @@ SysCtlUSBPLLDisable(void) // //! Sets the MCLK frequency provided to the I2S module. //! -//! \param ulInputClock is the input clock to the MCLK divider. If this is -//! zero, the value is computed from the current PLL configuration. -//! \param ulMClk is the desired MCLK frequency. If this is zero, MCLK output -//! is disabled. +//! \param ulInputClock is the input clock to the MCLK divider. If this value +//! is zero, the value is computed from the current PLL configuration. +//! \param ulMClk is the desired MCLK frequency. If this value is zero, MCLK +//! output is disabled. //! -//! This function sets the dividers to provide MCLK to the I2S module. A MCLK -//! divider is chosen that produces the MCLK frequency that is the closest +//! This function confgiures the dividers to provide MCLK to the I2S module. A +//! MCLK divider is chosen that produces the MCLK frequency that is the closest //! possible to the requested frequency, which may be above or below the //! requested frequency. //! //! The actual MCLK frequency is returned. It is the responsibility of the //! application to determine if the selected MCLK is acceptable; in general the //! human ear can not discern the frequency difference if it is within 0.3% of -//! the desired frequency (though there is a very small percentage of the +//! the desired frequency (although there is a very small percentage of the //! population that can discern lower frequency deviations). //! //! \return Returns the actual MCLK frequency. diff --git a/bsp/lm4f232/Libraries/driverlib/sysctl.h b/bsp/lm4f232/Libraries/driverlib/sysctl.h index 7ccf713bca..a718c67b25 100644 --- a/bsp/lm4f232/Libraries/driverlib/sysctl.h +++ b/bsp/lm4f232/Libraries/driverlib/sysctl.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/driverlib/sysexc.c b/bsp/lm4f232/Libraries/driverlib/sysexc.c index 70bb7eebd1..c3129e4c53 100644 --- a/bsp/lm4f232/Libraries/driverlib/sysexc.c +++ b/bsp/lm4f232/Libraries/driverlib/sysexc.c @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -42,10 +42,10 @@ //! exception interrupt occurs. //! //! This function places the address of the system exception interrupt handler -//! into the interrupt vector table in SRAM. It also enables the global -//! interrupt in the interrupt controller; specific system exception interrupts -//! must be enabled via SysExcIntEnable(). It is the interrupt handler's -//! responsibility to clear the interrupt source. +//! into the interrupt vector table in SRAM. This function also enables the +//! global interrupt in the interrupt controller; specific system exception +//! interrupts must be enabled via SysExcIntEnable(). It is the interrupt +//! handler's responsibility to clear the interrupt source. //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -72,8 +72,9 @@ SysExcIntRegister(void (*pfnHandler)(void)) //! Unregisters the system exception interrupt handler. //! //! This function removes the system exception interrupt handler from the -//! vector table in SRAM. It also masks off the system exception interrupt in -//! the interrupt controller so that the interrupt handler is no longer called. +//! vector table in SRAM. This function also masks off the system exception +//! interrupt in the interrupt controller so that the interrupt handler is no +//! longer called. //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -197,9 +198,10 @@ SysExcIntStatus(tBoolean bMasked) //! //! \param ulIntFlags is a bit mask of the interrupt sources to be cleared. //! -//! The specified system exception interrupt sources are cleared, so that they -//! no longer assert. This function must be called in the interrupt handler to -//! keep the interrupt from being recognized again immediately upon exit. +//! This function clears the specified system exception interrupt sources, so +//! that they no longer assert. This function must be called in the interrupt +//! handler to keep the interrupt from being recognized again immediately upon +//! exit. //! //! The \e ulIntFlags parameter is the logical OR of any of the following: //! diff --git a/bsp/lm4f232/Libraries/driverlib/sysexc.h b/bsp/lm4f232/Libraries/driverlib/sysexc.h index f31f8eee9a..78088cb05a 100644 --- a/bsp/lm4f232/Libraries/driverlib/sysexc.h +++ b/bsp/lm4f232/Libraries/driverlib/sysexc.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/driverlib/systick.c b/bsp/lm4f232/Libraries/driverlib/systick.c index c8a581d80a..1fb10993c9 100644 --- a/bsp/lm4f232/Libraries/driverlib/systick.c +++ b/bsp/lm4f232/Libraries/driverlib/systick.c @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -40,15 +40,15 @@ // //! Enables the SysTick counter. //! -//! This will start the SysTick counter. If an interrupt handler has been +//! This function starts the SysTick counter. If an interrupt handler has been //! registered, it is called when the SysTick counter rolls over. //! -//! \note Calling this function will cause the SysTick counter to (re)commence +//! \note Calling this function causes the SysTick counter to (re)commence //! counting from its current value. The counter is not automatically reloaded //! with the period as specified in a previous call to SysTickPeriodSet(). If //! an immediate reload is required, the \b NVIC_ST_CURRENT register must be -//! written to force this. Any write to this register clears the SysTick -//! counter to 0 and will cause a reload with the supplied period on the next +//! written to force the reload. Any write to this register clears the SysTick +//! counter to 0 and causes a reload with the supplied period on the next //! clock. //! //! \return None. @@ -67,8 +67,8 @@ SysTickEnable(void) // //! Disables the SysTick counter. //! -//! This will stop the SysTick counter. If an interrupt handler has been -//! registered, it will no longer be called until SysTick is restarted. +//! This function stops the SysTick counter. If an interrupt handler has been +//! registered, it is not called until SysTick is restarted. //! //! \return None. // @@ -89,7 +89,8 @@ SysTickDisable(void) //! \param pfnHandler is a pointer to the function to be called when the //! SysTick interrupt occurs. //! -//! This sets the handler to be called when a SysTick interrupt occurs. +//! This function registers the handler to be called when a SysTick interrupt +//! occurs. //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -115,7 +116,7 @@ SysTickIntRegister(void (*pfnHandler)(void)) // //! Unregisters the interrupt handler for the SysTick interrupt. //! -//! This function will clear the handler to be called when a SysTick interrupt +//! This function unregisters the handler to be called when a SysTick interrupt //! occurs. //! //! \sa IntRegister() for important information about registering interrupt @@ -142,12 +143,12 @@ SysTickIntUnregister(void) // //! Enables the SysTick interrupt. //! -//! This function will enable the SysTick interrupt, allowing it to be +//! This function enables the SysTick interrupt, allowing it to be //! reflected to the processor. //! -//! \note The SysTick interrupt handler does not need to clear the SysTick -//! interrupt source as this is done automatically by NVIC when the interrupt -//! handler is called. +//! \note The SysTick interrupt handler is not required to clear the SysTick +//! interrupt source because it is cleared automatically by the NVIC when the +//! interrupt handler is called. //! //! \return None. // @@ -165,7 +166,7 @@ SysTickIntEnable(void) // //! Disables the SysTick interrupt. //! -//! This function will disable the SysTick interrupt, preventing it from being +//! This function disables the SysTick interrupt, preventing it from being //! reflected to the processor. //! //! \return None. @@ -185,16 +186,16 @@ SysTickIntDisable(void) //! Sets the period of the SysTick counter. //! //! \param ulPeriod is the number of clock ticks in each period of the SysTick -//! counter; must be between 1 and 16,777,216, inclusive. +//! counter and must be between 1 and 16,777,216, inclusive. //! -//! This function sets the rate at which the SysTick counter wraps; this +//! This function sets the rate at which the SysTick counter wraps, which //! equates to the number of processor clocks between interrupts. //! //! \note Calling this function does not cause the SysTick counter to reload //! immediately. If an immediate reload is required, the \b NVIC_ST_CURRENT //! register must be written. Any write to this register clears the SysTick -//! counter to 0 and will cause a reload with the \e ulPeriod supplied here on -//! the next clock after the SysTick is enabled. +//! counter to 0 and causes a reload with the \e ulPeriod supplied here on +//! the next clock after SysTick is enabled. //! //! \return None. // @@ -217,7 +218,7 @@ SysTickPeriodSet(unsigned long ulPeriod) // //! Gets the period of the SysTick counter. //! -//! This function returns the rate at which the SysTick counter wraps; this +//! This function returns the rate at which the SysTick counter wraps, which //! equates to the number of processor clocks between interrupts. //! //! \return Returns the period of the SysTick counter. @@ -236,8 +237,8 @@ SysTickPeriodGet(void) // //! Gets the current value of the SysTick counter. //! -//! This function returns the current value of the SysTick counter; this will -//! be a value between the period - 1 and zero, inclusive. +//! This function returns the current value of the SysTick counter, which is +//! a value between the period - 1 and zero, inclusive. //! //! \return Returns the current value of the SysTick counter. // diff --git a/bsp/lm4f232/Libraries/driverlib/systick.h b/bsp/lm4f232/Libraries/driverlib/systick.h index c9d0d5fe9e..fc33f25eef 100644 --- a/bsp/lm4f232/Libraries/driverlib/systick.h +++ b/bsp/lm4f232/Libraries/driverlib/systick.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/driverlib/timer.c b/bsp/lm4f232/Libraries/driverlib/timer.c index 5a8cac15ea..ae255e058b 100644 --- a/bsp/lm4f232/Libraries/driverlib/timer.c +++ b/bsp/lm4f232/Libraries/driverlib/timer.c @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -91,7 +91,8 @@ TimerBaseValid(unsigned long ulBase) //! //! \param ulBase is the base address of the timer module. //! -//! Given a timer base address, returns the corresponding interrupt number. +//! Given a timer base address, this function returns the corresponding +//! interrupt number. //! //! \return Returns a timer interrupt number, or -1 if \e ulBase is invalid. // @@ -194,7 +195,7 @@ TimerDisable(unsigned long ulBase, unsigned long ulTimer) //! \param ulConfig is the configuration for the timer. //! //! This function configures the operating mode of the timer(s). The timer -//! module is disabled before being configured, and is left in the disabled +//! module is disabled before being configured and is left in the disabled //! state. There are two types of timers; a 16/32-bit variety and a 32/64-bit //! variety. The 16/32-bit variety is comprised of two 16-bit timers that can //! operate independently or be concatenated to form a 32-bit timer. @@ -298,8 +299,8 @@ TimerConfigure(unsigned long ulBase, unsigned long ulConfig) //! \b TIMER_B, or \b TIMER_BOTH. //! \param bInvert specifies the output level. //! -//! This function sets the PWM output level for the specified timer. If the -//! \e bInvert parameter is \b true, then the timer's output is made active +//! This function configures the PWM output level for the specified timer. If +//! the \e bInvert parameter is \b true, then the timer's output is made active //! low; otherwise, it is made active high. //! //! \return None. @@ -327,15 +328,15 @@ TimerControlLevel(unsigned long ulBase, unsigned long ulTimer, //***************************************************************************** // -//! Enables or disables the trigger output. +//! Enables or disables the ADC trigger output. //! //! \param ulBase is the base address of the timer module. //! \param ulTimer specifies the timer to adjust; must be one of \b TIMER_A, //! \b TIMER_B, or \b TIMER_BOTH. -//! \param bEnable specifies the desired trigger state. +//! \param bEnable specifies the desired ADC trigger state. //! -//! This function controls the trigger output for the specified timer. If the -//! \e bEnable parameter is \b true, then the timer's output trigger is +//! This function controls the ADC trigger output for the specified timer. If +//! the \e bEnable parameter is \b true, then the timer's ADC output trigger is //! enabled; otherwise it is disabled. //! //! \return None. @@ -354,6 +355,7 @@ TimerControlTrigger(unsigned long ulBase, unsigned long ulTimer, // // Set the trigger output as requested. + // Set the ADC trigger output as requested. // ulTimer &= TIMER_CTL_TAOTE | TIMER_CTL_TBOTE; HWREG(ulBase + TIMER_O_CTL) = (bEnable ? @@ -372,8 +374,8 @@ TimerControlTrigger(unsigned long ulBase, unsigned long ulTimer, //! \b TIMER_EVENT_POS_EDGE, \b TIMER_EVENT_NEG_EDGE, or //! \b TIMER_EVENT_BOTH_EDGES. //! -//! This function sets the signal edge(s) that triggers the timer when in -//! capture mode. +//! This function configures the signal edge(s) that triggers the timer when +//! in capture mode. //! //! \return None. // @@ -448,7 +450,8 @@ TimerControlStall(unsigned long ulBase, unsigned long ulTimer, //! count to its timeout in order for this timer to start counting. Refer to //! the part's data sheet for a description of the trigger chain. //! -//! \note This functionality is not available on all parts. +//! \note This functionality is not available on all parts. This function +//! should not be used for Timer 0A or Wide Timer 0A. //! //! \return None. // @@ -557,9 +560,11 @@ TimerRTCDisable(unsigned long ulBase) //! (inclusive) for 16/32-bit timers and between 0 and 65535 (inclusive) for //! 32/64-bit timers. //! -//! This function sets the value of the input clock prescaler. The prescaler -//! is only operational when in half-width mode and is used to extend the range -//! of the half-width timer modes. +//! This function configures the value of the input clock prescaler. The +//! prescaler is only operational when in half-width mode and is used to extend +//! the range of the half-width timer modes. The prescaler provides the least +//! significant bits when counting down in periodic and one-shot modes; in all +//! other modes, the prescaler provides the most significant bits. //! //! \note The availability of the prescaler varies with the Stellaris part and //! timer mode in use. Please consult the datasheet for the part you are using @@ -607,7 +612,9 @@ TimerPrescaleSet(unsigned long ulBase, unsigned long ulTimer, //! //! This function gets the value of the input clock prescaler. The prescaler //! is only operational when in half-width mode and is used to extend the range -//! of the half-width timer modes. +//! of the half-width timer modes. The prescaler provides the least significant +//! bits when counting down in periodic and one-shot modes; in all other modes, +//! the prescaler provides the most significant bits. //! //! \note The availability of the prescaler varies with the Stellaris part and //! timer mode in use. Please consult the datasheet for the part you are using @@ -644,9 +651,12 @@ TimerPrescaleGet(unsigned long ulBase, unsigned long ulTimer) //! and 255 (inclusive) for 16/32-bit timers and between 0 and 65535 //! (inclusive) for 32/64-bit timers. //! -//! This function sets the value of the input clock prescaler match value. -//! When in a half-width mode that uses the counter match and the prescaler, -//! the prescale match effectively extends the range of the match. +//! This function configures the value of the input clock prescaler match +//! value. When in a half-width mode that uses the counter match and the +//! prescaler, the prescale match effectively extends the range of the match. +//! The prescaler provides the least significant bits when counting down in +//! periodic and one-shot modes; in all other modes, the prescaler provides the +//! most significant bits. //! //! \note The availability of the prescaler match varies with the Stellaris //! part and timer mode in use. Please consult the datasheet for the part you @@ -694,7 +704,10 @@ TimerPrescaleMatchSet(unsigned long ulBase, unsigned long ulTimer, //! //! This function gets the value of the input clock prescaler match value. //! When in a half-width mode that uses the counter match and prescaler, the -//! prescale match effectively extends the range of the match. +//! prescale match effectively extends the range of the match. The prescaler +//! provides the least significant bits when counting down in periodic and +//! one-shot modes; in all other modes, the prescaler provides the most +//! significant bits. //! //! \note The availability of the prescaler match varies with the Stellaris //! part and timer mode in use. Please consult the datasheet for the part you @@ -730,11 +743,11 @@ TimerPrescaleMatchGet(unsigned long ulBase, unsigned long ulTimer) //! timer is configured for full-width operation. //! \param ulValue is the load value. //! -//! This function sets the timer load value; if the timer is running then the -//! value is immediately loaded into the timer. +//! This function configures the timer load value; if the timer is running then +//! the value is immediately loaded into the timer. //! //! \note This function can be used for both full- and half-width modes of -//! 16/32-bit timers, and for half-width modes of 32/64-bit timers. Use +//! 16/32-bit timers and for half-width modes of 32/64-bit timers. Use //! TimerLoadSet64() for full-width modes of 32/64-bit timers. //! //! \return None. @@ -781,7 +794,7 @@ TimerLoadSet(unsigned long ulBase, unsigned long ulTimer, //! specified timer. //! //! \note This function can be used for both full- and half-width modes of -//! 16/32-bit timers, and for half-width modes of 32/64-bit timers. Use +//! 16/32-bit timers and for half-width modes of 32/64-bit timers. Use //! TimerLoadGet64() for full-width modes of 32/64-bit timers. //! //! \return Returns the load value for the timer. @@ -810,8 +823,8 @@ TimerLoadGet(unsigned long ulBase, unsigned long ulTimer) //! \param ulBase is the base address of the timer module. //! \param ullValue is the load value. //! -//! This function sets the timer load value for a 64-bit timer; if the timer is -//! running then the value is immediately loaded into the timer. +//! This function configures the timer load value for a 64-bit timer; if the +//! timer is running, then the value is immediately loaded into the timer. //! //! \return None. // @@ -888,7 +901,7 @@ TimerLoadGet64(unsigned long ulBase) //! This function reads the current value of the specified timer. //! //! \note This function can be used for both full- and half-width modes of -//! 16/32-bit timers, and for half-width modes of 32/64-bit timers. Use +//! 16/32-bit timers and for half-width modes of 32/64-bit timers. Use //! TimerValueGet64() for full-width modes of 32/64-bit timers. //! //! \return Returns the current value of the timer. @@ -962,12 +975,14 @@ TimerValueGet64(unsigned long ulBase) //! timer is configured for full-width operation. //! \param ulValue is the match value. //! -//! This function sets the match value for a timer. This value is used in -//! capture count mode to determine when to interrupt the processor and in PWM -//! mode to determine the duty cycle of the output signal. +//! This function configures the match value for a timer. This value is used +//! in capture count mode to determine when to interrupt the processor and in +//! PWM mode to determine the duty cycle of the output signal. On some +//! Stellaris devices, match interrupts can also be generated in periodic and +//! one-shot modes. //! //! \note This function can be used for both full- and half-width modes of -//! 16/32-bit timers, and for half-width modes of 32/64-bit timers. Use +//! 16/32-bit timers and for half-width modes of 32/64-bit timers. Use //! TimerMatchSet64() for full-width modes of 32/64-bit timers. //! //! \return None. @@ -1013,7 +1028,7 @@ TimerMatchSet(unsigned long ulBase, unsigned long ulTimer, //! This function gets the match value for the specified timer. //! //! \note This function can be used for both full- and half-width modes of -//! 16/32-bit timers, and for half-width modes of 32/64-bit timers. Use +//! 16/32-bit timers and for half-width modes of 32/64-bit timers. Use //! TimerMatchGet64() for full-width modes of 32/64-bit timers. //! //! \return Returns the match value for the timer. @@ -1042,9 +1057,9 @@ TimerMatchGet(unsigned long ulBase, unsigned long ulTimer) //! \param ulBase is the base address of the timer module. //! \param ullValue is the match value. //! -//! This function sets the match value for a timer. This value is used in -//! capture count mode to determine when to interrupt the processor and in PWM -//! mode to determine the duty cycle of the output signal. +//! This function configures the match value for a timer. This value is used +//! in capture count mode to determine when to interrupt the processor and in +//! PWM mode to determine the duty cycle of the output signal. //! //! \return None. // @@ -1118,11 +1133,11 @@ TimerMatchGet64(unsigned long ulBase) //! \param pfnHandler is a pointer to the function to be called when the timer //! interrupt occurs. //! -//! This function sets the handler to be called when a timer interrupt occurs. -//! In addition, this function enables the global interrupt in the interrupt -//! controller; specific timer interrupts must be enabled via TimerIntEnable(). -//! It is the interrupt handler's responsibility to clear the interrupt source -//! via TimerIntClear(). +//! This function registers the handler to be called when a timer interrupt +//! occurs. In addition, this function enables the global interrupt in the +//! interrupt controller; specific timer interrupts must be enabled via +//! TimerIntEnable(). It is the interrupt handler's responsibility to clear the +//! interrupt source via TimerIntClear(). //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -1187,9 +1202,9 @@ TimerIntRegister(unsigned long ulBase, unsigned long ulTimer, //! \param ulTimer specifies the timer(s); must be one of \b TIMER_A, //! \b TIMER_B, or \b TIMER_BOTH. //! -//! This function clears the handler to be called when a timer interrupt +//! This function unregisters the handler to be called when a timer interrupt //! occurs. This function also masks off the interrupt in the interrupt -//! controller so that the interrupt handler no longer is called. +//! controller so that the interrupt handler is no longer called. //! //! \sa IntRegister() for important information about registering interrupt //! handlers. @@ -1252,9 +1267,9 @@ TimerIntUnregister(unsigned long ulBase, unsigned long ulTimer) //! \param ulBase is the base address of the timer module. //! \param ulIntFlags is the bit mask of the interrupt sources to be enabled. //! -//! Enables the indicated timer interrupt sources. Only the sources that are -//! enabled can be reflected to the processor interrupt; disabled sources have -//! no effect on the processor. +//! This function enables the indicated timer interrupt sources. Only the +//! sources that are enabled can be reflected to the processor interrupt; +//! disabled sources have no effect on the processor. //! //! The \e ulIntFlags parameter must be the logical OR of any combination of //! the following: @@ -1291,9 +1306,9 @@ TimerIntEnable(unsigned long ulBase, unsigned long ulIntFlags) //! \param ulBase is the base address of the timer module. //! \param ulIntFlags is the bit mask of the interrupt sources to be disabled. //! -//! Disables the indicated timer interrupt sources. Only the sources that are -//! enabled can be reflected to the processor interrupt; disabled sources have -//! no effect on the processor. +//! This function disables the indicated timer interrupt sources. Only the +//! sources that are enabled can be reflected to the processor interrupt; +//! disabled sources have no effect on the processor. //! //! The \e ulIntFlags parameter has the same definition as the \e ulIntFlags //! parameter to TimerIntEnable(). @@ -1361,7 +1376,7 @@ TimerIntStatus(unsigned long ulBase, tBoolean bMasked) //! The \e ulIntFlags parameter has the same definition as the \e ulIntFlags //! parameter to TimerIntEnable(). //! -//! \note Because there is a write buffer in the Cortex-M3 processor, it may +//! \note Because there is a write buffer in the Cortex-M processor, it may //! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid @@ -1391,11 +1406,11 @@ TimerIntClear(unsigned long ulBase, unsigned long ulIntFlags) // //! Synchronizes the counters in a set of timers. //! -//! \param ulBase is the base address of the timer module. This must be the -//! base address of Timer0 (in other words, \b TIMER0_BASE). +//! \param ulBase is the base address of the timer module. This parameter must +//! be the base address of Timer0 (in other words, \b TIMER0_BASE). //! \param ulTimers is the set of timers to synchronize. //! -//! This function will synchronize the counters in a specified set of timers. +//! This function synchronizes the counters in a specified set of timers. //! When a timer is running in half-width mode, each half can be included or //! excluded in the synchronization event. When a timer is running in //! full-width mode, only the A timer can be synchronized (specifying the B @@ -1454,9 +1469,9 @@ TimerSynchronize(unsigned long ulBase, unsigned long ulTimers) // // \param ulBase is the base address of the timer module. // -// The specified timer is disabled, and all its interrupts are disabled, -// cleared, and unregistered. Then the timer registers are set to their reset -// value. +// This function disables the specified timer, and all its interrupts are +// disabled, cleared, and unregistered. Then the timer registers are set to +// their reset value. // // \return None. // @@ -1486,7 +1501,7 @@ TimerQuiesce(unsigned long ulBase) HWREG(ulBase + TIMER_O_ICR) = 0xFFFFFFFF; // - // Unregister the interrupt handler. This also disables interrupts to the + // Unregister the interrupt handler, which also disables interrupts to the // core. // TimerIntUnregister(ulBase, TIMER_BOTH); diff --git a/bsp/lm4f232/Libraries/driverlib/timer.h b/bsp/lm4f232/Libraries/driverlib/timer.h index f881805eae..c27ac8d18e 100644 --- a/bsp/lm4f232/Libraries/driverlib/timer.h +++ b/bsp/lm4f232/Libraries/driverlib/timer.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/driverlib/uart.c b/bsp/lm4f232/Libraries/driverlib/uart.c index 8f8bb453af..5323cb86d5 100644 --- a/bsp/lm4f232/Libraries/driverlib/uart.c +++ b/bsp/lm4f232/Libraries/driverlib/uart.c @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -97,7 +97,8 @@ UARTBaseValid(unsigned long ulBase) //! //! \param ulBase is the base address of the UART port. //! -//! Given a UART base address, returns the corresponding interrupt number. +//! Given a UART base address, this function returns the corresponding +//! interrupt number. //! //! \return Returns a UART interrupt number, or -1 if \e ulBase is invalid. // @@ -139,12 +140,12 @@ UARTIntNumberGet(unsigned long ulBase) //! \param ulBase is the base address of the UART port. //! \param ulParity specifies the type of parity to use. //! -//! This function sets the type of parity to use for transmitting and expect -//! when receiving. The \e ulParity parameter must be one of +//! This function configures the type of parity to use for transmitting and +//! expect when receiving. The \e ulParity parameter must be one of //! \b UART_CONFIG_PAR_NONE, \b UART_CONFIG_PAR_EVEN, \b UART_CONFIG_PAR_ODD, -//! \b UART_CONFIG_PAR_ONE, or \b UART_CONFIG_PAR_ZERO. The last two allow -//! direct control of the parity bit; it is always either one or zero based on -//! the mode. +//! \b UART_CONFIG_PAR_ONE, or \b UART_CONFIG_PAR_ZERO. The last two +//! parameters allow direct control of the parity bit; it is always either one +//! or zero based on the mode. //! //! \return None. // @@ -211,8 +212,8 @@ UARTParityModeGet(unsigned long ulBase) //! \b UART_FIFO_RX1_8, \b UART_FIFO_RX2_8, \b UART_FIFO_RX4_8, //! \b UART_FIFO_RX6_8, or \b UART_FIFO_RX7_8. //! -//! This function sets the FIFO level at which transmit and receive interrupts -//! are generated. +//! This function configures the FIFO level at which transmit and receive +//! interrupts are generated. //! //! \return None. // @@ -403,8 +404,8 @@ UARTConfigSetExpClk(unsigned long ulBase, unsigned long ulUARTClk, //! \param pulBaud is a pointer to storage for the baud rate. //! \param pulConfig is a pointer to storage for the data format. //! -//! The baud rate and data format for the UART is determined, given an -//! explicitly provided peripheral clock (hence the ExpClk suffix). The +//! This function determines the baud rate and data format for the UART, given +//! an explicitly provided peripheral clock (hence the ExpClk suffix). The //! returned baud rate is the actual baud rate; it may not be the exact baud //! rate requested or an ``official'' baud rate. The data format returned in //! \e pulConfig is enumerated the same as the \e ulConfig parameter of @@ -471,7 +472,7 @@ UARTConfigGetExpClk(unsigned long ulBase, unsigned long ulUARTClk, //! //! \param ulBase is the base address of the UART port. //! -//! This function sets the UARTEN, TXE, and RXE bits, and enables the transmit +//! This function sets the UARTEN, TXE, and RXE bits and enables the transmit //! and receive FIFOs. //! //! \return None. @@ -567,7 +568,7 @@ UARTFIFOEnable(unsigned long ulBase) //! //! \param ulBase is the base address of the UART port. //! -//! This functions disables the transmit and receive FIFOs in the UART. +//! This function disables the transmit and receive FIFOs in the UART. //! //! \return None. // @@ -594,8 +595,8 @@ UARTFIFODisable(unsigned long ulBase) //! \param bLowPower indicates if SIR Low Power Mode is to be used. //! //! This function enables the SIREN control bit for IrDA mode on the UART. If -//! the \e bLowPower flag is set, then SIRLP bit will also be set. This -//! function will only have an effect if the UART has not been enabled +//! the \e bLowPower flag is set, then SIRLP bit is also set. This +//! function only has an effect if the UART has not been enabled //! by a call to UARTEnable(). The call UARTEnableSIR() must be made before //! a call to UARTConfigSetExpClk() because the UARTConfigSetExpClk() function //! calls the UARTEnable() function. Another option is to call UARTDisable() @@ -603,8 +604,8 @@ UARTFIFODisable(unsigned long ulBase) //! UARTEnable(). //! //! \note The availability of SIR (IrDA) operation varies with the Stellaris -//! part and UART in use. Please consult the datasheet for the part you are -//! using to determine whether this support is available. +//! part in use. Please consult the datasheet for the part you are using to +//! determine whether this support is available. //! //! \return None. // @@ -637,7 +638,7 @@ UARTEnableSIR(unsigned long ulBase, tBoolean bLowPower) //! \param ulBase is the base address of the UART port. //! //! This function clears the SIREN (IrDA) and SIRLP (Low Power) bits. This -//! function will only have an effect if the UART has not been enabled by a +//! function only has an effect if the UART has not been enabled by a //! call to UARTEnable(). The call UARTEnableSIR() must be made before //! a call to UARTConfigSetExpClk() because the UARTConfigSetExpClk() function //! calls the UARTEnable() function. Another option is to call UARTDisable() @@ -645,8 +646,8 @@ UARTEnableSIR(unsigned long ulBase, tBoolean bLowPower) //! UARTEnable(). //! //! \note The availability of SIR (IrDA) operation varies with the Stellaris -//! part and UART in use. Please consult the datasheet for the part you are -//! using to determine whether this support is available. +//! part in use. Please consult the datasheet for the part you are using to +//! determine whether this support is available. //! //! \return None. // @@ -671,13 +672,13 @@ UARTDisableSIR(unsigned long ulBase) //! //! \param ulBase is the base address of the UART port. //! -//! This function enables the SMART control bit for ISO7816 smart card mode on -//! the UART. This call also sets 8 bit word length and even parity as +//! This function enables the SMART control bit for the ISO7816 smart card mode +//! on the UART. This call also sets 8-bit word length and even parity as //! required by ISO7816. //! -//! \note The availability of ISO7816 smart card mode varies with the -//! Stellaris part and UART in use. Please consult the datasheet for the part -//! you are using to determine whether this support is available. +//! \note The availability of SIR (IrDA) operation varies with the Stellaris +//! part in use. Please consult the datasheet for the part you are using to +//! determine whether this support is available. //! //! \return None. // @@ -694,9 +695,9 @@ UARTSmartCardEnable(unsigned long ulBase) ASSERT(UARTBaseValid(ulBase)); // - // Set 8 bit word length, even parity, 2 stop bits (even though the STP2 - // bit is ignored when in smartcard mode, this lets the caller read back - // the actual setting in use). + // Set 8-bit word length, even parity, 2 stop bits (note that although the + // STP2 bit is ignored when in smartcard mode, this code lets the caller + // read back the actual setting in use). // ulVal = HWREG(ulBase + UART_O_LCRH); ulVal &= ~(UART_LCRH_SPS | UART_LCRH_EPS | UART_LCRH_PEN | @@ -716,12 +717,12 @@ UARTSmartCardEnable(unsigned long ulBase) //! //! \param ulBase is the base address of the UART port. //! -//! This function clears the SMART (ISO7816 smart card) bits in the UART +//! This function clears the SMART (ISO7816 smart card) bit in the UART //! control register. //! //! \note The availability of ISO7816 smart card mode varies with the -//! Stellaris part and UART in use. Please consult the datasheet for the part -//! you are using to determine whether this support is available. +//! Stellaris part in use. Please consult the datasheet for the part you are +//! using to determine whether this support is available. //! //! \return None. // @@ -749,17 +750,17 @@ UARTSmartCardDisable(unsigned long ulBase) //! \param ulControl is a bit-mapped flag indicating which modem control bits //! should be set. //! -//! This function sets the states of the DTR or RTS modem handshake outputs -//! from the UART. +//! This function configures the states of the DTR or RTS modem handshake +//! outputs from the UART. //! //! The \e ulControl parameter is the logical OR of any of the following: //! //! - \b UART_OUTPUT_DTR - The Modem Control DTR signal //! - \b UART_OUTPUT_RTS - The Modem Control RTS signal //! -//! \note The availability of hardware modem handshake signals varies with the -//! Stellaris part and UART in use. Please consult the datasheet for the part -//! you are using to determine whether this support is available. +//! \note The availability of ISO7816 smart card mode varies with the +//! Stellaris part in use. Please consult the datasheet for the part you are +//! using to determine whether this support is available. //! //! \return None. // @@ -840,8 +841,8 @@ UARTModemControlClear(unsigned long ulBase, unsigned long ulControl) //! Stellaris part and UART in use. Please consult the datasheet for the part //! you are using to determine whether this support is available. //! -//! \return Returns the states of the handshake output signals. This is a -//! logical logical OR combination of values \b UART_OUTPUT_RTS and +//! \return Returns the states of the handshake output signals. This value is +//! a logical OR combination of values \b UART_OUTPUT_RTS and //! \b UART_OUTPUT_DTR where the presence of each flag indicates that the //! associated signal is asserted. // @@ -872,7 +873,7 @@ UARTModemControlGet(unsigned long ulBase) //! you are using to determine whether this support is available. //! //! \return Returns the states of the handshake output signals. This value -//! is a logical logical OR combination of values \b UART_INPUT_RI, +//! is a logical OR combination of values \b UART_INPUT_RI, //! \b UART_INPUT_DCD, \b UART_INPUT_CTS and \b UART_INPUT_DSR where the //! presence of each flag indicates that the associated signal is asserted. // @@ -900,9 +901,9 @@ UARTModemStatusGet(unsigned long ulBase) //! \b UART_FLOWCONTROL_RX to enable hardware transmit (CTS) and receive (RTS) //! flow control or \b UART_FLOWCONTROL_NONE to disable hardware flow control. //! -//! This function sets the required hardware flow control modes. If \e ulMode -//! contains flag \b UART_FLOWCONTROL_TX, data is only transmitted if the -//! incoming CTS signal is asserted. If \e ulMode contains flag +//! This function configures the required hardware flow control modes. If +//! \e ulMode contains flag \b UART_FLOWCONTROL_TX, data is only transmitted +//! if the incoming CTS signal is asserted. If \e ulMode contains flag //! \b UART_FLOWCONTROL_RX, the RTS output is controlled by the hardware and is //! asserted only when there is space available in the receive FIFO. If no //! hardware flow control is required, \b UART_FLOWCONTROL_NONE should be @@ -945,7 +946,7 @@ UARTFlowControlSet(unsigned long ulBase, unsigned long ulMode) //! part and UART in use. Please consult the datasheet for the part you are //! using to determine whether this support is available. //! -//! \return Returns the current flow control mode in use. This is a +//! \return Returns the current flow control mode in use. This value is a //! logical OR combination of values \b UART_FLOWCONTROL_TX if transmit //! (CTS) flow control is enabled and \b UART_FLOWCONTROL_RX if receive (RTS) //! flow control is in use. If hardware flow control is disabled, @@ -1016,11 +1017,11 @@ UARTTxIntModeSet(unsigned long ulBase, unsigned long ulMode) //! //! This function returns the current operating mode for the UART transmit //! interrupt. The return value is \b UART_TXINT_MODE_EOT if the transmit -//! interrupt is currently set to be asserted once the transmitter is +//! interrupt is currently configured to be asserted once the transmitter is //! completely idle - the transmit FIFO is empty and all bits, including any //! stop bits, have cleared the transmitter. The return value is -//! \b UART_TXINT_MODE_FIFO if the interrupt is set to be asserted based upon -//! the level of the transmit FIFO. +//! \b UART_TXINT_MODE_FIFO if the interrupt is configured to be asserted based +//! on the level of the transmit FIFO. //! //! \note The availability of end-of-transmission mode varies with the //! Stellaris part in use. Please consult the datasheet for the part you are @@ -1188,7 +1189,7 @@ UARTCharGet(unsigned long ulBase) //! //! This function writes the character \e ucData to the transmit FIFO for the //! specified port. This function does not block, so if there is no space -//! available, then a \b false is returned, and the application must retry the +//! available, then a \b false is returned and the application must retry the //! function later. //! //! This function replaces the original UARTCharNonBlockingPut() API and @@ -1305,10 +1306,10 @@ UARTBreakCtl(unsigned long ulBase, tBoolean bBreakState) //! //! \param ulBase is the base address of the UART port. //! -//! Allows the caller to determine whether all transmitted bytes have cleared -//! the transmitter hardware. If \b false is returned, the transmit FIFO is -//! empty and all bits of the last transmitted character, including all stop -//! bits, have left the hardware shift register. +//! This function allows the caller to determine whether all transmitted bytes +//! have cleared the transmitter hardware. If \b false is returned, the +//! transmit FIFO is empty and all bits of the last transmitted character, +//! including all stop bits, have left the hardware shift register. //! //! \return Returns \b true if the UART is transmitting or \b false if all //! transmissions are complete. @@ -1429,7 +1430,7 @@ UARTIntUnregister(unsigned long ulBase) //! //! The \e ulIntFlags parameter is the logical OR of any of the following: //! -//! - \b UART_INT_9BIT - 9-bit address match interrupt +//! - \b UART_INT_9BIT - 9-bit Address Match interrupt //! - \b UART_INT_OE - Overrun Error interrupt //! - \b UART_INT_BE - Break Error interrupt //! - \b UART_INT_PE - Parity Error interrupt @@ -1537,12 +1538,12 @@ UARTIntStatus(unsigned long ulBase, tBoolean bMasked) //! //! The specified UART interrupt sources are cleared, so that they no longer //! assert. This function must be called in the interrupt handler to keep the -//! interrupt from being recognized again immediately upon exit. +//! interrupt from being triggered again immediately upon exit. //! //! The \e ulIntFlags parameter has the same definition as the \e ulIntFlags //! parameter to UARTIntEnable(). //! -//! \note Because there is a write buffer in the Cortex-M3 processor, it may +//! \note Because there is a write buffer in the Cortex-M processor, it may //! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid @@ -1576,7 +1577,7 @@ UARTIntClear(unsigned long ulBase, unsigned long ulIntFlags) //! \param ulDMAFlags is a bit mask of the DMA features to enable. //! //! The specified UART DMA features are enabled. The UART can be -//! configured to use DMA for transmit or receive, and to disable +//! configured to use DMA for transmit or receive and to disable //! receive if an error occurs. The \e ulDMAFlags parameter is the //! logical OR of any of the following values: //! @@ -1645,8 +1646,8 @@ UARTDMADisable(unsigned long ulBase, unsigned long ulDMAFlags) //! This function returns the current state of each of the 4 receiver error //! sources. The returned errors are equivalent to the four error bits //! returned via the previous call to UARTCharGet() or UARTCharGetNonBlocking() -//! with the exception that the overrun error is set immediately the overrun -//! occurs rather than when a character is next read. +//! with the exception that the overrun error is set immediately when the +//! overrun occurs rather than when a character is next read. //! //! \return Returns a logical OR combination of the receiver error flags, //! \b UART_RXERROR_FRAMING, \b UART_RXERROR_PARITY, \b UART_RXERROR_BREAK @@ -1690,7 +1691,7 @@ UARTRxErrorClear(unsigned long ulBase) ASSERT(UARTBaseValid(ulBase)); // - // Any write to the Error Clear Register will clear all bits which are + // Any write to the Error Clear Register clears all bits which are // currently set. // HWREG(ulBase + UART_O_ECR) = 0; @@ -1707,13 +1708,13 @@ UARTRxErrorClear(unsigned long ulBase) //! The possible clock source are the system clock (\b UART_CLOCK_SYSTEM) or //! the precision internal oscillator (\b UART_CLOCK_PIOSC). //! -//! Changing the baud clock source will change the baud rate generated by the +//! Changing the baud clock source changes the baud rate generated by the //! UART. Therefore, the baud rate should be reconfigured after any change to //! the baud clock source. //! //! \note The ability to specify the UART baud clock source varies with the -//! Stellaris part and UART in use. Please consult the datasheet for the part -//! you are using to determine whether this support is available. +//! Stellaris part in use. Please consult the datasheet for the part you are +//! using to determine whether this support is available. //! //! \return None. // @@ -1744,8 +1745,8 @@ UARTClockSourceSet(unsigned long ulBase, unsigned long ulSource) //! the precision internal oscillator (\b UART_CLOCK_PIOSC). //! //! \note The ability to specify the UART baud clock source varies with the -//! Stellaris part and UART in use. Please consult the datasheet for the part -//! you are using to determine whether this support is available. +//! Stellaris part in use. Please consult the datasheet for the part you are +//! using to determine whether this support is available. //! //! \return None. // @@ -1772,9 +1773,9 @@ UARTClockSourceGet(unsigned long ulBase) //! //! This function enables the 9-bit operational mode of the UART. //! -//! \note The availability of 9-bit mode varies with the Stellaris part and -//! UART in use. Please consult the datasheet for the part you are using to -//! determine whether this support is available. +//! \note The availability of 9-bit mode varies with the Stellaris part in use. +//! Please consult the datasheet for the part you are using to determine +//! whether this support is available. //! //! \return None. // @@ -1801,9 +1802,9 @@ UART9BitEnable(unsigned long ulBase) //! //! This function disables the 9-bit operational mode of the UART. //! -//! \note The availability of 9-bit mode varies with the Stellaris part and -//! UART in use. Please consult the datasheet for the part you are using to -//! determine whether this support is available. +//! \note The availability of 9-bit mode varies with the Stellaris part in use. +//! Please consult the datasheet for the part you are using to determine +//! whether this support is available. //! //! \return None. // @@ -1830,15 +1831,15 @@ UART9BitDisable(unsigned long ulBase) //! \param ucAddr is the device address. //! \param ucMask is the device address mask. //! -//! This function sets the device address, or range of device addresses, that -//! respond to requests on the 9-bit UART port. The received address is masked -//! with the mask and then compared against the given address, allowing either -//! a single address (if \b ucMask is 0xff) or a set of addresses to be +//! This function configures the device address or range of device addresses +//! that respond to requests on the 9-bit UART port. The received address is +//! masked with the mask and then compared against the given address, allowing +//! either a single address (if \b ucMask is 0xff) or a set of addresses to be //! matched. //! -//! \note The availability of 9-bit mode varies with the Stellaris part and -//! UART in use. Please consult the datasheet for the part you are using to -//! determine whether this support is available. +//! \note The availability of 9-bit mode varies with the Stellaris part in use. +//! Please consult the datasheet for the part you are using to determine +//! whether this support is available. //! //! \return None. // @@ -1875,9 +1876,9 @@ UART9BitAddrSet(unsigned long ulBase, unsigned char ucAddr, //! UARTCharGet(), and UARTCharGetNonBlocking()) are used to send and receive //! data characters in 9-bit mode. //! -//! \note The availability of 9-bit mode varies with the Stellaris part and -//! UART in use. Please consult the datasheet for the part you are using to -//! determine whether this support is available. +//! \note The availability of 9-bit mode varies with the Stellaris part in use. +//! Please consult the datasheet for the part you are using to determine +//! whether this support is available. //! //! \return None. // diff --git a/bsp/lm4f232/Libraries/driverlib/uart.h b/bsp/lm4f232/Libraries/driverlib/uart.h index 13a166ed1a..7a91483769 100644 --- a/bsp/lm4f232/Libraries/driverlib/uart.h +++ b/bsp/lm4f232/Libraries/driverlib/uart.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/driverlib/udma.c b/bsp/lm4f232/Libraries/driverlib/udma.c index 7e699ce509..4124b52312 100644 --- a/bsp/lm4f232/Libraries/driverlib/udma.c +++ b/bsp/lm4f232/Libraries/driverlib/udma.c @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -60,7 +60,7 @@ uDMAEnable(void) //! Disables the uDMA controller for use. //! //! This function disables the uDMA controller. Once disabled, the uDMA -//! controller will not operate until re-enabled with uDMAEnable(). +//! controller cannot operate until re-enabled with uDMAEnable(). //! //! \return None. // @@ -98,8 +98,9 @@ uDMAErrorStatusGet(void) // //! Clears the uDMA error interrupt. //! -//! This function clears a pending uDMA error interrupt. It should be called -//! from within the uDMA error interrupt handler to clear the interrupt. +//! This function clears a pending uDMA error interrupt. This function should +//! be called from within the uDMA error interrupt handler to clear the +//! interrupt. //! //! \return None. // @@ -151,7 +152,7 @@ uDMAChannelEnable(unsigned long ulChannelNum) //! \param ulChannelNum is the channel number to disable. //! //! This function disables a specific uDMA channel. Once disabled, a channel -//! will not respond to uDMA transfer requests until re-enabled via +//! cannot respond to uDMA transfer requests until re-enabled via //! uDMAChannelEnable(). //! //! \return None. @@ -178,8 +179,8 @@ uDMAChannelDisable(unsigned long ulChannelNum) //! \param ulChannelNum is the channel number to check. //! //! This function checks to see if a specific uDMA channel is enabled. This -//! can be used to check the status of a transfer, since the channel will -//! be automatically disabled at the end of a transfer. +//! function can be used to check the status of a transfer, as the channel is +//! automatically disabled at the end of a transfer. //! //! \return Returns \b true if the channel is enabled, \b false if disabled. // @@ -193,7 +194,7 @@ uDMAChannelIsEnabled(unsigned long ulChannelNum) ASSERT((ulChannelNum & 0xffff) < 32); // - // AND the specified channel bit with the enable register, and return the + // AND the specified channel bit with the enable register and return the // result. // return((HWREG(UDMA_ENASET) & (1 << (ulChannelNum & 0x1f))) ? true : false); @@ -203,16 +204,16 @@ uDMAChannelIsEnabled(unsigned long ulChannelNum) // //! Sets the base address for the channel control table. //! -//! \param pControlTable is a pointer to the 1024 byte aligned base address +//! \param pControlTable is a pointer to the 1024-byte-aligned base address //! of the uDMA channel control table. //! -//! This function sets the base address of the channel control table. This -//! table resides in system memory and holds control information for each uDMA -//! channel. The table must be aligned on a 1024 byte boundary. The base -//! address must be set before any of the channel functions can be used. +//! This function configures the base address of the channel control table. +//! This table resides in system memory and holds control information for each +//! uDMA channel. The table must be aligned on a 1024-byte boundary. The base +//! address must be configured before any of the channel functions can be used. //! //! The size of the channel control table depends on the number of uDMA -//! channels, and which transfer modes are used. Refer to the introductory +//! channels and the transfer modes that are used. Refer to the introductory //! text and the microcontroller datasheet for more information about the //! channel control table. //! @@ -250,7 +251,7 @@ void * uDMAControlBaseGet(void) { // - // Read the current value of the control base register, and return it to + // Read the current value of the control base register and return it to // the caller. // return((void *)HWREG(UDMA_CTLBASE)); @@ -271,7 +272,7 @@ void * uDMAControlAlternateBaseGet(void) { // - // Read the current value of the control base register, and return it to + // Read the current value of the control base register and return it to // the caller. // return((void *)HWREG(UDMA_ALTBASE)); @@ -285,9 +286,9 @@ uDMAControlAlternateBaseGet(void) //! transfer. //! //! This function allows software to request a uDMA channel to begin a -//! transfer. This could be used for performing a memory to memory transfer, -//! or if for some reason a transfer needs to be initiated by software instead -//! of the peripheral associated with that channel. +//! transfer. This function could be used for performing a memory-to-memory +//! transfer or if for some reason, a transfer needs to be initiated by software +//! instead of the peripheral associated with that channel. //! //! \note If the channel is \b UDMA_CHANNEL_SW and interrupts are used, then //! the completion is signaled on the uDMA dedicated interrupt. If a @@ -322,7 +323,7 @@ uDMAChannelRequest(unsigned long ulChannelNum) //! //! The \e ulAttr parameter is the logical OR of any of the following: //! -//! - \b UDMA_ATTR_USEBURST is used to restrict transfers to use only a burst +//! - \b UDMA_ATTR_USEBURST is used to restrict transfers to use only burst //! mode. //! - \b UDMA_ATTR_ALTSELECT is used to select the alternate control structure //! for this channel (it is very unlikely that this flag should be used). @@ -395,7 +396,7 @@ uDMAChannelAttributeEnable(unsigned long ulChannelNum, unsigned long ulAttr) //! //! The \e ulAttr parameter is the logical OR of any of the following: //! -//! - \b UDMA_ATTR_USEBURST is used to restrict transfers to use only a burst +//! - \b UDMA_ATTR_USEBURST is used to restrict transfers to use only burst //! mode. //! - \b UDMA_ATTR_ALTSELECT is used to select the alternate control structure //! for this channel. @@ -468,7 +469,7 @@ uDMAChannelAttributeDisable(unsigned long ulChannelNum, unsigned long ulAttr) //! //! \return Returns the logical OR of the attributes of the uDMA channel, which //! can be any of the following: -//! - \b UDMA_ATTR_USEBURST is used to restrict transfers to use only a burst +//! - \b UDMA_ATTR_USEBURST is used to restrict transfers to use only burst //! mode. //! - \b UDMA_ATTR_ALTSELECT is used to select the alternate control structure //! for this channel. @@ -542,7 +543,7 @@ uDMAChannelAttributeGet(unsigned long ulChannelNum) //! parameters for the channel. //! //! This function is used to set control parameters for a uDMA transfer. These -//! are typically parameters that are not changed often. +//! parameters are typically not changed often. //! //! The \e ulChannelStructIndex parameter should be the logical OR of the //! channel number with one of \b UDMA_PRI_SELECT or \b UDMA_ALT_SELECT to @@ -630,8 +631,8 @@ uDMAChannelControlSet(unsigned long ulChannelStructIndex, //! \param pvDstAddr is the destination address for the transfer. //! \param ulTransferSize is the number of data items to transfer. //! -//! This function is used to set the parameters for a uDMA transfer. These are -//! typically parameters that are changed often. The function +//! This function is used to configure the parameters for a uDMA transfer. +//! These parameters are typically changed often. The function //! uDMAChannelControlSet() MUST be called at least once for this channel prior //! to calling this function. //! @@ -644,11 +645,11 @@ uDMAChannelControlSet(unsigned long ulChannelStructIndex, //! - \b UDMA_MODE_STOP stops the uDMA transfer. The controller sets the mode //! to this value at the end of a transfer. //! - \b UDMA_MODE_BASIC to perform a basic transfer based on request. -//! - \b UDMA_MODE_AUTO to perform a transfer that will always complete once -//! started even if request is removed. +//! - \b UDMA_MODE_AUTO to perform a transfer that always completes once +//! started even if the request is removed. //! - \b UDMA_MODE_PINGPONG to set up a transfer that switches between the -//! primary and alternate control structures for the channel. This allows -//! use of ping-pong buffering for uDMA transfers. +//! primary and alternate control structures for the channel. This mode +//! allows use of ping-pong buffering for uDMA transfers. //! - \b UDMA_MODE_MEM_SCATTER_GATHER to set up a memory scatter-gather //! transfer. //! - \b UDMA_MODE_PER_SCATTER_GATHER to set up a peripheral scatter-gather @@ -656,24 +657,24 @@ uDMAChannelControlSet(unsigned long ulChannelStructIndex, //! //! The \e pvSrcAddr and \e pvDstAddr parameters are pointers to the first //! location of the data to be transferred. These addresses should be aligned -//! according to the item size. The compiler will take care of this if the -//! pointers are pointing to storage of the appropriate data type. +//! according to the item size. The compiler takes care of this alignment if +//! the pointers are pointing to storage of the appropriate data type. //! //! The \e ulTransferSize parameter is the number of data items, not the number //! of bytes. //! -//! The two scatter/gather modes, memory and peripheral, are actually different +//! The two scatter-gather modes, memory and peripheral, are actually different //! depending on whether the primary or alternate control structure is -//! selected. This function will look for the \b UDMA_PRI_SELECT and -//! \b UDMA_ALT_SELECT flag along with the channel number and will set the -//! scatter/gather mode as appropriate for the primary or alternate control +//! selected. This function looks for the \b UDMA_PRI_SELECT and +//! \b UDMA_ALT_SELECT flag along with the channel number and sets the +//! scatter-gather mode as appropriate for the primary or alternate control //! structure. //! //! The channel must also be enabled using uDMAChannelEnable() after calling -//! this function. The transfer will not begin until the channel has been set -//! up and enabled. Note that the channel is automatically disabled after the -//! transfer is completed, meaning that uDMAChannelEnable() must be called -//! again after setting up the next transfer. +//! this function. The transfer does not begin until the channel has been +//! configured and enabled. Note that the channel is automatically disabled +//! after the transfer is completed, meaning that uDMAChannelEnable() must be +//! called again after setting up the next transfer. //! //! \note Great care must be taken to not modify a channel control structure //! that is in use or else the results are unpredictable, including the @@ -682,7 +683,7 @@ uDMAChannelControlSet(unsigned long ulChannelStructIndex, //! disabled, or the uDMAChannelModeGet() returns \b UDMA_MODE_STOP. For //! PINGPONG or one of the SCATTER_GATHER modes, it is safe to modify the //! primary or alternate control structure only when the other is being used. -//! The uDMAChannelModeGet() function will return \b UDMA_MODE_STOP when a +//! The uDMAChannelModeGet() function returns \b UDMA_MODE_STOP when a //! channel control structure is inactive and safe to modify. //! //! \return None. @@ -782,7 +783,7 @@ uDMAChannelTransferSet(unsigned long ulChannelStructIndex, { // // There is a special case if this is setting up a scatter-gather - // transfer. The destination pointer needs to point to the end of + // transfer. The destination pointer must point to the end of // the alternate structure for this channel instead of calculating // the end of the buffer in the normal way. // @@ -827,12 +828,12 @@ uDMAChannelTransferSet(unsigned long ulChannelStructIndex, //! transfer (else it is memory scatter-gather transfer) //! //! This function is used to configure a channel for scatter-gather mode. -//! The caller must have already set up a task list, and pass a pointer to +//! The caller must have already set up a task list and must pass a pointer to //! the start of the task list as the \e pvTaskList parameter. The //! \e ulTaskCount parameter is the count of tasks in the task list, not the //! size of the task list. The flag \e bIsPeriphSG should be used to indicate -//! if the scatter-gather should be configured for a peripheral or memory -//! scatter-gather operation. +//! if scatter-gather should be configured for peripheral or memory +//! operation. //! //! \sa uDMATaskStructEntry //! @@ -873,15 +874,15 @@ uDMAChannelScatterGatherSet(unsigned long ulChannelNum, unsigned ulTaskCount, pTaskTable = (tDMAControlTable *)pvTaskList; // - // Compute the ending address for the source pointer. This is the last - // element of the last task in the task table + // Compute the ending address for the source pointer. This address is the + // last element of the last task in the task table // pControlTable[ulChannelNum].pvSrcEndAddr = &pTaskTable[ulTaskCount - 1].ulSpare; // - // Compute the ending address for the destination pointer. This is the end - // of the alternate structure for this channel. + // Compute the ending address for the destination pointer. This address + // is the end of the alternate structure for this channel. // pControlTable[ulChannelNum].pvDstEndAddr = &pControlTable[ulChannelNum | UDMA_ALT_SELECT].ulSpare; @@ -977,9 +978,9 @@ uDMAChannelSizeGet(unsigned long ulChannelStructIndex) //! \param ulChannelStructIndex is the logical OR of the uDMA channel number //! with either \b UDMA_PRI_SELECT or \b UDMA_ALT_SELECT. //! -//! This function is used to get the transfer mode for the uDMA channel. It -//! can be used to query the status of a transfer on a channel. When the -//! transfer is complete the mode is \b UDMA_MODE_STOP. +//! This function is used to get the transfer mode for the uDMA channel and +//! to query the status of a transfer on a channel. When the transfer is +//! complete the mode is \b UDMA_MODE_STOP. //! //! \return Returns the transfer mode of the specified channel and control //! structure, which is one of the following values: \b UDMA_MODE_STOP, @@ -1036,7 +1037,7 @@ uDMAChannelModeGet(unsigned long ulChannelStructIndex) // //! Selects the secondary peripheral for a set of uDMA channels. //! -//! \param ulSecPeriphs is the logical or of the uDMA channels for which to use +//! \param ulSecPeriphs is the logical OR of the uDMA channels for which to use //! the secondary peripheral, instead of the default peripheral. //! //! This function is used to select the secondary peripheral assignment for a @@ -1095,7 +1096,7 @@ uDMAChannelSelectSecondary(unsigned long ulSecPeriphs) // //! Selects the default peripheral for a set of uDMA channels. //! -//! \param ulDefPeriphs is the logical or of the uDMA channels for which to use +//! \param ulDefPeriphs is the logical OR of the uDMA channels for which to use //! the default peripheral, instead of the secondary peripheral. //! //! This function is used to select the default peripheral assignment for a set @@ -1156,9 +1157,9 @@ uDMAChannelSelectDefault(unsigned long ulDefPeriphs) //! \param pfnHandler is a pointer to the function to be called when the //! interrupt is activated. //! -//! This sets and enables the handler to be called when the uDMA controller -//! generates an interrupt. The \e ulIntChannel parameter should be one of the -//! following: +//! This function registers and enables the handler to be called when the uDMA +//! controller generates an interrupt. The \e ulIntChannel parameter should be +//! one of the following: //! //! - \b UDMA_INT_SW to register an interrupt handler to process interrupts //! from the uDMA software channel (UDMA_CHANNEL_SW) @@ -1168,8 +1169,8 @@ uDMAChannelSelectDefault(unsigned long ulDefPeriphs) //! \sa IntRegister() for important information about registering interrupt //! handlers. //! -//! \note The interrupt handler for uDMA is for transfer completion when the -//! channel UDMA_CHANNEL_SW is used, and for error interrupts. The +//! \note The interrupt handler for the uDMA is for transfer completion when +//! the channel UDMA_CHANNEL_SW is used and for error interrupts. The //! interrupts for each peripheral channel are handled through the individual //! peripheral interrupt handlers. //! @@ -1202,7 +1203,7 @@ uDMAIntRegister(unsigned long ulIntChannel, void (*pfnHandler)(void)) //! //! \param ulIntChannel identifies which uDMA interrupt to unregister. //! -//! This function will disable and clear the handler to be called for the +//! This function disables and unregisters the handler to be called for the //! specified uDMA interrupt. The \e ulIntChannel parameter should be one of //! \b UDMA_INT_SW or \b UDMA_INT_ERR as documented for the function //! uDMAIntRegister(). @@ -1242,7 +1243,7 @@ uDMAIntUnregister(unsigned long ulIntChannel) //! your part. //! //! \return Returns a 32-bit mask which indicates requesting uDMA channels. -//! There is a bit for each channel, and a 1 in a bit indicates that channel +//! There is a bit for each channel and a 1 indicates that the channel //! is requesting an interrupt. Multiple bits can be set. // //***************************************************************************** @@ -1269,10 +1270,10 @@ uDMAIntStatus(void) //! //! \param ulChanMask is a 32-bit mask with one bit for each uDMA channel. //! -//! Clears bits in the uDMA interrupt status register according to which bits -//! are set in \e ulChanMask. There is one bit for each channel. If a a bit is -//! set in \e ulChanMask, then that corresponding channel's interrupt status is -//! cleared (if it was set). +//! This function clears bits in the uDMA interrupt status register according +//! to which bits are set in \e ulChanMask. There is one bit for each channel. +//! If a a bit is set in \e ulChanMask, then that corresponding channel's +//! interrupt status is cleared (if it was set). //! //! \note This function is only available on devices that have the DMA Channel //! Interrupt Status Register (DMACHIS). Please consult the data sheet for @@ -1303,7 +1304,7 @@ uDMAIntClear(unsigned long ulChanMask) //! Assigns a peripheral mapping for a uDMA channel. //! //! \param ulMapping is a macro specifying the peripheral assignment for -//! a channel +//! a channel. //! //! This function assigns a peripheral mapping to a uDMA channel. It is //! used to select which peripheral is used for a uDMA channel. The parameter diff --git a/bsp/lm4f232/Libraries/driverlib/udma.h b/bsp/lm4f232/Libraries/driverlib/udma.h index 71c3cf465c..a217ae5048 100644 --- a/bsp/lm4f232/Libraries/driverlib/udma.h +++ b/bsp/lm4f232/Libraries/driverlib/udma.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/driverlib/usb.c b/bsp/lm4f232/Libraries/driverlib/usb.c index 2df9a82057..654948d014 100644 --- a/bsp/lm4f232/Libraries/driverlib/usb.c +++ b/bsp/lm4f232/Libraries/driverlib/usb.c @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -85,7 +85,7 @@ // \param ucValue is the value to write to the register. // // This function is used to access the indexed registers for each endpoint. -// The only registers that are indexed are the FIFO configuration registers +// The only registers that are indexed are the FIFO configuration registers, // which are not used after configuration. // // \return None. @@ -150,7 +150,7 @@ USBIndexWrite(unsigned long ulBase, unsigned long ulEndpoint, // // This function is used internally to access the indexed registers for each // endpoint. The only registers that are indexed are the FIFO configuration -// registers which are not used after configuration. +// registers, which are not used after configuration. // // \return The value in the register requested. // @@ -215,7 +215,7 @@ USBIndexRead(unsigned long ulBase, unsigned long ulEndpoint, //! //! \param ulBase specifies the USB module base address. //! -//! When used in host mode, this function will put the USB bus in the suspended +//! When used in host mode, this function puts the USB bus in the suspended //! state. //! //! \note This function should only be called in host mode. @@ -246,7 +246,7 @@ USBHostSuspend(unsigned long ulBase) //! bus. //! //! When this function is called with the \e bStart parameter set to \b true, -//! this function will cause the start of a reset condition on the USB bus. +//! this function causes the start of a reset condition on the USB bus. //! The caller should then delay at least 20ms before calling this function //! again with the \e bStart parameter set to \b false. //! @@ -284,17 +284,17 @@ USBHostReset(unsigned long ulBase, tBoolean bStart) //! \param bStart specifies if the USB controller is entering or leaving the //! resume signaling state. //! -//! When in device mode this function will bring the USB controller out of the +//! When in device mode, this function brings the USB controller out of the //! suspend state. This call should first be made with the \e bStart parameter //! set to \b true to start resume signaling. The device application should //! then delay at least 10ms but not more than 15ms before calling this //! function with the \e bStart parameter set to \b false. //! -//! When in host mode this function will signal devices to leave the suspend +//! When in host mode, this function signals devices to leave the suspend //! state. This call should first be made with the \e bStart parameter set to //! \b true to start resume signaling. The host application should then delay //! at least 20ms before calling this function with the \e bStart parameter set -//! to \b false. This will cause the controller to complete the resume +//! to \b false. This action causes the controller to complete the resume //! signaling on the USB bus. //! //! \return None. @@ -327,7 +327,7 @@ USBHostResume(unsigned long ulBase, tBoolean bStart) //! //! \param ulBase specifies the USB module base address. //! -//! This function will return the current speed of the USB bus. +//! This function returns the current speed of the USB bus. //! //! \note This function should only be called in host mode. //! @@ -371,16 +371,15 @@ USBHostSpeedGet(unsigned long ulBase) //! //! \param ulBase specifies the USB module base address. //! -//! This function will read the source of the interrupt for the USB controller. +//! This function reads the source of the interrupt for the USB controller. //! There are three groups of interrupt sources, IN Endpoints, OUT Endpoints, -//! and general status changes. This call will return the current status for +//! and general status changes. This call returns the current status for //! all of these interrupts. The bit values returned should be compared //! against the \b USB_HOST_IN, \b USB_HOST_OUT, \b USB_HOST_EP0, //! \b USB_DEV_IN, \b USB_DEV_OUT, and \b USB_DEV_EP0 values. //! -//! \note This call will clear the source of all of the general status -//! interrupts. -//! +//! \note This call clears the source of all of the general status interrupts. +//! //! \note WARNING: This API cannot be used on endpoint numbers greater than //! endpoint 3 so USBIntStatusControl() or USBIntStatusEndpoint() should be //! used instead. @@ -436,7 +435,7 @@ USBIntStatus(unsigned long ulBase) if(HWREG(USB0_BASE + USB_O_IDVISC) & USB_IDVRIS_ID) { // - // Indicate a id detection was detected. + // Indicate an id detection was detected. // ulStatus |= USB_INT_MODE_DETECT; @@ -460,12 +459,12 @@ USBIntStatus(unsigned long ulBase) //! \param ulBase specifies the USB module base address. //! \param ulFlags specifies which interrupts to disable. //! -//! This function will disable the USB controller from generating the +//! This function disables the USB controller from generating the //! interrupts indicated by the \e ulFlags parameter. There are three groups //! of interrupt sources, IN Endpoints, OUT Endpoints, and general status //! changes, specified by \b USB_INT_HOST_IN, \b USB_INT_HOST_OUT, //! \b USB_INT_DEV_IN, \b USB_INT_DEV_OUT, and \b USB_INT_STATUS. If -//! \b USB_INT_ALL is specified then all interrupts are disabled. +//! \b USB_INT_ALL is specified, then all interrupts are disabled. //! //! \note WARNING: This API cannot be used on endpoint numbers greater than //! endpoint 3 so USBIntDisableControl() or USBIntDisableEndpoint() should be @@ -485,7 +484,7 @@ USBIntDisable(unsigned long ulBase, unsigned long ulFlags) ASSERT((ulFlags & ~(USB_INT_ALL)) == 0); // - // If any transmit interrupts were disabled then write the transmit + // If any transmit interrupts were disabled, then write the transmit // interrupt settings out to the hardware. // if(ulFlags & (USB_INT_HOST_OUT | USB_INT_DEV_IN | USB_INT_EP0)) @@ -495,8 +494,8 @@ USBIntDisable(unsigned long ulBase, unsigned long ulFlags) } // - // If any receive interrupts were disabled then write the receive interrupt - // settings out to the hardware. + // If any receive interrupts were disabled, then write the receive + // interrupt settings out to the hardware. // if(ulFlags & (USB_INT_HOST_IN | USB_INT_DEV_OUT)) { @@ -506,8 +505,8 @@ USBIntDisable(unsigned long ulBase, unsigned long ulFlags) } // - // If any general interrupts were disabled then write the general interrupt - // settings out to the hardware. + // If any general interrupts were disabled, then write the general + // interrupt settings out to the hardware. // if(ulFlags & USB_INT_STATUS) { @@ -540,7 +539,7 @@ USBIntDisable(unsigned long ulBase, unsigned long ulFlags) //! \param ulBase specifies the USB module base address. //! \param ulFlags specifies which interrupts to enable. //! -//! This function will enable the USB controller's ability to generate the +//! This function enables the USB controller's ability to generate the //! interrupts indicated by the \e ulFlags parameter. There are three //! groups of interrupt sources, IN Endpoints, OUT Endpoints, and //! general status changes, specified by \b USB_INT_HOST_IN, @@ -550,9 +549,9 @@ USBIntDisable(unsigned long ulBase, unsigned long ulFlags) //! //! \note A call must be made to enable the interrupt in the main interrupt //! controller to receive interrupts. The USBIntRegister() API performs this -//! controller level interrupt enable. However if static interrupt handlers -//! are used then then a call to IntEnable() must be made in order to allow any -//! USB interrupts to occur. +//! controller-level interrupt enable. However if static interrupt handlers +//! are used, then then a call to IntEnable() must be made in order to allow +//! any USB interrupts to occur. //! //! \note WARNING: This API cannot be used on endpoint numbers greater than //! endpoint 3 so USBIntEnableControl() or USBIntEnableEndpoint() should be @@ -572,7 +571,7 @@ USBIntEnable(unsigned long ulBase, unsigned long ulFlags) ASSERT((ulFlags & (~USB_INT_ALL)) == 0); // - // If any transmit interrupts were enabled then write the transmit + // If any transmit interrupts were enabled, then write the transmit // interrupt settings out to the hardware. // if(ulFlags & (USB_INT_HOST_OUT | USB_INT_DEV_IN | USB_INT_EP0)) @@ -582,8 +581,8 @@ USBIntEnable(unsigned long ulBase, unsigned long ulFlags) } // - // If any receive interrupts were enabled then write the receive interrupt - // settings out to the hardware. + // If any receive interrupts were enabled, then write the receive + // interrupt settings out to the hardware. // if(ulFlags & (USB_INT_HOST_IN | USB_INT_DEV_OUT)) { @@ -593,8 +592,8 @@ USBIntEnable(unsigned long ulBase, unsigned long ulFlags) } // - // If any general interrupts were enabled then write the general interrupt - // settings out to the hardware. + // If any general interrupts were enabled, then write the general + // interrupt settings out to the hardware. // if(ulFlags & USB_INT_STATUS) { @@ -627,7 +626,7 @@ USBIntEnable(unsigned long ulBase, unsigned long ulFlags) //! \param ulBase specifies the USB module base address. //! \param ulFlags specifies which control interrupts to disable. //! -//! This function will disable the control interrupts for the USB controller +//! This function disables the control interrupts for the USB controller //! specified by the \e ulBase parameter. The \e ulFlags parameter specifies //! which control interrupts to disable. The flags passed in the \e ulFlags //! parameters should be the definitions that start with \b USB_INTCTRL_* and @@ -678,7 +677,7 @@ USBIntDisableControl(unsigned long ulBase, unsigned long ulFlags) //! \param ulBase specifies the USB module base address. //! \param ulFlags specifies which control interrupts to enable. //! -//! This function will enable the control interrupts for the USB controller +//! This function enables the control interrupts for the USB controller //! specified by the \e ulBase parameter. The \e ulFlags parameter specifies //! which control interrupts to enable. The flags passed in the \e ulFlags //! parameters should be the definitions that start with \b USB_INTCTRL_* and @@ -697,8 +696,8 @@ USBIntEnableControl(unsigned long ulBase, unsigned long ulFlags) ASSERT((ulFlags & (~USB_INTCTRL_ALL)) == 0); // - // If any general interrupts were enabled then write the general interrupt - // settings out to the hardware. + // If any general interrupts were enabled, then write the general + // interrupt settings out to the hardware. // if(ulFlags & USB_INTCTRL_STATUS) { @@ -728,17 +727,17 @@ USBIntEnableControl(unsigned long ulBase, unsigned long ulFlags) //! //! \param ulBase specifies the USB module base address. //! -//! This function will read control interrupt status for a USB controller. -//! This call will return the current status for control interrupts only, the -//! endpoint interrupt status is retrieved by calling USBIntStatusEndpoint(). -//! The bit values returned should be compared against the \b USB_INTCTRL_* +//! This function reads control interrupt status for a USB controller. This +//! call returns the current status for control interrupts only, the endpoint +//! interrupt status is retrieved by calling USBIntStatusEndpoint(). The bit +//! values returned should be compared against the \b USB_INTCTRL_* //! values. //! //! The following are the meanings of all \b USB_INCTRL_ flags and the modes //! for which they are valid. These values apply to any calls to //! USBIntStatusControl(), USBIntEnableControl(), and USBIntDisableControl(). //! Some of these flags are only valid in the following modes as indicated in -//! the parenthesis: Host, Device, and OTG. +//! the parentheses: Host, Device, and OTG. //! //! - \b USB_INTCTRL_ALL - A full mask of all control interrupt sources. //! - \b USB_INTCTRL_VBUS_ERR - A VBUS error has occurred (Host Only). @@ -758,9 +757,8 @@ USBIntEnableControl(unsigned long ulBase, unsigned long ulFlags) //! (OTG Only) //! - \b USB_INTCTRL_POWER_FAULT - Power Fault detected. (Host Only) //! -//! \note This call will clear the source of all of the control status -//! interrupts. -//! +//! \note This call clears the source of all of the control status interrupts. +//! //! \return Returns the status of the control interrupts for a USB controller. // //***************************************************************************** @@ -799,7 +797,7 @@ USBIntStatusControl(unsigned long ulBase) if(HWREG(USB0_BASE + USB_O_IDVISC) & USB_IDVRIS_ID) { // - // Indicate a id detection was detected. + // Indicate an id detection. // ulStatus |= USB_INTCTRL_MODE_DETECT; @@ -822,9 +820,9 @@ USBIntStatusControl(unsigned long ulBase) //! \param ulBase specifies the USB module base address. //! \param ulFlags specifies which endpoint interrupts to disable. //! -//! This function will disable endpoint interrupts for the USB controller -//! specified by the \e ulBase parameter. The \e ulFlags parameter specifies -//! which endpoint interrupts to disable. The flags passed in the \e ulFlags +//! This function disables endpoint interrupts for the USB controller specified +//! by the \e ulBase parameter. The \e ulFlags parameter specifies which +//! endpoint interrupts to disable. The flags passed in the \e ulFlags //! parameters should be the definitions that start with \b USB_INTEP_* and not //! any other \b USB_INT flags. //! @@ -840,14 +838,14 @@ USBIntDisableEndpoint(unsigned long ulBase, unsigned long ulFlags) ASSERT(ulBase == USB0_BASE); // - // If any transmit interrupts were disabled then write the transmit + // If any transmit interrupts were disabled, then write the transmit // interrupt settings out to the hardware. // HWREGH(ulBase + USB_O_TXIE) &= ~(ulFlags & (USB_INTEP_HOST_OUT | USB_INTEP_DEV_IN | USB_INTEP_0)); // - // If any receive interrupts were disabled then write the receive interrupt + // If any receive interrupts were disabled, then write the receive interrupt // settings out to the hardware. // HWREGH(ulBase + USB_O_RXIE) &= @@ -862,9 +860,9 @@ USBIntDisableEndpoint(unsigned long ulBase, unsigned long ulFlags) //! \param ulBase specifies the USB module base address. //! \param ulFlags specifies which endpoint interrupts to enable. //! -//! This function will enable endpoint interrupts for the USB controller -//! specified by the \e ulBase parameter. The \e ulFlags parameter specifies -//! which endpoint interrupts to enable. The flags passed in the \e ulFlags +//! This function enables endpoint interrupts for the USB controller specified +//! by the \e ulBase parameter. The \e ulFlags parameter specifies which +//! endpoint interrupts to enable. The flags passed in the \e ulFlags //! parameters should be the definitions that start with \b USB_INTEP_* and not //! any other \b USB_INT flags. //! @@ -899,15 +897,15 @@ USBIntEnableEndpoint(unsigned long ulBase, unsigned long ulFlags) //! //! \param ulBase specifies the USB module base address. //! -//! This function will read endpoint interrupt status for a USB controller. -//! This call will return the current status for endpoint interrupts only, the -//! control interrupt status is retrieved by calling USBIntStatusControl(). -//! The bit values returned should be compared against the \b USB_INTEP_* -//! values. These are grouped into classes for \b USB_INTEP_HOST_* and +//! This function reads endpoint interrupt status for a USB controller. This +//! call returns the current status for endpoint interrupts only, the control +//! interrupt status is retrieved by calling USBIntStatusControl(). The bit +//! values returned should be compared against the \b USB_INTEP_* values. +//! These values are grouped into classes for \b USB_INTEP_HOST_* and //! \b USB_INTEP_DEV_* values to handle both host and device modes with all //! endpoints. //! -//! \note This call will clear the source of all of the endpoint interrupts. +//! \note This call clears the source of all of the endpoint interrupts. //! //! \return Returns the status of the endpoint interrupts for a USB controller. // @@ -943,11 +941,11 @@ USBIntStatusEndpoint(unsigned long ulBase) //! \param pfnHandler is a pointer to the function to be called when a USB //! interrupt occurs. //! -//! This sets the handler to be called when a USB interrupt occurs. This will -//! also enable the global USB interrupt in the interrupt controller. The -//! specific desired USB interrupts must be enabled via a separate call to +//! This function registers the handler to be called when a USB interrupt +//! occurs and enables the global USB interrupt in the interrupt controller. +//! The specific desired USB interrupts must be enabled via a separate call to //! USBIntEnable(). It is the interrupt handler's responsibility to clear the -//! interrupt sources via a calls to USBIntStatusControl() and +//! interrupt sources via calls to USBIntStatusControl() and //! USBIntStatusEndpoint(). //! //! \sa IntRegister() for important information about registering interrupt @@ -981,8 +979,8 @@ USBIntRegister(unsigned long ulBase, void(*pfnHandler)(void)) //! //! \param ulBase specifies the USB module base address. //! -//! This function unregister the interrupt handler. This function will also -//! disable the USB interrupt in the interrupt controller. +//! This function unregisters the interrupt handler. This function also +//! disables the USB interrupt in the interrupt controller. //! //! \sa IntRegister() for important information about registering or //! unregistering interrupt handlers. @@ -1016,11 +1014,10 @@ USBIntUnregister(unsigned long ulBase) //! \param ulBase specifies the USB module base address. //! \param ulEndpoint is the endpoint to access. //! -//! This function will return the status of a given endpoint. If any of these -//! status bits need to be cleared, then these these values must be cleared by -//! calling the USBDevEndpointStatusClear() or USBHostEndpointStatusClear() -//! functions. -//! +//! This function returns the status of a given endpoint. If any of these +//! status bits must be cleared, then the USBDevEndpointStatusClear() or the +//! USBHostEndpointStatusClear() functions should be called. +//! //! The following are the status flags for host mode: //! //! - \b USB_HOST_IN_PID_ERROR - PID error on the given endpoint. @@ -1123,7 +1120,7 @@ USBEndpointStatus(unsigned long ulBase, unsigned long ulEndpoint) //! \param ulEndpoint is the endpoint to access. //! \param ulFlags are the status bits that should be cleared. //! -//! This function will clear the status of any bits that are passed in the +//! This function clears the status of any bits that are passed in the //! \e ulFlags parameter. The \e ulFlags parameter can take the value returned //! from the USBEndpointStatus() call. //! @@ -1172,7 +1169,7 @@ USBHostEndpointStatusClear(unsigned long ulBase, unsigned long ulEndpoint, //! \param ulEndpoint is the endpoint to access. //! \param ulFlags are the status bits that should be cleared. //! -//! This function will clear the status of any bits that are passed in the +//! This function clears the status of any bits that are passed in the //! \e ulFlags parameter. The \e ulFlags parameter can take the value returned //! from the USBEndpointStatus() call. //! @@ -1199,8 +1196,8 @@ USBDevEndpointStatusClear(unsigned long ulBase, unsigned long ulEndpoint, (ulEndpoint == USB_EP_14) || (ulEndpoint == USB_EP_15)); // - // If this is endpoint 0 then the bits have different meaning and map into - // the TX memory location. + // If this is endpoint 0, then the bits have different meaning and map + // into the TX memory location. // if(ulEndpoint == USB_EP_0) { @@ -1352,13 +1349,13 @@ USBHostEndpointDataToggle(unsigned long ulBase, unsigned long ulEndpoint, //***************************************************************************** // -//! Sets the Data toggle on an endpoint to zero. +//! Sets the data toggle on an endpoint to zero. //! //! \param ulBase specifies the USB module base address. //! \param ulEndpoint specifies the endpoint to reset the data toggle. //! \param ulFlags specifies whether to access the IN or OUT endpoint. //! -//! This function will cause the controller to clear the data toggle for an +//! This function causes the USB controller to clear the data toggle for an //! endpoint. This call is not valid for endpoint zero and can be made with //! host or device controllers. //! @@ -1408,10 +1405,10 @@ USBEndpointDataToggleClear(unsigned long ulBase, unsigned long ulEndpoint, //! \param ulEndpoint specifies the endpoint to stall. //! \param ulFlags specifies whether to stall the IN or OUT endpoint. //! -//! This function will cause to endpoint number passed in to go into a stall -//! condition. If the \e ulFlags parameter is \b USB_EP_DEV_IN then the stall +//! This function causes the endpoint number passed in to go into a stall +//! condition. If the \e ulFlags parameter is \b USB_EP_DEV_IN, then the stall //! is issued on the IN portion of this endpoint. If the \e ulFlags parameter -//! is \b USB_EP_DEV_OUT then the stall is issued on the OUT portion of this +//! is \b USB_EP_DEV_OUT, then the stall is issued on the OUT portion of this //! endpoint. //! //! \note This function should only be called in device mode. @@ -1475,10 +1472,10 @@ USBDevEndpointStall(unsigned long ulBase, unsigned long ulEndpoint, //! \param ulFlags specifies whether to remove the stall condition from the IN //! or the OUT portion of this endpoint. //! -//! This function will cause the endpoint number passed in to exit the stall -//! condition. If the \e ulFlags parameter is \b USB_EP_DEV_IN then the stall +//! This function causes the endpoint number passed in to exit the stall +//! condition. If the \e ulFlags parameter is \b USB_EP_DEV_IN, then the stall //! is cleared on the IN portion of this endpoint. If the \e ulFlags parameter -//! is \b USB_EP_DEV_OUT then the stall is cleared on the OUT portion of this +//! is \b USB_EP_DEV_OUT, then the stall is cleared on the OUT portion of this //! endpoint. //! //! \note This function should only be called in device mode. @@ -1550,7 +1547,7 @@ USBDevEndpointStallClear(unsigned long ulBase, unsigned long ulEndpoint, //! //! \param ulBase specifies the USB module base address. //! -//! This function will cause the soft connect feature of the USB controller to +//! This function causes the soft connect feature of the USB controller to //! be enabled. Call USBDevDisconnect() to remove the USB device from the bus. //! //! \note This function should only be called in device mode. @@ -1578,7 +1575,7 @@ USBDevConnect(unsigned long ulBase) //! //! \param ulBase specifies the USB module base address. //! -//! This function will cause the soft connect feature of the USB controller to +//! This function causes the soft connect feature of the USB controller to //! remove the device from the USB bus. A call to USBDevConnect() is needed to //! reconnect to the bus. //! @@ -1608,8 +1605,8 @@ USBDevDisconnect(unsigned long ulBase) //! \param ulBase specifies the USB module base address. //! \param ulAddress is the address to use for a device. //! -//! This function will set the device address on the USB bus. This address was -//! likely received via a SET ADDRESS command from the host controller. +//! This function configures the device address on the USB bus. This address +//! was likely received via a SET ADDRESS command from the host controller. //! //! \note This function should only be called in device mode. //! @@ -1636,7 +1633,7 @@ USBDevAddrSet(unsigned long ulBase, unsigned long ulAddress) //! //! \param ulBase specifies the USB module base address. //! -//! This function will return the current device address. This address was set +//! This function returns the current device address. This address was set //! by a call to USBDevAddrSet(). //! //! \note This function should only be called in device mode. @@ -1666,18 +1663,19 @@ USBDevAddrGet(unsigned long ulBase) //! \param ulEndpoint is the endpoint to access. //! \param ulMaxPayload is the maximum payload for this endpoint. //! \param ulNAKPollInterval is the either the NAK timeout limit or the polling -//! interval depending on the type of endpoint. +//! interval, depending on the type of endpoint. //! \param ulTargetEndpoint is the endpoint that the host endpoint is //! targeting. //! \param ulFlags are used to configure other endpoint settings. //! -//! This function will set the basic configuration for the transmit or receive +//! This function sets the basic configuration for the transmit or receive //! portion of an endpoint in host mode. The \e ulFlags parameter determines //! some of the configuration while the other parameters provide the rest. The //! \e ulFlags parameter determines whether this is an IN endpoint -//! (USB_EP_HOST_IN or USB_EP_DEV_IN) or an OUT endpoint (USB_EP_HOST_OUT or -//! USB_EP_DEV_OUT), whether this is a Full speed endpoint (USB_EP_SPEED_FULL) -//! or a Low speed endpoint (USB_EP_SPEED_LOW). +//! (\b USB_EP_HOST_IN or \b USB_EP_DEV_IN) or an OUT endpoint +//! (\b USB_EP_HOST_OUT or \b USB_EP_DEV_OUT), whether this is a Full speed +//! endpoint (\b USB_EP_SPEED_FULL) or a Low speed endpoint +//! (\b USB_EP_SPEED_LOW). //! //! The \b USB_EP_MODE_ flags control the type of the endpoint. //! - \b USB_EP_MODE_CTRL is a control endpoint. @@ -1693,18 +1691,18 @@ USBDevAddrGet(unsigned long ulBase) //! isochronous or interrupt endpoint, this value is the polling interval for //! this endpoint. //! -//! For interrupt endpoints the polling interval is simply the number of +//! For interrupt endpoints, the polling interval is simply the number of //! frames between polling an interrupt endpoint. For isochronous endpoints //! this value represents a polling interval of 2 ^ (\e ulNAKPollInterval - 1) //! frames. When used as a NAK timeout, the \e ulNAKPollInterval value //! specifies 2 ^ (\e ulNAKPollInterval - 1) frames before issuing a time out. //! There are two special time out values that can be specified when setting -//! the \e ulNAKPollInterval value. The first is \b MAX_NAK_LIMIT which is the -//! maximum value that can be passed in this variable. The other is -//! \b DISABLE_NAK_LIMIT which indicates that there should be no limit on the +//! the \e ulNAKPollInterval value. The first is \b MAX_NAK_LIMIT, which is +//! the maximum value that can be passed in this variable. The other is +//! \b DISABLE_NAK_LIMIT, which indicates that there should be no limit on the //! number of NAKs. //! -//! The \b USB_EP_DMA_MODE_ flags enables the type of DMA used to access the +//! The \b USB_EP_DMA_MODE_ flags enable the type of DMA used to access the //! endpoint's data FIFOs. The choice of the DMA mode depends on how the DMA //! controller is configured and how it is being used. See the ``Using USB //! with the uDMA Controller'' section for more information on DMA @@ -1712,15 +1710,15 @@ USBDevAddrGet(unsigned long ulBase) //! //! When configuring the OUT portion of an endpoint, the \b USB_EP_AUTO_SET bit //! is specified to cause the transmission of data on the USB bus to start -//! as soon as the number of bytes specified by \e ulMaxPayload have been +//! as soon as the number of bytes specified by \e ulMaxPayload has been //! written into the OUT FIFO for this endpoint. //! //! When configuring the IN portion of an endpoint, the \b USB_EP_AUTO_REQUEST //! bit can be specified to trigger the request for more data once the FIFO has //! been drained enough to fit \e ulMaxPayload bytes. The \b USB_EP_AUTO_CLEAR //! bit can be used to clear the data packet ready flag automatically once the -//! data has been read from the FIFO. If this is not used, this flag must be -//! manually cleared via a call to USBDevEndpointStatusClear() or +//! data has been read from the FIFO. If this option is not used, this flag +//! must be manually cleared via a call to USBDevEndpointStatusClear() or //! USBHostEndpointStatusClear(). //! //! \note This function should only be called in host mode. @@ -1942,9 +1940,9 @@ USBHostEndpointConfig(unsigned long ulBase, unsigned long ulEndpoint, //! \param ulMaxPacketSize is the maximum packet size for this endpoint. //! \param ulFlags are used to configure other endpoint settings. //! -//! This function will set the basic configuration for an endpoint in device -//! mode. Endpoint zero does not have a dynamic configuration, so this -//! function should not be called for endpoint zero. The \e ulFlags parameter +//! This function sets the basic configuration for an endpoint in device mode. +//! Endpoint zero does not have a dynamic configuration, so this function +//! should not be called for endpoint zero. The \e ulFlags parameter //! determines some of the configuration while the other parameters provide the //! rest. //! @@ -1955,7 +1953,7 @@ USBHostEndpointConfig(unsigned long ulBase, unsigned long ulEndpoint, //! - \b USB_EP_MODE_BULK is a bulk endpoint. //! - \b USB_EP_MODE_INT is an interrupt endpoint. //! -//! The \b USB_EP_DMA_MODE_ flags determines the type of DMA access to the +//! The \b USB_EP_DMA_MODE_ flags determine the type of DMA access to the //! endpoint data FIFOs. The choice of the DMA mode depends on how the DMA //! controller is configured and how it is being used. See the ``Using USB //! with the uDMA Controller'' section for more information on DMA @@ -1964,7 +1962,7 @@ USBHostEndpointConfig(unsigned long ulBase, unsigned long ulEndpoint, //! When configuring an IN endpoint, the \b USB_EP_AUTO_SET bit can be //! specified to cause the automatic transmission of data on the USB bus as //! soon as \e ulMaxPacketSize bytes of data are written into the FIFO for -//! this endpoint. This is commonly used with DMA as no interaction is +//! this endpoint. This option is commonly used with DMA as no interaction is //! required to start the transmission of data. //! //! When configuring an OUT endpoint, the \b USB_EP_AUTO_REQUEST bit is @@ -1972,9 +1970,9 @@ USBHostEndpointConfig(unsigned long ulBase, unsigned long ulEndpoint, //! drained enough to receive \e ulMaxPacketSize more bytes of data. Also for //! OUT endpoints, the \b USB_EP_AUTO_CLEAR bit can be used to clear the data //! packet ready flag automatically once the data has been read from the FIFO. -//! If this is not used, this flag must be manually cleared via a call to -//! USBDevEndpointStatusClear(). Both of these settings can be used to remove -//! the need for extra calls when using the controller in DMA mode. +//! If this option is not used, this flag must be manually cleared via a call +//! to USBDevEndpointStatusClear(). Both of these settings can be used to +//! remove the need for extra calls when using the controller in DMA mode. //! //! \note This function should only be called in device mode. //! @@ -2126,7 +2124,7 @@ USBDevEndpointConfigSet(unsigned long ulBase, unsigned long ulEndpoint, //! \b USB_EP_DEV_IN or \b USB_EP_DEV_OUT to indicate whether the IN or OUT //! endpoint is to be queried. //! -//! This function will return the basic configuration for an endpoint in device +//! This function returns the basic configuration for an endpoint in device //! mode. The values returned in \e *pulMaxPacketSize and \e *pulFlags are //! equivalent to the \e ulMaxPacketSize and \e ulFlags previously passed to //! USBDevEndpointConfigSet() for this endpoint. @@ -2216,9 +2214,9 @@ USBDevEndpointConfigGet(unsigned long ulBase, unsigned long ulEndpoint, // // The hardware doesn't differentiate between bulk, interrupt // and control mode for the endpoint so we just set something - // that isn't isochronous. This ensures that anyone modifying - // the returned flags in preparation for a call to - // USBDevEndpointConfigSet will not see an unexpected mode change. + // that isn't isochronous. This protocol ensures that anyone + // modifying the returned flags in preparation for a call to + // USBDevEndpointConfigSet do not see an unexpected mode change. // If they decode the returned mode, however, they may be in for // a surprise. // @@ -2281,9 +2279,9 @@ USBDevEndpointConfigGet(unsigned long ulBase, unsigned long ulEndpoint, // // The hardware doesn't differentiate between bulk, interrupt // and control mode for the endpoint so we just set something - // that isn't isochronous. This ensures that anyone modifying - // the returned flags in preparation for a call to - // USBDevEndpointConfigSet will not see an unexpected mode change. + // that isn't isochronous. This protocol ensures that anyone + // modifying the returned flags in preparation for a call to + // USBDevEndpointConfigSet do not see an unexpected mode change. // If they decode the returned mode, however, they may be in for // a surprise. // @@ -2303,24 +2301,24 @@ USBDevEndpointConfigGet(unsigned long ulBase, unsigned long ulEndpoint, //! USB_FIFO_SZ_ values. //! \param ulFlags specifies what information to set in the FIFO configuration. //! -//! This function will set the starting FIFO RAM address and size of the FIFO +//! This function configures the starting FIFO RAM address and size of the FIFO //! for a given endpoint. Endpoint zero does not have a dynamically -//! configurable FIFO so this function should not be called for endpoint zero. +//! configurable FIFO, so this function should not be called for endpoint zero. //! The \e ulFIFOSize parameter should be one of the values in the -//! \b USB_FIFO_SZ_ values. If the endpoint is going to use double buffering +//! \b USB_FIFO_SZ_ values. If the endpoint is going to use double buffering, //! it should use the values with the \b _DB at the end of the value. For -//! example, use \b USB_FIFO_SZ_16_DB to configure an endpoint to have a 16 -//! byte double buffered FIFO. If a double buffered FIFO is used, then the +//! example, use \b USB_FIFO_SZ_16_DB to configure an endpoint to have a 16- +//! byte, double-buffered FIFO. If a double-buffered FIFO is used, then the //! actual size of the FIFO is twice the size indicated by the \e ulFIFOSize -//! parameter. This means that the \b USB_FIFO_SZ_16_DB value will use 32 -//! bytes of the USB controller's FIFO memory. +//! parameter. For example, the \b USB_FIFO_SZ_16_DB value uses 32 bytes of +//! the USB controller's FIFO memory. //! //! The \e ulFIFOAddress value should be a multiple of 8 bytes and directly //! indicates the starting address in the USB controller's FIFO RAM. For //! example, a value of 64 indicates that the FIFO should start 64 bytes into //! the USB controller's FIFO memory. The \e ulFlags value specifies whether //! the endpoint's OUT or IN FIFO should be configured. If in host mode, use -//! \b USB_EP_HOST_OUT or \b USB_EP_HOST_IN, and if in device mode use +//! \b USB_EP_HOST_OUT or \b USB_EP_HOST_IN, and if in device mode, use //! \b USB_EP_DEV_OUT or \b USB_EP_DEV_IN. //! //! \return None. @@ -2379,12 +2377,12 @@ USBFIFOConfigSet(unsigned long ulBase, unsigned long ulEndpoint, //! \param ulFlags specifies what information to retrieve from the FIFO //! configuration. //! -//! This function will return the starting address and size of the FIFO for a +//! This function returns the starting address and size of the FIFO for a //! given endpoint. Endpoint zero does not have a dynamically configurable -//! FIFO so this function should not be called for endpoint zero. The +//! FIFO, so this function should not be called for endpoint zero. The //! \e ulFlags parameter specifies whether the endpoint's OUT or IN FIFO should //! be read. If in host mode, the \e ulFlags parameter should be -//! \b USB_EP_HOST_OUT or \b USB_EP_HOST_IN, and if in device mode the +//! \b USB_EP_HOST_OUT or \b USB_EP_HOST_IN, and if in device mode, the //! \e ulFlags parameter should be either \b USB_EP_DEV_OUT or //! \b USB_EP_DEV_IN. //! @@ -2446,7 +2444,7 @@ USBFIFOConfigGet(unsigned long ulBase, unsigned long ulEndpoint, //! \param ulFlags specifies which direction and what mode to use when enabling //! DMA. //! -//! This function will enable DMA on a given endpoint and set the mode +//! This function enables DMA on a given endpoint and configures the mode //! according to the values in the \e ulFlags parameter. The \e ulFlags //! parameter should have \b USB_EP_DEV_IN or \b USB_EP_DEV_OUT set. //! @@ -2463,7 +2461,7 @@ USBEndpointDMAEnable(unsigned long ulBase, unsigned long ulEndpoint, if(ulFlags & USB_EP_DEV_IN) { // - // Enable DMA on the transmit end point. + // Enable DMA on the transmit endpoint. // HWREGB(ulBase + EP_OFFSET(ulEndpoint) + USB_O_TXCSRH1) |= USB_TXCSRH1_DMAEN; @@ -2471,7 +2469,7 @@ USBEndpointDMAEnable(unsigned long ulBase, unsigned long ulEndpoint, else { // - // Enable DMA on the receive end point. + // Enable DMA on the receive endpoint. // HWREGB(ulBase + EP_OFFSET(ulEndpoint) + USB_O_RXCSRH1) |= USB_RXCSRH1_DMAEN; @@ -2486,9 +2484,9 @@ USBEndpointDMAEnable(unsigned long ulBase, unsigned long ulEndpoint, //! \param ulEndpoint is the endpoint to access. //! \param ulFlags specifies which direction to disable. //! -//! This function will disable DMA on a given end point to allow non-DMA -//! USB transactions to generate interrupts normally. The ulFlags should be -//! \b USB_EP_DEV_IN or \b USB_EP_DEV_OUT all other bits are ignored. +//! This function disables DMA on a given endpoint to allow non-DMA USB +//! transactions to generate interrupts normally. The ulFlags should be +//! \b USB_EP_DEV_IN or \b USB_EP_DEV_OUT; all other bits are ignored. //! //! \return None. // @@ -2498,7 +2496,7 @@ USBEndpointDMADisable(unsigned long ulBase, unsigned long ulEndpoint, unsigned long ulFlags) { // - // If this was a request to disable DMA on the IN portion of the end point + // If this was a request to disable DMA on the IN portion of the endpoint // then handle it. // if(ulFlags & USB_EP_DEV_IN) @@ -2526,13 +2524,13 @@ USBEndpointDMADisable(unsigned long ulBase, unsigned long ulEndpoint, //! \param ulBase specifies the USB module base address. //! \param ulEndpoint is the endpoint to access. //! -//! This function will return the number of bytes of data currently available -//! in the FIFO for the given receive (OUT) endpoint. It may be used prior to +//! This function returns the number of bytes of data currently available in +//! the FIFO for the given receive (OUT) endpoint. It may be used prior to //! calling USBEndpointDataGet() to determine the size of buffer required to //! hold the newly-received packet. //! -//! \return This call will return the number of bytes available in a given -//! endpoint FIFO. +//! \return This call returns the number of bytes available in a given endpoint +//! FIFO. // //***************************************************************************** unsigned long @@ -2592,15 +2590,15 @@ USBEndpointDataAvail(unsigned long ulBase, unsigned long ulEndpoint) //! via the \e pucData parameter. It is set to the amount of data returned in //! the buffer. //! -//! This function will return the data from the FIFO for the given endpoint. +//! This function returns the data from the FIFO for the given endpoint. //! The \e pulSize parameter should indicate the size of the buffer passed in //! the \e pulData parameter. The data in the \e pulSize parameter is changed //! to match the amount of data returned in the \e pucData parameter. If a -//! zero byte packet was received this call will not return a error but will -//! instead just return a zero in the \e pulSize parameter. The only error +//! zero-byte packet is received, this call does not return an error but +//! instead just returns a zero in the \e pulSize parameter. The only error //! case occurs when there is no data packet available. //! -//! \return This call will return 0, or -1 if no packet was received. +//! \return This call returns 0, or -1 if no packet was received. // //***************************************************************************** long @@ -2695,7 +2693,7 @@ USBEndpointDataGet(unsigned long ulBase, unsigned long ulEndpoint, //! //! \param ulBase specifies the USB module base address. //! \param ulEndpoint is the endpoint to access. -//! \param bIsLastPacket indicates if this is the last packet. +//! \param bIsLastPacket indicates if this packet is the last one. //! //! This function acknowledges that the data was read from the endpoint's FIFO. //! The \e bIsLastPacket parameter is set to a \b true value if this is the @@ -2804,13 +2802,13 @@ USBHostEndpointDataAck(unsigned long ulBase, unsigned long ulEndpoint) //! data to put into the FIFO. //! \param ulSize is the amount of data to put into the FIFO. //! -//! This function will put the data from the \e pucData parameter into the FIFO -//! for this endpoint. If a packet is already pending for transmission then -//! this call will not put any of the data into the FIFO and will return -1. -//! Care should be taken to not write more data than can fit into the FIFO +//! This function puts the data from the \e pucData parameter into the FIFO +//! for this endpoint. If a packet is already pending for transmission, then +//! this call does not put any of the data into the FIFO and returns -1. Care +//! should be taken to not write more data than can fit into the FIFO //! allocated by the call to USBFIFOConfigSet(). //! -//! \return This call will return 0 on success, or -1 to indicate that the FIFO +//! \return This call returns 0 on success, or -1 to indicate that the FIFO //! is in use and cannot be written. // //***************************************************************************** @@ -2881,21 +2879,21 @@ USBEndpointDataPut(unsigned long ulBase, unsigned long ulEndpoint, //! \param ulEndpoint is the endpoint to access. //! \param ulTransType is set to indicate what type of data is being sent. //! -//! This function will start the transfer of data from the FIFO for a given -//! endpoint. This is necessary if the \b USB_EP_AUTO_SET bit was not enabled -//! for the endpoint. Setting the \e ulTransType parameter will allow the -//! appropriate signaling on the USB bus for the type of transaction being +//! This function starts the transfer of data from the FIFO for a given +//! endpoint. This function should be called if the \b USB_EP_AUTO_SET bit was +//! not enabled for the endpoint. Setting the \e ulTransType parameter allows +//! the appropriate signaling on the USB bus for the type of transaction being //! requested. The \e ulTransType parameter should be one of the following: //! -//! - USB_TRANS_OUT for OUT transaction on any endpoint in host mode. -//! - USB_TRANS_IN for IN transaction on any endpoint in device mode. -//! - USB_TRANS_IN_LAST for the last IN transactions on endpoint zero in a +//! - \b USB_TRANS_OUT for OUT transaction on any endpoint in host mode. +//! - \b USB_TRANS_IN for IN transaction on any endpoint in device mode. +//! - \b USB_TRANS_IN_LAST for the last IN transaction on endpoint zero in a //! sequence of IN transactions. -//! - USB_TRANS_SETUP for setup transactions on endpoint zero. -//! - USB_TRANS_STATUS for status results on endpoint zero. +//! - \b USB_TRANS_SETUP for setup transactions on endpoint zero. +//! - \b USB_TRANS_STATUS for status results on endpoint zero. //! -//! \return This call will return 0 on success, or -1 if a transmission is -//! already in progress. +//! \return This call returns 0 on success, or -1 if a transmission is already +//! in progress. // //***************************************************************************** long @@ -2905,7 +2903,7 @@ USBEndpointDataSend(unsigned long ulBase, unsigned long ulEndpoint, unsigned long ulTxPktRdy; // - // CHeck the arguments. + // Check the arguments. // ASSERT(ulBase == USB0_BASE); ASSERT((ulEndpoint == USB_EP_0) || (ulEndpoint == USB_EP_1) || @@ -2956,7 +2954,7 @@ USBEndpointDataSend(unsigned long ulBase, unsigned long ulEndpoint, //! \param ulEndpoint is the endpoint to access. //! \param ulFlags specifies if the IN or OUT endpoint should be accessed. //! -//! This function will force the controller to flush out the data in the FIFO. +//! This function forces the USB controller to flush out the data in the FIFO. //! The function can be called with either host or device controllers and //! requires the \e ulFlags parameter be one of \b USB_EP_HOST_OUT, //! \b USB_EP_HOST_IN, \b USB_EP_DEV_OUT, or \b USB_EP_DEV_IN. @@ -3043,9 +3041,9 @@ USBFIFOFlush(unsigned long ulBase, unsigned long ulEndpoint, //! \param ulBase specifies the USB module base address. //! \param ulEndpoint is the endpoint to access. //! -//! This function will schedule a request for an IN transaction. When the USB -//! device being communicated with responds the data, the data can be retrieved -//! by calling USBEndpointDataGet() or via a DMA transfer. +//! This function schedules a request for an IN transaction. When the USB +//! device being communicated with responds with the data, the data can be +//! retrieved by calling USBEndpointDataGet() or via a DMA transfer. //! //! \note This function should only be called in host mode and only for IN //! endpoints. @@ -3096,10 +3094,10 @@ USBHostRequestIN(unsigned long ulBase, unsigned long ulEndpoint) //! \param ulBase specifies the USB module base address. //! \param ulEndpoint is the endpoint to access. //! -//! This function will clear a previously scheduled IN transaction if it is +//! This function clears a previously scheduled IN transaction if it is //! still pending. This function should be used to safely disable any //! scheduled IN transactions if the endpoint specified by \e ulEndpoint -//! is reconfigured used for communications with other devices. +//! is reconfigured for communications with other devices. //! //! \note This function should only be called in host mode and only for IN //! endpoints. @@ -3149,11 +3147,12 @@ USBHostRequestINClear(unsigned long ulBase, unsigned long ulEndpoint) //! //! \param ulBase specifies the USB module base address. //! -//! This function is used to cause a request for an status IN transaction from +//! This function is used to cause a request for a status IN transaction from //! a device on endpoint zero. This function can only be used with endpoint //! zero as that is the only control endpoint that supports this ability. This -//! is used to complete the last phase of a control transaction to a device and -//! an interrupt is signaled when the status packet has been received. +//! function is used to complete the last phase of a control transaction to a +//! device and an interrupt is signaled when the status packet has been +//! received. //! //! \return None. // @@ -3183,9 +3182,9 @@ USBHostRequestStatus(unsigned long ulBase) //! endpoint. //! \param ulFlags determines if this is an IN or an OUT endpoint. //! -//! This function will set the functional address for a device that is using +//! This function configures the functional address for a device that is using //! this endpoint for communication. This \e ulAddr parameter is the address -//! of the target device that this endpoint is used to communicate with. The +//! of the target device that this endpoint is communicating with. The //! \e ulFlags parameter indicates if the IN or OUT endpoint should be set. //! //! \note This function should only be called in host mode. @@ -3284,7 +3283,7 @@ USBHostAddrGet(unsigned long ulBase, unsigned long ulEndpoint, //***************************************************************************** // -//! Set the hub address for the device that is connected to an endpoint. +//! Sets the hub address for the device that is connected to an endpoint. //! //! \param ulBase specifies the USB module base address. //! \param ulEndpoint is the endpoint to access. @@ -3293,10 +3292,10 @@ USBHostAddrGet(unsigned long ulBase, unsigned long ulEndpoint, //! port number in bits 0 through 6. //! \param ulFlags determines if this is an IN or an OUT endpoint. //! -//! This function will set the hub address for a device that is using this +//! This function configures the hub address for a device that is using this //! endpoint for communication. The \e ulFlags parameter determines if the -//! device address for the IN or the OUT endpoint is set by this call and sets -//! the speed of the downstream device. Valid values are one of \b +//! device address for the IN or the OUT endpoint is configured by this call +//! and sets the speed of the downstream device. Valid values are one of \b //! USB_EP_HOST_OUT or \b USB_EP_HOST_IN optionally ORed with \b //! USB_EP_SPEED_LOW. //! @@ -3341,9 +3340,9 @@ USBHostHubAddrSet(unsigned long ulBase, unsigned long ulEndpoint, } // - // Set the speed of communication for endpoint 0. This is done here since - // it will change on a transaction-by-transaction basis for EP0. For other - // endpoints, this is set in USBHostEndpointConfig(). + // Set the speed of communication for endpoint 0. This configuration is + // done here because it changes on a transaction-by-transaction basis for + // EP0. For other endpoints, this is set in USBHostEndpointConfig(). // if(ulEndpoint == USB_EP_0) { @@ -3360,13 +3359,13 @@ USBHostHubAddrSet(unsigned long ulBase, unsigned long ulEndpoint, //***************************************************************************** // -//! Get the current device hub address for this endpoint. +//! Gets the current device hub address for this endpoint. //! //! \param ulBase specifies the USB module base address. //! \param ulEndpoint is the endpoint to access. //! \param ulFlags determines if this is an IN or an OUT endpoint. //! -//! This function will return the current hub address that an endpoint is using +//! This function returns the current hub address that an endpoint is using //! to communicate with a device. The \e ulFlags parameter determines if the //! device address for the IN or OUT endpoint is returned. //! @@ -3420,7 +3419,7 @@ USBHostHubAddrGet(unsigned long ulBase, unsigned long ulEndpoint, //! \param ulFlags specifies the configuration of the power fault. //! //! This function controls how the USB controller uses its external power -//! control pins (USBnPFTL and USBnEPEN). The flags specify the power +//! control pins (USBnPFLT and USBnEPEN). The flags specify the power //! fault level sensitivity, the power fault action, and the power enable level //! and source. //! @@ -3435,7 +3434,7 @@ USBHostHubAddrGet(unsigned long ulBase, unsigned long ulEndpoint, //! //! - \b USB_HOST_PWRFLT_EP_NONE - No automatic action when power fault //! detected. -//! - \b USB_HOST_PWRFLT_EP_TRI - Automatically Tri-state the USBnEPEN pin on a +//! - \b USB_HOST_PWRFLT_EP_TRI - Automatically tri-state the USBnEPEN pin on a //! power fault. //! - \b USB_HOST_PWRFLT_EP_LOW - Automatically drive USBnEPEN pin low on a //! power fault. @@ -3444,21 +3443,23 @@ USBHostHubAddrGet(unsigned long ulBase, unsigned long ulEndpoint, //! //! One of the following can be selected as the power enable level and source: //! -//! - \b USB_HOST_PWREN_MAN_LOW - USBEPEN is driven low by the USB controller +//! - \b USB_HOST_PWREN_MAN_LOW - USBnEPEN is driven low by the USB controller //! when USBHostPwrEnable() is called. -//! - \b USB_HOST_PWREN_MAN_HIGH - USBEPEN is driven high by the USB controller -//! when USBHostPwrEnable() is called. -//! - \b USB_HOST_PWREN_AUTOLOW - USBEPEN is driven low by the USB controller +//! - \b USB_HOST_PWREN_MAN_HIGH - USBnEPEN is driven high by the USB +//! controller when USBHostPwrEnable() is +//! called. +//! - \b USB_HOST_PWREN_AUTOLOW - USBnEPEN is driven low by the USB controller //! automatically if USBOTGSessionRequest() has //! enabled a session. -//! - \b USB_HOST_PWREN_AUTOHIGH - USBEPEN is driven high by the USB controller -//! automatically if USBOTGSessionRequest() has -//! enabled a session. +//! - \b USB_HOST_PWREN_AUTOHIGH - USBnEPEN is driven high by the USB +//! controller automatically if +//! USBOTGSessionRequest() has enabled a +//! session. //! //! On devices that support the VBUS glitch filter, the //! \b USB_HOST_PWREN_FILTER can be added to ignore small, short drops in VBUS -//! level caused by high power consumption. This is mainly used to avoid -//! causing VBUS errors caused by devices with high in-rush current. +//! level caused by high power consumption. This feature is mainly used to +//! avoid causing VBUS errors caused by devices with high in-rush current. //! //! \note The following values have been deprecated and should no longer be //! used. @@ -3468,8 +3469,8 @@ USBHostHubAddrGet(unsigned long ulBase, unsigned long ulEndpoint, //! enabled. //! - \b USB_HOST_PWREN_VBLOW - Automatically drive USBnEPEN low when power is //! enabled. -//! - \b USB_HOST_PWREN_VBHIGH - Automatically drive USBnEPEN high when power is -//! enabled. +//! - \b USB_HOST_PWREN_VBHIGH - Automatically drive USBnEPEN high when power +//! is enabled. //! //! \note This function should only be called on microcontrollers that support //! host mode or OTG operation. @@ -3495,8 +3496,8 @@ USBHostPwrConfig(unsigned long ulBase, unsigned long ulFlags) HWREG(ulBase + USB_O_VDC) = ulFlags >> 16; // - // Set the power fault configuration as specified. This will not change - // whether fault detection is enabled or not. + // Set the power fault configuration as specified. This configuration + // does not change whether fault detection is enabled or not. // HWREGH(ulBase + USB_O_EPC) = (ulFlags | (HWREGH(ulBase + USB_O_EPC) & @@ -3511,7 +3512,7 @@ USBHostPwrConfig(unsigned long ulBase, unsigned long ulFlags) //! \param ulBase specifies the USB module base address. //! //! This function enables power fault detection in the USB controller. If the -//! USBPFLT pin is not in use this function should not be used. +//! USBnPFLT pin is not in use, this function should not be used. //! //! \note This function should only be called in host mode. //! @@ -3565,8 +3566,8 @@ USBHostPwrFaultDisable(unsigned long ulBase) //! //! \param ulBase specifies the USB module base address. //! -//! This function enables the USBEPEN signal to enable an external power supply -//! in host mode operation. +//! This function enables the USBnEPEN signal, which enables an external power +//! supply in host mode operation. //! //! \note This function should only be called in host mode. //! @@ -3593,8 +3594,8 @@ USBHostPwrEnable(unsigned long ulBase) //! //! \param ulBase specifies the USB module base address. //! -//! This function disables the USBEPEN signal to disable an external power -//! supply in host mode operation. +//! This function disables the USBnEPEN signal, which disables an external +//! power supply in host mode operation. //! //! \note This function should only be called in host mode. //! @@ -3649,7 +3650,7 @@ USBFrameNumberGet(unsigned long ulBase) //! //! This function is used in OTG mode to start a session request or end a //! session. If the \e bStart parameter is set to \b true, then this function -//! start a session and if it is \b false it will end a session. +//! starts a session and if it is \b false it ends a session. //! //! \return None. // @@ -3682,10 +3683,10 @@ USBOTGSessionRequest(unsigned long ulBase, tBoolean bStart) //! \param ulBase specifies the USB module base address. //! \param ulEndpoint specifies which endpoint's FIFO address to return. //! -//! This function returns the actual physical address of the FIFO. This is -//! needed when the USB is going to be used with the uDMA controller and the -//! source or destination address needs to be set to the physical FIFO address -//! for a given endpoint. +//! This function returns the actual physical address of the FIFO. This +//! address is needed when the USB is going to be used with the uDMA +//! controller and the source or destination address must be set to the +//! physical FIFO address for a given endpoint. //! //! \return None. // @@ -3710,7 +3711,7 @@ USBFIFOAddrGet(unsigned long ulBase, unsigned long ulEndpoint) //! //! For OTG controllers: //! -//! The function will return on of the following values on OTG controllers: +//! The function returns one of the following values on OTG controllers: //! \b USB_OTG_MODE_ASIDE_HOST, \b USB_OTG_MODE_ASIDE_DEV, //! \b USB_OTG_MODE_BSIDE_HOST, \b USB_OTG_MODE_BSIDE_DEV, //! \b USB_OTG_MODE_NONE. @@ -3725,15 +3726,15 @@ USBFIFOAddrGet(unsigned long ulBase, unsigned long ulEndpoint) //! on the B-side of the cable. //! //! \b USB_OTG_MODE_BSIDE_DEV indicates that the controller is in device mode -//! on the B-side of the cable. If and OTG session request is started with no -//! cable in place this is the default mode for the controller. +//! on the B-side of the cable. If an OTG session request is started with no +//! cable in place, this mode is the default. //! //! \b USB_OTG_MODE_NONE indicates that the controller is not attempting to //! determine its role in the system. //! //! For Dual Mode controllers: //! -//! The function will return on of the following values: +//! The function returns one of the following values: //! \b USB_DUAL_MODE_HOST, \b USB_DUAL_MODE_DEVICE, or //! \b USB_DUAL_MODE_NONE. //! @@ -3784,14 +3785,14 @@ USBModeGet(unsigned long ulBase) //! //! This function is used to configure which DMA channel to use with a given //! endpoint. Receive DMA channels can only be used with receive endpoints -//! and transmit DMA channels can only be used with transmit endpoints. This -//! allows the 3 receive and 3 transmit DMA channels to be mapped to any +//! and transmit DMA channels can only be used with transmit endpoints. As a +//! result, the 3 receive and 3 transmit DMA channels can be mapped to any //! endpoint other than 0. The values that should be passed into the //! \e ulChannel value are the UDMA_CHANNEL_USBEP* values defined in udma.h. //! //! \note This function only has an effect on microcontrollers that have the //! ability to change the DMA channel for an endpoint. Calling this function -//! on other devices will have no effect. +//! on other devices has no effect. //! //! \return None. //! @@ -3817,7 +3818,7 @@ USBEndpointDMAChannel(unsigned long ulBase, unsigned long ulEndpoint, ASSERT(ulChannel <= UDMA_CHANNEL_USBEP3TX); // - // The input select mask needs to be shifted into the correct position + // The input select mask must be shifted into the correct position // based on the channel. // ulMask = 0xf << (ulChannel * 4); @@ -3847,6 +3848,9 @@ USBEndpointDMAChannel(unsigned long ulBase, unsigned long ulEndpoint, //! //! This function changes the mode of the USB controller to host mode. //! +//! \note This function should only be called on microcontrollers that support +//! OTG operation and have the DEVMODOTG bit in the USBGPCS register. +//! //! \return None. // //***************************************************************************** @@ -3875,6 +3879,9 @@ USBHostMode(unsigned long ulBase) //! //! This function changes the mode of the USB controller to device mode. //! +//! \note This function should only be called on microcontrollers that support +//! OTG operation and have the DEVMODOTG bit in the USBGPCS register. +//! //! \return None. // //***************************************************************************** @@ -3899,7 +3906,7 @@ USBDevMode(unsigned long ulBase) //! \param ulBase specifies the USB module base address. //! //! This function changes the mode of the USB controller to OTG mode. This -//! is only valid on microcontrollers that have the OTG capabilities. +//! function is only valid on microcontrollers that have the OTG capabilities. //! //! \return None. // @@ -3925,8 +3932,8 @@ USBOTGMode(unsigned long ulBase) //! //! \param ulBase specifies the USB module base address. //! -//! This function will power off the USB PHY, reducing the current consuption -//! of the device. While in the powered off state, the USB controller is +//! This function powers off the USB PHY, reducing the current consuption +//! of the device. While in the powered-off state, the USB controller is //! unable to operate. //! //! \return None. @@ -3947,9 +3954,9 @@ USBPHYPowerOff(unsigned long ulBase) //! //! \param ulBase specifies the USB module base address. //! -//! This function will power on the USB PHY, enabling it return to normal -//! operation. By default, the PHY is powered on, so this function only needs -//! to be called if USBPHYPowerOff() has previously been called. +//! This function powers on the USB PHY, enabling it return to normal +//! operation. By default, the PHY is powered on, so this function should +//! only be called if USBPHYPowerOff() has previously been called. //! //! \return None. // @@ -3964,6 +3971,7 @@ USBPHYPowerOn(unsigned long ulBase) HWREGB(ulBase + USB_O_POWER) &= ~USB_POWER_PWRDNPHY; } + //***************************************************************************** // // Close the Doxygen group. diff --git a/bsp/lm4f232/Libraries/driverlib/usb.h b/bsp/lm4f232/Libraries/driverlib/usb.h index b57af1c309..66a94d0876 100644 --- a/bsp/lm4f232/Libraries/driverlib/usb.h +++ b/bsp/lm4f232/Libraries/driverlib/usb.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/driverlib/watchdog.c b/bsp/lm4f232/Libraries/driverlib/watchdog.c index 8a72f68254..b3961c9494 100644 --- a/bsp/lm4f232/Libraries/driverlib/watchdog.c +++ b/bsp/lm4f232/Libraries/driverlib/watchdog.c @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -43,9 +43,9 @@ //! //! \param ulBase is the base address of the watchdog timer module. //! -//! This will check to see if the watchdog timer is enabled. +//! This function checks to see if the watchdog timer is enabled. //! -//! \return Returns \b true if the watchdog timer is enabled, and \b false +//! \return Returns \b true if the watchdog timer is enabled and \b false //! if it is not. // //***************************************************************************** @@ -69,10 +69,9 @@ WatchdogRunning(unsigned long ulBase) //! //! \param ulBase is the base address of the watchdog timer module. //! -//! This will enable the watchdog timer counter and interrupt. +//! This function enables the watchdog timer counter and interrupt. //! -//! \note This function will have no effect if the watchdog timer has -//! been locked. +//! \note This function has no effect if the watchdog timer has been locked. //! //! \sa WatchdogLock(), WatchdogUnlock() //! @@ -99,12 +98,11 @@ WatchdogEnable(unsigned long ulBase) //! //! \param ulBase is the base address of the watchdog timer module. //! -//! Enables the capability of the watchdog timer to issue a reset to the -//! processor upon a second timeout condition. -//! -//! \note This function will have no effect if the watchdog timer has -//! been locked. +//! This function enables the capability of the watchdog timer to issue a reset +//! to the processor after a second timeout condition. //! +//! \note This function has no effect if the watchdog timer has been locked. +//! //! \sa WatchdogLock(), WatchdogUnlock() //! //! \return None. @@ -130,11 +128,10 @@ WatchdogResetEnable(unsigned long ulBase) //! //! \param ulBase is the base address of the watchdog timer module. //! -//! Disables the capability of the watchdog timer to issue a reset to the -//! processor upon a second timeout condition. +//! This function disables the capability of the watchdog timer to issue a +//! reset to the processor after a second timeout condition. //! -//! \note This function will have no effect if the watchdog timer has -//! been locked. +//! \note This function has no effect if the watchdog timer has been locked. //! //! \sa WatchdogLock(), WatchdogUnlock() //! @@ -161,7 +158,8 @@ WatchdogResetDisable(unsigned long ulBase) //! //! \param ulBase is the base address of the watchdog timer module. //! -//! Locks out write access to the watchdog timer configuration registers. +//! This function locks out write access to the watchdog timer configuration +//! registers. //! //! \return None. // @@ -187,7 +185,8 @@ WatchdogLock(unsigned long ulBase) //! //! \param ulBase is the base address of the watchdog timer module. //! -//! Enables write access to the watchdog timer configuration registers. +//! This function enables write access to the watchdog timer configuration +//! registers. //! //! \return None. // @@ -212,7 +211,7 @@ WatchdogUnlock(unsigned long ulBase) //! //! \param ulBase is the base address of the watchdog timer module. //! -//! Returns the lock state of the watchdog timer registers. +//! This function returns the lock state of the watchdog timer registers. //! //! \return Returns \b true if the watchdog timer registers are locked, and //! \b false if they are not locked. @@ -239,14 +238,13 @@ WatchdogLockState(unsigned long ulBase) //! \param ulBase is the base address of the watchdog timer module. //! \param ulLoadVal is the load value for the watchdog timer. //! -//! This function sets the value to load into the watchdog timer when the count -//! reaches zero for the first time; if the watchdog timer is running when this -//! function is called, then the value is immediately loaded into the watchdog -//! timer counter. If the \e ulLoadVal parameter is 0, then an interrupt is -//! immediately generated. +//! This function configures the value to load into the watchdog timer when the +//! count reaches zero for the first time; if the watchdog timer is running +//! when this function is called, then the value is immediately loaded into the +//! watchdog timer counter. If the \e ulLoadVal parameter is 0, then an +//! interrupt is immediately generated. //! -//! \note This function will have no effect if the watchdog timer has -//! been locked. +//! \note This function has no effect if the watchdog timer has been locked. //! //! \sa WatchdogLock(), WatchdogUnlock(), WatchdogReloadGet() //! @@ -322,25 +320,25 @@ WatchdogValueGet(unsigned long ulBase) //***************************************************************************** // -//! Registers an interrupt handler for watchdog timer interrupt. +//! Registers an interrupt handler for the watchdog timer interrupt. //! //! \param ulBase is the base address of the watchdog timer module. //! \param pfnHandler is a pointer to the function to be called when the //! watchdog timer interrupt occurs. //! //! This function does the actual registering of the interrupt handler. This -//! will enable the global interrupt in the interrupt controller; the watchdog -//! timer interrupt must be enabled via WatchdogEnable(). It is the interrupt -//! handler's responsibility to clear the interrupt source via +//! function also enables the global interrupt in the interrupt controller; the +//! watchdog timer interrupt must be enabled via WatchdogEnable(). It is the +//! interrupt handler's responsibility to clear the interrupt source via //! WatchdogIntClear(). //! //! \sa IntRegister() for important information about registering interrupt //! handlers. //! //! \note For parts with a watchdog timer module that has the ability to -//! generate an NMI instead of a standard interrupt, this function will -//! register the standard watchdog interrupt handler. To register the NMI -//! watchdog handler, use IntRegister() to register the handler for the +//! generate an NMI instead of a standard interrupt, this function registers +//! the standard watchdog interrupt handler. To register the NMI watchdog +//! handler, use IntRegister() to register the handler for the //! \b FAULT_NMI interrupt. //! //! \return None. @@ -372,17 +370,17 @@ WatchdogIntRegister(unsigned long ulBase, void (*pfnHandler)(void)) //! \param ulBase is the base address of the watchdog timer module. //! //! This function does the actual unregistering of the interrupt handler. This -//! function will clear the handler to be called when a watchdog timer -//! interrupt occurs. This will also mask off the interrupt in the interrupt +//! function clears the handler to be called when a watchdog timer interrupt +//! occurs. This function also masks off the interrupt in the interrupt //! controller so that the interrupt handler no longer is called. //! //! \sa IntRegister() for important information about registering interrupt //! handlers. //! //! \note For parts with a watchdog timer module that has the ability to -//! generate an NMI instead of a standard interrupt, this function will -//! unregister the standard watchdog interrupt handler. To unregister the NMI -//! watchdog handler, use IntUnregister() to unregister the handler for the +//! generate an NMI instead of a standard interrupt, this function unregisters +//! the standard watchdog interrupt handler. To unregister the NMI watchdog +//! handler, use IntUnregister() to unregister the handler for the //! \b FAULT_NMI interrupt. //! //! \return None. @@ -413,10 +411,9 @@ WatchdogIntUnregister(unsigned long ulBase) //! //! \param ulBase is the base address of the watchdog timer module. //! -//! Enables the watchdog timer interrupt. +//! This function enables the watchdog timer interrupt. //! -//! \note This function will have no effect if the watchdog timer has -//! been locked. +//! \note This function has no effect if the watchdog timer has been locked. //! //! \sa WatchdogLock(), WatchdogUnlock(), WatchdogEnable() //! @@ -445,9 +442,9 @@ WatchdogIntEnable(unsigned long ulBase) //! \param bMasked is \b false if the raw interrupt status is required and //! \b true if the masked interrupt status is required. //! -//! This returns the interrupt status for the watchdog timer module. Either -//! the raw interrupt status or the status of interrupt that is allowed to -//! reflect to the processor can be returned. +//! This function returns the interrupt status for the watchdog timer module. +//! Either the raw interrupt status or the status of interrupt that is allowed +//! to reflect to the processor can be returned. //! //! \return Returns the current interrupt status, where a 1 indicates that the //! watchdog interrupt is active, and a 0 indicates that it is not active. @@ -484,7 +481,7 @@ WatchdogIntStatus(unsigned long ulBase, tBoolean bMasked) //! The watchdog timer interrupt source is cleared, so that it no longer //! asserts. //! -//! \note Because there is a write buffer in the Cortex-M3 processor, it may +//! \note Because there is a write buffer in the Cortex-M processor, it may //! take several clock cycles before the interrupt source is actually cleared. //! Therefore, it is recommended that the interrupt source be cleared early in //! the interrupt handler (as opposed to the very last action) to avoid @@ -559,9 +556,9 @@ WatchdogIntTypeSet(unsigned long ulBase, unsigned long ulType) //! This function allows the watchdog timer to stop counting when the processor //! is stopped by the debugger. By doing so, the watchdog is prevented from //! expiring (typically almost immediately from a human time perspective) and -//! resetting the system (if reset is enabled). The watchdog will instead -//! expired after the appropriate number of processor cycles have been executed -//! while debugging (or at the appropriate time after the processor has been +//! resetting the system (if reset is enabled). The watchdog instead expires +//! after the appropriate number of processor cycles have been executed while +//! debugging (or at the appropriate time after the processor has been //! restarted). //! //! \return None. diff --git a/bsp/lm4f232/Libraries/driverlib/watchdog.h b/bsp/lm4f232/Libraries/driverlib/watchdog.h index ca159a70b4..5efdcdbb23 100644 --- a/bsp/lm4f232/Libraries/driverlib/watchdog.h +++ b/bsp/lm4f232/Libraries/driverlib/watchdog.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/inc/asmdefs.h b/bsp/lm4f232/Libraries/inc/asmdefs.h index 38fe4b7484..cc9b5ef2f4 100644 --- a/bsp/lm4f232/Libraries/inc/asmdefs.h +++ b/bsp/lm4f232/Libraries/inc/asmdefs.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/inc/cr_project.xml b/bsp/lm4f232/Libraries/inc/cr_project.xml deleted file mode 100644 index 7ba1836aeb..0000000000 --- a/bsp/lm4f232/Libraries/inc/cr_project.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - {.*\.(ewd|ewp|eww|icf|Opt|sct|sgxx|Uv2|uvopt|uvproj|cmd)} - - diff --git a/bsp/lm4f232/Libraries/inc/hw_adc.h b/bsp/lm4f232/Libraries/inc/hw_adc.h index 332a23842f..4e02573cf8 100644 --- a/bsp/lm4f232/Libraries/inc/hw_adc.h +++ b/bsp/lm4f232/Libraries/inc/hw_adc.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/inc/hw_can.h b/bsp/lm4f232/Libraries/inc/hw_can.h index 8f608ae7e0..c1b3ae9a7c 100644 --- a/bsp/lm4f232/Libraries/inc/hw_can.h +++ b/bsp/lm4f232/Libraries/inc/hw_can.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/inc/hw_comp.h b/bsp/lm4f232/Libraries/inc/hw_comp.h index 234d57da4f..18e3b8262a 100644 --- a/bsp/lm4f232/Libraries/inc/hw_comp.h +++ b/bsp/lm4f232/Libraries/inc/hw_comp.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/inc/hw_eeprom.h b/bsp/lm4f232/Libraries/inc/hw_eeprom.h index 67a59c026a..6428bdecc8 100644 --- a/bsp/lm4f232/Libraries/inc/hw_eeprom.h +++ b/bsp/lm4f232/Libraries/inc/hw_eeprom.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/inc/hw_epi.h b/bsp/lm4f232/Libraries/inc/hw_epi.h index a34dabafd7..ab7d076ca2 100644 --- a/bsp/lm4f232/Libraries/inc/hw_epi.h +++ b/bsp/lm4f232/Libraries/inc/hw_epi.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/inc/hw_ethernet.h b/bsp/lm4f232/Libraries/inc/hw_ethernet.h index 6461772ebd..91da8867c1 100644 --- a/bsp/lm4f232/Libraries/inc/hw_ethernet.h +++ b/bsp/lm4f232/Libraries/inc/hw_ethernet.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/inc/hw_fan.h b/bsp/lm4f232/Libraries/inc/hw_fan.h index 6df7067e59..22f9f05553 100644 --- a/bsp/lm4f232/Libraries/inc/hw_fan.h +++ b/bsp/lm4f232/Libraries/inc/hw_fan.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/inc/hw_flash.h b/bsp/lm4f232/Libraries/inc/hw_flash.h index 2a72db116a..7a8c0697b3 100644 --- a/bsp/lm4f232/Libraries/inc/hw_flash.h +++ b/bsp/lm4f232/Libraries/inc/hw_flash.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/inc/hw_gpio.h b/bsp/lm4f232/Libraries/inc/hw_gpio.h index abeeeb4d3a..b2eaa072d9 100644 --- a/bsp/lm4f232/Libraries/inc/hw_gpio.h +++ b/bsp/lm4f232/Libraries/inc/hw_gpio.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/inc/hw_hibernate.h b/bsp/lm4f232/Libraries/inc/hw_hibernate.h index 37a76db3fc..46de994bc5 100644 --- a/bsp/lm4f232/Libraries/inc/hw_hibernate.h +++ b/bsp/lm4f232/Libraries/inc/hw_hibernate.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/inc/hw_i2c.h b/bsp/lm4f232/Libraries/inc/hw_i2c.h index ebeb9205b2..dccfdafada 100644 --- a/bsp/lm4f232/Libraries/inc/hw_i2c.h +++ b/bsp/lm4f232/Libraries/inc/hw_i2c.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/inc/hw_i2s.h b/bsp/lm4f232/Libraries/inc/hw_i2s.h index e0ba3d40c7..d139a79834 100644 --- a/bsp/lm4f232/Libraries/inc/hw_i2s.h +++ b/bsp/lm4f232/Libraries/inc/hw_i2s.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/inc/hw_ints.h b/bsp/lm4f232/Libraries/inc/hw_ints.h index 3d45969978..e2becd15b8 100644 --- a/bsp/lm4f232/Libraries/inc/hw_ints.h +++ b/bsp/lm4f232/Libraries/inc/hw_ints.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/inc/hw_lpc.h b/bsp/lm4f232/Libraries/inc/hw_lpc.h index 28bad99536..d39523f069 100644 --- a/bsp/lm4f232/Libraries/inc/hw_lpc.h +++ b/bsp/lm4f232/Libraries/inc/hw_lpc.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/inc/hw_memmap.h b/bsp/lm4f232/Libraries/inc/hw_memmap.h index af71904e48..1a50ad9f2b 100644 --- a/bsp/lm4f232/Libraries/inc/hw_memmap.h +++ b/bsp/lm4f232/Libraries/inc/hw_memmap.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/inc/hw_nvic.h b/bsp/lm4f232/Libraries/inc/hw_nvic.h index 1fa6c0206e..cdb06304b8 100644 --- a/bsp/lm4f232/Libraries/inc/hw_nvic.h +++ b/bsp/lm4f232/Libraries/inc/hw_nvic.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/inc/hw_peci.h b/bsp/lm4f232/Libraries/inc/hw_peci.h index f4d12059b1..012a0c821e 100644 --- a/bsp/lm4f232/Libraries/inc/hw_peci.h +++ b/bsp/lm4f232/Libraries/inc/hw_peci.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/inc/hw_pwm.h b/bsp/lm4f232/Libraries/inc/hw_pwm.h index 268aaf3140..82d55e9198 100644 --- a/bsp/lm4f232/Libraries/inc/hw_pwm.h +++ b/bsp/lm4f232/Libraries/inc/hw_pwm.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/inc/hw_qei.h b/bsp/lm4f232/Libraries/inc/hw_qei.h index 7d08aeede8..0348852ffe 100644 --- a/bsp/lm4f232/Libraries/inc/hw_qei.h +++ b/bsp/lm4f232/Libraries/inc/hw_qei.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/inc/hw_ssi.h b/bsp/lm4f232/Libraries/inc/hw_ssi.h index dd946bfe93..40be6a6de3 100644 --- a/bsp/lm4f232/Libraries/inc/hw_ssi.h +++ b/bsp/lm4f232/Libraries/inc/hw_ssi.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/inc/hw_sysctl.h b/bsp/lm4f232/Libraries/inc/hw_sysctl.h index 4cdd345f16..34ae0b5f21 100644 --- a/bsp/lm4f232/Libraries/inc/hw_sysctl.h +++ b/bsp/lm4f232/Libraries/inc/hw_sysctl.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/inc/hw_sysexc.h b/bsp/lm4f232/Libraries/inc/hw_sysexc.h index 4b5a9648d4..4dce20dec3 100644 --- a/bsp/lm4f232/Libraries/inc/hw_sysexc.h +++ b/bsp/lm4f232/Libraries/inc/hw_sysexc.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/inc/hw_timer.h b/bsp/lm4f232/Libraries/inc/hw_timer.h index 68ecad9809..b1d35979a8 100644 --- a/bsp/lm4f232/Libraries/inc/hw_timer.h +++ b/bsp/lm4f232/Libraries/inc/hw_timer.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/inc/hw_types.h b/bsp/lm4f232/Libraries/inc/hw_types.h index ab96c422e9..f08046f45a 100644 --- a/bsp/lm4f232/Libraries/inc/hw_types.h +++ b/bsp/lm4f232/Libraries/inc/hw_types.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/inc/hw_uart.h b/bsp/lm4f232/Libraries/inc/hw_uart.h index 0bacfa31b3..daf55d1312 100644 --- a/bsp/lm4f232/Libraries/inc/hw_uart.h +++ b/bsp/lm4f232/Libraries/inc/hw_uart.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/inc/hw_udma.h b/bsp/lm4f232/Libraries/inc/hw_udma.h index 11f14a83de..59466e6eca 100644 --- a/bsp/lm4f232/Libraries/inc/hw_udma.h +++ b/bsp/lm4f232/Libraries/inc/hw_udma.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/inc/hw_usb.h b/bsp/lm4f232/Libraries/inc/hw_usb.h index 763f9243bc..abee8349bc 100644 --- a/bsp/lm4f232/Libraries/inc/hw_usb.h +++ b/bsp/lm4f232/Libraries/inc/hw_usb.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/inc/hw_watchdog.h b/bsp/lm4f232/Libraries/inc/hw_watchdog.h index 7fca54f31d..d00c90240d 100644 --- a/bsp/lm4f232/Libraries/inc/hw_watchdog.h +++ b/bsp/lm4f232/Libraries/inc/hw_watchdog.h @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 8049 of the Stellaris Firmware Development Package. +// This is part of revision 8264 of the Stellaris Firmware Development Package. // //***************************************************************************** diff --git a/bsp/lm4f232/Libraries/inc/lm4f232h5qd.h b/bsp/lm4f232/Libraries/inc/lm4f232h5qd.h deleted file mode 100644 index 1728f3ee56..0000000000 --- a/bsp/lm4f232/Libraries/inc/lm4f232h5qd.h +++ /dev/null @@ -1,12986 +0,0 @@ -//***************************************************************************** -// -// lm4f232h5qd.h - LM4F232H5QD Register Definitions -// -// Copyright (c) 2011 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 8049 of the Stellaris Firmware Development Package. -// -//***************************************************************************** - -#ifndef __LM4F232H5QD_H__ -#define __LM4F232H5QD_H__ - -//***************************************************************************** -// -// Watchdog Timer registers (WATCHDOG0) -// -//***************************************************************************** -#define WATCHDOG0_LOAD_R (*((volatile unsigned long *)0x40000000)) -#define WATCHDOG0_VALUE_R (*((volatile unsigned long *)0x40000004)) -#define WATCHDOG0_CTL_R (*((volatile unsigned long *)0x40000008)) -#define WATCHDOG0_ICR_R (*((volatile unsigned long *)0x4000000C)) -#define WATCHDOG0_RIS_R (*((volatile unsigned long *)0x40000010)) -#define WATCHDOG0_MIS_R (*((volatile unsigned long *)0x40000014)) -#define WATCHDOG0_TEST_R (*((volatile unsigned long *)0x40000418)) -#define WATCHDOG0_LOCK_R (*((volatile unsigned long *)0x40000C00)) - -//***************************************************************************** -// -// Watchdog Timer registers (WATCHDOG1) -// -//***************************************************************************** -#define WATCHDOG1_LOAD_R (*((volatile unsigned long *)0x40001000)) -#define WATCHDOG1_VALUE_R (*((volatile unsigned long *)0x40001004)) -#define WATCHDOG1_CTL_R (*((volatile unsigned long *)0x40001008)) -#define WATCHDOG1_ICR_R (*((volatile unsigned long *)0x4000100C)) -#define WATCHDOG1_RIS_R (*((volatile unsigned long *)0x40001010)) -#define WATCHDOG1_MIS_R (*((volatile unsigned long *)0x40001014)) -#define WATCHDOG1_TEST_R (*((volatile unsigned long *)0x40001418)) -#define WATCHDOG1_LOCK_R (*((volatile unsigned long *)0x40001C00)) - -//***************************************************************************** -// -// GPIO registers (PORTA) -// -//***************************************************************************** -#define GPIO_PORTA_DATA_BITS_R ((volatile unsigned long *)0x40004000) -#define GPIO_PORTA_DATA_R (*((volatile unsigned long *)0x400043FC)) -#define GPIO_PORTA_DIR_R (*((volatile unsigned long *)0x40004400)) -#define GPIO_PORTA_IS_R (*((volatile unsigned long *)0x40004404)) -#define GPIO_PORTA_IBE_R (*((volatile unsigned long *)0x40004408)) -#define GPIO_PORTA_IEV_R (*((volatile unsigned long *)0x4000440C)) -#define GPIO_PORTA_IM_R (*((volatile unsigned long *)0x40004410)) -#define GPIO_PORTA_RIS_R (*((volatile unsigned long *)0x40004414)) -#define GPIO_PORTA_MIS_R (*((volatile unsigned long *)0x40004418)) -#define GPIO_PORTA_ICR_R (*((volatile unsigned long *)0x4000441C)) -#define GPIO_PORTA_AFSEL_R (*((volatile unsigned long *)0x40004420)) -#define GPIO_PORTA_DR2R_R (*((volatile unsigned long *)0x40004500)) -#define GPIO_PORTA_DR4R_R (*((volatile unsigned long *)0x40004504)) -#define GPIO_PORTA_DR8R_R (*((volatile unsigned long *)0x40004508)) -#define GPIO_PORTA_ODR_R (*((volatile unsigned long *)0x4000450C)) -#define GPIO_PORTA_PUR_R (*((volatile unsigned long *)0x40004510)) -#define GPIO_PORTA_PDR_R (*((volatile unsigned long *)0x40004514)) -#define GPIO_PORTA_SLR_R (*((volatile unsigned long *)0x40004518)) -#define GPIO_PORTA_DEN_R (*((volatile unsigned long *)0x4000451C)) -#define GPIO_PORTA_LOCK_R (*((volatile unsigned long *)0x40004520)) -#define GPIO_PORTA_CR_R (*((volatile unsigned long *)0x40004524)) -#define GPIO_PORTA_AMSEL_R (*((volatile unsigned long *)0x40004528)) -#define GPIO_PORTA_PCTL_R (*((volatile unsigned long *)0x4000452C)) -#define GPIO_PORTA_ADCCTL_R (*((volatile unsigned long *)0x40004530)) -#define GPIO_PORTA_DMACTL_R (*((volatile unsigned long *)0x40004534)) -#define GPIO_PORTA_SI_R (*((volatile unsigned long *)0x40004538)) - -//***************************************************************************** -// -// GPIO registers (PORTB) -// -//***************************************************************************** -#define GPIO_PORTB_DATA_BITS_R ((volatile unsigned long *)0x40005000) -#define GPIO_PORTB_DATA_R (*((volatile unsigned long *)0x400053FC)) -#define GPIO_PORTB_DIR_R (*((volatile unsigned long *)0x40005400)) -#define GPIO_PORTB_IS_R (*((volatile unsigned long *)0x40005404)) -#define GPIO_PORTB_IBE_R (*((volatile unsigned long *)0x40005408)) -#define GPIO_PORTB_IEV_R (*((volatile unsigned long *)0x4000540C)) -#define GPIO_PORTB_IM_R (*((volatile unsigned long *)0x40005410)) -#define GPIO_PORTB_RIS_R (*((volatile unsigned long *)0x40005414)) -#define GPIO_PORTB_MIS_R (*((volatile unsigned long *)0x40005418)) -#define GPIO_PORTB_ICR_R (*((volatile unsigned long *)0x4000541C)) -#define GPIO_PORTB_AFSEL_R (*((volatile unsigned long *)0x40005420)) -#define GPIO_PORTB_DR2R_R (*((volatile unsigned long *)0x40005500)) -#define GPIO_PORTB_DR4R_R (*((volatile unsigned long *)0x40005504)) -#define GPIO_PORTB_DR8R_R (*((volatile unsigned long *)0x40005508)) -#define GPIO_PORTB_ODR_R (*((volatile unsigned long *)0x4000550C)) -#define GPIO_PORTB_PUR_R (*((volatile unsigned long *)0x40005510)) -#define GPIO_PORTB_PDR_R (*((volatile unsigned long *)0x40005514)) -#define GPIO_PORTB_SLR_R (*((volatile unsigned long *)0x40005518)) -#define GPIO_PORTB_DEN_R (*((volatile unsigned long *)0x4000551C)) -#define GPIO_PORTB_LOCK_R (*((volatile unsigned long *)0x40005520)) -#define GPIO_PORTB_CR_R (*((volatile unsigned long *)0x40005524)) -#define GPIO_PORTB_AMSEL_R (*((volatile unsigned long *)0x40005528)) -#define GPIO_PORTB_PCTL_R (*((volatile unsigned long *)0x4000552C)) -#define GPIO_PORTB_ADCCTL_R (*((volatile unsigned long *)0x40005530)) -#define GPIO_PORTB_DMACTL_R (*((volatile unsigned long *)0x40005534)) -#define GPIO_PORTB_SI_R (*((volatile unsigned long *)0x40005538)) - -//***************************************************************************** -// -// GPIO registers (PORTC) -// -//***************************************************************************** -#define GPIO_PORTC_DATA_BITS_R ((volatile unsigned long *)0x40006000) -#define GPIO_PORTC_DATA_R (*((volatile unsigned long *)0x400063FC)) -#define GPIO_PORTC_DIR_R (*((volatile unsigned long *)0x40006400)) -#define GPIO_PORTC_IS_R (*((volatile unsigned long *)0x40006404)) -#define GPIO_PORTC_IBE_R (*((volatile unsigned long *)0x40006408)) -#define GPIO_PORTC_IEV_R (*((volatile unsigned long *)0x4000640C)) -#define GPIO_PORTC_IM_R (*((volatile unsigned long *)0x40006410)) -#define GPIO_PORTC_RIS_R (*((volatile unsigned long *)0x40006414)) -#define GPIO_PORTC_MIS_R (*((volatile unsigned long *)0x40006418)) -#define GPIO_PORTC_ICR_R (*((volatile unsigned long *)0x4000641C)) -#define GPIO_PORTC_AFSEL_R (*((volatile unsigned long *)0x40006420)) -#define GPIO_PORTC_DR2R_R (*((volatile unsigned long *)0x40006500)) -#define GPIO_PORTC_DR4R_R (*((volatile unsigned long *)0x40006504)) -#define GPIO_PORTC_DR8R_R (*((volatile unsigned long *)0x40006508)) -#define GPIO_PORTC_ODR_R (*((volatile unsigned long *)0x4000650C)) -#define GPIO_PORTC_PUR_R (*((volatile unsigned long *)0x40006510)) -#define GPIO_PORTC_PDR_R (*((volatile unsigned long *)0x40006514)) -#define GPIO_PORTC_SLR_R (*((volatile unsigned long *)0x40006518)) -#define GPIO_PORTC_DEN_R (*((volatile unsigned long *)0x4000651C)) -#define GPIO_PORTC_LOCK_R (*((volatile unsigned long *)0x40006520)) -#define GPIO_PORTC_CR_R (*((volatile unsigned long *)0x40006524)) -#define GPIO_PORTC_AMSEL_R (*((volatile unsigned long *)0x40006528)) -#define GPIO_PORTC_PCTL_R (*((volatile unsigned long *)0x4000652C)) -#define GPIO_PORTC_ADCCTL_R (*((volatile unsigned long *)0x40006530)) -#define GPIO_PORTC_DMACTL_R (*((volatile unsigned long *)0x40006534)) -#define GPIO_PORTC_SI_R (*((volatile unsigned long *)0x40006538)) - -//***************************************************************************** -// -// GPIO registers (PORTD) -// -//***************************************************************************** -#define GPIO_PORTD_DATA_BITS_R ((volatile unsigned long *)0x40007000) -#define GPIO_PORTD_DATA_R (*((volatile unsigned long *)0x400073FC)) -#define GPIO_PORTD_DIR_R (*((volatile unsigned long *)0x40007400)) -#define GPIO_PORTD_IS_R (*((volatile unsigned long *)0x40007404)) -#define GPIO_PORTD_IBE_R (*((volatile unsigned long *)0x40007408)) -#define GPIO_PORTD_IEV_R (*((volatile unsigned long *)0x4000740C)) -#define GPIO_PORTD_IM_R (*((volatile unsigned long *)0x40007410)) -#define GPIO_PORTD_RIS_R (*((volatile unsigned long *)0x40007414)) -#define GPIO_PORTD_MIS_R (*((volatile unsigned long *)0x40007418)) -#define GPIO_PORTD_ICR_R (*((volatile unsigned long *)0x4000741C)) -#define GPIO_PORTD_AFSEL_R (*((volatile unsigned long *)0x40007420)) -#define GPIO_PORTD_DR2R_R (*((volatile unsigned long *)0x40007500)) -#define GPIO_PORTD_DR4R_R (*((volatile unsigned long *)0x40007504)) -#define GPIO_PORTD_DR8R_R (*((volatile unsigned long *)0x40007508)) -#define GPIO_PORTD_ODR_R (*((volatile unsigned long *)0x4000750C)) -#define GPIO_PORTD_PUR_R (*((volatile unsigned long *)0x40007510)) -#define GPIO_PORTD_PDR_R (*((volatile unsigned long *)0x40007514)) -#define GPIO_PORTD_SLR_R (*((volatile unsigned long *)0x40007518)) -#define GPIO_PORTD_DEN_R (*((volatile unsigned long *)0x4000751C)) -#define GPIO_PORTD_LOCK_R (*((volatile unsigned long *)0x40007520)) -#define GPIO_PORTD_CR_R (*((volatile unsigned long *)0x40007524)) -#define GPIO_PORTD_AMSEL_R (*((volatile unsigned long *)0x40007528)) -#define GPIO_PORTD_PCTL_R (*((volatile unsigned long *)0x4000752C)) -#define GPIO_PORTD_ADCCTL_R (*((volatile unsigned long *)0x40007530)) -#define GPIO_PORTD_DMACTL_R (*((volatile unsigned long *)0x40007534)) -#define GPIO_PORTD_SI_R (*((volatile unsigned long *)0x40007538)) - -//***************************************************************************** -// -// SSI registers (SSI0) -// -//***************************************************************************** -#define SSI0_CR0_R (*((volatile unsigned long *)0x40008000)) -#define SSI0_CR1_R (*((volatile unsigned long *)0x40008004)) -#define SSI0_DR_R (*((volatile unsigned long *)0x40008008)) -#define SSI0_SR_R (*((volatile unsigned long *)0x4000800C)) -#define SSI0_CPSR_R (*((volatile unsigned long *)0x40008010)) -#define SSI0_IM_R (*((volatile unsigned long *)0x40008014)) -#define SSI0_RIS_R (*((volatile unsigned long *)0x40008018)) -#define SSI0_MIS_R (*((volatile unsigned long *)0x4000801C)) -#define SSI0_ICR_R (*((volatile unsigned long *)0x40008020)) -#define SSI0_DMACTL_R (*((volatile unsigned long *)0x40008024)) -#define SSI0_CC_R (*((volatile unsigned long *)0x40008FC8)) - -//***************************************************************************** -// -// SSI registers (SSI1) -// -//***************************************************************************** -#define SSI1_CR0_R (*((volatile unsigned long *)0x40009000)) -#define SSI1_CR1_R (*((volatile unsigned long *)0x40009004)) -#define SSI1_DR_R (*((volatile unsigned long *)0x40009008)) -#define SSI1_SR_R (*((volatile unsigned long *)0x4000900C)) -#define SSI1_CPSR_R (*((volatile unsigned long *)0x40009010)) -#define SSI1_IM_R (*((volatile unsigned long *)0x40009014)) -#define SSI1_RIS_R (*((volatile unsigned long *)0x40009018)) -#define SSI1_MIS_R (*((volatile unsigned long *)0x4000901C)) -#define SSI1_ICR_R (*((volatile unsigned long *)0x40009020)) -#define SSI1_DMACTL_R (*((volatile unsigned long *)0x40009024)) -#define SSI1_CC_R (*((volatile unsigned long *)0x40009FC8)) - -//***************************************************************************** -// -// SSI registers (SSI2) -// -//***************************************************************************** -#define SSI2_CR0_R (*((volatile unsigned long *)0x4000A000)) -#define SSI2_CR1_R (*((volatile unsigned long *)0x4000A004)) -#define SSI2_DR_R (*((volatile unsigned long *)0x4000A008)) -#define SSI2_SR_R (*((volatile unsigned long *)0x4000A00C)) -#define SSI2_CPSR_R (*((volatile unsigned long *)0x4000A010)) -#define SSI2_IM_R (*((volatile unsigned long *)0x4000A014)) -#define SSI2_RIS_R (*((volatile unsigned long *)0x4000A018)) -#define SSI2_MIS_R (*((volatile unsigned long *)0x4000A01C)) -#define SSI2_ICR_R (*((volatile unsigned long *)0x4000A020)) -#define SSI2_DMACTL_R (*((volatile unsigned long *)0x4000A024)) -#define SSI2_CC_R (*((volatile unsigned long *)0x4000AFC8)) - -//***************************************************************************** -// -// SSI registers (SSI3) -// -//***************************************************************************** -#define SSI3_CR0_R (*((volatile unsigned long *)0x4000B000)) -#define SSI3_CR1_R (*((volatile unsigned long *)0x4000B004)) -#define SSI3_DR_R (*((volatile unsigned long *)0x4000B008)) -#define SSI3_SR_R (*((volatile unsigned long *)0x4000B00C)) -#define SSI3_CPSR_R (*((volatile unsigned long *)0x4000B010)) -#define SSI3_IM_R (*((volatile unsigned long *)0x4000B014)) -#define SSI3_RIS_R (*((volatile unsigned long *)0x4000B018)) -#define SSI3_MIS_R (*((volatile unsigned long *)0x4000B01C)) -#define SSI3_ICR_R (*((volatile unsigned long *)0x4000B020)) -#define SSI3_DMACTL_R (*((volatile unsigned long *)0x4000B024)) -#define SSI3_CC_R (*((volatile unsigned long *)0x4000BFC8)) - -//***************************************************************************** -// -// UART registers (UART0) -// -//***************************************************************************** -#define UART0_DR_R (*((volatile unsigned long *)0x4000C000)) -#define UART0_RSR_R (*((volatile unsigned long *)0x4000C004)) -#define UART0_ECR_R (*((volatile unsigned long *)0x4000C004)) -#define UART0_FR_R (*((volatile unsigned long *)0x4000C018)) -#define UART0_ILPR_R (*((volatile unsigned long *)0x4000C020)) -#define UART0_IBRD_R (*((volatile unsigned long *)0x4000C024)) -#define UART0_FBRD_R (*((volatile unsigned long *)0x4000C028)) -#define UART0_LCRH_R (*((volatile unsigned long *)0x4000C02C)) -#define UART0_CTL_R (*((volatile unsigned long *)0x4000C030)) -#define UART0_IFLS_R (*((volatile unsigned long *)0x4000C034)) -#define UART0_IM_R (*((volatile unsigned long *)0x4000C038)) -#define UART0_RIS_R (*((volatile unsigned long *)0x4000C03C)) -#define UART0_MIS_R (*((volatile unsigned long *)0x4000C040)) -#define UART0_ICR_R (*((volatile unsigned long *)0x4000C044)) -#define UART0_DMACTL_R (*((volatile unsigned long *)0x4000C048)) -#define UART0_LCTL_R (*((volatile unsigned long *)0x4000C090)) -#define UART0_LSS_R (*((volatile unsigned long *)0x4000C094)) -#define UART0_LTIM_R (*((volatile unsigned long *)0x4000C098)) -#define UART0_9BITADDR_R (*((volatile unsigned long *)0x4000C0A4)) -#define UART0_9BITAMASK_R (*((volatile unsigned long *)0x4000C0A8)) -#define UART0_PP_R (*((volatile unsigned long *)0x4000CFC0)) -#define UART0_CC_R (*((volatile unsigned long *)0x4000CFC8)) - -//***************************************************************************** -// -// UART registers (UART1) -// -//***************************************************************************** -#define UART1_DR_R (*((volatile unsigned long *)0x4000D000)) -#define UART1_RSR_R (*((volatile unsigned long *)0x4000D004)) -#define UART1_ECR_R (*((volatile unsigned long *)0x4000D004)) -#define UART1_FR_R (*((volatile unsigned long *)0x4000D018)) -#define UART1_ILPR_R (*((volatile unsigned long *)0x4000D020)) -#define UART1_IBRD_R (*((volatile unsigned long *)0x4000D024)) -#define UART1_FBRD_R (*((volatile unsigned long *)0x4000D028)) -#define UART1_LCRH_R (*((volatile unsigned long *)0x4000D02C)) -#define UART1_CTL_R (*((volatile unsigned long *)0x4000D030)) -#define UART1_IFLS_R (*((volatile unsigned long *)0x4000D034)) -#define UART1_IM_R (*((volatile unsigned long *)0x4000D038)) -#define UART1_RIS_R (*((volatile unsigned long *)0x4000D03C)) -#define UART1_MIS_R (*((volatile unsigned long *)0x4000D040)) -#define UART1_ICR_R (*((volatile unsigned long *)0x4000D044)) -#define UART1_DMACTL_R (*((volatile unsigned long *)0x4000D048)) -#define UART1_LCTL_R (*((volatile unsigned long *)0x4000D090)) -#define UART1_LSS_R (*((volatile unsigned long *)0x4000D094)) -#define UART1_LTIM_R (*((volatile unsigned long *)0x4000D098)) -#define UART1_9BITADDR_R (*((volatile unsigned long *)0x4000D0A4)) -#define UART1_9BITAMASK_R (*((volatile unsigned long *)0x4000D0A8)) -#define UART1_PP_R (*((volatile unsigned long *)0x4000DFC0)) -#define UART1_CC_R (*((volatile unsigned long *)0x4000DFC8)) - -//***************************************************************************** -// -// UART registers (UART2) -// -//***************************************************************************** -#define UART2_DR_R (*((volatile unsigned long *)0x4000E000)) -#define UART2_RSR_R (*((volatile unsigned long *)0x4000E004)) -#define UART2_ECR_R (*((volatile unsigned long *)0x4000E004)) -#define UART2_FR_R (*((volatile unsigned long *)0x4000E018)) -#define UART2_ILPR_R (*((volatile unsigned long *)0x4000E020)) -#define UART2_IBRD_R (*((volatile unsigned long *)0x4000E024)) -#define UART2_FBRD_R (*((volatile unsigned long *)0x4000E028)) -#define UART2_LCRH_R (*((volatile unsigned long *)0x4000E02C)) -#define UART2_CTL_R (*((volatile unsigned long *)0x4000E030)) -#define UART2_IFLS_R (*((volatile unsigned long *)0x4000E034)) -#define UART2_IM_R (*((volatile unsigned long *)0x4000E038)) -#define UART2_RIS_R (*((volatile unsigned long *)0x4000E03C)) -#define UART2_MIS_R (*((volatile unsigned long *)0x4000E040)) -#define UART2_ICR_R (*((volatile unsigned long *)0x4000E044)) -#define UART2_DMACTL_R (*((volatile unsigned long *)0x4000E048)) -#define UART2_LCTL_R (*((volatile unsigned long *)0x4000E090)) -#define UART2_LSS_R (*((volatile unsigned long *)0x4000E094)) -#define UART2_LTIM_R (*((volatile unsigned long *)0x4000E098)) -#define UART2_9BITADDR_R (*((volatile unsigned long *)0x4000E0A4)) -#define UART2_9BITAMASK_R (*((volatile unsigned long *)0x4000E0A8)) -#define UART2_PP_R (*((volatile unsigned long *)0x4000EFC0)) -#define UART2_CC_R (*((volatile unsigned long *)0x4000EFC8)) - -//***************************************************************************** -// -// UART registers (UART3) -// -//***************************************************************************** -#define UART3_DR_R (*((volatile unsigned long *)0x4000F000)) -#define UART3_RSR_R (*((volatile unsigned long *)0x4000F004)) -#define UART3_ECR_R (*((volatile unsigned long *)0x4000F004)) -#define UART3_FR_R (*((volatile unsigned long *)0x4000F018)) -#define UART3_ILPR_R (*((volatile unsigned long *)0x4000F020)) -#define UART3_IBRD_R (*((volatile unsigned long *)0x4000F024)) -#define UART3_FBRD_R (*((volatile unsigned long *)0x4000F028)) -#define UART3_LCRH_R (*((volatile unsigned long *)0x4000F02C)) -#define UART3_CTL_R (*((volatile unsigned long *)0x4000F030)) -#define UART3_IFLS_R (*((volatile unsigned long *)0x4000F034)) -#define UART3_IM_R (*((volatile unsigned long *)0x4000F038)) -#define UART3_RIS_R (*((volatile unsigned long *)0x4000F03C)) -#define UART3_MIS_R (*((volatile unsigned long *)0x4000F040)) -#define UART3_ICR_R (*((volatile unsigned long *)0x4000F044)) -#define UART3_DMACTL_R (*((volatile unsigned long *)0x4000F048)) -#define UART3_LCTL_R (*((volatile unsigned long *)0x4000F090)) -#define UART3_LSS_R (*((volatile unsigned long *)0x4000F094)) -#define UART3_LTIM_R (*((volatile unsigned long *)0x4000F098)) -#define UART3_9BITADDR_R (*((volatile unsigned long *)0x4000F0A4)) -#define UART3_9BITAMASK_R (*((volatile unsigned long *)0x4000F0A8)) -#define UART3_PP_R (*((volatile unsigned long *)0x4000FFC0)) -#define UART3_CC_R (*((volatile unsigned long *)0x4000FFC8)) - -//***************************************************************************** -// -// UART registers (UART4) -// -//***************************************************************************** -#define UART4_DR_R (*((volatile unsigned long *)0x40010000)) -#define UART4_RSR_R (*((volatile unsigned long *)0x40010004)) -#define UART4_ECR_R (*((volatile unsigned long *)0x40010004)) -#define UART4_FR_R (*((volatile unsigned long *)0x40010018)) -#define UART4_ILPR_R (*((volatile unsigned long *)0x40010020)) -#define UART4_IBRD_R (*((volatile unsigned long *)0x40010024)) -#define UART4_FBRD_R (*((volatile unsigned long *)0x40010028)) -#define UART4_LCRH_R (*((volatile unsigned long *)0x4001002C)) -#define UART4_CTL_R (*((volatile unsigned long *)0x40010030)) -#define UART4_IFLS_R (*((volatile unsigned long *)0x40010034)) -#define UART4_IM_R (*((volatile unsigned long *)0x40010038)) -#define UART4_RIS_R (*((volatile unsigned long *)0x4001003C)) -#define UART4_MIS_R (*((volatile unsigned long *)0x40010040)) -#define UART4_ICR_R (*((volatile unsigned long *)0x40010044)) -#define UART4_DMACTL_R (*((volatile unsigned long *)0x40010048)) -#define UART4_LCTL_R (*((volatile unsigned long *)0x40010090)) -#define UART4_LSS_R (*((volatile unsigned long *)0x40010094)) -#define UART4_LTIM_R (*((volatile unsigned long *)0x40010098)) -#define UART4_9BITADDR_R (*((volatile unsigned long *)0x400100A4)) -#define UART4_9BITAMASK_R (*((volatile unsigned long *)0x400100A8)) -#define UART4_PP_R (*((volatile unsigned long *)0x40010FC0)) -#define UART4_CC_R (*((volatile unsigned long *)0x40010FC8)) - -//***************************************************************************** -// -// UART registers (UART5) -// -//***************************************************************************** -#define UART5_DR_R (*((volatile unsigned long *)0x40011000)) -#define UART5_RSR_R (*((volatile unsigned long *)0x40011004)) -#define UART5_ECR_R (*((volatile unsigned long *)0x40011004)) -#define UART5_FR_R (*((volatile unsigned long *)0x40011018)) -#define UART5_ILPR_R (*((volatile unsigned long *)0x40011020)) -#define UART5_IBRD_R (*((volatile unsigned long *)0x40011024)) -#define UART5_FBRD_R (*((volatile unsigned long *)0x40011028)) -#define UART5_LCRH_R (*((volatile unsigned long *)0x4001102C)) -#define UART5_CTL_R (*((volatile unsigned long *)0x40011030)) -#define UART5_IFLS_R (*((volatile unsigned long *)0x40011034)) -#define UART5_IM_R (*((volatile unsigned long *)0x40011038)) -#define UART5_RIS_R (*((volatile unsigned long *)0x4001103C)) -#define UART5_MIS_R (*((volatile unsigned long *)0x40011040)) -#define UART5_ICR_R (*((volatile unsigned long *)0x40011044)) -#define UART5_DMACTL_R (*((volatile unsigned long *)0x40011048)) -#define UART5_LCTL_R (*((volatile unsigned long *)0x40011090)) -#define UART5_LSS_R (*((volatile unsigned long *)0x40011094)) -#define UART5_LTIM_R (*((volatile unsigned long *)0x40011098)) -#define UART5_9BITADDR_R (*((volatile unsigned long *)0x400110A4)) -#define UART5_9BITAMASK_R (*((volatile unsigned long *)0x400110A8)) -#define UART5_PP_R (*((volatile unsigned long *)0x40011FC0)) -#define UART5_CC_R (*((volatile unsigned long *)0x40011FC8)) - -//***************************************************************************** -// -// UART registers (UART6) -// -//***************************************************************************** -#define UART6_DR_R (*((volatile unsigned long *)0x40012000)) -#define UART6_RSR_R (*((volatile unsigned long *)0x40012004)) -#define UART6_ECR_R (*((volatile unsigned long *)0x40012004)) -#define UART6_FR_R (*((volatile unsigned long *)0x40012018)) -#define UART6_ILPR_R (*((volatile unsigned long *)0x40012020)) -#define UART6_IBRD_R (*((volatile unsigned long *)0x40012024)) -#define UART6_FBRD_R (*((volatile unsigned long *)0x40012028)) -#define UART6_LCRH_R (*((volatile unsigned long *)0x4001202C)) -#define UART6_CTL_R (*((volatile unsigned long *)0x40012030)) -#define UART6_IFLS_R (*((volatile unsigned long *)0x40012034)) -#define UART6_IM_R (*((volatile unsigned long *)0x40012038)) -#define UART6_RIS_R (*((volatile unsigned long *)0x4001203C)) -#define UART6_MIS_R (*((volatile unsigned long *)0x40012040)) -#define UART6_ICR_R (*((volatile unsigned long *)0x40012044)) -#define UART6_DMACTL_R (*((volatile unsigned long *)0x40012048)) -#define UART6_LCTL_R (*((volatile unsigned long *)0x40012090)) -#define UART6_LSS_R (*((volatile unsigned long *)0x40012094)) -#define UART6_LTIM_R (*((volatile unsigned long *)0x40012098)) -#define UART6_9BITADDR_R (*((volatile unsigned long *)0x400120A4)) -#define UART6_9BITAMASK_R (*((volatile unsigned long *)0x400120A8)) -#define UART6_PP_R (*((volatile unsigned long *)0x40012FC0)) -#define UART6_CC_R (*((volatile unsigned long *)0x40012FC8)) - -//***************************************************************************** -// -// UART registers (UART7) -// -//***************************************************************************** -#define UART7_DR_R (*((volatile unsigned long *)0x40013000)) -#define UART7_RSR_R (*((volatile unsigned long *)0x40013004)) -#define UART7_ECR_R (*((volatile unsigned long *)0x40013004)) -#define UART7_FR_R (*((volatile unsigned long *)0x40013018)) -#define UART7_ILPR_R (*((volatile unsigned long *)0x40013020)) -#define UART7_IBRD_R (*((volatile unsigned long *)0x40013024)) -#define UART7_FBRD_R (*((volatile unsigned long *)0x40013028)) -#define UART7_LCRH_R (*((volatile unsigned long *)0x4001302C)) -#define UART7_CTL_R (*((volatile unsigned long *)0x40013030)) -#define UART7_IFLS_R (*((volatile unsigned long *)0x40013034)) -#define UART7_IM_R (*((volatile unsigned long *)0x40013038)) -#define UART7_RIS_R (*((volatile unsigned long *)0x4001303C)) -#define UART7_MIS_R (*((volatile unsigned long *)0x40013040)) -#define UART7_ICR_R (*((volatile unsigned long *)0x40013044)) -#define UART7_DMACTL_R (*((volatile unsigned long *)0x40013048)) -#define UART7_LCTL_R (*((volatile unsigned long *)0x40013090)) -#define UART7_LSS_R (*((volatile unsigned long *)0x40013094)) -#define UART7_LTIM_R (*((volatile unsigned long *)0x40013098)) -#define UART7_9BITADDR_R (*((volatile unsigned long *)0x400130A4)) -#define UART7_9BITAMASK_R (*((volatile unsigned long *)0x400130A8)) -#define UART7_PP_R (*((volatile unsigned long *)0x40013FC0)) -#define UART7_CC_R (*((volatile unsigned long *)0x40013FC8)) - -//***************************************************************************** -// -// I2C registers (I2C0 MASTER) -// -//***************************************************************************** -#define I2C0_MASTER_MSA_R (*((volatile unsigned long *)0x40020000)) -#define I2C0_MASTER_MCS_R (*((volatile unsigned long *)0x40020004)) -#define I2C0_MASTER_MDR_R (*((volatile unsigned long *)0x40020008)) -#define I2C0_MASTER_MTPR_R (*((volatile unsigned long *)0x4002000C)) -#define I2C0_MASTER_MIMR_R (*((volatile unsigned long *)0x40020010)) -#define I2C0_MASTER_MRIS_R (*((volatile unsigned long *)0x40020014)) -#define I2C0_MASTER_MMIS_R (*((volatile unsigned long *)0x40020018)) -#define I2C0_MASTER_MICR_R (*((volatile unsigned long *)0x4002001C)) -#define I2C0_MASTER_MCR_R (*((volatile unsigned long *)0x40020020)) -#define I2C0_MASTER_MCLKOCNT_R (*((volatile unsigned long *)0x40020024)) -#define I2C0_MASTER_MBMON_R (*((volatile unsigned long *)0x4002002C)) - -//***************************************************************************** -// -// I2C registers (I2C0 SLAVE) -// -//***************************************************************************** -#define I2C0_SLAVE_SOAR_R (*((volatile unsigned long *)0x40020800)) -#define I2C0_SLAVE_SCSR_R (*((volatile unsigned long *)0x40020804)) -#define I2C0_SLAVE_SDR_R (*((volatile unsigned long *)0x40020808)) -#define I2C0_SLAVE_SIMR_R (*((volatile unsigned long *)0x4002080C)) -#define I2C0_SLAVE_SRIS_R (*((volatile unsigned long *)0x40020810)) -#define I2C0_SLAVE_SMIS_R (*((volatile unsigned long *)0x40020814)) -#define I2C0_SLAVE_SICR_R (*((volatile unsigned long *)0x40020818)) -#define I2C0_SLAVE_SOAR2_R (*((volatile unsigned long *)0x4002081C)) -#define I2C0_SLAVE_SACKCTL_R (*((volatile unsigned long *)0x40020820)) - -//***************************************************************************** -// -// I2C registers (I2C1 MASTER) -// -//***************************************************************************** -#define I2C1_MASTER_MSA_R (*((volatile unsigned long *)0x40021000)) -#define I2C1_MASTER_MCS_R (*((volatile unsigned long *)0x40021004)) -#define I2C1_MASTER_MDR_R (*((volatile unsigned long *)0x40021008)) -#define I2C1_MASTER_MTPR_R (*((volatile unsigned long *)0x4002100C)) -#define I2C1_MASTER_MIMR_R (*((volatile unsigned long *)0x40021010)) -#define I2C1_MASTER_MRIS_R (*((volatile unsigned long *)0x40021014)) -#define I2C1_MASTER_MMIS_R (*((volatile unsigned long *)0x40021018)) -#define I2C1_MASTER_MICR_R (*((volatile unsigned long *)0x4002101C)) -#define I2C1_MASTER_MCR_R (*((volatile unsigned long *)0x40021020)) -#define I2C1_MASTER_MCLKOCNT_R (*((volatile unsigned long *)0x40021024)) -#define I2C1_MASTER_MBMON_R (*((volatile unsigned long *)0x4002102C)) - -//***************************************************************************** -// -// I2C registers (I2C1 SLAVE) -// -//***************************************************************************** -#define I2C1_SLAVE_SOAR_R (*((volatile unsigned long *)0x40021800)) -#define I2C1_SLAVE_SCSR_R (*((volatile unsigned long *)0x40021804)) -#define I2C1_SLAVE_SDR_R (*((volatile unsigned long *)0x40021808)) -#define I2C1_SLAVE_SIMR_R (*((volatile unsigned long *)0x4002180C)) -#define I2C1_SLAVE_SRIS_R (*((volatile unsigned long *)0x40021810)) -#define I2C1_SLAVE_SMIS_R (*((volatile unsigned long *)0x40021814)) -#define I2C1_SLAVE_SICR_R (*((volatile unsigned long *)0x40021818)) -#define I2C1_SLAVE_SOAR2_R (*((volatile unsigned long *)0x4002181C)) -#define I2C1_SLAVE_SACKCTL_R (*((volatile unsigned long *)0x40021820)) - -//***************************************************************************** -// -// I2C registers (I2C2 MASTER) -// -//***************************************************************************** -#define I2C2_MASTER_MSA_R (*((volatile unsigned long *)0x40022000)) -#define I2C2_MASTER_MCS_R (*((volatile unsigned long *)0x40022004)) -#define I2C2_MASTER_MDR_R (*((volatile unsigned long *)0x40022008)) -#define I2C2_MASTER_MTPR_R (*((volatile unsigned long *)0x4002200C)) -#define I2C2_MASTER_MIMR_R (*((volatile unsigned long *)0x40022010)) -#define I2C2_MASTER_MRIS_R (*((volatile unsigned long *)0x40022014)) -#define I2C2_MASTER_MMIS_R (*((volatile unsigned long *)0x40022018)) -#define I2C2_MASTER_MICR_R (*((volatile unsigned long *)0x4002201C)) -#define I2C2_MASTER_MCR_R (*((volatile unsigned long *)0x40022020)) -#define I2C2_MASTER_MCLKOCNT_R (*((volatile unsigned long *)0x40022024)) -#define I2C2_MASTER_MBMON_R (*((volatile unsigned long *)0x4002202C)) - -//***************************************************************************** -// -// I2C registers (I2C2 SLAVE) -// -//***************************************************************************** -#define I2C2_SLAVE_SOAR_R (*((volatile unsigned long *)0x40022800)) -#define I2C2_SLAVE_SCSR_R (*((volatile unsigned long *)0x40022804)) -#define I2C2_SLAVE_SDR_R (*((volatile unsigned long *)0x40022808)) -#define I2C2_SLAVE_SIMR_R (*((volatile unsigned long *)0x4002280C)) -#define I2C2_SLAVE_SRIS_R (*((volatile unsigned long *)0x40022810)) -#define I2C2_SLAVE_SMIS_R (*((volatile unsigned long *)0x40022814)) -#define I2C2_SLAVE_SICR_R (*((volatile unsigned long *)0x40022818)) -#define I2C2_SLAVE_SOAR2_R (*((volatile unsigned long *)0x4002281C)) -#define I2C2_SLAVE_SACKCTL_R (*((volatile unsigned long *)0x40022820)) - -//***************************************************************************** -// -// I2C registers (I2C3 MASTER) -// -//***************************************************************************** -#define I2C3_MASTER_MSA_R (*((volatile unsigned long *)0x40023000)) -#define I2C3_MASTER_MCS_R (*((volatile unsigned long *)0x40023004)) -#define I2C3_MASTER_MDR_R (*((volatile unsigned long *)0x40023008)) -#define I2C3_MASTER_MTPR_R (*((volatile unsigned long *)0x4002300C)) -#define I2C3_MASTER_MIMR_R (*((volatile unsigned long *)0x40023010)) -#define I2C3_MASTER_MRIS_R (*((volatile unsigned long *)0x40023014)) -#define I2C3_MASTER_MMIS_R (*((volatile unsigned long *)0x40023018)) -#define I2C3_MASTER_MICR_R (*((volatile unsigned long *)0x4002301C)) -#define I2C3_MASTER_MCR_R (*((volatile unsigned long *)0x40023020)) -#define I2C3_MASTER_MCLKOCNT_R (*((volatile unsigned long *)0x40023024)) -#define I2C3_MASTER_MBMON_R (*((volatile unsigned long *)0x4002302C)) - -//***************************************************************************** -// -// I2C registers (I2C3 SLAVE) -// -//***************************************************************************** -#define I2C3_SLAVE_SOAR_R (*((volatile unsigned long *)0x40023800)) -#define I2C3_SLAVE_SCSR_R (*((volatile unsigned long *)0x40023804)) -#define I2C3_SLAVE_SDR_R (*((volatile unsigned long *)0x40023808)) -#define I2C3_SLAVE_SIMR_R (*((volatile unsigned long *)0x4002380C)) -#define I2C3_SLAVE_SRIS_R (*((volatile unsigned long *)0x40023810)) -#define I2C3_SLAVE_SMIS_R (*((volatile unsigned long *)0x40023814)) -#define I2C3_SLAVE_SICR_R (*((volatile unsigned long *)0x40023818)) -#define I2C3_SLAVE_SOAR2_R (*((volatile unsigned long *)0x4002381C)) -#define I2C3_SLAVE_SACKCTL_R (*((volatile unsigned long *)0x40023820)) - -//***************************************************************************** -// -// GPIO registers (PORTE) -// -//***************************************************************************** -#define GPIO_PORTE_DATA_BITS_R ((volatile unsigned long *)0x40024000) -#define GPIO_PORTE_DATA_R (*((volatile unsigned long *)0x400243FC)) -#define GPIO_PORTE_DIR_R (*((volatile unsigned long *)0x40024400)) -#define GPIO_PORTE_IS_R (*((volatile unsigned long *)0x40024404)) -#define GPIO_PORTE_IBE_R (*((volatile unsigned long *)0x40024408)) -#define GPIO_PORTE_IEV_R (*((volatile unsigned long *)0x4002440C)) -#define GPIO_PORTE_IM_R (*((volatile unsigned long *)0x40024410)) -#define GPIO_PORTE_RIS_R (*((volatile unsigned long *)0x40024414)) -#define GPIO_PORTE_MIS_R (*((volatile unsigned long *)0x40024418)) -#define GPIO_PORTE_ICR_R (*((volatile unsigned long *)0x4002441C)) -#define GPIO_PORTE_AFSEL_R (*((volatile unsigned long *)0x40024420)) -#define GPIO_PORTE_DR2R_R (*((volatile unsigned long *)0x40024500)) -#define GPIO_PORTE_DR4R_R (*((volatile unsigned long *)0x40024504)) -#define GPIO_PORTE_DR8R_R (*((volatile unsigned long *)0x40024508)) -#define GPIO_PORTE_ODR_R (*((volatile unsigned long *)0x4002450C)) -#define GPIO_PORTE_PUR_R (*((volatile unsigned long *)0x40024510)) -#define GPIO_PORTE_PDR_R (*((volatile unsigned long *)0x40024514)) -#define GPIO_PORTE_SLR_R (*((volatile unsigned long *)0x40024518)) -#define GPIO_PORTE_DEN_R (*((volatile unsigned long *)0x4002451C)) -#define GPIO_PORTE_LOCK_R (*((volatile unsigned long *)0x40024520)) -#define GPIO_PORTE_CR_R (*((volatile unsigned long *)0x40024524)) -#define GPIO_PORTE_AMSEL_R (*((volatile unsigned long *)0x40024528)) -#define GPIO_PORTE_PCTL_R (*((volatile unsigned long *)0x4002452C)) -#define GPIO_PORTE_ADCCTL_R (*((volatile unsigned long *)0x40024530)) -#define GPIO_PORTE_DMACTL_R (*((volatile unsigned long *)0x40024534)) -#define GPIO_PORTE_SI_R (*((volatile unsigned long *)0x40024538)) - -//***************************************************************************** -// -// GPIO registers (PORTF) -// -//***************************************************************************** -#define GPIO_PORTF_DATA_BITS_R ((volatile unsigned long *)0x40025000) -#define GPIO_PORTF_DATA_R (*((volatile unsigned long *)0x400253FC)) -#define GPIO_PORTF_DIR_R (*((volatile unsigned long *)0x40025400)) -#define GPIO_PORTF_IS_R (*((volatile unsigned long *)0x40025404)) -#define GPIO_PORTF_IBE_R (*((volatile unsigned long *)0x40025408)) -#define GPIO_PORTF_IEV_R (*((volatile unsigned long *)0x4002540C)) -#define GPIO_PORTF_IM_R (*((volatile unsigned long *)0x40025410)) -#define GPIO_PORTF_RIS_R (*((volatile unsigned long *)0x40025414)) -#define GPIO_PORTF_MIS_R (*((volatile unsigned long *)0x40025418)) -#define GPIO_PORTF_ICR_R (*((volatile unsigned long *)0x4002541C)) -#define GPIO_PORTF_AFSEL_R (*((volatile unsigned long *)0x40025420)) -#define GPIO_PORTF_DR2R_R (*((volatile unsigned long *)0x40025500)) -#define GPIO_PORTF_DR4R_R (*((volatile unsigned long *)0x40025504)) -#define GPIO_PORTF_DR8R_R (*((volatile unsigned long *)0x40025508)) -#define GPIO_PORTF_ODR_R (*((volatile unsigned long *)0x4002550C)) -#define GPIO_PORTF_PUR_R (*((volatile unsigned long *)0x40025510)) -#define GPIO_PORTF_PDR_R (*((volatile unsigned long *)0x40025514)) -#define GPIO_PORTF_SLR_R (*((volatile unsigned long *)0x40025518)) -#define GPIO_PORTF_DEN_R (*((volatile unsigned long *)0x4002551C)) -#define GPIO_PORTF_LOCK_R (*((volatile unsigned long *)0x40025520)) -#define GPIO_PORTF_CR_R (*((volatile unsigned long *)0x40025524)) -#define GPIO_PORTF_AMSEL_R (*((volatile unsigned long *)0x40025528)) -#define GPIO_PORTF_PCTL_R (*((volatile unsigned long *)0x4002552C)) -#define GPIO_PORTF_ADCCTL_R (*((volatile unsigned long *)0x40025530)) -#define GPIO_PORTF_DMACTL_R (*((volatile unsigned long *)0x40025534)) -#define GPIO_PORTF_SI_R (*((volatile unsigned long *)0x40025538)) - -//***************************************************************************** -// -// GPIO registers (PORTG) -// -//***************************************************************************** -#define GPIO_PORTG_DATA_BITS_R ((volatile unsigned long *)0x40026000) -#define GPIO_PORTG_DATA_R (*((volatile unsigned long *)0x400263FC)) -#define GPIO_PORTG_DIR_R (*((volatile unsigned long *)0x40026400)) -#define GPIO_PORTG_IS_R (*((volatile unsigned long *)0x40026404)) -#define GPIO_PORTG_IBE_R (*((volatile unsigned long *)0x40026408)) -#define GPIO_PORTG_IEV_R (*((volatile unsigned long *)0x4002640C)) -#define GPIO_PORTG_IM_R (*((volatile unsigned long *)0x40026410)) -#define GPIO_PORTG_RIS_R (*((volatile unsigned long *)0x40026414)) -#define GPIO_PORTG_MIS_R (*((volatile unsigned long *)0x40026418)) -#define GPIO_PORTG_ICR_R (*((volatile unsigned long *)0x4002641C)) -#define GPIO_PORTG_AFSEL_R (*((volatile unsigned long *)0x40026420)) -#define GPIO_PORTG_DR2R_R (*((volatile unsigned long *)0x40026500)) -#define GPIO_PORTG_DR4R_R (*((volatile unsigned long *)0x40026504)) -#define GPIO_PORTG_DR8R_R (*((volatile unsigned long *)0x40026508)) -#define GPIO_PORTG_ODR_R (*((volatile unsigned long *)0x4002650C)) -#define GPIO_PORTG_PUR_R (*((volatile unsigned long *)0x40026510)) -#define GPIO_PORTG_PDR_R (*((volatile unsigned long *)0x40026514)) -#define GPIO_PORTG_SLR_R (*((volatile unsigned long *)0x40026518)) -#define GPIO_PORTG_DEN_R (*((volatile unsigned long *)0x4002651C)) -#define GPIO_PORTG_LOCK_R (*((volatile unsigned long *)0x40026520)) -#define GPIO_PORTG_CR_R (*((volatile unsigned long *)0x40026524)) -#define GPIO_PORTG_AMSEL_R (*((volatile unsigned long *)0x40026528)) -#define GPIO_PORTG_PCTL_R (*((volatile unsigned long *)0x4002652C)) -#define GPIO_PORTG_ADCCTL_R (*((volatile unsigned long *)0x40026530)) -#define GPIO_PORTG_DMACTL_R (*((volatile unsigned long *)0x40026534)) -#define GPIO_PORTG_SI_R (*((volatile unsigned long *)0x40026538)) - -//***************************************************************************** -// -// GPIO registers (PORTH) -// -//***************************************************************************** -#define GPIO_PORTH_DATA_BITS_R ((volatile unsigned long *)0x40027000) -#define GPIO_PORTH_DATA_R (*((volatile unsigned long *)0x400273FC)) -#define GPIO_PORTH_DIR_R (*((volatile unsigned long *)0x40027400)) -#define GPIO_PORTH_IS_R (*((volatile unsigned long *)0x40027404)) -#define GPIO_PORTH_IBE_R (*((volatile unsigned long *)0x40027408)) -#define GPIO_PORTH_IEV_R (*((volatile unsigned long *)0x4002740C)) -#define GPIO_PORTH_IM_R (*((volatile unsigned long *)0x40027410)) -#define GPIO_PORTH_RIS_R (*((volatile unsigned long *)0x40027414)) -#define GPIO_PORTH_MIS_R (*((volatile unsigned long *)0x40027418)) -#define GPIO_PORTH_ICR_R (*((volatile unsigned long *)0x4002741C)) -#define GPIO_PORTH_AFSEL_R (*((volatile unsigned long *)0x40027420)) -#define GPIO_PORTH_DR2R_R (*((volatile unsigned long *)0x40027500)) -#define GPIO_PORTH_DR4R_R (*((volatile unsigned long *)0x40027504)) -#define GPIO_PORTH_DR8R_R (*((volatile unsigned long *)0x40027508)) -#define GPIO_PORTH_ODR_R (*((volatile unsigned long *)0x4002750C)) -#define GPIO_PORTH_PUR_R (*((volatile unsigned long *)0x40027510)) -#define GPIO_PORTH_PDR_R (*((volatile unsigned long *)0x40027514)) -#define GPIO_PORTH_SLR_R (*((volatile unsigned long *)0x40027518)) -#define GPIO_PORTH_DEN_R (*((volatile unsigned long *)0x4002751C)) -#define GPIO_PORTH_LOCK_R (*((volatile unsigned long *)0x40027520)) -#define GPIO_PORTH_CR_R (*((volatile unsigned long *)0x40027524)) -#define GPIO_PORTH_AMSEL_R (*((volatile unsigned long *)0x40027528)) -#define GPIO_PORTH_PCTL_R (*((volatile unsigned long *)0x4002752C)) -#define GPIO_PORTH_ADCCTL_R (*((volatile unsigned long *)0x40027530)) -#define GPIO_PORTH_DMACTL_R (*((volatile unsigned long *)0x40027534)) -#define GPIO_PORTH_SI_R (*((volatile unsigned long *)0x40027538)) - -//***************************************************************************** -// -// PWM registers (PWM0) -// -//***************************************************************************** -#define PWM0_CTL_R (*((volatile unsigned long *)0x40028000)) -#define PWM0_SYNC_R (*((volatile unsigned long *)0x40028004)) -#define PWM0_ENABLE_R (*((volatile unsigned long *)0x40028008)) -#define PWM0_INVERT_R (*((volatile unsigned long *)0x4002800C)) -#define PWM0_FAULT_R (*((volatile unsigned long *)0x40028010)) -#define PWM0_INTEN_R (*((volatile unsigned long *)0x40028014)) -#define PWM0_RIS_R (*((volatile unsigned long *)0x40028018)) -#define PWM0_ISC_R (*((volatile unsigned long *)0x4002801C)) -#define PWM0_STATUS_R (*((volatile unsigned long *)0x40028020)) -#define PWM0_FAULTVAL_R (*((volatile unsigned long *)0x40028024)) -#define PWM0_ENUPD_R (*((volatile unsigned long *)0x40028028)) -#define PWM0_0_CTL_R (*((volatile unsigned long *)0x40028040)) -#define PWM0_0_INTEN_R (*((volatile unsigned long *)0x40028044)) -#define PWM0_0_RIS_R (*((volatile unsigned long *)0x40028048)) -#define PWM0_0_ISC_R (*((volatile unsigned long *)0x4002804C)) -#define PWM0_0_LOAD_R (*((volatile unsigned long *)0x40028050)) -#define PWM0_0_COUNT_R (*((volatile unsigned long *)0x40028054)) -#define PWM0_0_CMPA_R (*((volatile unsigned long *)0x40028058)) -#define PWM0_0_CMPB_R (*((volatile unsigned long *)0x4002805C)) -#define PWM0_0_GENA_R (*((volatile unsigned long *)0x40028060)) -#define PWM0_0_GENB_R (*((volatile unsigned long *)0x40028064)) -#define PWM0_0_DBCTL_R (*((volatile unsigned long *)0x40028068)) -#define PWM0_0_DBRISE_R (*((volatile unsigned long *)0x4002806C)) -#define PWM0_0_DBFALL_R (*((volatile unsigned long *)0x40028070)) -#define PWM0_0_FLTSRC0_R (*((volatile unsigned long *)0x40028074)) -#define PWM0_0_FLTSRC1_R (*((volatile unsigned long *)0x40028078)) -#define PWM0_0_MINFLTPER_R (*((volatile unsigned long *)0x4002807C)) -#define PWM0_1_CTL_R (*((volatile unsigned long *)0x40028080)) -#define PWM0_1_INTEN_R (*((volatile unsigned long *)0x40028084)) -#define PWM0_1_RIS_R (*((volatile unsigned long *)0x40028088)) -#define PWM0_1_ISC_R (*((volatile unsigned long *)0x4002808C)) -#define PWM0_1_LOAD_R (*((volatile unsigned long *)0x40028090)) -#define PWM0_1_COUNT_R (*((volatile unsigned long *)0x40028094)) -#define PWM0_1_CMPA_R (*((volatile unsigned long *)0x40028098)) -#define PWM0_1_CMPB_R (*((volatile unsigned long *)0x4002809C)) -#define PWM0_1_GENA_R (*((volatile unsigned long *)0x400280A0)) -#define PWM0_1_GENB_R (*((volatile unsigned long *)0x400280A4)) -#define PWM0_1_DBCTL_R (*((volatile unsigned long *)0x400280A8)) -#define PWM0_1_DBRISE_R (*((volatile unsigned long *)0x400280AC)) -#define PWM0_1_DBFALL_R (*((volatile unsigned long *)0x400280B0)) -#define PWM0_1_FLTSRC0_R (*((volatile unsigned long *)0x400280B4)) -#define PWM0_1_FLTSRC1_R (*((volatile unsigned long *)0x400280B8)) -#define PWM0_1_MINFLTPER_R (*((volatile unsigned long *)0x400280BC)) -#define PWM0_2_CTL_R (*((volatile unsigned long *)0x400280C0)) -#define PWM0_2_INTEN_R (*((volatile unsigned long *)0x400280C4)) -#define PWM0_2_RIS_R (*((volatile unsigned long *)0x400280C8)) -#define PWM0_2_ISC_R (*((volatile unsigned long *)0x400280CC)) -#define PWM0_2_LOAD_R (*((volatile unsigned long *)0x400280D0)) -#define PWM0_2_COUNT_R (*((volatile unsigned long *)0x400280D4)) -#define PWM0_2_CMPA_R (*((volatile unsigned long *)0x400280D8)) -#define PWM0_2_CMPB_R (*((volatile unsigned long *)0x400280DC)) -#define PWM0_2_GENA_R (*((volatile unsigned long *)0x400280E0)) -#define PWM0_2_GENB_R (*((volatile unsigned long *)0x400280E4)) -#define PWM0_2_DBCTL_R (*((volatile unsigned long *)0x400280E8)) -#define PWM0_2_DBRISE_R (*((volatile unsigned long *)0x400280EC)) -#define PWM0_2_DBFALL_R (*((volatile unsigned long *)0x400280F0)) -#define PWM0_2_FLTSRC0_R (*((volatile unsigned long *)0x400280F4)) -#define PWM0_2_FLTSRC1_R (*((volatile unsigned long *)0x400280F8)) -#define PWM0_2_MINFLTPER_R (*((volatile unsigned long *)0x400280FC)) -#define PWM0_3_CTL_R (*((volatile unsigned long *)0x40028100)) -#define PWM0_3_INTEN_R (*((volatile unsigned long *)0x40028104)) -#define PWM0_3_RIS_R (*((volatile unsigned long *)0x40028108)) -#define PWM0_3_ISC_R (*((volatile unsigned long *)0x4002810C)) -#define PWM0_3_LOAD_R (*((volatile unsigned long *)0x40028110)) -#define PWM0_3_COUNT_R (*((volatile unsigned long *)0x40028114)) -#define PWM0_3_CMPA_R (*((volatile unsigned long *)0x40028118)) -#define PWM0_3_CMPB_R (*((volatile unsigned long *)0x4002811C)) -#define PWM0_3_GENA_R (*((volatile unsigned long *)0x40028120)) -#define PWM0_3_GENB_R (*((volatile unsigned long *)0x40028124)) -#define PWM0_3_DBCTL_R (*((volatile unsigned long *)0x40028128)) -#define PWM0_3_DBRISE_R (*((volatile unsigned long *)0x4002812C)) -#define PWM0_3_DBFALL_R (*((volatile unsigned long *)0x40028130)) -#define PWM0_3_FLTSRC0_R (*((volatile unsigned long *)0x40028134)) -#define PWM0_3_FLTSRC1_R (*((volatile unsigned long *)0x40028138)) -#define PWM0_3_MINFLTPER_R (*((volatile unsigned long *)0x4002813C)) -#define PWM0_0_FLTSEN_R (*((volatile unsigned long *)0x40028800)) -#define PWM0_0_FLTSTAT0_R (*((volatile unsigned long *)0x40028804)) -#define PWM0_0_FLTSTAT1_R (*((volatile unsigned long *)0x40028808)) -#define PWM0_1_FLTSEN_R (*((volatile unsigned long *)0x40028880)) -#define PWM0_1_FLTSTAT0_R (*((volatile unsigned long *)0x40028884)) -#define PWM0_1_FLTSTAT1_R (*((volatile unsigned long *)0x40028888)) -#define PWM0_2_FLTSEN_R (*((volatile unsigned long *)0x40028900)) -#define PWM0_2_FLTSTAT0_R (*((volatile unsigned long *)0x40028904)) -#define PWM0_2_FLTSTAT1_R (*((volatile unsigned long *)0x40028908)) -#define PWM0_3_FLTSEN_R (*((volatile unsigned long *)0x40028980)) -#define PWM0_3_FLTSTAT0_R (*((volatile unsigned long *)0x40028984)) -#define PWM0_3_FLTSTAT1_R (*((volatile unsigned long *)0x40028988)) -#define PWM0_PP_R (*((volatile unsigned long *)0x40028FC0)) -#define PWM0_PC_R (*((volatile unsigned long *)0x40028FC4)) - -//***************************************************************************** -// -// PWM registers (PWM1) -// -//***************************************************************************** -#define PWM1_CTL_R (*((volatile unsigned long *)0x40029000)) -#define PWM1_SYNC_R (*((volatile unsigned long *)0x40029004)) -#define PWM1_ENABLE_R (*((volatile unsigned long *)0x40029008)) -#define PWM1_INVERT_R (*((volatile unsigned long *)0x4002900C)) -#define PWM1_FAULT_R (*((volatile unsigned long *)0x40029010)) -#define PWM1_INTEN_R (*((volatile unsigned long *)0x40029014)) -#define PWM1_RIS_R (*((volatile unsigned long *)0x40029018)) -#define PWM1_ISC_R (*((volatile unsigned long *)0x4002901C)) -#define PWM1_STATUS_R (*((volatile unsigned long *)0x40029020)) -#define PWM1_FAULTVAL_R (*((volatile unsigned long *)0x40029024)) -#define PWM1_ENUPD_R (*((volatile unsigned long *)0x40029028)) -#define PWM1_0_CTL_R (*((volatile unsigned long *)0x40029040)) -#define PWM1_0_INTEN_R (*((volatile unsigned long *)0x40029044)) -#define PWM1_0_RIS_R (*((volatile unsigned long *)0x40029048)) -#define PWM1_0_ISC_R (*((volatile unsigned long *)0x4002904C)) -#define PWM1_0_LOAD_R (*((volatile unsigned long *)0x40029050)) -#define PWM1_0_COUNT_R (*((volatile unsigned long *)0x40029054)) -#define PWM1_0_CMPA_R (*((volatile unsigned long *)0x40029058)) -#define PWM1_0_CMPB_R (*((volatile unsigned long *)0x4002905C)) -#define PWM1_0_GENA_R (*((volatile unsigned long *)0x40029060)) -#define PWM1_0_GENB_R (*((volatile unsigned long *)0x40029064)) -#define PWM1_0_DBCTL_R (*((volatile unsigned long *)0x40029068)) -#define PWM1_0_DBRISE_R (*((volatile unsigned long *)0x4002906C)) -#define PWM1_0_DBFALL_R (*((volatile unsigned long *)0x40029070)) -#define PWM1_0_FLTSRC0_R (*((volatile unsigned long *)0x40029074)) -#define PWM1_0_FLTSRC1_R (*((volatile unsigned long *)0x40029078)) -#define PWM1_0_MINFLTPER_R (*((volatile unsigned long *)0x4002907C)) -#define PWM1_1_CTL_R (*((volatile unsigned long *)0x40029080)) -#define PWM1_1_INTEN_R (*((volatile unsigned long *)0x40029084)) -#define PWM1_1_RIS_R (*((volatile unsigned long *)0x40029088)) -#define PWM1_1_ISC_R (*((volatile unsigned long *)0x4002908C)) -#define PWM1_1_LOAD_R (*((volatile unsigned long *)0x40029090)) -#define PWM1_1_COUNT_R (*((volatile unsigned long *)0x40029094)) -#define PWM1_1_CMPA_R (*((volatile unsigned long *)0x40029098)) -#define PWM1_1_CMPB_R (*((volatile unsigned long *)0x4002909C)) -#define PWM1_1_GENA_R (*((volatile unsigned long *)0x400290A0)) -#define PWM1_1_GENB_R (*((volatile unsigned long *)0x400290A4)) -#define PWM1_1_DBCTL_R (*((volatile unsigned long *)0x400290A8)) -#define PWM1_1_DBRISE_R (*((volatile unsigned long *)0x400290AC)) -#define PWM1_1_DBFALL_R (*((volatile unsigned long *)0x400290B0)) -#define PWM1_1_FLTSRC0_R (*((volatile unsigned long *)0x400290B4)) -#define PWM1_1_FLTSRC1_R (*((volatile unsigned long *)0x400290B8)) -#define PWM1_1_MINFLTPER_R (*((volatile unsigned long *)0x400290BC)) -#define PWM1_2_CTL_R (*((volatile unsigned long *)0x400290C0)) -#define PWM1_2_INTEN_R (*((volatile unsigned long *)0x400290C4)) -#define PWM1_2_RIS_R (*((volatile unsigned long *)0x400290C8)) -#define PWM1_2_ISC_R (*((volatile unsigned long *)0x400290CC)) -#define PWM1_2_LOAD_R (*((volatile unsigned long *)0x400290D0)) -#define PWM1_2_COUNT_R (*((volatile unsigned long *)0x400290D4)) -#define PWM1_2_CMPA_R (*((volatile unsigned long *)0x400290D8)) -#define PWM1_2_CMPB_R (*((volatile unsigned long *)0x400290DC)) -#define PWM1_2_GENA_R (*((volatile unsigned long *)0x400290E0)) -#define PWM1_2_GENB_R (*((volatile unsigned long *)0x400290E4)) -#define PWM1_2_DBCTL_R (*((volatile unsigned long *)0x400290E8)) -#define PWM1_2_DBRISE_R (*((volatile unsigned long *)0x400290EC)) -#define PWM1_2_DBFALL_R (*((volatile unsigned long *)0x400290F0)) -#define PWM1_2_FLTSRC0_R (*((volatile unsigned long *)0x400290F4)) -#define PWM1_2_FLTSRC1_R (*((volatile unsigned long *)0x400290F8)) -#define PWM1_2_MINFLTPER_R (*((volatile unsigned long *)0x400290FC)) -#define PWM1_3_CTL_R (*((volatile unsigned long *)0x40029100)) -#define PWM1_3_INTEN_R (*((volatile unsigned long *)0x40029104)) -#define PWM1_3_RIS_R (*((volatile unsigned long *)0x40029108)) -#define PWM1_3_ISC_R (*((volatile unsigned long *)0x4002910C)) -#define PWM1_3_LOAD_R (*((volatile unsigned long *)0x40029110)) -#define PWM1_3_COUNT_R (*((volatile unsigned long *)0x40029114)) -#define PWM1_3_CMPA_R (*((volatile unsigned long *)0x40029118)) -#define PWM1_3_CMPB_R (*((volatile unsigned long *)0x4002911C)) -#define PWM1_3_GENA_R (*((volatile unsigned long *)0x40029120)) -#define PWM1_3_GENB_R (*((volatile unsigned long *)0x40029124)) -#define PWM1_3_DBCTL_R (*((volatile unsigned long *)0x40029128)) -#define PWM1_3_DBRISE_R (*((volatile unsigned long *)0x4002912C)) -#define PWM1_3_DBFALL_R (*((volatile unsigned long *)0x40029130)) -#define PWM1_3_FLTSRC0_R (*((volatile unsigned long *)0x40029134)) -#define PWM1_3_FLTSRC1_R (*((volatile unsigned long *)0x40029138)) -#define PWM1_3_MINFLTPER_R (*((volatile unsigned long *)0x4002913C)) -#define PWM1_0_FLTSEN_R (*((volatile unsigned long *)0x40029800)) -#define PWM1_0_FLTSTAT0_R (*((volatile unsigned long *)0x40029804)) -#define PWM1_0_FLTSTAT1_R (*((volatile unsigned long *)0x40029808)) -#define PWM1_1_FLTSEN_R (*((volatile unsigned long *)0x40029880)) -#define PWM1_1_FLTSTAT0_R (*((volatile unsigned long *)0x40029884)) -#define PWM1_1_FLTSTAT1_R (*((volatile unsigned long *)0x40029888)) -#define PWM1_2_FLTSEN_R (*((volatile unsigned long *)0x40029900)) -#define PWM1_2_FLTSTAT0_R (*((volatile unsigned long *)0x40029904)) -#define PWM1_2_FLTSTAT1_R (*((volatile unsigned long *)0x40029908)) -#define PWM1_3_FLTSEN_R (*((volatile unsigned long *)0x40029980)) -#define PWM1_3_FLTSTAT0_R (*((volatile unsigned long *)0x40029984)) -#define PWM1_3_FLTSTAT1_R (*((volatile unsigned long *)0x40029988)) -#define PWM1_PP_R (*((volatile unsigned long *)0x40029FC0)) -#define PWM1_PC_R (*((volatile unsigned long *)0x40029FC4)) - -//***************************************************************************** -// -// QEI registers (QEI0) -// -//***************************************************************************** -#define QEI0_CTL_R (*((volatile unsigned long *)0x4002C000)) -#define QEI0_STAT_R (*((volatile unsigned long *)0x4002C004)) -#define QEI0_POS_R (*((volatile unsigned long *)0x4002C008)) -#define QEI0_MAXPOS_R (*((volatile unsigned long *)0x4002C00C)) -#define QEI0_LOAD_R (*((volatile unsigned long *)0x4002C010)) -#define QEI0_TIME_R (*((volatile unsigned long *)0x4002C014)) -#define QEI0_COUNT_R (*((volatile unsigned long *)0x4002C018)) -#define QEI0_SPEED_R (*((volatile unsigned long *)0x4002C01C)) -#define QEI0_INTEN_R (*((volatile unsigned long *)0x4002C020)) -#define QEI0_RIS_R (*((volatile unsigned long *)0x4002C024)) -#define QEI0_ISC_R (*((volatile unsigned long *)0x4002C028)) - -//***************************************************************************** -// -// QEI registers (QEI1) -// -//***************************************************************************** -#define QEI1_CTL_R (*((volatile unsigned long *)0x4002D000)) -#define QEI1_STAT_R (*((volatile unsigned long *)0x4002D004)) -#define QEI1_POS_R (*((volatile unsigned long *)0x4002D008)) -#define QEI1_MAXPOS_R (*((volatile unsigned long *)0x4002D00C)) -#define QEI1_LOAD_R (*((volatile unsigned long *)0x4002D010)) -#define QEI1_TIME_R (*((volatile unsigned long *)0x4002D014)) -#define QEI1_COUNT_R (*((volatile unsigned long *)0x4002D018)) -#define QEI1_SPEED_R (*((volatile unsigned long *)0x4002D01C)) -#define QEI1_INTEN_R (*((volatile unsigned long *)0x4002D020)) -#define QEI1_RIS_R (*((volatile unsigned long *)0x4002D024)) -#define QEI1_ISC_R (*((volatile unsigned long *)0x4002D028)) - -//***************************************************************************** -// -// Timer registers (TIMER0) -// -//***************************************************************************** -#define TIMER0_CFG_R (*((volatile unsigned long *)0x40030000)) -#define TIMER0_TAMR_R (*((volatile unsigned long *)0x40030004)) -#define TIMER0_TBMR_R (*((volatile unsigned long *)0x40030008)) -#define TIMER0_CTL_R (*((volatile unsigned long *)0x4003000C)) -#define TIMER0_SYNC_R (*((volatile unsigned long *)0x40030010)) -#define TIMER0_IMR_R (*((volatile unsigned long *)0x40030018)) -#define TIMER0_RIS_R (*((volatile unsigned long *)0x4003001C)) -#define TIMER0_MIS_R (*((volatile unsigned long *)0x40030020)) -#define TIMER0_ICR_R (*((volatile unsigned long *)0x40030024)) -#define TIMER0_TAILR_R (*((volatile unsigned long *)0x40030028)) -#define TIMER0_TBILR_R (*((volatile unsigned long *)0x4003002C)) -#define TIMER0_TAMATCHR_R (*((volatile unsigned long *)0x40030030)) -#define TIMER0_TBMATCHR_R (*((volatile unsigned long *)0x40030034)) -#define TIMER0_TAPR_R (*((volatile unsigned long *)0x40030038)) -#define TIMER0_TBPR_R (*((volatile unsigned long *)0x4003003C)) -#define TIMER0_TAPMR_R (*((volatile unsigned long *)0x40030040)) -#define TIMER0_TBPMR_R (*((volatile unsigned long *)0x40030044)) -#define TIMER0_TAR_R (*((volatile unsigned long *)0x40030048)) -#define TIMER0_TBR_R (*((volatile unsigned long *)0x4003004C)) -#define TIMER0_TAV_R (*((volatile unsigned long *)0x40030050)) -#define TIMER0_TBV_R (*((volatile unsigned long *)0x40030054)) -#define TIMER0_RTCPD_R (*((volatile unsigned long *)0x40030058)) -#define TIMER0_TAPS_R (*((volatile unsigned long *)0x4003005C)) -#define TIMER0_TBPS_R (*((volatile unsigned long *)0x40030060)) -#define TIMER0_TAPV_R (*((volatile unsigned long *)0x40030064)) -#define TIMER0_TBPV_R (*((volatile unsigned long *)0x40030068)) -#define TIMER0_PP_R (*((volatile unsigned long *)0x40030FC0)) - -//***************************************************************************** -// -// Timer registers (TIMER1) -// -//***************************************************************************** -#define TIMER1_CFG_R (*((volatile unsigned long *)0x40031000)) -#define TIMER1_TAMR_R (*((volatile unsigned long *)0x40031004)) -#define TIMER1_TBMR_R (*((volatile unsigned long *)0x40031008)) -#define TIMER1_CTL_R (*((volatile unsigned long *)0x4003100C)) -#define TIMER1_SYNC_R (*((volatile unsigned long *)0x40031010)) -#define TIMER1_IMR_R (*((volatile unsigned long *)0x40031018)) -#define TIMER1_RIS_R (*((volatile unsigned long *)0x4003101C)) -#define TIMER1_MIS_R (*((volatile unsigned long *)0x40031020)) -#define TIMER1_ICR_R (*((volatile unsigned long *)0x40031024)) -#define TIMER1_TAILR_R (*((volatile unsigned long *)0x40031028)) -#define TIMER1_TBILR_R (*((volatile unsigned long *)0x4003102C)) -#define TIMER1_TAMATCHR_R (*((volatile unsigned long *)0x40031030)) -#define TIMER1_TBMATCHR_R (*((volatile unsigned long *)0x40031034)) -#define TIMER1_TAPR_R (*((volatile unsigned long *)0x40031038)) -#define TIMER1_TBPR_R (*((volatile unsigned long *)0x4003103C)) -#define TIMER1_TAPMR_R (*((volatile unsigned long *)0x40031040)) -#define TIMER1_TBPMR_R (*((volatile unsigned long *)0x40031044)) -#define TIMER1_TAR_R (*((volatile unsigned long *)0x40031048)) -#define TIMER1_TBR_R (*((volatile unsigned long *)0x4003104C)) -#define TIMER1_TAV_R (*((volatile unsigned long *)0x40031050)) -#define TIMER1_TBV_R (*((volatile unsigned long *)0x40031054)) -#define TIMER1_RTCPD_R (*((volatile unsigned long *)0x40031058)) -#define TIMER1_TAPS_R (*((volatile unsigned long *)0x4003105C)) -#define TIMER1_TBPS_R (*((volatile unsigned long *)0x40031060)) -#define TIMER1_TAPV_R (*((volatile unsigned long *)0x40031064)) -#define TIMER1_TBPV_R (*((volatile unsigned long *)0x40031068)) -#define TIMER1_PP_R (*((volatile unsigned long *)0x40031FC0)) - -//***************************************************************************** -// -// Timer registers (TIMER2) -// -//***************************************************************************** -#define TIMER2_CFG_R (*((volatile unsigned long *)0x40032000)) -#define TIMER2_TAMR_R (*((volatile unsigned long *)0x40032004)) -#define TIMER2_TBMR_R (*((volatile unsigned long *)0x40032008)) -#define TIMER2_CTL_R (*((volatile unsigned long *)0x4003200C)) -#define TIMER2_SYNC_R (*((volatile unsigned long *)0x40032010)) -#define TIMER2_IMR_R (*((volatile unsigned long *)0x40032018)) -#define TIMER2_RIS_R (*((volatile unsigned long *)0x4003201C)) -#define TIMER2_MIS_R (*((volatile unsigned long *)0x40032020)) -#define TIMER2_ICR_R (*((volatile unsigned long *)0x40032024)) -#define TIMER2_TAILR_R (*((volatile unsigned long *)0x40032028)) -#define TIMER2_TBILR_R (*((volatile unsigned long *)0x4003202C)) -#define TIMER2_TAMATCHR_R (*((volatile unsigned long *)0x40032030)) -#define TIMER2_TBMATCHR_R (*((volatile unsigned long *)0x40032034)) -#define TIMER2_TAPR_R (*((volatile unsigned long *)0x40032038)) -#define TIMER2_TBPR_R (*((volatile unsigned long *)0x4003203C)) -#define TIMER2_TAPMR_R (*((volatile unsigned long *)0x40032040)) -#define TIMER2_TBPMR_R (*((volatile unsigned long *)0x40032044)) -#define TIMER2_TAR_R (*((volatile unsigned long *)0x40032048)) -#define TIMER2_TBR_R (*((volatile unsigned long *)0x4003204C)) -#define TIMER2_TAV_R (*((volatile unsigned long *)0x40032050)) -#define TIMER2_TBV_R (*((volatile unsigned long *)0x40032054)) -#define TIMER2_RTCPD_R (*((volatile unsigned long *)0x40032058)) -#define TIMER2_TAPS_R (*((volatile unsigned long *)0x4003205C)) -#define TIMER2_TBPS_R (*((volatile unsigned long *)0x40032060)) -#define TIMER2_TAPV_R (*((volatile unsigned long *)0x40032064)) -#define TIMER2_TBPV_R (*((volatile unsigned long *)0x40032068)) -#define TIMER2_PP_R (*((volatile unsigned long *)0x40032FC0)) - -//***************************************************************************** -// -// Timer registers (TIMER3) -// -//***************************************************************************** -#define TIMER3_CFG_R (*((volatile unsigned long *)0x40033000)) -#define TIMER3_TAMR_R (*((volatile unsigned long *)0x40033004)) -#define TIMER3_TBMR_R (*((volatile unsigned long *)0x40033008)) -#define TIMER3_CTL_R (*((volatile unsigned long *)0x4003300C)) -#define TIMER3_SYNC_R (*((volatile unsigned long *)0x40033010)) -#define TIMER3_IMR_R (*((volatile unsigned long *)0x40033018)) -#define TIMER3_RIS_R (*((volatile unsigned long *)0x4003301C)) -#define TIMER3_MIS_R (*((volatile unsigned long *)0x40033020)) -#define TIMER3_ICR_R (*((volatile unsigned long *)0x40033024)) -#define TIMER3_TAILR_R (*((volatile unsigned long *)0x40033028)) -#define TIMER3_TBILR_R (*((volatile unsigned long *)0x4003302C)) -#define TIMER3_TAMATCHR_R (*((volatile unsigned long *)0x40033030)) -#define TIMER3_TBMATCHR_R (*((volatile unsigned long *)0x40033034)) -#define TIMER3_TAPR_R (*((volatile unsigned long *)0x40033038)) -#define TIMER3_TBPR_R (*((volatile unsigned long *)0x4003303C)) -#define TIMER3_TAPMR_R (*((volatile unsigned long *)0x40033040)) -#define TIMER3_TBPMR_R (*((volatile unsigned long *)0x40033044)) -#define TIMER3_TAR_R (*((volatile unsigned long *)0x40033048)) -#define TIMER3_TBR_R (*((volatile unsigned long *)0x4003304C)) -#define TIMER3_TAV_R (*((volatile unsigned long *)0x40033050)) -#define TIMER3_TBV_R (*((volatile unsigned long *)0x40033054)) -#define TIMER3_RTCPD_R (*((volatile unsigned long *)0x40033058)) -#define TIMER3_TAPS_R (*((volatile unsigned long *)0x4003305C)) -#define TIMER3_TBPS_R (*((volatile unsigned long *)0x40033060)) -#define TIMER3_TAPV_R (*((volatile unsigned long *)0x40033064)) -#define TIMER3_TBPV_R (*((volatile unsigned long *)0x40033068)) -#define TIMER3_PP_R (*((volatile unsigned long *)0x40033FC0)) - -//***************************************************************************** -// -// Timer registers (TIMER4) -// -//***************************************************************************** -#define TIMER4_CFG_R (*((volatile unsigned long *)0x40034000)) -#define TIMER4_TAMR_R (*((volatile unsigned long *)0x40034004)) -#define TIMER4_TBMR_R (*((volatile unsigned long *)0x40034008)) -#define TIMER4_CTL_R (*((volatile unsigned long *)0x4003400C)) -#define TIMER4_SYNC_R (*((volatile unsigned long *)0x40034010)) -#define TIMER4_IMR_R (*((volatile unsigned long *)0x40034018)) -#define TIMER4_RIS_R (*((volatile unsigned long *)0x4003401C)) -#define TIMER4_MIS_R (*((volatile unsigned long *)0x40034020)) -#define TIMER4_ICR_R (*((volatile unsigned long *)0x40034024)) -#define TIMER4_TAILR_R (*((volatile unsigned long *)0x40034028)) -#define TIMER4_TBILR_R (*((volatile unsigned long *)0x4003402C)) -#define TIMER4_TAMATCHR_R (*((volatile unsigned long *)0x40034030)) -#define TIMER4_TBMATCHR_R (*((volatile unsigned long *)0x40034034)) -#define TIMER4_TAPR_R (*((volatile unsigned long *)0x40034038)) -#define TIMER4_TBPR_R (*((volatile unsigned long *)0x4003403C)) -#define TIMER4_TAPMR_R (*((volatile unsigned long *)0x40034040)) -#define TIMER4_TBPMR_R (*((volatile unsigned long *)0x40034044)) -#define TIMER4_TAR_R (*((volatile unsigned long *)0x40034048)) -#define TIMER4_TBR_R (*((volatile unsigned long *)0x4003404C)) -#define TIMER4_TAV_R (*((volatile unsigned long *)0x40034050)) -#define TIMER4_TBV_R (*((volatile unsigned long *)0x40034054)) -#define TIMER4_RTCPD_R (*((volatile unsigned long *)0x40034058)) -#define TIMER4_TAPS_R (*((volatile unsigned long *)0x4003405C)) -#define TIMER4_TBPS_R (*((volatile unsigned long *)0x40034060)) -#define TIMER4_TAPV_R (*((volatile unsigned long *)0x40034064)) -#define TIMER4_TBPV_R (*((volatile unsigned long *)0x40034068)) -#define TIMER4_PP_R (*((volatile unsigned long *)0x40034FC0)) - -//***************************************************************************** -// -// Timer registers (TIMER5) -// -//***************************************************************************** -#define TIMER5_CFG_R (*((volatile unsigned long *)0x40035000)) -#define TIMER5_TAMR_R (*((volatile unsigned long *)0x40035004)) -#define TIMER5_TBMR_R (*((volatile unsigned long *)0x40035008)) -#define TIMER5_CTL_R (*((volatile unsigned long *)0x4003500C)) -#define TIMER5_SYNC_R (*((volatile unsigned long *)0x40035010)) -#define TIMER5_IMR_R (*((volatile unsigned long *)0x40035018)) -#define TIMER5_RIS_R (*((volatile unsigned long *)0x4003501C)) -#define TIMER5_MIS_R (*((volatile unsigned long *)0x40035020)) -#define TIMER5_ICR_R (*((volatile unsigned long *)0x40035024)) -#define TIMER5_TAILR_R (*((volatile unsigned long *)0x40035028)) -#define TIMER5_TBILR_R (*((volatile unsigned long *)0x4003502C)) -#define TIMER5_TAMATCHR_R (*((volatile unsigned long *)0x40035030)) -#define TIMER5_TBMATCHR_R (*((volatile unsigned long *)0x40035034)) -#define TIMER5_TAPR_R (*((volatile unsigned long *)0x40035038)) -#define TIMER5_TBPR_R (*((volatile unsigned long *)0x4003503C)) -#define TIMER5_TAPMR_R (*((volatile unsigned long *)0x40035040)) -#define TIMER5_TBPMR_R (*((volatile unsigned long *)0x40035044)) -#define TIMER5_TAR_R (*((volatile unsigned long *)0x40035048)) -#define TIMER5_TBR_R (*((volatile unsigned long *)0x4003504C)) -#define TIMER5_TAV_R (*((volatile unsigned long *)0x40035050)) -#define TIMER5_TBV_R (*((volatile unsigned long *)0x40035054)) -#define TIMER5_RTCPD_R (*((volatile unsigned long *)0x40035058)) -#define TIMER5_TAPS_R (*((volatile unsigned long *)0x4003505C)) -#define TIMER5_TBPS_R (*((volatile unsigned long *)0x40035060)) -#define TIMER5_TAPV_R (*((volatile unsigned long *)0x40035064)) -#define TIMER5_TBPV_R (*((volatile unsigned long *)0x40035068)) -#define TIMER5_PP_R (*((volatile unsigned long *)0x40035FC0)) - -//***************************************************************************** -// -// Timer registers (WTIMER0) -// -//***************************************************************************** -#define WTIMER0_CFG_R (*((volatile unsigned long *)0x40036000)) -#define WTIMER0_TAMR_R (*((volatile unsigned long *)0x40036004)) -#define WTIMER0_TBMR_R (*((volatile unsigned long *)0x40036008)) -#define WTIMER0_CTL_R (*((volatile unsigned long *)0x4003600C)) -#define WTIMER0_SYNC_R (*((volatile unsigned long *)0x40036010)) -#define WTIMER0_IMR_R (*((volatile unsigned long *)0x40036018)) -#define WTIMER0_RIS_R (*((volatile unsigned long *)0x4003601C)) -#define WTIMER0_MIS_R (*((volatile unsigned long *)0x40036020)) -#define WTIMER0_ICR_R (*((volatile unsigned long *)0x40036024)) -#define WTIMER0_TAILR_R (*((volatile unsigned long *)0x40036028)) -#define WTIMER0_TBILR_R (*((volatile unsigned long *)0x4003602C)) -#define WTIMER0_TAMATCHR_R (*((volatile unsigned long *)0x40036030)) -#define WTIMER0_TBMATCHR_R (*((volatile unsigned long *)0x40036034)) -#define WTIMER0_TAPR_R (*((volatile unsigned long *)0x40036038)) -#define WTIMER0_TBPR_R (*((volatile unsigned long *)0x4003603C)) -#define WTIMER0_TAPMR_R (*((volatile unsigned long *)0x40036040)) -#define WTIMER0_TBPMR_R (*((volatile unsigned long *)0x40036044)) -#define WTIMER0_TAR_R (*((volatile unsigned long *)0x40036048)) -#define WTIMER0_TBR_R (*((volatile unsigned long *)0x4003604C)) -#define WTIMER0_TAV_R (*((volatile unsigned long *)0x40036050)) -#define WTIMER0_TBV_R (*((volatile unsigned long *)0x40036054)) -#define WTIMER0_RTCPD_R (*((volatile unsigned long *)0x40036058)) -#define WTIMER0_TAPS_R (*((volatile unsigned long *)0x4003605C)) -#define WTIMER0_TBPS_R (*((volatile unsigned long *)0x40036060)) -#define WTIMER0_TAPV_R (*((volatile unsigned long *)0x40036064)) -#define WTIMER0_TBPV_R (*((volatile unsigned long *)0x40036068)) -#define WTIMER0_PP_R (*((volatile unsigned long *)0x40036FC0)) - -//***************************************************************************** -// -// Timer registers (WTIMER1) -// -//***************************************************************************** -#define WTIMER1_CFG_R (*((volatile unsigned long *)0x40037000)) -#define WTIMER1_TAMR_R (*((volatile unsigned long *)0x40037004)) -#define WTIMER1_TBMR_R (*((volatile unsigned long *)0x40037008)) -#define WTIMER1_CTL_R (*((volatile unsigned long *)0x4003700C)) -#define WTIMER1_SYNC_R (*((volatile unsigned long *)0x40037010)) -#define WTIMER1_IMR_R (*((volatile unsigned long *)0x40037018)) -#define WTIMER1_RIS_R (*((volatile unsigned long *)0x4003701C)) -#define WTIMER1_MIS_R (*((volatile unsigned long *)0x40037020)) -#define WTIMER1_ICR_R (*((volatile unsigned long *)0x40037024)) -#define WTIMER1_TAILR_R (*((volatile unsigned long *)0x40037028)) -#define WTIMER1_TBILR_R (*((volatile unsigned long *)0x4003702C)) -#define WTIMER1_TAMATCHR_R (*((volatile unsigned long *)0x40037030)) -#define WTIMER1_TBMATCHR_R (*((volatile unsigned long *)0x40037034)) -#define WTIMER1_TAPR_R (*((volatile unsigned long *)0x40037038)) -#define WTIMER1_TBPR_R (*((volatile unsigned long *)0x4003703C)) -#define WTIMER1_TAPMR_R (*((volatile unsigned long *)0x40037040)) -#define WTIMER1_TBPMR_R (*((volatile unsigned long *)0x40037044)) -#define WTIMER1_TAR_R (*((volatile unsigned long *)0x40037048)) -#define WTIMER1_TBR_R (*((volatile unsigned long *)0x4003704C)) -#define WTIMER1_TAV_R (*((volatile unsigned long *)0x40037050)) -#define WTIMER1_TBV_R (*((volatile unsigned long *)0x40037054)) -#define WTIMER1_RTCPD_R (*((volatile unsigned long *)0x40037058)) -#define WTIMER1_TAPS_R (*((volatile unsigned long *)0x4003705C)) -#define WTIMER1_TBPS_R (*((volatile unsigned long *)0x40037060)) -#define WTIMER1_TAPV_R (*((volatile unsigned long *)0x40037064)) -#define WTIMER1_TBPV_R (*((volatile unsigned long *)0x40037068)) -#define WTIMER1_PP_R (*((volatile unsigned long *)0x40037FC0)) - -//***************************************************************************** -// -// ADC registers (ADC0) -// -//***************************************************************************** -#define ADC0_ACTSS_R (*((volatile unsigned long *)0x40038000)) -#define ADC0_RIS_R (*((volatile unsigned long *)0x40038004)) -#define ADC0_IM_R (*((volatile unsigned long *)0x40038008)) -#define ADC0_ISC_R (*((volatile unsigned long *)0x4003800C)) -#define ADC0_OSTAT_R (*((volatile unsigned long *)0x40038010)) -#define ADC0_EMUX_R (*((volatile unsigned long *)0x40038014)) -#define ADC0_USTAT_R (*((volatile unsigned long *)0x40038018)) -#define ADC0_TSSEL_R (*((volatile unsigned long *)0x4003801C)) -#define ADC0_SSPRI_R (*((volatile unsigned long *)0x40038020)) -#define ADC0_SPC_R (*((volatile unsigned long *)0x40038024)) -#define ADC0_PSSI_R (*((volatile unsigned long *)0x40038028)) -#define ADC0_SAC_R (*((volatile unsigned long *)0x40038030)) -#define ADC0_DCISC_R (*((volatile unsigned long *)0x40038034)) -#define ADC0_CTL_R (*((volatile unsigned long *)0x40038038)) -#define ADC0_SSMUX0_R (*((volatile unsigned long *)0x40038040)) -#define ADC0_SSCTL0_R (*((volatile unsigned long *)0x40038044)) -#define ADC0_SSFIFO0_R (*((volatile unsigned long *)0x40038048)) -#define ADC0_SSFSTAT0_R (*((volatile unsigned long *)0x4003804C)) -#define ADC0_SSOP0_R (*((volatile unsigned long *)0x40038050)) -#define ADC0_SSDC0_R (*((volatile unsigned long *)0x40038054)) -#define ADC0_SSEMUX0_R (*((volatile unsigned long *)0x40038058)) -#define ADC0_SSMUX1_R (*((volatile unsigned long *)0x40038060)) -#define ADC0_SSCTL1_R (*((volatile unsigned long *)0x40038064)) -#define ADC0_SSFIFO1_R (*((volatile unsigned long *)0x40038068)) -#define ADC0_SSFSTAT1_R (*((volatile unsigned long *)0x4003806C)) -#define ADC0_SSOP1_R (*((volatile unsigned long *)0x40038070)) -#define ADC0_SSDC1_R (*((volatile unsigned long *)0x40038074)) -#define ADC0_SSEMUX1_R (*((volatile unsigned long *)0x40038078)) -#define ADC0_SSMUX2_R (*((volatile unsigned long *)0x40038080)) -#define ADC0_SSCTL2_R (*((volatile unsigned long *)0x40038084)) -#define ADC0_SSFIFO2_R (*((volatile unsigned long *)0x40038088)) -#define ADC0_SSFSTAT2_R (*((volatile unsigned long *)0x4003808C)) -#define ADC0_SSOP2_R (*((volatile unsigned long *)0x40038090)) -#define ADC0_SSDC2_R (*((volatile unsigned long *)0x40038094)) -#define ADC0_SSEMUX2_R (*((volatile unsigned long *)0x40038098)) -#define ADC0_SSMUX3_R (*((volatile unsigned long *)0x400380A0)) -#define ADC0_SSCTL3_R (*((volatile unsigned long *)0x400380A4)) -#define ADC0_SSFIFO3_R (*((volatile unsigned long *)0x400380A8)) -#define ADC0_SSFSTAT3_R (*((volatile unsigned long *)0x400380AC)) -#define ADC0_SSOP3_R (*((volatile unsigned long *)0x400380B0)) -#define ADC0_SSDC3_R (*((volatile unsigned long *)0x400380B4)) -#define ADC0_SSEMUX3_R (*((volatile unsigned long *)0x400380B8)) -#define ADC0_DCRIC_R (*((volatile unsigned long *)0x40038D00)) -#define ADC0_DCCTL0_R (*((volatile unsigned long *)0x40038E00)) -#define ADC0_DCCTL1_R (*((volatile unsigned long *)0x40038E04)) -#define ADC0_DCCTL2_R (*((volatile unsigned long *)0x40038E08)) -#define ADC0_DCCTL3_R (*((volatile unsigned long *)0x40038E0C)) -#define ADC0_DCCTL4_R (*((volatile unsigned long *)0x40038E10)) -#define ADC0_DCCTL5_R (*((volatile unsigned long *)0x40038E14)) -#define ADC0_DCCTL6_R (*((volatile unsigned long *)0x40038E18)) -#define ADC0_DCCTL7_R (*((volatile unsigned long *)0x40038E1C)) -#define ADC0_DCCMP0_R (*((volatile unsigned long *)0x40038E40)) -#define ADC0_DCCMP1_R (*((volatile unsigned long *)0x40038E44)) -#define ADC0_DCCMP2_R (*((volatile unsigned long *)0x40038E48)) -#define ADC0_DCCMP3_R (*((volatile unsigned long *)0x40038E4C)) -#define ADC0_DCCMP4_R (*((volatile unsigned long *)0x40038E50)) -#define ADC0_DCCMP5_R (*((volatile unsigned long *)0x40038E54)) -#define ADC0_DCCMP6_R (*((volatile unsigned long *)0x40038E58)) -#define ADC0_DCCMP7_R (*((volatile unsigned long *)0x40038E5C)) -#define ADC0_PP_R (*((volatile unsigned long *)0x40038FC0)) -#define ADC0_PC_R (*((volatile unsigned long *)0x40038FC4)) -#define ADC0_CC_R (*((volatile unsigned long *)0x40038FC8)) - -//***************************************************************************** -// -// ADC registers (ADC1) -// -//***************************************************************************** -#define ADC1_ACTSS_R (*((volatile unsigned long *)0x40039000)) -#define ADC1_RIS_R (*((volatile unsigned long *)0x40039004)) -#define ADC1_IM_R (*((volatile unsigned long *)0x40039008)) -#define ADC1_ISC_R (*((volatile unsigned long *)0x4003900C)) -#define ADC1_OSTAT_R (*((volatile unsigned long *)0x40039010)) -#define ADC1_EMUX_R (*((volatile unsigned long *)0x40039014)) -#define ADC1_USTAT_R (*((volatile unsigned long *)0x40039018)) -#define ADC1_TSSEL_R (*((volatile unsigned long *)0x4003901C)) -#define ADC1_SSPRI_R (*((volatile unsigned long *)0x40039020)) -#define ADC1_SPC_R (*((volatile unsigned long *)0x40039024)) -#define ADC1_PSSI_R (*((volatile unsigned long *)0x40039028)) -#define ADC1_SAC_R (*((volatile unsigned long *)0x40039030)) -#define ADC1_DCISC_R (*((volatile unsigned long *)0x40039034)) -#define ADC1_CTL_R (*((volatile unsigned long *)0x40039038)) -#define ADC1_SSMUX0_R (*((volatile unsigned long *)0x40039040)) -#define ADC1_SSCTL0_R (*((volatile unsigned long *)0x40039044)) -#define ADC1_SSFIFO0_R (*((volatile unsigned long *)0x40039048)) -#define ADC1_SSFSTAT0_R (*((volatile unsigned long *)0x4003904C)) -#define ADC1_SSOP0_R (*((volatile unsigned long *)0x40039050)) -#define ADC1_SSDC0_R (*((volatile unsigned long *)0x40039054)) -#define ADC1_SSEMUX0_R (*((volatile unsigned long *)0x40039058)) -#define ADC1_SSMUX1_R (*((volatile unsigned long *)0x40039060)) -#define ADC1_SSCTL1_R (*((volatile unsigned long *)0x40039064)) -#define ADC1_SSFIFO1_R (*((volatile unsigned long *)0x40039068)) -#define ADC1_SSFSTAT1_R (*((volatile unsigned long *)0x4003906C)) -#define ADC1_SSOP1_R (*((volatile unsigned long *)0x40039070)) -#define ADC1_SSDC1_R (*((volatile unsigned long *)0x40039074)) -#define ADC1_SSEMUX1_R (*((volatile unsigned long *)0x40039078)) -#define ADC1_SSMUX2_R (*((volatile unsigned long *)0x40039080)) -#define ADC1_SSCTL2_R (*((volatile unsigned long *)0x40039084)) -#define ADC1_SSFIFO2_R (*((volatile unsigned long *)0x40039088)) -#define ADC1_SSFSTAT2_R (*((volatile unsigned long *)0x4003908C)) -#define ADC1_SSOP2_R (*((volatile unsigned long *)0x40039090)) -#define ADC1_SSDC2_R (*((volatile unsigned long *)0x40039094)) -#define ADC1_SSEMUX2_R (*((volatile unsigned long *)0x40039098)) -#define ADC1_SSMUX3_R (*((volatile unsigned long *)0x400390A0)) -#define ADC1_SSCTL3_R (*((volatile unsigned long *)0x400390A4)) -#define ADC1_SSFIFO3_R (*((volatile unsigned long *)0x400390A8)) -#define ADC1_SSFSTAT3_R (*((volatile unsigned long *)0x400390AC)) -#define ADC1_SSOP3_R (*((volatile unsigned long *)0x400390B0)) -#define ADC1_SSDC3_R (*((volatile unsigned long *)0x400390B4)) -#define ADC1_SSEMUX3_R (*((volatile unsigned long *)0x400390B8)) -#define ADC1_DCRIC_R (*((volatile unsigned long *)0x40039D00)) -#define ADC1_DCCTL0_R (*((volatile unsigned long *)0x40039E00)) -#define ADC1_DCCTL1_R (*((volatile unsigned long *)0x40039E04)) -#define ADC1_DCCTL2_R (*((volatile unsigned long *)0x40039E08)) -#define ADC1_DCCTL3_R (*((volatile unsigned long *)0x40039E0C)) -#define ADC1_DCCTL4_R (*((volatile unsigned long *)0x40039E10)) -#define ADC1_DCCTL5_R (*((volatile unsigned long *)0x40039E14)) -#define ADC1_DCCTL6_R (*((volatile unsigned long *)0x40039E18)) -#define ADC1_DCCTL7_R (*((volatile unsigned long *)0x40039E1C)) -#define ADC1_DCCMP0_R (*((volatile unsigned long *)0x40039E40)) -#define ADC1_DCCMP1_R (*((volatile unsigned long *)0x40039E44)) -#define ADC1_DCCMP2_R (*((volatile unsigned long *)0x40039E48)) -#define ADC1_DCCMP3_R (*((volatile unsigned long *)0x40039E4C)) -#define ADC1_DCCMP4_R (*((volatile unsigned long *)0x40039E50)) -#define ADC1_DCCMP5_R (*((volatile unsigned long *)0x40039E54)) -#define ADC1_DCCMP6_R (*((volatile unsigned long *)0x40039E58)) -#define ADC1_DCCMP7_R (*((volatile unsigned long *)0x40039E5C)) -#define ADC1_PP_R (*((volatile unsigned long *)0x40039FC0)) -#define ADC1_PC_R (*((volatile unsigned long *)0x40039FC4)) -#define ADC1_CC_R (*((volatile unsigned long *)0x40039FC8)) - -//***************************************************************************** -// -// Comparator registers (COMP) -// -//***************************************************************************** -#define COMP_ACMIS_R (*((volatile unsigned long *)0x4003C000)) -#define COMP_ACRIS_R (*((volatile unsigned long *)0x4003C004)) -#define COMP_ACINTEN_R (*((volatile unsigned long *)0x4003C008)) -#define COMP_ACREFCTL_R (*((volatile unsigned long *)0x4003C010)) -#define COMP_ACSTAT0_R (*((volatile unsigned long *)0x4003C020)) -#define COMP_ACCTL0_R (*((volatile unsigned long *)0x4003C024)) -#define COMP_ACSTAT1_R (*((volatile unsigned long *)0x4003C040)) -#define COMP_ACCTL1_R (*((volatile unsigned long *)0x4003C044)) -#define COMP_ACSTAT2_R (*((volatile unsigned long *)0x4003C060)) -#define COMP_ACCTL2_R (*((volatile unsigned long *)0x4003C064)) -#define COMP_PP_R (*((volatile unsigned long *)0x4003CFC0)) - -//***************************************************************************** -// -// GPIO registers (PORTJ) -// -//***************************************************************************** -#define GPIO_PORTJ_DATA_BITS_R ((volatile unsigned long *)0x4003D000) -#define GPIO_PORTJ_DATA_R (*((volatile unsigned long *)0x4003D3FC)) -#define GPIO_PORTJ_DIR_R (*((volatile unsigned long *)0x4003D400)) -#define GPIO_PORTJ_IS_R (*((volatile unsigned long *)0x4003D404)) -#define GPIO_PORTJ_IBE_R (*((volatile unsigned long *)0x4003D408)) -#define GPIO_PORTJ_IEV_R (*((volatile unsigned long *)0x4003D40C)) -#define GPIO_PORTJ_IM_R (*((volatile unsigned long *)0x4003D410)) -#define GPIO_PORTJ_RIS_R (*((volatile unsigned long *)0x4003D414)) -#define GPIO_PORTJ_MIS_R (*((volatile unsigned long *)0x4003D418)) -#define GPIO_PORTJ_ICR_R (*((volatile unsigned long *)0x4003D41C)) -#define GPIO_PORTJ_AFSEL_R (*((volatile unsigned long *)0x4003D420)) -#define GPIO_PORTJ_DR2R_R (*((volatile unsigned long *)0x4003D500)) -#define GPIO_PORTJ_DR4R_R (*((volatile unsigned long *)0x4003D504)) -#define GPIO_PORTJ_DR8R_R (*((volatile unsigned long *)0x4003D508)) -#define GPIO_PORTJ_ODR_R (*((volatile unsigned long *)0x4003D50C)) -#define GPIO_PORTJ_PUR_R (*((volatile unsigned long *)0x4003D510)) -#define GPIO_PORTJ_PDR_R (*((volatile unsigned long *)0x4003D514)) -#define GPIO_PORTJ_SLR_R (*((volatile unsigned long *)0x4003D518)) -#define GPIO_PORTJ_DEN_R (*((volatile unsigned long *)0x4003D51C)) -#define GPIO_PORTJ_LOCK_R (*((volatile unsigned long *)0x4003D520)) -#define GPIO_PORTJ_CR_R (*((volatile unsigned long *)0x4003D524)) -#define GPIO_PORTJ_AMSEL_R (*((volatile unsigned long *)0x4003D528)) -#define GPIO_PORTJ_PCTL_R (*((volatile unsigned long *)0x4003D52C)) -#define GPIO_PORTJ_ADCCTL_R (*((volatile unsigned long *)0x4003D530)) -#define GPIO_PORTJ_DMACTL_R (*((volatile unsigned long *)0x4003D534)) -#define GPIO_PORTJ_SI_R (*((volatile unsigned long *)0x4003D538)) - -//***************************************************************************** -// -// CAN registers (CAN0) -// -//***************************************************************************** -#define CAN0_CTL_R (*((volatile unsigned long *)0x40040000)) -#define CAN0_STS_R (*((volatile unsigned long *)0x40040004)) -#define CAN0_ERR_R (*((volatile unsigned long *)0x40040008)) -#define CAN0_BIT_R (*((volatile unsigned long *)0x4004000C)) -#define CAN0_INT_R (*((volatile unsigned long *)0x40040010)) -#define CAN0_TST_R (*((volatile unsigned long *)0x40040014)) -#define CAN0_BRPE_R (*((volatile unsigned long *)0x40040018)) -#define CAN0_IF1CRQ_R (*((volatile unsigned long *)0x40040020)) -#define CAN0_IF1CMSK_R (*((volatile unsigned long *)0x40040024)) -#define CAN0_IF1MSK1_R (*((volatile unsigned long *)0x40040028)) -#define CAN0_IF1MSK2_R (*((volatile unsigned long *)0x4004002C)) -#define CAN0_IF1ARB1_R (*((volatile unsigned long *)0x40040030)) -#define CAN0_IF1ARB2_R (*((volatile unsigned long *)0x40040034)) -#define CAN0_IF1MCTL_R (*((volatile unsigned long *)0x40040038)) -#define CAN0_IF1DA1_R (*((volatile unsigned long *)0x4004003C)) -#define CAN0_IF1DA2_R (*((volatile unsigned long *)0x40040040)) -#define CAN0_IF1DB1_R (*((volatile unsigned long *)0x40040044)) -#define CAN0_IF1DB2_R (*((volatile unsigned long *)0x40040048)) -#define CAN0_IF2CRQ_R (*((volatile unsigned long *)0x40040080)) -#define CAN0_IF2CMSK_R (*((volatile unsigned long *)0x40040084)) -#define CAN0_IF2MSK1_R (*((volatile unsigned long *)0x40040088)) -#define CAN0_IF2MSK2_R (*((volatile unsigned long *)0x4004008C)) -#define CAN0_IF2ARB1_R (*((volatile unsigned long *)0x40040090)) -#define CAN0_IF2ARB2_R (*((volatile unsigned long *)0x40040094)) -#define CAN0_IF2MCTL_R (*((volatile unsigned long *)0x40040098)) -#define CAN0_IF2DA1_R (*((volatile unsigned long *)0x4004009C)) -#define CAN0_IF2DA2_R (*((volatile unsigned long *)0x400400A0)) -#define CAN0_IF2DB1_R (*((volatile unsigned long *)0x400400A4)) -#define CAN0_IF2DB2_R (*((volatile unsigned long *)0x400400A8)) -#define CAN0_TXRQ1_R (*((volatile unsigned long *)0x40040100)) -#define CAN0_TXRQ2_R (*((volatile unsigned long *)0x40040104)) -#define CAN0_NWDA1_R (*((volatile unsigned long *)0x40040120)) -#define CAN0_NWDA2_R (*((volatile unsigned long *)0x40040124)) -#define CAN0_MSG1INT_R (*((volatile unsigned long *)0x40040140)) -#define CAN0_MSG2INT_R (*((volatile unsigned long *)0x40040144)) -#define CAN0_MSG1VAL_R (*((volatile unsigned long *)0x40040160)) -#define CAN0_MSG2VAL_R (*((volatile unsigned long *)0x40040164)) - -//***************************************************************************** -// -// CAN registers (CAN1) -// -//***************************************************************************** -#define CAN1_CTL_R (*((volatile unsigned long *)0x40041000)) -#define CAN1_STS_R (*((volatile unsigned long *)0x40041004)) -#define CAN1_ERR_R (*((volatile unsigned long *)0x40041008)) -#define CAN1_BIT_R (*((volatile unsigned long *)0x4004100C)) -#define CAN1_INT_R (*((volatile unsigned long *)0x40041010)) -#define CAN1_TST_R (*((volatile unsigned long *)0x40041014)) -#define CAN1_BRPE_R (*((volatile unsigned long *)0x40041018)) -#define CAN1_IF1CRQ_R (*((volatile unsigned long *)0x40041020)) -#define CAN1_IF1CMSK_R (*((volatile unsigned long *)0x40041024)) -#define CAN1_IF1MSK1_R (*((volatile unsigned long *)0x40041028)) -#define CAN1_IF1MSK2_R (*((volatile unsigned long *)0x4004102C)) -#define CAN1_IF1ARB1_R (*((volatile unsigned long *)0x40041030)) -#define CAN1_IF1ARB2_R (*((volatile unsigned long *)0x40041034)) -#define CAN1_IF1MCTL_R (*((volatile unsigned long *)0x40041038)) -#define CAN1_IF1DA1_R (*((volatile unsigned long *)0x4004103C)) -#define CAN1_IF1DA2_R (*((volatile unsigned long *)0x40041040)) -#define CAN1_IF1DB1_R (*((volatile unsigned long *)0x40041044)) -#define CAN1_IF1DB2_R (*((volatile unsigned long *)0x40041048)) -#define CAN1_IF2CRQ_R (*((volatile unsigned long *)0x40041080)) -#define CAN1_IF2CMSK_R (*((volatile unsigned long *)0x40041084)) -#define CAN1_IF2MSK1_R (*((volatile unsigned long *)0x40041088)) -#define CAN1_IF2MSK2_R (*((volatile unsigned long *)0x4004108C)) -#define CAN1_IF2ARB1_R (*((volatile unsigned long *)0x40041090)) -#define CAN1_IF2ARB2_R (*((volatile unsigned long *)0x40041094)) -#define CAN1_IF2MCTL_R (*((volatile unsigned long *)0x40041098)) -#define CAN1_IF2DA1_R (*((volatile unsigned long *)0x4004109C)) -#define CAN1_IF2DA2_R (*((volatile unsigned long *)0x400410A0)) -#define CAN1_IF2DB1_R (*((volatile unsigned long *)0x400410A4)) -#define CAN1_IF2DB2_R (*((volatile unsigned long *)0x400410A8)) -#define CAN1_TXRQ1_R (*((volatile unsigned long *)0x40041100)) -#define CAN1_TXRQ2_R (*((volatile unsigned long *)0x40041104)) -#define CAN1_NWDA1_R (*((volatile unsigned long *)0x40041120)) -#define CAN1_NWDA2_R (*((volatile unsigned long *)0x40041124)) -#define CAN1_MSG1INT_R (*((volatile unsigned long *)0x40041140)) -#define CAN1_MSG2INT_R (*((volatile unsigned long *)0x40041144)) -#define CAN1_MSG1VAL_R (*((volatile unsigned long *)0x40041160)) -#define CAN1_MSG2VAL_R (*((volatile unsigned long *)0x40041164)) - -//***************************************************************************** -// -// Timer registers (WTIMER2) -// -//***************************************************************************** -#define WTIMER2_CFG_R (*((volatile unsigned long *)0x4004C000)) -#define WTIMER2_TAMR_R (*((volatile unsigned long *)0x4004C004)) -#define WTIMER2_TBMR_R (*((volatile unsigned long *)0x4004C008)) -#define WTIMER2_CTL_R (*((volatile unsigned long *)0x4004C00C)) -#define WTIMER2_SYNC_R (*((volatile unsigned long *)0x4004C010)) -#define WTIMER2_IMR_R (*((volatile unsigned long *)0x4004C018)) -#define WTIMER2_RIS_R (*((volatile unsigned long *)0x4004C01C)) -#define WTIMER2_MIS_R (*((volatile unsigned long *)0x4004C020)) -#define WTIMER2_ICR_R (*((volatile unsigned long *)0x4004C024)) -#define WTIMER2_TAILR_R (*((volatile unsigned long *)0x4004C028)) -#define WTIMER2_TBILR_R (*((volatile unsigned long *)0x4004C02C)) -#define WTIMER2_TAMATCHR_R (*((volatile unsigned long *)0x4004C030)) -#define WTIMER2_TBMATCHR_R (*((volatile unsigned long *)0x4004C034)) -#define WTIMER2_TAPR_R (*((volatile unsigned long *)0x4004C038)) -#define WTIMER2_TBPR_R (*((volatile unsigned long *)0x4004C03C)) -#define WTIMER2_TAPMR_R (*((volatile unsigned long *)0x4004C040)) -#define WTIMER2_TBPMR_R (*((volatile unsigned long *)0x4004C044)) -#define WTIMER2_TAR_R (*((volatile unsigned long *)0x4004C048)) -#define WTIMER2_TBR_R (*((volatile unsigned long *)0x4004C04C)) -#define WTIMER2_TAV_R (*((volatile unsigned long *)0x4004C050)) -#define WTIMER2_TBV_R (*((volatile unsigned long *)0x4004C054)) -#define WTIMER2_RTCPD_R (*((volatile unsigned long *)0x4004C058)) -#define WTIMER2_TAPS_R (*((volatile unsigned long *)0x4004C05C)) -#define WTIMER2_TBPS_R (*((volatile unsigned long *)0x4004C060)) -#define WTIMER2_TAPV_R (*((volatile unsigned long *)0x4004C064)) -#define WTIMER2_TBPV_R (*((volatile unsigned long *)0x4004C068)) -#define WTIMER2_PP_R (*((volatile unsigned long *)0x4004CFC0)) - -//***************************************************************************** -// -// Timer registers (WTIMER3) -// -//***************************************************************************** -#define WTIMER3_CFG_R (*((volatile unsigned long *)0x4004D000)) -#define WTIMER3_TAMR_R (*((volatile unsigned long *)0x4004D004)) -#define WTIMER3_TBMR_R (*((volatile unsigned long *)0x4004D008)) -#define WTIMER3_CTL_R (*((volatile unsigned long *)0x4004D00C)) -#define WTIMER3_SYNC_R (*((volatile unsigned long *)0x4004D010)) -#define WTIMER3_IMR_R (*((volatile unsigned long *)0x4004D018)) -#define WTIMER3_RIS_R (*((volatile unsigned long *)0x4004D01C)) -#define WTIMER3_MIS_R (*((volatile unsigned long *)0x4004D020)) -#define WTIMER3_ICR_R (*((volatile unsigned long *)0x4004D024)) -#define WTIMER3_TAILR_R (*((volatile unsigned long *)0x4004D028)) -#define WTIMER3_TBILR_R (*((volatile unsigned long *)0x4004D02C)) -#define WTIMER3_TAMATCHR_R (*((volatile unsigned long *)0x4004D030)) -#define WTIMER3_TBMATCHR_R (*((volatile unsigned long *)0x4004D034)) -#define WTIMER3_TAPR_R (*((volatile unsigned long *)0x4004D038)) -#define WTIMER3_TBPR_R (*((volatile unsigned long *)0x4004D03C)) -#define WTIMER3_TAPMR_R (*((volatile unsigned long *)0x4004D040)) -#define WTIMER3_TBPMR_R (*((volatile unsigned long *)0x4004D044)) -#define WTIMER3_TAR_R (*((volatile unsigned long *)0x4004D048)) -#define WTIMER3_TBR_R (*((volatile unsigned long *)0x4004D04C)) -#define WTIMER3_TAV_R (*((volatile unsigned long *)0x4004D050)) -#define WTIMER3_TBV_R (*((volatile unsigned long *)0x4004D054)) -#define WTIMER3_RTCPD_R (*((volatile unsigned long *)0x4004D058)) -#define WTIMER3_TAPS_R (*((volatile unsigned long *)0x4004D05C)) -#define WTIMER3_TBPS_R (*((volatile unsigned long *)0x4004D060)) -#define WTIMER3_TAPV_R (*((volatile unsigned long *)0x4004D064)) -#define WTIMER3_TBPV_R (*((volatile unsigned long *)0x4004D068)) -#define WTIMER3_PP_R (*((volatile unsigned long *)0x4004DFC0)) - -//***************************************************************************** -// -// Timer registers (WTIMER4) -// -//***************************************************************************** -#define WTIMER4_CFG_R (*((volatile unsigned long *)0x4004E000)) -#define WTIMER4_TAMR_R (*((volatile unsigned long *)0x4004E004)) -#define WTIMER4_TBMR_R (*((volatile unsigned long *)0x4004E008)) -#define WTIMER4_CTL_R (*((volatile unsigned long *)0x4004E00C)) -#define WTIMER4_SYNC_R (*((volatile unsigned long *)0x4004E010)) -#define WTIMER4_IMR_R (*((volatile unsigned long *)0x4004E018)) -#define WTIMER4_RIS_R (*((volatile unsigned long *)0x4004E01C)) -#define WTIMER4_MIS_R (*((volatile unsigned long *)0x4004E020)) -#define WTIMER4_ICR_R (*((volatile unsigned long *)0x4004E024)) -#define WTIMER4_TAILR_R (*((volatile unsigned long *)0x4004E028)) -#define WTIMER4_TBILR_R (*((volatile unsigned long *)0x4004E02C)) -#define WTIMER4_TAMATCHR_R (*((volatile unsigned long *)0x4004E030)) -#define WTIMER4_TBMATCHR_R (*((volatile unsigned long *)0x4004E034)) -#define WTIMER4_TAPR_R (*((volatile unsigned long *)0x4004E038)) -#define WTIMER4_TBPR_R (*((volatile unsigned long *)0x4004E03C)) -#define WTIMER4_TAPMR_R (*((volatile unsigned long *)0x4004E040)) -#define WTIMER4_TBPMR_R (*((volatile unsigned long *)0x4004E044)) -#define WTIMER4_TAR_R (*((volatile unsigned long *)0x4004E048)) -#define WTIMER4_TBR_R (*((volatile unsigned long *)0x4004E04C)) -#define WTIMER4_TAV_R (*((volatile unsigned long *)0x4004E050)) -#define WTIMER4_TBV_R (*((volatile unsigned long *)0x4004E054)) -#define WTIMER4_RTCPD_R (*((volatile unsigned long *)0x4004E058)) -#define WTIMER4_TAPS_R (*((volatile unsigned long *)0x4004E05C)) -#define WTIMER4_TBPS_R (*((volatile unsigned long *)0x4004E060)) -#define WTIMER4_TAPV_R (*((volatile unsigned long *)0x4004E064)) -#define WTIMER4_TBPV_R (*((volatile unsigned long *)0x4004E068)) -#define WTIMER4_PP_R (*((volatile unsigned long *)0x4004EFC0)) - -//***************************************************************************** -// -// Timer registers (WTIMER5) -// -//***************************************************************************** -#define WTIMER5_CFG_R (*((volatile unsigned long *)0x4004F000)) -#define WTIMER5_TAMR_R (*((volatile unsigned long *)0x4004F004)) -#define WTIMER5_TBMR_R (*((volatile unsigned long *)0x4004F008)) -#define WTIMER5_CTL_R (*((volatile unsigned long *)0x4004F00C)) -#define WTIMER5_SYNC_R (*((volatile unsigned long *)0x4004F010)) -#define WTIMER5_IMR_R (*((volatile unsigned long *)0x4004F018)) -#define WTIMER5_RIS_R (*((volatile unsigned long *)0x4004F01C)) -#define WTIMER5_MIS_R (*((volatile unsigned long *)0x4004F020)) -#define WTIMER5_ICR_R (*((volatile unsigned long *)0x4004F024)) -#define WTIMER5_TAILR_R (*((volatile unsigned long *)0x4004F028)) -#define WTIMER5_TBILR_R (*((volatile unsigned long *)0x4004F02C)) -#define WTIMER5_TAMATCHR_R (*((volatile unsigned long *)0x4004F030)) -#define WTIMER5_TBMATCHR_R (*((volatile unsigned long *)0x4004F034)) -#define WTIMER5_TAPR_R (*((volatile unsigned long *)0x4004F038)) -#define WTIMER5_TBPR_R (*((volatile unsigned long *)0x4004F03C)) -#define WTIMER5_TAPMR_R (*((volatile unsigned long *)0x4004F040)) -#define WTIMER5_TBPMR_R (*((volatile unsigned long *)0x4004F044)) -#define WTIMER5_TAR_R (*((volatile unsigned long *)0x4004F048)) -#define WTIMER5_TBR_R (*((volatile unsigned long *)0x4004F04C)) -#define WTIMER5_TAV_R (*((volatile unsigned long *)0x4004F050)) -#define WTIMER5_TBV_R (*((volatile unsigned long *)0x4004F054)) -#define WTIMER5_RTCPD_R (*((volatile unsigned long *)0x4004F058)) -#define WTIMER5_TAPS_R (*((volatile unsigned long *)0x4004F05C)) -#define WTIMER5_TBPS_R (*((volatile unsigned long *)0x4004F060)) -#define WTIMER5_TAPV_R (*((volatile unsigned long *)0x4004F064)) -#define WTIMER5_TBPV_R (*((volatile unsigned long *)0x4004F068)) -#define WTIMER5_PP_R (*((volatile unsigned long *)0x4004FFC0)) - -//***************************************************************************** -// -// Univeral Serial Bus registers (USB0) -// -//***************************************************************************** -#define USB0_FADDR_R (*((volatile unsigned char *)0x40050000)) -#define USB0_POWER_R (*((volatile unsigned char *)0x40050001)) -#define USB0_TXIS_R (*((volatile unsigned short *)0x40050002)) -#define USB0_RXIS_R (*((volatile unsigned short *)0x40050004)) -#define USB0_TXIE_R (*((volatile unsigned short *)0x40050006)) -#define USB0_RXIE_R (*((volatile unsigned short *)0x40050008)) -#define USB0_IS_R (*((volatile unsigned char *)0x4005000A)) -#define USB0_IE_R (*((volatile unsigned char *)0x4005000B)) -#define USB0_FRAME_R (*((volatile unsigned short *)0x4005000C)) -#define USB0_EPIDX_R (*((volatile unsigned char *)0x4005000E)) -#define USB0_TEST_R (*((volatile unsigned char *)0x4005000F)) -#define USB0_FIFO0_R (*((volatile unsigned long *)0x40050020)) -#define USB0_FIFO1_R (*((volatile unsigned long *)0x40050024)) -#define USB0_FIFO2_R (*((volatile unsigned long *)0x40050028)) -#define USB0_FIFO3_R (*((volatile unsigned long *)0x4005002C)) -#define USB0_FIFO4_R (*((volatile unsigned long *)0x40050030)) -#define USB0_FIFO5_R (*((volatile unsigned long *)0x40050034)) -#define USB0_FIFO6_R (*((volatile unsigned long *)0x40050038)) -#define USB0_FIFO7_R (*((volatile unsigned long *)0x4005003C)) -#define USB0_DEVCTL_R (*((volatile unsigned char *)0x40050060)) -#define USB0_TXFIFOSZ_R (*((volatile unsigned char *)0x40050062)) -#define USB0_RXFIFOSZ_R (*((volatile unsigned char *)0x40050063)) -#define USB0_TXFIFOADD_R (*((volatile unsigned short *)0x40050064)) -#define USB0_RXFIFOADD_R (*((volatile unsigned short *)0x40050066)) -#define USB0_CONTIM_R (*((volatile unsigned char *)0x4005007A)) -#define USB0_VPLEN_R (*((volatile unsigned char *)0x4005007B)) -#define USB0_FSEOF_R (*((volatile unsigned char *)0x4005007D)) -#define USB0_LSEOF_R (*((volatile unsigned char *)0x4005007E)) -#define USB0_TXFUNCADDR0_R (*((volatile unsigned char *)0x40050080)) -#define USB0_TXHUBADDR0_R (*((volatile unsigned char *)0x40050082)) -#define USB0_TXHUBPORT0_R (*((volatile unsigned char *)0x40050083)) -#define USB0_TXFUNCADDR1_R (*((volatile unsigned char *)0x40050088)) -#define USB0_TXHUBADDR1_R (*((volatile unsigned char *)0x4005008A)) -#define USB0_TXHUBPORT1_R (*((volatile unsigned char *)0x4005008B)) -#define USB0_RXFUNCADDR1_R (*((volatile unsigned char *)0x4005008C)) -#define USB0_RXHUBADDR1_R (*((volatile unsigned char *)0x4005008E)) -#define USB0_RXHUBPORT1_R (*((volatile unsigned char *)0x4005008F)) -#define USB0_TXFUNCADDR2_R (*((volatile unsigned char *)0x40050090)) -#define USB0_TXHUBADDR2_R (*((volatile unsigned char *)0x40050092)) -#define USB0_TXHUBPORT2_R (*((volatile unsigned char *)0x40050093)) -#define USB0_RXFUNCADDR2_R (*((volatile unsigned char *)0x40050094)) -#define USB0_RXHUBADDR2_R (*((volatile unsigned char *)0x40050096)) -#define USB0_RXHUBPORT2_R (*((volatile unsigned char *)0x40050097)) -#define USB0_TXFUNCADDR3_R (*((volatile unsigned char *)0x40050098)) -#define USB0_TXHUBADDR3_R (*((volatile unsigned char *)0x4005009A)) -#define USB0_TXHUBPORT3_R (*((volatile unsigned char *)0x4005009B)) -#define USB0_RXFUNCADDR3_R (*((volatile unsigned char *)0x4005009C)) -#define USB0_RXHUBADDR3_R (*((volatile unsigned char *)0x4005009E)) -#define USB0_RXHUBPORT3_R (*((volatile unsigned char *)0x4005009F)) -#define USB0_TXFUNCADDR4_R (*((volatile unsigned char *)0x400500A0)) -#define USB0_TXHUBADDR4_R (*((volatile unsigned char *)0x400500A2)) -#define USB0_TXHUBPORT4_R (*((volatile unsigned char *)0x400500A3)) -#define USB0_RXFUNCADDR4_R (*((volatile unsigned char *)0x400500A4)) -#define USB0_RXHUBADDR4_R (*((volatile unsigned char *)0x400500A6)) -#define USB0_RXHUBPORT4_R (*((volatile unsigned char *)0x400500A7)) -#define USB0_TXFUNCADDR5_R (*((volatile unsigned char *)0x400500A8)) -#define USB0_TXHUBADDR5_R (*((volatile unsigned char *)0x400500AA)) -#define USB0_TXHUBPORT5_R (*((volatile unsigned char *)0x400500AB)) -#define USB0_RXFUNCADDR5_R (*((volatile unsigned char *)0x400500AC)) -#define USB0_RXHUBADDR5_R (*((volatile unsigned char *)0x400500AE)) -#define USB0_RXHUBPORT5_R (*((volatile unsigned char *)0x400500AF)) -#define USB0_TXFUNCADDR6_R (*((volatile unsigned char *)0x400500B0)) -#define USB0_TXHUBADDR6_R (*((volatile unsigned char *)0x400500B2)) -#define USB0_TXHUBPORT6_R (*((volatile unsigned char *)0x400500B3)) -#define USB0_RXFUNCADDR6_R (*((volatile unsigned char *)0x400500B4)) -#define USB0_RXHUBADDR6_R (*((volatile unsigned char *)0x400500B6)) -#define USB0_RXHUBPORT6_R (*((volatile unsigned char *)0x400500B7)) -#define USB0_TXFUNCADDR7_R (*((volatile unsigned char *)0x400500B8)) -#define USB0_TXHUBADDR7_R (*((volatile unsigned char *)0x400500BA)) -#define USB0_TXHUBPORT7_R (*((volatile unsigned char *)0x400500BB)) -#define USB0_RXFUNCADDR7_R (*((volatile unsigned char *)0x400500BC)) -#define USB0_RXHUBADDR7_R (*((volatile unsigned char *)0x400500BE)) -#define USB0_RXHUBPORT7_R (*((volatile unsigned char *)0x400500BF)) -#define USB0_CSRL0_R (*((volatile unsigned char *)0x40050102)) -#define USB0_CSRH0_R (*((volatile unsigned char *)0x40050103)) -#define USB0_COUNT0_R (*((volatile unsigned char *)0x40050108)) -#define USB0_TYPE0_R (*((volatile unsigned char *)0x4005010A)) -#define USB0_NAKLMT_R (*((volatile unsigned char *)0x4005010B)) -#define USB0_TXMAXP1_R (*((volatile unsigned short *)0x40050110)) -#define USB0_TXCSRL1_R (*((volatile unsigned char *)0x40050112)) -#define USB0_TXCSRH1_R (*((volatile unsigned char *)0x40050113)) -#define USB0_RXMAXP1_R (*((volatile unsigned short *)0x40050114)) -#define USB0_RXCSRL1_R (*((volatile unsigned char *)0x40050116)) -#define USB0_RXCSRH1_R (*((volatile unsigned char *)0x40050117)) -#define USB0_RXCOUNT1_R (*((volatile unsigned short *)0x40050118)) -#define USB0_TXTYPE1_R (*((volatile unsigned char *)0x4005011A)) -#define USB0_TXINTERVAL1_R (*((volatile unsigned char *)0x4005011B)) -#define USB0_RXTYPE1_R (*((volatile unsigned char *)0x4005011C)) -#define USB0_RXINTERVAL1_R (*((volatile unsigned char *)0x4005011D)) -#define USB0_TXMAXP2_R (*((volatile unsigned short *)0x40050120)) -#define USB0_TXCSRL2_R (*((volatile unsigned char *)0x40050122)) -#define USB0_TXCSRH2_R (*((volatile unsigned char *)0x40050123)) -#define USB0_RXMAXP2_R (*((volatile unsigned short *)0x40050124)) -#define USB0_RXCSRL2_R (*((volatile unsigned char *)0x40050126)) -#define USB0_RXCSRH2_R (*((volatile unsigned char *)0x40050127)) -#define USB0_RXCOUNT2_R (*((volatile unsigned short *)0x40050128)) -#define USB0_TXTYPE2_R (*((volatile unsigned char *)0x4005012A)) -#define USB0_TXINTERVAL2_R (*((volatile unsigned char *)0x4005012B)) -#define USB0_RXTYPE2_R (*((volatile unsigned char *)0x4005012C)) -#define USB0_RXINTERVAL2_R (*((volatile unsigned char *)0x4005012D)) -#define USB0_TXMAXP3_R (*((volatile unsigned short *)0x40050130)) -#define USB0_TXCSRL3_R (*((volatile unsigned char *)0x40050132)) -#define USB0_TXCSRH3_R (*((volatile unsigned char *)0x40050133)) -#define USB0_RXMAXP3_R (*((volatile unsigned short *)0x40050134)) -#define USB0_RXCSRL3_R (*((volatile unsigned char *)0x40050136)) -#define USB0_RXCSRH3_R (*((volatile unsigned char *)0x40050137)) -#define USB0_RXCOUNT3_R (*((volatile unsigned short *)0x40050138)) -#define USB0_TXTYPE3_R (*((volatile unsigned char *)0x4005013A)) -#define USB0_TXINTERVAL3_R (*((volatile unsigned char *)0x4005013B)) -#define USB0_RXTYPE3_R (*((volatile unsigned char *)0x4005013C)) -#define USB0_RXINTERVAL3_R (*((volatile unsigned char *)0x4005013D)) -#define USB0_TXMAXP4_R (*((volatile unsigned short *)0x40050140)) -#define USB0_TXCSRL4_R (*((volatile unsigned char *)0x40050142)) -#define USB0_TXCSRH4_R (*((volatile unsigned char *)0x40050143)) -#define USB0_RXMAXP4_R (*((volatile unsigned short *)0x40050144)) -#define USB0_RXCSRL4_R (*((volatile unsigned char *)0x40050146)) -#define USB0_RXCSRH4_R (*((volatile unsigned char *)0x40050147)) -#define USB0_RXCOUNT4_R (*((volatile unsigned short *)0x40050148)) -#define USB0_TXTYPE4_R (*((volatile unsigned char *)0x4005014A)) -#define USB0_TXINTERVAL4_R (*((volatile unsigned char *)0x4005014B)) -#define USB0_RXTYPE4_R (*((volatile unsigned char *)0x4005014C)) -#define USB0_RXINTERVAL4_R (*((volatile unsigned char *)0x4005014D)) -#define USB0_TXMAXP5_R (*((volatile unsigned short *)0x40050150)) -#define USB0_TXCSRL5_R (*((volatile unsigned char *)0x40050152)) -#define USB0_TXCSRH5_R (*((volatile unsigned char *)0x40050153)) -#define USB0_RXMAXP5_R (*((volatile unsigned short *)0x40050154)) -#define USB0_RXCSRL5_R (*((volatile unsigned char *)0x40050156)) -#define USB0_RXCSRH5_R (*((volatile unsigned char *)0x40050157)) -#define USB0_RXCOUNT5_R (*((volatile unsigned short *)0x40050158)) -#define USB0_TXTYPE5_R (*((volatile unsigned char *)0x4005015A)) -#define USB0_TXINTERVAL5_R (*((volatile unsigned char *)0x4005015B)) -#define USB0_RXTYPE5_R (*((volatile unsigned char *)0x4005015C)) -#define USB0_RXINTERVAL5_R (*((volatile unsigned char *)0x4005015D)) -#define USB0_TXMAXP6_R (*((volatile unsigned short *)0x40050160)) -#define USB0_TXCSRL6_R (*((volatile unsigned char *)0x40050162)) -#define USB0_TXCSRH6_R (*((volatile unsigned char *)0x40050163)) -#define USB0_RXMAXP6_R (*((volatile unsigned short *)0x40050164)) -#define USB0_RXCSRL6_R (*((volatile unsigned char *)0x40050166)) -#define USB0_RXCSRH6_R (*((volatile unsigned char *)0x40050167)) -#define USB0_RXCOUNT6_R (*((volatile unsigned short *)0x40050168)) -#define USB0_TXTYPE6_R (*((volatile unsigned char *)0x4005016A)) -#define USB0_TXINTERVAL6_R (*((volatile unsigned char *)0x4005016B)) -#define USB0_RXTYPE6_R (*((volatile unsigned char *)0x4005016C)) -#define USB0_RXINTERVAL6_R (*((volatile unsigned char *)0x4005016D)) -#define USB0_TXMAXP7_R (*((volatile unsigned short *)0x40050170)) -#define USB0_TXCSRL7_R (*((volatile unsigned char *)0x40050172)) -#define USB0_TXCSRH7_R (*((volatile unsigned char *)0x40050173)) -#define USB0_RXMAXP7_R (*((volatile unsigned short *)0x40050174)) -#define USB0_RXCSRL7_R (*((volatile unsigned char *)0x40050176)) -#define USB0_RXCSRH7_R (*((volatile unsigned char *)0x40050177)) -#define USB0_RXCOUNT7_R (*((volatile unsigned short *)0x40050178)) -#define USB0_TXTYPE7_R (*((volatile unsigned char *)0x4005017A)) -#define USB0_TXINTERVAL7_R (*((volatile unsigned char *)0x4005017B)) -#define USB0_RXTYPE7_R (*((volatile unsigned char *)0x4005017C)) -#define USB0_RXINTERVAL7_R (*((volatile unsigned char *)0x4005017D)) -#define USB0_RQPKTCOUNT1_R (*((volatile unsigned short *)0x40050304)) -#define USB0_RQPKTCOUNT2_R (*((volatile unsigned short *)0x40050308)) -#define USB0_RQPKTCOUNT3_R (*((volatile unsigned short *)0x4005030C)) -#define USB0_RQPKTCOUNT4_R (*((volatile unsigned short *)0x40050310)) -#define USB0_RQPKTCOUNT5_R (*((volatile unsigned short *)0x40050314)) -#define USB0_RQPKTCOUNT6_R (*((volatile unsigned short *)0x40050318)) -#define USB0_RQPKTCOUNT7_R (*((volatile unsigned short *)0x4005031C)) -#define USB0_RXDPKTBUFDIS_R (*((volatile unsigned short *)0x40050340)) -#define USB0_TXDPKTBUFDIS_R (*((volatile unsigned short *)0x40050342)) -#define USB0_EPC_R (*((volatile unsigned long *)0x40050400)) -#define USB0_EPCRIS_R (*((volatile unsigned long *)0x40050404)) -#define USB0_EPCIM_R (*((volatile unsigned long *)0x40050408)) -#define USB0_EPCISC_R (*((volatile unsigned long *)0x4005040C)) -#define USB0_DRRIS_R (*((volatile unsigned long *)0x40050410)) -#define USB0_DRIM_R (*((volatile unsigned long *)0x40050414)) -#define USB0_DRISC_R (*((volatile unsigned long *)0x40050418)) -#define USB0_GPCS_R (*((volatile unsigned long *)0x4005041C)) -#define USB0_VDC_R (*((volatile unsigned long *)0x40050430)) -#define USB0_VDCRIS_R (*((volatile unsigned long *)0x40050434)) -#define USB0_VDCIM_R (*((volatile unsigned long *)0x40050438)) -#define USB0_VDCISC_R (*((volatile unsigned long *)0x4005043C)) -#define USB0_IDVRIS_R (*((volatile unsigned long *)0x40050444)) -#define USB0_IDVIM_R (*((volatile unsigned long *)0x40050448)) -#define USB0_IDVISC_R (*((volatile unsigned long *)0x4005044C)) -#define USB0_DMASEL_R (*((volatile unsigned long *)0x40050450)) -#define USB0_PP_R (*((volatile unsigned long *)0x40050FC0)) - -//***************************************************************************** -// -// GPIO registers (PORTA AHB) -// -//***************************************************************************** -#define GPIO_PORTA_AHB_DATA_BITS_R \ - ((volatile unsigned long *)0x40058000) -#define GPIO_PORTA_AHB_DATA_R (*((volatile unsigned long *)0x400583FC)) -#define GPIO_PORTA_AHB_DIR_R (*((volatile unsigned long *)0x40058400)) -#define GPIO_PORTA_AHB_IS_R (*((volatile unsigned long *)0x40058404)) -#define GPIO_PORTA_AHB_IBE_R (*((volatile unsigned long *)0x40058408)) -#define GPIO_PORTA_AHB_IEV_R (*((volatile unsigned long *)0x4005840C)) -#define GPIO_PORTA_AHB_IM_R (*((volatile unsigned long *)0x40058410)) -#define GPIO_PORTA_AHB_RIS_R (*((volatile unsigned long *)0x40058414)) -#define GPIO_PORTA_AHB_MIS_R (*((volatile unsigned long *)0x40058418)) -#define GPIO_PORTA_AHB_ICR_R (*((volatile unsigned long *)0x4005841C)) -#define GPIO_PORTA_AHB_AFSEL_R (*((volatile unsigned long *)0x40058420)) -#define GPIO_PORTA_AHB_DR2R_R (*((volatile unsigned long *)0x40058500)) -#define GPIO_PORTA_AHB_DR4R_R (*((volatile unsigned long *)0x40058504)) -#define GPIO_PORTA_AHB_DR8R_R (*((volatile unsigned long *)0x40058508)) -#define GPIO_PORTA_AHB_ODR_R (*((volatile unsigned long *)0x4005850C)) -#define GPIO_PORTA_AHB_PUR_R (*((volatile unsigned long *)0x40058510)) -#define GPIO_PORTA_AHB_PDR_R (*((volatile unsigned long *)0x40058514)) -#define GPIO_PORTA_AHB_SLR_R (*((volatile unsigned long *)0x40058518)) -#define GPIO_PORTA_AHB_DEN_R (*((volatile unsigned long *)0x4005851C)) -#define GPIO_PORTA_AHB_LOCK_R (*((volatile unsigned long *)0x40058520)) -#define GPIO_PORTA_AHB_CR_R (*((volatile unsigned long *)0x40058524)) -#define GPIO_PORTA_AHB_AMSEL_R (*((volatile unsigned long *)0x40058528)) -#define GPIO_PORTA_AHB_PCTL_R (*((volatile unsigned long *)0x4005852C)) -#define GPIO_PORTA_AHB_ADCCTL_R (*((volatile unsigned long *)0x40058530)) -#define GPIO_PORTA_AHB_DMACTL_R (*((volatile unsigned long *)0x40058534)) -#define GPIO_PORTA_AHB_SI_R (*((volatile unsigned long *)0x40058538)) - -//***************************************************************************** -// -// GPIO registers (PORTB AHB) -// -//***************************************************************************** -#define GPIO_PORTB_AHB_DATA_BITS_R \ - ((volatile unsigned long *)0x40059000) -#define GPIO_PORTB_AHB_DATA_R (*((volatile unsigned long *)0x400593FC)) -#define GPIO_PORTB_AHB_DIR_R (*((volatile unsigned long *)0x40059400)) -#define GPIO_PORTB_AHB_IS_R (*((volatile unsigned long *)0x40059404)) -#define GPIO_PORTB_AHB_IBE_R (*((volatile unsigned long *)0x40059408)) -#define GPIO_PORTB_AHB_IEV_R (*((volatile unsigned long *)0x4005940C)) -#define GPIO_PORTB_AHB_IM_R (*((volatile unsigned long *)0x40059410)) -#define GPIO_PORTB_AHB_RIS_R (*((volatile unsigned long *)0x40059414)) -#define GPIO_PORTB_AHB_MIS_R (*((volatile unsigned long *)0x40059418)) -#define GPIO_PORTB_AHB_ICR_R (*((volatile unsigned long *)0x4005941C)) -#define GPIO_PORTB_AHB_AFSEL_R (*((volatile unsigned long *)0x40059420)) -#define GPIO_PORTB_AHB_DR2R_R (*((volatile unsigned long *)0x40059500)) -#define GPIO_PORTB_AHB_DR4R_R (*((volatile unsigned long *)0x40059504)) -#define GPIO_PORTB_AHB_DR8R_R (*((volatile unsigned long *)0x40059508)) -#define GPIO_PORTB_AHB_ODR_R (*((volatile unsigned long *)0x4005950C)) -#define GPIO_PORTB_AHB_PUR_R (*((volatile unsigned long *)0x40059510)) -#define GPIO_PORTB_AHB_PDR_R (*((volatile unsigned long *)0x40059514)) -#define GPIO_PORTB_AHB_SLR_R (*((volatile unsigned long *)0x40059518)) -#define GPIO_PORTB_AHB_DEN_R (*((volatile unsigned long *)0x4005951C)) -#define GPIO_PORTB_AHB_LOCK_R (*((volatile unsigned long *)0x40059520)) -#define GPIO_PORTB_AHB_CR_R (*((volatile unsigned long *)0x40059524)) -#define GPIO_PORTB_AHB_AMSEL_R (*((volatile unsigned long *)0x40059528)) -#define GPIO_PORTB_AHB_PCTL_R (*((volatile unsigned long *)0x4005952C)) -#define GPIO_PORTB_AHB_ADCCTL_R (*((volatile unsigned long *)0x40059530)) -#define GPIO_PORTB_AHB_DMACTL_R (*((volatile unsigned long *)0x40059534)) -#define GPIO_PORTB_AHB_SI_R (*((volatile unsigned long *)0x40059538)) - -//***************************************************************************** -// -// GPIO registers (PORTC AHB) -// -//***************************************************************************** -#define GPIO_PORTC_AHB_DATA_BITS_R \ - ((volatile unsigned long *)0x4005A000) -#define GPIO_PORTC_AHB_DATA_R (*((volatile unsigned long *)0x4005A3FC)) -#define GPIO_PORTC_AHB_DIR_R (*((volatile unsigned long *)0x4005A400)) -#define GPIO_PORTC_AHB_IS_R (*((volatile unsigned long *)0x4005A404)) -#define GPIO_PORTC_AHB_IBE_R (*((volatile unsigned long *)0x4005A408)) -#define GPIO_PORTC_AHB_IEV_R (*((volatile unsigned long *)0x4005A40C)) -#define GPIO_PORTC_AHB_IM_R (*((volatile unsigned long *)0x4005A410)) -#define GPIO_PORTC_AHB_RIS_R (*((volatile unsigned long *)0x4005A414)) -#define GPIO_PORTC_AHB_MIS_R (*((volatile unsigned long *)0x4005A418)) -#define GPIO_PORTC_AHB_ICR_R (*((volatile unsigned long *)0x4005A41C)) -#define GPIO_PORTC_AHB_AFSEL_R (*((volatile unsigned long *)0x4005A420)) -#define GPIO_PORTC_AHB_DR2R_R (*((volatile unsigned long *)0x4005A500)) -#define GPIO_PORTC_AHB_DR4R_R (*((volatile unsigned long *)0x4005A504)) -#define GPIO_PORTC_AHB_DR8R_R (*((volatile unsigned long *)0x4005A508)) -#define GPIO_PORTC_AHB_ODR_R (*((volatile unsigned long *)0x4005A50C)) -#define GPIO_PORTC_AHB_PUR_R (*((volatile unsigned long *)0x4005A510)) -#define GPIO_PORTC_AHB_PDR_R (*((volatile unsigned long *)0x4005A514)) -#define GPIO_PORTC_AHB_SLR_R (*((volatile unsigned long *)0x4005A518)) -#define GPIO_PORTC_AHB_DEN_R (*((volatile unsigned long *)0x4005A51C)) -#define GPIO_PORTC_AHB_LOCK_R (*((volatile unsigned long *)0x4005A520)) -#define GPIO_PORTC_AHB_CR_R (*((volatile unsigned long *)0x4005A524)) -#define GPIO_PORTC_AHB_AMSEL_R (*((volatile unsigned long *)0x4005A528)) -#define GPIO_PORTC_AHB_PCTL_R (*((volatile unsigned long *)0x4005A52C)) -#define GPIO_PORTC_AHB_ADCCTL_R (*((volatile unsigned long *)0x4005A530)) -#define GPIO_PORTC_AHB_DMACTL_R (*((volatile unsigned long *)0x4005A534)) -#define GPIO_PORTC_AHB_SI_R (*((volatile unsigned long *)0x4005A538)) - -//***************************************************************************** -// -// GPIO registers (PORTD AHB) -// -//***************************************************************************** -#define GPIO_PORTD_AHB_DATA_BITS_R \ - ((volatile unsigned long *)0x4005B000) -#define GPIO_PORTD_AHB_DATA_R (*((volatile unsigned long *)0x4005B3FC)) -#define GPIO_PORTD_AHB_DIR_R (*((volatile unsigned long *)0x4005B400)) -#define GPIO_PORTD_AHB_IS_R (*((volatile unsigned long *)0x4005B404)) -#define GPIO_PORTD_AHB_IBE_R (*((volatile unsigned long *)0x4005B408)) -#define GPIO_PORTD_AHB_IEV_R (*((volatile unsigned long *)0x4005B40C)) -#define GPIO_PORTD_AHB_IM_R (*((volatile unsigned long *)0x4005B410)) -#define GPIO_PORTD_AHB_RIS_R (*((volatile unsigned long *)0x4005B414)) -#define GPIO_PORTD_AHB_MIS_R (*((volatile unsigned long *)0x4005B418)) -#define GPIO_PORTD_AHB_ICR_R (*((volatile unsigned long *)0x4005B41C)) -#define GPIO_PORTD_AHB_AFSEL_R (*((volatile unsigned long *)0x4005B420)) -#define GPIO_PORTD_AHB_DR2R_R (*((volatile unsigned long *)0x4005B500)) -#define GPIO_PORTD_AHB_DR4R_R (*((volatile unsigned long *)0x4005B504)) -#define GPIO_PORTD_AHB_DR8R_R (*((volatile unsigned long *)0x4005B508)) -#define GPIO_PORTD_AHB_ODR_R (*((volatile unsigned long *)0x4005B50C)) -#define GPIO_PORTD_AHB_PUR_R (*((volatile unsigned long *)0x4005B510)) -#define GPIO_PORTD_AHB_PDR_R (*((volatile unsigned long *)0x4005B514)) -#define GPIO_PORTD_AHB_SLR_R (*((volatile unsigned long *)0x4005B518)) -#define GPIO_PORTD_AHB_DEN_R (*((volatile unsigned long *)0x4005B51C)) -#define GPIO_PORTD_AHB_LOCK_R (*((volatile unsigned long *)0x4005B520)) -#define GPIO_PORTD_AHB_CR_R (*((volatile unsigned long *)0x4005B524)) -#define GPIO_PORTD_AHB_AMSEL_R (*((volatile unsigned long *)0x4005B528)) -#define GPIO_PORTD_AHB_PCTL_R (*((volatile unsigned long *)0x4005B52C)) -#define GPIO_PORTD_AHB_ADCCTL_R (*((volatile unsigned long *)0x4005B530)) -#define GPIO_PORTD_AHB_DMACTL_R (*((volatile unsigned long *)0x4005B534)) -#define GPIO_PORTD_AHB_SI_R (*((volatile unsigned long *)0x4005B538)) - -//***************************************************************************** -// -// GPIO registers (PORTE AHB) -// -//***************************************************************************** -#define GPIO_PORTE_AHB_DATA_BITS_R \ - ((volatile unsigned long *)0x4005C000) -#define GPIO_PORTE_AHB_DATA_R (*((volatile unsigned long *)0x4005C3FC)) -#define GPIO_PORTE_AHB_DIR_R (*((volatile unsigned long *)0x4005C400)) -#define GPIO_PORTE_AHB_IS_R (*((volatile unsigned long *)0x4005C404)) -#define GPIO_PORTE_AHB_IBE_R (*((volatile unsigned long *)0x4005C408)) -#define GPIO_PORTE_AHB_IEV_R (*((volatile unsigned long *)0x4005C40C)) -#define GPIO_PORTE_AHB_IM_R (*((volatile unsigned long *)0x4005C410)) -#define GPIO_PORTE_AHB_RIS_R (*((volatile unsigned long *)0x4005C414)) -#define GPIO_PORTE_AHB_MIS_R (*((volatile unsigned long *)0x4005C418)) -#define GPIO_PORTE_AHB_ICR_R (*((volatile unsigned long *)0x4005C41C)) -#define GPIO_PORTE_AHB_AFSEL_R (*((volatile unsigned long *)0x4005C420)) -#define GPIO_PORTE_AHB_DR2R_R (*((volatile unsigned long *)0x4005C500)) -#define GPIO_PORTE_AHB_DR4R_R (*((volatile unsigned long *)0x4005C504)) -#define GPIO_PORTE_AHB_DR8R_R (*((volatile unsigned long *)0x4005C508)) -#define GPIO_PORTE_AHB_ODR_R (*((volatile unsigned long *)0x4005C50C)) -#define GPIO_PORTE_AHB_PUR_R (*((volatile unsigned long *)0x4005C510)) -#define GPIO_PORTE_AHB_PDR_R (*((volatile unsigned long *)0x4005C514)) -#define GPIO_PORTE_AHB_SLR_R (*((volatile unsigned long *)0x4005C518)) -#define GPIO_PORTE_AHB_DEN_R (*((volatile unsigned long *)0x4005C51C)) -#define GPIO_PORTE_AHB_LOCK_R (*((volatile unsigned long *)0x4005C520)) -#define GPIO_PORTE_AHB_CR_R (*((volatile unsigned long *)0x4005C524)) -#define GPIO_PORTE_AHB_AMSEL_R (*((volatile unsigned long *)0x4005C528)) -#define GPIO_PORTE_AHB_PCTL_R (*((volatile unsigned long *)0x4005C52C)) -#define GPIO_PORTE_AHB_ADCCTL_R (*((volatile unsigned long *)0x4005C530)) -#define GPIO_PORTE_AHB_DMACTL_R (*((volatile unsigned long *)0x4005C534)) -#define GPIO_PORTE_AHB_SI_R (*((volatile unsigned long *)0x4005C538)) - -//***************************************************************************** -// -// GPIO registers (PORTF AHB) -// -//***************************************************************************** -#define GPIO_PORTF_AHB_DATA_BITS_R \ - ((volatile unsigned long *)0x4005D000) -#define GPIO_PORTF_AHB_DATA_R (*((volatile unsigned long *)0x4005D3FC)) -#define GPIO_PORTF_AHB_DIR_R (*((volatile unsigned long *)0x4005D400)) -#define GPIO_PORTF_AHB_IS_R (*((volatile unsigned long *)0x4005D404)) -#define GPIO_PORTF_AHB_IBE_R (*((volatile unsigned long *)0x4005D408)) -#define GPIO_PORTF_AHB_IEV_R (*((volatile unsigned long *)0x4005D40C)) -#define GPIO_PORTF_AHB_IM_R (*((volatile unsigned long *)0x4005D410)) -#define GPIO_PORTF_AHB_RIS_R (*((volatile unsigned long *)0x4005D414)) -#define GPIO_PORTF_AHB_MIS_R (*((volatile unsigned long *)0x4005D418)) -#define GPIO_PORTF_AHB_ICR_R (*((volatile unsigned long *)0x4005D41C)) -#define GPIO_PORTF_AHB_AFSEL_R (*((volatile unsigned long *)0x4005D420)) -#define GPIO_PORTF_AHB_DR2R_R (*((volatile unsigned long *)0x4005D500)) -#define GPIO_PORTF_AHB_DR4R_R (*((volatile unsigned long *)0x4005D504)) -#define GPIO_PORTF_AHB_DR8R_R (*((volatile unsigned long *)0x4005D508)) -#define GPIO_PORTF_AHB_ODR_R (*((volatile unsigned long *)0x4005D50C)) -#define GPIO_PORTF_AHB_PUR_R (*((volatile unsigned long *)0x4005D510)) -#define GPIO_PORTF_AHB_PDR_R (*((volatile unsigned long *)0x4005D514)) -#define GPIO_PORTF_AHB_SLR_R (*((volatile unsigned long *)0x4005D518)) -#define GPIO_PORTF_AHB_DEN_R (*((volatile unsigned long *)0x4005D51C)) -#define GPIO_PORTF_AHB_LOCK_R (*((volatile unsigned long *)0x4005D520)) -#define GPIO_PORTF_AHB_CR_R (*((volatile unsigned long *)0x4005D524)) -#define GPIO_PORTF_AHB_AMSEL_R (*((volatile unsigned long *)0x4005D528)) -#define GPIO_PORTF_AHB_PCTL_R (*((volatile unsigned long *)0x4005D52C)) -#define GPIO_PORTF_AHB_ADCCTL_R (*((volatile unsigned long *)0x4005D530)) -#define GPIO_PORTF_AHB_DMACTL_R (*((volatile unsigned long *)0x4005D534)) -#define GPIO_PORTF_AHB_SI_R (*((volatile unsigned long *)0x4005D538)) - -//***************************************************************************** -// -// GPIO registers (PORTG AHB) -// -//***************************************************************************** -#define GPIO_PORTG_AHB_DATA_BITS_R \ - ((volatile unsigned long *)0x4005E000) -#define GPIO_PORTG_AHB_DATA_R (*((volatile unsigned long *)0x4005E3FC)) -#define GPIO_PORTG_AHB_DIR_R (*((volatile unsigned long *)0x4005E400)) -#define GPIO_PORTG_AHB_IS_R (*((volatile unsigned long *)0x4005E404)) -#define GPIO_PORTG_AHB_IBE_R (*((volatile unsigned long *)0x4005E408)) -#define GPIO_PORTG_AHB_IEV_R (*((volatile unsigned long *)0x4005E40C)) -#define GPIO_PORTG_AHB_IM_R (*((volatile unsigned long *)0x4005E410)) -#define GPIO_PORTG_AHB_RIS_R (*((volatile unsigned long *)0x4005E414)) -#define GPIO_PORTG_AHB_MIS_R (*((volatile unsigned long *)0x4005E418)) -#define GPIO_PORTG_AHB_ICR_R (*((volatile unsigned long *)0x4005E41C)) -#define GPIO_PORTG_AHB_AFSEL_R (*((volatile unsigned long *)0x4005E420)) -#define GPIO_PORTG_AHB_DR2R_R (*((volatile unsigned long *)0x4005E500)) -#define GPIO_PORTG_AHB_DR4R_R (*((volatile unsigned long *)0x4005E504)) -#define GPIO_PORTG_AHB_DR8R_R (*((volatile unsigned long *)0x4005E508)) -#define GPIO_PORTG_AHB_ODR_R (*((volatile unsigned long *)0x4005E50C)) -#define GPIO_PORTG_AHB_PUR_R (*((volatile unsigned long *)0x4005E510)) -#define GPIO_PORTG_AHB_PDR_R (*((volatile unsigned long *)0x4005E514)) -#define GPIO_PORTG_AHB_SLR_R (*((volatile unsigned long *)0x4005E518)) -#define GPIO_PORTG_AHB_DEN_R (*((volatile unsigned long *)0x4005E51C)) -#define GPIO_PORTG_AHB_LOCK_R (*((volatile unsigned long *)0x4005E520)) -#define GPIO_PORTG_AHB_CR_R (*((volatile unsigned long *)0x4005E524)) -#define GPIO_PORTG_AHB_AMSEL_R (*((volatile unsigned long *)0x4005E528)) -#define GPIO_PORTG_AHB_PCTL_R (*((volatile unsigned long *)0x4005E52C)) -#define GPIO_PORTG_AHB_ADCCTL_R (*((volatile unsigned long *)0x4005E530)) -#define GPIO_PORTG_AHB_DMACTL_R (*((volatile unsigned long *)0x4005E534)) -#define GPIO_PORTG_AHB_SI_R (*((volatile unsigned long *)0x4005E538)) - -//***************************************************************************** -// -// GPIO registers (PORTH AHB) -// -//***************************************************************************** -#define GPIO_PORTH_AHB_DATA_BITS_R \ - ((volatile unsigned long *)0x4005F000) -#define GPIO_PORTH_AHB_DATA_R (*((volatile unsigned long *)0x4005F3FC)) -#define GPIO_PORTH_AHB_DIR_R (*((volatile unsigned long *)0x4005F400)) -#define GPIO_PORTH_AHB_IS_R (*((volatile unsigned long *)0x4005F404)) -#define GPIO_PORTH_AHB_IBE_R (*((volatile unsigned long *)0x4005F408)) -#define GPIO_PORTH_AHB_IEV_R (*((volatile unsigned long *)0x4005F40C)) -#define GPIO_PORTH_AHB_IM_R (*((volatile unsigned long *)0x4005F410)) -#define GPIO_PORTH_AHB_RIS_R (*((volatile unsigned long *)0x4005F414)) -#define GPIO_PORTH_AHB_MIS_R (*((volatile unsigned long *)0x4005F418)) -#define GPIO_PORTH_AHB_ICR_R (*((volatile unsigned long *)0x4005F41C)) -#define GPIO_PORTH_AHB_AFSEL_R (*((volatile unsigned long *)0x4005F420)) -#define GPIO_PORTH_AHB_DR2R_R (*((volatile unsigned long *)0x4005F500)) -#define GPIO_PORTH_AHB_DR4R_R (*((volatile unsigned long *)0x4005F504)) -#define GPIO_PORTH_AHB_DR8R_R (*((volatile unsigned long *)0x4005F508)) -#define GPIO_PORTH_AHB_ODR_R (*((volatile unsigned long *)0x4005F50C)) -#define GPIO_PORTH_AHB_PUR_R (*((volatile unsigned long *)0x4005F510)) -#define GPIO_PORTH_AHB_PDR_R (*((volatile unsigned long *)0x4005F514)) -#define GPIO_PORTH_AHB_SLR_R (*((volatile unsigned long *)0x4005F518)) -#define GPIO_PORTH_AHB_DEN_R (*((volatile unsigned long *)0x4005F51C)) -#define GPIO_PORTH_AHB_LOCK_R (*((volatile unsigned long *)0x4005F520)) -#define GPIO_PORTH_AHB_CR_R (*((volatile unsigned long *)0x4005F524)) -#define GPIO_PORTH_AHB_AMSEL_R (*((volatile unsigned long *)0x4005F528)) -#define GPIO_PORTH_AHB_PCTL_R (*((volatile unsigned long *)0x4005F52C)) -#define GPIO_PORTH_AHB_ADCCTL_R (*((volatile unsigned long *)0x4005F530)) -#define GPIO_PORTH_AHB_DMACTL_R (*((volatile unsigned long *)0x4005F534)) -#define GPIO_PORTH_AHB_SI_R (*((volatile unsigned long *)0x4005F538)) - -//***************************************************************************** -// -// GPIO registers (PORTJ AHB) -// -//***************************************************************************** -#define GPIO_PORTJ_AHB_DATA_BITS_R \ - ((volatile unsigned long *)0x40060000) -#define GPIO_PORTJ_AHB_DATA_R (*((volatile unsigned long *)0x400603FC)) -#define GPIO_PORTJ_AHB_DIR_R (*((volatile unsigned long *)0x40060400)) -#define GPIO_PORTJ_AHB_IS_R (*((volatile unsigned long *)0x40060404)) -#define GPIO_PORTJ_AHB_IBE_R (*((volatile unsigned long *)0x40060408)) -#define GPIO_PORTJ_AHB_IEV_R (*((volatile unsigned long *)0x4006040C)) -#define GPIO_PORTJ_AHB_IM_R (*((volatile unsigned long *)0x40060410)) -#define GPIO_PORTJ_AHB_RIS_R (*((volatile unsigned long *)0x40060414)) -#define GPIO_PORTJ_AHB_MIS_R (*((volatile unsigned long *)0x40060418)) -#define GPIO_PORTJ_AHB_ICR_R (*((volatile unsigned long *)0x4006041C)) -#define GPIO_PORTJ_AHB_AFSEL_R (*((volatile unsigned long *)0x40060420)) -#define GPIO_PORTJ_AHB_DR2R_R (*((volatile unsigned long *)0x40060500)) -#define GPIO_PORTJ_AHB_DR4R_R (*((volatile unsigned long *)0x40060504)) -#define GPIO_PORTJ_AHB_DR8R_R (*((volatile unsigned long *)0x40060508)) -#define GPIO_PORTJ_AHB_ODR_R (*((volatile unsigned long *)0x4006050C)) -#define GPIO_PORTJ_AHB_PUR_R (*((volatile unsigned long *)0x40060510)) -#define GPIO_PORTJ_AHB_PDR_R (*((volatile unsigned long *)0x40060514)) -#define GPIO_PORTJ_AHB_SLR_R (*((volatile unsigned long *)0x40060518)) -#define GPIO_PORTJ_AHB_DEN_R (*((volatile unsigned long *)0x4006051C)) -#define GPIO_PORTJ_AHB_LOCK_R (*((volatile unsigned long *)0x40060520)) -#define GPIO_PORTJ_AHB_CR_R (*((volatile unsigned long *)0x40060524)) -#define GPIO_PORTJ_AHB_AMSEL_R (*((volatile unsigned long *)0x40060528)) -#define GPIO_PORTJ_AHB_PCTL_R (*((volatile unsigned long *)0x4006052C)) -#define GPIO_PORTJ_AHB_ADCCTL_R (*((volatile unsigned long *)0x40060530)) -#define GPIO_PORTJ_AHB_DMACTL_R (*((volatile unsigned long *)0x40060534)) -#define GPIO_PORTJ_AHB_SI_R (*((volatile unsigned long *)0x40060538)) - -//***************************************************************************** -// -// GPIO registers (PORTK) -// -//***************************************************************************** -#define GPIO_PORTK_DATA_BITS_R ((volatile unsigned long *)0x40061000) -#define GPIO_PORTK_DATA_R (*((volatile unsigned long *)0x400613FC)) -#define GPIO_PORTK_DIR_R (*((volatile unsigned long *)0x40061400)) -#define GPIO_PORTK_IS_R (*((volatile unsigned long *)0x40061404)) -#define GPIO_PORTK_IBE_R (*((volatile unsigned long *)0x40061408)) -#define GPIO_PORTK_IEV_R (*((volatile unsigned long *)0x4006140C)) -#define GPIO_PORTK_IM_R (*((volatile unsigned long *)0x40061410)) -#define GPIO_PORTK_RIS_R (*((volatile unsigned long *)0x40061414)) -#define GPIO_PORTK_MIS_R (*((volatile unsigned long *)0x40061418)) -#define GPIO_PORTK_ICR_R (*((volatile unsigned long *)0x4006141C)) -#define GPIO_PORTK_AFSEL_R (*((volatile unsigned long *)0x40061420)) -#define GPIO_PORTK_DR2R_R (*((volatile unsigned long *)0x40061500)) -#define GPIO_PORTK_DR4R_R (*((volatile unsigned long *)0x40061504)) -#define GPIO_PORTK_DR8R_R (*((volatile unsigned long *)0x40061508)) -#define GPIO_PORTK_ODR_R (*((volatile unsigned long *)0x4006150C)) -#define GPIO_PORTK_PUR_R (*((volatile unsigned long *)0x40061510)) -#define GPIO_PORTK_PDR_R (*((volatile unsigned long *)0x40061514)) -#define GPIO_PORTK_SLR_R (*((volatile unsigned long *)0x40061518)) -#define GPIO_PORTK_DEN_R (*((volatile unsigned long *)0x4006151C)) -#define GPIO_PORTK_LOCK_R (*((volatile unsigned long *)0x40061520)) -#define GPIO_PORTK_CR_R (*((volatile unsigned long *)0x40061524)) -#define GPIO_PORTK_AMSEL_R (*((volatile unsigned long *)0x40061528)) -#define GPIO_PORTK_PCTL_R (*((volatile unsigned long *)0x4006152C)) -#define GPIO_PORTK_ADCCTL_R (*((volatile unsigned long *)0x40061530)) -#define GPIO_PORTK_DMACTL_R (*((volatile unsigned long *)0x40061534)) -#define GPIO_PORTK_SI_R (*((volatile unsigned long *)0x40061538)) - -//***************************************************************************** -// -// GPIO registers (PORTL) -// -//***************************************************************************** -#define GPIO_PORTL_DATA_BITS_R ((volatile unsigned long *)0x40062000) -#define GPIO_PORTL_DATA_R (*((volatile unsigned long *)0x400623FC)) -#define GPIO_PORTL_DIR_R (*((volatile unsigned long *)0x40062400)) -#define GPIO_PORTL_IS_R (*((volatile unsigned long *)0x40062404)) -#define GPIO_PORTL_IBE_R (*((volatile unsigned long *)0x40062408)) -#define GPIO_PORTL_IEV_R (*((volatile unsigned long *)0x4006240C)) -#define GPIO_PORTL_IM_R (*((volatile unsigned long *)0x40062410)) -#define GPIO_PORTL_RIS_R (*((volatile unsigned long *)0x40062414)) -#define GPIO_PORTL_MIS_R (*((volatile unsigned long *)0x40062418)) -#define GPIO_PORTL_ICR_R (*((volatile unsigned long *)0x4006241C)) -#define GPIO_PORTL_AFSEL_R (*((volatile unsigned long *)0x40062420)) -#define GPIO_PORTL_DR2R_R (*((volatile unsigned long *)0x40062500)) -#define GPIO_PORTL_DR4R_R (*((volatile unsigned long *)0x40062504)) -#define GPIO_PORTL_DR8R_R (*((volatile unsigned long *)0x40062508)) -#define GPIO_PORTL_ODR_R (*((volatile unsigned long *)0x4006250C)) -#define GPIO_PORTL_PUR_R (*((volatile unsigned long *)0x40062510)) -#define GPIO_PORTL_PDR_R (*((volatile unsigned long *)0x40062514)) -#define GPIO_PORTL_SLR_R (*((volatile unsigned long *)0x40062518)) -#define GPIO_PORTL_DEN_R (*((volatile unsigned long *)0x4006251C)) -#define GPIO_PORTL_LOCK_R (*((volatile unsigned long *)0x40062520)) -#define GPIO_PORTL_CR_R (*((volatile unsigned long *)0x40062524)) -#define GPIO_PORTL_AMSEL_R (*((volatile unsigned long *)0x40062528)) -#define GPIO_PORTL_PCTL_R (*((volatile unsigned long *)0x4006252C)) -#define GPIO_PORTL_ADCCTL_R (*((volatile unsigned long *)0x40062530)) -#define GPIO_PORTL_DMACTL_R (*((volatile unsigned long *)0x40062534)) -#define GPIO_PORTL_SI_R (*((volatile unsigned long *)0x40062538)) - -//***************************************************************************** -// -// GPIO registers (PORTM) -// -//***************************************************************************** -#define GPIO_PORTM_DATA_BITS_R ((volatile unsigned long *)0x40063000) -#define GPIO_PORTM_DATA_R (*((volatile unsigned long *)0x400633FC)) -#define GPIO_PORTM_DIR_R (*((volatile unsigned long *)0x40063400)) -#define GPIO_PORTM_IS_R (*((volatile unsigned long *)0x40063404)) -#define GPIO_PORTM_IBE_R (*((volatile unsigned long *)0x40063408)) -#define GPIO_PORTM_IEV_R (*((volatile unsigned long *)0x4006340C)) -#define GPIO_PORTM_IM_R (*((volatile unsigned long *)0x40063410)) -#define GPIO_PORTM_RIS_R (*((volatile unsigned long *)0x40063414)) -#define GPIO_PORTM_MIS_R (*((volatile unsigned long *)0x40063418)) -#define GPIO_PORTM_ICR_R (*((volatile unsigned long *)0x4006341C)) -#define GPIO_PORTM_AFSEL_R (*((volatile unsigned long *)0x40063420)) -#define GPIO_PORTM_DR2R_R (*((volatile unsigned long *)0x40063500)) -#define GPIO_PORTM_DR4R_R (*((volatile unsigned long *)0x40063504)) -#define GPIO_PORTM_DR8R_R (*((volatile unsigned long *)0x40063508)) -#define GPIO_PORTM_ODR_R (*((volatile unsigned long *)0x4006350C)) -#define GPIO_PORTM_PUR_R (*((volatile unsigned long *)0x40063510)) -#define GPIO_PORTM_PDR_R (*((volatile unsigned long *)0x40063514)) -#define GPIO_PORTM_SLR_R (*((volatile unsigned long *)0x40063518)) -#define GPIO_PORTM_DEN_R (*((volatile unsigned long *)0x4006351C)) -#define GPIO_PORTM_LOCK_R (*((volatile unsigned long *)0x40063520)) -#define GPIO_PORTM_CR_R (*((volatile unsigned long *)0x40063524)) -#define GPIO_PORTM_AMSEL_R (*((volatile unsigned long *)0x40063528)) -#define GPIO_PORTM_PCTL_R (*((volatile unsigned long *)0x4006352C)) -#define GPIO_PORTM_ADCCTL_R (*((volatile unsigned long *)0x40063530)) -#define GPIO_PORTM_DMACTL_R (*((volatile unsigned long *)0x40063534)) -#define GPIO_PORTM_SI_R (*((volatile unsigned long *)0x40063538)) - -//***************************************************************************** -// -// GPIO registers (PORTN) -// -//***************************************************************************** -#define GPIO_PORTN_DATA_BITS_R ((volatile unsigned long *)0x40064000) -#define GPIO_PORTN_DATA_R (*((volatile unsigned long *)0x400643FC)) -#define GPIO_PORTN_DIR_R (*((volatile unsigned long *)0x40064400)) -#define GPIO_PORTN_IS_R (*((volatile unsigned long *)0x40064404)) -#define GPIO_PORTN_IBE_R (*((volatile unsigned long *)0x40064408)) -#define GPIO_PORTN_IEV_R (*((volatile unsigned long *)0x4006440C)) -#define GPIO_PORTN_IM_R (*((volatile unsigned long *)0x40064410)) -#define GPIO_PORTN_RIS_R (*((volatile unsigned long *)0x40064414)) -#define GPIO_PORTN_MIS_R (*((volatile unsigned long *)0x40064418)) -#define GPIO_PORTN_ICR_R (*((volatile unsigned long *)0x4006441C)) -#define GPIO_PORTN_AFSEL_R (*((volatile unsigned long *)0x40064420)) -#define GPIO_PORTN_DR2R_R (*((volatile unsigned long *)0x40064500)) -#define GPIO_PORTN_DR4R_R (*((volatile unsigned long *)0x40064504)) -#define GPIO_PORTN_DR8R_R (*((volatile unsigned long *)0x40064508)) -#define GPIO_PORTN_ODR_R (*((volatile unsigned long *)0x4006450C)) -#define GPIO_PORTN_PUR_R (*((volatile unsigned long *)0x40064510)) -#define GPIO_PORTN_PDR_R (*((volatile unsigned long *)0x40064514)) -#define GPIO_PORTN_SLR_R (*((volatile unsigned long *)0x40064518)) -#define GPIO_PORTN_DEN_R (*((volatile unsigned long *)0x4006451C)) -#define GPIO_PORTN_LOCK_R (*((volatile unsigned long *)0x40064520)) -#define GPIO_PORTN_CR_R (*((volatile unsigned long *)0x40064524)) -#define GPIO_PORTN_AMSEL_R (*((volatile unsigned long *)0x40064528)) -#define GPIO_PORTN_PCTL_R (*((volatile unsigned long *)0x4006452C)) -#define GPIO_PORTN_ADCCTL_R (*((volatile unsigned long *)0x40064530)) -#define GPIO_PORTN_DMACTL_R (*((volatile unsigned long *)0x40064534)) -#define GPIO_PORTN_SI_R (*((volatile unsigned long *)0x40064538)) - -//***************************************************************************** -// -// GPIO registers (PORTP) -// -//***************************************************************************** -#define GPIO_PORTP_DATA_BITS_R ((volatile unsigned long *)0x40065000) -#define GPIO_PORTP_DATA_R (*((volatile unsigned long *)0x400653FC)) -#define GPIO_PORTP_DIR_R (*((volatile unsigned long *)0x40065400)) -#define GPIO_PORTP_IS_R (*((volatile unsigned long *)0x40065404)) -#define GPIO_PORTP_IBE_R (*((volatile unsigned long *)0x40065408)) -#define GPIO_PORTP_IEV_R (*((volatile unsigned long *)0x4006540C)) -#define GPIO_PORTP_IM_R (*((volatile unsigned long *)0x40065410)) -#define GPIO_PORTP_RIS_R (*((volatile unsigned long *)0x40065414)) -#define GPIO_PORTP_MIS_R (*((volatile unsigned long *)0x40065418)) -#define GPIO_PORTP_ICR_R (*((volatile unsigned long *)0x4006541C)) -#define GPIO_PORTP_AFSEL_R (*((volatile unsigned long *)0x40065420)) -#define GPIO_PORTP_DR2R_R (*((volatile unsigned long *)0x40065500)) -#define GPIO_PORTP_DR4R_R (*((volatile unsigned long *)0x40065504)) -#define GPIO_PORTP_DR8R_R (*((volatile unsigned long *)0x40065508)) -#define GPIO_PORTP_ODR_R (*((volatile unsigned long *)0x4006550C)) -#define GPIO_PORTP_PUR_R (*((volatile unsigned long *)0x40065510)) -#define GPIO_PORTP_PDR_R (*((volatile unsigned long *)0x40065514)) -#define GPIO_PORTP_SLR_R (*((volatile unsigned long *)0x40065518)) -#define GPIO_PORTP_DEN_R (*((volatile unsigned long *)0x4006551C)) -#define GPIO_PORTP_LOCK_R (*((volatile unsigned long *)0x40065520)) -#define GPIO_PORTP_CR_R (*((volatile unsigned long *)0x40065524)) -#define GPIO_PORTP_AMSEL_R (*((volatile unsigned long *)0x40065528)) -#define GPIO_PORTP_PCTL_R (*((volatile unsigned long *)0x4006552C)) -#define GPIO_PORTP_ADCCTL_R (*((volatile unsigned long *)0x40065530)) -#define GPIO_PORTP_DMACTL_R (*((volatile unsigned long *)0x40065534)) -#define GPIO_PORTP_SI_R (*((volatile unsigned long *)0x40065538)) - -//***************************************************************************** -// -// I2C registers (I2C4 MASTER) -// -//***************************************************************************** -#define I2C4_MASTER_MSA_R (*((volatile unsigned long *)0x400C0000)) -#define I2C4_MASTER_MCS_R (*((volatile unsigned long *)0x400C0004)) -#define I2C4_MASTER_MDR_R (*((volatile unsigned long *)0x400C0008)) -#define I2C4_MASTER_MTPR_R (*((volatile unsigned long *)0x400C000C)) -#define I2C4_MASTER_MIMR_R (*((volatile unsigned long *)0x400C0010)) -#define I2C4_MASTER_MRIS_R (*((volatile unsigned long *)0x400C0014)) -#define I2C4_MASTER_MMIS_R (*((volatile unsigned long *)0x400C0018)) -#define I2C4_MASTER_MICR_R (*((volatile unsigned long *)0x400C001C)) -#define I2C4_MASTER_MCR_R (*((volatile unsigned long *)0x400C0020)) -#define I2C4_MASTER_MCLKOCNT_R (*((volatile unsigned long *)0x400C0024)) -#define I2C4_MASTER_MBMON_R (*((volatile unsigned long *)0x400C002C)) - -//***************************************************************************** -// -// I2C registers (I2C4 SLAVE) -// -//***************************************************************************** -#define I2C4_SLAVE_SOAR_R (*((volatile unsigned long *)0x400C0800)) -#define I2C4_SLAVE_SCSR_R (*((volatile unsigned long *)0x400C0804)) -#define I2C4_SLAVE_SDR_R (*((volatile unsigned long *)0x400C0808)) -#define I2C4_SLAVE_SIMR_R (*((volatile unsigned long *)0x400C080C)) -#define I2C4_SLAVE_SRIS_R (*((volatile unsigned long *)0x400C0810)) -#define I2C4_SLAVE_SMIS_R (*((volatile unsigned long *)0x400C0814)) -#define I2C4_SLAVE_SICR_R (*((volatile unsigned long *)0x400C0818)) -#define I2C4_SLAVE_SOAR2_R (*((volatile unsigned long *)0x400C081C)) -#define I2C4_SLAVE_SACKCTL_R (*((volatile unsigned long *)0x400C0820)) - -//***************************************************************************** -// -// I2C registers (I2C5 MASTER) -// -//***************************************************************************** -#define I2C5_MASTER_MSA_R (*((volatile unsigned long *)0x400C1000)) -#define I2C5_MASTER_MCS_R (*((volatile unsigned long *)0x400C1004)) -#define I2C5_MASTER_MDR_R (*((volatile unsigned long *)0x400C1008)) -#define I2C5_MASTER_MTPR_R (*((volatile unsigned long *)0x400C100C)) -#define I2C5_MASTER_MIMR_R (*((volatile unsigned long *)0x400C1010)) -#define I2C5_MASTER_MRIS_R (*((volatile unsigned long *)0x400C1014)) -#define I2C5_MASTER_MMIS_R (*((volatile unsigned long *)0x400C1018)) -#define I2C5_MASTER_MICR_R (*((volatile unsigned long *)0x400C101C)) -#define I2C5_MASTER_MCR_R (*((volatile unsigned long *)0x400C1020)) -#define I2C5_MASTER_MCLKOCNT_R (*((volatile unsigned long *)0x400C1024)) -#define I2C5_MASTER_MBMON_R (*((volatile unsigned long *)0x400C102C)) - -//***************************************************************************** -// -// I2C registers (I2C5 SLAVE) -// -//***************************************************************************** -#define I2C5_SLAVE_SOAR_R (*((volatile unsigned long *)0x400C1800)) -#define I2C5_SLAVE_SCSR_R (*((volatile unsigned long *)0x400C1804)) -#define I2C5_SLAVE_SDR_R (*((volatile unsigned long *)0x400C1808)) -#define I2C5_SLAVE_SIMR_R (*((volatile unsigned long *)0x400C180C)) -#define I2C5_SLAVE_SRIS_R (*((volatile unsigned long *)0x400C1810)) -#define I2C5_SLAVE_SMIS_R (*((volatile unsigned long *)0x400C1814)) -#define I2C5_SLAVE_SICR_R (*((volatile unsigned long *)0x400C1818)) -#define I2C5_SLAVE_SOAR2_R (*((volatile unsigned long *)0x400C181C)) -#define I2C5_SLAVE_SACKCTL_R (*((volatile unsigned long *)0x400C1820)) - -//***************************************************************************** -// -// System Exception Module registers (SYSEXC) -// -//***************************************************************************** -#define SYSEXC_RIS_R (*((volatile unsigned long *)0x400F9000)) -#define SYSEXC_IM_R (*((volatile unsigned long *)0x400F9004)) -#define SYSEXC_MIS_R (*((volatile unsigned long *)0x400F9008)) -#define SYSEXC_IC_R (*((volatile unsigned long *)0x400F900C)) - -//***************************************************************************** -// -// Hibernation module registers (HIB) -// -//***************************************************************************** -#define HIB_RTCC_R (*((volatile unsigned long *)0x400FC000)) -#define HIB_RTCM0_R (*((volatile unsigned long *)0x400FC004)) -#define HIB_RTCLD_R (*((volatile unsigned long *)0x400FC00C)) -#define HIB_CTL_R (*((volatile unsigned long *)0x400FC010)) -#define HIB_IM_R (*((volatile unsigned long *)0x400FC014)) -#define HIB_RIS_R (*((volatile unsigned long *)0x400FC018)) -#define HIB_MIS_R (*((volatile unsigned long *)0x400FC01C)) -#define HIB_IC_R (*((volatile unsigned long *)0x400FC020)) -#define HIB_RTCT_R (*((volatile unsigned long *)0x400FC024)) -#define HIB_RTCSS_R (*((volatile unsigned long *)0x400FC028)) -#define HIB_DATA_R (*((volatile unsigned long *)0x400FC030)) - -//***************************************************************************** -// -// FLASH registers (FLASH CTRL) -// -//***************************************************************************** -#define FLASH_FMA_R (*((volatile unsigned long *)0x400FD000)) -#define FLASH_FMD_R (*((volatile unsigned long *)0x400FD004)) -#define FLASH_FMC_R (*((volatile unsigned long *)0x400FD008)) -#define FLASH_FCRIS_R (*((volatile unsigned long *)0x400FD00C)) -#define FLASH_FCIM_R (*((volatile unsigned long *)0x400FD010)) -#define FLASH_FCMISC_R (*((volatile unsigned long *)0x400FD014)) -#define FLASH_FMC2_R (*((volatile unsigned long *)0x400FD020)) -#define FLASH_FWBVAL_R (*((volatile unsigned long *)0x400FD030)) -#define FLASH_FWBN_R (*((volatile unsigned long *)0x400FD100)) -#define FLASH_FSIZE_R (*((volatile unsigned long *)0x400FDFC0)) -#define FLASH_SSIZE_R (*((volatile unsigned long *)0x400FDFC4)) -#define FLASH_ROMSWMAP_R (*((volatile unsigned long *)0x400FDFCC)) -#define FLASH_RMCTL_R (*((volatile unsigned long *)0x400FE0F0)) -#define FLASH_BOOTCFG_R (*((volatile unsigned long *)0x400FE1D0)) -#define FLASH_USERREG0_R (*((volatile unsigned long *)0x400FE1E0)) -#define FLASH_USERREG1_R (*((volatile unsigned long *)0x400FE1E4)) -#define FLASH_USERREG2_R (*((volatile unsigned long *)0x400FE1E8)) -#define FLASH_USERREG3_R (*((volatile unsigned long *)0x400FE1EC)) -#define FLASH_FMPRE0_R (*((volatile unsigned long *)0x400FE200)) -#define FLASH_FMPRE1_R (*((volatile unsigned long *)0x400FE204)) -#define FLASH_FMPRE2_R (*((volatile unsigned long *)0x400FE208)) -#define FLASH_FMPRE3_R (*((volatile unsigned long *)0x400FE20C)) -#define FLASH_FMPPE0_R (*((volatile unsigned long *)0x400FE400)) -#define FLASH_FMPPE1_R (*((volatile unsigned long *)0x400FE404)) -#define FLASH_FMPPE2_R (*((volatile unsigned long *)0x400FE408)) -#define FLASH_FMPPE3_R (*((volatile unsigned long *)0x400FE40C)) - -//***************************************************************************** -// -// System Control registers (SYSCTL) -// -//***************************************************************************** -#define SYSCTL_DID0_R (*((volatile unsigned long *)0x400FE000)) -#define SYSCTL_DID1_R (*((volatile unsigned long *)0x400FE004)) -#define SYSCTL_DC0_R (*((volatile unsigned long *)0x400FE008)) -#define SYSCTL_DC1_R (*((volatile unsigned long *)0x400FE010)) -#define SYSCTL_DC2_R (*((volatile unsigned long *)0x400FE014)) -#define SYSCTL_DC3_R (*((volatile unsigned long *)0x400FE018)) -#define SYSCTL_DC4_R (*((volatile unsigned long *)0x400FE01C)) -#define SYSCTL_DC5_R (*((volatile unsigned long *)0x400FE020)) -#define SYSCTL_DC6_R (*((volatile unsigned long *)0x400FE024)) -#define SYSCTL_DC7_R (*((volatile unsigned long *)0x400FE028)) -#define SYSCTL_DC8_R (*((volatile unsigned long *)0x400FE02C)) -#define SYSCTL_PBORCTL_R (*((volatile unsigned long *)0x400FE030)) -#define SYSCTL_SRCR0_R (*((volatile unsigned long *)0x400FE040)) -#define SYSCTL_SRCR1_R (*((volatile unsigned long *)0x400FE044)) -#define SYSCTL_SRCR2_R (*((volatile unsigned long *)0x400FE048)) -#define SYSCTL_RIS_R (*((volatile unsigned long *)0x400FE050)) -#define SYSCTL_IMC_R (*((volatile unsigned long *)0x400FE054)) -#define SYSCTL_MISC_R (*((volatile unsigned long *)0x400FE058)) -#define SYSCTL_RESC_R (*((volatile unsigned long *)0x400FE05C)) -#define SYSCTL_RCC_R (*((volatile unsigned long *)0x400FE060)) -#define SYSCTL_GPIOHBCTL_R (*((volatile unsigned long *)0x400FE06C)) -#define SYSCTL_RCC2_R (*((volatile unsigned long *)0x400FE070)) -#define SYSCTL_MOSCCTL_R (*((volatile unsigned long *)0x400FE07C)) -#define SYSCTL_RCGC0_R (*((volatile unsigned long *)0x400FE100)) -#define SYSCTL_RCGC1_R (*((volatile unsigned long *)0x400FE104)) -#define SYSCTL_RCGC2_R (*((volatile unsigned long *)0x400FE108)) -#define SYSCTL_SCGC0_R (*((volatile unsigned long *)0x400FE110)) -#define SYSCTL_SCGC1_R (*((volatile unsigned long *)0x400FE114)) -#define SYSCTL_SCGC2_R (*((volatile unsigned long *)0x400FE118)) -#define SYSCTL_DCGC0_R (*((volatile unsigned long *)0x400FE120)) -#define SYSCTL_DCGC1_R (*((volatile unsigned long *)0x400FE124)) -#define SYSCTL_DCGC2_R (*((volatile unsigned long *)0x400FE128)) -#define SYSCTL_DSLPCLKCFG_R (*((volatile unsigned long *)0x400FE144)) -#define SYSCTL_SYSPROP_R (*((volatile unsigned long *)0x400FE14C)) -#define SYSCTL_PIOSCCAL_R (*((volatile unsigned long *)0x400FE150)) -#define SYSCTL_PIOSCSTAT_R (*((volatile unsigned long *)0x400FE154)) -#define SYSCTL_PLLFREQ0_R (*((volatile unsigned long *)0x400FE160)) -#define SYSCTL_PLLFREQ1_R (*((volatile unsigned long *)0x400FE164)) -#define SYSCTL_PLLSTAT_R (*((volatile unsigned long *)0x400FE168)) -#define SYSCTL_DC9_R (*((volatile unsigned long *)0x400FE190)) -#define SYSCTL_NVMSTAT_R (*((volatile unsigned long *)0x400FE1A0)) -#define SYSCTL_PPWD_R (*((volatile unsigned long *)0x400FE300)) -#define SYSCTL_PPTIMER_R (*((volatile unsigned long *)0x400FE304)) -#define SYSCTL_PPGPIO_R (*((volatile unsigned long *)0x400FE308)) -#define SYSCTL_PPDMA_R (*((volatile unsigned long *)0x400FE30C)) -#define SYSCTL_PPHIB_R (*((volatile unsigned long *)0x400FE314)) -#define SYSCTL_PPUART_R (*((volatile unsigned long *)0x400FE318)) -#define SYSCTL_PPSSI_R (*((volatile unsigned long *)0x400FE31C)) -#define SYSCTL_PPI2C_R (*((volatile unsigned long *)0x400FE320)) -#define SYSCTL_PPUSB_R (*((volatile unsigned long *)0x400FE328)) -#define SYSCTL_PPCAN_R (*((volatile unsigned long *)0x400FE334)) -#define SYSCTL_PPADC_R (*((volatile unsigned long *)0x400FE338)) -#define SYSCTL_PPACMP_R (*((volatile unsigned long *)0x400FE33C)) -#define SYSCTL_PPPWM_R (*((volatile unsigned long *)0x400FE340)) -#define SYSCTL_PPQEI_R (*((volatile unsigned long *)0x400FE344)) -#define SYSCTL_PPEEPROM_R (*((volatile unsigned long *)0x400FE358)) -#define SYSCTL_PPWTIMER_R (*((volatile unsigned long *)0x400FE35C)) -#define SYSCTL_SRWD_R (*((volatile unsigned long *)0x400FE500)) -#define SYSCTL_SRTIMER_R (*((volatile unsigned long *)0x400FE504)) -#define SYSCTL_SRGPIO_R (*((volatile unsigned long *)0x400FE508)) -#define SYSCTL_SRDMA_R (*((volatile unsigned long *)0x400FE50C)) -#define SYSCTL_SRHIB_R (*((volatile unsigned long *)0x400FE514)) -#define SYSCTL_SRUART_R (*((volatile unsigned long *)0x400FE518)) -#define SYSCTL_SRSSI_R (*((volatile unsigned long *)0x400FE51C)) -#define SYSCTL_SRI2C_R (*((volatile unsigned long *)0x400FE520)) -#define SYSCTL_SRUSB_R (*((volatile unsigned long *)0x400FE528)) -#define SYSCTL_SRCAN_R (*((volatile unsigned long *)0x400FE534)) -#define SYSCTL_SRADC_R (*((volatile unsigned long *)0x400FE538)) -#define SYSCTL_SRACMP_R (*((volatile unsigned long *)0x400FE53C)) -#define SYSCTL_SRPWM_R (*((volatile unsigned long *)0x400FE540)) -#define SYSCTL_SRQEI_R (*((volatile unsigned long *)0x400FE544)) -#define SYSCTL_SREEPROM_R (*((volatile unsigned long *)0x400FE558)) -#define SYSCTL_SRWTIMER_R (*((volatile unsigned long *)0x400FE55C)) -#define SYSCTL_RCGCWD_R (*((volatile unsigned long *)0x400FE600)) -#define SYSCTL_RCGCTIMER_R (*((volatile unsigned long *)0x400FE604)) -#define SYSCTL_RCGCGPIO_R (*((volatile unsigned long *)0x400FE608)) -#define SYSCTL_RCGCDMA_R (*((volatile unsigned long *)0x400FE60C)) -#define SYSCTL_RCGCHIB_R (*((volatile unsigned long *)0x400FE614)) -#define SYSCTL_RCGCUART_R (*((volatile unsigned long *)0x400FE618)) -#define SYSCTL_RCGCSSI_R (*((volatile unsigned long *)0x400FE61C)) -#define SYSCTL_RCGCI2C_R (*((volatile unsigned long *)0x400FE620)) -#define SYSCTL_RCGCUSB_R (*((volatile unsigned long *)0x400FE628)) -#define SYSCTL_RCGCCAN_R (*((volatile unsigned long *)0x400FE634)) -#define SYSCTL_RCGCADC_R (*((volatile unsigned long *)0x400FE638)) -#define SYSCTL_RCGCACMP_R (*((volatile unsigned long *)0x400FE63C)) -#define SYSCTL_RCGCPWM_R (*((volatile unsigned long *)0x400FE640)) -#define SYSCTL_RCGCQEI_R (*((volatile unsigned long *)0x400FE644)) -#define SYSCTL_RCGCEEPROM_R (*((volatile unsigned long *)0x400FE658)) -#define SYSCTL_RCGCWTIMER_R (*((volatile unsigned long *)0x400FE65C)) -#define SYSCTL_SCGCWD_R (*((volatile unsigned long *)0x400FE700)) -#define SYSCTL_SCGCTIMER_R (*((volatile unsigned long *)0x400FE704)) -#define SYSCTL_SCGCGPIO_R (*((volatile unsigned long *)0x400FE708)) -#define SYSCTL_SCGCDMA_R (*((volatile unsigned long *)0x400FE70C)) -#define SYSCTL_SCGCHIB_R (*((volatile unsigned long *)0x400FE714)) -#define SYSCTL_SCGCUART_R (*((volatile unsigned long *)0x400FE718)) -#define SYSCTL_SCGCSSI_R (*((volatile unsigned long *)0x400FE71C)) -#define SYSCTL_SCGCI2C_R (*((volatile unsigned long *)0x400FE720)) -#define SYSCTL_SCGCUSB_R (*((volatile unsigned long *)0x400FE728)) -#define SYSCTL_SCGCCAN_R (*((volatile unsigned long *)0x400FE734)) -#define SYSCTL_SCGCADC_R (*((volatile unsigned long *)0x400FE738)) -#define SYSCTL_SCGCACMP_R (*((volatile unsigned long *)0x400FE73C)) -#define SYSCTL_SCGCPWM_R (*((volatile unsigned long *)0x400FE740)) -#define SYSCTL_SCGCQEI_R (*((volatile unsigned long *)0x400FE744)) -#define SYSCTL_SCGCEEPROM_R (*((volatile unsigned long *)0x400FE758)) -#define SYSCTL_SCGCWTIMER_R (*((volatile unsigned long *)0x400FE75C)) -#define SYSCTL_DCGCWD_R (*((volatile unsigned long *)0x400FE800)) -#define SYSCTL_DCGCTIMER_R (*((volatile unsigned long *)0x400FE804)) -#define SYSCTL_DCGCGPIO_R (*((volatile unsigned long *)0x400FE808)) -#define SYSCTL_DCGCDMA_R (*((volatile unsigned long *)0x400FE80C)) -#define SYSCTL_DCGCHIB_R (*((volatile unsigned long *)0x400FE814)) -#define SYSCTL_DCGCUART_R (*((volatile unsigned long *)0x400FE818)) -#define SYSCTL_DCGCSSI_R (*((volatile unsigned long *)0x400FE81C)) -#define SYSCTL_DCGCI2C_R (*((volatile unsigned long *)0x400FE820)) -#define SYSCTL_DCGCUSB_R (*((volatile unsigned long *)0x400FE828)) -#define SYSCTL_DCGCCAN_R (*((volatile unsigned long *)0x400FE834)) -#define SYSCTL_DCGCADC_R (*((volatile unsigned long *)0x400FE838)) -#define SYSCTL_DCGCACMP_R (*((volatile unsigned long *)0x400FE83C)) -#define SYSCTL_DCGCPWM_R (*((volatile unsigned long *)0x400FE840)) -#define SYSCTL_DCGCQEI_R (*((volatile unsigned long *)0x400FE844)) -#define SYSCTL_DCGCEEPROM_R (*((volatile unsigned long *)0x400FE858)) -#define SYSCTL_DCGCWTIMER_R (*((volatile unsigned long *)0x400FE85C)) -#define SYSCTL_PCWD_R (*((volatile unsigned long *)0x400FE900)) -#define SYSCTL_PCTIMER_R (*((volatile unsigned long *)0x400FE904)) -#define SYSCTL_PCGPIO_R (*((volatile unsigned long *)0x400FE908)) -#define SYSCTL_PCDMA_R (*((volatile unsigned long *)0x400FE90C)) -#define SYSCTL_PCHIB_R (*((volatile unsigned long *)0x400FE914)) -#define SYSCTL_PCUART_R (*((volatile unsigned long *)0x400FE918)) -#define SYSCTL_PCSSI_R (*((volatile unsigned long *)0x400FE91C)) -#define SYSCTL_PCI2C_R (*((volatile unsigned long *)0x400FE920)) -#define SYSCTL_PCUSB_R (*((volatile unsigned long *)0x400FE928)) -#define SYSCTL_PCCAN_R (*((volatile unsigned long *)0x400FE934)) -#define SYSCTL_PCADC_R (*((volatile unsigned long *)0x400FE938)) -#define SYSCTL_PCACMP_R (*((volatile unsigned long *)0x400FE93C)) -#define SYSCTL_PCPWM_R (*((volatile unsigned long *)0x400FE940)) -#define SYSCTL_PCQEI_R (*((volatile unsigned long *)0x400FE944)) -#define SYSCTL_PCEEPROM_R (*((volatile unsigned long *)0x400FE958)) -#define SYSCTL_PCWTIMER_R (*((volatile unsigned long *)0x400FE95C)) -#define SYSCTL_PRWD_R (*((volatile unsigned long *)0x400FEA00)) -#define SYSCTL_PRTIMER_R (*((volatile unsigned long *)0x400FEA04)) -#define SYSCTL_PRGPIO_R (*((volatile unsigned long *)0x400FEA08)) -#define SYSCTL_PRDMA_R (*((volatile unsigned long *)0x400FEA0C)) -#define SYSCTL_PRHIB_R (*((volatile unsigned long *)0x400FEA14)) -#define SYSCTL_PRUART_R (*((volatile unsigned long *)0x400FEA18)) -#define SYSCTL_PRSSI_R (*((volatile unsigned long *)0x400FEA1C)) -#define SYSCTL_PRI2C_R (*((volatile unsigned long *)0x400FEA20)) -#define SYSCTL_PRUSB_R (*((volatile unsigned long *)0x400FEA28)) -#define SYSCTL_PRCAN_R (*((volatile unsigned long *)0x400FEA34)) -#define SYSCTL_PRADC_R (*((volatile unsigned long *)0x400FEA38)) -#define SYSCTL_PRACMP_R (*((volatile unsigned long *)0x400FEA3C)) -#define SYSCTL_PRPWM_R (*((volatile unsigned long *)0x400FEA40)) -#define SYSCTL_PRQEI_R (*((volatile unsigned long *)0x400FEA44)) -#define SYSCTL_PREEPROM_R (*((volatile unsigned long *)0x400FEA58)) -#define SYSCTL_PRWTIMER_R (*((volatile unsigned long *)0x400FEA5C)) - -//***************************************************************************** -// -// Micro Direct Memory Access registers (UDMA) -// -//***************************************************************************** -#define UDMA_STAT_R (*((volatile unsigned long *)0x400FF000)) -#define UDMA_CFG_R (*((volatile unsigned long *)0x400FF004)) -#define UDMA_CTLBASE_R (*((volatile unsigned long *)0x400FF008)) -#define UDMA_ALTBASE_R (*((volatile unsigned long *)0x400FF00C)) -#define UDMA_WAITSTAT_R (*((volatile unsigned long *)0x400FF010)) -#define UDMA_SWREQ_R (*((volatile unsigned long *)0x400FF014)) -#define UDMA_USEBURSTSET_R (*((volatile unsigned long *)0x400FF018)) -#define UDMA_USEBURSTCLR_R (*((volatile unsigned long *)0x400FF01C)) -#define UDMA_REQMASKSET_R (*((volatile unsigned long *)0x400FF020)) -#define UDMA_REQMASKCLR_R (*((volatile unsigned long *)0x400FF024)) -#define UDMA_ENASET_R (*((volatile unsigned long *)0x400FF028)) -#define UDMA_ENACLR_R (*((volatile unsigned long *)0x400FF02C)) -#define UDMA_ALTSET_R (*((volatile unsigned long *)0x400FF030)) -#define UDMA_ALTCLR_R (*((volatile unsigned long *)0x400FF034)) -#define UDMA_PRIOSET_R (*((volatile unsigned long *)0x400FF038)) -#define UDMA_PRIOCLR_R (*((volatile unsigned long *)0x400FF03C)) -#define UDMA_ERRCLR_R (*((volatile unsigned long *)0x400FF04C)) -#define UDMA_CHASGN_R (*((volatile unsigned long *)0x400FF500)) -#define UDMA_CHIS_R (*((volatile unsigned long *)0x400FF504)) -#define UDMA_CHMAP0_R (*((volatile unsigned long *)0x400FF510)) -#define UDMA_CHMAP1_R (*((volatile unsigned long *)0x400FF514)) -#define UDMA_CHMAP2_R (*((volatile unsigned long *)0x400FF518)) -#define UDMA_CHMAP3_R (*((volatile unsigned long *)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_INT_TYPE_R (*((volatile unsigned long *)0xE000E004)) -#define NVIC_ACTLR_R (*((volatile unsigned long *)0xE000E008)) -#define NVIC_ST_CTRL_R (*((volatile unsigned long *)0xE000E010)) -#define NVIC_ST_RELOAD_R (*((volatile unsigned long *)0xE000E014)) -#define NVIC_ST_CURRENT_R (*((volatile unsigned long *)0xE000E018)) -#define NVIC_ST_CAL_R (*((volatile unsigned long *)0xE000E01C)) -#define NVIC_EN0_R (*((volatile unsigned long *)0xE000E100)) -#define NVIC_EN1_R (*((volatile unsigned long *)0xE000E104)) -#define NVIC_EN2_R (*((volatile unsigned long *)0xE000E108)) -#define NVIC_EN3_R (*((volatile unsigned long *)0xE000E10C)) -#define NVIC_EN4_R (*((volatile unsigned long *)0xE000E110)) -#define NVIC_DIS0_R (*((volatile unsigned long *)0xE000E180)) -#define NVIC_DIS1_R (*((volatile unsigned long *)0xE000E184)) -#define NVIC_DIS2_R (*((volatile unsigned long *)0xE000E188)) -#define NVIC_DIS3_R (*((volatile unsigned long *)0xE000E18C)) -#define NVIC_DIS4_R (*((volatile unsigned long *)0xE000E190)) -#define NVIC_PEND0_R (*((volatile unsigned long *)0xE000E200)) -#define NVIC_PEND1_R (*((volatile unsigned long *)0xE000E204)) -#define NVIC_PEND2_R (*((volatile unsigned long *)0xE000E208)) -#define NVIC_PEND3_R (*((volatile unsigned long *)0xE000E20C)) -#define NVIC_PEND4_R (*((volatile unsigned long *)0xE000E210)) -#define NVIC_UNPEND0_R (*((volatile unsigned long *)0xE000E280)) -#define NVIC_UNPEND1_R (*((volatile unsigned long *)0xE000E284)) -#define NVIC_UNPEND2_R (*((volatile unsigned long *)0xE000E288)) -#define NVIC_UNPEND3_R (*((volatile unsigned long *)0xE000E28C)) -#define NVIC_UNPEND4_R (*((volatile unsigned long *)0xE000E290)) -#define NVIC_ACTIVE0_R (*((volatile unsigned long *)0xE000E300)) -#define NVIC_ACTIVE1_R (*((volatile unsigned long *)0xE000E304)) -#define NVIC_ACTIVE2_R (*((volatile unsigned long *)0xE000E308)) -#define NVIC_ACTIVE3_R (*((volatile unsigned long *)0xE000E30C)) -#define NVIC_ACTIVE4_R (*((volatile unsigned long *)0xE000E310)) -#define NVIC_PRI0_R (*((volatile unsigned long *)0xE000E400)) -#define NVIC_PRI1_R (*((volatile unsigned long *)0xE000E404)) -#define NVIC_PRI2_R (*((volatile unsigned long *)0xE000E408)) -#define NVIC_PRI3_R (*((volatile unsigned long *)0xE000E40C)) -#define NVIC_PRI4_R (*((volatile unsigned long *)0xE000E410)) -#define NVIC_PRI5_R (*((volatile unsigned long *)0xE000E414)) -#define NVIC_PRI6_R (*((volatile unsigned long *)0xE000E418)) -#define NVIC_PRI7_R (*((volatile unsigned long *)0xE000E41C)) -#define NVIC_PRI8_R (*((volatile unsigned long *)0xE000E420)) -#define NVIC_PRI9_R (*((volatile unsigned long *)0xE000E424)) -#define NVIC_PRI10_R (*((volatile unsigned long *)0xE000E428)) -#define NVIC_PRI11_R (*((volatile unsigned long *)0xE000E42C)) -#define NVIC_PRI12_R (*((volatile unsigned long *)0xE000E430)) -#define NVIC_PRI13_R (*((volatile unsigned long *)0xE000E434)) -#define NVIC_PRI14_R (*((volatile unsigned long *)0xE000E438)) -#define NVIC_PRI15_R (*((volatile unsigned long *)0xE000E43C)) -#define NVIC_PRI16_R (*((volatile unsigned long *)0xE000E440)) -#define NVIC_PRI17_R (*((volatile unsigned long *)0xE000E444)) -#define NVIC_PRI18_R (*((volatile unsigned long *)0xE000E448)) -#define NVIC_PRI19_R (*((volatile unsigned long *)0xE000E44C)) -#define NVIC_PRI20_R (*((volatile unsigned long *)0xE000E450)) -#define NVIC_PRI21_R (*((volatile unsigned long *)0xE000E454)) -#define NVIC_PRI22_R (*((volatile unsigned long *)0xE000E458)) -#define NVIC_PRI23_R (*((volatile unsigned long *)0xE000E45C)) -#define NVIC_PRI24_R (*((volatile unsigned long *)0xE000E460)) -#define NVIC_PRI25_R (*((volatile unsigned long *)0xE000E464)) -#define NVIC_PRI26_R (*((volatile unsigned long *)0xE000E468)) -#define NVIC_PRI27_R (*((volatile unsigned long *)0xE000E46C)) -#define NVIC_PRI28_R (*((volatile unsigned long *)0xE000E470)) -#define NVIC_PRI29_R (*((volatile unsigned long *)0xE000E474)) -#define NVIC_PRI30_R (*((volatile unsigned long *)0xE000E478)) -#define NVIC_PRI31_R (*((volatile unsigned long *)0xE000E47C)) -#define NVIC_PRI32_R (*((volatile unsigned long *)0xE000E480)) -#define NVIC_CPUID_R (*((volatile unsigned long *)0xE000ED00)) -#define NVIC_INT_CTRL_R (*((volatile unsigned long *)0xE000ED04)) -#define NVIC_VTABLE_R (*((volatile unsigned long *)0xE000ED08)) -#define NVIC_APINT_R (*((volatile unsigned long *)0xE000ED0C)) -#define NVIC_SYS_CTRL_R (*((volatile unsigned long *)0xE000ED10)) -#define NVIC_CFG_CTRL_R (*((volatile unsigned long *)0xE000ED14)) -#define NVIC_SYS_PRI1_R (*((volatile unsigned long *)0xE000ED18)) -#define NVIC_SYS_PRI2_R (*((volatile unsigned long *)0xE000ED1C)) -#define NVIC_SYS_PRI3_R (*((volatile unsigned long *)0xE000ED20)) -#define NVIC_SYS_HND_CTRL_R (*((volatile unsigned long *)0xE000ED24)) -#define NVIC_FAULT_STAT_R (*((volatile unsigned long *)0xE000ED28)) -#define NVIC_HFAULT_STAT_R (*((volatile unsigned long *)0xE000ED2C)) -#define NVIC_DEBUG_STAT_R (*((volatile unsigned long *)0xE000ED30)) -#define NVIC_MM_ADDR_R (*((volatile unsigned long *)0xE000ED34)) -#define NVIC_FAULT_ADDR_R (*((volatile unsigned long *)0xE000ED38)) -#define NVIC_CPAC_R (*((volatile unsigned long *)0xE000ED88)) -#define NVIC_MPU_TYPE_R (*((volatile unsigned long *)0xE000ED90)) -#define NVIC_MPU_CTRL_R (*((volatile unsigned long *)0xE000ED94)) -#define NVIC_MPU_NUMBER_R (*((volatile unsigned long *)0xE000ED98)) -#define NVIC_MPU_BASE_R (*((volatile unsigned long *)0xE000ED9C)) -#define NVIC_MPU_ATTR_R (*((volatile unsigned long *)0xE000EDA0)) -#define NVIC_MPU_BASE1_R (*((volatile unsigned long *)0xE000EDA4)) -#define NVIC_MPU_ATTR1_R (*((volatile unsigned long *)0xE000EDA8)) -#define NVIC_MPU_BASE2_R (*((volatile unsigned long *)0xE000EDAC)) -#define NVIC_MPU_ATTR2_R (*((volatile unsigned long *)0xE000EDB0)) -#define NVIC_MPU_BASE3_R (*((volatile unsigned long *)0xE000EDB4)) -#define NVIC_MPU_ATTR3_R (*((volatile unsigned long *)0xE000EDB8)) -#define NVIC_DBG_CTRL_R (*((volatile unsigned long *)0xE000EDF0)) -#define NVIC_DBG_XFER_R (*((volatile unsigned long *)0xE000EDF4)) -#define NVIC_DBG_DATA_R (*((volatile unsigned long *)0xE000EDF8)) -#define NVIC_DBG_INT_R (*((volatile unsigned long *)0xE000EDFC)) -#define NVIC_SW_TRIG_R (*((volatile unsigned long *)0xE000EF00)) -#define NVIC_FPCC_R (*((volatile unsigned long *)0xE000EF34)) -#define NVIC_FPCA_R (*((volatile unsigned long *)0xE000EF38)) -#define NVIC_FPDSC_R (*((volatile unsigned long *)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 - -//***************************************************************************** -// -// 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_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_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_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_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_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_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_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_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_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_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_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_CAN1RX 0x08000000 // CAN1RX on PE6 -#define GPIO_PCTL_PE5_M 0x00F00000 // PE5 mask -#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_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_PE1_M 0x000000F0 // PE1 mask -#define GPIO_PCTL_PE1_U7TX 0x00000010 // U7TX on PE1 -#define GPIO_PCTL_PE0_M 0x0000000F // PE0 mask -#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_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_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_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_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_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_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_PJ5_M 0x00F00000 // PJ5 mask -#define GPIO_PCTL_PJ5_U6TX 0x00100000 // U6TX on PJ5 -#define GPIO_PCTL_PJ5_T3CCP1 0x00700000 // T3CCP1 on PJ5 -#define GPIO_PCTL_PJ4_M 0x000F0000 // PJ4 mask -#define GPIO_PCTL_PJ4_U6RX 0x00010000 // U6RX on PJ4 -#define GPIO_PCTL_PJ4_T3CCP0 0x00070000 // T3CCP0 on PJ4 -#define GPIO_PCTL_PJ3_M 0x0000F000 // PJ3 mask -#define GPIO_PCTL_PJ3_U5TX 0x00001000 // U5TX on PJ3 -#define GPIO_PCTL_PJ3_T2CCP1 0x00007000 // T2CCP1 on PJ3 -#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_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_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_PK7_M 0xF0000000 // PK7 Mask -#define GPIO_PCTL_PK7_M0FAULT3 0x60000000 // M0FAULT3 on PK7 -#define GPIO_PCTL_PK7_WT1CCP1 0x70000000 // WT1CCP1 on PK7 -#define GPIO_PCTL_PK6_M 0x0F000000 // PK6 Mask -#define GPIO_PCTL_PK6_M0FAULT2 0x06000000 // M0FAULT2 on PK6 -#define GPIO_PCTL_PK6_WT1CCP0 0x07000000 // WT1CCP0 on PK6 -#define GPIO_PCTL_PK6_C2O 0x08000000 // C2O on PK6 -#define GPIO_PCTL_PK5_M 0x00F00000 // PK5 Mask -#define GPIO_PCTL_PK5_U7TX 0x00100000 // U7TX on PK5 -#define GPIO_PCTL_PK5_M0FAULT1 0x00600000 // M0FAULT1 on PK5 -#define GPIO_PCTL_PK5_C1O 0x00800000 // C1O on PK5 -#define GPIO_PCTL_PK4_M 0x000F0000 // PK4 Mask -#define GPIO_PCTL_PK4_U7RX 0x00010000 // U7RX on PK4 -#define GPIO_PCTL_PK4_M0FAULT0 0x00060000 // M0FAULT0 on PK4 -#define GPIO_PCTL_PK4_RTCCLK 0x00070000 // RTCCLK on PK4 -#define GPIO_PCTL_PK4_C0O 0x00080000 // C0O on PK4 -#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 GPIO_PCTL register for -// port L. -// -//***************************************************************************** -#define GPIO_PCTL_PL7_M 0xF0000000 // PL7 Mask -#define GPIO_PCTL_PL7_T3CCP1 0x70000000 // T3CCP1 on PL7 -#define GPIO_PCTL_PL7_WT3CCP1 0x80000000 // WT3CCP1 on PL7 -#define GPIO_PCTL_PL6_M 0x0F000000 // PL6 Mask -#define GPIO_PCTL_PL6_T3CCP0 0x07000000 // T3CCP0 on PL6 -#define GPIO_PCTL_PL6_WT3CCP0 0x08000000 // WT3CCP0 on PL6 -#define GPIO_PCTL_PL5_M 0x00F00000 // PL5 Mask -#define GPIO_PCTL_PL5_T2CCP1 0x00700000 // T2CCP1 on PL5 -#define GPIO_PCTL_PL5_WT2CCP1 0x00800000 // WT2CCP1 on PL5 -#define GPIO_PCTL_PL5_LPC0RESET_N \ - 0x00F00000 // LPC0RESET_N on PL5 -#define GPIO_PCTL_PL4_M 0x000F0000 // PL4 Mask -#define GPIO_PCTL_PL4_T2CCP0 0x00070000 // T2CCP0 on PL4 -#define GPIO_PCTL_PL4_WT2CCP0 0x00080000 // WT2CCP0 on PL4 -#define GPIO_PCTL_PL4_LPC0FRAME_N \ - 0x000F0000 // LPC0FRAME_N on PL4 -#define GPIO_PCTL_PL3_M 0x0000F000 // PL3 Mask -#define GPIO_PCTL_PL3_T1CCP1 0x00007000 // T1CCP1 on PL3 -#define GPIO_PCTL_PL3_WT1CCP1 0x00008000 // WT1CCP1 on PL3 -#define GPIO_PCTL_PL2_M 0x00000F00 // PL2 Mask -#define GPIO_PCTL_PL2_T1CCP0 0x00000700 // T1CCP0 on PL2 -#define GPIO_PCTL_PL2_WT1CCP0 0x00000800 // WT1CCP0 on PL2 -#define GPIO_PCTL_PL1_M 0x000000F0 // PL1 Mask -#define GPIO_PCTL_PL1_T0CCP1 0x00000070 // T0CCP1 on PL1 -#define GPIO_PCTL_PL1_WT0CCP1 0x00000080 // WT0CCP1 on PL1 -#define GPIO_PCTL_PL0_M 0x0000000F // PL0 Mask -#define GPIO_PCTL_PL0_T0CCP0 0x00000007 // T0CCP0 on PL0 -#define GPIO_PCTL_PL0_WT0CCP0 0x00000008 // WT0CCP0 on PL0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the GPIO_PCTL register for -// port M. -// -//***************************************************************************** -#define GPIO_PCTL_PM7_M 0xF0000000 // PM7 Mask -#define GPIO_PCTL_PM7_M0PWM5 0x20000000 // M0PWM5 on PM7 -#define GPIO_PCTL_PM7_WT0CCP1 0x70000000 // WT0CCP1 on PM7 -#define GPIO_PCTL_PM6_M 0x0F000000 // PM6 Mask -#define GPIO_PCTL_PM6_M0PWM4 0x02000000 // M0PWM4 on PM6 -#define GPIO_PCTL_PM6_WT0CCP0 0x07000000 // WT0CCP0 on PM6 -#define GPIO_PCTL_PM3_M 0x0000F000 // PM3 Mask -#define GPIO_PCTL_PM3_T5CCP1 0x00007000 // T5CCP1 on PM3 -#define GPIO_PCTL_PM3_WT5CCP1 0x00008000 // WT5CCP1 on PM3 -#define GPIO_PCTL_PM2_M 0x00000F00 // PM2 Mask -#define GPIO_PCTL_PM2_T5CCP0 0x00000700 // T5CCP0 on PM2 -#define GPIO_PCTL_PM2_WT5CCP0 0x00000800 // WT5CCP0 on PM2 -#define GPIO_PCTL_PM2_LPC0CLKRUN_N \ - 0x00000F00 // LPC0CLKRUN_N on PM2 -#define GPIO_PCTL_PM1_M 0x000000F0 // PM1 Mask -#define GPIO_PCTL_PM1_T4CCP1 0x00000070 // T4CCP1 on PM1 -#define GPIO_PCTL_PM1_WT4CCP1 0x00000080 // WT4CCP1 on PM1 -#define GPIO_PCTL_PM1_LPC0SCI_N 0x000000F0 // LPC0SCI_N on PM1 -#define GPIO_PCTL_PM0_M 0x0000000F // PM0 Mask -#define GPIO_PCTL_PM0_T4CCP0 0x00000007 // T4CCP0 on PM0 -#define GPIO_PCTL_PM0_WT4CCP0 0x00000008 // WT4CCP0 on PM0 -#define GPIO_PCTL_PM0_LPC0PD_N 0x0000000F // LPC0PD_N on PM0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the GPIO_PCTL register for -// port N. -// -//***************************************************************************** -#define GPIO_PCTL_PN7_M 0xF0000000 // PN7 Mask -#define GPIO_PCTL_PN7_M1PWM7 0x20000000 // M1PWM7 on PN7 -#define GPIO_PCTL_PN7_WT4CCP1 0x70000000 // WT4CCP1 on PN7 -#define GPIO_PCTL_PN6_M 0x0F000000 // PN6 Mask -#define GPIO_PCTL_PN6_M1PWM6 0x02000000 // M1PWM6 on PN6 -#define GPIO_PCTL_PN6_WT4CCP0 0x07000000 // WT4CCP0 on PN6 -#define GPIO_PCTL_PN5_M 0x00F00000 // PN5 Mask -#define GPIO_PCTL_PN5_M1PWM5 0x00200000 // M1PWM5 on PN5 -#define GPIO_PCTL_PN5_WT3CCP1 0x00700000 // WT3CCP1 on PN5 -#define GPIO_PCTL_PN4_M 0x000F0000 // PN4 Mask -#define GPIO_PCTL_PN4_M1PWM4 0x00020000 // M1PWM4 on PN4 -#define GPIO_PCTL_PN4_WT3CCP0 0x00070000 // WT3CCP0 on PN4 -#define GPIO_PCTL_PN3_M 0x0000F000 // PN3 Mask -#define GPIO_PCTL_PN3_M0PWM7 0x00002000 // M0PWM7 on PN3 -#define GPIO_PCTL_PN3_WT2CCP1 0x00007000 // WT2CCP1 on PN3 -#define GPIO_PCTL_PN2_M 0x00000F00 // PN2 Mask -#define GPIO_PCTL_PN2_M0PWM6 0x00000200 // M0PWM6 on PN2 -#define GPIO_PCTL_PN2_WT2CCP0 0x00000700 // WT2CCP0 on PN2 -#define GPIO_PCTL_PN1_M 0x000000F0 // PN1 Mask -#define GPIO_PCTL_PN1_CAN0TX 0x00000010 // CAN0TX on PN1 -#define GPIO_PCTL_PN0_M 0x0000000F // PN0 Mask -#define GPIO_PCTL_PN0_CAN0RX 0x00000001 // CAN0RX on PN0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the GPIO_PCTL register for -// port P. -// -//***************************************************************************** -#define GPIO_PCTL_PP2_M 0x00000F00 // PP2 Mask -#define GPIO_PCTL_PP2_M0PWM2 0x00000100 // M0PWM2 on PP2 -#define GPIO_PCTL_PP2_T5CCP0 0x00000700 // T5CCP0 on PP2 -#define GPIO_PCTL_PP1_M 0x000000F0 // PP1 Mask -#define GPIO_PCTL_PP1_M0PWM1 0x00000010 // M0PWM1 on PP1 -#define GPIO_PCTL_PP1_T4CCP1 0x00000070 // T4CCP1 on PP1 -#define GPIO_PCTL_PP0_M 0x0000000F // PP0 Mask -#define GPIO_PCTL_PP0_M0PWM0 0x00000001 // M0PWM0 on PP0 -#define GPIO_PCTL_PP0_T4CCP0 0x00000007 // T4CCP0 on PP0 - -//***************************************************************************** -// -// 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 // Texas Instruments 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_SOD 0x00000008 // SSI Slave Mode Output Disable -#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 // Either the system clock (if the - // PLL bypass is in effect) or the - // PLL output (default) -#define SSI_CC_CS_PIOSC 0x00000001 // 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_LIN 0x00000040 // LIN Mode 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_LME5IM 0x00008000 // LIN Mode Edge 5 Interrupt Mask -#define UART_IM_LME1IM 0x00004000 // LIN Mode Edge 1 Interrupt Mask -#define UART_IM_LMSBIM 0x00002000 // LIN Mode Sync Break Interrupt - // Mask -#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_LME5RIS 0x00008000 // LIN Mode Edge 5 Raw Interrupt - // Status -#define UART_RIS_LME1RIS 0x00004000 // LIN Mode Edge 1 Raw Interrupt - // Status -#define UART_RIS_LMSBRIS 0x00002000 // LIN Mode Sync Break Raw - // Interrupt Status -#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_LME5MIS 0x00008000 // LIN Mode Edge 5 Masked Interrupt - // Status -#define UART_MIS_LME1MIS 0x00004000 // LIN Mode Edge 1 Masked Interrupt - // Status -#define UART_MIS_LMSBMIS 0x00002000 // LIN Mode Sync Break Masked - // Interrupt Status -#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_LME5IC 0x00008000 // LIN Mode Edge 5 Interrupt Clear -#define UART_ICR_LME1IC 0x00004000 // LIN Mode Edge 1 Interrupt Clear -#define UART_ICR_LMSBIC 0x00002000 // LIN Mode Sync Break Interrupt - // Clear -#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_LCTL register. -// -//***************************************************************************** -#define UART_LCTL_BLEN_M 0x00000030 // Sync Break Length -#define UART_LCTL_BLEN_13T 0x00000000 // Sync break length is 13T bits - // (default) -#define UART_LCTL_BLEN_14T 0x00000010 // Sync break length is 14T bits -#define UART_LCTL_BLEN_15T 0x00000020 // Sync break length is 15T bits -#define UART_LCTL_BLEN_16T 0x00000030 // Sync break length is 16T bits -#define UART_LCTL_MASTER 0x00000001 // LIN Master Enable - -//***************************************************************************** -// -// The following are defines for the bit fields in the UART_O_LSS register. -// -//***************************************************************************** -#define UART_LSS_TSS_M 0x0000FFFF // Timer Snap Shot -#define UART_LSS_TSS_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the UART_O_LTIM register. -// -//***************************************************************************** -#define UART_LTIM_TIMER_M 0x0000FFFF // Timer Value -#define UART_LTIM_TIMER_S 0 - -//***************************************************************************** -// -// 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_RANGE_M 0x0000FF00 // Self Address Range for 9-Bit - // Mode -#define UART_9BITAMASK_MASK_M 0x000000FF // Self Address Mask for 9-Bit Mode -#define UART_9BITAMASK_RANGE_S 8 -#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 // The system clock (default) -#define UART_CC_CS_PIOSC 0x00000001 // 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_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_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_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_START 0x00000002 // Generate START -#define I2C_MCS_ERROR 0x00000002 // Error -#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_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_MDR register. -// -//***************************************************************************** -#define I2C_MDR_DATA_M 0x000000FF // Data Transferred -#define I2C_MDR_DATA_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the I2C_O_MTPR register. -// -//***************************************************************************** -#define I2C_MTPR_TPR_M 0x0000007F // SCL Clock Period -#define I2C_MTPR_TPR_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_MIMR register. -// -//***************************************************************************** -#define I2C_MIMR_CLKIM 0x00000002 // Clock Timeout Interrupt Mask -#define I2C_MIMR_IM 0x00000001 // 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 // 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_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 // 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_MCR register. -// -//***************************************************************************** -#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_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_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_PP register. -// -//***************************************************************************** -#define I2C_PP_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 // PWM7 Output Enable -#define PWM_ENABLE_PWM6EN 0x00000040 // PWM6 Output Enable -#define PWM_ENABLE_PWM5EN 0x00000020 // PWM5 Output Enable -#define PWM_ENABLE_PWM4EN 0x00000010 // PWM4 Output Enable -#define PWM_ENABLE_PWM3EN 0x00000008 // PWM3 Output Enable -#define PWM_ENABLE_PWM2EN 0x00000004 // PWM2 Output Enable -#define PWM_ENABLE_PWM1EN 0x00000002 // PWM1 Output Enable -#define PWM_ENABLE_PWM0EN 0x00000001 // PWM0 Output Enable - -//***************************************************************************** -// -// The following are defines for the bit fields in the PWM_O_INVERT register. -// -//***************************************************************************** -#define PWM_INVERT_PWM7INV 0x00000080 // Invert PWM7 Signal -#define PWM_INVERT_PWM6INV 0x00000040 // Invert PWM6 Signal -#define PWM_INVERT_PWM5INV 0x00000020 // Invert PWM5 Signal -#define PWM_INVERT_PWM4INV 0x00000010 // Invert PWM4 Signal -#define PWM_INVERT_PWM3INV 0x00000008 // Invert PWM3 Signal -#define PWM_INVERT_PWM2INV 0x00000004 // Invert PWM2 Signal -#define PWM_INVERT_PWM1INV 0x00000002 // Invert PWM1 Signal -#define PWM_INVERT_PWM0INV 0x00000001 // Invert PWM0 Signal - -//***************************************************************************** -// -// The following are defines for the bit fields in the PWM_O_FAULT register. -// -//***************************************************************************** -#define PWM_FAULT_FAULT7 0x00000080 // PWM7 Fault -#define PWM_FAULT_FAULT6 0x00000040 // PWM6 Fault -#define PWM_FAULT_FAULT5 0x00000020 // PWM5 Fault -#define PWM_FAULT_FAULT4 0x00000010 // PWM4 Fault -#define PWM_FAULT_FAULT3 0x00000008 // PWM3 Fault -#define PWM_FAULT_FAULT2 0x00000004 // PWM2 Fault -#define PWM_FAULT_FAULT1 0x00000002 // PWM1 Fault -#define PWM_FAULT_FAULT0 0x00000001 // PWM0 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 // PWM7 Fault Value -#define PWM_FAULTVAL_PWM6 0x00000040 // PWM6 Fault Value -#define PWM_FAULTVAL_PWM5 0x00000020 // PWM5 Fault Value -#define PWM_FAULTVAL_PWM4 0x00000010 // PWM4 Fault Value -#define PWM_FAULTVAL_PWM3 0x00000008 // PWM3 Fault Value -#define PWM_FAULTVAL_PWM2 0x00000004 // PWM2 Fault Value -#define PWM_FAULTVAL_PWM1 0x00000002 // PWM1 Fault Value -#define PWM_FAULTVAL_PWM0 0x00000001 // PWM0 Fault Value - -//***************************************************************************** -// -// The following are defines for the bit fields in the PWM_O_ENUPD register. -// -//***************************************************************************** -#define PWM_ENUPD_ENUPD7_M 0x0000C000 // PWM7 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 // PWM6 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 // PWM5 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 // PWM4 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 // PWM3 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 // PWM2 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 // PWM1 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 // PWM0 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_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 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 - -//***************************************************************************** -// -// 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 -#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 PWM_O_PC register. -// -//***************************************************************************** -#define PWM_PC_USEOPWMDIV 0x00000100 // Enable PWM Clock Divisor -#define PWM_PC_PWMDIV_M 0x000000FF // PWM Clock Divisor -#define PWM_PC_PWMDIV_2 0x00000000 // /2 -#define PWM_PC_PWMDIV_4 0x00000001 // /4 -#define PWM_PC_PWMDIV_8 0x00000002 // /8 -#define PWM_PC_PWMDIV_16 0x00000003 // /16 -#define PWM_PC_PWMDIV_32 0x00000004 // /32 -#define PWM_PC_PWMDIV_64 0x00000007 // /64 (default) - -//***************************************************************************** -// -// 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 // 32-bit timer configuration -#define TIMER_CFG_32_BIT_RTC 0x00000001 // 32-bit real-time clock (RTC) - // counter configuration -#define TIMER_CFG_16_BIT 0x00000004 // 16-bit timer configuration. The - // function is controlled by bits - // 1:0 of GPTMTAMR and GPTMTBMR - -//***************************************************************************** -// -// 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 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 16/32-Bit Timer - // 5 -#define TIMER_SYNC_SYNCT5_NONE 0x00000000 // GPTM 16/32-Bit Timer 5 is not - // affected -#define TIMER_SYNC_SYNCT5_TA 0x00000400 // A timeout event for Timer A of - // GPTM 16/32-Bit Timer 5 is - // triggered -#define TIMER_SYNC_SYNCT5_TB 0x00000800 // A timeout event for Timer B of - // GPTM 16/32-Bit Timer 5 is - // triggered -#define TIMER_SYNC_SYNCT5_TATB 0x00000C00 // A timeout event for both Timer A - // and Timer B of GPTM 16/32-Bit - // Timer 5 is triggered -#define TIMER_SYNC_SYNCT4_M 0x00000300 // Synchronize GPTM 16/32-Bit Timer - // 4 -#define TIMER_SYNC_SYNCT4_NONE 0x00000000 // GPTM 16/32-Bit Timer 4 is not - // affected -#define TIMER_SYNC_SYNCT4_TA 0x00000100 // A timeout event for Timer A of - // GPTM 16/32-Bit Timer 4 is - // triggered -#define TIMER_SYNC_SYNCT4_TB 0x00000200 // A timeout event for Timer B of - // GPTM 16/32-Bit Timer 4 is - // triggered -#define TIMER_SYNC_SYNCT4_TATB 0x00000300 // A timeout event for both Timer A - // and Timer B of GPTM 16/32-Bit - // Timer 4 is triggered -#define TIMER_SYNC_SYNCT3_M 0x000000C0 // Synchronize GPTM 16/32-Bit Timer - // 3 -#define TIMER_SYNC_SYNCT3_NONE 0x00000000 // GPTM 16/32-Bit Timer 3 is not - // affected -#define TIMER_SYNC_SYNCT3_TA 0x00000040 // A timeout event for Timer A of - // GPTM 16/32-Bit Timer 3 is - // triggered -#define TIMER_SYNC_SYNCT3_TB 0x00000080 // A timeout event for Timer B of - // GPTM 16/32-Bit Timer 3 is - // triggered -#define TIMER_SYNC_SYNCT3_TATB 0x000000C0 // A timeout event for both Timer A - // and Timer B of GPTM 16/32-Bit - // Timer 3 is triggered -#define TIMER_SYNC_SYNCT2_M 0x00000030 // Synchronize GPTM 16/32-Bit Timer - // 2 -#define TIMER_SYNC_SYNCT2_NONE 0x00000000 // GPTM 16/32-Bit Timer 2 is not - // affected -#define TIMER_SYNC_SYNCT2_TA 0x00000010 // A timeout event for Timer A of - // GPTM 16/32-Bit Timer 2 is - // triggered -#define TIMER_SYNC_SYNCT2_TB 0x00000020 // A timeout event for Timer B of - // GPTM 16/32-Bit Timer 2 is - // triggered -#define TIMER_SYNC_SYNCT2_TATB 0x00000030 // A timeout event for both Timer A - // and Timer B of GPTM 16/32-Bit - // Timer 2 is triggered -#define TIMER_SYNC_SYNCT1_M 0x0000000C // Synchronize GPTM 16/32-Bit Timer - // 1 -#define TIMER_SYNC_SYNCT1_NONE 0x00000000 // GPTM 16/32-Bit Timer 1 is not - // affected -#define TIMER_SYNC_SYNCT1_TA 0x00000004 // A timeout event for Timer A of - // GPTM 16/32-Bit Timer 1 is - // triggered -#define TIMER_SYNC_SYNCT1_TB 0x00000008 // A timeout event for Timer B of - // GPTM 16/32-Bit Timer 1 is - // triggered -#define TIMER_SYNC_SYNCT1_TATB 0x0000000C // A timeout event for both Timer A - // and Timer B of GPTM 16/32-Bit - // Timer 1 is triggered -#define TIMER_SYNC_SYNCT0_M 0x00000003 // Synchronize GPTM 16/32-Bit Timer - // 0 -#define TIMER_SYNC_SYNCT0_NONE 0x00000000 // GPTM 16/32-Bit Timer 0 is not - // affected -#define TIMER_SYNC_SYNCT0_TA 0x00000001 // A timeout event for Timer A of - // GPTM 16/32-Bit Timer 0 is - // triggered -#define TIMER_SYNC_SYNCT0_TB 0x00000002 // A timeout event for Timer B of - // GPTM 16/32-Bit Timer 0 is - // triggered -#define TIMER_SYNC_SYNCT0_TATB 0x00000003 // A timeout event for both Timer A - // and Timer B of GPTM 16/32-Bit - // Timer 0 is triggered - -//***************************************************************************** -// -// The following are defines for the bit fields in the TIMER_O_IMR register. -// -//***************************************************************************** -#define TIMER_IMR_WUEIM 0x00010000 // 32/64-Bit GPTM Write Update - // Error Interrupt Mask -#define TIMER_IMR_TBMIM 0x00000800 // GPTM Timer B Mode Match - // Interrupt Mask -#define TIMER_IMR_CBEIM 0x00000400 // GPTM Capture B Event Interrupt - // Mask -#define TIMER_IMR_CBMIM 0x00000200 // GPTM Capture B Match Interrupt - // Mask -#define TIMER_IMR_TBTOIM 0x00000100 // GPTM Timer B Time-Out Interrupt - // Mask -#define TIMER_IMR_TAMIM 0x00000010 // GPTM Timer A Mode Match - // Interrupt Mask -#define TIMER_IMR_RTCIM 0x00000008 // GPTM RTC Interrupt Mask -#define TIMER_IMR_CAEIM 0x00000004 // GPTM Capture A Event Interrupt - // Mask -#define TIMER_IMR_CAMIM 0x00000002 // GPTM Capture A 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 GPTM Write Update - // Error Raw Interrupt Status -#define TIMER_RIS_TBMRIS 0x00000800 // GPTM Timer B Mode Match Raw - // Interrupt -#define TIMER_RIS_CBERIS 0x00000400 // GPTM Capture B Event Raw - // Interrupt -#define TIMER_RIS_CBMRIS 0x00000200 // GPTM Capture B Match Raw - // Interrupt -#define TIMER_RIS_TBTORIS 0x00000100 // GPTM Timer B Time-Out Raw - // Interrupt -#define TIMER_RIS_TAMRIS 0x00000010 // GPTM Timer A Mode Match Raw - // Interrupt -#define TIMER_RIS_RTCRIS 0x00000008 // GPTM RTC Raw Interrupt -#define TIMER_RIS_CAERIS 0x00000004 // GPTM Capture A Event Raw - // Interrupt -#define TIMER_RIS_CAMRIS 0x00000002 // GPTM Capture A 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 GPTM Write Update - // Error Masked Interrupt Status -#define TIMER_MIS_TBMMIS 0x00000800 // GPTM Timer B Mode Match Masked - // Interrupt -#define TIMER_MIS_CBEMIS 0x00000400 // GPTM Capture B Event Masked - // Interrupt -#define TIMER_MIS_CBMMIS 0x00000200 // GPTM Capture B Match Masked - // Interrupt -#define TIMER_MIS_TBTOMIS 0x00000100 // GPTM Timer B Time-Out Masked - // Interrupt -#define TIMER_MIS_TAMMIS 0x00000010 // GPTM Timer A Mode Match Masked - // Interrupt -#define TIMER_MIS_RTCMIS 0x00000008 // GPTM RTC Masked Interrupt -#define TIMER_MIS_CAEMIS 0x00000004 // GPTM Capture A Event Masked - // Interrupt -#define TIMER_MIS_CAMMIS 0x00000002 // GPTM Capture A 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 GPTM Write Update - // Error Interrupt Clear -#define TIMER_ICR_TBMCINT 0x00000800 // GPTM Timer B Mode Match - // Interrupt Clear -#define TIMER_ICR_CBECINT 0x00000400 // GPTM Capture B Event Interrupt - // Clear -#define TIMER_ICR_CBMCINT 0x00000200 // GPTM Capture B Match Interrupt - // Clear -#define TIMER_ICR_TBTOCINT 0x00000100 // GPTM Timer B Time-Out Interrupt - // Clear -#define TIMER_ICR_TAMCINT 0x00000010 // GPTM Timer A Mode Match - // Interrupt Clear -#define TIMER_ICR_RTCCINT 0x00000008 // GPTM RTC Interrupt Clear -#define TIMER_ICR_CAECINT 0x00000004 // GPTM Capture A Event Interrupt - // Clear -#define TIMER_ICR_CAMCINT 0x00000002 // GPTM Capture A 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_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 PB4) -#define ADC_EMUX_EM3_TIMER 0x00005000 // Timer -#define ADC_EMUX_EM3_PWM0 0x00006000 // PWM0 -#define ADC_EMUX_EM3_PWM1 0x00007000 // PWM1 -#define ADC_EMUX_EM3_PWM2 0x00008000 // PWM2 -#define ADC_EMUX_EM3_PWM3 0x00009000 // PWM3 -#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 PB4) -#define ADC_EMUX_EM2_TIMER 0x00000500 // Timer -#define ADC_EMUX_EM2_PWM0 0x00000600 // PWM0 -#define ADC_EMUX_EM2_PWM1 0x00000700 // PWM1 -#define ADC_EMUX_EM2_PWM2 0x00000800 // PWM2 -#define ADC_EMUX_EM2_PWM3 0x00000900 // PWM3 -#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 PB4) -#define ADC_EMUX_EM1_TIMER 0x00000050 // Timer -#define ADC_EMUX_EM1_PWM0 0x00000060 // PWM0 -#define ADC_EMUX_EM1_PWM1 0x00000070 // PWM1 -#define ADC_EMUX_EM1_PWM2 0x00000080 // PWM2 -#define ADC_EMUX_EM1_PWM3 0x00000090 // PWM3 -#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 PB4) -#define ADC_EMUX_EM0_TIMER 0x00000005 // Timer -#define ADC_EMUX_EM0_PWM0 0x00000006 // PWM0 -#define ADC_EMUX_EM0_PWM1 0x00000007 // PWM1 -#define ADC_EMUX_EM0_PWM2 0x00000008 // PWM2 -#define ADC_EMUX_EM0_PWM3 0x00000009 // PWM3 -#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 0x03000000 // PWM Unit Select -#define ADC_TSSEL_PS3_0 0x00000000 // PWM Unit 0 -#define ADC_TSSEL_PS3_1 0x01000000 // PWM Unit 1 -#define ADC_TSSEL_PS2_M 0x00030000 // PWM Unit Select -#define ADC_TSSEL_PS2_0 0x00000000 // PWM Unit 0 -#define ADC_TSSEL_PS2_1 0x00010000 // PWM Unit 1 -#define ADC_TSSEL_PS1_M 0x00000300 // PWM Unit Select -#define ADC_TSSEL_PS1_0 0x00000000 // PWM Unit 0 -#define ADC_TSSEL_PS1_1 0x00000100 // PWM Unit 1 -#define ADC_TSSEL_PS0_M 0x00000003 // PWM Unit Select -#define ADC_TSSEL_PS0_0 0x00000000 // PWM Unit 0 -#define ADC_TSSEL_PS0_1 0x00000001 // PWM Unit 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_SS3_1ST 0x00000000 // First priority -#define ADC_SSPRI_SS3_2ND 0x00001000 // Second priority -#define ADC_SSPRI_SS3_3RD 0x00002000 // Third priority -#define ADC_SSPRI_SS3_4TH 0x00003000 // Fourth priority -#define ADC_SSPRI_SS2_M 0x00000300 // SS2 Priority -#define ADC_SSPRI_SS2_1ST 0x00000000 // First priority -#define ADC_SSPRI_SS2_2ND 0x00000100 // Second priority -#define ADC_SSPRI_SS2_3RD 0x00000200 // Third priority -#define ADC_SSPRI_SS2_4TH 0x00000300 // Fourth priority -#define ADC_SSPRI_SS1_M 0x00000030 // SS1 Priority -#define ADC_SSPRI_SS1_1ST 0x00000000 // First priority -#define ADC_SSPRI_SS1_2ND 0x00000010 // Second priority -#define ADC_SSPRI_SS1_3RD 0x00000020 // Third priority -#define ADC_SSPRI_SS1_4TH 0x00000030 // Fourth priority -#define ADC_SSPRI_SS0_M 0x00000003 // SS0 Priority -#define ADC_SSPRI_SS0_1ST 0x00000000 // First priority -#define ADC_SSPRI_SS0_2ND 0x00000001 // Second priority -#define ADC_SSPRI_SS0_3RD 0x00000002 // Third priority -#define ADC_SSPRI_SS0_4TH 0x00000003 // Fourth 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 // The internal reference as the - // voltage reference -#define ADC_CTL_VREF_EXT_3V 0x00000001 // A 3.0 V external VREFA input is - // the voltage reference. The ADC - // conversion range is 0.0 V to the - // external reference value - -//***************************************************************************** -// -// 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 Diff 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 Diff 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 Diff 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 Diff 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 Diff 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 Diff 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 Diff 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 Diff 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 Diff 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 Diff 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 Diff 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 Diff 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 Diff 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 Diff 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 Diff 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 Diff 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 // 1st Sample Interrupt Enable -#define ADC_SSCTL3_END0 0x00000002 // 1st Sample is End of Sequence -#define ADC_SSCTL3_D0 0x00000001 // 1st Sample Diff 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 // Either the system clock (if the - // PLL bypass is in effect) or the - // 16 MHz clock derived from PLL / - // 25 (default) -#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 - // (VIREF) -#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 - // (VIREF) -#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 - // (VIREF) -#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 -#define USB_IS_SESREQ 0x00000040 // SESSION REQUEST -#define USB_IS_DISCON 0x00000020 // Session Disconnect -#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 -#define USB_IE_SESREQ 0x00000040 // Enable Session Request -#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 -#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 -#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 -#define USB_DEVCTL_SESSION 0x00000001 // Session Start/End - -//***************************************************************************** -// -// 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 -#define USB_EPC_EPEN_VBHIGH 0x00000003 // Power Enable High if VBUS High - -//***************************************************************************** -// -// 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 SYSEXC_RIS register. -// -//***************************************************************************** -#define SYSEXC_RIS_IXCRIS 0x00000020 // Inexact Exception Flag -#define SYSEXC_RIS_OFCRIS 0x00000010 // Overflow Exception Flag -#define SYSEXC_RIS_UFCRIS 0x00000008 // Underflow Exception Flag -#define SYSEXC_RIS_IOCRIS 0x00000004 // Invalid Operation Flag -#define SYSEXC_RIS_DZCRIS 0x00000002 // Divide By 0 Exception Flag -#define SYSEXC_RIS_IDCRIS 0x00000001 // Input Denormal Exception Flag - -//***************************************************************************** -// -// The following are defines for the bit fields in the SYSEXC_IM register. -// -//***************************************************************************** -#define SYSEXC_IM_IXCIM 0x00000020 // Inexact Exception Flag -#define SYSEXC_IM_OFCIM 0x00000010 // Overflow Exception Flag -#define SYSEXC_IM_UFCIM 0x00000008 // Underflow Exception Flag -#define SYSEXC_IM_IOCIM 0x00000004 // Invalid Operation Flag -#define SYSEXC_IM_DZCIM 0x00000002 // Divide By 0 Exception Flag -#define SYSEXC_IM_IDCIM 0x00000001 // Input Denormal Exception Flag - -//***************************************************************************** -// -// The following are defines for the bit fields in the SYSEXC_MIS register. -// -//***************************************************************************** -#define SYSEXC_MIS_IXCMIS 0x00000020 // Inexact Exception Flag -#define SYSEXC_MIS_OFCMIS 0x00000010 // Overflow Exception Flag -#define SYSEXC_MIS_UFCMIS 0x00000008 // Underflow Exception Flag -#define SYSEXC_MIS_IOCMIS 0x00000004 // Invalid Operation Flag -#define SYSEXC_MIS_DZCMIS 0x00000002 // Divide By 0 Exception Flag -#define SYSEXC_MIS_IDCMIS 0x00000001 // Input Denormal Exception Flag - -//***************************************************************************** -// -// The following are defines for the bit fields in the SYSEXC_IC register. -// -//***************************************************************************** -#define SYSEXC_IC_IXCIC 0x00000020 // Inexact Exception Flag -#define SYSEXC_IC_OFCIC 0x00000010 // Overflow Exception Flag -#define SYSEXC_IC_UFCIC 0x00000008 // Underflow Exception Flag -#define SYSEXC_IC_IOCIC 0x00000004 // Invalid Operation Flag -#define SYSEXC_IC_DZCIC 0x00000002 // Divide By 0 Exception Flag -#define SYSEXC_IC_IDCIC 0x00000001 // Input Denormal Exception Flag - -//***************************************************************************** -// -// 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_OSCHYS 0x00040000 // 32 -#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_LOWBATEN 0x00000020 // Low Battery Monitoring 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 Masked - // Interrupt Clear -#define HIB_IC_EXTW 0x00000008 // External Wake-Up Masked - // Interrupt Clear -#define HIB_IC_LOWBAT 0x00000004 // Low Battery Voltage Masked - // 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 // PROGVER Raw Interrupt Status -#define FLASH_FCRIS_ERRIS 0x00000800 // ERVER Raw Interrupt Status -#define FLASH_FCRIS_INVDRIS 0x00000400 // Invalid Data Raw Interrupt - // Status -#define FLASH_FCRIS_VOLTRIS 0x00000200 // VOLTSTAT 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_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_8KB 0x00000003 // 8 KB of Flash -#define FLASH_FSIZE_SIZE_16KB 0x00000007 // 16 KB of Flash -#define FLASH_FSIZE_SIZE_32KB 0x0000000F // 32 KB of Flash -#define FLASH_FSIZE_SIZE_64KB 0x0000001F // 64 KB of Flash -#define FLASH_FSIZE_SIZE_96KB 0x0000002F // 96 KB of Flash -#define FLASH_FSIZE_SIZE_128KB 0x0000003F // 128 KB of Flash -#define FLASH_FSIZE_SIZE_192KB 0x0000005F // 192 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_2KB 0x00000007 // 2 KB of SRAM -#define FLASH_SSIZE_SIZE_4KB 0x0000000F // 4 KB of SRAM -#define FLASH_SSIZE_SIZE_6KB 0x00000017 // 6 KB of SRAM -#define FLASH_SSIZE_SIZE_8KB 0x0000001F // 8 KB of SRAM -#define FLASH_SSIZE_SIZE_12KB 0x0000002F // 12 KB of SRAM -#define FLASH_SSIZE_SIZE_16KB 0x0000003F // 16 KB of SRAM -#define FLASH_SSIZE_SIZE_20KB 0x0000004F // 20 KB of SRAM -#define FLASH_SSIZE_SIZE_24KB 0x0000005F // 24 KB of SRAM -#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_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_NW 0x80000000 // Not Written -#define FLASH_USERREG0_DATA_M 0x7FFFFFFF // User Data -#define FLASH_USERREG0_DATA_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the FLASH_USERREG1 register. -// -//***************************************************************************** -#define FLASH_USERREG1_NW 0x80000000 // Not Written -#define FLASH_USERREG1_DATA_M 0x7FFFFFFF // User Data -#define FLASH_USERREG1_DATA_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the FLASH_USERREG2 register. -// -//***************************************************************************** -#define FLASH_USERREG2_NW 0x80000000 // Not Written -#define FLASH_USERREG2_DATA_M 0x7FFFFFFF // User Data -#define FLASH_USERREG2_DATA_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the FLASH_USERREG3 register. -// -//***************************************************************************** -#define FLASH_USERREG3_NW 0x80000000 // Not Written -#define FLASH_USERREG3_DATA_M 0x7FFFFFFF // 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_BLIZZARD \ - 0x00050000 // Stellaris(R) Blizzard-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_0 0x00000000 // Initial DID1 register format - // definition, indicating a - // Stellaris LM3Snnn device -#define SYSCTL_DID1_VER_1 0x10000000 // Second version of the DID1 - // register format -#define SYSCTL_DID1_FAM_M 0x0F000000 // Family -#define SYSCTL_DID1_FAM_STELLARIS \ - 0x00000000 // Stellaris family of - // microcontollers, that is, all - // devices with external part - // numbers starting with LM3S -#define SYSCTL_DID1_PRTNO_M 0x00FF0000 // Part Number -#define SYSCTL_DID1_PRTNO_LM4F232H5QD \ - 0x00C50000 // LM4F232H5QD -#define SYSCTL_DID1_PINCNT_M 0x0000E000 // Package Pin Count -#define SYSCTL_DID1_PINCNT_28 0x00000000 // 28 pin package -#define SYSCTL_DID1_PINCNT_48 0x00002000 // 48-pin package -#define SYSCTL_DID1_PINCNT_100 0x00004000 // 100-pin package -#define SYSCTL_DID1_PINCNT_64 0x00006000 // 64-pin package -#define SYSCTL_DID1_PINCNT_144 0x00008000 // 144-pin package -#define SYSCTL_DID1_PINCNT_157 0x0000A000 // 157-pin package -#define SYSCTL_DID1_TEMP_M 0x000000E0 // Temperature Range -#define SYSCTL_DID1_TEMP_C 0x00000000 // Commercial temperature range (0C - // to 70C) -#define SYSCTL_DID1_TEMP_I 0x00000020 // Industrial temperature range - // (-40C to 85C) -#define SYSCTL_DID1_TEMP_E 0x00000040 // Extended temperature range (-40C - // to 105C) -#define SYSCTL_DID1_PKG_M 0x00000018 // Package Type -#define SYSCTL_DID1_PKG_SOIC 0x00000000 // SOIC package -#define SYSCTL_DID1_PKG_QFP 0x00000008 // LQFP 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 -#define SYSCTL_DC0_SRAMSZ_S 16 // SRAM size shift -#define SYSCTL_DC0_FLASHSZ_S 0 // Flash size shift - -//***************************************************************************** -// -// 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_100 \ - 0x00001000 // Divide VCO (400MHZ) by 5 minimum -#define SYSCTL_DC1_MINSYSDIV_66 0x00002000 // Divide VCO (400MHZ) by 2*2 + 2 = - // 6 minimum -#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 // CCP5 Pin Present -#define SYSCTL_DC3_CCP4 0x10000000 // CCP4 Pin Present -#define SYSCTL_DC3_CCP3 0x08000000 // CCP3 Pin Present -#define SYSCTL_DC3_CCP2 0x04000000 // CCP2 Pin Present -#define SYSCTL_DC3_CCP1 0x02000000 // CCP1 Pin Present -#define SYSCTL_DC3_CCP0 0x01000000 // CCP0 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 // CCP7 Pin Present -#define SYSCTL_DC4_CCP6 0x00004000 // CCP6 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 // SW -#define SYSCTL_DC7_DMACH29 0x20000000 // I2S0_TX / CAN1_TX -#define SYSCTL_DC7_DMACH28 0x10000000 // I2S0_RX / CAN1_RX -#define SYSCTL_DC7_DMACH27 0x08000000 // CAN1_TX / ADC1_SS3 -#define SYSCTL_DC7_DMACH26 0x04000000 // CAN1_RX / ADC1_SS2 -#define SYSCTL_DC7_DMACH25 0x02000000 // SSI1_TX / ADC1_SS1 -#define SYSCTL_DC7_DMACH24 0x01000000 // SSI1_RX / ADC1_SS0 -#define SYSCTL_DC7_DMACH23 0x00800000 // UART1_TX / CAN2_TX -#define SYSCTL_DC7_DMACH22 0x00400000 // UART1_RX / CAN2_RX -#define SYSCTL_DC7_DMACH21 0x00200000 // Timer1B / EPI0_WFIFO -#define SYSCTL_DC7_DMACH20 0x00100000 // Timer1A / EPI0_NBRFIFO -#define SYSCTL_DC7_DMACH19 0x00080000 // Timer0B / Timer1B -#define SYSCTL_DC7_DMACH18 0x00040000 // Timer0A / Timer1A -#define SYSCTL_DC7_DMACH17 0x00020000 // ADC0_SS3 -#define SYSCTL_DC7_DMACH16 0x00010000 // ADC0_SS2 -#define SYSCTL_DC7_DMACH15 0x00008000 // ADC0_SS1 / Timer2B -#define SYSCTL_DC7_DMACH14 0x00004000 // ADC0_SS0 / Timer2A -#define SYSCTL_DC7_DMACH13 0x00002000 // CAN0_TX / UART2_TX -#define SYSCTL_DC7_DMACH12 0x00001000 // CAN0_RX / UART2_RX -#define SYSCTL_DC7_DMACH11 0x00000800 // SSI0_TX / SSI1_TX -#define SYSCTL_DC7_DMACH10 0x00000400 // SSI0_RX / SSI1_RX -#define SYSCTL_DC7_DMACH9 0x00000200 // UART0_TX / UART1_TX -#define SYSCTL_DC7_DMACH8 0x00000100 // UART0_RX / UART1_RX -#define SYSCTL_DC7_DMACH7 0x00000080 // ETH_TX / Timer2B -#define SYSCTL_DC7_DMACH6 0x00000040 // ETH_RX / Timer2A -#define SYSCTL_DC7_DMACH5 0x00000020 // USB_EP3_TX / Timer2B -#define SYSCTL_DC7_DMACH4 0x00000010 // USB_EP3_RX / Timer2A -#define SYSCTL_DC7_DMACH3 0x00000008 // USB_EP2_TX / Timer3B -#define SYSCTL_DC7_DMACH2 0x00000004 // USB_EP2_RX / Timer3A -#define SYSCTL_DC7_DMACH1 0x00000002 // USB_EP1_TX / UART2_TX -#define SYSCTL_DC7_DMACH0 0x00000001 // USB_EP1_RX / UART2_RX - -//***************************************************************************** -// -// 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_BORIOR 0x00000002 // BOR Interrupt or 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_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 Fault 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_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 Fault Interrupt - // Mask -#define SYSCTL_IMC_BORIM 0x00000002 // Brown-Out Reset Interrupt Mask - -//***************************************************************************** -// -// The following are defines for the bit fields in the SYSCTL_MISC register. -// -//***************************************************************************** -#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 Fault Masked - // Interrupt Status -#define SYSCTL_MISC_BORMIS 0x00000002 // BOR 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 -#define SYSCTL_RCC_XTAL_20MHZ 0x00000600 // 20.0 MHz -#define SYSCTL_RCC_XTAL_24MHZ 0x00000640 // 24.0 MHz -#define SYSCTL_RCC_XTAL_25MHZ 0x00000680 // 25.0 MHz -#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 // 30 kHz -#define SYSCTL_RCC_IOSCDIS 0x00000002 // Internal Oscillator Disable -#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_SYSDIV2_2 0x00800000 // System clock /2 -#define SYSCTL_RCC2_SYSDIV2_3 0x01000000 // System clock /3 -#define SYSCTL_RCC2_SYSDIV2_4 0x01800000 // System clock /4 -#define SYSCTL_RCC2_SYSDIV2_5 0x02000000 // System clock /5 -#define SYSCTL_RCC2_SYSDIV2_6 0x02800000 // System clock /6 -#define SYSCTL_RCC2_SYSDIV2_7 0x03000000 // System clock /7 -#define SYSCTL_RCC2_SYSDIV2_8 0x03800000 // System clock /8 -#define SYSCTL_RCC2_SYSDIV2_9 0x04000000 // System clock /9 -#define SYSCTL_RCC2_SYSDIV2_10 0x04800000 // System clock /10 -#define SYSCTL_RCC2_SYSDIV2_11 0x05000000 // System clock /11 -#define SYSCTL_RCC2_SYSDIV2_12 0x05800000 // System clock /12 -#define SYSCTL_RCC2_SYSDIV2_13 0x06000000 // System clock /13 -#define SYSCTL_RCC2_SYSDIV2_14 0x06800000 // System clock /14 -#define SYSCTL_RCC2_SYSDIV2_15 0x07000000 // System clock /15 -#define SYSCTL_RCC2_SYSDIV2_16 0x07800000 // System clock /16 -#define SYSCTL_RCC2_SYSDIV2_17 0x08000000 // System clock /17 -#define SYSCTL_RCC2_SYSDIV2_18 0x08800000 // System clock /18 -#define SYSCTL_RCC2_SYSDIV2_19 0x09000000 // System clock /19 -#define SYSCTL_RCC2_SYSDIV2_20 0x09800000 // System clock /20 -#define SYSCTL_RCC2_SYSDIV2_21 0x0A000000 // System clock /21 -#define SYSCTL_RCC2_SYSDIV2_22 0x0A800000 // System clock /22 -#define SYSCTL_RCC2_SYSDIV2_23 0x0B000000 // System clock /23 -#define SYSCTL_RCC2_SYSDIV2_24 0x0B800000 // System clock /24 -#define SYSCTL_RCC2_SYSDIV2_25 0x0C000000 // System clock /25 -#define SYSCTL_RCC2_SYSDIV2_26 0x0C800000 // System clock /26 -#define SYSCTL_RCC2_SYSDIV2_27 0x0D000000 // System clock /27 -#define SYSCTL_RCC2_SYSDIV2_28 0x0D800000 // System clock /28 -#define SYSCTL_RCC2_SYSDIV2_29 0x0E000000 // System clock /29 -#define SYSCTL_RCC2_SYSDIV2_30 0x0E800000 // System clock /30 -#define SYSCTL_RCC2_SYSDIV2_31 0x0F000000 // System clock /31 -#define SYSCTL_RCC2_SYSDIV2_32 0x0F800000 // System clock /32 -#define SYSCTL_RCC2_SYSDIV2_33 0x10000000 // System clock /33 -#define SYSCTL_RCC2_SYSDIV2_34 0x10800000 // System clock /34 -#define SYSCTL_RCC2_SYSDIV2_35 0x11000000 // System clock /35 -#define SYSCTL_RCC2_SYSDIV2_36 0x11800000 // System clock /36 -#define SYSCTL_RCC2_SYSDIV2_37 0x12000000 // System clock /37 -#define SYSCTL_RCC2_SYSDIV2_38 0x12800000 // System clock /38 -#define SYSCTL_RCC2_SYSDIV2_39 0x13000000 // System clock /39 -#define SYSCTL_RCC2_SYSDIV2_40 0x13800000 // System clock /40 -#define SYSCTL_RCC2_SYSDIV2_41 0x14000000 // System clock /41 -#define SYSCTL_RCC2_SYSDIV2_42 0x14800000 // System clock /42 -#define SYSCTL_RCC2_SYSDIV2_43 0x15000000 // System clock /43 -#define SYSCTL_RCC2_SYSDIV2_44 0x15800000 // System clock /44 -#define SYSCTL_RCC2_SYSDIV2_45 0x16000000 // System clock /45 -#define SYSCTL_RCC2_SYSDIV2_46 0x16800000 // System clock /46 -#define SYSCTL_RCC2_SYSDIV2_47 0x17000000 // System clock /47 -#define SYSCTL_RCC2_SYSDIV2_48 0x17800000 // System clock /48 -#define SYSCTL_RCC2_SYSDIV2_49 0x18000000 // System clock /49 -#define SYSCTL_RCC2_SYSDIV2_50 0x18800000 // System clock /50 -#define SYSCTL_RCC2_SYSDIV2_51 0x19000000 // System clock /51 -#define SYSCTL_RCC2_SYSDIV2_52 0x19800000 // System clock /52 -#define SYSCTL_RCC2_SYSDIV2_53 0x1A000000 // System clock /53 -#define SYSCTL_RCC2_SYSDIV2_54 0x1A800000 // System clock /54 -#define SYSCTL_RCC2_SYSDIV2_55 0x1B000000 // System clock /55 -#define SYSCTL_RCC2_SYSDIV2_56 0x1B800000 // System clock /56 -#define SYSCTL_RCC2_SYSDIV2_57 0x1C000000 // System clock /57 -#define SYSCTL_RCC2_SYSDIV2_58 0x1C800000 // System clock /58 -#define SYSCTL_RCC2_SYSDIV2_59 0x1D000000 // System clock /59 -#define SYSCTL_RCC2_SYSDIV2_60 0x1D800000 // System clock /60 -#define SYSCTL_RCC2_SYSDIV2_61 0x1E000000 // System clock /61 -#define SYSCTL_RCC2_SYSDIV2_62 0x1E800000 // System clock /62 -#define SYSCTL_RCC2_SYSDIV2_63 0x1F000000 // System clock /63 -#define SYSCTL_RCC2_SYSDIV2_64 0x1F800000 // System clock /64 -#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 // 30 kHz -#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_D_1 0x00000000 // System clock /1 -#define SYSCTL_DSLPCLKCFG_D_2 0x00800000 // System clock /2 -#define SYSCTL_DSLPCLKCFG_D_3 0x01000000 // System clock /3 -#define SYSCTL_DSLPCLKCFG_D_4 0x01800000 // System clock /4 -#define SYSCTL_DSLPCLKCFG_D_64 0x1F800000 // System clock /64 -#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 // 30 kHz -#define SYSCTL_DSLPCLKCFG_O_32 0x00000070 // 32.768 kHz - -//***************************************************************************** -// -// 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_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_TPSW 0x00000010 // Third Party Software Present -#define SYSCTL_NVMSTAT_FWB 0x00000001 // 32 Word Flash Write Buffer - // Active - -//***************************************************************************** -// -// 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 // Timer 5 Present -#define SYSCTL_PPTIMER_P4 0x00000010 // Timer 4 Present -#define SYSCTL_PPTIMER_P3 0x00000008 // Timer 3 Present -#define SYSCTL_PPTIMER_P2 0x00000004 // Timer 2 Present -#define SYSCTL_PPTIMER_P1 0x00000002 // Timer 1 Present -#define SYSCTL_PPTIMER_P0 0x00000001 // 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 // Wide Timer 5 Present -#define SYSCTL_PPWTIMER_P4 0x00000010 // Wide Timer 4 Present -#define SYSCTL_PPWTIMER_P3 0x00000008 // Wide Timer 3 Present -#define SYSCTL_PPWTIMER_P2 0x00000004 // Wide Timer 2 Present -#define SYSCTL_PPWTIMER_P1 0x00000002 // Wide Timer 1 Present -#define SYSCTL_PPWTIMER_P0 0x00000001 // Wide 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 // Timer 5 Software Reset -#define SYSCTL_SRTIMER_R4 0x00000010 // Timer 4 Software Reset -#define SYSCTL_SRTIMER_R3 0x00000008 // Timer 3 Software Reset -#define SYSCTL_SRTIMER_R2 0x00000004 // Timer 2 Software Reset -#define SYSCTL_SRTIMER_R1 0x00000002 // Timer 1 Software Reset -#define SYSCTL_SRTIMER_R0 0x00000001 // Timer 0 Software Reset - -//***************************************************************************** -// -// The following are defines for the bit fields in the SYSCTL_SRGPIO register. -// -//***************************************************************************** -#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_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 - // 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 // Wide Timer 5 Software Reset -#define SYSCTL_SRWTIMER_R4 0x00000010 // Wide Timer 4 Software Reset -#define SYSCTL_SRWTIMER_R3 0x00000008 // Wide Timer 3 Software Reset -#define SYSCTL_SRWTIMER_R2 0x00000004 // Wide Timer 2 Software Reset -#define SYSCTL_SRWTIMER_R1 0x00000002 // Wide Timer 1 Software Reset -#define SYSCTL_SRWTIMER_R0 0x00000001 // Wide 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 // Timer 5 Run Mode Clock Gating - // Control -#define SYSCTL_RCGCTIMER_R4 0x00000010 // Timer 4 Run Mode Clock Gating - // Control -#define SYSCTL_RCGCTIMER_R3 0x00000008 // Timer 3 Run Mode Clock Gating - // Control -#define SYSCTL_RCGCTIMER_R2 0x00000004 // Timer 2 Run Mode Clock Gating - // Control -#define SYSCTL_RCGCTIMER_R1 0x00000002 // Timer 1 Run Mode Clock Gating - // Control -#define SYSCTL_RCGCTIMER_R0 0x00000001 // Timer 0 Run Mode Clock Gating - // Control - -//***************************************************************************** -// -// The following are defines for the bit fields in the SYSCTL_RCGCGPIO -// register. -// -//***************************************************************************** -#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_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 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 // Wide Timer 5 Run Mode Clock - // Gating Control -#define SYSCTL_RCGCWTIMER_R4 0x00000010 // Wide Timer 4 Run Mode Clock - // Gating Control -#define SYSCTL_RCGCWTIMER_R3 0x00000008 // Wide Timer 3 Run Mode Clock - // Gating Control -#define SYSCTL_RCGCWTIMER_R2 0x00000004 // Wide Timer 2 Run Mode Clock - // Gating Control -#define SYSCTL_RCGCWTIMER_R1 0x00000002 // Wide Timer 1 Run Mode Clock - // Gating Control -#define SYSCTL_RCGCWTIMER_R0 0x00000001 // Wide 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 // Timer 5 Sleep Mode Clock Gating - // Control -#define SYSCTL_SCGCTIMER_S4 0x00000010 // Timer 4 Sleep Mode Clock Gating - // Control -#define SYSCTL_SCGCTIMER_S3 0x00000008 // Timer 3 Sleep Mode Clock Gating - // Control -#define SYSCTL_SCGCTIMER_S2 0x00000004 // Timer 2 Sleep Mode Clock Gating - // Control -#define SYSCTL_SCGCTIMER_S1 0x00000002 // Timer 1 Sleep Mode Clock Gating - // Control -#define SYSCTL_SCGCTIMER_S0 0x00000001 // Timer 0 Sleep Mode Clock Gating - // Control - -//***************************************************************************** -// -// The following are defines for the bit fields in the SYSCTL_SCGCGPIO -// register. -// -//***************************************************************************** -#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_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 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 // Wide Timer 5 Sleep Mode Clock - // Gating Control -#define SYSCTL_SCGCWTIMER_S4 0x00000010 // Wide Timer 4 Sleep Mode Clock - // Gating Control -#define SYSCTL_SCGCWTIMER_S3 0x00000008 // Wide Timer 3 Sleep Mode Clock - // Gating Control -#define SYSCTL_SCGCWTIMER_S2 0x00000004 // Wide Timer 2 Sleep Mode Clock - // Gating Control -#define SYSCTL_SCGCWTIMER_S1 0x00000002 // Wide Timer 1 Sleep Mode Clock - // Gating Control -#define SYSCTL_SCGCWTIMER_S0 0x00000001 // Wide 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 // Timer 5 Deep-Sleep Mode Clock - // Gating Control -#define SYSCTL_DCGCTIMER_D4 0x00000010 // Timer 4 Deep-Sleep Mode Clock - // Gating Control -#define SYSCTL_DCGCTIMER_D3 0x00000008 // Timer 3 Deep-Sleep Mode Clock - // Gating Control -#define SYSCTL_DCGCTIMER_D2 0x00000004 // Timer 2 Deep-Sleep Mode Clock - // Gating Control -#define SYSCTL_DCGCTIMER_D1 0x00000002 // Timer 1 Deep-Sleep Mode Clock - // Gating Control -#define SYSCTL_DCGCTIMER_D0 0x00000001 // Timer 0 Deep-Sleep Mode Clock - // Gating Control - -//***************************************************************************** -// -// The following are defines for the bit fields in the SYSCTL_DCGCGPIO -// register. -// -//***************************************************************************** -#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 // 0Mode 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 - // 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 // Wide Timer 5 Deep-Sleep Mode - // Clock Gating Control -#define SYSCTL_DCGCWTIMER_D4 0x00000010 // Wide Timer 4 Deep-Sleep Mode - // Clock Gating Control -#define SYSCTL_DCGCWTIMER_D3 0x00000008 // Wide Timer 3 Deep-Sleep Mode - // Clock Gating Control -#define SYSCTL_DCGCWTIMER_D2 0x00000004 // Wide Timer 2 Deep-Sleep Mode - // Clock Gating Control -#define SYSCTL_DCGCWTIMER_D1 0x00000002 // Wide Timer 1 Deep-Sleep Mode - // Clock Gating Control -#define SYSCTL_DCGCWTIMER_D0 0x00000001 // Wide Timer 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_P5 0x00000020 // Timer 5 Power Control -#define SYSCTL_PCTIMER_P4 0x00000010 // Timer 4 Power Control -#define SYSCTL_PCTIMER_P3 0x00000008 // Timer 3 Power Control -#define SYSCTL_PCTIMER_P2 0x00000004 // Timer 2 Power Control -#define SYSCTL_PCTIMER_P1 0x00000002 // Timer 1 Power Control -#define SYSCTL_PCTIMER_P0 0x00000001 // Timer 0 Power Control - -//***************************************************************************** -// -// The following are defines for the bit fields in the SYSCTL_PCGPIO register. -// -//***************************************************************************** -#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_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_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_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_P1 0x00000002 // PWM Module 1 Power Control -#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_P1 0x00000002 // QEI Module 1 Power Control -#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 Power Control - -//***************************************************************************** -// -// The following are defines for the bit fields in the SYSCTL_PCWTIMER -// register. -// -//***************************************************************************** -#define SYSCTL_PCWTIMER_P5 0x00000020 // Wide Timer 5 Power Control -#define SYSCTL_PCWTIMER_P4 0x00000010 // Wide Timer 4 Power Control -#define SYSCTL_PCWTIMER_P3 0x00000008 // Wide Timer 3 Power Control -#define SYSCTL_PCWTIMER_P2 0x00000004 // Wide Timer 2 Power Control -#define SYSCTL_PCWTIMER_P1 0x00000002 // Wide Timer 1 Power Control -#define SYSCTL_PCWTIMER_P0 0x00000001 // Wide Timer 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_R5 0x00000020 // Timer 5 Peripheral Ready -#define SYSCTL_PRTIMER_R4 0x00000010 // Timer 4 Peripheral Ready -#define SYSCTL_PRTIMER_R3 0x00000008 // Timer 3 Peripheral Ready -#define SYSCTL_PRTIMER_R2 0x00000004 // Timer 2 Peripheral Ready -#define SYSCTL_PRTIMER_R1 0x00000002 // Timer 1 Peripheral Ready -#define SYSCTL_PRTIMER_R0 0x00000001 // Timer 0 Peripheral Ready - -//***************************************************************************** -// -// The following are defines for the bit fields in the SYSCTL_PRGPIO register. -// -//***************************************************************************** -#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_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 - // 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 // Wide Timer 5 Peripheral Ready -#define SYSCTL_PRWTIMER_R4 0x00000010 // Wide Timer 4 Peripheral Ready -#define SYSCTL_PRWTIMER_R3 0x00000008 // Wide Timer 3 Peripheral Ready -#define SYSCTL_PRWTIMER_R2 0x00000004 // Wide Timer 2 Peripheral Ready -#define SYSCTL_PRWTIMER_R1 0x00000002 // Wide Timer 1 Peripheral Ready -#define SYSCTL_PRWTIMER_R0 0x00000001 // Wide 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_INT_TYPE register. -// -//***************************************************************************** -#define NVIC_INT_TYPE_LINES_M 0x0000001F // Number of interrupt lines (x32) -#define NVIC_INT_TYPE_LINES_S 0 - -//***************************************************************************** -// -// 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_ST_CAL register. -// -//***************************************************************************** -#define NVIC_ST_CAL_NOREF 0x80000000 // No reference clock -#define NVIC_ST_CAL_SKEW 0x40000000 // Clock skew -#define NVIC_ST_CAL_ONEMS_M 0x00FFFFFF // 1ms reference value -#define NVIC_ST_CAL_ONEMS_S 0 - -//***************************************************************************** -// -// The following are defines for the bit fields in the NVIC_EN0 register. -// -//***************************************************************************** -#define NVIC_EN0_INT_M 0xFFFFFFFF // Interrupt Enable -#define NVIC_EN0_INT0 0x00000001 // Interrupt 0 enable -#define NVIC_EN0_INT1 0x00000002 // Interrupt 1 enable -#define NVIC_EN0_INT2 0x00000004 // Interrupt 2 enable -#define NVIC_EN0_INT3 0x00000008 // Interrupt 3 enable -#define NVIC_EN0_INT4 0x00000010 // Interrupt 4 enable -#define NVIC_EN0_INT5 0x00000020 // Interrupt 5 enable -#define NVIC_EN0_INT6 0x00000040 // Interrupt 6 enable -#define NVIC_EN0_INT7 0x00000080 // Interrupt 7 enable -#define NVIC_EN0_INT8 0x00000100 // Interrupt 8 enable -#define NVIC_EN0_INT9 0x00000200 // Interrupt 9 enable -#define NVIC_EN0_INT10 0x00000400 // Interrupt 10 enable -#define NVIC_EN0_INT11 0x00000800 // Interrupt 11 enable -#define NVIC_EN0_INT12 0x00001000 // Interrupt 12 enable -#define NVIC_EN0_INT13 0x00002000 // Interrupt 13 enable -#define NVIC_EN0_INT14 0x00004000 // Interrupt 14 enable -#define NVIC_EN0_INT15 0x00008000 // Interrupt 15 enable -#define NVIC_EN0_INT16 0x00010000 // Interrupt 16 enable -#define NVIC_EN0_INT17 0x00020000 // Interrupt 17 enable -#define NVIC_EN0_INT18 0x00040000 // Interrupt 18 enable -#define NVIC_EN0_INT19 0x00080000 // Interrupt 19 enable -#define NVIC_EN0_INT20 0x00100000 // Interrupt 20 enable -#define NVIC_EN0_INT21 0x00200000 // Interrupt 21 enable -#define NVIC_EN0_INT22 0x00400000 // Interrupt 22 enable -#define NVIC_EN0_INT23 0x00800000 // Interrupt 23 enable -#define NVIC_EN0_INT24 0x01000000 // Interrupt 24 enable -#define NVIC_EN0_INT25 0x02000000 // Interrupt 25 enable -#define NVIC_EN0_INT26 0x04000000 // Interrupt 26 enable -#define NVIC_EN0_INT27 0x08000000 // Interrupt 27 enable -#define NVIC_EN0_INT28 0x10000000 // Interrupt 28 enable -#define NVIC_EN0_INT29 0x20000000 // Interrupt 29 enable -#define NVIC_EN0_INT30 0x40000000 // Interrupt 30 enable -#define NVIC_EN0_INT31 0x80000000 // Interrupt 31 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 0x0000000F // Interrupt Enable - -//***************************************************************************** -// -// The following are defines for the bit fields in the NVIC_DIS0 register. -// -//***************************************************************************** -#define NVIC_DIS0_INT_M 0xFFFFFFFF // Interrupt Disable -#define NVIC_DIS0_INT0 0x00000001 // Interrupt 0 disable -#define NVIC_DIS0_INT1 0x00000002 // Interrupt 1 disable -#define NVIC_DIS0_INT2 0x00000004 // Interrupt 2 disable -#define NVIC_DIS0_INT3 0x00000008 // Interrupt 3 disable -#define NVIC_DIS0_INT4 0x00000010 // Interrupt 4 disable -#define NVIC_DIS0_INT5 0x00000020 // Interrupt 5 disable -#define NVIC_DIS0_INT6 0x00000040 // Interrupt 6 disable -#define NVIC_DIS0_INT7 0x00000080 // Interrupt 7 disable -#define NVIC_DIS0_INT8 0x00000100 // Interrupt 8 disable -#define NVIC_DIS0_INT9 0x00000200 // Interrupt 9 disable -#define NVIC_DIS0_INT10 0x00000400 // Interrupt 10 disable -#define NVIC_DIS0_INT11 0x00000800 // Interrupt 11 disable -#define NVIC_DIS0_INT12 0x00001000 // Interrupt 12 disable -#define NVIC_DIS0_INT13 0x00002000 // Interrupt 13 disable -#define NVIC_DIS0_INT14 0x00004000 // Interrupt 14 disable -#define NVIC_DIS0_INT15 0x00008000 // Interrupt 15 disable -#define NVIC_DIS0_INT16 0x00010000 // Interrupt 16 disable -#define NVIC_DIS0_INT17 0x00020000 // Interrupt 17 disable -#define NVIC_DIS0_INT18 0x00040000 // Interrupt 18 disable -#define NVIC_DIS0_INT19 0x00080000 // Interrupt 19 disable -#define NVIC_DIS0_INT20 0x00100000 // Interrupt 20 disable -#define NVIC_DIS0_INT21 0x00200000 // Interrupt 21 disable -#define NVIC_DIS0_INT22 0x00400000 // Interrupt 22 disable -#define NVIC_DIS0_INT23 0x00800000 // Interrupt 23 disable -#define NVIC_DIS0_INT24 0x01000000 // Interrupt 24 disable -#define NVIC_DIS0_INT25 0x02000000 // Interrupt 25 disable -#define NVIC_DIS0_INT26 0x04000000 // Interrupt 26 disable -#define NVIC_DIS0_INT27 0x08000000 // Interrupt 27 disable -#define NVIC_DIS0_INT28 0x10000000 // Interrupt 28 disable -#define NVIC_DIS0_INT29 0x20000000 // Interrupt 29 disable -#define NVIC_DIS0_INT30 0x40000000 // Interrupt 30 disable -#define NVIC_DIS0_INT31 0x80000000 // Interrupt 31 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 0x0000000F // Interrupt Disable - -//***************************************************************************** -// -// The following are defines for the bit fields in the NVIC_PEND0 register. -// -//***************************************************************************** -#define NVIC_PEND0_INT_M 0xFFFFFFFF // Interrupt Set Pending -#define NVIC_PEND0_INT0 0x00000001 // Interrupt 0 pend -#define NVIC_PEND0_INT1 0x00000002 // Interrupt 1 pend -#define NVIC_PEND0_INT2 0x00000004 // Interrupt 2 pend -#define NVIC_PEND0_INT3 0x00000008 // Interrupt 3 pend -#define NVIC_PEND0_INT4 0x00000010 // Interrupt 4 pend -#define NVIC_PEND0_INT5 0x00000020 // Interrupt 5 pend -#define NVIC_PEND0_INT6 0x00000040 // Interrupt 6 pend -#define NVIC_PEND0_INT7 0x00000080 // Interrupt 7 pend -#define NVIC_PEND0_INT8 0x00000100 // Interrupt 8 pend -#define NVIC_PEND0_INT9 0x00000200 // Interrupt 9 pend -#define NVIC_PEND0_INT10 0x00000400 // Interrupt 10 pend -#define NVIC_PEND0_INT11 0x00000800 // Interrupt 11 pend -#define NVIC_PEND0_INT12 0x00001000 // Interrupt 12 pend -#define NVIC_PEND0_INT13 0x00002000 // Interrupt 13 pend -#define NVIC_PEND0_INT14 0x00004000 // Interrupt 14 pend -#define NVIC_PEND0_INT15 0x00008000 // Interrupt 15 pend -#define NVIC_PEND0_INT16 0x00010000 // Interrupt 16 pend -#define NVIC_PEND0_INT17 0x00020000 // Interrupt 17 pend -#define NVIC_PEND0_INT18 0x00040000 // Interrupt 18 pend -#define NVIC_PEND0_INT19 0x00080000 // Interrupt 19 pend -#define NVIC_PEND0_INT20 0x00100000 // Interrupt 20 pend -#define NVIC_PEND0_INT21 0x00200000 // Interrupt 21 pend -#define NVIC_PEND0_INT22 0x00400000 // Interrupt 22 pend -#define NVIC_PEND0_INT23 0x00800000 // Interrupt 23 pend -#define NVIC_PEND0_INT24 0x01000000 // Interrupt 24 pend -#define NVIC_PEND0_INT25 0x02000000 // Interrupt 25 pend -#define NVIC_PEND0_INT26 0x04000000 // Interrupt 26 pend -#define NVIC_PEND0_INT27 0x08000000 // Interrupt 27 pend -#define NVIC_PEND0_INT28 0x10000000 // Interrupt 28 pend -#define NVIC_PEND0_INT29 0x20000000 // Interrupt 29 pend -#define NVIC_PEND0_INT30 0x40000000 // Interrupt 30 pend -#define NVIC_PEND0_INT31 0x80000000 // Interrupt 31 pend - -//***************************************************************************** -// -// 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 0x0000000F // 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 -#define NVIC_UNPEND0_INT0 0x00000001 // Interrupt 0 unpend -#define NVIC_UNPEND0_INT1 0x00000002 // Interrupt 1 unpend -#define NVIC_UNPEND0_INT2 0x00000004 // Interrupt 2 unpend -#define NVIC_UNPEND0_INT3 0x00000008 // Interrupt 3 unpend -#define NVIC_UNPEND0_INT4 0x00000010 // Interrupt 4 unpend -#define NVIC_UNPEND0_INT5 0x00000020 // Interrupt 5 unpend -#define NVIC_UNPEND0_INT6 0x00000040 // Interrupt 6 unpend -#define NVIC_UNPEND0_INT7 0x00000080 // Interrupt 7 unpend -#define NVIC_UNPEND0_INT8 0x00000100 // Interrupt 8 unpend -#define NVIC_UNPEND0_INT9 0x00000200 // Interrupt 9 unpend -#define NVIC_UNPEND0_INT10 0x00000400 // Interrupt 10 unpend -#define NVIC_UNPEND0_INT11 0x00000800 // Interrupt 11 unpend -#define NVIC_UNPEND0_INT12 0x00001000 // Interrupt 12 unpend -#define NVIC_UNPEND0_INT13 0x00002000 // Interrupt 13 unpend -#define NVIC_UNPEND0_INT14 0x00004000 // Interrupt 14 unpend -#define NVIC_UNPEND0_INT15 0x00008000 // Interrupt 15 unpend -#define NVIC_UNPEND0_INT16 0x00010000 // Interrupt 16 unpend -#define NVIC_UNPEND0_INT17 0x00020000 // Interrupt 17 unpend -#define NVIC_UNPEND0_INT18 0x00040000 // Interrupt 18 unpend -#define NVIC_UNPEND0_INT19 0x00080000 // Interrupt 19 unpend -#define NVIC_UNPEND0_INT20 0x00100000 // Interrupt 20 unpend -#define NVIC_UNPEND0_INT21 0x00200000 // Interrupt 21 unpend -#define NVIC_UNPEND0_INT22 0x00400000 // Interrupt 22 unpend -#define NVIC_UNPEND0_INT23 0x00800000 // Interrupt 23 unpend -#define NVIC_UNPEND0_INT24 0x01000000 // Interrupt 24 unpend -#define NVIC_UNPEND0_INT25 0x02000000 // Interrupt 25 unpend -#define NVIC_UNPEND0_INT26 0x04000000 // Interrupt 26 unpend -#define NVIC_UNPEND0_INT27 0x08000000 // Interrupt 27 unpend -#define NVIC_UNPEND0_INT28 0x10000000 // Interrupt 28 unpend -#define NVIC_UNPEND0_INT29 0x20000000 // Interrupt 29 unpend -#define NVIC_UNPEND0_INT30 0x40000000 // Interrupt 30 unpend -#define NVIC_UNPEND0_INT31 0x80000000 // Interrupt 31 unpend - -//***************************************************************************** -// -// The following are defines for the bit fields in the NVIC_UNPEND1 register. -// -//***************************************************************************** -#define NVIC_UNPEND1_INT_M 0xFFFFFFFF // Interrupt Clear Pending -#define NVIC_UNPEND1_INT32 0x00000001 // Interrupt 32 unpend -#define NVIC_UNPEND1_INT33 0x00000002 // Interrupt 33 unpend -#define NVIC_UNPEND1_INT34 0x00000004 // Interrupt 34 unpend -#define NVIC_UNPEND1_INT35 0x00000008 // Interrupt 35 unpend -#define NVIC_UNPEND1_INT36 0x00000010 // Interrupt 36 unpend -#define NVIC_UNPEND1_INT37 0x00000020 // Interrupt 37 unpend -#define NVIC_UNPEND1_INT38 0x00000040 // Interrupt 38 unpend -#define NVIC_UNPEND1_INT39 0x00000080 // Interrupt 39 unpend -#define NVIC_UNPEND1_INT40 0x00000100 // Interrupt 40 unpend -#define NVIC_UNPEND1_INT41 0x00000200 // Interrupt 41 unpend -#define NVIC_UNPEND1_INT42 0x00000400 // Interrupt 42 unpend -#define NVIC_UNPEND1_INT43 0x00000800 // Interrupt 43 unpend -#define NVIC_UNPEND1_INT44 0x00001000 // Interrupt 44 unpend -#define NVIC_UNPEND1_INT45 0x00002000 // Interrupt 45 unpend -#define NVIC_UNPEND1_INT46 0x00004000 // Interrupt 46 unpend -#define NVIC_UNPEND1_INT47 0x00008000 // Interrupt 47 unpend -#define NVIC_UNPEND1_INT48 0x00010000 // Interrupt 48 unpend -#define NVIC_UNPEND1_INT49 0x00020000 // Interrupt 49 unpend -#define NVIC_UNPEND1_INT50 0x00040000 // Interrupt 50 unpend -#define NVIC_UNPEND1_INT51 0x00080000 // Interrupt 51 unpend -#define NVIC_UNPEND1_INT52 0x00100000 // Interrupt 52 unpend -#define NVIC_UNPEND1_INT53 0x00200000 // Interrupt 53 unpend -#define NVIC_UNPEND1_INT54 0x00400000 // Interrupt 54 unpend -#define NVIC_UNPEND1_INT55 0x00800000 // Interrupt 55 unpend - -//***************************************************************************** -// -// 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 0x0000000F // Interrupt Clear Pending - -//***************************************************************************** -// -// The following are defines for the bit fields in the NVIC_ACTIVE0 register. -// -//***************************************************************************** -#define NVIC_ACTIVE0_INT_M 0xFFFFFFFF // Interrupt Active -#define NVIC_ACTIVE0_INT0 0x00000001 // Interrupt 0 active -#define NVIC_ACTIVE0_INT1 0x00000002 // Interrupt 1 active -#define NVIC_ACTIVE0_INT2 0x00000004 // Interrupt 2 active -#define NVIC_ACTIVE0_INT3 0x00000008 // Interrupt 3 active -#define NVIC_ACTIVE0_INT4 0x00000010 // Interrupt 4 active -#define NVIC_ACTIVE0_INT5 0x00000020 // Interrupt 5 active -#define NVIC_ACTIVE0_INT6 0x00000040 // Interrupt 6 active -#define NVIC_ACTIVE0_INT7 0x00000080 // Interrupt 7 active -#define NVIC_ACTIVE0_INT8 0x00000100 // Interrupt 8 active -#define NVIC_ACTIVE0_INT9 0x00000200 // Interrupt 9 active -#define NVIC_ACTIVE0_INT10 0x00000400 // Interrupt 10 active -#define NVIC_ACTIVE0_INT11 0x00000800 // Interrupt 11 active -#define NVIC_ACTIVE0_INT12 0x00001000 // Interrupt 12 active -#define NVIC_ACTIVE0_INT13 0x00002000 // Interrupt 13 active -#define NVIC_ACTIVE0_INT14 0x00004000 // Interrupt 14 active -#define NVIC_ACTIVE0_INT15 0x00008000 // Interrupt 15 active -#define NVIC_ACTIVE0_INT16 0x00010000 // Interrupt 16 active -#define NVIC_ACTIVE0_INT17 0x00020000 // Interrupt 17 active -#define NVIC_ACTIVE0_INT18 0x00040000 // Interrupt 18 active -#define NVIC_ACTIVE0_INT19 0x00080000 // Interrupt 19 active -#define NVIC_ACTIVE0_INT20 0x00100000 // Interrupt 20 active -#define NVIC_ACTIVE0_INT21 0x00200000 // Interrupt 21 active -#define NVIC_ACTIVE0_INT22 0x00400000 // Interrupt 22 active -#define NVIC_ACTIVE0_INT23 0x00800000 // Interrupt 23 active -#define NVIC_ACTIVE0_INT24 0x01000000 // Interrupt 24 active -#define NVIC_ACTIVE0_INT25 0x02000000 // Interrupt 25 active -#define NVIC_ACTIVE0_INT26 0x04000000 // Interrupt 26 active -#define NVIC_ACTIVE0_INT27 0x08000000 // Interrupt 27 active -#define NVIC_ACTIVE0_INT28 0x10000000 // Interrupt 28 active -#define NVIC_ACTIVE0_INT29 0x20000000 // Interrupt 29 active -#define NVIC_ACTIVE0_INT30 0x40000000 // Interrupt 30 active -#define NVIC_ACTIVE0_INT31 0x80000000 // Interrupt 31 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 0x0000000F // 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_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_BASE 0x20000000 // Vector Table Base -#define NVIC_VTABLE_OFFSET_M 0x1FFFFC00 // 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 - -#endif // __LM4F232H5QD_H__ diff --git a/bsp/lm4f232/project.uvproj b/bsp/lm4f232/project.uvproj index e31fcb4326..5b210bbe5b 100644 --- a/bsp/lm4f232/project.uvproj +++ b/bsp/lm4f232/project.uvproj @@ -43,7 +43,7 @@ 0 1 - .\obj\ + .\build\ project 1 0 @@ -344,9 +344,9 @@ 0 - + PART_LM4F232H5QD - ..\..\include;drivers;.;Libraries;applications;..\..\libcpu\arm\cortex-m4;..\..\libcpu\arm\common;..\..\components\finsh + .;..\..\components\finsh;..\..\include;..\..\libcpu\arm\common;..\..\libcpu\arm\cortex-m4;Libraries;applications;drivers @@ -571,25 +571,25 @@ Kernel + + clock.c + 1 + ..\..\src\clock.c + device.c 1 ..\..\src\device.c - thread.c + idle.c 1 - ..\..\src\thread.c + ..\..\src\idle.c - scheduler.c + ipc.c 1 - ..\..\src\scheduler.c - - - src_timer.c - 1 - ..\..\src\timer.c + ..\..\src\ipc.c irq.c @@ -602,14 +602,9 @@ ..\..\src\kservice.c - clock.c + mem.c 1 - ..\..\src\clock.c - - - object.c - 1 - ..\..\src\object.c + ..\..\src\mem.c mempool.c @@ -617,19 +612,24 @@ ..\..\src\mempool.c - ipc.c + object.c 1 - ..\..\src\ipc.c + ..\..\src\object.c - idle.c + scheduler.c 1 - ..\..\src\idle.c + ..\..\src\scheduler.c - mem.c + thread.c 1 - ..\..\src\mem.c + ..\..\src\thread.c + + + src_timer.c + 1 + ..\..\src\timer.c diff --git a/bsp/lm4f232/rtconfig.py b/bsp/lm4f232/rtconfig.py index 4076805b93..903a5e9281 100644 --- a/bsp/lm4f232/rtconfig.py +++ b/bsp/lm4f232/rtconfig.py @@ -3,6 +3,9 @@ ARCH='arm' CPU='cortex-m4' CROSS_TOOL='keil' +#device options +PART_TYPE = 'PART_LM4F232H5QD' + # cross_tool provides the cross compiler # EXEC_PATH is the compiler execute path, for example, CodeSourcery, Keil MDK, IAR if CROSS_TOOL == 'gcc': diff --git a/bsp/lm4f232/template.uvproj b/bsp/lm4f232/template.uvproj index e4824f5943..22d359c599 100644 --- a/bsp/lm4f232/template.uvproj +++ b/bsp/lm4f232/template.uvproj @@ -43,14 +43,14 @@ 0 1 - .\obj\ + .\build\ project 1 0 0 1 1 - .\obj\ + .\build\ 1 0 0

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 z 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 diff --git a/bsp/lm3s8962/Libraries/driverlib/ssi.c b/bsp/lm3s8962/Libraries/driverlib/ssi.c index 8ee31e52e9..d46b29b474 100644 --- a/bsp/lm3s8962/Libraries/driverlib/ssi.c +++ b/bsp/lm3s8962/Libraries/driverlib/ssi.c @@ -2,7 +2,7 @@ // // ssi.c - Driver for Synchronous Serial Interface. // -// Copyright (c) 2005-2010 Texas Instruments Incorporated. All rights reserved. +// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and @@ -18,7 +18,7 @@ // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // -// This is part of revision 6459 of the Stellaris Peripheral Driver Library. +// This is part of revision 8264 of the Stellaris Peripheral Driver Library. // //***************************************************************************** @@ -37,6 +37,83 @@ #include "driverlib/interrupt.h" #include "driverlib/ssi.h" +//***************************************************************************** +// +// A mapping of timer base address to interupt number. +// +//***************************************************************************** +static const unsigned long g_ppulSSIIntMap[][2] = +{ + { SSI0_BASE, INT_SSI0 }, + { SSI1_BASE, INT_SSI1 }, + { SSI2_BASE, INT_SSI2 }, + { SSI3_BASE, INT_SSI3 }, +}; + +//***************************************************************************** +// +//! \internal +//! Checks an SSI base address. +//! +//! \param ulBase specifies the SSI module base address. +//! +//! This function determines if a SSI module base address is valid. +//! +//! \return Returns \b true if the base address is valid and \b false +//! otherwise. +// +//***************************************************************************** +#ifdef DEBUG +static tBoolean +SSIBaseValid(unsigned long ulBase) +{ + return((ulBase == SSI0_BASE) || (ulBase == SSI1_BASE) || + (ulBase == SSI2_BASE) || (ulBase == SSI3_BASE)); +} +#endif + +//***************************************************************************** +// +//! \internal +//! Gets the SSI interrupt number. +//! +//! \param ulBase specifies the SSI module base address. +//! +//! Given a SSI base address, returns the corresponding interrupt number. +//! +//! \return Returns an SSI interrupt number, or -1 if \e ulBase is invalid. +// +//***************************************************************************** +static long +SSIIntNumberGet(unsigned long ulBase) +{ + unsigned long ulIdx; + + // + // Loop through the table that maps SSI base addresses to interrupt + // numbers. + // + for(ulIdx = 0; ulIdx < (sizeof(g_ppulSSIIntMap) / + sizeof(g_ppulSSIIntMap[0])); ulIdx++) + { + // + // See if this base address matches. + // + if(g_ppulSSIIntMap[ulIdx][0] == ulBase) + { + // + // Return the corresponding interrupt number. + // + return(g_ppulSSIIntMap[ulIdx][1]); + } + } + + // + // The base address could not be found, so return an error. + // + return(-1); +} + //***************************************************************************** // //! Configures the synchronous serial interface. @@ -55,7 +132,7 @@ //! \e ulProtocol parameter can be one of the following values: //! \b SSI_FRF_MOTO_MODE_0, \b SSI_FRF_MOTO_MODE_1, \b SSI_FRF_MOTO_MODE_2, //! \b SSI_FRF_MOTO_MODE_3, \b SSI_FRF_TI, or \b SSI_FRF_NMW. The Motorola -//! frame formats imply the following polarity and phase configurations: +//! frame formats encode the following polarity and phase configurations: //! //!