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.

TivaWare Bootloader question



I have been reviewing the documentation for the TivaWare bootloader, and I have the following questions:

It looks like the bootloader and application code can be reprogrammed independently, correct?

If so, how do the interrupt vectors get reprogrammed - as a part of the application space, or the bootloader space?

I'll probably have a few follow-up questions, but let's start here.

Thanks in advance for any help you can provide.

- Todd

  • Hello Todd,

    When the boot loader is programmed the interrupt vector space is mapped to 0x0 (which is where the flash based boot loader resides).

    When the application is programmed at the non-0x0 address the interrupt vector space is remapped to that of the Application.

    Regards

    Amit

  • Amit,

    Thanks for your response.  What happens if power is removed during the process?  Can the bootloader recover if power is interrupted during the bootloading process  (i.e. after the application space is erased, but before it get fully programmed?)  It would appear from the documentation that the reset vector points to the bootloader?  Are they erased at the same time as the application space?  If the application space requires reprogramming of the vector table, does that open a small window of vulnerability such that a power interruption would corrupt the reset vector itself, leading to a situation where the bootloader couldn't actually run at power-up?

    We have a customer that is evaluating the risk/benefits of running the bootloader from RAM, and knowing these details will help them make their decision.

    Thanks for your help in advance!

  • Hello Todd,

    1. Yes, the boot loader can recover as long as the Application Space's first two locations are not programmed to a value that looks like SRAM and Flash. In fact these two locations are programmed in the last after the rest of the image is flashed in, to reduce the window of failure due to a "pseudo" match.

    2. The two can be independently erased.

    3. The boot loader can run from RAM but it is important that the Application be buffered.

    Regards

    Amit