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.

TM4C1294NCPDT: Custom Bootloader: Firmware update over Wifi

Part Number: TM4C1294NCPDT

hi,

We are using TM4C1294NCPDT in our custom board. We are looking to write custom bootloader to support OTA firmware update. The basic idea is to download the update file from the online server and copy it in the flash. Call the custom bootloader routine. The bootloader routine would check if a firmware is available at the designated location. It would then copy the firmware from the flash location to the actual location and handover control to the application.

We would like to ensure crc check is done before the new firmware is copied by the bootloader.

Kindly suggest how to go forward for implementing this solution.

Thanks.

  • Hello Suchit,

    You are correct that you would need to write a custom boot loader to handle that as the flash boot loader examples and TivaWare ROM boot loader don't support boot loading out of Flash itself. I don't have much to offer in terms of implementation though, our support is centered on TivaWare and those boot loaders. The provided boot loaders provide the background along with the Boot Loader User's Guide. We can try and answer specific questions if you run into issues though. You also can search E2E for relevant topics and see what other users have accomplished.

    I also want to that what you described is possible, but difficult. You would be close to halving your available memory at best, depending on the amount of space needed for the boot loader, which isn't very efficient. Therefore I am not sure that your application has a lot of benefits to offer, from my point of view.

    As an alternative idea, would it not make more sense to use a WiFi device which handles CRC checks of the over-the-air data etc. to ensure the data is correct, and then send that data over via an I2C or SSI boot loader? That would be a much cleaner solution I'd think.

    If you aren't going to rely on the CRC to be done from the WiFi side, then that becomes another large software implementation which would eat up even more available space as that would need to be part of the boot loader as well as you'd need to store the CRC values from where ever you are generating them to cross check.

    FYI another thread with a similar idea came up here, and this person looked into using external memory which would also be better than just using the TM4C Flash memory: e2e.ti.com/.../621939