Add TI EK-TM4C1294XL launchpad support

This commit is contained in:
sauttefk 2015-02-12 00:30:38 +01:00
parent 2ae737f906
commit dc402d8d3e
32 changed files with 5512 additions and 7 deletions

View File

@ -499,6 +499,135 @@
# define NR_IRQS (130) /* (Really fewer because of reserved vectors) */
#elif defined(CONFIG_ARCH_CHIP_TM4C1294NC)
# define TIVA_IRQ_GPIOA (16) /* Vector 16: GPIO Port A */
# define TIVA_IRQ_GPIOB (17) /* Vector 17: GPIO Port B */
# define TIVA_IRQ_GPIOC (18) /* Vector 18: GPIO Port C */
# define TIVA_IRQ_GPIOD (19) /* Vector 19: GPIO Port D */
# define TIVA_IRQ_GPIOE (20) /* Vector 20: GPIO Port E */
# define TIVA_IRQ_UART0 (21) /* Vector 21: UART 0 */
# define TIVA_IRQ_UART1 (22) /* Vector 22: UART 1 */
# define TIVA_IRQ_SSI0 (23) /* Vector 23: SSI 0 */
# define TIVA_IRQ_I2C0 (24) /* Vector 24: I2C 0 */
# define TIVA_IRQ_PWM0_FAULT (25) /* Vector 25: PWM0 Fault */
# define TIVA_IRQ_PWM0_GEN0 (26) /* Vector 26: PWM0 Generator 0 */
# define TIVA_IRQ_PWM0_GEN1 (27) /* Vector 27: PWM0 Generator 1 */
# define TIVA_IRQ_PWM0_GEN2 (28) /* Vector 28: PWM0 Generator 2 */
# define TIVA_IRQ_QEI0 (29) /* Vector 29: QEI0 */
# define TIVA_IRQ_ADC0 (30) /* Vector 30: ADC Sequence 0 */
# define TIVA_IRQ_ADC1 (31) /* Vector 31: ADC Sequence 1 */
# define TIVA_IRQ_ADC2 (32) /* Vector 32: ADC Sequence 2 */
# define TIVA_IRQ_ADC3 (33) /* Vector 33: ADC Sequence 3 */
# define TIVA_IRQ_WDOG (34) /* Vector 34: Watchdog Timers 0 and 1 */
# define TIVA_IRQ_TIMER0A (35) /* Vector 35: 16/32-Bit Timer 0 A */
# define TIVA_IRQ_TIMER0B (36) /* Vector 36: 16/32-Bit Timer 0 B */
# define TIVA_IRQ_TIMER1A (37) /* Vector 37: 16/32-Bit Timer 1 A */
# define TIVA_IRQ_TIMER1B (38) /* Vector 38: 16/32-Bit Timer 1 B */
# define TIVA_IRQ_TIMER2A (39) /* Vector 39: 16/32-Bit Timer 2 A */
# define TIVA_IRQ_TIMER2B (40) /* Vector 40: 16/32-Bit Timer 2 B */
# define TIVA_IRQ_COMPARE0 (41) /* Vector 41: Analog Comparator 0 */
# define TIVA_IRQ_COMPARE1 (42) /* Vector 42: Analog Comparator 1 */
# define TIVA_IRQ_COMPARE2 (43) /* Vector 43: Analog Comparator 2 */
# define TIVA_IRQ_SYSCON (44) /* Vector 44: System Control */
# define TIVA_IRQ_FLASHCON (45) /* Vector 45: FLASH and EEPROM Control */
# define TIVA_IRQ_GPIOF (46) /* Vector 46: GPIO Port F */
# define TIVA_IRQ_GPIOG (47) /* Vector 47: GPIO Port G */
# define TIVA_IRQ_GPIOH (48) /* Vector 48: GPIO Port H */
# define TIVA_IRQ_UART2 (49) /* Vector 49: UART 2 */
# define TIVA_IRQ_SSI1 (50) /* Vector 50: SSI 1 */
# define TIVA_IRQ_TIMER3A (51) /* Vector 51: 16/32-Bit Timer 3 A */
# define TIVA_IRQ_TIMER3B (52) /* Vector 52: 16/32-Bit Timer 3 B */
# define TIVA_IRQ_I2C1 (53) /* Vector 53: I2C 1 */
# define TIVA_IRQ_CAN0 (54) /* Vector 54: CAN 0 */
# define TIVA_IRQ_CAN1 (55) /* Vector 55: CAN 1 */
# define TIVA_IRQ_ETHCON (56) /* Vector 56: Ethernet MAC */
# define TIVA_IRQ_HIBERNATE (57) /* Vector 57: Hibernation Module */
# define TIVA_IRQ_USB (58) /* Vector 58: USB MAC */
# define TIVA_IRQ_PWM0_GEN3 (59) /* Vector 59: PWM0 Generator 3 */
# define TIVA_IRQ_UDMASOFT (60) /* Vector 60: uDMA Software */
# define TIVA_IRQ_UDMAERROR (61) /* Vector 61: uDMA Error */
# define TIVA_IRQ_ADC1_0 (62) /* Vector 62: ADC1 Sequence 0 */
# define TIVA_IRQ_ADC1_1 (63) /* Vector 63: ADC1 Sequence 1 */
# define TIVA_IRQ_ADC1_2 (64) /* Vector 64: ADC1 Sequence 2 */
# define TIVA_IRQ_ADC1_3 (65) /* Vector 65: ADC1 Sequence 3 */
# define TIVA_IRQ_EPI0 (66) /* Vector 66: EPI 0 */
# define TIVA_IRQ_GPIOJ (67) /* Vector 67: GPIO Port J */
# define TIVA_IRQ_GPIOK (68) /* Vector 68: GPIO Port K */
# define TIVA_IRQ_GPIOL (69) /* Vector 69: GPIO Port L */
# define TIVA_IRQ_SSI2 (70) /* Vector 70: SSI 2 */
# define TIVA_IRQ_SSI3 (71) /* Vector 71: SSI 3 */
# define TIVA_IRQ_UART3 (72) /* Vector 72: UART 3 */
# define TIVA_IRQ_UART4 (73) /* Vector 73: UART 4 */
# define TIVA_IRQ_UART5 (74) /* Vector 74: UART 5 */
# define TIVA_IRQ_UART6 (75) /* Vector 75: UART 6 */
# define TIVA_IRQ_UART7 (76) /* Vector 76: UART 7 */
# define TIVA_IRQ_I2C2 (77) /* Vector 77: I2C 2 */
# define TIVA_IRQ_I2C3 (78) /* Vector 78: I2C 3 */
# define TIVA_IRQ_TIMER4A (79) /* Vector 79: 16/32-Bit Timer 4 A */
# define TIVA_IRQ_TIMER4B (80) /* Vector 80: 16/32-Bit Timer 4 B */
# define TIVA_IRQ_TIMER5A (81) /* Vector 81: 16/32-Bit Timer 5 A */
# define TIVA_IRQ_TIMER5B (82) /* Vector 82: 16/32-Bit Timer 5 B */
# define TIVA_IRQ_FLOAT (83) /* Vector 83: Floating point exception */
# define TIVA_RESERVED_84 (84) /* Vector 84: Reserved */
# define TIVA_RESERVED_85 (85) /* Vector 85: Reserved */
# define TIVA_IRQ_I2C4 (86) /* Vector 86: I2C 4 */
# define TIVA_IRQ_I2C5 (87) /* Vector 87: I2C 5 */
# define TIVA_IRQ_GPIOM (88) /* Vector 88: GPIO Port M */
# define TIVA_IRQ_GPION (89) /* Vector 89: GPIO Port N */
# define TIVA_RESERVED_90 (90) /* Vector 90: Reserved */
# define TIVA_IRQ_TAMPER (91) /* Vector 91: Tamper */
# define TIVA_IRQ_GPIOP (92) /* Vector 92: GPIO Port P (Summary or P0) */
# define TIVA_IRQ_GPIOP1 (93) /* Vector 93: GPIO Port P1 */
# define TIVA_IRQ_GPIOP2 (94) /* Vector 94: GPIO Port P2 */
# define TIVA_IRQ_GPIOP3 (95) /* Vector 95: GPIO Port P3 */
# define TIVA_IRQ_GPIOP4 (96) /* Vector 96: GPIO Port P4 */
# define TIVA_IRQ_GPIOP5 (97) /* Vector 97: GPIO Port P5 */
# define TIVA_IRQ_GPIOP6 (98) /* Vector 98: GPIO Port P6 */
# define TIVA_IRQ_GPIOP7 (99) /* Vector 99: GPIO Port P7 */
# define TIVA_IRQ_GPIOQ (100) /* Vector 100: GPIO Port Q (Summary or Q0) */
# define TIVA_IRQ_GPIOQ1 (101) /* Vector 101: GPIO Port Q1 */
# define TIVA_IRQ_GPIOQ2 (102) /* Vector 102: GPIO Port Q2 */
# define TIVA_IRQ_GPIOQ3 (103) /* Vector 103: GPIO Port Q3 */
# define TIVA_IRQ_GPIOQ4 (104) /* Vector 104: GPIO Port Q4 */
# define TIVA_IRQ_GPIOQ5 (105) /* Vector 105: GPIO Port Q5 */
# define TIVA_IRQ_GPIOQ6 (106) /* Vector 106: GPIO Port Q6 */
# define TIVA_IRQ_GPIOQ7 (107) /* Vector 107: GPIO Port Q7 */
# define TIVA_RESERVED_108 (108) /* Vector 108: Reserved */
# define TIVA_RESERVED_109 (109) /* Vector 109: Reserved */
# define TIVA_RESERVED_110 (110) /* Vector 110: Reserved */
# define TIVA_RESERVED_111 (111) /* Vector 111: Reserved */
# define TIVA_RESERVED_112 (113) /* Vector 112: Reserved */
# define TIVA_RESERVED_113 (113) /* Vector 113: Reserved */
# define TIVA_IRQ_TIMER6A (114) /* Vector 114: 16/32-Bit Timer 6 A */
# define TIVA_IRQ_TIMER6B (115) /* Vector 115: 16/32-Bit Timer 6 B */
# define TIVA_IRQ_TIMER7A (116) /* Vector 116: 16/32-Bit Timer 7 A */
# define TIVA_IRQ_TIMER7B (117) /* Vector 117: 16/32-Bit Timer 7 B */
# define TIVA_IRQ_I2C6 (118) /* Vector 118: I2C 6 */
# define TIVA_IRQ_I2C7 (119) /* Vector 119: I2C 7 */
# define TIVA_RESERVED_120 (120) /* Vector 120: Reserved */
# define TIVA_RESERVED_121 (121) /* Vector 121: Reserved */
# define TIVA_RESERVED_122 (122) /* Vector 122: Reserved */
# define TIVA_RESERVED_123 (123) /* Vector 123: Reserved */
# define TIVA_RESERVED_124 (124) /* Vector 124: Reserved */
# define TIVA_IRQ_I2C8 (125) /* Vector 125: I2C 8 */
# define TIVA_IRQ_I2C9 (126) /* Vector 126: I2C 9 */
# define TIVA_RESERVED_127 (127) /* Vector 127: Reserved */
# define TIVA_RESERVED_128 (128) /* Vector 128: Reserved */
# define TIVA_RESERVED_129 (129) /* Vector 129: Reserved */
# define NR_IRQS (130) /* (Really fewer because of reserved vectors) */
#else
# error "IRQ Numbers not known for this Tiva chip"
#endif

View File

