This commit is contained in:
Nav
2022-11-16 23:51:07 +00:00
parent 4a9e99f053
commit f2d09641a1
6 changed files with 15 additions and 12 deletions

View File

@@ -26,7 +26,7 @@ Checks: >
-misc-non-private-member-variables-in-classes, -misc-non-private-member-variables-in-classes,
-bugprone-easily-swappable-parameters, -bugprone-easily-swappable-parameters,
# Disabling this until https://github.com/llvm/llvm-project/issues/47384 is fixed. # Disabling this until https://github.com/llvm/llvm-project/issues/47384 is fixed.
-cppcoreguidelines-avoid-non-const-global-variables, -cppcoreguidelines-avoid-non-const-global-variables,
CheckOptions: CheckOptions:

View File

@@ -34,9 +34,10 @@ dedicated thread. See the [TargetController documentation](./src/TargetControlle
src/TargetController/ for more. src/TargetController/ for more.
##### DebugServer ##### DebugServer
The DebugServer exposes an interface to the connected target, for third-party programs such as IDEs. Currently, Bloom The DebugServer exposes an interface to the connected target, for third-party programs such as GDB and IDEs (GDB
only supports one server - the AVR GDB RSP server. With this server, any IDE with GDB RSP support can interface with front-ends). Currently, Bloom only supports one server - the AVR GDB RSP server. With this server, any AVR compatible
Bloom and thus the connected AVR target. The DebugServer runs on a dedicated thread. See the GDB binary (or any IDE with GDB RSP support) can interface with Bloom and thus the connected AVR target. The
DebugServer runs on a dedicated thread. See the
[DebugServer documentation](./src/DebugServer/README.md) and source code in src/DebugServer/ for more. [DebugServer documentation](./src/DebugServer/README.md) and source code in src/DebugServer/ for more.
##### Insight ##### Insight

View File

@@ -30,17 +30,17 @@ namespace Bloom::DebugToolDrivers
void EdbgDevice::init() { void EdbgDevice::init() {
UsbDevice::init(); UsbDevice::init();
auto usbHidInterface = Usb::HidInterface(this->cmsisHidInterfaceNumber, this->vendorId, this->productId); auto cmsisHidInterface = Usb::HidInterface(this->cmsisHidInterfaceNumber, this->vendorId, this->productId);
this->detachKernelDriverFromInterface(usbHidInterface.interfaceNumber); this->detachKernelDriverFromInterface(cmsisHidInterface.interfaceNumber);
if (this->configurationIndex.has_value()) { if (this->configurationIndex.has_value()) {
this->setConfiguration(this->configurationIndex.value()); this->setConfiguration(this->configurationIndex.value());
} }
usbHidInterface.init(); cmsisHidInterface.init();
this->edbgInterface = std::make_unique<EdbgInterface>(std::move(usbHidInterface)); this->edbgInterface = std::make_unique<EdbgInterface>(std::move(cmsisHidInterface));
/* /*
* The EDBG/CMSIS-DAP interface doesn't operate properly when sending commands too quickly. * The EDBG/CMSIS-DAP interface doesn't operate properly when sending commands too quickly.

View File

@@ -8,8 +8,8 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg
{ {
using namespace Bloom::Exceptions; using namespace Bloom::Exceptions;
EdbgInterface::EdbgInterface(Usb::HidInterface&& usbHidInterface) EdbgInterface::EdbgInterface(Usb::HidInterface&& cmsisHidInterface)
: CmsisDapInterface(std::move(usbHidInterface)) : CmsisDapInterface(std::move(cmsisHidInterface))
{} {}
Protocols::CmsisDap::Response EdbgInterface::sendAvrCommandsAndWaitForResponse( Protocols::CmsisDap::Response EdbgInterface::sendAvrCommandsAndWaitForResponse(

View File

@@ -24,7 +24,7 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg
class EdbgInterface: public CmsisDapInterface class EdbgInterface: public CmsisDapInterface
{ {
public: public:
explicit EdbgInterface(Usb::HidInterface&& usbHidInterface); explicit EdbgInterface(Usb::HidInterface&& cmsisHidInterface);
/** /**
* Send an AvrCommandFrame to the debug tool and wait for a response. * Send an AvrCommandFrame to the debug tool and wait for a response.

View File

@@ -6,7 +6,9 @@
namespace Bloom::Targets::Microchip::Avr::Avr8Bit namespace Bloom::Targets::Microchip::Avr::Avr8Bit
{ {
Avr8TargetConfig::Avr8TargetConfig(const TargetConfig& targetConfig): TargetConfig(targetConfig) { Avr8TargetConfig::Avr8TargetConfig(const TargetConfig& targetConfig)
: TargetConfig(targetConfig)
{
using Bloom::Exceptions::InvalidConfig; using Bloom::Exceptions::InvalidConfig;
const auto& targetNode = targetConfig.targetNode; const auto& targetNode = targetConfig.targetNode;