Add back parsing for ADC pins.
This commit is contained in:
parent
ffc40c718a
commit
5cd5d2b110
@ -463,6 +463,7 @@ def parse_chips():
|
|||||||
'chip_names': [],
|
'chip_names': [],
|
||||||
'xml': r,
|
'xml': r,
|
||||||
'ips': {},
|
'ips': {},
|
||||||
|
'pins': {},
|
||||||
})
|
})
|
||||||
|
|
||||||
for package_i, package_name in enumerate(package_names):
|
for package_i, package_name in enumerate(package_names):
|
||||||
@ -485,6 +486,9 @@ def parse_chips():
|
|||||||
group = chip_groups[group_idx]
|
group = chip_groups[group_idx]
|
||||||
for ip in r['IP']:
|
for ip in r['IP']:
|
||||||
group['ips'][ip['@InstanceName']] = 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():
|
for chip_name, chip in chips.items():
|
||||||
chip_groups[chip['group_idx']]['chip_names'].append(chip_name)
|
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 = removesuffix(chip_af, '_gpio_v1_0')
|
||||||
chip_af = af.get(chip_af)
|
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 = []
|
cores = []
|
||||||
for core_xml in children(chip['xml'], 'Core'):
|
for core_xml in children(chip['xml'], 'Core'):
|
||||||
core_name = corename(core_xml)
|
core_name = corename(core_xml)
|
||||||
@ -596,6 +615,10 @@ def parse_chips():
|
|||||||
if peri_af := chip_af.get(pname):
|
if peri_af := chip_af.get(pname):
|
||||||
p['pins'] = peri_af
|
p['pins'] = peri_af
|
||||||
|
|
||||||
|
if pname.startswith('ADC'):
|
||||||
|
if pins := analog_pins.get(pname):
|
||||||
|
p['pins'] = pins
|
||||||
|
|
||||||
if chip_nvic in chip_interrupts:
|
if chip_nvic in chip_interrupts:
|
||||||
if pname in chip_interrupts[chip_nvic]:
|
if pname in chip_interrupts[chip_nvic]:
|
||||||
# filter by available, because some are conditioned on <Die>
|
# filter by available, because some are conditioned on <Die>
|
||||||
@ -852,6 +875,10 @@ def parse_chips():
|
|||||||
af = {}
|
af = {}
|
||||||
|
|
||||||
|
|
||||||
|
def sort_pins(pins):
|
||||||
|
pins.sort(key=lambda p: (parse_pin_name(p['pin']), p['signal']))
|
||||||
|
|
||||||
|
|
||||||
def parse_gpio_af():
|
def parse_gpio_af():
|
||||||
# os.makedirs('data/gpio_af', exist_ok=True)
|
# os.makedirs('data/gpio_af', exist_ok=True)
|
||||||
for f in glob('sources/cubedb/mcu/IP/GPIO-*_gpio_v1_0_Modes.xml'):
|
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():
|
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:
|
# with open('data/gpio_af/'+ff+'.yaml', 'w') as f:
|
||||||
# f.write(yaml.dump(pins))
|
# f.write(yaml.dump(pins))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user