PlatformIO Ignoring addressUnitBits in SVD File

Hi,

We’ve successfully created an SVD file for a custom processor (after two days of work and a number of gotchas), and it’s functioning correctly except for one issue: the addressUnitBits field appears to be ignored by PlatformIO.

Configuration:

  • Our memory is 16-bits wide

  • Each addressable location contains 16 bits of non-overlapping data

  • SVD file sets addressUnitBits to 16

Problem: When PlatformIO renders the peripherals pane, it assumes addressUnitBits is 8 instead of 16.

Evidence: We’ve verified this by pre-filling memory-mapped I/O with known values, then after a GDB server ‘m’ memory read:

  • Register 0 correctly uses bits 0-15

  • Register 1 incorrectly uses bits 8-23 (overlapping)

  • Register 1 should use bits 16-31

Question: Is there a fix for this issue? We are aware that we could remap all registers as a workaround, but this would result in incorrect memory addresses being displayed.

(Update, it also does not honour any endian setting)

Kind regards,
Gary