2024-12-03 08:42 AM
We would like to support a dual bank approach for background software updates.
This allows the TouchGFX assets to be flashed into the un-used bank in the background while original application is still running (using the other bank). Then the restart and bootloader re-flash of only the application is quick.
To do this we would need to set the "Base address of Assets" during startup, is this possible?
e.g.
- Current application has TouchGFX assets in Bank 2
a) background download of new package (application + assets)
a1) application -> external staging flash
a2) assets -> Bank 1 (the one not in use)
b) restart device
b1) staged application -> application internal flash
b2) header set to tell it to use Bank 1
c) application starts
c1) Sets TouchGFX asset base address to Bank 1 address
c2) Bank 2 is not in use for new time this process occurs
2024-12-04 06:26 AM
Hello,
I find it hard to understand how to get TouchGFX assets to be flashed while the application is using them.
If you have dual bank config, you will have two applications one running and one getting updated. Each application has its own TouchGFX assets. Unless I'm missing something from your description.
2024-12-04 11:05 AM
Let me simplify things:
2024-12-04 11:31 AM
When you ask is supported NO
Is doable Yes
I mean this only is based on linker files. You prepare two and build for destination.
2024-12-05 04:17 AM
Interesting Idea, however, not possible.
We generate a single compilation, and ship deliver to customers, the installation process makes the A or B decision, based on the previous installation, since version can be skipped there is no predictable pattern. Therefore, it has to be done in the application at run time during the TouchGFX initialization.
I have examined the TouchGFX output and certainly I can make it do this, but it's not a nicest of methods. I was just hoping I was not the first person requiring this, and that TouchGFX had some support mechanism already in-place.
2024-12-05 07:56 AM
@c-abbott wrote:Then the restart and bootloader re-flash of only the application is quick.
Why not in bootloader determine what app required and distribute both?
For example bin1 file for asset update and bin2 file with appA and appB. Boot loader compare assets position and versions and skip appA when appB is required.