From 52a9b27519fe3bc0891ea282bd9650267e131f83 Mon Sep 17 00:00:00 2001 From: Nav Date: Sun, 17 Oct 2021 20:39:10 +0100 Subject: [PATCH] Insight worker task for reading target memory --- CMakeLists.txt | 6 ++-- .../InsightWorker/Tasks/ReadTargetMemory.cpp | 9 ++++++ .../InsightWorker/Tasks/ReadTargetMemory.hpp | 30 +++++++++++++++++++ 3 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 src/Insight/InsightWorker/Tasks/ReadTargetMemory.cpp create mode 100644 src/Insight/InsightWorker/Tasks/ReadTargetMemory.hpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 48b6fecc..2fbf09bf 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -136,6 +136,10 @@ add_executable(Bloom src/Insight/InsightWorker/Tasks/WriteTargetRegister.cpp src/Insight/InsightWorker/Tasks/RefreshTargetPinStates.cpp src/Insight/InsightWorker/Tasks/SetTargetPinState.cpp + src/Insight/InsightWorker/Tasks/ReadTargetMemory.cpp + + # Error dialogue window + src/Insight/UserInterfaces/InsightWindow/Widgets/ErrorDialogue/ErrorDialogue.cpp # Target package widgets src/Insight/UserInterfaces/InsightWindow/Widgets/TargetWidgets/TargetPackageWidgetContainer.cpp @@ -167,8 +171,6 @@ add_executable(Bloom src/Insight/UserInterfaces/InsightWindow/Widgets/TargetRegisterInspector/BitsetWidget/BitWidget.cpp src/Insight/UserInterfaces/InsightWindow/Widgets/TargetRegisterInspector/BitsetWidget/BitBodyWidget.cpp - # Error dialogue window - src/Insight/UserInterfaces/InsightWindow/Widgets/ErrorDialogue/ErrorDialogue.cpp ) set_target_properties(Bloom PROPERTIES OUTPUT_NAME bloom) diff --git a/src/Insight/InsightWorker/Tasks/ReadTargetMemory.cpp b/src/Insight/InsightWorker/Tasks/ReadTargetMemory.cpp new file mode 100644 index 00000000..c45d2d50 --- /dev/null +++ b/src/Insight/InsightWorker/Tasks/ReadTargetMemory.cpp @@ -0,0 +1,9 @@ +#include "ReadTargetMemory.hpp" + +using namespace Bloom; + +void ReadTargetMemory::run(TargetControllerConsole& targetControllerConsole) { + emit this->targetMemoryRead( + targetControllerConsole.readMemory(this->memoryType, this->startAddress, this->size) + ); +} diff --git a/src/Insight/InsightWorker/Tasks/ReadTargetMemory.hpp b/src/Insight/InsightWorker/Tasks/ReadTargetMemory.hpp new file mode 100644 index 00000000..0bb11a93 --- /dev/null +++ b/src/Insight/InsightWorker/Tasks/ReadTargetMemory.hpp @@ -0,0 +1,30 @@ +#pragma once + +#include + +#include "InsightWorkerTask.hpp" + +#include "src/Targets/TargetMemory.hpp" + +namespace Bloom +{ + class ReadTargetMemory: public InsightWorkerTask + { + Q_OBJECT + + public: + ReadTargetMemory(Targets::TargetMemoryType memoryType, std::uint32_t startAddress, std::uint32_t size): + InsightWorkerTask(), memoryType(memoryType), startAddress(startAddress), size(size) {} + + signals: + void targetMemoryRead(Targets::TargetMemoryBuffer buffer); + + protected: + void run(TargetControllerConsole& targetControllerConsole) override; + + private: + Targets::TargetMemoryType memoryType; + std::uint32_t startAddress; + std::uint32_t size; + }; +}