@ -52,7 +52,7 @@
************************************************************************************/
/* FLASH dimensions ****************************************************************/
#if defined(CONFIG_ARCH_CHIP_TM4C129XNC)
#if defined(CONFIG_ARCH_CHIP_TM4C129XNC) || defined(CONFIG_ARCH_CHIP_TM4C1294NC)
/* For the TM4C129X family, the Flash memory is configured in groups of four banks
* four banks of 16K x 128 bits (4 * 256 KB total) which are two-way interleaved.

View File

@ -91,7 +91,7 @@
# define TIVA_TPIU_BASE 0xe0040000 /* -0xe0040fff: Trace Port Interface Unit */
# define TIVA_ETM_BASE 0xe0041000 /* -0xe0041fff: Embedded Trace Macrocell */
/* -0xffffffff: Reserved */
#elif defined(CONFIG_ARCH_CHIP_TM4C129XNC)
#elif defined(CONFIG_ARCH_CHIP_TM4C129XNC) || defined(CONFIG_ARCH_CHIP_TM4C1294NC)
# define TIVA_FLASH_BASE 0x00000000 /* -0x000fffff: On-chip FLASH */
/* -0x01ffffff: Reserved */
# define TIVA_ROM_BASE 0x02000000 /* -0x02ffffff: On-chip ROM (16 MB) */
@ -448,6 +448,112 @@
# define TIVA_SYSCON_BASE (TIVA_PERIPH1_BASE + 0xfe000) /* -0xfefff: System Control */
# define TIVA_UDMA_BASE (TIVA_PERIPH1_BASE + 0xff000) /* -0xfffff: Micro Direct Memory Access */
/* Peripheral region 2 */
/* -0x2ffff: Reserved */
# define TIVA_CCM_BASE (TIVA_PERIPH2_BASE + 0x30000) /* -0x30fff: CRC/Cryptographic Control */
/* -0x33fff: Reserved */
# define TIVA_SHAMD5_BASE (TIVA_PERIPH2_BASE + 0x34000) /* -0x35fff: SHA/MD5 */
# define TIVA_AES_BASE (TIVA_PERIPH2_BASE + 0x36000) /* -0x37fff: AES */
# define TIVA_DES_BASE (TIVA_PERIPH2_BASE + 0x38000) /* -0x39fff: DES */
/* -0x4ffff: Reserved */
# define TIVA_LCD_BASE (TIVA_PERIPH2_BASE + 0x50000) /* -0x50fff: LCD */
/* -0x53fff: Reserved */
# define TIVA_EPHY_BASE (TIVA_PERIPH2_BASE + 0x54000) /* -0x54fff: EPHY */
/* -0xfffff: Reserved */
#elif defined(CONFIG_ARCH_CHIP_TM4C1294NC)
// FIXME sauttefk
/* Peripheral region 1 */
# define TIVA_WDOG0_BASE (TIVA_PERIPH1_BASE + 0x00000) /* -0x00fff: Watchdog Timer 0 */
# define TIVA_WDOG1_BASE (TIVA_PERIPH1_BASE + 0x01000) /* -0x00fff: Watchdog Timer 1 */
/* -0x03fff: Reserved */
# define TIVA_GPIOA_BASE (TIVA_PERIPH1_BASE + 0x04000) /* -0x04fff: GPIO Port A */
# define TIVA_GPIOB_BASE (TIVA_PERIPH1_BASE + 0x05000) /* -0x05fff: GPIO Port B */
# define TIVA_GPIOC_BASE (TIVA_PERIPH1_BASE + 0x06000) /* -0x06fff: GPIO Port C */
# define TIVA_GPIOD_BASE (TIVA_PERIPH1_BASE + 0x07000) /* -0x07fff: GPIO Port D */
# define TIVA_SSI0_BASE (TIVA_PERIPH1_BASE + 0x08000) /* -0x08fff: SSI0 */
# define TIVA_SSI1_BASE (TIVA_PERIPH1_BASE + 0x09000) /* -0x09fff: SSI1 */
# define TIVA_SSI2_BASE (TIVA_PERIPH1_BASE + 0x0a000) /* -0x0afff: SSI2 */
# define TIVA_SSI3_BASE (TIVA_PERIPH1_BASE + 0x0b000) /* -0x0bfff: SSI3 */
# define TIVA_UART0_BASE (TIVA_PERIPH1_BASE + 0x0c000) /* -0x0cfff: UART0 */
# define TIVA_UART1_BASE (TIVA_PERIPH1_BASE + 0x0d000) /* -0x0dfff: UART1 */
# define TIVA_UART2_BASE (TIVA_PERIPH1_BASE + 0x0e000) /* -0x0efff: UART2 */
# define TIVA_UART3_BASE (TIVA_PERIPH1_BASE + 0x0f000) /* -0x0ffff: UART3 */
# define TIVA_UART4_BASE (TIVA_PERIPH1_BASE + 0x10000) /* -0x10fff: UART4 */
# define TIVA_UART5_BASE (TIVA_PERIPH1_BASE + 0x11000) /* -0x11fff: UART5 */
# define TIVA_UART6_BASE (TIVA_PERIPH1_BASE + 0x12000) /* -0x12fff: UART6 */
# define TIVA_UART7_BASE (TIVA_PERIPH1_BASE + 0x13000) /* -0x13fff: UART7 */
/* -0x1ffff: Reserved */
# define TIVA_I2C0_BASE (TIVA_PERIPH1_BASE + 0x20000) /* -0x20fff: I2C0 */
# define TIVA_I2C1_BASE (TIVA_PERIPH1_BASE + 0x21000) /* -0x21fff: I2C1 */
# define TIVA_I2C2_BASE (TIVA_PERIPH1_BASE + 0x22000) /* -0x22fff: I2C2 */
# define TIVA_I2C3_BASE (TIVA_PERIPH1_BASE + 0x23000) /* -0x23fff: I2C3 */
# define TIVA_GPIOE_BASE (TIVA_PERIPH1_BASE + 0x24000) /* -0x24fff: GPIO Port E */
# define TIVA_GPIOF_BASE (TIVA_PERIPH1_BASE + 0x25000) /* -0x25fff: GPIO Port F */
# define TIVA_GPIOG_BASE (TIVA_PERIPH1_BASE + 0x26000) /* -0x26fff: GPIO Port G */
# define TIVA_GPIOH_BASE (TIVA_PERIPH1_BASE + 0x27000) /* -0x27fff: GPIO Port H */
# define TIVA_PWM0_BASE (TIVA_PERIPH1_BASE + 0x28000) /* -0x28fff: PWM 0 */
/* -0x2bfff: Reserved */
# define TIVA_QEI0_BASE (TIVA_PERIPH1_BASE + 0x2c000) /* -0x2cfff: QEI 0 */
/* -0x2ffff: Reserved */
# define TIVA_TIMER0_BASE (TIVA_PERIPH1_BASE + 0x30000) /* -0x30fff: 16/32 Timer 0 */
# define TIVA_TIMER1_BASE (TIVA_PERIPH1_BASE + 0x31000) /* -0x31fff: 16/32 Timer 1 */
# define TIVA_TIMER2_BASE (TIVA_PERIPH1_BASE + 0x32000) /* -0x32fff: 16/32 Timer 2 */
# define TIVA_TIMER3_BASE (TIVA_PERIPH1_BASE + 0x33000) /* -0x33fff: 16/32 Timer 3 */
# define TIVA_TIMER4_BASE (TIVA_PERIPH1_BASE + 0x34000) /* -0x34fff: 16/32 Timer 4 */
# define TIVA_TIMER5_BASE (TIVA_PERIPH1_BASE + 0x35000) /* -0x35fff: 16/32 Timer 5 */
/* -0x37fff: Reserved */
# define TIVA_ADC0_BASE (TIVA_PERIPH1_BASE + 0x38000) /* -0x38fff: ADC 0 */
# define TIVA_ADC1_BASE (TIVA_PERIPH1_BASE + 0x39000) /* -0x39fff: ADC 1 */
/* -0x3bfff: Reserved */
# define TIVA_CMP_BASE (TIVA_PERIPH1_BASE + 0x3c000) /* -0x3cfff: Analog Comparators */
# define TIVA_GPIOJ_BASE (TIVA_PERIPH1_BASE + 0x3d000) /* -0x3dfff: GPIO Port J */
/* -0x3ffff: Reserved */
# define TIVA_CAN0_BASE (TIVA_PERIPH1_BASE + 0x40000) /* -0x40fff: CAN Controller 0 */
# define TIVA_CAN1_BASE (TIVA_PERIPH1_BASE + 0x41000) /* -0x41fff: CAN Controller 1 */
/* -0x4ffff: Reserved */
# define TIVA_USB_BASE (TIVA_PERIPH1_BASE + 0x50000) /* -0x50fff: USB */
/* -0x57fff: Reserved */
# define TIVA_GPIOAAHB_BASE (TIVA_PERIPH1_BASE + 0x58000) /* -0x58fff: GPIO Port A (AHB aperture) */
# define TIVA_GPIOBAHB_BASE (TIVA_PERIPH1_BASE + 0x59000) /* -0x59fff: GPIO Port B (AHB aperture) */
# define TIVA_GPIOCAHB_BASE (TIVA_PERIPH1_BASE + 0x5a000) /* -0x5afff: GPIO Port C (AHB aperture) */
# define TIVA_GPIODAHB_BASE (TIVA_PERIPH1_BASE + 0x5b000) /* -0x5bfff: GPIO Port D (AHB aperture) */
# define TIVA_GPIOEAHB_BASE (TIVA_PERIPH1_BASE + 0x5c000) /* -0x5cfff: GPIO Port E (AHB aperture) */
# define TIVA_GPIOFAHB_BASE (TIVA_PERIPH1_BASE + 0x5d000) /* -0x5dfff: GPIO Port F (AHB aperture) */
# define TIVA_GPIOGAHB_BASE (TIVA_PERIPH1_BASE + 0x5e000) /* -0x5efff: GPIO Port G (AHB aperture) */
# define TIVA_GPIOHAHB_BASE (TIVA_PERIPH1_BASE + 0x5f000) /* -0x5ffff: GPIO Port H (AHB aperture) */
# define TIVA_GPIOJAHB_BASE (TIVA_PERIPH1_BASE + 0x60000) /* -0x60fff: GPIO Port J (AHB aperture) */
# define TIVA_GPIOKAHB_BASE (TIVA_PERIPH1_BASE + 0x61000) /* -0x61fff: GPIO Port K (AHB aperture) */
# define TIVA_GPIOLAHB_BASE (TIVA_PERIPH1_BASE + 0x62000) /* -0x62fff: GPIO Port L (AHB aperture) */
# define TIVA_GPIOMAHB_BASE (TIVA_PERIPH1_BASE + 0x63000) /* -0x63fff: GPIO Port M (AHB aperture) */
# define TIVA_GPIONAHB_BASE (TIVA_PERIPH1_BASE + 0x64000) /* -0x64fff: GPIO Port N (AHB aperture) */
# define TIVA_GPIOPAHB_BASE (TIVA_PERIPH1_BASE + 0x65000) /* -0x65fff: GPIO Port P (AHB aperture) */
# define TIVA_GPIOQAHB_BASE (TIVA_PERIPH1_BASE + 0x66000) /* -0x66fff: GPIO Port Q (AHB aperture) */
/* -0xaefff: Reserved */
# define TIVA_EEPROM_BASE (TIVA_PERIPH1_BASE + 0xaf000) /* -0xaffff: EEPROM and Key Locker */
/* -0xb7fff: Reserved */
# define TIVA_I2C8_BASE (TIVA_PERIPH1_BASE + 0xb8000) /* -0xb8fff: I2C8 */
# define TIVA_I2C9_BASE (TIVA_PERIPH1_BASE + 0xb9000) /* -0xb9fff: I2C9 */
/* -0xbffff: Reserved */
# define TIVA_I2C4_BASE (TIVA_PERIPH1_BASE + 0xc0000) /* -0xc0fff: I2C4 */
# define TIVA_I2C5_BASE (TIVA_PERIPH1_BASE + 0xc1000) /* -0xc1fff: I2C5 */
# define TIVA_I2C6_BASE (TIVA_PERIPH1_BASE + 0xc2000) /* -0xc2fff: I2C6 */
# define TIVA_I2C7_BASE (TIVA_PERIPH1_BASE + 0xc3000) /* -0xc3fff: I2C7 */
/* -0xcffff: Reserved */
# define TIVA_EPI0_BASE (TIVA_PERIPH1_BASE + 0xd0000) /* -0xd0fff: EPI0 */
/* -0xdffff: Reserved */
# define TIVA_TIMER6_BASE (TIVA_PERIPH1_BASE + 0xe0000) /* -0xe0fff: 16/32 Timer 6 */
# define TIVA_TIMER7_BASE (TIVA_PERIPH1_BASE + 0xe1000) /* -0xe1fff: 16/32 Timer 7 */
/* -0xebfff: Reserved */
# define TIVA_ETHCON_BASE (TIVA_PERIPH1_BASE + 0xec000) /* -0xecfff: Ethernet Controller */
/* -0xf8fff: Reserved */
# define TIVA_SYSEXC_BASE (TIVA_PERIPH1_BASE + 0xf9000) /* -0xf9fff: System Exception Control */
/* -0xfbfff: Reserved */
# define TIVA_HIBERNATE_BASE (TIVA_PERIPH1_BASE + 0xfc000) /* -0xfcfff: Hibernation Controller */
# define TIVA_FLASHCON_BASE (TIVA_PERIPH1_BASE + 0xfd000) /* -0xfdfff: FLASH Control */
# define TIVA_SYSCON_BASE (TIVA_PERIPH1_BASE + 0xfe000) /* -0xfefff: System Control */
# define TIVA_UDMA_BASE (TIVA_PERIPH1_BASE + 0xff000) /* -0xfffff: Micro Direct Memory Access */
/* Peripheral region 2 */
/* -0x2ffff: Reserved */
# define TIVA_CCM_BASE (TIVA_PERIPH2_BASE + 0x30000) /* -0x30fff: CRC/Cryptographic Control */

View File

@ -1091,6 +1091,439 @@
# define GPIO_RTC_CLK_2 (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTC | GPIO_PIN_5)
# define GPIO_RTC_CLK_3 (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTP | GPIO_PIN_3)
#elif defined(CONFIG_ARCH_CHIP_TM4C1294NC)
// FIXME: sauttefk
# define GPIO_ADC_AIN0 (GPIO_FUNC_ANINPUT | GPIO_PORTE | GPIO_PIN_3)
# define GPIO_ADC_AIN1 (GPIO_FUNC_ANINPUT | GPIO_PORTE | GPIO_PIN_2)
# define GPIO_ADC_AIN2 (GPIO_FUNC_ANINPUT | GPIO_PORTE | GPIO_PIN_1)
# define GPIO_ADC_AIN3 (GPIO_FUNC_ANINPUT | GPIO_PORTE | GPIO_PIN_0)
# define GPIO_ADC_AIN4 (GPIO_FUNC_ANINPUT | GPIO_PORTD | GPIO_PIN_7)
# define GPIO_ADC_AIN5 (GPIO_FUNC_ANINPUT | GPIO_PORTD | GPIO_PIN_6)
# define GPIO_ADC_AIN6 (GPIO_FUNC_ANINPUT | GPIO_PORTD | GPIO_PIN_5)
# define GPIO_ADC_AIN7 (GPIO_FUNC_ANINPUT | GPIO_PORTD | GPIO_PIN_4)
# define GPIO_ADC_AIN8 (GPIO_FUNC_ANINPUT | GPIO_PORTE | GPIO_PIN_5)
# define GPIO_ADC_AIN9 (GPIO_FUNC_ANINPUT | GPIO_PORTE | GPIO_PIN_4)
# define GPIO_ADC_AIN10 (GPIO_FUNC_ANINPUT | GPIO_PORTB | GPIO_PIN_4)
# define GPIO_ADC_AIN11 (GPIO_FUNC_ANINPUT | GPIO_PORTB | GPIO_PIN_5)
# define GPIO_ADC_AIN12 (GPIO_FUNC_ANINPUT | GPIO_PORTD | GPIO_PIN_3)
# define GPIO_ADC_AIN13 (GPIO_FUNC_ANINPUT | GPIO_PORTD | GPIO_PIN_2)
# define GPIO_ADC_AIN14 (GPIO_FUNC_ANINPUT | GPIO_PORTD | GPIO_PIN_1)
# define GPIO_ADC_AIN15 (GPIO_FUNC_ANINPUT | GPIO_PORTD | GPIO_PIN_0)
# define GPIO_ADC_AIN16 (GPIO_FUNC_ANINPUT | GPIO_PORTK | GPIO_PIN_0)
# define GPIO_ADC_AIN17 (GPIO_FUNC_ANINPUT | GPIO_PORTK | GPIO_PIN_1)
# define GPIO_ADC_AIN18 (GPIO_FUNC_ANINPUT | GPIO_PORTK | GPIO_PIN_2)
# define GPIO_ADC_AIN19 (GPIO_FUNC_ANINPUT | GPIO_PORTK | GPIO_PIN_3)
# define GPIO_ADC_AIN20 (GPIO_FUNC_ANINPUT | GPIO_PORTE | GPIO_PIN_6)
# define GPIO_ADC_AIN21 (GPIO_FUNC_ANINPUT | GPIO_PORTE | GPIO_PIN_7)
# define GPIO_ADC_AIN22 (GPIO_FUNC_ANINPUT | GPIO_PORTP | GPIO_PIN_7)
# define GPIO_ADC_AIN23 (GPIO_FUNC_ANINPUT | GPIO_PORTP | GPIO_PIN_6)
# define GPIO_CAN0_RX_1 (GPIO_FUNC_PFINPUT | GPIO_ALT_7 | GPIO_PORTA | GPIO_PIN_0)
# define GPIO_CAN0_RX_2 (GPIO_FUNC_PFINPUT | GPIO_ALT_7 | GPIO_PORTT | GPIO_PIN_0)
# define GPIO_CAN0_TX_1 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_7 | GPIO_PORTA | GPIO_PIN_1)
# define GPIO_CAN0_TX_2 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_7 | GPIO_PORTT | GPIO_PIN_1)
# define GPIO_CAN1_RX_1 (GPIO_FUNC_PFINPUT | GPIO_ALT_7 | GPIO_PORTB | GPIO_PIN_0)
# define GPIO_CAN1_RX_2 (GPIO_FUNC_PFINPUT | GPIO_ALT_7 | GPIO_PORTT | GPIO_PIN_2)
# define GPIO_CAN1_TX_1 (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTB | GPIO_PIN_1)
# define GPIO_CAN1_TX_2 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_7 | GPIO_PORTT | GPIO_PIN_3)
# define GPIO_CMP0_OUT_1 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_5 | GPIO_PORTD | GPIO_PIN_0)
# define GPIO_CMP0_OUT_2 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_5 | GPIO_PORTL | GPIO_PIN_2)
# define GPIO_CMP1_OUT_1 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_5 | GPIO_PORTD | GPIO_PIN_1)
# define GPIO_CMP1_OUT_2 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_5 | GPIO_PORTL | GPIO_PIN_3)
# define GPIO_CMP2_OUT (GPIO_FUNC_PFOUTPUT | GPIO_ALT_5 | GPIO_PORTD | GPIO_PIN_2)
# define GPIO_EN0_COL (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTM | GPIO_PIN_7)
# define GPIO_EN0_CRS (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTM | GPIO_PIN_6)
# define GPIO_EN0_INTRN_1 (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTK | GPIO_PIN_4)
# define GPIO_EN0_INTRN_2 (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTP | GPIO_PIN_0)
# define GPIO_EN0_LED0_1 (GPIO_FUNC_PFIO | GPIO_ALT_5 | GPIO_PORTF | GPIO_PIN_0)
# define GPIO_EN0_LED0_2 (GPIO_FUNC_PFIO | GPIO_ALT_5 | GPIO_PORTK | GPIO_PIN_4)
# define GPIO_EN0_LED1_1 (GPIO_FUNC_PFIO | GPIO_ALT_5 | GPIO_PORTF | GPIO_PIN_4)
# define GPIO_EN0_LED1_2 (GPIO_FUNC_PFIO | GPIO_ALT_5 | GPIO_PORTK | GPIO_PIN_6)
# define GPIO_EN0_LED2_1 (GPIO_FUNC_PFIO | GPIO_ALT_5 | GPIO_PORTF | GPIO_PIN_1)
# define GPIO_EN0_LED2_2 (GPIO_FUNC_PFIO | GPIO_ALT_5 | GPIO_PORTK | GPIO_PIN_5)
# define GPIO_EN0_MDC_1 (GPIO_FUNC_PFIO | GPIO_ALT_5 | GPIO_PORTB | GPIO_PIN_2)
# define GPIO_EN0_MDC_2 (GPIO_FUNC_PFIO | GPIO_ALT_5 | GPIO_PORTF | GPIO_PIN_2)
# define GPIO_EN0_MDIO_1 (GPIO_FUNC_PFIO | GPIO_ALT_5 | GPIO_PORTB | GPIO_PIN_3)
# define GPIO_EN0_MDIO_2 (GPIO_FUNC_PFIO | GPIO_ALT_5 | GPIO_PORTF | GPIO_PIN_3)
# define GPIO_EN0_PPS_1 (GPIO_FUNC_PFIO | GPIO_ALT_5 | GPIO_PORTG | GPIO_PIN_0)
# define GPIO_EN0_PPS_2 (GPIO_FUNC_PFIO | GPIO_ALT_5 | GPIO_PORTH | GPIO_PIN_5)
# define GPIO_EN0_PPS_3 (GPIO_FUNC_PFIO | GPIO_ALT_5 | GPIO_PORTJ | GPIO_PIN_0)
# define GPIO_EN0_RREF_CLK (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTM | GPIO_PIN_4)
# define GPIO_EN0_RXCK (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTA | GPIO_PIN_6)
# define GPIO_EN0_RXD0_1 (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTQ | GPIO_PIN_5)
# define GPIO_EN0_RXD0_2 (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTT | GPIO_PIN_0)
# define GPIO_EN0_RXD1_1 (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTQ | GPIO_PIN_6)
# define GPIO_EN0_RXD1_2 (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTT | GPIO_PIN_1)
# define GPIO_EN0_RXD2 (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTK | GPIO_PIN_5)
# define GPIO_EN0_RXD3 (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTK | GPIO_PIN_4)
# define GPIO_EN0_RXDV_1 (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTG | GPIO_PIN_7)
# define GPIO_EN0_RXDV_2 (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTS | GPIO_PIN_7)
# define GPIO_EN0_RXER_1 (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTG | GPIO_PIN_6)
# define GPIO_EN0_RXER_2 (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTS | GPIO_PIN_6)
# define GPIO_EN0_TXCK (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTG | GPIO_PIN_2)
# define GPIO_EN0_TXD0_1 (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTG | GPIO_PIN_4)
# define GPIO_EN0_TXD0_2 (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTS | GPIO_PIN_4)
# define GPIO_EN0_TXD1_1 (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTG | GPIO_PIN_5)
# define GPIO_EN0_TXD1_2 (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTS | GPIO_PIN_5)
# define GPIO_EN0_TXD2 (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTK | GPIO_PIN_6)
# define GPIO_EN0_TXD3 (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTK | GPIO_PIN_7)
# define GPIO_EN0_TXEN_1 (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTG | GPIO_PIN_3)
# define GPIO_EN0_TXEN_2 (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTR | GPIO_PIN_7)
# define GPIO_EN0_TXER (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTN | GPIO_PIN_6)
# define GPIO_EPI0_S0_1 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTH | GPIO_PIN_0)
# define GPIO_EPI0_S0_2 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTK | GPIO_PIN_0)
# define GPIO_EPI0_S1_1 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTH | GPIO_PIN_1)
# define GPIO_EPI0_S1_2 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTK | GPIO_PIN_1)
# define GPIO_EPI0_S2_1 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTH | GPIO_PIN_2)
# define GPIO_EPI0_S2_2 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTK | GPIO_PIN_2)
# define GPIO_EPI0_S3_1 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTH | GPIO_PIN_3)
# define GPIO_EPI0_S3_2 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTK | GPIO_PIN_3)
# define GPIO_EPI0_S4 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTC | GPIO_PIN_7)
# define GPIO_EPI0_S5 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTC | GPIO_PIN_6)
# define GPIO_EPI0_S6 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTC | GPIO_PIN_5)
# define GPIO_EPI0_S7 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTC | GPIO_PIN_4)
# define GPIO_EPI0_S8 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTA | GPIO_PIN_6)
# define GPIO_EPI0_S9 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTA | GPIO_PIN_7)
# define GPIO_EPI0_S10 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTG | GPIO_PIN_1)
# define GPIO_EPI0_S11 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTG | GPIO_PIN_0)
# define GPIO_EPI0_S12 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTM | GPIO_PIN_3)
# define GPIO_EPI0_S13 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTM | GPIO_PIN_2)
# define GPIO_EPI0_S14 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTM | GPIO_PIN_1)
# define GPIO_EPI0_S15 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTM | GPIO_PIN_0)
# define GPIO_EPI0_S16 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTL | GPIO_PIN_0)
# define GPIO_EPI0_S17 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTL | GPIO_PIN_1)
# define GPIO_EPI0_S18 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTL | GPIO_PIN_2)
# define GPIO_EPI0_S19 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTL | GPIO_PIN_3)
# define GPIO_EPI0_S20 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTQ | GPIO_PIN_0)
# define GPIO_EPI0_S21 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTQ | GPIO_PIN_1)
# define GPIO_EPI0_S22 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTQ | GPIO_PIN_2)
# define GPIO_EPI0_S23 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTQ | GPIO_PIN_3)
# define GPIO_EPI0_S24 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTK | GPIO_PIN_7)
# define GPIO_EPI0_S25 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTK | GPIO_PIN_6)
# define GPIO_EPI0_S26 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTL | GPIO_PIN_4)
# define GPIO_EPI0_S27 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTB | GPIO_PIN_2)
# define GPIO_EPI0_S28 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTB | GPIO_PIN_3)
# define GPIO_EPI0_S29_1 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTN | GPIO_PIN_2)
# define GPIO_EPI0_S29_2 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTP | GPIO_PIN_2)
# define GPIO_EPI0_S30_1 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTN | GPIO_PIN_3)
# define GPIO_EPI0_S30_2 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTP | GPIO_PIN_3)
# define GPIO_EPI0_S31 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTK | GPIO_PIN_5)
# define GPIO_EPI0_S32 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTK | GPIO_PIN_4)
# define GPIO_EPI0_S33 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTL | GPIO_PIN_5)
# define GPIO_EPI0_S34 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTN | GPIO_PIN_4)
# define GPIO_EPI0_S35 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTN | GPIO_PIN_5)
# define GPIO_I2C0_SCL (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTB | GPIO_PIN_2)
# define GPIO_I2C0_SDA (GPIO_FUNC_PFODIO | GPIO_ALT_2 | GPIO_PADTYPE_ODWPU | GPIO_PORTB | GPIO_PIN_3)
# define GPIO_I2C1_SCL_1 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTG | GPIO_PIN_0)
# define GPIO_I2C1_SCL_2 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTR | GPIO_PIN_0)
# define GPIO_I2C1_SDA_1 (GPIO_FUNC_PFODIO | GPIO_ALT_2 | GPIO_PADTYPE_ODWPU | GPIO_PORTG | GPIO_PIN_1)
# define GPIO_I2C1_SDA_2 (GPIO_FUNC_PFODIO | GPIO_ALT_2 | GPIO_PADTYPE_ODWPU | GPIO_PORTR | GPIO_PIN_1)
# define GPIO_I2C2_SCL_1 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTG | GPIO_PIN_2)
# define GPIO_I2C2_SCL_2 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTL | GPIO_PIN_1)
# define GPIO_I2C2_SCL_3 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTP | GPIO_PIN_5)
# define GPIO_I2C2_SCL_4 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTR | GPIO_PIN_2)
# define GPIO_I2C2_SCL_5 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_3 | GPIO_PORTN | GPIO_PIN_5)
# define GPIO_I2C2_SDA_1 (GPIO_FUNC_PFODIO | GPIO_ALT_2 | GPIO_PADTYPE_ODWPU | GPIO_PORTG | GPIO_PIN_3)
# define GPIO_I2C2_SDA_2 (GPIO_FUNC_PFODIO | GPIO_ALT_2 | GPIO_PADTYPE_ODWPU | GPIO_PORTL | GPIO_PIN_0)
# define GPIO_I2C2_SDA_3 (GPIO_FUNC_PFODIO | GPIO_ALT_2 | GPIO_PADTYPE_ODWPU | GPIO_PORTP | GPIO_PIN_6)
# define GPIO_I2C2_SDA_4 (GPIO_FUNC_PFODIO | GPIO_ALT_2 | GPIO_PADTYPE_ODWPU | GPIO_PORTR | GPIO_PIN_3)
# define GPIO_I2C2_SDA_5 (GPIO_FUNC_PFODIO | GPIO_ALT_3 | GPIO_PADTYPE_ODWPU | GPIO_PORTN | GPIO_PIN_4)
# define GPIO_I2C3_SCL_1 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTG | GPIO_PIN_4)
# define GPIO_I2C3_SCL_2 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTK | GPIO_PIN_4)
# define GPIO_I2C3_SCL_3 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTR | GPIO_PIN_4)
# define GPIO_I2C3_SDA_1 (GPIO_FUNC_PFODIO | GPIO_ALT_2 | GPIO_PADTYPE_ODWPU | GPIO_PORTG | GPIO_PIN_5)
# define GPIO_I2C3_SDA_2 (GPIO_FUNC_PFODIO | GPIO_ALT_2 | GPIO_PADTYPE_ODWPU | GPIO_PORTK | GPIO_PIN_5)
# define GPIO_I2C3_SDA_3 (GPIO_FUNC_PFODIO | GPIO_ALT_2 | GPIO_PADTYPE_ODWPU | GPIO_PORTR | GPIO_PIN_5)
# define GPIO_I2C4_SCL_1 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTG | GPIO_PIN_6)
# define GPIO_I2C4_SCL_2 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTK | GPIO_PIN_6)
# define GPIO_I2C4_SCL_3 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTR | GPIO_PIN_6)
# define GPIO_I2C4_SDA_1 (GPIO_FUNC_PFODIO | GPIO_ALT_2 | GPIO_PADTYPE_ODWPU | GPIO_PORTG | GPIO_PIN_7)
# define GPIO_I2C4_SDA_2 (GPIO_FUNC_PFODIO | GPIO_ALT_2 | GPIO_PADTYPE_ODWPU | GPIO_PORTK | GPIO_PIN_7)
# define GPIO_I2C4_SDA_3 (GPIO_FUNC_PFODIO | GPIO_ALT_2 | GPIO_PADTYPE_ODWPU | GPIO_PORTR | GPIO_PIN_7)
# define GPIO_I2C5_SCL_1 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTB | GPIO_PIN_0)
# define GPIO_I2C5_SCL_2 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTB | GPIO_PIN_4)
# define GPIO_I2C5_SDA_1 (GPIO_FUNC_PFODIO | GPIO_ALT_2 | GPIO_PADTYPE_ODWPU | GPIO_PORTB | GPIO_PIN_1)
# define GPIO_I2C5_SDA_2 (GPIO_FUNC_PFODIO | GPIO_ALT_2 | GPIO_PADTYPE_ODWPU | GPIO_PORTB | GPIO_PIN_5)
# define GPIO_I2C6_SCL_1 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTA | GPIO_PIN_6)
# define GPIO_I2C6_SCL_2 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTB | GPIO_PIN_6)
# define GPIO_I2C6_SDA_1 (GPIO_FUNC_PFODIO | GPIO_ALT_2 | GPIO_PADTYPE_ODWPU | GPIO_PORTA | GPIO_PIN_7)
# define GPIO_I2C6_SDA_2 (GPIO_FUNC_PFODIO | GPIO_ALT_2 | GPIO_PADTYPE_ODWPU | GPIO_PORTB | GPIO_PIN_7)
# define GPIO_I2C7_SCL_1 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTA | GPIO_PIN_4)
# define GPIO_I2C7_SCL_2 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTD | GPIO_PIN_0)
# define GPIO_I2C7_SDA_1 (GPIO_FUNC_PFODIO | GPIO_ALT_2 | GPIO_PADTYPE_ODWPU | GPIO_PORTA | GPIO_PIN_5)
# define GPIO_I2C7_SDA_2 (GPIO_FUNC_PFODIO | GPIO_ALT_2 | GPIO_PADTYPE_ODWPU | GPIO_PORTD | GPIO_PIN_1)
# define GPIO_I2C8_SCL_1 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTA | GPIO_PIN_2)
# define GPIO_I2C8_SCL_2 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTD | GPIO_PIN_2)
# define GPIO_I2C8_SDA_1 (GPIO_FUNC_PFODIO | GPIO_ALT_2 | GPIO_PADTYPE_ODWPU | GPIO_PORTA | GPIO_PIN_3)
# define GPIO_I2C8_SDA_2 (GPIO_FUNC_PFODIO | GPIO_ALT_2 | GPIO_PADTYPE_ODWPU | GPIO_PORTD | GPIO_PIN_3)
# define GPIO_I2C9_SCL_1 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTA | GPIO_PIN_0)
# define GPIO_I2C9_SCL_2 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTE | GPIO_PIN_6)
# define GPIO_I2C9_SDA_1 (GPIO_FUNC_PFODIO | GPIO_ALT_2 | GPIO_PADTYPE_ODWPU | GPIO_PORTA | GPIO_PIN_1)
# define GPIO_I2C9_SDA_2 (GPIO_FUNC_PFODIO | GPIO_ALT_2 | GPIO_PADTYPE_ODWPU | GPIO_PORTE | GPIO_PIN_7)
# define GPIO_JTAG_SWCLK (GPIO_FUNC_PFIO | GPIO_ALT_1 | GPIO_PORTC | GPIO_PIN_0)
# define GPIO_JTAG_SWDIO (GPIO_FUNC_PFIO | GPIO_ALT_1 | GPIO_PORTC | GPIO_PIN_1)
# define GPIO_JTAG_SWO (GPIO_FUNC_PFIO | GPIO_ALT_1 | GPIO_PORTC | GPIO_PIN_3)
# define GPIO_JTAG_TCK (GPIO_FUNC_PFIO | GPIO_ALT_1 | GPIO_PORTC | GPIO_PIN_0)
# define GPIO_JTAG_TDI (GPIO_FUNC_PFIO | GPIO_ALT_1 | GPIO_PORTC | GPIO_PIN_2)
# define GPIO_JTAG_TDO (GPIO_FUNC_PFIO | GPIO_ALT_1 | GPIO_PORTC | GPIO_PIN_3)
# define GPIO_JTAG_TMS (GPIO_FUNC_PFIO | GPIO_ALT_1 | GPIO_PORTC | GPIO_PIN_1)
# define GPIO_M0_PWM_FAULT0_1 (GPIO_FUNC_PFINPUT | GPIO_ALT_6 | GPIO_PORTF | GPIO_PIN_4)
# define GPIO_M0_PWM_FAULT0_2 (GPIO_FUNC_PFINPUT | GPIO_ALT_6 | GPIO_PORTS | GPIO_PIN_0)
# define GPIO_M0_PWM_FAULT1_1 (GPIO_FUNC_PFINPUT | GPIO_ALT_6 | GPIO_PORTK | GPIO_PIN_6)
# define GPIO_M0_PWM_FAULT1_2 (GPIO_FUNC_PFINPUT | GPIO_ALT_6 | GPIO_PORTS | GPIO_PIN_1)
# define GPIO_M0_PWM_FAULT2_1 (GPIO_FUNC_PFINPUT | GPIO_ALT_6 | GPIO_PORTK | GPIO_PIN_7)
# define GPIO_M0_PWM_FAULT2_2 (GPIO_FUNC_PFINPUT | GPIO_ALT_6 | GPIO_PORTS | GPIO_PIN_2)
# define GPIO_M0_PWM_FAULT3_1 (GPIO_FUNC_PFINPUT | GPIO_ALT_6 | GPIO_PORTL | GPIO_PIN_0)
# define GPIO_M0_PWM_FAULT3_2 (GPIO_FUNC_PFINPUT | GPIO_ALT_6 | GPIO_PORTS | GPIO_PIN_3)
# define GPIO_M0_PWM0_1 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_6 | GPIO_PORTF | GPIO_PIN_0)
# define GPIO_M0_PWM0_2 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_6 | GPIO_PORTR | GPIO_PIN_0)
# define GPIO_M0_PWM1_1 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_6 | GPIO_PORTF | GPIO_PIN_1)
# define GPIO_M0_PWM1_2 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_6 | GPIO_PORTR | GPIO_PIN_1)
# define GPIO_M0_PWM2_1 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_6 | GPIO_PORTF | GPIO_PIN_2)
# define GPIO_M0_PWM2_2 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_6 | GPIO_PORTR | GPIO_PIN_2)
# define GPIO_M0_PWM3_1 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_6 | GPIO_PORTF | GPIO_PIN_3)
# define GPIO_M0_PWM3_2 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_6 | GPIO_PORTR | GPIO_PIN_3)
# define GPIO_M0_PWM4_1 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_6 | GPIO_PORTG | GPIO_PIN_0)
# define GPIO_M0_PWM4_2 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_6 | GPIO_PORTR | GPIO_PIN_4)
# define GPIO_M0_PWM5_1 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_6 | GPIO_PORTG | GPIO_PIN_1)
# define GPIO_M0_PWM5_2 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_6 | GPIO_PORTR | GPIO_PIN_5)
# define GPIO_M0_PWM6_1 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_6 | GPIO_PORTK | GPIO_PIN_4)
# define GPIO_M0_PWM6_2 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_6 | GPIO_PORTR | GPIO_PIN_6)
# define GPIO_M0_PWM7_1 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_6 | GPIO_PORTK | GPIO_PIN_5)
# define GPIO_M0_PWM7_2 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_6 | GPIO_PORTR | GPIO_PIN_7)
# define GPIO_NMI_1 (GPIO_FUNC_PFIO | GPIO_ALT_8 | GPIO_PORTD | GPIO_PIN_7)
# define GPIO_NMI_2 (GPIO_FUNC_PFIO | GPIO_ALT_8 | GPIO_PORTE | GPIO_PIN_7)
# define GPIO_QEI0_IDX_1 (GPIO_FUNC_PFIO | GPIO_ALT_6 | GPIO_PORTL | GPIO_PIN_3)
# define GPIO_QEI0_IDX_2 (GPIO_FUNC_PFIO | GPIO_ALT_6 | GPIO_PORTS | GPIO_PIN_6)
# define GPIO_QEI0_PHA_1 (GPIO_FUNC_PFIO | GPIO_ALT_6 | GPIO_PORTL | GPIO_PIN_1)
# define GPIO_QEI0_PHA_2 (GPIO_FUNC_PFIO | GPIO_ALT_6 | GPIO_PORTS | GPIO_PIN_4)
# define GPIO_QEI0_PHB_1 (GPIO_FUNC_PFIO | GPIO_ALT_6 | GPIO_PORTL | GPIO_PIN_2)
# define GPIO_QEI0_PHB_2 (GPIO_FUNC_PFIO | GPIO_ALT_6 | GPIO_PORTS | GPIO_PIN_5)
# define GPIO_SSI0_CLK (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTA | GPIO_PIN_2)
# define GPIO_SSI0_FSS (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTA | GPIO_PIN_3)
# define GPIO_SSI0_XDAT0 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTA | GPIO_PIN_4)
# define GPIO_SSI0_XDAT1 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTA | GPIO_PIN_5)
# define GPIO_SSI0_XDAT2 (GPIO_FUNC_PFIO | GPIO_ALT_12 | GPIO_PORTA | GPIO_PIN_6)
# define GPIO_SSI0_XDAT3 (GPIO_FUNC_PFIO | GPIO_ALT_12 | GPIO_PORTA | GPIO_PIN_7)
# define GPIO_SSI1_CLK (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTB | GPIO_PIN_5)
# define GPIO_SSI1_FSS (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTB | GPIO_PIN_4)
# define GPIO_SSI1_XDAT0 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTE | GPIO_PIN_4)
# define GPIO_SSI1_XDAT1 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTE | GPIO_PIN_5)
# define GPIO_SSI1_XDAT2 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTD | GPIO_PIN_4)
# define GPIO_SSI1_XDAT3 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTD | GPIO_PIN_5)
# define GPIO_SSI2_CLK_1 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTD | GPIO_PIN_3)
# define GPIO_SSI2_CLK_2 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTG | GPIO_PIN_7)
# define GPIO_SSI2_FSS_1 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTD | GPIO_PIN_2)
# define GPIO_SSI2_FSS_2 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTG | GPIO_PIN_6)
# define GPIO_SSI2_XDAT0_1 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTD | GPIO_PIN_1)
# define GPIO_SSI2_XDAT0_2 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTG | GPIO_PIN_5)
# define GPIO_SSI2_XDAT1_1 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTD | GPIO_PIN_0)
# define GPIO_SSI2_XDAT1_2 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTG | GPIO_PIN_4)
# define GPIO_SSI2_XDAT2_1 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTD | GPIO_PIN_7)
# define GPIO_SSI2_XDAT2_2 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTG | GPIO_PIN_3)
# define GPIO_SSI2_XDAT3_1 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTD | GPIO_PIN_6)
# define GPIO_SSI2_XDAT3_2 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTG | GPIO_PIN_2)
# define GPIO_SSI3_CLK_1 (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTF | GPIO_PIN_3)
# define GPIO_SSI3_CLK_2 (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTQ | GPIO_PIN_0)
# define GPIO_SSI3_FSS_1 (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTF | GPIO_PIN_2)
# define GPIO_SSI3_FSS_2 (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTQ | GPIO_PIN_1)
# define GPIO_SSI3_XDAT0_1 (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTF | GPIO_PIN_1)
# define GPIO_SSI3_XDAT0_2 (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTQ | GPIO_PIN_2)
# define GPIO_SSI3_XDAT1_1 (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTF | GPIO_PIN_0)
# define GPIO_SSI3_XDAT1_2 (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTQ | GPIO_PIN_3)
# define GPIO_SSI3_XDAT2_1 (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTF | GPIO_PIN_4)
# define GPIO_SSI3_XDAT2_2 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTP | GPIO_PIN_0)
# define GPIO_SSI3_XDAT3_1 (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTF | GPIO_PIN_5)
# define GPIO_SSI3_XDAT3_2 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTP | GPIO_PIN_1)
# define GPIO_SYSCON_DIVSCLK (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTQ | GPIO_PIN_4)
# define GPIO_TR_CLK (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTF | GPIO_PIN_3)
# define GPIO_TR_D0 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTF | GPIO_PIN_2)
# define GPIO_TR_D1 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTF | GPIO_PIN_1)
# define GPIO_TR_D2 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTF | GPIO_PIN_0)
# define GPIO_TR_D3 (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTF | GPIO_PIN_4)
# define GPIO_TIM0_CCP0_1 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTA | GPIO_PIN_0)
# define GPIO_TIM0_CCP0_2 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTD | GPIO_PIN_0)
# define GPIO_TIM0_CCP0_3 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTL | GPIO_PIN_4)
# define GPIO_TIM0_CCP0_4 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTR | GPIO_PIN_4)
# define GPIO_TIM0_CCP1_1 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTA | GPIO_PIN_1)
# define GPIO_TIM0_CCP1_2 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTD | GPIO_PIN_1)
# define GPIO_TIM0_CCP1_3 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTL | GPIO_PIN_5)
# define GPIO_TIM0_CCP1_4 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTR | GPIO_PIN_5)
# define GPIO_TIM1_CCP0_1 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTA | GPIO_PIN_2)
# define GPIO_TIM1_CCP0_2 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTD | GPIO_PIN_2)
# define GPIO_TIM1_CCP0_3 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTL | GPIO_PIN_6)
# define GPIO_TIM1_CCP0_4 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTR | GPIO_PIN_6)
# define GPIO_TIM1_CCP1_1 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTA | GPIO_PIN_3)
# define GPIO_TIM1_CCP1_2 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTD | GPIO_PIN_3)
# define GPIO_TIM1_CCP1_3 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTL | GPIO_PIN_7)
# define GPIO_TIM1_CCP1_4 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTR | GPIO_PIN_7)
# define GPIO_TIM2_CCP0_1 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTA | GPIO_PIN_4)
# define GPIO_TIM2_CCP0_2 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTM | GPIO_PIN_0)
# define GPIO_TIM2_CCP0_3 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTS | GPIO_PIN_0)
# define GPIO_TIM2_CCP1_1 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTA | GPIO_PIN_5)
# define GPIO_TIM2_CCP1_2 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTM | GPIO_PIN_1)
# define GPIO_TIM2_CCP1_3 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTS | GPIO_PIN_1)
# define GPIO_TIM3_CCP0_1 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTA | GPIO_PIN_6)
# define GPIO_TIM3_CCP0_2 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTD | GPIO_PIN_4)
# define GPIO_TIM3_CCP0_3 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTM | GPIO_PIN_2)
# define GPIO_TIM3_CCP0_4 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTS | GPIO_PIN_2)
# define GPIO_TIM3_CCP1_1 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTA | GPIO_PIN_7)
# define GPIO_TIM3_CCP1_2 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTD | GPIO_PIN_5)
# define GPIO_TIM3_CCP1_3 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTM | GPIO_PIN_3)
# define GPIO_TIM3_CCP1_4 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTS | GPIO_PIN_3)
# define GPIO_TIM4_CCP0_1 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTB | GPIO_PIN_0)
# define GPIO_TIM4_CCP0_2 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTD | GPIO_PIN_6)
# define GPIO_TIM4_CCP0_3 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTM | GPIO_PIN_4)
# define GPIO_TIM4_CCP0_4 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTS | GPIO_PIN_4)
# define GPIO_TIM4_CCP1_1 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTB | GPIO_PIN_1)
# define GPIO_TIM4_CCP1_2 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTD | GPIO_PIN_7)
# define GPIO_TIM4_CCP1_3 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTM | GPIO_PIN_5)
# define GPIO_TIM4_CCP1_4 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTS | GPIO_PIN_5)
# define GPIO_TIM5_CCP0_1 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTB | GPIO_PIN_2)
# define GPIO_TIM5_CCP0_2 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTM | GPIO_PIN_6)
# define GPIO_TIM5_CCP0_3 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTS | GPIO_PIN_6)
# define GPIO_TIM5_CCP1_1 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTB | GPIO_PIN_3)
# define GPIO_TIM5_CCP1_2 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTM | GPIO_PIN_7)
# define GPIO_TIM5_CCP1_3 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTS | GPIO_PIN_7)
# define GPIO_TIM6_CCP0_1 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTB | GPIO_PIN_6)
# define GPIO_TIM6_CCP0_2 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTQ | GPIO_PIN_0)
# define GPIO_TIM6_CCP0_3 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTT | GPIO_PIN_0)
# define GPIO_TIM6_CCP0_4 (GPIO_FUNC_PFIO | GPIO_ALT_5 | GPIO_PORTP | GPIO_PIN_0)
# define GPIO_TIM6_CCP1_1 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTB | GPIO_PIN_7)
# define GPIO_TIM6_CCP1_2 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTQ | GPIO_PIN_1)
# define GPIO_TIM6_CCP1_3 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTT | GPIO_PIN_1)
# define GPIO_TIM6_CCP1_4 (GPIO_FUNC_PFIO | GPIO_ALT_5 | GPIO_PORTP | GPIO_PIN_1)
# define GPIO_TIM7_CCP0_1 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTC | GPIO_PIN_4)
# define GPIO_TIM7_CCP0_2 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTQ | GPIO_PIN_2)
# define GPIO_TIM7_CCP0_3 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTT | GPIO_PIN_2)
# define GPIO_TIM7_CCP1_1 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTC | GPIO_PIN_5)
# define GPIO_TIM7_CCP1_2 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTQ | GPIO_PIN_3)
# define GPIO_TIM7_CCP1_3 (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTT | GPIO_PIN_3)
# define GPIO_UART0_CTS_1 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTB | GPIO_PIN_4)
# define GPIO_UART0_CTS_2 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTE | GPIO_PIN_6)
# define GPIO_UART0_CTS_3 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTG | GPIO_PIN_4)
# define GPIO_UART0_CTS_4 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTH | GPIO_PIN_1)
# define GPIO_UART0_CTS_5 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTM | GPIO_PIN_4)
# define GPIO_UART0_DCD_1 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTH | GPIO_PIN_2)
# define GPIO_UART0_DCD_2 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTM | GPIO_PIN_5)
# define GPIO_UART0_DCD_3 (GPIO_FUNC_PFINPUT | GPIO_ALT_2 | GPIO_PORTP | GPIO_PIN_3)
# define GPIO_UART0_DSR_1 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTH | GPIO_PIN_3)
# define GPIO_UART0_DSR_2 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTM | GPIO_PIN_6)
# define GPIO_UART0_DSR_3 (GPIO_FUNC_PFINPUT | GPIO_ALT_2 | GPIO_PORTP | GPIO_PIN_4)
# define GPIO_UART0_DTR_1 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTH | GPIO_PIN_4)
# define GPIO_UART0_DTR_2 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTP | GPIO_PIN_2)
# define GPIO_UART0_RI_1 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTH | GPIO_PIN_5)
# define GPIO_UART0_RI_2 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTK | GPIO_PIN_7)
# define GPIO_UART0_RI_3 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTM | GPIO_PIN_7)
# define GPIO_UART0_RTS_1 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTB | GPIO_PIN_5)
# define GPIO_UART0_RTS_2 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTE | GPIO_PIN_7)
# define GPIO_UART0_RTS_3 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTG | GPIO_PIN_5)
# define GPIO_UART0_RTS_4 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTH | GPIO_PIN_0)
# define GPIO_UART0_RX (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTA | GPIO_PIN_0)
# define GPIO_UART0_TX (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTA | GPIO_PIN_1)
# define GPIO_UART1_CTS_1 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTN | GPIO_PIN_1)
# define GPIO_UART1_CTS_2 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTP | GPIO_PIN_3)
# define GPIO_UART1_DCD_1 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTE | GPIO_PIN_2)
# define GPIO_UART1_DCD_2 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTN | GPIO_PIN_2)
# define GPIO_UART1_DCD_3 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTP | GPIO_PIN_6)
# define GPIO_UART1_DSR_1 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTE | GPIO_PIN_1)
# define GPIO_UART1_DSR_2 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTN | GPIO_PIN_3)
# define GPIO_UART1_DSR_3 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTS | GPIO_PIN_2)
# define GPIO_UART1_DTR_1 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTE | GPIO_PIN_3)
# define GPIO_UART1_DTR_2 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTN | GPIO_PIN_4)
# define GPIO_UART1_DTR_3 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTQ | GPIO_PIN_6)
# define GPIO_UART1_RI_1 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTE | GPIO_PIN_4)
# define GPIO_UART1_RI_2 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTN | GPIO_PIN_5)
# define GPIO_UART1_RI_3 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTQ | GPIO_PIN_7)
# define GPIO_UART1_RTS_1 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTE | GPIO_PIN_0)
# define GPIO_UART1_RTS_2 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTN | GPIO_PIN_0)
# define GPIO_UART1_RTS_3 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTN | GPIO_PIN_7)
# define GPIO_UART1_RX_1 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTB | GPIO_PIN_0)
# define GPIO_UART1_RX_2 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTQ | GPIO_PIN_4)
# define GPIO_UART1_RX_3 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTR | GPIO_PIN_5)
# define GPIO_UART1_TX_1 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTB | GPIO_PIN_1)
# define GPIO_UART1_TX_2 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTQ | GPIO_PIN_5)
# define GPIO_UART1_TX_3 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTR | GPIO_PIN_6)
# define GPIO_UART2_CTS_1 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTD | GPIO_PIN_7)
# define GPIO_UART2_CTS_2 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTJ | GPIO_PIN_3)
# define GPIO_UART2_CTS_3 (GPIO_FUNC_PFINPUT | GPIO_ALT_2 | GPIO_PORTN | GPIO_PIN_3)
# define GPIO_UART2_RTS_1 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTD | GPIO_PIN_6)
# define GPIO_UART2_RTS_2 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTJ | GPIO_PIN_2)
# define GPIO_UART2_RTS_3 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTN | GPIO_PIN_2)
# define GPIO_UART2_RX_1 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTA | GPIO_PIN_6)
# define GPIO_UART2_RX_2 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTD | GPIO_PIN_4)
# define GPIO_UART2_TX_1 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTA | GPIO_PIN_7)
# define GPIO_UART2_TX_2 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTD | GPIO_PIN_5)
# define GPIO_UART3_CTS_1 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTJ | GPIO_PIN_5)
# define GPIO_UART3_CTS_2 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTP | GPIO_PIN_5)
# define GPIO_UART3_CTS_3 (GPIO_FUNC_PFINPUT | GPIO_ALT_2 | GPIO_PORTN | GPIO_PIN_5)
# define GPIO_UART3_RTS_1 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTJ | GPIO_PIN_4)
# define GPIO_UART3_RTS_2 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTP | GPIO_PIN_4)
# define GPIO_UART3_RTS_3 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTN | GPIO_PIN_4)
# define GPIO_UART3_RX_1 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTA | GPIO_PIN_4)
# define GPIO_UART3_RX_2 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTJ | GPIO_PIN_0)
# define GPIO_UART3_TX_1 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTA | GPIO_PIN_5)
# define GPIO_UART3_TX_2 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTJ | GPIO_PIN_1)
# define GPIO_UART4_CTS_1 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTK | GPIO_PIN_3)
# define GPIO_UART4_CTS_2 (GPIO_FUNC_PFINPUT | GPIO_ALT_2 | GPIO_PORTN | GPIO_PIN_7)
# define GPIO_UART4_CTS_3 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTJ | GPIO_PIN_7)
# define GPIO_UART4_RTS_1 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTJ | GPIO_PIN_6)
# define GPIO_UART4_RTS_2 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTK | GPIO_PIN_2)
# define GPIO_UART4_RTS_3 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTN | GPIO_PIN_6)
# define GPIO_UART4_RX_1 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTA | GPIO_PIN_2)
# define GPIO_UART4_RX_2 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTK | GPIO_PIN_0)
# define GPIO_UART4_RX_3 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTR | GPIO_PIN_1)
# define GPIO_UART4_TX_1 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTA | GPIO_PIN_3)
# define GPIO_UART4_TX_2 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTK | GPIO_PIN_1)
# define GPIO_UART4_TX_3 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTR | GPIO_PIN_0)
# define GPIO_UART5_RX_1 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTC | GPIO_PIN_6)
# define GPIO_UART5_RX_2 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTH | GPIO_PIN_6)
# define GPIO_UART5_TX_1 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTC | GPIO_PIN_7)
# define GPIO_UART5_TX_2 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTH | GPIO_PIN_7)
# define GPIO_UART6_RX (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTP | GPIO_PIN_0)
# define GPIO_UART6_TX (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTP | GPIO_PIN_1)
# define GPIO_UART7_RX_1 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTC | GPIO_PIN_4)
# define GPIO_UART7_RX_2 (GPIO_FUNC_PFINPUT | GPIO_ALT_2 | GPIO_PORTH | GPIO_PIN_6)
# define GPIO_UART7_TX_1 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTC | GPIO_PIN_5)
# define GPIO_UART7_TX_2 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTH | GPIO_PIN_7)
# define GPIO_USB0_CLK (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTB | GPIO_PIN_3)
# define GPIO_USB0_D0 (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTL | GPIO_PIN_0)
# define GPIO_USB0_D1 (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTL | GPIO_PIN_1)
# define GPIO_USB0_D2 (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTL | GPIO_PIN_2)
# define GPIO_USB0_D3 (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTL | GPIO_PIN_3)
# define GPIO_USB0_D4 (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTL | GPIO_PIN_4)
# define GPIO_USB0_D5 (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTL | GPIO_PIN_5)
# define GPIO_USB0_D6 (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTP | GPIO_PIN_5)
# define GPIO_USB0_D7 (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTP | GPIO_PIN_4)
# define GPIO_USB0_DIR (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTP | GPIO_PIN_3)
# define GPIO_USB0_EPEN_1 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_11 | GPIO_PORTA | GPIO_PIN_7)
# define GPIO_USB0_EPEN_2 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_5 | GPIO_PORTA | GPIO_PIN_6)
# define GPIO_USB0_EPEN_3 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_5 | GPIO_PORTD | GPIO_PIN_6)
# define GPIO_USB0_ID (GPIO_FUNC_ANINPUT | GPIO_PORTB | GPIO_PIN_0)
# define GPIO_USB0_NXT (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTP | GPIO_PIN_2)
# define GPIO_USB0_PFLT_1 (GPIO_FUNC_PFINPUT | GPIO_ALT_5 | GPIO_PORTA | GPIO_PIN_7)
# define GPIO_USB0_PFLT_2 (GPIO_FUNC_PFINPUT | GPIO_ALT_5 | GPIO_PORTD | GPIO_PIN_7)
# define GPIO_USB0_STP (GPIO_FUNC_PFIO | GPIO_ALT_13 | GPIO_PORTB | GPIO_PIN_2)
# define GPIO_USB0_VBUS (GPIO_FUNC_ANIO | GPIO_PORTB | GPIO_PIN_1)
# define GPIO_RTC_CLK_1 (GPIO_FUNC_PFIO | GPIO_ALT_5 | GPIO_PORTK | GPIO_PIN_7)
# define GPIO_RTC_CLK_2 (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTC | GPIO_PIN_5)
# define GPIO_RTC_CLK_3 (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTP | GPIO_PIN_3)
#else
# error "Unknown TIVA chip"
#endif

View File

@ -528,6 +528,147 @@ VECTOR(tiva_gpiot, TIVA_IRQ_GPIOT) /* Vector 127: GPIO Port T */
UNUSED(TIVA_RESERVED_128) /* Vector 128: Reserved */
UNUSED(TIVA_RESERVED_129) /* Vector 129: Reserved */
# endif /* CONFIG_ARMV7M_CMNVECTOR */
#elif defined(CONFIG_ARCH_CHIP_TM4C1294NC)
/* If the common ARMv7-M vector handling is used, then all it needs is the following
* definition that provides the number of supported vectors.
*/
# ifdef CONFIG_ARMV7M_CMNVECTOR
/* Reserve 130 interrupt table entries for I/O interrupts. */
ARMV7M_PERIPHERAL_INTERRUPTS 130
# else
VECTOR(tiva_gpioa, TIVA_IRQ_GPIOA) /* Vector 16: GPIO Port A */
VECTOR(tiva_gpiob, TIVA_IRQ_GPIOB) /* Vector 17: GPIO Port B */
VECTOR(tiva_gpioc, TIVA_IRQ_GPIOC) /* Vector 18: GPIO Port C */
VECTOR(tiva_gpiod, TIVA_IRQ_GPIOD) /* Vector 19: GPIO Port D */
VECTOR(tiva_gpioe, TIVA_IRQ_GPIOE) /* Vector 20: GPIO Port E */
VECTOR(tiva_uart0, TIVA_IRQ_UART0) /* Vector 21: UART 0 */
VECTOR(tiva_uart1, TIVA_IRQ_UART1) /* Vector 22: UART 1 */
VECTOR(tiva_ssi0, TIVA_IRQ_SSI0) /* Vector 23: SSI 0 */
VECTOR(tiva_i2c0, TIVA_IRQ_I2C0) /* Vector 24: I2C 0 */
VECTOR(tiva_pwm0_fault, TIVA_IRQ_PWM0_FAULT) /* Vector 25: PWM0 Fault */
VECTOR(tiva_pwm0_gen0, TIVA_IRQ_PWM0_GEN0) /* Vector 26: PWM0 Generator 0 */
VECTOR(tiva_pwm0_gen1, TIVA_IRQ_PWM0_GEN1) /* Vector 27: PWM0 Generator 1 */
VECTOR(tiva_pwm0_gen2, TIVA_IRQ_PWM0_GEN2) /* Vector 28: PWM0 Generator 2 */
VECTOR(tiva_qei0, TIVA_IRQ_QEI0) /* Vector 29: QEI0 */
VECTOR(tiva_adc0, TIVA_IRQ_ADC0) /* Vector 30: ADC Sequence 0 */
VECTOR(tiva_adc1, TIVA_IRQ_ADC1) /* Vector 31: ADC Sequence 1 */
VECTOR(tiva_adc2, TIVA_IRQ_ADC2) /* Vector 32: ADC Sequence 2 */
VECTOR(tiva_adc3, TIVA_IRQ_ADC3) /* Vector 33: ADC Sequence 3 */
VECTOR(tiva_wdog, TIVA_IRQ_WDOG) /* Vector 34: Watchdog Timers 0 and 1 */
VECTOR(tiva_timer0a, TIVA_IRQ_TIMER0A) /* Vector 35: 16/32-Bit Timer 0 A */
VECTOR(tiva_timer0b, TIVA_IRQ_TIMER0B) /* Vector 36: 16/32-Bit Timer 0 B */
VECTOR(tiva_timer1a, TIVA_IRQ_TIMER1A) /* Vector 37: 16/32-Bit Timer 1 A */
VECTOR(tiva_timer1b, TIVA_IRQ_TIMER1B) /* Vector 38: 16/32-Bit Timer 1 B */
VECTOR(tiva_timer2a, TIVA_IRQ_TIMER2A) /* Vector 39: 16/32-Bit Timer 2 A */
VECTOR(tiva_timer2b, TIVA_IRQ_TIMER2B) /* Vector 40: 16/32-Bit Timer 2 B */
VECTOR(tiva_compare0, TIVA_IRQ_COMPARE0) /* Vector 41: Analog Comparator 0 */
VECTOR(tiva_compare1, TIVA_IRQ_COMPARE1) /* Vector 42: Analog Comparator 1 */
VECTOR(tiva_compare2, TIVA_IRQ_COMPARE2) /* Vector 43: Analog Comparator 2 */
VECTOR(tiva_syscon, TIVA_IRQ_SYSCON) /* Vector 44: System Control */
VECTOR(tiva_flashcon, TIVA_IRQ_FLASHCON) /* Vector 45: FLASH and EEPROM Control */
VECTOR(tiva_gpiof, TIVA_IRQ_GPIOF) /* Vector 46: GPIO Port F */
VECTOR(tiva_gpiog, TIVA_IRQ_GPIOG) /* Vector 47: GPIO Port G */
VECTOR(tiva_gpioh, TIVA_IRQ_GPIOH) /* Vector 48: GPIO Port H */
VECTOR(tiva_uart2, TIVA_IRQ_UART2) /* Vector 49: UART 2 */
VECTOR(tiva_ssi1, TIVA_IRQ_SSI1) /* Vector 50: SSI 1 */
VECTOR(tiva_timer3a, TIVA_IRQ_TIMER3A) /* Vector 51: 16/32-Bit Timer 3 A */
VECTOR(tiva_timer3b, TIVA_IRQ_TIMER3B) /* Vector 52: 16/32-Bit Timer 3 B */
VECTOR(tiva_i2c1, TIVA_IRQ_I2C1) /* Vector 53: I2C 1 */
VECTOR(tiva_can0, TIVA_IRQ_CAN0) /* Vector 54: CAN 0 */
VECTOR(tiva_can1, TIVA_IRQ_CAN1) /* Vector 55: CAN 1 */
VECTOR(tiva_ethcon, TIVA_IRQ_ETHCON) /* Vector 56: Ethernet MAC */
VECTOR(tiva_hibernate, TIVA_IRQ_HIBERNATE) /* Vector 57: Hibernation Module */
VECTOR(tiva_usb, TIVA_IRQ_USB) /* Vector 58: USB MAC */
VECTOR(tiva_pwm0_gen3, TIVA_IRQ_PWM0_GEN3) /* Vector 59: PWM0 Generator 3 */
VECTOR(tiva_udmasoft, TIVA_IRQ_UDMASOFT) /* Vector 60: uDMA Software */
VECTOR(tiva_udmaerro, TIVA_IRQ_UDMAERROR) /* Vector 61: uDMA Error */
VECTOR(tiva_adc1_0, TIVA_IRQ_ADC1_0) /* Vector 62: ADC1 Sequence 0 */
VECTOR(tiva_adc1_1, TIVA_IRQ_ADC1_1) /* Vector 63: ADC1 Sequence 1 */
VECTOR(tiva_adc1_2, TIVA_IRQ_ADC1_2) /* Vector 64: ADC1 Sequence 2 */
VECTOR(tiva_adc1_3, TIVA_IRQ_ADC1_3) /* Vector 65: ADC1 Sequence 3 */
VECTOR(tiva_epi0, TIVA_IRQ_EPI0) /* Vector 66: ADC1 Sequence 3 */
VECTOR(tiva_gpioj, TIVA_IRQ_GPIOJ) /* Vector 67: GPIO Port J */
VECTOR(tiva_gpiok, TIVA_IRQ_GPIOK) /* Vector 68: GPIO Port K */
VECTOR(tiva_gpiol, TIVA_IRQ_GPIOL) /* Vector 69: GPIO Port L */
VECTOR(tiva_ssi2, TIVA_IRQ_SSI2) /* Vector 70: SSI 2 */
VECTOR(tiva_ssi3, TIVA_IRQ_SSI3) /* Vector 71: SSI 3 */
VECTOR(tiva_uart3, TIVA_IRQ_UART3) /* Vector 72: UART 3 */
VECTOR(tiva_uart4, TIVA_IRQ_UART4) /* Vector 73: UART 4 */
VECTOR(tiva_uart5, TIVA_IRQ_UART5) /* Vector 74: UART 5 */
VECTOR(tiva_uart6, TIVA_IRQ_UART6) /* Vector 75: UART 6 */
VECTOR(tiva_uart7, TIVA_IRQ_UART7) /* Vector 76: UART 7 */
VECTOR(tiva_i2c2, TIVA_IRQ_I2C2) /* Vector 77: I2C 2 */
VECTOR(tiva_i2c3, TIVA_IRQ_I2C3) /* Vector 78: I2C 3 */
VECTOR(tiva_timer4a, TIVA_IRQ_TIMER4A) /* Vector 79: 16/32-Bit Timer 4 A */
VECTOR(tiva_timer4b, TIVA_IRQ_TIMER4B) /* Vector 80: 16/32-Bit Timer 4 B */
VECTOR(tiva_timer5a, TIVA_IRQ_TIMER5A) /* Vector 81: 16/32-Bit Timer 5 A */
VECTOR(tiva_timer5b, TIVA_IRQ_TIMER5B) /* Vector 82: 16/32-Bit Timer 5 B */
VECTOR(tiva_float, TIVA_IRQ_FLOAT) /* Vector 83: Floating point exception */
UNUSED(TIVA_RESERVED_84) /* Vector 84: Reserved */
UNUSED(TIVA_RESERVED_85) /* Vector 85: Reserved */
VECTOR(tiva_i2c4, TIVA_IRQ_I2C4) /* Vector 86: I2C 2 */
VECTOR(tiva_i2c5, TIVA_IRQ_I2C5) /* Vector 87: I2C 3 */
VECTOR(tiva_gpiom, TIVA_IRQ_GPIOM) /* Vector 88: GPIO Port M */
VECTOR(tiva_gpion, TIVA_IRQ_GPION) /* Vector 89: GPIO Port N */
UNUSED(TIVA_RESERVED_90) /* Vector 90: Reserved */
VECTOR(tiva_tamper, TIVA_IRQ_TAMPER) /* Vector 91: Tamper */
VECTOR(tiva_gpiop, TIVA_IRQ_GPIOP) /* Vector 92: GPIO Port P (Summary or P0) */
VECTOR(tiva_gpiop1, TIVA_IRQ_GPIOP1) /* Vector 93: GPIO Port P1 */
VECTOR(tiva_gpiop2, TIVA_IRQ_GPIOP2) /* Vector 94: GPIO Port P2 */
VECTOR(tiva_gpiop3, TIVA_IRQ_GPIOP3) /* Vector 95: GPIO Port P3 */
VECTOR(tiva_gpiop4, TIVA_IRQ_GPIOP4) /* Vector 96: GPIO Port P4 */
VECTOR(tiva_gpiop5, TIVA_IRQ_GPIOP5) /* Vector 97: GPIO Port P5 */
VECTOR(tiva_gpiop6, TIVA_IRQ_GPIOP6) /* Vector 98: GPIO Port P6 */
VECTOR(tiva_gpiop7, TIVA_IRQ_GPIOP7) /* Vector 99: GPIO Port P7 */
VECTOR(tiva_gpioq, TIVA_IRQ_GPIOQ) /* Vector 100: GPIO Port Q (Summary or Q0) */
VECTOR(tiva_gpioq1, TIVA_IRQ_GPIOQ1) /* Vector 101: GPIO Port Q1 */
VECTOR(tiva_gpioq2, TIVA_IRQ_GPIOQ2) /* Vector 102: GPIO Port Q2 */
VECTOR(tiva_gpioq3, TIVA_IRQ_GPIOQ3) /* Vector 103: GPIO Port Q3 */
VECTOR(tiva_gpioq4, TIVA_IRQ_GPIOQ4) /* Vector 104: GPIO Port Q4 */
VECTOR(tiva_gpioq5, TIVA_IRQ_GPIOQ5) /* Vector 105: GPIO Port Q5 */
VECTOR(tiva_gpioq6, TIVA_IRQ_GPIOQ6) /* Vector 106: GPIO Port Q6 */
VECTOR(tiva_gpioq7, TIVA_IRQ_GPIOQ7) /* Vector 107: GPIO Port Q7 */
UNUSED(TIVA_RESERVED_108) /* Vector 108: Reserved */
UNUSED(TIVA_RESERVED_109) /* Vector 109: Reserved */
UNUSED(TIVA_RESERVED_110) /* Vector 110: Reserved */
UNUSED(TIVA_RESERVED_111) /* Vector 111: Reserved */
UNUSED(TIVA_RESERVED_112) /* Vector 112: Reserved */
UNUSED(TIVA_RESERVED_113) /* Vector 113: Reserved */
VECTOR(tiva_timer6a, TIVA_IRQ_TIMER6A) /* Vector 114: 16/32-Bit Timer 6 A */
VECTOR(tiva_timer6b, TIVA_IRQ_TIMER6B) /* Vector 115: 16/32-Bit Timer 6 B */
VECTOR(tiva_timer7a, TIVA_IRQ_TIMER7A) /* Vector 116: 16/32-Bit Timer 7 A */
VECTOR(tiva_timer7b, TIVA_IRQ_TIMER7B) /* Vector 117: 16/32-Bit Timer 7 B */
VECTOR(tiva_i2c6, TIVA_IRQ_I2C6) /* Vector 118: I2C 6 */
VECTOR(tiva_i2c7, TIVA_IRQ_I2C7) /* Vector 119: I2C 7 */
UNUSED(TIVA_RESERVED_120) /* Vector 120: Reserved */
UNUSED(TIVA_RESERVED_121) /* Vector 121: Reserved */
UNUSED(TIVA_RESERVED_122) /* Vector 122: Reserved */
UNUSED(TIVA_RESERVED_123) /* Vector 123: Reserved */
UNUSED(TIVA_RESERVED_124) /* Vector 124: Reserved */
VECTOR(tiva_i2c8, TIVA_IRQ_I2C8) /* Vector 125: I2C 8 */
VECTOR(tiva_i2c9, TIVA_IRQ_I2C9) /* Vector 126: I2C 9 */
UNUSED(TIVA_RESERVED_127) /* Vector 127: Reserved */
UNUSED(TIVA_RESERVED_128) /* Vector 128: Reserved */
UNUSED(TIVA_RESERVED_129) /* Vector 129: Reserved */
# endif /* CONFIG_ARMV7M_CMNVECTOR */
#else
# error "Vectors not known for this Tiva chip"

View File

@ -851,6 +851,14 @@ config ARCH_BOARD_TM4C123G_LAUNCHPAD
---help---
Tiva TM4C123G LaunchPad.
config ARCH_BOARD_TM4C1294_LAUNCHPAD
bool "Tiva EK-TM4C1294XL LaunchPad"
depends on ARCH_CHIP_TM4C1294NC
select ARCH_HAVE_LEDS
select ARCH_HAVE_BUTTONS
---help---
Tiva EK-TM4C1294XL LaunchPad.
config ARCH_BOARD_CC3200_LAUNCHPAD
bool "Tiva CC3200 Launchpad"
depends on ARCH_CHIP_CC3200
@ -1123,6 +1131,7 @@ config ARCH_BOARD
default "sure-pic32mx" if ARCH_BOARD_SUREPIC32MX
default "teensy" if ARCH_BOARD_TEENSY
default "tm4c123g-launchpad" if ARCH_BOARD_TM4C123G_LAUNCHPAD
default "tm4c1294-launchpad" if ARCH_BOARD_TM4C1294_LAUNCHPAD
default "cc3200-launchpad" if ARCH_BOARD_CC3200_LAUNCHPAD
default "twr-k60n512" if ARCH_BOARD_TWR_K60N512
default "ubw32" if ARCH_BOARD_UBW32

View File

@ -995,7 +995,7 @@ Where <subdir> is one of the following:
and Telnet again works from the host:
telent 10.0.0.2
telnet 10.0.0.2
3. You can enable IPv6 autonomous address configuration with the
following changes to the configuration:

View File

@ -6,7 +6,7 @@
source [find interface/ti-icdi.cfg]
set WORKAREASIZE 0x40000 # RAM size
set WORKAREASIZE 0x40000
set CHIPNAME tm4c129xnczad
source [find target/stellaris_icdi.cfg]

View File

@ -0,0 +1,75 @@
#
# For a description of the syntax of this configuration file,
# see misc/tools/kconfig-language.txt.
#
if ARCH_BOARD_TM4C1294_LAUNCHPAD
if TIMER && TIVA_TIMER32_PERIODIC
config TM4C1294_LAUNCHPAD_TIMER
bool
default n
choice
prompt "Timer driver selection"
default TM4C1294_LAUNCHPAD_TIMER_NONE
config TM4C1294_LAUNCHPAD_TIMER_NONE
bool "None"
config TM4C1294_LAUNCHPAD_TIMER0
bool "Timer 0"
depends on TIVA_TIMER0
select TM4C1294_LAUNCHPAD_TIMER
config TM4C1294_LAUNCHPAD_TIMER1
bool "Timer 1"
depends on TIVA_TIMER1
select TM4C1294_LAUNCHPAD_TIMER
config TM4C1294_LAUNCHPAD_TIMER2
bool "Timer 2"
depends on TIVA_TIMER2
select TM4C1294_LAUNCHPAD_TIMER
config TM4C1294_LAUNCHPAD_TIMER3
bool "Timer 3"
depends on TIVA_TIMER3
select TM4C1294_LAUNCHPAD_TIMER
config TM4C1294_LAUNCHPAD_TIMER4
bool "Timer 4"
depends on TIVA_TIMER4
select TM4C1294_LAUNCHPAD_TIMER
config TM4C1294_LAUNCHPAD_TIMER5
bool "Timer 5"
depends on TIVA_TIMER5
select TM4C1294_LAUNCHPAD_TIMER
config TM4C1294_LAUNCHPAD_TIMER6
bool "Timer 6"
depends on TIVA_TIMER6
select TM4C1294_LAUNCHPAD_TIMER
config TM4C1294_LAUNCHPAD_TIMER7
bool "Timer 7"
depends on TIVA_TIMER7
select TM4C1294_LAUNCHPAD_TIMER
endchoice # Timer driver selection
if TM4C1294_LAUNCHPAD_TIMER
config TM4C1294_LAUNCHPAD_TIMER_DEVNAME
string "Timer device name"
default "/dev/timer0"
config TM4C1294_LAUNCHPAD_TIMER_ALTCLK
bool "Use alternate clock source"
default n
depends on EXPERIMENTAL
endif # TM4C1294_LAUNCHPAD_TIMER
endif # TIVA_TIMER32_PERIODIC
endif # ARCH_BOARD_TM4C1294_LAUNCHPAD

View File

