Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pokechu22/ghidra-upd77016-lang
A SLEIGH processor spec for the NEC/Renesas μPD77016 Family of DSPs (including μPD77210)
https://github.com/pokechu22/ghidra-upd77016-lang
dsp ghidra renesas reverse-engineering sleigh upd77016 upd77210 wii
Last synced: 1 day ago
JSON representation
A SLEIGH processor spec for the NEC/Renesas μPD77016 Family of DSPs (including μPD77210)
- Host: GitHub
- URL: https://github.com/pokechu22/ghidra-upd77016-lang
- Owner: Pokechu22
- License: other
- Created: 2022-08-15T06:00:14.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2024-03-11T03:53:30.000Z (11 months ago)
- Last Synced: 2025-01-13T04:33:31.110Z (27 days ago)
- Topics: dsp, ghidra, renesas, reverse-engineering, sleigh, upd77016, upd77210, wii
- Homepage:
- Size: 119 KB
- Stars: 10
- Watchers: 5
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
A SLEIGH processor spec for [Ghidra](https://github.com/NationalSecurityAgency/ghidra) for the NEC μPD77210 digital signal processor.
## Installation
This repository should be placed within the Ghidra install as the folder `Ghidra/Processors/uPD77016`, such that `Ghidra/Processors/uPD77016/data` is the path to the `data` folder. Ghidra should automatically add it to the available processor list on its next start, and compile the files when it is first used.
## Manuals
The [μPD77210 Family Digital Signal Processor Architecture manual](https://www.renesas.com/us/en/document/mat/upd77210-family-architecture) covers registers for μPD77210 and μPD77213, but refers to the [μPD77016 Family Digital Signal Processor Instructions manual](https://www.renesas.com/us/en/document/mah/upd77016-family-instructions) for the instruction set, also covering the μPD77015, μPD77016, μPD77017, μPD77018, μPD77018A, μPD77019, μPD77110, μPD77111, μPD77112, μPD77113 and μPD77114. The primary goal of this project is to cover the uPD77210, but it should theoretically be usable for any of these.
Unfortunately, these manuals don't talk about the encoding of instructions in detail. Appendix A of the μPD77016 manual shows some information about instruction fields, and gives a list of values associated with the fields, but doesn't actually say what the numeric value corresponding to each entry is. In practice, it seems like most of them are just in order, but a few of them have fewer values than could fit. [This EEVblog forum thread](https://www.eevblog.com/forum/microcontrollers/nec-dsp-upd77016-disassembler-help-anyone!/) provides one user's guesses at what they should be (which seem to be correct based on actual binaries).