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 "http://localhost:3000/registry/memory-map.json"

Usage

Loading...

Props

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

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

New components every week

Get the week's new Kelvin UI components and templates in one short email. No spam, unsubscribe anytime.