chdk

This page lists technical documentation relevant to CHDK development.

ARM 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.
GNU arm toolchain, also a lot of useful general docs in the resources section.

ARM946ES documentation

Digic 5 and below an ARM946E-S processor. See this thread Getting CPU configuration from CP15 for more information.

Cortex R4 documentation

Digic 6 uses a Cortex-R4 processor. See http://chdk.setepontos.com/index.php?topic=11316.msg124273#msg124273

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)

USB Protocol

VxWorks

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).

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

Adobe Digital Negative (DNG)

An open, camera neutral RAW format.

Exchangeable Image File Format (EXIF)