cancel
Showing results for 
Search instead for 
Did you mean: 

How to generate bin files and update software via OTA for TouchGFX project.

Tech_enthusiast_Manoj
Associate II

I am trying to build an application on Touch GFX platform.

One of my requirement is to update project via OTA. 

For that I have tried several things below. 

My understanding says that I have to upload bin in MCU memory and External flash for images. 

Is it possible to update touchgfx project which is in external ospi memory via custom bootloader. 

Also I have to flash.hex via custom bootloader, is there any function or api to decode.hex ?

I have flashed .bin file via custom bootloader which is working fine.

But touchgfx does not generate .bin file, that why I have to decode .hex file.

Can you suggest me some standard process for OTA for specifically Touch GFX projects 

3 REPLIES 3
LouisB
ST Employee

Hello @Tech_enthusiast_Manoj,

For exemple this line generate a bin from an object file :

arm-none-eabi-objcopy.exe -O binary ./STM32CubeIDE/Debug/Application/User/generated/Texts.o blabla.bin

But then you will need to the address of that bin for flashing.

 

Regards, 

Louis BOUDO
ST Software Developer | TouchGFX

Had Deja Vu there for a second..

https://community.st.com/t5/stm32-mcus-products/ospi-in-qspi-mode-issue-with-sending-address/m-p/689816#M253264

"The format is simple and well documented, one of your coders will have to code 

Perhaps use objcopy or objdump to get to a binary."

If you have the files on an MicroSD card you can read them like you would files on a PC with FATFS, FILE-X, or whatever.

.HEX tend to be about 2.5x bigger than equivalent .BIN files.

SRECORDS might also be a project worth reviewing if unfamiliar with reading files and parsing lines.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

I know that .hex file is well documented , all the data is followed by it address.

but i need a standard code to write the correct data in correct location.

Please suggest me some standard API to do all this.