Add back parsing for ADC pins.

This commit is contained in:
Dario Nieuwenhuis 2021-11-05 17:18:36 +01:00
parent ffc40c718a
commit 5cd5d2b110

View File

@ -463,6 +463,7 @@ def parse_chips():
'chip_names': [],
'xml': r,
'ips': {},
'pins': {},
})
for package_i, package_name in enumerate(package_names):
@ -485,6 +486,9 @@ def parse_chips():
group = chip_groups[group_idx]
for ip in r['IP']:
group['ips'][ip['@InstanceName']] = ip
for pin in r['Pin']:
if pin_name := cleanup_pin_name(pin['@Name']):
group['pins'][pin_name] = pin
for chip_name, chip in chips.items():
chip_groups[chip['group_idx']]['chip_names'].append(chip_name)
@ -522,6 +526,21 @@ def parse_chips():
chip_af = removesuffix(chip_af, '_gpio_v1_0')
chip_af = af.get(chip_af)
# Analog pins are in the MCU XML, not in the GPIO XML.
analog_pins = {}
for pin_name, pin in chip['pins'].items():
for signal in children(pin, 'Signal'):
if p := parse_signal_name(signal['@Name']):
peri_name, signal_name = p
if not peri_name.startswith('ADC'):
continue
if peri_name not in analog_pins:
analog_pins[peri_name] = []
analog_pins[peri_name].append(OrderedDict({
'pin': pin_name,
'signal': signal_name,
}))
cores = []
for core_xml in children(chip['xml'], 'Core'):
core_name = corename(core_xml)
@ -596,6 +615,10 @@ def parse_chips():
if peri_af := chip_af.get(pname):
p['pins'] = peri_af
if pname.startswith('ADC'):
if pins := analog_pins.get(pname):
p['pins'] = pins
if chip_nvic in chip_interrupts:
if pname in chip_interrupts[chip_nvic]:
# filter by available, because some are conditioned on <Die>
@ -852,6 +875,10 @@ def parse_chips():
af = {}
def sort_pins(pins):
pins.sort(key=lambda p: (parse_pin_name(p['pin']), p['signal']))
def parse_gpio_af():
# os.makedirs('data/gpio_af', exist_ok=True)
for f in glob('sources/cubedb/mcu/IP/GPIO-*_gpio_v1_0_Modes.xml'):
@ -895,7 +922,7 @@ def parse_gpio_af():
}))
for p in peris.values():
p.sort(key=lambda p: (parse_pin_name(p['pin']), p['signal']))
sort_pins(p)
# with open('data/gpio_af/'+ff+'.yaml', 'w') as f:
# f.write(yaml.dump(pins))