A800 Porting Thread - page 5 - DryOS Development - CHDK Forum supplierdeeply

A800 Porting Thread

  • 277 Replies
  • 83362 Views
Re: A800 Porting Thread
« Reply #40 on: 31 / January / 2012, 21:02:18 »
Advertisements
Compiled latest trunk & sources provided by mland using 100b PRIMARY.BIN for stub_entry generation.
Camera does not turns on.

Not sure if I should port from 100c or fully new port based on other camera, since 100c build looks not completed.

Re: A800 Porting Thread
« Reply #41 on: 31 / January / 2012, 21:40:46 »
Compiled latest trunk & sources provided by mland using 100b PRIMARY.BIN for stub_entry generation.
Camera does not turns on.

Not sure if I should port from 100c or fully new port based on other camera, since 100c build looks not completed.
Well,  you will probably be farther ahead to start with the 1.00c code as it at least boots.

Take a look at this :  CHDK-PT wiki page and this CHDK-PT forum thread.  Converting an existing port is pretty easy these days.

Ported :   A1200    SD940   G10    Powershot N    G16

Re: A800 Porting Thread
« Reply #42 on: 31 / January / 2012, 22:45:22 »
I would like to know if Qanthelas and others who downloaded the software have found some problem while testing the porting.

Re: A800 Porting Thread
« Reply #43 on: 31 / January / 2012, 22:55:59 »
I would like to know if Qanthelas and others who downloaded the software have found some problem while testing the porting.
mlands :  I understand so well what you are asking.  Many people almost beg on the forum for somebody to port their camera. Then when you do, there is almost no feedback - especially if things are mostly working.   Its a common frustration amongst devs who port CHDK.   Qanthelas is pretty reliable though - I'm sure he will post feedback at some point.

Ported :   A1200    SD940   G10    Powershot N    G16


*

Offline fe50

  • ******
  • 3139
  • IXUS50 & 860, SX10 Star WARs-Star RAWs
    • fe50
Re: A800 Porting Thread
« Reply #44 on: 01 / February / 2012, 01:15:53 »
If nothing else, it would be good to have a firmware dump for that version.
A800 1.00b dump was added to the dumps repository on July, 18 2011: http://chdk.setepontos.com/index.php?topic=288.msg70444#msg70444  ::)

Re: A800 Porting Thread
« Reply #45 on: 01 / February / 2012, 15:45:51 »
While comparing 100b to 100c:
- a lot of code looks exactly the same (boot.c)
- found minor changes in movie_rec.c
- got a problem on capt_seq.c disassemble
// failed to disassemble 100b starting from ffc98190 (using CHDK-PT):
// - exp_drv_task(), start: ffc98190
// - at FFC983C8: undefined instruction
// - original (100c) capt_seq.c has a lot more code disassembled for exp_drv_task()

Questions:
1. Should I change something in lib.c, stubs_min.s?
2. Any ideas to resolve capt_seq.c disassemble issue? (use IDA disassembler?)
3. I wonder why I can't boot at least something. Is there an easy way to disable some/all functionality and make CHDK at least boot and show splash screen?

Re: A800 Porting Thread
« Reply #46 on: 01 / February / 2012, 18:15:24 »
Good news :)

Used panic() function from loader for test (LED blinking).
- loader worked fine
- CreateTask_spytask() - LED was not blinking, so I missed smth in boot.c

Checked again, found one incorrect addr.
Fixed, compiled --> CHDK booted and I'm able to open alternative menu now

Re: A800 Porting Thread
« Reply #47 on: 01 / February / 2012, 19:03:01 »
- got a problem on capt_seq.c disassemble
// failed to disassemble 100b starting from ffc98190 (using CHDK-PT):
// - exp_drv_task(), start: ffc98190
// - at FFC983C8: undefined instruction
I took a quick look and it looks like you are trying to dissassemble a jump table.  There is no code there to dissassemble - just a list of addresses.

CHDK-PT will detect these tables as it disassembles and not give an error if it finds the code that references the table before it actually reaches the table.   However,  if you start dissassembly too close to the table (or in the table) it will correctly complain that it has found an undefined instruction.
Ported :   A1200    SD940   G10    Powershot N    G16


Re: A800 Porting Thread
« Reply #48 on: 01 / February / 2012, 21:35:25 »
Quote
I took a quick look and it looks like you are trying to dissassemble a jump table.  There is no code there to dissassemble - just a list of addresses.
Just tried to disassemble 100c (same start ffc98190) and got same problem.
I wonder why exp_drv_task() in capt_seq.c contains a lot more code in both 100b & 100c?
And patched part of code is futher in the code, which fails to disassemble

Re: A800 Porting Thread
« Reply #49 on: 01 / February / 2012, 21:54:43 »
Just tried to disassemble 100c (same start ffc98190) and got same problem.
I wonder why exp_drv_task() in capt_seq.c contains a lot more code in both 100b & 100c?
And patched part of code is futher in the code, which fails to disassemble
I don't understand your comment about "contains a lot more code".  Do you understand that there are data tables embedded in the ARM code and that you cannot dissassemble them into code ?   The capt_seq.c code for the 1.00c skips over the data table that starts at 0xffc983c4 and continues as code beginning at 0xffc98430. 

Also,  what patched code do you think fails to dsassemble ?
Ported :   A1200    SD940   G10    Powershot N    G16

 

Related Topics