React Memory Map

The address map, drawn the way datasheets draw it: high addresses on top, region blocks proportional to size (with a clamp so a 64 KB ROM stays readable beside a 1 GB DDR window), hatched unmapped gaps, and grouped hex addresses (0x4000_0000). A synced table lists base/end/size and attribute chips — hover either side and both highlight, like the Register Map. Declare only your regions; gaps are computed, and overlapping regions are detected automatically and flagged in red with an alert.

AXM-330 — System Address Map

0xBFFF_FFFF
DDR1 GB
unmapped1022.9 MB
DMA_CTRL64 KB
Peripherals1 MB
unmapped511.5 MB
SRAM512 KB
unmapped511.9 MB
OTP16 KB
Boot ROM64 KB
0x0000_0000
RegionBaseEndSizeAttr
DDR0x8000_00000xBFFF_FFFF1 GBRWX
DMA_CTRL0x4010_00000x4010_FFFF64 KBDevice
Peripherals0x4000_00000x400F_FFFF1 MBDevice
SRAM0x2000_00000x2007_FFFF512 KBRWX
OTP0x0001_00000x0001_3FFF16 KBRO
Boot ROM0x0000_00000x0000_FFFF64 KBRX

Hover a block or a table row — both highlight. Hatched bands are unmapped; overlapping regions would flag in red.

Installation

npx shadcn@latest add memory-map.json

Usage

Loading...

Props

PropTypeDefaultDescription
regionsMemRegion[]{ name, base, size, attr? } — any order
titlestringHeader label
addressBits32 \6432
heightnumber380Visual column height in px

formatHex and formatSize are exported for reuse in your own tables.