@ -0,0 +1,298 @@
/************************************************************************************
* configs/tm4c1294-launchpad/include/board.h
*
* Copyright (C) 2014 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name NuttX nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
************************************************************************************/
#ifndef __CONFIGS_TM4C1294_LAUNCHPAD_INCLUDE_BOARD_H
#define __CONFIGS_TM4C1294_LAUNCHPAD_INCLUDE_BOARD_H
/************************************************************************************
* Included Files
************************************************************************************/
#ifndef __ASSEMBLY__
# include <stdbool.h>
#endif
/************************************************************************************
* Pre-processor Definitions
************************************************************************************/
/* Clocking *************************************************************************/
/* Crystals on-board the EK-TM4C1294XL include:
*
* 1. 25.0MHz (Y2) is connected to OSC0/1 pins and is used as the run mode input to
* the PLL.
* 2. 32.768kHz (Y3) connected to XOSC0/1 and clocks the hibernation module.
*/
#define SYSCON_RCC_XTAL SYSCON_RCC_XTAL16000KHZ /* On-board crystal is 25 MHz */
#define XTAL_FREQUENCY 25000000
/* Frequencies of other clock sources */
#define PIOSC_FREQUENCY 16000000 /* Precision internal oscillator */
#define RTCOSC_FREQUENCY 32768 /* Hibernation Module RTC Oscillator */
#define LFIOSC_FREQUENCY 33000 /* Low frequency internal oscillator */
/* The PLL generates Fvco according to the following formulae. The input clock to
* the PLL may be either the external crystal (Fxtal) or PIOSC (Fpiosc). This
* logic supports only the external crystal as the PLL source clock.
*
* Fin = Fxtal / (Q + 1 )(N + 1) -OR- Fpiosc / (Q + 1)(N + 1)
* Mdiv = Mint + (MFrac / 1024)
* Fvco = Fin * Mdiv
*
* Where the register fields Q and N actually hold (Q-1) and (N-1). The following
* setup then generates Fvco = 480MHz:
*
* Fin = 25 MHz / 1 / 5 = 5 MHz
* Mdiv = 96
* Fvco = 480
*/
#define BOARD_PLL_MINT 96 /* Integer part of PLL M value */
#define BOARD_PLL_MFRAC 0 /* Fractional part of PLL M value */
#define BOARD_PLL_N 5 /* PLL N value */
#define BOARD_PLL_Q 1 /* PLL Q value */
#define BOARD_FVCO_FREQUENCY 480000000 /* Resulting Fvco */
/* When the PLL is active, the system clock frequency (SysClk) is calculated using
* the following equation:
*
* SysClk = Fvco/ (sysdiv + 1)
*
* The following setup generates Sysclk = 120MHz:
*/
#define BOARD_PLL_SYSDIV 4 /* Sysclk = Fvco / 4 = 120MHz */
#define SYSCLK_FREQUENCY 120000000 /* Resulting SysClk frequency */
/* Alternate Clock (ALTCLK)
*
* The ALTCLK provides a clock source of numerous frequencies to the general-purpose
* timer, SSI, and UART modules. The default source for the ALTCLK is the Precision
* Internal Oscillator (PIOSC). The Hibernation Real-time Clock (RTCOSC) and Low
* Frequency Internal Oscillator (LFIOSC) are alternatives. If the RTCOSC Output is
* selected, the clock source must also be enabled in the Hibernation module.
*/
#define BOARD_ALTCLKCFG SYSCON_ALTCLKCFG_ALTCLK_PIOSC
#define ALTCLK_FREQUENCY PIOSC_FREQUENCY
/* LED definitions ******************************************************************/
/* The EK-TM4C1294XL has a four green LEDs.
*
* --- ------------
* Pin Pin Function
* --- ------------
* PN1 Green LED D1
* PN0 Green LED D2
* PF4 Green LED D3
* PF0 Green LED D4
* --- ------------
*/
/* LED index values for use with tiva_setled() */
#define BOARD_LED_D1 0
#define BOARD_LED_D2 1
#define BOARD_LED_D3 2
#define BOARD_LED_D4 3
#define BOARD_NLEDS 4
/* LED bits for use with tiva_setleds() */
#define BOARD_LED_D1_BIT (1 << BOARD_LED_D1)
#define BOARD_LED_D2_BIT (1 << BOARD_LED_D2)
#define BOARD_LED_D3_BIT (1 << BOARD_LED_D3)
#define BOARD_LED_D4_BIT (1 << BOARD_LED_D4)
/* If CONFIG_ARCH_LEDS is defined, then automated support for the EK-TM4C1294XL LED
* will be included in the build:
*/
/* LED1 LED1 LED2 LED3 */
#define LED_STARTED 0 /* OFF OFF ON OFF */
#define LED_HEAPALLOCATE 1 /* NC NC NC OFF */
#define LED_IRQSENABLED 1 /* NC NC NC OFF */
#define LED_STACKCREATED 2 /* OFF ON OFF OFF */
#define LED_INIRQ 1 /* NC NC NC OFF */
#define LED_SIGNAL 1 /* NC NC NC OFF */
#define LED_ASSERTION 1 /* NC NC NC OFF */
#define LED_PANIC 3 /* ON OFF OFF OFF (flashing 2Hz) */
/* Button definitions ***************************************************************/
/* There are four push buttons on the board. Two of them are user controllable.
* The others are RESET and WAKE
*
* --- ------------
* Pin Pin Function
* --- ------------
* PJ0 USR_SW1
* PJ1 USR_SW2
* --- ------------
*/
#define BUTTON_SW1 0
#define BUTTON_SW2 1
#define NUM_BUTTONS 2
#define BUTTON_SW1_BIT (1 << BUTTON_SW1)
#define BUTTON_SW2_BIT (1 << BUTTON_SW2)
/* Pin Multiplexing Disambiguation **************************************************/
/* UARTs
*
* UART0: PA0-1 (fixed configuration)
* UART3: PJ0-1 to EM_TX/EM_RX or BOOSTER_PACK2_RX/BOOSTER_PACK2_TX(Depending
* on J12/J13)
* UART5: PH6-7 to BOOSTER_PACK1_RX/BOOSTER_PACK1_TX
*/
#define GPIO_UART3_RX GPIO_UART3_RX_2
#define GPIO_UART3_TX GPIO_UART3_TX_2
#define GPIO_UART5_RX GPIO_UART5_RX_2
#define GPIO_UART5_TX GPIO_UART5_TX_2
/* SSI:
*
* SSI0: PA2-5 are used for SSI0 to the second booster pack (fixed configuration)
* SSI3: PF0/PF4-5/PH4/PQ0-2 are used for the SPI flash (on-board and SD card).
* PH4 selects the SD card and PQ1 selects the on-board SPI flash.
*/
#define GPIO_SSI3_CLK GPIO_SSI3_CLK_2
#define GPIO_SSI3_FSS GPIO_SSI3_FSS_2
#define GPIO_SSI3_XDAT0 GPIO_SSI3_XDAT0_2
#define GPIO_SSI3_XDAT1 GPIO_SSI3_XDAT1_1
#define GPIO_SSI3_XDAT2 GPIO_SSI3_XDAT2_1
#define GPIO_SSI3_XDAT3 GPIO_SSI3_XDAT3_1
/* I2C:
*
* I2C3: PG4-5 are provide to the BoostPack 1 interface
* I2C7: PA4-5 are provide to the BoostPack 2 interface
* I2C6: PB6-7 are used for I2C to the TMP100 and the EM connector.
* J18 and J20 must be closed to connect the TMP100.
* I2C address is 0x4A
*/
#define GPIO_I2C3_SCL GPIO_I2C3_SCL_1
#define GPIO_I2C3_SDA GPIO_I2C3_SDA_1
#define GPIO_I2C7_SCL GPIO_I2C7_SCL_1
#define GPIO_I2C7_SDA GPIO_I2C7_SDA_1
#define GPIO_I2C6_SCL GPIO_I2C6_SCL_2
#define GPIO_I2C6_SDA GPIO_I2C6_SDA_2
/* USB:
*
* PB0-1/PD6-7/PL6-7 are used for USB (Only PD6-7 are not fixed configuration)
*/
#define GPIO_USB0_EPEN GPIO_USB0_EPEN_3
#define GPIO_USB0_PFLT GPIO_USB0_PFLT_2
/* Ethernet LEDs
*
* PF1/PK4/PK6 are used for Ethernet LEDs.
* PK4/EN0RXD3/LED0
* PK6/EN0TXD2/LED1
* PF1/LED2
*/
# define GPIO_EN0_LED0 GPIO_EN0_LED0_2
# define GPIO_EN0_LED1 GPIO_EN0_LED1_2
# define GPIO_EN0_LED2 GPIO_EN0_LED2_1
/* LCD
*
* PF6-7/PJ6/PS4-5/PR0-7 are used for the LCD (fixed configuration).
*/
/************************************************************************************
* Public Function Prototypes
************************************************************************************/
#ifndef __ASSEMBLY__
/************************************************************************************
* Name: tiva_boardinitialize
*
* Description:
* All Tiva architectures must provide the following entry point. This entry
* point is called early in the initialization -- after all memory has been
* configured and mapped but before any devices have been initialized.
*
************************************************************************************/
void tiva_boardinitialize(void);
/************************************************************************************
* Name: tiva_ledinit, tiva_setled, and tiva_setleds
*
* Description:
* If CONFIG_ARCH_LEDS is defined, then NuttX will control the on-board LED. If
* CONFIG_ARCH_LEDS is not defined, then the following interfaces are available to
* control the LEDs from user applications.
*
************************************************************************************/
#ifndef CONFIG_ARCH_LEDS
void tiva_ledinit(void);
void tiva_setled(int led, bool ledon);
void tiva_setleds(uint8_t ledset);
#endif
/************************************************************************************
* Name: tiva_tmp100_initialize
*
* Description:
* Initialize and register the TMP-100 Temperature Sensor driver.
*
* Input parameters:
* devpath - The full path to the driver to register. E.g., "/dev/temp0"
*
* Returned Value:
* Zero (OK) on success; a negated errno value on failure.
*
************************************************************************************/
#if defined(CONFIG_I2C) && defined(CONFIG_I2C_LM75) && defined(CONFIG_TIVA_I2C6)
int tiva_tmp100_initialize(FAR const char *devpath);
#endif
#endif /* __ASSEMBLY__ */
#endif /* __CONFIGS_TM4C1294_LAUNCHPAD_INCLUDE_BOARD_H */

View File

@ -0,0 +1,110 @@
############################################################################
# configs/dk-tm4c129x/ipv6/Make.defs
#
# Copyright (C) 2015 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <gnutt@nuttx.org>
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in
# the documentation and/or other materials provided with the
# distribution.
# 3. Neither the name NuttX nor the names of its contributors may be
# used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
############################################################################
include ${TOPDIR}/.config
include ${TOPDIR}/tools/Config.mk
include ${TOPDIR}/arch/arm/src/armv7-m/Toolchain.defs
ifeq ($(WINTOOL),y)
# Windows-native toolchains
DIRLINK = $(TOPDIR)/tools/copydir.sh
DIRUNLINK = $(TOPDIR)/tools/unlink.sh
MKDEP = $(TOPDIR)/tools/mknulldeps.sh
ARCHINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}"
ARCHXXINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" -isystem "${shell cygpath -w $(TOPDIR)/include/cxx}"
ARCHSCRIPT = -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/ld.script}"
else
# Linux/Cygwin-native toolchain
MKDEP = $(TOPDIR)/tools/mkdeps.sh
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
ARCHSCRIPT = -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/ld.script
endif
CC = $(CROSSDEV)gcc
CXX = $(CROSSDEV)g++
CPP = $(CROSSDEV)gcc -E
LD = $(CROSSDEV)ld
AR = $(CROSSDEV)ar rcs
NM = $(CROSSDEV)nm
OBJCOPY = $(CROSSDEV)objcopy
OBJDUMP = $(CROSSDEV)objdump
ARCHCCVERSION = ${shell $(CC) -v 2>&1 | sed -n '/^gcc version/p' | sed -e 's/^gcc version \([0-9\.]\)/\1/g' -e 's/[-\ ].*//g' -e '1q'}
ARCHCCMAJOR = ${shell echo $(ARCHCCVERSION) | cut -d'.' -f1}
ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
ARCHOPTIMIZATION = -g
endif
ifneq ($(CONFIG_DEBUG_NOOPT),y)
ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing -fno-strength-reduce -fomit-frame-pointer
endif
ARCHCFLAGS = -fno-builtin
ARCHCXXFLAGS = -fno-builtin -fno-exceptions
ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow
ARCHWARNINGSXX = -Wall -Wshadow
ARCHDEFINES =
ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
CFLAGS = $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe
CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS)
CXXFLAGS = $(ARCHCXXFLAGS) $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe
CXXPICFLAGS = $(ARCHPICFLAGS) $(CXXFLAGS)
CPPFLAGS = $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES)
AFLAGS = $(CFLAGS) -D__ASSEMBLY__
NXFLATLDFLAGS1 = -r -d -warn-common
NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T$(TOPDIR)/binfmt/libnxflat/gnu-nxflat-pcrel.ld -no-check-sections
LDNXFLATFLAGS = -e main -s 2048
OBJEXT = .o
LIBEXT = .a
EXEEXT =
ifneq ($(CROSSDEV),arm-nuttx-elf-)
LDFLAGS += -nostartfiles -nodefaultlibs
endif
ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
LDFLAGS += -g
endif
HOSTCC = gcc
HOSTINCLUDES = -I.
HOSTCFLAGS = -Wall -Wstrict-prototypes -Wshadow -g -pipe
HOSTLDFLAGS =

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,75 @@
#!/bin/bash
# configs/tm4c1294-launchpad/ipv6/setenv.sh
#
# Copyright (C) 2015 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <gnutt@nuttx.org>
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in
# the documentation and/or other materials provided with the
# distribution.
# 3. Neither the name NuttX nor the names of its contributors may be
# used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
if [ "$_" = "$0" ] ; then
echo "You must source this script, not run it!" 1>&2
exit 1
fi
WD=`pwd`
if [ ! -x "setenv.sh" ]; then
echo "This script must be executed from the top-level NuttX build directory"
exit 1
fi
if [ -z "${PATH_ORIG}" ]; then
export PATH_ORIG="${PATH}"
fi
# This is the Cygwin path to the location where I installed the CodeSourcery
# toolchain under windows. You will also have to edit this if you install
# the CodeSourcery toolchain in any other location
#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery G++ Lite/bin"
export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI/bin"
#export TOOLCHAIN_BIN="/cygdrive/c/Users/MyName/MentorGraphics/Sourcery_CodeBench_Lite_for_ARM_EABI/bin"
# These are the Cygwin paths to the locations where I installed the Atollic
# toolchain under windows. You will also have to edit this if you install
# the Atollic toolchain in any other location. /usr/bin is added before
# the Atollic bin path because there is are binaries named gcc.exe and g++.exe
# at those locations as well.
#export TOOLCHAIN_BIN="/usr/bin:/cygdrive/c/Program Files (x86)/Atollic/TrueSTUDIO for ARM Pro 2.3.0/ARMTools/bin"
#export TOOLCHAIN_BIN="/usr/bin:/cygdrive/c/Program Files (x86)/Atollic/TrueSTUDIO for STMicroelectronics STM32 Lite 2.3.0/ARMTools/bin"
# This is the Cygwin path to the location where I build the buildroot
# toolchain.
# export TOOLCHAIN_BIN="${WD}/../misc/buildroot/build_arm_nofpu/staging_dir/bin"
# The tm4c1294-launchpad/tools directory
export TOOL_DIR="${WD}/configs/tm4c1294-launchpad/tools"
# Add the path to the toolchain and tools directory to the PATH varialble
export PATH="${TOOLCHAIN_BIN}:${TOOL_DIR}:/sbin:/usr/sbin:${PATH_ORIG}"
echo "PATH : ${PATH}"

View File

@ -0,0 +1,110 @@
############################################################################
# configs/tm4c1294-launchpad/nsh/Make.defs
#
# Copyright (C) 2014 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <gnutt@nuttx.org>
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in
# the documentation and/or other materials provided with the
# distribution.
# 3. Neither the name NuttX nor the names of its contributors may be
# used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
############################################################################
include ${TOPDIR}/.config
include ${TOPDIR}/tools/Config.mk
include ${TOPDIR}/arch/arm/src/armv7-m/Toolchain.defs
ifeq ($(WINTOOL),y)
# Windows-native toolchains
DIRLINK = $(TOPDIR)/tools/copydir.sh
DIRUNLINK = $(TOPDIR)/tools/unlink.sh
MKDEP = $(TOPDIR)/tools/mknulldeps.sh
ARCHINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}"
ARCHXXINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" -isystem "${shell cygpath -w $(TOPDIR)/include/cxx}"
ARCHSCRIPT = -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/ld.script}"
else
# Linux/Cygwin-native toolchain
MKDEP = $(TOPDIR)/tools/mkdeps.sh
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
ARCHSCRIPT = -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/ld.script
endif
CC = $(CROSSDEV)gcc
CXX = $(CROSSDEV)g++
CPP = $(CROSSDEV)gcc -E
LD = $(CROSSDEV)ld
AR = $(CROSSDEV)ar rcs
NM = $(CROSSDEV)nm
OBJCOPY = $(CROSSDEV)objcopy
OBJDUMP = $(CROSSDEV)objdump
ARCHCCVERSION = ${shell $(CC) -v 2>&1 | sed -n '/^gcc version/p' | sed -e 's/^gcc version \([0-9\.]\)/\1/g' -e 's/[-\ ].*//g' -e '1q'}
ARCHCCMAJOR = ${shell echo $(ARCHCCVERSION) | cut -d'.' -f1}
ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
ARCHOPTIMIZATION = -g
endif
ifneq ($(CONFIG_DEBUG_NOOPT),y)
ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing -fno-strength-reduce -fomit-frame-pointer
endif
ARCHCFLAGS = -fno-builtin
ARCHCXXFLAGS = -fno-builtin -fno-exceptions
ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow
ARCHWARNINGSXX = -Wall -Wshadow
ARCHDEFINES =
ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
CFLAGS = $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe
CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS)
CXXFLAGS = $(ARCHCXXFLAGS) $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe
CXXPICFLAGS = $(ARCHPICFLAGS) $(CXXFLAGS)
CPPFLAGS = $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES)
AFLAGS = $(CFLAGS) -D__ASSEMBLY__
NXFLATLDFLAGS1 = -r -d -warn-common
NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T$(TOPDIR)/binfmt/libnxflat/gnu-nxflat-pcrel.ld -no-check-sections
LDNXFLATFLAGS = -e main -s 2048
OBJEXT = .o
LIBEXT = .a
EXEEXT =
ifneq ($(CROSSDEV),arm-nuttx-elf-)
LDFLAGS += -nostartfiles -nodefaultlibs
endif
ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
LDFLAGS += -g
endif
HOSTCC = gcc
HOSTINCLUDES = -I.
HOSTCFLAGS = -Wall -Wstrict-prototypes -Wshadow -g -pipe
HOSTLDFLAGS =

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,75 @@
#!/bin/bash
# configs/tm4c1294-launchpad/nsh/setenv.sh
#
# Copyright (C) 2014 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <gnutt@nuttx.org>
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in
# the documentation and/or other materials provided with the
# distribution.
# 3. Neither the name NuttX nor the names of its contributors may be
# used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
if [ "$_" = "$0" ] ; then
echo "You must source this script, not run it!" 1>&2
exit 1
fi
WD=`pwd`
if [ ! -x "setenv.sh" ]; then
echo "This script must be executed from the top-level NuttX build directory"
exit 1
fi
if [ -z "${PATH_ORIG}" ]; then
export PATH_ORIG="${PATH}"
fi
# This is the Cygwin path to the location where I installed the CodeSourcery
# toolchain under windows. You will also have to edit this if you install
# the CodeSourcery toolchain in any other location
#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery G++ Lite/bin"
export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI/bin"
#export TOOLCHAIN_BIN="/cygdrive/c/Users/MyName/MentorGraphics/Sourcery_CodeBench_Lite_for_ARM_EABI/bin"
# These are the Cygwin paths to the locations where I installed the Atollic
# toolchain under windows. You will also have to edit this if you install
# the Atollic toolchain in any other location. /usr/bin is added before
# the Atollic bin path because there is are binaries named gcc.exe and g++.exe
# at those locations as well.
#export TOOLCHAIN_BIN="/usr/bin:/cygdrive/c/Program Files (x86)/Atollic/TrueSTUDIO for ARM Pro 2.3.0/ARMTools/bin"
#export TOOLCHAIN_BIN="/usr/bin:/cygdrive/c/Program Files (x86)/Atollic/TrueSTUDIO for STMicroelectronics STM32 Lite 2.3.0/ARMTools/bin"
# This is the Cygwin path to the location where I build the buildroot
# toolchain.
# export TOOLCHAIN_BIN="${WD}/../misc/buildroot/build_arm_nofpu/staging_dir/bin"
# The tm4c1294-launchpad/tools directory
export TOOL_DIR="${WD}/configs/tm4c1294-launchpad/tools"
# Add the path to the toolchain and tools directory to the PATH varialble
export PATH="${TOOLCHAIN_BIN}:${TOOL_DIR}:/sbin:/usr/sbin:${PATH_ORIG}"
echo "PATH : ${PATH}"

