Back in 2014, the RIOT operating system was made usable on the Spark Core in such a way that the bootloader would stay intact with help from this community.
The Particle Xenon is currently well supported in RIOT (with various radio implementations available using the softdevice, the NimBLE stack or an own 6LoWPAN stack, and recently also USB Ethernet), but the current port is flashed using an external programmer and (to the best of my knowledge) overwrites the whole bootloader, making the switch between RIOT and Particle software require a hardware debugger.
I’m working to make RIOT flashable using the Particle bootloader, and (like Christian in the 2014 thread) got to the point where I could run
dfu-util -a 0 -s 0x30000:leave -D bin/particle-xenon/usbus_minimal.bin
but unlike in the case then, I don’t even get five seconds of running time. When I execute that flash, and ever since, my board goes into DFU mode (yellow blinking) right away.
My hypothesis is that the bootloader is verifying that system-part1 and user-part match, or verifying either of those two, and my bare program fails that check – but I did not find those bootloader details yet.
Could you give me a hint as to where to look on?
(For reference, there is a parallel issue in RIOT’s tracker that has more gory details of my journey so far).