IXUS 1100 HS ELPH 510 Porting Thread - page 4 - DryOS Development - CHDK Forum supplierdeeply

IXUS 1100 HS ELPH 510 Porting Thread

  • 89 Replies
  • 25611 Views
Re: IXUS 1100 HS ELPH 510 Porting Thread
« Reply #30 on: 09 / February / 2014, 15:59:28 »
Advertisements
Thanks for the info, I haven't had time to take a look yet, but will.  I still think nafraf may get it better/quicker for the first pass but I've not seen any comments here.   If I do get time to work on it I will, though.

*

Offline nafraf

  • *****
  • 1308
Re: IXUS 1100 HS ELPH 510 Porting Thread
« Reply #31 on: 09 / February / 2014, 16:11:33 »
Some changes were done to boot.c.
Touch panel functions have not been ported.

The status of the port is described in notes.txt.

Edit: capt_seq.c, movie_rec.c done.
« Last Edit: 09 / February / 2014, 18:07:05 by nafraf »

Re: IXUS 1100 HS ELPH 510 Porting Thread
« Reply #32 on: 10 / February / 2014, 01:58:43 »
I got your source, and was able to try a compile, but it fails. 

Code: [Select]
>> Entering to platform/ixus1100_elph510hs
kbd.c -> kbd.o
kbd.c: In function 'chdk_process_touch':
kbd.c:385: error: 'touch_screen_x' undeclared (first use in this function)
kbd.c:385: error: (Each undeclared identifier is reported only once
kbd.c:385: error: for each function it appears in.)
kbd.c:386: error: 'touch_screen_y' undeclared (first use in this function)
kbd.c: In function 'my_kbd_read_keys':
kbd.c:568: error: 'touch_screen_active' undeclared (first use in this function)
make[1]: *** [kbd.o] Error 1
make: *** [all-recursive] Error 1

but that makes sense since you say in the notes taht you've not done kbd.c or touch screen yet.  I'm going to see if I can find where that may be.

Re: IXUS 1100 HS ELPH 510 Porting Thread
« Reply #33 on: 10 / February / 2014, 02:34:20 »
gah,  I really have no clue.  The more I look at the disassembled output, the less I get.  So I'm not sure how and where I can help, but I'd love to.  Guess I need to go back to the addresses.txt and see if I can make sense of that.

~Phil


Re: IXUS 1100 HS ELPH 510 Porting Thread
« Reply #34 on: 10 / February / 2014, 02:39:22 »
Actually if I read what you posted waterwingz, then I don't have a chance to use CHDK-PT ?  It talks about taking a known port from the same camera different firmware.  It doesn't seem to be talking about a first port of a new camera.

Or am I missing something there?  Can it take addresses from a different camera and get the data we need? 


Re: IXUS 1100 HS ELPH 510 Porting Thread
« Reply #35 on: 10 / February / 2014, 03:01:32 »
I was curious as to what camera seems to be very similar and its the Elph 500hs, the 310hs doesn't have a touchscreen, so for a simple test I decided to use the DEF from that camera for the X, Y and active for the touch screen, and it still errors out with that same message, don't I need lines like:

Code: [Select]
DEF(touch_screen_x                          ,0x000028f0)
DEF(touch_screen_y                          ,0x000028f2)
DEF(touch_screen_active                     ,0x000028c4)

in the stubs_min.S file to make those known to the kbd.c or is there something else I'm missing?

Edit:  I know it is unlikely the touch screen X,Y and active addresses would be identical, but I was just messing about. Trying to learn more about how the environment works.

*

Offline nafraf

  • *****
  • 1308
Re: IXUS 1100 HS ELPH 510 Porting Thread
« Reply #36 on: 10 / February / 2014, 06:51:06 »
This model requires:
#define CAM_TOUCHSCREEN_UI              1   // Enable touch screen U/I
Update your working copy. kbd.o is generated.

