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

A800 Porting Thread

  • 277 Replies
  • 75487 Views
Re: A800 Porting Thread
« Reply #60 on: 03 / February / 2012, 06:39:44 »
Advertisements
I have one more concern regarding OSD diplay.

For me it blinks often when native canon UI changes (e.g. auto to macro change)
Sometimes different parts/icons become invisible or partly visible (like something is drawed on top -- e.g. cannon UI).
Can make a video (to explain better) if needed.

Is that a normal behaviour?
« Last Edit: 03 / February / 2012, 06:44:01 by madman »

Re: A800 Porting Thread
« Reply #61 on: 03 / February / 2012, 08:34:36 »
Is that a normal behaviour?
Yes.  Lots of discussion on this forum on the subject if you do a little searching.
Ported :   A1200    SD940   G10    Powershot N    G16

Re: A800 Porting Thread
« Reply #62 on: 03 / February / 2012, 09:40:19 »
Hi guys,
I am so glad that you are working on CHDK for Powershot A800. I just got one from Canon warranty service instead of A495, because that one was broken. I was sad, because I knew that there is no CHDK for A800 model.
Now I see that you are working hard on it. Big thank you all!!! If I can help you with testing or something else I am happy to do that. I will get my camera on Sunday. All the best.

Re: A800 Porting Thread
« Reply #63 on: 03 / February / 2012, 21:30:31 »
Sorry I dropped off the face of the earth there for a while - I'm just getting over a cold =/  Good news is I'm doing a lot better now :)

Great to see some development going and glad to hear the 100c and 100b firmwares are quite similar :)  Where are we at now?  The newest versions I saw were a few pages back, are these still the ones I should use to test?


Re: A800 Porting Thread
« Reply #64 on: 03 / February / 2012, 23:11:48 »
Hi,
 Concerning nrflag I need help for checking the reasoning and how todo tests:
