Yeah, well... my camera occasionally crashes because the flash isn't charged enough, but I managed to document how it works a bit. I wanted to get my external flash to do the same (and maybe allowing me to figure out the external flasher protocol) but it wouldn't. This lead me to bypassing printf so I could log even more (I even got the dry shell running but I can't talk to it and it's not really useful anyway... oh, and I can run the commands from C code anyway). Currently I'm trying to get the display to magnify a bit, I found out that suspending ImageSensorTask stops the live view (and makes some assertions fail if I don't resume it within a second) and seeing that it's a challenging task, I'm now looking into bypassing exception handlers so I can scan the memory. Not much so far, the camera locks and crashes like never before but at least I managed to keep my camera awake, rather than turning off, when accessing i.e. 0x20000000 in the memory viewer. I can't even properly return, though, so the CHDK GUI is disfunctional after doing that. Still occasionally it locks up or shuts down the camera completely and I have no idea why, it shouldn't be this random.
I also found Canon's exception handler for memory access errors but it doesn't call any of the function I rerouted (or which are easy to reroute) and it's stuffed with IRQ enable/disable and in/out-exception-handler-jumping so it's probably hard to route this into a file.
Also telling you this because people might notice I didn't commit in a couple of days.
Oh yes, maybe someone might find this useful... output from all commands (except for a few which don't report status information) accessible through drysh.
http://dataghost.com/chdk/drysh.txtBy the way, disabling preflash might be possible but it's still going to be difficult. I suspect it's being executed through ExecuteEventProcedure, which wants a string (function name) as argument and I'm nowhere near close to figuring out how that's done (most of the functions don't even have an XREF to ExecuteEventProcedure at all) or where the used strings come from.