EDBG AVR response frames for the AVRISP sub-protocol.
This commit is contained in:
@@ -103,6 +103,7 @@ add_executable(Bloom
|
||||
src/DebugToolDrivers/Protocols/CMSIS-DAP/VendorSpecific/EDBG/AVR/ResponseFrames/AVR8Generic/Avr8GenericResponseFrame.cpp
|
||||
src/DebugToolDrivers/Protocols/CMSIS-DAP/VendorSpecific/EDBG/AVR/ResponseFrames/Discovery/DiscoveryResponseFrame.cpp
|
||||
src/DebugToolDrivers/Protocols/CMSIS-DAP/VendorSpecific/EDBG/AVR/ResponseFrames/HouseKeeping/HouseKeepingResponseFrame.cpp
|
||||
src/DebugToolDrivers/Protocols/CMSIS-DAP/VendorSpecific/EDBG/AVR/ResponseFrames/AVRISP/AvrIspResponseFrame.cpp
|
||||
src/DebugToolDrivers/Protocols/CMSIS-DAP/VendorSpecific/EDBG/AVR/AvrEvent.cpp
|
||||
src/DebugToolDrivers/Protocols/CMSIS-DAP/VendorSpecific/EDBG/AVR/Events/AVR8Generic/BreakEvent.cpp
|
||||
src/DebugToolDrivers/Protocols/CMSIS-DAP/CmsisDapInterface.cpp
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
#include "AvrIspResponseFrame.hpp"
|
||||
|
||||
#include "src/Exceptions/Exception.hpp"
|
||||
|
||||
namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr::ResponseFrames::AvrIsp
|
||||
{
|
||||
using namespace Bloom::Exceptions;
|
||||
|
||||
StatusCode AvrIspResponseFrame::getStatusCode() {
|
||||
const auto& payload = this->getPayload();
|
||||
|
||||
if (payload.size() < 2) {
|
||||
throw Exception("Status code missing from AVRISP response frame payload.");
|
||||
}
|
||||
|
||||
return static_cast<StatusCode>(payload[1]);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
#pragma once
|
||||
|
||||
#include "src/DebugToolDrivers/Protocols/CMSIS-DAP/VendorSpecific/EDBG/AVR/ResponseFrames/AvrResponseFrame.hpp"
|
||||
|
||||
namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr::ResponseFrames::AvrIsp
|
||||
{
|
||||
enum class StatusCode: unsigned char
|
||||
{
|
||||
OK = 0x00,
|
||||
TIMEOUT = 0x80,
|
||||
FAILED = 0xC0,
|
||||
};
|
||||
|
||||
class AvrIspResponseFrame: public AvrResponseFrame
|
||||
{
|
||||
public:
|
||||
AvrIspResponseFrame() = default;
|
||||
explicit AvrIspResponseFrame(const std::vector<AvrResponse>& avrResponses)
|
||||
: AvrResponseFrame(avrResponses) {}
|
||||
|
||||
/**
|
||||
* Extracts the status code from the response frame payload.
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
[[nodiscard]] StatusCode getStatusCode();
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user