Used TargetMemoryAddressRange in address space and memory segment descriptors
This commit is contained in:
@@ -19,26 +19,27 @@ namespace Targets
|
|||||||
public:
|
public:
|
||||||
const TargetAddressSpaceDescriptorId id;
|
const TargetAddressSpaceDescriptorId id;
|
||||||
std::string key;
|
std::string key;
|
||||||
TargetMemoryAddress startAddress;
|
TargetMemoryAddressRange addressRange;
|
||||||
TargetMemorySize size;
|
|
||||||
TargetMemoryEndianness endianness;
|
TargetMemoryEndianness endianness;
|
||||||
std::map<std::string, TargetMemorySegmentDescriptor> segmentDescriptorsByKey;
|
std::map<std::string, TargetMemorySegmentDescriptor> segmentDescriptorsByKey;
|
||||||
|
|
||||||
TargetAddressSpaceDescriptor(
|
TargetAddressSpaceDescriptor(
|
||||||
const std::string& key,
|
const std::string& key,
|
||||||
TargetMemoryAddress startAddress,
|
const TargetMemoryAddressRange& addressRange,
|
||||||
TargetMemorySize size,
|
|
||||||
TargetMemoryEndianness endianness,
|
TargetMemoryEndianness endianness,
|
||||||
const std::map<std::string, TargetMemorySegmentDescriptor>& segmentDescriptorsByKey
|
const std::map<std::string, TargetMemorySegmentDescriptor>& segmentDescriptorsByKey
|
||||||
)
|
)
|
||||||
: id(++(TargetAddressSpaceDescriptor::lastAddressSpaceDescriptorId))
|
: id(++(TargetAddressSpaceDescriptor::lastAddressSpaceDescriptorId))
|
||||||
, key(key)
|
, key(key)
|
||||||
, startAddress(startAddress)
|
, addressRange(addressRange)
|
||||||
, size(size)
|
|
||||||
, endianness(endianness)
|
, endianness(endianness)
|
||||||
, segmentDescriptorsByKey(segmentDescriptorsByKey)
|
, segmentDescriptorsByKey(segmentDescriptorsByKey)
|
||||||
{};
|
{};
|
||||||
|
|
||||||
|
TargetMemorySize size() const {
|
||||||
|
return this->addressRange.size();
|
||||||
|
}
|
||||||
|
|
||||||
std::optional<std::reference_wrapper<const TargetMemorySegmentDescriptor>> tryGetMemorySegmentDescriptor(
|
std::optional<std::reference_wrapper<const TargetMemorySegmentDescriptor>> tryGetMemorySegmentDescriptor(
|
||||||
const std::string& key
|
const std::string& key
|
||||||
) const {
|
) const {
|
||||||
|
|||||||
@@ -695,8 +695,10 @@ namespace Targets::TargetDescription
|
|||||||
) {
|
) {
|
||||||
auto output = TargetAddressSpaceDescriptor(
|
auto output = TargetAddressSpaceDescriptor(
|
||||||
addressSpace.key,
|
addressSpace.key,
|
||||||
addressSpace.startAddress,
|
TargetMemoryAddressRange(
|
||||||
addressSpace.size,
|
addressSpace.startAddress,
|
||||||
|
addressSpace.startAddress + addressSpace.size - 1
|
||||||
|
),
|
||||||
addressSpace.endianness.value_or(TargetMemoryEndianness::LITTLE),
|
addressSpace.endianness.value_or(TargetMemoryEndianness::LITTLE),
|
||||||
{}
|
{}
|
||||||
);
|
);
|
||||||
@@ -718,8 +720,10 @@ namespace Targets::TargetDescription
|
|||||||
memorySegment.key,
|
memorySegment.key,
|
||||||
memorySegment.name,
|
memorySegment.name,
|
||||||
memorySegment.type,
|
memorySegment.type,
|
||||||
memorySegment.startAddress,
|
TargetMemoryAddressRange(
|
||||||
memorySegment.size,
|
memorySegment.startAddress,
|
||||||
|
memorySegment.startAddress + memorySegment.size - 1
|
||||||
|
),
|
||||||
memorySegment.access,
|
memorySegment.access,
|
||||||
memorySegment.access,
|
memorySegment.access,
|
||||||
memorySegment.pageSize
|
memorySegment.pageSize
|
||||||
|
|||||||
@@ -14,8 +14,7 @@ namespace Targets
|
|||||||
std::string key;
|
std::string key;
|
||||||
std::string name;
|
std::string name;
|
||||||
TargetMemorySegmentType type;
|
TargetMemorySegmentType type;
|
||||||
TargetMemoryAddress startAddress;
|
TargetMemoryAddressRange addressRange;
|
||||||
TargetMemorySize size;
|
|
||||||
TargetMemoryAccess debugModeAccess;
|
TargetMemoryAccess debugModeAccess;
|
||||||
TargetMemoryAccess programmingModeAccess;
|
TargetMemoryAccess programmingModeAccess;
|
||||||
std::optional<TargetMemorySize> pageSize;
|
std::optional<TargetMemorySize> pageSize;
|
||||||
@@ -24,8 +23,7 @@ namespace Targets
|
|||||||
const std::string& key,
|
const std::string& key,
|
||||||
const std::string& name,
|
const std::string& name,
|
||||||
TargetMemorySegmentType type,
|
TargetMemorySegmentType type,
|
||||||
TargetMemoryAddress startAddress,
|
const TargetMemoryAddressRange& addressRange,
|
||||||
TargetMemorySize size,
|
|
||||||
const TargetMemoryAccess& debugModeAccess,
|
const TargetMemoryAccess& debugModeAccess,
|
||||||
const TargetMemoryAccess& programmingModeAccess,
|
const TargetMemoryAccess& programmingModeAccess,
|
||||||
std::optional<TargetMemorySize> pageSize
|
std::optional<TargetMemorySize> pageSize
|
||||||
@@ -33,11 +31,14 @@ namespace Targets
|
|||||||
: key(key)
|
: key(key)
|
||||||
, name(name)
|
, name(name)
|
||||||
, type(type)
|
, type(type)
|
||||||
, startAddress(startAddress)
|
, addressRange(addressRange)
|
||||||
, size(size)
|
|
||||||
, debugModeAccess(debugModeAccess)
|
, debugModeAccess(debugModeAccess)
|
||||||
, programmingModeAccess(programmingModeAccess)
|
, programmingModeAccess(programmingModeAccess)
|
||||||
, pageSize(pageSize)
|
, pageSize(pageSize)
|
||||||
{};
|
{};
|
||||||
|
|
||||||
|
TargetMemorySize size() const {
|
||||||
|
return this->addressRange.size();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user