Improved handling of GDB flash memory write attempt
This commit is contained in:
@@ -219,8 +219,17 @@ namespace Bloom::DebugServers::Gdb
|
|||||||
Logger::debug("Handling WriteMemory packet");
|
Logger::debug("Handling WriteMemory packet");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
auto memoryType = this->getMemoryTypeFromGdbAddress(packet.startAddress);
|
const auto memoryType = this->getMemoryTypeFromGdbAddress(packet.startAddress);
|
||||||
auto startAddress = this->removeMemoryTypeIndicatorFromGdbAddress(packet.startAddress);
|
|
||||||
|
if (memoryType == Targets::TargetMemoryType::FLASH) {
|
||||||
|
Logger::error(
|
||||||
|
"GDB client requested a flash memory write - This is not currently supported by Bloom."
|
||||||
|
);
|
||||||
|
this->clientConnection->writePacket(ResponsePacket({'E', '0', '1'}));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const auto startAddress = this->removeMemoryTypeIndicatorFromGdbAddress(packet.startAddress);
|
||||||
this->targetControllerConsole.writeMemory(memoryType, startAddress, packet.buffer);
|
this->targetControllerConsole.writeMemory(memoryType, startAddress, packet.buffer);
|
||||||
|
|
||||||
this->clientConnection->writePacket(ResponsePacket({'O', 'K'}));
|
this->clientConnection->writePacket(ResponsePacket({'O', 'K'}));
|
||||||
|
|||||||
Reference in New Issue
Block a user