s80 anybody? - page 5 - General Discussion and Assistance - CHDK Forum  

s80 anybody?

  • 205 Replies
  • 94506 Views
*

Offline reyalp

  • ******
  • 14080
Re: s80 anybody?
« Reply #40 on: 15 / July / 2009, 02:50:32 »
Advertisements
So is it impossible or is their an issue? Is anyone working on it or abandoned?
No one appears to be working on it. If they were, it would most likely be noted here or on the wiki page http://chdk.wikia.com/wiki/S80
Quote
What's different about the S80 that makes it hard to port?
The major difference appears to be a lack of qualified developers who have the camera and are interested in working on it.
Don't forget what the H stands for.

*

Offline s80

  • *
  • 2
Re: s80 anybody?
« Reply #41 on: 22 / July / 2009, 07:21:23 »
Hi, I'm new here. I own an s80 and was wondering what does the 1.00G firmware do if it can't activate chdk on it???? I don't know any programming or scripting so i lack that knowledge?

 If someone could fill me in , I'd appreciate it , Thanks Felix.
I can shoot

*

Offline s80

  • *
  • 2
Re: s80 anybody?
« Reply #42 on: 07 / August / 2009, 12:20:59 »
I guess no one knows?
I can shoot

Re: s80 anybody?
« Reply #43 on: 29 / October / 2009, 01:13:26 »
Hi, I am a newbie and I would like to help on porting CHDK to s80. I just bought a used s80 recently and would very much like to get CHDK to work on it. I've made some progress tonight by looking through previous posts and tutorials.

- The first thing I've done is to follow http://alexlab.ru/canon/PSS80.FIR and upgrade the firmware to 1.00G. So it now shows the "GM1.00g E18" message when pressing set + display.
- I started from the port of a620 (since it was released in the same year as s80), and made just enough changes so it can successfully build.
- stubs_entry_2.S:
  • VbattGet->0xFF82C2B4
  • malloc->0xFFB05B6C
  • free->0xFFB05B78
-/loader/s80/entry.S:
  • LDR R3, =0xC02200BC
-/loader/s80/main.c:
  • (in 'shutdown()') volatile long*p = (void*) 0xc02200dc
-Some addresses for LEDs:
  • 0xc022007c, 6c, 8c, 88, 58
-One thing bizarre I found is that in order to turn on the blue print LED, I have to set both 0xc0220084 and 0xc02200ac on (to 0x46). This took me quite a while to figure out. But is this normal?
- I've verified that at the moment the code at least runs to the boot() function in /platform/s80/sub/100g/boot.c. However, I am stuck where I need to resolve 'BL unknown_libname_889' and 'BL excVecInit' in h_userInit(). It seems I need to replace these two with my own functions, but I have no idea where to find (or shall I write) these two functions? Please give me some advice or a pointer to some online document, and I can continue working on it. Thanks!


*

Offline reyalp

  • ******
  • 14080
Re: s80 anybody?
« Reply #44 on: 29 / October / 2009, 01:44:31 »
Welcome. I suggest http://chdk.wikia.com/wiki/Adding_support_of_a_new_camera
The other links in http://chdk.wikia.com/wiki/For_Developers may also be useful.

I've never heard of having to set to addresses to turn on an LED.

unknown_libname_889 is generated by the ida sigs, doesn't tell us anything. I'd suggest following the example of the a620 boot.c

Find the code in your dump corresponding to hUsrInit in your dump and you should be able to follow along.

edit:
hUsrInit is at FF811990
You also need to get the values of  canon_data_len, canon_bss_start and canon_bss_len from from the code near FF8100E0
« Last Edit: 29 / October / 2009, 01:56:34 by reyalp »
Don't forget what the H stands for.

Re: s80 anybody?
« Reply #45 on: 29 / October / 2009, 09:14:32 »
What I meant was I had to do both:
*((volatile int*) 0xc0220084) = 0x46
and
*((volatile int*) 0xc02200ac) = 0x46
to turn on the blue led.

thanks for the instructions, i will continue this weekend.

Re: s80 anybody?
« Reply #46 on: 29 / October / 2009, 18:31:06 »
OK, I've made some more progress. After modifying /platform/s80/sub/100g/boot.c according to IDA dump, the camera now functions normally with the following lines commented out:
_taskCreateHookAdd(createHook);
_taskDeleteHookAdd(deleteHook);
Next I need to figure out the vid_* functions in lib.c, then keyboard stuff.

*

Offline RaduP

  • *****
  • 926
Re: s80 anybody?
« Reply #47 on: 29 / October / 2009, 21:08:47 »
Yep, that's the way to go :)


Re: s80 anybody?
« Reply #48 on: 29 / October / 2009, 21:35:34 »
I am stuck trying to figure out some of the vid_* functions. At the moment when I turn on the camera (in playback mode), three LED lights (2 green and 1 blue) will blink, and it seems the screen has some response but remains black (even though it's black, I can see something like the LCD is being cleared). Afterwards the camera just stops responding. If I turn on the camera in capture mode though, the lens will repeatedly come out and go back in, as if it's doing an infinite restart loop. Perhaps I put in a wrong address somewhere.

I've attached here my current makefile.inc, boot.c, stubs_entry.S, stubs_entry_2.S, and lib.c. I think either some of the vid_* functions are incorrect, or I need to fix stubs_entry_2.S. I am really eager to see the CHDK loading screen appearing on the camera.

http://www.yousendit.com/download/Z01NT0NhU1BRR2ZIRGc9PQ
(note, the link will probably only be valid for 7 days. It seems I have no permission to upload a file on this forum)

*

Offline reyalp

  • ******
  • 14080
Re: s80 anybody?
« Reply #49 on: 29 / October / 2009, 21:47:05 »
You should be able to attach files, although the limit is quite small.

What tasks are you starting ?

I would start by trying to get the camera to boot correctly without any of the CHDK tasks actually hooked. Then hook spytask and get that running, which (if you have the bitmap buffer found correctly) will give you display. After that, work on kbd (aka physw)

In vxworks cams, the actual task hooking is done in platform/generic/main.c

The only think you should really need in lib.c to get started is the bitmap ones. The dimensions are probably the same as other cameras of that generation (or close enough) and the buffer address can probably be found by a string.

If you have you crash trying to start spytask, this is probably due to an incorrectly found function, or possibly having the canon bss/data wrong in the very first part of boot.c

If you are starting with diskboot (or have diskboot present and the card locked) the camera will go into a boot loop unless you have drv_self_hide() working correctly. If you keep the card unlocked and start with the "firm update" method, this will not be an issue.

edit:
This post http://chdk.setepontos.com/index.php/topic,4228.msg40285.html#msg40285 and some of the discussion around it give some advice on how to find things.
« Last Edit: 29 / October / 2009, 21:50:26 by reyalp »
Don't forget what the H stands for.

 

Related Topics