supplierdeeply

port for A3300IS / what reference port to use?

  • 288 Replies
  • 22474 Views
  • Publish
    port for A3300IS / what reference port to use?
    « on: 23 / October / 2011, 13:03:48 »
    Advertisements
    hi,

    I am rather new to CHDK. So far I tested CHDK with a G10 and liked it. also fixed a bug in ptpcam (windows version).

    Now I started a port of the A3300IS.
    I have a dump already (DryOS) and the firmware version is:

    Canon PowerShot A3300 IS
    P-ID: 3223 PAL D
    Firmware Ver GM1.00D (1.0.0.0)
    Adj Ver.005.007
    Serial No. xxxxxxxxxxxxx
    Build: Jun  8 2011   10:32:57
    NoError
    Mecha Firm Ver. 2.07
    MechaDSP Ferm Ver. 1.03


    what is the best reference port to start with?

    thanks
    hipoww
    « Last Edit: 23 / October / 2011, 14:43:32 by hipoww »

  • Publish
    Re: port for A3300IS / what reference port to use?
    « Reply #1 on: 23 / October / 2011, 13:36:07 »
    http://www.dpreview.com/products/timeline?year=2011&brand=canon&category=compacts

    The sx220,  sx230 and ixus310 came out just after the a3300 so you might want to start by looking at either of those.

    Also,  philmoz did the sx230 & ixus310 ports so  I'd tend to trust them.

    « Last Edit: 23 / October / 2011, 13:40:57 by waterwingz »

  • Publish
    Re: port for A3300IS / what reference port to use?
    « Reply #2 on: 23 / October / 2011, 15:34:19 »
    thanks waterwingz,

    here A3300IS firmware dump: rev 1.00D (the file includes the script used)
    http://dl.dropbox.com/u/23667968/CHDK/A3300IS%201.00D%20firmware%20dump.zip

    CHDK wiki updated with A3300IS page.

    best
    hipoww

    *

    Offline philmoz

    • *****
    • 2936
      • Photos
  • Publish
    Re: port for A3300IS / what reference port to use?
    « Reply #3 on: 23 / October / 2011, 17:49:09 »
    Just to clarify I have done the G12, SX30, IXUS310 and helped on the SX130.
    The SX230 was not one of mine.

    The IXUS 310 is probably not a good choice as the touch screen interface is currently unique to this port.

    I would recommend working from more than one reference port, otherwise you may end up copying bugs or features that don't apply to your camera.

    If you pick an existing camera that is close to yours in release data and features then you can use that as a starting point. Copy and rename the camera and firmware folders - make sure to do both loader and platform directories.

    That should give you something that will at least compile - you can then look at the generated stubs_entry.S file. This will tell you the DryOS version #. Using this find a reasonably complete and well tested reference port with the same DryOS version (DryOS is the Canon O/S and cameras with the same version will have the most similarity).

    Familiarise yourself with all the code on the loader and platform directories for the camera. You are going to have to adjust most of these files.

    Phil.

    CHDK ports:
      sx30is (1.00c, 1.00h, 1.00l, 1.00n & 1.00p)
      g12 (1.00c, 1.00e, 1.00f & 1.00g)
      sx130is (1.01d & 1.01f)
      ixus310hs (1.00a & 1.01a)
      sx40hs (1.00d, 1.00g & 1.00i)
      g1x (1.00e, 1.00f & 1.00g)


    *

    Offline fe50

    • ******
    • 3033
    • IXUS50 & 860, SX10 Star WARs-Star RAWs
      • fe50
  • Publish
    Re: port for A3300IS / what reference port to use?
    « Reply #4 on: 24 / October / 2011, 02:06:55 »
    here A3300IS firmware dump: rev 1.00D (the file includes the script used)
    http://dl.dropbox.com/u/23667968/CHDK/A3300IS%201.00D%20firmware%20dump.zip

    Added the
    • A3300 1.00D
    full 8MB dump (dumped with cBasic udumper) provided by hipoww from this forum post to the box.net/chdk repository.

  • Publish
    Re: port for A3300IS / what reference port to use?
    « Reply #5 on: 02 / December / 2011, 01:11:55 »
    Is there any progress on this port?


  • Publish
    Re: port for A3300IS / what reference port to use?
    « Reply #7 on: 22 / December / 2011, 21:06:59 »
    Can anyone tell me the main files i need to work on to just get the cam to boot, i have been reading, but i feel like im doing it wrong, just want to see it finally boot so i feel like im on the right track, so far when i compile with the chdk-shell it compiles with errors of coarse, but i get the diskboot.bin i set to lock on card and it just makes cam not turn on and i have to take bat out to fix it.


    *

    Offline reyalp

    • ******
    • 9803
  • Publish
    Re: port for A3300IS / what reference port to use?
    « Reply #8 on: 22 / December / 2011, 21:25:24 »
    Can anyone tell me the main files i need to work on to just get the cam to boot, i have been reading, but i feel like im doing it wrong, just want to see it finally boot so i feel like im on the right track, so far when i compile with the chdk-shell it compiles with errors of coarse,
    If there are compile errors, then you need to fix them. You can comment stuff out to make it compile.
    Quote
    but i get the diskboot.bin i set to lock on card and it just makes cam not turn on and i have to take bat out to fix it.
    You shouldn't get a diskboot.bin if there were compile errors. Chances are it's a leftover from something else you did.

    See here for what you need to change http://chdk.wikia.com/wiki/Adding_support_for_a_new_camera

    If you are having trouble booting, you can put loops that blink an LED at various points. See http://chdk.wikia.com/wiki/Debugging

    Execution starts in loader/<camera>/entry.S

    You can put the asm there to verify that your binary is correct. If that doesn't work, it usually means you haven't encoded diskboot correctly.
    Don't forget what the H stands for.

  • Publish
    Re: port for A3300IS / what reference port to use?
    « Reply #9 on: 24 / December / 2011, 11:33:34 »
    Can anyone tell me the main files i need to work on to just get the cam to boot, i have been reading, but i feel like im doing it wrong, just want to see it finally boot so i feel like im on the right track, so far when i compile with the chdk-shell it compiles with errors of coarse,
    If there are compile errors, then you need to fix them. You can comment stuff out to make it compile.
    Quote
    but i get the diskboot.bin i set to lock on card and it just makes cam not turn on and i have to take bat out to fix it.
    You shouldn't get a diskboot.bin if there were compile errors. Chances are it's a leftover from something else you did.

    See here for what you need to change http://chdk.wikia.com/wiki/Adding_support_for_a_new_camera

    If you are having trouble booting, you can put loops that blink an LED at various points. See http://chdk.wikia.com/wiki/Debugging

    Execution starts in loader/<camera>/entry.S

    You can put the asm there to verify that your binary is correct. If that doesn't work, it usually means you haven't encoded diskboot correctly.
    Hi, thanks for the responce, i was able to get the diskboot.bin by ingnoring errors, but since then I corrected them, and get no errors now, but no matter what i still cant get no boot with card in and i have to remove card at rest bat to get it to boot without chdk of coarse. I tried changing the Need_Encode from 1 through 6 and no change, this is all I see in entry.s
        .section .entry

    // Turn OFF SD Card power           
    // to support autostart. SX220 @FF06B2E0
       LDR     R3, =0xC022005C
       MOV     R2, #0x44
       STR     R2, [R3]
       
    // looks like idle cycle is required for proper shutdown
       MOV     R3, #0x8000   // increased from 8000 to F0000 for extra delay for sx200 maybe could be 10000 ?
    1:
       SUB   R3, R3, #1
       CMP   R3, #0
       BNE   1b

    // ordinary startup...

       MOV     SP, #0x1900
       MOV     R11, #0
       B   my_restart

    I used the sx220 firmware to find out where this address would be in my firmware so the first address is what should be the address for the a3300is, or am I doing something wrong there? Is the sx220 the  wrong cam I should be looking at, from what i saw, it seems pretty close to the a3300is???  Could it be something in the makefile.inc
    #3223
    PLATFORMID=12835


    PLATFORMOS=dryos

    MEMBASEADDR=0x1900
    RESTARTSTART=0x50000
    MEMISOSTART=0x133D38
    ROMBASEADDR=0xffc00000
    NEED_ENCODED_DISKBOOT=4

    PLFLAGS=-DMEMBASEADDR=$(MEMBASEADDR) -DMEMISOSTART=$(MEMISOSTART) -DMEMISOSIZE=$(MEMISOSIZE)
    PLFLAGS+=-DRESTARTSTART=$(RESTARTSTART)

    #KEYSYS=d4a

    I really didnt know what the addresses should be so I left them other then change the ROMBASE to mine.

    The only other files I have touched were totally changing all addreses to my firmware addreses in boot.c and a few in the stubs_entry_2.s just all the ones that stuck out so far, especially the taskhook ones at the top.

    Am I going about it all wrong? I have already read the adding support for new cam, thats what helped me, but there not enough detail in there really for a newbie like me i guess, sux cause I have time to do this, and learn fast but need more help to get going I guess.

    « Last Edit: 24 / December / 2011, 12:27:47 by mk11174 »

     

    Related Topics