Suggestions are always welcome, I'd appreciate it.
I am not a programmer and do not fully understand all precesses.All I know about the firmware and modifications of the same I've learned by reading this forum and advice of people who know much more than me. One can say that I understand C code, assembler is much larger problem. I understand some basic things about the work of ASM code, but a deeper analysis and tracking within the ASM code is a problem.
I understand. Fortunately you're more than able to compile CHDK and make changes to the code. I'll try to come up with ideas.
Here's the first:
In case you know
how to run Canon Basic scripts, here's a RAM dumper script that will dump the first 16MB.
' RAM dumper
dim f,a,startadr=0,romsize=0x1000000,msgstr=0
private sub mydump(c, d)
sprintf(msgstr,"A/%0X.BIN",c)
LCDMsg_SetStr(a,msgstr)
f=Fopen_Fut(msgstr,"w")
Fwrite_Fut(c,d,1,f)
Fclose_Fut(f)
end sub
private sub Initialize()
UI.CreatePublic()
a=LCDMsg_Create()
LCDMsg_SetStr(a,"Running")
System.Create()
if ExecuteEventProcedure("UI_RegistDebugEventProc") = -1 then
ExecuteEventProcedure("UI.CreatePublic")
end if
msgstr = AllocateMemory(80)
mydump(0,0x1000000)
LCDMsg_SetStr(a,"Done")
FreeMemory(msgstr)
end sub
Prepare a card for Canon Basic scripts, make sure it's unlocked and there's no CHDK on it.
Start the cam in playback mode and press SET. The messages will not appear as intended, but it will finish in a few seconds (the camera user interface will freeze for that time).
It would be great if this could be used for taking a RAM snapshot in the other mode you've mentioned (wireless AP, I assume this is a separate operating mode you can switch the camera on with a dedicated button). But more than likely scripts will only run when cam was started in playback mode directly.
The file will be named "0.bin". This dump will allow us to see some firmware variables that are getting lost when CHDK is started.