Support for reserved hardware breakpoint (for stepping on AVR8 targets)

This commit is contained in:
Nav
2023-09-23 21:50:04 +01:00
parent 0851da3a7a
commit 9904d93314
5 changed files with 68 additions and 18 deletions

View File

@@ -35,31 +35,51 @@ namespace Targets::Microchip::Avr::Avr8Bit
// The 'manageDwenFuseBit' param used to be 'updateDwenFuseBit' - we still support the old, for now.
if (targetNode["updateDwenFuseBit"]) {
this->manageDwenFuseBit = targetNode["updateDwenFuseBit"].as<bool>();
this->manageDwenFuseBit = targetNode["updateDwenFuseBit"].as<bool>(
this->manageDwenFuseBit
);
}
if (targetNode["manageDwenFuseBit"]) {
this->manageDwenFuseBit = targetNode["manageDwenFuseBit"].as<bool>();
this->manageDwenFuseBit = targetNode["manageDwenFuseBit"].as<bool>(
this->manageDwenFuseBit
);
}
if (targetNode["cycleTargetPowerPostDwenUpdate"]) {
this->cycleTargetPowerPostDwenUpdate = targetNode["cycleTargetPowerPostDwenUpdate"].as<bool>();
this->cycleTargetPowerPostDwenUpdate = targetNode["cycleTargetPowerPostDwenUpdate"].as<bool>(
this->cycleTargetPowerPostDwenUpdate
);
}
if (targetNode["disableDebugWirePreDisconnect"]) {
this->disableDebugWireOnDeactivate = targetNode["disableDebugWirePreDisconnect"].as<bool>();
this->disableDebugWireOnDeactivate = targetNode["disableDebugWirePreDisconnect"].as<bool>(
this->disableDebugWireOnDeactivate
);
}
if (targetNode["targetPowerCycleDelay"]) {
this->targetPowerCycleDelay = std::chrono::milliseconds(targetNode["targetPowerCycleDelay"].as<int>());
this->targetPowerCycleDelay = std::chrono::milliseconds(targetNode["targetPowerCycleDelay"].as<int>(
this->targetPowerCycleDelay.count()
));
}
if (targetNode["manageOcdenFuseBit"]) {
this->manageOcdenFuseBit = targetNode["manageOcdenFuseBit"].as<bool>();
this->manageOcdenFuseBit = targetNode["manageOcdenFuseBit"].as<bool>(
this->manageOcdenFuseBit
);
}
if (targetNode["preserveEeprom"]) {
this->preserveEeprom = targetNode["preserveEeprom"].as<bool>();
this->preserveEeprom = targetNode["preserveEeprom"].as<bool>(
this->preserveEeprom
);
}
if (targetNode["reserveSteppingBreakpoint"]) {
this->reserveSteppingBreakpoint = targetNode["reserveSteppingBreakpoint"].as<bool>(
this->reserveSteppingBreakpoint
);
}
}
}