EXMEM_BUFFER_SIZE
I have followed the procedure explained in the mentioned page and it seems to work fine. The Ok was always displayed when taking pictures with best quality and when recording video. So I defined EXMEM_HEAP_SKIP as zero. chdk with everything compiled occupies about 250 Kb. So 640 Kb would be more than enough. On the other I don't know how much memory it may allocate to execute its tasks. As the reference port of a more "robust" camera uses it I did the same. By the way, "Free memory info" displays just the status of the free memory managed by chdk ?
OSD printf format: when I was monitoring the bits of physw_status, at least in A800 the format used %#8x displays the memory in a way that shrinks and moves right or left in screen. Sometimes the screen gets dirt and shows something that is not even true. I used %08x that presents a fixed size dw on the screen making easier to identify the bits.
Menu,up,down,left 1pressed states - I used the OSD to display physw_status (I have recheked it now) and that is happening. At least since the A490(A495) the code mentions it. What I think is that the it doesn't seems to solve the problem (if is there really a problem and the code gets called with these keys)
Necessity of EXMEM. No, I don't have any problem with the code in lower memory. I have just enabled it because the code has already support for it and the instructions were fine. So I made the tests indicated and gets confused just about the best size to be configured.
Just something I am curious about: I have not dealed with this processor assembly. I have seen near the end of the starting code of the firmware of 3 cameras (A800, A495 and ixus220) the same sequence thar it seems strange:
ffc00114: e3a01001 mov r1, #1
ffc00118: e59f2060 ldr r2, [pc, #96] ; ffc00180: (c0243100)
ffc0011c: e5812000 str r2, [r1]
The last instruction was not supposed to be
STR R1,[R2]
or is there any trick ?