Arduino Hex-File flashen Batch script

Gast #3717571
Lesenswert?

Hallo Zusammen,

ich möchte gerne ein Batch-Script für das Flashen eines Hex-File auf 
einen Arduino Uno erstellen.

Für mein System ( Ubuntu 14.04 ) funktioniert das folgendermaßen ganz 
gut:
1
#!/bin/bash
2

3
/usr/share/arduino/hardware/tools/avrdude -C/usr/share/arduino/hardware/tools/avrdude.conf  -patmega328p -carduino -P/dev/ttyACM0 -b115200 -D -Uflash:w:Blink_atmega328.hex:i

Wie sieht das auf einem Windos-System aus?

Es wäre gut, wenn jemand ein Batch-File für Windows erstellen könnte.
Gast #3718697
Lesenswert?

Hallo Sven,

danke für die Antwort. Mich hätte vor allen Dingen ein Batch-File 
interessiert, bei dem man nichts ändern muss, so dass Anfänger einfach 
darauf klicken können.

Bei Ubuntu nehme ich an, dass die Pfade zu AVR-Dude immer gleich sind, 
sobald man die Arduino-IDE installiert hat. Bei Windows weiß ich das 
nicht.
Gast #3733945
Lesenswert?

Jetzt habe ich das Ganze mal unter Windows mit folgender Zeile probiert:

"C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avrdude" 
-C"C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avrdude.conf" 
-patmega328p -carduino -PCOM8 -b115200 -D -Uflash:w:test.hex:i


Leider erscheint da die obige Fehlermeldung, obwohl die Arduino IDE ja 
auf dem Rechner läuft und daher nichts fehlen sollte ...

Hat jemand eine Idee?
Angehängte Dateien:
Gast #3734318
Lesenswert?

So, hier jetzt eine Lösung für Windows 7.
Unschön, aber funktioniert.
1
set schnittstelle=COM8
2
set filename=test.hex
3

4
set arduinopath=C:\Program Files (x86)\Arduino
5
set avrdude="%arduinopath%\hardware\tools\avr\bin\avrdude"
6
set avrdudeconf=%arduinopath%\hardware\tools\avr\etc\avrdude.conf
7

8
rem aus irgend welchen Gruenden funktioniert das setzen des Pfades für cycwin in Windows7 nicht:
9
rem setx \m %PATH%;%arduinopath%  
10

11
rem nehmen wir also die einfache Methode: kopieren des files ins Verzeichnis:
12
copy "%arduinopath%\cygwin1.dll"
13
rem es ist natuerlich etwas unsauber, weil das File jedes mal kopiert wird und doppelt vorkommt.
14

15
%avrdude% -C"%avrdudeconf%" -patmega328p -carduino -P%schnittstelle% -b115200 -D -Uflash:w:%filename%:i
Gast #3734418
Lesenswert?

>kurz getestet, ohne Garantie:

Vielen Dank für's ausprobieren.
Die "cygwin1.dll" ist auch nicht so groß und wird mit der Arduino-IDE 
mit installiert. Wenn sie im gleichen Verzeichnis wie der Aufruf von 
avrdude liegt, geht es auch. Deshalb habe ich den Kopierbefehl 
eingefügt. Den Pfad mit "setx" zu setzen, ist mir nicht gelungen.
Also egal, wenn jemand WinAVR installiert hat, kann er die von Dir 
erwähnte Version nutzen im anderen Falle die Arduino-IDE-Version.
#7517398
Lesenswert?

chris_ schrieb:

set filename=test.hex

Ich habe ein ähnliches Problem. Soweit läuft alles, jedoch muss ich den Dateinamen noch selber eintragen. Ich habe mir das so zusammengebaut, dass das Batch in und das *.hex zusammen in einem Ordner liegen sollen, also nur die beiden Dateien. Es soll das immer nur das *.hex ausgetauscht werden und neu geflashed werden. Hierfür wäre es schön, wenn das eine *.hex im Ordner automatisch eingetragen wird. Kann mir jemand sagen wie ich das hinbekomme, dass FILENAME automatisch den Dateinamen des *.hex annimmt?

1
@echo off
2
setlocal
3

4
CD /D %~dp0
5

6
:: Pfad zu ARV-Dude wählen
7
@set PFAD="C:\Users\Admin\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf"
8

9
:: Zu flashende Datei wählen
10
@set FILENAME=3V1_PSR.hex
11

12
:: COMPort eintragen aus Gerätemanager
13
@set COMPORT=com9
14

15
:: DTR wackeln für Reset des Controllers
16

17
c:\windows\system32\mode.com %COMPORT%: baud=1200 dtr=on
18
c:\windows\system32\mode.com %COMPORT%: dtr=off
19

20
:: Programm übertragen
21
:: Flashbatch muss im selben Ordner wie Ziel-Hex liegen
22
:: Fuses nicht verändern!
23

24
avrdude -C %PFAD% -v -patmega4809 -cjtag2updi -P %COMPORT% -b115200 -e -D -Uflash:w:%cd%\%FILENAME%:i -Ufuse0:w:0x00:m -Ufuse1:w:0xC4:m -Ufuse2:w:0x02:m -Ufuse5:w:0xC9:m -Ufuse6:w:0x07:m -Ufuse7:w:0x00:m -Ufuse8:w:0x00:m {upload.extra_files} 
25

26
PAUSE

Weiter währe es absolut genial, wenn man die Comportnummer vor dem flashen einmal eingeben muss, da sich die Arduinos immer unter einem neuen COM anmelden. Die Nummer sucht man sich dann vorher im Gerätemanager vorher mal raus

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren