diff --git a/src/DebugToolDrivers/Microchip/XplainedPro/XplainedPro.cpp b/src/DebugToolDrivers/Microchip/XplainedPro/XplainedPro.cpp index 5a9cfa48..2e60a48f 100644 --- a/src/DebugToolDrivers/Microchip/XplainedPro/XplainedPro.cpp +++ b/src/DebugToolDrivers/Microchip/XplainedPro/XplainedPro.cpp @@ -8,6 +8,8 @@ namespace Bloom::DebugToolDrivers using namespace Protocols::CmsisDap::Edbg::Avr; using namespace Bloom::Exceptions; + using Protocols::CmsisDap::Edbg::EdbgTargetPowerManagementInterface; + void XplainedPro::init() { UsbDevice::init(); @@ -30,6 +32,10 @@ namespace Bloom::DebugToolDrivers this->startSession(); } + this->targetPowerManagementInterface = std::make_unique( + this->edbgInterface + ); + this->edbgAvr8Interface = std::make_unique(this->edbgInterface); /* diff --git a/src/DebugToolDrivers/Microchip/XplainedPro/XplainedPro.hpp b/src/DebugToolDrivers/Microchip/XplainedPro/XplainedPro.hpp index fbd80c75..b1cce95c 100644 --- a/src/DebugToolDrivers/Microchip/XplainedPro/XplainedPro.hpp +++ b/src/DebugToolDrivers/Microchip/XplainedPro/XplainedPro.hpp @@ -7,8 +7,12 @@ #include "src/DebugToolDrivers/DebugTool.hpp" #include "src/DebugToolDrivers/USB/UsbDevice.hpp" #include "src/DebugToolDrivers/USB/HID/HidInterface.hpp" + #include "src/DebugToolDrivers/Protocols/CMSIS-DAP/CmsisDapInterface.hpp" #include "src/DebugToolDrivers/Protocols/CMSIS-DAP/VendorSpecific/EDBG/EdbgInterface.hpp" + +#include "src/DebugToolDrivers/Protocols/CMSIS-DAP/VendorSpecific/EDBG/EdbgTargetPowerManagementInterface.hpp" + #include "src/DebugToolDrivers/Protocols/CMSIS-DAP/VendorSpecific/EDBG/AVR/EdbgAvr8Interface.hpp" #include "src/DebugToolDrivers/Protocols/CMSIS-DAP/VendorSpecific/EDBG/AVR/CommandFrames/AvrCommandFrames.hpp" @@ -40,6 +44,10 @@ namespace Bloom::DebugToolDrivers return this->edbgInterface; } + DebugToolDrivers::TargetInterfaces::TargetPowerManagementInterface* getTargetPowerManagementInterface() override { + return this->targetPowerManagementInterface.get(); + } + TargetInterfaces::Microchip::Avr::Avr8::Avr8DebugInterface* getAvr8DebugInterface() override { return this->edbgAvr8Interface.get(); } @@ -69,6 +77,10 @@ namespace Bloom::DebugToolDrivers Protocols::CmsisDap::Edbg::EdbgInterface edbgInterface = Protocols::CmsisDap::Edbg::EdbgInterface(); std::unique_ptr edbgAvr8Interface = nullptr; + std::unique_ptr< + Protocols::CmsisDap::Edbg::EdbgTargetPowerManagementInterface + > targetPowerManagementInterface = nullptr; + bool sessionStarted = false; }; }