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.
Hi,
We are working on Firmware upgrade through OTA and need your support. We want to implement it with two images. Flash will be divided into 3 parts for bootloader, image-1 and image-2. When we receive FW upgrade command through serial port, image received will be stored @another image location(if image-1 is running at present, the new image will be store at image-2 memory locations and vice versa).
1. Is there any document describing FW upgrade with two images?
2. with every FW upgrade, need to switch between images which are stored @ different memory locations. To implement this, generating relocatable binary file with offset address and storing in flash @start of image address + offset address and jump to image start address will run the new image? Is this correct approach?
3. If so, what is the file format I need to generate? and how to generate it in CCS?
Please clarify.
Thanks,
Hari Priya
OTA FW Update Flowchart.pdfHi Chris,
Sorry for not providing sufficient information.
2. Please find in the attachment, high level flow chart of FW update implementation idea. Our idea is also to implement with single flash entry point where it always enters custom bootloader and from there it jumps to recent image address location. Please suggest if there is any other method to implement it.
3. Not hex format because the addresses are fixed(absolute addresses as per the linker file) in hex file. But in our case address where the image need to be stored changes every time we do FW update. It depends on which image is running at present and which is spare image. i.e it could be at either image-1 or image-2.
4. How this can be achieved? As per my understanding, we should generate a relocatable file with offset addresses and to be used to receive through serial port and store it in flash(image-1 or image-2) based on the offset address in the file. If this is correct, in which format we need to generate the file which need to be programmed through application FW? We need to copy the data section wise, like .text, .data etc or receive byte by byte and store as per the offset address?
Also do we need to use two linker files for two images.
5. I have gone through flash_kernel example code in which only one image is written(using serial flash programmer application) and the .b00 binary file is used. But when I see .b00 file it also has addresses fixed.
Please help.
Thanks,
Hari Priya