KDevelop + Arduino.mk

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
detix
Beiträge: 1743
Registriert: 07.02.2007 18:51:28
Wohnort: MK

KDevelop + Arduino.mk

Beitrag von detix » 16.12.2012 10:49:42

Anleitung aus http://playground.arduino.cc/Code/Kdevelop
Mit ein paar Änderungen funktioniert das für wheezy:
Endung pde durch ino ersetzen (WProgram.h gibts hier nicht)
Arduino.mk durch /usr/share/arduino/Arduino.mk ersetzen
Kompilieren geht, aber irgendwie hängt der Upload am stty-Befehl im Abschnitt 'reset':

Code: Alles auswählen

for STTYF in 'stty -F' 'stty --file' 'stty -f' 'stty <' ; \
  do $$STTYF /dev/tty >/dev/null 2>&1 && break ; \
  ...
der Rückgabewert geht einfach verloren und das '&& break' kommt nie zur Funktion,
so wird 'stty <' benutzt und das endet natürlich mit Fehler 2, das Programm wird niemals übertragen.
entferne ich die beiden Befehle 'stty -f' 'stty <' aus der for-Zeile läufts problemlos!
Meine Frage ist also:
Wie komme ich bei Debiankdevelop an den Rückgabewert des Befehls '$$STTYF /dev/tty >/dev/null 2>&1'?
Gruß an alle Debianer, und immer daran denken:
Macht ohne Haftung funktioniert nicht!

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: KDevelop + Arduino.mk

Beitrag von Cae » 16.12.2012 11:27:30

Mir fehlt da ein bisschen Kontext um den Ausschnitt herum, aber verkehrt duerfte das $$ sein, was zur PID der ausfuehrenden Shell expandiert, woran dann stty ... angehaengt wird und versucht wird, das Ganze auszufuehren. Es wird aber kein Programm 84392stty geben, daher wird das break nie erreicht. Der Fix waere also $$ -> $.

Der Code ist offensichtlich ein Shellskript, das verschiedene Syntaxen von stty durchprobiert, immer mit /dev/tty als Argument, und beim ersten erfolgreichen Treffer aufhoert, zu probieren.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Benutzeravatar
detix
Beiträge: 1743
Registriert: 07.02.2007 18:51:28
Wohnort: MK

Re: KDevelop + Arduino.mk

Beitrag von detix » 16.12.2012 12:10:31

Danke dir schon mal für eine Antwort, Cae
In KDevelop sieht die Ausgabe so aus:

Code: Alles auswählen

Running external script: /usr/bin/make TARGET=test all upload
make: Für das Ziel »all« ist nichts zu tun.
for STTYF in 'stty -F' 'stty --file' 'stty -f' 'stty <' ; \
      do $STTYF /dev/tty >/dev/null 2>&1 && break ; \
    done ; \
    $STTYF /dev/ttyUSB0  hupcl ; \
    (sleep 0.1 2>/dev/null || sleep 1) ; \
    $STTYF /dev/ttyUSB0 -hupcl 
stty: Standardeingabe: Das Argument ist ungültig
stty: Standardeingabe: Das Argument ist ungültig
make: *** [reset] Fehler 1
*** Exited with return code: 2 ***
$$STTYF wird schon mal als $STTYF (stty -F...) in der shell ausgeführt, so weit so richtig,
da es aber nie einen gescheiten Rückgabewert gibt, gilt der letzte Versuch,
also 'stty <' der hier nicht geht und woran die folgenden Befehle scheitern:

Code: Alles auswählen

$STTYF /dev/ttyUSB0  hupcl
$STTYF /dev/ttyUSB0 -hupcl
So sehe ich das zumindest...
entferne ich die üblen Befehle 'stty -f' 'stty <' aus der for-Schleife funktionierts:

Code: Alles auswählen

Running external script: /usr/bin/make TARGET=test all upload
make: Für das Ziel »all« ist nichts zu tun.
for STTYF in 'stty -F' 'stty --file' ; \
      do $STTYF /dev/tty >/dev/null 2>&1 && break ; \
    done ; \
    $STTYF /dev/ttyUSB0  hupcl ; \
    (sleep 0.1 2>/dev/null || sleep 1) ; \
    $STTYF /dev/ttyUSB0 -hupcl
/usr/bin/avrdude -q -V -p atmega168 -C /etc/avrdude.conf -c arduino -b 19200 -P /dev/ttyUSB0 -D \
      -U flash:w:build-cli/test.hex:i

avrdude: AVR device initialized and ready to accept instructions
avrdude: Device signature = 0x1e9406
avrdude: reading input file "build-cli/test.hex"
avrdude: writing flash (2650 bytes):
avrdude: 2650 bytes of flash written

avrdude done.  Thank you.

*** Exited normally ***
Entweder steckt der Wurm in der Arduino.mk oder in KDevelop drin...
Gruß an alle Debianer, und immer daran denken:
Macht ohne Haftung funktioniert nicht!

Antworten