No way back from flashing Photon with MODULAR=n [Solved]

Hi Guys,
I wanted to experiment with OpenOCD so I compiled the firmware into one file:
firmware/main$ make clean all -s PLATFORM=photon COMPILE_LTO=n APP=blink program-dfu MODULAR=n
but now I don’t want to compile the entire system, just the user part, so the question is what do I do?
Changing MODULAR to y:
firmware/main$ make clean all -s PLATFORM=photon COMPILE_LTO=n APP=blink program-dfu MODULAR=y
obviously doesn’t work and neither does calling make from the modules directory
/firmware/modules$ make clean all -s PLATFORM=photon COMPILE_LTO=n APP=blink program-dfu
the one above actually loads the code in parts, but after flashing the user part in just breathes purple
What is the right non-modular path?

If you are building an app module, you’d need the modular system on the device too.
Monolithic firmware is, well, ***mono***lithic, system and app firmware are one.

So you either have to

  • build the full set of modules and flash them (if you had changed something in the system modules), or
  • do particle update (or any other way to reload the official system modules), or
  • always build the monolithic firmware (but you can scrap the clean switch in the make command to speed up the build)
1 Like

Thanks ScruffR for the summary. Running ‘particle update’ fixed everything, but I checked out the first option as well.
This time somehow running make in the firmware/modules directory worked fine and I was able to modify, compile and flash the user part alone ever since. Monolithic firmware is good for openocd I guess, but the flashing time is much longer compared to the user-part alone. Anyway thanks a lot for your help.
Take care

1 Like