Refactored EEPROM TDF memory segment lookup and included a fallback

for cases where the eeprom segment is located in the data address space,
as opposed to a dedicated address space for eeprom memory.
This commit is contained in:
Nav
2021-06-05 23:52:00 +01:00
parent 0c1549c1d2
commit 0309f4c604
2 changed files with 22 additions and 12 deletions

View File

@@ -131,10 +131,18 @@ class Avr8TargetDescriptionFile extends TargetDescriptionFile
$this->gpRegisterSize = $registerMemorySegment->size;
$this->gpRegisterStartAddress = $registerMemorySegment->startAddress;
}
if (isset($dataAddressSpace->memorySegmentsByTypeAndName['eeprom']['eeprom'])) {
$eepromMemorySegment = $dataAddressSpace->memorySegmentsByTypeAndName['eeprom']['eeprom'];
$this->eepromSize = $eepromMemorySegment->size;
$this->eepromPageSize = $eepromMemorySegment->pageSize;
}
}
$eepromAddressSpace = $this->addressSpacesById['eeprom'] ?? null;
if (!empty($eepromAddressSpace)) {
if ((is_null($this->eepromSize) || is_null($this->eepromPageSize))
&& isset($this->addressSpacesById['eeprom'])
) {
$eepromAddressSpace = $this->addressSpacesById['eeprom'];
$eepromMemorySegments = $eepromAddressSpace->memorySegmentsByTypeAndName['eeprom'] ?? null;
if (!empty($eepromMemorySegments)) {