Made the EDBG CMSIS-DAP command delay optional for all debug tools, and disabled it by default.

The command delay was really choking Bloom's EDBG driver, causing a very noticeable drag on Bloom's performance. It's much faster with the command delay disabled.
There was a good reason for why I introduced this some time ago. Without it, some EDBG debug tools were misbehaving - I remember that for certain. But now, I cannot seem to reproduce these issues. Very odd.
If the issues do reappear, I may have to enable the command delay by default, again, for some debug tools.
For now, if any users experience issues, I'll just suggest they manually enable the command delay via their project config.
Also, I'm not going to document this new config option, as I would prefer the user to approach me if they experience issues as a result of this, so that I'll know if it needs revisiting.
This commit is contained in:
Nav
2024-10-27 00:25:42 +01:00
parent 4160d4259a
commit 623743995b
25 changed files with 136 additions and 43 deletions

View File

@@ -315,66 +315,69 @@ namespace TargetController
std::string,
std::function<std::unique_ptr<DebugTool>()>
> TargetControllerComponent::getSupportedDebugTools() {
using namespace DebugToolDrivers::Microchip;
using namespace DebugToolDrivers::Wch;
// The debug tool names in this mapping should always be lower-case.
return std::map<std::string, std::function<std::unique_ptr<DebugTool>()>> {
{
"atmel-ice",
[] {
return std::make_unique<DebugToolDrivers::Microchip::AtmelIce>();
[this] {
return std::make_unique<AtmelIce>(this->environmentConfig.debugToolConfig);
}
},
{
"power-debugger",
[] {
return std::make_unique<DebugToolDrivers::Microchip::PowerDebugger>();
[this] {
return std::make_unique<PowerDebugger>(this->environmentConfig.debugToolConfig);
}
},
{
"snap",
[] {
return std::make_unique<DebugToolDrivers::Microchip::MplabSnap>();
[this] {
return std::make_unique<MplabSnap>(this->environmentConfig.debugToolConfig);
}
},
{
"pickit-4",
[] {
return std::make_unique<DebugToolDrivers::Microchip::MplabPickit4>();
[this] {
return std::make_unique<MplabPickit4>(this->environmentConfig.debugToolConfig);
}
},
{
"xplained-pro",
[] {
return std::make_unique<DebugToolDrivers::Microchip::XplainedPro>();
[this] {
return std::make_unique<XplainedPro>(this->environmentConfig.debugToolConfig);
}
},
{
"xplained-mini",
[] {
return std::make_unique<DebugToolDrivers::Microchip::XplainedMini>();
[this] {
return std::make_unique<XplainedMini>(this->environmentConfig.debugToolConfig);
}
},
{
"xplained-nano",
[] {
return std::make_unique<DebugToolDrivers::Microchip::XplainedNano>();
[this] {
return std::make_unique<XplainedNano>(this->environmentConfig.debugToolConfig);
}
},
{
"curiosity-nano",
[] {
return std::make_unique<DebugToolDrivers::Microchip::CuriosityNano>();
[this] {
return std::make_unique<CuriosityNano>(this->environmentConfig.debugToolConfig);
}
},
{
"jtagice3",
[] {
return std::make_unique<DebugToolDrivers::Microchip::JtagIce3>();
[this] {
return std::make_unique<JtagIce3>(this->environmentConfig.debugToolConfig);
}
},
{
"wch-link-e",
[this] {
return std::make_unique<DebugToolDrivers::Wch::WchLinkE>(this->environmentConfig.debugToolConfig);
return std::make_unique<WchLinkE>(this->environmentConfig.debugToolConfig);
}
},
};