#pragma once #include #include #include #include "src/Targets/RiscV/RiscV.hpp" #include "TargetDescriptionFile.hpp" namespace Targets::RiscV::Wch { class WchRiscV: public ::Targets::RiscV::RiscV { public: WchRiscV(const TargetConfig& targetConfig, TargetDescriptionFile&& targetDescriptionFile); void activate() override; void postActivate() override; TargetDescriptor targetDescriptor() override; void writeMemory( const TargetAddressSpaceDescriptor& addressSpaceDescriptor, const TargetMemorySegmentDescriptor& memorySegmentDescriptor, TargetMemoryAddress startAddress, const TargetMemoryBuffer& buffer ) override; protected: TargetDescriptionFile targetDescriptionFile; std::optional> variant = std::nullopt; const TargetMemorySegmentDescriptor& programMemorySegmentDescriptor; const TargetMemorySegmentDescriptor& mappedProgramMemorySegmentDescriptor; }; }