diff --git a/src/DebugServer/Gdb/AvrGdb/CommandPackets/ReadMemoryMap.cpp b/src/DebugServer/Gdb/AvrGdb/CommandPackets/ReadMemoryMap.cpp index 154955f5..fa282b03 100644 --- a/src/DebugServer/Gdb/AvrGdb/CommandPackets/ReadMemoryMap.cpp +++ b/src/DebugServer/Gdb/AvrGdb/CommandPackets/ReadMemoryMap.cpp @@ -80,7 +80,7 @@ namespace Bloom::DebugServer::Gdb::AvrGdb::CommandPackets * We include register and EEPROM memory in our RAM section. This allows GDB to access registers and EEPROM * data via memory read/write packets. * - * Like SRAM, GDB applies an offset to EEPROM addresses. We account for that offset in our ramSize. + * Like SRAM, GDB applies an offset to EEPROM addresses. We account for that offset in our ramSectionSize. * * The SRAM and EEPROM offsets allow for a maximum of 65KB of SRAM. But that must also accommodate the * register addresses, which can vary in size. diff --git a/src/DebugToolDrivers/Protocols/CMSIS-DAP/VendorSpecific/EDBG/AVR/Avr8Generic.hpp b/src/DebugToolDrivers/Protocols/CMSIS-DAP/VendorSpecific/EDBG/AVR/Avr8Generic.hpp index 9c43fddb..50511f02 100644 --- a/src/DebugToolDrivers/Protocols/CMSIS-DAP/VendorSpecific/EDBG/AVR/Avr8Generic.hpp +++ b/src/DebugToolDrivers/Protocols/CMSIS-DAP/VendorSpecific/EDBG/AVR/Avr8Generic.hpp @@ -13,7 +13,9 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr constexpr Avr8EdbgParameter() = default; constexpr Avr8EdbgParameter(unsigned char context, unsigned char id) - : context(context), id(id) {}; + : context(context) + , id(id) + {}; }; struct Avr8EdbgParameters @@ -129,7 +131,7 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr EEPROM = 0x22, /** - * The EEPROM_ATOMIC memory type can be used to write to EEPROM memory with automatic pag erasing. + * The EEPROM_ATOMIC memory type can be used to write to EEPROM memory with automatic page erasing. * * It's only available for XMEGA and UPDI config variants. * @@ -152,7 +154,7 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr * The APPL_FLASH memory type can be used to read/write to the application section of the flash memory on the * target. * - * Only available with the XMEGA (PDI) and UPDI (PDI_1W) config variants. + * Only available with the XMEGA and UPDI config variants. * * When in debugging mode, only read access is permitted. Programming mode will need to be enabled before * any attempts of writing data. diff --git a/src/DebugToolDrivers/Protocols/CMSIS-DAP/VendorSpecific/EDBG/AVR/CommandFrames/AVR8Generic/EraseMemory.hpp b/src/DebugToolDrivers/Protocols/CMSIS-DAP/VendorSpecific/EDBG/AVR/CommandFrames/AVR8Generic/EraseMemory.hpp index fe3f5fe3..d387a1da 100644 --- a/src/DebugToolDrivers/Protocols/CMSIS-DAP/VendorSpecific/EDBG/AVR/CommandFrames/AVR8Generic/EraseMemory.hpp +++ b/src/DebugToolDrivers/Protocols/CMSIS-DAP/VendorSpecific/EDBG/AVR/CommandFrames/AVR8Generic/EraseMemory.hpp @@ -13,7 +13,7 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr::CommandFrames : Avr8GenericCommandFrame() { /* - * The erase memory command consists of 7 bytes: + * The "Erase memory" command consists of 7 bytes: * 1. Command ID (0x20) * 2. Version (0x00) * 3. Erase mode (see Avr8EraseMemoryMode enum) diff --git a/src/DebugToolDrivers/Protocols/CMSIS-DAP/VendorSpecific/EDBG/AVR/CommandFrames/AVR8Generic/WriteMemory.hpp b/src/DebugToolDrivers/Protocols/CMSIS-DAP/VendorSpecific/EDBG/AVR/CommandFrames/AVR8Generic/WriteMemory.hpp index 0329e4f1..3be30000 100644 --- a/src/DebugToolDrivers/Protocols/CMSIS-DAP/VendorSpecific/EDBG/AVR/CommandFrames/AVR8Generic/WriteMemory.hpp +++ b/src/DebugToolDrivers/Protocols/CMSIS-DAP/VendorSpecific/EDBG/AVR/CommandFrames/AVR8Generic/WriteMemory.hpp @@ -14,7 +14,7 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr::CommandFrames : Avr8GenericCommandFrame() { /* - * The write memory command consists of 12 bytes + the buffer size: + * The "Write memory" command consists of 12 bytes + the buffer size: * 1. Command ID (0x23) * 2. Version (0x00) * 3. Memory type (Avr8MemoryType) @@ -32,7 +32,7 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr::CommandFrames this->payload[5] = static_cast(address >> 16); this->payload[6] = static_cast(address >> 24); - auto bytesToWrite = static_cast(buffer.size()); + const auto bytesToWrite = static_cast(buffer.size()); this->payload[7] = static_cast(bytesToWrite); this->payload[8] = static_cast(bytesToWrite >> 8); this->payload[9] = static_cast(bytesToWrite >> 16); 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 71f899f2..9d2fbaee 100644 --- a/src/DebugToolDrivers/Protocols/CMSIS-DAP/VendorSpecific/EDBG/AVR/EdbgAvr8Interface.cpp +++ b/src/DebugToolDrivers/Protocols/CMSIS-DAP/VendorSpecific/EDBG/AVR/EdbgAvr8Interface.cpp @@ -938,7 +938,7 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr void EdbgAvr8Interface::setDebugWireAndJtagParameters() { if (this->targetParameters.flashPageSize.has_value()) { - Logger::debug("Setting DEVICE_FLASH_PAGE_SIZE AVR8 parameter"); + Logger::debug("Setting FLASH_PAGE_SIZE AVR8 device parameter"); this->setParameter( Avr8EdbgParameters::DEVICE_FLASH_PAGE_SIZE, this->targetParameters.flashPageSize.value() @@ -946,7 +946,7 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr } if (this->targetParameters.flashSize.has_value()) { - Logger::debug("Setting DEVICE_FLASH_SIZE AVR8 parameter"); + Logger::debug("Setting FLASH_SIZE AVR8 device parameter"); this->setParameter( Avr8EdbgParameters::DEVICE_FLASH_SIZE, this->targetParameters.flashSize.value() @@ -954,7 +954,7 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr } if (this->targetParameters.flashStartAddress.has_value()) { - Logger::debug("Setting DEVICE_FLASH_BASE AVR8 parameter"); + Logger::debug("Setting FLASH_BASE AVR8 device parameter"); this->setParameter( Avr8EdbgParameters::DEVICE_FLASH_BASE, this->targetParameters.flashStartAddress.value() @@ -962,7 +962,7 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr } if (this->targetParameters.ramStartAddress.has_value()) { - Logger::debug("Setting DEVICE_SRAM_START AVR8 parameter"); + Logger::debug("Setting SRAM_START AVR8 device parameter"); this->setParameter( Avr8EdbgParameters::DEVICE_SRAM_START, this->targetParameters.ramStartAddress.value() @@ -970,7 +970,7 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr } if (this->targetParameters.eepromSize.has_value()) { - Logger::debug("Setting DEVICE_EEPROM_SIZE AVR8 parameter"); + Logger::debug("Setting EEPROM_SIZE AVR8 device parameter"); this->setParameter( Avr8EdbgParameters::DEVICE_EEPROM_SIZE, this->targetParameters.eepromSize.value() @@ -978,7 +978,7 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr } if (this->targetParameters.eepromPageSize.has_value()) { - Logger::debug("Setting DEVICE_EEPROM_PAGE_SIZE AVR8 parameter"); + Logger::debug("Setting EEPROM_PAGE_SIZE AVR8 device parameter"); this->setParameter( Avr8EdbgParameters::DEVICE_EEPROM_PAGE_SIZE, this->targetParameters.eepromPageSize.value() @@ -986,7 +986,7 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr } if (this->targetParameters.ocdRevision.has_value()) { - Logger::debug("Setting DEVICE_OCD_REVISION AVR8 parameter"); + Logger::debug("Setting OCD_REVISION AVR8 device parameter"); this->setParameter( Avr8EdbgParameters::DEVICE_OCD_REVISION, this->targetParameters.ocdRevision.value() @@ -994,7 +994,7 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr } if (this->targetParameters.ocdDataRegister.has_value()) { - Logger::debug("Setting DEVICE_OCD_DATA_REGISTER AVR8 parameter"); + Logger::debug("Setting OCD_DATA_REGISTER AVR8 device parameter"); this->setParameter( Avr8EdbgParameters::DEVICE_OCD_DATA_REGISTER, this->targetParameters.ocdDataRegister.value() @@ -1002,7 +1002,7 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr } if (this->targetParameters.spmcRegisterStartAddress.has_value()) { - Logger::debug("Setting DEVICE_SPMCR_REGISTER AVR8 parameter"); + Logger::debug("Setting SPMCR_REGISTER AVR8 device parameter"); this->setParameter( Avr8EdbgParameters::DEVICE_SPMCR_REGISTER, this->targetParameters.spmcRegisterStartAddress.value() @@ -1010,7 +1010,7 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr } if (this->targetParameters.bootSectionStartAddress.has_value()) { - Logger::debug("Setting DEVICE_BOOT_START_ADDR AVR8 parameter"); + Logger::debug("Setting BOOT_START_ADDR AVR8 device parameter"); this->setParameter( Avr8EdbgParameters::DEVICE_BOOT_START_ADDR, this->targetParameters.bootSectionStartAddress.value() @@ -1035,7 +1035,7 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr auto mappedIoStartAddress = this->targetParameters.mappedIoSegmentStartAddress.value_or(0); if (this->targetParameters.osccalAddress.has_value()) { - Logger::debug("Setting DEVICE_OSCCAL_ADDR AVR8 parameter"); + Logger::debug("Setting OSCCAL_ADDR AVR8 device parameter"); this->setParameter( Avr8EdbgParameters::DEVICE_OSCCAL_ADDR, static_cast( @@ -1045,7 +1045,7 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr } if (this->targetParameters.eepromAddressRegisterLow.has_value()) { - Logger::debug("Setting DEVICE_EEARL_ADDR AVR8 parameter"); + Logger::debug("Setting EEARL_ADDR AVR8 device parameter"); this->setParameter( Avr8EdbgParameters::DEVICE_EEARL_ADDR, static_cast( @@ -1055,7 +1055,7 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr } if (this->targetParameters.eepromAddressRegisterHigh.has_value()) { - Logger::debug("Setting DEVICE_EEARH_ADDR AVR8 parameter"); + Logger::debug("Setting EEARH_ADDR AVR8 device parameter"); this->setParameter( Avr8EdbgParameters::DEVICE_EEARH_ADDR, static_cast( @@ -1065,7 +1065,7 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr } if (this->targetParameters.eepromControlRegisterAddress.has_value()) { - Logger::debug("Setting DEVICE_EECR_ADDR AVR8 parameter"); + Logger::debug("Setting EECR_ADDR AVR8 device parameter"); this->setParameter( Avr8EdbgParameters::DEVICE_EECR_ADDR, static_cast( @@ -1075,7 +1075,7 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr } if (this->targetParameters.eepromDataRegisterAddress.has_value()) { - Logger::debug("Setting DEVICE_EEDR_ADDR AVR8 parameter"); + Logger::debug("Setting EEDR_ADDR AVR8 device parameter"); this->setParameter( Avr8EdbgParameters::DEVICE_EEDR_ADDR, static_cast( @@ -1260,13 +1260,13 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr * for more). */ const auto programMemBaseAddress = this->targetParameters.programMemoryUpdiStartAddress.value(); - Logger::debug("Setting DEVICE_UPDI_PROGMEM_BASE_ADDR AVR8 parameter"); + Logger::debug("Setting UPDI_PROGMEM_BASE_ADDR AVR8 device parameter"); this->setParameter( Avr8EdbgParameters::DEVICE_UPDI_PROGMEM_BASE_ADDR, static_cast(programMemBaseAddress) ); - Logger::debug("Setting DEVICE_UPDI_PROGMEM_BASE_ADDR_MSB AVR8 parameter"); + Logger::debug("Setting UPDI_PROGMEM_BASE_ADDR_MSB AVR8 device parameter"); this->setParameter( Avr8EdbgParameters::DEVICE_UPDI_PROGMEM_BASE_ADDR_MSB, static_cast(programMemBaseAddress >> 16) @@ -1280,13 +1280,13 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr * The same applies here, for the flash page size field (DEVICE_UPDI_FLASH_PAGE_SIZE). */ auto flashPageSize = this->targetParameters.flashPageSize.value(); - Logger::debug("Setting DEVICE_UPDI_FLASH_PAGE_SIZE AVR8 parameter"); + Logger::debug("Setting UPDI_FLASH_PAGE_SIZE AVR8 device parameter"); this->setParameter( Avr8EdbgParameters::DEVICE_UPDI_FLASH_PAGE_SIZE, static_cast(flashPageSize) ); - Logger::debug("Setting DEVICE_UPDI_FLASH_PAGE_SIZE_MSB AVR8 parameter"); + Logger::debug("Setting UPDI_FLASH_PAGE_SIZE_MSB AVR8 device parameter"); this->setParameter( Avr8EdbgParameters::DEVICE_UPDI_FLASH_PAGE_SIZE_MSB, static_cast(flashPageSize >> 8) @@ -1294,7 +1294,7 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr } if (this->targetParameters.eepromPageSize.has_value()) { - Logger::debug("Setting DEVICE_UPDI_EEPROM_PAGE_SIZE AVR8 parameter"); + Logger::debug("Setting UPDI_EEPROM_PAGE_SIZE AVR8 device parameter"); this->setParameter( Avr8EdbgParameters::DEVICE_UPDI_EEPROM_PAGE_SIZE, this->targetParameters.eepromPageSize.value() @@ -1302,7 +1302,7 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr } if (this->targetParameters.nvmModuleBaseAddress.has_value()) { - Logger::debug("Setting DEVICE_UPDI_NVMCTRL_ADDR AVR8 parameter"); + Logger::debug("Setting UPDI_NVMCTRL_ADDR AVR8 device parameter"); this->setParameter( Avr8EdbgParameters::DEVICE_UPDI_NVMCTRL_ADDR, this->targetParameters.nvmModuleBaseAddress.value() @@ -1310,7 +1310,7 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr } if (this->targetParameters.ocdModuleAddress.has_value()) { - Logger::debug("Setting DEVICE_UPDI_OCD_ADDR AVR8 parameter"); + Logger::debug("Setting UPDI_OCD_ADDR AVR8 device parameter"); this->setParameter( Avr8EdbgParameters::DEVICE_UPDI_OCD_ADDR, this->targetParameters.ocdModuleAddress.value() @@ -1318,7 +1318,7 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr } if (this->targetParameters.flashSize.has_value()) { - Logger::debug("Setting DEVICE_UPDI_FLASH_SIZE AVR8 parameter"); + Logger::debug("Setting UPDI_FLASH_SIZE AVR8 device parameter"); this->setParameter( Avr8EdbgParameters::DEVICE_UPDI_FLASH_SIZE, this->targetParameters.flashSize.value() @@ -1326,7 +1326,7 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr } if (this->targetParameters.eepromSize.has_value()) { - Logger::debug("Setting DEVICE_UPDI_EEPROM_SIZE AVR8 parameter"); + Logger::debug("Setting UPDI_EEPROM_SIZE AVR8 device parameter"); this->setParameter( Avr8EdbgParameters::DEVICE_UPDI_EEPROM_SIZE, this->targetParameters.eepromSize.value() @@ -1334,7 +1334,7 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr } if (this->targetParameters.eepromStartAddress.has_value()) { - Logger::debug("Setting DEVICE_UPDI_EEPROM_BASE_ADDR AVR8 parameter"); + Logger::debug("Setting UPDI_EEPROM_BASE_ADDR AVR8 device parameter"); this->setParameter( Avr8EdbgParameters::DEVICE_UPDI_EEPROM_BASE_ADDR, this->targetParameters.eepromStartAddress.value() @@ -1342,7 +1342,7 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr } if (this->targetParameters.signatureSegmentStartAddress.has_value()) { - Logger::debug("Setting DEVICE_UPDI_SIG_BASE_ADDR AVR8 parameter"); + Logger::debug("Setting UPDI_SIG_BASE_ADDR AVR8 device parameter"); this->setParameter( Avr8EdbgParameters::DEVICE_UPDI_SIG_BASE_ADDR, this->targetParameters.signatureSegmentStartAddress.value() @@ -1350,7 +1350,7 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr } if (this->targetParameters.fuseSegmentStartAddress.has_value()) { - Logger::debug("Setting DEVICE_UPDI_FUSE_BASE_ADDR AVR8 parameter"); + Logger::debug("Setting UPDI_FUSE_BASE_ADDR AVR8 device parameter"); this->setParameter( Avr8EdbgParameters::DEVICE_UPDI_FUSE_BASE_ADDR, this->targetParameters.fuseSegmentStartAddress.value() @@ -1358,7 +1358,7 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr } if (this->targetParameters.fuseSegmentSize.has_value()) { - Logger::debug("Setting DEVICE_UPDI_FUSE_SIZE AVR8 parameter"); + Logger::debug("Setting UPDI_FUSE_SIZE AVR8 device parameter"); this->setParameter( Avr8EdbgParameters::DEVICE_UPDI_FUSE_SIZE, this->targetParameters.fuseSegmentSize.value() @@ -1366,7 +1366,7 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr } if (this->targetParameters.lockbitsSegmentStartAddress.has_value()) { - Logger::debug("Setting DEVICE_UPDI_LOCK_BASE_ADDR AVR8 parameter"); + Logger::debug("Setting UPDI_LOCK_BASE_ADDR AVR8 device parameter"); this->setParameter( Avr8EdbgParameters::DEVICE_UPDI_LOCK_BASE_ADDR, this->targetParameters.lockbitsSegmentStartAddress.value() @@ -1685,9 +1685,9 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr * that isn't actually the memory data (like the command ID, version bytes, etc). I could have sought the * actual value but who has the time. It won't exceed 20 bytes. Bite me. */ - auto singlePacketSize = static_cast(this->edbgInterface->getUsbHidInputReportSize() - 20); - auto totalResponsePackets = std::ceil(static_cast(bytes) / static_cast(singlePacketSize)); - auto totalReadsRequired = std::ceil(static_cast(totalResponsePackets) / 2); + const auto singlePacketSize = static_cast(this->edbgInterface->getUsbHidInputReportSize() - 20); + const auto totalResponsePackets = std::ceil(static_cast(bytes) / static_cast(singlePacketSize)); + const auto totalReadsRequired = std::ceil(static_cast(totalResponsePackets) / 2); if (totalResponsePackets > 2) { /* @@ -1697,7 +1697,7 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr auto output = TargetMemoryBuffer(); for (float i = 1; i <= totalReadsRequired; i++) { - auto bytesToRead = static_cast( + const auto bytesToRead = static_cast( (bytes - output.size()) > (singlePacketSize * 2) ? (singlePacketSize * 2) : bytes - output.size() ); @@ -1707,7 +1707,7 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr bytesToRead, excludedAddresses ); - output.insert(output.end(), data.begin(), data.end()); + std::move(data.begin(), data.end(), std::back_inserter(output)); } return output;