Generate more flash settings
This commit is contained in:
parent
0c9329fe94
commit
bd97be07b3
@ -853,6 +853,7 @@ def parse_chips():
|
|||||||
'kind': 'flash',
|
'kind': 'flash',
|
||||||
'address': h['defines']['all'][each + '_BASE'],
|
'address': h['defines']['all'][each + '_BASE'],
|
||||||
'size': size,
|
'size': size,
|
||||||
|
'settings': memory.determine_flash_settings(chip_name),
|
||||||
})
|
})
|
||||||
|
|
||||||
found = set()
|
found = set()
|
||||||
|
@ -45,13 +45,16 @@ memories = []
|
|||||||
|
|
||||||
def parse():
|
def parse():
|
||||||
for f in sorted(glob('sources/cubeprogdb/db/*.xml')):
|
for f in sorted(glob('sources/cubeprogdb/db/*.xml')):
|
||||||
#print("parsing ", f);
|
# print("parsing ", f);
|
||||||
device = xmltodict.parse(open(f, 'rb'))['Root']['Device']
|
device = xmltodict.parse(open(f, 'rb'))['Root']['Device']
|
||||||
device_id = device['DeviceID']
|
device_id = device['DeviceID']
|
||||||
name = device['Name']
|
name = device['Name']
|
||||||
names = split_names(name)
|
names = split_names(name)
|
||||||
flash_size = None
|
flash_size = None
|
||||||
flash_addr = None
|
flash_addr = None
|
||||||
|
write_size = None
|
||||||
|
erase_size = None
|
||||||
|
erase_value = None
|
||||||
ram_size = None
|
ram_size = None
|
||||||
ram_addr = None
|
ram_addr = None
|
||||||
|
|
||||||
@ -69,6 +72,18 @@ def parse():
|
|||||||
configs = [configs]
|
configs = [configs]
|
||||||
flash_addr = int(configs[0]['Parameters']['@address'], 16)
|
flash_addr = int(configs[0]['Parameters']['@address'], 16)
|
||||||
flash_size = int(configs[0]['Parameters']['@size'], 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}')
|
#print( f'flash {addr} {size}')
|
||||||
|
|
||||||
chunk = {
|
chunk = {
|
||||||
@ -86,6 +101,9 @@ def parse():
|
|||||||
chunk['flash'] = {
|
chunk['flash'] = {
|
||||||
'address': flash_addr,
|
'address': flash_addr,
|
||||||
'bytes': flash_size,
|
'bytes': flash_size,
|
||||||
|
'erase_value': erase_value,
|
||||||
|
'write_size': write_size,
|
||||||
|
'erase_size': erase_size,
|
||||||
}
|
}
|
||||||
|
|
||||||
memories.append(chunk)
|
memories.append(chunk)
|
||||||
@ -108,6 +126,18 @@ def determine_flash_size(chip_name):
|
|||||||
|
|
||||||
return None
|
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):
|
def determine_device_id(chip_name):
|
||||||
for each in memories:
|
for each in memories:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user