From 914153077e861c7b3817603f8c72f2629f7fc305 Mon Sep 17 00:00:00 2001 From: Nav Date: Fri, 30 Aug 2024 19:59:59 +0100 Subject: [PATCH] Corrected memory address/size alignment in EDBG and RISC-V drivers --- .../Microchip/Protocols/EDBG/AVR/EdbgAvr8Interface.cpp | 6 ++---- .../Protocols/RiscVDebugSpec/DebugTranslator.cpp | 6 ++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/DebugToolDrivers/Microchip/Protocols/EDBG/AVR/EdbgAvr8Interface.cpp b/src/DebugToolDrivers/Microchip/Protocols/EDBG/AVR/EdbgAvr8Interface.cpp index 3e93e7dd..4b01b0fc 100644 --- a/src/DebugToolDrivers/Microchip/Protocols/EDBG/AVR/EdbgAvr8Interface.cpp +++ b/src/DebugToolDrivers/Microchip/Protocols/EDBG/AVR/EdbgAvr8Interface.cpp @@ -1267,9 +1267,7 @@ namespace DebugToolDrivers::Microchip::Protocols::Edbg::Avr } if ((address % alignTo) != 0) { - return static_cast(std::floor( - static_cast(address) / static_cast(alignTo) - ) * alignTo); + return (address / alignTo) * alignTo; } return address; @@ -1299,7 +1297,7 @@ namespace DebugToolDrivers::Microchip::Protocols::Edbg::Avr if ((bytes % alignTo) != 0) { return static_cast(std::ceil( - static_cast(bytes) / static_cast(alignTo) + static_cast(bytes) / static_cast(alignTo) ) * alignTo); } diff --git a/src/DebugToolDrivers/Protocols/RiscVDebugSpec/DebugTranslator.cpp b/src/DebugToolDrivers/Protocols/RiscVDebugSpec/DebugTranslator.cpp index 406f2e5a..db528986 100644 --- a/src/DebugToolDrivers/Protocols/RiscVDebugSpec/DebugTranslator.cpp +++ b/src/DebugToolDrivers/Protocols/RiscVDebugSpec/DebugTranslator.cpp @@ -579,14 +579,12 @@ namespace DebugToolDrivers::Protocols::RiscVDebugSpec } TargetMemoryAddress DebugTranslator::alignMemoryAddress(TargetMemoryAddress address, TargetMemoryAddress alignTo) { - return static_cast( - std::floor(static_cast(address) / static_cast(alignTo)) - ) * alignTo; + return (address / alignTo) * alignTo; } TargetMemorySize DebugTranslator::alignMemorySize(TargetMemorySize size, TargetMemorySize alignTo) { return static_cast( - std::ceil(static_cast(size) / static_cast(alignTo)) + std::ceil(static_cast(size) / static_cast(alignTo)) ) * alignTo; } }