Forum: Compiler & IDEs Standardpfad in avrdude


von Fragender (Gast)


Lesenswert?

Hallo,
ich versuche gerade, mit avrdude einen mega8 zu flashen... hab das schon 
eine Weile nicht mehr gemacht. Wie ist denn der Standardpfad von dem aus 
es losgeht in avrdude? Habe versucht, einen absoluten Pfad ala 
d:\programme\winavr\projects\projekt1\main.hex einzugeben in der 
Kommandozeile, aber das haut nicht hin...
Gruss
Fragender

von Stefan B. (stefan) Benutzerseite


Lesenswert?

In meinen Projekten arbeite ich mit einem relativen Pfad. Ich wechsele 
in das Verzeichnis, in dem sich die HEX-Datei befindet und rufe dort 
AVRDUDE auf. Um Tipparbeit zu sparen mache ich das mit einer Batchdatei.

Beispiel aus 
http://www.mikrocontroller.net/articles/Pollin_Funk-AVR-Evaluationsboard#Parallelport_ISP_Typ_STK200_2
1
@echo off
2
echo Parallelport ISP Typ STK200
3
echo Programmiere Atmega8 Flash-ROM mit Datei atmega8.hex
4
d:\winavr\bin\avrdude -p atmega8 -c stk200 -P lpt1 -e -U flash:w:atmega8.hex

Man kann sich auch eine entsprechende Kommandozeile in seiner 
bevorzugten IDE eintragen. Oder den Verzeichniswechsel in die Batchdatei 
mit aufnehmen...

Ich bin mir nicht sicher, ob du den absoluten Pfad übergaupt verwenden 
kannst, denn die : in dem Teil -U flash:w:atmega8.hex könnten sich mit 
dem : aus dem absoluten Pfad beissen.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Stefan "stefb" B. wrote:

> In meinen Projekten arbeite ich mit einem relativen Pfad. Ich wechsele
> in das Verzeichnis, in dem sich die HEX-Datei befindet und rufe dort
> AVRDUDE auf.

AVRDUDE benutzt selbst keinen Standardpfad, es macht mit dem übergebenen
Namen ein fopen().  Es wird das Verzeichnis dafür benutzt, welches
vom Betriebssystem impliziert wird, die Konzepte eines `current
working directory' unterscheiden sich dabei meines Wissens teilweise
selbst zwischen Windows-Versionen (wobei WinNT und Derivate eher
ähnlich zu Unix ist).

> Ich bin mir nicht sicher, ob du den absoluten Pfad übergaupt verwenden
> kannst, denn die : in dem Teil -U flash:w:atmega8.hex könnten sich mit
> dem : aus dem absoluten Pfad beissen.

Es geht, aber dann ist die volle -U-Spezifikation notwendig, also mit
allen Doppelpunkten: »-U flash:w:atmega8.hex:i«.  Wenn man im Dateinamen
keinen Doppelpunkt hat, lässt sich obiges zu »-U atmega8.hex«
verkürzen.

Da die Win32-Version von AVRDUDE gegen die MinGW-Bibliotheken gelinkt
wird (und folglich dessen fopen()-Implementierung benutzt wird),
müsste man einen absoluten Pfadnamen auch angeben können als

-U /d/programme/winavr/projects/projekt1/main.hex

Die Backslashes darf man getrost durch Vorwärtsstriche ersetzen, das
hat Windows intern schon immer verkraftet.  Nur command.com und
cmd.exe können das nicht, aber die reichen das ja in diesem Falle nur
weiter.  Wenn man den Aufruf aus einem Makefile (für GNU make) heraus
macht, dann liegt implizit eine bash als Shell dazwischen, die
wiederum könnte Zeichen wie \n fehlinterpretieren.  Da ist man mit
den Vorwärtsstrichen auf der sicheren Seite.

von Fragender (Gast)


Lesenswert?

Ok, ich geh wieder in das Verzeichnis direkt, so habe ich da glaube 
früher auch gemacht.

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.