Fixed AVR CMSIS command packet splitting bug
This commit is contained in:
@@ -6,13 +6,13 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr
|
|||||||
std::vector<unsigned char> data;
|
std::vector<unsigned char> data;
|
||||||
auto commandPacket = this->getCommandPacket();
|
auto commandPacket = this->getCommandPacket();
|
||||||
std::size_t commandPacketSize = commandPacket.size();
|
std::size_t commandPacketSize = commandPacket.size();
|
||||||
data.resize(3 + commandPacketSize);
|
data.reserve(3 + commandPacketSize);
|
||||||
// FragmentInfo byte
|
// FragmentInfo byte
|
||||||
data[0] = static_cast<unsigned char>((this->getFragmentNumber() << 4) | this->getFragmentCount());
|
data.emplace_back(static_cast<unsigned char>((this->getFragmentNumber() << 4) | this->getFragmentCount()));
|
||||||
|
|
||||||
// Size byte
|
// Size byte
|
||||||
data[1] = static_cast<unsigned char>(commandPacketSize >> 8);
|
data.emplace_back(static_cast<unsigned char>(commandPacketSize >> 8));
|
||||||
data[2] = static_cast<unsigned char>(commandPacketSize & 0xFF);
|
data.emplace_back(static_cast<unsigned char>(commandPacketSize & 0xFF));
|
||||||
|
|
||||||
if (commandPacketSize > 0) {
|
if (commandPacketSize > 0) {
|
||||||
data.insert(data.begin() + 3, commandPacket.begin(), commandPacket.end());
|
data.insert(data.begin() + 3, commandPacket.begin(), commandPacket.end());
|
||||||
|
|||||||
Reference in New Issue
Block a user