reticulatedpines / magiclantern_simplified

A Git based version of Magic Lantern, for those unwilling or unable to work using Mercurial. The vast majority of branches have been removed, with those thought to be important brought in individually and merged.
GNU General Public License v2.0
149 stars 51 forks source link

Use D45 qemu to detect inappropriate code behaviour for D678 (null pointers, div by zero, etc) #56

Open reticulatedpines opened 2 years ago

reticulatedpines commented 2 years ago

D45 use a version / configuration of ARM that has different guarantees to D678. E.g. D6 forbids division by zero, D78 use MMU to disallow access to zero page. These are allowed on D45 and so there are bugs where they unintentionally occur.

We should trigger these conditions on purpose in qemu on D45:

But see null_pointer_check() which requires access through null pointer on D45 to try and detect buggy Canon code.