Move away from using const references of std::vector<unsigned char> for target memory buffers. Replaced with std::span<const unsigned char> (via TargetMemoryBufferSpan alias)

This commit is contained in:
Nav
2024-11-16 21:49:49 +00:00
parent eebba986b5
commit 4147af618b
21 changed files with 39 additions and 33 deletions

View File

@@ -10,7 +10,7 @@ namespace DebugToolDrivers::Microchip::Protocols::Edbg::Avr::CommandFrames::Avr8
class WriteMemory: public Avr8GenericCommandFrame<std::vector<unsigned char>>
{
public:
WriteMemory(const Avr8MemoryType& type, std::uint32_t address, const Targets::TargetMemoryBuffer& buffer)
WriteMemory(const Avr8MemoryType& type, std::uint32_t address, Targets::TargetMemoryBufferSpan buffer)
: Avr8GenericCommandFrame()
{
/*

View File

@@ -745,7 +745,7 @@ namespace DebugToolDrivers::Microchip::Protocols::Edbg::Avr
const Targets::TargetAddressSpaceDescriptor& addressSpaceDescriptor,
const Targets::TargetMemorySegmentDescriptor& memorySegmentDescriptor,
TargetMemoryAddress startAddress,
const TargetMemoryBuffer& buffer
Targets::TargetMemoryBufferSpan buffer
) {
if (memorySegmentDescriptor.type == TargetMemorySegmentType::FLASH) {
if (this->session.configVariant == Avr8ConfigVariant::XMEGA) {
@@ -1484,7 +1484,7 @@ namespace DebugToolDrivers::Microchip::Protocols::Edbg::Avr
void EdbgAvr8Interface::writeMemory(
Avr8MemoryType type,
TargetMemoryAddress startAddress,
const TargetMemoryBuffer& buffer
Targets::TargetMemoryBufferSpan buffer
) {
if (type == Avr8MemoryType::FUSES && this->session.configVariant == Avr8ConfigVariant::DEBUG_WIRE) {
throw Exception{"Cannot access AVR fuses via the debugWIRE interface"};
@@ -1548,7 +1548,7 @@ namespace DebugToolDrivers::Microchip::Protocols::Edbg::Avr
this->writeMemory(
type,
startAddress + bytesWritten,
TargetMemoryBuffer{buffer.begin() + bytesWritten, buffer.begin() + bytesWritten + chunkSize}
buffer.subspan(bytesWritten, chunkSize)
);
bytesWritten += chunkSize;

View File

@@ -259,7 +259,7 @@ namespace DebugToolDrivers::Microchip::Protocols::Edbg::Avr
const Targets::TargetAddressSpaceDescriptor& addressSpaceDescriptor,
const Targets::TargetMemorySegmentDescriptor& memorySegmentDescriptor,
Targets::TargetMemoryAddress startAddress,
const Targets::TargetMemoryBuffer& buffer
Targets::TargetMemoryBufferSpan buffer
) override;
/**
@@ -546,7 +546,11 @@ namespace DebugToolDrivers::Microchip::Protocols::Edbg::Avr
* @param address
* @param buffer
*/
void writeMemory(Avr8MemoryType type, Targets::TargetMemoryAddress address, const Targets::TargetMemoryBuffer& buffer);
void writeMemory(
Avr8MemoryType type,
Targets::TargetMemoryAddress address,
Targets::TargetMemoryBufferSpan buffer
);
/**
* Fetches the current target state.