Added NVM base address extraction for XMega AVR8 targets
This commit is contained in:
@@ -357,6 +357,20 @@ TargetParameters& Avr8::getTargetParameters() {
|
||||
this->targetParameters->lockRegistersPdiOffset = pdiInterfaceProperties
|
||||
.at("lock_registers_offset").value.toInt(nullptr, 16);
|
||||
}
|
||||
|
||||
auto& peripheralModules = this->partDescription->getPeripheralModulesMappedByName();
|
||||
|
||||
if (peripheralModules.contains("nvm")) {
|
||||
auto& nvmModule = peripheralModules.at("nvm");
|
||||
|
||||
if (nvmModule.instancesMappedByName.contains("nvm")) {
|
||||
auto& nvmInstance = nvmModule.instancesMappedByName.at("nvm");
|
||||
|
||||
if (nvmInstance.registerGroupsMappedByName.contains("nvm")) {
|
||||
this->targetParameters->nvmBaseAddress = nvmInstance.registerGroupsMappedByName.at("nvm").offset;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ namespace Bloom::Targets::Microchip::Avr::Avr8Bit
|
||||
std::optional<std::uint32_t> lockRegistersPdiOffset;
|
||||
std::optional<std::uint32_t> userSignaturesPdiOffset;
|
||||
std::optional<std::uint32_t> productSignaturesPdiOffset;
|
||||
|
||||
std::optional<std::uint16_t> nvmBaseAddress;
|
||||
|
||||
std::optional<std::uint32_t> ioPortAddressRangeStart;
|
||||
std::optional<std::uint32_t> ioPortAddressRangeEnd;
|
||||
|
||||
Reference in New Issue
Block a user