Loading system images

I am trying to build a package for this software so that I can remotely upgrade a test machine that is not cloud connected.

When I do the procedure to upgrade the system images in my Photon, I see it loading the following items into flash:

system-part1.elf at 0x8020000
system-part2.elf at 0x8060000
user-part.elf at 0x80A0000

Since user-part.elf is being loaded at the same location as my application code, I am assuming that I can disregard that. So if I wanted the code for a full firmware upgrade (including system libraries) could I package up system-part1.elf, system-part2.elf, and my application code? Would that be enough?


Scott =)

Hi Scott,
Yes, that’s correct - if you package up system-part1, system-part2 and your application code (user-part) then that is a full system update. The user-part file that is on our release pages is Tinker - the factory default application, so you can safely skip that.

1 Like

Thanks. Most of the time I am just going to upgrade with my application, but sometimes I am going to need to update the system libraries. :wink:

If I understand correctly, I can also write 128k of stuff to 0x80E0000 if I want a factory reset area.

When I put the board in DFU mode, where is that running from? Is that part of the system images, or is that a separate thing?

DFU mode is provided by the bootloader. 16K at 0x8000000.

So, 128K for the DFU area, 256K each for system part 1 & 2, and 128K for the factory reset area. If we only have 128K of code space, that would imply that there is also something at 0x80C0000, otherwise we would have 256K of code space.

Is there something at 0x80C0000?


It’s more involved than that. Let me point you to the Photon/P1 memory map.


Cool! That is what I have been looking for.


1 Like