Merge pull request #149 from smbolton/fix_timer_types

Fix TIM timer types across all lines
This commit is contained in:
Dario Nieuwenhuis 2022-06-23 01:25:30 +02:00 committed by GitHub
commit c27bc1f719

View File

@ -15,7 +15,7 @@ from stm32data.util import *
def corename(d): def corename(d):
# print("CHECKING CORENAME", d) # print("CHECKING CORENAME", d)
if m := re.match('.*Cortex-M(\d+)(\+?)\s*(.*)', d): if m := re.match(r'.*Cortex-M(\d+)(\+?)\s*(.*)', d):
name = "cm" + str(m.group(1)) name = "cm" + str(m.group(1))
if m.group(2) == "+": if m.group(2) == "+":
name += "p" name += "p"
@ -273,23 +273,20 @@ perimap = [
('.*:FSMC:.*', ('fsmc', 'v1', 'FSMC')), ('.*:FSMC:.*', ('fsmc', 'v1', 'FSMC')),
('STM32H7.*:FMC:.*', ('fmc', 'h7', 'FMC')), ('STM32H7.*:FMC:.*', ('fmc', 'h7', 'FMC')),
('.*LPTIM\d.*:G0xx_lptimer1_v1_4', ('lptim', 'g0', 'LPTIM')), (r'.*LPTIM\d.*:G0xx_lptimer1_v1_4', ('lptim', 'g0', 'LPTIM')),
('STM32H7.*:TIM1:.*', ('timer', 'v1', 'TIM_ADV')), ('STM32F1.*:TIM(1|8):.*', ('timer', 'v1', 'TIM_ADV')),
('STM32H7.*:TIM2:.*', ('timer', 'v1', 'TIM_GP32')), ('STM32F1.*:TIM(2|5):.*', ('timer', 'v1', 'TIM_GP16')),
('STM32H7.*:TIM5:.*', ('timer', 'v1', 'TIM_GP32')), ('STM32F1.*:TIM(6|7):.*', ('timer', 'v1', 'TIM_BASIC')),
('STM32H7.*:TIM6:.*', ('timer', 'v1', 'TIM_BASIC')),
('STM32H7.*:TIM7:.*', ('timer', 'v1', 'TIM_BASIC')),
('STM32H7.*:TIM8:.*', ('timer', 'v1', 'TIM_ADV')),
('STM32F3.*:TIM(6|7){1}:.*', ('timer', 'v1', 'TIM_BASIC')), ('STM32L0.*:TIM2:.*', ('timer', 'v1', 'TIM_GP16')),
('STM32F3.*:TIM(3|4|15|16|17){1}:.*', ('timer', 'v1', 'TIM_GP16')),
('STM32F3.*:TIM2:.*', ('timer', 'v1', 'TIM_GP32')),
('STM32F3.*:TIM(1|8|20){1}:.*', ('timer', 'v1', 'TIM_ADV')),
('STM32F7.*:TIM1:.*', ('timer', 'v1', 'TIM_ADV')), ('STM32U5.*:TIM(2|3|4|5):.*', ('timer', 'v1', 'TIM_GP32')),
('STM32F7.*:TIM8:.*', ('timer', 'v1', 'TIM_ADV')),
('.*TIM\d.*:gptimer.*', ('timer', 'v1', 'TIM_GP16')), ('STM32.*:TIM(1|8|20):.*', ('timer', 'v1', 'TIM_ADV')),
('STM32.*:TIM(2|5|23|24):.*', ('timer', 'v1', 'TIM_GP32')),
('STM32.*:TIM(6|7|18):.*', ('timer', 'v1', 'TIM_BASIC')),
(r'.*TIM\d.*:gptimer.*', ('timer', 'v1', 'TIM_GP16')),
('STM32F0.*:DBGMCU:.*', ('dbgmcu', 'f0', 'DBGMCU')), ('STM32F0.*:DBGMCU:.*', ('dbgmcu', 'f0', 'DBGMCU')),
('STM32F1.*:DBGMCU:.*', ('dbgmcu', 'f1', 'DBGMCU')), ('STM32F1.*:DBGMCU:.*', ('dbgmcu', 'f1', 'DBGMCU')),
@ -313,8 +310,8 @@ perimap = [
('.*:IPCC:v1_0', ('ipcc', 'v1', 'IPCC')), ('.*:IPCC:v1_0', ('ipcc', 'v1', 'IPCC')),
('.*:DMAMUX.*', ('dmamux', 'v1', 'DMAMUX')), ('.*:DMAMUX.*', ('dmamux', 'v1', 'DMAMUX')),
('.*:GPDMA\d?:.*', ('gpdma', 'v1', 'GPDMA')), (r'.*:GPDMA\d?:.*', ('gpdma', 'v1', 'GPDMA')),
('.*:BDMA\d?:.*', ('bdma', 'v1', 'DMA')), (r'.*:BDMA\d?:.*', ('bdma', 'v1', 'DMA')),
('STM32H7.*:DMA2D:DMA2D:dma2d1_v1_0', ('dma2d', 'v2', 'DMA2D')), ('STM32H7.*:DMA2D:DMA2D:dma2d1_v1_0', ('dma2d', 'v2', 'DMA2D')),
('.*:DMA2D:dma2d1_v1_0', ('dma2d', 'v1', 'DMA2D')), ('.*:DMA2D:dma2d1_v1_0', ('dma2d', 'v1', 'DMA2D')),
('STM32L4[PQRS].*:DMA.*', ('bdma', 'v1', 'DMA')), # L4+ ('STM32L4[PQRS].*:DMA.*', ('bdma', 'v1', 'DMA')), # L4+
@ -1138,7 +1135,7 @@ def parse_dma():
dmamux_channel = 0 dmamux_channel = 0
for n in dma_peri_name.split(","): for n in dma_peri_name.split(","):
n = n.strip() n = n.strip()
if result := re.match('.*' + n + '_(Channel|Stream)\[(\d+)-(\d+)\]', channels[0]['@Name']): if result := re.match('.*' + n + r'_(Channel|Stream)\[(\d+)-(\d+)\]', channels[0]['@Name']):
low = int(result.group(2)) low = int(result.group(2))
high = int(result.group(3)) high = int(result.group(3))
for i in range(low, high + 1): for i in range(low, high + 1):
@ -1280,7 +1277,7 @@ def parse_rcc_regs():
for (key, body) in y.items(): for (key, body) in y.items():
# Some chip families have a separate bus for GPIO so it's not attached to the AHB/APB # Some chip families have a separate bus for GPIO so it's not attached to the AHB/APB
# bus but an GPIO bus. Use the GPIO as the clock for these chips. # bus but an GPIO bus. Use the GPIO as the clock for these chips.
if m := re.match('^fieldset/((A[PH]B\d?)|GPIO)[LH]?ENR\d?$', key): if m := re.match(r'^fieldset/((A[PH]B\d?)|GPIO)[LH]?ENR\d?$', key):
reg = removeprefix(key, 'fieldset/') reg = removeprefix(key, 'fieldset/')
clock = m.group(1) clock = m.group(1)
clock = clock_renames.get(clock, clock) clock = clock_renames.get(clock, clock)
@ -1289,7 +1286,7 @@ def parse_rcc_regs():
peri = removesuffix(field['name'], 'EN') peri = removesuffix(field['name'], 'EN')
# Timers are a bit special, they may have a x2 freq # Timers are a bit special, they may have a x2 freq
peri_clock = f'{clock}_TIM' if re.match('^TIM\d+$', peri) else clock peri_clock = f'{clock}_TIM' if re.match(r'^TIM\d+$', peri) else clock
res = { res = {
'clock': peri_clock, 'clock': peri_clock,
'enable': { 'enable': {