tools/gen-device-svd: fix interrupts for derived peripherals

Этот коммит содержится в:
Ayke van Laethem 2018-10-03 20:06:13 +02:00
родитель 9d408b7cbc
коммит b36b9c24a2
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: E97FF5335DFDFDED

Просмотреть файл

@ -54,6 +54,20 @@ def readSVD(path, sourceURL):
if groupNameTags: if groupNameTags:
groupName = getText(groupNameTags[0]) groupName = getText(groupNameTags[0])
for interrupt in periphEl.findall('interrupt'):
intrName = getText(interrupt.find('name'))
intrIndex = int(getText(interrupt.find('value')))
if intrName in interrupts:
if interrupts[intrName]['index'] != intrIndex:
raise ValueError('interrupt with the same name has different indexes: ' + intrName)
interrupts[intrName]['description'] += ' // ' + description
else:
interrupts[intrName] = {
'name': intrName,
'index': intrIndex,
'description': description,
}
if periphEl.get('derivedFrom') or groupName in groups: if periphEl.get('derivedFrom') or groupName in groups:
if periphEl.get('derivedFrom'): if periphEl.get('derivedFrom'):
derivedFromName = periphEl.get('derivedFrom') derivedFromName = periphEl.get('derivedFrom')
@ -83,20 +97,6 @@ def readSVD(path, sourceURL):
if groupName and groupName not in groups: if groupName and groupName not in groups:
groups[groupName] = peripheral groups[groupName] = peripheral
for interrupt in periphEl.findall('interrupt'):
intrName = getText(interrupt.find('name'))
intrIndex = int(getText(interrupt.find('value')))
if intrName in interrupts:
if interrupts[intrName]['index'] != intrIndex:
raise ValueError('interrupt with the same name has different indexes: ' + intrName)
interrupts[intrName]['description'] += ' // ' + description
else:
interrupts[intrName] = {
'name': intrName,
'index': intrIndex,
'description': description,
}
regsEls = periphEl.findall('registers') regsEls = periphEl.findall('registers')
if regsEls: if regsEls:
if len(regsEls) != 1: if len(regsEls) != 1: