cmsis-svd / cmsis-svd

Aggegration of ARM Cortex-M (and other) CMSIS SVDs and related tools
Apache License 2.0
1.07k stars 268 forks source link

Fix missing parent association for SVDPeripheral register arrays #160

Closed VincentDary closed 1 year ago

VincentDary commented 1 year ago

Parent association for SVDPeripheral register arrays is missing.

>>> from cmsis_svd.parser import SVDParser
>>> dev =  SVDParser.for_packaged_svd('Atmel', 'AT91SAM9G35.svd').get_device()
>>> spi0 = list(filter(lambda p: p.name == 'SPI0',  dev.peripherals))[0]
>>> csr_1 = list(filter(lambda r: r.name == 'CSR[1]',  spi0.registers))[0]
>>> type(csr_1.parent)
<class 'NoneType'>

After fix.

>>> from cmsis_svd.parser import SVDParser
>>> dev =  SVDParser.for_packaged_svd('Atmel', 'AT91SAM9G35.svd').get_device()
>>> spi0 = list(filter(lambda p: p.name == 'SPI0',  dev.peripherals))[0]
>>> csr_1 = list(filter(lambda r: r.name == 'CSR[1]',  spi0.registers))[0]
>>> type(csr_1.parent)
<class 'cmsis_svd.model.SVDPeripheral'>
>>> csr_1.parent.name
'SPI0'