Loading TargetMemoryDescriptor for AVR8 targets

This commit is contained in:
Nav
2021-10-09 19:18:27 +01:00
parent e7a30076d0
commit 59fcb9c211
2 changed files with 18 additions and 1 deletions

View File

@@ -127,8 +127,8 @@ TargetDescriptor Avr8Bit::Avr8::getDescriptor() {
auto descriptor = TargetDescriptor();
descriptor.id = this->getHumanReadableId();
descriptor.name = this->getName();
descriptor.ramSize = this->targetParameters.value().ramSize.value_or(0);
descriptor.registerDescriptorsByType = this->targetRegisterDescriptorsByType;
descriptor.memoryDescriptorsByType = this->targetMemoryDescriptorsByType;
std::transform(
this->targetVariantsById.begin(),
@@ -481,6 +481,7 @@ void Avr8::initFromTargetDescriptionFile() {
}
this->loadTargetRegisterDescriptors();
this->loadTargetMemoryDescriptors();
}
void Avr8::loadTargetRegisterDescriptors() {
@@ -552,6 +553,19 @@ void Avr8::loadTargetRegisterDescriptors() {
);
}
void Avr8::loadTargetMemoryDescriptors() {
this->targetMemoryDescriptorsByType.insert(std::pair(
TargetMemoryType::RAM,
TargetMemoryDescriptor(
TargetMemoryType::RAM,
TargetMemoryAddressRange(
this->targetParameters->ramStartAddress.value(),
this->targetParameters->ramSize.value()
)
)
));
}
TargetSignature Avr8::getId() {
if (!this->id.has_value()) {
this->id = this->avr8Interface->getDeviceId();

View File

@@ -124,6 +124,7 @@ namespace Bloom::Targets::Microchip::Avr::Avr8Bit
std::map<std::string, PadDescriptor> padDescriptorsByName;
std::map<int, TargetVariant> targetVariantsById;
std::map<TargetRegisterType, TargetRegisterDescriptors> targetRegisterDescriptorsByType;
std::map<TargetMemoryType, TargetMemoryDescriptor> targetMemoryDescriptorsByType;
/**
* Resolves the appropriate TDF for the AVR8 target and populates this->targetDescriptionFile.
@@ -141,6 +142,8 @@ namespace Bloom::Targets::Microchip::Avr::Avr8Bit
*/
void loadTargetRegisterDescriptors();
void loadTargetMemoryDescriptors();
/**
* Extracts the ID from the target's memory.
*