mikrocontroller.net

Forum: PC-Programmierung QT QProcess Jlink gdbserver


Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin gerade ein wenig ratlos. :-o

Ich will aus Qt den gdbserver starten:

const char *Str1 = Command.toLocal8Bit();
const char *Str2 = Param.toLocal8Bit();

printf( "Programm: [%s]\n", Str1);
printf( "Parameter: [%s]\n", Str2);

process.start(Command, QStringList() << Param);

Das führt zu folgender interessanten Fehlermeldung:

Programm: [/usr/bin/JLinkGDBServer]
Parameter: [-if SWD -device EFM32GG230F1024]
SEGGER J-Link GDB Server V6.20h Command Line Version

JLinkARM.dll V6.20h (DLL compiled Oct 27 2017 16:21:36)

WARNING: Unknown command line parameter -if SWD -device EFM32GG230F1024 
found.
Command line: -if SWD -device EFM32GG230F1024
[..]
Could not connect to target.
Please check power, connection and settings.

Mit anderen Worten der Server wird gestartet, beendet sich aber sofort 
wieder weil er behauptet die falschen Parameter bekommen zu haben. 
Allerdings die Parameter die er als falsch ausgibt sind richtig. Ich 
kann die so wie er sie ausgibt mit der Maus in ein anderes 
Terminalfenster kopieren und er verbindet sich korrekt!

Hat da jemand eine Erklaerung fuer?

Olaf

Autor: Clemens W. (daxmus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht solltest Du wirklich eine Liste als Parameter übergeben. 
Immerhin erwartet es QProcess so. Nicht das die Parameter in " gesetzt 
werden. AFAIK hat QProcess doch eine Funktion, um den kompletten String 
auszugeben, mit dem das Programm aufgerufen wird.

Autor: Schwarzseher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du übergibst nur einen Parameter: "-if SWD -device EFM32GG230F1024"

gdb erwartet 4:
"-if"
"SWD"
"-device"
"EFM32GG230F1024"

--> einzeln in die StringList schieben.

Autor: Lutz B. (lutzbroszio)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Überprüfen mal, ob dein QStringList wirklich mehrere Elemente enthält 
und nicht nur ein Element mit beiden Parametern.

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Du übergibst nur einen Parameter: "-if SWD -device EFM32GG230F1024"

Argh! Ich haette nicht gedacht das dies so ein Problem sein koennte,
aber wirklich damit....

QStringList ParameterListe = Param.split(' ');

....funktioniert es dann. :-)

Olaf

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.