Merge pull request #60 from embassy-rs/usart1-F0

F0: Manually add usart1 clock
This commit is contained in:
Thales 2021-07-03 02:07:07 -03:00 committed by GitHub
commit 37e44246da

View File

@ -297,7 +297,7 @@ perimap = [
('.*:USART:sci3_v1_2', 'usart_v3/USART'), ('.*:USART:sci3_v1_2', 'usart_v3/USART'),
('.*:USART:sci3_v2_0', 'usart_v3/USART'), ('.*:USART:sci3_v2_0', 'usart_v3/USART'),
('.*:USART:sci3_v2_1', 'usart_v3/USART'), ('.*:USART:sci3_v2_1', 'usart_v3/USART'),
('.*:UART:sci2_v3_0', 'usart_v3/USART' ), ('.*:UART:sci2_v3_0', 'usart_v3/USART'),
('.*:RNG:rng1_v1_1', 'rng_v1/RNG'), ('.*:RNG:rng1_v1_1', 'rng_v1/RNG'),
('.*:RNG:rng1_v2_0', 'rng_v1/RNG'), ('.*:RNG:rng1_v2_0', 'rng_v1/RNG'),
('.*:RNG:rng1_v2_1', 'rng_v1/RNG'), ('.*:RNG:rng1_v2_1', 'rng_v1/RNG'),
@ -397,9 +397,11 @@ def match_rng_clock(rcc):
return clock return clock
return None return None
all_mcu_files = {} all_mcu_files = {}
per_mcu_files = {} per_mcu_files = {}
def parse_documentations(): def parse_documentations():
print("linking files and documents") print("linking files and documents")
with open('sources/mcufinder/files.json', 'r') as j: with open('sources/mcufinder/files.json', 'r') as j:
@ -407,15 +409,15 @@ def parse_documentations():
for file in files['Files']: for file in files['Files']:
file_id = file['id_file'] file_id = file['id_file']
if file_id not in all_mcu_files: if file_id not in all_mcu_files:
all_mcu_files[file_id] = OrderedDict( { all_mcu_files[file_id] = OrderedDict({
'name': file['name'], 'name': file['name'],
'title': file['title'], 'title': file['title'],
'url': file['URL'], 'url': file['URL'],
'type': file['type'], 'type': file['type'],
} ) })
with open('sources/mcufinder/mcus.json', 'r') as j: with open('sources/mcufinder/mcus.json', 'r') as j:
mcus = json.load(j); mcus = json.load(j)
for mcu in mcus['MCUs']: for mcu in mcus['MCUs']:
rpn = mcu['RPN'] rpn = mcu['RPN']
if rpn not in per_mcu_files: if rpn not in per_mcu_files:
@ -423,13 +425,14 @@ def parse_documentations():
for file in mcu['files']: for file in mcu['files']:
per_mcu_files[rpn].append(file['file_id']) per_mcu_files[rpn].append(file['file_id'])
def documents_for(chip_name, type): def documents_for(chip_name, type):
docs = [] docs = []
for id in per_mcu_files[chip_name]: for id in per_mcu_files[chip_name]:
if id in all_mcu_files: if id in all_mcu_files:
file = all_mcu_files[id] file = all_mcu_files[id]
if file['type'] == type: if file['type'] == type:
docs.append( OrderedDict({ docs.append(OrderedDict({
'title': file['title'], 'title': file['title'],
'name': file['name'], 'name': file['name'],
'url': file['url'], 'url': file['url'],
@ -437,6 +440,7 @@ def documents_for(chip_name, type):
return docs return docs
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...')
@ -511,7 +515,6 @@ def parse_chips():
rcc = removesuffix(rcc, '-rcc_v1_0') rcc = removesuffix(rcc, '-rcc_v1_0')
rcc = removesuffix(rcc, '_rcc_v1_0') rcc = removesuffix(rcc, '_rcc_v1_0')
core = r['Core'] core = r['Core']
family = r['@Family'] family = r['@Family']
@ -673,6 +676,8 @@ def parse_chips():
p['clock'] = "APB4" p['clock'] = "APB4"
elif chip['family'] == 'STM32H7' and pname.startswith('I2C'): elif chip['family'] == 'STM32H7' and pname.startswith('I2C'):
p['clock'] = "APB1" p['clock'] = "APB1"
elif chip['family'] == 'STM32F0' and pname == 'USART1':
p['clock'] = "APB2"
if block := match_peri(chip_name+':'+pname+':'+pkind): if block := match_peri(chip_name+':'+pname+':'+pkind):
p['block'] = block p['block'] = block
@ -944,10 +949,10 @@ def parse_dma():
event_dma = peri_dma['channels'][event] event_dma = peri_dma['channels'][event]
entry = OrderedDict({ entry = OrderedDict({
'channel': dma_peri_name + '_' + channel_name, 'channel': dma_peri_name + '_' + channel_name,
} ) })
if original_target_name in requests: if original_target_name in requests:
entry['request'] = requests[original_target_name] entry['request'] = requests[original_target_name]
event_dma.append( entry ) event_dma.append(entry)
dma_channels[ff] = chip_dma dma_channels[ff] = chip_dma