Corrected memory address/size alignment in EDBG and RISC-V drivers
This commit is contained in:
@@ -1267,9 +1267,7 @@ namespace DebugToolDrivers::Microchip::Protocols::Edbg::Avr
|
||||
}
|
||||
|
||||
if ((address % alignTo) != 0) {
|
||||
return static_cast<TargetMemoryAddress>(std::floor(
|
||||
static_cast<float>(address) / static_cast<float>(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<TargetMemorySize>(std::ceil(
|
||||
static_cast<float>(bytes) / static_cast<float>(alignTo)
|
||||
static_cast<double>(bytes) / static_cast<double>(alignTo)
|
||||
) * alignTo);
|
||||
}
|
||||
|
||||
|
||||
@@ -579,14 +579,12 @@ namespace DebugToolDrivers::Protocols::RiscVDebugSpec
|
||||
}
|
||||
|
||||
TargetMemoryAddress DebugTranslator::alignMemoryAddress(TargetMemoryAddress address, TargetMemoryAddress alignTo) {
|
||||
return static_cast<TargetMemoryAddress>(
|
||||
std::floor(static_cast<float>(address) / static_cast<float>(alignTo))
|
||||
) * alignTo;
|
||||
return (address / alignTo) * alignTo;
|
||||
}
|
||||
|
||||
TargetMemorySize DebugTranslator::alignMemorySize(TargetMemorySize size, TargetMemorySize alignTo) {
|
||||
return static_cast<TargetMemorySize>(
|
||||
std::ceil(static_cast<float>(size) / static_cast<float>(alignTo))
|
||||
std::ceil(static_cast<double>(size) / static_cast<double>(alignTo))
|
||||
) * alignTo;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user