--
http://magiclantern.wikia.com/
To post to this group, send email to ml-d...@googlegroups.com
To unsubscribe from this group, send email to ml-devel+u...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/ml-devel?hl=en
Removing the need to use libc in the source (by replacing the needed
functionality from eg. bionic or uclibc) would make the building a lot
easier though imho.
SztupY
The 600D branch is based on the 60D branch which is based on the 550D
branch which is based on the original master (5DmkII branch), but is
somewhat different as Alex is actively developing new features primarily
here. Each one has more or less differences from the previous one. If
looking for features you should first check the 550D or 60D branch, as
those contain the most compatible code that should more or less work on
600D too.
SztupY
I'd be glad to look into it. I'm trying to compile the ARM toolchain now (from the current esden trunk). It currently crashes at "Configuring openocd-master" with
"checking Build & Link with libftdi...... configure: error: Cannot build & run test program using libftdi"
Contacted Piotr Esden-Tempski about it already.
I think I'm going to look for a version dating back from the time when the ML instructions for Mac OS on the wiki were developed, now.
While it's compiling, I'm looking at "gui.c", guessing that the actual changes need to be done in header file "consts-600d.101.h".
Can you confirm that you are now trying out event constants using "console_printf" (guess from commented out code), which, what, will output on the camera screen? If so, can we separate the workload so that we don't redo the work independently?
Still compiling ARM toolchain…
Vincent
Do not use other versions of ARM toolchain; use the ones recommended
on the wiki.
http://magiclantern.wikia.com/wiki/Build_instructions/550D
If you don't use console.c (i.e. just bmp_printf), messages will still
appear on the screen, but sometimes they may get erased before you
have a chance to read them. For the first time, I think it's OK to use
this approach.
To use console_printf, you need to include console.c (add console.o in
Makefile at ML_OBJS-y ). This will print messages on the screen; you
have to start it with console_show() first, because the menu is not
working yet. Also make "draw_event = 1" in menu.c.
Relevant pages:
http://magiclantern.wikia.com/wiki/Debugging_Magic_Lantern
http://magiclantern.wikia.com/wiki/GUI_Events/550D
Also see the 60D porting thread for more hints.
Vincent
But I can't seem to be able to trigger anything. Does the code now in version control do anything more than "set the bootflag"? How to I test "gui.c" from the camera? Or confirm that the autoexec.in has loaded properly?
Thanks again guys. I know this is basic stuff, but, well, I think I can contribute if I get these little steps done! ;-)
Vincent
First, you have to enable task override (uncomment line
boot-hack.c:137). There are two tasks started in this way: one in
gui.c (which we want), and one in audio.c (sounddev_task). Make sure
the camera boots with these tasks, and display the events on the
screen. From handle_buttons, comment everything except the block
containing console_printf, and return 1 for all events. This should
let you display button events on the screen.
Next:
Other tasks will be normally started after reading config file. See
the 60D boot-hack to see how it's done:
https://bitbucket.org/hudson/magic-lantern/src/tip/boot-hack.c
I recommend you to block all the tasks (comment all calls to
TASK_CREATE macro) and enable them one by one. The first one will be
the menu.
Hi,
Cool!
So did "make clean".�Uncommented �boot-hack.c:137 so it now reads "task_dispatch_hook = my_task_dispatch_hook;".�Put newly compiled "autoexec.bin" on card. Put battery back. Turned on. Video mode. Pressed trash can button. Nothing. :-(
[ LD � � � ] � magiclantern
[ OBJCOPY �] � magiclantern.bin
[ CC � � � ] � reboot.o
[ LD � � � ] � autoexec
[ OBJCOPY �] � autoexec.bin
Still compiling ARM toolchain�
Vincent
On 2011-05-29, at 1:20 PM, arm.indy wrote:
Hi Vincent,
The first thing is to activate menu and key events handling (gui.c).
The 60d code can be reused, but key events may differ a little bit.
the 600d is very close to the 60d, which must be taken as model for
the porting process.
Indy
On May 28, 11:03 pm, Vincent Olivier <vinc...@nbourbaki.com> wrote:
Hi,
When looking for the "movie_restart" in the t3i branch, it only shows up in the "debug.c" file whereas in the original one, there are around 10 files where it's a hit. So, I might want to import this code in. But I'd need a little guidance�
I'm totally new in this and it's really difficult to get a grasp on the code because the only comments I will find in there are dead lines that have been commented out. ;-)
For instance, everything of interest seems to arise around "call("MovieStart");" statements. I find "4a79d9 FA_MovieStart" in the "fa-functions.txt" file, but no further definition for that. Is that a lower level service in DryOS or something? Can it be overridden/looked at?
And even if I get the whole thing to compile and load on the camera (which seems feasible given the instruction set I found for Mac OS), I'm not sure I will be able to understand what needs to be done to have ML working on the t3i before you guys are done with it� Unless I get a crash course or something�
On May 25, 2:46 pm, "arm.indy"<arm.indi...@gmail.com> �wrote:
I just cloned Alex's branch from this revisionhttps://bitbucket.org/a1ex/magic-lantern/changeset/93135f58ed93
and included my diff for 600D / T3i inhttps://bitbucket.org/arm_indy/magic-lantern-for-600d-t3i/changesets
If someone serious want write access, just ask.
Indy
On May 24, 10:08 pm, "arm.indy"<arm.indi...@gmail.com> �wrote:
gui.c from 60d can be used.
counter and queue offsets (0xc and 0x30 resp.) are the same.
struct is 0x1C38
600d is closer to 60d than 550d: same DryOS 2.3 version release #47
thanks for your help Chuchin!
Indy
On May 24, 9:51 pm, "XFracture (aka Herb)"<herbhalst...@gmail.com>
wrote:
so... Chuchin... do you a compiled version? (grin)
On May 24, 1:28 pm, Chuchin<jlsaldan...@gmail.com> �wrote:
Brain, I'm using the 550 build as a starting point, which can be
downloaded herehttps://bitbucket.org/hudson/magic-lantern/srcyou
have to update the 5d-hack.c file the new address that can be found in
the consts-600d.101.h. In the gui.c file keep the #include
"consts-550d.109.h" untill the 600d are confrim. In the makefile the
restartstart has to be update which is in the stubs-600d.101.S also
replace the 550d-empty.hdr with the 600d frimware, keep
magiclantern.lds entry.o 5d-hack.o stubs-600d.101.S version.o bmp.o
font-large.o font-med.o font-small.o config.o menu.o debug.o stdio.o
lens.o property.o propvalues.o gui.o chdk-gui_draw.o and try to
activate the other functions one at a time. You will have to rewrite
code as needed but not much.
Chucho
On May 24, 5:42 am, Brian Berneker<brianberne...@gmail.com> �wrote:
Hey I do some pretty in depth php programming, and while I realize
it's probably quite different from what you're working with, some of
the code looks very recognizable and like I might even be able to make
sense of it and pitch in. �Is there a link to an SDK or something I
could use to help? �I'd love to get involved and contribute...
Brian
On May 21, 7:28 pm, indy arm<arm.indi...@gmail.com> �wrote:
Hi,
Please find:
- an minimal version of ML that set the bootflag.
- Stubs and Consts files for "autoexec.bin" development
Thanks to Chucho for the very first test!
Most work has been done by Alex and assembled by me.
we used this tag as a starting point:https://bitbucket.org/a1ex/magic-lantern/changeset/93135f58ed93
Any developer for the 600D/T3i will be helped to port the 550d and 60d
features.
Indy (who do not have a 600d ;-)
�autoexec.bin
...
read more �
--
http://magiclantern.wikia.com/
To post to this group, send email to ml-d...@googlegroups.com
To unsubscribe from this group, send email to ml-devel+u...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/ml-devel?hl=en
--
http://magiclantern.wikia.com/
To post to this group, send email to ml-d...@googlegroups.com
To unsubscribe from this group, send email to ml-devel+u...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/ml-devel?hl=en
--
http://magiclantern.wikia.com/
To post to this group, send email to ml-d...@googlegroups.com
To unsubscribe from this group, send email to ml-devel+u...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/ml-devel?hl=en
--
http://magiclantern.wikia.com/
To post to this group, send email to ml-d...@googlegroups.com
To unsubscribe from this group, send email to ml-devel+u...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/ml-devel?hl=en
The version number should get rewritten by the init part too. Check it inside the normal Canon menu.
SztupY
Hi,
Cool!
So did "make clean". Uncommented boot-hack.c:137 so it now reads "task_dispatch_hook = my_task_dispatch_hook;". Put newly compiled "autoexec.bin" on card. Put battery back. Turned on. Video mode. Pressed trash can button. Nothing. :-(
[ LD ] magiclantern
[ OBJCOPY ] magiclantern.bin
[ CC ] reboot.o
[ LD ] autoexec
[ OBJCOPY ] autoexec.bin
Still compiling ARM toolchain…
Vincent
On 2011-05-29, at 1:20 PM, arm.indy wrote:
Hi Vincent,
The first thing is to activate menu and key events handling (gui.c).
The 60d code can be reused, but key events may differ a little bit.
the 600d is very close to the 60d, which must be taken as model for
the porting process.
Indy
On May 28, 11:03 pm, Vincent Olivier <vinc...@nbourbaki.com> wrote:
Hi,
When looking for the "movie_restart" in the t3i branch, it only shows up in the "debug.c" file whereas in the original one, there are around 10 files where it's a hit. So, I might want to import this code in. But I'd need a little guidance…
I'm totally new in this and it's really difficult to get a grasp on the code because the only comments I will find in there are dead lines that have been commented out. ;-)
For instance, everything of interest seems to arise around "call("MovieStart");" statements. I find "4a79d9 FA_MovieStart" in the "fa-functions.txt" file, but no further definition for that. Is that a lower level service in DryOS or something? Can it be overridden/looked at?
And even if I get the whole thing to compile and load on the camera (which seems feasible given the instruction set I found for Mac OS), I'm not sure I will be able to understand what needs to be done to have ML working on the t3i before you guys are done with it… Unless I get a crash course or something…
On May 25, 2:46 pm, "arm.indy"<arm.indi...@gmail.com> wrote:
I just cloned Alex's branch from this revisionhttps://bitbucket.org/a1ex/magic-lantern/changeset/93135f58ed93
and included my diff for 600D / T3i inhttps://bitbucket.org/arm_indy/magic-lantern-for-600d-t3i/changesets
If someone serious want write access, just ask.
Indy
On May 24, 10:08 pm, "arm.indy"<arm.indi...@gmail.com> wrote:
gui.c from 60d can be used.
counter and queue offsets (0xc and 0x30 resp.) are the same.
struct is 0x1C38
600d is closer to 60d than 550d: same DryOS 2.3 version release #47
thanks for your help Chuchin!
Indy
On May 24, 9:51 pm, "XFracture (aka Herb)"<herbhalst...@gmail.com>
wrote:
so... Chuchin... do you a compiled version? (grin)
On May 24, 1:28 pm, Chuchin<jlsaldan...@gmail.com> wrote:
Brain, I'm using the 550 build as a starting point, which can be
downloaded herehttps://bitbucket.org/hudson/magic-lantern/srcyou
have to update the 5d-hack.c file the new address that can be found in
the consts-600d.101.h. In the gui.c file keep the #include
"consts-550d.109.h" untill the 600d are confrim. In the makefile the
restartstart has to be update which is in the stubs-600d.101.S also
replace the 550d-empty.hdr with the 600d frimware, keep
magiclantern.lds entry.o 5d-hack.o stubs-600d.101.S version.o bmp.o
font-large.o font-med.o font-small.o config.o menu.o debug.o stdio.o
lens.o property.o propvalues.o gui.o chdk-gui_draw.o and try to
activate the other functions one at a time. You will have to rewrite
code as needed but not much.
Chucho
On May 24, 5:42 am, Brian Berneker<brianberne...@gmail.com> wrote:
Hey I do some pretty in depth php programming, and while I realize
it's probably quite different from what you're working with, some of
the code looks very recognizable and like I might even be able to make
sense of it and pitch in. Is there a link to an SDK or something I
could use to help? I'd love to get involved and contribute...
Brian
On May 21, 7:28 pm, indy arm<arm.indi...@gmail.com> wrote:
Hi,
Please find:
- an minimal version of ML that set the bootflag.
- Stubs and Consts files for "autoexec.bin" development
Thanks to Chucho for the very first test!
Most work has been done by Alex and assembled by me.
we used this tag as a starting point:https://bitbucket.org/a1ex/magic-lantern/changeset/93135f58ed93
Any developer for the 600D/T3i will be helped to port the 550d and 60d
features.
Indy (who do not have a 600d ;-)
autoexec.bin
...
read more »
This, specifically?�http://twitpic.com/54c7r2
I can't see anything else.
Vincent
On 2011-05-29, at 5:49 PM, Sztup�k Sz. Zsolt wrote:
The version number should get rewritten by the init part too. Check it inside the normal Canon menu.
�SztupY
Hi,
Cool!
So did "make clean".�Uncommented �boot-hack.c:137 so it now reads "task_dispatch_hook = my_task_dispatch_hook;".�Put newly compiled "autoexec.bin" on card. Put battery back. Turned on. Video mode. Pressed trash can button. Nothing. :-(
[ LD � � � ] � magiclantern
[ OBJCOPY �] � magiclantern.bin
[ CC � � � ] � reboot.o
[ LD � � � ] � autoexec
[ OBJCOPY �] � autoexec.bin
Still compiling ARM toolchain�
Vincent
On 2011-05-29, at 1:20 PM, arm.indy wrote:
Hi Vincent,
The first thing is to activate menu and key events handling (gui.c).
The 60d code can be reused, but key events may differ a little bit.
the 600d is very close to the 60d, which must be taken as model for
the porting process.
Indy
On May 28, 11:03 pm, Vincent Olivier <vinc...@nbourbaki.com> wrote:
Hi,
When looking for the "movie_restart" in the t3i branch, it only shows up in the "debug.c" file whereas in the original one, there are around 10 files where it's a hit. So, I might want to import this code in. But I'd need a little guidance�
I'm totally new in this and it's really difficult to get a grasp on the code because the only comments I will find in there are dead lines that have been commented out. ;-)
For instance, everything of interest seems to arise around "call("MovieStart");" statements. I find "4a79d9 FA_MovieStart" in the "fa-functions.txt" file, but no further definition for that. Is that a lower level service in DryOS or something? Can it be overridden/looked at?
And even if I get the whole thing to compile and load on the camera (which seems feasible given the instruction set I found for Mac OS), I'm not sure I will be able to understand what needs to be done to have ML working on the t3i before you guys are done with it� Unless I get a crash course or something�
On May 25, 2:46 pm, "arm.indy"<arm.indi...@gmail.com> �wrote:
I just cloned Alex's branch from this revisionhttps://bitbucket.org/a1ex/magic-lantern/changeset/93135f58ed93
and included my diff for 600D / T3i inhttps://bitbucket.org/arm_indy/magic-lantern-for-600d-t3i/changesets
If someone serious want write access, just ask.
Indy
On May 24, 10:08 pm, "arm.indy"<arm.indi...@gmail.com> �wrote:
gui.c from 60d can be used.
counter and queue offsets (0xc and 0x30 resp.) are the same.
struct is 0x1C38
600d is closer to 60d than 550d: same DryOS 2.3 version release #47
thanks for your help Chuchin!
Indy
On May 24, 9:51 pm, "XFracture (aka Herb)"<herbhalst...@gmail.com>
wrote:
so... Chuchin... do you a compiled version? (grin)
On May 24, 1:28 pm, Chuchin<jlsaldan...@gmail.com> �wrote:
Brain, I'm using the 550 build as a starting point, which can be
downloaded herehttps://bitbucket.org/hudson/magic-lantern/srcyou
have to update the 5d-hack.c file the new address that can be found in
the consts-600d.101.h. In the gui.c file keep the #include
"consts-550d.109.h" untill the 600d are confrim. In the makefile the
restartstart has to be update which is in the stubs-600d.101.S also
replace the 550d-empty.hdr with the 600d frimware, keep
magiclantern.lds entry.o 5d-hack.o stubs-600d.101.S version.o bmp.o
font-large.o font-med.o font-small.o config.o menu.o debug.o stdio.o
lens.o property.o propvalues.o gui.o chdk-gui_draw.o and try to
activate the other functions one at a time. You will have to rewrite
code as needed but not much.
Chucho
On May 24, 5:42 am, Brian Berneker<brianberne...@gmail.com> �wrote:
Hey I do some pretty in depth php programming, and while I realize
it's probably quite different from what you're working with, some of
the code looks very recognizable and like I might even be able to make
sense of it and pitch in. �Is there a link to an SDK or something I
could use to help? �I'd love to get involved and contribute...
Brian
On May 21, 7:28 pm, indy arm<arm.indi...@gmail.com> �wrote:
Hi,
Please find:
- an minimal version of ML that set the bootflag.
- Stubs and Consts files for "autoexec.bin" development
Thanks to Chucho for the very first test!
Most work has been done by Alex and assembled by me.
we used this tag as a starting point:https://bitbucket.org/a1ex/magic-lantern/changeset/93135f58ed93
Any developer for the 600D/T3i will be helped to port the 550d and 60d
features.
Indy (who do not have a 600d ;-)
�autoexec.bin
...
read more �
--
http://magiclantern.wikia.com/
To post to this group, send email to ml-d...@googlegroups.com
To unsubscribe from this group, send email to ml-devel+u...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/ml-devel?hl=en
--
http://magiclantern.wikia.com/
To post to this group, send email to ml-d...@googlegroups.com
To unsubscribe from this group, send email to ml-devel+u...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/ml-devel?hl=en
--
http://magiclantern.wikia.com/
To post to this group, send email to ml-d...@googlegroups.com
To unsubscribe from this group, send email to ml-devel+u...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/ml-devel?hl=en
--
http://magiclantern.wikia.com/
To post to this group, send email to ml-d...@googlegroups.com
To unsubscribe from this group, send email to ml-devel+u...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/ml-devel?hl=en
To post to this group, send email to ml-d...@googlegroups.com
To unsubscribe from this group, send email to ml-devel+u...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/ml-devel?hl=en
To post to this group, send email to ml-d...@googlegroups.com
To unsubscribe from this group, send email to ml-devel+u...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/ml-devel?hl=en
Does bmp_printf work? (I believe yes). Use it to see what the code is
doing, and look at 60D's boot-hack.c to see how startup works.
Yep, as you can see ML did load (the version number contains -ml-builddate).
From this on probably the task handler didn't get loaded properly, so the gui task doesn't get loaded which handles the keys which will in turn load the menus.
SztupY
This, specifically? http://twitpic.com/54c7r2
I can't see anything else.
Vincent
On 2011-05-29, at 5:49 PM, Sztupák Sz. Zsolt wrote:
The version number should get rewritten by the init part too. Check it inside the normal Canon menu.
SztupY
Hi,
Cool!
So did "make clean". Uncommented boot-hack.c:137 so it now reads "task_dispatch_hook = my_task_dispatch_hook;". Put newly compiled "autoexec.bin" on card. Put battery back. Turned on. Video mode. Pressed trash can button. Nothing. :-(
[ LD ] magiclantern
[ OBJCOPY ] magiclantern.bin
[ CC ] reboot.o
[ LD ] autoexec
[ OBJCOPY ] autoexec.bin
Still compiling ARM toolchain…
Vincent
On 2011-05-29, at 1:20 PM, arm.indy wrote:
Hi Vincent,
The first thing is to activate menu and key events handling (gui.c).
The 60d code can be reused, but key events may differ a little bit.
the 600d is very close to the 60d, which must be taken as model for
the porting process.
Indy
On May 28, 11:03 pm, Vincent Olivier <vinc...@nbourbaki.com> wrote:
Hi,
When looking for the "movie_restart" in the t3i branch, it only shows up in the "debug.c" file whereas in the original one, there are around 10 files where it's a hit. So, I might want to import this code in. But I'd need a little guidance…
I'm totally new in this and it's really difficult to get a grasp on the code because the only comments I will find in there are dead lines that have been commented out. ;-)
For instance, everything of interest seems to arise around "call("MovieStart");" statements. I find "4a79d9 FA_MovieStart" in the "fa-functions.txt" file, but no further definition for that. Is that a lower level service in DryOS or something? Can it be overridden/looked at?
And even if I get the whole thing to compile and load on the camera (which seems feasible given the instruction set I found for Mac OS), I'm not sure I will be able to understand what needs to be done to have ML working on the t3i before you guys are done with it… Unless I get a crash course or something…
On May 25, 2:46 pm, "arm.indy"<arm.indi...@gmail.com> wrote:
I just cloned Alex's branch from this revisionhttps://bitbucket.org/a1ex/magic-lantern/changeset/93135f58ed93
and included my diff for 600D / T3i inhttps://bitbucket.org/arm_indy/magic-lantern-for-600d-t3i/changesets
If someone serious want write access, just ask.
Indy
On May 24, 10:08 pm, "arm.indy"<arm.indi...@gmail.com> wrote:
gui.c from 60d can be used.
counter and queue offsets (0xc and 0x30 resp.) are the same.
struct is 0x1C38
600d is closer to 60d than 550d: same DryOS 2.3 version release #47
thanks for your help Chuchin!
Indy
On May 24, 9:51 pm, "XFracture (aka Herb)"<herbhalst...@gmail.com>
wrote:
so... Chuchin... do you a compiled version? (grin)
On May 24, 1:28 pm, Chuchin<jlsaldan...@gmail.com> wrote:
Brain, I'm using the 550 build as a starting point, which can be
downloaded herehttps://bitbucket.org/hudson/magic-lantern/srcyou
have to update the 5d-hack.c file the new address that can be found in
the consts-600d.101.h. In the gui.c file keep the #include
"consts-550d.109.h" untill the 600d are confrim. In the makefile the
restartstart has to be update which is in the stubs-600d.101.S also
replace the 550d-empty.hdr with the 600d frimware, keep
magiclantern.lds entry.o 5d-hack.o stubs-600d.101.S version.o bmp.o
font-large.o font-med.o font-small.o config.o menu.o debug.o stdio.o
lens.o property.o propvalues.o gui.o chdk-gui_draw.o and try to
activate the other functions one at a time. You will have to rewrite
code as needed but not much.
Chucho
On May 24, 5:42 am, Brian Berneker<brianberne...@gmail.com> wrote:
Hey I do some pretty in depth php programming, and while I realize
it's probably quite different from what you're working with, some of
the code looks very recognizable and like I might even be able to make
sense of it and pitch in. Is there a link to an SDK or something I
could use to help? I'd love to get involved and contribute...
Brian
On May 21, 7:28 pm, indy arm<arm.indi...@gmail.com> wrote:
Hi,
Please find:
- an minimal version of ML that set the bootflag.
- Stubs and Consts files for "autoexec.bin" development
Thanks to Chucho for the very first test!
Most work has been done by Alex and assembled by me.
we used this tag as a starting point:https://bitbucket.org/a1ex/magic-lantern/changeset/93135f58ed93
Any developer for the 600D/T3i will be helped to port the 550d and 60d
features.
Indy (who do not have a 600d ;-)
autoexec.bin
...
read more »
Overriden tasks will be started by DryOs; they may be started very
early, so it may not be possible to use DebugMsg from there. I believe
bmp_printf should be safe, as it only writes to VRAM.
First display a "Hello world" message from the end of my_init_task,
and from this point on, you will know how to continue.
Are you referring to the continuous recording hack I mentioned in the SDXC thread?
If so, that is my primary objective with the 600D/T3i port.
I saw on your Twitter feed mentions of the buffers. My initial plan for a gapless sequential movie file recording was to :
1) Hook a task around the 4GB (and eventually the 29 minutes) limit checking functions that would be triggered just before the limit is handled by the camera.
2) this task would (that's one of the possible strategies) have the camera continue to feed the buffers while it's closing the file, and
3) once the file-closing (MovieEnd?), automatically restart the movie recording (MovieStart?) with the buffer contents that have been fed while closing the previous file;
4) continue until the recording has been explicitly stopped by the user;
What do you think of that strategy? Do you think the buffers are large enough to handle the 2-3 seconds it takes between a MovieEnd/MovieStart sequence? Do you think we can feed the buffers with both video and audio during that time? Can DryOS handle that kind of parallelism?
Now, I need to learn a lot about the architecture of the ML code before I'm minimally useful to all of this, but I would really like to know where I can find literature on FA-functions. Are these how the ML hooks are registered? How ML calls DryOS functions? Is what can be now found in the T3i for actually accurate for the T3i? Are there more functions that are unmapped, unknown? Where are those functions documented?
I will probably have time to look into it again later today.
Thanks,
Vincent
PS: I'm curious about how many ML developers currently have access to a T3i unit?
v
I didn't try it; it might be possible to get a smaller gap than with
current Movie Restart (which just calls MovieStart after recording
stopped automatically).
> What do you think of that strategy? Do you think the buffers are large enough to handle the 2-3 seconds it takes between a MovieEnd/MovieStart sequence? Do you think we can feed the buffers with both video and audio during that time? Can DryOS handle that kind of parallelism?
It's not so easy. I think it may be possible to trick it, i.e. to open
another file from ML, make the movie recording task believe it didn't
arrive at the 4 GB limit, and then mangle the file pointers on the
fly. I don't know how to implement this or if it has any chance to
work.
> Now, I need to learn a lot about the architecture of the ML code before I'm minimally useful to all of this, but I would really like to know where I can find literature on FA-functions. Are these how the ML hooks are registered? How ML calls DryOS functions? Is what can be now found in the T3i for actually accurate for the T3i? Are there more functions that are unmapped, unknown? Where are those functions documented?
On the wiki.
> PS: I'm curious about how many ML developers currently have access to a T3i unit?
As far as I know, only Chuchin.
Thanks Andrew. I'm almost done with a Ubuntu 10.04 LTS Parallels VM. It's better this way, I think. To have some kind of degree of isolation! ;-)
And thanks to those who offered privately their own VM. I'm not done with mine, so if it doesn't work, I'll probably end up using one of yours.
Thanks,
Vincent
Just to keep you posted on where I am. The toolchain is no problem, but the console is a bitch to get together (as per one of the nice fellas that offered a VM). I will dedicate one full day for that this weekend and once I'm done with the environment, my priorities are :
1) Port buttons and existing 60D function mappings and code to T3i in a fail-fast manner (if it doesn't work after 2 trials, it's on to the next one and I'll post summarized report of the progress as I go).
2) If I don't get it from 1), try to have always-present audio levels HUD in a non-interactive fashion (no on/off configuration to keep it minimal)
3) Alleviate the all-elusive recording limit from the easiest (auto-restart MovieStart) to the most sophisticated (video+audio buffer overrun for file sequence).
4) Full-HD HDMI output with audio (if it is even possible?).
I might post a bin after 1) is done. Of course, it will be an at-your-own-risk kind of thing.
Vincent
Thanks for your reply. I've been looking to see if tasks got loaded that I didn't know of and so far, I couldn't find any that I could comment out without compromising the basic button handling functionality.
If I could do a chronologic read of the code (as it gets loaded and executed) with someone on Skype or something, I'm pretty sure we could figure out what's causing the freeze.
In the meantime, I'll keep on keeping on. ;-)
Vincent
PS : to those that want to see the ML T3i port happen ASAP, just get Indy a T3i/600D unit and you'll see workable betas of the firmware released much faster than with just me trying this thing out (I'm the only one with a T3i/600D and I'm new to this). Plus, Indy (and the other ML veteran developers) clearly deserve it.
So, still referring to my bitbucket branch, I refactored the boot-hack.my_task_dispatch_hook for simplicity and, so really, if I'm guessing right, it's a replacement at boot-hack.c:180 that is causing the problem. When this line is commented out, the camera won't freeze. Have the task mappings been done for 600D specifically? How can I debug at this point? Can I write a log file on the card?
Best regards,
Vincent
By mapping I mean whatever is referred to in boot-hack.my_task_dispatch_hook by the "mapping" variable.
It seems the debug.c code has dependencies over pretty much everything else in ML. And what I got from the initial ML branch doesn't compile.
But is that what I need to do in order to get tracing in the log file? Because I can call dumpf and now that I do, I see there is a log file created on the SD card. However, none of the "DebugMsg" calls get logged. The only line with the "MAGIC" prefix is " 65: 831.409 [MAGIC] SetPtpTransportResources:0,3218". How do I get "DebugMsg" to work without including the whole ML code in the Makefile?
Regards,
Vincent
First try with a simple copy of gui_main_task from the assembler
(without handle_buttons or debugging info). This one should work (i.e.
camera should operate normally with your gui_main_task).
I get the button feedback on the screen. Will put in the log and send here today.
Vincent
Vincent
Vincent
Great! You can start from these pages (I assume you have already read them):
http://magiclantern.wikia.com/wiki/550d_dev (all the links starting from there)
http://magiclantern.wikia.com/wiki/2.0.4_AJ (the same)
http://magiclantern.wikia.com/wiki/Extending_Magic_Lantern (I've just
added some ideas about file I/O)
http://magiclantern.wikia.com/wiki/DevFAQ
http://magiclantern.wikia.com/wiki/Magic_Lantern_API
And the main page for this, which I'd like to be a starting point for
all development info:
http://magiclantern.wikia.com/wiki/For_Developers
> If someone wants to check, it's been pushed to my branch.
hg clone https://bitbucket.org/up4/magic-lantern-for-600d-t3i
> The Q button has no ALT or "unpress" event, unlike the 60D
Same on 550D/60D. In certain dialogs, it sends a different code (that's ALT).
> The LEFT/RIGHT buttons have different code when in "Q" mode menu
ML doesn't need to check these buttons in Q mode anyway. This mode is
called UNAVI in the firmware, btw.
> There are a couple of unknown button events that are fired for unknown
> reasons (some in the init phase)
Not all GUI events are buttons.
> The half-shutter (both pressed and unpressed) button codes are shared with
> zoom out button
Same on other cameras. They are metering events which happen when you
press those buttons; shutter button is not handled by GUI main task;
they are probably handled in MainCtrl.
http://code.google.com/p/400plus/source/browse/trunk/mainctrl.c
> The Av button and all the dials do not seem to fire the button event
Same on all other cameras.
> That's it for tonight.
> Will probably have time to activate the menus in the next couple of days.
> Vincent
>
Can I also get a little idea on what this is doing? Please? If the 600D is currently out of stock worldwide, then I don't want to break mine! ;-)
Vincent
autoexec.bin (at 0x800000) is 99% the same thing than magiclantern.fir
(at 0x800120)
see http://magiclantern.wikia.com/wiki/Autoexec
you do not need build_fir.py for autoexec.bin, usable on a bootable
card.
600d is out of stock locally, not world wide.
Now, YUV422_LV_BUFFER_DMA_ADDR is a pointer to one of those addresses
(probably the one into which the DIGIC is currently writing an image).
You can find this with mem-spy (after enabling the menu).
For most things, you don't need to take care of triple-buffering; you
can use only one bank. For magic zoom, which actually writes in this
VRAM, timing is critical; ML has to write the magic zoom window after
the DIGIC filled a buffer, but before the liveview task reads that
buffer in order to display it on LCD.
P.S. Take a look at this changeset (we are still working on it, but I
hope it will make the porting process much easier).
https://bitbucket.org/hudson/magic-lantern/changeset/f474d27676af
https://bitbucket.org/hudson/magic-lantern/src/tip
To compile only the 600D branch, use:
make 600D
If any 600D user wants to test my autoexec.bin, please let me know. In
theory, it should display the startup logo and open the menu when you
press the delete button.
Will compile, run and report.
Vincent