AVRDUDE Program_Upload_to_MC.bat

OP Persönliche Seite #3747618
Lesenswert?
• ▲
▼
Servus!

Ich stand schon des Öfteren vor dem Problem, jemandem, der sich nicht 
mit µCs auskennt, eine einfache Möglichkeit zu bieten, die Firmware 
eines AVR µCs upzudaten.
Klarerweise kann ich somit auch nicht voraussetzen, dass eine komplette 
AVR-Toolchain inklusive AVRDUDE oder gar das Atmel® / AVR Studio oder 
auch Java installiert ist.
Außerdem wollte ich nicht, dass es viele sichtbare 
Einstellmöglichkeiten, wie z.B. beim AVR8 Burn-o-mat für den 
Anwender geben soll, wenn man lediglich ein Firmwareupdate machen, aber 
keine Fuses beliebig ändern will.
Herausgekommen ist dabei eine .bat-Datei, welche die verfügbaren 
COM-Ports auflistet und auswählen lässt, welcher zu verwenden ist.
Beispielsweise verwende ich hier einen USB<->Seriell FTDI FT232 Adapter 
mit einem "Arduino Pro Mini 328", (welcher auf eBay zum Teil 
günstiger inkl. Versand erhältlich ist, als der nackte IC). Dieser hat 
ja bereits einen von AVRDUDE direkt als "programmer" an einer 
seriellen Schnittstelle unterstützten Bootloader. Durch Anpassen des 
avrdude-Aufrufs kann jeder beliebige andere Programmer verwendet werden. 
Für die Arduino-Serie gibt es hier eine schöne Auflistung der für das 
jeweilige Modell notwendigen Einstellungen. 
https://github.com/watterott/KnowledgeBase/wiki/Arduino
Somit braucht man bei auch Verwendung dieser Hardware keine Arduino IDE, 
sondern lediglich AVRDUDE und gegebenenfalls den manuell 
installierten FTDI-Driver. http://www.ftdichip.com/Drivers/VCP.htm

Es wird angenommen, dass das .hex (oder ggf. .eep)-File mit beliebigem 
Namen im Unterordner default liegt, was ja bei AVR Studio der Fall ist, 
ansonsten wird einfach das File im aktuellen Ordner geflasht.
Per Doppelklick starten, mit x im Fenster oder Strg+C, J, Enter beenden, 
ansonsten nächstes zu Programmierende Board anstecken & nahezu beliebige 
Taste drücken. ;)

Falls ihr den noch nicht kennt würde ich euch den 
AVR-Bootloader mit Verschlüsselung von Hagen Re empfehlen, welcher 
viele Vorteile gegenüber dem vorprogrammierten "Optiboot" hat. Die kurze 
Einarbeitung zahlt sich echt aus! (Dieser lässt sich auch in die 
Kommandozeile einbauen, wobei er ja ohnehin schon eine super GUI hat, 
die mein Batch-File nahezu obsolet macht.)

Ich würde mich wirklich sehr freuen, wenn jemand diese Funktionalität 
auf Linux, z.B. ein Shell-Script portieren könnte!

Schöne Grüße & einfaches Firmware updaten,
Daniel A. Maierhofer
Angehängte Dateien:
OP Persönliche Seite #3747619
Lesenswert?
• ▲
▼
Hier bitteschön der Code zwecks schnellem Rauskopieren:
1
@echo off
2
REM Universal Arduino-programmier-Batch File © Daniel A. Maierhofer 2014
3
REM Es wird angenommen, dass das .hex File mit beliebigem Namen 
4
REM im Unterordner default liegt, was ja bei AVR Studio der Fall ist, 
5
REM ansonsten wird einfach das .hex-File im aktuellen Ordner geflasht
6
REM Per Doppelklick starten, mit x im Fenster oder Strg+C, J, Enter beenden
7
REM Nähere Infos auf https://www.mikrocontroller.net/topic/340516
8

9
echo Existierende Ports:
10
for /f "tokens=4" %%A in ('mode^|findstr "COM[0-9]:"') do echo %%A
11
set /p CNR=COM-Port-Nummer(nur die Zahl)?: 
12
cd default 2> NUL || cd Debug 2> NUL
13
:program
14
FOR %%a in (*.hex) DO avrdude -patmega328p -carduino -P\\.\COM%CNR% -b57600 -Uflash:w:"%%a":i
15
FOR %%a in (*.eep) DO avrdude -patmega328p -carduino -P\\.\COM%CNR% -b57600 -Ueeprom:w:"%%a":i
16
echo Mit beliebigem Tastendruck weiteren Programmiervorgang auf gleichem Port starten
17
pause
18
goto program

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.