tools/dm_xref.py extracts all DM address references from PM code
and shows the actual DM contents at those addresses:
- I-register loads with matching L-register buffer lengths
- Direct DM(addr) reads and writes
- CNTR loop counters
- Hex, decimal, and Q15 format for DM content
- Automatic detection of uninitialized (zero) regions
- Configurable context window (--context N words)
tools/firmware_overview.py analyzes PM binaries and reports:
- Memory map (empty / DSP kernel / control flow / code+data)
- Entry point detection
- All DO UNTIL loops with MAC operation count
- All immediate constants with register names and addresses
- I/O operations with ADSP-2191 peripheral register names
- Optional DM cross-reference (I-reg targets)
- Summary statistics
Includes ADSP-2191 I/O register name table for SPORT, SPI,
UART, Timer, GPIO, DMA, System Controller, and Interrupts.
tools/analyze_dm.py scans 16-bit DM dumps for:
- Null regions (BSS, uninitialized memory)
- Q15 coefficient tables with range and average
- Periodic waveforms (sine/cosine lookup tables)
- ASCII strings
- Unclassified data regions with hex preview
Supports big-endian (default) and little-endian byte order.
Outputs DM word addresses for cross-reference with PM code.