tools/gen-device-svd: make sure all clusters are included
This is important for nrf52840, which has UART pin selection in a cluster that wasn't exposed.
Этот коммит содержится в:
родитель
4c8a725d78
коммит
a72d0b7959
1 изменённых файлов: 6 добавлений и 4 удалений
|
@ -132,6 +132,7 @@ def readSVD(path, sourceURL):
|
||||||
'array': dim,
|
'array': dim,
|
||||||
'elementsize': dimIncrement,
|
'elementsize': dimIncrement,
|
||||||
})
|
})
|
||||||
|
peripheral['registers'].sort(key=lambda r: r['address'])
|
||||||
|
|
||||||
device.interrupts = sorted(interrupts.values(), key=lambda v: v['index'])
|
device.interrupts = sorted(interrupts.values(), key=lambda v: v['index'])
|
||||||
licenseBlock = ''
|
licenseBlock = ''
|
||||||
|
@ -282,8 +283,6 @@ const (
|
||||||
|
|
||||||
regType = 'RegValue'
|
regType = 'RegValue'
|
||||||
if 'registers' in register:
|
if 'registers' in register:
|
||||||
import pprint
|
|
||||||
#pprint.pprint(register)
|
|
||||||
# This is a cluster, not a register. Create the cluster type.
|
# This is a cluster, not a register. Create the cluster type.
|
||||||
regType = 'struct {\n'
|
regType = 'struct {\n'
|
||||||
subaddress = register['address']
|
subaddress = register['address']
|
||||||
|
@ -291,9 +290,12 @@ const (
|
||||||
subregType = 'RegValue'
|
subregType = 'RegValue'
|
||||||
if subregister['array']:
|
if subregister['array']:
|
||||||
subregType = '[{}]{}'.format(subregister['array'], subregType)
|
subregType = '[{}]{}'.format(subregister['array'], subregType)
|
||||||
#raise NotImplementedError('array in cluster register')
|
|
||||||
if subaddress != subregister['address']:
|
if subaddress != subregister['address']:
|
||||||
raise NotImplementedError('gaps in cluster register')
|
numSkip = (subregister['address'] - subaddress) // 4
|
||||||
|
if numSkip == 1:
|
||||||
|
regType += '\t\t_padding{padNumber} RegValue\n'.format(padNumber=padNumber)
|
||||||
|
else:
|
||||||
|
regType += '\t\t_padding{padNumber} [{num}]RegValue\n'.format(padNumber=padNumber, num=numSkip)
|
||||||
if subregister['array'] is not None:
|
if subregister['array'] is not None:
|
||||||
subaddress += subregister['elementsize'] * subregister['array']
|
subaddress += subregister['elementsize'] * subregister['array']
|
||||||
else:
|
else:
|
||||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче