CHDK Wiki
(→‎Memory maps: Added gui events)
(→‎Technical Details: CPU details)
Line 6: Line 6:
 
*21.1 megapixel CMOS sensor
 
*21.1 megapixel CMOS sensor
 
*36x24 mm sensor size
 
*36x24 mm sensor size
  +
* CPU ID 0x41059461: "A", variant 0, arch 5, part 946 rev 1
  +
* Cache type 0x0f112112: unified cache, isize/dsize 32 byte cache lines, 4 way associative, 8 KB total
  +
* Cache setup 0x0005107d:
  +
** MMU enabled
  +
** Alignment fault disables
  +
** Cache enabled
  +
** Big-endian operation
  +
** System protection = 0
  +
** ROM protection = 0
  +
** I-cache enabled
  +
** Exception vectors at 0x00000000
  +
** Random cache replacement
  +
** L4 bit unset
   
 
== Firmware progress ==
 
== Firmware progress ==

Revision as of 04:28, 1 May 2009

Attention

The 5D Mark II is NOT ported yet, there's NO CHDK available for this camera.

Technical Details

  • Wikipedia page
  • Digic IV image processor
  • DryOS operating system
  • 21.1 megapixel CMOS sensor
  • 36x24 mm sensor size
  • CPU ID 0x41059461: "A", variant 0, arch 5, part 946 rev 1
  • Cache type 0x0f112112: unified cache, isize/dsize 32 byte cache lines, 4 way associative, 8 KB total
  • Cache setup 0x0005107d:
    • MMU enabled
    • Alignment fault disables
    • Cache enabled
    • Big-endian operation
    • System protection = 0
    • ROM protection = 0
    • I-cache enabled
    • Exception vectors at 0x00000000
    • Random cache replacement
    • L4 bit unset

Firmware progress

Memory maps

  • 0xFF80_0000 - 0xFFFF_FFFF: RAM image of DryOS and code (copied from ROM0 at boot)
  • 0xF800_0000 - 0xF880_0000: ROM0 image of DryOS
  • 0xF000_0000 - 0xF080_0000: ROM1 image (strings and other stuff?)
  • 0x0080_0000: Flasher code load address
  • 0x0000_0000: Reset vectors?
  • 0x0000_0480: Reset routine? Copied from 0xFF812B30 to 0x480 at startup
  • 0x0027_F000: Interrupt handler stack
  • 0x0002_0740: Interrupt handler context buffer
  • 0x0000_0664: Some sort pointer to a kernel structure
  • 0xC000_0000: Memory mapped device?
  • 0x0000_1900, 0x1928: Last panic code?
  • 0x0000_2DC8: A kernel structure copied from the stack


  • Startup at 0xFF81_0000, jumps to 0xFF81_000C
  • Data segment or config? 0x1900 - 0x20740
  • BSS? 0x20740 - 0x47750

GUI Events

  • Firmware Update dialog events:
    • 0x6 == IDC_DBN_OK
    • 0x7 == IDC_DBN_CANCEL
    • ? == PRESS_MENU
    • 0x805 == DELETE_DIALOG_REQUEST
    • 0x820 == SUB_DIAL (spin left)
    • ? == SUB_DIAL (spin right)
    • 0x829 == return 1 (unknown)
    • 0x82F == return 1 (unknown)