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:
@@ -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");
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -235,7 +235,7 @@ namespace Targets::RiscV
|
||||
const TargetAddressSpaceDescriptor& addressSpaceDescriptor,
|
||||
const TargetMemorySegmentDescriptor& memorySegmentDescriptor,
|
||||
TargetMemoryAddress startAddress,
|
||||
const TargetMemoryBuffer& buffer
|
||||
TargetMemoryBufferSpan buffer
|
||||
) {
|
||||
assert(!buffer.empty());
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -23,7 +23,7 @@ namespace Targets::RiscV::Wch
|
||||
const TargetAddressSpaceDescriptor& addressSpaceDescriptor,
|
||||
const TargetMemorySegmentDescriptor& memorySegmentDescriptor,
|
||||
TargetMemoryAddress startAddress,
|
||||
const TargetMemoryBuffer& buffer
|
||||
TargetMemoryBufferSpan buffer
|
||||
) override;
|
||||
|
||||
protected:
|
||||
|
||||
@@ -198,7 +198,7 @@ namespace Targets
|
||||
const TargetAddressSpaceDescriptor& addressSpaceDescriptor,
|
||||
const TargetMemorySegmentDescriptor& memorySegmentDescriptor,
|
||||
TargetMemoryAddress startAddress,
|
||||
const TargetMemoryBuffer& buffer
|
||||
TargetMemoryBufferSpan buffer
|
||||
) = 0;
|
||||
|
||||
/**
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user