From ea11a233fe1cd63bc8549ea0fed894169bf097c3 Mon Sep 17 00:00:00 2001 From: Tim Sander Date: Thu, 5 Jun 2014 11:24:30 +0200 Subject: [PATCH] baremetal: add openocd pipelining support Change-Id: Idcfdd42f741319f81cc378687451693facdb955f Reviewed-by: hjk --- .../baremetaldeviceconfigurationwizardsetuppage.ui | 2 +- src/plugins/baremetal/baremetalruncontrolfactory.cpp | 7 +++++-- src/plugins/debugger/gdb/remotegdbserveradapter.cpp | 3 ++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/plugins/baremetal/baremetaldeviceconfigurationwizardsetuppage.ui b/src/plugins/baremetal/baremetaldeviceconfigurationwizardsetuppage.ui index 621631e2cc4..be6c1dd1203 100644 --- a/src/plugins/baremetal/baremetaldeviceconfigurationwizardsetuppage.ui +++ b/src/plugins/baremetal/baremetaldeviceconfigurationwizardsetuppage.ui @@ -30,7 +30,7 @@ - localhost + |openocd -c "gdb_port pipe" -c "log_output openocd.log;" -f board/stm3241g_eval_stlink.cfg diff --git a/src/plugins/baremetal/baremetalruncontrolfactory.cpp b/src/plugins/baremetal/baremetalruncontrolfactory.cpp index f8d54e5aded..04cd5b0b787 100644 --- a/src/plugins/baremetal/baremetalruncontrolfactory.cpp +++ b/src/plugins/baremetal/baremetalruncontrolfactory.cpp @@ -98,7 +98,10 @@ DebuggerStartParameters BareMetalRunControlFactory::startParameters(const BareMe params.projectBuildDirectory = buildConfig->buildDirectory().toString(); params.projectSourceFiles = project->files(Project::ExcludeGeneratedFiles); } - params.remoteChannel = device->sshParameters().host + QLatin1String(":") + QString::number(device->sshParameters().port); + if (device->sshParameters().host.startsWith(QLatin1Char('|'))) //gdb pipe mode enabled + params.remoteChannel = device->sshParameters().host; + else + params.remoteChannel = device->sshParameters().host + QLatin1String(":") + QString::number(device->sshParameters().port); params.remoteSetupNeeded = false; // qml stuff, not needed params.commandsAfterConnect = device->gdbInitCommands().toLatin1(); BuildConfiguration *bc = target->activeBuildConfiguration(); @@ -109,7 +112,7 @@ DebuggerStartParameters BareMetalRunControlFactory::startParameters(const BareMe if (ds) { if (!params.commandsAfterConnect.endsWith("\n")) params.commandsAfterConnect.append("\n"); - params.commandsAfterConnect.append(ds->gdbCommands().toLocal8Bit()); + params.commandsAfterConnect.append(ds->gdbCommands().toLatin1()); } } } diff --git a/src/plugins/debugger/gdb/remotegdbserveradapter.cpp b/src/plugins/debugger/gdb/remotegdbserveradapter.cpp index fda04137c9e..c031ab132c1 100644 --- a/src/plugins/debugger/gdb/remotegdbserveradapter.cpp +++ b/src/plugins/debugger/gdb/remotegdbserveradapter.cpp @@ -251,7 +251,8 @@ void GdbRemoteServerEngine::callTargetRemote() // Don't touch channels with explicitly set protocols. if (!channel.startsWith("tcp:") && !channel.startsWith("udp:") - && !channel.startsWith("file:") && channel.contains(':')) + && !channel.startsWith("file:") && channel.contains(':') + && !channel.startsWith('|')) { // "Fix" the IPv6 case with host names without '['...']' if (!channel.startsWith('[') && channel.count(':') >= 2) {