Powershot A3100 - Porting thread - page 10 - DryOS Development - CHDK Forum supplierdeeply

Powershot A3100 - Porting thread

  • 139 Replies
  • 37593 Views
*

Offline srsa_4c

  • ******
  • 4005
Re: Powershot A3100 - Porting thread
« Reply #90 on: 06 / January / 2013, 12:22:14 »
Advertisements
... or is there anything I can do from here?
You could try to get a romlog, there's a chance that it would help.

Re: Powershot A3100 - Porting thread
« Reply #91 on: 06 / January / 2013, 13:56:54 »
A romlog would help, but you will need to setup your sdcard for scripting. I'll do a re-port of the boot.c file, thats the only one where i kept the source for the 100d and only adjusted the function calls. I'll also disable some hooks so that it should boot as bare as possible, so we can add functionality after each confirmed working boot.

Re: Powershot A3100 - Porting thread
« Reply #92 on: 06 / January / 2013, 14:22:30 »
Well, I have a spare sdcard to mess around with. ;)
This romlog is a nice script. I start the cam with CHDK pressing play, exchanged the sdcard with the script-card and here is the output:
Code: [Select]
Exception!! Vector 0x04
Occured Time  2013:01:06 21:17:19
Task ID: 12451866
Task name: SpyTask
Exc Registers:
0x00000001
0x000037BC
0x00148CE7
0x0014AE27
0x00169B2C
0x00169164
0x00148B09
0x00169B2C
0x19980218
0x19980218
0x19980218
0x19980218
0x80000000
0x00309F7C
0x00000B3D
0x00031ABC
0x20000013
StackDump:
0x002F2DEC
0x19980218
0x19980218
0x19980218
0xFF8170E0
0x19980218
0x19980218
0x00001008
00000050: *** Camera Log Start ***

00000060: UI:Button:0x000010B4:WriteEnableMedia

00000080: UI:_BeforeCBRForPlay

00000080: UI:_AfterCBRForPlay

00000080: UI:DSIC:55,0

00000080: UI:LogicalEvent:0x5003:adr:0,Para:0

00000080: UI:LogicalEvent:0x1165:adr:0,Para:0

00000080: UI:_SImage

00000080: UI:SetPanelBrightnessToLcdController

00000080: UI:SetDisplayType

00000080: UI:TurnOnDisplayForStartup

00000080: UI:LogicalEvent:0x5007:adr:0,Para:0

00000150: SS:S-Imag

00000170: UI:ScreenLock

00000170: UI:ScreenUnLock

00000200: UI:LogicalEvent:0x300a:adr:0,Para:0

00000200: UI:PB.Create

00000210: UI:DispSwCon_TurnOnBackLight

00000210: UI:TurnOnBackLight

00000220: UI:LogicalEvent:0x5001:adr:0,Para:0

00000270: UI:LogicalEvent:0x5006:adr:0,Para:0

00000290: UI:DispSwCon_MuteOffPhysicalScreen

00000290: UI:MuteOffPhysicalScreen

00000290: UI:LogicalEvent:0x3138:adr:0,Para:0

00000380: UI:LogicalEvent:0x112c:adr:0,Para:0

00000410: UI:ScreenLock

00000410: UI:ScreenUnLock

00000450: UI:PB.CreateE

00000450: UI:AC:StartPB

00000450: UI:DispSwCon_TurnOnDisplayDevice

00000450: UI:AC:EBtn

00000450: UI:PB.Start

00000450: UI:DSIC:47,0

00000450: UI:CC_CompFlhJpg

00000450: UI:_CompFlhJpg

00000450: UI:PB.Flash

00000450: UI:ScreenLock

00000460: UI:LogicalEvent:0x321f:adr:0,Para:0

00000460: UI:DSIC:47,0

00000460: UI:ScreenUnLock

00000510: UI:LogicalEvent:0x320a:adr:0,Para:0
I hope this helps.

*

Offline reyalp

  • ******
  • 12109
Re: Powershot A3100 - Porting thread
« Reply #93 on: 06 / January / 2013, 16:03:53 »
This is an undefined instruction in spytask. That suggests a bad code pointer or memory corruption.

edit:
If you have the main.dump associated with this build, the PC and stack should give you a very good idea of where to look.
Don't forget what the H stands for.


Re: Powershot A3100 - Porting thread
« Reply #94 on: 06 / January / 2013, 16:06:08 »
Try this one;
https://www.box.com/s/6u692hzfs80p47l91gc9

(src: https://www.box.com/s/jxnvr8371eh94ildy8kr)

If it still does not work i'll create a stripped version for you to try.

@reyalp;
i found another unpatched call in boot.c, i think thats what caused the exception. Once the boot.c is ok the rest should work (capt_seq & movie_rec are built from scratch, i copied and hand-patched boot.c)

Re: Powershot A3100 - Porting thread
« Reply #95 on: 06 / January / 2013, 16:22:39 »
Hm, sadly not really better. If I start the cam I can see the logo slightly longer but nothing more.
Here the output of the script-card:
Code: [Select]
Exception!! Vector 0x04
Occured Time  2013:01:06 23:16:20
Task ID: 12451866
Task name: SpyTask
Exc Registers:
0x00000001
0x000037BC
0x00148CE7
0x0014ADEB
0x00169AF4
0x0016912C
0x00148B09
0x00169AF4
0x19980218
0x19980218
0x19980218
0x19980218
0x80000000
0x00309F7C
0x00000B3D
0x00031ABC
0x20000013
StackDump:
0x002F2DEC
0x19980218
0x19980218
0x19980218
0xFF8170E0
0x19980218
0x19980218
0x00001008
00000050: *** Camera Log Start ***

00000060: UI:Button:0x000010B4:WriteEnableMedia

00000080: UI:_BeforeCBRForPlay

00000080: UI:_AfterCBRForPlay

00000080: UI:DSIC:55,0

00000080: UI:LogicalEvent:0x5003:adr:0,Para:0

00000080: UI:LogicalEvent:0x1165:adr:0,Para:0

00000080: UI:_SImage

00000080: UI:SetPanelBrightnessToLcdController

00000080: UI:SetDisplayType

00000080: UI:TurnOnDisplayForStartup

00000080: UI:LogicalEvent:0x5007:adr:0,Para:0

00000150: SS:S-Imag

00000170: UI:ScreenLock

00000170: UI:ScreenUnLock

00000200: UI:LogicalEvent:0x300a:adr:0,Para:0

00000200: UI:PB.Create

00000210: UI:DispSwCon_TurnOnBackLight

00000210: UI:TurnOnBackLight

00000220: UI:LogicalEvent:0x5001:adr:0,Para:0

00000270: UI:LogicalEvent:0x5006:adr:0,Para:0

00000290: UI:DispSwCon_MuteOffPhysicalScreen

00000290: UI:MuteOffPhysicalScreen

00000290: UI:LogicalEvent:0x3138:adr:0,Para:0

00000380: UI:LogicalEvent:0x112c:adr:0,Para:0

00000410: UI:ScreenLock

00000410: UI:ScreenUnLock

00000450: UI:PB.CreateE

00000450: UI:AC:StartPB

00000450: UI:DispSwCon_TurnOnDisplayDevice

00000450: UI:AC:EBtn

00000450: UI:PB.Start

00000450: UI:DSIC:47,0

00000450: UI:CC_CompFlhJpg

00000450: UI:_CompFlhJpg

00000450: UI:PB.Flash

00000450: UI:ScreenLock

00000460: UI:LogicalEvent:0x321f:adr:0,Para:0

00000460: UI:DSIC:47,0

00000460: UI:ScreenUnLock

00000510: UI:LogicalEvent:0x320a:adr:0,Para:0
And thanks to all that are helping with this port! :)
« Last Edit: 06 / January / 2013, 16:25:34 by Nonatoka »

Re: Powershot A3100 - Porting thread
« Reply #96 on: 06 / January / 2013, 16:43:43 »
Try this one next <links removed, see below>
The overrides do not work but the menu (if you can get there) should work.

Also try this one <links removed, see below>
My guess is the 2nd one will work (without overrides).
« Last Edit: 07 / January / 2013, 19:47:09 by casrap »

Re: Powershot A3100 - Porting thread
« Reply #97 on: 06 / January / 2013, 17:45:08 »
No, sadly not. If I switch on I can use the cam for a short while (ca. 4s) then the CHDK-logo appears and the cam switches off.
I did the romlog again:
Code: [Select]
Exception!! Vector 0x04
Occured Time  2013:01:07 00:36:33
Task ID: 12451866
Task name: SpyTask
Exc Registers:
0x00000001
0x000037BC
0x00148CE7
0x0014ADEB
0x00169A4C
0x00169084
0x00148B09
0x00169A4C
0x19980218
0x19980218
0x19980218
0x19980218
0x80000000
0x00309F7C
0x00000B3D
0x00031ABC
0x20000013
StackDump:
0x002F2DEC
0x19980218
0x19980218
0x19980218
0xFF8170E0
0x19980218
0x19980218
0x00001008
00000050: *** Camera Log Start ***

