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.