port for A3300IS / what reference port to use? - General Discussion and Assistance - CHDK Forum

port for A3300IS / what reference port to use?

  • 289 Replies
  • 95572 Views
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 »

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 »
Ported :   A1200    SD940   G10    Powershot N    G16

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

  • *****
  • 3450
    • Photos
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)
  g5x (1.00c, 1.01a, 1.01b)
  g7x2 (1.01a, 1.01b, 1.10b)


*

Offline fe50

  • ******
  • 3147
  • IXUS50 & 860, SX10 Star WARs-Star RAWs
    • fe50
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.

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?

Ported :   A1200    SD940   G10    Powershot N    G16

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

  • ******
  • 14082
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.

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