00000060: UI:Button:0x000010B4:WriteEnableMedia

00000080: UI:_BeforeCBRForPlay

00000080: UI:_AfterCBRForPlay

00000080: UI:DSIC:55,0

00000080: UI:LogicalEvent:0x5003:adr:0,Para:0

00000080: UI:LogicalEvent:0x1165:adr:0,Para:0

00000080: UI:_SImage

00000080: UI:SetPanelBrightnessToLcdController

00000080: UI:SetDisplayType

00000080: UI:TurnOnDisplayForStartup

00000080: UI:LogicalEvent:0x5007:adr:0,Para:0

00000150: SS:S-Imag

00000170: UI:ScreenLock

00000170: UI:ScreenUnLock

00000200: UI:LogicalEvent:0x300a:adr:0,Para:0

00000200: UI:PB.Create

00000210: UI:DispSwCon_TurnOnBackLight

00000210: UI:TurnOnBackLight

00000220: UI:LogicalEvent:0x5001:adr:0,Para:0

00000270: UI:LogicalEvent:0x5006:adr:0,Para:0

00000290: UI:DispSwCon_MuteOffPhysicalScreen

00000290: UI:MuteOffPhysicalScreen

00000290: UI:LogicalEvent:0x3138:adr:0,Para:0

00000380: UI:LogicalEvent:0x112c:adr:0,Para:0

00000400: UI:ScreenLock

00000410: UI:ScreenUnLock

00000450: UI:PB.CreateE

00000450: UI:AC:StartPB

00000450: UI:DispSwCon_TurnOnDisplayDevice

00000450: UI:AC:EBtn

00000450: UI:PB.Start

00000450: UI:DSIC:47,0

00000450: UI:CC_CompFlhJpg

00000450: UI:_CompFlhJpg

00000450: UI:PB.Flash

00000450: UI:ScreenLock

00000450: UI:LogicalEvent:0x321f:adr:0,Para:0

00000460: UI:DSIC:47,0

00000460: UI:ScreenUnLock

00000490: UI:LogicalEvent:0x320a:adr:0,Para:0

00000990: UI:ScreenLock

00001000: UI:ScreenUnLock

00001030: UI:LogicalEvent:0x3201:adr:0,Para:0

00001030: UI:PB.StartE

00001040: UI:PB.CTG

00001040: UI:PB.DPOF

00001040: UI:DSIC:48,0

00001040: UI:DispSw: Unlock

00001040: UI:DispSwCon:Unlock

00001040: UI:DispSwCon_TurnOnBackLight

00001040: UI:DispSwCon_MuteOffPhysicalScreen

00001040: UI:MuteOffPhysicalScreen

00001040: UI:AC:EnryPB

00001040: UI:AP:ChkCnctUSB
Seems quite similar... Any clues?


Re: Powershot A3100 - Porting thread
« Reply #98 on: 06 / January / 2013, 18:40:13 »
Not yet, but the problem is most likely somewhere in the boot.c file as you cam doesn't even stay on without overrides. I'll go over it once more (will take some time this time).

*

Offline reyalp

  • ******
  • 12109
Re: Powershot A3100 - Porting thread
« Reply #99 on: 06 / January / 2013, 21:03:01 »
@reyalp;
i found another unpatched call in boot.c, i think thats what caused the exception. Once the boot.c is ok the rest should work (capt_seq & movie_rec are built from scratch, i copied and hand-patched boot.c)
The romlog tells you that the exception occurred in spytask. Spytask doesn't really have any code in boot.c though of course bugs in boot.c could corrupt something used by spytask.

The PC value will tell you exactly where the exception occurred. In the dumps above, this is 0x00031ABC

This seems like a low address for CHDK code, probably meaning a bad pointer earlier sent you there. The LR is 0x00000B3D which seems suspect too. The stack trace in the romlog might help you find out how you got there. 0x002F2DEC would be the obvious place to start.
Don't forget what the H stands for.

 

Related Topics