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.

Best way to implement a complex Bootloader for MSP430F6779

Hi All

Our project requires a bootloader, the memory it uses for the Bootstrap Loader is only 2k in size. We haven't started it's development yet but I am concerned about the requirements needed to be met and fitting it in the bootloader and it would be nice to get opinions on the best approach for this processor.

We will store an image into external flash (3 images in total, one for basic functionality, one for a backup of the current firmware, and one that has been newly downloaded over the air) and update the information for all three images in external EEPROM, which then resets into bootloader and copies the necessary image from external flash to internal flash.

The bootloader will need to flash an LED, talk to a UART to output what is happening (optional), talk over SPI to external flash, talk over I2C to EEPROM and also write to internal flash.

My main concern is fitting this all into 2k and also writing the logic for determining from EEPROM, the image statues, which will need to be read and written.

Is there an alternative approach to doing this with the MSP430F and what do you think about fitting this into 2k if not?

Thanks very much.

  • I have no idea what is the best method. But I think the traditional BSL method can be used. By traditional BSL method, I mean to use the limited resources you have at hand to implement a primitive loader for the specific goal of downloading a more capable loader, and then use that more capable loader to do the real work. (A metaphor from the story of Baron von Münschaussen who supposedly managed to get himself out of quicksand by lifting himself by pulling his bootstraps.)

    In your case, consider using the 2KB of BSL-Flash and the 32KB of RAM respectively.
  • Thanks old_cow_yellow

    We've decided to ignore the functionality of the BSL and flash in a bootloader app in the first vector of the internal flash to perform all of this, as 2KB is not enough, so we will get 128KB to play with and access to all the RAM. We will always flash in the bootloader via JTAG. Then the main application will be placed in the remaining three sectors of internal flash, through the bootloader, giving us 384KB for the app.

    Cheers.

**Attention** This is a public forum