Unify memory ranges if peripherals collide in a SVD
Closed this issue · 2 comments
Some SVD define colliding blocks for peripherals. An example can be found in https://github.com/NordicSemiconductor/nrfx/blob/master/mdk/nrf52840.svd where APPROTECT
, CLOCK
and POWER
are all at 0x40000000
. Moreover, they define the same addressBlock
.
In this cases, my current preferred method for dealing with this is to create a single memory block that has the names of the three regions such as in APPROTECT_CLOCK_POWER
...
This would require first sorting peripherals by base address, preprocessing them and finally, creating the memory blocks.
Further investigation reveals that peripherals intercalate...
APPROTECT only defines registers at offsets 0x550 and 0x558.
CLOCK defines many more starting by 0x008, 0x00C, 0x010, 0x014, 0x018, 0x100, 0x104, 0x10C, ... up to 0x5B4.
This means that I cannot define different memory regions for those peripherals...
Fixed in 54beef2