View File

@ -0,0 +1,115 @@
/****************************************************************************
* configs/tm4c1294-launchpad/scripts/ld.script
*
* Copyright (C) 2014 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name NuttX nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
****************************************************************************/
/* The TM4C1294NCPDT has 1024Kib of FLASH beginning at address 0x0000:0000 and
* 256Kib of SRAM beginning at 0x2000:0000.
*/
MEMORY
{
flash (rx) : ORIGIN = 0x00000000, LENGTH = 1M
sram (rwx) : ORIGIN = 0x20000000, LENGTH = 256K
}
OUTPUT_ARCH(arm)
ENTRY(_stext)
SECTIONS
{
.text : {
_stext = ABSOLUTE(.);
*(.vectors)
*(.text .text.*)
*(.fixup)
*(.gnu.warning)
*(.rodata .rodata.*)
*(.gnu.linkonce.t.*)
*(.glue_7)
*(.glue_7t)
*(.got)
*(.gcc_except_table)
*(.gnu.linkonce.r.*)
_etext = ABSOLUTE(.);
} > flash
.init_section : {
_sinit = ABSOLUTE(.);
*(.init_array .init_array.*)
_einit = ABSOLUTE(.);
} > flash
.ARM.extab : {
*(.ARM.extab*)
} > flash
__exidx_start = ABSOLUTE(.);
.ARM.exidx : {
*(.ARM.exidx*)
} > flash
__exidx_end = ABSOLUTE(.);
_eronly = ABSOLUTE(.);
.data : {
_sdata = ABSOLUTE(.);
*(.data .data.*)
*(.gnu.linkonce.d.*)
CONSTRUCTORS
_edata = ABSOLUTE(.);
} > sram AT > flash
.bss : {
_sbss = ABSOLUTE(.);
*(.bss .bss.*)
*(.gnu.linkonce.b.*)
*(COMMON)
_ebss = ABSOLUTE(.);
} > sram
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_info 0 : { *(.debug_info) }
.debug_line 0 : { *(.debug_line) }
.debug_pubnames 0 : { *(.debug_pubnames) }
.debug_aranges 0 : { *(.debug_aranges) }
}

View File

@ -0,0 +1,2 @@
/.depend
/Make.dep

View File

@ -0,0 +1,111 @@
############################################################################
# configs/dk-tm4c129x/src/Makefile
#
# Copyright (C) 2014 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <gnutt@nuttx.org>
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in
# the documentation and/or other materials provided with the
# distribution.
# 3. Neither the name NuttX nor the names of its contributors may be
# used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
############################################################################
-include $(TOPDIR)/Make.defs
CFLAGS += -I$(TOPDIR)/sched
ASRCS =
AOBJS = $(ASRCS:.S=$(OBJEXT))
CSRCS = tm4c_boot.c tm4c_bringup.c tm4c_ssi.c
ifeq ($(CONFIG_ARCH_LEDS),y)
CSRCS += tm4c_autoleds.c
else
CSRCS += tm4c_userleds.c
endif
ifeq ($(CONFIG_ARCH_BUTTONS),y)
CSRCS += tm4c_buttons.c
endif
ifeq ($(CONFIG_TIVA_ETHERNET),y)
CSRCS += tm4c_ethernet.c
endif
ifeq ($(CONFIG_DK_TM4C129X_TIMER),y)
CSRCS += tm4c_timer.c
endif
ifeq ($(CONFIG_NSH_ARCHINIT),y)
CSRCS += tm4c_nsh.c
endif
ifeq ($(CONFIG_I2C_LM75),y)
ifeq ($(CONFIG_TIVA_I2C6),y)
CSRCS += tm4c_tmp100.c
endif
endif
COBJS = $(CSRCS:.c=$(OBJEXT))
SRCS = $(ASRCS) $(CSRCS)
OBJS = $(AOBJS) $(COBJS)
ARCH_SRCDIR = $(TOPDIR)/arch/$(CONFIG_ARCH)/src
ifeq ($(WINTOOL),y)
CFLAGS += -I "${shell cygpath -w $(ARCH_SRCDIR)/chip}" \
-I "${shell cygpath -w $(ARCH_SRCDIR)/common}" \
-I "${shell cygpath -w $(ARCH_SRCDIR)/armv7-m}"
else
CFLAGS += -I$(ARCH_SRCDIR)/chip -I$(ARCH_SRCDIR)/common -I$(ARCH_SRCDIR)/armv7-m
endif
all: libboard$(LIBEXT)
$(AOBJS): %$(OBJEXT): %.S
$(call ASSEMBLE, $<, $@)
$(COBJS) $(LINKOBJS): %$(OBJEXT): %.c
$(call COMPILE, $<, $@)
libboard$(LIBEXT): $(OBJS)
$(call ARCHIVE, $@, $(OBJS))
.depend: Makefile $(SRCS)
$(Q) $(MKDEP) $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
$(Q) touch $@
depend: .depend
clean:
$(call DELFILE, libboard$(LIBEXT))
$(call CLEAN)
distclean: clean
$(call DELFILE, Make.dep)
$(call DELFILE, .depend)
-include Make.dep

View File

@ -0,0 +1,180 @@
/************************************************************************************
* configs/tm4c1294-launchpad/src/ek-tm4c1294xl.h
*
* Copyright (C) 2014 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name NuttX nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
************************************************************************************/
#ifndef __CONFIGS_TM4C1294_LAUNCHPAD_TM4C1294_LAUNCHPAD_H
#define __CONFIGS_TM4C1294_LAUNCHPAD_TM4C1294_LAUNCHPAD_H
/************************************************************************************
* Included Files
************************************************************************************/
#include <nuttx/config.h>
#include <nuttx/compiler.h>
#include "chip.h"
#include "tiva_gpio.h"
/************************************************************************************
* Pre-processor Definitions
************************************************************************************/
/* Configuration ********************************************************************/
/* How many SSI modules does this chip support? */
#if TIVA_NSSI < 1
# undef CONFIG_TIVA_SSI0
# undef CONFIG_TIVA_SSI0
#elif TIVA_NSSI < 2
# undef CONFIG_TIVA_SSI0
#endif
/* LED definitions ******************************************************************/
/* The EK-TM4C1294XL has a four green LEDs.
*
* --- ------------
* Pin Pin Function
* --- ------------
* PN1 Green LED D1
* PN0 Green LED D2
* PF4 Green LED D3
* PF0 Green LED D4
* --- ------------
*
* A high output illuminates the LED.
*/
#define GPIO_LED_D1 (GPIO_FUNC_OUTPUT | GPIO_VALUE_ZERO | GPIO_PORTN | GPIO_PIN_1)
#define GPIO_LED_D2 (GPIO_FUNC_OUTPUT | GPIO_VALUE_ZERO | GPIO_PORTN | GPIO_PIN_0)
#define GPIO_LED_D3 (GPIO_FUNC_OUTPUT | GPIO_VALUE_ZERO | GPIO_PORTF | GPIO_PIN_4)
#define GPIO_LED_D4 (GPIO_FUNC_OUTPUT | GPIO_VALUE_ZERO | GPIO_PORTF | GPIO_PIN_0)
/* Button definitions ***************************************************************/
/* There are four push buttons on the board. Two of them are user controllable.
* The others are RESET and WAKE
*
* --- ------------
* Pin Pin Function
* --- ------------
* PJ0 USR_SW1
* PJ1 USR_SW2
* --- ------------
*/
#define GPIO_SW1 (GPIO_FUNC_INPUT | GPIO_PORTJ | GPIO_PIN_0)
#define GPIO_SW2 (GPIO_FUNC_INPUT | GPIO_PORTJ | GPIO_PIN_1)
/* SPI Chip selects ****************************************************************/
/* SSI0: PA3 is used for SSI0 chip select to the second booster pack (No pull-
* ups)
* SSI3: PH4 selects the SD card and PQ1 selects the on-board SPI flash. Both
* pulled up on board.
*/
#define GPIO_BSTR2_CS (GPIO_FUNC_OUTPUT | GPIO_PADTYPE_STDWPU | GPIO_STRENGTH_4MA | \
GPIO_VALUE_ONE | GPIO_PORTA | GPIO_PIN_3)
#define GPIO_FLASH_CS (GPIO_FUNC_OUTPUT | GPIO_PADTYPE_STD | GPIO_STRENGTH_4MA | \
GPIO_VALUE_ONE | GPIO_PORTH | GPIO_PIN_4)
#define GPIO_SD_CS (GPIO_FUNC_OUTPUT | GPIO_PADTYPE_STD | GPIO_STRENGTH_4MA | \
GPIO_VALUE_ONE | GPIO_PORTH | GPIO_PIN_4)
/* I2C *****************************************************************************/
/* I2C3: PG4-5 are provide to the BoostPack 1 interface
* I2C7: PA4-5 are provide to the BoostPack 2 interface
* I2C6: PB6-7 are used for I2C to the TMP100 and the EM connector.
* J18 and J20 must be closed to connect the TMP100.
* I2C address is 0x4A
*/
#define TMP100_I2CBUS 6
#define TMP100_I2CADDR 0x4a
/* Speaker outputs *****************************************************************/
/* PB2/PD4 are used for the speaker output */
/* Touchscreen *********************************************************************/
/* PE7/PP7/PT2-3 are used for the touch screen */
/************************************************************************************
* Public Functions
************************************************************************************/
#ifndef __ASSEMBLY__
/************************************************************************************
* Name: tm4c_ssiinitialize
*
* Description:
* Called to configure SPI chip select GPIO pins for the EK-TM4C1294XL.
*
************************************************************************************/
void weak_function tm4c_ssiinitialize(void);
/****************************************************************************
* Name: tm4c_ledinit
*
* Description:
* Called to initialize the on-board LEDs.
*
****************************************************************************/
#ifdef CONFIG_ARCH_LEDS
void tm4c_ledinit(void);
#endif
/****************************************************************************
* Name: tm4c_bringup
*
* Description:
* Bring up board features
*
****************************************************************************/
int tm4c_bringup(void);
/****************************************************************************
* Name: tiva_timer_initialize
*
* Description:
* Configure the timer driver
*
****************************************************************************/
#ifdef CONFIG_TM4C1294_LAUNCHPAD_TIMER
int tiva_timer_initialize(void);
#endif
#endif /* __ASSEMBLY__ */
#endif /* __CONFIGS_TM4C1294_LAUNCHPAD_TM4C1294_LAUNCHPAD_H */

View File

@ -0,0 +1,161 @@
/****************************************************************************
* configs/tm4c1294-launchpad/src/tm4c_autoleds.c
*
* Copyright (C) 2014 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name NuttX nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
****************************************************************************/
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#include <debug.h>
#include <arch/board/board.h>
#include "tiva_gpio.h"
#include "tm4c1294-launchpad.h"
/****************************************************************************
* Public Functions
****************************************************************************/
/****************************************************************************
* Name: tm4c_ledinit
*
* Description:
* Called to initialize the on-board LEDs.
*
****************************************************************************/
#ifdef CONFIG_ARCH_LEDS
void tm4c_ledinit(void)
{
/* Configure LED PIOs for output */
// FIXME: sauttefk
tiva_configgpio(GPIO_LED_D1);
tiva_configgpio(GPIO_LED_D2);
tiva_configgpio(GPIO_LED_D3);
tiva_configgpio(GPIO_LED_D4);
}
/****************************************************************************
* Name: board_led_on
****************************************************************************/
void board_led_on(int led)
{
/* --------------- ------- ---- ----- --------------------
* STATE VALUE RED GREEN BLUE
* --------------- ------- ---- ----- --------------------
* LED_STARTED 0 OFF OFF ON
* LED_HEAPALLOCATE 1 NC NC NC
* LED_IRQSENABLED 1 NC NC NC
* LED_STACKCREATED 2 OFF ON OFF
* LED_INIRQ 1 NC NC NC
* LED_SIGNAL 1 NC NC NC
* LED_ASSERTION 1 NC NC NC
* LED_PANIC 3 ON OFF OFF (flashing 2Hz)
* --------------- ------- ---- ----- --------------------
*
* A high output illuminates the LED.
*/
switch (led)
{
case 0: /* R=OFF, G=OFF, B=ON */
/* Previous state was all OFF */
tiva_gpiowrite(GPIO_LED_D1, true);
break;
default:
case 1: /* No change */
break;
case 2: /* R=OFF, G=ON, B=OFF */
/* Previous state was all: R=OFF, G=OFF, B=ON */
tiva_gpiowrite(GPIO_LED_D2, true);
tiva_gpiowrite(GPIO_LED_D3, false);
break;
case 3: /* R=ON, G=OFF, B=OFF */
/* Previous state was all: R=OFF, G=Unknown, B=Unknown */
tiva_gpiowrite(GPIO_LED_D1, true);
tiva_gpiowrite(GPIO_LED_D2, false);
tiva_gpiowrite(GPIO_LED_D3, false);
break;
}
}
/****************************************************************************
* Name: board_led_off
****************************************************************************/
void board_led_off(int led)
{
/* --------------- ------- ---- ----- --------------------
* STATE VALUE RED GREEN BLUE
* --------------- ------- ---- ----- --------------------
* LED_STARTED 0 OFF OFF ON
* LED_HEAPALLOCATE 1 NC NC NC
* LED_IRQSENABLED 1 NC NC NC
* LED_STACKCREATED 2 OFF ON OFF
* LED_INIRQ 1 NC NC NC
* LED_SIGNAL 1 NC NC NC
* LED_ASSERTION 1 NC NC NC
* LED_PANIC 3 ON OFF OFF (flashing 2Hz)
* --------------- ------- ---- ----- --------------------
*
* A high output illuminates the LED.
*/
switch (led)
{
case 0: /* Will not happen */
case 1: /* No change */
case 2: /* Will not happen */
default:
break;
case 3: /* R=OFF, G=OFF, B=OFF */
/* Previous state was all: R=ON, G=OFF, B=OFF */
tiva_gpiowrite(GPIO_LED_D1, false);
}
}
#endif /* CONFIG_ARCH_LEDS */

View File

@ -0,0 +1,114 @@
/************************************************************************************
* configs/tm4c1294xl/src/tm4c_boot.c
*
* Copyright (C) 2014 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name NuttX nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
************************************************************************************/
/************************************************************************************
* Included Files
************************************************************************************/
#include <nuttx/config.h>
#include <debug.h>
#include <arch/board/board.h>
#include "tm4c1294-launchpad.h"
#include "up_arch.h"
#include "up_internal.h"
/************************************************************************************
* Pre-processor Definitions
************************************************************************************/
/************************************************************************************
* Private Functions
************************************************************************************/
/************************************************************************************
* Public Functions
************************************************************************************/
/************************************************************************************
* Name: tiva_boardinitialize
*
* Description:
* All Tiva architectures must provide the following entry point. This entry
* point is called early in the initialization -- after all memory has been
* configured and mapped but before any devices have been initialized.
*
************************************************************************************/
void tiva_boardinitialize(void)
{
/* Configure SPI chip selects if 1) SSI is not disabled, and 2) the weak function
* tm4c_ssiinitialize() has been brought into the link.
*/
/* The DK-TM4C129X microSD CS and OLED are on SSI0 */
#if defined(CONFIG_TIVA_SSI0) || defined(CONFIG_TIVA_SSI1)
if (tm4c_ssiinitialize)
{
tm4c_ssiinitialize();
}
#endif
/* Configure on-board LEDs if LED support has been selected. */
#ifdef CONFIG_ARCH_LEDS
tm4c_ledinit();
#endif
}
/****************************************************************************
* Name: board_initialize
*
* Description:
* If CONFIG_BOARD_INITIALIZE is selected, then an additional
* initialization call will be performed in the boot-up sequence to a
* function called board_initialize(). board_initialize() will be
* called immediately after up_intiialize() is called and just before the
* initial application is started. This additional initialization phase
* may be used, for example, to initialize board-specific device drivers.
*
****************************************************************************/
#ifdef CONFIG_BOARD_INITIALIZE
void board_initialize(void)
{
/* Perform board initialization */
(void)tm4c_bringup();
}
#endif /* CONFIG_BOARD_INITIALIZE */

View File

@ -0,0 +1,105 @@
/****************************************************************************
* config/tm4c1294-launchpad/src/tm4c_bringup.c
*
* Copyright (C) 2014 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name NuttX nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
****************************************************************************/
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#include <debug.h>
#include <arch/board/board.h>
#include "tm4c1294-launchpad.h"
/****************************************************************************
* Pre-Processor Definitions
****************************************************************************/
#if defined(CONFIG_I2C) && defined(CONFIG_I2C_LM75) && defined(CONFIG_TIVA_I2C6)
# define HAVE_TMP100
#endif
#ifdef CONFIG_DK_TM4C129X_TIMER
# define HAVE_TIMER
#endif
#ifdef CONFIG_SYSTEM_LM75_DEVNAME
# define TMP100_DEVNAME CONFIG_SYSTEM_LM75_DEVNAME
#else
# define TMP100_DEVNAME "/dev/temp"
#endif
/****************************************************************************
* Public Functions
****************************************************************************/
/****************************************************************************
* Name: tm4c_bringup
*
* Description:
* Bring up board features
*
****************************************************************************/
int tm4c_bringup(void)
{
#if defined(HAVE_TMP100) || defined(HAVE_TIMER)
int ret;
#endif
#ifdef HAVE_TMP100
/* Initialize and register the TMP-100 Temperature Sensor driver. */
ret = tiva_tmp100_initialize(TMP100_DEVNAME);
if (ret < 0)
{
dbg("ERROR: Failed to initialize TMP100 driver: %d\n", ret);
}
#endif
#ifdef HAVE_TIMER
/* Initialize the timer driver */
ret = tiva_timer_initialize();
if (ret < 0)
{
dbg("ERROR: Failed to initialize timer driver: %d\n", ret);
}
#endif
return OK;
}

View File

@ -0,0 +1,127 @@
/****************************************************************************
* configs/tm4c1294-launchpad/src/tm4c_buttons.c
*
* Copyright (C) 2014 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name NuttX nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
****************************************************************************/
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#include <stdint.h>
#include <nuttx/arch.h>
#include <arch/irq.h>
#include <arch/board/board.h>
#include "tm4c1294-launchpad.h"
#ifdef CONFIG_ARCH_BUTTONS
/****************************************************************************
* Definitions
****************************************************************************/
/****************************************************************************
* Private Data
****************************************************************************/
/* Pin configuration for each STM3210E-EVAL button. This array is indexed by
* the BUTTON_* and JOYSTICK_* definitions in board.h
*/
static const uint32_t g_buttons[NUM_BUTTONS] =
{
GPIO_SW1, GPIO_SW2
};
/****************************************************************************
* Private Functions
****************************************************************************/
/****************************************************************************
* Public Functions
****************************************************************************/
/****************************************************************************
* Name: board_button_initialize
*
* Description:
* board_button_initialize() must be called to initialize button resources.
* After that, board_buttons() may be called to collect the current state
* of all buttons or board_button_irq() may be called to register button
* interrupt handlers.
*
****************************************************************************/
void board_button_initialize(void)
{
int i;
/* Configure the GPIO pins as inputs. */
for (i = 0; i < NUM_BUTTONS; i++)
{
tiva_configgpio(g_buttons[i]);
}
}
/****************************************************************************
* Name: board_buttons
****************************************************************************/
uint8_t board_buttons(void)
{
uint8_t ret = 0;
int i;
/* Check that state of each key */
for (i = 0; i < NUM_BUTTONS; i++)
{
/* A LOW value means that the key is pressed. */
bool released = tiva_gpioread(g_buttons[i]);
/* Accumulate the set of depressed (not released) keys */
if (!released)
{
ret |= (1 << i);
}
}
return ret;
}
#endif /* CONFIG_ARCH_BUTTONS */

View File

@ -0,0 +1,99 @@
/************************************************************************************
* configs/tm4c1294-launchpad/src/tm4c_ethernet.c
*
* Copyright (C) 2015 Gregory Nutt. All rights reserved.
* Authors: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name NuttX nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
************************************************************************************/
/************************************************************************************
* Included Files
************************************************************************************/
#include <nuttx/config.h>
#include <stdint.h>
#include <debug.h>
#include <assert.h>
#include <arch/board/board.h>
#include <net/ethernet.h>
#include "up_arch.h"
#include "chip.h"
#include "chip/tiva_flash.h"
#include "tiva_ethernet.h"
/************************************************************************************
* Pre-processor Definitions
************************************************************************************/
/************************************************************************************
* Private Functions
************************************************************************************/
/************************************************************************************
* Public Functions
************************************************************************************/
/************************************************************************************
* Name: tiva_ethernetmac
*
* Description:
* For the Ethernet Eval Kits, the MAC address will be stored in the non-volatile
* USER0 and USER1 registers. If CONFIG_TIVA_BOARDMAC is defined, this function
* will obtain the MAC address from these registers.
*
************************************************************************************/
#ifdef CONFIG_TIVA_BOARDMAC
void tiva_ethernetmac(struct ether_addr *ethaddr)
{
uint32_t user0;
uint32_t user1;
/* Get the current value of the user registers */
user0 = getreg32(TIVA_FLASH_USERREG0);
user1 = getreg32(TIVA_FLASH_USERREG1);
nlldbg("user: %06x:%06x\n", user1 & 0x00ffffff, user0 & 0x00ffffff);
DEBUGASSERT(user0 != 0xffffffff && user1 != 0xffffffff);
/* Re-format that MAC address the way that uIP expects to see it */
ethaddr->ether_addr_octet[0] = ((user0 >> 0) & 0xff);
ethaddr->ether_addr_octet[1] = ((user0 >> 8) & 0xff);
ethaddr->ether_addr_octet[2] = ((user0 >> 16) & 0xff);
ethaddr->ether_addr_octet[3] = ((user1 >> 0) & 0xff);
ethaddr->ether_addr_octet[4] = ((user1 >> 8) & 0xff);
ethaddr->ether_addr_octet[5] = ((user1 >> 16) & 0xff);
}
#endif

View File

@ -0,0 +1,71 @@
/****************************************************************************
* config/tm4c1294-launchpad/src/tm4c_nsh.c
*
* Copyright (C) 2014 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name NuttX nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
****************************************************************************/
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#include "tm4c1294-launchpad.h"
/****************************************************************************
* Pre-Processor Definitions
****************************************************************************/
/****************************************************************************
* Public Functions
****************************************************************************/
/****************************************************************************
* Name: nsh_archinitialize
*
* Description:
* Perform architecture specific initialization
*
****************************************************************************/
int nsh_archinitialize(void)
{
/* If CONFIG_BOARD_INITIALIZE is selected then board initialization was
* already performed in board_initialize.
*/
#ifndef CONFIG_BOARD_INITIALIZE
return tm4c_bringup();
#else
return OK;
#endif
}

View File

@ -0,0 +1,132 @@
/************************************************************************************
* configs/tm4c1294-launchpad/src/tm4c_ssi.c
*
* Copyright (C) 2014 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name NuttX nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
************************************************************************************/
/************************************************************************************
* Included Files
************************************************************************************/
#include <nuttx/config.h>
#include <stdint.h>
#include <stdbool.h>
#include <debug.h>
#include <nuttx/spi/spi.h>
#include <arch/board/board.h>
#include "up_arch.h"
#include "chip.h"
#include "tiva_gpio.h"
#include "tm4c1294-launchpad.h"
/* The DK-TM4C129X microSD CS is on SSI0 */
#if defined(CONFIG_TIVA_SSI0) || defined(CONFIG_TIVA_SSI1)
/************************************************************************************
* Pre-processor Definitions
************************************************************************************/
/* CONFIG_DEBUG_SPI enables debug output from this file (needs CONFIG_DEBUG too) */
#ifdef CONFIG_DEBUG_SPI
# define ssidbg lldbg
#else
# define ssidbg(x...)
#endif
/* Dump GPIO registers */
#if defined(CONFIG_DEBUG_SPI) && defined(CONFIG_DEBUG_VERBOSE)
# define ssivdbg lldbg
# define ssi_dumpgpio(m) tiva_dumpgpio(SDCCS_GPIO, m)
#else
# define ssivdbg(x...)
# define ssi_dumpgpio(m)
#endif
/************************************************************************************
* Private Functions
************************************************************************************/
/************************************************************************************
* Public Functions
************************************************************************************/
/************************************************************************************
* Name: tm4c_ssiinitialize
*
* Description:
* Called to configure SPI chip select GPIO pins for the DK-TM4C129X.
*
************************************************************************************/
void weak_function tm4c_ssiinitialize(void)
{
}
/****************************************************************************
* The external functions, tiva_spiselect and tiva_spistatus must be provided
* by board-specific logic. The are implementations of the select and status
* methods SPI interface defined by struct spi_ops_s (see include/nuttx/spi/spi.h).
* All othermethods (including tiva_spiinitialize()) are provided by common
* logic. To use this common SPI logic on your board:
*
* 1. Provide tiva_spiselect() and tiva_spistatus() functions in your
* board-specific logic. This function will perform chip selection and
* status operations using GPIOs in the way your board is configured.
* 2. Add a call to tiva_spiinitialize() in your low level initialization
* logic
* 3. The handle returned by tiva_spiinitialize() may then be used to bind the
* SPI driver to higher level logic (e.g., calling
* mmcsd_spislotinitialize(), for example, will bind the SPI driver to
* the SPI MMC/SD driver).
*
****************************************************************************/
void tiva_spiselect(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected)
{
ssidbg("devid: %d CS: %s\n", (int)devid, selected ? "assert" : "de-assert");
ssi_dumpgpio("tiva_spiselect() Entry");
ssi_dumpgpio("tiva_spiselect() Exit");
}
uint8_t tiva_spistatus(FAR struct spi_dev_s *dev, enum spi_dev_e devid)
{
ssidbg("Returning SPI_STATUS_PRESENT\n");
return SPI_STATUS_PRESENT;
}
#endif /* CONFIG_TIVA_SSI0 || CONFIG_TIVA_SSI1 */

View File

@ -0,0 +1,115 @@
/****************************************************************************
* config/tm4c1294-launchpad/src/tm4c_timer.c
*
* Copyright (C) 2015 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name NuttX nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
****************************************************************************/
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#include <debug.h>
#include "tiva_timer.h"
#include "tm4c1294-launchpad.h"
#ifdef CONFIG_TM4C1294_LAUNCHPAD_TIMER
/****************************************************************************
* Pre-Processor Definitions
****************************************************************************/
/* Configuration ************************************************************/
#ifndef CONFIG_TIMER
# error CONFIG_TIMER is not defined
#endif
#ifndef CONFIG_TIVA_TIMER32_PERIODIC
# error CONFIG_TIVA_TIMER32_PERIODIC is not defined
#endif
#if defined(CONFIG_DK_TM4CTM4C1294_LAUNCHPADX_TIMER0)
# define GPTM 0
#elif defined(CONFIG_TM4C1294_LAUNCHPAD_TIMER1)
# define GPTM 1
#elif defined(CONFIG_TM4C1294_LAUNCHPAD_TIMER2)
# define GPTM 2
#elif defined(CONFIG_TM4C1294_LAUNCHPAD_TIMER3)
# define GPTM 3
#elif defined(CONFIG_TM4C1294_LAUNCHPAD_TIMER4)
# define GPTM 4
#elif defined(CONFIG_TM4C1294_LAUNCHPAD_TIMER5)
# define GPTM 5
#elif defined(CONFIG_TM4C1294_LAUNCHPAD_TIMER6)
# define GPTM 6
#elif defined(CONFIG_TM4C1294_LAUNCHPAD_TIMER7)
# define GPTM 7
#else
# error No CONFIG_TM4C1294_LAUNCHPAD_TIMERn definition
#endif
#ifndef CONFIG_TM4C1294_LAUNCHPAD_TIMER_DEVNAME
# define CONFIG_TM4C1294_LAUNCHPAD_TIMER_DEVNAME "/dev/timer0"
#endif
#undef CONFIG_TM4C1294_LAUNCHPAD_TIMER_ALTCLK
#define ALTCLK false
/****************************************************************************
* Public Functions
****************************************************************************/
/****************************************************************************
* Name: tiva_timer_initialize
*
* Description:
* Configure the timer driver
*
****************************************************************************/
int tiva_timer_initialize(void)
{
int ret;
timvdbg("Registering TIMER%d at %s\n", GPTM, CONFIG_TM4C1294_LAUNCHPAD_TIMER_DEVNAME);
ret = tiva_timer_register(CONFIG_TM4C1294_LAUNCHPAD_TIMER_DEVNAME, GPTM, ALTCLK);
if (ret < 0)
{
timdbg("ERROR: Failed to register timer driver: %d\n", ret);
}
return ret;
}
#endif /* CONFIG_TM4C1294_LAUNCHPAD_TIMER */

View File

@ -0,0 +1,102 @@
/****************************************************************************
ħ * configs/tm4c1294-launchpad/src/tiva_tmp100.c
*
* Copyright (C) 2015 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name NuttX nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
****************************************************************************/
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#include <errno.h>
#include <nuttx/i2c.h>
#include <nuttx/sensors/lm75.h>
#include "tiva_i2c.h"
#include "tm4c1294-launchpad.h"
#if defined(CONFIG_I2C) && defined(CONFIG_I2C_LM75) && \
defined(CONFIG_TIVA_I2C6)
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
/****************************************************************************
* Private Functions
****************************************************************************/
/****************************************************************************
* Public Functions
****************************************************************************/
/****************************************************************************
* Name: tiva_tmp100_initialize
*
* Description:
* Initialize and register the LM-75 Temperature Sensor driver.
*
* Input parameters:
* devpath - The full path to the driver to register. E.g., "/dev/temp0"
*
* Returned Value:
* Zero (OK) on success; a negated errno value on failure.
*
****************************************************************************/
int tiva_tmp100_initialize(FAR const char *devpath)
{
FAR struct i2c_dev_s *i2c;
int ret;
/* Get an instance of the I2C6 interface */
i2c = up_i2cinitialize(TMP100_I2CBUS);
if (!i2c)
{
return -ENODEV;
}
/* Then register the temperature sensor */
ret = lm75_register(devpath, i2c, TMP100_I2CADDR);
if (ret < 0)
{
(void)up_i2cuninitialize(i2c);
}
return ret;
}
#endif /* CONFIG_I2C && CONFIG_I2C_LM75 && CONFIG_TIVA_I2C6 */

View File

@ -0,0 +1,153 @@
/****************************************************************************
* configs/tm4c1294-launchpad/src/tm4c_userleds.c
*
* Copyright (C) 2014 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name NuttX nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
****************************************************************************/
/* The EK-TM4C1294XL has a four green LEDs.
*
* --- ------------
* Pin Pin Function
* --- ------------
* PN1 Green LED D1
* PN0 Green LED D2
* PF4 Green LED D3
* PF0 Green LED D4
* --- ------------
*
* A high output illuminates the LED.
*/
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#include <stdint.h>
#include <stdbool.h>
#include <debug.h>
#include <arch/board/board.h>
#include "tiva_gpio.h"
#include "tm4c1294-launchpad.h"
#ifndef CONFIG_ARCH_LEDS
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
/* CONFIG_DEBUG_LEDS enables debug output from this file (needs CONFIG_DEBUG
* with CONFIG_DEBUG_VERBOSE too)
*/
#ifdef CONFIG_DEBUG_LEDS
# define leddbg lldbg
# define ledvdbg llvdbg
#else
# define leddbg(x...)
# define ledvdbg(x...)
#endif
/****************************************************************************
* Public Functions
****************************************************************************/
/****************************************************************************
* Name: tiva_ledinit
****************************************************************************/
void tiva_ledinit(void)
{
/* Configure LED PIOs for output */
tiva_configgpio(GPIO_LED_D1);
tiva_configgpio(GPIO_LED_D2);
tiva_configgpio(GPIO_LED_D3);
tiva_configgpio(GPIO_LED_D4);
}
/****************************************************************************
* Name: tiva_setled
****************************************************************************/
void tiva_setled(int led, bool ledon)
{
uint32_t ledcfg;
if (led == BOARD_LED_D1)
{
ledcfg = GPIO_LED_D1;
}
else if (led == BOARD_LED_D2)
{
ledcfg = GPIO_LED_D2;
}
else if (led == BOARD_LED_D3)
{
ledcfg = GPIO_LED_D3;
}
else if (led == BOARD_LED_D4)
{
ledcfg = GPIO_LED_D4;
}
else
{
return;
}
tiva_gpiowrite(ledcfg, ledon);
}
/****************************************************************************
* Name: tiva_setleds
****************************************************************************/
void tiva_setleds(uint8_t ledset)
{
bool ledon;
ledon = ((ledset & BOARD_LED_D1_BIT) != 0);
tiva_gpiowrite(GPIO_LED_D1, ledon);
ledon = ((ledset & BOARD_LED_D2_BIT) != 0);
tiva_gpiowrite(GPIO_LED_D2, ledon);
ledon = ((ledset & BOARD_LED_D3_BIT) != 0);
tiva_gpiowrite(GPIO_LED_D3, ledon);
ledon = ((ledset & BOARD_LED_D4_BIT) != 0);
tiva_gpiowrite(GPIO_LED_D4, ledon);
}
#endif /* !CONFIG_ARCH_LEDS */

View File

@ -5,8 +5,8 @@
#
source [find interface/ti-icdi.cfg]
transport select hla_jtag
set WORKAREASIZE 0x40000 # RAM size
set WORKAREASIZE 0x40000
set CHIPNAME tm4c1294ncpdt
source [find target/stellaris_icdi.cfg]
source [find target/stellaris.cfg]

View File

@ -0,0 +1,57 @@
#!/bin/sh
#
# See configs/tm4c1294-launchpad/README.txt for information about
# this file.
TOPDIR=$1
USAGE="$0 <TOPDIR> [-d]"
if [ -z "${TOPDIR}" ]; then
echo "Missing argument"
echo $USAGE
exit 1
fi
# Assume that OpenOCD was installed and at /usr/local/bin. Uncomment
# the following to run directly from the build directory
# OPENOCD_PATH="/home/OpenOCD/openocd/src"
OPENOCD_PATH="/usr/bin"
# OPENOCD_PATH="/usr/local/bin"
# TARGET_PATH="/home/OpenOCD/openocd/tcl"
TARGET_PATH="/usr/share/openocd/scripts"
# TARGET_PATH="/usr/local/share/openocd/scripts"
# Assume a Unix development environment. Uncomment to use a Windows
# like environment
# OPENOCD_EXE=openocd.exe
OPENOCD_EXE=openocd
OPENOCD_CFG="${TOPDIR}/configs/tm4c1294-launchpad/tools/ek-tm4c1294xl.cfg"
OPENOCD_ARGS="-f ${OPENOCD_CFG} -s ${TARGET_PATH}"
if [ "X$2" = "X-d" ]; then
OPENOCD_ARGS=$OPENOCD_ARGS" -d3"
set -x
fi
if [ ! -d ${OPENOCD_PATH} ]; thenf
echo "OpenOCD path does not exist: ${OPENOCD_PATH}"
exit 1
fi
if [ ! -x ${OPENOCD_PATH}/${OPENOCD_EXE} ]; then
echo "OpenOCD does not exist: ${OPENOCD_PATH}/${OPENOCD_EXE}"
exit 1
fi
if [ ! -f ${OPENOCD_CFG} ]; then
echo "OpenOCD config file does not exist: ${OPENOCD_CFG}"
exit 1
fi
echo "Starting OpenOCD"
cd ${OPENOCD_PATH} || { echo "Failed to CD to ${OPENOCD_PATH}"; exit 1; }
${OPENOCD_EXE} ${OPENOCD_ARGS} &
echo "OpenOCD daemon started"
ps -ef | grep openocd
echo "In GDB: target remote localhost:3333"