This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TM4C1290NCZAD: bootloader question

Part Number: TM4C1290NCZAD
Other Parts Discussed in Thread: EK-TM4C1294XL

I use the official bootloader program and LM Flash program but the program cannot jump to the APP program correctly, and the flash program is correct.

this is for JATG flash

This is for bootloader flash

  • Hi,

    From which interface (UART, USB or etc) are you trying to boot from? Please first try the stock TivaWare bootloader and application examples. For example, for UART, load the bootloader program through JTAG interface first. The bootloader example can be found in C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c1294xl\boot_serial. Once the bootloade is running, it will load the application from UART interface. The application firmware example can be found in C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c1294xl\boot_demo1. Try this example combination first and see if it works.

    After the application firmware is programmed, it will have correct stack pointer and reset vector at address 0x4000. The bootloader will check if these two location are 0xFFFFFFFF or not. If they are not 0xFFFFFFFF and provided there are no other force updates (e.g. force update from a GPIO pin) , the bootloader will jump to 0x4000 to start the application.

    From what I can see from the memory content, I don't see the vector table for the application. The vector table for the application should start at 0x4000. Make sure in the linker command file the APP_BASE is 004000.

    /* The starting address of the application. Normally the interrupt vectors */
    /* must be located at the beginning of the application. */
    #define APP_BASE 0x00004000
    #define RAM_BASE 0x20000000

    /* System memory map */

    MEMORY
    {
    /* Application stored in and executes from internal flash */
    FLASH (RX) : origin = APP_BASE, length = 0x000fc000
    /* Application uses internal RAM for data */
    SRAM (RWX) : origin = 0x20000000, length = 0x00040000
    }