11 unstable releases (3 breaking)
Uses new Rust 2024
| new 0.5.4 | Nov 12, 2025 |
|---|---|
| 0.5.3 | Oct 24, 2025 |
| 0.4.3 | Sep 29, 2025 |
| 0.4.0 | Aug 24, 2025 |
| 0.2.1 | Jul 22, 2025 |
#1946 in Embedded development
763 downloads per month
Used in onerom-wasm
320KB
7K
SLoC
sdrr-fw-parser
Parses Software Defined Retro ROM (SDRR) firmware.
This is a no_std compatible library, which can be used in both std and
no_std environments and can read and extract information from SDRR
firmware - either from
- a binary file
- an ELF file
- raw bytes, e.g. from bytes read directly from a device's flash or RAM
This is used directly within the SDRR repository, by:
sdrr-info- PC based tool to analyse SDRR firmware source code
It can also be used by external tools.
Typically used like this:
use sdrr_fw_parser::SdrrInfo;
let sdrr_info = SdrrInfo::from_firmware_bytes(
SdrrFileType::Elf,
&sdrr_info, // Reference to sdrr_info_t from firmware file
&full_fw, // Reference to full firmware data
file_size // Size of the full firmware file in bytes
);
sdrr-fw-parser
Crate to handle parsing an SDRR firmware image.
This can can be a .bin or .elf file - or could be the contents of an STM32's flash memory. It supports no_std environments, for adding to embedded applications, or std for use in PC-based tools.
A PC-based reference implementation is provided in the sdrr-info tool, which is used to parse and output the contents of a firmware image when you run make info or make info-detail.
A reference embedded implementation using this crate is Airfrog, which is a tiny $3 probe for ARM devices, that can be used to inspect the firmware and runtime state of the SDRR device, and change its configuration and ROM data - while it is serving ROMs.
Dependencies
~2.4–4MB
~83K SLoC