Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Mafketel

#1
Camera-specific Development / Re: Canon 1200D
December 05, 2015, 06:14:36 PM
Quote from: dmilligan on November 08, 2015, 03:24:00 PM
ML works by calling functions that were found in the Canon firmware by disassembling it. We have to hardcode the specific addresses of these functions where they are stored in ROM (or in some cases RAM), because there is no API or linking faculties. In other words we only have an ABI, not an API. The locations of these functions are different for different cameras and even different revisions of firmware for the same camera. This is because when Canon compiles their firmware, the compiler is just going to put functions wherever it sees fit, so if Canon changed anything about the code at all (even something as simple as changing a single string literal) all the function locations are going to shift around. Therefore an ML build will only work on a specific camera and firmware version. It can't work on anything else, because it doesn't know the location of any functions it needs to work. ML actually does a checksum of the Canon firmware at startup to make sure it is the correct one and refuses to boot otherwise.
Luckily no greek in sight here, very well explained thank you.
Makes me want to get the firmware and let the computer find the fingerprints for those functions.....
But I assume that if that was possible that would have been done already.
How do you check for the functions? write a script to test each memory location and see what happens on your camera?