IXUS 255 IS/ELPH 330 IS porting thread - page 3 - DryOS Development - CHDK Forum  

IXUS 255 IS/ELPH 330 IS porting thread

  • 60 Replies
  • 18739 Views
Re: IXUS 255 IS/ELPH 330 IS porting thread
« Reply #20 on: 25 / February / 2014, 23:11:42 »
Advertisements
I currently have power button detection working and the boot process almost working. The camera boots, "memory card locked" disappears, and the LED flashes, but the camera then crashes instead of showing the CHDK splash screen. I assume this is due to an address I haven't found yet (bitmap_buffer or viewport_buffers?).
Normally you won't get a "memory card locked" message if boot.c is correct.
Ported :   A1200    SD940   G10    Powershot N    G16

*

Offline reyalp

  • ******
  • 12104
Re: IXUS 255 IS/ELPH 330 IS porting thread
« Reply #21 on: 25 / February / 2014, 23:14:50 »
I currently have power button detection working and the boot process almost working. The camera boots, "memory card locked" disappears, and the LED flashes, but the camera then crashes instead of showing the CHDK splash screen. I assume this is due to an address I haven't found yet (bitmap_buffer or viewport_buffers?).
The viewport buffer being wrong shouldn't cause a crash (since CHDK doesn't write to it), but the bitmap might.

It could also be errors in the platform code.

If you are running the hooked tasks, you can try commenting them out one by one to narrow down the problem.

You could also check for a ROMLOG using canon basic: http://chdk.wikia.com/wiki/Canon_Basic/Scripts/Romlog
Don't forget what the H stands for.

Re: IXUS 255 IS/ELPH 330 IS porting thread
« Reply #22 on: 25 / February / 2014, 23:23:04 »
If you are running the hooked tasks, you can try commenting them out one by one to narrow down the problem.

You could also check for a ROMLOG using canon basic: http://chdk.wikia.com/wiki/Canon_Basic/Scripts/Romlog

I have all the tasks commented out except for the spy task. I was able to dump the following ROMLOG.

Code: [Select]
Exception!! Vector 0x10
Occured Time  2014:02:26 04:19:17
Task ID: 16252961
Task name: SpyTask
Exc Registers:
0x00262F89
0x0027AA51
0x12345678
0x00284848
0x00000000
0x002833D0
0x19980218
0x19980218
0x19980218
0x19980218
0x19980218
0x19980218
0xFFFFFFFF
0x0055ADEC
0x00263075
0x0026303A
0x60000033
StackDump:
0x00265915
0x00000000
0x00262D5B
0x19980218
0x19980218
0x19980218
0x19980218
0x19980218
0x0053FCEC
0x19980218
0x19980218
0x19980218
0x00687418
0x19980218
0x19980218
0x00002008
00000190: UI:TurnOnBackLight
00000210: UI:PB.Create
00000210: UI:ScreenLock
00000210: UI:ScreenUnLock
00000220: UI:LogicalEvent:0x301c:adr:0,Para:0
00000230: UI:PB.CreateE
00000230: UI:DisplayPhysicalScreenCBR
00000230: UI:DisplayPhysicalScreenCBR
00000230: UI:DSIC:ed,0
00000240: UI:LogicalEvent:0x5001:adr:0,Para:0
00000250: UI:LogicalEvent:0x5006:adr:0,Para:0
00000250: UI:AC:StartPB
00000250: UI:DispSwCon_TurnOnDisplayDevice
00000310: UI:AC:EBtn
00000310: UI:PB.Start
00000310: UI:ScreenLock
00000310: UI:DSIC:47,0
00000310: UI:CC_CompFlhJpg
00000310: UI:_CompFlhJpg
00000310: UI:PB.Flash
00000310: UI:PB.S_Meta
00000310: UI:LogicalEvent:0x3221:adr:0,Para:0
00000310: UI:LogicalEvent:0x3220:adr:0,Para:0
00000310: UI:DSIC:47,0
00000310: UI:MuteOffPhysicalScreen
00000310: UI:LogicalEvent:0x3138:adr:0,Para:0
00000310: UI:LogicalEvent:0x320b:adr:0,Para:0
00000810: UI:PB.RefPB
00000810: UI:PB.F_Dec
00000810: UI:LogicalEvent:0x3202:adr:0,Para:0
00000810: UI:LogicalEvent:0x3202:adr:0,Para:0
00000810: UI:LogicalEvent:0x3201:adr:0,Para:0
00000810: UI:ScreenUnLock
00000850: UI:PB.StartE
00000850: UI:PB.MAX_ID
00000850: UI:PB.RefPB
00000870: UI:ScreenLock
00000870: UI:ScreenUnLock
00000870: UI:PB.F_Dec
00000870: UI:ScreenLock
00000870: UI:Reduce ScreenUnLock
00000870: UI:ScreenLock
00000870: UI:Reduce ScreenUnLock
00000880: UI:LogicalEvent:0x3202:adr:0,Para:0
00000880: UI:LogicalEvent:0x3202:adr:0,Para:0
00000880: UI:PB.CTG
00000880: UI:DispSw: Unlock
00000880: UI:DispSwCon:Unlock
00000880: UI:DispSwCon_TurnOnBackLight
00000880: UI:DispSwCon_MuteOffPhysicalScreen
00000880: UI:Window Reduce MuteOff
00000880: UI:PB.DPOF
00000880: UI:DSIC:48,0
00000880: UI:PB.Check
00000880: UI:DispSw: Unlock
00000880: UI:DispSwCon_TurnOnBackLight
00000880: UI:DispSwCon_MuteOffPhysicalScreen
00000880: UI:Window Reduce MuteOff
00000880: UI:DispSw: Unlock
00000880: UI:DispSwCon_TurnOnBackLight
00000880: UI:DispSwCon_MuteOffPhysicalScreen
00000880: UI:Window Reduce MuteOff
00000880: UI:AC:EnryPB
00000880: UI:AP:ChkCnctUSB
00000880: UI:DisplayPhysicalScreenCBR
00000880: UI:Re ScreenUnLock
00000880: UI:ScreenUnLock
00000880: UI:Window Re MuteOff
00000880: UI:MuteOffPhysicalScreen
00000880: UI:DispSw: Unlock
00000880: UI:DispSwCon_TurnOnBackLight
00000880: UI:DispSwCon_MuteOffPhysicalScreen
00000880: UI:Window MuteOff
00000880: UI:MuteOffPhysicalScreen
00000880: UI:DispSw: Unlock
00000880: UI:DispSwCon_TurnOnBackLight
00000880: UI:DispSwCon_MuteOffPhysicalScreen
00000880: UI:Window MuteOff
00000880: UI:MuteOffPhysicalScreen
00000880: UI:DisplayPhysicalScreenCBR
00000900: UI:DisplayPhysicalScreenCBR
00002880: UI:ScreenLock
00002880: UI:ScreenUnLock
00002880: UI:DisplayPhysicalScreenCBR

Re: IXUS 255 IS/ELPH 330 IS porting thread
« Reply #23 on: 26 / February / 2014, 00:48:38 »
Using the log, I've narrowed the issue down to the frame buffer. It's crashing on line 56 of core/gui_draw.c in draw_test_guard(), while writing to "vid_get_bitmap_fb() + camera_screen.buffer_size".


*

Offline reyalp

  • ******
  • 12104
Re: IXUS 255 IS/ELPH 330 IS porting thread
« Reply #24 on: 26 / February / 2014, 01:00:39 »
Using the log, I've narrowed the issue down to the frame buffer. It's crashing on line 56 of core/gui_draw.c in draw_test_guard(), while writing to "vid_get_bitmap_fb() + camera_screen.buffer_size".
Definitely sounds like your bitmap address or dimensions are wrong.
Don't forget what the H stands for.

Re: IXUS 255 IS/ELPH 330 IS porting thread
« Reply #25 on: 26 / February / 2014, 02:13:31 »
I was finally able to get the camera to boot!

Re: IXUS 255 IS/ELPH 330 IS porting thread
« Reply #26 on: 01 / March / 2014, 15:58:05 »
The port is now in a mostly usable state. Attached to this post is a current build for firmware version 100f.

I've done somewhat limit testing on RAW / DNG capture, edge overlay, histogram, zebra, bracketing, extra long exposure, ND filter state control, USB remote trigger, and a few scripts. There's a bug in zebra overlays that adds a vertical offset half the time when in blink mode. This port also inherits the bugs from the port it was based on, zoom lever issues after using set_zoom and lack of video functions.

There are a few things in platform_camera.h that I'm not sure how to update: CAM_COLORMATRIX1, cam_CalibrationIlluminant1, CAMERA_MIN_DIST, CAMERA_MAX_DIST, CAM_CAN_SD_OVER_NOT_IN_MF, and CAM_CAN_SD_OVER_IN_AF_LOCK_ONLY. I tried using the sdminmax.lua script to find CAMERA_MIN_DIST and CAMERA_MAX_DIST, but it keeps returning -1 and 1 for min and max respectively. I also haven't updated the shutter_speeds_table. Additionally, on previous cameras that I've used CHDK on, the power button would turn off the camera while in alt mode, but it doesn't currently work in this port. I can make it work by adjusting the key mask and having CHDK ignore the power button, but I don't know if this is the recommended practice.

Re: IXUS 255 IS/ELPH 330 IS porting thread
« Reply #27 on: 05 / March / 2014, 20:58:29 »
Just wanted to say thanks! Got it working on my Ixus 255. Seems like every second or third RAW comes out in a scrambled pink colour but when it works, the RAW is much better quality.


Re: IXUS 255 IS/ELPH 330 IS porting thread
« Reply #28 on: 05 / March / 2014, 22:28:43 »
That was fast porting.  I assume this won't work on the h version of the firmware?

*

Offline reyalp

  • ******
  • 12104
Re: IXUS 255 IS/ELPH 330 IS porting thread
« Reply #29 on: 05 / March / 2014, 22:51:17 »
Just wanted to say thanks! Got it working on my Ixus 255. Seems like every second or third RAW comes out in a scrambled pink colour but when it works, the RAW is much better quality.
This usually means the camera has multiple raw buffers, and the port has not correctly implemented the code to support it.
Don't forget what the H stands for.

 

Related Topics