- ECU reprogramming firmware
- OBD2 diagnosis firmware
- CAN-logger firmware
What's the best way to technically tackle this? The most simple approach is to have a big firmware which contains all the personalities and upon using the button to choose the personality, a special key gets written in NVS and the device gets rebooted and after boot configures itself to do the right thing.
This means I can't update one firmware incrementally though. Would it perhaps be better to use three partitions with different app firmwares and then leverage the bootloader to choose which partition to boot from?
Or is there another good option which I have overlooked?