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
addressUnitBitsto 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