I'm trying to find a way to prevent Canon code from saving their settings at shutdown.
Some settings are saved on the
MPU's EEPROM, when opening the card or battery door; also triggered by timeout (about 2 seconds after settings settle).
How I've reached this conclusion?
- M mode, changed shutter speed, opened battery cover and took battery out => change saved
- used a pin to hold the battery cover switch; changed shutter speed, took battery out => change not saved
- used a pin to hold the battery cover switch; changed shutter speed, waited a few seconds, took battery out => change saved
- used a pin to hold the battery cover switch; changed shutter speed a few times every 1 second, took battery out => change not saved (initial shutter speed restored)
- used a pin to hold the battery cover switch; changed shutter speed a few times every 2 second, took battery out => change saved (some intermediate shutter speed restored)
- reinstalled battery door, changed shutter speed, locked up the main CPU (cli(); while(1)

without delay, took battery out =>
change saved
- reinstalled battery door, locked up the main CPU (cli(); while(1)

, changed shutter speed (change visible on top screen), took battery out => change saved
So, we cannot prevent these settings from being saved into persistent. To my understanding, the MPU settings are all those properties starting with 0x8 (e.g. 0x80000005 PROP_SHUTTER, 0x80000039 PROP_VIDEO_MODE, 0x8000002f PROP_PIC_QUALITY). Some of these caused soft-bricking issues previously.