This page lists technical documentation relevant to CHDK development.
General ARM documentation
- Covers register usage, addressing modes, detailed description of each instruction, including encoding.
- Covers procedure call standards, mixing ARM/Thumb, mixing C/ASM, exceptions, and some useful stuff about ROM. Written for users of the arm SDK, but still relevant.
- ARM® Developer Suite Assembler Guide General ARM assembler information. Includes syntax, register names etc. Written for arms own SDK, so not all of it is applicable to GNU tools.
- GNUARM.org home
- GNU arm toolchain, also a lot of useful general docs in the resources section.
Digic 5 and below an ARM946E-S processor. See this thread Getting CPU configuration from CP15 for more information.
- ARM946E-S (Rev1)System-on-Chip DSP enhanced processor Product Overview Revision: r1p1
- ARM946E-S™ Technical Reference Manual
- ARM9E-S Core™ Technical Reference Manual Revision: r2p1
Cortex R4 documentation
Digic 6 uses a Cortex-R4 processor. See http://chdk.setepontos.com/index.php?topic=11316.msg124273#msg124273
- Cortex™-R4 and Cortex-R4F Technical Reference Manual
- ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition
Design rule for Camera File system (DCF)
This standard specifies the layout of the DCIM directory.
- note: This is version 1.0, which is outdated. The latest version is available for purchase from JETA.
It is technical identical with CIPA DC-009 Design rule for Camera File system. The current Versions are co-writen bei JETA and CIPA and can be found with "site:http://www.cipa.jp/english/hyoujunka/ pdf dc009"
Picture Transfer Protocol (PTP)
This is the protocol used for camera USB transfer.
Canon PowerShot Series Transfer Protocol Description (first updated in 2000, last updated 2005)
Most non-DryOS cameras appear to use some variant of VxWorks 5.x
- Includes VxWorks 5 developer documentation and API reference.
- Mostly fluff, requires login for technical documentation.
Canon Digital Camera Software Developers Kit
Current Canon SDK Versions as of July 8, 2008 (requires proper access).
- PS-ReC SDK 1.1.0e / CD-SDK 7.3 for PowerShot digital cameras
- EDSDK 2.4/RC-SDK 8.4 for EOS digital cameras
- EDSDK - support remote control, raw image conversion and downloading from select EOS Digital SLRs with DIGIC III or DIGIC II processors, starting with the EOS-1D Mark II and continuing through to the EOS Rebel XSi and XS.
- RC-SDK - supports remote control, raw image conversion and downloading from most EOS Digital SLRs introduced before the EOS 30D.
- PS-ReC SDK - supports remote control including video out with the PowerShot G10, G9, G7, S5 IS, S3 IS, S80, SX110 IS, SX100 IS, A640 and A620 models exclusively.
- CD-SDK - supports downloading with all USB PowerShots released before 6/30/2005. Remote control and video out are supported with some of these models.
- RD-SDK - supports raw image conversion with select USB PowerShots.
Note: The obtaining the canon SDK may require you to agree to an NDA which would limit your ability to contribute to CHDK.
CIPA Specs, Whitepapers & Guidelines
CIPA - Camera & Imaging Products Association
- CIPA Homepage: http://www.cipa.jp/english/index.html
- CIPA Standards & Guidelines: http://www.cipa.jp/english/hyoujunka/kikaku.html
Adobe Digital Negative (DNG)
An open, camera neutral RAW format.
- Adobe DNG homepage
- DNG SDK Download - includes DNG specification and dng_validate tool
- DNG specification