Updated lookup for OSCCAL_ADDR value from TDFs.
Included OSCCAL0, OSCCAL1, FOSCCAL0, SOSCCALA register lookups
This commit is contained in:
@@ -218,8 +218,13 @@ class Avr8TargetDescriptionFile extends TargetDescriptionFile
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($cpuRegisterGroup->registersMappedByName['osccal'])) {
|
$osccalRegister = $cpuRegisterGroup->registersMappedByName['osccal']
|
||||||
$osccalRegister = $cpuRegisterGroup->registersMappedByName['osccal'];
|
?? $cpuRegisterGroup->registersMappedByName['osccal0']
|
||||||
|
?? $cpuRegisterGroup->registersMappedByName['osccal1']
|
||||||
|
?? $cpuRegisterGroup->registersMappedByName['fosccal']
|
||||||
|
?? $cpuRegisterGroup->registersMappedByName['sosccala'] ?? null;
|
||||||
|
|
||||||
|
if (!is_null($osccalRegister)) {
|
||||||
$this->osccalAddress = $osccalRegister->offset;
|
$this->osccalAddress = $osccalRegister->offset;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -584,10 +584,22 @@ std::optional<Register> TargetDescriptionFile::getOscillatorCalibrationRegister(
|
|||||||
auto cpuRegisterGroup = this->getCpuRegisterGroup();
|
auto cpuRegisterGroup = this->getCpuRegisterGroup();
|
||||||
|
|
||||||
if (cpuRegisterGroup.has_value()) {
|
if (cpuRegisterGroup.has_value()) {
|
||||||
auto osccalRegisterIt = cpuRegisterGroup->registersMappedByName.find("osccal");
|
auto& cpuRegisters = cpuRegisterGroup->registersMappedByName;
|
||||||
|
|
||||||
if (osccalRegisterIt != cpuRegisterGroup->registersMappedByName.end()) {
|
if (cpuRegisters.contains("oscall")) {
|
||||||
return osccalRegisterIt->second;
|
return cpuRegisters.at("oscall");
|
||||||
|
|
||||||
|
} else if (cpuRegisters.contains("osccal0")) {
|
||||||
|
return cpuRegisters.at("osccal0");
|
||||||
|
|
||||||
|
} else if (cpuRegisters.contains("osccal1")) {
|
||||||
|
return cpuRegisters.at("osccal1");
|
||||||
|
|
||||||
|
} else if (cpuRegisters.contains("fosccal")) {
|
||||||
|
return cpuRegisters.at("fosccal");
|
||||||
|
|
||||||
|
} else if (cpuRegisters.contains("sosccala")) {
|
||||||
|
return cpuRegisters.at("sosccala");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -162,8 +162,6 @@
|
|||||||
</instance>
|
</instance>
|
||||||
</module>
|
</module>
|
||||||
</peripherals>
|
</peripherals>
|
||||||
|
|
||||||
|
|
||||||
<interrupts>
|
<interrupts>
|
||||||
<interrupt index="0" name="RESET"
|
<interrupt index="0" name="RESET"
|
||||||
caption="External Pin, Power-on Reset, Brown-out Reset and Watchdog Reset"/>
|
caption="External Pin, Power-on Reset, Brown-out Reset and Watchdog Reset"/>
|
||||||
|
|||||||
Reference in New Issue
Block a user