supplierdeeply

SD 800IS Port - ixus850_sd800 100e - beta 2 available

  • 54 Replies
  • 12375 Views
  • Publish
    SD 800IS Port - ixus850_sd800 100e - beta 2 available
    « on: 02 / February / 2008, 15:03:03 »
    Advertisements
    2/29/08 - Here are sources and the binary for trunk version 310 (allbest 37). RAW is now working just fine (i was able to use DNG4PS2 to get photos into photoshop just fine). scripts also seem to be ok. Enjoy the leap year with a new version =)


    ixus850_sd800_100e_beta_2-sources.zip - 1.06MB
    ixus850_sd800_100e_beta_2-binaries.zip - 0.21MB

    ------------------------------------------------------------------------------------------------------------------------------------------------

    2/25/08 Edit: success - Have the port booting. Raw doesn't work (causes camera to shut down), histogram seems ok. haven't checked zebra mode or video recording.

    The sources are against changelist 306 of the main trunk (allbest 34?).

    ixus850_sd800_100e_sources.zip - 8.65MB
    ixus850_sd800_100e_binaries.zip - 0.20MB
    ixus850_sd800_100e firmware

    Bug reports and/or helpful tips for the port are welcome

    ---------------------------------------------------------------------------------------
    I have one of these cameras and was looking to start porting this, but I was wondering if anyone else had any progress on it that wasn't yet posted. No sense in duplicating work, right?
    « Last Edit: 29 / February / 2008, 10:48:14 by mrblack51 »

    *

    Offline whoever

    • ****
    • 280
    • IXUS950
  • Publish
    Re: SD 800IS Port - ixus850_sd800 100e - anyone have progress to share?
    « Reply #1 on: 03 / February / 2008, 08:10:26 »
    quietschi intended. He probably hasn't been around for a while.

  • Publish
    Re: SD 800IS Port - ixus850_sd800 100e - anyone have progress to share?
    « Reply #2 on: 03 / February / 2008, 12:13:53 »
    I have made some progress in finding the appropriate functions - will post my progress later today perhaps

  • Publish
    Re: SD 800IS Port - ixus850_sd800 100e - anyone have progress to share?
    « Reply #3 on: 04 / February / 2008, 01:49:21 »
    Here is my initial attempt to port for the SD800IS. It should be pretty close. However, I am running into a problem with the source for

    capt_seq.c -> capt_seq.o
    C:\...\Temp/cccRaaaa.s: Assembler messages:
    C:\...\Temp/cccRaaaa.s:90: Error: invalid constant (122) after fixup
    c:\chdk\gcc\bin\gmake[4]: *** [capt_seq.o] Error 1
    c:\chdk\gcc\bin\gmake[3]: *** [all-recursive] Error 1
    c:\chdk\gcc\bin\gmake[2]: *** [all-recursive] Error 1
    c:\chdk\gcc\bin\gmake[1]: *** [all-recursive] Error 1
    gmake: *** [all-recursive] Error 1

    The offending line of code is coming from sub_FF99BA84_my - "MOV     R0, 0x122\n". In sub_FFB01EB0_my, which is the equivilent function for the ixus70_sd1000, the value of the mov is #0x84. Putting #0x84 in there will allow it to compile, but I don't think that will end up properly.

    Right now I am still not getting it to boot properly...I must be missing something. any help would be great.


    *

    Offline whoever

    • ****
    • 280
    • IXUS950
  • Publish
    Re: SD 800IS Port - ixus850_sd800 100e - anyone have progress to share?
    « Reply #4 on: 04 / February / 2008, 03:22:45 »
    ARM cannot do "MOV R0, 0x122" in one shot. Try
    Code: [Select]
    MOV R0, #0x120
    ADD R0, R0, #2
    As far as booting, among many things that can go wrong, be sure to verify that AllocateMemory and FreeMemory are correctly identified.
    « Last Edit: 04 / February / 2008, 03:30:00 by whoever »

    *

    Offline quietschi

    • ***
    • 116
    • Ixus70 102a
  • Publish
    Re: SD 800IS Port - ixus850_sd800 100e - anyone have progress to share?
    « Reply #5 on: 04 / February / 2008, 06:13:47 »
    Right now I am still not getting it to boot properly...I must be missing something. any help would be great.

    Hi mrblack51
    i still work on a port for the ixus850_sd800, and have a few issues.
    Your boot.c and makefile.inc is incorrect
    makefile.inc: MEMISOSTART=0xBA7B0
    boot.c:
    void boot()
    {
        long *canon_data_src = (void*)0xFFB74640;
        long *canon_data_dst = (void*)0x1900;
        long canon_data_len = 0xCBB0;
        long *canon_bss_start = (void*)0xE4B0; // just after data
        long canon_bss_len = 0xBA7B0 - 0xE4B0;
    ...
       "LDR     R0, =h_usrRoot\n" //sub_FF811A60
       "MOV     R1, #0x4000\n"
       "LDR     R2, =0xEA7B0\n" // 0xBA7B0 + 0x30000
       "STR     R12, [SP]\n"

    my port is booting right now, but not everything is working correct. able to take pictures, menu, zebra histo working, raw right now not working.

    NOTE: propcase of this camera are digicII based!?! (not digicIII)

    cheers quietschi


    « Last Edit: 04 / February / 2008, 07:03:58 by quietschi »

    *

    Offline quietschi

    • ***
    • 116
    • Ixus70 102a
  • Publish
    Re: SD 800IS Port - ixus850_sd800 100e - anyone have progress to share?
    « Reply #6 on: 05 / February / 2008, 04:37:53 »
    Hi
    As said in the posting above. This is a digicIII camera but the property cases are like the other digicII based cameras.
    This means the property cases are not digic specific more like production date specific.
    So please can someone edit the platform.h
    #if defined(CAMERA_a570) || defined(CAMERA_a560) || defined(CAMERA_a720) || defined(CAMERA_ixus70_sd1000) || defined(CAMERA_a650)
    so the right property cases are called.

    cheers quietschi

  • Publish
    Re: SD 800IS Port - ixus850_sd800 100e - anyone have progress to share?
    « Reply #7 on: 05 / February / 2008, 15:17:14 »
    Just wanted to say that you guys are total heroes!!  Looking forward to using the SD800 and/or SD870 with 28mm equivalent lens for kite aerial photography when CHDK is ported.  Examples of kite aerial photography here http://www.flickr.com/photos/ml_kap/273702075/     and here: http://www.flickr.com/photos/ml_kap/2127796341/.

    Thanks loads!!



  • Publish
    Re: SD 800IS Port - ixus850_sd800 100e - anyone have progress to share?
    « Reply #8 on: 08 / February / 2008, 11:27:31 »
    quietschi: would you mind posting your progress so far? I would love to be able to start messing around with this stuff, but i still can't seem to get a booting image working.

    As far as the addresses for AllocateMemory and such - I found the function table at FF81B614, which seems to have the addresses for AllocateMemory (FF81AD84) and FreeMemory (FF81AD70). I can see how the data, bss, and such are gettign set in the init code, so that makes sense.

  • Publish
    Re: SD 800IS Port - ixus850_sd800 100e - anyone have progress to share?
    « Reply #9 on: 20 / February / 2008, 02:21:39 »
    Attached is my current code. boot.c and makefile.inc should be ok. I think the addresses in the stubs files are fine, and capt_seq/movie_rec should be ok too...im thinking the keyboard mappings are still wrong though, just not sure where in the rom to figure out where to fix them.

    I think this is the keymap, here is the disassembly from IDA
    Code: [Select]
    ROM:FF828994 keymap          KeyMap <0x37, 2, 0x101, 0x900> ; DATA XREF: ROM:off_FF828C6Co
    ROM:FF828994                                         ; ROM:off_FF828DB8o ...
    ROM:FF828994                 KeyMap <0x38, 0, 0, 0xFFFFFFFF>
    ROM:FF828994                 KeyMap <0x39, 0, 0, 0xFFFFFFFF>
    ROM:FF828994                 KeyMap <0x3A, 2, 0x100, 0x600>
    ROM:FF828994                 KeyMap <0x3B, 1, 0, 0xFFFFFFFF>
    ROM:FF828994                 KeyMap <0x3C, 0, 0, 0xFFFFFFFF>
    ROM:FF828994                 KeyMap <0x3D, 0, 0, 0xFFFFFFFF>
    ROM:FF828994                 KeyMap <0x3E, 2, 0x101, 0>
    ROM:FF828994                 KeyMap <0x3F, 2, 0x101, 1>
    ROM:FF828994                 KeyMap <0x40, 0, 0, 0xFFFFFFFF>
    ROM:FF828994                 KeyMap <0x41, 0, 0, 0xFFFFFFFF>
    ROM:FF828994                 KeyMap <0x42, 2, 0x101, 2>
    ROM:FF828994                 KeyMap <0x43, 2, 0x101, 3>
    ROM:FF828994                 KeyMap <0x44, 2, 0x101, 4>
    ROM:FF828994                 KeyMap <0x46, 2, 0x101, 5>
    ROM:FF828994                 KeyMap <0x45, 2, 0x101, 7>
    ROM:FF828994                 KeyMap <0x47, 2, 0x101, 6>
    ROM:FF828994                 KeyMap <0x48, 2, 0x101, 8>
    ROM:FF828994                 KeyMap <0x49, 2, 0x101, 9>
    ROM:FF828994                 KeyMap <0x4A, 2, 0x101, 0xA>
    ROM:FF828994                 KeyMap <0x4B, 2, 0x101, 0x15>
    ROM:FF828994                 KeyMap <0x4C, 0x80, 0x200, 0xFFFFFFFF>
    ROM:FF828994                 KeyMap <0x4D, 0x80, 0x200, 0xFFFFFFFF>
    ROM:FF828994                 KeyMap <0x4E, 0x80, 0x200, 0xFFFFFFFF>
    ROM:FF828994                 KeyMap <0x4F, 2, 0x100, 0x905>
    ROM:FF828994                 KeyMap <0x50, 2, 0x101, 0x909>
    ROM:FF828994                 KeyMap <0x51, 2, 0x100, 0x90A>
    ROM:FF828994                 KeyMap <0x52, 2, 0x100, 0x902>

     

    Related Topics