Evidence at a glance #
source evidence…
What was done #
A Ghidra language module for NXP MPC5746R microcontrollers that enables decompilation of VLE-only code, including support for EFPU2, LSP, and MPU, with automated analysis for entry points, peripherals, and data types.
The daskey/ghidra_MPC5746R project provides a Ghidra processor module for the NXP e200z4 PowerPC core. It supports VLE-only code, 32-bit GPRs, EFPU2 floating point, and the Lightweight Signal Processing (LSP) APU. The module includes a custom analyzer that transforms raw flash images into typed, decompilable code by identifying entry points, interrupt vectors, and peripheral registers. The analyzer automates small data area base detection, switch table recovery, and peripheral mapping using SVD descriptions. It also performs data type inference based on instruction usage and function signature refinement. Recent development, co-authored with Claude Fable 5.1, focused on refining structure definitions, handling function pointers, and resolving variable widths across function calls. The documentation notes that the decompiler may fail on calls where the parameter definition is wider than the provided argument. Additionally, the analyzer leaves user-defined signatures or manually set values unchanged, and certain parameters remain four bytes wide if analysis cannot determine a narrower type due to incomplete call graphs or user-defined constraints.
Community #
Ask a question, share what worked, or follow the next milestone.