As time permits, I'm having a go at porting this cam. Let's see. Thanks, reyalp for guidance on toolchain here. I believe Thumb2 imposes requirement for for capstone? I read all I could find. first mention then finsig stuff here then the patched Win lib here Which all looks promising, but not immediately useful to me with build env = ubuntu Precise. I will read more about that patch and see if I can apply it to my copy of capstone src before building chdk_src.
edit: will begin chdk_src build with PLATFORM=sx280hs PLATFORMSUB=102c, just a starting point until it compiles nicely.
You should be able to apply the patch to the capstone 3.0.4 source no problem, it's included in the windows library zip.
make PLATFORM=sx280hs PLATFORMSUB=102b fir
You will also probably want to be able to build the ixus160, since you already have that camera. Having a working port can be very useful to understand how things are supposed to work.
Ant apparently has an at least semi-working EOS M3 port. AFAIK the source hasn't been made public, but collaboration would probably be useful since CHDK hasn't previously supported interchangeable lens cameras.
Also saw a recent post from srsa_4c re: a visual tool to assist with the firmware..
[To clarify: that tool is mostly useful for finding framebuffers (and their parameters) in a camera RAM dump.
Re: M10 Spent 3 days getting a toolchain which can build ixus160 to a working .BIN state. Proved my toolchain is good by compiling 160 from source, then booting what I built-from-src in my 160. @Reyalp, the recommended prebuilt toolchain didn't work for me, nor did their OS-specific-pkg toolchain. Working toolchain was made by following gcc 4.6.4 version on Ubuntu 15.10, x86_64.
Took a lot of notes from the various and numerous failures. My toolchain also builds the "patched" capstone libs.
Using these tools, experienced devs and other informed ppl are able to determine that the M10 has DryOS v 57, and the sx280 & g7x are something else.
I need to learn for myself how that value is determined within the BIN file - what address or sig represents the DryOS version?
Same for rowpix vals, and all other critical vals. Not asking for gurus to solve it for me. Gotta learn this (and any pre-req's ! ) before proceeding. Using $DRYOSVERSION and $ROWPIX as learning examples.
fc4f1ffe: 492d ldr r1, [pc, #180] ; 0xfc4f20b4: (01de3e00) fc4f2000: a02d add r0, pc, #180 ; 0xfc4f20b8: (57415243) *"CRAW BUFF SIZE %p"fc4f2002: f63b fb06 bl loc_fc32d612
I am surprised that the pre-built toolchain didn't work out of the box. If you can give more detail about what specifically didn't work, that might other avoid the pain in the future. That said, if you don't want to dive back into this it's understandable
OPT_FIRMWARE_PC24_CALL=1I would NOT suggest using that. I'm not sure if it works at all in the current source, let alone for thumb 2, but in any case known thumb2 firmwares don't meet the requirements specified in the buildconf.inc comment.
You should be able to build capstone with the regular x86/x64 gcc provided by your distro. I hope this is what you mean.
For that one, I just open up the .bin file in vim and search for DRYOS (finsig_thumb2 finds it too, using essentially the same method)
Sorry for the wall of text, hopefully it's useful.
Thanks for that info. So, now I infer that M10 (rather thumb2 firmwares), CHDK does not load in the lowest 16MB. True? Haven't followed the code far enough yet to learn where/how that happens. Probably not ready to absorb more details about it yet.
But you shouldn't have spent that time.. Grateful for it, tho
Eos M10 Port - Progress Report
Started by axman
« 1 2 3 »
Started by burglar
Creative Uses of CHDK
Started by reyalp
Started by David475