From 403f3ca40841f08f38b38edb6377f9996200afae Mon Sep 17 00:00:00 2001 From: Nav Date: Wed, 30 Jun 2021 03:09:36 +0100 Subject: [PATCH] Corrected issue with UPDI register reading --- .../CMSIS-DAP/VendorSpecific/EDBG/AVR/EdbgAvr8Interface.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/DebugToolDrivers/Protocols/CMSIS-DAP/VendorSpecific/EDBG/AVR/EdbgAvr8Interface.cpp b/src/DebugToolDrivers/Protocols/CMSIS-DAP/VendorSpecific/EDBG/AVR/EdbgAvr8Interface.cpp index 961266ff..10429c51 100644 --- a/src/DebugToolDrivers/Protocols/CMSIS-DAP/VendorSpecific/EDBG/AVR/EdbgAvr8Interface.cpp +++ b/src/DebugToolDrivers/Protocols/CMSIS-DAP/VendorSpecific/EDBG/AVR/EdbgAvr8Interface.cpp @@ -1145,7 +1145,8 @@ TargetRegisters EdbgAvr8Interface::readGeneralPurposeRegisters(std::setreadMemory( - this->family == Family::XMEGA ? Avr8MemoryType::REGISTER_FILE : Avr8MemoryType::SRAM, + this->configVariant == Avr8ConfigVariant::XMEGA || this->configVariant == Avr8ConfigVariant::UPDI + ? Avr8MemoryType::REGISTER_FILE : Avr8MemoryType::SRAM, this->targetParameters.gpRegisterStartAddress.value_or(0x00), this->targetParameters.gpRegisterSize.value_or(32) ); @@ -1185,7 +1186,8 @@ void EdbgAvr8Interface::writeGeneralPurposeRegisters(const TargetRegisters& regi // TODO: This can be inefficient when updating many registers, maybe do something a little smarter here. this->writeMemory( - this->configVariant == Avr8ConfigVariant::XMEGA ? Avr8MemoryType::REGISTER_FILE : Avr8MemoryType::SRAM, + this->configVariant == Avr8ConfigVariant::XMEGA || this->configVariant == Avr8ConfigVariant::UPDI + ? Avr8MemoryType::REGISTER_FILE : Avr8MemoryType::SRAM, static_cast(gpStartAddress + descriptor.id.value()), gpRegister.value );