diff --git a/src/DebugServer/Gdb/AvrGdb/AvrGdbTargetDescriptor.cpp b/src/DebugServer/Gdb/AvrGdb/AvrGdbTargetDescriptor.cpp index 5d935872..1882fb52 100644 --- a/src/DebugServer/Gdb/AvrGdb/AvrGdbTargetDescriptor.cpp +++ b/src/DebugServer/Gdb/AvrGdb/AvrGdbTargetDescriptor.cpp @@ -18,7 +18,7 @@ namespace DebugServer::Gdb::AvrGdb , eepromMemorySegmentDescriptor(this->eepromAddressSpaceDescriptor.getMemorySegmentDescriptor("internal_eeprom")) , sramMemorySegmentDescriptor(this->sramAddressSpaceDescriptor.getMemorySegmentDescriptor("internal_ram")) , gpRegistersMemorySegmentDescriptor(this->gpRegistersAddressSpaceDescriptor.getMemorySegmentDescriptor("gp_registers")) - , cpuGpPeripheralDescriptor(targetDescriptor.getPeripheralDescriptor("cpu_gpr")) + , cpuGpPeripheralDescriptor(targetDescriptor.getPeripheralDescriptor("cpu")) , cpuGpRegisterGroupDescriptor(this->cpuGpPeripheralDescriptor.getRegisterGroupDescriptor("gpr")) { /* diff --git a/src/Targets/Microchip/AVR8/Avr8.cpp b/src/Targets/Microchip/AVR8/Avr8.cpp index 3bb7d5e4..8f125882 100644 --- a/src/Targets/Microchip/AVR8/Avr8.cpp +++ b/src/Targets/Microchip/AVR8/Avr8.cpp @@ -280,24 +280,15 @@ namespace Targets::Microchip::Avr8 const auto& registerFileAddressSpace = this->targetDescriptionFile.getRegisterFileAddressSpace(); const auto& registerFileMemorySegment = registerFileAddressSpace.getMemorySegment("gp_registers"); - auto& gpPeripheral = descriptor.peripheralDescriptorsByKey.emplace( - "cpu_gpr", - TargetPeripheralDescriptor{ - "cpu_gpr", - "GPRs", - "CPU General Purpose Registers", - {}, - {} - } - ).first->second; + auto& cpuPeripheral = descriptor.getPeripheralDescriptor("cpu"); - auto& gpRegisterGroup = gpPeripheral.registerGroupDescriptorsByKey.emplace( + auto& gpRegisterGroup = cpuPeripheral.registerGroupDescriptorsByKey.emplace( "gpr", TargetRegisterGroupDescriptor{ "gpr", "gpr", - "CPU General Purpose", - gpPeripheral.key, + "GPR", + cpuPeripheral.key, registerFileAddressSpace.key, std::nullopt, {}, @@ -313,7 +304,7 @@ namespace Targets::Microchip::Avr8 key, "R" + std::to_string(i), gpRegisterGroup.absoluteKey, - gpPeripheral.key, + cpuPeripheral.key, registerFileAddressSpace.key, registerFileMemorySegment.startAddress + i, 1, diff --git a/src/Targets/TargetDescriptor.cpp b/src/Targets/TargetDescriptor.cpp index 952acf24..346c3bab 100644 --- a/src/Targets/TargetDescriptor.cpp +++ b/src/Targets/TargetDescriptor.cpp @@ -128,6 +128,12 @@ namespace Targets return descriptor->get(); } + TargetPeripheralDescriptor& TargetDescriptor::getPeripheralDescriptor(const std::string& key) { + return const_cast( + const_cast(this)->getPeripheralDescriptor(key) + ); + } + std::optional< std::reference_wrapper > TargetDescriptor::tryGetPadDescriptor(const std::string& key) const { diff --git a/src/Targets/TargetDescriptor.hpp b/src/Targets/TargetDescriptor.hpp index 1438b233..c2e6c681 100644 --- a/src/Targets/TargetDescriptor.hpp +++ b/src/Targets/TargetDescriptor.hpp @@ -87,6 +87,7 @@ namespace Targets ) const; const TargetPeripheralDescriptor& getPeripheralDescriptor(const std::string& key) const; + TargetPeripheralDescriptor& getPeripheralDescriptor(const std::string& key); std::optional> tryGetPadDescriptor( const std::string& key