Let start fresh.
A: Set up a workspace
1. Setup Magic Lantern for development, I used this instructionhttp://www.magiclantern.fm/forum/index.php?topic=16012.0
Thinkpad T420 with hackintosh, El Capitan 10.11.4
Make sure that you can compile one of the current working projects 5D3, 6D or etc.
2. Download Canon 1000d project and put it in the platform folder of magic lantern. https://bitbucket.org/coutts/1000d_dev/src
3. We have to fix the makefile and update it to a newer version of the compiler.
Open the makefile with a text editor and replace the following code
Don't forget to save it!
4. Now try to compile it, when everything works, you should end up with a new "AUTOEXEC.BIN"
Open a terminal and type:
"make clean" - removed compiled files
"make" - compiles the project
5. Generate a firmware for the Canon 1000d.
We have to compile a .fir file to be able to boot our own code.
Note: AUTOEXEC.BIN has to be generated first, since it is the input for the .fir
In terminal type:
A file called 1000d.fir should be now generated.
6. Put it on a SD card
Take an empty SD card and format it in the camera.
Copy the following files to SD card:
7. Try it in the camera.
Go to Menu and then to Firmware update section.
Select firmware to get to firmware update screen and press ok.
B: LED blinking example
I have take a look in the "engelmarkus_examples/2_1000D LED-Dumper" folder and used it as base for this example.
Download the example from here (led_blinking.zip):https://1drv.ms/f/s!AsC1K_kH7N9pbYhpDPUbSuC8Iss
What is it:
It lets both LEDs (blue and red) blinking in sync.
It is intended to have something to play with.
You guys can modified the time of blinking in the main.c and now the code should behave like it should.
What is it not:
A full working version of Magic Lantern.
The example comes with everything pre-compiled.
You can extract the files and follow step 6 from the instruction of section A.
Or you can compile it by yourself.
What was done:
- I took some functions defined in the "2_1000D LED-Dumper" and put them in the
- Some cleanups and documentation of the code.
- The firmware generation was base on e6kr5106, I updated the firmware generation to e6kr5107 (just used the script and files from latest release).
- All basic_functions functions are binded in the main.c now.
- Adapted it for the compilation.
This version does not contains the sub routines, which was defined in the latest release by Coutts in the entry.S or entry_subs.S files.
I guess he tried to adapt the boot routine from the 450? to the 1000d, but I could not get the LED blinking working on the latest version.
If you guys find some errors in the code let me know, I will update the example.
Hope this help some people to get into development for the Canon 1000D.
Have fun, I'm out photographing.