Remove reference to nonexistent rcc_h7ab

This commit is contained in:
Dario Nieuwenhuis 2021-06-10 02:59:32 +02:00
parent 767e8d93f8
commit 4837bee5df

View File

@ -245,7 +245,7 @@ perimap = [
('STM32L0.*:RCC:.*', 'rcc_l0/RCC'), ('STM32L0.*:RCC:.*', 'rcc_l0/RCC'),
('STM32L4.*:RCC:.*', 'rcc_l4/RCC'), ('STM32L4.*:RCC:.*', 'rcc_l4/RCC'),
('STM32F4.*:RCC:.*', 'rcc_f4/RCC'), ('STM32F4.*:RCC:.*', 'rcc_f4/RCC'),
('.*:STM32H7AB_rcc_v1_0', 'rcc_h7ab/RCC'), ('.*:STM32H7AB_rcc_v1_0', ''), # rcc_h7ab/RCC
('.*:STM32H7_rcc_v1_0', 'rcc_h7/RCC'), ('.*:STM32H7_rcc_v1_0', 'rcc_h7/RCC'),
('.*:STM32L0_dbgmcu_v1_0', 'dbg_l0/DBG'), ('.*:STM32L0_dbgmcu_v1_0', 'dbg_l0/DBG'),
('.*:STM32L0_crs_v1_0', 'crs_l0/CRS'), ('.*:STM32L0_crs_v1_0', 'crs_l0/CRS'),
@ -267,15 +267,19 @@ rng_clock_map = [
def match_peri(peri): def match_peri(peri):
for r, block in perimap: for r, block in perimap:
if re.match(r, peri): if re.match(r, peri):
if block == '':
return None
return block return block
return None return None
def find_af(gpio_af, peri_name, pin_name, signal_name): def find_af(gpio_af, peri_name, pin_name, signal_name):
if gpio_af in af: if gpio_af in af:
if pin_name in af[gpio_af]: if pin_name in af[gpio_af]:
if peri_name + '_' + signal_name in af[gpio_af][pin_name]: if peri_name + '_' + signal_name in af[gpio_af][pin_name]:
return af[gpio_af][pin_name][peri_name + '_' + signal_name] return af[gpio_af][pin_name][peri_name + '_' + signal_name]
return None return None
def match_rng_clock(rcc): def match_rng_clock(rcc):
for r, clock in rng_clock_map: for r, clock in rng_clock_map:
@ -283,6 +287,7 @@ def match_rng_clock(rcc):
return clock return clock
return None return None
def parse_headers(): def parse_headers():
os.makedirs('sources/headers_parsed', exist_ok=True) os.makedirs('sources/headers_parsed', exist_ok=True)
print('loading headers...') print('loading headers...')
@ -404,7 +409,7 @@ def parse_chips():
if 'Signal' in pin: if 'Signal' in pin:
signals = [] signals = []
if not type(pin['Signal']) is list: if not type(pin['Signal']) is list:
signals.append( pin['Signal'] ) signals.append(pin['Signal'])
else: else:
signals = pin['Signal'] signals = pin['Signal']
@ -427,8 +432,7 @@ def parse_chips():
if af_num is not None: if af_num is not None:
entry['af'] = af_num entry['af'] = af_num
pins[peri_name].append( entry ) pins[peri_name].append(entry)
for chip_name, chip in chips.items(): for chip_name, chip in chips.items():
print(f'* processing chip {chip_name}') print(f'* processing chip {chip_name}')
@ -457,21 +461,10 @@ def parse_chips():
p['clock'] = clocks[rcc][pname] p['clock'] = clocks[rcc][pname]
elif chip['family'] == 'STM32H7' and pname == "SPI6": elif chip['family'] == 'STM32H7' and pname == "SPI6":
p['clock'] = "APB4" p['clock'] = "APB4"
# else:
#print( f'peri {pname} -> no clock')
if block := match_peri(chip_name+':'+pname+':'+pkind): if block := match_peri(chip_name+':'+pname+':'+pkind):
p['block'] = block p['block'] = block
#if block is not None and block.startswith("dac_"):
#peri_pins = []
#dac_out_pins = find_signal_pins(chip, pname + "_OUT([0-9]+)")
#for (out_pin, m) in dac_out_pins:
#peri_pins.append( OrderedDict({
#"pin": out_pin,
#"function": "Ch" + m[1],
#}) )
if pname in chip['pins']: if pname in chip['pins']:
if len(chip['pins'][pname]) > 0: if len(chip['pins'][pname]) > 0:
p['pins'] = chip['pins'][pname] p['pins'] = chip['pins'][pname]
@ -483,7 +476,6 @@ def parse_chips():
peris[pname] = p peris[pname] = p
# Handle GPIO specially. # Handle GPIO specially.
for p in range(20): for p in range(20):
port = 'GPIO' + chr(ord('A')+p) port = 'GPIO' + chr(ord('A')+p)
@ -561,6 +553,7 @@ def parse_chips():
af = {} af = {}
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'):
@ -605,8 +598,10 @@ def parse_gpio_af():
af[ff] = pins af[ff] = pins
clocks = {} clocks = {}
def parse_clocks(): def parse_clocks():
for f in glob('sources/cubedb/mcu/IP/RCC-*rcc_v1_0_Modes.xml'): for f in glob('sources/cubedb/mcu/IP/RCC-*rcc_v1_0_Modes.xml'):
ff = removeprefix(f, 'sources/cubedb/mcu/IP/RCC-') ff = removeprefix(f, 'sources/cubedb/mcu/IP/RCC-')