diff --git a/bsp/tm4c129x/applications/application.c b/bsp/tm4c129x/applications/application.c index 3c07bb6128..80f58b6ed8 100644 --- a/bsp/tm4c129x/applications/application.c +++ b/bsp/tm4c129x/applications/application.c @@ -20,8 +20,9 @@ void rt_init_thread_entry(void *parameter) { /* Initialization RT-Thread Components */ -#ifdef RT_USING_COMPONENTS_INIT rt_components_init(); +#ifdef RT_USING_FINSH + finsh_set_device(RT_CONSOLE_DEVICE_NAME); #endif } diff --git a/bsp/tm4c129x/applications/board.c b/bsp/tm4c129x/applications/board.c index e26f3f5076..cb3cf92eb6 100644 --- a/bsp/tm4c129x/applications/board.c +++ b/bsp/tm4c129x/applications/board.c @@ -15,14 +15,14 @@ #include #include -#include #include "board.h" #include "drv_uart.h" -#include "interrupt.h" -#include "sysctl.h" -#include "systick.h" -#include "fpu.h" + +#include "driverlib/interrupt.h" +#include "driverlib/sysctl.h" +#include "driverlib/systick.h" +#include "driverlib/fpu.h" #include "driverlib/rom_map.h" #define SYS_CLOCK_DEFAULT 120000000 @@ -56,16 +56,15 @@ void SysTick_Handler(void) extern void PendSV_Handler(void); extern void HardFault_Handler(void); - /** * This function will initial LPC40xx board. */ void rt_hw_board_init() { IntRegister(FAULT_HARD, HardFault_Handler); - IntRegister(FAULT_PENDSV, PendSV_Handler); - IntRegister(FAULT_SYSTICK, SysTick_Handler); - + IntRegister(FAULT_PENDSV, PendSV_Handler); + IntRegister(FAULT_SYSTICK, SysTick_Handler); + // // Enable lazy stacking for interrupt handlers. This allows floating-point // instructions to be used within interrupt handlers, but at the expense of @@ -78,23 +77,24 @@ void rt_hw_board_init() // TODO: The SYSCTL_XTAL_ value must be changed to match the value of the // crystal on your board. // - SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480), - SYS_CLOCK_DEFAULT); + SysClock = MAP_SysCtlClockFreqSet( + (SYSCTL_XTAL_25MHZ | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480), + SYS_CLOCK_DEFAULT); - MAP_SysTickDisable(); + MAP_SysTickDisable(); MAP_SysTickPeriodSet(SysClock/ RT_TICK_PER_SECOND - 1); MAP_SysTickIntEnable(); MAP_SysTickEnable(); - /* set pend exception priority */ - //IntPrioritySet(FAULT_PENDSV, (1 << __NVIC_PRIO_BITS) - 1); - /*init uart device*/ - + IntPrioritySet(FAULT_PENDSV, (1 << 5) - 1); + + /*init uart device*/ rt_hw_uart_init(); + //redirect RTT stdio to CONSOLE device rt_console_set_device(RT_CONSOLE_DEVICE_NAME); // // Enable interrupts to the processor. // - MAP_IntMasterEnable(); + MAP_IntMasterEnable(); } diff --git a/bsp/tm4c129x/drivers/drv_uart.c b/bsp/tm4c129x/drivers/drv_uart.c index eba5eff67a..7f87083999 100644 --- a/bsp/tm4c129x/drivers/drv_uart.c +++ b/bsp/tm4c129x/drivers/drv_uart.c @@ -20,41 +20,83 @@ #include "board.h" //#include -#include "sysctl.h" -#include "gpio.h" -#include "uart.h" -#include "hw_memmap.h" -#include "pin_map.h" -#include "interrupt.h" -#include "rom.h" -#include "rom_map.h" +#include "inc/hw_memmap.h" +#include "driverlib/sysctl.h" +#include "driverlib/gpio.h" +#include "driverlib/uart.h" +#include "driverlib/pin_map.h" +#include "driverlib/interrupt.h" +#include "driverlib/rom_map.h" typedef struct hw_uart_device { uint32_t hw_base; // base address }hw_uart_t; -#define GetHwUartPtr(serial) ((hw_uart_t*)(serial->parent.user_data)) +#define mUartGetHwPtr(serial) ((hw_uart_t*)(serial->parent.user_data)) static rt_err_t hw_configure(struct rt_serial_device *serial, struct serial_configure *cfg) { + uint32_t config; hw_uart_t* uart; RT_ASSERT(serial != RT_NULL); - uart = GetHwUartPtr(serial); - MAP_UARTDisable(uart->hw_base); - /* Initialize UART Configuration parameter structure to default state: - * Baudrate = 115200 bps - * 8 data bit - * 1 Stop bit - * None parity - */ - // Initialize UART0 peripheral with given to corresponding parameter - MAP_UARTConfigSetExpClk(uart->hw_base, SysClock, cfg->baud_rate, - (UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE)); - MAP_UARTFIFOEnable(uart->hw_base); + uart = mUartGetHwPtr(serial); + + MAP_UARTDisable(uart->hw_base); + // build UART Configuration parameter structure + switch(cfg->data_bits) + { + case DATA_BITS_9: + // enable 9bit address mode and set DATA_BIT_8 + MAP_UART9BitEnable(uart->hw_base); + case DATA_BITS_8: + config |= UART_CONFIG_WLEN_8; + break; + case DATA_BITS_7: + config |= UART_CONFIG_WLEN_7; + break; + case DATA_BITS_6: + config |= UART_CONFIG_WLEN_6; + break; + case DATA_BITS_5: + config |= UART_CONFIG_WLEN_5; + break; + default: + RT_ASSERT(0); + break; + } + switch(cfg->parity) + { + case PARITY_ODD: + config |= UART_CONFIG_PAR_ODD; + break; + case PARITY_EVEN: + config |= UART_CONFIG_PAR_EVEN; + break; + case PARITY_NONE: + config |= UART_CONFIG_PAR_NONE; + break; + default: + RT_ASSERT(0); + break; + } + switch(cfg->stop_bits) + { + case STOP_BITS_1: + config |= UART_CONFIG_STOP_ONE; + break; + case STOP_BITS_2: + config |= UART_CONFIG_STOP_TWO; + break; + default: + RT_ASSERT(0); + break; + } + + // Initialize UART0 peripheral with given to corresponding parameter + MAP_UARTConfigSetExpClk(uart->hw_base, SysClock, cfg->baud_rate, config); + MAP_UARTFIFOEnable(uart->hw_base); - // // Enable the UART. - // MAP_UARTEnable(uart->hw_base); return RT_EOK; } @@ -63,7 +105,7 @@ static rt_err_t hw_control(struct rt_serial_device *serial, int cmd, void *arg) { hw_uart_t* uart; RT_ASSERT(serial != RT_NULL); - uart = GetHwUartPtr(serial); + uart = mUartGetHwPtr(serial); switch (cmd) { @@ -84,7 +126,7 @@ static int hw_putc(struct rt_serial_device *serial, char c) { hw_uart_t* uart; RT_ASSERT(serial != RT_NULL); - uart = GetHwUartPtr(serial); + uart = mUartGetHwPtr(serial); MAP_UARTCharPut(uart->hw_base, *((uint8_t *)&c)); return 1; @@ -94,7 +136,7 @@ static int hw_getc(struct rt_serial_device *serial) { hw_uart_t* uart; RT_ASSERT(serial != RT_NULL); - uart = GetHwUartPtr(serial); + uart = mUartGetHwPtr(serial); return MAP_UARTCharGetNonBlocking(uart->hw_base); } @@ -110,7 +152,6 @@ static const struct rt_uart_ops hw_uart_ops = #if defined(RT_USING_UART0) /* UART0 device driver structure */ struct rt_serial_device serial0; -struct serial_ringbuffer uart0_int_rx_buf; hw_uart_t uart0 = { UART0_BASE, @@ -118,21 +159,20 @@ hw_uart_t uart0 = void UART0_IRQHandler(void) { - uint32_t intsrc; + uint32_t intsrc; hw_uart_t *uart = &uart0; /* enter interrupt */ rt_interrupt_enter(); /* Determine the interrupt source */ - intsrc = UARTIntStatus(uart->hw_base, true); + intsrc = MAP_UARTIntStatus(uart->hw_base, true); // Receive Data Available or Character time-out if (intsrc & (UART_INT_RX | UART_INT_RT)) { - UARTIntClear(UART0_BASE, intsrc); - rt_hw_serial_isr(&serial0); - + MAP_UARTIntClear(uart->hw_base, intsrc); + rt_hw_serial_isr(&serial0, RT_SERIAL_EVENT_RX_IND); } /* leave interrupt */ @@ -144,57 +184,38 @@ int rt_hw_uart_init(void) { hw_uart_t* uart; struct serial_configure config; - -#ifdef RT_USING_UART0 - uart = &uart0; + config.baud_rate = BAUD_RATE_115200; config.bit_order = BIT_ORDER_LSB; config.data_bits = DATA_BITS_8; config.parity = PARITY_NONE; config.stop_bits = STOP_BITS_1; config.invert = NRZ_NORMAL; - + config.bufsz = RT_SERIAL_RB_BUFSZ; + +#ifdef RT_USING_UART0 + uart = &uart0; serial0.ops = &hw_uart_ops; - serial0.int_rx = &uart0_int_rx_buf; serial0.config = config; - // - // Enable the peripherals used by this example. - // The UART itself needs to be enabled, as well as the GPIO port - // containing the pins that will be used. - // - MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); - - // - // Configure the GPIO pin muxing for the UART function. - // This is only necessary if your part supports GPIO pin function muxing. - // Study the data sheet to see which functions are allocated per pin. - // TODO: change this to select the port/pin you are using - // MAP_GPIOPinConfigure(GPIO_PA0_U0RX); MAP_GPIOPinConfigure(GPIO_PA1_U0TX); - - // - // Since GPIO A0 and A1 are used for the UART function, they must be - // configured for use as a peripheral function (instead of GPIO). - // TODO: change this to match the port/pin you are using - // + MAP_GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1); - MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0); /* preemption = 1, sub-priority = 1 */ - //IntPrioritySet(INT_UART0, ((0x01 << 3) | 0x01)); + IntPrioritySet(INT_UART0, ((0x01 << 5) | 0x01)); /* Enable Interrupt for UART channel */ - UARTIntRegister(uart->hw_base, UART0_IRQHandler); - MAP_IntEnable(INT_UART0); - MAP_UARTEnable(uart->hw_base); + UARTIntRegister(uart->hw_base, UART0_IRQHandler); + MAP_IntEnable(INT_UART0); + MAP_UARTEnable(uart->hw_base); /* register UART0 device */ rt_hw_serial_register(&serial0, "uart0", - RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX | RT_DEVICE_FLAG_STREAM, + RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX, uart); #endif return 0; diff --git a/bsp/tm4c129x/project.uvproj b/bsp/tm4c129x/project.uvproj deleted file mode 100644 index ea427a1500..0000000000 --- a/bsp/tm4c129x/project.uvproj +++ /dev/null @@ -1,851 +0,0 @@ - - - - 1.1 - -
### uVision Project, (C) Keil Software
- - - - Target 1 - 0x4 - ARM-ADS - - - TM4C1294NCZAD - Texas Instruments - IROM(0x00000000,0x100000) IRAM(0x20000000,0x040000) CPUTYPE("Cortex-M4") FPU2 CLOCK(120000000) ELITTLE - - - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0TM4C129_1024 -FS00 -FL0100000 -FP0($$Device:TM4C1294NCZAD$Flash\TM4C129_1024.FLM)) - 7089 - $$Device:TM4C1294NCZAD$Device\Include\TM4C129\TM4C129.h - - - - - - - -DTM4C1294NCZAD - - - $$Device:TM4C1294NCZAD$SVD\TM4C129\TM4C1294NCZAD.svd - 0 - 0 - - - - - - - 0 - 0 - 0 - 0 - 1 - - .\keil_bulid\ - project - 1 - 0 - 0 - 1 - 1 - .\keil_bulid\ - 1 - 0 - 1 - - 0 - 0 - - - 0 - 0 - 0 - 0 - - - 0 - 0 - - - 0 - 0 - 0 - 0 - - - 0 - 0 - - - 0 - 0 - - 0 - - - - 0 - 0 - 0 - 0 - 0 - 1 - 0 - 0 - 0 - 0 - 3 - - - 1 - - - SARMCM3.DLL - -MPU - DCM.DLL - -pCM4 - SARMCM3.DLL - -MPU - TCM.DLL - -pCM4 - - - - 1 - 0 - 0 - 0 - 16 - - - 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 0 - 1 - - - 1 - 1 - 1 - 1 - 1 - 1 - 0 - 1 - 1 - 1 - 1 - - 0 - 3 - - - - - - - - - - - - - - BIN\lmidk-agdi.dll - - - - - 1 - 0 - 0 - 1 - 1 - 4096 - - 1 - BIN\UL2CM3.DLL - "" () - - - - - 0 - - - - 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 0 - 1 - 1 - 0 - 1 - 1 - 0 - 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 0 - 0 - "Cortex-M4" - - 0 - 0 - 0 - 1 - 1 - 0 - 0 - 2 - 0 - 0 - 8 - 0 - 0 - 0 - 3 - 3 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 1 - 0 - 0 - 0 - 0 - 1 - 0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x20000000 - 0x40000 - - - 1 - 0x0 - 0x100000 - - - 0 - 0x0 - 0x0 - - - 1 - 0x0 - 0x0 - - - 1 - 0x0 - 0x0 - - - 1 - 0x0 - 0x0 - - - 1 - 0x0 - 0x100000 - - - 1 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x20000000 - 0x40000 - - - 0 - 0x0 - 0x0 - - - - - - 1 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 2 - 0 - 0 - 0 - 0 - - - PART_TM4C129XNCZAD - - ..\..\src;..\..\include;..\..\libcpu\arm\cortex-m4;..\..\components\drivers\include;..\..\components\drivers\include\drivers;..\..\components\finsh;..\tm4c129x;.\libraries\driverlib;.\libraries\inc;.\libraries\startup;.\libraries;.\drivers;.\applications;..\..\components\init - - - - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - PART_TM4C129XNCZAD - - - - - - 0 - 0 - 1 - 0 - 1 - 0 - 0x00000000 - 0x00000000 - - project.sct - - - - - - - - - - - applcaitions - - - application.c - 1 - .\applications\application.c - - - board.c - 1 - .\applications\board.c - - - startup.c - 1 - .\applications\startup.c - - - - - drivers - - - drv_uart.c - 1 - .\drivers\drv_uart.c - - - - - libraries - - - adc.c - 1 - .\libraries\driverlib\adc.c - - - aes.c - 1 - .\libraries\driverlib\aes.c - - - can.c - 1 - .\libraries\driverlib\can.c - - - comp.c - 1 - .\libraries\driverlib\comp.c - - - cpu.c - 1 - .\libraries\driverlib\cpu.c - - - crc.c - 1 - .\libraries\driverlib\crc.c - - - des.c - 1 - .\libraries\driverlib\des.c - - - eeprom.c - 1 - .\libraries\driverlib\eeprom.c - - - emac.c - 1 - .\libraries\driverlib\emac.c - - - epi.c - 1 - .\libraries\driverlib\epi.c - - - flash.c - 1 - .\libraries\driverlib\flash.c - - - fpu.c - 1 - .\libraries\driverlib\fpu.c - - - gpio.c - 1 - .\libraries\driverlib\gpio.c - - - hibernate.c - 1 - .\libraries\driverlib\hibernate.c - - - i2c.c - 1 - .\libraries\driverlib\i2c.c - - - interrupt.c - 1 - .\libraries\driverlib\interrupt.c - - - lcd.c - 1 - .\libraries\driverlib\lcd.c - - - mpu.c - 1 - .\libraries\driverlib\mpu.c - - - pwm.c - 1 - .\libraries\driverlib\pwm.c - - - qei.c - 1 - .\libraries\driverlib\qei.c - - - shamd5.c - 1 - .\libraries\driverlib\shamd5.c - - - ssi.c - 1 - .\libraries\driverlib\ssi.c - - - sw_crc.c - 1 - .\libraries\driverlib\sw_crc.c - - - sysctl.c - 1 - .\libraries\driverlib\sysctl.c - - - sysexc.c - 1 - .\libraries\driverlib\sysexc.c - - - systick.c - 1 - .\libraries\driverlib\systick.c - - - uart.c - 1 - .\libraries\driverlib\uart.c - - - udma.c - 1 - .\libraries\driverlib\udma.c - - - usb.c - 1 - .\libraries\driverlib\usb.c - - - watchdog.c - 1 - .\libraries\driverlib\watchdog.c - - - startup_rvmdk.S - 2 - .\libraries\startup\startup_rvmdk.S - - - tiva_timer.c - 1 - .\libraries\driverlib\tiva_timer.c - - - - - rt_core - - - clock.c - 1 - ..\..\src\clock.c - - - device.c - 1 - ..\..\src\device.c - - - idle.c - 1 - ..\..\src\idle.c - - - ipc.c - 1 - ..\..\src\ipc.c - - - irq.c - 1 - ..\..\src\irq.c - - - kservice.c - 1 - ..\..\src\kservice.c - - - mem.c - 1 - ..\..\src\mem.c - - - memheap.c - 1 - ..\..\src\memheap.c - - - mempool.c - 1 - ..\..\src\mempool.c - - - module.c - 1 - ..\..\src\module.c - - - object.c - 1 - ..\..\src\object.c - - - scheduler.c - 1 - ..\..\src\scheduler.c - - - slab.c - 1 - ..\..\src\slab.c - - - thread.c - 1 - ..\..\src\thread.c - - - timer.c - 1 - ..\..\src\timer.c - - - - - finsh - - - cmd.c - 1 - ..\..\components\finsh\cmd.c - - - finsh_compiler.c - 1 - ..\..\components\finsh\finsh_compiler.c - - - finsh_error.c - 1 - ..\..\components\finsh\finsh_error.c - - - finsh_heap.c - 1 - ..\..\components\finsh\finsh_heap.c - - - finsh_init.c - 1 - ..\..\components\finsh\finsh_init.c - - - finsh_node.c - 1 - ..\..\components\finsh\finsh_node.c - - - finsh_ops.c - 1 - ..\..\components\finsh\finsh_ops.c - - - finsh_parser.c - 1 - ..\..\components\finsh\finsh_parser.c - - - finsh_token.c - 1 - ..\..\components\finsh\finsh_token.c - - - finsh_var.c - 1 - ..\..\components\finsh\finsh_var.c - - - finsh_vm.c - 1 - ..\..\components\finsh\finsh_vm.c - - - msh.c - 1 - ..\..\components\finsh\msh.c - - - msh_cmd.c - 1 - ..\..\components\finsh\msh_cmd.c - - - shell.c - 1 - ..\..\components\finsh\shell.c - - - symbol.c - 1 - ..\..\components\finsh\symbol.c - - - - - rt_hw - - - serial.c - 1 - ..\..\components\drivers\serial\serial.c - - - completion.c - 1 - ..\..\components\drivers\src\completion.c - - - dataqueue.c - 1 - ..\..\components\drivers\src\dataqueue.c - - - pipe.c - 1 - ..\..\components\drivers\src\pipe.c - - - portal.c - 1 - ..\..\components\drivers\src\portal.c - - - ringbuffer.c - 1 - ..\..\components\drivers\src\ringbuffer.c - - - workqueue.c - 1 - ..\..\components\drivers\src\workqueue.c - - - - - rt_components - - - components.c - 1 - ..\..\components\init\components.c - - - rtconfig.h - 5 - .\rtconfig.h - - - - - cpusupport - - - cpuport.c - 1 - ..\..\libcpu\arm\cortex-m4\cpuport.c - - - context_rvds.S - 2 - ..\..\libcpu\arm\cortex-m4\context_rvds.S - - - backtrace.c - 1 - ..\..\libcpu\arm\common\backtrace.c - - - div0.c - 1 - ..\..\libcpu\arm\common\div0.c - - - showmem.c - 1 - ..\..\libcpu\arm\common\showmem.c - - - - - - - -
diff --git a/bsp/tm4c129x/template.uvproj b/bsp/tm4c129x/template.uvproj index 22d359c599..1a84ba0131 100644 --- a/bsp/tm4c129x/template.uvproj +++ b/bsp/tm4c129x/template.uvproj @@ -7,35 +7,38 @@ - rt-thread_lm4f232 + RT-Thread TM4C129X 0x4 ARM-ADS - LM4F232H5QD + TM4C129XNCZAD Texas Instruments - IRAM(0x20000000-0x20007FFF) IROM(0-0x3FFFF) CLOCK(16000000) CPUTYPE("Cortex-M4") FPU2 + Keil.TM4C_DFP.1.0.0 + http://www.keil.com/pack/ + IROM(0x00000000,0x100000) IRAM(0x20000000,0x040000) CPUTYPE("Cortex-M4") FPU2 CLOCK(120000000) ELITTLE - "STARTUP\Luminary\Startup.s" ("Luminary Startup Code") - UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0LM4F_256 -FS00 -FL040000) - 5931 - LM4Fxxxx.H + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0TM4C129_1024 -FS00 -FL0100000 -FP0($$Device:TM4C129XNCZAD$Flash\TM4C129_1024.FLM)) + 7096 + $$Device:TM4C129XNCZAD$Device\Include\TM4C129\TM4C129.h - + -DTM4C129XNCZAD - SFD\Luminary\LM4F232H5QD.SFR + $$Device:TM4C129XNCZAD$SVD\TM4C129\TM4C129XNCZAD.svd + 0 0 - Luminary\ - Luminary\ + + 0 0 @@ -44,13 +47,13 @@ 1 .\build\ - project + rtthread-tm4c 1 0 0 1 - 1 - .\build\ + 0 + .\ 1 0 0 @@ -61,6 +64,8 @@ 0 0 + 0 + 0 0 @@ -69,6 +74,8 @@ 0 0 + 0 + 0 0 @@ -95,6 +102,7 @@ 3 + 1 SARMCM3.DLL @@ -124,6 +132,7 @@ 1 1 0 + 1 1 @@ -134,9 +143,12 @@ 1 0 1 + 1 + 1 + 1 0 - 4 + 3 @@ -158,13 +170,18 @@ 1 0 0 - 0 + 1 1 - 4097 + 4096 - BIN\lmidk-agdi.dll + 1 + BIN\UL2CM3.DLL "" () + + + + 0 @@ -208,7 +225,7 @@ 0 0 8 - 1 + 0 0 0 3 @@ -264,12 +281,12 @@ 0 0x20000000 - 0x8000 + 0x40000 1 0x0 - 0x40000 + 0x100000 0 @@ -294,7 +311,7 @@ 1 0x0 - 0x40000 + 0x100000 1 @@ -319,7 +336,7 @@ 0 0x20000000 - 0x8000 + 0x40000 0 @@ -334,14 +351,17 @@ 1 0 0 - 1 + 0 0 0 0 0 0 - 0 + 2 0 + 0 + 0 + 0 @@ -357,6 +377,8 @@ 0 0 0 + 0 + 0 @@ -372,8 +394,9 @@ 1 0 0x00000000 - 0x20000000 - + 0x00000000 + + tm4c_rom.sct