600D: edmac_memcpy.c assert

Started by escho, June 22, 2014, 03:20:17 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

escho

Latest nightly from 22. june 2014 seams to be fine. But compiling 1 hour ago, i get this assert:

ML ASSERT:
resLock
at ../../src/edmac-memcpy.c:80 (edmac_memcpy_init), task ml_init
lv:0 mode:1


Magic Lantern version : Nightly.2014Jun22.600D102
Mercurial changeset   : 47190565ac47 (unified)
Built on 2014-06-22 12:35:17 UTC by edgar@linux-indh.
Free Memory  : 259K + 1127K


What´s going wrong?

Edgar
https://sternenkarten.com/
600D, 6D, openSUSE Tumbleweed

a1ex

In edmac.c, NUM_EDMAC_CHANNELS is defined as 32, and edmac_write_chan is 0x21 = 33.

Maybe the 600D has more channels than I thought; let me check on 60D, should be identical.

edit: nope, 60D has only 32 channels (defining NUM_EDMAC_CHANNELS as 33 or more results in lockup on the EDMAC page, or invalid numbers if I comment out the instruction that locks up). Oddly enough, choosing edmac_write_chan as 0x21 works fine.

You said this channel helps with pink frames? Let me check a bit more.

EDMAC channel address is identified by:

    if arg0 < 16 /*LT*/:
        EngDrvIn(0xC0F04000 + 256*arg0)
    if arg0 >= 16 /*GE*/:
        EngDrvIn(0xC0F26000 + 256*(arg0 & 0xF))


Therefore, EDMAC channel 0x21 must be the same as 0x11 = 17. Confirmed experimentally (I've set edmac_write_chan to 0x21 on 60D, and after running the memory benchmark, the EDMAC dialog in Debug menu displayed changes to EDMAC #17).

From your older screenshot, channel 17 is not free. Can you try find_free_edmac_channels again? (this time should compile cleanly, because I've used it recently).

escho

Ahh, I hate this! Enabling edmac_info let the cam blinking like a christmas tree. Have to disable some other stuff.

Edgar
https://sternenkarten.com/
600D, 6D, openSUSE Tumbleweed

escho

What does a red coloured channel mean on edmac screen?

Edgar
https://sternenkarten.com/
600D, 6D, openSUSE Tumbleweed

a1ex

Some sort of error, but it can also be a false alarm.

On 60D I've got it on channel 15, but it was a false alarm (when checking the connection for channel 0x19, it clashed with channel 15 - probably that's why 15 is unused).

Do you have a screenshot?

escho

Yes: https://bitbucket.org/escho/escho-magiclantern/downloads/mov.jpg

Channel 17 is free, if I shoot a CR2, but it comes in beeing used with mov-recording. Will do some more tests later

Edgar
https://sternenkarten.com/
600D, 6D, openSUSE Tumbleweed

escho

Channel 14 becomes red, when I enable 3x crop in movie-mode

Edgar
https://sternenkarten.com/
600D, 6D, openSUSE Tumbleweed

escho

According to the screenshot, the channels 19 - 22 are free for write. Here my test-results:

19: all frames corrupted
20: all frames corrupted
21: all frames corrupted
22: all frames corrupted

17: all is fine!

So I will use channel 17 (0x11), I guess

Edgar
https://sternenkarten.com/
600D, 6D, openSUSE Tumbleweed

a1ex

What does find_free_edmac_channels say?

escho

https://sternenkarten.com/
600D, 6D, openSUSE Tumbleweed

escho

Quote from: a1ex on June 22, 2014, 11:32:35 PM
What does find_free_edmac_channels say?

Test does not run.

I commented this out near the function "void find_free_edmac_channels()" in "edmac-memcpy.c"
//#if 0
...
//#endif

and compiled new. Then I click "don´t click me".  Some tests are running, but this edmac test refuses to work.

Edgar
https://sternenkarten.com/
600D, 6D, openSUSE Tumbleweed

a1ex

You need to call it from there (that's what the comment nearby says).

escho

OK, suceeded to let it run, but I don´t understand, what happens:

The camera tell me:

Trying write channel #0
Press PLAY if not working


And nothing more happens. So I press play and get the following message:

Trying read channel #8
Press PLAY if not working


Nothing more happens. So I press play again. Console turns on and I see this message:

Write channel #1 seems to work

???

Edgar
https://sternenkarten.com/
600D, 6D, openSUSE Tumbleweed

a1ex

Good. Write down the ones that seem to work - these will be the candidates for trying.

escho

Not good, Alex. I have no other messages than thisone, i told.

Edgar
https://sternenkarten.com/
600D, 6D, openSUSE Tumbleweed

a1ex

Only those 3 messages? It should check 32 channels.

The display may not be the best though, so if in doubt, keep pressing PLAY.

escho

A bit strange, the  handling of this test. Sorry.

Here are the results of the german votings  :)

write: 1, 4, 6, 19, 20, 21, 22, 32, 33
read: 10, 11, 12, 13, 24, 25, 26, 27, 28, 29, 40, 41, 42, 43

Write channel 33 is on the list  ;D

Edgar
https://sternenkarten.com/
600D, 6D, openSUSE Tumbleweed

escho

from this list, the channels 1, 6 and 33 are the channels, that run. All other have corrupted frames. I cannot test channel 32, because of the assert-error.

I think, Ill try it with channel 6

Edgar
https://sternenkarten.com/
600D, 6D, openSUSE Tumbleweed