diff --git a/src/Targets/Microchip/AVR/AVR8/Avr8.cpp b/src/Targets/Microchip/AVR/AVR8/Avr8.cpp index 7c18d148..4eb48a3b 100644 --- a/src/Targets/Microchip/AVR/AVR8/Avr8.cpp +++ b/src/Targets/Microchip/AVR/AVR8/Avr8.cpp @@ -573,6 +573,20 @@ namespace Bloom::Targets::Microchip::Avr::Avr8Bit } } + void Avr8::enableProgrammingMode() { + this->avr8DebugInterface->enableProgrammingMode(); + this->programmingModeActive = true; + } + + void Avr8::disableProgrammingMode() { + this->avr8DebugInterface->disableProgrammingMode(); + this->programmingModeActive = false; + } + + bool Avr8::programmingModeEnabled() { + return this->programmingModeActive; + } + void Avr8::loadTargetDescriptionFile() { this->targetDescriptionFile = TargetDescription::TargetDescriptionFile( this->getId(), diff --git a/src/Targets/Microchip/AVR/AVR8/Avr8.hpp b/src/Targets/Microchip/AVR/AVR8/Avr8.hpp index 0f0d0c3c..ffc9c249 100644 --- a/src/Targets/Microchip/AVR/AVR8/Avr8.hpp +++ b/src/Targets/Microchip/AVR/AVR8/Avr8.hpp @@ -122,6 +122,12 @@ namespace Bloom::Targets::Microchip::Avr::Avr8Bit const TargetPinState& state ) override; + void enableProgrammingMode() override; + + void disableProgrammingMode() override; + + bool programmingModeEnabled() override; + protected: DebugToolDrivers::TargetInterfaces::TargetPowerManagementInterface* targetPowerManagementInterface = nullptr; DebugToolDrivers::TargetInterfaces::Microchip::Avr::Avr8::Avr8DebugInterface* avr8DebugInterface = nullptr; @@ -139,6 +145,8 @@ namespace Bloom::Targets::Microchip::Avr::Avr8Bit std::map targetRegisterDescriptorsByType; std::map targetMemoryDescriptorsByType; + bool programmingModeActive = false; + /** * Resolves the appropriate TDF for the AVR8 target and populates this->targetDescriptionFile. */