I take for granted:
  Ixus220 sub 10c is correct (I don't understand the comment - even after correcting addressing references)
     static long *nrflag = (long*)(0x7514+0x8);  // FF18775C & FF1877C8 so nrflag at 0x751c

2 structures are consistently referenced
  1 at 0x7510(ixus220) <=> 0x5cc4(a800) (0xFF999194 <=> 0xFFD27310, for example)
  2 at 0x7518(ixus220) <=> 0x5ccc(a800) (0xFF99A8A0 <=>0xFFD28754)

  The 2nd
    FF99A8C4    LDR R0,=0x7518   <=>   FFD2878C   LDR R0,=0x5ccc
   

    FF99A8DC   LDR R8,[R0, #4]      <=>   FFD28790   LDR R0,[R0, #4], so the same address

For testing,
 If I Point nrflag to somewhere else, what conditions should I establish and what should are the expected values to read at this address ?

Re: A800 Porting Thread
« Reply #65 on: 03 / February / 2012, 23:22:42 »
I have seen the following problem:
  OSD Parameter menu, show battery temperature (or show all) and then entering the OSD layout Editor, the camera shuts down
  I have checked getBatteryTemperature and is generated automaticaly and I've checked it and it looks fine. I have seen that ixus220 my_kbd_read_keys
is different from the A495 version, particularly on:
   kbd_new_state[2] |=0x00008000;  /// disable the battery door switch
  It may have something to do with the problem or should I look somewhere else ? where?
  Qanthelas, the 100c version is the same I have posted with, at least the 2 mentioned problems.

*

Offline philmoz

  • *****
  • 3332
    • Photos
Re: A800 Porting Thread
« Reply #66 on: 03 / February / 2012, 23:44:16 »
Hi,
 Concerning nrflag I need help for checking the reasoning and how todo tests:
I take for granted:
  Ixus220 sub 10c is correct (I don't understand the comment - even after correcting addressing references)
     static long *nrflag = (long*)(0x7514+0x8);  // FF18775C & FF1877C8 so nrflag at 0x751c

2 structures are consistently referenced
  1 at 0x7510(ixus220) <=> 0x5cc4(a800) (0xFF999194 <=> 0xFFD27310, for example)
  2 at 0x7518(ixus220) <=> 0x5ccc(a800) (0xFF99A8A0 <=>0xFFD28754)

  The 2nd
    FF99A8C4    LDR R0,=0x7518   <=>   FFD2878C   LDR R0,=0x5ccc
   

    FF99A8DC   LDR R8,[R0, #4]      <=>   FFD28790   LDR R0,[R0, #4], so the same address

For testing,
 If I Point nrflag to somewhere else, what conditions should I establish and what should are the expected values to read at this address ?


The latest update to the finsig_dryos program should find the nrflag value for you.

This setting controls whether the camera does a dark frame subtraction after taking a shot. If you select a long exposure the camera will normally take a second image of the same duration with the shutter closed. You will see 'Busy' on the screen when it is doing this.

To test it select a long exposure time and then change the 'Dark Frame Subtraction' value in the RAW settings menu.
Auto - use camera settings
Off - disable dark frame subtraction
On - force dark frame subtraction (regardless of shutter speed)

Phil.
CHDK ports:
  sx30is (1.00c, 1.00h, 1.00l, 1.00n & 1.00p)
  g12 (1.00c, 1.00e, 1.00f & 1.00g)
  sx130is (1.01d & 1.01f)
  ixus310hs (1.00a & 1.01a)
  sx40hs (1.00d, 1.00g & 1.00i)
  g1x (1.00e, 1.00f & 1.00g)
  g5x (1.00c, 1.01a, 1.01b)
  g7x2 (1.01a, 1.01b, 1.10b)

*

Offline philmoz

  • *****
  • 3332
    • Photos
Re: A800 Porting Thread
« Reply #67 on: 03 / February / 2012, 23:46:24 »
I have seen the following problem:
  OSD Parameter menu, show battery temperature (or show all) and then entering the OSD layout Editor, the camera shuts down
  I have checked getBatteryTemperature and is generated automaticaly and I've checked it and it looks fine. I have seen that ixus220 my_kbd_read_keys
is different from the A495 version, particularly on:
   kbd_new_state[2] |=0x00008000;  /// disable the battery door switch
  It may have something to do with the problem or should I look somewhere else ? where?
  Qanthelas, the 100c version is the same I have posted with, at least the 2 mentioned problems.


Crashing in GetBatteryTemperature has been reported on other cameras.
The workaround is to override the firmware function with a dummy one - see the SX130IS port for an example (platform/sx130is/sub/101d/lib.c).

Phil.
CHDK ports:
  sx30is (1.00c, 1.00h, 1.00l, 1.00n & 1.00p)
  g12 (1.00c, 1.00e, 1.00f & 1.00g)
  sx130is (1.01d & 1.01f)
  ixus310hs (1.00a & 1.01a)
  sx40hs (1.00d, 1.00g & 1.00i)
  g1x (1.00e, 1.00f & 1.00g)
  g5x (1.00c, 1.01a, 1.01b)
  g7x2 (1.01a, 1.01b, 1.10b)


Re: A800 Porting Thread
« Reply #68 on: 04 / February / 2012, 14:53:22 »
battery: I put the null_stub and is crashing no more. Ok
nrflag:
  - I updated (with tortoise SVN) and compiled again and no nrflag generation. finsig_dryos.exe is being generated (finsig_dryos.c 06/Jan/2012).I couldn't find nrflag reference in it.
  - Tests: The supposed nrflag content doesn't change at all. I see conf.raw_nr changes accordingly. I used exposures between 5s and 20s (factor 1) and dark_frame_subtraction On and off
(save raw checked and not checked) => green led blinks during exposure time at the end shutter noise and busy (on or off)

 - captseq.c is based on ixus220 100c porting, who makes no call to capt_seq_hook_set_nr(). Who else sets nrflag?

- observation: when enabled OPT_GEN_STUBS, the files are generated but I get the following error.log file
========== C:\CHDK\TRUNK\TRUNK1610\BIN\LOGS\ERR-A800-100C.TXT ==========

Time to generate stubs 7.34 seconds

    If I compile again  without the option I get no error.log

- source and compiled version with the workaround on the battery problem.

*

Offline philmoz

  • *****
  • 3332
    • Photos
Re: A800 Porting Thread
« Reply #69 on: 04 / February / 2012, 16:29:33 »
Quote
nrflag:
  - I updated (with tortoise SVN) and compiled again and no nrflag generation. finsig_dryos.exe is being generated (finsig_dryos.c 06/Jan/2012).I couldn't find nrflag reference in it.

The change was added in revision 1635 (release_1.0 branch) and 1636 (trunk) - when I compiled your code with this version the nrflag info was at line 90 in the stubs_entry.S file.

Quote
  - Tests: The supposed nrflag content doesn't change at all. I see conf.raw_nr changes accordingly. I used exposures between 5s and 20s (factor 1) and dark_frame_subtraction On and off
(save raw checked and not checked) => green led blinks during exposure time at the end shutter noise and busy (on or off)

 - captseq.c is based on ixus220 100c porting, who makes no call to capt_seq_hook_set_nr(). Who else sets nrflag?

Yes, you have to call capt_seq_hook_set_nr for this to work, you are also missing the call to wait_until_remote_button_is_released for usb remote control. It sounds like the ALPHA IXUS220 port is also incomplete. Look at the IXUS310 which has the same DryOS version (just ignore all the touch screen related code).

Quote
- observation: when enabled OPT_GEN_STUBS, the files are generated but I get the following error.log file
========== C:\CHDK\TRUNK\TRUNK1610\BIN\LOGS\ERR-A800-100C.TXT ==========

Time to generate stubs 7.34 seconds

    If I compile again  without the option I get no error.log

You need to use OPT_GEN_STUBS to re-create the stubs_entry.S file; but once it is stable you can turn this off. The program writes the time taken to STDERR because STDOUT is used for the file output.

Phil.

CHDK ports:
  sx30is (1.00c, 1.00h, 1.00l, 1.00n & 1.00p)
  g12 (1.00c, 1.00e, 1.00f & 1.00g)
  sx130is (1.01d & 1.01f)
  ixus310hs (1.00a & 1.01a)
  sx40hs (1.00d, 1.00g & 1.00i)
  g1x (1.00e, 1.00f & 1.00g)
  g5x (1.00c, 1.01a, 1.01b)
  g7x2 (1.01a, 1.01b, 1.10b)

 

Related Topics