Forum: Mikrocontroller und Digitale Elektronik avrdude unter Linux automatisieren?


von Michael (Gast)


Lesenswert?

Weiss jemand ob es eine Möglichkeit gibt avrdude dahingehend zu 
automatisieren dass es nur einmal ausgeführt wird und dann ein 
controller nach dem anderen flasht. Also quasi einmal starten und dann 
nur noch die controller am avrdragon tauschen....

Das Ganze unter Linux.

Danke schonmal für die Antworten.

von Cyblord -. (cyblord)


Lesenswert?

Einfach ein Skript welches auf Tasteneingabe wartet und dann wieder von 
vorne anfängt? Für Linux kann ich es dir leider aus dem Kopf nicht 
sagen.
Bei Windows Batch verwendet man PAUSE für das Warten auf die Taste und 
dann ein GOTO zum Sprung an den Anfang.

von hp-freund (Gast)


Lesenswert?

Wenn Du mit der konsole arbeitest und 2 Tastendrücke nicht zu viel sind:
die ganz normale linux history Funktion. Pfeiltaste nach oben + Enter.

von Michael (Gast)


Lesenswert?

Oh hatte vergessen was zu erwähnen
Es sollen pro Vorgang eine hex geflasht und im anschluss, wenn das 
flashen erfolgreich war, die lockbits gesetzt werden. Ich müsste also 
irgendwie an die errorcodes vom avrdude kommen... aber wie ?

von Cyblord -. (cyblord)


Lesenswert?

Michael schrieb:
> Oh hatte vergessen was zu erwähnen
> Es sollen pro Vorgang eine hex geflasht und im anschluss, wenn das
> flashen erfolgreich war, die lockbits gesetzt werden. Ich müsste also
> irgendwie an die errorcodes vom avrdude kommen... aber wie ?

lockbits und fuses kann avrdude direkt mitflashen. Da muss kein weiterer 
Aufruf erfolgen.

von hp-freund (Gast)


Lesenswert?

&&

von Michael (Gast)


Lesenswert?

@Cyblord

in welcher Reihenfolge werden denn die Speicherbereiche geflasht? So wie 
die Parameter übergeben wurden?  Denn bringt mir ja nichts wenn erst die 
Lockbits geschrieben werden und dann das hex. Die Lockbits werden doch 
beim Flashen wieder zurückgesetzt, oder?

Und bezüglich der Verknüpfung mit &&:
Werden auf jeden fall beide Befehle ausgeführt oder nur wenn der erste 
erfolgreich war?

von Stefan F. (Gast)


Lesenswert?

> Denn bringt mir ja nichts wenn erst die Lockbits geschrieben werden

Soweit ich weiss, wirken alle Fuse Bits erst nach dem nächsten Reset. 
Dann müste Reihenfolge egal sein.

Anstatt dumm zu fragen kannst du es ja einfach mal ausprobieren.

Kommandozeilen.Befehle automatisiert man typischerweise mit Shell 
Scripten. Unter diesem Stichwort findest du sicher 100.000 Tutorials.

von hp-freund (Gast)


Lesenswert?

Michael schrieb:
> nur wenn der erste erfolgreich war?

Genau so.
Probier es aus:
1
mkdir y && cd y

Wenn das Verzeichnis nicht existiert funktioniert das, dann:
1
cd ..

Wenn es existiert und mkdir nicht mit -p gezwungen wird, zeigt es den 
Fehler und es wird nicht in y gewechselt.



Wenn Du aber die Pfeil nach oben Methode benutzt, kannst Du auch nach 
erfolgreichem flashen selbst entscheiden und 2x Pfleil nach oben 
drücken.

von Stefan F. (Gast)


Lesenswert?

In diesem Buch gibt es ein Kapitel zur Shell programmierung:

http://stefanfrings.de/smstools/SMS_Anwendungen.pdf

Da wird deine konkrete Frage auch direkt beantwortet (Kapitel 4.9)

von User (Gast)


Lesenswert?

Gibt es ein fertiges Binary von Avrdude für Linux?

von Tom (Gast)


Lesenswert?

avrdude sollte in der Paketverwaltung deiner Distribution zu finden 
sein.

von Stephan (Gast)


Lesenswert?

> irgendwie an die errorcodes vom avrdude kommen... aber wie ?

> &&

Die Shell haelt die Error-/Exitcodes in der Variable $? fest.
Wert 0 = Fehlerlos; alle anderen Werte Fehler mit Bedeutung gemäss Doku 
des Programmes (man avrdude)
1
$ cd nirgends/hin ; echo "$?"
2
3
$ cd "$HOME" ; echo "$?"

Weiteren Programmablauf mit Kontrollstrukturen "wie gewohnt[TM]"
1
If [0 = "$?"]
2
then
3
    gutso
4
else
5
    andersfalsch
6
fi
7
8
for n in a b c d
9
do
10
    bearbeite n
11
done

Ich mag ABS "Advanced Bash Scripting Guide": enthaelt gute Erklaerungen 
+viele Beispiele.

Tip: (trotz Oede) "man bash" querlesen um die 
Terminologie/Themennomenklatur aufzunehmen, dies erleichtert die weitere 
Suche nach Details resp. das Wiederauffinden.

PS: wegen genau solchen Situationen arbeite auf keinem System ohne 
POSIX-ische Shell (bash, ksh, sh, busybox, ...)
Solange ich unter Windoof$ nicht nach Mauskilometern entschaedigt werde, 
installiere ich immer gleich CygWin.
Grosser Vorteil: unter allen systemen 90++% gleiche maechtige shell, 
kaum Umlernen bei Systemwechsel, bestehendes Wissen sofort anwendbar - 
Neues kommt ergaenzend hinzu -nicht ersetzend daneben!

73 de Stephan HB9ocq

von Stefan F. (Gast)


Lesenswert?

> installiere ich immer gleich CygWin.

Willkommen im Club. Kann ich nur wärmstens empfehlen. Vor allem den 
Leuten, die sowohl mit Linux als auch mit Windows arbeiten (müssen).

Wer ausschließlich mit Microsoft verheiratet ist, der wird vermutlich 
eher die Powershell empfehlen. Dank Cygwin ist die für mich persönlich 
jedoch völlig uninteressant.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.