RISC-V general purpose register descriptors

This commit is contained in:
Nav
2023-11-24 15:19:52 +00:00
parent fad19ce114
commit 73b1328f9f
4 changed files with 92 additions and 3 deletions

View File

@@ -2,6 +2,7 @@
#include <cstdint>
#include <set>
#include <map>
#include "src/Targets/Target.hpp"
#include "src/DebugToolDrivers/DebugTool.hpp"
@@ -18,6 +19,8 @@
#include "src/Targets/RiscV/DebugModule/Registers/AbstractControlStatusRegister.hpp"
#include "src/Targets/RiscV/DebugModule/Registers/AbstractCommandRegister.hpp"
#include "RiscVRegisterDescriptor.hpp"
namespace Targets::RiscV
{
class RiscV: public Target
@@ -95,12 +98,18 @@ namespace Targets::RiscV
bool programmingModeEnabled() override;
protected:
DebugToolDrivers::TargetInterfaces::RiscV::RiscVDebugInterface* riscVDebugInterface = nullptr;
std::string name;
std::map<TargetRegisterDescriptorId, RiscVRegisterDescriptor> registerDescriptorsById;
RiscVRegisterDescriptor stackPointerRegisterDescriptor;
DebugToolDrivers::TargetInterfaces::RiscV::RiscVDebugInterface* riscVDebugInterface = nullptr;
std::set<DebugModule::HartIndex> hartIndices;
DebugModule::HartIndex selectedHartIndex = 0;
void loadRegisterDescriptors();
std::set<DebugModule::HartIndex> discoverHartIndices();
DebugModule::Registers::ControlRegister readDebugModuleControlRegister();