To find touch_screen_x, touch_screen_y, you can compare assembly code with ixus240 or ixus310.
platform/ixus240_elph320hs/sub/101a/stubs_min.S
Code: [Select]
DEF(touch_screen_x,                     0x00002b9c)     //ixus310 28f0 @ loc_ff059c58 -> ixus240 1.01a 2b9c @ loc_ff069d58
DEF(touch_screen_y,                     0x00002b9e)     //ixus310 28f2 -> ixus240 1.01a 2b9e

Edit:
Probably, these are the addresses for ixus1100 100b:
Code: [Select]
DEF(touch_screen_x,                     0x000039b4)
DEF(touch_screen_y,                     0x000039b6)
« Last Edit: 10 / February / 2014, 10:34:58 by nafraf »

Re: IXUS 1100 HS ELPH 510 Porting Thread
« Reply #37 on: 10 / February / 2014, 07:52:40 »
Actually if I read what you posted waterwingz, then I don't have a chance to use CHDK-PT ?
I would not say that.  Its quite useful as a disassembler as it produces source code that compiles with little or no editing required.   

And the Convert : Address List function can be quite useful.  Its just a tool though - it won't do everything for you.

Quote
It talks about taking a known port from the same camera different firmware.  It doesn't seem to be talking about a first port of a new camera.
That's because its a lot easier to port different firmware versions and that was my original need when I wrote it.  I've done first ports of a new camera (twice) using it but that's a lot harder than just porting between firmware versions.

Quote
Can it take addresses from a different camera and get the data we need?
Yes - but its not an exact process.  It will try to find code segments in the new carmera ROM that match segments in the old ROM.  Its smart enough to ignore differences due to address changes but if the code is not close, its not going to be able to match it.
Ported :   A1200    SD940   G10    Powershot N    G16


Re: IXUS 1100 HS ELPH 510 Porting Thread
« Reply #38 on: 10 / February / 2014, 12:18:30 »
Okay, makes sense then, just wanted to be sure I understood.  I definitely got the other impression from the three linked posts you showed, but I'll see what I can manage.  I found an assembler doc on arm assembly and was reading it a bit, and its still pretty greek to me so far :P

~Phil

Re: IXUS 1100 HS ELPH 510 Porting Thread
« Reply #39 on: 10 / February / 2014, 14:44:46 »
Looks like I missed nafraf's update.  I just got latest from your svn, tried a rebuild and found two things:

1. the filewrite.c seemed to be missing the closing ); and } on the end of that last func sub_FF19C880_my() block, added and filewrite compiled. 

2. more defines missing so next compile failure is:

Code: [Select]
>> Entering to core
entry.S -> entry.o
-> main.elf
../platform/ixus1100_elph510hs/libplatform.a(main.o): In function `get_focal_length':
main.c:(.text+0x48): undefined reference to `focus_len_table'
../platform/ixus1100_elph510hs/libplatform.a(main.o): In function `get_zoom_x':
main.c:(.text+0x90): undefined reference to `focus_len_table'
../platform/ixus1100_elph510hs/sub/100b/libplatformsub.a(filewrite.o): In function `loc_FF2F3180':
filewrite.c:(.text+0x15c): undefined reference to `sub_FF2F34E8_my'
../platform/ixus1100_elph510hs/sub/100b/libplatformsub.a(filewrite.o): In function `loc_FF2F3188':
filewrite.c:(.text+0x164): undefined reference to `sub_FF2F2F3C_my'
../platform/ixus1100_elph510hs/sub/100b/libplatformsub.a(gui_osd.thm.o): In function `gui_std_kbd_process':
gui_osd.c:(.text+0x1328): undefined reference to `kbd_use_zoom_as_mf'
../platform/ixus1100_elph510hs/libplatform.a(kbd.o): In function `set_ev_video_avail':
kbd.c:(.text+0xb80): undefined reference to `cds_gain_value'
../platform/ixus1100_elph510hs/libplatform.a(kbd.o): In function `set_sv_video':
kbd.c:(.text+0xc28): undefined reference to `_SetCDSGain'
kbd.c:(.text+0xc2c): undefined reference to `_GetCdsGainValue'
collect2: ld returned 1 exit status
make[1]: *** [main.elf] Error 1
make: *** [all-recursive] Error 1

 

Related Topics