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

@@ -405,7 +405,7 @@ namespace Targets::Microchip::Avr8
const TargetAddressSpaceDescriptor& addressSpaceDescriptor,
const TargetMemorySegmentDescriptor& memorySegmentDescriptor,
std::uint32_t startAddress,
const TargetMemoryBuffer& buffer
TargetMemoryBufferSpan buffer
) {
if (memorySegmentDescriptor.type == TargetMemorySegmentType::FLASH && !this->programmingModeEnabled()) {
throw Exception{"Attempted Flash memory write in the absence of an active programming session."};
@@ -1088,7 +1088,7 @@ namespace Targets::Microchip::Avr8
this->fuseAddressSpaceDescriptor,
this->fuseMemorySegmentDescriptor,
ocdenRegisterDescriptor.startAddress,
{newValue}
TargetMemoryBuffer({newValue})
);
Logger::debug("Verifying OCDEN fuse bit");
@@ -1140,7 +1140,7 @@ namespace Targets::Microchip::Avr8
this->fuseAddressSpaceDescriptor,
this->fuseMemorySegmentDescriptor,
eesaveRegisterDescriptor.startAddress,
{newValue}
TargetMemoryBuffer({newValue})
);
Logger::debug("Verifying EESAVE fuse bit");

View File

@@ -84,7 +84,7 @@ namespace Targets::Microchip::Avr8
const TargetAddressSpaceDescriptor& addressSpaceDescriptor,
const TargetMemorySegmentDescriptor& memorySegmentDescriptor,
TargetMemoryAddress startAddress,
const TargetMemoryBuffer& buffer
TargetMemoryBufferSpan buffer
) override;
bool isProgramMemory(
const TargetAddressSpaceDescriptor& addressSpaceDescriptor,

View File

@@ -235,7 +235,7 @@ namespace Targets::RiscV
const TargetAddressSpaceDescriptor& addressSpaceDescriptor,
const TargetMemorySegmentDescriptor& memorySegmentDescriptor,
TargetMemoryAddress startAddress,
const TargetMemoryBuffer& buffer
TargetMemoryBufferSpan buffer
) {
assert(!buffer.empty());

View File

@@ -62,7 +62,7 @@ namespace Targets::RiscV
const TargetAddressSpaceDescriptor& addressSpaceDescriptor,
const TargetMemorySegmentDescriptor& memorySegmentDescriptor,
TargetMemoryAddress startAddress,
const TargetMemoryBuffer& buffer
TargetMemoryBufferSpan buffer
) override;
bool isProgramMemory(
const TargetAddressSpaceDescriptor& addressSpaceDescriptor,

View File

@@ -106,7 +106,7 @@ namespace Targets::RiscV::Wch
const TargetAddressSpaceDescriptor& addressSpaceDescriptor,
const TargetMemorySegmentDescriptor& memorySegmentDescriptor,
TargetMemoryAddress startAddress,
const TargetMemoryBuffer& buffer
TargetMemoryBufferSpan buffer
) {
/*
* WCH targets have an alias segment that maps to either the program memory segment or the boot program

View File

@@ -23,7 +23,7 @@ namespace Targets::RiscV::Wch
const TargetAddressSpaceDescriptor& addressSpaceDescriptor,
const TargetMemorySegmentDescriptor& memorySegmentDescriptor,
TargetMemoryAddress startAddress,
const TargetMemoryBuffer& buffer
TargetMemoryBufferSpan buffer
) override;
protected:

View File

@@ -198,7 +198,7 @@ namespace Targets
const TargetAddressSpaceDescriptor& addressSpaceDescriptor,
const TargetMemorySegmentDescriptor& memorySegmentDescriptor,
TargetMemoryAddress startAddress,
const TargetMemoryBuffer& buffer
TargetMemoryBufferSpan buffer
) = 0;
/**

View File

@@ -33,7 +33,7 @@ namespace Targets
&& intersectingSegmentIt->second >= (startAddress + bytes - 1);
}
void TargetMemoryCache::insert(TargetMemoryAddress startAddress, const TargetMemoryBuffer& data) {
void TargetMemoryCache::insert(TargetMemoryAddress startAddress, TargetMemoryBufferSpan data) {
const auto startIndex = startAddress - this->memorySegmentDescriptor.addressRange.startAddress;
std::copy(data.begin(), data.end(), this->data.begin() + startIndex);

View File

@@ -39,7 +39,7 @@ namespace Targets
* @param startAddress
* @param data
*/
void insert(TargetMemoryAddress startAddress, const TargetMemoryBuffer& data);
void insert(TargetMemoryAddress startAddress, TargetMemoryBufferSpan data);
/**
* Clears the cache.