{"slug": "nxp-mpc5746r-daskey-ghidra-mpc5746r", "title": "NXP MPC5746R: daskey/ghidra_MPC5746R", "summary": "The daskey/ghidra_MPC5746R project released a Ghidra processor module for the NXP e200z4 PowerPC core in the NXP MPC5746R microcontroller, enabling decompilation of VLE-only code with support for 32-bit GPRs, EFPU2 floating point, the Lightweight Signal Processing (LSP) APU, and the MPU. A custom analyzer converts raw flash images into typed, decompilable code by identifying entry points, interrupt vectors, and peripheral registers, and automates small data area base detection, switch table recovery, and peripheral mapping from SVD descriptions. The documentation, co-authored with Claude Fable 5.1, notes the decompiler may fail on calls where the parameter definition is wider than the provided argument, and that parameters stay four bytes wide when analysis cannot infer a narrower type from incomplete call graphs.", "body_md": "## Evidence at a glance\n\nLoading source evidence…\n\n## What was done\n\nA 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.\n\nThe [daskey/ghidra_MPC5746R](https://raw.githubusercontent.com/daskey/ghidra_mpc5746r/HEAD/README.md) 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.\n\n## Community\n\nAsk a question, share what worked, or follow the next milestone.\n\n[Your library](https://reversedwithai.com/library)", "url": "https://wpnews.pro/news/nxp-mpc5746r-daskey-ghidra-mpc5746r", "canonical_source": "https://reversedwithai.com/p/nxp-mpc5746r-757a6101", "published_at": "2026-10-28 08:30:56+00:00", "updated_at": "2026-10-28 09:41:05.269229+00:00", "lang": "en", "topics": ["developer-tools"], "entities": ["NXP", "MPC5746R", "Ghidra", "e200z4", "daskey/ghidra_MPC5746R", "Claude Fable 5.1"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/nxp-mpc5746r-daskey-ghidra-mpc5746r", "markdown": "https://wpnews.pro/news/nxp-mpc5746r-daskey-ghidra-mpc5746r.md", "text": "https://wpnews.pro/news/nxp-mpc5746r-daskey-ghidra-mpc5746r.txt", "jsonld": "https://wpnews.pro/news/nxp-mpc5746r-daskey-ghidra-mpc5746r.jsonld"}}