Standardpfad in avrdude

Gast #921200
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
Persönliche Seite #927181
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.
Moderator Persönliche Seite #927204
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.