Memory workshop module - description (incomplete)
First, a warning: this utility will try to access any word of the 32 bit address space it is instructed to.
The user is responsible for specifying memory locations that are accessible. On newer DIGIC 6 cams, the first 32 bytes (0-31) are protected and crash the camera when read.
A binary is intentionally not provided.
There are two ways for leaving the module: pressing MENU will unload the module and return to CHDK menu. Pressing the ALT button will exit the module, but it will continue to run in the background.
If the module is running in background, it can be re-entered by starting it again.
Placing the module on the CHDK user menu is recommended for fast access.
The top line shows the 'logo' and a number of hints, depending on the currently active user interface element.
The second line from the top is the menu line.
The active UI element is displayed in red. Pages (entries on the horizontal menu line) can be selected with the left/right buttons.
The OPT and ADV pages are vertical menus. Manipulation of the selected menu entry is performed with the left/right buttons or the SET button, depending on the entry.
The effect of half shoot depends on the current operation: If a number is being edited, half shoot zeroes the selected digit.
Otherwise, half shoot cycles the copy/paste state (Disabled -> Copy -> Paste -> Disabled).
When the copy/paste state is not disabled, pressing SET executes the selected copy or paste operation if the current UI element allows it.
The effect of 'zoom in' or 'zoom out' is:
When copy/paste state is 'copy', zoom will cycle the current 'collection' entry.
Otherwise, when the sample view is shown, zoom will cycle the second sample column.
When editing a number, pressing full shoot zeroes the whole number.
Scrolling the wheel acts as the up/down button.
The module has 2 main operating modes: DMP (memory dump) and SMP (sampler). This can be changed by setting focus on the second word in the menu line and pressing SET.
There's a main switch (first word in the menu line). When HLT is displayed, memory is not accessed. Operation is enabled when RUN is shown.
The third word in the menu line is the main address, used in both operating modes.
The fourth word is the mask used in "sampler" mode. Any bits that should be watched for change need to be set '1'. To watch for every change of the word found at the main address, it should be set 'ffffffff'. If it's set to zero, sampling will be unconditional.
The fifth word (OPT) is the page of options. The sixth word (ADV) is the page for setting up the additional 5 sampled words, and saving/restoring the complete set of sampled words (including the main one).
At the end of the menu line, there's an indicator for the copy/paste state (-/C/P) and the selected entry of the 'collection'.
Howto for unconditional sampling multiple memory locations (up to 6 words), up to 500 samples/sec
- The following should be edited and copied to CHDK/MEMWS_00.INI
addr is the main address to sample, adr(0)...adr(4) are the additional five sampled locations.
[ver]
0x100
[sampledefs]
addr=0x4b25fc00
mask=0x0
kind(0)=0x1
opt(0)=0x0
ofs(0)=0x0
adr(0)=0x4b2f5c00
kind(1)=0x1
opt(1)=0x0
ofs(1)=0x0
adr(1)=0x4b38bc00
kind(2)=0x1
opt(2)=0x0
ofs(2)=0x0
adr(2)=0x4b421c00
kind(3)=0x1
opt(3)=0x0
ofs(3)=0x0
adr(3)=0x4b4b7c00
kind(4)=0x1
opt(4)=0x0
ofs(4)=0x0
adr(4)=0x4b54dc00
- The second word in the "menu" line should read "SMP" rather than DMP
- On the ADV page, highlight 'Load definition set', select 00 with the left/right buttons then press SET to load the config stored in MEMWS_00.INI.
- On the OPT page, set the 'sampling rate', 'continuous sampling', 'sample buffer' and 'delay before sampling start' options as desired.
Sampling starts by pressing SET on the first 'page', so that it reads 'RUN'.
If sampling is continuous, it needs to be stopped manually by pressing SET again on the first 'page'.
A delay can be useful for setting the cam in a certain state.
The sampled data can be saved in a CSV-line format for later analysis: on the OPT page, click on "Save sampled content to file" and then retrieve the file (named SMP_xxxx.JPG in DCIM/100CANON). It's not a JPG file, the name allows it to be show up using a regular PTP connection.