CHDK-PT updated 2013-02-07
This thread supports
CHDK-PT, a Windows GUI tool for porting CHDK between firmware versions on the same camera.
Link to CHDK-PT Wiki Page :
CHDK-PT Wiki Page Link to CHDK-PT Executable :
CHDK-PT download Link to CHDK-PT SVN site :
CHDK-PT assembla SVN SiteCameras Originally Ported : G10 1.02A, 1.03B, 1.04A
IXUS120-SD940 1.03c to 1.00e & 1.01a
IXUS105-SD1300 1.00d to 1.00c (with microfunguy)
S95 fw 1.00h to 1.00i & 1.00k
A490
A495 fw 1.00f to 1.00d & 1.00e (with philmoz)
IXUS200-SD980 1.00c to 1.01c (with philmoz) 1.01c to 1.01d (by gbit)
IXUS100-SD780 1.00c to 1.00b
.. and since then many more ..
BackgroundThe CHDK-PT program was created to simplify porting CHDK between different firmware versions on a supported Canon camera. Porting to a new camera is hard - really hard. And porting between firmware versions is not trivial either. But it is somewhat easier. Hardware addresses, dancing bits, memory maps, and the CHDK loader have all been resolved. Not to mention that there is proof that a port is possible at all. While CHDK-PT will not port automatically for you, it should simplify the process once you understand the basics of CHDK programming.
CHDK-PT supports the following functions :1) Generic ARM dissassembler. Point it at a camera dump
primary.bin file, pick the address you want to dissassemble from, the number of words to dissassemble and click on the
Load button. It will produce gcc compatabile "C" code suitable for use in CHDK builds.
2) Generic ARM dissassembler for CHDK
stubs_entry.S or
stubs_entry_2.S files. Point it at a camera dump
primary.bin file, select a related
stub_entry.S or
stubs_entry_2.S (from the CHDK build process) and use the
List Load ->
Stubs button. It will produce gcc compatabile "C" code of each routine referenced by the stubs.S file.
3) Generic ARM dissassembler for a list of addresses from a file. Select a formated
address.txt file (sample include) with the
List Load ->
Addresses button. It will produce gcc compatabile "C" code of each routine referenced by the
address.txt file.
4) Converting tool for CHDK stubs_entry.S and
stubs_entry_2.S files. Point it at a reference camera dump
primary.bin file and its associated
stubs_entry.S or
stubs_entry_2.S file. Then point it at the dump from a different firmware version of the same camera. It will produce a
stubs_entry.S or
stubs_entry_2.S file from the new firmware version based on matching code from the reference port.
5) Converting tool for CHDK "C" task files. Point it at a reference camera dump
primary.bin file and a list of addresses for the various related "C" task files (
boot.c, capt_set.c, movie_rec.c). Then point it at the dump from a different firmware version of the same camera. It will produce set of "C" routines from the new firmware version based on matching code from the reference port.
6) (future) Will optionally create a new
signatures.h file for the reference port which can then be edited and converted to a customized
stubs_entry_2.S file.
Save the resulting output from the steps listed above using the
Save button.
Initial ReleaseI have a list of changes & updates that I will implement prior to declaring a 1.0 release status. Other input, feedback, bugs reports, and feature requests all welcome on this forum thread.