Generate more flash settings

This commit is contained in:
Ulf Lilleengen 2022-04-27 11:58:52 +02:00
parent 0c9329fe94
commit bd97be07b3
2 changed files with 32 additions and 1 deletions

View File

@ -853,6 +853,7 @@ def parse_chips():
'kind': 'flash',
'address': h['defines']['all'][each + '_BASE'],
'size': size,
'settings': memory.determine_flash_settings(chip_name),
})
found = set()

View File

@ -45,13 +45,16 @@ memories = []
def parse():
for f in sorted(glob('sources/cubeprogdb/db/*.xml')):
#print("parsing ", f);
# print("parsing ", f);
device = xmltodict.parse(open(f, 'rb'))['Root']['Device']
device_id = device['DeviceID']
name = device['Name']
names = split_names(name)
flash_size = None
flash_addr = None
write_size = None
erase_size = None
erase_value = None
ram_size = None
ram_addr = None
@ -69,6 +72,18 @@ def parse():
configs = [configs]
flash_addr = int(configs[0]['Parameters']['@address'], 16)
flash_size = int(configs[0]['Parameters']['@size'], 16)
erase_value = int(peripheral['ErasedValue'], 16)
write_size = int(configs[0]['Allignement'], 16)
bank = configs[0]['Bank']
if type(bank) != list:
bank = [bank]
field = bank[0]['Field']
if type(field) != list:
field = [field]
# print("Field", field)
p = field[0]['Parameters']
print("pwrams", str(p))
erase_size = int(p['@size'], 16)
#print( f'flash {addr} {size}')
chunk = {
@ -86,6 +101,9 @@ def parse():
chunk['flash'] = {
'address': flash_addr,
'bytes': flash_size,
'erase_value': erase_value,
'write_size': write_size,
'erase_size': erase_size,
}
memories.append(chunk)
@ -108,6 +126,18 @@ def determine_flash_size(chip_name):
return None
def determine_flash_settings(chip_name):
for each in memories:
for name in each['names']:
if is_chip_name_match(name, chip_name):
return {
'erase_size': each['flash']['erase_size'],
'write_size': each['flash']['write_size'],
'erase_value': each['flash']['erase_value'],
}
return None
def determine_device_id(chip_name):
for each in memories: