better handling of naming exceptions.
This commit is contained in:
parent
620afab503
commit
cf665a99f3
@ -51,6 +51,9 @@ FAKE_PERIPHERALS = [
|
|||||||
'GPIO',
|
'GPIO',
|
||||||
'DMA',
|
'DMA',
|
||||||
|
|
||||||
|
# IRTIM is just TIM16+TIM17
|
||||||
|
'IRTIM',
|
||||||
|
|
||||||
# I2S is just SPI on disguise
|
# I2S is just SPI on disguise
|
||||||
'I2S1',
|
'I2S1',
|
||||||
'I2S2',
|
'I2S2',
|
||||||
@ -61,11 +64,13 @@ FAKE_PERIPHERALS = [
|
|||||||
'I2S7',
|
'I2S7',
|
||||||
'I2S8',
|
'I2S8',
|
||||||
|
|
||||||
|
# We add this as ghost peri
|
||||||
|
'SYS',
|
||||||
|
|
||||||
# These are software libraries
|
# These are software libraries
|
||||||
'FREERTOS',
|
'FREERTOS',
|
||||||
'PDM2PCM',
|
'PDM2PCM',
|
||||||
'FATFS',
|
'FATFS',
|
||||||
# 'CRC',
|
|
||||||
'LIBJPEG',
|
'LIBJPEG',
|
||||||
'MBEDTLS',
|
'MBEDTLS',
|
||||||
'LWIP',
|
'LWIP',
|
||||||
@ -73,6 +78,7 @@ FAKE_PERIPHERALS = [
|
|||||||
'USB_DEVICE',
|
'USB_DEVICE',
|
||||||
'GUI_INTERFACE',
|
'GUI_INTERFACE',
|
||||||
'TRACER_EMB',
|
'TRACER_EMB',
|
||||||
|
'TOUCHSENSING',
|
||||||
]
|
]
|
||||||
|
|
||||||
perimap = [
|
perimap = [
|
||||||
@ -250,12 +256,24 @@ perimap = [
|
|||||||
('.*:CRC:integtest1_v2_2', 'crc_v3/CRC'),
|
('.*:CRC:integtest1_v2_2', 'crc_v3/CRC'),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
peri_rename = {
|
||||||
|
'HDMI_CEC': 'CEC',
|
||||||
|
'SUBGHZ': 'SUBGHZSPI',
|
||||||
|
}
|
||||||
|
|
||||||
ghost_peris = [
|
ghost_peris = [
|
||||||
'GPIOA', 'GPIOB', 'GPIOC', 'GPIOD', 'GPIOE', 'GPIOF', 'GPIOG', 'GPIOH', 'GPIOI', 'GPIOJ', 'GPIOK', 'GPIOL', 'GPIOM', 'GPION', 'GPIOO', 'GPIOP', 'GPIOQ', 'GPIOR', 'GPIOS', 'GPIOT',
|
'GPIOA', 'GPIOB', 'GPIOC', 'GPIOD', 'GPIOE', 'GPIOF', 'GPIOG', 'GPIOH', 'GPIOI', 'GPIOJ', 'GPIOK', 'GPIOL', 'GPIOM', 'GPION', 'GPIOO', 'GPIOP', 'GPIOQ', 'GPIOR', 'GPIOS', 'GPIOT',
|
||||||
'DMA1', 'DMA2', 'BDMA', 'DMAMUX', 'DMAMUX1', 'DMAMUX2',
|
'DMA1', 'DMA2', 'BDMA', 'DMAMUX', 'DMAMUX1', 'DMAMUX2',
|
||||||
'EXTI', 'FLASH', 'DBGMCU', 'CRS', 'PWR', 'AFIO',
|
'SYSCFG', 'EXTI', 'FLASH', 'DBGMCU', 'CRS', 'PWR', 'AFIO',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
alt_peri_defines = {
|
||||||
|
'DBGMCU': ['DBGMCU_BASE', 'DBG_BASE'],
|
||||||
|
'FLASH': ['FLASH_R_BASE'],
|
||||||
|
'ADC_COMMON': ['ADC_COMMON', 'ADC1_COMMON', 'ADC12_COMMON', 'ADC123_COMMON'],
|
||||||
|
'CAN': ['CAN_BASE', 'CAN1_BASE'],
|
||||||
|
}
|
||||||
|
|
||||||
# Device address overrides, in case of missing from headers
|
# Device address overrides, in case of missing from headers
|
||||||
address_overrides = {
|
address_overrides = {
|
||||||
'STM32F412VE:GPIOF_BASE': 0x40021400,
|
'STM32F412VE:GPIOF_BASE': 0x40021400,
|
||||||
@ -432,6 +450,12 @@ def parse_pin_name(pin_name):
|
|||||||
|
|
||||||
return port, pin
|
return port, pin
|
||||||
|
|
||||||
|
def get_peri_addr(defines, pname):
|
||||||
|
possible_defines = alt_peri_defines.get(pname) or [f'{pname}_BASE', pname]
|
||||||
|
for d in possible_defines:
|
||||||
|
if addr := defines.get(d):
|
||||||
|
return addr
|
||||||
|
return None
|
||||||
|
|
||||||
def parse_chips():
|
def parse_chips():
|
||||||
os.makedirs('data/chips', exist_ok=True)
|
os.makedirs('data/chips', exist_ok=True)
|
||||||
@ -590,15 +614,12 @@ def parse_chips():
|
|||||||
pkind = ip['@Name'] + ':' + ip['@Version']
|
pkind = ip['@Name'] + ':' + ip['@Version']
|
||||||
pkind = removesuffix(pkind, '_Cube')
|
pkind = removesuffix(pkind, '_Cube')
|
||||||
|
|
||||||
if pname == 'SYS':
|
|
||||||
pname = 'SYSCFG'
|
|
||||||
if pname == 'SUBGHZ':
|
|
||||||
pname = 'SUBGHZSPI'
|
|
||||||
if pname == 'SYSCFG_VREFBUF':
|
|
||||||
pname = 'SYSCFG'
|
|
||||||
if pname in FAKE_PERIPHERALS:
|
if pname in FAKE_PERIPHERALS:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
if rename := peri_rename.get(pname):
|
||||||
|
pname = rename
|
||||||
|
|
||||||
if pname.startswith('ADC'):
|
if pname.startswith('ADC'):
|
||||||
if not 'ADC_COMMON' in peri_kinds:
|
if not 'ADC_COMMON' in peri_kinds:
|
||||||
peri_kinds['ADC_COMMON'] = 'ADC_COMMON:' + removesuffix(ip['@Version'], '_Cube')
|
peri_kinds['ADC_COMMON'] = 'ADC_COMMON:' + removesuffix(ip['@Version'], '_Cube')
|
||||||
@ -606,19 +627,12 @@ def parse_chips():
|
|||||||
peri_kinds[pname] = pkind
|
peri_kinds[pname] = pkind
|
||||||
|
|
||||||
for pname in ghost_peris:
|
for pname in ghost_peris:
|
||||||
if pname not in peri_kinds and (addr := defines.get(f'{pname}_BASE')):
|
if pname not in peri_kinds and (addr := get_peri_addr(defines, pname)):
|
||||||
peri_kinds[pname] = 'unknown'
|
peri_kinds[pname] = 'unknown'
|
||||||
|
|
||||||
peris = {}
|
peris = {}
|
||||||
for pname, pkind in peri_kinds.items():
|
for pname, pkind in peri_kinds.items():
|
||||||
addr = defines.get(pname)
|
addr = get_peri_addr(defines, pname)
|
||||||
if addr is None:
|
|
||||||
if pname == 'ADC_COMMON':
|
|
||||||
addr = defines.get('ADC1_COMMON')
|
|
||||||
if addr is None:
|
|
||||||
addr = defines.get('ADC12_COMMON')
|
|
||||||
if addr is None:
|
|
||||||
addr = defines.get('ADC123_COMMON')
|
|
||||||
if addr is None:
|
if addr is None:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user